cmis: an open api for managing content

24
CMIS: An Open API for Managing Content Jeff Potts Chief Community Officer

Upload: jeff-potts

Post on 17-May-2015

1.272 views

Category:

Technology


4 download

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

Page 1: CMIS: An Open API for Managing Content

CMIS: An Open API for Managing ContentJeff PottsChief Community Officer

Page 2: CMIS: An Open API for Managing Content

80% of the content in an Enterprise is unstructured

Page 3: CMIS: An Open API for Managing Content

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?

Page 4: CMIS: An Open API for Managing Content

So we write apps that help deal with content

archives.nyphil.org

my.alfresco.com

Alfresco iOS Client

Page 5: CMIS: An Open API for Managing Content

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

Page 6: CMIS: An Open API for Managing Content

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

Page 7: CMIS: An Open API for Managing Content

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

Page 8: CMIS: An Open API for Managing Content

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

Page 9: CMIS: An Open API for Managing Content

An industry-wide spec is born

Managed by OASISBroad vendor support and

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

Page 10: CMIS: An Open API for Managing Content

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

Page 11: CMIS: An Open API for Managing Content

Reference implementation

Client libraries, server frameworks, development tools

http://bit.ly/ex20BT

Page 12: CMIS: An Open API for Managing Content

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

Page 13: CMIS: An Open API for Managing Content

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

Page 14: CMIS: An Open API for Managing Content

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

Page 15: CMIS: An Open API for Managing Content

The beauty of CMIS

My Custom Application Third-Party Systems

CMIS API

Standard integration

Standard integration

Page 16: CMIS: An Open API for Managing Content

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

Page 17: CMIS: An Open API for Managing Content
Page 18: CMIS: An Open API for Managing Content

Folder, file, content and metadata manipulation and search

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

Page 19: CMIS: An Open API for Managing Content

API Launch Partners

Page 20: CMIS: An Open API for Managing Content

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

Page 21: CMIS: An Open API for Managing Content

Getting HelpDocs: http://www.alfresco.com/developResources:

• Alfresco API forum• #alfresco on freenode IRC• Alfresco Technical Discussion Google Gro

up

Source Code:• Code from DevCon Session• Spring Social Alfresco Library• Peter’s Grails Example• Jeff’s Java Examples & Python Examples

Page 22: CMIS: An Open API for Managing Content

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

Page 23: CMIS: An Open API for Managing Content

Conquer Content Chaos!

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

http://www.alfresco.com/develop

Page 24: CMIS: An Open API for Managing Content

Thank You!

Jeff Potts@jeffpotts01http://ecmarchitect.com