Content Management Interoperability Services

To CMIS or not to CMIS, that is the question

Categories:
Posted on: Tue, 2013-09-10 12:45

CMIS is HOT in ECM!

Well CMIS has been a standard for well over 3 years now and many vendors have implemented CMIS compliant repositories.  Recently, CMIS 1.1 was approved as an OASIS specification.  In my consultancy role at Alfresco Software (one of the ECM vendors that has implemented CMIS), I have run into a number of projects that have vigorously embraced CMIS.

Building a CMIS REST Client Application using PHP

Categories:
Posted on: Mon, 2009-11-30 18:13

Now that the CMIS 1.0 Draft Specification is available for public review, many developers are starting to ask "How can I build applications that leverage CMIS?"  If you are inclined to use SOAP, then you can probably use your favorite SOAP tools to build a client application.  If you are looking to leverage the REST binding, then you may need to do a bit more work.

Introduction to CMIS

Categories:
Posted on: Mon, 2009-11-23 19:00

Recently I had the opportunity give a presentation on Content Management Interoperability Services (CMIS).  This is a new Oasis standard which entered Public Review with the release of the "»

PHP CMIS REST Code Samples

This is a PHP Code sample that I have posted.  I have documented this in a blog post entitled "Building a CMIS REST Client Application using PHP".

CMIS Protocol Bindings

Categories:
Posted on: Mon, 2009-11-23 23:00

In this final post of my Introduction to CMIS series, I will discuss the SOAP and REST protocol bindings for CMIS.  This post should provide an overview of how CMIS leverages SOAP and REST (particularly the AtomPub).  It is not a comprehensive reference on SOAP, REST or AtomPub.

CMIS Domain Model

Categories:
Posted on: Sun, 2009-11-22 19:00

Repository

CMIS is defined around the interactions between a client application and single repository.  The repository is a container of objects (documents, folders etc..).  In order to be CMIS compliant there is some mandatory functionality that the repository must support and there are some optional capabilities that the repository may support.

In order to get started, the client will need to know the starting URI needed to access the Repository via the desired binding (SOAP or REST).  Armed with that URI, the client is then in a position to:

Jeff Pott's "Getting Started with CMIS" Tutorial

Jeff Potts, a lead architect at Optaros, Inc has written a Tutorial on Getting Started with CMIS.  I would highly recommend this as reading for anyone who wants to get hands on experience experimenting with CMIS.  In this tutorial Jeff:

  • Gives a brief summary of the CMIS Spec
  • Walks the user through setting up a CMIS repository
  • Walks the user through exercises performing various common operations against the repository.
  • Points the reader to additional resources

CMIS Services

Categories:
Posted on: Mon, 2009-11-23 19:00

In two previous blog posts, I discussed the CMIS Domain Model and the CMIS Query Language.  This post discusses the CMIS Services.  The CMIS Services expose methods by which a client can:

  • Browse the repository
  • Inspect objects in the repository
  • Manipulate objects in the repository

The methods that are provided to the client are organized into 9 services.

CMIS Query Language

Categories:
Posted on: Mon, 2009-11-23 17:00

The CMIS Query Language is the means by which any CMIS compliant repository provides a read only Relation View into the repository.  As we saw in the CMIS Domain Model, support for queries is optional.  Having said that, in my humble opinion, it is highly unlikely that any self respecting CMIS compliant repository would not support relational queries.  Keep in mind that some repositories may require you to issue full text and metadata queries

Alfresco's CMIS Wiki

This is Alfresco's Developer Resource on it CMIS implementation.  In it you will find:

  • Documentation on Alfresco's implementation of CMIS
  • Links to other vendor's CMIS implementations
  • Links to CMIS toolkits and projects