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

CMIS: An Open API for Managing Content

May 17, 2015

Download

Technology

Jeff Potts

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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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