SlideShare a Scribd company logo
CMIS: An Open API for
Managing Content
Jeff Potts
Chief Community Officer
80% of the content in an
Enterprise is unstructured
Managing & collaborating on
files is a pain
Where 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 beast
Don’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 enough
Neither are Amazon S3 buckets
That’s where a content
repository comes in
RDB
(Metadata)
File System
(Files)
FileProtocols
(WebDAV,FTP,etc.)
API
Repository
Content Object
Not just basic file sharing
User Interface
Persistence/Data
Model/Metadata
Business
Processes/Workflow
Library Services
(Upload/Download, V
ersioning, & Check-
in/Check-out)
Security
Full-text Search
Transforms/Renditions/
Thumbnails
Tagging/Categorization
Authoring tool
integration
Remote API
Scheduler
Comments/Ratings/Acti
vity 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 OASIS
Broad vendor support and
adoption
1.0 out now, 1.1 coming soon
http://bit.ly/PnAb77
CMIS specification
Domain Model:
Repository, Folder, Document, ACL, Relati
onship, 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 CMIS
Grab a CMIS client from Apache Chemistry
Find a CMIS-compliant repository
You need its “service URL”
Connect to it with the OpenCMIS
Workbench
Optional: 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 & JSPs
The 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 container
Dependencies
• 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
CMIS: An Open API for Managing Content
Folder, file, content
and metadata
manipulation and
search
Networks, sites, peo
ple, comments, tags,
activities, …
API Launch Partners
Alfresco Cloud API
Considerations
Rate limits
• 5 requests/second, 10,000 requests/day (Dev)
• 50 requests/second, 100,000 requests/day (Prod)
No limit on # of applications
Alfresco Cloud users own their content
>= OpenCMIS 0.8.0-SNAPSHOT
>= cmislib 0.5.1dev
Getting Help
Docs: http://www.alfresco.com/develop
Resources:
• Alfresco API forum
• #alfresco on freenode IRC
• Alfresco Technical Discussion Google Group
Source Code:
• Code from DevCon Session
• Spring Social Alfresco Library
• Peter’s Grails Example
• Jeff’s Java Examples & Python Examples
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
@jeffpotts01
http://ecmarchitect.com

More Related Content

PDF
Amazon S3を中心とするデータ分析のベストプラクティス
PDF
Machine Learning Platformization & AutoML: Adopting ML at Scale in the Enterp...
PPTX
Kinesis Firehoseを使ってみた
PPTX
Zabbix概論2018
PDF
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
PDF
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
PDF
Pinterest - Big Data Machine Learning Platform at Pinterest
PDF
俺のサイジング
Amazon S3を中心とするデータ分析のベストプラクティス
Machine Learning Platformization & AutoML: Adopting ML at Scale in the Enterp...
Kinesis Firehoseを使ってみた
Zabbix概論2018
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
Pinterest - Big Data Machine Learning Platform at Pinterest
俺のサイジング

What's hot (20)

PPTX
Introduction to performance testing
PDF
Alfresco 5.2 REST API
 
PDF
Apache Flink 101 - the rise of stream processing and beyond
PPTX
Gitlab CI/CD
PPTX
FIWAREシステム内の短期履歴の管理
PPT
Git workflows
PDF
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
PPTX
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
PDF
Best Practices for Running PostgreSQL on AWS
PPTX
Do flink on web with flow - Dongwon Kim & Haemee park, SK Telecom)
PDF
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...
PPTX
Kibana overview
PDF
[AKIBA.AWS] VGWのルーティング仕様
PDF
Vertex AI - Unified ML Platform for the entire AI workflow on Google Cloud
PDF
第5回oss運用管理勉強会 zabbix徹底活用術の紹介
PDF
Stream1 change sets delivery to stream2 in RTC
PDF
Improving fault tolerance and scaling out in Kafka Streams with Bill Bejeck |...
PDF
DevOps for Databricks
PPTX
Active directoryと認証・認可
PDF
Go Observability (in practice)
Introduction to performance testing
Alfresco 5.2 REST API
 
Apache Flink 101 - the rise of stream processing and beyond
Gitlab CI/CD
FIWAREシステム内の短期履歴の管理
Git workflows
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
Best Practices for Running PostgreSQL on AWS
Do flink on web with flow - Dongwon Kim & Haemee park, SK Telecom)
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...
Kibana overview
[AKIBA.AWS] VGWのルーティング仕様
Vertex AI - Unified ML Platform for the entire AI workflow on Google Cloud
第5回oss運用管理勉強会 zabbix徹底活用術の紹介
Stream1 change sets delivery to stream2 in RTC
Improving fault tolerance and scaling out in Kafka Streams with Bill Bejeck |...
DevOps for Databricks
Active directoryと認証・認可
Go Observability (in practice)
Ad

Similar to CMIS: An Open API for Managing Content (20)

PPTX
Cfalfresco
PPTX
Building Content-Rich Java Apps in the Cloud with the Alfresco API
PDF
Developer’s intro to the alfresco platform
PDF
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
PPTX
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
PPTX
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
PPTX
Relational Won't Cut It: Architecting Content Centric Apps
PPT
Intro To Alfresco Part 3
PPTX
Apache Chemistry in Action
PDF
Tech talk live on new alfresco api
PPTX
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
PPT
Alfresco WCM For High Scalability
PDF
Decoupled cms sunshinephp 2014
PDF
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
PPT
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
PPS
Flickr Services
PPS
Flickr Services
PPTX
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
PPTX
A Connector, A Container and an API Walk into a Bar… Microservices Edition
PPTX
A Connector, A Container and an API Walk into a Bar… Microservices Edition
Cfalfresco
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Developer’s intro to the alfresco platform
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Relational Won't Cut It: Architecting Content Centric Apps
Intro To Alfresco Part 3
Apache Chemistry in Action
Tech talk live on new alfresco api
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco WCM For High Scalability
Decoupled cms sunshinephp 2014
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Flickr Services
Flickr Services
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
Ad

More from Jeff Potts (20)

PPTX
No Docker? No Problem: Automating installation and config with Ansible
PPTX
Moving From Actions & Behaviors to Microservices
PPTX
Flexible Permissions Management with ACL Templates
PPTX
Moving Gigantic Files Into and Out of the Alfresco Repository
PDF
Could Alfresco Survive a Zombie Attack?
PPTX
Connecting Content Management Apps with CMIS
PPTX
The Challenges of Keeping Bees
PPTX
Getting Started With CMIS
PPTX
Alfresco: What every developer should know
PPTX
Alfresco: The Story of How Open Source Disrupted the ECM Market
PPTX
Join the Alfresco community
PPTX
Intro to the Alfresco Public API
PPTX
Alfresco Community Survey 2012 Results
PPTX
Getting Started with CMIS
PPTX
Alfresco SAUG: State of ECM
PPTX
Alfresco SAUG: CMIS & Integrations
PDF
Should You Attend Alfresco Devcon 2011
PPTX
2011 Alfresco Community Survey Results
PPTX
Intro to Alfresco for Developers
PPTX
Good Chemistry: Alfresco, JBoss and CMIS
No Docker? No Problem: Automating installation and config with Ansible
Moving From Actions & Behaviors to Microservices
Flexible Permissions Management with ACL Templates
Moving Gigantic Files Into and Out of the Alfresco Repository
Could Alfresco Survive a Zombie Attack?
Connecting Content Management Apps with CMIS
The Challenges of Keeping Bees
Getting Started With CMIS
Alfresco: What every developer should know
Alfresco: The Story of How Open Source Disrupted the ECM Market
Join the Alfresco community
Intro to the Alfresco Public API
Alfresco Community Survey 2012 Results
Getting Started with CMIS
Alfresco SAUG: State of ECM
Alfresco SAUG: CMIS & Integrations
Should You Attend Alfresco Devcon 2011
2011 Alfresco Community Survey Results
Intro to Alfresco for Developers
Good Chemistry: Alfresco, JBoss and CMIS

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Electronic commerce courselecture one. Pdf
PDF
KodekX | Application Modernization Development
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Unlocking AI with Model Context Protocol (MCP)
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Chapter 3 Spatial Domain Image Processing.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Dropbox Q2 2025 Financial Results & Investor Presentation
Electronic commerce courselecture one. Pdf
KodekX | Application Modernization Development
Network Security Unit 5.pdf for BCA BBA.
Programs and apps: productivity, graphics, security and other tools
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
MYSQL Presentation for SQL database connectivity
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

CMIS: An Open API for Managing Content

  • 1. CMIS: An Open API for Managing Content Jeff Potts Chief Community Officer
  • 2. 80% of the content in an Enterprise is unstructured
  • 3. Managing & collaborating on files is a pain Where 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?
  • 4. So we write apps that help deal with content archives.nyphil.org my.alfresco.com Alfresco iOS Client
  • 5. But files are a strange beast Don’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 enough Neither are Amazon S3 buckets
  • 6. That’s where a content repository comes in RDB (Metadata) File System (Files) FileProtocols (WebDAV,FTP,etc.) API Repository Content Object
  • 7. Not just basic file sharing User Interface Persistence/Data Model/Metadata Business Processes/Workflow Library Services (Upload/Download, V ersioning, & Check- in/Check-out) Security Full-text Search Transforms/Renditions/ Thumbnails Tagging/Categorization Authoring tool integration Remote API Scheduler Comments/Ratings/Acti vity Streams
  • 8. 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
  • 9. An industry-wide spec is born Managed by OASIS Broad vendor support and adoption 1.0 out now, 1.1 coming soon http://bit.ly/PnAb77
  • 10. CMIS specification Domain Model: Repository, Folder, Document, ACL, Relati onship, Object Type, Secondary Type*, Item* Binding: Web Services, AtomPub, Browser (JSON)* Query Language: Subset of SQL-92 *New in CMIS 1.1
  • 11. Reference implementation Client libraries, server frameworks, development tools http://bit.ly/ex20BT
  • 12. Getting started with CMIS Grab a CMIS client from Apache Chemistry Find a CMIS-compliant repository You need its “service URL” Connect to it with the OpenCMIS Workbench Optional: For Alfresco in the Cloud, you’ll need an API key from http://www.alfresco.com/develop
  • 13. 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
  • 14. Demo! Java & OpenCMIS, Servlets & JSPs The 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
  • 15. The beauty of CMIS My Custom Application Third-Party Systems CMIS API Standard integration Standard integration
  • 16. Alfresco Repository Deploys as a WAR to a servlet container Dependencies • 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
  • 18. Folder, file, content and metadata manipulation and search Networks, sites, peo ple, comments, tags, activities, …
  • 20. Alfresco Cloud API Considerations Rate limits • 5 requests/second, 10,000 requests/day (Dev) • 50 requests/second, 100,000 requests/day (Prod) No limit on # of applications Alfresco Cloud users own their content >= OpenCMIS 0.8.0-SNAPSHOT >= cmislib 0.5.1dev
  • 21. Getting Help Docs: http://www.alfresco.com/develop Resources: • Alfresco API forum • #alfresco on freenode IRC • Alfresco Technical Discussion Google Group Source Code: • Code from DevCon Session • Spring Social Alfresco Library • Peter’s Grails Example • Jeff’s Java Examples & Python Examples
  • 22. 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
  • 23. Conquer Content Chaos! Get your API key by May 31 and we’ll ship you this t- shirt! http://www.alfresco.com/develop

Editor's Notes

  • #3: Tons of content in companies today. Email is another big one.
  • #4: A document repository helps answer these questions and keeps you productive
  • #5: 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.
  • #6: 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.
  • #7: 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).
  • #9: Just like databases before standardized SQL, each content repository has its own proprietary API. Huge pain.
  • #10: Microsoft, EMC, IBM, SAP, Alfresco all are involved in this specification and have adopted it in their products.
  • #11: What’s in the spec at an extremely high level
  • #12: CMIS is the specification. Apache Chemistry is the reference implementation.
  • #13: Once you get the hang of that, write code using your favorite language
  • #15: 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
  • #16: Now custom apps and integrations don’t have to rely on one-off integrations. They use a single API (CMIS) instead.
  • #18: REST API includes:SitesMembersFavoritesNetworksPeopleContainersActivitiesRatingsCommentsTags