A basic component of any library is that of storing its holdings. In a digital library, the storage mechanism takes on an additional significance because of the additional services of the library. The Data Store is a storage manager that models each data item in the library as an active object rather than a passive entity. A document or map, for example, is instantiated as an object with methods associated with it. These methods provide functionality to items appropriate to a digital library: A book can generate its own abstract and produce chapter summaries; a map can be re-scaled to different sizes, and overlaid with another map for effective presentations.
The design of the Data Store [3] entailed a multiple number of servers in order to distribute the library collection across different sites. A key design feature in the Data Store is the ability to distribute processing of each object's method. To provide this capability, the Data Store's message delivery service serializes objects and passes them between client and server for execution at any host. This messaging layer encapsulates the network and remote execution services found in distributed object packages such as CORBA and HORB. The team has completed the initial implementation of this messaging service.