Interview mit Anil Gaur von Oracle, Teil 2

Java EE 7 löst die realen Probleme der Entwickler

Im zweiten Teil des Themen-Interviews mit Anil Gaur geht es um HTML5, JSON und die Concurrency Utilities in Java EE 7. Außerdem nimmt der Vice President Software Development bei Oracle Stellung zur Verschiebung der Cloud-Spezifikationen und dem Ausfall des JCache APIs. 

JAXenter: HTML5 ist eines der Hauptthemen für Java EE 7. Weshalb war euch das so wichtig?

Anil Gaur: HTML5 wurde unter Entwicklern in den letzten Jahren immer populärer. Es ist auf dem Client mittlerweile ein Schlüssel-Standard, um Anwendungen mit einer dynamischen User Experience auszustatten. Diese Entwicklung wird signifikant auch die Nachfrage an Services erhöhen, die Informationen für diese dynamischen User Interfaces bereit stellen. Servlet 3.1 NIO, asynchrone Web-Services mit JAX-RS 2.0, WebSockets und zu einem gewissen Grad sogar die Concurrency Utilities liefern die Skalierbarkeit und die Kommunikationskanäle für Java-EE-Entwickler, um diese informationshungrigen Clients zufrieden zu stellen.

JAXenter: Ein weiterer neuer Web-Standard in Java EE 7 ist JSON. Mit JSON konnte man ja auch schon früher arbeiten – weshalb ist also die Integration in die Java-EE-7-Plattform erfolgt?

Anil Gaur: JSON ist ein Standard-Datenformat für den leichtgewichtigen Datenaustausch und quasi die Lingua Franca für Webanwendungen. Typischerweise beinhalten Java-EE-Anwendungen Drittpartei-Bibliotheken, um mit JSON zu arbeiten. Die Integration der JSON Processing APIs in die Plattform erlaubt es uns nun aber, die Abhängigkeiten zu diesen zusätzlichen Libraries zu vermeiden. Da die JSON APIs nun in der Plattform selbst verankert sind, werden die Anwendung leichtgewichtiger und nutzen zudem standardisierte APIs.

JAXenter: Wie schätzt du die Mitwirkung der Experten-Gruppen bei der Entwicklung von Java EE 7 ein?

Anil Gaur: Die Beiträge der Experten-Gruppen waren wichtig und signifikant. Alle Experten-Gruppen operierten in einer transparenten Art und Weise gemäß dem JCP-2.9-Dokument. Dieses fordert, dass Experten-Gruppen-Diskussionen in einem öffentlichen Forum geführt werden, dass ein öffentlicher Issue Tracker genutzt wird und dass Arbeitsentwürfe von Spezifikationen mit der Community geteilt werden. All dies erlaubte es den Expertengruppen, ein viel weiter gespanntes Netz von Experten zu erreichen, was zu einer besseren Qualität und einer breiteren Akzeptanz der Spezifikationen führte, sogar noch bevor der finale Status erreicht wurde.

JAXenter: Welche anderen JSRs gehören für dich zu den Highlights?

Anil Gaur: Ich halte die Concurrency Utilities für Java EE für eine signifikante Ergänzung der Java-EE-7-Plattform. Wie oben erwähnt, verbietet Java EE als Managed Umgebung das Erzeugen eigener Threads. Mit den Concurrency Utilities lassen sich nun standardisierte Java SE Concurrency Design Pattern in Java EE einsetzen. Beispielsweise kann ein ManagedExecutorService genutzt werden, um einen gemanagten ExecutorService zu erzeugen, bei dem User-Aufgaben als „Runnable“ oder „Callable“ definiert werden. Die Threads werden dann durch die Java EE Runtime und JNDI verwaltet, Class-Loading, Sicherheit und anderer Kontextinformationen sind in den erzeugten Threads verfügbar.

JAXenter: Welche großen Hürden mussten während der Java-EE-7-Spezifizierung genommen werden?

Anil Gaur: Es gab eigentlich keine Hürden, die speziell bei diesem Plattform-Release im Weg standen. Sicher: Standardisierung in einer Community voranzutreiben und gleichzeitig eine breite Beteiligung von Anbietern und Individuen zu erreichen, stellt schon eine gewisse Herausforderung dar. Es ist nicht unüblich, dass es in den Expertengruppen zu Meinungsverschiedenheiten über bestimmte Punkte kommt, sodass es einige Zeit dauern kann, bis ein Konsens gefunden wird. Aber letztendlich ist dies auch gut für die Plattform. Im vergangenen Sommer mussten wir das Hauptthema von Java EE 7 nochmals neu justieren, da wir merkten, dass viele der für eine Spezifizierung in Erwägung gezogenen Cloud-Technologien noch nicht reif genug für einen Standard waren. Auf Basis des ständigen Feedbacks von Java-EE-Anbietern und der Community haben wir beschlossen, den Fokus von der Cloud auf HTML5 und die Entwicklerproduktivität zu legen, was sich schließlich als eine gute Entscheidung erwiesen hat.

JAXenter: War es für dich eine Enttäuschung, dass es JCache nicht ins Release geschafft hat?

Anil Gaur: Java EE 7 hat auch ohne JCache viel zu bieten. Wir arbeiten daran, die JCache APIs noch vor dem Java EE 8 Release zu finalisieren, und wir erwarten, dass es ein inkrementellen Fortschritt der Plattform geben wird, sodass Entwickler auch neue APIs zusammen mit Java EE 7 nutzen können.

JAXenter: Wie du erwähnt hast wurde der Cloud-Support für Java EE 7 verschoben. Hat man damit nicht eine Chance verpasst?

Anil Gaur: Es gab einen klaren Konsens zwischen der Experten-Gruppe, der Java EE Community, den Partner und sonst wo, den Cloud Support zu verschieben. Momentan gibt es noch immer keine klaren Standards im Cloud-Bereich, was eine Integration in die Java Plattform umso schwieriger macht. Die Komponenten, die in der Plattform verankert und aktualisiert werden, haben eine viel weiter reichende Relevanz für Entwickler, um die Probleme des Alltags zu lösen. Angesichts der aktuellen Landschaft der PaaS-Technolopgien und die Möglichkeit, der Plattform nützliche neue Funktionalität hinzuzufügen, glauben wir, dass wir die richtige Entscheidung getroffen haben.

JAXenter: Seit dem letzten Release sind ja drei Jahre vergangen. Erwartest du, dass die Java EE 7 Plattform schnell angenommen wird?

Anil Gaur: Während unseren Initiativen zur frühen Beteiligung an Java EE 7, wie beispielsweise Adopt-a-JSR oder FishCAT, haben wir ein riesiges Interesse an den neuen und auch an den aktualisierten Plattform-Technologin gesehen. Alle Technologien in Java EE 7 lösen reale Probleme, und wir sehen jetzt schon eine breite Annahme der Lösungen.

JAXenter: Was möchtest du unseren Lesern abschließend sagen: Was soll die Community vom Java EE 7 Release mitnehmen?

Anil Gaur: Die Java-EE-Plattform ist ein Community-getriebener Enterprise Standard. Sie stellt einen kohärenten und integrierten Technologie-Stack zur Verfügung, um Real-World-Probleme zu lösen. Mit den aktuell 18 Java-EE-6-konformen Application Servern steht der Community eine große Auswahl an Deployment-Lösungen nach dem Motto „Create-Once-Deploy-Anywhere“ zur Verfügung. GlassFish ist der erste Java-EE-7-konforme Applikationsserver. Red Hat hat bereits Pläne bekannt gegeben, ebenfalls die Java-EE-7-Unterstützung anzubieten, und wir erwarten, dass andere Anbieter folgen werden. Ich möchte auch die Community dazu ermutigen, das Java EE 7 SDK herunterzuladen, auszuprobieren: oracle.com/javaee und Feedback abzugeben.

Und Last-but-not-Least:

„Oracle is committed towards Making the Future Java.“ 


JAXenter: Vielen Dank für dieses Gespräch!

Kommentare

Schreibe einen Kommentar

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