CMIS

From AlfrescoWiki

Jump to: navigation, search


cmis-toolbox-small.jpg

Contents

[edit] Content Management Interoperability Services (CMIS)

CMIS Logo


What is CMIS.

The latest published CMIS 1.0 Committee Draft 04 Specification.

Keep up-to-date Cover Pages blog posts twitter press.

History

On October 23, 2009, CMIS entered Public Review with the release of CMIS 1.0 Committee Draft 04. Comments are welcome during public review which closes December 22, 2009

On August 18, 2009, Alfresco provided http://cmis.alfresco.com, a hosted version of its CMIS repository and TCK.

On October 06, 2008, OASIS issued a public call for participation in a new technical committee chartered to define specifications for use of Web services and Web 2.0 interfaces to enable information sharing across content management repositories from different vendors. The OASIS CMIS TC works "to standardize a Web services interface specification that will enable greater interoperability of Enterprise Content Management (ECM) systems. CMIS uses Web services and Web 2.0 interfaces to enable rich information to be shared across Internet protocols in vendor-neutral formats, among document systems, publishers and repositories, within one enterprise and between companies."

On October 06, 2008, Alfresco announced the availability of the first implementation of the draft CMIS Specification.

On September 10, 2008, Enterprise Content Management vendors EMC Corporation, IBM Corporation, and Microsoft Corporation announced the publication of Content Management Interoperability Services (CMIS), distributed as a ZIP archive with four prose documents and a collection of schemas, WSDLs, and XML instances. The CMIS objective is to "define a domain model and set of bindings, such as Web Service and RESTful AtomPub that can be used by applications to work with one or more Content Management repositories/systems".

[edit] Alfresco CMIS

Alfresco CMIS is a continually evolving implementation of the CMIS specification. It's released in several forms to provide the CMIS community a vehicle for experimenting with and providing feedback on CMIS as it continues towards final status, expected early 2010.

CMIS Feature Status

  • Bindings Supported: RESTful AtomPub, Web Services
  • Features Implemented: Read, Write, Query, Types, Versions, Checkout / In, Relationships, Allowable Actions
  • Features Under development: Acls, Renditions, Change Log

CMIS Version Support

  • Current version
  • Older versions
    • Community 3.2r : CMIS 0.61
    • Community 3.2 : CMIS 0.61
    • Enterprise 3.2E : CMIS 0.61 (unsupported)


Overview

Alfresco Draft CMIS Implementation


When Alfresco is installed and started, the following link http://<host>:<port>/alfresco/service/cmis/index.html provides access to the Alfresco CMIS implementation, including reference documentation for the RESTful AtomPub binding, Web Service WSDL and TCKs.

[edit] RESTful AtomPub Binding

All CMIS RESTful AtomPub services are implemented as Alfresco Web Scripts and support all Web Script capabilities such as authentication, content negotiation, and tunneling.

[edit] Web Services Binding

  • Alfresco Repository CMIS WSDL: http://<host>:<port>/alfresco/cmis

[edit] Query Language

All capabilities of CMIS QL are supported (except join between Types). The Alfresco FTS language may be embedded in the CMIS QL contains() predicate.

Alfresco Aspects may also be queried as if they were tables and joined to Types by ObjectId.

select d.*, o.* from cmis:document as d join cm:ownable as o on d.cmis:objectid = o.cmis:objectid

[edit] Test Compatibility Kits

AtomPub Binding

The CMIS AtomPub Tck provides a series of tests that exercise a provider of the CMIS AtomPub binding. Tests are implemented as a series of JUnit test cases.

The Alfresco Repository has the AtomPub TCK built-in. It's accessible from:

http://<host>:<port>/alfresco/service/cmis/index.html
AtomPub TCK

By default, the TCK tests the host Alfresco Repository, but may test any CMIS AtomPub binding provider.

Note: The TCK has now been contributed to Apache Chemistry where it is now maintained.

Web Services Binding

The CMIS Web Services Tck provides a series of tests that exercise a provider of the CMIS Web Service binding. Tests are implemented as a series of JUnit test cases.

At this time, the Web Services Tck are tied to Alfresco.

[edit] Apache Abdera CMIS Extension

Apache Abdera is an implementation of the Atom Syndication Format (RFC 4287) and Atom Publishing Protocol (RFC 5023) specifications. The CMIS RESTful AtomPub binding is an extension of the Atom Publishing Protocol. Therefore, Apache Abdera may be used as a client library to any CMIS AtomPub binding provider.

To support the custom CMIS schema, a CMIS extension for Apache Abdera is available:

Note: The CMIS extension is now part of Apache Chemistry. Note: There are in fact two extensions, which will be merged

[edit] Implementation Details

CMIS To Alfresco Mapping

The CMIS technical draft specification defines a domain model and set of API bindings.

The Alfresco Content Repository is mapped as follows:

Change List

[edit] Interoperability

Although the CMIS specification is not yet final, several initiatives are underway to implement both CMIS providers and clients.

Discussion of interoperability problems between CMIS clients or servers

[edit] CMIS Providers

Vendor Repositories

[edit] CMIS Toolkits

Client APIs, Protocol Bindings, SPI, Test Repositories

[edit] CMIS Clients (User Interfaces, Tools)

User Interfaces, Tools

[edit] PlugFests (Compatibility Testing Events)

[edit] Resources

If you still haven't had enough of CMIS...