close

Jakarta EE

Zur Navigation springen Zur Suche springen
Image
Jakarta EE-Logo

In der Informatik ist Jakarta EE (bekannt vor Version 8 unter dem Namen Java EE und vor Version 5 unter dem Namen Java 2 Enterprise Edition oder J2EE ) eine Reihe von Spezifikationen, deren Implementierungen hauptsächlich in der Programmiersprache Java entwickelt werden und weit verbreitet in der Webprogrammierung .

Eigenschaften

Die Software, die diese Spezifikation implementiert, heißt Referencing Runtimes Jakarta EE. Früher wurden sie Anwendungsserver genannt. Die Namensänderung von Anwendungsserver zu referenzierender Laufzeit ergibt sich aus der Tatsache, dass mit der Microservices-Architektur eine eigenständige Java-Anwendung gestartet wird, ohne dass ein Anwendungsserver erforderlich ist. Die Implementierung kann vollständig sein (in diesem Fall als vollständige Plattform bezeichnet) oder auf das Webprofil beschränkt sein, dh die Teilmenge der Spezifikationen, die speziell für Webanwendungen entwickelt wurden [1] .

Anfänglich förderte die Spezifikation die Erstellung von Anwendungen, die einer mehrschichtigen Architektur folgen . Diese Architektur hatte den Zweck, die Funktionen zur Anzeige von Webseiten von denen zur Verwaltung der Geschäftslogik und der Speicherung von Informationen in der Datenbank zu trennen . Seit kurzem ist es mit Technologien wie Eclipse MicroProfile, WildFly Swarm und Payara Micro auch möglich, Microservices zu entwickeln. Dies hat auch zu einer Änderung der Bezeichnung von Implementierungen geführt: Früher hießen sie Applikationsserver, jetzt referenzieren sie Laufzeiten.

Diese Spezifikation wurde ursprünglich von Sun Microsystems erstellt, von Oracle vorangebracht und in der zweiten Hälfte des Jahres 2017 unter dem Namen Eclipse Enterprise for Java an die Eclipse Foundation übertragen. [2]

Jakarta EE-Spezifikationen

Der Jakarta EE - Spezifikationssatz enthält viele Technologien , die die Kernfunktionalität der Java - Plattform erweitern . Die folgende Liste zeigt nicht alle Komponenten, sondern nur die wichtigsten. Die einzigen Komponenten, die unbedingt die Verwendung einer referenzierenden Laufzeit erfordern, sind die Unternehmenskomponenten, dh diejenigen, die beispielsweise verteilte Transaktionen und verteilte Warteschlangen benötigen. Die Komponenten für das Web und die Datenbank können auch innerhalb eines einfachen Webservers verwendet werden .

Webspezifikationen

Die Komponenten, die in diese Kategorie fallen, beziehen sich auf die Anzeige von Webseiten. Wenn Sie nur die webseitigen Komponenten verwenden möchten, ist es nicht erforderlich, auf eine komplexe vollständige profilverweisende Laufzeit zurückzugreifen, sondern es reicht aus, ein referenzierendes Laufzeit-Webprofil oder einen schlankeren Webserver zu verwenden.

  • Servlet , das ist die Technologie , die es ermöglicht , HTML - Seiten ( zum Beispiel unter Verwendung der Java Server Pages - Technologie ) an den Client zu übertragen und Webdienste bereitzustellen ;
  • Java Server Faces , ein komponentenbasiertes Webframework, das die Entwicklung von Websites mit AJAX-Funktionalität ermöglicht.

Unternehmensspezifikationen

In dieser Kategorie befinden sich die Komponenten, die spezifisch für Jakarta EE sind. Der Einsatz dieser Komponenten ist nur in mittleren und großen Anwendungen erforderlich.

  • Kontexte und Abhängigkeitsinjektion , mit denen Sie die Steuerungsumkehr auf sehr ähnliche Weise wie mit dem Spring-Framework verwenden und die meisten Funktionen bereitstellen können, die von Enterprise JavaBeans bereitgestellt werden;
  • Die Enterprise JavaBeans definieren ein verteiltes Komponentensystem, das das Herzstück der Java EE-Spezifikation war. Dieses System bot tatsächlich die typischen Merkmale, die von Unternehmensanwendungen benötigt werden , wie Skalierbarkeit , Sicherheit, Datenpersistenz und mehr. Viele dieser Funktionen sind jetzt auch mit Kontexten und Abhängigkeitsinjektion verfügbar;
  • Der Java Message Service beschreibt ein System zum Senden und Verwalten von Nachrichten;
  • Die Java-EE-Sicherheits-API definiert Benutzer-, Passwort-, Gruppen- und Authentifizierungsverwaltung.

Webdienstspezifikationen

In Jakarta EE ist es möglich, Webservices sowohl vom Typ REST als auch vom Typ SOAP zu erstellen . Die Spezifikationen sind:

Spezifikationen für die Interaktion mit der Datenbank

Diese Kategorie enthält die Technologien, die die Persistenz von Daten innerhalb einer relationalen Datenbank ermöglichen. Komponenten dieser Kategorie können auch außerhalb einer referenzierenden Laufzeit verwendet werden.

Basisprogramme

Applet

Image
Beispiel für Java Applet , eine Implementierung des Schachspiels

Die Java-Plattform war eines der ersten Systeme, das die Ausführung von Code aus entfernten Quellen umfassend unterstützte. Ein Java-Applet ist eine spezielle Art von Anwendung, die im Browser des Benutzers gestartet werden kann, indem Code ausgeführt wird, der von einem entfernten Webserver heruntergeladen wurde . Dieser Code wird in einem stark eingeschränkten Bereich ( Sandbox ) ausgeführt, um den Benutzer vor bösartigem Code oder unerwünschtem Verhalten zu schützen; Wer den Code veröffentlicht, kann ein Zertifikat beantragen, das er verwendet, um Applets digital zu signieren , die sie als „sicher“ deklarieren und ihnen die Erlaubnis geben, den eingeschränkten Bereich zu verlassen und auf das Dateisystem und das Netzwerk zuzugreifen, vermutlich mit Zustimmung und unter der Kontrolle des Benutzers . In Wirklichkeit hatten die Applets nicht viel Glück. Tatsächlich wird davon ausgegangen, dass der Client , auf dem sie ausgeführt werden, die JRE installiert hat, die den Applet-Code ausführen soll. Anwendungen, die den sogenannten Thin-Client enthalten, also einen „leichten“ Client, der keine speziellen Tools zum Ausführen von Remote-Code benötigt, manchmal wird nur der Browser benötigt, hatten Glück.

Servlets

Image
Beispiel einer Webanwendung auf einer E-Commerce- Site zwischen Benutzer und Empfänger, die über die Anwendung eine Schnittstelle bilden, indem sie Bestell-, persönliche und Bankdaten austauschen, die mit Servlets und JSP oder einem Web-Framework implementiert werden können

In der Informatik sind Servlets im Zusammenhang mit der Webprogrammierung Objekte , die in Java geschrieben sind und innerhalb eines Webservers (z. B. Tomcat , Jetty ) oder eines Anwendungsservers (z. B. WildFly , GlassFish ) arbeiten und die Erstellung von Webanwendungen ermöglichen [3 ] ( serverseitige Verarbeitung ).

Der Name leitet sich von Java-Applets ab , kleinen Programmen , die in der Java -Sprache geschrieben sind und im Browser des Client-Benutzers ausgeführt werden ( clientseitige Verarbeitung ).

Die häufigste Verwendung von Servlets ist die Generierung dynamischer Webseiten gemäß den Anforderungsparametern, die vom Browser - Client des Benutzers an den Server gesendet werden. In den letzten Jahren wurde keine direkte Programmierung von Servlets durchgeführt, aber wir verwenden lieber Web-Frameworks , die die Servlet-Spezifikation implementieren, oder JavaServer Pages , die dann zur Laufzeit in Servlets übersetzt (kompiliert) werden .

Zertifizierte Implementierungen

Es gibt mehrere referenzierende Open-Source-Laufzeiten, die auch häufig in der Produktionsumgebung verwendet werden.

Zu den Open Source gehören:

Unter den kommerziellen, zusätzlich zu den oben aufgeführten:

  • WebLogic von Oracle;
  • IBMs WebSphere;
  • Cosminexus von Hitachi;
  • Fujitsus Interstage Application Server;
  • InforSuite von InforBus;
  • Jeus von TmaxSoft;
  • WebOTX von NEC;

Microservices und Eclipse MicroProfile

Eclipse MicroProfile ist ein Projekt, um die Jakarta EE-Spezifikationen zu innovieren und sie für eine Microservice-Architektur, auch Microservice-Architektur genannt, besser geeignet zu machen [4] . Die Idee ist, nur die Komponenten von Jakarta EE auszuführen, die für die zu entwickelnde Anwendung unbedingt erforderlich sind.

Unter den verfügbaren Implementierungen finden wir:

  • Wildfliegenschwarm [5]
  • Offene Freiheit [6]
  • TomEE [7]
  • Payara-Mikro [8]
  • kumulusEE [9]

Kritik

Im Dezember 2016 sagte Gartner in einem Bericht, dass IT-Unternehmen neue Features und Funktionen benötigen und dass Java EE nicht mithalten kann. Der Bericht empfahl die Entwicklung einer Strategie zur Verwaltung der Java-EE-Obsoleszenz. Sie erwarten, dass bis 2019 weniger als 35 % der Geschäftsanwendungen auf Java EE-Anwendungsservern ausgeführt werden. Diese Kritik wurde damit beantwortet, dass Java EE sich weiterentwickelt und Features entwickelt, die es schlanker machen, indem Technologien wie MicroProfile, WildFly Swarm und Payara Micro verwendet werden. [10]

Alternativen

Mehrere andere Software bieten ähnliche Funktionen, darunter:

  • Spring-Framework , das eine sehr ähnliche Funktionalität wie Java EE hat;
  • ASP.NET , das mit Sprachen wie C# und Visual Basic.net verwendet werden kann;
  • Das in Scala geschriebene Akka- und Play-Framework kann auch in Java verwendet werden;
  • Node.js , eine ereignisgesteuerte Plattform für die JavaScript-Engine des Browsers;
  • Vert.X, eine Reihe von Tools zum Entwickeln von responsiven Anwendungen auf der JVM

Notizen

  1. ^ Einführung in das Java EE-Webprofil
  2. ^ Häufig gestellte Fragen zu Eclipse Enterprise für Java
  3. ^ Überblick über die Java-Servlet-Technologie , auf oracle.com . Abgerufen am 12. Januar 2014 .
  4. ^ Eclipse MicroProfile auf microprofile.io . Abgerufen am 29. August 2017 .
  5. ^ WildFly Swarm , bei wildfly-swarm.io . Abgerufen am 29. August 2017 .
  6. ^ Open Liberty , auf openliberty.io . Abgerufen am 20. September 2017 .
  7. ^ Microservices-Reihe: MicroProfile und Apache TomEE , auf javacodegeeks.com . Abgerufen am 20. September 2017 .
  8. ^ Payara Micro , bei payara.fish . Abgerufen am 20. September 2017 .
  9. ^ kumuluzEE , unter ee.kumuluz.com . Abgerufen am 20. September 2017 .
  10. ^ Ist Gartners Bericht über den Niedergang von Java EE stark übertrieben? , auf infoq.com . Abgerufen am 29. August 2017 .

Bibliographie

Verwandte Artikel

Externe Links