Skip to main content

Digital Transformation

Deep Dive in CMIS

Adam Harmetz, Mike Mahon, and Ryan McVeigh gave a deep dive in CMIS.  Adam and Ryan are members of the OASIS committee so they gave a good overview of what it is and how it can make life easier.

What is CMIS

6 is the average number of ECM repositories in a company.  Over 50% have >10.  If you want to manage, create and find content no matter where the information exists, you need to get access to it.

Content Management Interoperability Services (CMIS). It’s an OASIS specification. The first version of the spec was approved on May 1, 2010.  Key vendors support includes (not a full list):

  • Microsoft
  • EMC
  • Open Text
  • Alfresco
  • Oracle
  • Adobe
  • SAP
  • HP
  • IBM

CMIS has a lot of industry momentum but it is NOT a panacea.

What makes it different from other attempts

  • All major vendors support the standard
  • It’s based on well understood pattern
  • It’s been proven with a prototype server and client implementations from the start (key item here)
  • Does not dictate language or run-time as opposed to JSR 170
  • It’s experiencing rapid adoption.  All major vendors are exposing a CMIS interface

CMIS Goals and Scope

  • Enable applications to target different ECM repositories
  • Provide a common set of patterns to make this work.
  • Follow a protocol binding moding in REST and ATOM

CMIS should cut costs and improve developer productivity when dealing with the complexity of integrating the different repositories

Example applications would include a Sharepoint web part that uses CMIS to roll up personnel data from several different systems, contract approval app with central approval against multiple legacy ECM repositories, and a mobile app to hit content from different repositories. More than 50 different CMIS applications exist.


CMIS has a common data model for content.  It then provides a set of services which can be used to get at the model.  Finally, it provides protocol bindings for RESTful AtomPub and Web Services

The common data model or repository

  • Contains folders documents or other objects
  • must provide all basic services
  • Must provide REST and SOAP and bindings
  • May provide optional services like policies and access control
  • May provide services not in CMIS spec like records management
  • Advertises capabilities through a service
  • In SharePoint, a CMIS repository maps to a document library

Object Type: Consists of four basic types in Document, Folder, Relationship, and Policy.  each type has attributes and property definitions.

Properties: All objects have properties.  property definitions have attributes like type.  It has data types like string, decimal, integer, etc.  Common property definition attributes include id, localname, query name, etc.  In SharePoint, all CMIS property types map to SharePoint column types.

Documents: a document is an instance of a document type.  they have properties and have a content stream.

Folders: Folders can contain folders and documents.  Folders can only have one parent.  Can declare what types it contains like only press releases.  Documents may be unfiled or not live within a folder.  A document can live in multiple folders.

Relationships: A directional relationship between any two objects.  An object can have any number of relationships including itself.  Referential integrity is not enforced. SharePoint does not support this

Policies: This is a little immature in v1.0 release of CMIS.  A policy can be enforced by a repository.  It’s used to mange object that are outside the scope of CMIS. Records retention is an example.  In SharePoint, you can make use of  policy object but it’s not supported beyond that.

Access Control: Controls are mapped via permissions, Prinipal (user or group), Access Control Entry, Access Control List, Repository support for access control is optional

Versioning: documents may or may not be versioned. Versions represent properties and content at a given point in time. All versions collectively define a serie.  Checkout creates a private working copy.  SharePoint documents version stream is exposed via CMIS. Checkin and Check out is also supported.

Query: It’s based on a well known standard called SQL 92.  ECM extensions are added. Each type is treated as a logical relational table.  Joins may be supported.  Query supports metadata and/or full text.  SharePoint supports both metadata and full text queries. The Sharepoint producer will use SharePoint Search or it can use CAML.


With data model set, you can now make use of eight sets of services that CMIS exposes.  In general it support CRUD.  This might include getRepositories, GetTypeDefinition, Get Children, GetFolderParent, Get ObjectParents, CreateDocument, CreateFolder, GetObject, CheckOut, cancelCheckOut, getAllVersions.

CMIS Bindings: Providers must implement RESTful AtomPub and SOAP. Restful AtomPub would provide feeds, entries. and links.  It would support get, post, put, and delete.  Authentication not proscribed but recommended.  Web Services will use SOAP and will have  WSDL and XSD’s defined.

Industry Adoption

The following companies have CMIS Providers:

  • ADobe
  • Alfresco
  • EMC
  • eXo
  • IBM
  • etc.

Client applications include Apache Chemistry, Liferay, Zia Freshdocs, etc. Apache Chemistry is an open source options for provider and consumer implementers.  Chemistry has libraries for Java, .NET, PHP, and Python.  Chemistry has a CMIS workbench as a graphical client with a Groovy console.


Future of CMIS

CMIS 1.1 is in process.  CMIS 2.0 is more than a glimmer in someone’s eye.

CMIS 1.1 approved items

  1. Browser binding that allows pure browser based apps
  2. Type mutability that will define types and associated properties
  3. Secondary type which will support the concept of mix-ins

CMIS Features in Discussion

  • Repository extensions
  • Annotations
  • Tagging
  • Batch operations
  • Multiple content streams
  • retention and hold management
  • Stored queries
  • Hierarchical / complex properties
  • See TC wiki for more.

If you want to add input, please give the OASIS members feedback at: or

Mobile Development

There is a Fresh Docs app on android and iOS that can pull CMIS data into the app.  Windows Phone 7 is on the horizon.  It allows users to search, browse, upload doc, create folders, view and edit metadata.  Any repository that supports CMIS can be viewed by the app.  This include SharePoint 2010, FileNet P8, Documentum, Alfresco, OpenText, Nuxeo, and HP Trim.  This app is made by Zia Consulting and it’s free.

Demos: They showed Fresh docs hitting SharePoint and Alfresco repositories via a mobile app.  Imaging taking a picture of a pot hole and uploading it to the repository and kicking off a workflow.  They also showed Chemistry hitting the same repositories.

Microsoft and CMIS

In Mid 2010 Microsoft released both consumer and producer implementations of CMIS on top of SharePoint

Thoughts on “Deep Dive in CMIS”

  1. This really is the correct blog for anybody who desires to find out about this topic. You recognize so significantly its practically hard to argue with you (not that I really would want…HaHa). You certainly put a new spin on a subject thats been written about for years. Excellent stuff, just fantastic!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Michael Porter

Mike Porter leads the Strategic Advisors team for Perficient. He has more than 21 years of experience helping organizations with technology and digital transformation, specifically around solving business problems related to CRM and data.

More from this Author

Follow Us