65
Content-Centric Infrastructure 1 Workshop: Umsetzung einer erfolgreichen CMS Strategie David Nuescheler CTO / Day Software JSR-170 & JSR-283 Spec Lead Member of the Apache Software Foundation

Day @ cio-gipfel 2007

Embed Size (px)

Citation preview

Page 1: Day @ cio-gipfel 2007

Content-Centric Infrastructure 1

Workshop:Umsetzung einer erfolgreichen CMS Strategie

David NueschelerCTO / Day SoftwareJSR-170 & JSR-283 Spec LeadMember of the Apache Software Foundation

Page 2: Day @ cio-gipfel 2007

Content-Centric Infrastructure 2

Before I start:

David Nuescheler Chief Technology [email protected]

Page 3: Day @ cio-gipfel 2007

Content-Centric Infrastructure 3

Core Business: WebCMSShowcase: Mercedes-Benz

Page 4: Day @ cio-gipfel 2007

Content-Centric Infrastructure 4

Customers

Media / Telco

IndustryAutomotive Transport / Travel / Logistics

Financial Services Consumer / Services

Chemical / Healthcare

Public Services

Page 5: Day @ cio-gipfel 2007

Content-Centric Infrastructure 5

Before I start:

David Nuescheler Chief Technology [email protected]

David NueschelerJackrabbit Committer / [email protected]

Page 6: Day @ cio-gipfel 2007

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

Page 7: Day @ cio-gipfel 2007

Content-Centric Infrastructure 7

Before I start:

David Nuescheler Chief Technology [email protected]

David NueschelerJackrabbit Committer / [email protected]

David NueschelerJSR-170 Spec [email protected]

Page 8: Day @ cio-gipfel 2007

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

Page 9: Day @ cio-gipfel 2007

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

Page 10: Day @ cio-gipfel 2007

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

Page 11: Day @ cio-gipfel 2007

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

Page 12: Day @ cio-gipfel 2007

Content-Centric Infrastructure

Analysts & Reports“So many to choose from”

12

So many reports, so little agreement!

Page 13: Day @ cio-gipfel 2007

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!

Page 14: Day @ cio-gipfel 2007

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.

Page 15: Day @ cio-gipfel 2007

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

Page 16: Day @ cio-gipfel 2007

Content-Centric Infrastructure

Is there any agreement?

16

Yes, Real-life architecture!

Page 17: Day @ cio-gipfel 2007

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

Page 18: Day @ cio-gipfel 2007

Content-Centric Infrastructure

Bottom-line:

18

CMS is still a very young, fast evolving market!

many vendors, frequent changes in the market, proprietary!

Page 19: Day @ cio-gipfel 2007

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

Page 20: Day @ cio-gipfel 2007

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!

Page 21: Day @ cio-gipfel 2007

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

Page 22: Day @ cio-gipfel 2007

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

Page 23: Day @ cio-gipfel 2007

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

Page 24: Day @ cio-gipfel 2007

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

Page 25: Day @ cio-gipfel 2007

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

Page 26: Day @ cio-gipfel 2007

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

Page 27: Day @ cio-gipfel 2007

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)

Page 28: Day @ cio-gipfel 2007

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

Page 29: Day @ cio-gipfel 2007

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

Page 30: Day @ cio-gipfel 2007

Content-Centric Infrastructure 30

Industry Standards

170

283

Page 31: Day @ cio-gipfel 2007

Content-Centric Infrastructure 31

Industry StandardsJSR-170 Progress

JSR-170 Final Approval Ballot

approved

released:

mid 2005

Page 32: Day @ cio-gipfel 2007

Content-Centric Infrastructure 32

JCR AdoptionTracking success

Page 33: Day @ cio-gipfel 2007

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

* *

*

**

Page 34: Day @ cio-gipfel 2007

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

Page 35: Day @ cio-gipfel 2007

JCR - Weatherforcast-5°

2008 2009-8°

2010-12°

Page 36: Day @ cio-gipfel 2007

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

Page 37: Day @ cio-gipfel 2007

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

Page 38: Day @ cio-gipfel 2007

Commodity Infrastructure

StandardChaos

Content-Centric Infrastructure

Enterprise SoftwareMarket Evolution

38

Operating Systems

WebServers

Relational Databases

J2EE Application Servers

Content Industry

Page 39: Day @ cio-gipfel 2007

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

Page 40: Day @ cio-gipfel 2007

Java vs. Microsoft SharepointJava vs. Microsoft Sharepoint

Content-Centric Infrastructure

Why should I care?Two killer Showcases!

40

1

Repository Consolidation2

Page 41: Day @ cio-gipfel 2007

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.

Page 42: Day @ cio-gipfel 2007

Content-Centric Infrastructure

Java vs. Sharepoint

42

Microsoft Sharepoint

Java J2EE BusinessApplications

Mission Critical Applications Mission Critical Information

Page 43: Day @ cio-gipfel 2007

Content-Centric Infrastructure

Java vs. Sharepoint

43

Microsoft Sharepoint

Java J2EE BusinessApplications

Mission Critical Applications Mission Critical Information

JCR Connectorfor Sharepoint

Page 44: Day @ cio-gipfel 2007

Java vs. Microsoft Sharepoint

Content-Centric Infrastructure

Why should I care?Two killer Showcases!

44

1

Repository ConsolidationRepository Consolidation2

Page 45: Day @ cio-gipfel 2007

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

Page 46: Day @ cio-gipfel 2007

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

Page 47: Day @ cio-gipfel 2007

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?

Page 48: Day @ cio-gipfel 2007

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

Page 49: Day @ cio-gipfel 2007

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

Page 50: Day @ cio-gipfel 2007

Content-Centric Infrastructure 50

Situation Today

CMS Vendor (A)

DMSVendor (B)

DMSVendor (C)

“The Content Silos”

Page 51: Day @ cio-gipfel 2007

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

Page 52: Day @ cio-gipfel 2007

Content-Centric Infrastructure 52

Synchronization

CMS Vendor (A)

DMSVendor (B)

DMSVendor (C)

JSR-170 API

AppA AppB AppC AppD …

JSR-170Repo

2

Page 53: Day @ cio-gipfel 2007

Content-Centric Infrastructure 53

Consolidate

CMS Vendor (A)

DMSVendor (B)

DMSVendor (C)

JSR-170 API

AppA AppB AppC AppD …

JSR-170Repo

33

Page 54: Day @ cio-gipfel 2007

Content-Centric Infrastructure 54

Consolidate

CMS Vendor (A)

DMSVendor (B)

DMSVendor (C)

JSR-170 API

AppA AppB AppC AppD …

JSR-170Repo

33

Page 55: Day @ cio-gipfel 2007

Content-Centric Infrastructure 55

Consolidate

CMS Vendor (A)

DMSVendor (B)

DMSVendor (C)

JSR-170 API

AppA AppB AppC AppD …

JSR-170Repo

33

Page 56: Day @ cio-gipfel 2007

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

Page 57: Day @ cio-gipfel 2007

1998-2001

Day Content Management

Page 58: Day @ cio-gipfel 2007

Day Content Management

1998-2001

Page 59: Day @ cio-gipfel 2007

Day Content Management

ContentBusRepository

ProprietaryInterface

2002-2005

Page 60: Day @ cio-gipfel 2007

Day Content Management

CRXJCR CompliantContent Repository

IndustryStandard (JCR)

connector

connector

connector

connector

2005-xxxx

Page 61: Day @ cio-gipfel 2007

Day Content Management

CRXJCR CompliantContent Repository

IndustryStandard (JCR)

connector

connector

connector

connector

DAM

2007-xxxx

Page 62: Day @ cio-gipfel 2007

Day Content Management

CRXJCR CompliantContent Repository

IndustryStandard (JCR)

connector

connector

connector

connector

DAM Collab

2007-xxxx

Page 63: Day @ cio-gipfel 2007

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

Page 64: Day @ cio-gipfel 2007

Content-Centric Infrastructure

If you remember one thing!

64

Standards-based CMS.1No VendorLock-in

Long-terminvestment protection

Consolidation Strategy

Page 65: Day @ cio-gipfel 2007

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