How to Troubleshoot Apps for the Modern Connected Worker
Jazoon 2009
1. Scalable Agile Web Development
REST meets JCR meets OSGi
Michael Marth Technology Evangelist Michael Dürig Senior Developer
michael.marth@day.com michael.duerig@day.com
Monday, June 29, 2009
2. Jazoon - Agenda
JCR in 3 minutes
Meet Apache Sling
demo & code
Monday, June 29, 2009
3. What’s JCR?
“The API should be a standard,
implementation independent, way to
access content bi-directionally on a
granular level within a
content repository.” ?
Monday, June 29, 2009
4. Best of both worlds.
data base file s ys te m
hier-
archi
integ
rity re es
structu
read streams
tx write access
query locking control
multi-
value
ning
obser- versio
un-structured
“full-text” sort vation
order
content reposit or y
Monday, June 29, 2009
5. “Data First!”
JCR s
“stru upports
cturef
irst” as
(but t
h
well.
at’s m
issing
the p
oint)
Monday, June 29, 2009
6. Known compliant Repositories
* using third party connector
* *
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
Interwoven +hund DBMou ne
R do y
r s
Repository IBM CM EMC Documentum regiede of TCKs
st red
Monday, June 29, 2009
7. 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
Monday, June 29, 2009
Portal
9. The Problem:
JCR
the other side
de
ve
lop
er
ha
t
“i want to build webapps”
me
Monday, June 29, 2009
10. Jazoon - Agenda
JCR in 3 minutes
Meet Apache Sling
demo & code
Monday, June 29, 2009
11. What’s Sling?
“Apache Sling is a web framework that
uses a Java Content Repository to
store and manage content.”just
g radu ate d
in Apache
incubator
Monday, June 29, 2009
12. What’s Sling?
exten REST archi
web
sible
ri pt i n g tectu
re
sc
OSGi
scaleable
manageable JCR
Resources
no ts
reboo
JSR 223 JS, Groo rapid
Python,vy,
... devapp
Monday, June 29, 2009
13. A node is a resource
GET /cars/audi/s4.txt
User-agent
Repository
Monday, June 29, 2009
14. A node is a resource
POST /cars/audi/s48
write
User-agent Your content
Repository is your web
server
Monday, June 29, 2009
15. What’s Sling?
REST
ri pt i n g
sc
JCR
Monday, June 29, 2009
16. Web apps and Sling scripting
/cars/audi/s4.details.html
User-agent
Repository
d
file neede
1
Convention ove
configuration r
Monday, June 29, 2009
17. Web apps and Sling scripting
/cars/audi/s4.details.html
User-agent
Repository
.esp
.erb
.scala
Monday, June 29, 2009
18. Web apps and Sling scripting
URLs do matter!
/cars/audi/s4.details.html
vs.
/product.jsp?id=/audi/s4
.jsp? This is HTM
Addressing the L
“ cript”
s Passing in “this”
Monday, June 29, 2009
19. What’s Sling?
REST
ri pt i n g
sc
OSGi
JCR
Monday, June 29, 2009
21. Sling is OSGi-based
Apache Felix
OSGi container
my my
bundles scripts
Sling Sling Sling
JCR
Monday, June 29, 2009
22. Sling is OSGi-based
e
(not just “ nabled”)
Apache Felix
OSGi container
extensible my my
my
bundles bundles scripts
modular Sling Sling Sling
JCR
hot deploy
Monday, June 29, 2009