Integration moderner Webtechnologien

Stacks, kein Stückwerk: Der Web Architecture Day auf der W-JAX

Diana Kupfer

Vert.x, Netty, WebSocket, ROCA und MEAN Stack – das waren die Themen des Web Architecture Days auf der W-JAX. Engagierte Speaker und randvolle Sessions kennzeichneten diesen Special Day. Es ist der Nachfolger des New School Web Day der letzten W-JAX, der in diesem Jahr allerdings weniger einzelne Technologien als deren Zusammenspiel in den Fokus rückte. Web Architecture eben.

Vor etwa einem Jahr hatte noch gut ein Drittel der Teilnehmer eines JAXenter-Quickvotes angegeben, Vert.x nicht zu kennen. Das dürfte sich mittlerweile geändert haben. Zwar ist es noch immer gängig – und notwendig –, die Web-Technologie dem besseren Verständnis wegen als „JVM-Alternative zu Node.js“ zu paraphrasieren, wie Lars Röwekamp und Matthias Weßendorf dies ebenfalls vor einem Jahr in einem JAXenter-Artikel taten (zum Vergleich: Für Vert.x gibt es derzeit 80 Module, für Node.js etwa 45 000).  Auch die Community um das jüngere Projekt ist noch verhältnismäßig klein. Dennoch: In Sachen Popularität hat die polyglotte Plattform zur Programmierung asynchroner I/O-Anwendungen gegenüber Node.js ein wenig Boden gutgemacht.

Vert.x zeichnet sich durch ein Aktoren-ähnliches Concurrency Model aus. Der verteilte und dadurch hoch skalierbare Event Bus, der die serverseitigen Komponenten verbindet,  wird von Vert.x-Entwicklern gern als „Nervensystem“ der Plattform bezeichnet. Vert.x unterstützt neben Java auch JavaScript, CoffeeScript, Ruby, Python, und Groovy. Auch Scala– und Clojure-Implementierungen sind in Arbeit. Während Node.js die Google V8 JavaScript Engine zur Ausführung verwendet, kommt bei Vert.x die Java-Runtime zum Einsatz.

Im vergangenen Jahr hat Vert.x mächtige Fortschritte gemacht: Im Juli erschien die zweite Major-Version, letzte Woche wurde der erste Meilenstein der Version 2.1 erreicht – und das, obwohl Anfang des Jahres noch ein Umzug ins Haus stand: Nachdem der Hauptentwickler Tim Fox von VMware zu Red Hat gewechselt war, wurde Vert.x Anfang des Jahres zur Eclipse Foundation migriert.

Nichts lag also näher, als Vert.x auf dem Web Architecture Day, einem (W-)JAX-Panel, das vor einem Jahr als „New School Web Day“ ins Leben gerufen wurde, erneut eine Session zu widmen. Die Präsentatoren waren in diesem Jahr Peter Roßbach und Philipp Tarasiewicz. Wegen des großen Interesses werden wir morgen einen Videomitschnitt des Vortrags hier auf JAXenter zur Verfügung stellen.

Zu den verwandten Technologien, die Eingang in Vert.x fanden, gehört auch Netty, ein Framework zur Erstellung von nicht-blockierenden (NIO-)Netzwerkapplikationen. Der Konnex zwischen Vert.x und Netty macht sich auch im Entwicklerpersonal bemerkbar: Norman Maurer, der Core-Committer von Netty, ist mittlerweile auch am Vert.x-Projekt beteiligt. In diesem Jahr stellte Maurer zum zweiten Mal in Folge Netty auf einer W-JAX vor.

Eine weitere Webtechnologie der neueren Generation ist WebSocket. WebSocket kann, was das Urgestein der Webstandards HTTP nicht kann: Das Protokoll lässt Client und Server Nachrichten austauschen, ohne dass diese sich an den Anfrage-Antwort-Zyklus des HTTP halten müssen. Vor zwei Jahren fertiggestellt, findet der WebSocket-Standard RFC 6455 heute bereits in einer Reihe von Projekten Anwendung. In seinem Vortrag gab der schwedische Entwickler Daniel Bevenius (Red Hat) WebSocket-Newbies einen Einstieg in die Arbeit mit dem Protokoll sowie in mögliche Einsatzszenarien. Bidirektionale Kommunikation ist gewissermaßen Bevenius’ täglich Brot: Er ist momentan an Red Hats Mobile-Projekt AeroGear beteiligt. Darüber informierte er uns im Vorfeld der W-JAX in einem Interview.

Integration, keine Inseln

Die letzten beiden Sessions des Special Days erweiterten den Fokus auf neuere Webtechnologien: Till Schulte-Coerne und Stefan Tilkov stellten das Konzept der Resource-oriented Client Architecture (ROCA) vor, eine Art Manifest, das für die Server- und die Clientseite jeweils einen Katalog an Empfehlungen enthält. Die Verfasser des ROCA-Manifests machen sich für eine RESTful Server-Seite stark – und eine Client-Seite, die nach dem Progressive Enhancement-Prinzip aufgebaut ist. Client- und Serverlogik sollen demnach möglichst unabhängig voneinander sein, um Fehlerwiederholungen zu vermeiden, aber einander komplementär ergänzen. Der Clou ist: Hält man sich an die dort formulierten Prinzipien, kann man die Möglichkeiten einzelner Webtechnologien optimal ausschöpfen, ohne konventionelle Webarchitekturprinzipien notwendigerweise aufgeben zu müssen. Das zumindest verspricht Tilkov. „Es ist leichter, mit dem Web als gegen das Web zu kämpfen“, so der Speaker, dessen Talk den Raum bis auf den letzten (Steh-!)Platz füllte.

Der MEAN-Stack – gemeint ist eine Kombination aus MongoDB, Express, AngularJS und Node.js – war Thema des finalen Talks von Marco Rico-Gomez. Die Serverseite (Node.js, Express) enthält nur die Business-, das Frontend (Angular.js) nur die UI-Logik. Vorteile dieses Stacks sind u. a., dass man lediglich eine Programmiersprache (JavaScript) für Server und Client benötigt, sich Schemamigration erspart und eine ereignisgesteuerte Architektur mit nicht-blockierendem I/O zur Verfügung hat, so der Referent.

Zu Beginn des Panels charakterisierte sich Philipp Tarasiewicz selbst als „Full-Stack-Mensch“. Damit war er am Ende des Tages nicht allein: Verglichen mit dem letztjährigen „New School Web Day“ war der Umgang mit den Webtechnologien der jüngeren Generation in diesem Jahr ganzheitlicher. So wurde in den meisten Talks weit über den Tellerrand der eigenen Technologie hinausgeblickt. Kein Wunder, denn mit dem Heranreifen einzelner innovativer Baukästen wie Netty und Vert.x rückt natürlich deren Integration mit kompatiblen Technologien  stärker ins Blickfeld. Mit der Umbenennung des Panels von „New School Web“ in „Web Architecture Day“ wurde diese Entwicklung nachvollzogen.

Geschrieben von
Diana Kupfer
Diana Kupfer
Diana Kupfer war Redakteurin bei S&S Media für die Zeitschriften Java Magazin, Eclipse Magazin und das Portal JAXenter. 
Kommentare

Schreibe einen Kommentar

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