connecting content management apps with cmis

Download Connecting Content Management Apps with CMIS

Post on 13-Apr-2017

478 views

Category:

Technology

2 download

Embed Size (px)

TRANSCRIPT

Digital Asset Management

Connecting Content Management Apps with CMIS#nuxeoCMIS

HousekeepingUse the Q&A panel to ask questions during the webinar.

OR

Ask us on twitter using #nuxeoCMIS

Questions will be answered at the end of the presentation

Jeff PottsFounderMetaversant@jeffpotts01

Josh FletcherSolutions ArchitectNuxeo@jfletcher_nuxeoPresenters:

#nuxeoCMIS

Agenda4

The need for ECM interoperabilityCMIS timeline & Nuxeos early leadershipQuick look at some codeAbout the CMIS specApache Chemistry: A reference implementationGetting startedLive ExampleThings to watch out forQ & A

The Year Was 1992

Ten was released in 1991 but it did not reach widespread popularity until 1992

SQL Standardization

Source: CMIS & Apache Chemistry in Action, Mueller, Brown, & Potts, Manning 2013

ECM API StandardizationSource: CMIS & Apache Chemistry in Action, Mueller, Brown, & Potts, Manning 2013

Content Management Interoperability ServicesDomain ModelDocument, Folder, Relationship, Item, Type, Secondary Type (Aspect), ACLServicesQuery LanguageSubset of SQLBindingsBrowser (JSON)Atom Pub (XML)Web Services

#nuxeoCMIS

Nuxeo Got Involved Early2008: Nuxeo joins OASIS to work on the spec2009: Nuxeo proposes Apache Chemistry project5 out of 9 of the original committers are from Nuxeo2011: Apache Chemistry becomes a top-level project2013: CMIS 1.1 becomes an OASIS standard2010: CMIS 1.0 becomes an OASIS standard#nuxeoCMIS

Major ECM Vendor Support

CMIS Addresses Interoperability72% of enterprises have more than one ECM repository25% have three or more

State of the ECM Industry, AIIM, 2011#nuxeoCMIS

Lets Look at Some CodeGOAL:Write Java code that will add a document to a folder that will work when run against any CMIS repository.#nuxeoCMIS

Grab a FolderFolder folder = (Folder) session.getObjectByPath(somePath);

Set Up Some PropertiesFolder folder = (Folder) session.getObjectByPath(somePath);

Map properties = new HashMap();properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");properties.put(PropertyIds.NAME, filename);

Create a ContentStreamFolder folder = (Folder) session.getObjectByPath(somePath);

Map properties = new HashMap();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 DocumentFolder folder = (Folder) session.getObjectByPath(somePath);

Map properties = new HashMap();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 LanguageSELECT cmis:objectId, cmis:name, cmis:description, dc:contributorsFROM cmis:documentWHERE cmis:name like 'sample%'SELECT cmis:objectId, cmis:name, cmis:description, dc:contributorsFROM cmis:documentWHERE CONTAINS('white paper')

Read the SpecCMIS Specification Home Pagehttps://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis

Current Version: CMIS 1.1Approved: December, 2012#nuxeoCMIS

CMIS Reference ImplementationSource: http://chemistry.apache.org

TM#nuxeoCMIS

OpenCMIS Workbench

Dealing with Different RepositoriesImagine writing an industry specification that must work for repositories that already existChallenge:Be flexible enough to support the broad range of functionality in the industryBe descriptive enough to add value as a standard#nuxeoCMIS

Nuxeo 7.1 Repository Capabilities

Vendor InfoCapabilitiesRoot folder IDChange token

#nuxeoCMIS

Two CMIS Repositories, Differing Capability

Case Management ShowcaseDocument captureDocument updateRenditions#nuxeoCMIS

CMIS in the Real WorldRenditions, renditions, renditions...Use case: Get all changed documentsUse case: Content migrations#nuxeoCMIS

Things to KnowPay attention to repository capabilitiesCache the CMIS SessionTreat object IDs as opaquePrefer the browser bindingWhat you ask for can affect performancegetDescendants(), getChildren()select * from cmis:documentLarge documents?appendContentStream()Change tokens#nuxeoCMIS

Questions?http://manning.com/mueller/

Thank You!

Jeff PottsFounderMetaversant@jeffpotts01

Josh FletcherSolutions ArchitectNuxeo@jfletcher_nuxeo

#nuxeoCMIS