I'm trying to wrap my head around Deployment Model 3: Repository Server. Can anyone confirm that my understanding is accurate? My understanding is that there are two ways to access a repository remotely: RMI and WebDAV. If you want to use the JCR API, you use RMI. Otherwise you use WebDAV. But by using WebDAV, you lose access to the low level node operations that you would otherwise have access to in the JCR API.
Let's assume that I need access to the low level node operations. So I opt for RMI. However, there is a statement on http://jackrabbit.apache.org/repository-server-howto.html that says: "Warning: The current JCR-RMI library is designed for simplicity, not performance. You will probably experience major performance issues if you try running any non-trivial applications on top of JCR-RMI." Does performance suffer because each and every node operation (e.g. addNode and setProperty) involves a communication with the server? In this case, it seems that the best option is to expose my own service (backed by a local Jackrabbit) for remote access. In this way, there is far less communication with the remote service (i.e. my service) since my objects would be far less granular than nodes. This is probably obvious to most but it took me a while to figure it out what my options were. Can anyone comment? Thank you.
