Verslag van SpringOne

Op 15 en 16 juni vond in Antwerpen de SpringOne conferentie plaats. Dit event bestond uit vier keynotes, zes zogenaamde university talks, veertig (parallelle) presentaties en 48 sprekers. Dit alles werd bezocht door zo’n 400 ontwikkelaars en andere belangstellenden, afkomstig uit maar liefst 25 landen. In de gangen en zalen hoorde ik veel Engels, Frans, Duits, Italiaans, Spaans, Slavisch en Nederlands. Dit was de eerste conferentie in Europa die specifiek is gericht op het Spring platform. Het grote bezoekersaantal is een indicatie voor de huidige positie in de Java arena, die door Rod Johnson, de grondlegger van Spring, werd aangeduid als “world’s favorite application framework”.....

Tijdens de openingspresentatie werd door Rod Johnson en Adrian Colyer verleden, heden en toekomst van Spring geschetst. De best practises die Rod Johnson in 2002 in Expert One on One ten aanzien van J2EE beschreef werden door hem voorzien van code voorbeelden. Dit groeide in 2003 uit tot een Open Source project. In 2004 kwam Spring 1.0 uit. Het feit dat deze versie relatief lang op zich heeft laten wachten, namelijk anderhalf jaar, was het gevolg van een hoge kwaliteitsnorm. Release 1.0 ging vergezeld van het boek J2EE without EJB. In 2005 kwam Spring Web Flow uit. In juli aanstaande wordt de release Spring 2.0 verwacht. Deze versie van het framework bestaat verbeteringen op het gebied van: vereenvoudigde configuratie, Spring AOP, Spring MVC aanpassingen (waaronder vereenvoudiging en uitbreiding van de tag library) en Web Flow, verbeterde transactie configuratie, task execution abstractie, asynchrone JMS, Java Persistence API, en meer. Spring 2.0 is volledig backwards compatible en voldoet daarmee aan het adagium “Innovation with Stability”. Hoewel Spring 2.0 een grote stap voorwaarts is ten opzichte van 1.0, werd benadrukt dat Spring 2.0 “slechts” als een lanceerplatform wordt beschouwd voor komende innovaties. De komende jaren staat ons dus wat te wachten!

De ambitie van Spring 2.0 is om een framework te bieden dat “simple and powerfull” is. De hoge productiviteit die hierdoor kan worden bereikt, zou ertoe hebben geleid dat Spring is doorgedrongen tot vele hoeken en gaten van de enterprise space en IT industrie. Sectoren waar Spring vaak wordt toegepast zijn: bankwezen, overheid, vliegtuigmaatschappijen en defensie. Spring wordt gebruikt in vijf van de tien grootste banken ter wereld en in veel van de Fortune 500 bedrijven. Een andere indicatie van de dominante positie is een recent rapport van een groot werving en selectie buro in de UK, dat een groeiende vraag naar Spring kennis waarneemt. Op SpringOne werden verschillende case studies besproken, zoals Bank of America, de Franse belastingdienst, het Europese patent buro, maar een case die ik zelf indrukwekkend vind is het Engelse bedrijf Voca. Dit bedrijf verwerkt 15% van alle financiële transacties in Europa. In 2005 werd door Voca 4,5 triljoen euro aan transacties verwerkt. De hoeveelheid data per dag  is “disturbingly large”. Met een nul procent fouten doelstelling, kunnen we hier spreken van een voorbeeld van een mission critical systeem. Inderdaad behoort Voca ook tot de UK Critical National Infrastructure. Op een gegeven moment besloot Voca haar systeem te moderniseren. Men koos voor Oracle 10g en BEA WebLogic Server 8.1. Ook werd de in Cobol geschreven programmatuur gemigreerd naar… jawel, Spring. Volgens Nick Masterson-Jones van Voca bestond aanvankelijk enige weerstand tegen het gebruik van Open Source software, maar wordt de afwezigheid van een Support afdeling gecompenseerd door de levendige Spring community op het Web. Verder voldoet de kwaliteit van het framework aan de strenge normen van Voca. De belangrijkste redenen van Voca om voor Spring te kiezen zijn: (i) de hoge productiviteit van de ontwikkelaars, (ii) de testbaarheid (bij Voca is men “fanatic about reliability”), (iii) het framework bevordert goede development practises (met name loose coupling), en (iv) de sterke support vanuit de Spring community.

De positie van Spring kan ook afgelezen worden aan het groeiende aantal producten dat gebouwd is op Spring. In dit opzicht kunnen we spreken van een groot een groeiend ecosysteem voor honderden andere Open Source projecten en vele Closed Source projecten. Voorbeelden zijn BEA en Oracle. Spring 2.0 zal de core vormen van de komende versie van BEA WebLogic, namelijk versie 9.5. Ook Oracle is bezig Spring in haar tools te integreren. Voorbeelden hiervan zijn TopLink, ADF en JDeveloper. BEA en Oracle waren, samen met Symantec, de Gold Partners van de conferentie.

Tijdens SpringOne waren alle grote namen aanwezig op Spring gebied en ook vernieuwers op het gebied van AOP. Zo heb ik bijvoorbeeld een sessie bijgewoond van Colin Sampaleanu over Spring Web Flow en JSF. In deze sessie besprak hij best practises met betrekking tot de vraag hoe men JSF kan gebruiken binnen een Spring-based applicatie. JSF is nog onderhevig aan verandering. Colin Sampaleanu besprak een aantal in zijn ogen minder uitgewerkte aspekten van JSF, namelijk navigatie, validatie,  de verbose  en “ugly” XML, de zwakkere IoC en het ontbreken van de notie van een flow. Hier ziet hij aanvullingen door Spring Web Flow. De JSF managed beans kunnen volledig worden vervangen door Spring managed beans. Adrian Colyer besprak in vogelvlucht de nieuwe features van Spring 2.0. Een in het oog springend aspect is het nieuwe XML schema waardoor configuratie wordt vereenvoudigd. Een voorbeeld hiervan is de configuratie van een data source, als volgt:

<j2ee:jndi-lookup id=”dataSource” jndi-name=”jdbc/mydb”/>

Ook is de beans configuratie multi-language geworden. Naast Java, kan men vanaf Spring 2.0 ook Groovy en JRuby gebruiken. In de zaal bleek een redelijk groot gedeelte van de toehoorders nogal sceptisch te staan jegens EJB 3.0. Adrian Colyer kreeg namelijk veel lachers op de hand toen hij in zijn ogen minder sterke aspecten van EJB 3.0 besprak, onder andere de beperkte dependency injection mogelijkheden en de legacy van de voorgaande EJB versies. Andere zeer interessante presentaties die ik heb bijgewoond waren die van Bram Smeets over de integratie van het Ajax framework DWR in Spring; een introductie van AspectJ door Andy Clement; een presentatie over advanced Spring MVC door Rob Harrop; en tot slot een heel leerzaam verhaal van Steven Devijver over Rich Domain Models. Tijdens deze presentatie leerde ik dat het essentieel is het ontwerp zo simpel mogelijk te houden; eerst testen, later implementeren; zo veel mogelijk met de eindgebruikers praten; alleen dat persisteren wat je echt nodig hebt en niets meer. Encapsulatie blijkt een nog steeds onderschat en weinig begrepen fenomeen te zijn. Tot slot een boek dat volgens Steven Devijver op ieders nachtkastje moet prijken: Domain Driven Design van Eric Evans.

Tags:, ,

3 Comments

  1. Herbert August 31, 2006
  2. Erik June 25, 2006
  3. Stephan Janssen June 24, 2006