Content Management Interoperability Services (CMIS)

feelingmomInternet και Εφαρμογές Web

7 Δεκ 2013 (πριν από 3 χρόνια και 6 μήνες)

119 εμφανίσεις

© 2010 IBM Corporation

Enterprise Content Management
IBM Software Solutions – Enterprise Content Management
Content Management Interoperability
Services (CMIS)


Rich Howarth
Director, ECM Software Development
IBM Software Group

December, 2010

© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
The  informa,on  contained  in  this  documenta,on  is  provided  for  informa,onal  
purposes  only.  While  efforts  were  made  to  verify  the  completeness  and  accuracy  
of  the  informa,on  provided,  it  is  provided  
l
as  is
z
 without  warranty  of  any  kind,  
express  or  implied.  IBM  shall  not  be  responsible  for  any  damages  arising  out  of  
the  use  of,  or  otherwise  related  to,  this  documenta,on  or  any  other  
documenta,on.  Nothing  contained  in  this  documenta,on  is  intended  to,  nor  
shall  have  the  effect  of,  crea,ng  any  warran,es  or  representa,ons  from  IBM  (or  
its  suppliers  or  licensors),  or  altering  the  terms  and  condi,ons  of  the  applicable  
license  agreement  governing  the  use  of  IBM  soEware.  
Disclaimers
2
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Agenda


CMIS History


CMIS Overview


Industry Support for CMIS
3
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Why a standard API?


Customers have multiple ECM systems


Every ECM system has a different API and programming model


Some vendors want to control how they are used


Difficult to access multiple systems concurrently (e.g. to implement a portal)


In many cases there are good reasons for multiple ECM systems


Some are optimized for specialized use cases and design points


Some contain massive amounts of data that can’t affordable be migrated


Lack of standardization has limited ECM industry growth


Sometimes its just simpler to use a shared
filesystem



SQL is a great example of how standardization enables growth
4
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Hasn’t this been tried before?


Many times !


DMA


Too many vendors not committed to it


WebDAV


Too many different use cases


Web file access, source code management, authoring, etc.


JSR 170/JCR


Forced a hierarchical repository design


AIIM
iECM



Too many different points of view in initial meetings
5
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Why is CMIS different?


Keep it simple


Designed to support common ECM capabilities


Limited scope – we left a lot of things out


Designed to be implemented on top of ECM systems easily


Platform and language agnostic


A model / protocol, not an API


Works with any language or platform


Java, .NET, JavaScript, C++, etc.


Participation and commitment from the major players


Based on well understood patterns


Proven with prototypes from the start
6
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Benefits of the CMIS standard


Protects customers investments in ECM applications


Grows the ECM ISV community


Increases demand for repository technology


More partners to help solve business problems


Lowers cost of ownership


Larger developer pool


Cheaper and more abundant applications, tools and APIs


Leverages common Web 2.0 and SOA technologies


Reduces development and maintenance costs


Vendors to compete on features


Instead of relying on ‘lock in’
7
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
History of CMIS


2006


Development started by IBM, EMC and Microsoft


2008


Initial proposal drafted by IBM, EMC and Microsoft


Oasis technical committee forms


2009


CMIS 1.0 release for public comment


2010


CMIS becomes official standard in May
8
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Goals and scope


Goal


Enable applications to target one or more ECM repositories uniformly for
core content services


Expose a standard set of APIs for the existing capabilities of ECM
repositories


… that is easily adoptable by most mainstream ECM systems today.


Scope


Support the common use cases - but not replace repository API’s


Provide protocol bindings


Web-services based


Simple Object Access Protocol (SOAP)


Representational State Transfer (REST) /
AtomPub
(Web 2.0)
9
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Key CMIS Use Cases


Corporate applications accessing
multiple content repositories


e.g. an enterprise portal


Content Enabled Vertical Applications
(CEVAs) can be built to access any
CMIS repository


Ad-hoc applications and
mashups



Moving content between repositories


Mobile device access to any CMIS
repository


Many more…
10
IBM
Documentum
SharePoint
Application
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
CMIS Voting Members (Oasis)


AIIM


Adobe Systems


Alfresco Software


ASG Software Solutions


Day Software


EMC Corporation


FatWire



Flatirons Solutions
Corporation
11


Greenbytes

GmbH



IBM


Microsoft Corporation


Nuxeo



Open
Text
Corporation


Oracle Corporation


SAP AG


Saperion
AG
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
CMIS Services
12
Versioning Services


checkout


cancelCheckout


checkin


getPropertiesOfLatestVersion


getAllVersions
Object Services


createDocument


createFolder


createRelationship


createPolicy


getAllowableActions


getObject


getProperties


getFolderByPath


getContentStream


getRenditions


updateProperties


moveObject


deleteObject


deleteTree


setContentStream


deleteContentStream
Policy Services


applyPolicy


removePolicy


getAppliedPolicies
Repository Services


getRepositories


getRepositoryInfo


getTypeChildren


getTypeDescendants


getTypeDefinition
Navigation Services


getFolderTree


getDescendants


getChildren


getFolderParent


getObjectParents


getCheckedOutDocs
ACL Services


getACL


applyACL
Discovery Services


query


getContentChanges
Multi-filing Services


addObjectToFolder


removeObjectFromFolder
Relationship Services


getObjectRelationships
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Protocol Bindings


SOAP:




Service-oriented style


Uses a CMIS-specific schema.


REST/Atom:




Resource-based style


Leverages the Atom/APP formats with CMIS-specific extensions.


Browse-able by standard Atom feed readers.


Works with common REST APIs: Apache
Abdera
, Syndication API
from .NET, JAX-RS*


Common Applications: IE, Firefox,
Newsfox
, among others
13
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
The CMIS repository


Where the content lives


Must provide all the Basic Content Services in the CMIS
specification


May elect to provide optional parts of the specification (e.g. policies and
access control)


May elect to provide services not specified by CMIS (e.g. records
management)


Must support both REST and SOAP bindings


Advertises its capabilities through a service (
getRepositoryInfo
)


Each repository provides a unique name space for objects


Provides vendor name, product name, product version, version of CMIS that
it support and the root folder ID
14
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Types


A Strictly Typed Data Model


Four built-in types


Document


Folder


Relationship


Policy


Sub-types may be defined


The four basic types can be purely abstract


Repositories may decide that applications cannot create instances of the
basic types but must instead only create instances of subtypes
15
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Properties


A property holds zero, one or more typed values


A property definition describes the attributes of a property


Some attributes are common to all property types


(e.g. ID,
PropertyType
)


Some attributes are unique to certain property types


(e.g. Precision)


Property types…


String, Boolean




Decimal, Integer


Datetime
, Id


Uri, Html
16
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
CMIS Objects (Visual)
17
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Documents


One of the four pre-defined
types of content


Documents have properties
and (optionally) a content
stream


Content streams are normally set
and retrieved in separate
operations


Documents may be
versionable

18
Properties


ID


Name


Description


…<more>

Content
Stream

Types
i.e. the
b
bits
`

optionally
optionally
Renditions
l
thumbnails
z

© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Folders


Folders can contain folders
and documents


And any other kind of object
that is declared to be
fileable



Folders cannot have more
than one parent folder


i.e. they are hierarchical


Can decide what types they
can contain
19
Repository
Root
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Hierarchy


Documents and Folders may
be included in Folders


Optionally Documents can be
considered as unfiled
meaning they belong to no
folder at all


Optionally, Documents can be
multi-filed meaning they
belong to multiple folders
20
A is multi-filed
B
B
C
B and C are unfiled
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Relationships (optional)


A directional relationship between
any two objects


An object can have any number of
relationships (including with itself)


A relationship has a source and
target but this ‘direction’ has no
CMIS-defined semantics


Referential integrity is not
enforced


When the relationship is created, both
end-points must exist


After that, either end-point can be
deleted
21

R1
Target
Source
R2
Target
Source
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Policy (Optional)


Ad administrative policy that can
enforced by a repository


Used to manage objects in ways
that are, by themselves, outside
the scope of CMIS


E.g. records retention


Its
policyText
property contains
the details of the policy


The policy text is opaque to the
CMIS repository


(it’s just a string)
22
name
=
l
Access
Rights
z

policyText
=
l
<xml>
…describe the
access rights
policy
name
=
l
Records
Retention
z

policyText
=
l
<xml>
…describe the
retention
control policy
P1
P2
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Access Control


Permission


An allowed action (read,
write,all
)


How these are mapped to allowed
actions is repository specific


The mappings are discoverable


Principal – User or Group


Access Control Entry (ACE)


One or more Permissions granted to a
Principal


Access Control List (ACL)


A collection of ACE’s


Can be assigned to an object


Can be propagated
23
Access Control
List
Fred
l
read
z

Wilma
l
read
z

Wilma
z

l
write
z

Barney
z

l
all
z

foo.doc
ACE
`
s
principal
applyACL
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Versioning


Versions represent document properties/content at a point in time


Only Documents may be versioned


Whether a Document is
versionable
is determined by its type


All the versions of a document collectively define its Version Series (history)


When a document is created, this becomes the first version of the
document


If the document type is not
versionable
then this will be the one and only version


A subsequent Checkout creates a Private Working Copy (PWC)


Checkin
of the PWC creates a new version


Subsequent checkout and
checkin
operations create more versions


There is no ordered relationship between the versions except that the
repository maintains the last modified dates of the versions
24
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Versioning Example
25
1
2
Version Series
3
4
5
Major Version
Major Version
Major Version
6
Private Working Copy
CreateDocument
Checkout/In
Checkout/In
Checkout/In
Checkout
UpdateProperties
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Query


Based on SQL-92


(ISO/IEC 9075: 1992 – Database Language SQL)


A subset of SQL 92 with a few extensions


Each type is treated as a logical relational table


These tables may (or may not) be mapped by the repository to physical
relational tables in an RDB


Does not assume an RDB is used at all


Joins may be supported (optional)


Both inner and outer joins


Full text search (optional)


A SCORE function allows the repository to signify relevance


Contains clause
26
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Query Continued


Property specific queries (e.g. where Created > 06/11/2006)


Predicates IN_FOLDER and IN_TREE allow you to scope the
query to part of the document hierarchy


ORDER BY allows collation


Some examples…


SELECT Y.EMPNO, X.ANNUALSALARY FROM EMPLOYEE AS X JOIN
SALARY AS Y ON ( X.EMPNO = Y.EMPNO )

WHERE( 50000 >= X.ANNUALSALARY ) AND ( Y.MANAGER = ‘Y’ )"


SELECT * FROM
cmis:document
WHERE IN_FOLDER
(‘idf_A089_ff908832_BA91’) AND CONTAINS (‘invoice’) AND
cmis:name
LIKE ‘%project a%’"
27
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Security Model


Authentication


Handled outside of CMIS


Authorization context



AllowableAction
” on every object


Identifies what actions a user can perform, given their permissions & the
object state.
28
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Optional CMIS Capabilities


Multi-filing: Allows documents to be filed in >1 folder
concurrently, or un-filed.


Used in applications like case management (where a single document may
be relevant to multiple cases).


Unfiled documents: documents can exist in a hierarchy or not


Private Working Copy - updatable / searchable (or not)


All versions exposed via search (or not)


Join capability: None, Inner, Inner and Outer


Other capabilities (…)


Changes, Renditions,
FolderTree
,


Descendants, ACLs, Version Specific filing
29
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Not in CMIS scope


Type Management **


Compound Documents


Use relationships and folders


Cross Repository Operations


Localization


Authentication


Provided by the protocol layer, not CMIS


REST - HTTP Basic/Digest/NTLM/SSO/etc.


SOAP - WS-Security
30
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Lotus
Quickr
– Supporting multiple vendors
31
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
CMIS Public Implementations – Examples
32


IBM
FileNet
and CM:
http://www.ibm.com/developerworks/data/downloads/cmistechpreview/index.html



IBM CMIS Firefox Connector:
http://www.ibm.com/developerworks/lotus/library/quickr-cmis/index.html



A CMIS Library for Python –
cmislib
Part 1 & 2:
http://www.ibm.com/developerworks/xml/library/x-cmis1/index.html



EMC:
https://community.emc.com/blogs/cmis/2008/11/10/cmis-release-1-now-available



Alfresco:
http://wiki.alfresco.com/wiki/CMIS


WeWebU

OpenWorkdesk
-
http://www.wewebu.de/en/products/owd.html



CMIS Connector for Adobe Drive 2.0
http://download.macromedia.com/pub/labs/drive/drive2_docs_cmistechnote_081010.pdf



CMIS iPhone App - Fresh Docs for Alfresco -
http://www.ziaconsulting.com/freshdocs/



Drupal CMIS API:
http://drupal.org/project/cmis



Joomla
CMIS client:
http://blog.joomlatools.org/2008/12/joomla-meet-alfresco.html



CMIS Connector for SharePoint 2010
http://blogs.msdn.com/b/sharepoint/archive/2010/07/15/announcing-the-release-of-the-
sharepoint-2010-administration-toolkit-v1.aspx



CMIS Explorer - a CMIS client based on Adobe AIR:
http://code.google.com/p/cmis-explorer/



CMIS Spaces - a CMIS client based on Adobe AIR:
http://code.google.com/p/cmisspaces/



An Apache incubator project:
http://incubator.apache.org/chemistry/

© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
CMIS Public Implementations – More Examples
33


Liferay
Portal using Alfresco documents accessed using CMIS:
http://www.liferay.com/web/jonas.yuan/blog/-/blogs/integrating-alfresco-through-cmis-in-liferay



CMIS Shell (
cmissh
):
http://blogs.nuxeo.com/fermigier/2010/01/announcing-cmis-shell-cmissh-commandline-client-
cmis.html



Digital Asset Management (DAM) based on CMIS from
Nuxeo

http://www.nuxeo.com/en/products/dam



EntropySoft
Enterprise Vault Connector
http://www.entropysoft.net/cms/home/Product/techno



xCMIS
- a war file that implements CMIS REST and WS
http://code.google.com/p/xcmis/



Cara - a browser application from Generis that provides document access to Alfresco,
Documentum and
Sharepoint
-
http://www.generiscorp.com/cara.html



Day Software CRX 2.1 -
http://www.day.com/day/en/products/crx.html



iCMS
- an iPhone Application from Flatirons Solutions
http://www.flatironssolutions.com/iphone



03Spaces - Workplace 3.2
http://o3spaces.org/Page/sp220/from_sp_id=216/nctrue/system_id=272/so_id=340/Index.html



Case Management Framework from
Nuxeo

http://www.nuxeo.com/about/news/nuxeo-introduces-case-management



dotCMS

http://dotcms.com/



CMIS
FileShare
- An open source lightweight CMIS implementation that uses the file system:
http://cmisfs.fmui.de/doku.php

© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Resources
34


OASIS CMIS spec


All docs


http://docs.oasis-open.org/cmis/CMIS/v1.0/os/



Normative doc:


http://docs.oasis-open.org/cmis/CMIS/v1.0/os/cmis-spec-
v1.0.html



IBM
DeveloperWorks
tech preview


http://www.ibm.com/developerworks/data/downloads/
cmistechpreview/index.html



OASIS CMIS TC wiki


http://wiki.oasis-open.org/cmis/


© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Open source releases and prototypes


See Oasis for updated lists


Open Source


Sense/Net


JackRabbit



Joomla



Chemistry


Prototypes


IBM
Developerworks



Alfresco


EMC
35
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
Demo
36
"
Firefox CMIS plugin (lotus developed)
"
OpenCMIS
swing client
"
Alfresco CMIS simple web browse
"
Android clients
"
CMISlib



Part1
http://www.ibm.com/developerworks/xml/library/x-cmis1/
index.html



About the library itself


Part2
http://www.ibm.com/developerworks/library/x-cmis2/index.html



Using the library to script operations against all your
CMIS repositories.
© 2010 IBM Corporation

IBM Software Solutions | Enterprise Content Management Software
37