Connecting Content Management Apps with CMIS

Download Connecting Content Management Apps with CMIS

Post on 13-Apr-2017

478 views

Category:

Technology

2 download

TRANSCRIPT

<p>Digital Asset Management</p> <p>Connecting Content Management Apps with CMIS#nuxeoCMIS</p> <p>HousekeepingUse the Q&amp;A panel to ask questions during the webinar.</p> <p>OR</p> <p>Ask us on twitter using #nuxeoCMIS</p> <p>Questions will be answered at the end of the presentation</p> <p>Jeff PottsFounderMetaversant@jeffpotts01</p> <p>Josh FletcherSolutions ArchitectNuxeo@jfletcher_nuxeoPresenters:</p> <p>#nuxeoCMIS</p> <p>Agenda4</p> <p>The need for ECM interoperabilityCMIS timeline &amp; Nuxeos early leadershipQuick look at some codeAbout the CMIS specApache Chemistry: A reference implementationGetting startedLive ExampleThings to watch out forQ &amp; A</p> <p>The Year Was 1992</p> <p>Ten was released in 1991 but it did not reach widespread popularity until 1992</p> <p>SQL Standardization</p> <p>Source: CMIS &amp; Apache Chemistry in Action, Mueller, Brown, &amp; Potts, Manning 2013</p> <p>ECM API StandardizationSource: CMIS &amp; Apache Chemistry in Action, Mueller, Brown, &amp; Potts, Manning 2013</p> <p>Content Management Interoperability ServicesDomain ModelDocument, Folder, Relationship, Item, Type, Secondary Type (Aspect), ACLServicesQuery LanguageSubset of SQLBindingsBrowser (JSON)Atom Pub (XML)Web Services</p> <p>#nuxeoCMIS</p> <p>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</p> <p>Major ECM Vendor Support</p> <p>CMIS Addresses Interoperability72% of enterprises have more than one ECM repository25% have three or more</p> <p>State of the ECM Industry, AIIM, 2011#nuxeoCMIS</p> <p>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</p> <p>Grab a FolderFolder folder = (Folder) session.getObjectByPath(somePath);</p> <p>Set Up Some PropertiesFolder folder = (Folder) session.getObjectByPath(somePath);</p> <p>Map properties = new HashMap();properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");properties.put(PropertyIds.NAME, filename);</p> <p>Create a ContentStreamFolder folder = (Folder) session.getObjectByPath(somePath);</p> <p>Map properties = new HashMap();properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");properties.put(PropertyIds.NAME, filename);</p> <p>InputStream stream = new ByteArrayInputStream(anArrayOfBytes);ContentStream contentStream = session.getObjectFactory() .createContentStream( filename, Long.valueOf(anArrayOfBytes.length), "text/plain, stream);</p> <p>Create a DocumentFolder folder = (Folder) session.getObjectByPath(somePath);</p> <p>Map properties = new HashMap();properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");properties.put(PropertyIds.NAME, filename);</p> <p>InputStream stream = new ByteArrayInputStream(anArrayOfBytes);ContentStream contentStream = session.getObjectFactory() .createContentStream( filename, Long.valueOf(anArrayOfBytes.length), "text/plain, stream);</p> <p>Document doc = folder.createDocument( properties, contentStream, VersioningState.MAJOR);</p> <p>System.out.println("Created: " + doc.getId());System.out.println("Content Length: " + doc.getContentStreamLength());</p> <p>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')</p> <p>Read the SpecCMIS Specification Home Pagehttps://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis</p> <p>Current Version: CMIS 1.1Approved: December, 2012#nuxeoCMIS</p> <p>CMIS Reference ImplementationSource: http://chemistry.apache.org</p> <p>TM#nuxeoCMIS</p> <p>OpenCMIS Workbench</p> <p>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</p> <p>Nuxeo 7.1 Repository Capabilities</p> <p>Vendor InfoCapabilitiesRoot folder IDChange token</p> <p>#nuxeoCMIS</p> <p>Two CMIS Repositories, Differing Capability</p> <p>Case Management ShowcaseDocument captureDocument updateRenditions#nuxeoCMIS</p> <p>CMIS in the Real WorldRenditions, renditions, renditions...Use case: Get all changed documentsUse case: Content migrations#nuxeoCMIS</p> <p>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</p> <p>Questions?http://manning.com/mueller/</p> <p>Thank You!</p> <p>Jeff PottsFounderMetaversant@jeffpotts01</p> <p>Josh FletcherSolutions ArchitectNuxeo@jfletcher_nuxeo</p> <p>#nuxeoCMIS</p>

Recommended

View more >