Terugblik Fai op J-Spring 2008
16 april werd de jaarlijkse J-Spring weer gehouden.
Na een flinke tijd niet meer echt een conferentieganger geweest te zijn, was J-Spring de uitgelezen mogelijkheid om hier weer eens verandering in te brengen.
Dus ben ik ’s ochtends vroeg vertrokken in verband met de verwachte files. Helaas laten de normaliter zo betrouwbare files me juist die ochtend in de steek, waardoor ik uiteindelijk al 7:45 arriveer in Bussum. Dat geeft me in ieder geval rustig de tijd om rond te kijken. Veel bedrijven zijn nog bezig hun stand op te bouwen en ik zie ook Finalist-collega’s die druk bezig zijn met onze stand.
Er is ook nog tijd voor een kopje koffie en om het J-Spring magazine door te lezen. Ik kom dan vervolgens ook nog wat oude bekenden tegen die ik al jaren niet meer gezien heb en dan is het al gauw 9:00 en kan het feestje beginnen.
Eerst de kick-off met de Atos Origin keynote, een leuk interactief muzikaal programma, waarbij live media-elementen, zoals SMS, foto’s en filmpjes, kunnen worden verzonden die worden getoond in een Adobe Air-applicatie. Leuke inleiding voor het vervolg van de dag.
Op naar de sessies.

Grid Computing with Gridgain
Grid Computing, het verdelen van werk over meerdere computers, is tegenwoordig een heel populair onderwerp. Gridgain is een open source grid computing framework. Voornamelijk de demo’s maken natuurlijk indruk; vooraf zijn een aantal installaties uitgedeeld aan mensen met een laptop, zodat we in de zaal een echt grid kunnen bouwen. Wat me voornamelijk opvalt is hoe weinig code er nodig is om taken te kunnen draaien in een grid. Lang leve annotaties, die dit mede mogelijk maken.
OSGi on Google Android using Apache Felix
Het is niet vaak dat je drie ‘termen’ in de titel tegenkomt van een presentatie. Het prikkelt in ieder geval mijn nieuwsgierigheid, dus dit wordt de tweede. OSGi is in een notendop een component based omgeving, waarbij je dynamisch (runtime) componenten kan toevoegen/verwijderen. Met deze wel heel beknopte omschrijving doe ik OSGi geen recht, maar het voldoet nu even om te beschrijven wat er in de sessie ter sprake kwam. OSGi geeft je dus de mogelijkheid om runtime componenten bij te schakelen. Dit kan bijvoorbeeld handig zijn om runtime functionaliteit toe te voegen aan je applicatie (dus bijvoorbeeld als plug-ins) of om delen van je systeem runtime te vervangen. OSGi biedt hiervoor mogelijkheden, een eigenschap van OSGi is dat het uitgaat van een Java omgeving.
Hier komt dan ook meteen de crux, Google Android, in beeld, het mobiele open source platform van Google. Die tot onze grote spijt geen Java VM ondersteunt, maar hun eigen Dalvik VM. Gelukkig voor ons kunnen we wel in Java applicaties ontwikkelen voor Android en omzetten naar het native formaat van de Dalvik VM via de ‘dx’ tool. Dat betekent helaas niet dat OSGi out of the box draait op Android, wat met name te maken heeft met de ‘beperkingen’ van Android met betrekking tot dynamic classloading. Blijkbaar hebben ze dit toch voor elkaar gekregen via het gebruik van een ‘hidden’ feature en kunnen ze alsnog OSGi op Android draaien. Er wordt een grafisch teken applicatie’tje getoond waarmee je runtime nieuwe functionaliteit (in dat geval figuren) kan toevoegen.
Integratie van OSGi in een enterprise Java (web)applicatie
Weer een OSGi presentatie, nu met webapplicaties in plaats van een (geëmuleerd) mobieltje. Hetzelfde concept dus maar nu met een CMS-applicatie waar runtime functionaliteit kon worden toegevoegd/verwijderd. Ik vraag me af of ik dit uberhaupt ooit zou inzetten voor een webapplicatie. Een OSGi-module implementeren, waar je toch weer een heel scala [nee niet de taal ;-)] van dingen moet introduceren en wat voor de meeste klanten weinig meerwaarde heeft; immers opnieuw een applicatie deployen is voor de meeste klanten geen enkel probleem. Het lijkt me voor een webapplicatie dan ook echt meer toepasbaar voor intranet webproducten die je verkoopt met een reeks optionele plug-ins of een high availability website (wat je trouwens ook met clustering kan oplossen).
Annotation processing
Angelika Langer, hee die ken ik van de Generics FAQ; een heel uitgebreid boekwerk over het gebruik van Generics, ik hoop daarom dat ze ook veel kan vertellen over annotaties. Annotaties, de toolset voor de frameworkbouwer, wellicht ook toch iets voor applicatieontwikkelaars? Angelika gaat in op de verschillende soorten annotaties en wijst ons op de nieuwe mogelijkheden van de Java 6 compiler, waarbij je zelf op source code niveau annotaties kan processen. Hierdoor kan je dus bijvoorbeeld nieuwe code genereren op basis van annotaties of extra checks inbouwen bij het compileren. Deze functionaliteit zat eerder (Java 5) in apt en is nu standaard ingebouwd in de javac compiler.
Plumbing your Enterprise application with Spring Integration
Spring Integration implementeert de patterns uit Enterprise Integration Patterns van Gregor Hohpe en is een messaging oplossing gebouwd met de kernwaarde van Spring, namelijk dat het lightweight is. De vergelijking met een ESB wordt snel getrokken, maar dat is het toch niet; het integreert namelijk met je Java applicaties en hoeft niet apart geinstalleerd te worden. De messaging solution leeft en wordt ontwikkeld in je applicatie. Dit heeft als groot voordeel dat het natuurlijk veel tastbaarder wordt voor de normale ontwikkelaar en de messaging oplossing in je applicatie getest kan worden. Klinkt erg goed en het gebruik ervan zag er in ieder geval heel eenvoudig uit. Toch wil ik nog voor mezelf een helder beeld ontwikkelen wanneer het beter is om een ESB in te zetten.
Pragmatic MDA: Domain Specific Langues with Eclipse (EMF + GMF + oAW)
Dan zijn we weer aangekomen op de laatste van de dag, MDA met
DSL’s met Eclipse. MDA lijkt me iets wat altijd weer hip wordt. Eens kijken wat de status nu is dan. Eclipse EMF wordt gebruikt om het domein te modelleren, nadat het model is vastgelegd kan het model worden verrijkt met extra functionaliteit, zoals syntax checking en constraints.
De DSL wordt gedefinieerd en kan binnen Eclipse meteen worden gebruikt bijvoorbeeld in een text editor of een grafische editor. Deze editors kunnen dan ook meteen syntaxfouten tonen. Nu je het model kan beschrijven komt het vervolg in beeld, codegeneratie met behulp van oAW. Daar komt dan volgens de spreker de kracht van het gebruik van DSL’s kijken. Zij (Ordina) hebben meerdere applicaties vanuit MDA kunnen ontwikkelen. Dit schijnt goed te werken mits je genoeg ‘extension points’ hebt om van de architectuur af te wijken. Erg leuk, maar ik vind coden ook nog zo leuk ;-).
En dan opeens …
zit het erop. Nog even helpen met inpakken van de Finalist stand en we kunnen naar huis. Nu ik weer ingeburgerd ben in het conferencen, zal ik maar alvast de datum van J-Fall in mijn agenda noteren, waar had ik dat ook al weer opgeschreven…


