CMIS

From AlfrescoWiki

Jump to: navigation, search


cmis-toolbox-small.jpg

Contents

[edit] Content Management Interoperability Services (CMIS)

CMIS Logo


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".

On the same day, Alfresco announced the availability of the first implementation of the draft CMIS Specification.

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."

Alfresco is a CMIS TC participant.

[edit] Learn more about CMIS

OASIC CMIS: TC charter

CMIS Specification: v0.61

CMIS News: press blog posts twitter Cover Pages

[edit] Known Implementations of CMIS

Although the CMIS specification is still in a draft state, 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)

[edit] Events

[edit] PlugFests (Compatibility Testing Events)

[edit] Alfresco Draft CMIS Implementation

The Alfresco Draft CMIS Implementation (Project Seamist) is available as part of Alfresco Labs. This allows you to gain hands-on experience with the specification as a CMIS provider or client.

  • For up-to-date news on the Draft Implementation, see the CMIS Blog
  • To discuss the Draft Implementation or CMIS in general, visit the CMIS Forum

The Draft CMIS Implementation provides:

Alfresco Draft CMIS Implementation

When installed and started, the Alfresco Repository URI http://<host>:<port>/alfresco/service/api/cmis.html provides access to the Alfresco Draft CMIS Implementation, including reference documentation for the RESTful AtomPub binding, test harnesses and Web Service WSDL.

[edit] Specification Compliance

Alfresco Labs (HEAD svn) currently supports the CMIS v0.61 specification.

[edit] RESTful AtomPub Binding

The Alfresco Content Repository provides the CMIS RESTful AtomPub v0.61 binding, an extension of the Atom Publishing Protocol. 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] RESTful AtomPub Binding Test Harness

The Alfresco test harness exercises the CMIS RESTful AtomPub binding. It's available in the following flavors:

  • JUnit test
  • Test Harness Web Page: http://<host>:<port>/alfresco/service/api/cmis.html

By default, the test executes against the Alfresco Draft CMIS Implementation. However, you can test any CMIS RESTful AtomPub binding provider by adjusting one or more of the following settings:

  • Service URI
  • Username/Password (BASIC HTTP Authentication, for now)
  • Validate Responses (against CMIS specification XSDs)
  • Trace Request/Responses
  • Argument Style (URL or Headers)

The test harness also doubles as an excellent set of Java CMIS client samples:

Example of test harness as a Web Page:

Alfresco CMIS Unit Tests

[edit] Web Services Binding

The Alfresco Content Repository provides the CMIS Web Services v0.61 binding.

  • Alfresco Repository CMIS WSDL: http://localhost:8080/alfresco/cmis

[edit] Query Languages

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

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

SELECT D.*, O.* FROM DOCUMENT AS D JOIN CM_OWNABLE AS O ON (D.ObjectId = O.ObjectId)

[edit] 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:

[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 REST API binding is an extension of the Atom Publishing Protocol. Therefore, Apache Abdera may be used as a client library to any CMIS REST provider.

To support the custom CMIS schema, the Alfresco Draft Implementation provides a CMIS extension to Apache Abdera.

[edit] Samples and Other Developer Resources

We've assembled a collection of developer resources in the Content Community including a CMIS dashlet sample and a video that walks developers through the code. You can find these and more in the CMIS space of the Developer Toolbox.

[edit] References

Alfresco Draft CMIS Implementation:

Alfresco CMIS Materials:

EMC, IBM & Microsoft: