nuxeo world session: cmis - what's next?
DESCRIPTION
Presentation from Florent Guillaume at Nuxeo World 2010 (November 17-18, 2010) on CMIS and Nuxeo.TRANSCRIPT
![Page 1: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/1.jpg)
Florent Guillaume — 18 nov 2010
CMISWhat's next?
![Page 2: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/2.jpg)
Agenda
• Presentation of CMIS
• Screenshots
• Apache Chemistry / OpenCMIS
• Understanding CMIS
• Future
2
![Page 3: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/3.jpg)
Presentation of CMIS
3
![Page 4: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/4.jpg)
Why CMIS?
• Domain Model
• Services, objects, types, properties
• Greatest common denominator
• Transport Protocols
• REST/AtomPub, SOAP Web Services
• No Language API
• ⇒ Apache Chemistry4
![Page 5: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/5.jpg)
Interoperability
• Application / Repository
• Client / Server
• Application ↔ Repository
• e.g. photo management
• Repository ↔ Repository
• e.g. archival, publishing
• Repository federation
• central access to heterogenous systems5
![Page 6: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/6.jpg)
CMIS Benefits
• Customer benefits
• Interoperability between vendors
• Common model
• Desilofication
• Commoditization
• Vendor benefits
• Repository vendors get more apps
• Applications vendors get more repos 6
![Page 7: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/7.jpg)
CMIS Implementations
• Repositories
• Nuxeo, Alfresco, Microsoft, IBM, SAP, eXo, Day, Jahia, KnowledgeTree, ...
• Clients
• Nuxeo, Adobe, IBM, Microsoft, eZ Publish, Plone, Drupal, Joomla, ...
7
![Page 8: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/8.jpg)
History of CMIS (I)
• Founding members (from iECM) work on a new standard
• 2006
• EMC, IBM, Microsoft
• Contributing members invited for review
• Aug 2007
• Alfresco, Open Text, Oracle, SAP
8
![Page 9: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/9.jpg)
History of CMIS (II)
• Draft spec submitted to OASIS
• September 2008
• OASIS committee formed
• November 2008
• First public draft released
• October 2009
• CMIS 1.0 standard approved
• May 2010 9
![Page 10: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/10.jpg)
History of CMIS (III)
• OASIS TC members today
• Adobe, Adullact, Alfresco, ASG Software Solutions, Booz Allen Hamilton, Citytech, Content Technologies, Day, dotCMS, Ektron, EMC, Entropysoft, Exalead, FatWire, Fidelity Investments, Flatirons Solutions, fme, Genus Technologies, Greenbytes, Harris Corp, IBM, Magnolia, Microsoft, Nuxeo, Open Text, Oracle, Pearson, Quark, SAP, Saperion, Structured Software Systems, Sun, Vamosa, Vignette, WeWebU
10
![Page 11: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/11.jpg)
Screenshots
11
![Page 12: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/12.jpg)
Nuxeo
12
![Page 13: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/13.jpg)
Adobe Drive 2
13
![Page 14: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/14.jpg)
Adobe Drive 2
14
![Page 15: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/15.jpg)
Nuxeo Mobile
15
![Page 16: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/16.jpg)
SharePoint 2010 Connector
16
![Page 17: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/17.jpg)
IBM FileNet P8
17
![Page 18: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/18.jpg)
CMIS Workbench
18
![Page 19: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/19.jpg)
CMIS Spaces
19
![Page 20: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/20.jpg)
CMIS Explorer
20
![Page 21: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/21.jpg)
Plone
21
![Page 22: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/22.jpg)
Drupal
22
![Page 23: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/23.jpg)
eZ Publish
23
![Page 24: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/24.jpg)
Joomla
24
![Page 25: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/25.jpg)
And many, many others...
25
![Page 26: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/26.jpg)
26
![Page 27: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/27.jpg)
Apache Chemistry
• Incubating project• Started in 2009
• http://incubator.apache.org/chemistry/
• Implement the whole CMIS spec
• Client-side• Java (OpenCMIS)
• Python, PHP, JavaScript
• Server-side• Java (OpenCMIS)
27
![Page 28: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/28.jpg)
Apache Chemistry History
• Original Apache Chemistry project
• Day, Nuxeo in 2009
• OpenCMIS started privately
• Alfresco, Open Text, SAP
• Proposed to Apache in December 2009
• Chemistry and OpenCMIS merge
• 3 days of meetings in April 2010
• OpenCMIS 0.1 released Sept. 201028
![Page 29: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/29.jpg)
OpenCMIS Facts
• 90,000 lines of Java
• OSGi bundles
• 5 JARs needed for a client
• Built with Maven
• Covers all aspects of the spec
• Extensible
• Lots of tests
• Contributors
• Nuxeo, Alfresco, Day, Open Text, SAP...29
![Page 30: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/30.jpg)
Understanding CMIS
30
![Page 31: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/31.jpg)
CMIS Bindings
• AtomPub
• ReST base
• URI templates
• SOAP
• Standardized Web Services
• Browser Bindings (work in progress)
• JSON-based
• ... more are possible 31
![Page 32: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/32.jpg)
CMIS Domain Model
• Objects: Folders, Documents
• Properties
• scalars, lists
• binary content stream
• Types
• inheritance, constraints
• standard properties32
![Page 33: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/33.jpg)
Folders and Documents
33
Folder(root)
Folderfoo
Folderbar
Folderblah
Folderstuff
Foldergee
Doc123
Doc456
Doc789
Doc001
![Page 34: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/34.jpg)
Document Properties
• 5ba79978-a87f-4146-9dd4-5197c5ac0962• cmis:objectId: 5ba79978-a87f-4146-9dd4-5197c5ac0962
• cmis:objectTypeId: invoice
• cmis:name: My Document
• cmis:creationDate: 2010-01-25T10:20:53.286-08:00
• cmis:createdBy: florent
• cmis:contentStreamFileName: mydocument.pdf
• cmis:contentStreamMimeType: application/pdf
• cmis:isLatestVersion: true
• cmis:versionLabel: 1.5
• dc:subject: [example, sample, frobs]
• dc:description: invoice for the frobmachin de janvier
34
![Page 35: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/35.jpg)
Type Definition
• invoice• id: invoice• localName: t-invoice• displayName: Invoice• baseId: cmis:document• parentId: record• fileable: true• queryable: true• fulltextIndexed: true• controllableACL: false
35
![Page 36: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/36.jpg)
Type Definition Properties
• invoice• cmis:objectId: ID• cmis:objectTypeId: ID• cmis:name: String• cmis:creationDate: DateTime (read-only)• cmis:createdBy: String (read-only)• cmis:lastModificationDate: DateTime• cmis:isLatestVersion: Boolean• dc:subject: String (multi-valued, not required)• dc:description: String
36
![Page 37: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/37.jpg)
CMIS Services
• CRUD
• Queries
• Versioning
• Renditions
• Change Log
• Repository Info, Types
• (Multi-Filing, ACLs, Relationships, Policies)37
![Page 38: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/38.jpg)
Repository Info
• When connecting, list repositories
• Find out repository capabilities
• Implemented services, tree-based navigation, multi-filing, unfiling, query capabilities, ...
• Get repository-wide information
• Description, vendor, CMIS version, ...
• Root folder ID
• Latest change log token38
![Page 39: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/39.jpg)
Retrieve
• By ID (5ba79978-a87f-4146-9dd4-5197c5ac0962)
• By Path (/default-domain/workspace/main/mydoc)
• By Query on properties / content
• Parent(s) / Children / Tree
• Content Stream
• Allowable Actions
• Renditions39
![Page 40: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/40.jpg)
Query
• Retrieve by properties / content
• SQL-like Language: CMISQL
• Type → Table
• Object → Row
• Property → Column
• Multi-Valued, Fulltext with score, JOIN
• SELECT only
• no UPDATE or DELETE 40
![Page 41: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/41.jpg)
Create, Update, Delete
• Create
• May include a content stream
• Update
• May verify a change token (optimistic locking)
• May change ID (auto-versioning)
• May check in
• Delete
• May delete all versions 41
![Page 42: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/42.jpg)
Versioning
• Version series
• Private working copy
• Check in, Check out
• Get all versions
42
![Page 43: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/43.jpg)
Renditions
• Retrieve only
• Additional content streams
• MIME type, kind, title, size
• Various uses
• thumbnail / icon (current Nuxeo)
• conversions (future)
• PDF, HTML
• Multi-page 43
![Page 44: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/44.jpg)
Relationships
• Source, Target
• Unfiled
• Not versionable
• May use referential integrity
44
![Page 45: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/45.jpg)
Change Log
• List of chronological changes
• Create, update, delete
• ID of object
• (Properties, ACLs)
• Since a given date (change log token)
• May not be available since “forever”
45
![Page 46: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/46.jpg)
Multi-Filing, Unfiling
• Only for documents, not folders
• Zero, one or more parents
• All parents are equivalent
• Different paths
• (If paths are supported)
46
![Page 47: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/47.jpg)
Folders and Documents
47
Folder(root)
Folderfoo
Folderbar
Folderblah
Folderstuff
Foldergee
Doc123
Doc456
Doc789
Doc001
![Page 48: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/48.jpg)
Multi-Filing, Unfiling
48
Folder(root)
Folderfoo
Folderbar
Folderblah
Folderstuff
Foldergee
Doc123
Doc456
Doc789
Doc333
Doc001
![Page 49: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/49.jpg)
Future
49
![Page 50: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/50.jpg)
Future of CMIS
• CMIS 1.1
• Late 2011
• Errata, clarifications
• Additional bindings
• (Type mutability)
• CMIS 2.0
• Late 2012
• Bigger features, non-backward compat50
![Page 51: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/51.jpg)
Future of CMIS in Nuxeo
• Relations
• Full Renditions
• ACLs
• Multi-filing
• Extensions
51
![Page 52: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/52.jpg)
Relations
• Find user-level relations
• Find comments, forums, annotations, ...
• Find tags
• Query with JOIN on relations
• Migrate from Jena to VCS
52
![Page 53: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/53.jpg)
Full Renditions
• Already expose icon (thumbnail)
• Expose conversions
• PDF renditions
• HTML renditions
• Resized images
53
![Page 54: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/54.jpg)
ACLs
• Expose ACLs
• Allow ACL changes
• Grant or deny permissions
54
![Page 55: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/55.jpg)
Multi-Filing
• Make proxies accessible
• Multi-filing of the target version object
• Allow proxy creation
55
![Page 56: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/56.jpg)
Extensions
• Complex properties access
• Improve CMISQL expressivity
• DISTINCT, COUNT, GROUP BY, date arithmetic, extended CONTAINS
• Transaction demarcation
• Locking
• Workflow
• Content automation (Operations) 56
![Page 57: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/57.jpg)
Thank you!
![Page 58: Nuxeo World Session: CMIS - What's Next?](https://reader033.vdocument.in/reader033/viewer/2022052904/557c0583d8b42ad1658b4646/html5/thumbnails/58.jpg)
Questions?
• http://doc.nuxeo.com/display/NXDOC/CMIS+for
+Nuxeo
• http://docs.oasis-open.org/cmis/CMIS/v1.0/cs01/
cmis-spec-v1.0.html
• http://incubator.apache.org/chemistry/
58