Java Enterprise Edition: Aufbau, Applikationen und Struktur
Java ist eine der am weitesten verbreiteten Programmiersprachen überhaupt. Für professionelle Anwendungsbereiche werden immer häufiger Java EE (Enterprise Edition) Anwendungen verlangt. Wir geben euch einen kleinen Einblick und Überblick über die Technologie.
Was ist Java EE?
Das Gute vorweg: Java EE ist überwiegend Java-Programmierung. Wer Java programmieren kann, der kann mit angemessenem Aufwand auch Java EE “lernen”. Bei Java EE handelt es sich genau genommen mehr um eine Sammlung von Programmiermustern und APIs. Es muss also in der Programmiersprache Java in festen Mustern programmiert und vorgegebenen Paradigmen entwickelt werden. Im Gegensatz zu “normalen” Java Anwendungen werden Java-Enterprise-Anwendungen für verteilte, mehrschichtige Architekturen entwickelt. Das bedeutet, dass in der Regel die Teile einer gesamten Anwendung auf verschiedenen Rechnern ausgeführt werden (Server, Client, usw.).
Neu für Java-Entwickler dürfte vor allem die exzessive Nutzung von Annotations sein, die viele Funktionen einer Java EE Software auf einem Applikationsserver / Application Server steuern.
Als Applikationsserver können hierbei z.B. JBoss, Glassfish oder Tomcat genutzt werden.
Java EE Aufbau
Java EE setzt bei Web- und Client-Applikationen anstelle der verbreiteten 2-Schichten-Struktur von Client und Server auf ein 3-Schichten Modell, das zwischen Client, (Java EE) Anwendungsserver mit Businesslogik und Datenbank unterscheidet. Diese Schichten werden auch als Client-/ bzw. Webschicht, Businessschicht und Persistenzschicht bezeichnet. Als Client fungiert in der Regel entweder eine Client-Applikation, oder ein Webbrowser. In der Businesschicht ist die Businesslogik verankert und die Persistenzschicht (in der Regel eine Datenbank bzw. ein Datenbankmanagementsystem) ist für die persistente Speicherung von Daten verantwortlich.
Durch dieses 3-Schichten-Modell ist es möglich, verteilte und mehrschichtige Businessanwendungen zu entwickeln, die hohe Verfügbarkeit und optimale Performance gewährleisten sollen.
Abbildung 1; Drei-Schichten-Architektur
Eine Java EE Applikation
Eine Java EE Applikation setzt sich aus mehreren einzelnen Anwendungen (auch Komponenten genannt) zusammen. Alle diese Komponenten sind in reinem Java geschrieben, können aber auf unterschiedlichen Schichten ansetzen:
- Client-Applikationen oder Applets (clientbasiert)
- Java Servlets, JSF, JSP (serverbasiert)
- Enterprise Java Beans (serverbasiert)
Zusammen ergeben sie eine Java EE Applikation. Den einzelnen Komponenten einer Java EE Anwendung werden wir uns später noch ausführlicher widmen.
Eine Java EE Applikation läuft auf einem Applikationsserver (z.B. JBoss, Glassfish oder Tomcat). Der große Vorteil dabei ist, dass die von Java gewohnte Plattformunabhängigkeit gewährleistet wird – egal, welches Betriebssystem auf dem Serverrechner läuft, solange ein Applikationsserver läuft, lässt sich auch eine Java EE Anwendung deployen. Zudem stellt der Applikationsserver wichtige Funktionen bereit, die ansonsten mühsam implementiert werden müssten, und die maßgeblich zur Ausfallsicherheit und Verteilung einer Java EE Anwendung beitragen. Dazu gehören ein Transaktionsmanagement, Authentifizierungsmöglichkeiten und vor allem der stark abstrahierte Zugriff auf Datenbanksysteme und Lastverteilung.
Die Struktur einer Java EE Applikation
Dadurch, dass der Applikationsserver wichtige Eigenschaften von Businessanwendungen gewährleistet, kann sich der Entwickler auf die Entwicklung der eigentlichen Anwendung konzentrieren. Die Entwicklung einer Java EE Anwendung erfolgt überwiegend in Java, die Struktur des Programms folgt jedoch streng der Aufteilung in Schichten und Komponenten.
Während Java Servlets, Java Server Pages und Java Server Faces für die Realisierung von Client-Komponenten verwendet werden, werden EJB’s (Enterprise Java Beans für die Implementierung der Businesslogik verwendet.
Die Persistenz von Daten wird durch eine Datenbankrepräsentation beispielsweise mit der JPA (Java Persistence API) erreicht.
Jede Komponente wird vom Applikationsserver getrennt behandelt und überwacht, um eine hohe Verfügbarkeit zu gewährleisten.
Im nächsten Blogbeitrag werden wir uns ausführlicher mit den einzelnen Komponenten einer Java EE Applikation beschäftigen:
- Java Server Pages (JSP),
- Java Server Faces (JSF),
- Enterprise Java Beans (EJBs),
- Java Persistence API (JPA)