3. Meeting, Date, Location
Content Management Interoperability Services
(CMIS)
An open standard, ensuring CMS
interoperability
Abstraction layer
Defined protocols and domain
model
Common data model with generic
properties
4. T3CON14 Berlin
CMIS Benefits
Easy to learn and adopt
Supported by the widest range of vendors and user organizations
(e.g. Alfresco, Sharepoint, Magnolia, Adobe, Nuxeo)
End users can use one application to access / exchange
documents between various systems supported CMIS
Libraries for Java, Python, .NET, Objective-C and PHP
Standard service API
6. Meeting, Date, Location
CMIS Use Cases
Repository to Repository: CMIS talk directly to each other
Application to Repository: E.g. End user gets information from a
mobile website via CMIS
!
10. Meeting, Date, Location
Services
Services Description
Repository Services Used to get information and capabilities of a repository
Navigation Services Used to traverse the repository‘s folder hierarchy
Object Services Used to perform CRUD operations on objects
Multi-filing Services
If the repository supports storing an object in more than one folder,
this service handles it
Discovery Services Used to handle queries
Versioning Services Used to checkout documents and work with document versions
Relationship Services Used to query an object for its relationships
Policy Services Used to apply, remove, and query for policies
ACL Services Used to manage the ACL of an object
12. T3CON14 Berlin
Web Services Binding
Maps CMIS operations directly to SOAP calls (Simple Object
Access Protocol)
Covers entire CMIS specification
Authentication:
WS-Security 1.1 or Username Token Profile 1.1
other authentication mechanisms
CMIS repository needs MTOM (Message Transmission
Optimization Mechanism) for content transfer
13. T3CON14 Berlin
AtomPub Binding
Built on the AtomPub specification (mainly designed for publishing
and simple editing of resources)
Extends AtomPub to support features like hierarchies, versioning,
renditions, permissions, and so on.
Follows REST paradigm by using HTTP methods GET, POST,
PUT, DELETE
Recommended Authentication:
HTTP Basic Authentication in conjunction with SSL
14. T3CON14 Berlin
AtomPub Binding
Disadvantages:
Covers not the entire specification (e.g. does not support
createDocumentFromSource())
Mostly needs two HTTP calls to access the content of a
document: get document’s Atom entry which contains the
AtomPub Link to the content
15. T3CON14 Berlin
Browser Binding
Based on JSON (JavaScript Object Notation)
HTTP methods:
GET (read), POST (create, update, delete)
Covers entire specification
Recommended authentication:
HTTP Basic Authentication for non-browser Clients
Authentication with Tokens for browser Clients
16. T3CON14 Berlin
Browser Binding Benefits
More compact and performant than AtomPub and Web Services
Binding
Suitable for use in mobile and browser apps
Additional client libraries are not necessary
17. T3CON14 Berlin
Why we need CMIS 1.1 (1/2)
Main new features:
Type Mutability: CMIS clients can create, modify and delete
type definitions (see Data Model)
Secondary object types: set of properties that can be
dynamically added and removed from CMIS objects
Browser Binding
Supports bulk property updates with a single service call
18. T3CON14 Berlin
Why we need CMIS 1.1 (2/2)
Main new features:
New Item object type: exposes any other object types via CMIS
that do not fit the model's definition for document, folder,
relationship or policy
Append to a content stream: CMIS 1.1 allows to move large
files in chunks into the repository
20. T3CON14 Berlin
Current status
Several CMIS Extensions for TYPO3 CMS already available, BUT
they are not be maintained/updated since years
do support only CMIS 1.0
Disadvantages of existing CMIS library for PHP (Apache
Chemistry)
Not CMIS 1.1. compatible
Not object-oriented
22. T3CON14 Berlin
Table configuration array (TCA)
Database field definition beyond SQL possibilities
type of a field (text, date, select field, checkbox, etc.)
what field should be displayed in the Backend and in which
layout
how to validate the content of the field (required, integer, etc.)
define relation between records / TCA tables
highly extensible to implement own validators or special field
types
23. T3CON14 Berlin
File abstraction layer (FAL)
Abstract API to store files
Support for multiple „storages“
Each storage has a driver that communicates with the target
system
Available Drivers and ideas: Local, WebDAV, Dropbox, FTP,
Amazon S3, Flickr, Database, CMIS
27. T3CON14 Berlin
Neos Nodes vs. CMIS
Neos
Storage inspired on the PHP based JCR implementation
PHPCR
TYPO3 CR offers some funky / future features (Dimensions)
JCR / PHPCR Nodes can be translated to a CMIS compatible
format
Expectations are high that PHPCR <-> CMIS is way more easy to
realize than TCA+FAL <-> CMIS
29. T3CON14 Berlin
Benefits for Web CMS
Content gets decoupled from presentation layer
Specialized Applications doing one job right
„Future proof“
Reduction of redundancies, many content objects are used in
production systems and those can be linked to CMIS repository
Expanding possibilities
31. T3CON14 Berlin
A real php-CMIS-lib
dkd is currently building an open source version of a CMIS library
in php as part of the ForgetIT project
following the java implementation to keep interfaces consistent
threaded, object oriented, scalable
supporting CMIS V 1.1
> Want to contribute? Talk to us!
32. T3CON14 Berlin
Roadmap
First version Q1/2015
browserbindings
CRUD for standard TCA objects
More features as CMIS evolves and gets accepted by TYPO3
community as additional content repository technology
Native Support in TYPO3 CMS 7 onwards?
33. T3CON14 Berlin
Where to get more information …
Book: CMIS and Apache Chemistry
CMIS - OASIS Specs/Site
http://docs.oasis-open.org/cmis/CMIS/v1.1/cs01/CMIS-v1.1-cs01.html
Apache Chemistry
http://chemistry.apache.org
Alternative TER Plugins
http://typo3.org/extensions/repository/?id=23&L=0&q=CMIS&tx_solr%5Bfilter%5D%5Boutdated%5D=outdated%3AshowOutdateddf