5 mei 2009

Nieuw project: nieuwe Java-technieken

Voor FOM (Stichting voor Fundamenteel Onderzoek der Materie) heeft Furore begin 2009 de webapplicatie Flamingo opgeleverd. Flamingo is het elektronisch subsidieaanvraagsysteem van FOM. Qua techniek is het heel anders opgezet dan onze eerdere Java webapplicaties. Het is gebouwd met het Seam framework van JBoss en draait op de JBoss Application Server.

 

Voor de architectuur van Flamingo zijn use cases als basis genomen. Een use case beschrijft een bepaald gedrag van het systeem. Een goed begrip van de use cases (die niet technisch van aard zijn) geeft direct een goed begrip van de functionaliteit van de applicatie. Door het gebruiken van de use case als een zogenoemde “unit of work” is het makkelijker om de applicatie te begrijpen, beheren en testen.

Binnen Seam kan een use case vertaald worden naar een zogenoemde conversation. Conversations passen hiermee veel natuurlijker bij de manier van hoe de staat van objecten bewaard moet blijven. Veel objecten zijn namelijk binnen een bepaalde use case nodig maar daarbuiten niet meer. De traditionele HTTP sessie is hier niet toereikend voor.

 

Naast conversation scope zijn er ook “smallere” en “bredere” scopes beschikbaar in Seam. Een gevolg van het beschikbaar zijn van deze scopes is dat er minder eigen code geschreven moet worden om op een goede manier met de use cases om te gaan.

Nadat de database werd opgesteld is er m.b.v. een Seam tool (seam-gen) een volledige CRUD applicatie gegenereerd. Dit diende als goede basis om aan te passen en uit te bouwen tot de uiteindelijke applicatie. Voor de persistentie is er gebruik gemaakt van JPA (Java Persistence API) met Hibernate als provider.

 

Wat betreft het uiterlijk van de applicatie zijn de schermen opgezet met JSF (JavaServer Faces) in combinatie met de RichFaces componentenbibliotheek van JBoss. Met RichFaces werd het mogelijk om eenvoudig met “skins” het uiterlijk van de hele applicatie in te stellen (en te veranderen).

 

Voor het ontwikkelproces is er gebruik gemaakt van de Agile methode. Hiermee kon Flamingo na een aantal iteraties (ondanks de vele nieuwe technologieën) op tijd en tot de tevredenheid van FOM worden opgeleverd.

 

Voor meer informatie:

 

FOM:

http://www.fom.nl

 

JBoss Seam:

http://www.jboss.com/products/seam/

http://docs.jboss.com/seam/latest/reference/en-US/html/Book-Preface.html

 

JBoss Application Server

http://www.jboss.org/jbossas/