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 Erstes Treffen: Themenvorstellung und Auswahl Einweisung ins WIS 11.'01 Treffen der Studenten mit dem Außendienst Erster Prototyp 12.'01 Benutzerfeedback 01.'02 02'02 Bericht über Pilotbetrieb / Einführungskonzept 03'02 Auswertung des Pilotbetriebs / Erstellen eines Regelwerks für Betrieb Abschlußpräsentation 04'02 05'02 3 Zeitplan 10.'01 Erstes Treffen: Vorstellung der Themen 11.'01 Neues Thema 12.'01 Erhalt der Software / Erste Lauffähige Installation von Websphere (NT) Genaue Festlegung des Themas 01.'02 Erste Portlets implementiert 02'02 Erster Prototyp 03'02 Präsentation des Prototypen 04'02 05'02 4 Abschlußpräsentation Was sind Portale? 5 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 Portal: my.Yahoo.com 7 Portal: myW&W.de 8 Voraussetzungen & Portal Architektur Benutzer HTML Web Server LDAP Server WML DB2 Server usw. WAS WPS Internet LDAP Portlet Portlet 9 WAS WPS Zuständigkeiten Portalserver Authentifizierung Corporate Identity Positionierung von Portlets, Tabs, Anzahl Spalte Portlet Managment Portlets Daten 10 Portalserver 11 Portlet 12 Portlets Komponenten eines Portals ein Portlet - eine Funktion Spezialisierte Servlets Information von Benutzerprofile Verschiedene Ansichten Ausgabe geht über Portal 13 APIs 14 Portlet J2EE APIs Portal Servlet Portlet API Servlet API Portlet Container connectors Web Services EJBs 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 16 Model Portlet deployment descriptor XML Dokument Einstiegspunkt in Portlet Titel, Kurzbeschreibung unterstützte Sprachen & Views Landessprache Markupsprache Portal Server XML 17 XML /PORTLET-INF/portlet.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> Portal </supports> Server </portlet> </portlet-app> XML 18 XML Controller Java Klasse Datenverarbeitung Backendverbindungen Initialisierung der Beans Steuerung der Ansichten Normal Maximized Edit Help 19 Backend XML /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 Verschiedene Ansichten der Daten 25 Verschiedene Ansichten der Daten 26 Verschiedene Ansichten der Daten 27 Portlet Archiv Datei 28 Einbinden des Portlets 29 To bean or not to bean einfachste HTML Portlets 30 komplizierte Portlets mit verschiedenen Ansichten für Handy, PDA, PC mit entsprechenden JAVA, JSP und Bean Codes. 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