Content service should provide a public API that allows clients to easily add and retrieve content from nodes stored in the repository.
The implementation of the content store should be hidden from the user, allowing the content store to be changed with no effect.
The physical location of the content store should be hidden from the implementation, allowing the content store to be remote from the main repository server.
Supporting Different Content Store Implementations
In order to support different content stores different implementations of the content service API need to be provided. The correct implementation to bind to the service interface will be determined by information found in the node reference. See Services Framework for more details.
It is likely there will be a base (abstract) implementation of the content service API that will provide common implementation and a couple of concrete implementations, including a file system store, database store and version store implementation, that provide the specific storage implementations.
It is possible that remote stores, such as a remote file store, could also be supported by providing an implementation of the service interface which routes the assignment and retrieval of content to a distant location.