Your SlideShare is downloading. ×
0
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Introduction to JCR
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduction to JCR

14,338

Published on

What is the Content Repository API for Java Technology (aka JCR) and why you should care.

What is the Content Repository API for Java Technology (aka JCR) and why you should care.

Published in: Technology, News & Politics
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
14,338
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
458
Comments
0
Likes
14
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. What is JCR/JSR-170/JSR-283? ...and why should I care? David Nuescheler CTO / Day Software JSR-170 & JSR-283 Spec Lead Member of the Apache Software Foundation Content-Centric Infrastructure 1
  • 2. Before I start (1): Content-Centric Infrastructure 2
  • 3. t^okfkd R qÜáë=éêÉëÉåíÉê=áë=~äëç=âåçïå=~ë=íÜÉ= “`çåíÉåí=oÉéçëáíçêó=mìëÜÉêÒK= ^ëëìãÉ=íÜÉ=ëí~íÉãÉåíë=íç=ÄÉ=~ÅÅìê~íÉ=Äìí= Äó=åç=ãÉ~åë=Ä~ä~åÅÉÇK Content-Centric Infrastructure 3
  • 4. Before I start (2): throughout this presentation JSR-170 == JCR Content-Centric Infrastructure 4
  • 5. Sep-04-07 Agenda What is JCR, what is it not? Impact on Content Management? Why should I care? Content Repository Demo Q&A Content-Centric Infrastructure 5
  • 6. What is JSR-170? from the JSR-170 submission “The API should be a standard, implementation independent, way to access content bi-directionally on a granular level within a content repository.” submitted in jan- 001 2 Content-Centric Infrastructure 6
  • 7. Reality Check! Task write a “JSP snippet” that lists all the documents in a folder by “title”. ...Code Snippet s courtesy of JSR170 Exp - the ert-Group: Content-Centric Infrastructure 7
  • 8. Reality Check List all documents in a folder ession); <% new LAPI_DOCUMENTS(s LAPI_D OCUMENTS documents = new LLValue(); LLValue childTable = , s(volumeID, folderID <% documents.ListObject UMENTS.P ERM_SEE, childTable); null, null, LAPI_DOC lues(); childCount = node.getContent ildTable.enumerateVa Count(); Enum eration children = ch for(int i=0;i<childCount;i reElements()) { ++) { while(children.hasMo alue)e.nextElement() ; IContent child = node.getC LLValue child = (LLV JCR API ontent(i); toString(quot;Namequot;); Property title = child.get PropertyByName(quot;Titlequot;); String title = child. %><%= title.getValue() %>< % br/><% %><%= title %><br/>< } %> <% } <% NodeIterator children = node.getNodes(); %> <% fndocs = new IFnObj while (children.hasNext()) { ile erator children = page.getPages(); PageIt wh (chi fnfold er.get SetDua lProxy ( Node child = children.nextNode();ldren.hasNext()) extPage(); Page child = children .n { int nu Folder Property title = child.getProperty(quot;Titlequot;); mDocs Conten Container toplevel = for (i = fndo ts(idm child.getContent(); nt i = cs.get Conten Atom title = toplevel Count( .getAtom(quot;Titlequot;); 1; IFnDoc i <= numDocs ); umentD %><%=mtitle %><br /><% } %><%= title %><br /><% t.id F olderC ontent ual fn ; i++) { Docume new IF IFnPro nDocum pertie entDua doc = lProxy } nt)); %> = %> tItem(new I IFnPro sD (fndoc pertyD ual propset s.ge String tit ual id fndo %><%= le = i mTitleProp = c.getPropert nteger(i))); ti dmTi pr ies ; if (co tle %><br/>< tleProp.getV opset<% etIte (); .g er.getDocuments()) mClean % alue() m(quot;Tit cuments = new IDocumentsProxy(bind cleane up) ; ocuments dolequot;); ID r.rele { } ase(fn documents.cache(); (); +800 } doc); documents.getCount in t documentCount = { %> documentCount; i++) ByIndex(i)); for (int i = 0; i< ocumentProxy (documents.getItem document = new ID ment.getTitle() String title = docu ><% %><%= title %><br/ } %> Content-Centric Infrastructure 8
  • 9. Industry Standard JSR-170 & JSR-283: High profile Expert Groups ~50 member 170 s in the EG 283 ~70 member s bottom line: money & politics Content-Centric Infrastructure 9
  • 10. Industry Standard Content Repository for Java Technology API (JCR) V1.0 (JSR-170) Final Release Approved with one of the highest approval ratings in the JCP. One of the most visible and most active JSR Specs on the Web. V2.0 (JSR-283) Approved Public Review 20-sep-2007 Unbelievable traction. Already 6 officially registered Open Source Projects mention their JSR-283 compliance/support. Content-Centric Infrastructure 10
  • 11. Beyond the Spec RI & TCK The S Apache Jackrabbit: 300 pec: more than a reference Pages implementation y nolog ility Kit: T ch atib e Comp 0 T sts +10 0 e Content-Centric Infrastructure 11
  • 12. JSR-170: Some Specifics  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  The OSS Reference Implementation “Jackrabbit” graduated to a Top Level Apache Project Content-Centric Infrastructure 12
  • 13. What does JCR do for a CMS dev?  Functional Definition of a “Content Repository”  Common Vocabulary!  No longer learn (dozens of) (ugly) proprietary API‘s  Write (mostly) portable code, for Document Management, Web Content Management, Source Code Control  Compare Repository Functionality  No more information silos and vendor Lock-in Content-Centric Infrastructure 13
  • 14. Level 1 : Features Read only Simple & Covers a large number of usecases Fine & Coarsegrained Level1 Content Items Small to Large Hierarchical Parent child relationships, Sort order Structured Strong typed information PropertyTypes String, Binary, Numbers, Calendar, ... L1 NodeTypes Introspect complex Content Structures Query (XPath) Search and query Export XML Content Export Content-Centric Infrastructure 14
  • 15. 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 te+ Wri Code is written using Level-1 calls Read Sear & ch Content-Centric Infrastructure 15
  • 16. Level 2 : Features Level 2 Write Save changes to a repository Unstructured Support for weakly or unstructured Content L2 Import Standardized Finegrained Content Import Referencial Integrity Reference Tracking and Integrity AccessControl Introspection Content-Centric Infrastructure 16
  • 17. Level 2: Applications  Typical Level-2 Applications:  Entry Level Content Management  Entry Level Document Management  Workflow  Collaboration  Content Aggregation (Content Warehouse)  … Content-Centric Infrastructure 17
  • 18. Advanced Features Versioning Workspaces, Merge, Update, Label, ... JTA Support (XA) Transactions Observation Monitor changes in the Repository Adv Query (SQL) Search the Content Repeository using SQL Locking Session based and persistant Content-Centric Infrastructure 18
  • 19. Sep-04-07 Functional Overview Compliance Levels Versioning Locking Transactions Query (SQL) Observation Optional Unstructured Access Control Write Import Referencial Integrity Level 2 Read Hierarchical Finegrained Query (XPath) Structured Export Level 1 Binary, Text, Date, Numbers Content-Centric Infrastructure 19
  • 20. Full JSR-170: Applications  Typical Applications that require full JSR-170 compliant Repositories:  Complete ECM suites  Transactional Applications  Source Control Management Systems Content-Centric Infrastructure 20
  • 21. What is a content repository? Best of both worlds database filesystem hier- integ archi rity structu re es read streams tx query write locking access control multi- value un- ning structured “full- sort obser- versio text” order vation content repository content Content-Centric Infrastructure
  • 22. Java Only? Question? “A Content Repository Standard, sure, but why Java ‘only’?” Content-Centric Infrastructure 22
  • 23. Why the Java…  …because of its standardizing body: The JCP.  Excellent track record with respect to implementations of finished specifications  Reference Implementations and Technology Compatibility Kit are mandatory  Efficient Specification Cycles  A lot of the JCR specification can still be applied other environments and languages Content-Centric Infrastructure 23
  • 24. JSR-283 vs. JSR-170 Question? “Now JSR-170 just finished, why do we need JSR-283 already?” Content-Centric Infrastructure 24
  • 25. JSR-283 vs. JSR-170  Normal development cycle  JCR v2.0 is a compatible extension to JCR v1.0  Extensions contain functional omissions in JCR v1.0 Content-Centric Infrastructure 25
  • 26. Sep-04-07 Agenda What is JCR, what is it not? Impact on Content Management? Why should I care? Content Repository Demo Q&A Content-Centric Infrastructure 26
  • 27. Sep-04-07 Problem Content Isolated in Silos Accounting Marketing Legal HR R&D Application A Application B Application C Application D Application E Repository Repository Repository Repository Repository A B C D E Content-Centric Infrastructure 27
  • 28. Sep-04-07 Strategy Enterprise 2.0 & the Future of ECM Accounting Marketing Legal HR R&D Web Frontend Application A Application B Application C Application D Application E JSR-170 API Repository Repository Repository Repository Repository A B C D E Content-Centric Infrastructure 28
  • 29. Sep-04-07 Solution Standards-Based Content Repository Accounting Marketing Legal HR R&D Web Frontend Application A Application B Application C Application D Application E JSR-170 API Java Content Repository Content-Centric Infrastructure 29
  • 30. Enterprise Software Market Evolution Operating Systems WebServers Relational Databases J2EE Application Servers Commodity Content Industry Infrastructure Standard Chaos Content-Centric Infrastructure 30
  • 31. Adoption, option hy ad . W ers matt JCR “ uc a you s c ess ng Adoption, stor y” Adoption.W option hy ad atter sn’t m doe all. after Content-Centric Infrastructure 31
  • 32. Why adoption matters  Every standard that does not get implemented is a dead standard  Industry and Vendor support is crucial for a standard to reach critical mass  Every successful standard must have multiple completely independent implementations Content-Centric Infrastructure 32
  • 33. JSR-170 Adoption 1 JSR-170 Enabled JSR-170 Connector, Third Party Faster adoption 2 Compliant Repository passes parts of TCK out of the BOX Native JSR-170 Repository 3 Fully Compliant built to the JSR-170 Specs Content-Centric Infrastructure 33
  • 34. Industry Standards 170 283 Content-Centric Infrastructure 34
  • 35. Industry Standards JSR-283 Progress ase: rele 08 Review Ballot inal 20 JSR-283 Public f id m ov ed ap pr Content-Centric Infrastructure 35
  • 36. JCR Adoption Tracking success Content-Centric Infrastructure 36
  • 37. Known Compliant Repositories (* using 3rd party connectors) Exo Microsoft * * Apache Jackrabbit Oracle XML DB ECMS Platform Sharepoint OpenText Livelink Day CRX IBM FileNet P8 Xythos Repository Alfresco ECM Vignette V7 * any ors ow mvendd? H S e * +hund DBMou ne R do y Interwoven Repository * IBM CM EMC Documentum r s regiede of TCKs st red Content-Centric Infrastructure 37
  • 38. Some known JCR Applications Fast BEA Portal Sun Oracle Portal Enterprise Search JBoss Portal Interface 21 OpenPortal Day Communique Spring Framework magnolia WCMS DAM Apache Sling Day Communique Alfresco ECMS Mindquarry Collab Collaboration Apache Tapestry QSLabs Apache Compliance Day Communiqué Cocoon WCMS IBM FileNet Artifactory medic-2-medic WebSiteManager Apache James Maven Proxy mapofmedicine Exo ECMS Platform TYPO3 GX WebManager v5.0 WCM InfoQ Hippo Liferay Nuxeo ECM Online Community CMS Enterprise Portal Jahia Sakai Percussion Framework E-learning Rhythmix QuickWCM Sourcemix WCMS Lutece Sourcemix Portal Content-Centric Infrastructure 38
  • 39. JCR - Weatherforcast 2008 -5° 2009 -8° 2010 -12°
  • 40. Why it doesn’t really matter? last 2 weeks: 410 400 Slide 300 200 100 Jack rabbit 2004 2005 2007 52 Mailing list activity (# of posts bi-weekly) Content-Centric Infrastructure 40
  • 41. Why adoption doesn’t matter…  “Non-standards based” repositories will go away. Over time. Standard vs. Non-standard Infrastructure * Does anyone remember the names of the large Database vendors that did not support SQL, or the Application Server vendors that did not whole-heartedly buy into J2EE… ? Content-Centric Infrastructure 41
  • 42. Sep-04-07 Agenda What is JCR, what is it not? Impact on Content Management? Why should I care? Content Repository Demo Q&A Content-Centric Infrastructure 42
  • 43. When to use? Observe Structured? Versioning? changes? Unstructured? Retention? Multimedia? Java Content Your Blobs? Repository “brandnew” Streaming? Application Pure Java? Queries? Enterprise? Hierarchies? Fulltext? Sort order? Content-Centric Infrastructure 43
  • 44. Why should I care? Your last Your next Application! Application? JDBC DOM/SAX FS ??? ??? JSR-170 RDBMS XML BLOBS Config Users Content Repository Content-Centric Infrastructure 44
  • 45. What is a JCR-based applications  Almost every application benefits from using a content repository.  “Every Application is a Content Application” Content-Centric Infrastructure 45
  • 46. What does this mean for PHP/TYPO3?  JCR is considered as one of the backing stores for Typo 3 v5  Karsten is working on a JSR-283 implementation in PHP that would be used by TYPO3 ...to learn more, go to his talk at today 16h45 in Track A Content-Centric Infrastructure 46
  • 47. Sep-04-07 Agenda What is JCR, what is it not? Impact on Content Management? Why should I care? Content Repository Demo Q&A Content-Centric Infrastructure 47
  • 48. Sep-04-07 Agenda What is JCR, what is it not? Impact on Content Management? Why should I care? Content Repository Demo Q&A Content-Centric Infrastructure 48
  • 49. If you remember only one thing! 1 Everything is Content. Content-Centric Infrastructure 49

×