J2EE Courses

Worum gehts?

Mit den J2EE Courses wollen wir euch im Rahmen von 4 IEEE Specials eine Einführung in die Softwareentwicklung mit der Java 2 Enterprise Edition geben. Dabei werden wir versuchen mit einfachen Beispielen die Funktionen die die J2EE bietet zu demonstrieren. Wir benutzen den Open-Source Applicationserver JBoss und werden auch alle Beispiele hier verfügbar machen.

Was ist eigentlich die J2EE?

Die Java 2 Enterprise Edition ist ein Standard für sogenannte Multitier Anwendungen unter Java. Multitier bezeichnet dabei alle Anwendung die über mehrere Architekturschichten verteilt sind. Die J2EE stellt dabei eine Komponentenarchitektur bereit, in der der Entwickler seine Geschäftslogik entwickeln kann. Das Ziel der J2EE ist es dabei ständig wiederkehrende Probleme die nicht unmittelbar mit der Geschäfstlogik zu tun haben vom Entwickler fernzuhalten. Die J2EE definiert aus diesem Grund einen Standard für sogenannte Application Server (z.B. Bea Weblogic, IBM Websphere, JBoss, etc.). Der Application Server stellt dann verschiedene Dienste für die Komponenten bereit, die der Entwickler ansonsten selbst implementieren müsste. Dies geht über Transaktionsmanagement, Messaging, Remoting, uvm. bis hin zur Einbindung von nicht J2EE-Komponenten. Die J2EE lagert also einen Großteil der "Framework-Probleme" an den Application Server aus, und erlaubt es dem Entwickler somit sich voll auf den Entwurf der Geschäftslogik zu konzentrieren.

Warum hingehen

Die Java 2 Enterprise Edition ist aus der Entwicklung von geschäftskritischen Anwendungen nicht mehr wegzudenken. Ein ständig steigender Anteil von großen Geschäftsanwendungen wird mitlerweile auf der Basis von J2EE entwickelt. In Zukunft steht zu erwarten dass die Bedeutung von J2EE in der Softwareentwicklung weiter zunehmen wird. Für jede Anwendungsentwicklung muss die J2EE in Zukunft zumindest in Betracht gezogen werden, denn sie bietet oft einen wesentlichen Vorteil gegenüber Eigenentwicklungen von Frameworks. Als Anwendungsentwickler im Business-Bereich wird man also in Zukunft um J2EE-Entwicklung kaum herumkommen. Ausserdem kann man einfach coole Sachen damit machen :)

Termine

Teil 1 - Überblick und Grundlagen

In dieser ersten von insgesamt 4 Veranstaltungen geben wir euch einen großen Überblick über die Bestandteile der J2EE und erläutern welche Probleme bei der Anwendungsentwicklung mit Hilfe der J2EE gelöst werden können. Wir erläutern kurz JNDI als Bindeglied zwischen den Bestandteilen der J2EE. Ausserdem geben wir eine kurze Einführung in den Application-Server JBoss und seine Installation und Benutzung.

Teil 2 - EJBs - Remoting, Transaktionssupport, Security mit JAAS

Diesmal geht es voll in die Untiefen von EJBs. Zuerst stellen wir die grundlegenden Elemente eines EJBs vor, und demonstrieren das deployment im Application-Server. Weiter gehts zur remoting-fähigkeit von EJBs, wir greifen von einer Client-Applikation auf die EJBs zu. Dann demonstrieren wir die Unterstützung für deklarative Transaktionen auf Methodenebene und freuen uns dass wir kein lästiges manuelles Commit und Rollback mehr machen müssen. Zum guten Schluss sichern wir unsere EJBs noch mittels JAAS.

Teil 3 - EJBs - Persistenz und EJB Design Patterns

Im 3. Teil geht es um die Möglichkeiten Objekt-Persistenz mit EJBs zu realisieren. Mit Entity-Beans abstrahieren wir von der Datenbank, und erstellen ein objektorientiertes Persistenzmodell. Auch die Probleme von Entity-Beans werden wir beleuchten, und einige Design Patterns kennenlernen mit denen man diese umgehen kann. Evtl. betrachten wir noch Alternativen zur Entitiy-Bean Persistenz wie OR-Mapping Frameworks (z.B. Hibernate) oder JDO.

Teil 4 - Messaging mit JMS, Codegenerierung mit XDoclet

Im letzten Teil der Reihe beleuchten wir robustes Messagin mit dem Java Message Service (JMS). Mit JMS verschicken wir zuverlässig Messages zwischen den verteilten Komponenten unserer Anwendung und realisieren somit asynchrone Kommunikation. Zum Abschluss betrachten wir noch wie sich die J2EE-Entwicklung durch automatische Codegenerierung mit XDoclet wesentlich vereinfachen lässt.