This presentation shows how the CMIS specification and Apache Chemistry can be used to create content-centric applications that work with any CMIS-compliant repository.
TeamStation AI System Report LATAM IT Salaries 2024
Apache Chemistry in Action
1. Jeff Potts
Apache Chemistry in Action: Using CMIS
and your favorite language to unlock
content from ECM repositories
jeff.potts@alfresco.com OR jpotts@apache.org
2. 80% of the content in an Enterprise is unstructured
Jeff Potts jeff.potts@alfresco.com
3. Managing & collaborating on files is a pain
Jeff Potts jeff.potts@alfresco.com
Where is the latest version?
Who changed it last? What did they change?
Which project is this related to?
Who should be allowed to see this file? To
make changes?
How long do we have to keep this file?
Can I get this file in another format?
I’m done with this file, what happens next?
4. So we write apps that help deal with content
Jeff Potts jeff.potts@alfresco.com
my.alfresco.com
Alfresco iOS Client
archives.nyphil.org
5. But files are a strange beast
Jeff Potts jeff.potts@alfresco.com
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
Jeff Potts jeff.potts@alfresco.com
API
Repository
(WebDAV, FTP, etc.)
File Protocols
RDB File System
(Metadata) (Files)
Content Object
7. The Problem: Until now, each repo had its own API
Jeff Potts jeff.potts@alfresco.com
My Custom Application Third-Party Systems
One-off One-off One-off
integration integration integration
API API API
Most organizations have multiple repositories!
8. An industry-wide specification is born: CMIS
Jeff Potts jeff.potts@alfresco.com
Managed by OASIS
Broad vendor support and
adoption
1.0 out now, 1.1 coming soon
http://bit.ly/PnAb77
9. CMIS specification describes a repo and what’s in it
Jeff Potts jeff.potts@alfresco.com
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
10. Apache Chemistry is the CMIS reference implementation
Jeff Potts jeff.potts@alfresco.com
http://bit.ly/ex20BT
Client libraries, server frameworks,
development tools
11. Getting started with CMIS
Jeff Potts jeff.potts@alfresco.com
Grab a CMIS client from Apache Chemistry
Find a CMIS-compliant repository
You need its “service URL”
Connect to it with the OpenCMIS
Workbench
12. Let’s see a demo! Python & cmislib, multiple repos
Jeff Potts jeff.potts@alfresco.com
cmislib
13. Let’s see another! Java & OpenCMIS, Servlets & JSPs
Jeff Potts jeff.potts@alfresco.com
The Blend
– An example music mash-
up site
– Java Servlets & JSPs
– Show it running against
multiple CMIS
repositories
– Full source available
from Manning
14. The beauty of CMIS
Jeff Potts jeff.potts@alfresco.com
My Custom Application Third-Party Systems
Standard Standard
integration integration
CMIS API
15. Coming in CMIS 1.1
Jeff Potts jeff.potts@alfresco.com
Browser (JSON) Binding
Type mutability
Secondary types (aka “Aspects”)
Item
16. Thanks!
Jeff Potts jeff.potts@alfresco.com
Questions?