JavaZone 2009 - Apache Sling gjør webutvikling moro igjen
Tags: Web as a Platform, Java Frameworks
JSR-170/283 er standarden for «Java Content Repositories» (JCR). Et JCR er et hierarkisk datalager. I motsetning til relasjonsdatabaser tillater JCR svært fleksible datastrukturer, slik at applikasjonen din lett kan endres etterhvert som du ser behovene. JCR kan også lagre filer og strukturerte data side om side, og er dermed et slags filsystem på steroider. I tillegg får man verdifulle funksjoner som observasjon (eventlisteners), tilgangskontroll, kryssreferanser, fulltekst-søk, versjonering, XPath- og SQL-spørringer, rike attributter og mye annet.
Presentasjonen vil vi gi en innføring i JCR-implementasjonen Apache Jackrabbit.
Det finnes mange kommersielle content management-systemer som bruker et JCR som datalager, men så langt har det vært få muligheter for rask JCR-applikasjonsutvikling med fritt tilgjengelige rammeverk. Formålet med Sling er å gjøre det enklere å utvikle webapplikasjoner som drar nytte av JCR.
Sling-applikasjoner bruker script og servlet'er, som velges ut fra en enkel navnekonvensjon, til å behandle HTTP-requester etter REST-prinsippene.
Av scriptspråk støttes bl.a. Ruby, EcmaScript, Groovy, Velocity, eller Cocoon pipelines. Man kan også plugge inn sin egen skriptmotor.
Samtidig støttes enterprise-behov via OSGi, noe som gjør plattformen svært utvidbar. Med OSGi-komponenter («bundles») kan man utvikle pakker for egen funksjonalitet. Bundler kan også inneholde servlets, servlet-filtre, og JCR-innhold. Presentasjonen viser hvordan man bruker OSGi-komponenter med Sling.
Sling og JCR er et bra valg om man utvikler et system hvor *innhold* er i fokus. Siden REST-prinsippet er sentralt i Sling, får man automatisk pene URLer til innholdet, og det er lett å lage CRUD-applikasjoner (create/read/update/delete) bare ved hjelp av vanlige HTML-skjemaer.
Som en del av presentasjonen skal vi utvikle en blogg-applikasjon med bare noen få linjer kode, og dra nytte av Slings innebygde JSON-støtte.
Vidar Skauge Ramdal
Utvikler i Idium AS, som bruker Sling som plattform i et webpubliseringsprodukt.
Committer til Apache Sling, og medlem av Sling PPMC.
