SlideShare una empresa de Scribd logo
1 de 17
Apache Chemistry in Action: Using CMIS
and your favorite language to unlock
content from ECM repositories
Jeff Potts
jeff.potts@alfresco.com OR jpotts@apache.org
80% of the content in an Enterprise is unstructured
Jeff Potts jeff.potts@alfresco.com
Managing & collaborating on files is a pain
Jeff Potts
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?
jeff.potts@alfresco.com
So we write apps that help deal with content
Jeff Potts jeff.potts@alfresco.com
archives.nyphil.org
my.alfresco.com
Alfresco iOS Client
But files are a strange beast
Jeff Potts
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
jeff.potts@alfresco.com
That’s where a content repository comes in
Jeff Potts jeff.potts@alfresco.com
RDB
(Metadata)
File System
(Files)
FileProtocols
(WebDAV,FTP,etc.) API
Repository
Content Object
The Problem: Until now, each repo had its own API
jeff.potts@alfresco.com
API API API
My Custom Application Third-Party Systems
Most organizations have multiple repositories!
One-off
integration
One-off
integration
One-off
integration
Jeff Potts
An industry-wide specification is born: CMIS
Jeff Potts
Managed by OASIS
Broad vendor support and
adoption
1.0 out now, 1.1 coming soon
http://bit.ly/PnAb77
jeff.potts@alfresco.com
CMIS specification describes a repo and what’s in it
Jeff Potts
Domain Model: Repository, Folder,
Document, ACL, Relationship, Object
Type, Secondary Type*, Item*
Binding: Web Services, AtomPub, Browser
(JSON)*
Query Language: Subset of SQL-92
jeff.potts@alfresco.com
*New in CMIS 1.1
Apache Chemistry is the CMIS reference implementation
Jeff Potts
Client libraries, server frameworks,
development tools
jeff.potts@alfresco.com
http://bit.ly/ex20BT
Getting started with CMIS
Jeff Potts
Grab a CMIS client from Apache Chemistry
Find a CMIS-compliant repository
You need its “service URL”
Connect to it with the OpenCMIS
Workbench
jeff.potts@alfresco.com
Let’s see a demo! Python & cmislib, multiple repos
Jeff Potts jeff.potts@alfresco.com
cmislib
Let’s see another! Java & OpenCMIS, Servlets & JSPs
Jeff Potts
The Blend
– An example music mash-
up site
– Java Servlets & JSPs
– Show it running against
multiple CMIS
repositories
– Full source available
from Manning
jeff.potts@alfresco.com
http://bit.ly/U9npcF
The beauty of CMIS
Jeff Potts jeff.potts@alfresco.com
My Custom Application Third-Party Systems
CMIS API
Standard
integration
Standard
integration
Coming in CMIS 1.1
Jeff Potts
Browser (JSON) Binding
Type mutability
Secondary types (aka “Aspects”)
Item
jeff.potts@alfresco.com
Come to the Alfresco Meetup at 15:00, Rm 123, Bldg G
Meet customers, partners, and other
community members
Learn about Alfresco in the real world
Hear talks on our cloud API, Web Content
Management, Scripts, and Case
Management
See you today at 15:00 in Room 123!
Thanks!
Jeff Potts
Questions?
jeff.potts@alfresco.com

Más contenido relacionado

La actualidad más candente

Testing for infra code using test-kitchen,docker,chef
Testing for infra code using  test-kitchen,docker,chefTesting for infra code using  test-kitchen,docker,chef
Testing for infra code using test-kitchen,docker,chef
kamalikamj
 
Architecting for Continuous Delivery
Architecting for Continuous DeliveryArchitecting for Continuous Delivery
Architecting for Continuous Delivery
Axel Fontaine
 
Save Time and Money with Automation
Save Time and Money with AutomationSave Time and Money with Automation
Save Time and Money with Automation
Chris Jean
 

La actualidad más candente (20)

Testing for infra code using test-kitchen,docker,chef
Testing for infra code using  test-kitchen,docker,chefTesting for infra code using  test-kitchen,docker,chef
Testing for infra code using test-kitchen,docker,chef
 
Make an Instant Website with Webhooks
Make an Instant Website with WebhooksMake an Instant Website with Webhooks
Make an Instant Website with Webhooks
 
Architecting for Continuous Delivery
Architecting for Continuous DeliveryArchitecting for Continuous Delivery
Architecting for Continuous Delivery
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated Deployment
 
Chef Automate Workflow Demo
Chef Automate Workflow DemoChef Automate Workflow Demo
Chef Automate Workflow Demo
 
Amazon Web Services for the .NET Developer
Amazon Web Services for the .NET DeveloperAmazon Web Services for the .NET Developer
Amazon Web Services for the .NET Developer
 
Jenkins além da integração contínua - práticas de devops
Jenkins além da integração contínua - práticas de devopsJenkins além da integração contínua - práticas de devops
Jenkins além da integração contínua - práticas de devops
 
Code fast & Break things with Jenkins & Continuous Integration
Code fast & Break things with Jenkins & Continuous IntegrationCode fast & Break things with Jenkins & Continuous Integration
Code fast & Break things with Jenkins & Continuous Integration
 
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalkContinuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
 
Jfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App DeploymentJfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App Deployment
 
An introduction to git
An introduction to gitAn introduction to git
An introduction to git
 
Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with Chef
 
CLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with JenkinsCLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with Jenkins
 
Architecting for continuous delivery (33rd Degree)
Architecting for continuous delivery (33rd Degree)Architecting for continuous delivery (33rd Degree)
Architecting for continuous delivery (33rd Degree)
 
Save Time and Money with Automation
Save Time and Money with AutomationSave Time and Money with Automation
Save Time and Money with Automation
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
 
Deploying systems using AWS DevOps tools
Deploying systems using AWS DevOps toolsDeploying systems using AWS DevOps tools
Deploying systems using AWS DevOps tools
 
How to Write Chef Cookbook
How to Write Chef CookbookHow to Write Chef Cookbook
How to Write Chef Cookbook
 
Using a Private Git Server for Packaging Software
Using a Private Git Server for Packaging SoftwareUsing a Private Git Server for Packaging Software
Using a Private Git Server for Packaging Software
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 

Destacado

Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & Integrations
Jeff Potts
 
Alfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsAlfresco Community Survey 2012 Results
Alfresco Community Survey 2012 Results
Jeff Potts
 
Alfresco - Présentation Alfresco 3 Enterprise
Alfresco - Présentation Alfresco 3 EnterpriseAlfresco - Présentation Alfresco 3 Enterprise
Alfresco - Présentation Alfresco 3 Enterprise
PASCAL Jean Marie
 

Destacado (20)

Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & Integrations
 
Join the Alfresco community
Join the Alfresco communityJoin the Alfresco community
Join the Alfresco community
 
Alfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsAlfresco Community Survey 2012 Results
Alfresco Community Survey 2012 Results
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public API
 
Alfresco SAUG: State of ECM
Alfresco SAUG: State of ECMAlfresco SAUG: State of ECM
Alfresco SAUG: State of ECM
 
Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should know
 
The Challenges of Keeping Bees
The Challenges of Keeping BeesThe Challenges of Keeping Bees
The Challenges of Keeping Bees
 
Getting Started With CMIS
Getting Started With CMISGetting Started With CMIS
Getting Started With CMIS
 
Elements_Creating_Content_Models.pdf
Elements_Creating_Content_Models.pdfElements_Creating_Content_Models.pdf
Elements_Creating_Content_Models.pdf
 
2011 Alfresco Community Survey Results
2011 Alfresco Community Survey Results2011 Alfresco Community Survey Results
2011 Alfresco Community Survey Results
 
Alfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM MarketAlfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM Market
 
Relational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric AppsRelational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric Apps
 
Connecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISConnecting Content Management Apps with CMIS
Connecting Content Management Apps with CMIS
 
Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?
 
La gestion des archives avec Alfresco
La gestion des archives avec AlfrescoLa gestion des archives avec Alfresco
La gestion des archives avec Alfresco
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMIS
 
Alfresco 4.0 en français
Alfresco 4.0 en françaisAlfresco 4.0 en français
Alfresco 4.0 en français
 
Alfresco - Présentation Alfresco 3 Enterprise
Alfresco - Présentation Alfresco 3 EnterpriseAlfresco - Présentation Alfresco 3 Enterprise
Alfresco - Présentation Alfresco 3 Enterprise
 
Alfresco in an hour
Alfresco in an hourAlfresco in an hour
Alfresco in an hour
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco API
 

Similar a Apache Chemistry in Action: Using CMIS and your favorite language to unlock content from ECM repositories

Cakefest higher education
Cakefest higher educationCakefest higher education
Cakefest higher education
therealphpdiddy
 
Globo.com & Varnish
Globo.com & VarnishGlobo.com & Varnish
Globo.com & Varnish
lokama
 
Alfresco benchmark report_bl100093
Alfresco benchmark report_bl100093Alfresco benchmark report_bl100093
Alfresco benchmark report_bl100093
ECNU
 

Similar a Apache Chemistry in Action: Using CMIS and your favorite language to unlock content from ECM repositories (20)

Python tools for testing web services over HTTP
Python tools for testing web services over HTTPPython tools for testing web services over HTTP
Python tools for testing web services over HTTP
 
Cfalfresco
CfalfrescoCfalfresco
Cfalfresco
 
Intro to Perfect - LA presentation
Intro to Perfect - LA presentationIntro to Perfect - LA presentation
Intro to Perfect - LA presentation
 
LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST API
 
Cakefest higher education
Cakefest higher educationCakefest higher education
Cakefest higher education
 
Flickr Services
Flickr ServicesFlickr Services
Flickr Services
 
Flickr Services
Flickr ServicesFlickr Services
Flickr Services
 
Globo.com & Varnish
Globo.com & VarnishGlobo.com & Varnish
Globo.com & Varnish
 
HTTP: the Other ESB
HTTP: the Other ESBHTTP: the Other ESB
HTTP: the Other ESB
 
Getting Rid Of Legacy And SharePoint Migration and Assement by Joel Oleson
Getting Rid Of Legacy And SharePoint Migration and Assement by Joel OlesonGetting Rid Of Legacy And SharePoint Migration and Assement by Joel Oleson
Getting Rid Of Legacy And SharePoint Migration and Assement by Joel Oleson
 
Demystify Salesforce Bulk API
Demystify Salesforce Bulk APIDemystify Salesforce Bulk API
Demystify Salesforce Bulk API
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
 
Alfresco benchmark report_bl100093
Alfresco benchmark report_bl100093Alfresco benchmark report_bl100093
Alfresco benchmark report_bl100093
 
Building an MLOps Stack for Companies at Reasonable Scale
Building an MLOps Stack for Companies at Reasonable ScaleBuilding an MLOps Stack for Companies at Reasonable Scale
Building an MLOps Stack for Companies at Reasonable Scale
 
Spring In Alfresco Ecm
Spring In Alfresco EcmSpring In Alfresco Ecm
Spring In Alfresco Ecm
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
 
Flink in action
Flink in actionFlink in action
Flink in action
 
Scalable Distributed System Architecture
Scalable Distributed System ArchitectureScalable Distributed System Architecture
Scalable Distributed System Architecture
 
Alfresco Day Roma 2015: Platform Update
Alfresco Day Roma 2015: Platform UpdateAlfresco Day Roma 2015: Platform Update
Alfresco Day Roma 2015: Platform Update
 

Más de Jeff Potts

Más de Jeff Potts (13)

No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with Ansible
 
Moving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesMoving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to Microservices
 
Flexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL TemplatesFlexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL Templates
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
 
Should You Attend Alfresco Devcon 2011
Should You Attend Alfresco Devcon 2011Should You Attend Alfresco Devcon 2011
Should You Attend Alfresco Devcon 2011
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for Developers
 
Good Chemistry: Alfresco, JBoss and CMIS
Good Chemistry: Alfresco, JBoss and CMISGood Chemistry: Alfresco, JBoss and CMIS
Good Chemistry: Alfresco, JBoss and CMIS
 
Co-Editing Complex Documents from Alfresco Share
Co-Editing Complex Documents from Alfresco ShareCo-Editing Complex Documents from Alfresco Share
Co-Editing Complex Documents from Alfresco Share
 
Alfresco from an agile framework perspective
Alfresco from an agile framework perspectiveAlfresco from an agile framework perspective
Alfresco from an agile framework perspective
 
The Power of Drupal and Alfresco Together
The Power of Drupal and Alfresco TogetherThe Power of Drupal and Alfresco Together
The Power of Drupal and Alfresco Together
 
Intro To Alfresco Part 2
Intro To Alfresco Part 2Intro To Alfresco Part 2
Intro To Alfresco Part 2
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3
 
Intro To Alfresco Part 1
Intro To Alfresco Part 1Intro To Alfresco Part 1
Intro To Alfresco Part 1
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

Apache Chemistry in Action: Using CMIS and your favorite language to unlock content from ECM repositories

  • 1. Apache Chemistry in Action: Using CMIS and your favorite language to unlock content from ECM repositories Jeff Potts 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 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? jeff.potts@alfresco.com
  • 4. So we write apps that help deal with content Jeff Potts jeff.potts@alfresco.com archives.nyphil.org my.alfresco.com Alfresco iOS Client
  • 5. But files are a strange beast Jeff Potts 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 jeff.potts@alfresco.com
  • 6. That’s where a content repository comes in Jeff Potts jeff.potts@alfresco.com RDB (Metadata) File System (Files) FileProtocols (WebDAV,FTP,etc.) API Repository Content Object
  • 7. The Problem: Until now, each repo had its own API jeff.potts@alfresco.com API API API My Custom Application Third-Party Systems Most organizations have multiple repositories! One-off integration One-off integration One-off integration Jeff Potts
  • 8. An industry-wide specification is born: CMIS Jeff Potts Managed by OASIS Broad vendor support and adoption 1.0 out now, 1.1 coming soon http://bit.ly/PnAb77 jeff.potts@alfresco.com
  • 9. CMIS specification describes a repo and what’s in it Jeff Potts Domain Model: Repository, Folder, Document, ACL, Relationship, Object Type, Secondary Type*, Item* Binding: Web Services, AtomPub, Browser (JSON)* Query Language: Subset of SQL-92 jeff.potts@alfresco.com *New in CMIS 1.1
  • 10. Apache Chemistry is the CMIS reference implementation Jeff Potts Client libraries, server frameworks, development tools jeff.potts@alfresco.com http://bit.ly/ex20BT
  • 11. Getting started with CMIS Jeff Potts Grab a CMIS client from Apache Chemistry Find a CMIS-compliant repository You need its “service URL” Connect to it with the OpenCMIS Workbench jeff.potts@alfresco.com
  • 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 The Blend – An example music mash- up site – Java Servlets & JSPs – Show it running against multiple CMIS repositories – Full source available from Manning jeff.potts@alfresco.com http://bit.ly/U9npcF
  • 14. The beauty of CMIS Jeff Potts jeff.potts@alfresco.com My Custom Application Third-Party Systems CMIS API Standard integration Standard integration
  • 15. Coming in CMIS 1.1 Jeff Potts Browser (JSON) Binding Type mutability Secondary types (aka “Aspects”) Item jeff.potts@alfresco.com
  • 16. Come to the Alfresco Meetup at 15:00, Rm 123, Bldg G Meet customers, partners, and other community members Learn about Alfresco in the real world Hear talks on our cloud API, Web Content Management, Scripts, and Case Management See you today at 15:00 in Room 123!

Notas del editor

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