Alfresco CMIS
Upcoming SlideShare
Loading in...5
×
 

Alfresco CMIS

on

  • 6,822 views

Alfresco has provided an implementation of CMIS ever since the first draft of the specification was announced. It is the CMIS repository that all others are compared to. In this session, you'll learn ...

Alfresco has provided an implementation of CMIS ever since the first draft of the specification was announced. It is the CMIS repository that all others are compared to. In this session, you'll learn how Alfresco maps to the CMIS domain model and explore how CMIS services such as query behave through live examples. You'll see how easy it is to build applications against CMIS including the use of unique Alfresco features such as Aspects.

Statistics

Views

Total Views
6,822
Views on SlideShare
6,821
Embed Views
1

Actions

Likes
8
Downloads
269
Comments
0

1 Embed 1

http://paper.li 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Alfresco CMIS Alfresco CMIS Presentation Transcript

    • Alfresco CMIS
      0
      David Caruana
      Chief Architect, Alfresco
      twitter: @dcaruana
    • Alfresco CMIS
      1
      I’m a Software Engineer, I would like to know…
      Is Alfresco CMIS Ready for Use?
      How Is The CMIS Domain Model Mapped?
      What Can IQuery With CMIS QL?
      How Can I Use Alfresco CMIS?
      What Extensions Are Supported?
      What’s Coming Next?
    • Recap – Meet CMIS
      2
      Client
      consumer
      read
      write
      Services
      Domain Model
      Vendor Mapping
      provider
      Content Repository
    • Recap – CMIS is an OASIS Standard
      3
      CMIS Technical Committee formed at OASIS
      CMIS V1.0
      Published
      Initiated by
      IBM, EMC
      & Microsoft
      1st Public
      Review
      2nd Public
      Review
      CMIS
      Announced
      Late
      2007
      Oct
      2009
      Jan
      2010
      Oct
      2008
      May
      2010
      Sept
      2008
    • Alfresco CMIS Timeline
      4
      The ‘Unofficial’ Reference Implementation
      CMIS Approved
      CMIS Announced
      Draft
      Labs 3c
      cmis.alfresco.com
      v1.0 CS01
      Community 3.3g
      Enterprise 3.3
      v0.61
      Community 3.2
      v1.0 CD07
      Community 3.3
      First Commit
      r8457
      June
      2010
      June
      2009
      Mar
      2008
      Apr
      2010
      Aug
      2009
      Sept
      2008
    • Alfresco CMIS Stack
      5
      Spring Surf
      Web Quick Start
      OpenCMIS Client Library
      Alfresco Server
      AtomPub Binding
      Web Services Binding
      Index
      Domain Model Mapping
      CMIS QL
      Data Model / Services
      Content Repository
    • DEMO
      6
      Explore The Alfresco CMIS Index Page
    • CMIS Type Definitions
      7
      Object
      • Type Id
      • Parent
      • Display Name
      • Abstract
      • Queryable
      • Controllable
      Property
      • Property Id
      • Display Name
      • Type
      • Required
      • Default Value
      *
      Document
      • Versionable
      • Allow Content
      Folder
      Relationship
      • Source Types
      • Target Types
      Policy
      Custom Type
    • Domain Model Mapping
      8
      CMIS Document cm:content
      CMIS Folder cm:folder
      CMIS Relationship peer association
      only if source and target map to CMIS Document / Folder
      CMIS Policy  <nothing>
      almost, we’ll come back to this!
      Sub type of CMIS Document  sub type of cm:content
      Sub type of CMIS Folder  sub type of cm:folder
      Otherwise it is not mapped
      Type Definitions
    • Domain Model Mapping
      9
      Base Types
      cmis:document, cmis:folder, cmis:relationship, cmis:policy
      Sub Types
      D|F|R|P:<namespace_prefix>:<type_name>
      D:cm:savedquery
      F:st:site
      R:ia:subscribedCalendarList
      Type IDs
    • Domain Model Mapping
      10
      cmis:namecm:name
      cmis:objectId node ref
      cmis:path display path of node ref
      cmis:objectTypeId id of mapped type definition
      cmis:creationDate, cmis:lastModificationDate auditable
      cmis:createdBy, cmis:lastModifiedBy auditable
      cmis:contentStream* cm:content
      cmis:*version*  version store history
      Base Type Properties Mapped to Alfresco Equivalents
    • Domain Model Mapping
      11
      Projected on sub type of CMIS Doc / Folder
      Property Id = <namespace_prefix>:<property_name>
      st:siteVisibility
      st:sitePreset
      Some Alfresco Property Types are not supported
      d:any, d:qname, d:category
      property is not mapped
      Custom Properties On Alfresco Sub Types
    • Domain Model Mapping
      12
      CMIS Folder hierarchy is rooted at /Company Home
      / = /Company Home
      /Data Dictionary = /Company Home/Data Dictionary
      CMIS Parent / Child mapped to cm:contains
      Other child associations are not mapped
      Peer associations are mapped
      Exclude objects whose type is not mapped to CMIS
      children and associations (target)
      Read permissions are observed
      AVM nodes are not projected through CMIS
      Folders And Documents
    • Domain Model Mapping
      13
      Models are very similar, but different enough
      CMIS Single Version Series vs Alfresco Live/Versioned Stores
      CMIS Version Series
      CMIS Version  Alfresco version node
      Alfresco live Node projects itself as latest CMIS Version
      CMIS Checkout / Cancel / CheckinAlfresco equivalent
      CMIS PWC  Alfresco Working Copy
      CMIS create document auto creates first version
      Non-versionable documents  mock single version
      version label: 0.0, major: false
      Versions
    • Domain Model Mapping
      14
      Identical Constructs
      CMIS Direct  Alfresco Inherited
      Basic Permissions
      cmis:read Alfresco “Read”
      cmis:write Alfresco “Write”
      cmis:all Alfresco “All”
      Repository Permissions
      projected as is
      Access Control
      ACL
      ACE
      • Principal
      • Permissions
      • Direct
    • Domain Model Mapping
      15
      CMIS Rendition Kind  Alfresco Rendition Definition
      kind = definition name
      cmis:thumbnail kind  Share Doc Lib Thumbnail
      Renditions
      Document
      Rendition
      *
      Content Stream
    • DEMO
      16
      Explore The Alfresco CMIS Domain Model
    • Query
      17
      Query Engine built on Alfresco Lucene Index
      Can also access via Java SearchService
      Relational Model
      Types mapped to Tables
      Properties mapped to Columns
      Query names
      Type name: ns_prefix:name
      Property name: ns_prefix:name
      Two language variants
      Strict & Alfresco
      No Join (well, more on this later)
      CMIS QL
    • Query
      18
      SELECT and FROM clauses
      Identify which properties from which types to return
      WHERE clause
      Restrict returned rows to those that meet all constraints
      Predicates: comparison, in, like, null, any, is null
      Function Predicates: contains(), in_folder(), in_tree()
      Operators: and, or, not
      ORDER BY clause
      Order results by one or more columns
      Language Features
    • Query
      19
      Full Alfresco FTS language in CONTAINS()
      http://wiki.alfresco.com/wiki/Full_Text_Search_Query_Syntax
      SCORE() used without CONTAINS()
      Multiple CONTAINS()
      Order by unselected columns
      Restrictions for IN, comparisons and LIKE are dropped
      Multi-value properties can use single-value syntax
      Implicit ANY
      Alfresco Language Variant
    • Query
      20
      All properties may be selected
      A property is queryable if indexed
      A property is orderable if
      Untokenized
      Both Untokenized and Tokenized
      Or one of the following types: d:boolean, d:datetime, d:double, d:float, d:integer, d:long, d:path
      NOTE: 3.2  3.3 upgrade requires re-index to support CMIS exact matching and ordering for cmis:name
      Lucene Indexing Considerations
    • DEMO
      21
      Example Queries
    • Aspects
      22
      Bad News
      CMIS v1.0 does not include Aspect support
    • Alfresco Wouldn’t Be Alfresco Without Aspects
      23
      Good News
      We Added Them Anyway
    • Domain Model Mapping
      24
      Aspect Definition  CMIS Policy Sub Type
      P:cm:titled
      P:cm:ownable
      Query via Join onto Aspect Policy Sub Type
      Aspect Properties  CMIS Extension
      Apply / Remove Aspect
      Get / Set Aspect Properties
      OpenCMIS support
      Aspects
    • DEMO
      25
      Aspects Do Exist…
    • 26
      Hide complexity of on-the-wire protocol
      Provides concise Object-Oriented API
      Use with any CMIS Content Repository
      Tested with all major players
      Think of as JDBC of CMIS
      Varieties
      Java – OpenCMIS
      PHP
      Python
      Open Source CMIS Client Libraries
    • What’s Next?
      27
      http://cmis.alfresco.com/preview
      OpenCMIS Server refactoring
      Browser Binding (JSON)
      plus lots more…
    • Alfresco CMIS Take Away
      28
      Alfresco CMIS first released over 2 years ago
      Full support for CMIS v1.0
      AtomPub and Web Service Bindings
      CMIS QL
      Aspects Extension
      OpenCMIS Client API
      Community 3.3, Enterprise 3.3, cmis.alfresco.com
      Remember This
    • Learn More
      29
      docs.oasis-open.org/cmis/CMIS/v1.0/cs01/
      cmis.alfresco.com
      incubator.apache.org/chemistry/
    • 30
      Shape & Color Pallette
      Normal Text
      Normal Text
      Normal Text
    • 31