It has been a little less than two months since the news of a proposed new enterprise content management standard hit the streets. The Content Management Interoperability Services (CMIS) spec, created jointly by Microsoft, IBM, EMC and a few other Enterprise CMS providers, was the talk of the town -- for better or for worse. But it's been relatively quiet these days and we find that strange considering the importance of a standard like this to the industry. Maybe it's not so important. Maybe it's not all it's cracked up to be. Maybe it's simply a done deal and no one needs to say more...

Quick Recap of CMIS

The Content Management Interoperability Services (CMIS) spec was created by a group of ECM vendors -- specifically, Microsoft, IBM, EMC, Oracle, Alfresco and Open Text. The purpose of the specification is to define a common Web services interface that will allow developers to build applications that can talk uniformly to many different content repositories. CMIS.jpg
CMIS Service Oriented Architecture

The interface tells developers how to perform basic content management operations that talk to the repository. With every content repository supporting the interface, applications can be developed much easier that combine content from one or more ECM systems. The interface also enables an organization to use more than one ECM in-house, keeping them synchronized. CMIS is designed using a service-oriented architecture (SOA) framework. This means that applications do not have to utilize the entire set of CMIS interfaces. They can pick the ones they need to use. It also means the architecture is loosely coupled -- applications do not have to understand how the interface is implemented inside a particular ECM, they just know it will work. It is important to note that only a basic set of operations used by ECM's have been included in the interface. This "least common denominator approach" is required to ensure that most, if not all, ECM's could easily implement it. There are a number of use cases that have been identified to date for this specification; including portals, collaborative applications, mashups and searching. What this means is that more complicated functions such as records management, Web content management and digital asset management are not a part of this specification.

Components of CMIS Specification

The CMIS specification defines a domain model that includes both a data model and a service model. It then defines specific bindings to two protocols: REST/Atom and SOAP. The domain model defines a set of objects used to manage content in a repository. This model is limited to documents, folders and relationships. The service model defined in the specification includes the following: * Discovery of object type definitions and other repository information * CRUD (Create, Read, Update and Delete) functions * The filing of documents in one or more folders * Navigating and traversing the folder hierarchy * Versioning of documents * Querying a repository (-ies), including full-text searching All ECM's conforming to the specification need to support both the REST and SOAP protocol bindings. SOAP-based Web services are fairly well-known and used in many organizations today. These Web services must also support the WS-Security and WS-I-BP (Web Services Interoperability Basic Profile) standards in their implementation. Both WS-Security and WS-I-BP are standards as defined by the Web Services Interoperability Organization. WS-Security is a standard that outlines how security must be implemented within a web service for both the transport mechanism and the message that's transported. WS-I-BP consists of implementation guidelines describing how a core set of web services specifications must be used together to ensure interoperability. The REST protocol is commonly used in Web 2.0 applications -- particularly, with wikis and blogs. This specific instance of REST is limited to the Atom Pub Protocol (APP) specification. The interfaces are invoked by making HTTP calls. The specification claims that no major redesign of ECM's is required. The specification is designed so that ECM's do not have to make major changes to support it. Some changes may be required, including to existing interfaces. But these changes are not expected to be significant.

Issues with the Specification

While most are positive about the specification and how the REST/Atom and SOAP protocols are implemented, not everyone is thinking happy thoughts. In particular, Roy Fielding has been very outspoken about the specification