Suche
Born to be Wild

WildFly 8

Bernhard Löwenstein
shutterstock_149971061

Seit Mitte Februar 2014 steht die finale Version von WildFly 8 zum Download zur Verfügung. Der Artikel gibt einen Überblick über die wesentlichen Neuerungen und Änderungen des wichtigsten Java Enterprise-Applikationsservers auf Open-Source-Basis.

Um den Namensverwirrungen endgültig ein Ende zu bereiten, beschloss Red Hat den Namen “JBoss Application Server” mit der Version 7 sterben zu lassen und nach einer Befragung der Community den Applikationsserver in weiterer Folge als “WildFly” ins Rennen zu schicken. Seit kurzem ist WildFly 8 nun in der finalen Version verfügbar. Bereits der erste Release-Kandidat war in Bezug auf die Java Enterprise Edition 7 Feature-komplett und bestand den offiziellen Kompatibilitätstest. Das gelang davor lediglich der Referenzimplementierung GlassFish Server Open Source Edition 4.0 und TMAX JEUS 8. Da Oracle den kommerziellen Support für den GlassFish eingestellt hat und zukünftig nur mehr auf den WebLogic Server setzen will, stellt WildFly 8 derzeit den einzigen Java EE 7 Full Profile-kompatiblen Applikationsserver auf Open Source-Basis mit konkreter Zukunftsvision dar.

Undertow

Besonders sticht beim neuen Release der neu integrierte Webserver Undertow hervor. Bei den Vorgängerversionen kam hierfür ein Tomcat-Fork zum Einsatz. Bei Undertow handelt es sich um ein noch relativ frisches Projekt der JBoss-Community, das die Absicht verfolgt, einen besonders performanten und skalierbaren Webserver hervorzubringen. Dieses hochgesteckte Ziel dürfte den ersten Tests gemäß erfolgreich erreicht worden zu sein, denn selbst bei mehr als einer Million gleichzeitiger Verbindungen arbeitet das System noch performant. Ermöglicht wird dies vor allem durch Ausnutzung der von der NIO-Schnittstelle bereitgestellten Funktionalitäten. Der Webserver unterstützt blockierende und nicht-blockierende Handler, traditionelle und asynchrone Servlets sowie WebSocket-Handler. Darüber hinaus ist Undertow sehr gut an individuelle Herausforderungen anpassbar, was sich unter anderem dadurch zeigt, dass man eigene Protokolle integrieren kann. Weiterhin lässt sich der Webserver recht effizient als nicht-blockierender Reverse-Proxy einsetzen. Der eingebettete Betrieb ist ebenfalls möglich. Dazu muss man lediglich eine rund 1 MB große JAR-Bibliothek einbinden. Zur Laufzeit kommt eine einfache Instanz mit rund 4 MB Heap Space aus. Diese Fakten sprechen für die Leichtgewichtigkeit von Undertow.

Reduzierung der Ports

Durch Ausnutzung der Möglichkeiten, die der HTTP-Upgrade bietet, konnte die Zahl der Ports bei WildFly 8 auf zwei reduziert werden. So gibt es nun nur noch einen HTTP-Port für Managementbelange (Standardwert: 9990) und einen für Applikationsbelange (Standardwert: 8080). Gerade im Cloud-Umfeld ist das natürlich von großem Vorteil, da dort oft hunderte Instanzen parallel auf nur einem einzigen Server laufen.

Zugriffskontrolle und Patching

Mit WildFly 8 wurde außerdem eine Zugriffskontrolle für die Serveradministration eingeführt. Bisher war es so, dass jeder Administrator sämtliche Rechte hatte und die gesamte Konfiguration des Servers einsehen und modifizieren konnte. Hier lassen sich rechtemäßig nun entsprechende Einschränkungen vornehmen. So kann man den Nutzern bzw. Gruppen bestimmte Managementrollen zuordnen, die darüber entscheiden, inwieweit die Konfiguration des Servers einsehbar und konfigurierbar ist. Unterschieden werden hierbei: Monitor, Operator, Maintainer, Deployer, Auditor, Administrator und SuperUser. Jemand mit Monitor-Rolle darf nur unkritische Laufzeitinformationen einsehen, ein SuperUser hat analog zum JBoss AS7-Administrator alle Rechte. Dazwischen gibt es entsprechende Abstufungen.

Eine weitere interessante Neuerung gibt es in Bezug auf Patching zu berichten. So ist es neuerdings möglich Module und Binärdateien mittels des WildFly-Managementprotokolls in eine bestehende Installation des Applikationsservers remote einzuspielen.

Fit für Java EE 7

Neben den bisher beschriebenen Neuerungen und Änderungen, die sich auf den Applikationsserver selbst bezogen, gibt es natürlich auch viele, die auf die Java EE 7-Unterstützung von WildFly 8 zurückzuführen sind. Wir wollen die wichtigsten davon herausgreifen.

So wurde bei der von Oracle Mitte Juni 2013 offiziell freigegebenen Java-Edition die Client-API für den Zugriff auf RESTful Web Services standardisiert. In WildFly 8 kommt mit RESTEasy eine JAX-RS-Implementierung aus eigenem Hause zum Einsatz. Sie war bereits in der 7er-Version enthalten. Die neu hinzugekommene WebSocket-Technologie ermöglicht den direkten Austausch von Text-, Binär- und Kontrollnachrichten zwischen einem Webclient und seinem zugehörigen Webserver – und zwar in beide Richtungen. Dafür entstanden zwar in den letzten Jahren verschiedene Lösungen, aus technischer Sicht waren dies allerdings nur Hilfslösungen. Java EE 7 stellt für solche Belange mit den WebSockets nun eine standardisierte Technologie bereit, die sich programmiertechnisch elegant nutzen lässt und im Gegensatz zu den bisherigen Lösungen auch bestens skaliert. Für JSON wurde der Plattform ebenfalls ein neues API spendiert. Sie erlaubt die Konstruktion von JSON-Objekten per Builder-Pattern und deren Verarbeitung mittels ereignisgetriebenem Streaming-API oder Object Model-API. Das Thema JSON-Binding (vgl. JAXB) wurde hingegen auf Java EE 8 verschoben.

Nach über einem Jahrzehnt wurde auch JMS einem Facelifting unterzogen. Für das Versenden einer Nachricht reicht nun oftmals eine einzige Codezeile aus – vorausgesetzt man lässt sich die erforderlichen JMS-Objekte vom Container injekten. Darüber hinaus gab es Erweiterungen in Sachen Parallelverarbeitung. So steht nun auch im Enterprise-Umfeld ein Executor Service zur Verfügung, der die ihm übergebenen Tasks unter Ausnutzung der verfügbaren Systemressourcen abarbeitet. Abschließend soll noch die neu hin zugekommene Standardtechnologie für die Verarbeitung von Massendaten (ohne Benutzerinteraktion) erwähnt werden. Die aus einzelnen Schritten bestehenden Batchjobs werden dabei in XML-Form definiert. Jeder Schritt führt nach dem bekanntem Batch-Pattern – also Lesen, Bearbeiten und Schreiben – eine bestimmte Aufgabe aus. All die genannten Funktionalitäten stellt WildFly 8 nun bereit. Hinzu kommen noch viele weitere kleinere Anpassungen und Ergänzungen, auf die wir hier aber nicht weiter eingehen können.

Fazit

Im Gegensatz zu den umfangreichen architektonischen Änderungen beim Versionssprung von 6 auf 7 folgt WildFly 8 dem beim JBoss AS7 eingeschlagenen Weg. Auch wenn Red Hats Applikationsserver nun unter neuem Namen auftritt, so handelt es sich bei ihm um keine Neuimplementierung, sondern lediglich um eine Weiterentwicklung der gut gelungenen 7er-Version. Die massivste Änderung stellt sicherlich der Austausch des bisherigen Webservers dar. So kommt nun Undertow zum Einsatz, mit dem den Entwicklern den ersten Tests nach tatsächlich der große Wurf gelungen sein dürfte. Weiterhin zu erwähnen sind die Reduzierung auf zwei HTTP-Ports, die Einführung von Managementrollen, um den Serveradministratoren maßgeschneidert Rechte zuordnen zu können, sowie die Integration einer Patching-Infrastruktur. Ansonsten wurde WildFly 8 noch fit für Java EE 7 gemacht. Auch dieses Vorhaben kann als gelungen angesehen werden, bestand die CR1-Version doch bereits die Full Profile TCK-Überprüfung erfolgreich.

Aufmacherbild: new blue square stamp von Shutterstock / Urheberrecht: Aquir

Geschrieben von
Bernhard Löwenstein
Bernhard Löwenstein
Bernhard Löwenstein (bernhard.loewenstein@java.at) ist als selbstständiger IT-Trainer und Consultant für javatraining.at tätig. Als Gründer und ehrenamtlicher Obmann des Instituts zur Förderung des IT-Nachwuchses führt er außerdem altersgerechte Roboterworkshops für Kinder und Jugendliche durch, um diese für IT und Technik zu begeistern.
Kommentare
  1. Mark2014-02-12 10:14:08
    Man fragt sich ernsthaft, wieviel (bzw. wie wenig) Objektivität, oder wenig besser: Ahnung, der Autor des Artikels besitzt, wenn er im ersten Satz behauptet, dass die Weiterentwicklung am Glassfish eingestellt wurde. Da vergeht einem die Lust den Rest des Artikels über ein wirklich gutes Produkt zu lesen.
  2. Redaktion JAXenter2014-02-12 11:10:29
    Danke für den Kommentar - wir haben die entsprechende Textzeile geändert. Der Rest des Artikels ist aber wirklich lesenswert, finden wir :)
  3. Mark2014-02-12 11:40:51
    Das werde ich jetzt vielleicht herausfinden ;).

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>