Your SlideShare is downloading. ×
CMIS: An Open API for Managing Content
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

CMIS: An Open API for Managing Content


Published on

This talk gives an overview of CMIS and the Alfresco API. Originally presented at GlueCon 2013 and updated for Alfresco Day Sydney in August of 2013.

This talk gives an overview of CMIS and the Alfresco API. Originally presented at GlueCon 2013 and updated for Alfresco Day Sydney in August of 2013.

Published in: Technology, Education

1 Like
  • 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
  • Tons of content in companies today. Email is another big one.
  • A document repository helps answer these questions and keeps you productive
  • Alfresco’s cloud client, Alfresco’s mobile client, and an application one of Alfresco’s customers built are all examples of apps that help people deal with unstructured content. There are countless other examples.
  • Look at your own file system to see the kinds of silly things we do when we try to use a blunt tool like a file system for things like document management. We try to add information to file names because that’s all we have to work with.
  • Most content repositories look like this high-level diagram. Some differ in the protocols they support or exactly how files are stored (database versus file system, for example).
  • Just like databases before standardized SQL, each content repository has its own proprietary API. Huge pain.
  • Microsoft, EMC, IBM, SAP, Alfresco all are involved in this specification and have adopted it in their products.
  • What’s in the spec at an extremely high level
  • CMIS is the specification. Apache Chemistry is the reference implementation.
  • Once you get the hang of that, write code using your favorite language
  • Demo shows us starting with an empty Alfresco repositoryRunning the app from EclipseRunning a data loader to load some sample dataClicking around in the appRunning a python script to sync data from Alfresco to another vendor’s repoChanging a parameter in the application to point to the other repoCreate a new object in AlfrescoSync picks up the new object, puts it in the target repo, app sees it
  • Now custom apps and integrations don’t have to rely on one-off integrations. They use a single API (CMIS) instead.
  • REST API includes:SitesMembersFavoritesNetworksPeopleContainersActivitiesRatingsCommentsTags
  • Transcript

    • 1. CMIS: An Open API forManaging ContentJeff PottsChief Community Officer
    • 2. 80% of the content in anEnterprise is unstructured
    • 3. Managing & collaborating onfiles is a painWhere is the latest version?Who changed it last? What changed?Which project is this related to?Who should be allowed to read? To makechanges?How long do we have to keep this?Can I get this in another format?I’m done with this, what happens next?
    • 4. So we write apps that helpdeal with contentarchives.nyphil.orgmy.alfresco.comAlfresco iOSClient
    • 5. But files are a strange beastDon’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
    • 6. That’s where a contentrepository comes inRDB(Metadata)File System(Files)FileProtocols(WebDAV,FTP,etc.)APIRepositoryContent Object
    • 7. Not just basic file sharingUser InterfacePersistence/DataModel/MetadataBusinessProcesses/WorkflowLibrary Services(Upload/Download, Versioning, & Check-in/Check-out)SecurityFull-text SearchTransforms/Renditions/ThumbnailsTagging/CategorizationAuthoring toolintegrationRemote APISchedulerComments/Ratings/Activity Streams
    • 8. The Problem: Until now, eachrepo had its own APIAPI API APIMy Custom Application Third-Party SystemsMost organizations have multiple repositories!One-offintegrationOne-offintegrationOne-offintegration
    • 9. An industry-wide spec is bornManaged by OASISBroad vendor support andadoption1.0 out now, 1.1 coming soon
    • 10. CMIS specificationDomain Model:Repository, Folder, Document, ACL, Relationship, Object Type, SecondaryType*, Item*Binding: Web Services, AtomPub, Browser(JSON)*Query Language: Subset of SQL-92*New in CMIS 1.1
    • 11. Reference implementationClient libraries, server frameworks, developmenttools
    • 12. Getting started with CMISGrab a CMIS client from Apache ChemistryFind a CMIS-compliant repositoryYou need its “service URL”Connect to it with the OpenCMISWorkbenchOptional: For Alfresco in the Cloud, you’ll need anAPI key from
    • 13. Demo! File uploadLet’s load some images into Alfresco on-premiseThen, let’s re-run that code to load someimages into Alfresco in the CloudSame CMIS calls, different authentication
    • 14. Demo! Java & OpenCMIS,Servlets & JSPsThe Blend• An example music mash-upsite• Java Servlets & JSPs• Show it running againstmultiple CMIS repositories• Full source available fromManning
    • 15. The beauty of CMISMy Custom Application Third-Party SystemsCMIS APIStandardintegrationStandardintegration
    • 16. Alfresco RepositoryDeploys as a WAR to a servlet containerDependencies• 64-bit JDK•• ImageMagickHappily runs on either physical or virtualhardwareAlfresco Cloud is a multi-tenant SaaSoffering of the same great repo
    • 17. Folder, file, contentand metadatamanipulation andsearchNetworks, sites, people, comments, tags,activities, …
    • 18. API Launch Partners
    • 19. Alfresco Cloud APIConsiderationsRate limits• 5 requests/second, 10,000 requests/day (Dev)• 50 requests/second, 100,000 requests/day (Prod)No limit on # of applicationsAlfresco Cloud users own their content>= OpenCMIS 0.8.0-SNAPSHOT>= cmislib 0.5.1dev
    • 20. Getting HelpDocs:• Alfresco API forum• #alfresco on freenode IRC• Alfresco Technical Discussion Google GroupSource Code:• Code from DevCon Session• Spring Social Alfresco Library• Peter’s Grails Example• Jeff’s Java Examples & Python Examples
    • 21. Read the book!Everything you need toknow about CMIS1.0 & 1.1Lots of Groovy andJava examplesAlso coversPython, Android, &iOSNow on MEAP!37%-off: 12cmisal
    • 22. Conquer Content Chaos!Get your API key by May 31and we’ll ship you this t-shirt!
    • 23. Thank You!Jeff Potts@jeffpotts01