Suche
Interview mit Jochen Mader

Warum Vert.x mehr ist als ein Node.js für die JVM

Hartmut Schlosser
Jochen Mader

Die Application Platform Vert.x ist derzeit eines der heißesten Eisen auf dem Framework-Markt. Das mit dem JAX Innovation Award 2014 ausgezeichnete Projekt wurde auch schon als „Node.js für die JVM“ bezeichnet. Wo die Gemeinsamkeiten mit Node.js beginnen – und vor allem wo sie aufhören –, haben wir mit W-JAX-Speaker Jochen Mader besprochen.

JAXenter: Dein Thema auf der W-JAX ist die Application Platform Vert.x. Kannst du zu Beginn kurz einige Merkmale aufzählen, was Vert.x ausmacht?

Jochen Mader: Vert.x gehört zu einer Gruppe von Frameworks, die stark vom Erlang-Aktorenkonzept beeinflusst sind. Seine wichtigsten Merkmale sind das eventbasierte Programmiermodel, der verteilte EventBus und eine konsequent polyglotte API.

JAXenter: Für welchen Typ von Anwendungen würdest du den Einsatz von Vert.x empfehlen? Kannst du mal ein konkretes Beispielszenario nennen?

Jochen Mader: Vert.x ist ein verteiltes Serverframework und bietet sich vor allem für Anwendungen mit hohen Anforderungen an Skalierbarkeit und Ausfallsicherheit an. Dabei ist alles denkbar von Servern für mobile Spiele bis zu REST/Websocket-Backends.

Derzeit verwenden wir Vert.x in einem Big-Data-Projekt als Empfänger für die zu verarbeitenden Daten und als Speedlayer, um sofort benötigte Berechnungen direkt durchzuführen.

JAXenter: Vert.x wird oft auch als Node.js für die JVM bezeichnet. Wo liegen die Gemeinsamkeiten, wo die Unterschiede?

Jochen Mader: Der Vergleich ist verlockend und hat mit Sicherheit bei vielen Entwicklern, mich eingeschlossen, das Interesse an Vert.x überhaupt erst geweckt. Beide setzen auf non-blocking I/O mit einer eventbasierten, asynchronen API, was die Ähnlichkeiten in ihrem Aufbau erklärt. Außerdem bieten sie jeweils eine gut durchdachte Modularisierung und einen ansehnlichen Pool an verfügbaren Modulen.

Hier enden die Gemeinsamkeiten aber auch schon.

Im Gegensatz zu Node.js, das auf der V8-JavaScript-Runtime aufsetzt, ist Vert.x ein polyglottes Framework, welches eine Vielzahl von JVM-Sprachen wie Scala, Python, Ruby, JavaScript … direkt unterstützt.

Noch viel wichtiger ist aber der verteilte EventBus. Hierzu muss man sich noch einmal ins Gedächtnis rufen, dass Vert.x ein eventbasiertes Framework ist. An die Stelle von synchronen Serviceaufrufen tritt hier das Schicken von Events und das Registrieren von Handlern für die asynchrone Antwort. Durch den verteilten EventBus spielt es keine Rolle mehr, ob das Event innerhalb der gleichen VM oder auf einen benachbarten Knoten ausgeliefert wird.

JAXenter: Welche Rolle spielt Hazelcast bei Vert.x?

Jochen Mader: Hazelcast bildet den Unterbau für die gesamte Cluster-Funktionalität von Vert.x. Funktionen wie Failover, Discovery von anderen Vert.x-Knoten und der EventBus sind alle darauf umgesetzt worden.

Meiner Meinung nach hat Hazelcast einen gewichtigen Anteil am Erfolg von Vert.x.

JAXenter: Im Frühjahr hat Vert.x ja den JAX Innovation Award gewonnen. Aus deiner Sicht verdient?

Jochen Mader: Auf jeden Fall. Die Verbindung von Node.js-Konzepten mit dem EventBus ist sehr gut gelungen und bietet viele Möglichkeiten, die man in anderen Frameworks nur mit viel Zusatzaufwand bekommt. Und dann kann man auch noch frei zwischen Programmiersprache und Buildsystem wählen. Was will man mehr?

JAXenter: Was hat sich in den letzten Monaten getan bei Vert.x?

Jochen Mader: Neben vielen Detailverbesserungen wären da vor allem die Aufnahme der Scala- und Clojure-Sprach-Module in den Core und die Möglichkeit, FatJars zu erzeugen.

Der Hauptfokus liegt aber derzeit auf der Entwicklung von Vert.x 3:

  • Umbau des Modulsystems
  • Eigene Codecs für den EventBus
  • Generierung von Sprachmodulen

JAXenter: Und was wirst du selbst auf der W-JAX mit Vert.x anstellen?

Jochen Mader: Ich möchte Vert.x und seine Clusterfähigkeiten detailiert vorstellen. Dabei werden mir ein Raspberry-Pi-Cluster und mein Mindstorms-Roboter assistieren. Das Ganze wird von einem Ausblick auf Vert.x 3 abgerundet.  

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

Jochen Mader ist Lead IT Consultant bei der codecentric AG wo er in den Bereichen Big Data und Agile Software Factory tätig ist. Neben seiner Haupttätigkeit ist er regelmässiger Autor von Fachartikeln und auf verschiedenen Konferenzen als Speaker anzutreffen.

W-JAX-Session (4. November 2014 – 12:00 bis 13:00): Vert.x for World Domination

Vert.x ist ein auf Netty 4 und Hazelcast aufbauendes Framework für skalierbare, fehlertolerante, Event-getriebene Netzwerkanwendungen. Anhand des Beispiels „Skalierbare Weltherschaft“ möchte ich zeigen, wie Vert.x sich als Basis einer entsprechenden Infrastruktur geradezu aufdrängt. Themen wie Modularisierung, Concurrency, Clustering und Ausfallsicherheit werde ich anhand eines Raspberry-Pi-Clusters samt LEGO-Mindstorms-Roboter demonstrieren.

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Hartmut Schlosser ist Redakteur und Online-Koordinator bei Software & Support Media. Seine Spezialgebiete liegen bei Java-Enterprise-Technologien, JavaFX, Eclipse und DevOps. Vor seiner Tätigkeit bei S & S Media studierte er Musik, Informatik, französische Philologie und Ethnologie.
Kommentare

Schreibe einen Kommentar

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