Tuesday, June 22, 2010

Just released the first integration-oriented CMIS explorer webapp

In a lot of ECM projects, employees who are not back-office-power-users are offered a simple web-based interface to browse a portion of the documents.
Sometimes, clients are offered another web-based interface to check their bills, read their contracts or other papers.

Just released as open source by Aegif (Japan), Struts2CmisExplorer is a new way to build those kinds of web interfaces. It is a CMIS explorer application that focuses on simplicity. This means you can very easily get it running, and modify it to fit your extra requirements, or integrate it into your existing portal.

It should work with all CMIS servers (Documentum, Nuxeo, Open Text, FileNet, etc), for instance here is how to get it up and running on Alfresco:

1) Install Alfresco 3.3 (Community or Enterprise). Check that it is running well at http://localhost:8080/alfresco

2) Download Struts2CmisExplorer and put it in Alfresco's tomcat/webapps directory.

3) That's all! Use it at http://localhost:8080/Struts2CmisExplorer_0.1

Struts2CmisExplorer is not intended to be a full-featured explorer, instead it targets the usual need for a simple web-based documents access. The goal is reusability/ease of integration. Struts2CmisExplorer does not rely a particular framework, dependencies are kept to a minimum (Struts2 and OpenCMIS), which means you can easily integrate it in any IoC framework you might want.

More on Struts2CmisExplorer.

Wednesday, June 9, 2010

CMIS has been approved

CMIS has recently been accepted as a standard, so it is time to get some experience with it! Actually my company just delivered its first CMIS-based solution yesterday.

CMIS means "Content Management Interoperability Services". It is a protocol to access ECM (Enterprise Content Management) repositories. Why did I choose to use CMIS instead of JCR or WebDAV? Because CMIS better targets the needs of ECM projects, it is actually the first protocol designed for Document Management, with interoperability being one of the main goals. CMIS is a joint effort between IBM, Microsoft, Alfresco, EMC, Open Text, SAP, Oracle, Adobe, Nuxeo and others.

Some client implementations already exist in beta versions, but their documentation is still very scarce. I chose OpenCMIS as a client library. Other solutions could have been chemistry-abdera, which is not as active, or using CMIS as Web Service or REST directly, which would have taken a lot of time.

Like for other CMIS implementations, OpenCMIS documentation is still scarce (I actually contributed a good portion of it). So I will explain how to get started with CMIS in the small OpenCMIS tutorial below, hope this helps someone. For the example, I will explain how to access Alfresco from an OpenCMIS client.

Using OpenCMIS to access an Alfresco repository

OpenCMIS has not been released yet, so you will have to compile it from source. Install subversion and maven if you don't already have them. Then get the source:
svn checkout https://svn.apache.org/repos/asf/incubator/chemistry/opencmis/trunk

... and compile it (in the root directory):
mvn clean install

This will create a bunch of JAR libraries, in particular those we need:
  • chemistry-opencmis-client-api-0.1-incubating-SNAPSHOT.jar
  • chemistry-opencmis-client-impl-0.1-incubating-SNAPSHOT.jar
  • chemistry-opencmis-client-bindings-0.1-incubating-SNAPSHOT.jar
  • chemistry-opencmis-commons-api-0.1-incubating-SNAPSHOT.jar
  • chemistry-opencmis-commons-impl-0.1-incubating-SNAPSHOT.jar
If you don't have an Alfresco server ready, install Alfresco Community (version 3.3 or later) and start it.

Download my small Java demo file and edit the URL, user, password to match your environment.

Then compile with the libraries, run, and the content of your repository should appear :-)
That's it! To start doing actually useful things, check the OpenCMIS cookbook.