Keine Angst vor Java EE

Die Angst vor dem Einsatz der Java EE Technologie ist in vielen Projekten und Firmen immer noch vorhanden, wenn es um die Entwicklung neuer Anwendungen geht. Der Grund dafür sind häufig schlechte Erfahrungen aus vergangenen Projekten. Dass diese Erfahrungen meist mehr als 5 Jahre zurückliegen und der heutige Java EE Standard sich rasant weiterentwickelt hat, wird dabei gerne übersehen. Mit dem Verzicht auf die Java EE Technologie beraubt man sich aber meiner Meinung nach einer der leistungsfähigsten Technologien, welche die Entwicklung von Geschäftsanwendungen deutlich vereinfachen.
Eine alternative Plattform für die Entwicklung von Geschäftsanwendungen bestand häufig aus einem Tomcat Server (Web Container und Servlet Engine) und zum Beispiel dem Einsatz von Spring als modernes Web Framework. Hinzu kommen, je nach Umfang des Projekts, dann zahlreiche Bibliotheken mit denen häufig wiederkehrende Probleme gelöst werden.
Die Java EE Plattform, so wie diese heute existiert, bietet hier eine Reihe von Vorteilen, welche den Entwicklungsaufwand deutlich reduziert.

JAVA EE – DER ANWENDUNGSSERVER

Die Grundidee von Java EE ist der Ansatz, auf einem zentralen Server sämtliche Dienste und Funktionen zu vereinen, die von einer Geschäftsanwendung typischerweise benötigt werden. Dazu gehört zum einen die Auswahl von unterschiedlichen Bibliotheken und Frameworks und zum anderen die Bereitstellung verschiedener Dienste um beispielsweise externe Systeme anzusprechen oder die Performance und Sicherheit eine Anwendung zu optimieren.

Für die Entwicklung einer Geschäftsanwendung auf Basis von Java EE bedeutet dies:
Die Bereitstellung von externen Bibliotheken und Frameworks kann auf das absolute Minimum reduziert werden. Dies zeigt sich häufig im Umfang einer Java EE Anwendung. Diese ist im Vergleich zu Nicht-Java-EE Anwendungen vergleichsweise schlank. Nicht selten bringen es komplexe Tomcat Anwendungen auf Größenordnungen, die die Serverstack eines GlassFish Servers bei weitem überschreiten, was den Ansatz einer Lightwight Architektur ad absurdum führt.

Die Tatsache, dass ein Java EE Server entsprechende Frameworks bereits mit im Gepäck hat, ist aber nur einer der Vorteile dieser Plattform. Viel wichtiger sind die bereits angesprochenen Dienste. So werden sämtliche Funktion, welche die Zugriffe auf externe Systeme benötigen, durch standardisierte Services angeboten. Dazu zählen beispielsweise der Zugriff auf Datenbanken, Zugriffe auf LDAP Verzeichnisse oder auch eine Mailschnittstelle.
Für den Anwendungsentwickler bedeutet dies, dass Java EE Anwendungen selbst keinerlei Schnittstellen oder Konfigurationsdateien für den Zugriff auf diese Dienste mitbringen müssen. Alles wird durch Java EE Plattform bereitgestellt und kann auf dem Applikationsserver zentral konfiguriert werden.

FREIE SOFTWAREENTWICKLUNG

Die genannten Vorteile führen dazu, dass bei der Java EE Softwareentwicklung wesentlich mehr Freiheiten bestehen, als dies mit alternativen Plattformen möglich ist. So ist eine Java EE Businessanwendung zum Beispiel datenbankunabhängig. Das bedeutet, sie kann wahlweise mit Datenbanken ganz unterschiedlicher Hersteller betrieben werden. Das gleiche gilt auch für den Einsatz von Authentifizierungs- und Security Frameworks.
Vor allem aber in Bezug auf die Skalierbarkeit und Traktionskontrolle bietet die Java EE Plattform unschlagbare Argumente. Heute ist es Dank der Java EE6 Spezifikation extrem einfach geworden aus einer simplen Java Klasse eine EJB zu bauen. Vor Jahren waren vom Entwickler hier noch der Besuch zahlreicher Lehrgänge eine unabdingbare Voraussetzung. Die Idee eine Java Klasse in eine EJB zu verwandeln, stellt für eine Geschäftsanwendung vielfältige Möglichkeiten bereit. So wird eine EJB ganz anders behandelt als der Rest der Applikation. Sie wird vom Applikationsserver in einen EJB Container deployed, wodurch der Programmcode der Traktionskontrolle des Servers unterliegt. Auch unterstützen EJBs einen Pooling-Mechanismus, der die Skalierbarkeit der Anwendung deutlich verbessert. All diese Funktionen werden durch den Server bereitgestellt und müssen heute vom Entwickler nicht mehr selbst konfiguriert werden. Dadurch hat der Softwareentwickler nicht nur mehr Möglichkeiten sondern eben auch neue Freiheiten beim Design einer Anwendung.

APPLIKATIONSSERVER SIND SCHWIERIG ZU INSTALLIEREN….

Es gab Zeiten in denen die Applikationsserver nur von den großen Herstellern angeboten wurden. Open Source Produkte wie JBoss wurden in den Hochzeiten von J2EE häufig belächelt. Demonstriert wurde diese Überlegenheit meist mit einem entsprechend großen Server Stack. Ein Websphere Server brachte es vor Jahren schon mal auf 1 bis 2 GB. Ein solches Monster zu starten benötigte einen entsprechend gut ausgestatteten Rechner.  Mal eben auf dem eignen Laptop etwas auszuprobieren war meist mit langen Wartezeiten verbunden.

Heute hat sich das Bild geändert. Die Installationscode eines GlassFish Servers beträgt gerade mal 60 MB. Auch die Zeit, die moderne Java EE Server zum Starten benötigen, habt sich deutlich verkürzt. JBoss und GlassFish wetteifern gerade um die kürzeste Startup Time, welche bereits jetzt im Sekunden Bereich liegt.
Das alles führt dazu, dass die Installation und der Betrieb eines vollwertigen Java EE Applikationsserver nicht länger dauert, als dies für einen Tomcat Server der Fall ist. Die Möglichkeiten bei der Entwicklung moderner Anwendungen sind aber im Java EE Bereich dramatisch gestiegen. Es gibt zahlreiche Bücher über das Thema Softwareentwicklung mit Java EE, welche einen schnellen Einstieg oder Umstieg ermöglichen. Zum Beispiel ‘Beginning Java EE 6 Platform with Glassfish 3’ vom Antonio Goncalves.

IMIXS WORKFLOW UND JAVA EE

Auch die Imixs Workflow Technologie nutzt seit Einführung der Java EE5 Spezifikation die Vorteile dieser Plattform. Für unsere Entscheidung war vor allem die Tatsache wichtig, dass Anwendungen flexibler einsetzbar sind und weniger an bestimmte technische Voraussetzungen gebunden sind. So können zum Beispiel Lösungen wie  ‘Imixs Office Workflow‘ in nahezu jede IT Infrastruktur integriert werden. Vorhandene Datenbankserver oder Directories können einfach angebunden werden. Und auch die Stabilität beim Betrieb einer solchen Anwendung hat den Praxistest schon lange mehrfach bestanden.
Gründe, sich vor der Java EE Technologie zu fürchten, gibt es also nicht mehr. In diesem Sinne wünschen wir allen, die den Sprung in in die Java EE Welt wagen, viel Spaß beim Entwickeln. AlsOpen Source Unternehmen stellen wir natürlich auch unsere Erfahrungen und Lösungen frei zur Verfügung und unterstützen Unternehmen bei der Entwicklung und Einführung entsprechender Geschäftsanwendungen.