Announcing the Content Management Interoperability Services (CMIS) specification

Today, we're excited to announce the launch of a standards effort for Enterprise Content Management systems that Microsoft has been driving with several other major vendors (IBM, EMC, Alfresco, OpenText, SAP, Oracle) called "Content Management Interoperability Services" (or CMIS, for short).

The goal of CMIS is to define a web services standard for interacting with Enterprise Content Management systems like Microsoft Office SharePoint Server, EMC Documentum, IBM FileNet P8, etc.

Why: Integrating multiple ECM systems is hard

We've heard from many organizations that want to use SharePoint, but have other ECM systems or applications in place that they need SharePoint to work with. Often these deployments are the result of different business units that deployed different ECM systems or that were "inherited" from mergers or acquisitions, or the organization may be transitioning from one ECM system to another over time.

Having multiple ECM systems introduces integration challenges: Enterprises (rightly) want their users to be able to access and manage all content in the way that best meets their needs, regardless of which system it actually live in. For example, users want unified access to all the content they need to work with on their team site, organizations want their electronic discovery applications be able to find content and suspend its disposition across any ECM system.  But in practice integrating these ECM systems is a challenge because each has its own interfaces. Even though many capabilities in each system are fundamentally similar (e.g. most ECM systems have a notion of "check in/out" & version history, and of different Content Types), and most systems' interfaces are "open" for anyone to integrate with, tying them together requires integration "connections" for every link between systems. (For example, Microsoft Search Server and Office SharePoint Server support an open "connector" model for indexing content stored in other systems - and Microsoft even provides connectors for some common ECM systems like EMC's Documentum and IBM FileNet).

This connector approach generally suffers from a few limitations:

  • 1) Each link between systems requires a different "connection": For example, the Enterprise Search connector for IBM FileNet is different than the one for EMC Documentum, and neither one would help an organization that wants to use an IBM or EMC Search product to index content stored in SharePoint.
  • 2) Connections tend to be "special purpose": Because today each point of integration requires additional work, most integration connectors tend to be very specifically-focused on particular scenarios. For example, while the Enterprise Search "connectors" enable Microsoft Search products to index content stored in a Documentum or FileNet system, customers who alsowant to browse their Documentum or FileNet content on the home page of their SharePoint portal will need to use a separate kind of connector for that (probably a Web Part).

So while today integration is technically possible, it's not as simple as it could be.

To truly make it simple for ECM systems to interoperate, we need a standard set of ECM interoperability interfaces - that way, every system could support the same interfaces and they could work together without the need for special purpose "connectors" between each pair of systems. And that's exactly what the CMIS standards effort attempts to define.

What does the CMIS specification define?

The CMIS specification defines a standard "domain model" for an ECM system - a set of core concepts that all modern ECM systems have, like Object Types (which in SharePoint we call "Content Types"), properties, folders, documents, versions, and relationships - and the set of operations that can be performed on those concepts, like navigating through a folder hierarchy, updating a document, etc.

The specification does NOT try to include all the capabilities of an ECM system - because many of these are simply too different between ECM systems. But the specification does attempt to include the fundamental concepts that are (a) relatively common across current ECM systems, and (b) enable the common integration scenarios that we've heard from customers to date.

The specification then defines how to bind the CMIS "domain model" to two different web service protocols: SOAP (Simple Object Access Protocol), the web services protocol used by many ECM systems (including SharePoint), and Atom, a newer web services model used in many "Web 2.0" applications.

You can download a preview copy of the specification here.

Who else is involved in the CMIS effort, and how long has it been going on?

Of course, this isn't a new problem, and it's not one that any one company can solve on their own. So back in 2006 Microsoft started working with IBM and EMC on the CMIS effort - since all of our organizations realized the need to enable better interoperability between our systems. Since then we've expanded the effort to include several other organizations: Alfresco, Oracle, OpenText, and SAP.

Over the last two years, this group has worked together to create and refine the specification, including validating it using actual prototype code that each company wrote on top of our products.

What's next for the CMIS specification?

The next step for the CMIS specification to become an open standard that all ECM systems can implement to facilitate interoperability is to transition its development into a public standards organization - and that's the step we're taking today. We're submitting the CMIS specification to a new CMIS Technical Committee being formed in the OASIS consortium, so that all interested parties can join the effort and continue to refine the specification into a final "1.0" version. (Click here to learn more about joining OASIS Technical Committees). We anticipate that it will take around 1 year for the OASIS Technical Committee to complete work on the final 1.0 version... but from this point onward, the exact schedule will be determined by the committee.

When will Microsoft include support for CMIS into SharePoint (or other products)?

Of course, Microsoft's goal (which is shared by all of the companies participating in the CMIS effort) is for the CMIS specification is to become the interoperability standard that we can incorporate into our products to reduce the complexity of managing & integrating multiple ECM systems... and today's announcement is an important step in that process.

As the specification goes through the OASIS Technical Committee process and approaches a final 1.0 version, we'll provide more information on when and how you'll see support for CMIS for SharePoint and other Microsoft products.

Ethan Gur-esh, Program Manager.