JavaServer Faces und Portlets



Ähnliche Dokumente
JSF 2.x in Liferay Portal

Softwareentwicklung mit JAVA EE

JSF im Portal. Werner Eberling Sascha Groß.

Schüler-E-Tutorial für mobile Endgeräte. Ein Folgeprojekt des Netzwerks Informationskompetenz Berlin/Brandenburg mit der HdM

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Intranet/Extranet: Zentrales CMS oder Portal-Lösung

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Team Collaboration im Web 2.0

Java: Vererbung. Teil 3: super()

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

GRS SIGNUM Product-Lifecycle-Management

Was meinen die Leute eigentlich mit: Grexit?

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Was ich als Bürgermeister für Lübbecke tun möchte

Anlegen eines DLRG Accounts

Kommunikations-Management

Skript Pilotphase für Arbeitsgelegenheiten

Java Enterprise Architekturen Willkommen in der Realität

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Microsoft SharePoint 2013 Designer

Aufbau des CariNet 2.0 Was ist CariNet?

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Übungen zur Softwaretechnik

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

So erstellen Sie Ihren Business Avatar

Java Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education

Zusatzmodul Lagerverwaltung

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Struts 2 Das Imperium schlägt zurück?

WLAN Konfiguration. Michael Bukreus Seite 1

Einbinden von iframes in eine Facebook Fan Page

Anforderungen an die HIS

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

white sheep GmbH Unternehmensberatung Schnittstellen Framework

Die Makler System Club FlowFact Edition

Pflichtenheft. CDIX-Roles. Erweiterung des CDIX Berechtigungssystems. Autor : CD Software GmbH. Copyright CD Software GmbH Version:

RESTful Web. Representational State Transfer

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

SMART Newsletter Education Solutions April 2015

InfoPoint vom 9. November 2011

Das Projekt wird durchgeführt von den Bezirksregierungen in Nordrhein- Westfalen in ihrer Funktion als Fachstelle für die öffentlichen Bibliotheken

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand:

Dokumentenmanagement als Dienst (DMS as a Service, DaaS)

Der Schutz von Patientendaten

Idimager ein Bildverwaltungsprogramm-DAM Software

SCHULUNG MIT SYSTEM: E-LEARNING VON RAUM21

Blumen-bienen-Bären Academy. Kurzanleitung für Google Keyword Planer + Google Trends

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Gesetzliche Aufbewahrungspflicht für s

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen.

ACHTUNG: Voraussetzungen für die Nutzung der Funktion s-exposé sind:

Die Invaliden-Versicherung ändert sich

I. Allgemeine Zugangsdaten für den neuen Server: II. Umstellung Ihres Windows Arbeitsplatzrechners

Schluss mit langweiligen Papierexposees! Die Zukunft heißt immodisplay. Vision Displays GmbH Schnackenburgallee 41b Hamburg

Worum geht es in diesem Projekt?

Welchen Weg nimmt Ihr Vermögen. Unsere Leistung zu Ihrer Privaten Vermögensplanung. Wir machen aus Zahlen Werte

Erfolgreiche Webseiten: Zur Notwendigkeit die eigene(n) Zielgruppe(n) zu kennen und zu verstehen!

Moin! Ihr wollt wissen, was wir anders machen als alle anderen? Na dann blättert mal weiter...

Professionelle Seminare im Bereich MS-Office

PIERAU PLANUNG GESELLSCHAFT FÜR UNTERNEHMENSBERATUNG

GSM: Airgap Update. Inhalt. Einleitung

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

GeoPilot (Android) die App

Was ist clevere Altersvorsorge?

Die Bundes-Zentrale für politische Bildung stellt sich vor

Erfassung von Umgebungskontext und Kontextmanagement

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

[SUCHMACHINE DER HELFER IM DATENNETZ]

Workflow, Business Process Management, 4.Teil

IT-Support für den Arbeitsplatz 2.0

Online Newsletter III

Erfahrungen mit Hartz IV- Empfängern

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

1 Einleitung. 1.1 Caching von Webanwendungen Clientseites Caching

Die Wirtschaftskrise aus Sicht der Kinder

Beschreibung des MAP-Tools

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Anleitung für Kunden zum Umgang mit verschlüsselten s von der LASA Brandenburg GmbH

SEO Erfolg mit themenrelevanten Links

BI in der Cloud eine valide Alternative Überblick zum Leistungsspektrum und erste Erfahrungen

Unfallkasse Nord Träger der gesetzlichen Unfallversicherung Körperschaft des öffentlichen Rechts

Transkript:

Portal 301 JSF JavaServer Faces und Portlets - eine Brücke verbindet Welten Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 1 Agenda Überblick Portlets und Portale Was sind Portale? Von Portalen zu Portlets Funktionsweise eines Portlets Überblick JavaServer Faces und Ajax Was ist JSF? Was ist Ajax? UI-Entwicklung mit JSF Kombination von JSF und Portlets (JSR-301) Wo liegt die Herausforderung? Der JSR-301: Portlet Bridge Specification for JSF Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 2 1

Wer bin ich? Name: Andy Bosch Trainer, Coach, Entwickler, Fokus auf JSF und Portlets Mitglied der Expert Group des JSR-301 Betreiber von www.jsf-forum.de und www.jsf-portlets.net Entwicklung mit JSF seit 2004 Entwicklung mit Portlets seit 2005 Entwicklung mit der Kombination JSF/Portlets seit 2006 Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 3 Agenda Überblick Portlets und Portale Was sind Portale? Von Portalen zu Portlets Funktionsweise eines Portlets Überblick JavaServer Faces und Ajax Was ist JSF? Was ist Ajax? UI-Entwicklung mit JSF Kombination von JSF und Portlets (JSR-301) Wo liegt die Herausforderung? Der JSR-301: Portlet Bridge Specification for JSF Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 4 2

Was ist eigentlich ein Portal? Portalbegriff im weiteren Sinne: Ein Portal ist eine Webseite, auf der unterschiedliche Informationen zu einem Themengebiet zusammengefasst sind. z.b. Anglerportal, Zauberer-Portal, Jodel-Portal Ein Portal ist eine zentrale Einstiegsseite in das WWW, oftmals mit redaktionell betreutem Inhalt wie bei Yahoo oder igoogle Ein Portal ist eine Webseite Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 5 igoogle Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 6 3

Was ist eigentlich ein Portal? Portalbegriff im engeren Sinne: Ein Portal ist eine Webapplikation, die mindestens folgende Eigenschaften besitzt: Aggregation von (verschiedenen) Inhalten Einheitliche Präsentation verschiedener Dienste Personalisierung Single Sign On Security Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 7 Was ist eigentlich ein Portal? Portalbegriff im engeren Sinne: Ein Portal ist eine Webapplikation, die mindestens folgende Eigenschaften besitzt: Aggregation von Für (verschiedenen) diese Anforderungen Inhalten Einheitliche Präsentation gibt es Softwarelösungen verschiedener wie Dienste Personalisierung z.b. IBM WebSphere Portal, Single Sign BEA On Portal, JBoss Portal uvm. Security Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 8 4

Von Portalen zu Portlets Ein Portal aggregiert verschiedene Dienste, Services und Inhalte. Dazu wird eine Portalseite in verschiedene Fragmente zerlegt. Ein Fragment ist somit ein Portlet. Portlets sind im Ggs. zu Portalen standardisiert. Im JSR-168 ist die Funktionsweise eine Portlets genau beschrieben. Im aktuellen JSR-286 wurde eine weitere Version des Portletstandards erarbeitet. Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 9 Funktionsweise eines Portlets Ein Portlet bekommt durch den PortletContainer den Trigger, sich darzustellen (Render-Phase) Ausgaben mehrere Portlets einer Portalseite werden durch das Portal aggregiert und als (Html-)Seite ausgegeben. Erfolgt eine Aktion in einem Portlet, wird in diesem einen Portlet eine Action-Phase angestossen. Danach werden alle Portlets neu gerendert. Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 10 5

Lifecycle eines Portlets (JSR-168) Init Render Action Destroy Der JSR-286 (Portlet V2) erweitert diesen Lifecycle. Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 11 Ein triviales Portlet public class HelloWorld extends GenericPortlet { } protected void doview(... ) { PrintWriter writer = response.getwriter(); writer.println( "Hallo neue Portlet Welt" ); writer.println( "<br><br>" ); writer.println( "Hallo Welt!!!" ); writer.println( "<br><br>" ); } Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 12 6

Ein Wort zu Portlet 2.0 Der JSR-286 ( Portlet 2.0 ) wurde im Sommer 2008 veröffentlicht. Es wurden viele notwendige und lange erwartete Funktionen in den Standard mitaufgenommen: Public Render Parameter Portlet Events Resource Serving Portlet Filter Erweitertes Caching u.v.m. Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 13 Fazit Portal-/Portlet-Entwicklung Portale bieten bereits eine Vielzahl von Basisfunktionalitäten, um die sich eine Anwendung nicht mehr kümmern muss. Es gibt Standards für Portlets (JSR-168 und JSR-286) Der Portletstandard ist mittlerweile recht umfangreich. Dennoch ist eine Portlet-Entwicklung direkt an der API sehr aufwendig und wenig komfortabel. Ideal wäre es, die Portlet-Technologie mit einem modernen UI- Framework zu kombinieren Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 14 7

Agenda Überblick Portlets und Portale Was sind Portale? Von Portalen zu Portlets Funktionsweise eines Portlets Überblick JavaServer Faces und Ajax Was ist JSF? Was ist Ajax? UI-Entwicklung mit JSF Kombination von JSF und Portlets (JSR-301) Wo liegt die Herausforderung? Der JSR-301: Portlet Bridge Specification for JSF Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 15 Was ist JavaServer Faces? JavaServer Faces ist ein UI-Framework JavaServer Faces ist komponentenorientiert JavaServer Faces ist ein Standard Für JavaServer Faces existieren mittlerweile eine (fast unüberschaubare) Anzahl von ergänzenden Komponenten, AddOns und Erweiterungen Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 16 8

Was bietet JavaServer Faces? Model-View-Controller Navigationskonzept Bean-Management Eventhandling Datenvalidierung und konvertierung Große Auswahl an (OpenSource-) UI-Komponenten Ajax-Integrationsbibliotheken Templating-Engines Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 17 Ajax Ajax ist streng genommen keine neue Technologie, sondern eine Zusammenfassung vorhandener Techniken wie JavaScript und DHtml Kernstück ist das XmlHttpRequest-Objekt in JavaScript Zentrale Funktionen, die mit Ajax möglich werden sind: Asynchrone Verarbeitung PPR (Partial Page Rendering) Mit Ajax wird ein UI einer Anwendung Web2.0-enabled! Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 18 9

JSF und Ajax Ajax hat zunächst einmal nichts mit JSF zu tun, sondern ist eine eigenständige Technologie Es gibt jedoch Frameworks für JSF, die eine Integration von Ajax in JSF erleichern. Z.B. bei ajax4jsf muss der Anwendungsentwickler keinerlei JavaScript-Code mehr schreiben Viele Komponentenbibliotheken im JSF-Umfeld sind bereits ajaxifiziert und nutzen somit die Vorteile von PPR und asynchroner Verarbeitung. Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 19 Komponentenmarkt Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 20 10

Fazit JSF und Ajax JavaServer Faces bieten einen großen Komponentenmarkt JSF liefert viele Konzepte für die UI-Entwicklung JSF hat sich für die UI-Entwicklung etabliert JSF ist auch ein Standard Ajax läßt sich sehr gut in JSF integrieren. Es gibt Tools und IDE s, um eine JSF-Entwicklung zu unterstützen Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 21 Agenda Überblick Portlets und Portale Was sind Portale? Von Portalen zu Portlets Funktionsweise eines Portlets Überblick JavaServer Faces und Ajax Was ist JSF? Was ist Ajax? UI-Entwicklung mit JSF Kombination von JSF und Portlets (JSR-301) Wo liegt die Herausforderung? Der JSR-301: Portlet Bridge Specification for JSF Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 22 11

Warum soll beides kombiniert werden? Portlets (bzw. die Portlet-API) ist recht basisnah. Trotz des JSR-286 ist eine direkte Verwendung der API nicht gerade komfortabel. Konzepte wie Pageflow, Konvertierung, Validierung, Eventhandling, UI-Komponenten fehlen komplett. Es muss somit die Portlet-Technologie mit einem reichhaltigen UI-Gerüst vermengt werden. Und hier kommt JSF ins Spiel!!! Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 23 JSF + Portlets? Das Problem jedoch ist der Glue-Code. - Beide Technologien müssen integriert werden - Jede Technologie soll ihre ureigene Funktionalität beibehalten - Integrationsaufwände sollen möglichst gering sein Geht das überhaupt? Ja, mit dem JSR-301 Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 24 12

JSR-301: PortletBridge Specification for JavaServer Faces Start im Dezember 2006 Spec Lead: Michael Freedman (Oracle) Ziel ist die Bereitstellung einer standardisierten Bridge, um JSF- Anwendungen im Portlet-Context ausführen zu können. Ziel ist es außerdem, die Handhabung für den Entwickler so einfach wie möglich zu gestalten. Innerhalb des 301 wird es zwei Spezifikationen geben: Eine für JSR-168 + JSF 1.2 und eine für JSR-286 + JSF 1.2 ACHTUNG: JSF1.2 + Portlet 2.0 Eigener JSR JSR-329 Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 25 Aufgaben des JSR-301 Standardisierung einer Bridge-Lösung, nach der sich möglichst alle Bridge- Implementierer richten können Mapping der Lifecycles Einführung eines Bridge Request Scope Bereitstellen eines GenericFacesPortlet u.v.m. Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 26 13

Mapping der Lifecycles: JSF Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 27 Zur Erinnerung: Portlet Lifecycle Init Render Action Destroy Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 28 14

Mapping der Lifecycles: Bridge Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 29 Mapping der Lifecycles: Bridge Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 30 15

Bridge Request Scope JSF geht davon aus, dass der komplette Lebenszyklus in einem Request abgearbeitet wird. Bei Portlets wird die Render- und die Action-Phase in zwei komplett unabhängigen Requests durchgeführt Die Bridge muss dafür sorgen, dass alle notwendigen Informationen für JSF in beiden Requests vorhanden sind. Dazu werden die Attribute der Action-Phase durch die Bridge zwischengespeichert und für jede Render-Phase bereitgestellt. Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 31 Ausschließen von Attributen Annotation (preferred): javax.portlet.faces.excludefrommanagedrequestscope Über die faces-config.xml: <application-extension> <bridge:excluded-attributes> <bridge:excluded-atribute> myfacesextension.state.* </bridge:excluded-attribute> </bridge:excluded-attributes> </application-extension> Über die portlet.xml: <init-param> <name> javax.portlet.faces.excludedrequestattributes </name> <value>com.sun.faces.*, org.myexp.*</value> </init-param> Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 32 16

GenericFacesPortlet Das GenericFacesPortlet wird als Portlet in der portlet.xml eingetragen Es dient als Bindeglied zwischen dem PortletContainer und der eigentlichen Bridge Kennt die Bridge-Implementierung und delegiert an diese Liest Initialisierungsparameter ein Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 33 Überblick Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 34 17

JSR-301 Implementierungen Referenzimplementierung innerhalb der MyFaces-Community http://myfaces.apache.org/portlet-bridge/index.html Open Portal Implementierung https://jsfportletbridge.dev.java.net/ JBoss Implementierung http://www.jboss.org/portletbridge/ Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 35 Einsatz der PortletBridge (1) Entwicklung einer normalen JSF-Anwendung Entfernen verbotener Tags wie <html>, <body>, <head> etc. Einbinden der JSR-301 Libs Einbinden der portlet.xml und Hinterlegen des GenericFacesPortlet Deploy and have fun Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 36 18

Einsatz der PortletBridge (2) <portlet> <portlet-name>hellojsf</portlet-name> <portlet-class> javax.portlet.faces.genericfacesportlet </portlet-class> <init-param> <name> javax.portlet.faces.defaultviewid.view </name> <value>/hellojsf.jsp</value> </init-param> <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> </supports> </portlet> Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 37 Live Demo mit JBoss Portal Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 38 19

Zeitplan und Status des JSR-301 Portlet 1.0 Bridge: Aktuell: Public Final Draft RI verfügbar Portlet 2.0 Bridge: Neuer JSR (JSR-329) Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 39 JSF und Portlet 2.0 Erste Ideen Portlet Events In JSF wird es einen Eventhandler geben Der Eventhandler kann die einkommenden Events verarbeiten Versenden von Events nicht vorgesehen Public Render Parameter Deklarative Angabe des Mappings Eingehend und ausgehend Resource Serving Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 40 20

Fazit JavaServer Faces ist cool Ajax ist auch cool (zumindest wenn man geeignete Frameworks dafür hat) Portale und Portlets sind enorm mächtig Durch Verwendung der JSR-301-Bridge hat man eine funktionierende und durchdachte Möglichkeit, Portlets und JSF zu kombinieren Auch die Integration von UI-Bibliotheken funktioniert mit der 301- Bridge Das Ergebnis ist durchaus sehenswert und bietet enorme Möglichkeiten!!! Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 41 Fragen? Weitere Tutorials und viel Material unter: www.jsf-forum.de oder auch: www.jsf-portlets.net Gerne auch: andy.bosch@jsf-forum.de Copyright 2008, Andy Bosch, www.jsf-portlets.net Slide 42 21