SlideShare une entreprise Scribd logo
1  sur  28
Getting Started with CMIS
January 2012

Jeff Potts
Chief Community Officer
Apache Chemistry cmislib lead
Agenda
• What is CMIS?
  – Brief description
  – Quick overview of the domain model
• First steps using Apache Chemistry
  – Demos using cmislib (Python) and OpenCMIS
    (Java)
  – Demo using OpenCMIS Workbench & the Groovy
    Console
• Tips & Tricks for New CMIS Developers
• Where to learn more
What is CMIS?
• Vendor independent API for working with
  content repositories
• Specification managed by OASIS
  – Domain model
  – Protocol bindings
    • Web Services Binding
    • ATOM Pub Binding
    • Browser (JSON) Binding (Coming in 1.1)
  – CMIS Query Language
The Beauty of CMIS
 Presentation
     Tier

                 REST   SOAP




                               ?
   Content
 Services Tier




  Enterprise
  Apps Tier                        ?
Meet CMIS
  Consumer
                Client


              read   write

              Services
             Domain Model
  Provider




                                      Content
              Vendor                  Management
              Mapping                 Interoperability
                                      Services
               Content
              Repository     CMIS lets you
                             read, search, write, update, delete, version, c
                             ontrol, … content and metadata!
Developed by 30+ ECM Vendors
Implementations Already Available…




                                     Providers
                                     Consumers
Use Cases
                            Content
        Client                                      Client
                           Repository



       Content              Content               Content
                                                   Content
      Repository           Repository            Repository
                                                     Content
                                                  Repository
                                                    Repository


 •   Collaborative Content Creation     •   Workflow & BPM
 •   Portals                            •   Archival
 •   Client Application Integration     •   Virtual Documents
 •   Mashup                             •   DAM / WCM
Types
Document                      Folder
• Content                     • Container
• Renditions                  • Hierarchy
• Version History             • Filing

                     Described by
                    Type Definitions

Relationship                  Policy
• Source Object               • Target Object
• Target Object
Type Definitions
            Object                       Property
            • Type Id                    • Property Id
            • Parent               *     • Display Name
            • Display Name               • Type
            •Queryable                   • Required
            • Controllable               • Default Value
                                         •…



 Document           Folder             Relationship        Policy
 •Versionable                          • Source Types
 • Allow Content                       • Target Types


                             Custom Type
• Open Source implementations of CMIS
• Apache Chemistry is the umbrella project
  for all CMIS related projects within the
  ASF
  – OpenCMIS (Java, client and server)
  – cmislib (Python, client)
  – phpclient (PHP, client)
  – DotCMIS (.NET, client)
• Apache Chemistry started as an incubator
  project in May 2009
  – Graduated to a top level project in February
    2011.
• Backed by
  Adobe, Alfresco, Nuxeo, OpenText, and
  SAP
• OpenCMIS is a de-facto reference for
  CMIS and is also used by the CMIS TC to
  test new CMIS 1.1 features
FIRST STEPS WITH CMIS

Real-world coding examples
Notes on my setup
•   Alfresco 4.0.c Community
•   SomeCo content model (See ecmarchitect.com)
•   Mac OS X, Tomcat, MySQL, Eclipse
•   Java
    – OpenCMIS 0.6*
    – Alfresco OpenCMIS extension 0.2*
    – JDK 1.6.0_29
• Python
    – cmislib 0.5
    – Python 2.6/2.7

                                * Distributed with Alfresco 4 SDK
DEMO
Installing and Using cmislib
Use easy_install to install cmislib. Docs available here.




                                                            :10
DEMO
Using OpenCMIS to create, query, relate, & delete
The code comes from the ecmarchitect.com custom content types
tutorial, available here. Apache Chemistry OpenCMIS lives here.




                                                           :10
DEMO

Using the Groovy Console in the OpenCMIS Workbench




                                                     :05
TIPS & TRICKS

A few tidbits for the developer new to CMIS
Prefix cannot be null or empty
• You may see this error when using the
  Alfresco OpenCMIS extension
• It is due to a dependency problem
• If you are using Maven, see this issue.
• If you are setting an explicit
  classpath, refer to the CMIS classpath set
  in the Ant build file in the content types
  tutorial
Using Alfresco CMIS extension with
OpenCMIS Workbench
• You must do this if you want to set
  properties defined in an aspect
• Copy alfresco-opencmis-extension-0.2.jar
  to workbench/lib
• Set the following on “Expert” tab:
org.apache.chemistry.opencmis.objectfactory.classname=o
rg.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl

• Click “Load Repositories” before leaving
  the expert tab
In Alfresco 4 the CMIS URLs have
changed
• In Alfresco 4, OpenCMIS is now the CMIS
  implementation
  – Use http://localhost:8080/alfresco/cmisatom
    instead of http://localhost:8080/alfresco/s/cmis
  – Consider the CMIS web scripts to be
    deprecated
  – You may see different results b/w the two
    URLs
CMIS in server-side JavaScript*
varcmisConnection = cmis.getConnection();
varcmisSession    = cmisConnection.getSession();
folder = cmisSession.getRootFolder();
print("Children of: " + folder.name + "(" +
folder.id + ")");

variter = folder.getChildren().iterator();
while (iter.hasNext()) {
  print(iter.next().name);
}




                               *Broken in 4.0.c Community
Experimental JSON binding in
 Alfresco 4
 • Alfresco 4 includes an experimental
   implementation of the new browser
   binding
 • http://localhost:8080/alfresco/cmisbrowser
http://localhost:8080/alfresco/cmisbrowser
http://localhost:8080/alfresco/cmisbrowser/{repo id}/root
http://localhost:8080/alfresco/cmisbrowser/{repo
id}/root?includeAllowableActions=true&skipCount=0&maxItems
http://localhost:8080/alfresco/cmisbrowser/{repo
id}/root/cmis-demo
http://localhost:8080/alfresco/cmisbrowser/{repo
id}/root/cmisdemo?selector=children
http://localhost:8080/alfresco/cmisbrowser/{repo
id}/root/cmisdemo?selector=object
Working with permissions
• ACLs are lists of ACEs
• In Alfresco, group identifiers start with
  ”GROUP_”
• You cannot break inheritance through
  CMIS, but you can determine whether an
  ACE is inherited or “direct”
WHERE TO LEARN MORE
CMIS Resources
• cmis.alfresco.com includes a public CMIS server
  and links to CMIS resources
• Read the CMIS specification
• Apache Chemistry site has clients, lightweight
  server, documentation
• Alfresco Extension for OpenCMIS allows you to
  work with aspect-defined properties
• “Getting Started with CMIS” tutorial shows how to
  use cURL to hit ATOM Pub binding directly
• Slideshare has some CMIS related presentations
  from DevConhere and here
QUESTIONS
jeff.potts@alfresco.com
@jeffpotts01 (Twitter & all chat services)
http://ecmarchitect.com

Contenu connexe

Tendances

Azure Key Vault Integration in Scala
Azure Key Vault Integration in ScalaAzure Key Vault Integration in Scala
Azure Key Vault Integration in ScalaBraja Krishna Das
 
Alfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White PaperAlfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White PaperToni de la Fuente
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsAmazon Web Services
 
Serverless with IAC - terraform과 cloudformation 비교
Serverless with IAC - terraform과 cloudformation 비교Serverless with IAC - terraform과 cloudformation 비교
Serverless with IAC - terraform과 cloudformation 비교재현 신
 
Web hdfs and httpfs
Web hdfs and httpfsWeb hdfs and httpfs
Web hdfs and httpfswchevreuil
 
Calling SOAP and REST API's from PL/SQL
Calling SOAP and REST API's from PL/SQLCalling SOAP and REST API's from PL/SQL
Calling SOAP and REST API's from PL/SQLvenkata20k
 
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive [2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive Amazon Web Services Korea
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfrescoToni de la Fuente
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019J V
 
2022년 07월 21일 Confluent+Imply 웨비나 발표자료
2022년 07월 21일 Confluent+Imply 웨비나 발표자료2022년 07월 21일 Confluent+Imply 웨비나 발표자료
2022년 07월 21일 Confluent+Imply 웨비나 발표자료confluent
 
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
Erp cloud service integration how end to-end_automation
Erp cloud service integration how end to-end_automationErp cloud service integration how end to-end_automation
Erp cloud service integration how end to-end_automationVikas Rai PRINCE2® ITIL®
 
Amazon Connect를 이용한 장애 대응도구 개발기 - 현창훈 (HBSmith) :: AWS Community Day 2020
Amazon Connect를 이용한 장애 대응도구 개발기 - 현창훈 (HBSmith) :: AWS Community Day 2020Amazon Connect를 이용한 장애 대응도구 개발기 - 현창훈 (HBSmith) :: AWS Community Day 2020
Amazon Connect를 이용한 장애 대응도구 개발기 - 현창훈 (HBSmith) :: AWS Community Day 2020AWSKRUG - AWS한국사용자모임
 
OOW15 - Oracle E-Business Suite Technology: Latest Features and Roadmap
OOW15 - Oracle E-Business Suite Technology: Latest Features and RoadmapOOW15 - Oracle E-Business Suite Technology: Latest Features and Roadmap
OOW15 - Oracle E-Business Suite Technology: Latest Features and Roadmapvasuballa
 
AWS Cloud 환경으로​ DB Migration 전략 수립하기
AWS Cloud 환경으로​ DB Migration 전략 수립하기AWS Cloud 환경으로​ DB Migration 전략 수립하기
AWS Cloud 환경으로​ DB Migration 전략 수립하기BESPIN GLOBAL
 
A Walk in the Cloud with AWS Lambda
A Walk in the Cloud with AWS LambdaA Walk in the Cloud with AWS Lambda
A Walk in the Cloud with AWS LambdaAmazon Web Services
 
High Availability Websites: part one
High Availability Websites: part oneHigh Availability Websites: part one
High Availability Websites: part oneAmazon Web Services
 

Tendances (20)

Azure Key Vault Integration in Scala
Azure Key Vault Integration in ScalaAzure Key Vault Integration in Scala
Azure Key Vault Integration in Scala
 
Alfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White PaperAlfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White Paper
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 
Serverless with IAC - terraform과 cloudformation 비교
Serverless with IAC - terraform과 cloudformation 비교Serverless with IAC - terraform과 cloudformation 비교
Serverless with IAC - terraform과 cloudformation 비교
 
Web hdfs and httpfs
Web hdfs and httpfsWeb hdfs and httpfs
Web hdfs and httpfs
 
Calling SOAP and REST API's from PL/SQL
Calling SOAP and REST API's from PL/SQLCalling SOAP and REST API's from PL/SQL
Calling SOAP and REST API's from PL/SQL
 
Apache 之 道
Apache 之 道Apache 之 道
Apache 之 道
 
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive [2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfresco
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019
 
2022년 07월 21일 Confluent+Imply 웨비나 발표자료
2022년 07월 21일 Confluent+Imply 웨비나 발표자료2022년 07월 21일 Confluent+Imply 웨비나 발표자료
2022년 07월 21일 Confluent+Imply 웨비나 발표자료
 
AWS Service Catalog
AWS Service CatalogAWS Service Catalog
AWS Service Catalog
 
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
 
Erp cloud service integration how end to-end_automation
Erp cloud service integration how end to-end_automationErp cloud service integration how end to-end_automation
Erp cloud service integration how end to-end_automation
 
Amazon Connect를 이용한 장애 대응도구 개발기 - 현창훈 (HBSmith) :: AWS Community Day 2020
Amazon Connect를 이용한 장애 대응도구 개발기 - 현창훈 (HBSmith) :: AWS Community Day 2020Amazon Connect를 이용한 장애 대응도구 개발기 - 현창훈 (HBSmith) :: AWS Community Day 2020
Amazon Connect를 이용한 장애 대응도구 개발기 - 현창훈 (HBSmith) :: AWS Community Day 2020
 
OOW15 - Oracle E-Business Suite Technology: Latest Features and Roadmap
OOW15 - Oracle E-Business Suite Technology: Latest Features and RoadmapOOW15 - Oracle E-Business Suite Technology: Latest Features and Roadmap
OOW15 - Oracle E-Business Suite Technology: Latest Features and Roadmap
 
domain-routing.pptx
domain-routing.pptxdomain-routing.pptx
domain-routing.pptx
 
AWS Cloud 환경으로​ DB Migration 전략 수립하기
AWS Cloud 환경으로​ DB Migration 전략 수립하기AWS Cloud 환경으로​ DB Migration 전략 수립하기
AWS Cloud 환경으로​ DB Migration 전략 수립하기
 
A Walk in the Cloud with AWS Lambda
A Walk in the Cloud with AWS LambdaA Walk in the Cloud with AWS Lambda
A Walk in the Cloud with AWS Lambda
 
High Availability Websites: part one
High Availability Websites: part oneHigh Availability Websites: part one
High Availability Websites: part one
 

Similaire à Getting Started with CMIS

PLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldPLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldAlfresco Software
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management PrimerRichard Esplin
 
CM Pros CMIS Overview - Jan 2011
CM Pros CMIS Overview  - Jan 2011CM Pros CMIS Overview  - Jan 2011
CM Pros CMIS Overview - Jan 2011Laurence Hart
 
PLAT-3 CMIS — What’s coming next?
PLAT-3 CMIS — What’s coming next?PLAT-3 CMIS — What’s coming next?
PLAT-3 CMIS — What’s coming next?Alfresco Software
 
Apache Chemistry: The Alfresco Open Source Implementation of CMIS
Apache Chemistry: The Alfresco Open Source Implementation of CMISApache Chemistry: The Alfresco Open Source Implementation of CMIS
Apache Chemistry: The Alfresco Open Source Implementation of CMISAlfresco Software
 
PLAT-2 CMIS - What’s coming next?
PLAT-2 CMIS - What’s coming next?PLAT-2 CMIS - What’s coming next?
PLAT-2 CMIS - What’s coming next?Alfresco Software
 
PLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsPLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsAlfresco Software
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Nicole Szigeti
 
WCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoWCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoAlfresco Software
 
Tech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupalTech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupalAlfresco Software
 
Cmis Virtual Training Webinar 24 Nov09
Cmis Virtual Training  Webinar 24 Nov09Cmis Virtual Training  Webinar 24 Nov09
Cmis Virtual Training Webinar 24 Nov09Alfresco Software
 
Eclipse Enterprise Content Repository (ECR)
Eclipse Enterprise Content Repository (ECR)Eclipse Enterprise Content Repository (ECR)
Eclipse Enterprise Content Repository (ECR)Florent Guillaume
 
CMIS: An Open API for Managing Content
CMIS: An Open API for Managing ContentCMIS: An Open API for Managing Content
CMIS: An Open API for Managing ContentJeff Potts
 
Alfresco 4: Scalability and Performance
Alfresco 4: Scalability and PerformanceAlfresco 4: Scalability and Performance
Alfresco 4: Scalability and PerformanceAlfresco Software
 
Alfresco scalability and performnce
Alfresco   scalability and performnceAlfresco   scalability and performnce
Alfresco scalability and performncePaul Hampton
 
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 APIJeff Potts
 
Nuxeo World Session: CMIS - What's Next?
Nuxeo World Session: CMIS - What's Next?Nuxeo World Session: CMIS - What's Next?
Nuxeo World Session: CMIS - What's Next?Nuxeo
 

Similaire à Getting Started with CMIS (20)

PLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldPLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real World
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management Primer
 
CM Pros CMIS Overview - Jan 2011
CM Pros CMIS Overview  - Jan 2011CM Pros CMIS Overview  - Jan 2011
CM Pros CMIS Overview - Jan 2011
 
PLAT-3 CMIS — What’s coming next?
PLAT-3 CMIS — What’s coming next?PLAT-3 CMIS — What’s coming next?
PLAT-3 CMIS — What’s coming next?
 
Apache Chemistry: The Alfresco Open Source Implementation of CMIS
Apache Chemistry: The Alfresco Open Source Implementation of CMISApache Chemistry: The Alfresco Open Source Implementation of CMIS
Apache Chemistry: The Alfresco Open Source Implementation of CMIS
 
PLAT-2 CMIS - What’s coming next?
PLAT-2 CMIS - What’s coming next?PLAT-2 CMIS - What’s coming next?
PLAT-2 CMIS - What’s coming next?
 
CMIS Introduction
CMIS IntroductionCMIS Introduction
CMIS Introduction
 
ITB2016 - ContentBox Modular CMS
ITB2016 - ContentBox Modular CMSITB2016 - ContentBox Modular CMS
ITB2016 - ContentBox Modular CMS
 
PLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsPLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in Grails
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
WCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoWCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and Alfresco
 
Tech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupalTech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupal
 
Cmis Virtual Training Webinar 24 Nov09
Cmis Virtual Training  Webinar 24 Nov09Cmis Virtual Training  Webinar 24 Nov09
Cmis Virtual Training Webinar 24 Nov09
 
Eclipse Enterprise Content Repository (ECR)
Eclipse Enterprise Content Repository (ECR)Eclipse Enterprise Content Repository (ECR)
Eclipse Enterprise Content Repository (ECR)
 
CDMI For Swift
CDMI For SwiftCDMI For Swift
CDMI For Swift
 
CMIS: An Open API for Managing Content
CMIS: An Open API for Managing ContentCMIS: An Open API for Managing Content
CMIS: An Open API for Managing Content
 
Alfresco 4: Scalability and Performance
Alfresco 4: Scalability and PerformanceAlfresco 4: Scalability and Performance
Alfresco 4: Scalability and Performance
 
Alfresco scalability and performnce
Alfresco   scalability and performnceAlfresco   scalability and performnce
Alfresco scalability and performnce
 
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
 
Nuxeo World Session: CMIS - What's Next?
Nuxeo World Session: CMIS - What's Next?Nuxeo World Session: CMIS - What's Next?
Nuxeo World Session: CMIS - What's Next?
 

Plus de Jeff Potts

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 AnsibleJeff Potts
 
Moving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesMoving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesJeff Potts
 
Flexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL TemplatesFlexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL TemplatesJeff Potts
 
Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Jeff Potts
 
Connecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISConnecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISJeff Potts
 
The Challenges of Keeping Bees
The Challenges of Keeping BeesThe Challenges of Keeping Bees
The Challenges of Keeping BeesJeff Potts
 
Getting Started With CMIS
Getting Started With CMISGetting Started With CMIS
Getting Started With CMISJeff Potts
 
Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should knowJeff Potts
 
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...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...Jeff Potts
 
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 MarketJeff Potts
 
Join the Alfresco community
Join the Alfresco communityJoin the Alfresco community
Join the Alfresco communityJeff Potts
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public APIJeff Potts
 
Apache Chemistry in Action
Apache Chemistry in ActionApache Chemistry in Action
Apache Chemistry in ActionJeff Potts
 
Alfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsAlfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsJeff Potts
 
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 AppsJeff Potts
 
Alfresco SAUG: State of ECM
Alfresco SAUG: State of ECMAlfresco SAUG: State of ECM
Alfresco SAUG: State of ECMJeff Potts
 
Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsJeff Potts
 
Should You Attend Alfresco Devcon 2011
Should You Attend Alfresco Devcon 2011Should You Attend Alfresco Devcon 2011
Should You Attend Alfresco Devcon 2011Jeff Potts
 
2011 Alfresco Community Survey Results
2011 Alfresco Community Survey Results2011 Alfresco Community Survey Results
2011 Alfresco Community Survey ResultsJeff Potts
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for DevelopersJeff Potts
 

Plus de Jeff Potts (20)

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
 
Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?
 
Connecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISConnecting Content Management Apps with CMIS
Connecting Content Management Apps with CMIS
 
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
 
Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should know
 
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...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...
 
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
 
Join the Alfresco community
Join the Alfresco communityJoin the Alfresco community
Join the Alfresco community
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public API
 
Apache Chemistry in Action
Apache Chemistry in ActionApache Chemistry in Action
Apache Chemistry in Action
 
Alfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsAlfresco Community Survey 2012 Results
Alfresco Community Survey 2012 Results
 
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
 
Alfresco SAUG: State of ECM
Alfresco SAUG: State of ECMAlfresco SAUG: State of ECM
Alfresco SAUG: State of ECM
 
Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & Integrations
 
Should You Attend Alfresco Devcon 2011
Should You Attend Alfresco Devcon 2011Should You Attend Alfresco Devcon 2011
Should You Attend Alfresco Devcon 2011
 
2011 Alfresco Community Survey Results
2011 Alfresco Community Survey Results2011 Alfresco Community Survey Results
2011 Alfresco Community Survey Results
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for Developers
 

Dernier

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Dernier (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

Getting Started with CMIS

  • 1. Getting Started with CMIS January 2012 Jeff Potts Chief Community Officer Apache Chemistry cmislib lead
  • 2. Agenda • What is CMIS? – Brief description – Quick overview of the domain model • First steps using Apache Chemistry – Demos using cmislib (Python) and OpenCMIS (Java) – Demo using OpenCMIS Workbench & the Groovy Console • Tips & Tricks for New CMIS Developers • Where to learn more
  • 3.
  • 4. What is CMIS? • Vendor independent API for working with content repositories • Specification managed by OASIS – Domain model – Protocol bindings • Web Services Binding • ATOM Pub Binding • Browser (JSON) Binding (Coming in 1.1) – CMIS Query Language
  • 5. The Beauty of CMIS Presentation Tier REST SOAP ? Content Services Tier Enterprise Apps Tier ?
  • 6. Meet CMIS Consumer Client read write Services Domain Model Provider Content Vendor Management Mapping Interoperability Services Content Repository CMIS lets you read, search, write, update, delete, version, c ontrol, … content and metadata!
  • 7. Developed by 30+ ECM Vendors Implementations Already Available… Providers Consumers
  • 8. Use Cases Content Client Client Repository Content Content Content Content Repository Repository Repository Content Repository Repository • Collaborative Content Creation • Workflow & BPM • Portals • Archival • Client Application Integration • Virtual Documents • Mashup • DAM / WCM
  • 9. Types Document Folder • Content • Container • Renditions • Hierarchy • Version History • Filing Described by Type Definitions Relationship Policy • Source Object • Target Object • Target Object
  • 10. Type Definitions Object Property • Type Id • Property Id • Parent * • Display Name • Display Name • Type •Queryable • Required • Controllable • Default Value •… Document Folder Relationship Policy •Versionable • Source Types • Allow Content • Target Types Custom Type
  • 11.
  • 12. • Open Source implementations of CMIS • Apache Chemistry is the umbrella project for all CMIS related projects within the ASF – OpenCMIS (Java, client and server) – cmislib (Python, client) – phpclient (PHP, client) – DotCMIS (.NET, client)
  • 13. • Apache Chemistry started as an incubator project in May 2009 – Graduated to a top level project in February 2011. • Backed by Adobe, Alfresco, Nuxeo, OpenText, and SAP • OpenCMIS is a de-facto reference for CMIS and is also used by the CMIS TC to test new CMIS 1.1 features
  • 14. FIRST STEPS WITH CMIS Real-world coding examples
  • 15. Notes on my setup • Alfresco 4.0.c Community • SomeCo content model (See ecmarchitect.com) • Mac OS X, Tomcat, MySQL, Eclipse • Java – OpenCMIS 0.6* – Alfresco OpenCMIS extension 0.2* – JDK 1.6.0_29 • Python – cmislib 0.5 – Python 2.6/2.7 * Distributed with Alfresco 4 SDK
  • 16. DEMO Installing and Using cmislib Use easy_install to install cmislib. Docs available here. :10
  • 17. DEMO Using OpenCMIS to create, query, relate, & delete The code comes from the ecmarchitect.com custom content types tutorial, available here. Apache Chemistry OpenCMIS lives here. :10
  • 18. DEMO Using the Groovy Console in the OpenCMIS Workbench :05
  • 19. TIPS & TRICKS A few tidbits for the developer new to CMIS
  • 20. Prefix cannot be null or empty • You may see this error when using the Alfresco OpenCMIS extension • It is due to a dependency problem • If you are using Maven, see this issue. • If you are setting an explicit classpath, refer to the CMIS classpath set in the Ant build file in the content types tutorial
  • 21. Using Alfresco CMIS extension with OpenCMIS Workbench • You must do this if you want to set properties defined in an aspect • Copy alfresco-opencmis-extension-0.2.jar to workbench/lib • Set the following on “Expert” tab: org.apache.chemistry.opencmis.objectfactory.classname=o rg.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl • Click “Load Repositories” before leaving the expert tab
  • 22. In Alfresco 4 the CMIS URLs have changed • In Alfresco 4, OpenCMIS is now the CMIS implementation – Use http://localhost:8080/alfresco/cmisatom instead of http://localhost:8080/alfresco/s/cmis – Consider the CMIS web scripts to be deprecated – You may see different results b/w the two URLs
  • 23. CMIS in server-side JavaScript* varcmisConnection = cmis.getConnection(); varcmisSession = cmisConnection.getSession(); folder = cmisSession.getRootFolder(); print("Children of: " + folder.name + "(" + folder.id + ")"); variter = folder.getChildren().iterator(); while (iter.hasNext()) { print(iter.next().name); } *Broken in 4.0.c Community
  • 24. Experimental JSON binding in Alfresco 4 • Alfresco 4 includes an experimental implementation of the new browser binding • http://localhost:8080/alfresco/cmisbrowser http://localhost:8080/alfresco/cmisbrowser http://localhost:8080/alfresco/cmisbrowser/{repo id}/root http://localhost:8080/alfresco/cmisbrowser/{repo id}/root?includeAllowableActions=true&skipCount=0&maxItems http://localhost:8080/alfresco/cmisbrowser/{repo id}/root/cmis-demo http://localhost:8080/alfresco/cmisbrowser/{repo id}/root/cmisdemo?selector=children http://localhost:8080/alfresco/cmisbrowser/{repo id}/root/cmisdemo?selector=object
  • 25. Working with permissions • ACLs are lists of ACEs • In Alfresco, group identifiers start with ”GROUP_” • You cannot break inheritance through CMIS, but you can determine whether an ACE is inherited or “direct”
  • 27. CMIS Resources • cmis.alfresco.com includes a public CMIS server and links to CMIS resources • Read the CMIS specification • Apache Chemistry site has clients, lightweight server, documentation • Alfresco Extension for OpenCMIS allows you to work with aspect-defined properties • “Getting Started with CMIS” tutorial shows how to use cURL to hit ATOM Pub binding directly • Slideshare has some CMIS related presentations from DevConhere and here
  • 28. QUESTIONS jeff.potts@alfresco.com @jeffpotts01 (Twitter & all chat services) http://ecmarchitect.com