SlideShare a Scribd company logo
1 of 27
Download to read offline
Connecting Content
Management Apps with
CMIS
#nuxeoCMIS
Jeff Potts
Founder
Metaversant
@jeffpotts01
Josh Fletcher
Solutions Architect
Nuxeo
@jfletcher_nuxeo
Presenters:
#nuxeoCMIS
Agenda
3
•  The need for ECM interoperability
•  CMIS timeline & Nuxeo’s early leadership
•  Quick look at some code
•  About the CMIS spec
•  Apache Chemistry: A reference implementation
•  Getting started
•  Live Example
•  Things to watch out for
•  Q & A
The Year Was 1992
SQL Standardization
Source: CMIS & Apache Chemistry in Action, Mueller, Brown, & Potts, Manning 2013
ECM API Standardization
Source: CMIS & Apache Chemistry in Action, Mueller, Brown, & Potts, Manning 2013
Content Management Interoperability Services
• Domain Model
•  Document, Folder, Relationship, Item, Type,
Secondary Type (Aspect), ACL
• Services
•  Query Language
•  Subset of SQL
• Bindings
•  Browser (JSON)
•  Atom Pub (XML)
•  Web Services
#nuxeoCMIS
Nuxeo Got Involved Early
2008: Nuxeo joins OASIS to work on the spec
2009: Nuxeo proposes Apache Chemistry project
•  5 out of 9 of the original committers are from Nuxeo
2011: Apache Chemistry becomes a top-level project
2013: CMIS 1.1 becomes an OASIS standard
2010: CMIS 1.0 becomes an OASIS standard
#nuxeoCMIS
Major ECM Vendor Support
CMIS Addresses Interoperability
72% of enterprises have more than one
ECM repository…25% have three or more
“State of the ECM Industry,” AIIM, 2011
#nuxeoCMIS
Let’s Look at Some Code
GOAL:
Write Java code that will add a
document to a folder that will work
when run against any CMIS repository.
#nuxeoCMIS
Grab a Folder
Folder folder = (Folder) session.getObjectByPath(somePath);
Set Up Some Properties
Folder folder = (Folder) session.getObjectByPath(somePath);
Map <String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
properties.put(PropertyIds.NAME, filename);
Create a ContentStream
Folder folder = (Folder) session.getObjectByPath(somePath);
Map <String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
properties.put(PropertyIds.NAME, filename);
InputStream stream = new ByteArrayInputStream(anArrayOfBytes);
ContentStream contentStream = session.getObjectFactory()
.createContentStream(
filename,
Long.valueOf(anArrayOfBytes.length),
"text/plain”,
stream);
Create a Document
Folder folder = (Folder) session.getObjectByPath(somePath);
Map <String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
properties.put(PropertyIds.NAME, filename);
InputStream stream = new ByteArrayInputStream(anArrayOfBytes);
ContentStream contentStream = session.getObjectFactory()
.createContentStream(
filename,
Long.valueOf(anArrayOfBytes.length),
"text/plain”,
stream);
Document doc = folder.createDocument(
properties,
contentStream,
VersioningState.MAJOR);
System.out.println("Created: " + doc.getId());
System.out.println("Content Length: " + doc.getContentStreamLength());
CMIS Query Language
SELECT cmis:objectId, cmis:name,
cmis:description, dc:contributors
FROM cmis:document
WHERE cmis:name like 'sample%'
SELECT cmis:objectId, cmis:name,
cmis:description, dc:contributors
FROM cmis:document
WHERE CONTAINS('white paper')
Read the Spec
CMIS Specification Home Page
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis
Current Version: CMIS 1.1
Approved: December, 2012
#nuxeoCMIS
CMIS Reference Implementation
Source: http://chemistry.apache.org
TM
#nuxeoCMIS
OpenCMIS Workbench
Dealing with Different Repositories
•  Imagine writing an industry specification that
must work for repositories that already exist
•  Challenge:
1. Be flexible enough to support the broad
range of functionality in the industry
2. Be descriptive enough to add value as a
standard
#nuxeoCMIS
Nuxeo 7.1 Repository Capabilities
Vendor Info
Capabilities
Root folder ID
Change token
#nuxeoCMIS
Two CMIS Repositories, Differing Capability
Case Management Showcase
• Document capture
• Document update
• Renditions
#nuxeoCMIS
CMIS in the Real World
• Renditions, renditions, renditions...
• Use case: Get all changed documents
• Use case: Content migrations
#nuxeoCMIS
Things to Know
• Pay attention to repository capabilities
• Cache the CMIS Session
• Treat object IDs as opaque
• Prefer the browser binding
• What you ask for can affect performance
•  getDescendants(), getChildren()
•  select * from cmis:document
• Large documents?
•  appendContentStream()
• Change tokens
#nuxeoCMIS
Questions?
http://manning.com/mueller/
Thank You!
Jeff Potts
Founder
Metaversant
@jeffpotts01
Josh Fletcher
Solutions Architect
Nuxeo
@jfletcher_nuxeo
#nuxeoCMIS

More Related Content

What's hot

Tech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupalTech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupalAlfresco Software
 
Tech talk live share extras extension modules feb 13
Tech talk live   share extras extension modules feb 13Tech talk live   share extras extension modules feb 13
Tech talk live share extras extension modules feb 13Alfresco Software
 
Cloud apps with REST APIs using Windows Azure, Asp.NET, ServiceStack and Angu...
Cloud apps with REST APIs using Windows Azure, Asp.NET, ServiceStack and Angu...Cloud apps with REST APIs using Windows Azure, Asp.NET, ServiceStack and Angu...
Cloud apps with REST APIs using Windows Azure, Asp.NET, ServiceStack and Angu...mobiweave
 
Utah Codecamp Cloud Computing
Utah Codecamp Cloud ComputingUtah Codecamp Cloud Computing
Utah Codecamp Cloud ComputingTom Creighton
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBYuval Ararat
 
Mcknight well built extensions
Mcknight well built extensionsMcknight well built extensions
Mcknight well built extensionsRichard McKnight
 
Spicing up JMX with Jolokia (Devoxx 2014)
Spicing up JMX with Jolokia (Devoxx 2014)Spicing up JMX with Jolokia (Devoxx 2014)
Spicing up JMX with Jolokia (Devoxx 2014)roland.huss
 
Documentation for installing swizzard cms
Documentation for installing swizzard cmsDocumentation for installing swizzard cms
Documentation for installing swizzard cmsGary Dragul
 
From SQL to MongoDB
From SQL to MongoDBFrom SQL to MongoDB
From SQL to MongoDBNuxeo
 
JavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User ExperienceJavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User Experiencereeder29
 
Building a multi-tenant cloud service from legacy code with Docker containers
Building a multi-tenant cloud service from legacy code with Docker containersBuilding a multi-tenant cloud service from legacy code with Docker containers
Building a multi-tenant cloud service from legacy code with Docker containersaslomibm
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO Christian Posta
 
Terraform - Shared Definitions and Variable Inheritance
Terraform - Shared Definitions and Variable InheritanceTerraform - Shared Definitions and Variable Inheritance
Terraform - Shared Definitions and Variable InheritanceDave Rix
 
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...MongoDB
 
My cool new Slideshow!
My cool new Slideshow!My cool new Slideshow!
My cool new Slideshow!Parag Gajbhiye
 
JClouds at San Francisco Java User Group
JClouds at San Francisco Java User GroupJClouds at San Francisco Java User Group
JClouds at San Francisco Java User GroupMarakana Inc.
 
Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2Christian Posta
 
(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at ScaleAmazon Web Services
 

What's hot (19)

Tech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupalTech talk-live-alfresco-drupal
Tech talk-live-alfresco-drupal
 
Tech talk live share extras extension modules feb 13
Tech talk live   share extras extension modules feb 13Tech talk live   share extras extension modules feb 13
Tech talk live share extras extension modules feb 13
 
Cloud apps with REST APIs using Windows Azure, Asp.NET, ServiceStack and Angu...
Cloud apps with REST APIs using Windows Azure, Asp.NET, ServiceStack and Angu...Cloud apps with REST APIs using Windows Azure, Asp.NET, ServiceStack and Angu...
Cloud apps with REST APIs using Windows Azure, Asp.NET, ServiceStack and Angu...
 
Utah Codecamp Cloud Computing
Utah Codecamp Cloud ComputingUtah Codecamp Cloud Computing
Utah Codecamp Cloud Computing
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
 
Mcknight well built extensions
Mcknight well built extensionsMcknight well built extensions
Mcknight well built extensions
 
Spicing up JMX with Jolokia (Devoxx 2014)
Spicing up JMX with Jolokia (Devoxx 2014)Spicing up JMX with Jolokia (Devoxx 2014)
Spicing up JMX with Jolokia (Devoxx 2014)
 
Documentation for installing swizzard cms
Documentation for installing swizzard cmsDocumentation for installing swizzard cms
Documentation for installing swizzard cms
 
From SQL to MongoDB
From SQL to MongoDBFrom SQL to MongoDB
From SQL to MongoDB
 
JavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User ExperienceJavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User Experience
 
Building a multi-tenant cloud service from legacy code with Docker containers
Building a multi-tenant cloud service from legacy code with Docker containersBuilding a multi-tenant cloud service from legacy code with Docker containers
Building a multi-tenant cloud service from legacy code with Docker containers
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
 
Terraform - Shared Definitions and Variable Inheritance
Terraform - Shared Definitions and Variable InheritanceTerraform - Shared Definitions and Variable Inheritance
Terraform - Shared Definitions and Variable Inheritance
 
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
 
My cool new Slideshow!
My cool new Slideshow!My cool new Slideshow!
My cool new Slideshow!
 
JClouds at San Francisco Java User Group
JClouds at San Francisco Java User GroupJClouds at San Francisco Java User Group
JClouds at San Francisco Java User Group
 
Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2
 
Apache Libcloud
Apache LibcloudApache Libcloud
Apache Libcloud
 
(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale
 

Viewers also liked

Digital Asset Management: A Platform Approach
Digital Asset Management: A Platform ApproachDigital Asset Management: A Platform Approach
Digital Asset Management: A Platform ApproachNuxeo
 
Invoice Capture in the Nuxeo Platform Using Ephesoft and CMIS
Invoice Capture in the Nuxeo Platform Using Ephesoft and CMISInvoice Capture in the Nuxeo Platform Using Ephesoft and CMIS
Invoice Capture in the Nuxeo Platform Using Ephesoft and CMISNuxeo
 
Building GSD&M’s Digital Asset Management Solution
Building GSD&M’s Digital Asset Management SolutionBuilding GSD&M’s Digital Asset Management Solution
Building GSD&M’s Digital Asset Management SolutionNuxeo
 
[Nuxeo World 2013] USING CMIS TO PRESENT RELEVANT ASSETS IN HIPPO - BAS VAN L...
[Nuxeo World 2013] USING CMIS TO PRESENT RELEVANT ASSETS IN HIPPO - BAS VAN L...[Nuxeo World 2013] USING CMIS TO PRESENT RELEVANT ASSETS IN HIPPO - BAS VAN L...
[Nuxeo World 2013] USING CMIS TO PRESENT RELEVANT ASSETS IN HIPPO - BAS VAN L...Nuxeo
 
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)Brian Huff
 
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"Daniel Bryant
 
Setting the Record Straight: Drupal as an Enterprise Web Content Management S...
Setting the Record Straight: Drupal as an Enterprise Web Content Management S...Setting the Record Straight: Drupal as an Enterprise Web Content Management S...
Setting the Record Straight: Drupal as an Enterprise Web Content Management S...Acquia
 
Modern Enterprise integration Strategies
Modern Enterprise integration StrategiesModern Enterprise integration Strategies
Modern Enterprise integration StrategiesJesus Rodriguez
 
API Management architect presentation
API Management architect presentationAPI Management architect presentation
API Management architect presentationsflynn073
 

Viewers also liked (10)

Digital Asset Management: A Platform Approach
Digital Asset Management: A Platform ApproachDigital Asset Management: A Platform Approach
Digital Asset Management: A Platform Approach
 
Invoice Capture in the Nuxeo Platform Using Ephesoft and CMIS
Invoice Capture in the Nuxeo Platform Using Ephesoft and CMISInvoice Capture in the Nuxeo Platform Using Ephesoft and CMIS
Invoice Capture in the Nuxeo Platform Using Ephesoft and CMIS
 
Building GSD&M’s Digital Asset Management Solution
Building GSD&M’s Digital Asset Management SolutionBuilding GSD&M’s Digital Asset Management Solution
Building GSD&M’s Digital Asset Management Solution
 
[Nuxeo World 2013] USING CMIS TO PRESENT RELEVANT ASSETS IN HIPPO - BAS VAN L...
[Nuxeo World 2013] USING CMIS TO PRESENT RELEVANT ASSETS IN HIPPO - BAS VAN L...[Nuxeo World 2013] USING CMIS TO PRESENT RELEVANT ASSETS IN HIPPO - BAS VAN L...
[Nuxeo World 2013] USING CMIS TO PRESENT RELEVANT ASSETS IN HIPPO - BAS VAN L...
 
Alfresco CMIS
Alfresco CMISAlfresco CMIS
Alfresco CMIS
 
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
 
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
 
Setting the Record Straight: Drupal as an Enterprise Web Content Management S...
Setting the Record Straight: Drupal as an Enterprise Web Content Management S...Setting the Record Straight: Drupal as an Enterprise Web Content Management S...
Setting the Record Straight: Drupal as an Enterprise Web Content Management S...
 
Modern Enterprise integration Strategies
Modern Enterprise integration StrategiesModern Enterprise integration Strategies
Modern Enterprise integration Strategies
 
API Management architect presentation
API Management architect presentationAPI Management architect presentation
API Management architect presentation
 

Similar to Connecting Content Management Applications with CMIS

Good Chemistry: Alfresco, JBoss and CMIS
Good Chemistry: Alfresco, JBoss and CMISGood Chemistry: Alfresco, JBoss and CMIS
Good Chemistry: Alfresco, JBoss and CMISJeff Potts
 
Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsJeff Potts
 
Get docs from sp doc library
Get docs from sp doc libraryGet docs from sp doc library
Get docs from sp doc librarySudip Sengupta
 
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...Peter Keane
 
Examiness hints and tips from the trenches
Examiness hints and tips from the trenchesExaminess hints and tips from the trenches
Examiness hints and tips from the trenchesIsmail Mayat
 
Content analysis for ECM with Apache Tika
Content analysis for ECM with Apache TikaContent analysis for ECM with Apache Tika
Content analysis for ECM with Apache TikaPaolo Mottadelli
 
SharePoint Saturday 2010 - SharePoint 2010 Content Organizer Feature
SharePoint Saturday 2010 - SharePoint 2010 Content Organizer FeatureSharePoint Saturday 2010 - SharePoint 2010 Content Organizer Feature
SharePoint Saturday 2010 - SharePoint 2010 Content Organizer FeatureRoy Kim
 
09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WP09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WPNguyen Tuan
 
Cordova training : Day 4 - Advanced Javascript
Cordova training : Day 4 - Advanced JavascriptCordova training : Day 4 - Advanced Javascript
Cordova training : Day 4 - Advanced JavascriptBinu Paul
 
cake phptutorial
cake phptutorialcake phptutorial
cake phptutorialice27
 
IW403 Records Management Improvements in SharePoint 2010
IW403 Records Management Improvements in SharePoint 2010IW403 Records Management Improvements in SharePoint 2010
IW403 Records Management Improvements in SharePoint 2010John F. Holliday
 
Automating Content Import
Automating Content ImportAutomating Content Import
Automating Content ImportDavid Lippman
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring DataEric Bottard
 

Similar to Connecting Content Management Applications with CMIS (20)

Building a Search Engine Using Lucene
Building a Search Engine Using LuceneBuilding a Search Engine Using Lucene
Building a Search Engine Using Lucene
 
Good Chemistry: Alfresco, JBoss and CMIS
Good Chemistry: Alfresco, JBoss and CMISGood Chemistry: Alfresco, JBoss and CMIS
Good Chemistry: Alfresco, JBoss and CMIS
 
Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & Integrations
 
Get docs from sp doc library
Get docs from sp doc libraryGet docs from sp doc library
Get docs from sp doc library
 
OpenCMIS Part 1
OpenCMIS Part 1OpenCMIS Part 1
OpenCMIS Part 1
 
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
 
Ajax workshop
Ajax workshopAjax workshop
Ajax workshop
 
Examiness hints and tips from the trenches
Examiness hints and tips from the trenchesExaminess hints and tips from the trenches
Examiness hints and tips from the trenches
 
Introduction to Monsoon PHP framework
Introduction to Monsoon PHP frameworkIntroduction to Monsoon PHP framework
Introduction to Monsoon PHP framework
 
Content analysis for ECM with Apache Tika
Content analysis for ECM with Apache TikaContent analysis for ECM with Apache Tika
Content analysis for ECM with Apache Tika
 
Gl qtp day 3 2
Gl qtp day 3   2Gl qtp day 3   2
Gl qtp day 3 2
 
Full Text Search In PostgreSQL
Full Text Search In PostgreSQLFull Text Search In PostgreSQL
Full Text Search In PostgreSQL
 
SharePoint Saturday 2010 - SharePoint 2010 Content Organizer Feature
SharePoint Saturday 2010 - SharePoint 2010 Content Organizer FeatureSharePoint Saturday 2010 - SharePoint 2010 Content Organizer Feature
SharePoint Saturday 2010 - SharePoint 2010 Content Organizer Feature
 
09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WP09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WP
 
Cordova training : Day 4 - Advanced Javascript
Cordova training : Day 4 - Advanced JavascriptCordova training : Day 4 - Advanced Javascript
Cordova training : Day 4 - Advanced Javascript
 
cake phptutorial
cake phptutorialcake phptutorial
cake phptutorial
 
IW403 Records Management Improvements in SharePoint 2010
IW403 Records Management Improvements in SharePoint 2010IW403 Records Management Improvements in SharePoint 2010
IW403 Records Management Improvements in SharePoint 2010
 
Persistences
PersistencesPersistences
Persistences
 
Automating Content Import
Automating Content ImportAutomating Content Import
Automating Content Import
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring Data
 

More from Nuxeo

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesNuxeo
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureNuxeo
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicNuxeo
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoNuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportNuxeo
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM ContinuumNuxeo
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021Nuxeo
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteNuxeo
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoNuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationNuxeo
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Nuxeo
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionNuxeo
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Nuxeo
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMNuxeo
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...Nuxeo
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondNuxeo
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMNuxeo
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesNuxeo
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsNuxeo
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceNuxeo
 

More from Nuxeo (20)

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage Companies
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain Future
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a Pandemic
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and Nuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to Support
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM Continuum
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovante
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et Nuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the Competition
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAM
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and Beyond
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof Technologies
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial Intelligence
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 

Connecting Content Management Applications with CMIS

  • 1. Connecting Content Management Apps with CMIS #nuxeoCMIS
  • 2. Jeff Potts Founder Metaversant @jeffpotts01 Josh Fletcher Solutions Architect Nuxeo @jfletcher_nuxeo Presenters: #nuxeoCMIS
  • 3. Agenda 3 •  The need for ECM interoperability •  CMIS timeline & Nuxeo’s early leadership •  Quick look at some code •  About the CMIS spec •  Apache Chemistry: A reference implementation •  Getting started •  Live Example •  Things to watch out for •  Q & A
  • 5. SQL Standardization Source: CMIS & Apache Chemistry in Action, Mueller, Brown, & Potts, Manning 2013
  • 6. ECM API Standardization Source: CMIS & Apache Chemistry in Action, Mueller, Brown, & Potts, Manning 2013
  • 7. Content Management Interoperability Services • Domain Model •  Document, Folder, Relationship, Item, Type, Secondary Type (Aspect), ACL • Services •  Query Language •  Subset of SQL • Bindings •  Browser (JSON) •  Atom Pub (XML) •  Web Services #nuxeoCMIS
  • 8. Nuxeo Got Involved Early 2008: Nuxeo joins OASIS to work on the spec 2009: Nuxeo proposes Apache Chemistry project •  5 out of 9 of the original committers are from Nuxeo 2011: Apache Chemistry becomes a top-level project 2013: CMIS 1.1 becomes an OASIS standard 2010: CMIS 1.0 becomes an OASIS standard #nuxeoCMIS
  • 10. CMIS Addresses Interoperability 72% of enterprises have more than one ECM repository…25% have three or more “State of the ECM Industry,” AIIM, 2011 #nuxeoCMIS
  • 11. Let’s Look at Some Code GOAL: Write Java code that will add a document to a folder that will work when run against any CMIS repository. #nuxeoCMIS
  • 12. Grab a Folder Folder folder = (Folder) session.getObjectByPath(somePath);
  • 13. Set Up Some Properties Folder folder = (Folder) session.getObjectByPath(somePath); Map <String, Object> properties = new HashMap<String, Object>(); properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document"); properties.put(PropertyIds.NAME, filename);
  • 14. Create a ContentStream Folder folder = (Folder) session.getObjectByPath(somePath); Map <String, Object> properties = new HashMap<String, Object>(); properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document"); properties.put(PropertyIds.NAME, filename); InputStream stream = new ByteArrayInputStream(anArrayOfBytes); ContentStream contentStream = session.getObjectFactory() .createContentStream( filename, Long.valueOf(anArrayOfBytes.length), "text/plain”, stream);
  • 15. Create a Document Folder folder = (Folder) session.getObjectByPath(somePath); Map <String, Object> properties = new HashMap<String, Object>(); properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document"); properties.put(PropertyIds.NAME, filename); InputStream stream = new ByteArrayInputStream(anArrayOfBytes); ContentStream contentStream = session.getObjectFactory() .createContentStream( filename, Long.valueOf(anArrayOfBytes.length), "text/plain”, stream); Document doc = folder.createDocument( properties, contentStream, VersioningState.MAJOR); System.out.println("Created: " + doc.getId()); System.out.println("Content Length: " + doc.getContentStreamLength());
  • 16. CMIS Query Language SELECT cmis:objectId, cmis:name, cmis:description, dc:contributors FROM cmis:document WHERE cmis:name like 'sample%' SELECT cmis:objectId, cmis:name, cmis:description, dc:contributors FROM cmis:document WHERE CONTAINS('white paper')
  • 17. Read the Spec CMIS Specification Home Page https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis Current Version: CMIS 1.1 Approved: December, 2012 #nuxeoCMIS
  • 18. CMIS Reference Implementation Source: http://chemistry.apache.org TM #nuxeoCMIS
  • 20. Dealing with Different Repositories •  Imagine writing an industry specification that must work for repositories that already exist •  Challenge: 1. Be flexible enough to support the broad range of functionality in the industry 2. Be descriptive enough to add value as a standard #nuxeoCMIS
  • 21. Nuxeo 7.1 Repository Capabilities Vendor Info Capabilities Root folder ID Change token #nuxeoCMIS
  • 22. Two CMIS Repositories, Differing Capability
  • 23. Case Management Showcase • Document capture • Document update • Renditions #nuxeoCMIS
  • 24. CMIS in the Real World • Renditions, renditions, renditions... • Use case: Get all changed documents • Use case: Content migrations #nuxeoCMIS
  • 25. Things to Know • Pay attention to repository capabilities • Cache the CMIS Session • Treat object IDs as opaque • Prefer the browser binding • What you ask for can affect performance •  getDescendants(), getChildren() •  select * from cmis:document • Large documents? •  appendContentStream() • Change tokens #nuxeoCMIS
  • 27. Thank You! Jeff Potts Founder Metaversant @jeffpotts01 Josh Fletcher Solutions Architect Nuxeo @jfletcher_nuxeo #nuxeoCMIS