Jeff PottsApache Chemistry in Action: Using CMISand your favorite language to unlockcontent from ECM firstname.lastname@example.org OR email@example.com
80% of the content in an Enterprise is unstructuredJeff Potts firstname.lastname@example.org
Managing & collaborating on files is a pain Jeff Potts email@example.comWhere is the latest version?Who changed it last? What did they change?Which project is this related to?Who should be allowed to see this file? To make changes?How long do we have to keep this file?Can I get this file in another format?I’m done with this file, what happens next?
So we write apps that help deal with content Jeff Potts firstname.lastname@example.org my.alfresco.comAlfresco iOS Client archives.nyphil.org
But files are a strange beast Jeff Potts email@example.comDon’t work well as BLOBs in an RDB – Can’t be indexed – Can’t be streamed – Subject to size limitationsFile systems alone aren’t rich enoughNeither are Amazon S3 buckets
That’s where a content repository comes in Jeff Potts firstname.lastname@example.org API Repository(WebDAV, FTP, etc.) File Protocols RDB File System (Metadata) (Files) Content Object
The Problem: Until now, each repo had its own API Jeff Potts email@example.comMy Custom Application Third-Party Systems One-off One-off One-off integration integration integration API API API Most organizations have multiple repositories!
An industry-wide specification is born: CMIS Jeff Potts firstname.lastname@example.orgManaged by OASISBroad vendor support and adoption1.0 out now, 1.1 coming soonhttp://bit.ly/PnAb77
CMIS specification describes a repo and what’s in it Jeff Potts email@example.comDomain Model: Repository, Folder, Document, ACL, Relationship, Object Type, Secondary Type*, Item*Binding: Web Services, AtomPub, Browser (JSON)*Query Language: Subset of SQL-92 *New in CMIS 1.1
Apache Chemistry is the CMIS reference implementation Jeff Potts firstname.lastname@example.org http://bit.ly/ex20BTClient libraries, server frameworks, development tools
Getting started with CMIS Jeff Potts email@example.comGrab a CMIS client from Apache ChemistryFind a CMIS-compliant repositoryYou need its “service URL”Connect to it with the OpenCMIS Workbench
Let’s see a demo! Python & cmislib, multiple reposJeff Potts firstname.lastname@example.org cmislib
Let’s see another! Java & OpenCMIS, Servlets & JSPs Jeff Potts email@example.comThe Blend – An example music mash- up site – Java Servlets & JSPs – Show it running against multiple CMIS repositories – Full source available from Manning
The beauty of CMIS Jeff Potts firstname.lastname@example.orgMy Custom Application Third-Party Systems Standard Standard integration integration CMIS API
Coming in CMIS 1.1 Jeff Potts email@example.comBrowser (JSON) BindingType mutabilitySecondary types (aka “Aspects”)Item
Thanks! Jeff Potts firstname.lastname@example.orgQuestions?