Server-Side-Push Support
Die Integration von Ajax innerhalb einer Web-UI-Bibliothek ist schon lange ein alter Hut. Der neue Trend für ein noch besseres und interaktiveres UI heißt heute Comet – oder auch Server-Side-Push. Ein nicht zu unterschätzendes Problem stellen allerdings die aktuell verfügbaren Server-APIs dar. Bis zur Fertigstellung (und Verbreitung) von Servlet 3.0 gibt es nur proprietäre Lösungen der verschiedenen JavaEE-Container. Das PrimeFaces-Projekt löst dieses Problem, indem es für den Support von Comet das freie Atmosphere-Framework von SUN einsetzt. Atmosphere bietet ein einfaches API an, dessen Implementierung auf die unterschiedlichen Container eingeht. Das hat den Vorteil, dass eine Atmosphere-basierte Webanwendung auch skaliert. Soweit die Theorie. In der Praxis hat das Atmosphere-Framework allerdings noch einige Mängel. Unter diesem Aspekt ist der Server-Side-Push Support von PrimeFaces eher als eine nette Spielerei zu betrachten.
Fazit
Kurz und knapp kann man sagen: "Die Bibliothek überzeugt". Die Komponenten funktionieren einwandfrei und auch die Integration mit anderen Frameworks (z. B. Seam) verläuft problemlos. Die Dokumentation ist für ein Open-Source-Projekt ebenfalls erstaunlich gut. Die Mächtigkeit von PrimeFaces wird durch die geschickte Integration beliebter Open-Source-Frameworks, wie jQuery oder Guice, sichergestellt. Überraschend bei der Qualität: Aktuell wird das Framework lediglich von einer Person entwickelt – aber die Community wächst, so besteht Hoffung für den langfristigen Erfolg des Projekts, da die Qualität eines Open-Source-Frameworks grundsätzlich von der Motivation vieler Entwickler abhängt.
Matthias Weßendorf arbeitet für die Oracle an einer Server-Side-Push-Lösung für ADF Faces. Er ist PMC Chair von Apache MyFaces. Matthias blogt regelmäßig auf http://matthiaswessendorf.wordpress.com (Twitter: @mwessendorf).
Links & Literatur
- http://primefaces.prime.com.tr/en/
- http://jquery.com/
- http://developer.yahoo.com/yui/
- http://code.google.com/p/google-guice/
- https://atmosphere.dev.java.net/
- http://primefaces.prime.com.tr/docs/introducing_primefaces_en.pdf




