Upload
david-nuescheler
View
2.107
Download
2
Embed Size (px)
DESCRIPTION
Presentation on Content Mangament Standards, JCR, the JCP vs. Apache
Citation preview
© 2010 Adobe Systems Incorporated. All Rights Reserved.
Standards, Open-source, JCP & Content Management@davidnuescheler
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Introduction
David Nuescheler Chief Technology [email protected] NueschelerVP Prod & Tech Day
Adobe Systems IncorporatedMailstop W18345 Park AvenueSan Jose, CA [email protected]
David NueschelerJackrabbit Committer / [email protected]
David NueschelerJSR-170/283/333 Spec [email protected]
David NueschelerTC Member / CMIS-JCR [email protected]
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Day So"ware - part of Adobe
3
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Agenda
4
11 2 3 4
CM & StandardsHistory and comparison
JCR Deep DiveOn JSR-170/JSR-283/JSR-333.
!e JCP & Apache”It was complicated”
DemoJCR in Action.
5
Q&A
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Introducing the CM Cloud
5
SCM
DAMDMSOCIAL
WCMPIM
COLLAB
RM
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 6
Many different usecases.Li#le agreement.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
All disciplines of CMagree on the existence and the featuresetof a content repository
7
!ere is light:!e Content Repository.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
A Content Repository!?
8
RDBMSFEATURES OF AN
FILESYSTEMFEATURES OF A
YOU ALWAYS WANTED
GOOD STUFFALL THE OTHER+
Transactions, Query, Structure, Integrity Binaries, Hierarchy, Locking, Access Control
Unstructured, Versioning, Full-text, Multi-Value, Sort-Order, Observation
CONTENT REPOSITORY
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
A history of standards.
ACTIVESPECIFICATION
§ DMA & ODMADocument Management oriented Speci!cation. Li#le Adoption.No active speci!cation development.
§ WebDAV (& friends)Filesystem (Resource) oriented Protocol Speci!cation IETF.Widely adopted. Every Desktop has WebDAV support. Every CM Vendor Supports WebDAV. No active speci!cation development.
§ JCRJava Language API speci!cation. Functionally Broad. Wide adoption by Java Applications. Active development.
§ CMISDocument Management oriented Protocol Speci!cation. Work in progress. Active development of the Speci!cation.
9
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
What is CMIS?
10
PROPOSED TO
OASISSEPT
2008
V0.5
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
What is CMIS?
11
CMIS
DOMAIN MODEL
LEAST COMMON DENOMINATOR DM INTEROP
DOCUMENTS & FOLDERS(+RELATIONSHIPS)
ATOMPUB(extension)
SOAP(bindings)
BINDINGS
HTTP PROTOCOLS
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
What is CMIS?
12
DMIS? WS-DM?
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Day’s involvement in CMIS
Improve Specification via TC activityOfficial JCR / CMIS LiaisonEnable “Web” Support
Apache Chemistry (incubating)
CMIS Implementation & CatalystSponsor, Mentor andSupport podling
13
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
What is JCR?
14
JCR
DOMAIN MODEL
CONTENT REPOSITORYINFRASTRUCTURE
NODES & PROPERTIES(GENERAL PURPOSE)
JAVA LANGUAGE(BINDING)
BINDINGS
API PROGRAMMING LANGUAGES
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
JCR vs. CMIS: Goals & Bodies
15
JCR CMISVS.
Java Language API BindingsLarge Expert Groupv2.0 Released
SOAP & AtomPub Protocol BindingsLarge Technical Committeev1.0 Released
RELATION
COMPLEMENTARY
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
JCR vs. CMIS: Scope comparison
16
JCR CMISVS.
RELATION
COMPATIBLE SUBSET
SCM
DAMDMSOCIAL
WCMPIM
COLLAB
RM SCM
DAMDMSOCIAL
WCMPIM
COLLAB
RM
General PurposeContent Repository Model
FocusedDocument Management Model
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
JCR vs. CMIS: Compatibility
17
JCR CMISVS.
RELATION
COMPATIBLE
Apache Chemistry makes every JCR compliant repository CMIS compliant. Automatically. No work involved.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
JCR vs. CMIS: What, when?
18
JCR CMISVS.
Content Repository Infrastructure.Standardized Content Repository Applications (CCA) and Consolidation
DM InteroperabilityBrowse (multiple) Document Management Systems
RELATION
COMPLEMENTARY
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
CMIS 1.0 Release
19
Released 2010
Baseline Release
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
CMIS 1.1 Submission
20
Web/Browser BindingsFunctional Extensions
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
JCR 2.0 Release
21
Released Sept
2009
TCK, RI & Specification
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
JCR 2.1/ JSR-333
22
JSR-333joiner
welcome.
Scripting, Ease of Use.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Agenda
23
1 22 3 4
CM & StandardsHistory and comparison
JCR Deep DiveOn JSR-170/JSR-283/JSR-333.
!e JCP & Apache”It was complicated”
DemoJCR in Action.
5
Q&A
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 24
JSR-170
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
JCR.
“The API should be a standard, implementation independent, way to access content bi-directionally on a granular level to a content repository.”
25
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
A Content Repository!?
26
RDBMSFEATURES OF AN
FILESYSTEMFEATURES OF A
YOU ALWAYS WANTED
GOOD STUFFALL THE OTHER+
Transactions, Query, Structure, Integrity Binaries, Hierarchy, Locking, Access Control
Data First, Versioning, Full-text, Multi-Value, Sort-Order, Observation
CONTENT REPOSITORY
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 27
When to use?
JCRpermissions
versions
binaries
unstructuredread-mostsearch
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Reality Check!
28
write a “JSP snippet” that lists all the documents in a folder by “title”.
Task
...Code Snippets courtesy of the early JSR-170 Expert-Group:
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Reality Check: List all documents in a folder
29
<%childCount = node.getContentCount();for(int i=0;i<childCount;i++) { IContent child = node.getContent(i); Property title = child.getPropertyByName("Title"); %><%= title.getValue() %><br/><%}%>
<%LAPI_DOCUMENTS document
s = new LAPI_DOCUMENTS(session);
LLValue childTable = new LLValue();
documents.ListObjects(volumeID, folderID,
null, null, LAPI_DOCUMENTS.PERM_SEE, c
hildTable);
Enumeration children = childTable.enumerateVal
ues();
while(children.hasMoreElements()) {
LLValue child = (LLValue)e.nextElement
();
String title = child.toString("Name");
%><%= title %><br/><%
}%>
<%fndocs = new IFnObjSetDualProxy( fnfolder.getContents
(idmFolderContent.idmFolderContentDocument));
int numDocs = fndocs.getCount();for (int i = 1; i <= numDocs; i++) {
IFnDocumentDual fndoc = new IFnDocumentDualProxy(fndocs.getItem(new Integer(i)));
IFnPropertiesDual propset = fndoc.getProperties();
IFnPropertyDual idmTitleProp = propset.getItem("Title");
String title = idmTitleProp.getValue();
%><%= title %><br/><% if (comCleanup) { cleaner.release(fndoc); }}%>
<%IDocuments documents
= new IDocumentsProxy(binder.getDocuments(
));
documents.cache();
int documentCount = documents.getCount();
for (int i = 0; i<documentCount; i++) {
document = new IDocumentProxy(docu
ments.getItemByIndex(i));
String title = document.getTitle()
%><%= title %><br/><%
}%>
<%PageIterator children = page.getPages();while (children.hasNext()) { Page child = children.nextPage(); Container toplevel = child.getContent(); Atom title = toplevel.getAtom("Title"); %><%= title %><br /><%}%>
+800
<%NodeIterator children = node.getNodes();while (children.hasNext()) { Node child = children.nextNode(); Property title = child.getProperty("Title"); %><%= title %><br /><%}%>
JCR API
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 30
Beyond the Spec: RI & TCK
The Spec:300 PagesApache Jackrabbit:more than a reference implementation
Technology
Compatibility Kit:
+1000 Tests
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
§ Took about 4 years
§ Investment for Day ~30 man years of work to complete (Spec, TCK & RI)
§ First JSR in History of the JCP with a true Open Source License (Apache Style)
§ Star Spec-Lead Award for process excellence
§ $e OSS Reference Implementation “Jackrabbit” graduated to a Top Level Apache Project
JSR-170: Some Speci!cs
31
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Java Only?
32
“A Content Repository Standard, sure, but why Java ‘only’?”
Question?
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Why Java…
§ …because of its standardizing body: $e JCP.
§ Good track record with respect to implementations and !nished speci!cations
§ Reference Implementations and Technology Compatibility Kit are mandatory
§ Efficient Speci!cation Cycles
§ A lot of the JCR speci!cation can still be applied other environments and languages
33
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 34
Industry Standards
170
283
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 35
Adoption?
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Apache Jackrabbit Oracle XML DBExo
ECMS PlatformMicrosoft
Sharepoint OpenText Livelink
Day CRX IBM FileNet P8 Xythos Repository Alfresco ECM Vignette V7
Interwoven Repository IBM CM / Domino EMC Documentum
+hundreds of TCKsregisteredSaperionArchive
36
JCR implementation...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 37
Sourcemix Sourcemix
Percussion Rhythmix Lutece
Portal
QuickWCM WCMS
Jahia Framework
Hippo CMS
InfoQ Online CommunityNuxeo ECM
Sakai E-learning
TYPO3 v5.0 WCMGX WebManager
Exo ECMS Platform
Liferay Enterprise Portal
Artifactory Maven Proxy
IBM FileNet WebSiteManagerApache James
medic-2-medic mapofmedicine
Day Communiqué WCMS
Apache Tapestry
Day Communique Collab
QSLabs ComplianceApache
Cocoon
Alfresco ECMSApache Sling
Mindquarry Collaboration
Day Communique DAMmagnolia WCMS
JBoss PortalSun OpenPortal Interface 21
Spring Framework
Fast Enterprise SearchOracle WebCenterBEA Portal
Applications.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
$e Web and Content?
JCR: Yours truly
REST -> Roy T. Fielding
released y2k162 pages
v1.0 released 2005
+300 pages
38
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Introducing JCR Catalyst
39
JCRapachesling
WEBAPP
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 40
JSR-283
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
§ Took about 4 years
§ Investment for Day ~30 man years of work to complete (Spec, TCK & RI)
§ Star Spec-Lead Award for process excellence
§ $e OSS Reference Implementation “Apache Jackrabbit” Top Level Project
JSR-283: Some Speci!cs
41
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Backwards Compatible.
42
100%NEW & IMPROVEDBACKWARDS COMPATIBLE
Binary CompatibleJSR-170 (JCR v1.0) Applications do not require modificationMixed environment supported (1.0 & 2.0 Apps)
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Reorganized.
43
100%NEW & IMPROVEDBACKWARDS COMPATIBLE
MODEL & BINDINGNEW & IMPROVED
Completely re-organized and clarifiedSpecificationSeparate Content Repository model sectionRemoved a lot of the Java Language specification
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Bundled.
44
100%NEW & IMPROVEDBACKWARDS COMPATIBLE
MODEL & BINDINGNEW & IMPROVED
OSGI BUNDLENEW & IMPROVED
Shipped jcr-2.0.jar is an OSGI BundleReady to deploy in an OSGI Container
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Favorites.
45
10
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Query extensions
46
2.0NEW & IMPROVED#1 QUERY
AQMJQOM
SQLAbstract Query ModelJava Query Object Model (Java Binding)SQL Bindings
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Query extensions
47
2.0NEW & IMPROVED#1 QUERY
+JOINRevamped Result-Set to allow for multiple nodesNew and Improved query capabilities
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Query extensions
48
2.0NEW & IMPROVED#1 QUERY
-XPATH**well, still available but deprecated
Not enough support from the EGJQOM allows for many implementationsJackrabbit / CRX will support XPATH
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Access Control Management
49
2.0NEW & IMPROVED
#2 ACL
+ACL+POLICY
Allows to set ACL and Access Control Policies
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Retention Policy & Hold
50
2.0NEW & IMPROVED#3 RM
+RETENTION+LEGAL HOLD
Support for interaction with RM systemsAllows setting and introspection of Retention Policies and Holds
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Simple versioning
51
2.0NEW & IMPROVED
#4 SIMPLE VERSIONING
+LINEAR VERSIONING
Simplified Versioning Model to allowfor ease of adoption.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Lifecycle Management
52
2.0NEW & IMPROVED
#5 LIFECYCLE
+BPMAllows to express and introspect Lifecycle statusand transitions.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Nodetype Registration
53
2.0NEW & IMPROVED#6 NODETYPE MANAGEMENT
+REGISTERNODETYPES
Standardized way of registering new and modifyregistered Nodetypes
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
New property & nodetypes
54
2.0NEW & IMPROVED
#7 NEW PROPERTY& NODETYPES
+URL+WEAK REFERENCE
+DECIMAL
+mix:title
+mix:lastModified+mix:created
+mix:language+mix:etag+nt:address
Things we missed in JCR 1.0 applications
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Workspace Management
55
2.0NEW & IMPROVED
#8 WORKSPACEMANAGEMENT
+CREATE & REMOVE WS
Standardized way of create and removeworkspaces
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Shareable nodes
56
2.0NEW & IMPROVED
#9 SHAREABLE NODES
+GRAPHMulti-filing. Nodes can have multiple parents.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Journalling Observation
57
2.0NEW & IMPROVED#10 JOURNALLINGOBSERVATION
+DELTA SINCE?what changed since I last checked?
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Beyond the Spec.
58
2.0NEW & IMPROVEDAPACHE JACKRABBITNEW & PROVEN ;)
Robust Code baseFully JCR 2.0 Compliant ;)More tooling than everEstablished eco-system
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Beyond the Spec.
Seriously!
59
2.0NEW & IMPROVEDAPACHE JACKRABBITNEW & PROVEN ;)
APACHE SLING!JCR CATALYST
Restful Web FrameworkRunning on top of JCRNever build a JCR WebApp without it.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 60
JSR-333
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Scope & Goals
- API Consumers vs. API Implementors
- Ease of API use: Make simple, things simple.
- Lower entry barriers for implementers and application developers.
- Scripting support of the API.
61
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Scope & Goals
- Client-server awareness.
- Protocol and SPI bindings. Binding and liaison to OASIS / CMIS.
62
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Scope & Goals
- Maintenance and feedback container for implementers, users and non-users. Gauge real-world interoperability.
- Node type library.
- Internationalization.
63
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Working Model
- Online Community Tools
- Bi-Weekly Phone Conference
- Face-2-Face Meetings.
64
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Agenda
65
1 2 33 4
CM & StandardsHistory and comparison
JCR Deep DiveOn JSR-170/JSR-283/JSR-333.
!e JCP & Apache”It was complicated”
DemoJCR in Action.
5
Q&A
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Back in in the days...
66
2002+
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Now...
67
2010+
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
New JSRs submi#ed.
0
20
40
60
80
1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
68
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Potential reasons.
§ J2SE & Java Language is complete, not much more to add
§ J2EE as a broader spec became increasingly irrelevant, usable pieces like Servlet et al. are complete.
§ J2ME is in a tough spot since the release of the iPhone.
69
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Unlikely reasons.
§ $e Oracle acquisition was a"er the drop.
§ $e Oracle/Google lawsuit was even later.
§ JCP process changes and open-source licensing disputes.
70
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Anyway...
§ Numerous valuable specs came out of the JCP and will remain relevant for a long time.
§ All politics aside, the JCP was and still remains a very effective standardization body with a great working model.
71
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential. 72
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Why?
73
FOU
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Agenda
74
1 2 3 4
CM & StandardsHistory and comparison
4
JCR Deep DiveOn JSR-170/JSR-283/JSR-333.
!e JCP & Apache”It was complicated”
DemoJCR in Action.
5
Q&A
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Con!dential.
Agenda
75
1 2 3 4
CM & StandardsHistory and comparison
JCR Deep DiveOn JSR-170/JSR-283/JSR-333.
!e JCP & Apache”It was complicated”
DemoJCR in Action.
55
Q&A