We have explored the architecture in the application’s JVM and discussed the application cache and implementation cache. Now let’s examine the architectures of JDO implementations. We’ll discuss each type of datastore separately.
These architectures don’t affect your application’s programming
model, but they affect the configuration of the environment in which
your application executes. In particular, the
ConnectionURL property of the
Properties instance used to construct the
PersistenceManagerFactory refers to a
local or remote datastore.
Direct Access of Filesystem or Local Datastore
Some JDO implementations store the objects directly in a local filesystem or datastore. Figure 3-1 illustrates this architecture. There is only a single process context in this architecture. The JDO implementation uses the Java I/O classes directly to manage the storage of the objects in a file. The JDO Reference Implementation implements this architecture, as do some object databases.
Remote Access of a JDO Server
Some JDO implementations connect to a separate server that manages the datastore, as illustrated in Figure 3-7. The JDO Reference Implementation implements this architecture, as do most object databases. In this particular example, the JDO implementation itself provides a server built specifically for object storage, which then manages the filesystem directly. The component that executes in the same JVM as the JDO implementation and communicates with the remote server is called ...