20.07.2012

No-Tier Enterprise Applications with CDI (Lars Röwekamp)

Live gebloggt wird mein Bericht von der JUG Ostfalen nicht, aber nichts desto trotz halte ich meinen Eindruck des Abends einfach mal fest.
Insgesamt waren ca. 20-25 Teilnehmer im Haus der Wissenschaft und haben Lars Röwekamp (www.openknowledge.de) bei seinem Vortrag zum Thema CDI zugehört. Lars geht in seinem Vortrag auf die Möglichkeiten ein, die sich seit der Einführung von CDI 1.0 ergeben haben. 


Ziel des Vortrags war zu demonstrieren, dass eine klassische 3-Tier Application mit Hilfe von CDI in quasi in eine No-Tier Application umgewandelt werden kann. 


Ein wichtiger Punkt direkt vorab. Die eigentliche Schichtentrennung wird dabei nicht aufgehoben, sondern bleibt im wesentlich "unter der Haube" vorhanden. Wir gehen also nicht zurück in die Welt des Spaghetti-Code oder des GOD-Patterns. 
Man kann aber klar erkennen, dass mit der Einführung von CDI (seit Java EE 6) deutlich weniger Overhead bei der leichtgewichtigen Erstellung von Enterprise-Anwendungen vorhanden ist. Die Entwicklung geht damit weg von einer klassischen Ausrichtung, hin zu einer vereinfachten, lose gekoppelten Architektur in der sich die Transaktionen auf eine fachliche Ebene verschieben und die Services als eine Wolke von Businessobjekten zur Verfügung stehen. Damit stehen nicht mehr die infrastrukturellen Themen im Vordergrund, sondern die wesentlich wichtigeren fachlichen Aufgaben.


Nach einer kurzen Einführung in das Thema CDI:

  • IoC / DI lite (Java EE ohne EJB)
  • IoC / DI advanced (Lifecycle Management und Scoping)
  • IoC / DI extreme (Typsicherheit und lose Kopplung)
  • IoC / DI open (leichtes Customizing)
ging es auch direkt in ein praktisches Beispiel anhand eines einfachen Use-Case. In dem Beispiel wurde sowohl die Leichtgewichtigkeit während der Entwicklung, als auch die zahlreichen Vorteile klar. Der für mich persönlich größte Benefit liegt definitiv in der fachlichen Konzentration anstelle der Infrastruktur-Themen. Die Arbeit mit fachlichen Objekten und das Loslassen von infrastrukturellen Themen ist definitiv ein Punkt der mir gefallen hat.


Was mir persönlich allerdings gefehlt hat, ist eine deklarative Transaktionssteuerung, diese musste, wie im Beispiel klar geworden ist, selber erstellt werden. Es soll allerdings mit Erscheinen der Version 1.1 eine Möglichkeit geschaffen werden. 
Ebenfalls etwas unschön fand ich die Steuerung der Conversations, da diese innerhalb der Methoden gestartet und auch beendet werden müssen. Auch da würde ich mir eine deklarative Steuerung über Annotationen wünschen. Im aktuellen Stand muss dieses Feature, beispielsweise über Interceptors, selber entwickelt werden.

Alles in allem ein sehr gelungener Abend, der sicherlich von der Qualität des Vortrags, wie auch von der Länge des Vortrags herausragend war. 

Danke JUG!

Keine Kommentare:

Kommentar veröffentlichen