SlideShare a Scribd company logo
1 of 58
Download to read offline
Florent Guillaume — 18 nov 2010




       CMIS
  What's next?
Agenda

• Presentation of CMIS
• Screenshots
• Apache Chemistry / OpenCMIS
• Understanding CMIS
• Future

                                2
Presentation of CMIS


                       3
Why CMIS?
• Domain Model
 • Services, objects, types, properties
 • Greatest common denominator

• Transport Protocols
 • REST/AtomPub, SOAP Web Services

• No Language API
 •    Apache Chemistry
                                          4
Interoperability

• Application / Repository
  • Client / Server

• Application      Repository
  • e.g. photo management

• Repository      Repository
  • e.g. archival, publishing

• Repository federation
                                             5

  • central access to heterogenous systems
CMIS Benefits
• Customer benefits
 • Interoperability between vendors
 • Common model
 • Desilofication
 • Commoditization

• Vendor benefits
 • Repository vendors get more apps
 • Applications vendors get more repos   6
CMIS Implementations

• Repositories
 • Nuxeo, Alfresco, Microsoft, IBM, SAP, eXo, Day, Jahia,
   KnowledgeTree, ...



• Clients
 • Nuxeo, Adobe, IBM, Microsoft, eZ Publish, Plone,
   Drupal, Joomla, ...

                                                            7
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
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
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
Screenshots


              11
Nuxeo




        12
Adobe Drive 2




                13
Adobe Drive 2




                14
Nuxeo Mobile




               15
SharePoint 2010 Connector




                            16
IBM FileNet P8




                 17
CMIS Workbench




                 18
CMIS Spaces




              19
CMIS Explorer




                20
Plone




        21
Drupal




         22
eZ Publish




             23
Joomla




         24
And many, many others...




                           25
26
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
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
                                         28
• OpenCMIS 0.1 released Sept. 2010
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
                                              29
  • Nuxeo, Alfresco, Day, Open Text, SAP...
Understanding CMIS


                     30
CMIS Bindings
• AtomPub
  • ReST base
  • URI templates

• SOAP
  • Standardized Web Services

• Browser Bindings (work in progress)
  • JSON-based

• ... more are possible                 31
CMIS Domain Model

• Objects: Folders, Documents
• Properties
 • scalars, lists
 • binary content stream
• Types
 • inheritance, constraints
 • standard properties
                                32
Folders and Documents
                         Folder
                         (root)




       Folder            Folder            Folder
        foo               bar               gee




       Doc      Folder            Folder
       001       blah              stuff




                Doc               Doc          Doc
                123               456          789



                                                     33
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]                    34


 •   dc:description: invoice for the frobmachin de janvier
Type Definition
• invoice
 •   id: invoice
 •   localName: t-invoice
 •   displayName: Invoice
 •   baseId: cmis:document
 •   parentId: record
 •   fileable: true
 •   queryable: true
 •   fulltextIndexed: true
 •   controllableACL: false
                              35
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
CMIS Services
• CRUD
• Queries
• Versioning
• Renditions
• Change Log
• Repository Info, Types
• (Multi-Filing, ACLs, Relationships, Policies)
                                                  37
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 token                               38
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
• Renditions
                                                   39
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
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
Versioning

• Version series
• Private working copy


• Check in, Check out
• Get all versions

                         42
Renditions
• Retrieve only
• Additional content streams
  • MIME type, kind, title, size

• Various uses
  • thumbnail / icon (current Nuxeo)
  • conversions (future)
    •   PDF, HTML

    •   Multi-page                     43
Relationships

• Source, Target


• Unfiled
• Not versionable
• May use referential integrity

                                  44
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
Multi-Filing, Unfiling

• Only for documents, not folders
• Zero, one or more parents
• All parents are equivalent
• Different paths
  • (If paths are supported)


                                    46
Folders and Documents
                         Folder
                         (root)




       Folder            Folder            Folder
        foo               bar               gee




      Doc       Folder            Folder
      001        blah              stuff




                Doc               Doc          Doc
                123               456          789


                                                     47
Multi-Filing, Unfiling
                          Folder
                          (root)




        Folder            Folder            Folder
         foo               bar               gee




        Doc      Folder            Folder
        001       blah              stuff




                 Doc               Doc          Doc   Doc
                 123               456          789   333


                                                            48
Future


         49
Future of CMIS

• CMIS 1.1
 • Late 2011
 • Errata, clarifications
 • Additional bindings
 • (Type mutability)

• CMIS 2.0
 • Late 2012
                                          50
 • Bigger features, non-backward compat
Future of CMIS in Nuxeo


• Relations
• Full Renditions
• ACLs
• Multi-filing
• Extensions

                          51
Relations

• Find user-level relations
• Find comments, forums, annotations, ...
• Find tags
• Query with JOIN on relations
• Migrate from Jena to VCS

                                            52
Full Renditions

• Already expose icon (thumbnail)
• Expose conversions
  • PDF renditions
  • HTML renditions
  • Resized images


                                    53
ACLs


• Expose ACLs
• Allow ACL changes
 • Grant or deny permissions




                               54
Multi-Filing


• Make proxies accessible
  • Multi-filing of the target version object

• Allow proxy creation



                                               55
Extensions
• Complex properties access
• Improve CMISQL expressivity
  • DISTINCT, COUNT, GROUP BY, date arithmetic,
    extended CONTAINS

• Transaction demarcation
• Locking
• Workflow
• Content automation (Operations)                 56
Thank you!
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

More Related Content

Similar to Nuxeo World Session: CMIS - What's Next?

Git.From thorns to the stars
Git.From thorns to the starsGit.From thorns to the stars
Git.From thorns to the stars
Strannik_2013
 
Chemical Databases and Open Chemistry on the Desktop
Chemical Databases and Open Chemistry on the DesktopChemical Databases and Open Chemistry on the Desktop
Chemical Databases and Open Chemistry on the Desktop
Marcus Hanwell
 
DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻
都元ダイスケ Miyamoto
 
Open Source Visualization of Scientific Data
Open Source Visualization of Scientific DataOpen Source Visualization of Scientific Data
Open Source Visualization of Scientific Data
Marcus Hanwell
 

Similar to Nuxeo World Session: CMIS - What's Next? (20)

Avogadro, Open Chemistry and Semantics
Avogadro, Open Chemistry and SemanticsAvogadro, Open Chemistry and Semantics
Avogadro, Open Chemistry and Semantics
 
PLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldPLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real World
 
Git.From thorns to the stars
Git.From thorns to the starsGit.From thorns to the stars
Git.From thorns to the stars
 
PLAT-3 CMIS — What’s coming next?
PLAT-3 CMIS — What’s coming next?PLAT-3 CMIS — What’s coming next?
PLAT-3 CMIS — What’s coming next?
 
Chemical Databases and Open Chemistry on the Desktop
Chemical Databases and Open Chemistry on the DesktopChemical Databases and Open Chemistry on the Desktop
Chemical Databases and Open Chemistry on the Desktop
 
DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻
 
Discovery Interfaces
Discovery InterfacesDiscovery Interfaces
Discovery Interfaces
 
PLAT-2 CMIS - What’s coming next?
PLAT-2 CMIS - What’s coming next?PLAT-2 CMIS - What’s coming next?
PLAT-2 CMIS - What’s coming next?
 
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
 
Building bridges - Plone Conference 2015 Bucharest
Building bridges   - Plone Conference 2015 BucharestBuilding bridges   - Plone Conference 2015 Bucharest
Building bridges - Plone Conference 2015 Bucharest
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
 
CNIT 152: 13 Investigating Mac OS X Systems
CNIT 152: 13 Investigating Mac OS X SystemsCNIT 152: 13 Investigating Mac OS X Systems
CNIT 152: 13 Investigating Mac OS X Systems
 
Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMIS
 
Zero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExZero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApEx
 
Drupal case study: Behind the scenes of website of University of Tartu
Drupal case study: Behind the scenes of website of University of TartuDrupal case study: Behind the scenes of website of University of Tartu
Drupal case study: Behind the scenes of website of University of Tartu
 
Drupal In 1 Hour
Drupal In 1 HourDrupal In 1 Hour
Drupal In 1 Hour
 
Open Source Visualization of Scientific Data
Open Source Visualization of Scientific DataOpen Source Visualization of Scientific Data
Open Source Visualization of Scientific Data
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
 
CNIT 121: 13 Investigating Mac OS X Systems
CNIT 121: 13 Investigating Mac OS X SystemsCNIT 121: 13 Investigating Mac OS X Systems
CNIT 121: 13 Investigating Mac OS X Systems
 

More from Nuxeo

Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Nuxeo
 

More from Nuxeo (20)

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage Companies
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain Future
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a Pandemic
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and Nuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to Support
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM Continuum
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovante
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et Nuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the Competition
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAM
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and Beyond
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof Technologies
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial Intelligence
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

Nuxeo World Session: CMIS - What's Next?

  • 1. Florent Guillaume — 18 nov 2010 CMIS What's next?
  • 2. Agenda • Presentation of CMIS • Screenshots • Apache Chemistry / OpenCMIS • Understanding CMIS • Future 2
  • 4. Why CMIS? • Domain Model • Services, objects, types, properties • Greatest common denominator • Transport Protocols • REST/AtomPub, SOAP Web Services • No Language API • Apache Chemistry 4
  • 5. Interoperability • Application / Repository • Client / Server • Application Repository • e.g. photo management • Repository Repository • e.g. archival, publishing • Repository federation 5 • central access to heterogenous systems
  • 6. CMIS Benefits • Customer benefits • Interoperability between vendors • Common model • Desilofication • Commoditization • Vendor benefits • Repository vendors get more apps • Applications vendors get more repos 6
  • 7. CMIS Implementations • Repositories • Nuxeo, Alfresco, Microsoft, IBM, SAP, eXo, Day, Jahia, KnowledgeTree, ... • Clients • Nuxeo, Adobe, IBM, Microsoft, eZ Publish, Plone, Drupal, Joomla, ... 7
  • 8. 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
  • 9. 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
  • 10. 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
  • 12. Nuxeo 12
  • 21. Plone 21
  • 22. Drupal 22
  • 24. Joomla 24
  • 25. And many, many others... 25
  • 26. 26
  • 27. 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
  • 28. 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 28 • OpenCMIS 0.1 released Sept. 2010
  • 29. 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 29 • Nuxeo, Alfresco, Day, Open Text, SAP...
  • 31. CMIS Bindings • AtomPub • ReST base • URI templates • SOAP • Standardized Web Services • Browser Bindings (work in progress) • JSON-based • ... more are possible 31
  • 32. CMIS Domain Model • Objects: Folders, Documents • Properties • scalars, lists • binary content stream • Types • inheritance, constraints • standard properties 32
  • 33. Folders and Documents Folder (root) Folder Folder Folder foo bar gee Doc Folder Folder 001 blah stuff Doc Doc Doc 123 456 789 33
  • 34. 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] 34 • dc:description: invoice for the frobmachin de janvier
  • 35. Type Definition • invoice • id: invoice • localName: t-invoice • displayName: Invoice • baseId: cmis:document • parentId: record • fileable: true • queryable: true • fulltextIndexed: true • controllableACL: false 35
  • 36. 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
  • 37. CMIS Services • CRUD • Queries • Versioning • Renditions • Change Log • Repository Info, Types • (Multi-Filing, ACLs, Relationships, Policies) 37
  • 38. 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 token 38
  • 39. 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 • Renditions 39
  • 40. 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
  • 41. 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
  • 42. Versioning • Version series • Private working copy • Check in, Check out • Get all versions 42
  • 43. Renditions • Retrieve only • Additional content streams • MIME type, kind, title, size • Various uses • thumbnail / icon (current Nuxeo) • conversions (future) • PDF, HTML • Multi-page 43
  • 44. Relationships • Source, Target • Unfiled • Not versionable • May use referential integrity 44
  • 45. 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
  • 46. Multi-Filing, Unfiling • Only for documents, not folders • Zero, one or more parents • All parents are equivalent • Different paths • (If paths are supported) 46
  • 47. Folders and Documents Folder (root) Folder Folder Folder foo bar gee Doc Folder Folder 001 blah stuff Doc Doc Doc 123 456 789 47
  • 48. Multi-Filing, Unfiling Folder (root) Folder Folder Folder foo bar gee Doc Folder Folder 001 blah stuff Doc Doc Doc Doc 123 456 789 333 48
  • 49. Future 49
  • 50. Future of CMIS • CMIS 1.1 • Late 2011 • Errata, clarifications • Additional bindings • (Type mutability) • CMIS 2.0 • Late 2012 50 • Bigger features, non-backward compat
  • 51. Future of CMIS in Nuxeo • Relations • Full Renditions • ACLs • Multi-filing • Extensions 51
  • 52. Relations • Find user-level relations • Find comments, forums, annotations, ... • Find tags • Query with JOIN on relations • Migrate from Jena to VCS 52
  • 53. Full Renditions • Already expose icon (thumbnail) • Expose conversions • PDF renditions • HTML renditions • Resized images 53
  • 54. ACLs • Expose ACLs • Allow ACL changes • Grant or deny permissions 54
  • 55. Multi-Filing • Make proxies accessible • Multi-filing of the target version object • Allow proxy creation 55
  • 56. Extensions • Complex properties access • Improve CMISQL expressivity • DISTINCT, COUNT, GROUP BY, date arithmetic, extended CONTAINS • Transaction demarcation • Locking • Workflow • Content automation (Operations) 56
  • 58. 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