Your SlideShare is downloading. ×
PLAT-1 CMIS in the Real World
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

PLAT-1 CMIS in the Real World


Published on

This session will provide an overlook of the adoption of CMIS after one year from it’s ratification as OASIS standard. By providing several real life deployment success stories and integration …

This session will provide an overlook of the adoption of CMIS after one year from it’s ratification as OASIS standard. By providing several real life deployment success stories and integration scenarios, we’ll offer a close look to the many practical applications of the standard, especially leveraging the Apache Chemistry OpenCMIS implementation. We will conclude presenting highlights of the Alfresco CMIS strategy and discuss more advanced aspects of our CMIS implementation like performance and compliance.

Published in: Technology

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. CMIS in the “real world”Or “Why bother writing custom APIs when you have standard ones”?
  • 2. AgendaHow did we get here? •  From Babel to Esperanto •  CMIS quick reference cardHow & What can I build? •  Apache Chemistry state of the nation •  What can I do with CMIS? •  Application to Repository (a2r) •  Repository to Repository (r2r)How people use CMIS? •  CMIS & Alfresco •  a2r CMIS product integrations •  CMIS performancesDemo (s)
  • 3. Once upon a time…Builders of way too many… Towers of Babel !
  • 4. We have a dream!
  • 5. Did not take too long to get to… Initiated by CMIS Technical IBM, EMC Committee formed at & Microsoft CMIS V1.0 OASIS Published 1st Public 2nd Review Public CMIS Review Announced Late Sept Oct Oct Jan May 2007 2008 2008 2009 2010 2010 OASIS approved CMIS as an OASIS Specification on May 1, 2010.
  • 6. or the “Constitution” of ECM  Document Folder ACL •  Content Object •  Property Container •  Type Id •  Property Id •  Renditions•  Parent * •  Hierarchy •  Display Name ACE •  Principal •  Version History Name •  Display •  Filing •  Type •  Abstract •  Required•  Permissions •  Queryable •  Default Value •  Direct •  Controllable •  … Described by Type Definitions Relationship Document Folder Policy Relationship Policy •  Source Object •  Versionable •  •  Target Object Source Types •  Target Object •  Allow Content •  Target Types Custom Type      CMIS  Type  defini.ons   CMIS ECM Domain Model
  • 7. CMIS Cheat Sheet
  • 8. Or would you rather go back to stone age? Application Libraries Apache Chemistry (ORM, connection pools, etc.) ODBC / JDBC CMIS Bindings CMIS Domain SQL Model Content Relational DB Repository
  • 9. Nice theory but … Tools anyone?
  • 10. Open Source implementations of •  Apache Chemistry ( is the umbrella project for all CMIS related projects within the Apache Software Foundation. •  Apache Chemistry provides libraries and frameworks for •  Java (Client and Server) •  Python (Client) •  PHP (Client) •  .NET (Client)
  • 11. State of the NationJava  OpenCMIS (current version: 0.5.0) •  Mature •  High spec coverage and major testing •  Client API / Server SPI •  Goodies •  In memory & fileshare test servers •  Swing Workbench •  OSGi bundles •  OpenCMIS is available •  as source code: •  as release package with all dependencies: •  via Maven:
  • 12. OpenCMIS details
  • 13. OpenCMIS detailsWhat does OpenCMIS give me? •  Object oriented Client API •  Ease of use and focus on domain model •  Concept of session (CMIS is stateless) •  Performance focus •  Caching •  Repository infos •  Type definitions •  AtomPub links •  CMIS objects •  Compression •  CMIS XML compresses very well •  Docs & Samples • • chemistry-opencmis-samples/
  • 14. Other clientsPython cmislib (current version: 0.4.1) •  Mature, tested against major servers •  Available as egg, zip, tar.gzPHP lib(current version: unreleased) •  Basic coverage of the spec •  Used in a few productions site & for the Drupal integrationDotCMIS (current version: 0.3) •  Quite mature, good coverage of the spec •  Single DLL •  Requires more testingBrowser binding (experimental on CMIS 1.1 branch)
  • 15. All nice, but what can I build with CMIS?
  • 16. CMIS use casesApplication to repository (A2R) •  ”App uses a content repository to handle content services” •  Neat separation of frontend and content tiers •  Examples: •  Portal (e.g.Liferay) or Intranet (e.g. Drupal, Sharepoint) •  Custom webapp or desktop application (e.g Office apps)Repository to repository (R2R) •  “This is where content repositories talk directly to each other” •  CMIS is flourishing, easy inter vendor communication •  Examples: •  Legacy Content Migration •  Content Publishing or ArchivalFederated repositories •  Mix of the 2 above: application talks to multi repositories
  • 17. CMIS & Alfresco(Open)CMIS is key to Alfresco strategy •  CMIS client/server enhancements •  Alfresco OpenCMIS Extension •  OpenCMIS Server as of Alfresco 4.0 •  Spring Surf OpenCMIS Client integration •  Products •  Web Quick Start •  Alfresco iPhone / iPad Mobile App •  Internal processes •  Team ( & soon Partner ( based on Drupal Alfresco CMIS integrationCMIS allows seamless integrations with Alfresco •  Social integration (Jive, Liferay, Drupal) •  OpenCMIS clients / product integration (OpenWorkdesk)
  • 18. Alfesco OpenCMIS ExtensionCMIS Extension for discovering / managing aspects •  Aspects are an essential tool to model metadata in Alfresco. The CMIS specification does not define aspects or something similar, but it defines several extension points. •  CMIS extensions are XML fragments placed in different parts of a CMIS object. (CMIS/Atom extensions are not fun to work directly with…) •  “Alfresco OpenCMIS Extension” seamlessly merges aspect properties with object properties and provides interfaces to get, add and remove aspects. •  It does that by replacing OpenCMIS internal object factory with an object factory that is aspect aware.
  • 19. Alfesco OpenCMIS ServerStarting from Alfresco 4.0: •  Alfresco CMIS based on the OpenCMIS server framework •  Why has it been re-implemented? •  OpenCMIS is used by several CMIS repositories. •  One code base for the AtomPub and the Web Services binding (and the Browser Binding). •  Better CMIS specification compliance. •  Better performance, less memory consumption, handling of big documents.What changes? •  Old URLs still valid but deprecated •  Generic clients should not notice differences •  Alfresco Extension keeps on working! •  JSON Browser binding prototype (disabled by default)
  • 20. Alfesco iOS Mobile AppiPhone / iPad app forAlfresco 3.4 + (or Team) •  Heavily CMIS based (+ some custom Webscripts) •  Initial Implementation of an Objective-C CMIS client •  Code will be open sourced during DevCon Features •  Read, open & save documents •  Search documents •  Upload and tag photos / video •  Look for Marc 
  • 21. Spring Surf (Webscripts) and OpenCMISStarting from Alfresco 4.0: •  OpenCMIS client libs available in webscripts •  Use cases •  Repository •  Light Migrations / Synchronization •  Publishing •  Web Tier •  CMIS Enabled Frontend •  Federated application frontendHow to use it? •  New JavaScript top level object: cmis •  Three connection types: •  Current Alfresco server (uses OpenCMIS local binding if possible) •  Preconfigured connection •  Web script configured connection
  • 22. Spring Surf & OpenCMIS 
  • 23. CMIS vehicle for Social Content Enterprise Content sharing Management collaboration liking Social Content recommending Management following commenting Social Software Discuss… then Capture CMIS enables a neat integration of ECM and Social
  • 24. Jive Toolkit Jive Toolkit Alfresco Jive Toolkit Jive • Focus on the • Enables both process • Focus on the processes around and community community around content contentJive + Alfresco use cases •  Load a document into Alfresco via Jive •  Link to an existing Alfresco document via Jive •  Socialize a document to Jive via Alfresco Will be available with Jive 5.0. Ask Peter Monks 
  • 25. Content socialization
  • 26. Architecture REST  (h6ps)   Alfresco   Jive   LDAP  
  • 27. Alfresco + Drupal = The Dynamic duo Powerful Presentation Framework Loosely Coupled Enterprise Repository •  Thousands of modules •  Multiple ways to update content •  Easy to theme •  Robust business process engine •  Fast, efficient development •  Extensible content model model
  • 28. Best of both worldsMature integration •  Based on the Chemistry PHP CMIS module •  GA in the Drupal community ( •  AppNovations Canopy: commercial solution at •  Used in production sites and Eat your own food: • •  (soon) partners.alfresco.comUse cases •  Create and persist web content in Alfresco via CMIS Sync •  Attach binary files, created in Alfresco, to Drupal content •  Browse / search CMIS repository from Drupal •  Review and approval publishing workflow in Alfresco
  • 29. And Liferay?Many levels of integration •  UI Integration  DocLib portlet •  DocLib Content only  CmisHook in LR 6.0 •  DocLib Content + Metadata  Multiple CMIS repos in LR 6.1 integration pattern for Alfresco customers •  Typical  Frontend intranet / extranet solution •  Common pitfalls •  No CMIS, totally custom Webscript interface (so 90’s) •  Lack of tuning  performance •  No inter tier caching
  • 30. Why not CMIS? Liferay + Alfresco DM (contents) . 6 millions pages view / year. 80.000 bookings per year. 6th biggest turistism portal in the world.
  • 31. WeWebU OpenWorkdeskContent centric business applications suite•  Advanced eFile management•  Advanced BPM capabilities•  Role dependent views on information•  Configuration vs. codingOpenWorkdesk & Alfresco•  CMIS Adapter •  Web services binding •  Tested w/ Alfresco 3.x and 4.x •  X-Scenario 2 CMIS-Systems•  Support of OpenLDAP•  Support of Alfresco Aspects via CMIS extension•  Activity •  Support planned for Q1/2010
  • 32. OpenWorkdesk architecture
  • 33. CMIS usage sheet - RecapCMIS does CMIS does not •  Offer MCD for ECM •  Cover all ECM aspects •  Aspects targeted for 1.1 •  E.g. users or workflow •  Provide mature tooling •  Compare performances •  Enable separation of of in process integrations content and web tier •  Suit for •  Simplify multi vendor / •  Large migrations technology integration •  Ultra high performant and •  Remove the burden of concurrent scenarios •  Work “one size fits all” custom API maintenance •  Requires developer knowledge of the APIs •  Requires performance tuning
  • 34. OpenCMIS design & performance tipsGet only what you need… Tune client… •  Only ask for the properties •  Enable HTTP Keep Alive you need! •  Speed up burst of requests •  Never do perform •  Read content streams “SELECT * FROM …” queries •  And close them! •  Select sensible page sizes •  Use compression for high and depths latency / low bandwidth •  Operation Context •  Enable in Session Parameters…when you need it! …and server! •  Tune Sensible caching •  Alfresco 4.x OpenCMIS •  OpenCMIS and DotCMIS server faster than 3.4 have first-level caching •  repository-bm module build in. Use it & add your allow benchmark of application caching •  CMIS Sequential •  CMIS mixed
  • 35. Thanks!Questions?!?