This webinar presentation introduces Content Management Interoperability Services (CMIS) and how it enables connecting content management applications. CMIS provides a standard domain model and services for querying and manipulating documents and folders across different content repositories. The presentation covers Nuxeo's early involvement in developing CMIS, how to write code that works across repositories, the CMIS specification and Apache Chemistry reference implementation, and considerations for using CMIS in applications. Live examples demonstrate adding a document to a folder using CMIS.
2. Housekeeping
Use the Q&A panel to ask
questions during the webinar.
OR
Ask us on twitter using
#nuxeoCMIS
Questions will be answered at the end of the
presentation
4. Agenda
4
• The need for ECM interoperability
• CMIS timeline & Nuxeo’s early leadership
• Quick look at some code
• About the CMIS spec
• Apache Chemistry: A reference implementation
• Getting started
• Live Example
• Things to watch out for
• Q & A
8. Content Management Interoperability Services
• Domain Model
• Document, Folder, Relationship, Item, Type,
Secondary Type (Aspect), ACL
• Services
• Query Language
• Subset of SQL
• Bindings
• Browser (JSON)
• Atom Pub (XML)
• Web Services
#nuxeoCMIS
9. Nuxeo Got Involved Early
2008: Nuxeo joins OASIS to work on the spec
2009: Nuxeo proposes Apache Chemistry project
• 5 out of 9 of the original committers are from Nuxeo
2011: Apache Chemistry becomes a top-level project
2013: CMIS 1.1 becomes an OASIS standard
2010: CMIS 1.0 becomes an OASIS standard
#nuxeoCMIS
11. CMIS Addresses Interoperability
72% of enterprises have more than one
ECM repository…25% have three or more
“State of the ECM Industry,” AIIM, 2011
#nuxeoCMIS
12. Let’s Look at Some Code
GOAL:
Write Java code that will add a document
to a folder that will work when run against
any CMIS repository.
#nuxeoCMIS
17. CMIS Query Language
SELECT cmis:objectId, cmis:name,
cmis:description, dc:contributors
FROM cmis:document
WHERE cmis:name like 'sample%'
SELECT cmis:objectId, cmis:name,
cmis:description, dc:contributors
FROM cmis:document
WHERE CONTAINS('white paper')
18. Read the Spec
CMIS Specification Home Page
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis
Current Version: CMIS 1.1
Approved: December, 2012
#nuxeoCMIS
21. Dealing with Different Repositories
• Imagine writing an industry specification that
must work for repositories that already exist
• Challenge:
1.Be flexible enough to support the broad
range of functionality in the industry
2.Be descriptive enough to add value as a
standard
#nuxeoCMIS
22. Nuxeo 7.1 Repository Capabilities
Vendor Info
Capabilities
Root folder ID
Change token
#nuxeoCMIS
25. CMIS in the Real World
• Renditions, renditions, renditions...
• Use case: Get all changed documents
• Use case: Content migrations
#nuxeoCMIS
26. Things to Know
• Pay attention to repository capabilities
• Cache the CMIS Session
• Treat object IDs as opaque
• Prefer the browser binding
• What you ask for can affect performance
• getDescendants(), getChildren()
• select * from cmis:document
• Large documents?
• appendContentStream()
• Change tokens
#nuxeoCMIS