Wartbare Webanwendungen in reinem Java

Rich Web Applications mit Errai


JBoss Errai ist ein umfassendes Open-Source-Framework zur Entwicklung von Webanwendungen und ermöglicht es, etablierte serverseitige Programmiermodelle am Client zu verwenden. Der unmittelbare Vorteil liegt dabei in der Wiederverwendbarkeit des serverseitigen Codes für die Cliententwicklung. Web­browser haben Zugang zu mehr Rechenleistung als jemals zuvor. Darüber hinaus stellen moderne JavaScript-Engines eine konsistente und überaus performante Laufzeitumgebung zur Verfügung. Errai zielt darauf ab, genau diese Vorteile in erhöhte Entwicklungsproduktivität umzumünzen.

Zu Beginn sollte die kritische Frage gestellt werden, ob das Java-Ökosystem überhaupt ein weiteres Webframework verträgt. Der Sättigungspunkt dafür ist vermutlich längst erreicht. Es ist daher wichtig festzuhalten, dass Errai kein Webframework im traditionellen Sinn ist. In Errai wird der Webbrowser nicht als individuelle Einheit zur Darstellung der Benutzerschnittstelle gesehen, sondern als Laufzeitumgebung für Anwendungslogik. In den letzten Jahren konnte man einen Rückgang von Kompatibilitätsproblemen und eine stetige Verbesserung der JavaScript-Ausführungsgeschwindigkeit in allen gängigen Webbrowsern beobachten. Errai macht sich diese Tatsache zunutze und bringt etablierte serverseitige Java-Programmiermodelle in die Cliententwicklung. Dabei soll nicht Java im Webbrowser ausgeführt, sondern es sollen ausgewählte Teile der Anwendung als JavaScript am Client verfügbar gemacht werden. Errai nutzt dafür den Java-nach-JavaScript-Compiler des Google Web Toolkits (GWT) [1].

Der Vorteil dieses Ansatzes ist, dass es nun fast keine Rolle mehr spielt, ob Quellcode für den Server oder den Client entwickelt wird. Serverseitige Klassen können am Client wiederverwendet werden und umgekehrt. Ein gutes Beispiel dafür sind Klassen des Geschäftsmodells inklusive Validierungslogik. In den folgenden Abschnitten werden die zentralen Features des Errai-Frameworks näher erläutert und die Vorteile genauer herausgearbeitet.

CDI im Webbrowser

Context and Dependency Injection (CDI) ist ein Java-EE-Standard (JSR-299), der unter anderem Dependency Injection, typsicheren Nachrichtenaustausch und den Lebenszyklus von Komponenten beschreibt [2]. Errai ermöglicht die Verwendung eines ständig wachsenden Teils dieser Spezifikation in clientseitigem Code. In den Listings 1 bis 3 ist ein Beispiel zu sehen, in dem Nachrichten (Events) zwischen Client und Server ausgetauscht werden, um die Registrierung neuer User in einem si...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang