CMIS
From AlfrescoWiki
Contents |
[edit] Content Management Interoperability Services (CMIS)
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
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)
- Alfresco Draft CMIS Implementation
- Hosted Alfresco Draft CMIS Implementation (username/password=demo/demo) Alfresco CMIS Demo Site
- EMC Documentum
- IBM FileNet P8 Content Manager 4.0
- sensenet
- Day Software (hosted)
[edit] CMIS Toolkits (Client APIs, Protocol Bindings, SPI, Test Repositories)
- Apache Chemistry
- CMIS FileShare by Florian Mueller
- NCMIS (.NET)
- PHP CMIS Client API Module
- Flex CMIS Client API
- CMIS Spaces ActionScript (Flex+Browser, Flex+AIR) Client APIs for both CMIS Atom REST and CMIS Web Services
[edit] CMIS Clients (User Interfaces, Tools)
- CMIS Federated Search from AIIM iECM Demo
- Drupal CMIS Alfresco Module
- Joomla Integration
- Shane Johnson's Flex/AIR CMIS Browser Source code Google Group
- Steve Reiner's CMIS Spaces Flex+AIR and Flex+Browser Clients Source code Google Group
- Sten Andersons JavaFX Client
- Jan Pfitzner's Ext GWT Client
- Integrating External Document Repositories with SharePoint Server 2007
- sensenet CMIS Client sensenet CMIS Aggregation
[edit] Events
[edit] PlugFests (Compatibility Testing Events)
- Redmond Aug 08
- Basel Apr 09 Report Day 1 live Day 2 live and results Day 1 report Day 2 report Interop Videos
[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:
- Support for the CMIS REST API Binding
- Support for the CMIS Web Services API Binding
- Support for the CMIS Query Language providing SQL-like querying of the repository including location, properties, and full-text
- Apache Abdera (Atom Syndication/Publishing Library) CMIS Extension
- A CMIS REST API Binding Test Harness
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.
- CMIS Web Scripts Reference
- Alfresco Repository CMIS Service Document: http://<host>:<port>/alfresco/service/api/cmis
[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:
[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 Press Release
- Read what our CTO, John Newton has to say about CMIS
- Alfresco Labs 3 Final download
- Alfresco Draft CMIS Implementation Blog
- Alfresco Draft CMIS Implementation Forum
Alfresco CMIS Materials:
EMC, IBM & Microsoft:
- EMC Corporation Press Release EMC Developer Network: CMIS Community EMC CMIS Webinar
- IBM's WebSite IBM CMIS Prototype for FileNet P8 Content Manager 4.0
- Microsoft Sharepoint Blog Announcement, Microsoft ECM Blog Announcement
Categories: CMIS | 3.0


