Java EE 6 Web Profile - JAXenter

Java EE 6 Web Profile

Caucho’s Resin 4

Der Resin Container der Firma Caucho gilt als ein eher exotischer Java Container. Über Jahre wurden verschiedene Spezifikationen von Java EE eigens implementiert, allerdings wurde nie ein zertifizierter J2EE/Java EE Server angeboten. Mit der Version 4.x hat sich das nur leicht geändert. Zwar kommt der Container beispielsweise mit einer eigenen CDI-Implementierung daher, jedoch wurden auch – wie im Fall von JSF oder JPA – bestehende Implementierungen genutzt. Trotzdem bleibt der Resin Container etwas besonderes, da lediglich das Web Profile angeboten wird. Der Grund dafür liegt laut Caucho an der leichtgewichtigen Natur dieses Profiles. Nicht ganz falsch ist damit die Aussage, dass die meisten (Java-)Webanwendungen überwiegend web tier APIs wie Servlet, JSP oder JSF nutzen. Daneben bietet Resin eine Reihe zusätzlicher APIs wie JTA, JMS, das hauseigene Hessian Protokol aber auch Spring 3.x Support.

Glassfish

Oracle’s Glassfish stellt die Referenzimplementierung (RI) für Java EE 6 dar. Das bedeutet natürlich, dass der Server nicht nur TCK-zertifiziert ist, sondern ebenfalls ein Web Profile anbietet. Das Wort Referenzimplementierung mag auf den ersten Moment ein wenig abschrecken, allerdings wird der Glassfish Server nicht erst seit Java EE 6 in Produktionsumgebungen eingesetzt. Ähnliches trifft auch für verschiedene seiner enthaltenen Komponenten wie EclipseLink (die JPA RI) oder Mojarra (die JSF RI) zu. Die kommende 3.1-Version von Glassfish stellt weitere interessante Feature wie Clustering oder WebSocket Support bereit. Interessant am Glassfish 3.x ist nicht nur die Tatsache, dass er das Web Profile unterstützt, sondern ebenfalls eine embedded-Variante (inklusive Web-Profile-Variante) anbietet. Das macht den Server innerhalb der eigenen Anwendung nutzbar. Für Java-Webanwendungen, die mit Maven gebaut werden, steht ebenfalls ein Plug-in zur Verfügung:

mvn package embedded-glassfish:run

Leider gibt es derzeit noch keine Möglichkeit, die Web-Profile-Variante über das Maven-Plug-in zu starten. Jedoch zeigt der embedded Glassfish, dass auch ein vollwertiger Container leichtgewichtig nutzbar ist. Ähnliche Ziele hat ebenfalls der bereits besprochene JBoss AS 7.

Slwaps – Exoten am Java-EE-Himmel

Neben den etablierten Anbietern gibt es eine etwas exotische Variante der Web-Profile-Umsetzung: Slwaps (Simple Web Profile Application Server). Das Open-Source-Projekt zielt nicht etwa darauf ab, ein neuer Serveranbieter zu werden, stattdessen liegt das Hauptaugenmerk auf der Integration zahlreicher (Java-EE-)Apache-Komponenten innerhalb des Apache Tomcats. Der Ansatz des Projekts ist interessant, da man so einen aufgebohrten Tomcat bekommt, ohne dass man selbst Hand anlegen muss. Ob das Projekt allerdings je einen zertifizierten Container anbieten wird, ist derzeit fraglich. Sollte dies jedoch der Fall sein, so füllt Slwaps eine interessante Nische aus, da die Apache-Tomcat-Community derzeit keine Absichten hat, einen Web Profile Tomcat anzubieten. Die offizielle Begründung hierfür ist, dass dieser Bereich bereits ausreichend durch den Apache Geronimo Server abgedeckt wird und Überschneidungen vermieden werden sollen. Wer sich die Liste der Tomcat Committer anschaut, kann sich durchaus auch andere Beweggründe vorstellen.

Web Profile für Apache Tomcat im Eigenbau

Wie bereits erwähnt, wird es in (naher) Zukunft wohl keinen Apache Tomcat – Web Profile Edition gegeben. Der Tomcat ist ein klassischer Servlet Container, dessen aktuelle Version das Servlet 3.0 API unterstützt. Andere (Web-)Spezifikationen wie JSTL 1.2 oder JSF 2.0 dagegen nicht. Diese kann man jedoch einfach nachrüsten. Ähnlich sieht es aus mit der Hinzunahme von EJB 3.x oder CDI. Die Apache-Projekte OpenEJB und OpenWebBeans (eine CDI-Implementierung) bieten speziellen Support für den Apache Tomcat an. Die Installation von OpenEJB innerhalb des Tomcats ist kinderleicht, wie es hier sichtbar ist. Im Fall von OpenWebBeans müssen zusätzlich noch weitere JAR-Dateien in den Tomcat kopiert sowie dessen server.xml-Dateien angepasst werden. Diese Lösung ist sicher keine geeignete Lösung für Produktivumgebungen oder große Entwicklerteams. Allerdings veranschaulicht es, wie einfach der Eigenbau eines Web Profile Servers mit den richtigen Komponenten sein kann.

Fazit

Durch die Einführung der Idee der Java EE Profiles und der damit verbundenen Möglichkeit, spezifische API Bundles für unterschiedliche Anwendungsszenarien zu schnüren, hat die Enterprise-Java-Spezifikation deutlich an Flexibilität und Attraktivität gewonnen. Hierbei war es ein besonders kluger Schachzug der Expert Group, als erstes eigenständiges Profile das Web Profile zu spezifizieren. Denn gerade im Umfeld der klassischen Webanwendungen war bis dato die Hemmschwelle, auf einen „full-fledge“ Application Server zurückgreifen zu müssen, extrem groß. Dass es sich bei dem Web Profile nicht nur um ein theoretisches Konstrukt handelt, sondern bereits heute „Lightway Runtime Environments“ zur Verfügung stehen, zeigt deutlich, dass auch ein realer Bedarf am Markt existiert. Dieser wird durch die bereits frühzeitig zur Verfügung stehenden „Web Profile Server“ deutlich untermauert. Das weitere Anbieter wie IBM oder Oracle folgen werden, ist nur eine Frage der Zeit.

Lars Röwekamp ist Geschäftsführer der open knowledge GmbH und berät seit mehr als zehn Jahren Kunden in internationalen Projekten rund um das Thema Enterprise Computing (Twitter: @mobileLarson).

Matthias Weßendorf arbeitet für Oracle an einer Server-Side-Push-Lösung für ADF Faces. Er ist PMC Chair von Apache MyFaces. Matthias bloggt regelmäßig auf http://matthiaswessendorf.wordpress.com (Twitter: @mwessendorf).

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.