Introduction to CMIS

Document Sample
Introduction to CMIS Powered By Docstoc
					 Introducing CMIS

David Caruana & Michael Farman
           25th September 2008
● 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
●   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
                                                  ●   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

                                                              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

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

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


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


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


• SELECT ObjectId, Score() AS Relevance, Destination, DepartureDates
  FROM TravelBrochure
  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

                    Service                                                 Server
                                                                                                          Domain Model
  Document                               AtomPub   CMIS                                                     Schema
               Workspace                                                  Repository

               Collection                                       Root Folder                       Type              Checked-
                                                                   Children                     Definitions           Out

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

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

        • Web                                • REST
          Services                           • Test
                        Foster    Validate
 Now in
                       Feedback    Spec
 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

         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
                                                                Next Steps

● Alfresco wiki page on CMIS

● Take part in the CMIS Survey

● Download specification

● Try out Draft CMIS Implementation
   ●   Alfresco Labs 3b -

● Subscribe to CMIS Blog

● Discuss in CMIS forum
    Thanks for Attending

Introducing CMIS
          Michael Farman
     25th September 2008