CMIS: The new content interoperability kid on the block
The new OASIS standard called "Content Management Interoperability Services" is a promising new approach to the problem of exchanging content between applications. It is a standard interface by which content hosted on one system can be easily embedded, even modified, from other systems. To ensure interoperability it defines an abstracted view of the content that implementors must match with their own repositories, a way to browse it and even a specific CMIS query language to fetch content by custom conditions.
OpenWGA will begin to support CMIS with the Enterprise Edition of the upcoming 5.2 release, due this November. So lets have a closer look at it and at the situation at whole.
The story so far
We can't deny that we take announcements of new standards for content management interoperability always with a grain of salt. There are some approaches to this topic with WebDAV maybe being the first notable. It is a protocol that is capable of serving a hierarchical structure of documents, containing some content data and optional properties, which may be available in multiple versions. But as WebDAV was never regarded as an "open standard" to connect content management systems but rather as an interface for web authors (and was often poorly implemented in our opinion) it never really qualified for this task.
We thought JSR170 was a good idea - at least for the Java world - until we actually read the spec. It describes again the abstraction of this obligatory hierarchy of documents with custom properties and content. But we had the impression that while some things were overly generic other things - like the predefined session working modes - were too specific for many CMS to implement easily, as they already presumed a certain type of content management.
And here lies one big problem: Those CMS, DMS, WebCMS or whatever you might call them are just too different in their internal abstractions, their policies, working modes or even dedicated purposes. Ask three consultants from three different vendors about the meaning of the term "content management" and you get an idea of what we're talking about. So the "overly generic" problem is something that a CMS interface standard cannot get around, but there is other room for improvement.
Content as a service
That said, the new initiative to find a "lingua franca" for content management called CMIS does some things right in our opinion. It is not specific to any programming environment like JSR170 was for Java. It defines a basic data structure but also concentrates on describing the interfaces that it should be available to. And these interfaces are Web Services, where CMIS already defines the "hard facts" about the services protocol (SOAP or AtomPub) and methods.
The pure Web Service nature of CMIS may make it impractical for some potential use cases which need high throughput performance, like complete data migrations between two systems. But actually we think these are wishes that cannot be served by any standard interface between different CMS systems. You cannot just plug the CMIS connector of CMS A into the one of CMS B and let the data flow through. The differing internal structures and policies of both systems will keep you from just pushing one systems hierarchy to the other end.
The CMIS logo from OASIS
Instead a web service interface is ideal to make dedicated content chunks available to other systems, like portal servers, any kind of mashup sites etc, with very low prerequisites for the consumer side. While SOAP might have its compatibility problems between implementations and platforms the REST based AtomPub protocol should be trivial to use everywhere, even from a browser client in some "web 2.0" application.
On to the next page...