Introduction to CMIS

Document Sample
Introduction to CMIS Powered By Docstoc
					 Introducing CMIS

David Caruana & Michael Farman
           25th September 2008
                                 Agenda
● Background to CMIS

● Specification Overview

● Alfresco CMIS Implementation

● Demonstration

● Next Steps
                                                        Background / History

●   Founding members                           ●   Contributing members
     ●   IBM, Microsoft, EMC                        ●   Alfresco, Open Text, SAP, Oracle
                                                        (BEA)
●   Timeline
     ●   Spec as been in development for       ●   Approach
         approx 2 years                             ●   Standardizing existing ECM
     ●   Contributing Members invited Aug 07            implementations
     ●   Draft Spec Submitted to OASIS 10th         ●   Minimizing initial scope
         Sept 2008                                  ●   For broad acceptance
                                                              What is CMIS?

●   “The objective of the CMIS standard is to define a common content
    management web services interface that can be implemented by content
    repositories and enable interoperability across repositories.”


●   A (draft) standard defining APIs to support interoperability with ECM systems
●   CMIS defines:
     ●   Model e.g. Types, Relationships
     ●   Standardised Query Language
     ●   Protocol Bindings e.g. REST, Web Services
     ●   Services e.g. Check out/in, versioning
                                                         Why CMIS?
● Most large organisations have multiple ECM solutions

● No standard across ECM systems
   ●   Proprietary specific APIs
   ●   Proprietary Query interfaces
   ●   Language dependent Java vs .Net …

● One-off integrations
   ●   No reuse
   ●   Expensive to implement, maintain
                                                                  Target Use Cases

●   Collaborative Content Creation                ●   Archival Applications
     ●   Authentication, Checkin/out, Version          ●   Properties, indexing and search
         Control
                                                  ●   Compound Documents
●   Portals                                            ●   Relationships
     ●   Browsing, properties, indexing, search
                                                  ●   Electronic Legal Discovery
                                                       ●   Versioning, properties, indexing, search
●   Mashups
     ●   URL addressability, properties
                                                     Non-Target Use Cases

● Maybe addressed in future CMIS versions

● Records Management & Compliance
    ●   Retention schedules, classification, legal holds

● Digital Asset Management
    ●   Renditions, streaming

● Web Content Management
    ●   Templates, staging, preview, deployment . . .

● Subscription/Notification Services
    ●   Event triggers
                                                  CMIS and Other Standards


●   Why not using an existing standard?
                                                   ●   WebDAV
●   JCR-170/283                                         ●   No types and properties
     ●   Java Only                                      ●   No Query
     ●   Too prescriptive                               ●   No relationships
           •   Requires changes to core ECM             ●   Tied to HTTP
               capabilities to support specific
               features and models                 ●   Atom Publishing Protocol (APP)
     ●   Not service oriented
                                                        ●   HTTP and resource specific
           •   Requires persistent connections          ●   Note: CMIS builds on APP conventions
           •   Unsuited to Mashups
                            CMIS Specification Status & Next Steps

● Successful Vendor Interoperability Workshop
    ●   All 7 vendors
    ●   CMIS Providers and Clients Tested
         •   REST and Web Services Protocol Bindings

● Draft submitted to OASIS 10th Sept 08

● Technical Committee Formed

● First Meeting 25th Sept 08

● Official Ratification TBD
                                                       Specification Overview

● Part I - Encapsulates ECM experience
    ●   Defines Domain Model
    ●   Defines Services i.e. interaction with Model
    ●   Common to ECM repositories



● Part II – Map Part I to Protocol Bindings
    ●   SOAP / WSDL
         • Leverage years of investment in infrastructure/tools
         • Service-oriented
         • Content Repository orchestration
    ●   REST
         • “Web 2.0” stack
         • Resource-oriented
         • Content syndication / publishing
                                 CMIS Domain Model


Document                  Folder
• Content                 • Container
• Metadata                • Hierarchy / Filing
• Version History         • Metadata


                    Meta Model

Relationship              Policy
• Source                  • Target
• Target
                                                             CMIS Meta Model


                         Object Type
                                                                           Property Type
                         - Type Id
                                                                           - Property Id
                         - Parent                                      *
                                                                           - Display Name
                         - Display Name
                                                                           - Type
                         - Abstract
                                                                           - Required
                         - Query-able
                                                                           - Default Value
                         - Controllable
                                                                           -…


Document          Folder Object         Relationship   Policy Object
Object Type       Type                  Object Type    Type
- Version-able                          - Allowed
- Allow Content                         Source Types
                                        - Allowed
                                        Target Types



                             Custom
                             Types
                                                              CMIS Services


    Browse                          Inspect                            Act
Repository                     Object                      Object
•Get Server Information        •Read Content               •Write Content
•Get Type Definitions          •Get Properties             •Set Properties
                               •Get Allowable Actions      •Create Folder / Doc / Relation
                                                           •Delete
                                                           •Move

                               Versioning
Navigation
                               •Walk Version History       Versioning
•Walk Folder / Doc Hierarchy
•Get Checked-out                                           •Check-out / In
                                                           •Cancel Check-out
                               Relationship                •Delete Version(s)
                               •Traverse Relationship(s)

Discovery
•Issue Query                   Policy                      Policy
                               •Get Applied Policies       •Apply / Remove
                                                                       CMIS Query

Mapping

• CMIS Meta Model mapped to a Relational View
• Virtual table exposed for each ‘query-able’ object type



SQL SELECT

• SQL-92 subset, plus support for…
• Multi-valued Properties
• Folder location
• Full Text & Score
• Type Inheritance


Example

• SELECT ObjectId, Score() AS Relevance, Destination, DepartureDates
  FROM TravelBrochure
  WHERE CONTAINS( ‘CARIBBEAN CENTRAL AMERICA CRUISE TOUR’ )
  AND ‘2010-1-1’ < ANY DepartureDates
  ORDER BY Relevance DESC
                                                       CMIS SOAP Binding

● WSDL definition…
    ●   XML schema for CMIS Domain Model
    ●   XML schema for Service messages
    ●   Direct exposure of CMIS (Part I) Services
    ●   Generate client API for almost all languages

● WS-Security & Username Token Profile (MUST)

● WS-I Basic Profile & Basic Security Profile

● MTOM content transfers
                                                     CMIS REST Binding

● ATOM Publishing Protocol
   ●   ATOM syndication format for web feeds (GET)
   ●   Create & update web resources (POST, PUT, DELETE)
   ●   Extension mechanism supported

● CMIS extension
   ●   XML Schema for CMIS Domain Model
        •   As used in SOAP Binding
   ●   New Web Resources / Method mappings

● Use any existing HTTP or ATOM client API
                                            Atom Publishing Protocol to CMIS


                                                                          Repository
                    Service                                                 Server
  Service
                                                                                                          Domain Model
  Document                               AtomPub   CMIS                                                     Schema
               Workspace                                                  Repository



        Atom
               Collection                                       Root Folder                       Type              Checked-
        Feed
                                                                   Children                     Definitions           Out


Atom       Entry               Media                 Folder                                                         Working
Entry    Resource             Resource                                        Content               Type
                                                   /Document                                                         Copy



                                     Additional
                                                   Parents/Associated         Version History   Allowable Actions    Queries
                                     Atom Feeds
                         Alfresco Draft CMIS Implementation


        • Web                                • REST
          Services                           • Test
                                               Harness
Available
                        Foster    Validate
 Now in
                       Feedback    Spec
Alfresco
 Labs 3B



                       Promote      Ease
                         CMIS     Learning

        • Alfresco                           • Open
          Repository                           Source
          Alfresco Implementation Stack


CMIS REST Client     CMIS WS Client




 CMIS REST API      CMIS Web Services

  Web Scripts

Apache Abdera
                       Apache CXF
     CMIS
   Extension


         Alfresco Repository
                                               Alfresco CMIS Strategy

● Actively contribute to specification

● Continue to update draft implementation based up updates
    ●   Provide Open Source implementation as spec evolves

● Provide 100% compliance

● Productised CMIS Client Support and Tools
Demo
                                                                Next Steps

● Alfresco wiki page on CMIS
   ●   http://wiki.alfresco.com/wiki/CMIS

● Take part in the CMIS Survey
   ●   http://wiki.alfresco.com/wiki/CMIS#References

● Download specification
   ●   http://www.alfresco.com/about/cmis/cmis-draft-v0.5.zip

● Try out Draft CMIS Implementation
   ●   Alfresco Labs 3b - http://wiki.alfresco.com/wiki/CMIS

● Subscribe to CMIS Blog
   ●   http://blogs.alfresco.com/cmis/

● Discuss in CMIS forum
   ●   http://forums.alfresco.com
    Thanks for Attending




Introducing CMIS
     Questions?
          Michael Farman
     25th September 2008

				
DOCUMENT INFO