Java Enterprise: Plattform
Java 2 Platform, Enterprise Edition, abgekürzt J2EE, ist die Spezifikation einer Standardarchitektur für die Ausführung von J2EE-Applikationen. Hierzu werden in der Spezifikation Softwarekomponenten und Dienste definiert, die primär in der Programmiersprache Java erstellt werden. Die Spezifikation dient dazu, einen allgemein akzeptierten Rahmen zur Verfügung zu haben, um mit modularen Komponenten verteilte, mehrschichtige Anwendungen zu entwickeln. Klar definierte Schnittstellen zwischen den Komponenten und Schichten sollen dafür sorgen, dass Softwarekomponenten unterschiedlicher Hersteller interoperabel sind, wenn sie sich an die Spezifikation halten, und dass die verteilte Anwendung gut skalierbar ist.
J2EE Infrastruktur
[Bearbeiten]J2EE Komponenten erfordern als Laufzeitumgebung eine spezielle Infrastruktur, die von einem J2EE Application Server zur Verfügung gestellt wird.
Zu dieser Infrastruktur gehören technische Funktionalitäten wie
- Sicherheit (Security)
- Transaktionsmanagement
- Namens- und Verzeichnisdienste
- Kommunikation zwischen J2EE-Komponenten
- Management der Komponenten über den gesamten Lebenszyklus (inklusive Instanziierung)
- Unterstützung für die Installation (Deployment)
Des Weiteren kapselt der Server den Zugriff auf die Ressourcen des zugrundeliegenden Betriebssystems (Dateisystem, Netzwerk ...). J2EE Server werden fälschlicherweise häufig auch mit dem Application Server gleichgesetzt.
Wesentliche Bestandteile eines J2EE Servers sind
- ein EJB-Container als Laufzeitumgebung für Enterprise Java Beans
- ein Web-Container als Laufzeitumgebung für Servlets, Java Server Pages sowie Java Server Faces
- ein Client-Container als Laufzeitumgebung für einen Application-Client
J2EE-Server unterstützen die nachfolgend genannten J2EE Programmierschnittstellen ("Application Programming Interface|APIs"). Sie sind meist selbst in der Programmiersprache Java entwickelt.
Es sind zahlreiche Implementierungen für J2EE-Server verfügbar, teils kommerziell, teils in Form frei verfügbarer Open Source-Lösungen. Zu beachten ist, dass nicht alle Server die Spezifikation von J2EE vollständig abdecken - viele Server bieten nur Teilaspekte des Standards.
Als weitere Infrastrukturkompenente kommt für die persistente Speicherung von Daten ein Datenbank Managementsystem (DBMS) zum Einsatz.
Der client-seitige Zugriff auf eine J2EE-Anwendung schließlich erfolgt meist über einen Browser, daneben sind aber auch Applikations-Clients (Java-Applikationen, CORBA-Komponenten) möglich.
Wichtige APIs
[Bearbeiten]Die J2EE APIs beinhalten verschiedene Technologien, die die Funktionalität des Basis-J2SE-APIs erweitern.
Java Naming and Directory Interface (JNDI)
[Bearbeiten]Java Naming and Directory Interface ist eine gemeinsame Schnittstelle mit der alle Java Klassen auf Namens- und Verzeichnisdienste zugreifen können. Über JNDI wird ebenso der Zugriff auf J2EE Komponenten sichergestellt, wie auch auf allgemeine Verzeichnisdienste wie LDAP, DNS und ähnliches zugegriffen werden kann.
Enterprise Java Beans (EJB)
[Bearbeiten]Enterprise Java Beans repräsentieren üblicherweise die Geschäftslogik einer Enterprise Anwendung. Die Beans laufen in einem EJB-Container ab. Es gibt drei unterschiedliche Typen von EJBs:
- Session Beans, sowohl in der Ausformung als statusbehaftete Session Beans [stateful session bean] als auch ohne internen Status [stateless session bean], welche die Geschäftslogik implementieren und vom Client oder anderen EJBs zugreifbar sind.
- Message Driven Beans für die Verarbeitung von JMS Nachrichten für die asynchrone Verarbeitung
- Entity Beans für die Abbildung der Persistenzschicht z.B. über ein DBMS
Java Servlet API (Servlet)
[Bearbeiten]Das Java Servlet API ermöglicht die Erweiterung von (Web)Servern um - meist dynamische - Inhalte. Primär werden Servlets im Zusammenhang mit dem Hypertext Transfer Protocol (HTTP) verwendet. Sie verarbeiten die Anfragen an den Server und liefern entsprechende Ergebnisse an den Client zurück.
Java Server Pages (JSP)
[Bearbeiten]Java Server Pages sind Textdokumente, die zum einen aus statischem Text und zum anderen aus dynamischen Textelementen - den JSP-Elementen - bestehen. Die JSP-Seiten werden transparent vom Web-Container in ein Servlet umgewandelt.
Java Message Service (JMS)
[Bearbeiten]Java Message Service wird für die asynchrone Nachrichtenverarbeitung verwendet.
Java Database Connectivity (JDBC)
[Bearbeiten]Java Database Connectivity dient der Anbindung von Datenbanken an ein J2EE System.
Java Transaction API (JTA)
[Bearbeiten]Java Transaction API erlaubt der Anwendung die Steuerung der Transaktionsverwaltung. JTA ist die Java-Schnittstelle zum CORBA Object Transaction Service (OTS).
Java Authentication and Authorization Service (JAAS)
[Bearbeiten]Der "Java Authentication and Authorization Service" (JAAS) ist eine Java-API die es ermöglicht Dienste zur Authentifikation und Zugriffsrechte in Java Programmen bereitzustellen. JAAS implementiert ein Standard "Pluggable Authentication Module" (PAM) und unterstützt durch dieses Modul einfach eine benutzerbasierte Autorisation
erlaubt den Zugriff auf Mail Services, wie SMTP, POP3 und IMAP.
Java API for XML Processing (JAXP)
[Bearbeiten]hilft dem Entwickler bei der Bearbeitung von XML Dokumenten.
Java Connector Architecture (JCA)
[Bearbeiten]dient dazu andere Systeme transparent zu integrieren.
Java Beans Activation Framework
[Bearbeiten]bietet die Möglichkeit verschiedene Daten anhand des MIME-Headers zu erkennen.
Wichtige Implementierungen
[Bearbeiten]- JBoss
- JOnAS
- Apache Geronimo
- BEA WebLogic
- IBM WebSphere
- Sun Java System Application Server
- Oracle Application Server
- SAP NetWeaver Application Server
- orcle weblogic 12c