Suche
Kolumne

Enterprise Tales: MicroProfile – der alternative Standard

Lars Röwekamp

© SuS_Media

Die vor zwei Jahren gegründete Initiative MicroProfile ist angetreten, die Lücke zwischen dem Enterprise-Java-Standard Java EE und den Praxisanforderungen Microservices-basierter Anwendungen zu schließen. Dank der Unterstützung führender Application-Server-Hersteller mausert sich das Projekt langsam, aber sicher zu einem neuen De-facto-Standard.

Microservices und Java EE? Das passt nicht wirklich zusammen. So zumindest die landläufige Meinung. Auf der einen Seite ein angeblich zu schwergewichtiger Application Server, der als Laufzeitumgebung für die ach so kleinen Microservices nicht wirklich tauglich scheint, auf der anderen Seite fehlende APIs zur Unterstützung typischer Herausforderungen im Umfeld stark verteilter Architekturen. Dieses Problem haben 2016 auch einige der führenden Java-EE-Application-Server-Hersteller erkannt – unter ihnen IBM, Red Hat, Tomitribe, Payara und KumuluzEE – und eine entsprechende Initiative ins Leben gerufen: MicroProfile.

Das Ziel der Initiative ist es, das über Jahre aufgebaute Wissen der Java-EE-Community auch für die Entwicklung und den Betrieb von Microservices zu nutzen, ohne dabei an die starren Restriktionen des Java-Enterprise-Standards gebunden zu sein. Erreicht werden soll dies durch ein schmales Bundle von Java-EE-APIs, ergänzt um neue, speziell auf die Anforderungen von Microservices zugeschnittene APIs.

„An open forum to optimize Enterprise Java for a microservices architecture by innovating across multiple implementations and collaborating on common areas of interest with a goal of standardization.“

MicroProfile, www.microprofile.io

In Siebenmeilenstiefeln unterwegs

Nach einer kurzen Phase der Orientierung, in der das Projekt u. a. an die Eclipse Foundation übergeben wurde, geht es für Java-EE-Verhältnisse in Siebenmeilenstiefeln voran: Das bestehende Momentum der JEE-Community als Hebel nutzen und organisch um den Bedarf der Microservices-Community ergänzen, so der Plan. Und dieser Plan scheint aufzugehen. In nur wenigen Monaten ist es gelungen, eine Reihe sinnvoller, Microservices-relevanter APIs mit bestehenden Java-EE-7-APIs zu kombinieren und sie in regelmäßigen MicroProfile-Releases zu veröffentlichen.

Egal, ob Health Check, Metrics, Fault Tolerance, JWT Propagation oder Distributed Configuration Management, MicroProfile scheint die richtigen Antworten – sprich APIs – im Gepäck zu haben. Dabei versucht das mittlerweile in der Version 1.2 angelangte MicroProfile ein Best of both Worlds abzubilden und das Rad, wenn immer möglich und sinnvoll, nicht zwingendermaßen neu zu erfinden. So setzt MicroProfile zum Beispiel für die Implementierung von RESTful Services auf die etablierten Java-EE-APIs JAX-RS 2.0, CDI 1.0 und JSONP 1.0.

Roadmap und Backlog

Auch für die nächsten beiden Versionen, die wahrscheinlich im Abstand von etwa drei Monaten erscheinen werden, gibt es schon konkrete Pläne. Version 1.3 soll ein API für verteiltes Tracing sowie für den Support von OpenAPI (Swagger) erhalten. Mit der Version 2.0 soll im Anschluss ein Upgrade auf Java EE 8 erfolgen. Dies spiegelt sich u. a. im Anheben der bestehenden Java-EE-APIs (JAX RS 2.1, CDI 2.0 und JSONP 1.1) und in der Hinzunahme von JSON-B 1.0 wider. Die Liste der Wünsche beziehungsweise der geplanten APIs ist damit aber noch lange nicht am Ende angelangt. Das Backlog ist laut MicroProfile bis zum Rand gefüllt.

Lediglich die Reihenfolge der Umsetzung scheint noch in den Sternen zu stehen. Features wie verteiltes Logging, Service Registry und Discovery, Messaging und Eventing oder aber Async und Reactive stehen dabei ebenso auf der Agenda wie die Ergänzung weiterer Java-EE-APIs (z. B. Bean Validation und JPA). Natürlich wird auch an eine permanente Adaption von MicroProfile an die Entwicklung der restlichen Java-Community gedacht. Dies zeigt sich im Backlog beispielsweise durch den Wunsch nach einer verstärkten Unterstützung von Lambdas, dem Stream-API und des Java-9-Modularisierungskonzepts.

Fazit

Mithilfe des explizit auf Microcservices ausgerichteten De-facto-Standards Eclipse MicroProfile scheint eine Möglichkeit geschaffen worden zu sein, ein für die Java-EE-Community bereits verloren geglaubtes Terrain zurückzuerobern. MicroProfile ist zwar (noch) kein wirklicher Standard, setzt aber, wann immer möglich und sinnvoll, auf standardisierte APIs und hilft so, das in den letzten zehn Jahren aufgebaute Java-EE-Wissen zukünftig auch im Umfeld von Microservices einsetzen zu können.

Möglich wurde dies durch die enge Zusammenarbeit mehrerer, eigentlich konkurrierender Application-Server-Hersteller, die allesamt erkannt haben, dass die Evolution im Java-EE-Standard deutlich zu langsam ist, um mit den schnellen Entwicklungen im Umfeld von Microservices mithalten zu können. Gleichzeitig wünscht die Community aber eine größtmögliche Unabhängigkeit von einzelnen Herstellern und proprietären Lösungen.

Die ersten drei Versionen von MicroProfile haben gezeigt, wie durch eine sinnvolle Kombination etablierter Java-EE-APIs und neuer innovativer Microservices-APIs in kürzester Zeit ein echter Mehrwert geschaffen werden kann. Abzuwarten bleibt, ob sich diese positive Entwicklung auch in der Zukunft mit der bisher an den Tag gelegten Qualität und dem gleichzeitig hohen Tempo weiter realisieren lässt. Die Paneldiskussion zum Thema MicroProfile auf der diesjährigen JavaOne lässt uns diesbezüglich auf jeden Fall positiv in die Zukunft blicken und macht Lust auf mehr.

David Blevins von Tomitribe betonte im Rahmen des Panels, dass er MicroProfile als eine Art Inkubator für neue Ideen rund um das Thema Enterprise Java und Microservices sieht. Es ist somit nicht auszuschließen, dass das eine oder andere API, nachdem es sich in der Community etabliert hat, am Ende auch Einzug in den Standard hält. Auch die vollständige Standardisierung von MicroProfile als weiteres offizielles Java EE Profile wäre denkbar. Die Wahl des Namens kommt sicherlich nicht von ungefähr. Wie genau es weitergehen wird, hängt dabei sicherlich auch von der allgemeinen Zukunft des Java-EE-Standards (EE4J) nach der Übergabe an die Eclipse Foundation ab

In diesem Sinne: Stay tuned!

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

Schreibe einen Kommentar

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