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
CMIS: An Open API for Managing Content
CMIS: An Open API forManaging ContentJeff PottsChief Community Officer
80% of the content in anEnterprise is unstructured
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?
So we write apps that helpdeal with contentarchives.nyphil.orgmy.alfresco.comAlfresco iOSClient
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
That’s where a contentrepository comes inRDB(Metadata)File System(Files)FileProtocols(WebDAV,FTP,etc.)APIRepositoryContent Object
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
The Problem: Until now, eachrepo had its own APIAPI API APIMy Custom Application Third-Party SystemsMost organizations have multiple repositories!One-offintegrationOne-offintegrationOne-offintegration
An industry-wide spec is bornManaged by OASISBroad vendor support andadoption1.0 out now, 1.1 coming soonhttp://bit.ly/PnAb77
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
Reference implementationClient libraries, server frameworks, developmenttoolshttp://bit.ly/ex20BT
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 http://www.alfresco.com/develop
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
Demo! Java & OpenCMIS,Servlets & JSPsThe Blend• An example music mash-upsite• Java Servlets & JSPs• Show it running againstmultiple CMIS repositories• Full source available fromManninghttp://bit.ly/U9npcF
The beauty of CMISMy Custom Application Third-Party SystemsCMIS APIStandardintegrationStandardintegration
Alfresco RepositoryDeploys as a WAR to a servlet containerDependencies• 64-bit JDK• OpenOffice.org/LibreOffice• ImageMagickHappily runs on either physical or virtualhardwareAlfresco Cloud is a multi-tenant SaaSoffering of the same great repo