CMIS: An Open API for Managing Content

Post on 17-May-2015

1272 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

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.

Transcript

CMIS: An Open API for Managing ContentJeff PottsChief Community Officer

80% of the content in an Enterprise is unstructured

Managing & collaborating on files 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

make changes?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 help deal with content

archives.nyphil.org

my.alfresco.com

Alfresco iOS Client

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 limitations

File systems alone aren’t rich enoughNeither are Amazon S3 buckets

That’s where a content repository comes in

RDB(Metadata

)

File System

(Files)

File P

roto

cols

(WebD

AV

, FTP, e

tc.)

API

MetadataContentStream

Repository

Content Object

Not just basic file sharingUser InterfacePersistence/Data

Model/MetadataBusiness

Processes/WorkflowLibrary Services

(Upload/Download, Versioning, & Check-in/Check-out)

Security

Full-text SearchTransforms/

Renditions/Thumbnails

Tagging/Categorization

Authoring tool integration

Remote APISchedulerComments/Ratings/

Activity Streams

The Problem: Until now, each repo had its own API

API API API

My Custom Application Third-Party Systems

Most organizations have multiple repositories!

One-off integration

One-off integration

One-off integration

An industry-wide spec is born

Managed by OASISBroad vendor support and

adoption1.0 out now, 1.1 coming soonhttp://bit.ly/PnAb77

CMIS specification

Domain 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

Reference implementation

Client libraries, server frameworks, development tools

http://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 OpenCMIS

WorkbenchOptional: For Alfresco in the Cloud, you’ll

need an API key from http://www.alfresco.com/develop

Demo! File upload

Let’s load some images into Alfresco on-premise

Then, let’s re-run that code to load some images into Alfresco in the Cloud

Same CMIS calls, different authentication

Demo! Java & OpenCMIS, Servlets & JSPsThe Blend

• An example music mash-up site

• Java Servlets & JSPs• Show it running against

multiple CMIS repositories

• Full source available from Manning

http://bit.ly/U9npcF

The beauty of CMIS

My Custom Application Third-Party Systems

CMIS API

Standard integration

Standard integration

Alfresco Repository

Deploys as a WAR to a servlet containerDependencies

• 64-bit JDK• OpenOffice.org/LibreOffice• ImageMagick

Happily runs on either physical or virtual hardware

Alfresco Cloud is a multi-tenant SaaS offering of the same great repo

Folder, file, content and metadata manipulation and search

Networks, sites, people, comments, tags, activities, …

API Launch Partners

Alfresco Cloud API ConsiderationsRate 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

Read the book!

Everything you need to know about CMIS 1.0 & 1.1

Lots of Groovy and Java examples

Also covers Python, Android, & iOS

Now on MEAP!37%-off: 12cmisal

Conquer Content Chaos!

Get your API key by May 31 and we’ll ship you this t-shirt!

http://www.alfresco.com/develop

Thank You!

Jeff Potts@jeffpotts01http://ecmarchitect.com

top related