www.wikidata.de-de.nina.az
Jakarta EE fruher Java Platform Enterprise Edition Java EE ist die Spezifikation einer Softwarearchitektur fur die transaktionsbasierte Ausfuhrung von in Java programmierten Anwendungen und insbesondere Webanwendungen Sie ist eine der grossen Plattformen die um den Middleware Markt kampfen Grosster Konkurrent ist dabei die NET Plattform von Microsoft In der Spezifikation werden Softwarekomponenten und Dienste definiert die hauptsachlich in der Programmiersprache Java erstellt werden Die Spezifikation dient dazu einen allgemein akzeptierten Rahmen zur Verfugung zu stellen um auf dessen Basis aus modularen Komponenten verteilte mehrschichtige Anwendungen entwickeln zu konnen Klar definierte Schnittstellen zwischen den Komponenten und Containern sollen dafur sorgen dass Softwarekomponenten unterschiedlicher Hersteller interoperabel sind wenn sie sich an die Spezifikation halten und dass die verteilte Anwendung gut skalierbar ist Bestandteile der Java Platform Enterprise Edition Spezifikation wurden innerhalb des Java Community Process von diversen Unternehmen erarbeitet und schliesslich der Offentlichkeit in Form eines Dokuments und einer Referenzimplementierung zur Verfugung gestellt Zukunftige Spezifikationen werden als Eclipse Jakarta EE Platform im Rahmen des Eclipse Foundation Projektes EE4J einschliesslich Referenzimplementierung Technology Compatibility Kit TCK und Tutorial zur Verfugung gestellt 1 2 Inhaltsverzeichnis 1 Bisherige Versionen 1 1 Eclipse Jakarta EE Platform Versionen Eclipse EE4J 1 2 Java Platform Enterprise Edition Versionen Java Community Process unter Leitung Oracle 2 Infrastruktur 3 Wichtige APIs 4 Implementierungen 4 1 Komplette Jakarta EE Server 4 1 1 Open Source Server 4 1 2 Kommerzielle Server 4 1 3 Verbreitung der Jakarta EE Server 4 2 Separate Web Container Servlet JSP Container 4 3 Separate EJB Container 5 Weitere Java Plattformen 6 Siehe auch 7 Literatur 8 Weblinks 9 EinzelnachweiseBisherige Versionen Bearbeiten nbsp Jakarta EEEclipse Jakarta EE Platform Versionen Eclipse EE4J Bearbeiten Die Java Platform Enterprise Edition v 8 einschliesslich Technology Compatibility Kit TCK 3 und Referenzimplementierung GlassFish 4 wurde der Eclipse Foundation von Oracle ubergeben 5 6 und dort das Projekt EE4J 7 gegrundet 8 Dieses entwickelt stimmt ab und veroffentlicht die Eclipse Jakarta EE Platform 9 Die Eclipse Foundation und Oracle hatten damals keine Vereinbarung zu den Namensrechten an Java und dem damit verbundenen technischen Namensraum getroffen 10 11 was 2019 durch die Umbenennung der Version in Jakarta gelost wurde Java Platform Enterprise Edition Versionen Java Community Process unter Leitung Oracle Bearbeiten Bis einschliesslich zur Version 8 wurde die Java EE Plattform mit dem Java Community Process unter der Spezifikationsleitung von Oracle entwickelt abgestimmt und veroffentlicht Weitere Versionen werden mit diesem Prozess und unter dieser Leitung nicht erscheinen 12 Die letzte Version der Java EE Spezifikation ist die Version 8 0 13 Der neue Name fur die Spezifikation lautet Java Platform Enterprise Edition kurz Java EE ˈdʒɑːve ˌiːˈiː Dies ersetzt die vorherige Abkurzung J2EE ˌdʒeɪˈtuː ˌiːˈiː Java 2 Platform Enterprise Edition Version Ausfuhrlicher Name Veroffentlichungsdatum der Final Release1 0 Java 2 Platform Enterprise Edition v 1 0 Dezember 19991 2 Java 2 Platform Enterprise Edition v 1 2 20001 2 1 Java 2 Platform Enterprise Edition v 1 2 1 23 Mai 20001 3 Java 2 Platform Enterprise Edition v 1 3 24 September 20011 4 Java 2 Platform Enterprise Edition v 1 4 24 November 20035 Java Platform Enterprise Edition v 5 11 Mai 20066 Java Platform Enterprise Edition v 6 10 Dezember 20097 Java Platform Enterprise Edition v 7 12 Mai 20138 Java Platform Enterprise Edition v 8 18 September 2017Danach folgten die Versionen Jakarta EE 8 2019 vollkompatible Version zu Java Platform Enterprise Edition v 8 Jakarta EE 9 2020 Jakarta EE 9 1 2021 Jakarta EE 10 2022 Infrastruktur Bearbeiten nbsp Schematischer Aufbau der Architektur wie sie in der J2EE Spezifikation 1 4 beschrieben istJakarta EE Komponenten erfordern als Laufzeitumgebung eine spezielle Infrastruktur einen sogenannten Jakarta EE Application Server Dieser Server stellt technische Infrastruktur bereit wie Sicherheit Security Transaktionsmanagement Namens und Verzeichnisdienste Kommunikation zwischen Jakarta EE Komponenten Persistenzdienste zum langfristigen Speichern von Java Objekten Management der Komponenten uber den gesamten Lebenszyklus inklusive Instanziierung Unterstutzung fur die Installation Deployment Des Weiteren kapselt der Server den Zugriff auf die Ressourcen des zugrundeliegenden Betriebssystems Dateisystem Netzwerk Ein Jakarta EE Server wird in diverse logische Systeme unterteilt Diese werden Container genannt Die aktuelle Spezifikation erfordert die folgenden Container einen EJB Container als Laufzeitumgebung fur Jakarta Enterprise Beans einen Web Container als Laufzeitumgebung fur Jakarta Servlets und Jakarta Server Pages JSP einen JCA Container als Laufzeitumgebung fur JCA Connectoren Dieser ist zwar nicht explizit definiert faktisch jedoch muss jeder Application Server Hersteller diesen implementieren Denn im Jakarta Enterprise Beans EJB sowie im Web Container sind Restriktionen definiert welche fur 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 fur Nachrichtenwarteschlangen Es sind zahlreiche Implementierungen fur Jakarta EE Server verfugbar teils proprietar teils in Form frei verfugbarer Open Source Losungen z B WildFly Eine Referenzimplementierung wird von der Eclipse Foundation zur Verfugung gestellt Zu beachten ist dass nicht alle Server die Spezifikation von Jakarta EE vollstandig abdecken Jedoch veroffentlichen Oracle und Eclipse fur jede Version eine Liste der derzeit zertifizierten Server 14 15 Als weitere Infrastrukturkomponente kommt fur 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 uber einen JDBC Treiber Der clientseitige Zugriff auf eine Jakarta EE Anwendung erfolgt oft uber einen Browser daneben sind aber auch Applikations Clients Java Applikationen CORBA Komponenten Webservice Clients verbreitet Wichtige APIs BearbeitenDie Jakarta EE APIs beinhalten verschiedene Technologien die die Funktionalitat des Basis Java SE APIs erweitern bzw ersetzen 16 Neben den aktuellen Bezeichnungen werden in der Tabelle die alten Benennungen erganzend genannt Name und Abkurzung Beschreibung J2EE 1 4 Java EE 5 Java EE 6 Java EE 7 Java EE 8Jakarta Enterprise Beans EJB fruher Enterprise JavaBeans beinhalten die Geschaftslogik 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 Geschaftslogik und sind meistens vom Client zugreifbar Message Driven Beans kurz MDB fur die Verarbeitung von JMS Nachrichten wurden in Version 2 1 neu eingefuhrt Entity Beans fur die Abbildung von persistenten Datenobjekten ab Version 3 0 obsolet da EJBs durch Detachment auch ausserhalb des Containers nutzbar sind ja 2 1 ja 3 0 ja 3 1 ja 3 2 ja 3 2 Jakarta Servlet fruher Java Servlet erlaubt im Allgemeinen die Erweiterung von Servern deren Protokoll auf Anfragen und Antworten basiert Primar werden Servlets im Zusammenhang mit dem Hypertext Transfer Protocol HTTP verwendet wo sie in einem Web Container leben und Anfragen von Webbrowsern beantworten ja 2 4 ja 2 5 ja 3 0 ja 3 1 ja 4 0 Jakarta Server Pages JSP fruher JavaServer 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 ja 2 0 ja 2 1 ja 2 2 ja 2 3 ja 2 3 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 konnen ja 1 0 ja 1 2 ja 1 3 ja 1 4 ja 1 4 Java Naming and Directory Interface JNDI ist eine gemeinsame Schnittstelle mit der alle Java Klassen auf Namens und Verzeichnisdienste zugreifen konnen Uber JNDI wird insbesondere der Zugriff auf Java EE Komponenten sichergestellt ja 1 2 ja 1 2 ja 1 2 SE ja 1 2 SE ja 1 2 SE Jakarta Messaging JMS fruher Java Message Service ist eine API fur die asynchrone Nachrichtenverarbeitung ja 1 1 ja 1 1 ja 1 1 ja 2 0 ja 2 0 Jakarta Transactions API JTA fruher Java Transaction API erlaubt der Anwendung die Steuerung der Transaktionsverwaltung JTA ist die Java Schnittstelle zu Transaktionsmonitoren Standardmassig wird diese Schnittstelle implementiert vom Java Transaction Service JTS welcher eine Schnittstelle zum CORBA Object Transaction Service OTS bietet ja 1 0 1B ja 1 1 ja 1 1 ja 1 2 ja 1 2 Java Authentication and Authorization Service JAAS ist eine Java API die es ermoglicht Dienste zur Authentifikation und Zugriffsrechte in Java Programmen bereitzustellen JAAS implementiert ein standardmassiges Pluggable Authentication Module PAM und unterstutzt durch dieses Modul eine einfache Authentifizierung und benutzerbasierte Autorisierung ja 1 0 ja 1 0 ja 1 0 ja 1 0 ja 1 0 Jakarta Mail fruher JavaMail erlaubt den Zugriff auf Mail Dienste wie z B SMTP POP3 oder IMAP ja 1 2 ja 1 4 ja 1 4 ja 1 5 ja 1 6 Jakarta XML Binding JAXB fruher Java Architecture for XML Binding ermoglicht es ein XML Schema direkt an Java Klassen zu binden Wurde offiziell erst seit Java EE Version 1 5 gefordert wird jedoch evtl schon vorher unterstutzt nein ja 2 0 ja 2 2 ja 2 2 ja 2 2 Java API for XML Processing JAXP hilft dem Entwickler bei der Bearbeitung von XML Dokumenten ja 1 2 ja 1 3 ja 1 4 SE ja 1 4 SE ja 1 4 SE Jakarta XML RPC JAX RPC fruher Java API for XML based RPC ermoglicht den entfernten Zugriff auf RPC Dienste ja 1 0 ja 1 1 ja 1 1 ja 1 1 ja 1 1 Jakarta RESTful Web Services JAX RS fruher Java API for RESTful Web Services nein nein ja 1 1 ja 2 0 ja 2 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 1 0 ja 1 0 ja 1 0 ja 1 0 ja 1 0 Java Authorization Contract for Containers JACC definiert diverse Sicherheitsrichtlinien fur die diversen Java EE Container ja 1 0 ja 1 1 ja 1 4 ja 1 5 ja 1 5 Jakarta Connectors JCA fruher J2EE Connector Architecture dient dazu andere Systeme transparent zu integrieren Stichwort EAI ja 1 5 ja 1 5 ja 1 6 ja 1 7 ja 1 7 JavaBeans Activation Framework JAF bietet die Moglichkeit verschiedene Daten anhand des MIME Headers zu erkennen ja 1 0 ja 1 1 ja 1 1 ja 1 1 ja 1 1 Jakarta XML Web Services JAX WS fruher Java API for XML Web Services hilft bei der Erstellung von Webservices und zugehorigen Clients die uber XML kommunizieren z B uber SOAP nein ja 2 0 ja 2 2 ja 2 2 ja 2 2 Web Service Metadata beschreibt Web Services mit Java Annotationen nein ja 2 0 ja 2 1 ja 2 1 ja 2 1 Jakarta Persistence API JPA fruher Java Persistence API stellt eine einheitliche und datenbankunabhangige Schnittstelle fur Object Relational Mapping und das Arbeiten mit Entitaten bereit nein ja 1 0 ja 2 0 ja 2 1 ja 2 2 Streaming API for XML StAX ist eine cursorbasierte XML Verarbeitung in Erganzung der DOM und SAX Parser nein ja 1 0 ja 1 0 ja 1 0 ja 1 0 Jakarta Server Faces JSF fruher JavaServer Faces dient dazu Komponenten fur Benutzerschnittstellen in Webseiten einzubinden und die Navigation zu definieren nein ja 1 2 ja 2 0 ja 2 2 ja 2 3 Expression Language EL nein nein ja 2 2 ja 3 0 ja 3 0 Jakarta Standard Tag Library JSTL fruher JavaServer Pages Standard Tag Library ist eine Sammlung von JSP Tags fur die Strukturierung XML SQL Internationalisierung und so weiter nein ja 1 2 ja 1 2 ja 1 2 ja 1 2 Contexts and Dependency Injection CDI ist eine Technik um Felder nach dem Inversion of Control Prinzip zu setzen Es erlaubt dem Entwickler verschiedene fachliche Kontexte miteinander zu verbinden Es verbindet ausserdem JSF mit EJB nein nein ja 1 0 ja 1 2 ja 2 0 Java API for WebSocket WebSocket Verwendet WebSockets um aus serverseitig laufenden Java Prozessen Nachrichten an JavaScript Browser Anwendungen zu senden nein nein nein ja 1 0 ja 1 1 Java API for JSON Processing JSON P nein nein nein ja 1 0 ja 1 1 Batch Applications for the Java Platforms Batch nein nein nein ja 1 0 ja 1 0 Bean Validation nein nein ja 1 0 ja 1 1 ja 2 0 Managed Beans nein nein ja 1 0 ja 1 0 ja 1 0 Concurrency Utilities for Java EE nein nein nein ja 1 0 ja 1 0 Interceptors nein nein ja 1 1 ja 1 2 ja 1 2 Common Annotations for the Java Platform nein nein ja 1 1 ja 1 2 ja 1 3 Authentication Service Provider Interface for Containers JASPIC nein nein ja 1 0 ja 1 1 ja 1 1 Enterprise Edition Management API nein nein ja 1 1 ja 1 1 ja 1 1 Enterprise Edition Deployment API nein nein ja 1 2 ja 1 2 ja 1 2 Java EE Security API nein nein nein nein ja 1 0 Implementierungen BearbeitenEine Implementierung des Jakarta EE Standards kann zusatzlich von Oracle fur die jeweilige Version zertifiziert werden Dadurch wird die grundsatzliche Kompatibilitat der Anwendungen zwischen den Servern bestatigt Jedoch zeigt sich in der Praxis oft dass eine Portierung einer Applikation von einem Jakarta EE Server zum anderen mit Problemen verbunden ist So werden teilweise unbewusst Hersteller abhangige Bibliotheken genutzt Komplette Jakarta EE Server Bearbeiten Der derzeitige Stand der Zertifizierung nach dem Oracle TCK steht in Klammern dahinter Open Source Server Bearbeiten Apache Geronimo benutzt wahlweise Apache Tomcat oder Jetty Java EE 6 14 Full Profile und Web Profile WildFly fruher JBoss Apache Tomcat oder Undertow Java EE 8 14 Full Profile und Web Profile Jakarta EE 8 15 Full Profile JOnAS benutzt Apache Tomcat oder Jetty Java EE 6 14 Web Profile GlassFish Java EE 8 14 Full Profile und Web Profile Jakarta EE 8 15 Full Profile und Web Profile Payara Server Jakarta EE 8 15 Full Profile Open Liberty Jakarta EE 8 15 Full Profile und Web Profile Kommerzielle Server Bearbeiten ATG Dynamo Application Server DAS Java EE 1 3 Oracle WebLogic seit der Ubernahme von BEA durch Oracle 2008 Java EE 7 14 Full Profile Oracle Application Server Java EE 5 Orion Application Server SAP NetWeaver Application Server Java EE 5 SAP Cloud Platform Java EE 7 14 Web Profile IBM WebSphere Application Server WAS Java EE 8 14 Full Profile und Web Profile JBoss EAP Java EE 8 14 Full Profile und Web Profile Verbreitung der Jakarta EE Server Bearbeiten Im Jahr 2007 wurden die folgenden Nutzerzahlen bekannter Java EE Server veroffentlicht 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 schatzt dass es insgesamt 10 000 Nutzer der JBoss Enterprise Application Platform gibt 17 Jakarta EE Server Anzahl NutzerIBM WebSphere Application Server 75 000Oracle Application Server 32 000BEA WebLogic 15 000SAP NetWeaver Application Server 12 000SUN Sun Java System Application Server GlassFish 3 000JBoss Application Server WildFly 1 000Separate Web Container Servlet JSP Container Bearbeiten Apache Tomcat Jetty ResinSeparate EJB Container Bearbeiten Apache OpenEJB Open SourceWeitere Java Plattformen BearbeitenJava Platform Standard Edition Java Platform Micro EditionSiehe auch BearbeitenMicroProfile Spring Framework Literatur BearbeitenAlexander Salvanos Professionell entwickeln mit Java EE 8 Rheinwerk Verlag 2018 ISBN 978 3 836 24353 7 Alexander Salvanos Professionell entwickeln mit Java EE 7 Galileo Press 2014 ISBN 978 3 8362 2004 0 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 amp 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 BearbeitenOffizielle Seite von Jakarta EE Aktuelle Spezifikationen zu Java EE Oracle englisch Offizielle Java EE Website von Oracle englisch Offizielle Eclipse Enterprise for Java EE4J Website der Eclipse Foundation englisch Offizielles Java EE 6 Tutorial von Oracle englisch Eric Jendrock u a The Java EE 7 Tutorial Oracle September 2014 abgerufen am 19 Februar 2015 englisch auch als JEETT PDF verfugbar Einzelnachweise Bearbeiten Christopher Guindon Eclipse GlassFish 5 1 is Released The Eclipse Foundation Abgerufen am 5 April 2019 englisch heise online Anwendungsserver GlassFish 5 1 bereitet den Umstieg auf Jakarta EE vor Abgerufen am 5 April 2019 Wayne Beaton Eclipse Jakarta EE TCK 22 Mai 2018 abgerufen am 5 April 2019 englisch Wayne Beaton Eclipse GlassFish 10 Mai 2018 abgerufen am 5 April 2019 englisch Will Lyons Background on Oracle s contribution to Jakarta EE 24 April 2018 abgerufen am 5 April 2019 Wayne Beaton EE4J FAQ The Eclipse Foundation Abgerufen am 5 April 2019 englisch Wayne Beaton Eclipse EE4J 24 Oktober 2017 abgerufen am 5 April 2019 englisch heise online Jakarta EE Eclipse Foundation ubernimmt die Verantwortung fur Enterprise Java Abgerufen am 5 April 2019 Wayne Beaton Eclipse Jakarta EE Platform 27 Juni 2018 abgerufen am 5 April 2019 englisch Mike Milinkovich Update on Jakarta EE Rights to Java Trademarks In Life at Eclipse 3 Mai 2019 abgerufen am 14 Mai 2019 englisch Lars Rowekamp Jakarta EE Der Anfang vom Ende oder die Chance fur einen Neuanfang In heise developer Abgerufen am 14 Mai 2019 Wayne Beaton EE4J FAQ The Eclipse Foundation Abgerufen am 5 April 2019 englisch Java EE 8 ist offiziell erschienen a b c d e f g h i Java EE Compatibility Abgerufen am 4 April 2019 a b c d e Jakarta EE Compatible Products Abgerufen am 11 Oktober 2019 Liste der API Spezifikationen JSRs bei Oracle John R Rymer The Forrester Wave Application Server Platforms Q3 2007 Hrsg Forrester Research 11 Juli 2007 Abgerufen von https de wikipedia org w index php title Jakarta EE amp oldid 226794451