Polyglott mit Vert.x: Eine JVM-Alternative zu Node.js

Support für WebSocket oder auch NoSQL

Neben den verschiedenen, oben genannten Programmiersprachen unterstützt das Framework zusätzlich noch einige weitere, moderne Technologien wie WebSockets, SockJS oder MongoDB. Nachfolgend wird ein einfacher WebSocket-Server in Groovy erstellt:

vertx.createHttpServer().websocketHandler { ws ->
  ws.dataHandler { data -> ws.writeTextFrame(data.toString()) }
}.requestHandler { req ->
  if (req.uri == "/") req.response.sendFile "websocket_app.html"
}.listen(8080)

An dem HttpServer-Objekt, das von der Methode createHttpServer()zurückgeliefert wird, werden zwei Handler-Objekte gesetzt:

  • WebSocketHandler
  • RequestHandler

Der WebSocketHandler verarbeitet die von einem Client ankommenden WebSocket-Nachrichten, die innerhalb des Beispiels direkt zurückgeschickt werden. Der RequestHandler hingegen übernimmt die Verarbeitung von normalen HTTP-Anfragen. Das Beispiel liefert eine HTML-Datei an den Client/Browser aus.

Fazit und Ausblick

Vert.x stellt ein interessantes Framework dar, mit dem Entwickler recht einfach asynchrone, nichtblockierende Anwendungen schreiben können. Es unterscheidet sich deutlich vom traditionellen Programmiermodell der Java-EE-Plattform. Generell ist dieser Ansatz, gerade auch durch die Unterstützung mehrerer Programmiersprachen, äußerst interessant. In größeren Teams kann so ein Framework von Entwicklern mit völlig unterschiedlichen Kenntnissen ganzheitlich genutzt werden. An einigen Stellen ist die Verwendung von Vert.x allerdings noch nicht hundertprozentig optimiert – ähnlich wie es vor ein paar Monaten auch noch bei Node.js der Fall war. Beispielsweise ist der Zugriff auf blockierende Datenbanken (JDBC) derzeit nicht innerhalb des Frameworks durch ein eigenes Modul möglich. Anwender müssen den entsprechenden Zugriffscode in ein so genanntes „Worker Verticle“ auslagern, das dann im Hintergrund ausgeführt wird.

Das Experimentieren mit Vert.x macht Spaß, und es kann nur empfohlen werden, sich mit dem Framework zu beschäftigen. Einen schnellen und leichten Einstieg bieten die verschiedenen Online-Tutorials [4].

Lars Röwekamp ist Geschäftsführer der open knowledge GmbH und berät seit mehr als zehn Jahren Kunden in internationalen Projekten rund um das Thema Enterprise Computing (Twitter: @mobileLarson).

Matthias Weßendorf arbeitet für die Firma Kaazing. Dort beschäftigt er sich mit WebSocket, HTML5 und weiteren Themen rund um das Next Generation Web. Er bloggt regelmäßig auf http://matthiaswessendorf.wordpress.com (Twitter: @mwessendorf).

Kommentare

Schreibe einen Kommentar

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