Java Platform, Enterprise Edition

Java Platform, Enterprise Edition

Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web-Anwendungen. Sie ist eine der großen Plattformen, die um den Middleware-Markt kämpfen. Größter Konkurrent ist dabei die .NET-Plattform von Microsoft.

In der Spezifikation werden 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 stellen, um auf dessen Basis aus modularen Komponenten verteilte, mehrschichtige Anwendungen entwickeln zu können. Klar definierte Schnittstellen zwischen den Komponenten und Containern 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.

Bestandteile der Spezifikation werden innerhalb des Java Community Process von diversen Unternehmen erarbeitet und schließlich der Öffentlichkeit in Form eines Dokuments und einer Referenzimplementierung zur Verfügung gestellt.

Inhaltsverzeichnis

Bisherige Versionen

Die aktuelle Version der Java-EE-Spezifikation ist die Version 6.0.

Der neue Name für die Spezifikation lautet Java Platform, Enterprise Edition, kurz Java EE [ˈdʒɑːvə ˌiːˈiː]. Dies ersetzt die vorherige Abkürzung J2EE [ˌdʒeɪˈtuː ˌiːˈiː] (Java 2 Platform, Enterprise Edition).

Version Ausführlicher Name Veröffentlichungsdatum Release-Status
1.0 Java 2 Platform Enterprise Edition, v 1.0 Dezember 1999 Final Release
1.2 Java 2 Platform Enterprise Edition, v 1.2 2000 Final Release
1.2.1 Java 2 Platform Enterprise Edition, v 1.2.1 23. Mai 2000 Final Release
1.3 Java 2 Platform Enterprise Edition, v 1.3 24. September 2001 Final Release
1.4 Java 2 Platform Enterprise Edition, v 1.4 24. November 2003 Final Release
5 Java Platform, Enterprise Edition, v 5 11. Mai 2006 Final Release
6 Java Platform, Enterprise Edition, v 6 10. Dezember 2009 Final Release

Infrastruktur

Schematischer Aufbau der Architektur, wie sie in der J2EE-Spezifikation 1.4 beschrieben ist

Java-EE-Komponenten erfordern als Laufzeitumgebung eine spezielle Infrastruktur, einen sogenannten Java EE Application Server. Dieser Server stellt technische Funktionalitäten wie

zur Verfügung. Des Weiteren kapselt der Server den Zugriff auf die Ressourcen des zugrundeliegenden Betriebssystems (Dateisystem, Netzwerk, …).

Ein Java-EE-Server wird in diverse logische Systeme unterteilt. Diese werden Container genannt. Die aktuelle Spezifikation erfordert die folgenden Container:

  • einen EJB-Container als Laufzeitumgebung für Enterprise Java Beans
  • einen Web-Container als Laufzeitumgebung für Servlets und JavaServer Pages (JSP)
  • einen JCA-Container als Laufzeitumgebung für JCA Connectoren. Dieser ist zwar nicht explizit definiert, faktisch jedoch muss jeder Application-Server-Hersteller diesen implementieren. Denn im Enterprise Java Beans (EJB) sowie im Web-Container sind Restriktionen definiert, welche für die JCA-Laufzeitumgebung nicht gelten. Dabei handelt es sich beispielsweise um das Starten von Threads oder das Lesen und Schreiben in Dateien etc.
  • einen JMS-Provider als Verwaltungssystem für Nachrichtenwarteschlangen.

Es sind zahlreiche Implementierungen für Java-EE-Server verfügbar, teils proprietär, teils in Form frei verfügbarer Open-Source-Lösungen (z. B. JBoss). Eine Referenzimplementierung wird von Oracle zur Verfügung gestellt. Zu beachten ist, dass nicht alle Server die Spezifikation von Java EE vollständig abdecken. Jedoch veröffentlicht Oracle für jede Version eine Liste der derzeit zertifizierten Server.[1]

Als weitere Infrastrukturkomponente kommt für die persistente Speicherung von Daten ein Datenbankmanagementsystem (DBMS) zum Einsatz. Hierbei kann es sich um ein relationales System handeln, oder aber auch um ein vergleichbares System wie beispielsweise ein OODBMS. Die Anbindung der Datenbankmanagementsysteme erfolgt meist über einen JDBC-Treiber.

Der clientseitige Zugriff auf eine Java-EE-Anwendung erfolgt oft über einen Browser, daneben sind aber auch Applikations-Clients (Java-Applikationen, CORBA-Komponenten, Web Service-Clients) verbreitet.

Wichtige APIs

Die Java-EE-APIs beinhalten verschiedene Technologien, die die Funktionalität des Basis-Java-SE-APIs erweitern bzw. ersetzen.[2]

Name und Abkürzung Beschreibung J2EE 1.4 J2EE 5 J2EE 6
Enterprise Java Beans (EJB) beinhalten die Geschäftslogik einer Enterprise Anwendung oder gestatten Zugriff auf persistente Daten. Die Beans laufen in einem EJB-Container ab. Es gibt drei unterschiedliche Typen von EJBs:
  • Session-Beans, sowohl zustandsbehaftet als auch zustandslos, implementieren die Geschäftslogik und sind meistens vom Client zugreifbar
  • Message-Driven-Beans, kurz MDB, für die Verarbeitung von JMS-Nachrichten, wurden in Version 2.1 neu eingeführt
  • Entity-Beans für die Abbildung von persistenten Datenobjekten (ab Version 3.0 obsolet, da EJBs durch Detachment auch außerhalb des Containers nutzbar sind)
Ja Ja (2.1) Ja Ja (3.0) Ja Ja (3.1)
Java Servlet API (JSS) erlaubt im Allgemeinen die Erweiterung von Servern, deren Protokoll auf Anfragen und Antworten basiert. Primär werden Servlets im Zusammenhang mit dem Hypertext Transfer Protocol (HTTP) verwendet, wo sie in einem Web-Container leben und Anfragen von Webbrowsern beantworten. Ja Ja (2.4) Ja Ja (2.5) Ja Ja (3.0)
JavaServer Pages (JSP) 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. Ja Ja (2.0) Ja Ja (2.1) Ja Ja (2.2)
Webservices (WS) definieren Schnittstellen zu EJBs, die mit einem Uniform Resource Identifier (URI) eindeutig identifizierbar sind und deren Schnittstellen als XML-Artefakte definiert, beschrieben und gefunden werden können. Ja Ja (1.0) Ja Ja (1.2) Ja Ja (1.2)
Java Naming and Directory Interface (JNDI) ist eine gemeinsame Schnittstelle mit der alle Java-Klassen auf Namens- und Verzeichnisdienste zugreifen können. Über JNDI wird insbesondere der Zugriff auf Java-EE-Komponenten sichergestellt. Ja Ja (1.2) Ja Ja (1.2) Ja Ja (1.2)
Java Message Service (JMS) ist eine API für die asynchrone Nachrichtenverarbeitung. Ja Ja (1.1) Ja Ja (1.1) Ja Ja (1.1)
Java Transaction API (JTA) erlaubt der Anwendung die Steuerung der Transaktionsverwaltung. JTA ist die Java-Schnittstelle zu Transaktionsmonitoren. Standardmäßig wird diese Schnittstelle implementiert vom Java Transaction Service (JTS), welcher eine Schnittstelle zu CORBA Object Transaction Service (OTS) bietet. Ja Ja (1.0.1B) Ja Ja (1.1) Ja Ja (1.1)
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 eine einfache Authentifizierung und benutzerbasierte Autorisierung. Ja Ja (1.0) Ja Ja (1.0) Ja Ja (1.0)
JavaMail erlaubt den Zugriff auf Mail Services, wie z. B. SMTP, POP3, IMAP oder NNTP. Ja Ja (1.2) Ja Ja (1.4) Ja Ja (1.4)
Java Architecture for XML Binding (JAXB) ermöglicht es, ein XML-Schema direkt an Java-Klassen zu binden. Wurde offiziell erst seit Java EE Version 1.5 gefordert, wird jedoch evt. schon vorher unterstützt. Nein Nein Ja Ja (2.0) Ja Ja (2.0)
Java API for XML Processing (JAXP) hilft dem Entwickler bei der Bearbeitung von XML-Dokumenten. Ja Ja (1.2) Ja Ja (1.3) Ja Ja (1.3)
Java API for XML-based RPC (JAX-RPC) ermöglicht den entfernten Zugriff auf RPC-Dienste. Ja Ja (1.0) Ja Ja (1.1) Ja Ja (1.1)
Java API for XML Registries (JAXR) dient dazu, einen transparenten Zugriff auf so genannte Business-Registries, wie beispielsweise ebXML oder ein UDDI basiertes Verzeichnis sicherzustellen. Ja Ja (1.0) Ja Ja (1.0) Ja Ja (1.0)
Java Authorization Contract for Containers (JACC) definiert diverse Sicherheitsrichtlinien für die diversen Java-EE-Container. Ja Ja (1.0) Ja Ja (1.1) Ja Ja (1.1)
J2EE Connector Architecture (JCA) dient dazu, andere Systeme transparent zu integrieren (Stichwort: EAI). Ja Ja (1.5) Ja Ja (1.5) Ja Ja (1.5)
JavaBeans Activation Framework (JAF) bietet die Möglichkeit, verschiedene Daten anhand des MIME-Headers zu erkennen. Ja Ja (1.0) Ja Ja (1.1) Ja Ja (1.1)
Java API for XML Web Services (JAX-WS) hilft bei der Erstellung von Web Services und zugehörigen Clients, die über XML kommunizieren, z. B. über SOAP. Nein Nein Ja Ja (2.0) Ja Ja (2.0)
Web Service Metadata beschreibt Web-Services mit Java-Annotationen Nein Nein Ja Ja (2.0) Ja Ja (2.0)
Java Persistence API (JPA) stellt eine einheitliche und datenbankunabhängige Schnittstelle für Object-Relational-Mapping und das Arbeiten mit Entitäten bereit. Nein Nein Ja Ja (1.0) Ja Ja (2.0)
Streaming API for XML (StAX) ist eine Cursor basierte XML-Verarbeitung in Ergänzung der DOM- und SAX-Parser Nein Nein Ja Ja (1.0) Ja Ja (1.0)
JavaServer Faces (JSF) dient dazu Komponenten für Benutzerschnittstellen in Webseiten einzubinden und die Navigation zu definieren. Nein Nein Ja Ja (1.2) Ja Ja (2.0)
JavaServer Pages Standard Tag Library (JSTL) ist eine Sammlung von JSP-Tags für die Strukturierung, XML, SQL, Internationalisierung usw. Nein Nein Ja Ja (1.2) Ja Ja (1.2)
Context and Dependency Injection (CDI) ist eine Technik um Felder nach dem Inversion of Control-Prinzip zu setzen. Es verbindet JSF mit EJB. Nein Nein Nein Nein Ja Ja (1.0)

Implementierungen

Eine Implementierung des Java-EE-Standards kann zusätzlich von Sun für die jeweilige Version zertifiziert werden. Dadurch wird die grundsätzliche Kompatibilität der Anwendungen zwischen den Servern bestätigt. Jedoch zeigt sich in der Praxis oft, dass eine Portierung einer Applikation von einem Java-EE-Server zum anderen mit Problemen verbunden ist. So werden teilweise unbewusst Hersteller-abhängige Bibliotheken genutzt.

Komplette Java-EE-Server

Der derzeitige Stand der Zertifizierung nach Sun steht in Klammern dahinter.

Open Source Server

Kommerzielle Server

Verbreitung der Java-EE-Server

Im Jahr 2007 wurden die folgenden Nutzerzahlen bekannter Java-EE-Server veröffentlicht. Unter Nutzer findet sich die Anzahl der Unternehmen und Organisationen, die den jeweiligen Server lizenziert oder, im Falle von JBoss, einen Wartungsvertrag abgeschlossen haben. JBoss schätzt, dass es insgesamt 10.000 Nutzer der JBoss Enterprise Application Platform gibt.[4]

Java-EE-Server Anzahl Nutzer
IBM WebSphere 75.000
Oracle Application Server 32.000
BEA WebLogic 15.000
SAP NetWeaver Application Server 12.000
SUN Sun Java System Application Server 3.000
JBoss Application Server 1.000

Separate Web-Container (Servlet-/JSP-Container)

  • Apache Tomcat – Open Source
  • Caucho Technology Resin – Open Source
  • Enhydra Server – Open Source
  • Jetty – Open Source

Separate EJB-Container

Siehe auch

Einzelnachweise

  1. http://java.sun.com/javaee/overview/compatibility.jsp Zertifizierte Java EE 5 Server
  2. http://www.oracle.com/technetwork/java/javaee/tech/index.html Liste der API-Spezifikationen (JSRs) bei Oracle
  3. Sun Microsystems bringt GlassFish Enterprise Server v3 auf den Markt. Pressemitteilung von Sun Microsystems GmbH. Abgerufen am 7. Januar 2010.
  4. John R. Rymer; Forrester Research (Hrsg.): The Forrester Wave™: Application Server Platforms, Q3 2007. 11. Juli 2007.

Literatur

  • Bill Shannon, Mark Hapner, Vlada Matena: Java 2 Platform, Enterprise Edition. Addison Wesley, 2000, ISBN 0-201-70456-0.
  • Inderjeet Singh, Beth Stearns, Mark Johnson: Designing Enterprise Applications with the J2EE Platform. 2. Auflage. Addison Wesley, 2002, ISBN 0-201-78790-3.
  • Inderjeet Singh, Sean Brydon, Greg Murray: Designing Web Services with the J2EE 1.4 Platform. Addison Wesley, 17. Juni 2004, ISBN 0-321-20521-9.
  • Jason Hunter, William Crawford: Java Servlet Programming. 2. Ausgabe. O’Reilly, 1. April 2001, ISBN 0-596-00040-5.
  • Bruce W. Perry: Java Servlet & JSP Cookbook. O’Reilly, 1. Januar 2004, ISBN 0-596-00572-5.
  • Hans Bergsten: JavaServer Pages. 3. Ausgabe. O’Reilly, 1. Dezember 2003, ISBN 0-596-00563-6.
  • Marty Hall, Larry Brown: Core Servlets and JavaServer Pages. Prentice Hall PTR, 2004, ISBN 0-13-089340-4.
  • Richard Monson-Haefel, Bill Burke, Sacha Labourey: Enterprise JavaBeans. 4. Ausgabe. O’Reilly, 30. Juni 2004, ISBN 0-596-00530-X.
  • Kevin Boone: Applied Enterprise JavaBeans Technology. Prentice Hall PTR, 1. Dezember 2002, ISBN 0-13-044915-6.
  • Richard Monson-Haefel, David A. Chappell: Java Message Service. O’Reilly, 1. Dezember 2000, ISBN 0-596-00068-5.
  • Rahul Sharma, Beth Stearns, Tony Ng: J2EE Connector Architecture and Enterprise Application Integration. Addison Wesley, 1. Dezember 2000, ISBN 0-201-77580-8.
  • Jonathan Bruce, Jon Ellis, Maydene Fisher: JDBC API Tutorial and Reference. 3. Auflage. Addison Wesley, 2003, ISBN 0-321-17384-8.
  • Rosanna Lee, Scott Seligman: JNDI API Tutorial and Reference. Addison Wesley, 1. Juni 2000, ISBN 0-201-70502-8.
  • Steve J. Perry: Java Management Extensions. O’Reilly, Juli 2002, ISBN 0-596-00245-9.
  • Genender: Enterprise Java Servlets. Addison-Wesley, ISBN 0-201-70921-X.

Weblinks


Wikimedia Foundation.

См. также в других словарях:

  • Java Platform Enterprise Edition — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • Java Platform, Enterprise Edition — Тип Платформа программирования Разработчик Sun Microsystems …   Википедия

  • Java Platform, Enterprise Edition — or Java EE is a widely used platform for server programming in the Java programming language. The Java EE Platform differs from the Standard Edition (SE) of Java in that it adds libraries which provide functionality to deploy fault tolerant,… …   Wikipedia

  • Java 2 Enterprise Edition — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • Java Platform, Standard Edition 6 — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java Platform Micro Edition — Java Platform, Micro Edition, abgekürzt Java ME [ˈdʒɑːvə ˌɛmˈiː], früher auch als Java Platform 2, Micro Edition oder kurz J2ME bezeichnet, ist eine Umsetzung der Programmiersprache Java für so genannte »embedded consumer products« wie etwa… …   Deutsch Wikipedia

  • Java Platform, Standard Edition — or Java SE is a widely used platform for programming in the Java language. It is the Java Platform used to deploy portable applications for general use.In practical terms, Java SE consists of a virtual machine, which must be used to run Java… …   Wikipedia

  • Java Platform, Micro Edition — Java Platform, Micro Edition, abgekürzt Java ME [ˈdʒɑːvə ˌɛmˈiː], früher auch als Java Platform 2, Micro Edition oder kurz J2ME bezeichnet, ist eine Umsetzung der Programmiersprache Java für so genannte »embedded consumer products« wie… …   Deutsch Wikipedia

  • Java Platform Standard Edition — Die Java Platform, Standard Edition oder kurz Java SE (deutsch „Java Plattform, Standardausgabe“ bis Version 5.0 „Java 2 Platform, Standard Edition“, J2SE [ˌdʒeɪˈtuː ˌɛsˈiː]) ist eine Sammlung von Java APIs. Die Java SE dient als Grundlage für… …   Deutsch Wikipedia

  • Java Platform, Standard Edition — Die Java Platform, Standard Edition oder kurz Java SE (deutsch „Java Plattform, Standardausgabe“ bis Version 5.0 „Java 2 Platform, Standard Edition“, J2SE [ˌdʒeɪˈtuː ˌɛsˈiː]) ist eine Sammlung von Java APIs. Die Java SE dient als Grundlage sowohl …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»