Der IBM Websphere Portalserver Ergebnisse aus dem Universitäts-Praxis-Projekt 2001/2002 Vortrag von Il-Hyun Kim und Horst Rechner am 19. Juli 2002 Weiterer Teilnehmer am UPP: Clemens Oertel Betreuer: Dipl.-Phys. Markus Leypold Lehrstuhl Prof. Dr. H. Klaeren (Programmiersprachen und Übersetzer) Wilhelm-Schickard-Institut für Informatik - Universität Tübingen 1
Übersicht Zeitplan Was sind Portale? Der IBM Websphere Portal Server Portlets Unterschied zwischen WPS 2.1 und 4.1 Fazit 2
Zeitplan von W&W 10.'01 11.'01 12.'01 Erstes Treffen: Themenvorstellung und Auswahl Einweisung ins WIS Treffen der Studenten mit dem Außendienst Erster Prototyp Benutzerfeedback 01.'02 02'02 Bericht über Pilotbetrieb / Einführungskonzept 03'02 04'02 Auswertung des Pilotbetriebs / Erstellen eines Regelwerks für Betrieb Abschlußpräsentation 05'02 3
Zeitplan 10.'01 Erstes Treffen: Vorstellung der Themen 11.'01 Neues Thema 12.'01 01.'02 Erhalt der Software / Erste Lauffähige Installation von Websphere (NT) Genaue Festlegung des Themas Erste Portlets implementiert 02'02 Erster Prototyp 03'02 Präsentation des Prototypen 04'02 05'02 Abschlußpräsentation 4
5 Was sind Portale?
Was sind Portale? Allgemeiner Einstiegspunkt um Informationen und Applikationen zu verteilen Typische Funktionen Authentifizierung und Authorisierung (single sign-on login) Personalisierung basierend auf Profile / Verhalten Navigation / Layout der Seiten durch Benutzer Suche Aufsteckbare Portalkomponenten: Portlets 6
7 Portal: my.yahoo.com
8 Portal: myw&w.de
Voraussetzungen & Portal Architektur Benutzer HTML WML Web Server LDAP Server usw. Internet WAS WPS Portlet Portlet DB2 Server WAS LDAP WPS 9
Zuständigkeiten Portalserver Authentifizierung Corporate Identity Positionierung von Portlets, Tabs, Anzahl Spalte Portlet Managment Portlets Daten 10
11 Portalserver
12 Portlet
Portlets Komponenten eines Portals ein Portlet - eine Funktion Spezialisierte Servlets Information von Benutzerprofile Verschiedene Ansichten Ausgabe geht über Portal 13
APIs Portlet Container Servlet API Portal Servlet Portlet API Portlet J2EE APIs connectors Web Services EJBs 14
Lebenszyklus (API Aufrufe) Hochfahren: init(); Benutzerlogin: login(); Aufruf: service(); Benutzerlogout: logout(); Runterfahren: destroy(); Entsprechend Servlets 15
Portlet Archiv Datei Controller Views XML Descriptor & Andere Dateien Model 16
Portlet deployment descriptor XML XML Dokument Einstiegspunkt in Portlet Titel, Kurzbeschreibung unterstützte Sprachen & Views Landessprache Markupsprache Portal Server XML 17
/PORTLET-INF/portlet.xml XML <?xml version="1.0"?> <!DOCTYPE portlet-app PUBLIC "-//IBM//DTD Portlet Application 1.0//EN" "portlet.dtd"> <portlet-app> <portlet-app-name>myportlet</portlet-app-name>... <portlet>... <allows> <maximized /> </allows> <language locale="en"> <title>myportlet</title>... </language> <supports> <markup name="html"> <view /> <edit /> <help /> </markup> </supports> </portlet> </portlet-app> Portal Server XML 18
Controller Java Klasse Datenverarbeitung Backendverbindungen Initialisierung der Beans Steuerung der Ansichten Normal Maximized Edit Help Backend XML 19
/PORTLET-INF/classes/myPortlet/myPortlet.java package myportlet; public class myportlet extends AbstractPortlet { public void service(portletrequest request, PortletResponse response) throws PortletException, IOException { myportletbean mpb = new myportletbean(); result = select.executequery("..."); custno = new Integer(result.getInt(1)); mpb.setuserid(user.getuserid()); mpb.setcustno(custno); if( (request.getwindow()).ismaximized() == true ) { jsp = jspmaxview; }... Backend XML 20
Model Java Beans (keine Enterprise Beans!) Intelligente selektive Datenspeicherung Session beans und Request Beans XML 21
/PORTLET-INF/classes/myPortlet/myPortletBean.java package myportlet;... public class myportletbean { private String userid; private Integer custno; public void setuserid(string i) { userid = i; } } public String getuserid() { return (userid); }... XML 22
Views Java Server Pages (JSP) Definition der Ansichten Darstellung der Daten HTML Seiten XML 23
Views <%@ page contenttype="text/html" errorpage="" %> <jsp:usebean id="myportletbean" class="myportlet.myportletbean" scope="request" /> <P>myPortletView.jsp:</P> <P> myportletbean.getuserid(): <%=myportletbean.getuserid()%><br> myportletbean.getcustno(): <%=myportletbean.getcustno()%> </P> HTML Seiten XML 24
25 Verschiedene Ansichten der Daten
26 Verschiedene Ansichten der Daten
27 Verschiedene Ansichten der Daten
28 Portlet Archiv Datei
29 Einbinden des Portlets
To bean or not to bean einfachste HTML Portlets komplizierte Portlets mit verschiedenen Ansichten für Handy, PDA, PC mit entsprechenden JAVA, JSP und Bean Codes. 30
Unterschied WPS 2.1 / 4.1 Portlet 1.1 API (erneuert und verbessert) J2EE Spezifikation (Portabel!) Sun One, BEA Weblogic Engere Integration mit WAS (EJB) Migration von 2.1 nach 4.1 nötig PAR -> WAR 31
Fazit WPS 2.1 Ressourcenfresser noch kein ausgereiftes Produkt Umständliches Handling für Informatiker Gute Dokumentation für Anfänger Dann wird die Luft dünn... Schöner MVC-Ansatz (aber nicht zuendegedacht) 32
Fazit UPP Zusammenarbeit W&W / Psychologen Team Betreuung (Uni / W&W) 33
Q&A & schöne Semesterferien. 34