JAXenter: Lange musste die Community auf eine Rundumereuerung des Java Message Service (JMS) warten. Jetzt ist JMS 2.0 endlich in Java EE 7 enthalten. Weshalb war JMS 1.1 nicht mehr zeitgemäß?

Thilo Frotscher: Die letzte Aktualisierung von JMS stammt aus dem Jahre 2002. Das ist eigentlich unglaublich, wenn man sich vor Augen führt, welche Entwicklung Java sowohl als Sprache, aber auch als Plattform, in der Zwischenzeit genommen hat. Die Sprache wurde beispielsweise um Generics, Enumerations und Annotationen erweitert. In der Java-EE-Plattform gab es umfassende Veränderungen, um Entwicklern das Leben einfacher zu machen, wie Convention over Configuration, Dependency Injection usw. Von all dem hatte JMS bislang nicht profitiert.

Wenn man eine Anwendung in Java EE 6 entwickelt und die ganzen aktuellen APIs verwendet, dann aber gleichzeitig für einen Teil dieser Anwendung auch JMS 1.1 benötigt, fällt der Unterschied schon recht deutlich auf. Es wirkt im Vergleich zu den anderen, über die Jahre schrittweise modernisierten APIs ein wenig aus der Zeit gefallen. Insbesondere ist aus heutiger Sicht unglaublich viel Code notwendig, nur um beispielsweise eine einzige Nachricht zu versenden. Das wird mit JMS 2.0 nun anders werden. Der notwendige Code wird sich stark reduzieren, in bestimmten Fällen kann sogar eine einzige Zeile ausreichend sein. Und diese Vereinfachung der API war auch das Hauptziel von JMS 2.0 – wohl gemerkt bei Erhaltung der vollen Rückwärtskompatibilität. Neue Features gibt es dagegen nur recht wenige.

JAXenter: Wie bewertest du die Entscheidung, die angestrebten PaaS-Specs erst einmal aus Java EE 7 zu verbannen?

Thilo Frotscher: Ich denke, das war eine sehr gute Entscheidung. Wenn man einen API-Standard einführen möchte, gibt es eine Reihe wichtiger Aspekte zu bedenken. Der Standard sollte natürlich zunächst einmal die wichtigsten Anforderungen derjenigen berücksichtigen, die ihn hinterher verwenden müssen oder wollen. Er sollte zudem praxistauglich sein und sich daher idealerweise an Lösungen anlehnen, die sich in der Praxis bereits bewährt haben. Zwar gibt es natürlich eine ganze Reihe von Cloud-Lösungen, anhand derer man sich orientieren könnte, aber ich denke, für die Beantwortung der genannten Fragestellungen war die Zeit ganz einfach noch nicht reif. Aus meiner Sicht ist es daher folgerichtig, die ganze PaaS-Thematik auf ein späteres JavaEE-Release zu verschieben, gleichzeitig aber die restliche Plattform mit dem Release 7 konsequent weiter zu entwickeln.

Das ist allemal besser als etwas zu standardisieren, das sich dann hinterher
als unreif oder unbrauchbar herausstellt. Und wenn man sich die Reaktionen in
der Community anschaut, dann scheint es da nach meinem Eindruck auch überwiegend Zustimmung zu geben.

JAXenter: Welche Highlights bietet Java EE 7 aus deiner Sicht sonst noch?

Thilo Frotscher: Ich persönlich freue mich – neben JMS 2.0 und JAX-RS 2.0 – über die geplante Unterstützung für WebSockets. Darüber hinaus denke ich, dass der Support für JSON und Batch Jobs sehr zu begrüßen ist. Beides war längst überfällig für eine so wichtige und verbreitete Plattform wie Java EE.

JAXenter: Vielen Dank für dieses Interview!

Thilo Frotscher ist freiberuflicher Softwarearchitekt und Trainer. Als Experte für Enterprise Java, Services und Integration unterstützt er seine Kunden durch die Mitarbeit in Projekten und die Durchführung von Schulungen oder Reviews. Thilo ist (Ko-)Autor der Bücher „Java Web Services mit Apache Axis“, „Web Services mit Apache Axis2“ und „SOA-Expertenwissen“ sowie zahlreicher Artikel für verschiedene Fachzeitschriften. Darüber hinaus wirkt er als Fachgutachter für Publikationen in den Bereichen Java EE und Integration. Thilo ist regelmäßig auf internationalen Fachkonferenzen als Referent anzutreffen. (http://www.frotscher.com)
Kommentare

Schreibe einen Kommentar

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