Skip to main content

CMIS: An Open API for Working with Content

Posted by manning_pubs on September 4, 2013 at 5:59 AM PDT

CMIS: An Open API for Working with Content from CMIS and Apache Chemistry in Action by Florian Müller, Jay Brown, and Jeff Potts.

This blog is written by Jeff Potts, the Chief Community Officer at Alfresco where he is responsible for developer evangelism and community outreach, and he is a committer on the Apache Chemistry project and has written CMIS and Apache Chemistry in Action by Manning Publications.

The full guest blog can he found here:

Most of the content in a company is completely unstructured. Just think about the documents you collaborate on with the rest of your team throughout the day. They might include things like proposals, architecture diagrams, presentations, and the like.

The worst case is when all of those files are scattered across file shares and employee hard drives. More often, the files live in some sort of content repository. You might hear these repositories referred to as a Document Management (DM) system or an Enterprise Content Management (ECM) system. No matter what you call it, they are purpose-built for making it easier for your company to get a handle on its file-based content.

When file-based content lives in a repository, it is a lot easier for employees to work with productively. It can be tagged, version-controlled, searched, and secured. It can be routed through a business process. Even better, developers can write content-centric applications that help workers collaborate and manage content.

Here’s the problem for developers, though: There is a lot of repository software out there. Most large companies have more than one up-and-running in their organization, and every one of them has their own API. It’s rare that these systems exist in a vacuum. They often need to feed and consume business processes and that takes code. So if you are an enterprise developer, and you are trying to integrate some of your systems with your ECM repositories, you’ve got multiple APIs you need to learn. Or, if you are a software vendor, and you are trying to build a solution that requires a rich content repository as a back-end, you either have to choose a specific back-end to support, or you have to write adapters to support a handful of repositories.

The solution to this problem is called Content Management Interoperability Services (CMIS). It’s an industry-wide specification managed by OASIS. It describes a domain language, a query language, and multiple protocols for working with a content repository. With CMIS, developers write against the CMIS API instead of learning each repository’s proprietary API, and their applications will work with any CMIS-compliant repository.

The first version of the specification became official in May of 2010. The most recent version, 1.1, became official this past May.

Several developers have been busy writing client libraries, server-side libraries, and tools related to CMIS. Many of these are collected as part of an umbrella open source project known as Apache Chemistry. The most active Apache Chemistry sub-project is OpenCMIS. It includes a Java client library (including Android), multiple servers for testing purposes, and some developer tools, such as a Java Swing-based repository browser called OpenCMIS Workbench. Apache Chemistry also includes libraries for Python, .NET, PHP, and Objective-C.

To read more please visit here:

Related Topics >>