Apache Jackrabbit : SandboxCMIS

(warning) This page is outdated. SandboxCMIS is now an Apache Incubator project called Chemistry.

What is CMIS?

CMIS stands for Content Management Interoperability Services and consists mainly of two network bindings for essential Document Management operations.

CMIS is in the process of being developed at OASIS.

The CMIS Sandbox at Jackrabbit

Based on interest from various Apache Communities the CMIS Sandbox is hosted by the Apache Jackrabbit project and is open to all committers of the ASF.

Sumamrizing conversations on the dev mailing list the goal of this effort would be to build a freely available implementation and client of the CMIS specification as it grows. While the CMIS specification is still under development the early implementation will allow to give feedback to the Technical Committee at OASIS to modify and improve the specification.

The implementation should not need any Jackrabbit (Content Repository) specific dependencies but should be as portable and reusable for other implementations as possible.

Overall Proposed Architecture

The overall Architecture is separated into three major blocks as reflected in the SVN Layout.

The API represents the Java Language Bindings of the CMIS Model and therefore is used to implement both the CMIS client (that exposes the API) but also the server that allows for plug-able implementation of that.

Proposed Server Architecture

The CMIS Server is architected in a fashion that offers a Layered approach. The AtomPub and SOAP bindings are separated by the API. This allows to use both protocol implementations while just having to implement the API on any particular proprietary or standard based server. In Jackrabbit the implementation of the API then will use a standards based JCR binding to avoid and Jackrabbit specific bindings and hence allows to be run on any third party JCR implementation.

Proposed Client Architecture

To provide a general purpose CMIS Java client it is important of course provide language bindings of the CMIS Model and then implement the two protocols proposed by CMIS. This will not only be used by Java Application Developers that want to consume CMIS but also can serve as an initial test suite to test any servers interoperability.

First Steps with the CMIS Server

(To be added)

First Steps with the CMIS Client

(To be added)

Further Conversations

Find the current CMIS Discussions on the Jackrabbit List and also on the CMIS OASIS list.

Attachments:

cmis-arch-server.png (image/png)
cmis-arch.png (image/png)
cmis-arch-client.png (image/png)