"JSF ist DAS UI-Framework im JavaEE-Umfeld"

Claudia Fröhling

Dieses Jahr widmet sich die JAX mit gleich zwei Tagen dem Thema Java Web Development, special JavaServer Faces. Andy Bosch, Autor des Buches „Portlets und JavaServer Faces“, wird mittwochs den JSF Day moderieren, während Matthias Weßendorf am Freitag zu JSF Extreme einlädt. Wir sprachen mit beiden über das Thema JSF und was uns auf den Tagen erwarten wird.

JAXenter: Es ist stiller um JSF geworden, im Bereich der Java-Webentwicklung geben hippe Frameworks wie Grails, (J)Ruby on Rails oder Wicket derzeit den Ton an. Wie hält die JSF-Community dagegen?

Matthias Weßendorf: Findet ihr? Ich finde, dass gerade bei JSF einiges passiert: Die ganzen Bibliotheken stellen gerade auf JSF2.0 um und stellen ihre „Macken“ als Bugs gegen die Spezifikation und die Implementierungen ein. Die JSF EG arbeitet MR-Releases der Spec ein und sammelt Ideen für die Zukunft. Überhaupt ist JSF 2 gut angenommen: Das zeigt, dass dieses Release notwendig war!

Andy Bosch: Wer sagt denn, dass es stiller geworden ist? Ich empfinde es gerade anders herum. Über JSF 2.0 wird sehr viel gesprochen. Es wird meist anerkennend erwähnt, dass viele Schwierigkeiten aus JSF 1.x sehr gut gelöst wurden und JSF 2 jetzt eine sehr mächtige Basis für Webanwendungen bereitstellt. Die Expert Group von JSF 2.0 ist sehr bemüht, den Prozess offen und lebendig zu gestalten. Ich habe persönlich noch nie eine Expert Group erlebt, die mit der Community derart intensiv im Dialog ist. Auch empfinde ich persönlich den ersten Hype um Grails / Rails / Wicket vorüber. Jetzt muss der Markt zeigen, ob diese Frameworks auch von der Masse angenommen werden.

JAXenter: Welche Antworten gibt es aus dem JSF-Lager auf modernste Anforderungen wie Ajax-Unterstützung oder mobile Clients wie z.B. iPhone?

Andy Bosch: Naja, Ajax ist nicht mehr wirklich eine „moderne“ Anforderung. Jedes Webframework muss es quasi out-of-the-box schon mitbringen. JSF hat die Ajax-Funktionalität im Standard bereits festgelegt, so dass auf dieser Basis umfangreiche Komponenten im OpenSource-Bereich entstehen können. Für die Unterstützung anderer Devices oder Ausgabeformate generell ist JSF konzeptionell bereits seit Beginn an dafür ausgelegt. Es gibt die Trennung von UI-Komponente und Renderer. So kann ein Render-Kit ausgetauscht werden, ohne die Funktionalität neu programmieren zu müssen. Wicket z.B. ist hier viel stärker an HTML gebunden als JSF, was hier eine eigene Abstraktion bietet.

Matthias Weßendorf: Ajax würde ich nicht mehr als „modern“ bezeichnen: Es ist ein Muss-Kriterium. JSF 2 hat ein minimales Ajax-API, das weiter ausbaufähig ist. Generell kann man das API gut mit der eigenen JSF-Bibliothek nutzen, so dass „interoperability issues“ in Zukunft weniger werden. Verschwinden werden sie nicht (gänzlich). Ein Grund: Uploads via PPR. JSF 2 weiß nichts über Uploads, aber jede JSF-Bibliothek. Uploads sollen aber innerhalb von JSF 2.x berücksichtig sein.

Zum Thema iPhone/Android wird auch einiges angeboten, von verschiedenen JSF „Tools“: IceFaces, PrimeFaces oder Trinidad. Trinidad hat den Vorteil, dass man auf bewährte TAGs/Komponenten zurückgreifen kann. Das Look-And-Feel wird über ein CSS-Skin angepasst. Ich schreibe eine „mobile“ Seite und liefere sie für iPhone und Android aus: Das Look-And-Feel wird via Runtime angehängt. Das ist sehr schick: Ohne neue Komponenten zu erstellen/benutzen.

JAXenter: Spätestens in diesem Jahr richten sich alle Blicke auf HTML5: welche Auswirkungen wird dies auf JSF haben und wie bereitet man sich ggf darauf vor?

Matthias Weßendorf: Sehr gut. Für Apache MyFaces gibt es (wird es geben) ein „Google Summer of Code“ Projekt, das ein HTML5 RenderKit für JSF2 realisieren wird. Die Gotchas werden wieder in die Spezifikation zurückfließen. Innerhalb der EG gab es kleinere Überlegungen, das eine oder andere Widget zu spezifizieren. Aber… Specs sind langsam… MyFaces wird schon bald erste Ergebnisse liefern können.

JAXenter: Seit letztem Jahr ist das Thema JSF mit zwei Special Days auf der JAX vertreten. Was rechtfertig eurer Meinung nach diesen hohen Stellenwert?

Matthias Weßendorf: Ganz einfach: Es ist die meistverbreitete UI-Technologie im Java-Umfeld. Wachsende Teilnehmerzahlen bei anderen „JSF Events“ unterstreichen diesen Trend.

Andy Bosch: JSF ist das UI-Framework im JavaEE-Umfeld. Es hat seit mehreren Jahren bereits eine ständig steigende Entwickler- und Anwenderzahl. Viele Firmen und Organisationen setzen auf JSF, weil es zum einen ein Standard ist, zum anderen aber auch, weil es funktional mittlerweile sehr ausgereift ist. Ich denke, JSF ist es gelungen, die Vorteile eines Standards mit den Vorteilen einer aktiven und schnell reagierenden Open-Source-Community zu verbinden. Dadurch ist JSF sehr populär geworden, was wiederum ein verstärktes Interesse an JSF hervorruft.

JAXenter: Unter anderem wird es auf der JAX um Comet gehen. Welche Vorteile haben Entwickler von push-Diensten wie Comet?

Andy Bosch: Ich selbst bin mir beim Thema Comet noch unschlüssig, ob ich jubeln soll oder lieber fluchen. Sicherlich, Server-Side Push ermöglicht ein ganz neues Spektrum von Anwendungen und UI-Möglichkeiten als bislang. Schaut man technisch aber etwas genauer hinter die Kulissen, ist das teilweise schon noch eine üble Frickelei von JavaScripten. Von daher würde ich meine Einschätzung momentan mit „optimistisch beobachtend“ beschreiben.

Matthias Weßendorf: Interactive GUIs. Das Web kann nun liefern, was der Desktop schon seit Jahrzehnten kann: Wird im Backend was „verändert“ bekommt der (Web)Client eine Benachrichtigung ohne große Verzögerung. Das ermöglicht die Erstellung von richtig coolen (Web)Anwendungen! Auch hier gibt es bereits JSF Libs, die das Themen angehen: Oracle’s ADF Faces, IceFaces und PrimeFaces. Achja, mit dem steigenden Interesse an WebSockets wird hier eine weitere Optimierung getroffen: Bidirektionale Kommunikation!

JAXenter: Ein Thema auf den JSF Days werden Reporting-Tools sein. Was macht diese so wichtig für die Webentwicklung?

Andy Bosch: Webanwendungen machen heutzutage oftmals mehr, als nur ein paar lustige Apps darzustellen. Komplette Workflows werden über Webinterfaces abgearbeitet, teilweise haben sogar Enterprise-Suiten keine eigenen „Fat-Clients“ mehr. Alles erfolgt nur noch Browserbasiert. Was liegt somit näher, als auch Auswertungen (Reports) online erstellen und analysieren zu können. Bislang hat sich der Anwender immer in zwei Welten bewegen müssen: in der Webanwendung und parallel in verschiedenen Reporting-Tools. Durch die Möglichkeit, beides zu kombinieren, kann der Anwender künftig sehr komfortabel direkt aus seiner Webanwendung die benötigten Berichte erzeugen und ausdrucken.

JAXenter: Das Web Profile ist noch realtiv jung – was bringt es eurer Meinung nach Neues bzw. wie verändert es die Java-Web-Landschaft?

Matthias Weßendorf: Weniger ist mehr! Das Web Profile beinhaltet wichtige Bestandteile, die für die meisten Anwendungen ausreichen. Nicht umsonst laufen bereits heute viele Web-Anwendungen im Tomcat/Jetty ab.

JAXenter: Eine Session wird sich genau mit diesem Thema beschäftigen: Java Web Profile versus Spring Web. Kannst du uns schon einen kurzen Ausblick auf die Lehren geben, die du aus dem Vergleich ziehen wirst?

Matthias Weßendorf: Schlüsselpunkt ist JSF: Es lässt sich mit beiden Welten einfach nutzen, wie auch JPA. Während ich im Web Profile alles habe, was ich brauche, baue ich es mir mit Spring zusammen. Beide Welten haben ihre Vor/Nachteile. Die Session zeigt das WIE mit WELCHER Umgebung und geht auf ein paar Feinheiten der Konstellationen ein.

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

Matthias Weßendorf ist Softwareentwickler bei Oracle. Dort arbeitet er an ADF Faces RichClient, einer Ajax-basierten JSF-Komponenten-Bibliothek. Matthias ist ebenfalls aktives Mitglied der Open-Source-Gemeinschaft, wo er sich überwiegend bei den Apache-Projekten MyFaces und Apache engagiert. Vorher war er als CMS-Entwickler der Pironet NDH AG an der Entwicklung eines next-generation CMS, mit UI-Techniken wie XUL und Ajax, beteiligt.

Andy Bosch ist unabhängiger Berater und Trainer für JavaServer Faces und Portlets. Er ist Autor verschiedener Fachbücher (JavaServer Faces, Portlets und JSF) sowie Betreiber der Plattformen http://www.jsf-forum.de und http://www.jsf-portlets.net. Zudem ist er Mitglied der Expertengruppe des JSR-301 (Portlet Bridge Specification for JavaServer Faces) und Mitglied in SENS (www.SoftwareExperts.de).

Geschrieben von
Claudia Fröhling
Kommentare

Schreibe einen Kommentar

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