Content-Centric Infrastructure 1
Workshop:Umsetzung einer erfolgreichen CMS Strategie
David NueschelerCTO / Day SoftwareJSR-170 & JSR-283 Spec LeadMember of the Apache Software Foundation
Content-Centric Infrastructure 2
Before I start:
David Nuescheler Chief Technology [email protected]
Content-Centric Infrastructure 3
Core Business: WebCMSShowcase: Mercedes-Benz
Content-Centric Infrastructure 4
Customers
Media / Telco
IndustryAutomotive Transport / Travel / Logistics
Financial Services Consumer / Services
Chemical / Healthcare
Public Services
Content-Centric Infrastructure 5
Before I start:
David Nuescheler Chief Technology [email protected]
David NueschelerJackrabbit Committer / [email protected]
Content-Centric Infrastructure
Apache Software Foundation
One of the worlds most successful Open Source Initiatives
Best known for the Apache Webserver:
“Apache WebServer has been the most popular web server on the Internet since April 1996.”
#1 for over ten years and counting.
6
Content-Centric Infrastructure 7
Before I start:
David Nuescheler Chief Technology [email protected]
David NueschelerJackrabbit Committer / [email protected]
David NueschelerJSR-170 Spec [email protected]
Content-Centric Infrastructure
Java Community Process
Open Software Standards Organization
Funded by Sun Extremely solid performance and track record in
defining and implementing standards
8
Content-Centric Infrastructure 9
Before I start:
David Nuescheler Chief Technology [email protected]
David NueschelerJackrabbit Committer / [email protected]
David NueschelerJSR-170 Spec [email protected]
focus
Content-Centric Infrastructure 10
Sep-04-07
Agenda
ECM Today: Silos and Lock-in.Standards, Standards, Standards...Why should I care?Tomorrow is Today: DemoQ & A
Content-Centric Infrastructure 11
Sep-04-07
Application EApplication DApplication CApplication B
Problem Content Isolated in Silos
Application A
Repository E
Repository D
Repository C
Repository B
Repository A
Accounting Marketing Legal HR R&D
Content-Centric Infrastructure
Analysts & Reports“So many to choose from”
12
So many reports, so little agreement!
Content-Centric Infrastructure
Vendors “So many to choose from”
13
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 EMC Documentum +hundreds more
So many vendors, so little agreement!
Content-Centric Infrastructure 14
Reality Check!
write a “code snippet” that lists all the documents in a folder by “title”.
Task
* ...Code Snippets courtesy of the JSR-170 Expert-Group.
Content-Centric Infrastructure
Reality CheckList all documents in a folder
15
<%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 documents
= new LAPI_DOCUMENTS(session);
LLValue childTable = new LLValue();
documents.ListObjects(volumeID, folderID,
null, null, LAPI_DOCUMENTS.PERM_SEE, chi
ldTable);
Enumeration children = childTable.enumerateValue
s();
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(docume
nts.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
Content-Centric Infrastructure
Is there any agreement?
16
Yes, Real-life architecture!
Content-Centric Infrastructure
Is there any agreement?Yes, Real-life architecture!
17
Content Management Applications
ContentRepository
ProprietaryInterface
dms
wcm
s
dam
bpm
rm ??m
???m
????
????
Existence ofa “content repository.”...and featureset
Content-Centric Infrastructure
Bottom-line:
18
CMS is still a very young, fast evolving market!
many vendors, frequent changes in the market, proprietary!
Content-Centric Infrastructure 19
Sep-04-07
Agenda
ECM Today: Silos and Lock-in.Standards, Standards, Standards... Why should I care?Tomorrow is Today: DemoQ & A
Content-Centric Infrastructure
Standards, Standards, Standards...
20
The nice thing about standards is that there are so many of them to choose from.
Andrew S. Tanenbaum, Computer Networks
Not in CMS!
Content-Centric Infrastructure
Standards, Standards, ...
In CMS and content repositories there is currently onlyone relevant open standard:
JCR focusses on the Content Repository.
21
JSR-170 == JCRcalled
Content-Centric Infrastructure
What is a content repository?Best of both worlds
database filesystem
contentcontent repository
read
write
hier-archiesstreams
locking accesscontrol
integrity structure
tx query
un-structured “full-
text” sortorder
versioning
obser-vation
multi-value
Content-Centric Infrastructure 23
What is JSR-170?
“The API should be a standard, implementation
independent, way to access content bi-directionally on a
granular level within a content repository.”
from the JSR-170 submission
submitted in jan-2001
Content-Centric Infrastructure 24
L1
Level 1 : Features
Level1
Read onlySimple & Covers a large number of usecases
StructuredStrong typed information
HierarchicalParent child relationships, Sort order
PropertyTypesString, Binary, Numbers, Calendar, ...
NodeTypesIntrospect complex Content Structures
Query (XPath)Search and query
ExportXML Content Export
Fine & CoarsegrainedContent Items Small to Large
Content-Centric Infrastructure 25
Level 1: Applications Typical Level-1 only Applications:
CMS-Templates, Content Delivery
Display Portlets
Repository Export
Reporting Applications
Federated Repositories
Overwhelming Majority of Application Source Code is written using Level-1 callsWrite+
Read & Search
Content-Centric Infrastructure 26
Level 2 : Features
WriteSave changes to a repository
UnstructuredSupport for weakly or unstructured Content
ImportStandardized Finegrained Content Import
Referencial IntegrityReference Tracking and Integrity
AccessControlIntrospection
Level 2
L2
Content-Centric Infrastructure 27
Level 2: Applications
Typical Level-2 Applications: Entry Level Content Management
Entry Level Document Management
Workflow
Collaboration
Content Aggregation (Content Warehouse)
…
Content-Centric Infrastructure 28
Advanced Features
VersioningWorkspaces, Merge, Update, Label, ...
JTA Support(XA) Transactions
ObservationMonitor changes in the Repository
Query (SQL)Search the Content Repeository using SQL
LockingSession based and persistant Adv
Content-Centric Infrastructure 29
Optional
Sep-04-07
Binary, Text, Date, Numbers
Structured
Read Finegrained
Query (XPath)
Hierarchical
Export
Unstructured
Write
Access Control
Import Referencial Integrity
Versioning
Transactions
Locking
Query (SQL) Observation
Level 2
Level 1
Functional OverviewCompliance Levels
Content-Centric Infrastructure 30
Industry Standards
170
283
Content-Centric Infrastructure 31
Industry StandardsJSR-170 Progress
JSR-170 Final Approval Ballot
approved
released:
mid 2005
Content-Centric Infrastructure 32
JCR AdoptionTracking success
Known Compliant Repositories(* using 3rd party connectors)
Content-Centric Infrastructure 33
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 EMC Documentum
How many
RDBMS vendors
do you need?+hundreds of TCKsregistered
* *
*
**
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 DAM
Content-Centric Infrastructure 34
magnolia WCMS
JBoss Portal
Some known JCR Applications
Sun OpenPortal Interface 21
Spring Framework
Fast Enterprise SearchOracle PortalBEA Portal
JCR - Weatherforcast-5°
2008 2009-8°
2010-12°
Content-Centric Infrastructure 36
Sep-04-07
Application EApplication DApplication CApplication B
Problem Content Isolated in Silos
Application A
Repository E
Repository D
Repository C
Repository B
Repository A
Accounting Marketing Legal HR R&D
Content-Centric Infrastructure 37
Sep-04-07
Strategy Enterprise 2.0 & the Future of ECM
Application EApplication DApplication CApplication BApplication A
JSR-170 API
Web Frontend
Repository E
Repository D
Repository C
Repository B
Repository A
Accounting Marketing Legal HR R&D
Commodity Infrastructure
StandardChaos
Content-Centric Infrastructure
Enterprise SoftwareMarket Evolution
38
Operating Systems
WebServers
Relational Databases
J2EE Application Servers
Content Industry
Content-Centric Infrastructure 39
Sep-04-07
Agenda
ECM Today: Silos and Lock-in.Standards, Standards, Standards... Why should I care?Tomorrow is Today: Demo Q & A
Java vs. Microsoft SharepointJava vs. Microsoft Sharepoint
Content-Centric Infrastructure
Why should I care?Two killer Showcases!
40
1
Repository Consolidation2
Content-Centric Infrastructure
Java vs. Sharepoint
41
We are using or plan to use Microsoft Sharepoint in our
organization.
We develop custom Applications in Java /
J2EE.
Content-Centric Infrastructure
Java vs. Sharepoint
42
Microsoft Sharepoint
Java J2EE BusinessApplications
Mission Critical Applications Mission Critical Information
Content-Centric Infrastructure
Java vs. Sharepoint
43
Microsoft Sharepoint
Java J2EE BusinessApplications
Mission Critical Applications Mission Critical Information
JCR Connectorfor Sharepoint
Java vs. Microsoft Sharepoint
Content-Centric Infrastructure
Why should I care?Two killer Showcases!
44
1
Repository ConsolidationRepository Consolidation2
Content-Centric Infrastructure
Reality CheckList all documents in a folder
45
<%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 documents
= new LAPI_DOCUMENTS(session);
LLValue childTable = new LLValue();
documents.ListObjects(volumeID, folderID,
null, null, LAPI_DOCUMENTS.PERM_SEE, chi
ldTable);
Enumeration children = childTable.enumerateValue
s();
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(docume
nts.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
Content-Centric Infrastructure 46
Sep-04-07
Application EApplication DApplication CApplication B
Problem Content Isolated in Silos
Application A
Repository E
Repository D
Repository C
Repository B
Repository A
Accounting Marketing Legal HR R&D
Content-Centric Infrastructure 47
Sep-04-07
Strategy Enterprise 2.0 & the Future of ECM
Application EApplication DApplication CApplication BApplication A
JSR-170 API
Web Frontend
Repository E
Repository D
Repository C
Repository B
Repository A
Accounting Marketing Legal HR R&D
CIO:
why?
Content-Centric Infrastructure 48
Sep-04-07
SolutionStandards-Based Content Repository
Java Content Repository
Web Frontend
Application EApplication DApplication CApplication BApplication A
JSR-170 API
Accounting Marketing Legal HR R&D
Content-Centric Infrastructure 49
Repository Consolidation
ConsolidateTurn off legacy Repositories
SynchronizeKeep your repositories in sync
UnifyAccess all your repository through a standardized API1
2
33
Content-Centric Infrastructure 50
Situation Today
CMS Vendor (A)
DMSVendor (B)
DMSVendor (C)
“The Content Silos”
Content-Centric Infrastructure 51
Unification
1
CMS Vendor (A)
DMSVendor (B)
DMSVendor (C)
JSR-170 API
AppA AppB AppC AppD …
JSR-170 Connectors, Level 1 +From Day Software, Native or Third Party
Content-Centric Infrastructure 52
Synchronization
CMS Vendor (A)
DMSVendor (B)
DMSVendor (C)
JSR-170 API
AppA AppB AppC AppD …
JSR-170Repo
2
Content-Centric Infrastructure 53
Consolidate
CMS Vendor (A)
DMSVendor (B)
DMSVendor (C)
JSR-170 API
AppA AppB AppC AppD …
JSR-170Repo
33
Content-Centric Infrastructure 54
Consolidate
CMS Vendor (A)
DMSVendor (B)
DMSVendor (C)
JSR-170 API
AppA AppB AppC AppD …
JSR-170Repo
33
Content-Centric Infrastructure 55
Consolidate
CMS Vendor (A)
DMSVendor (B)
DMSVendor (C)
JSR-170 API
AppA AppB AppC AppD …
JSR-170Repo
33
Content-Centric Infrastructure 56
Sep-04-07
Agenda
ECM Today: Silos and Lock-in.Standards, Standards, Standards... Why should I care?Tomorrow is Today: Demo Q & A
1998-2001
Day Content Management
Day Content Management
1998-2001
Day Content Management
ContentBusRepository
ProprietaryInterface
2002-2005
Day Content Management
CRXJCR CompliantContent Repository
IndustryStandard (JCR)
connector
connector
connector
connector
2005-xxxx
Day Content Management
CRXJCR CompliantContent Repository
IndustryStandard (JCR)
connector
connector
connector
connector
DAM
2007-xxxx
Day Content Management
CRXJCR CompliantContent Repository
IndustryStandard (JCR)
connector
connector
connector
connector
DAM Collab
2007-xxxx
Content-Centric Infrastructure
WCMS
CRXJCR CompliantContent Repository
IndustryStandard (JCR)
connector
connector
connector
connector
DAM Collab
63
Setup: “Holy Grail of Integration”
nativeJCR Apps
all theapps sharethe same repository
Content-Centric Infrastructure
If you remember one thing!
64
Standards-based CMS.1No VendorLock-in
Long-terminvestment protection
Consolidation Strategy
Content-Centric Infrastructure 65
Sep-04-07
Agenda
ECM Today: Silos and Lock-in.Standards, Standards, Standards... Why should I care?Tomorrow is Today: Demo Q & A
Top Related