Livespaces
Information Repository

The information repository is a core framework for sharing/publishing information in a structured way. It is intended to be a sort of uber-Plexus.

The repository will feature portal integration, shared documents, text snippets, snapshots, transcripts, clipboards.

We will also develop a generic browser plus integration with other apps such as Clipboard, AuTM, etc.

We have no idea how to build this yet :) Requires a lot of design work

Design

Use Jackrabbit (see below) as a starting point for the content repository as it looks like a technology that is going to be widely used and supported by industry.

Jackrabbit doesn't have full support yet for using WebDAV for a remote client repository which we would need if we want any client application/service within Livespaces to use the JCR API. RMI is supported so we can use RMI for the remote repositories (i.e. remote views of the centralized repository) for now and then switch to using WebDAV in the future once it becomes fully supported by Jackrabbit.

A http service/bundle that uses an embedded version of Jetty can host the jackrabbit repository. Jetty is small footprint web application server (i.e., like Tomcat) and so is ideal for embedding within an OSGi bundle, in fact the Oscar HTTP service bundle uses it already. We can't just use the Oscar bundle off the shelf however as we need to do some custom configuration of Jetty to specify where web application archives (WAR file) should be installed from etc.

The jackrabbit repository (contained within Jetty) can then be published as a Livespace service (i.e., the information repository service) to enable other services, applications etc. to interact with the information repository. This could include uses cases such as:

Using this approach the main interaction with the information repository would be through the Livespace service (i.e., entities on the bus) to abstract what actual technology is being used. Reading from the repository can simply be achieved by accessing the information repository entity structure, which includes the links to the actual content via a WebDAV URL for instance. A recommended approach for other services to add documents/information to the repository would be to add the actual information repository entity into the entity structure on the bus and then the info repos service updating this entity to specify where the actual content should be stored. The service/application can then upload the content into the repository for others to access.

Research

Back-End Technologies

The back-end of the information repository could be supported by a number of different technologies such as WebDAV, Content Management Systems, Enterprise Wikis, or messaging/collaboration suites.

Jakarta Slide

Jackrabbit

Model of a Java Content Repository

Confluence

Magnolia

Liferay

XWiki

Zimbra

category: Features, Public