Kolumne: EnterpriseTales

Java EE in a Box: MicroProfile – ein neuer Community-driven Standard

Lars Röwekamp

In dieser Folge von EnterpriseTales steigt W-JAX-Sprecher Lars Röwekamp in die aktuelle Debatte um den Zustand von Java EE ein. Jüngst hatten hier Red Hat, IBM, Payara, Tomitribe und die Londoner Java Community mit der MicroProfile-Initiative einen Vorstoß gewagt. Wie ist die MicroProfile-Idee einzuschätzen?

Java EE in a Box: MicroProfile

Seien wir einmal ehrlich: Eigentlich haben wir uns doch mittlerweile alle damit abgefunden, dass die Ära Application Server langsam aber sicher ihrem Ende entgegengeht. Wohin man schaut, gibt es mehr oder minder leichtgewichtige Microservices. Das Aus für den klassischen Java EE Application Server.

Es liegt in der Natur der Dinge, dass ein Microservice selten allein daherkommt. Stattdessen hat er meist noch den einen oder anderen Microservice als Freund im Gepäck. Sicherlich können wir Java-EE-Entwickler uns noch vorstellen, dass einige wenige dieser Kollegen innerhalb eines Java EE Application Servers – via getrennter Domains – erfolgreich deployt und betrieben werden. Spätestens bei einer Anzahl von 100 oder mehr hört bei den meisten die Fantasie allerdings auf.

Das eben beschriebene Dilemma haben natürlich auch die führenden Application-Server-Hersteller in Form von rückgängigen Neuinstallationen erkannt und versucht zu korrigieren: egal ob WildFly Swarm, TomEE Shades, Payara Micro oder KumuluzEE. Die Idee ist bei allen Ansätzen ähnlich und trivial. Wenn der Application Server zu groß ist – und dies ist selbst bei der in Java EE 6 neu hinzugekommenen, leichtgewichtig(er)en Variante des Web Profiles der Fall – wird der Server halt auf Diät gesetzt. Statt also einen Microservice in einem vollwertigen Application Server zu deployen, bundelt man einfach diejenigen, und eben nur diese, Bestandteile des Servers, die man zwingend für den Microservice benötigt, mit dem Code des Service selbst und verpackt das Ganze zu einem schmalen JAR. Als Resultat erhält man eine lauffähige Variante des Service inklusive Bootstrapping und Self-contained Runtime. Schade nur, dass man genau an dieser Stelle den Standard verlässt, für den man sich vor Jahren bewusst entschieden hat.

Zugegeben, die bisher entstandenen Lösungen haben ihren Charme. Denn die Entwickler können auch bei den Micro-Java-Enterprise-Containern weiter auf ihr bewährtes Programmiermodell und die zugehörigen APIs setzen. Spätestens bei der programmatischen Konfiguration der Runtime und dem zugehörigen Bootstrapping endet allerdings die Kompatibilität. Ein Austausch der innerhalb des Microservice eingebundenen Serverkomponenten ist somit nicht so ohne Weiteres möglich.

Java EE MicroProfile: Ein neuer Community-driven Standard

Was aber wäre, wenn man genau an diesem Schwachpunkt ansetzen und ein Minimalset an APIs inklusive Bootstrapping-Mechanismus standardisieren würde? Genau diese Bestrebung ist Ende Juni auf dem diesjährigen Red Hat Summit in Form der microprofile.io-Initiative und dem zugehörigen Java EE MicroProfile angekündigt worden. In seiner initialen Version soll das neue Profile lediglich JAX-RS, CDI und JSON-P enthalten. Klingt wenig, ist aber absolut ausreichend, um einen RESTFul Microservice ohne eigenes UI zu implementieren. Natürlich wird kein Entwickler darin gehindert, das vorgegebene Profile um weitere für den jeweiligen Service benötigte APIs zu ergänzen. Wenn man sich einmal die Startzeiten von heutigen Embedded-Containern oder Servern anschaut, kann man sich durchaus vorstellen, wie schnell ein MicroProfile-basierter Microservice nach einem Redeployment wieder zur Verfügung steht.

„Schön und gut“ wird sich jetzt der eine oder andere Leser denken. Ein neues Java EE Profile wird – wenn überhaupt – frühestens in Java EE 8 in den Standard einfließen können. Und der ist erst vor Kurzem auf 2017 verschoben worden. Erschwerend kommt eine gewisse Stagnation bei der Spezifikation und Umsetzung der für Java EE 8 geplanten APIs hinzu – aufgrund von interner Ressourcenverlagerung im Hause Oracle. Eine weitere Verschiebung des Termins würde also niemanden überraschen. Und hier wird es nun wirklich interessant. Das MicroProfile ist nämlich in seiner ersten Ausbaustufe eher als eine Art Gentleman Agreement verschiedener Interessengruppen zu verstehen. Mit Red Hat, IBM, Payara, Tomitribe und der LJC (Londoner Java Community) haben sich wesentliche Treiber des bisherigen Java-EE-Standards zu einer Initiative zusammengeschlossen und einen erfolgversprechenden, alternativen Weg zur offenen Zusammenarbeit gefunden.

„Enterprise Java has to evolve.“ – Mark Little, Red Hat

Ein eigener JSR und eine damit verbundene Überführung des MicroProfile in den Java-EE-Standard ist zwar durchaus eine wichtige Option, steht aber nicht im Fokus der Bemühungen. Stattdessen geht es vielmehr darum, Einigkeit der involvierten Player zu signalisieren und gemeinsam mit der Community einen De-facto-Standard zu generieren. Gemeinsam mit der Community? Genau! Dass man das ganze Thema nicht nur aus Sicht der Application-Server-Hersteller betrachtet, sondern durchaus an der Meinung der Community interessiert ist, zeigt eine entsprechende Umfrage auf der Webseite von www.microprofile.io. Hier wird jeder aufgefordert, die aus seiner Sicht wichtigsten Aspekte eines Microservice (z. B. Start-up Time, Metrics, Disk Space, Circuit Breaker) sowie die für die Implementierung von Microservices sinnvollen Java-EE-APIs zu nennen.

Ein erstes Release, basierend auf Red Hats Wildfly Swarm, soll übrigens schon im September 2016 zur Verfügung stehen. Nicht nur das Profile an sich, sondern auch die Releasezyklen scheinen somit micro zu werden und schnell auf Anforderungen und Wünsche der Community zu reagieren.

Fazit

Mit der Initiative microprofile.io und dem zugehörigen MicroProfile ist etwas entstanden, das eine reale Chance darauf hat, Java EE im Umfeld von Microservices zu etablieren. Glaubt man den bisherigen Ankündigungen, haben die Initiatoren es verstanden, das Beste aus Standard und Community-driven in einem Ansatz zu vereinen: Herstellerunabhängigkeit und damit verbunden Portabilität bei gleichzeitig schnellen Reaktionszeiten.

Wichtig zu verstehen ist, dass die Initiatoren von www.microprofile.io nicht den Glauben in Java EE verloren haben. Ganz im Gegenteil, Red Hat hat erst vor Kurzem noch einmal sein weiteres Engagement im Umfeld von Java EE 8 betont. Eine spätere Überführung des MicroProfiles in den Java-EE-Standard ist also durchaus denkbar und gewünscht. Wichtig ist aber auch, dass zukünftig alternative Wege im Enterprise-Java-Umfeld eine wichtige Rolle spielen werden, die sich mit hoher Wahrscheinlichkeit jenseits des Java Community Process in seiner derzeitigen Form bewegen.

Jeder ist aufgefordert, diese alternativen Wege möglichst aktiv und intensiv mitzugestalten. Im konkreten Fall kann man dies schon heute über die MicroProfile Google Group. In diesem Sinne, zum Ende ausnahmsweise einmal nicht Stay tuned, sondern: Participate!

Geschrieben von
Lars Röwekamp
Lars Röwekamp
Lars Röwekamp ist Gründer des IT-Beratungs- und Entwicklungsunternehmens open knowledge GmbH, beschäftigt sich im Rahmen seiner Tätigkeit als „CIO New Technologies“ mit der eingehenden Analyse und Bewertung neuer Software- und Technologietrends. Ein besonderer Schwerpunkt seiner Arbeit liegt derzeit in den Bereichen Enterprise und Mobile Computing, wobei neben Design- und Architekturfragen insbesondere die Real-Life-Aspekte im Fokus seiner Betrachtung stehen. Lars Röwekamp, Autor mehrerer Fachartikel und -bücher, beschäftigt sich seit der Geburtsstunde von Java mit dieser Programmiersprache, wobei er einen Großteil seiner praktischen Erfahrungen im Rahmen großer internationaler Projekte sammeln konnte.
Kommentare

Hinterlasse einen Kommentar

2 Kommentare auf "Java EE in a Box: MicroProfile – ein neuer Community-driven Standard"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Carlo-LF
Gast
Mal ehrlich: „Wohin man schaut, gibt es mehr oder minder leichtgewichtige Microservices“ ??? Sorry. Natürlich, überall in den einschlägigen Medien wird ein Hype gepusht. Und es wird gegen „Monolithen“ aus der Vergangenheit hergezogen. Und die schöne neue Welt der vielen interagierenden Microservices propagiert. Nur, passt dies denn überall da, wo bislang JEE zum Einsatz kam und noch kommt? Bei komplexen inhouse-Anwendungen mit komplizierter Geschäftslogik? Wo man bislang schon auf Services als Client-Schnittstellen setzte, die aber zusammen über einen Appserver erreichbar waren und sich gegenseitig kennen und verwenden können. Mir kommt das Grausen, stelle ich mir vor, dass bspw. eine Anwendung,… Read more »
Carlo-LF
Gast

ach ja, das hätte ich noch hinzufügen sollen: Mit solchen Hype-Themen wird immer auch der Markt belebt. Veranstalter und Redner können damit ein paar Monate oder Jahren wieder auf Tour gehen. Das aber nur am Rande 🙂