Atmosphere 2.0 ist da: WebSockets für alle

Hartmut Schlosser

Das asynchrone Cross-Browser-Framework Atmosphere ist in der Version 2.0 erschienen. Fast genau ein Jahr haben die Entwickler um den ehemaligen Sun-Veteranen Jeanfrançois Arcand (Verfasser beispielsweise des GlassFish Micro Kernels) gebraucht, um den Nachfolger des viel beachteten Atmosphere 1.0 Releases abzuschließen. Worum geht es bei Atmosphere? 

Mit dem „Realtime-Client-Server-Framework für die JVM“ lassen sich portierbare Anwendungen in Groovy, Scala und Java schreiben. Neben einer JavaScript-Komponente enthält Atmosphere mehrere Serverkomponenten, die die wichtigsten Java-Webserver unterstützen. Ziel ist es, die Entwicklung von Anwendungen dadurch zu erleichtern, dass das Framework selbstständig und codeunabhängig den besten Kommunikationskanal zwischen Client und Server findet.

Die Besonderheit von Atmosphere ist der bereitgestellte Fallback-Mechanismus: Wird beispielsweise WebSocket im Browser bzw. Server nicht unterstützt, stellt das Framework selbstständig auf HTTP um. Ein Beispiel: Mit dem Internet Explorer 6, 7, 8 und 9 läuft eine Atmosphere-Anwendung problemlos mit HTTP; im Zusammenspiel mit dem Internet Explorer 10 wird auf WebSocket umgestellt.

In der Version 2.0 wurde generell an der Performance und einem verbesserten Cache gearbeitet. Vor allem der WebSocket-Fallback soll zügiger vonstatten gehen. Neu unterstützt werden der Netty-I/O-Server, das Play! Framework und Vert.x. Nativen Support gibt es ohnehin schon für eine Unmenge an Frameworks, darunter Wicket, Grails, Reactor, GWT, Jersey, Scalatra, Vaadin, Apache CFX, Akka, Cometd, Socket.IO, Hazelcast und Redis.

Nichts zu wünschen übrig lässt auch die Liste der angeschlossenen Server: Apache Tomcat 5 bis 8, Jetty 6 bis 9.1, GlassFish 2 bis 4, Resin 3 und 4, JBoss 5 bis Wildfly, WebLogic 10 und 12, WebSphere 7, etc. Insbesondere wird WebSockets-Support für JBoss 7.2.x und Wildflys neuen Servlet Container Undertow geboten.

Atmosphere 2.0 kommt mit einem reinen JavaScript Client, der JQuery und Node.js mit ins Boot holt. Der neue JVM Client wAsync bindet Android mit ein. Eingeführt wurden zudem Service-Annotationen wie @Ready oder @Disconnect, die sich an Spring oder Guice delegieren lassen.

Jeanfrançois Arcand spricht auf dem Projektblog von einem Atmosphere Framework Stack, der aus den folgenden Komponenten besteht:

  • runtime: Server-seitige Komponenten für Servlet-basierte Frameworks.
  • javascript: Client-seitige Library für Atmosphere
  • wAsync: Java Client-seitige Library für Atmosphere
  • NettoSphere: Server-Komponente auf Basis des Netty Frameworks
  • VertoSphere: Server-Komponente auf Basis des Vert.x Frameworks
  • Playtosphere: Server-Komponente auf Basis des Play! Frameworks

 Quelle: https://github.com/Atmosphere/atmosphere

Eine schöne Einleitung hat Arcand übrigens hier auf JAXenter geschrieben: WebSocket-Portabilität auf der JVM. Die Neuerungen in Atmosphere 2.0 werden auf dem Projekt-Blog beschrieben, und natürlich ermöglicht das Change Log den Gesamtüberblick über die gefixten Issues.

Atmosphere wird auf GitHub entwickelt und vom Unternehmen Async-IO.org gesponsort. Mit Spannung wird zu beobachten sein, ob Atmosphere den Sprung in den Java-Mainstream schafft. Zumindest lässt sich feststellen, dass die WebSocket-Technologie in der Java-Welt immer mehr zum Thema wird – etwa durch das Java API for WebSocket (JSR 356) aus Java EE 7, das – wie könnte es anders sein – natürlich auch von Atmosphere unterstützt wird.

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.