Version 1.2 - Wirtschaftsuniversität Wien
Transcription
Version 1.2 - Wirtschaftsuniversität Wien
Version 1.2 Danksagung Der meiste Dank im Rahmen dieser Arbeit gilt ao. Univ-Prof. Dr. Rony Flatscher. Zuerst wurde durch das von ihm abgehaltene WebEngineering-Proseminar das Interesse für diese Thematik bei mir geweckt. Durch dieses Interesse entstand bei mir der Wunsch zu dem vorliegenden Thema eine Diplomarbeit zu verfassen. Da es an der WU Wien keine Selbstverständlichkeit ist die Möglichkeit zu haben, zu einem eigenen Thema zu schreiben, gebührt Prof. Flatscher auch in dieser Hinsicht Dank. Schlussendlich sei Prof. Flatscher auch für seine aktive Unterstützung während der Erstellung dieser Arbeit gedankt. An dieser Stelle sollen auch die Herren Georg Haschek und Rupert Mandl von IBM Österreich erwähnt sein, die mir äusserst unbürokratisch und sehr entgegenkommend, den Zugang zu der notwendigen Software verschafft haben. Ebenfalls Dank hat meine Verlobte verdient, die mich viele Stunden, Tage und Nächte mit dem Computer teilen musste. Zu guter Letzt möchte ich mich auch bei meiner Familie bedanken, die mir das Studium ermöglicht hat und mich beständig unterstützt. Inhaltsverzeichnis 1 EINLEITUNG 18 1.1 Problemstellung und Ziele 20 1.2 Aufbau der Arbeit 21 2 GRUNDLAGEN ZUM THEMA APPLICATION SERVER 22 2.1 Application Server 22 2.2 Komponenten eines Application Servers 27 2.3 Der Markt der Application Server 29 3 IBM WEBSPHERE APPLICATION SERVER 3.1 Aufbau der WebSphere Software Plattform 3.1.1 Foundation 33 33 35 3.1.1.1 WebSphere Application Server Standard Edition 36 3.1.1.2 WebSphere Application Server Advanced Edition 37 3.1.1.3 WebSphere Application Server Enterprise Edition 39 3.1.1.4 Neue Funktionen in Version 4.0 40 3.1.2 Foundation Extensions 41 3.1.2.1 Development 42 3.1.2.2 Presentation 42 3.1.2.3 Deployment 43 3.1.3 Application Accelerators 43 3.1.4 Customer and Partner Applications 44 3.2 Websphere Application Server Architektur 3.2.1 J2EE Überblick 45 46 3.2.1.1 Definition 46 3.2.1.2 Die J2EE-Plattform 47 3.2.2 Bean Scripting Framework (BSF) 49 3.2.3 WebSphere Administrationsmodell 53 3.2.4 Administrationstools 54 3.2.5 Websphere Application Server 55 3.2.5.1 Web-Container 57 3.2.5.2 Enterprise Java Beans - Container 57 3.2.6 XML 59 3.2.6.1 XML Grundlagen 59 3.2.6.2 XSL 60 3.2.6.3 XSLT 62 3.2.6.4 Weitere XML-Technologien 63 3.2.6.5 WebSphere und XML 64 3.2.7 WebServices 66 3.2.7.1 Definition 66 3.2.7.2 Architektur 66 3.2.7.3 WebServices Implementierung 67 3.2.8 Servlet 69 3.2.8.1 Überblick 69 3.2.8.2 Der Servlet-Lebenszyklus 70 3.2.9 JSP 72 3.2.10 JavaBean 75 3.2.11 Enterprise Java Bean 76 3.2.11.1 Rollen 77 3.2.11.2 Arten von Beans 78 3.2.11.3 EJB-Architektur 79 3.2.11.4 Transaktionen 81 3.2.11.5 Datenbankzugriffe 81 3.2.11.6 Sicherheit/Authentifizierung 81 3.2.12 3.3 J2EE - Applikationen Systemvoraussetzungen 82 86 4 INSTALLATION DES WEBSPHERE-SERVERS 90 4.1 Voraussetzungen und wichtige Hinweise 92 4.2 Anlegen eines Windows 2000 Benutzers 97 4.3 Benutzerrechte für den Benutzer vergeben 101 4.4 Dienste starten bzw. stoppen 104 4.5 Installationsschritte 105 4.5.1 IBM HTTP Server 105 4.5.1.1 Vorarbeiten 105 4.5.1.2 Installation 105 4.5.1.3 Konfiguration 108 4.5.1.4 Verifizierung 109 4.5.2 IBM DB2 Universal Database Enterprise Edition 7.2 111 4.5.2.1 Vorarbeiten 111 4.5.2.2 Installation 111 4.5.2.3 Verifizierung 114 4.5.2.4 Konfiguration 116 4.5.3 IBM DB2 Database Client 4.5.3.1 4.5.4 Installation IBM WebSphere Application Server 123 123 125 4.5.4.1 Vorarbeiten 125 4.5.4.2 Installation 125 4.5.4.3 Verifizierung 129 4.5.5 IBM Visual Age for Java 4.0 Entry Edition 138 4.5.6 IBM WebSphere Studio 4.0 Entry Edition 140 4.5.7 XML-Tools 141 4.5.7.1 XEENA 141 4.5.7.2 XML-Viewer 143 4.5.7.3 XSLerator 143 4.5.7.4 LotusXSL 143 5 BEISPIELE 144 5.1 Installation und Konfiguration 144 5.2 Beschreibung 158 5.2.1 YourCo 160 5.2.2 Bean Scripting 163 5.2.3 StockQuote 163 5.2.4 XML 164 5.2.5 HelloEJB 164 5.2.6 Increment EJB 164 5.2.7 Account EJB und Transfer EJB 165 5.2.8 Application Client 165 5.2.9 Pet Store 166 5.3 Verpacken und Installieren einer Webapplikation an Hand eines Beispieles 167 5.3.1 Projekterstellung 168 5.3.2 Verpacken der Applikation 174 5.3.3 Installation 175 5.3.4 Test der Applikation 177 6 ZUSAMMENFASSUNG UND AUSBLICK 179 7 LITERATURVERZEICHNIS 183 8 VERZEICHNIS DER SONSTIGEN QUELLEN UND HILFSMITTEL 187 Abbildungsverzeichnis Abbildung 1: Problemkreis........................................................................................ 20 Abbildung 2: Drei-Schichten-Modell ......................................................................... 23 Abbildung 3: Die 4 Bereiche einer Application Server Produktfamilie [nach WUVO01]................................................................................... 26 Abbildung 4: Aufbau eines java-basierten Application Server .................................. 27 Abbildung 5: Application Server Markt...................................................................... 29 Abbildung 6: Marktanteilsverteilung Application Server 2001 [nach SPCW01]......... 31 Abbildung 7: Markt Segmentierung [nach GiZe01] ................................................... 31 Abbildung 8: Plattform-Aufbau [nach WSPO01] ....................................................... 33 Abbildung 9: WebSphere Plattform - Produktübersicht [angelehnt an WSPO01] .... 34 Abbildung 10: J2EE-Plattform [nach EnClu01,74] .................................................... 47 Abbildung 11: BSF-Architektur (siehe KaPe01)........................................................ 50 Abbildung 12: Beispiel-Sourcecode für BSF............................................................. 51 Abbildung 13: WebSphere Administrationsmodell [nach EnClu01] .......................... 53 Abbildung 14: Administrationsdienste [nach ArIy01]................................................. 54 Abbildung 15: Application Server Aufbau ................................................................ 55 Abbildung 16: DTD-Beispiel...................................................................................... 60 Abbildung 17: XML-Beispiel [nach EnCh01] ............................................................. 60 Abbildung 18: XSLT-Beispiel [nach EnCh01] ........................................................... 61 Abbildung 19: Beispiel für XSL-Konvertierung [nach EnCh01] ................................. 63 Abbildung 20: Beispiel für Namespaces ................................................................... 64 Abbildung 21: Web Service Komponenten und Vorgangsweise [nach EnClu01] ..... 66 Abbildung 22: Client-Servlet-Kommunikation [nach ArIy01] ..................................... 69 Abbildung 23: Client-Servlet Kommunikation............................................................ 70 Abbildung 24: Servlet Lebenszyklus [nach ArIy01]................................................... 71 Abbildung 25: JSP-Einsatz ....................................................................................... 73 Abbildung 26: JSP-Lebenszyklus [nach ArIy01] ....................................................... 74 Abbildung 27: Java-Source-Code-File-Generierung [nach ArIy01]........................... 74 Abbildung 28: EJB Funktionsprinzip [angelehnt an HrNo01] .................................... 76 Abbildung 29: Session Beans vs. Entity Beans [angelehnt an HrNo01] ................... 79 Abbildung 30: Komponenten der EJB-Architektur .................................................... 80 Abbildung 31: Deployment-Descriptor [nach EnCl201]............................................. 83 Abbildung 32: Aufbau einer J2EE Applikation .......................................................... 83 Abbildung 33: J2EE Rollen im Entwicklungsprozess................................................ 85 Abbildung 34: Beispiel für Port-Überprüfung ............................................................ 95 Abbildung 35: Control Panel ..................................................................................... 97 Abbildung 36: Users and Passwords........................................................................ 97 Abbildung 37: Einen neuen Benutzer hinzufügen..................................................... 98 Abbildung 38: Passwort festlegen ............................................................................ 98 Abbildung 39: Gruppenzugehörigkeit festlegen ........................................................ 98 Abbildung 40: „Advanced“-Dialog in „Users and Passwords“ ................................... 99 Abbildung 41: "Local Users and Groups"-Dialog ...................................................... 99 Abbildung 42: „Benutzer Eigenschaften“-Dialog ......................................................100 Abbildung 43: Local Security Settings .....................................................................101 Abbildung 44: Local Security Policy Setting.............................................................102 Abbildung 45: Benutzer auswählen .........................................................................102 Abbildung 46: Abschliessen der Local Security Policy Settings...............................103 Abbildung 47: Übersicht über die Local Security Settings .......................................103 Abbildung 48: Starten eines Dienstes......................................................................104 Abbildung 49: Stoppen eines Dienstes ....................................................................104 Abbildung 50: Sprachauswahldialog........................................................................105 Abbildung 51: Installationspfadangabe ....................................................................106 Abbildung 52: Setupart auswählen ..........................................................................106 Abbildung 53: Benutzerangaben für den Start des Services ...................................107 Abbildung 54: Anlegen eines Administrationsbenutzers..........................................108 Abbildung 55: Ausschnitt aus der httpd.conf............................................................109 Abbildung 56: Ausschnitt aus den Services.............................................................109 Abbildung 57: Startseite des IBM HTTP-Servers.....................................................110 Abbildung 58: DB2 Installationsdialog .....................................................................111 Abbildung 59: Auswahl der DB2 Enterprise Extended Edition.................................112 Abbildung 60: Auswahl der Installationsart ..............................................................112 Abbildung 61: Auswahl des Installationspfades.......................................................112 Abbildung 62: Benutzerangaben für die Steuerzentrale ..........................................113 Abbildung 63: OLAP Starter Kit ...............................................................................113 Abbildung 64: Überprüfen der Datenbank-Konfiguration 1 ......................................115 Abbildung 65: Überprüfen der Datenbank-Konfiguration 2 ......................................115 Abbildung 66: Java-Version aktualisieren................................................................116 Abbildung 67: Kommunikationsmodus einstellen ....................................................117 Abbildung 68: Erstellen der WAS Administrationsdatenbank ..................................118 Abbildung 69: Datenbank-Überprüfung ...................................................................118 Abbildung 70: DB2 Knoten erstellen........................................................................119 Abbildung 71: Aliasnamen eintragen .......................................................................119 Abbildung 72: Überprüfung des Aliasnamen ...........................................................119 Abbildung 73: Verbindungsaufbau zur Administrationsdatenbank...........................120 Abbildung 74: Verbindungsaufbau zur Administrationsdatenbank...........................121 Abbildung 75: DB2 Administrationsclient installieren...............................................123 Abbildung 76: Installationsart auswählen ................................................................124 Abbildung 77: Installationspfad auswählen..............................................................124 Abbildung 78: Auswahl der Installations Optionen...................................................125 Abbildung 79: Komponenten-Auswahl.....................................................................126 Abbildung 80: Plugin-Auswahl .................................................................................126 Abbildung 81: Benutzerangaben für das IBM HTTP Server Service .......................126 Abbildung 82: Installationspfad auswählen..............................................................127 Abbildung 83: Datenbankoptionen angeben............................................................127 Abbildung 84: Installationsoptionen .........................................................................128 Abbildung 85: Ausschnitt aus den Services.............................................................129 Abbildung 86: admin.config Einstellungen ...............................................................130 Abbildung 87: Starten des Default-Servers..............................................................132 Abbildung 88: Überprüfung des Startvorganges......................................................133 Abbildung 89: Überprüfung des Startvorganges......................................................133 Abbildung 90: Neugenerierung des Plugins.............................................................136 Abbildung 91 : Plugin-cfg.xml ..................................................................................137 Abbildung 92: Überprüfung des Startvorganges......................................................137 Abbildung 93: Installation VisualAge ......................................................................138 Abbildung 94: Lizenzabkommen..............................................................................138 Abbildung 95: Installationsumfang wählen ..............................................................139 Abbildung 96: Installation starten.............................................................................139 Abbildung 97: Auswahl der zu installierenden Komponenten ..................................140 Abbildung 98: Auswahl der Java Umgebung ...........................................................141 Abbildung 99: Java-Installationspfad auswählen .....................................................142 Abbildung 100: Proxy-Host ......................................................................................142 Abbildung 101: Umgebungsvariable erstellen .........................................................143 Abbildung 102: Datenbank-Einstellungen für die Beispiele .....................................145 Abbildung 103: Anlegen der Samples-Datenbank ...................................................146 Abbildung 104: Starten des Default Servers............................................................146 Abbildung 105: Kontrolle der Installation .................................................................147 Abbildung 106: Einrichten des Onlineshops ............................................................148 Abbildung 107: Anpassen der Applikation ...............................................................149 Abbildung 108: Anpassen der Umgebungseinträge ................................................149 Abbildung 109: Datenbank anlegen.........................................................................150 Abbildung 110: Datenquelle anlegen.......................................................................151 Abbildung 111: Eigenschaften der Datenquelle.......................................................152 Abbildung 112: Eigenschaften der Mail-Session .....................................................153 Abbildung 113: Modulsichtbarkeit ändern................................................................154 Abbildung 114: Enterprise-Anwendung installieren .................................................154 Abbildung 115: Anwendung installieren...................................................................155 Abbildung 116: Verteilung der Applikation ...............................................................155 Abbildung 117: Bestätigung der Installation............................................................155 Abbildung 118: Starten der Anwendung ..................................................................156 Abbildung 119: Verifizierung der Installation............................................................157 Abbildung 120: Starten der J2EE Client Applikation................................................165 Abbildung 121: Neues Projekt erstellen...................................................................168 Abbildung 122: Publikationsstufe auswählen...........................................................169 Abbildung 123: Ordner anlegen...............................................................................169 Abbildung 124: VisualAge for Java Optionenen ......................................................170 Abbildung 125: Remote Access to Tool API starten ................................................170 Abbildung 126: Servlet-Mapping..............................................................................171 Abbildung 127: Deskriptordatei erstellen .................................................................174 Abbildung 128: Enterprise Anwendung installieren .................................................175 Abbildung 129: Installation des WebModuls ............................................................176 Abbildung 130: Bestätigung der Installation.............................................................177 Tabellenverzeichnis Tabelle 1: Marktanteil Application Server [nach GiZe01] .......................................... 30 Tabelle 2: Funktionsvergleich [nach EnClu01].......................................................... 37 Tabelle 3: BSF Zugriffsarten..................................................................................... 50 Tabelle 4: Von BSF unterstützte Sprachen............................................................... 52 Tabelle 5: Systemanforderungen „Application Server Standard Edition 3.5“ (Stand: Ende 2001) ................................................................................. 86 Tabelle 6: Systemanforderungen „Application Server Advanced Edition 4.0“ (Stand: Ende 2001) ................................................................................. 87 Tabelle 7: Systemanforderungen „Application Server Enterprise Edition 3.6“ (Stand: Ende 2001) ................................................................................. 88 Tabelle 8: Systemanforderungen „IBM HTTP Server“ (Stand: Ende 2001) .............. 88 Tabelle 9: Betriebssystemunterstützung für WebSphere Produkte (Stand: Ende 2001) ................................................................................. 89 Tabelle 10: Übersicht über die installierten Produkte ............................................... 90 Tabelle 11: Hardwareanforderungen ........................................................................ 92 Tabelle 12: Softwareanforderungen ......................................................................... 92 Tabelle 13: Installationspfade ................................................................................... 93 Tabelle 14: Notwendige Benutzer............................................................................. 93 Tabelle 15: Weitere wichtige Namen ........................................................................ 94 Tabelle 16: Port-Belegungen .................................................................................... 95 Tabelle 17: Auflistung der installierten Beispiele .....................................................158 Tabelle 18: Inhalt der installierten Beispiele ............................................................159 Tabelle 19: Beschreibung der Funktionen des YourCo Beispieles ..........................163 Tabelle 20: Funktionen des "Pet Store" ...................................................................166 Abkürzungsverzeichnis Begriff/Abkürzung Definition Apache Vereinigung, die Open-Source-Projekte betreut. Eine gebräuchliche Abkürzung für den HTTP-Server der Apache Organisation. API „Application Programming Interface“. Deutsch: Programmier- und Anwendungsschnittstelle. Application Server für Anwendungsprogramme (Applications). Damit kann ein Server Server im LAN gemeint sein, der (statt reinen File-ServerDiensten) von vielen Clients benutzte Anwendungen (z.B. Groupware) bereithält. Alternativ kann er auch als Transaktionsserver oder als Middleware in einer Three-TierArchitektur (Drei-Schichten-Modell) dienen. Der Begriff umfasst auch einen Web Application Server für WebAnwendungen oder Application Service Providing, der für eine Internet- oder Intranet-Anbindung dynamisch HTML-Seiten erzeugt und die Anwendungslogik/Geschäftslogik zwischen den Web-Browsern und (meistens) einer Datenbank ausführt. Übliche Schnittstellen bzw. Programmierstandards sind CGI, MS-ASP, PHP, JSP, Servlet und CFML. Als Programmier-Framework wird J2EE zunehmend beliebter. Große Systeme beinhalten auch Transaktions-Management, Sicherheitsmechanismen, Load Balancing und Failover- Mechanismen. Beispiele für bekannte komplette Web-ApplicationServer-Systeme: BEA WebLogic, ColdFusion , IBM WebSphere, Inprise, Oracle Application Server und SilverStream. Im Rahmen dieser Arbeit wird unter Application Server ein Web Application Server verstanden. ASP (Microsoft) „Active Server Pages“. Microsofts Konzept für Web-Server-seitiges Skripting, einfache Einbindung eigener Datenbankanbindung. B2B „Business to Business”. Server-Applikationen und BMP „Bean Managed Persistence”. CFML „ColdFusion Markup Language“. Konkurriert mit ASP, JSP und PHP. CGI „Common Gateway Interface“. Programmierschnittstelle auf Web-Servern. Parameter vom Client z.B. aus HTML-Formularen können über Umgebungsvariablen oder über das Stdin-Interface an ein Programm oder Skript auf dem Server übergeben werden, welches dann auf dem Server ausgeführt wird. CMP „Container Managed Persistence”. CRM „Customer Relationship Management“ z.B.: Clarify, SAP, Siebel, etc. CORBA „Common Object Request Broker Architecture“ CORBA ist eine Spezifikation, die die Definition der Schnittstellen in verteilten Systemen sowie die Kommunikation zwischen diesen Schnittstellen ermöglicht. Damit ist CORBA der Standard, der die Kommunikation zwischen Objekten und Programmen regelt. CORBA ist systemunabhängig und auch nicht an eine bestimmte Programmiersprache gebunden. DOM „Document Object Model“. DOM ist ein Objektmodell, daß die in einem Dokument enthaltenen Elemente in einer Baumstruktur als Objekte darstellt. Über diese Objekte ist der Zugriff auf die Elemente möglich. DTD „Document Type Definition“. Jedes dem SGML-Standard entsprechende Dokument gehört einem bestimmtem Typ an. Ein Dokumenttyp definiert eine eindeutige hierarchische Struktur und einen festgelegten Satz an zur Verfügung stehenden Tags. Die Deklaration von Struktur und Tags wird in der DTD vorgenommen. Mit der DTD wird also die Syntax und Semantik der Auszeichnungssprache für diesen Dokumenttyp festgelegt. Dadurch entfällt die Notwendigkeit, für jede neue Auszeichnungssprache schreiben zu müssen. einen neuen Interpreter EAI „Enterprise Application Integration“. Middleware z.B. zur Kopplung von E-Commerce-Software mit ERP, SCM und CRM. EIS „Enterprise Information System“. EJB „Enterprise JavaBeans“. Teil von J2EE. In Java programmierte Komponenten, wie auch JavaBeans. Aber anders als JavaBeans benötigen EJBs einen EJB-Server und sind besonders für grosse (z.B. per TransaktionsServer koordinierte) verteilte Enterprise-Anwendungen geeignet. EJB Extension Die Enterprise JavaBeans Specification 1.1, herausgegeben von Sun Microsystems, Inc., definiert eine Standard-DTD zur Beschreibung von EJB Deployment-Informationen. ERP “Enterprise Resource Planning”. Betriebswirtschaftliche Standardanwendung, z.B. SAP R/3 oder von SAGE KHK. Geschäftsregeln Die Gesetze, Verordnungen, Richtlinien und Verfahren, die in einem Computersystem codiert sind und die Kernaktivitäten eines Unternehmens beschreiben. Auch als Geschäftslogik bekannt. IIOP „Internet Inter-ORB Protocol“. IT „Informationstechnologie“. J2EE „Java 2 Enterprise Edition“. JDK mit zusätzlichen Packages, wie EJB, JSP, Servlets, JavaMail und Web Application Server. JDK “Java Development Kit”. Java Mail Ein plattform und protokollunabhängiges Framework um Java basierte Mail und Messaging Applikation zu erstellen. JINI „Java Intelligent Network Infrastructure“. Jini regelt, wie Computer und andere Geräte untereinander im Netzwerk kommunizieren. JNDI “Java Naming and Directory Interface”. JMS „Java Message Service“. JSP „Java Server Pages“. Erzeugt auf der Web-Server-Seite dynamische HTML-Dokumente auf Template-Basis (Server-seitiges Skripting), ähnlich wie ASP. LAMP Bezeichnung für ein Web-Entwicklungssystem auf der Basis Linux - Apache - MySQL - PHP3. Load Balancing Das Verteilen der Aufgabenlast auf mehrere Computer, um eine möglichst gleichmäßige und effiziente Lastverteilung zu gewährleisten. LDAP “Lightweight Directory Access Protocol”. Dieses Protokoll bietet einen Standard für die Kommunikation mit Datenbanken im Internet. Per LDAP können beispielsweise EMail-Verzeichnisse wie Bigfoot und Four 11 nach E-Mail-Adressen oder Personennamen durchsucht werden. Das Lightweight Directory Access Protocol ist eine vereinfachte Form des Directory Access Protocol (DAP) von X.500. Es soll die Nutzung von Directory Services für `schmale´ Internet-Clients erleichtern, da X.500 als zu komplex und ressourcenfressend für Web-Browser und Mail-Clients (E-Mail-Programme) angesehen wird. Einträge in einem LDAP- oder X.500-Directory erlauben die system- und ortsunabhängige Auffindung und Nutzung aller Objekte in einem Netzwerk, ob es nun Rechner, Verzeichnisse, Dateien, Dienste oder Personen sind. Middleware Anpassung, Umsetzung oder Verarbeitung von Informationen zwischen zwei anderen Schichten. Meistens eine ApplikationsSchicht zwischen dem Präsentations-Client und dem DatenbankServer, etwa bei einer Three-Tier-Architektur (Drei-SchichtenModell) oder bei EAI. Häufig in Application Servern realisiert. MySQL Frei erhältliche relationale Datenbank. PHP „PHP Hypertext Preprocessor“ (früher auch Professionell Homepage Construction Kit). Dynamische Web-Seiten durch WebServer-seitiges Skripting (Code erinnert an ASP und C) und Datenbankanbindung (z.B. MySQL, ODBC). Besonders häufig unter Linux verwendet (LAMP), aber auch für Windows erhältlich (WAMP). Siehe auch CGI, ASP, JSP, Servlet, CFML, Application Server. RMI „Remote Method Invocation“. SAX „Simple API for XML“. SAX ist eine Programm-Schnittstelle für die Verarbeitung von XML-Dokumenten mit Programmiersprache wie Hilfe z.B. einer Java. objektorientierten Über SAX kann die Anwendung auf die einzelnen Elemente eines Dokumentes zugreifen. SCM „Supply Chain Management“. Servlet Server Applet. Java-Programm, das, anders als normale JavaApplets, nicht im Web-Browser beim Client, sondern auf dem Web-Server läuft. SGML „Standard Generalized Markup Language“. SGML erlaubt es, Auszeichnungssprachen zu entwerfen. Eine der bekanntesten Anwendungen von SGML ist HTML. SOAP „Simple Object Access Protocol“. Ein Verfahren für den einfachen und verteilten Funktionsaufruf zwischen Softwareobjekten unter Java. Three-Tier- Auch Drei-Schichten-Modell Architektur Aufgabenbereiche genannt. Trennung Client-Rechner/Präsentation, der drei Applikations- Server und Datenbank-Server. UDDI „Universal Description Discovery and Integration“. Ein Standardvorschlag für den elektronischen Handel im Internet, der von Ariba, IBM und Microsoft entwickelt wurde. Technisch basiert er auf XML und SOAP. URC „Uniform Resource Names“. URI „Uniform Resource Identifiers“. URI ist eine generische Menge von allen Ressource Benennungsund Adressierungsarten. Kurz gesagt umfassen URIs bisher: Uniform Resource Names (URN): Identifikation von Ressourcen (Was) Uniform Resource Locators (URL): Wo sind Resourcen zu finden Uniform Resource Characteristics (URC): Wie kann auf die Ressourcen zugegriffen werden und andere Metadaten . Das Acronym URI wird in der „Umgangssprache“ häufig synonym zu URL verwendet. URL „Uniform Resource Locator“. Eine URL ist eine eindeutige Identifikation einer Ressource (z.B. einer Datei oder Web-Seite) durch die Zugriffsmechanismen (z.B. HTTP oder FTP) und den Standort (Server). Die allgemeine Form lautet: Protokoll://Rechner.Domain[:Port]/Pfad/Datei[#Anker][?Parameter]. URN „Uniform Resource Names“. WAMP Bezeichnung für ein Web-Entwicklungssystem auf der Basis Windows - Apache - MySQL - PHP3. WAS „WebSphere Application Server“. WSDL „Web Services Description Language“. XML-Beschreibung eines Web-Dienstes-APIs, das über UDDI recherchiert und dann über SOAP benutzt werden kann. WYSIWYG „What You See Is What You Get“. Wird meistens im Zusammenhang mit (HTML-) Editoren bzw. Textverarbeitungsprogrammen verwendet WWW „World Wide Web“. XML „Extended Markup Language“. XML soll es den Web-Site-Programmierern erleichtern, SGMLAnwendungen zu schreiben und dabei eigene Dokumententypen (DTD) festzulegen. Die eXtensible Markup Language bietet nämlich viele Mechanismen, die u.a. die Datenverwaltung im Netz erleichtern sollen. Außerdem lassen sich somit strukturierte Daten über Plattform-/ Betriebssystemgrenzen hinweg austauschen. XSL „eXtensible Style Language“. XSL dient der Formatierung und Transformierung von XMLDokumenten. XSLT „XSL Transformations“. Eine Sprache für die Umwandlung von XML-Dokumenten in andere (XML-)Dokumente. XSLT wurde als Teil von XSL, einer Stylesheet-Sprache für XML, entwickelt. XSL verfügt über den Umfang von XSLT hinaus über ein XML-Vokabular für die Angabe von Formatierungsinformationen. Seite: 18 1 Einleitung „Ein Anfang ist kein Meisterstück, doch guter Anfang halbes Glück.“ Anastasius Grün (1806-1876) Wenn man sich das Abkürzungsverzeichnis auf den vorigen Seiten durchliest, bekommt man einen ersten Eindruck mit welchem technologischen Themenumfang ein Neuling im Gebiet Application Server konfroniert ist. Mit Bedachtnahme auf die Tatsache, daß dieses Abkürzungsverzeichnis nur den absolut notwendigen Teil der relevanten Technologie abdeckt, gelangt man schnell zu dem Schluß, daß diese Fülle von einer Person alleine nicht abzudecken ist. Studenten der Betriebswirtschaft, die Interesse haben im IT-Sektor als Manager tätig zu werden, stehen vor mehreren bemerkenswerten Problemen. Erstens haben Sie nicht die Ausbildung und das Wissen, um einen schnellen Zugang zu den technischen Themen zu finden. Zweitens wird von Ihnen verlangt, nach Abschluß ihres Studiums, eben diese Technologien einschätzen zu können und daraus abgeleitet, betriebswirschaftliche Entscheidungen treffen zu können. D.h. Absolventen der BWL müssen einen Weg finden mit den Handicaps der schlechteren technischen Ausbildung und dem Umstand mit einem riesigen Themenkomplex konfrontiert zu sein, fertig zu werden. Das Proseminar „WebEngineering“ von Professor Flatscher zeigt einen Ansatz, wie man dieser Problematik begegnen kann. Als Fokuspunkt der Veranstaltung wurden Application Server gewählt, da sie einen ausgezeichneten Anknüpfungspunkt darstellen, um sich mit den neuesten Technologien zu beschäftigen. Die wichtigsten Ziele der Veranstaltung sind: • einen Überblick über die relevanten Technologien zu bekommen, • die Methodik des selbständigen Recherchierens und Erarbeitens von neuen technischen Themen praktisch zu üben, • das objektive und kritische Einschätzen der Technologien und der damit verbundenen Organisationen und • durch praktische Übungen das theoretisch erworbenen Wissen zu vertiefen. Anknüpfend an das Proseminar soll die vorliegende Arbeit den Studenten an Hand des IBM „WebSphere Application Servers“ beim Einstieg in die Materie helfen. Seite: 19 Dazu wird den Studierenden vermittelt, • was ein Application Server ist und welche Vorteile er bietet, • welche Probleme mit dem Thema „Application Server“ verbunden sind, • welchen Aufbau die „WebSphere“ Produktplattform hat und welche Produkte von IBM für diese Plattform relevant sind, • welche Technologien von einem Java-basierten Application Server verwendet werden wie z.B. J2EE, JSP, Servlets, XML, EJB, etc. und wie diese grundsätzlich funktionieren, • wie ein Referenzsystem aufgebaut wird und welche Tätigkeiten dazu notwendig sind und • wie man eine WebApplikation anlegt, verpackt und installiert. Seite: 20 1.1 Problemstellung und Ziele Die Problemstellung, die zu dieser Arbeit geführt hat, kann am besten mit Hilfe eines Schichtenmodells erklärt werden, das Abbildung 1 dargestellt. Abbildung 1: Problemkreis Am Beginn des WebEngineering- Proseminares stand das Problem innerhalb sehr kurzer Zeit, ohne die Hilfe eines Referenzservers, einen Application Server aufzusetzen und konfigurieren zu müssen. Nachdem sich diese Prozedur als sehr langwierig und kompliziert herausstellte, lag es nahe, eine ausführlich dokumentierte Referenzinstallation zu erstellen, um nachfolgenden Teilnehmern die Arbeit und damit den Einstieg in die Thematik wesentlich zu erleichtern. Dieses Problem stellt den inneren Problemkreis dar. Die Installationsanleitung und die Vorstellung des WAS sollen dazu beitragen, beim Leser Produktkompetenz für den WebSphere Application Server aufzubauen. Diese Produktkompetenz soll dem Leser die Möglichkeit geben den inneren Problemkreis zu überwinden. Der äussere Problemkreis betrifft die Technologien, die den Einsatz eines Application Servers erst sinnvoll machen und im WebSphere Application Server integriert sind. Jeder BWL-Student, der sich für IT interessiert, sollte in der Lage sein, aktuelle Technologien grundsätzlich verstehen und aufgrund dieses Wissens Seite: 21 Einsatzentscheidungen treffen zu können. Die in dieser Arbeit enthaltenen Beispiele sollen den Leser in die Lage versetzen, zu verstehen, welche Technologien im WebSphere Application Server eingesetzt werden und welche Interdependenzen zwischen ihnen bestehen. Dabei besteht der Anspruch des vorliegenden Werkes nicht darin, jede einzelne Technologie im Detail in ihrer Funktionsweise zu erläutern, da dies den Rahmen dieser Arbeit deutlich sprengen würde. Der Fokus liegt vielmehr auf dem grundsätzlichen Verständnis wie Webtechnologien wie z.B. Servlets, JSP, EJBs, u.v.a funktionieren und wie sie in einem Application Server zusammenspielen. Dieser Weg soll dazu beitragen, den Leser dabei zu unterstützen, Technologiekompetenz aufzubauen. 1.2 Aufbau der Arbeit Die vorliegende Arbeit besteht aus mehreren Teilen. Kapitel 2 beschreibt den grundsätzlichen, allgemeinen Aufbau eines Application Servers, die beteiligten Komponenten und die Idee, die hinter der Verwendung von Application Servern steht. In Kapitel 3 wird der Aufbau der WebSphere-Plattform, die Architektur des Application Servers und die notwendigen Systemvoraussetzungen beschrieben. Kapitel 4 enthält eine ausführliche Installationsanleitung für den Application Server und alle notwendigen Entwicklungstools. Um das Verständnis für die verwendeten Technologien zu erhöhen, werden im Kapitel 5 einige Beispiele zu den wichtigsten WebTechnologien gegeben. Seite: 22 2 Grundlagen zum Thema Application Server Dieses Kapitel widmet sich der Darstellung des grundsätzlichen Aufbaues eines Application Servers und seiner Funktionen. Der Leser soll dadurch in die Lage versetzt werden, die Grundprinzipien, die als Basis für einen Application Server dienen, zu verstehen. 2.1 Application Server Der Typus von Application Servern, die in dieser Arbeit besprochen werden, ist webbasiert, d.h. er stellt seine Dienste im Inter- bzw. Intranet zur Verfügung. Klassische Client/Server-Applikationen basieren auf dem 2-Schichten-Modell. Dieser Begriff beschreibt ein System, in dem die Darstellung, Verarbeitung und Verwaltung der Daten auf zwei Systeme aufgeteilt wird. Meistens übernimmt der Client die Darstellung und Verarbeitung der Daten und der Server ist für die DatenVerwaltung zuständig. Der Vorteil dieses Modells liegt in der zentralen Datenhaltung und der Aufteilung der Last auf zwei Systeme. Doch dieses Modell hat auch Nachteile: • Wartungsprobleme Wenn sich die gesamte Geschäftslogik in den Clients befindet, erschwert dieser Umstand die Wartung, Pflege und Adaption der Applikationen. • Sicherheitsprobleme Sensible Daten können auf wenigen, zentralen Systemen besser geschützt werden, als auf vielen, dezentralen Systemen. Der Zugriff auf unternehmensinterne Informationssysteme wird durch dieses Modell auch besser geschützt, da die direkt auf die Daten zugreifende Komponente nicht mehr der Client ist, der sich in vielen Fällen ausserhalb der eigenen Firma befindet. Diese Aufgabe wird im Drei-Schichten-Modell von Komponenten in der 2. Schicht übernommen. Seite: 23 • Ressourcennutzung Derzeit stellen Server wesentlich leistungsfähigere Systeme dar als Clients. Man versucht daher, die ressourcenintensive Arbeit auf die besser dafür geeigneteren Server zu verlagern. Application Server folgen typischerweise dem Drei-Schichten-Modell und trennen die Präsentationsaufgaben (ClientTier) von der Geschäftslogik (MiddleTier) und den dazugehörigen Ressourcen (ResourceTier). Diese Trennung ist grundsätzlich nur eine logische. Es kann durchaus vorkommen, dass zwei oder mehrere Komponenten physisch auf einem Rechner vorhanden sind. Abbildung 2: Drei-Schichten-Modell Die Präsentationsschicht (Client Tier) hat die Aufgabe die Ergebnisse, die von der Geschäftslogikschicht (MiddleTier) geschickt werden, aufzubereiten und darzustellen. Clients, die die Daten darstellen, können von unterschiedlicher Machart sein: • Webbrowser, • Java-Applets, • Programme in C++, Visual Basic, Perl, Java, etc. Seite: 24 Die Geschäftslogikschicht (Middle Tier) enthält Regeln, Verfahrensanleitungen und Prozessdefinitionen, die speziell auf das jeweilige Unternehmen abgestimmt sind. Diese sogenannten Business Rules werden in Komponenten verpackt, die dann in weiterer Folge für die Modifizierung der Daten zuständig sind. Die Ressourcenschicht (Resource Tier) stellt für die Geschäftslogikschicht die Daten zur Verfügung. Die häufigsten Repräsentanten dieser Schicht sind relationale Datenbanksysteme (RDBMS) von Herstellern wie IBM, Informix, Microsoft, Oracle, SyBase, u.a. Weitere Daten können aus Enterprise Information Systemen (EIS) bzw. aus Systemen für Enterprise Resource Planning (ERP) kommen. In diesem Bereich können z.B. die Produkte folgender Hersteller eingeordnet werden: Baan, Peoplesoft, SAP, etc. Application Server befinden sich in Schicht 2 (MiddleTier) dieses Modells. Die Aufgaben eines Application Servers fokussieren sich deswegen auf der Implementierung der Geschäftslogik und auf die Aufgabe als Vermittlungsschnittstelle zwischen den interessierenden Daten und den abfragenden Clients zu fungieren. Nachfolgend sind einige der wichtigsten Aufgaben von Application Servern aufgelistet [vgl. ReHo01]: • Einbindung von Programmierumgebungen Um die Wartbarkeit der Komponenten, die die Geschäftslogik enthalten, zu gewährleisten und den Entwicklern eine möglichst effiziente Integration der notwendigen Entwicklungswerkzeuge zur Verfügung zu stellen, ist es unerlässlich, die Programmierumgebung an die Spezifika des Application Servers anzupassen und einzubinden. Da die Entwicklung von Programmen auf Application Servern häufig einen beträchtlichten Umfang erreicht, werden auch an die organisatorischen Eigenschaften der Programmierumgebung gesteigerte Anforderungen gestellt. • Ressourcenmanagement Wenn Applikationen für das WWW geschrieben werden, ist der Bedarf an Ressourcen (Prozessorleistung, Durchsatz, Speicherbedarf, usw.) nur schwer zu eruieren. Eine weitere Erschwernis ist das kaum vorhersehbare Surfverhalten der Seite: 25 Benutzer, das dazu führt, dass der Bedarf an Resourcen in relativ kurzer Zeit den vorher festgelegten Rahmen sprengt. Deswegen gehören Funktionen wie Load Balancing und Skalierbarkeit zu den wichtigsten Funktionen eines Application Servers. Load Balancing ist das, nach unterschiedlichen Verfahren (round robin,etc.), durchgeführte Verteilen der anfallenden Last auf alle zur Verfügung stehenden Rechner. Unter Skalierbarkeit versteht man einerseits die Möglichkeit die verwendete Hardware zu erweitern um die Performance zu steigern, wenn die Resourcenanforderungen steigen. Andererseits wird darunter verstanden, daß die betreffende Applikation ebenfalls Möglichkeiten zur Erweiterung vorsieht, um sich den gestiegenen Resourcenanforderungen anpassen zu können. • Ausführungsumgebung Die Geschäftslogik wird oft in Komponenten realisiert, die eine spezielle Umgebung benötigen, um ausführbar zu sein. Diese sogenannten Container bilden das Bindeglied zwischen dem Application Server und den einzelnen Komponenten, wobei der Container die Komponenten steuert und überwacht. • Sicherheit Unter diesem Punkt ist zu verstehen, dass der Application Server unberechtige Zugriffe abwehrt und Benutzerrechte verwaltet. • Transaktionsmanagement Transaktionen bestehen aus mehreren logisch zusammenhängenden Aktionen, die allerdings nur ausgeführt werden sollen, wenn alle Aktionen durchgeführt wurden. Sollte eine Aktion nicht durchführbar sein, so wird die ganze Transaktion nicht durchgeführt. Eine wichtige Aufgabe eines Application Servers ist die zur Verfügungstellung eines Transaktionssystem, das, je nach Anforderung der Applikation, einen ausreichenden Grad an Sicherheit bietet. • Datenanbindung Ohne Versorgung mit Daten sind selbst die besten Komponenten nur begrenzt wertvoll. Deswegen verfügen Application Server über ausgefeilte Mechanismen, um den Komponenten Zugriff auf verschiedenste Datenbanksysteme, ERP, EIS, etc. zu ermöglichen. Ressourcen z.B. Seite: 26 Die eben dargestellten Aufgaben eines Application Servers stellen die zum Zeitpunkt Ende 2001 maximal verfügbare Bandbreite von unterstützten Funktionen dar. Pakete die alle genannten Funktionen unterstützen, sind meistens in sogenannten Produktfamilien organisiert, in der jedes teilnehmende Produkt unterschiedliche Aufgaben übernimmt. Die Produkte innerhalb einer Produktfamilie weisen häufig eine starke gegenseitige Integration auf. Einige Application-Server unterstützen manche Teile wie z.B. die Einbindung von Programmierumgebungen nicht und beschränken sich auf die wesentlichsten Funktionen eines Application Servers. Aus welchen einzelnen Komponenten ein Application Server Paket besteht, wird in Kapitel 2.2 dargelegt. Aus den obigen Aufgaben ergibt sich eine Gruppierung der Aufgaben in vier Bereiche, die eine moderne Application Server Produktfamilie unterstützen sollte: Abbildung 3: Die 4 Bereiche einer Application Server Produktfamilie [nach WUVO01] Seite: 27 2.2 Komponenten eines Application Servers Ein komplettes Application Server Paket besteht aus mehreren Einzelteilen, die entweder alle als Produktfamilie von einem Hersteller angeboten werden (z.B.: IBM) oder von unterschiedlichen Herstellern stammen. Da der IBM WebSphere Application Server ein Java-basierter Application Server ist und auch der überwiegende Anteil an Application Servern auf Java als Grundlage setzt, konzentriert sich die Darstellung des Aufbaus von Application Servern ausschliesslich auf diese Gruppe. Die einzelnen Komponenten eines Application Server Paketes werden in Abbildung 4 dargestellt. Abbildung 4: Aufbau eines java-basierten Application Server Als Clients stehen grundsätzlich zwei Typen zur Auswahl: 1. Eine Applikation, die direkt auf den Application Server und die dort ausgeführten Enterprise Java Beans (EJB) zugreift. 2. Ein Webbrowser, der entweder auf HTML-Seiten, Java Server Pages (JSP) oder auf Servlets zugreift. Seite: 28 Der Bereich des Middle Tier besteht aus zwei Applikationen, dem WebContainer und dem Application Server, die beide stark miteinander verwoben sind. Der WebContainer besteht aus dem eigentlichen WebServer, auch als HTTP-Server bezeichnet und einem Container für JSPs und Servlets. Dem WebServer kommt dabei die Aufgabe zu, statische bzw. dynamische, mit JSP generierten, HTML-Seiten zur Verfügung zu stellen. Der Application Server stellt einen EJB-Container, eine JSP- und Servlet-Engine zur Verfügung. Der EJB-Container stellt die Umgebung dar, in dem die EJBs ausgeführt werden können. Die JSP- und Servlet-Engine dienen zur Compilierung und Ausführung von JSPs und Servlets. Die Komponenten der Geschäftslogikschicht stellen den Kernbereich der Produktfamilie eines Application Servers dar. Die Ressourcenschicht wird meistens von einem relationalen Datenbanksystem repräsentiert. Bei Komplettpaketen sind in der Regel weitere Teile im Lieferumfang enthalten: • Java-Entwicklungsumgebung, • Administrationsprogramme, • Datenbanksysteme (Oracle,IBM), • WebDesign-Tools, • Version-Verwaltungstools. Grundsätzlich ist es möglich, alle notwendigen Teile für einen Application Server aus Einzelkomponenten zusammenzusetzen. Das hat den Vorteil, dass man Open Source Produkte verwenden kann, für die keine Lizenzkosten zu zahlen sind. Komplettpakete haben den Vorteil, dass alle Komponenten gut aufeinander abgestimmt sind und integrierte Entwicklungsumgebungen zur Verfügung stehen. Seite: 29 2.3 Der Markt der Application Server Der Markt der Application Server unterliegt einem ganz eindeutigen Trend bezüglich der Basistechnologie in Richtung J2EE. Grundsätzlich lässt sich der Markt in drei Fraktionen einteilen [siehe CiJe01]: • J2EE-basierte Lösungen, • Nicht J2EE-basierte Lösungen, • Microsoft-Technologie basierte Lösungen. Abbildung 5: Application Server Markt Im Teilmarkt der J2EE-orientierten Lösungen ist eine weitere Einteilung nach Hardware-, Datenbank- und unabhängigen Herstellern möglich. Bei den Hardware-Herstellern sind IBM mit der WebSphere-Plattform, Sun mit dem Produkt iPlanet und HP mit dem Produkt Bluestone Total-e-Server vertreten. Allen ist gemeinsam, dass • J2EE als Basis verwendet wird und • Unix als Betriebssystem der Wahl dominiert Im Bereich der Datenbank-Hersteller finden sich Oracle mit 9iAS, SyBase mit EAServer und wieder IBM mit der WebSphere Plattform. IBM qualifiziert sich aufgrund der hauseigenen Datenbank DB2 auch für diese Kategorie. Der Teilbereich der sonstigen Hersteller ist äußerst vielschichtig und unübersichtlich. Eindeutig ist allerdings, dass BEA mit dem Produkt WebLogic im Moment den grössten Marktanteil hat, noch vor dem „Riesen“ IBM. Seite: 30 Ein nicht unwesentlicher Teil dieses Marktes wird von sogenannten Open-SourceProdukte wie Tomcat, Jboss, Jonas, u.s.w. gestellt. Bei den Nicht-J2EE-Lösungen sind z.B. Macromedia Coldfusion und PHP zu erwähnen, aber der Anteil solcher Lösungen am gesamten Markt ist ständig am Abnehmen. Microsoft ist in vielen Bereichen der Marktleader, aber die rasante Entwicklung im Application Server Markt wurde vom Redmonder Softwarehersteller nicht früh genug vorhergesehen. Aus diesem Grund spielt Microsoft in diesem Markt zum Zeitpunkt Ende 2001 keine wesentliche Rolle und versucht über die neue .Net-Technologie, verlorenes Terrain wieder gut zu machen. Ein weiterer Grund für die schlechte Position Microsofts ist die augenblickliche Dominanz der J2EE-Plattform in diesem Markt. Den Marktanteilszahlen von 1999 folgend (siehe Tabelle 1: Marktanteil Application Server [nach GiZe01]) wird der Markt der Java-fähigen Application Server von BEA und IBM dominiert. Die Vorhersagen für das Jahr 2000 ließen auf eine weitere Festigung der Dominanz von IBM und BEA schließen. Marktanteil in % Hersteller Vorhersage % 2000 Geschätzt % 1999 BEA 24% 32% IBM 24% 16% ATG 10% 5% iPlanet 9% 6% Allaire 8% 6% Sybase 7% 15% SilverStream 5% 4% Bluestone 3% 3% Oracle 3% 5% Gemstone 2% 3% Inprise 1% 2% Iona 1% 0% ObjectSpace 1% 1% Persistence 1% 2% Secant 0% 1% Tabelle 1: Marktanteil Application Server [nach GiZe01] Seite: 31 Abbildung 6 stellt die Marktanteilsverteilung am Application Server Markt im Jahr 2001 laut einer Erhebung von Gartner dar. Es ist deutlich zu erkennen, daß sich auch im Jahr 2001 nichts an der Dominanz der Hersteller BEA und IBM geändert hat, die zusammen 72% des Marktes für Application Server beherrschen. Abbildung 6: Marktanteilsverteilung Application Server 2001 [nach SPCW01] Neben der Veränderung der Marktanteile und einer starken Marktbereinigung ist auch eine technologische Veränderung zu beobachten, die eine Verschiebung der Positionierung der einzelnen Produkte zur Folge hat: Abbildung 7: Markt Segmentierung [nach GiZe01] Seite: 32 Abbildung 7 zeigt die Marktsegmentierung anhand der Kriterien Existenzdauer des Produktes (neue Lösung – etablierte Lösung) und Unterstützung von einfachen bzw. komplexen Applikationen. Anhand der Pfeile wird die vorauszusehende Entwicklung der Produkte deutlich gemacht. Seite: 33 3 IBM WebSphere Application Server Dieses Kapitel soll dem Leser einen Überblick über die WebSphere Software Plattform geben. Dazu wird zuerst der Aufbau der Plattform beschrieben, wobei auch konkrete Produkte erwähnt werden, die in den einzelnen Bereichen zur Anwendung kommen. Kapitel 3.1 beschäftigt sich mit den Komponenten der WebSphere Plattform. Im Kapitel 3.2 wird die Architektur des WebSphere Application Servers und die Funktionweise der wichtigsten Web-Technologien im Rahmen des Application Servers übersichtsweise erklärt. Das Kapitel 3.3 gibt eine Übersicht über die Systemvoraussetzungen,die notwendig sind, um die WebSphere-Plattform einsetzen zu können. Die angeführten Web-Technologien finden auch als Beispiele Eingang in die Referenzinstallation. 3.1 Aufbau der WebSphere Software Plattform Der Aufbau der WebSphere Software Plattform [siehe WSPO01] besteht aus 4 Schichten, wobei jede einzelne Schicht aus unterschiedlichen Produkten zusammengesetzt ist (vgl. Abbildung 8). Hierbei wird sowohl von IBM als auch von Drittherstellern entwickelte Software eingesetzt. Abbildung 8: Plattform-Aufbau [nach WSPO01] Seite: 34 Wie sich die einzelnen Produkte in diese Umgebung eingliedern zeigt Abbildung 9. Abbildung 9: WebSphere Plattform - Produktübersicht [angelehnt an WSPO01] Abbildung 9 unterteilt sich, analog zu dem in Abbildung 8 dargestellten PlattformAufbau, in die drei Bereiche Foundation, Foundation Extensions und Application Accelerators. Der Bereich, der die Customer und Partner Applications betrifft, wurde absichtlich ausgelassen, da hier eine Fülle von verschiedensten Applikationen einzuordnen wäre und eine Auflistung einiger Anwendungen das Verständnis der Plattformstruktur nicht verbessert hätte. Seite: 35 3.1.1 Foundation Die Foundation-Schicht besteht aus dem WebSphere Application Server und Produkten aus der MQSerie. Die MQSerie dient zur Erleichterung der Integration von Applikationen und Geschäftsprozessen aus heterogenen Systemen. Als Basis des Application Servers wird J2EE verwendet und die Implementierung von W3C-Standards wie: • Simple Object Access Protocol (SOAP), • Universal Description,Discovery and Integration (UDDI), • Extended Markup Language (XML) und • Web Servies Description Language (WSDL). unterstützt unter anderem die Realisierung von WebServices. Der WebSphere Application Server wird derzeit (September 2001) in drei Versionen zur Verfügung gestellt, die sich an unterschiedlichen Benutzergruppen wenden und einen unterschiedlichen Funktionsumfang haben. Die Advanced Edition, die im Mittelpunkt dieser Arbeit steht, enthält den Funktionsumfang der Standard Edition und erweitert sie um folgende Eigenschaften [siehe EsBe01, IBM101]: • Unterstützung von Enterprise Java Beans (EJB) • Klonen von EJB-Servern über mehrere Knoten um die Erreichbarkeit zu gewährleisten und zu erhöhen • Unterstützung einer Mehr-Maschinen-Umgebung für Server und Servlets. • Workloadmanagement Ab Sommer 2001 soll die Advanced Edition des Application Server die Standard Edition ersetzen [vgl. AdZo01], wobei Letztere im Moment (September 2001) in Version 3.5 erhältlich ist. Mit der Einführung des J2EE-Frameworks, das unter anderem das API für EJBs enthält, als Basis für alle Editionen der Application Server, konnte die Trennung zwischen Standard Edition und Advanced Edition nur mehr schwer aufrecht erhalten werden. Diese Änderung wurde offenbar von IBM zum Anlass genommen, die Produktpalette etwas zu straffen und neu auszurichten. Nachfolgend wird der Funktionsumfang der einzelnen Editionen beschrieben, wobei zum Zeitpunkt der Erstellung dieser Arbeit (Sommer 2001) nur die Advanced Edition in der Version 4.0 vorlag. Die Enterprise Edition wird erst gegen Ende 2001 auf Version 4.0 angehoben und hat derzeit (September 2001) die Version 3.6. Seite: 36 3.1.1.1 WebSphere Application Server Standard Edition Die Standard Edition des WebSphere Application Servers in Version 3.5 unterstützt folgende Funktionen [siehe WSPS01]: • “Usability enhancements throughout, including a Quick Installation that eliminates guesswork • Enhanced Java, leveraging Java 2 Software Development Kit V1.2.2 across all supported operating systems • Support for JavaServer™ Pages, including: o Support for specifications .91 and 1.0 o Extended tagging support for queries and connection management o An XML-compliant DTD for JSPs • Support for the Java™ servlet 2.1 specification including a graphical interface, automatic user session management and user state management • High speed pooled database access using JDBC for DB2® Universal Database™ and Oracle • XML server tools, including a parser and data transformation tools • XSL support • V3.5 supports Windows NT, Windows 2000, Solaris, AIX, AS/400, HP-UX, Red Hat Linux, Caldera Linux, OS/390 and Novell Netware • IBM HTTP server, based on Apache Web Server, including: o An administration GUI o Support for LDAP and SNMP connectivity • Integration with IBM VisualAge® for Java to help reduce development time by allowing developers to remotely test and debug Web-based applications • Tivoli Ready Modules • Fixpack 2: new functionality for Servlet 2.2 and JSP™ 1.1”. Die Standard Edition kann nur auf einem einzelnen Server laufen, der gleichzeitige Zugriff mehrerer Clients ist allerdings möglich. Seite: 37 3.1.1.2 WebSphere Application Server Advanced Edition Die Advanced Edition ist in Version 4.0 erhältlich und unterteilt sich in drei unterschiedliche Konfigurationen [siehe WSPA01]: 1. Single Server Configuration Diese Konfiguration ist für Stand-Alone-Lösungen gedacht, für die die Notwendigkeit von erhöhter Verfügbarkeit, Lastausgleich und Fernadministration nicht vorhanden ist. 2. Full Configuration Die Full Configuration bietet den vollen Funktionsumfang der Advanced Edition und ist für Lösungen gedacht, die auf vielen Servern laufen müssen und Hilfsmittel wie Caching, Clustering, Directory Services u.ä. benötigen. 3. Developer License Diese Konfiguration ist für Entwickler gedacht, die eine einfach zu benutzende Entwicklungsumgebung brauchen, um E-Business Lösungen zu entwerfen und zu testen. Die Unterschiede zwischen den drei Versionen sind in Tabelle 2 dargestellt: Single Server Full J2EE Yes Web Services support Yes Connection Management & Yes Pooling XML Parsing Yes Expanded DB support Yes Built-in Web Server Yes Web-based Admin Console Yes Firewall Support Yes Application Server One Machine configuration Single Security Local OS Directory Services No Application-level WLM No Clustering & Cloning No Additional Caching No Distributed Security No IIOP-based admin console No Multi-Node administration No IBM DB2 included No J2C supported No Developer License Yes Yes Yes Full Configuration Yes Yes Yes Yes Yes Yes Yes Yes One Single Local OS No No No No No No No No No Yes Yes Yes Yes Yes Multiple Multiple OS,LDAP,Custom Yes Yes Yes Yes Yes Yes Yes Yes Yes Tabelle 2: Funktionsvergleich [nach EnClu01] Seite: 38 Der Funktionsumfang dieser Edition bietet folgende Funktionen [siehe WSPA01]: • “Integration with IBM e-business application development environments provided by WebSphere Studio packages and VisualAge for Java Enterprise Edition, while maintaining support of open Java technology standards and other third-party Integrated Development Environments (IDEs) • Consistent, cross-platform support for Windows (NT and 2000), Sun Solaris, HPUX, AIX/6000, OS/400, Linux (Red Hat, SuSE, and Turbo) and Linux/390. • Deepest and broadest, leading-edge implementations of the most up-to-date Java-based technologies and Application Programming Interfaces (APIs) • Comprehensive connectivity support for interacting with relational databases, object databases, transaction processing systems, MQ-enabled applications, and hierarchical databases • A migration path to a more scalable and transactional environment from WebSphere Application Server Standard Edition with a superset of capabilities for a complete production-level, J2EE-based Web application platform • A focus on medium- to high-level transactional environments used in conjunction with dynamic Web content generation and Web-initiated transactions • Inclusion of an Apache-based HTTP Server with enhancements for security and control as well as support for other major Web servers • Performance and scaling attributes that support bean-managed and containermanaged persistence for entity beans and session beans with transaction management and monitoring • An easy-to-use XML-based administrator client and friendly server environment for easy setup right out of the box • Container management and persistent storage within a transactional environment for Java servlets and Enterprise Java Beans™ components • A rich eXtensible Markup Language (XML) parsing and configuration environment • Extensive interoperability with other elements of WebSphere software platform, including: • e-commerce: WebSphere Commerce Suite • e-collaboration: Lotus Domino • Business process management: MQSeries, MQSeries Integrator, MQSeries Everyplace • Business-to-business communications: WebSphere Business Integrator Seite: 39 • Pervasive computing: WebSphere Everyplace Access, WebSphere User Experience“. Die zusätzlichen Funktionen, die in Version 4.0 zu dieser Edition dazugekommen sind, werden im Detail in Kapitel 3.1.1.4 beschrieben. 3.1.1.3 WebSphere Application Server Enterprise Edition Die Enterprise Edition ist momentan (Sommer 2001) in Version 3.6 verfügbar und wird in Ende 2001 auf Version 4.0 angehoben. Grundsätzlich besteht die Enterprise Edition aus dem Application Server in der Advanced Edition und folgenden zusätzlichen Produkten: • Component Broker, • IBM TX Series, • IBM CICS Transaction Gateway, • IBM CICS Universal Clients, • IBM MQSeries und • IBM DCE. Die Enterprise Edition stellt alle Funktionalitäten der Advanced Edition zur Verfügung plus [siehe WSPE01]: • “Full distributed object and business process integration capabilities • IBM's world-class transactional application environment integration (from TXSeries™) • Complete object distribution and persistence (from Component Broker) • Support for MQSeries® • Complete component backup and restore support • XML-based team development functions • Integrated Encina application development kit • Version 3.5 supports Windows NT, Solaris, AIX, and OS/390” Seite: 40 3.1.1.4 Neue Funktionen in Version 4.0 Die Änderungen die in Version 4.0 der Advanced Edition eingebaut wurden sind im folgenden aufgelistet [siehe WASO01]: • “Full Web services — SOAP, UDDI, WSDL, XML, and J2EE™ 1.2 (Java 2 Enterprise Edition platform) certification — including robust integration & transaction technology • Unparalleled connectivity CORBA and Activex interoperability; and expanded database support • Enterprise Java Beans™ (EJB) extensions • Internationalization allows for intelligent adjustments in business logic to accomodate client locales for time zones, currencies, and languages. • Business rules beans enable dynamic updates without coding when business practices change • Business Process Beans Technology Preview • Performance enhancements including dynamic reload of EJBs, dynamic caching (muti-tier), JNDI caching, and more! • A new single-server configuration featuring browser-based administration and new versions of our award-winning Visual Age for Java and WebSphere Studio. Rapid installation is also available for development use at no charge.“ Auf die einzelnen Features der neuen Advanced Edition bezogen, sind folgende Änderungen durchgeführt geworden [siehe EnClu01]: • Das J2EE-Framework wurde komplett als Basis übernommen. D.h. dass auch das Container-Modell von J2EE übernommen wurde. Servlets und JSP, die bis Version 3.5, in einer Servlet-Engine gelaufen sind, haben jetzt als Umgebung einen Web-Container bekommen. Applets laufen jetzt in Applet-Containern und Applikationen in Application-Containern. • Im Rahmen der neuen WebSphere-Version wurden die neuen Editionen eingeführt. Die Unterschiede zwischen den drei Konfigurationen in der Advanced Edition kann man Tabelle 2 auf Seite 37 entnehmen. • Die Implementierung von Java Connector Architecture, J2C, ermöglicht Zugang zu ERP-Systemen und Grossrechnersystemen wie IBM CICS und IMS ausgehend von der Java Plattform. Seite: 41 • Einige neue WebServices wurden integriert, um die Verbindung zu anderen Marktplätzen und Applikationen zu ermöglichen o WSDL o UDDI o SOAP o XML • Hinzugefügt wurde ein verändertes Web-Plugin, das das HTTP-Protokoll zur Kommunikation zwischen HTTP-Server und Application Server verwendet. • Hinzugefügt wurde ein integrierter HTTP-Server (Embedded Webserver), der die Testarbeit erleichtert. • Performance-Verbesserungen. • Verbesserte und neue Administrationstools. • Unterstützung weiterer Betriebssystemplattformen und Datenbanksysteme. 3.1.2 Foundation Extensions Die Bestandteile der Foundation Extensions-Schicht baut auf den Komponenten der Foundation auf und teilt sich in die Untergruppen Entwicklung (Development), Präsentation (Presentation) und Verteilung (Deployment). Der Sinn dieser Schicht ist es Tools anzubieten, mit deren Hilfe man möglichst einfach E-Business Lösungen erstellen, warten und optimieren kann. Dazu gehört auch die Integration von Back-End Systemen in die Web-Applikation. In den Kapiteln 3.1.2.1,3.1.2.2 und 3.1.2.3 werden die einzelnen Tools, die den jeweiligen Untergruppen zugeordnet sind, kurz erklärt. Seite: 42 3.1.2.1 Development Diese Gruppe enthält alle Tools die die Entwicklung von Web-Applikationen ermöglichen. • VisualAge for Java: Grafische Java-Entwicklungsumgebung inklusive Compiler. • WebSphere Studio: vollständiges Werkzeug für Web-Site-Entwickler die Web Applikation in einer Teamumgebung entwickeln. • WebSphere Homepage Builder: vollständiges Werkzeug für Einzel-Web-SiteEntwickler die über keine HTML- oder Programmierkenntnisse verfügen. • WebSphere Business Components: Diese Komponenten ermöglichen die Erstellung und Verwaltung von E-Business Aplikationen. • VisualAge Generator: Tool für die effiziente Entwicklung von skalierbaren, multitier Applikationen. • VisualAge Application Rules: ermöglicht Entwicklern schnell und basierend auf Geschäftsregeln E-Business Applikationen zu erstellen und zu verteilen. 3.1.2.2 Presentation Diese Gruppe beschäftigt sich mit der Verbesserung des Zuganges zu den WebApplikationen und der maßgeschneiderten Präsentation des Webangebotes. • WebSphere Personalization: ermöglicht regelbasierende Personalisierung, um den Inhalt von Web-Seiten genauer auf den Benutzer abstimmen zu können. • WebSphere Portal Server: ist ein Programmpaket, dessen Einzelteile die Erstellung eines Portales ermöglicht, das den Benutzerzugang zu Informationen und Applikationen kanalisiert und die Kommunikation und Zusammenarbeit erleichtert. Dieses Paket besteht aus WebSphere Personalization, Tivoli SecureWay LDAP Directory, WebSphere Application Server, Advanced Edition und Portlets. • WebSphere Voice Server: basierend auf dem VoiceXML Standard, ermöglicht dieser Server die Zustellung von Sprach-Applikationen über das Web. • WebSphere EveryPlace Suite: ermöglicht den Benutzern einfachen Zugang zu Web und Unternehmensdaten über eine grosse Bandbreite an Nicht-PC Geräten wie z.B.: Handys, PDAs und anderen internetfähigen Geräten. Seite: 43 • WebSphere Everyplace Suite Embedded Edition: stellt eine integrierte Middleware zur Verfügung, die Inhaltsentwicklungstools, Anpassungsdienste und Server Integration für eine große Anzahl von Geräten enthält. • WebSphere Transcoding Publisher: Serverseitige Software die Daten anpasst, umformatiert und filtert, um sie an unterschiedliche Umgebungen zu liefern. 3.1.2.3 Deployment Diese Gruppe von Applikationen ermöglicht die Integration von EAI-Systemen, die Erhöhung der Stabilität und Verfügbarkeit der Applikationen und der Analyse des Zugriffverhaltens. • WebSphere Edge Server: addressiert das Problem der Stabilisierung von Antwortzeiten, der Zuverlässigkeit und der Möglichkeit, abhängig von der Nachfrage die Last der Applikation auf Dies wird durch Load-Balancing, Caching mehrere Server zu verteilen. und Inhalt-basiertes Routing bewerkstelligt. • WebSphere Site Analyzer: misst den WebSite Traffic und stellt unterschiedliche Reportfunktionen zur Verfügung. • WebSphere Host Integration: ermöglicht die Anbindung von GroßrechnerSystemen. • MQSeries Integrator: ermöglicht den Transfer von Informationen zwischen verschiedenen, heterogenen Applikationen aufgrund von Geschäftsregeln. • Tivoli Policy Director: ermöglicht zentralisierte Zugangskontrolle und Sicherheit für Web Applikationen. 3.1.3 Application Accelerators Application Accelerators helfen dem Entwickler modulare und an Kundenwünsche angepasste Applikationen für B2B Integration, Workflow, Groupwork, E-Marktplätze und Auktionen zu erstellen. • Lotus Domino: ist eine Software die Gruppenarbeit unterstützt und auch als Plattform für die Integration von E-Business-Strategien fungiert. • WebSphere Commerce Suite: stellt eine integrierte E-Commerce Lösung, die auf offenen Industriestandardarchitekturen und Standardprotokollen basiert, dar. Seite: 44 • WebSphere Business-to-Business Integrator: ermöglicht Unternehmen die Integration zwischen den eigenen heterogenen Computersystemen und denen ihrer Handelspartner. • MQSeries Workflow: ermöglicht die Erstellung von automatisierten Geschäftsprozessen, die eine hohe Integration in bestehende EIS aufweisen ohne die Notwendigkeit die Programmierlogik anzupassen, sobald sich die Geschäftsprozesse ändern. 3.1.4 Customer and Partner Applications Die letzte Schicht umfasst Applikationen die von Dritt-Herstellern produziert werden. Mit Hilfe dieser Programme können Kundenwünsche implementiert werden, die durch die vorhandenen Produkte in der WebSphere Produktfamilie nicht abgedeckt sind. Seite: 45 3.2 Websphere Application Server Architektur Um das Zusammenspiel der einzelnen Web-Technologien zu verstehen, muss zuerst erklärt werden, wie sich die Architektur des WebSphere Application Servers zusammensetzt. Die Grundlage bildet wieder die Advanced Edition des Application Servers, da diese Edition auch bei der Referenzinstallation verwendet wird. J2EE stellt die Basis, auf die die wichtigsten Web-Technologien im WebSphere Application Server aufsetzen. Aus diesem Grund ist das Kapitel 3.2.1 einem Überblick über J2EE gewidmet. In direkter Verbindung mit der Sprache Java steht das Bean Scripting Framework (BSF), dem das Kapitel 3.2.2 gewidmet ist. Das Kapitel 3.2.3 befasst sich mit dem Administrationsmodell des WebSphere Application Servers. Im Kapitel 3.2.4 wird ein kurzer Überblick über die wichtigsten Administrationstools gegeben. Auf den Kapiteln 3.2.3 und 3.2.4 aufbauend erklärt Kapitel 3.2.5 anschliessend die Komponenten des Application Servers. Da XML in allen Bereichen von Relevanz ist, wird im Kapitel 3.2.6 ein Überblick über diese Technologie gegeben. Eine weitere wichtige Erweiterung des Application Servers sind die WebServices, die im Kapitel 3.2.7 kurz erläutert werden. In den Kapiteln 3.2.8, 3.2.9, 3.2.10 und 3.2.11 werden die wichtigsten WebTechnologien und ihre Integration in den Application Server vorgestellt. Das letzte Kapitel 3.2.12 gibt dem Leser einen Überblick wie EnterpriseApplikationen verpackt und im Application Server installiert werden können. Seite: 46 3.2.1 J2EE Überblick Der Begriff J2EE begegnet dem Leser in vielen Bereichen der IT-Landschaft. Sun hat mit J2EE ein Framework definiert, das die weitere Zukunft der Javabasierten Applikationsentwicklung stark prägen wird. Da viele notwendige Webtechnologien (JSP,EJB,etc.) Teil der J2EE-Spezifikation sind bzw. auf sie aufbauen, ist für die aktuellsten Vertreter der Java-basierten Application Server J2EE-Konformität ein Muss-Kriterium. Dieses Kapitel soll dem Leser einen Überblick über die J2EE-Plattform geben. Dabei soll geklärt werden, was J2EE ist, aus welchen Komponenten das Framework besteht und welche Aufgaben diese erfüllen. Das Ziel dieser Ausführungen ist nicht eine detaillierte Beschreibung der Plattform oder der API’s zu geben, sondern den Leser mit den „Buzzwords“ vertraut zu machen, die zum Verständnis von Web-Applikationen unerlässlich sind. 3.2.1.1 Definition Java 2 Platform, Enterprise Edition (J2EE), ist eine Sammlung von Klassen, die zusammen einen Standard für die Entwicklung von Java Applikationen definieren. Dabei setzt J2EE auf der Java 2 Platform, Standard Edition (J2SE) auf und fügt alle notwendigen Features zur Entwicklung von Server-side-Applikationen hinzu. Obwohl die J2EE-Spezifikation Javasoft gehört und grundsätzlich von ihr entwickelt wurde, gibt es viele unterschiedliche Firmen die zu diesem Standard beitragen. Die aktuell gültige Version der J2EE Spezifikation ist 1.3 (Oktober 2001), Version 1.4 befindet sich im Moment (Sommer 2001) im Review-Prozess und soll gegen Ende 2001 fertiggestellt sein. Die J2EE Spezifikation definiert: • Ein Programmier-Modell zum Entwickeln von Server-side Enterprise Applikationen. • Ein Kompatibilitätstest-Verfahren, das die Deckung der Applikation mit dem Referenz-Modell sicherstellen soll. • Eine Referenzimplementierung, die Entwicklern als Vergleich dienen soll. • Eine Runtime-Plattform, die als Standard-Plattform dient, um J2EE-Applikation laufen zu lassen. Seite: 47 3.2.1.2 Die J2EE-Plattform Die J2EE-Plattform setzt sich aus drei Gruppen zusammen: 1. Komponenten wie JSPs, Servlets, EJBs, Applets und Java-Client-Applikationen, 2. Services und 3. Kommunikation Abbildung 10: J2EE-Plattform [nach EnClu01,74] Die J2EE-Komponenten Servlet, JSP und EJB werden in den Kapiteln 3.2.8, 3.2.9, 3.2.11 vorgestellt. Die J2EE-Services und Kommunikationsfeatures umfassen folgende Dienste: • Java Naming and Directory Interface (JNDI): JNDI stellt eine implementierungsunabhängige Schnittstelle zum Zugriff auf beliebige Namensbzw. Verzeichnisdienste dar. Unter einem Namensdienst versteht man die Verknüpfung eines Namens mit einem bestimmten Objekt. Unter einem Verzeichnisdienst versteht man eine Spezialform eines Namensdienstes. Der Verzeichnisdienst bildet einen Namen auf Verzeichniseinträge ab. • Interface Definition Language (IDL). Von der Object Management Group entwickelte Spezifikation mit deren Hilfe im Rahmen von CORBA Schnittstellen zu anderen Sprachen (Ada, C, C++, COBOL, Java, etc.) definiert und beschrieben werden können. • J2EE-Connectors: J2EE-Connectors erlauben die Anbindung von heterogenen EIS an die J2EE-Plattform über eine definierte Schnittstelle. • Java DataBase Connectivity (JDBC): JDBC bietet die Möglichkeit über eine gemeinsame Schnittstelle auf „beliebige“ Datenbanksysteme zugreifen zu können.Der Ausdruck „beliebige“ ist deswegen unter Hochkomma gesetzt, da ein Seite: 48 Zugriff auf ein Datenbanksystem nur möglich ist, wenn für dieses System auch ein passender JDBC-Treiber existiert. Zum aktuellen Zeitpunkt (Oktober 2001) werden über die Java Homepage von Sun 154 Treiber zur Verfügung gestellt. Unterstützt werden u.a. folgende Systeme: MS Access, MS SQL Server, MySQL, Oracle, Progress, Sybase, usw. • Java Message Service (JMS): JMS ermöglicht die systemübergreifende Kommunikation, die entweder als Punkt-zu-Punkt –Verbindung oder als PublizistAbonnent-System ausgestaltet sein kann. • Java Transaction API (JTA): Das JTA erlaubt den Aufbau eines Transaktionssystem zwischen den beteiligten Parteien wie Resource Manager, Application Server, etc. • Java Transaction Service (JTS): JTS spezifiziert die Implementierung eines Transaction Managers, der das JTA unterstützt. • JavaMail: Dieses API ermöglicht die Erstellung eines Plattform- und Protokollunabhängigen Mail- bzw. Nachrichtensystems. • Remote Method Invocation over Internet Inter-ORB Protocol (RMI-IIOP): dieses Feature basiert auf zwei Technologien. RMI ermöglicht die verteilte, objektorientierte Erstellung von Java-Applikationen. Den zweiten wichtigen Teil liefert der offene, sprachunabhängige Standard Common Object Request Broker Architecture (CORBA), der die Kommunikation zwischen verteilten Objekten und Applikationen regelt. In einem CORBA Netzwerk übernehmen sogenannte Object Request Broker (ORB) die Steuerung der Requests zwischen Clients und Servern. Dabei verwenden die ORBs das IIO-Protokoll zur Kommunikation, das wiederum auf TCP/IP basiert. • eXtended Markup Language (XML) • Lightweight Directory Access Protocol (LDAP) Seite: 49 3.2.2 Bean Scripting Framework (BSF) Ursprünglich wurde BSF von IBM entwickelt und über die Alphaworks-Website frei zugänglich gemacht. Per Jänner 2001 wurde der Status des BSF geändert und in ein Open Source Projekt umgewandelt. Im Moment (Sommer 2001) wird das Projekt an die Apache Foundation übertragen. Das Bean Scripting Framework (BSF) ist eine Architektur zur Integration von Skriptsprachen in Java Applikationen und Applets. Das BSF besitzt eine einheitliche Schnittstelle, die die Einbindung und Verwendung unterschiedlicher Skriptsprachen ermöglichen soll. Dabei ist es möglich, von Java-Klassen auf Funktionen in der Skriptsprache zuzugreifen und vice versa. D.h. wenn Sie eine bestimmte Funktion, z.B. eine Datumsüberprüfungsroutine die in VBScript geschrieben ist, benötigen, können Sie mit Hilfe des BSF aus einer JavaKlasse auf diese Funktion in VBScript zugreifen. Ebenso ist der umgekehrte Weg möglich, von einer Skriptsprache aus auf JavaObjekte zuzugreifen.Das BSF Paket ist in Java geschrieben und gestattet Java Programmen den Aufruf von Codezeilen in der betreffenden Ziel-Skript-Sprache. Das zentrale Element in der BSF Architektur ist das BSF Manager Java Bean. Dieses Bean stellt alle notwendigen Dienste zur Verfügung um Skriptsprachen in Java zu integrieren. Das Bean hat ein Verzeichnis aller Skriptsprachen, die das BSF verwenden kann (für eine Liste der zum jetzigen Zeitpunkt (Sommer 2001) unterstützten Sprache siehe Tabelle 4). Der BSF Manager verwaltet auch eine Liste von Java Beans die, sobald Sie im Manager registriert sind, von den Skriptengine manipuliert werden können. Die BSF Engine ist das zweite, wichtige Element in der BSF Architektur. Die BSF Engine ist die Schnittstelle, die den BSF Manager mit den Skriptengines verbindet. In den meisten Fällen ist sie in Java implementiert, aber manche BSF Engines sind auch in anderen Sprachen geschrieben und verbinden sich zu Java über JNI. Die BSF Enginen ermöglicht Skripts den Zugriff auf vorher im BSF Manager registrierte Java Beans, die Registrierung von neuen Java Beans, die Veränderung bestehender Java Beans, die Registrierung von Ereignissen und den Aufruf von Java Bean Funktionen. Seite: 50 Abbildung 11 beschreibt die BSF Architektur. Abbildung 11: BSF-Architektur (siehe KaPe01) Der Aufruf kann mit Übergabeparametern und ohne Übergabeparameter erfolgen. Tabelle 3 gibt eine Übersicht welche Arten des Zugriffs unterschieden werden [siehe FlRo01, Seite 3]: Zugriffsart Aktion Exec Übergibt den Skriptcode ohne Übergabeparameter an die Skript-Engine, und bekommt nach Ausführung des übergebenen Scriptcodes keinen Rückgabewerte zurück. Eval Übergibt einen, meist einzeiligen Skriptcode, ohne Übergabeparameter an die Scriptengine und bekommt einen Rückgabewert von der auswertenden Scriptengine zurück. Apply Übergibt einen mehrzeilige Skriptcode, der eine anonyme Funktion repräsentiert, optionale Parameter und erwartet einen Rückgabewert von der Script-Engine die den übergebenen Scriptcode ausführt. Call Übergibt das Zielobjekt, die aufzurufende Methode bzw. Funktion und optional vorhandene Parameter. Von der auswertenden Skript-Engine wird ein Rückgabewert geliefert. Tabelle 3: BSF Zugriffsarten Seite: 51 Einige Vorteile die sich durch die Verwendung des BSF ergeben, sind: • Keine Monokultur an Programmiersprachen notwendig, • erhöhte Wiederverwendbarkeit von bestehenden Softwarekomponenten, • Ausnutzen der spezifischen Stärken der jeweiligen Sprache, • erhöhte Flexibilität. Zur Demonstration zeigt das folgende Java-Script-Programm die Verwendung von Java-Elemente mit Hilfe des BSF. Das Skript öffnet ein neues Fenster und erstellt einen Button mit dem Text „Hello World“. Sobald man auf den Button drückt, schliesst sich das Fenster und gibt den Text „JavaScript says goodbye“ aus. f = new java.awt.Frame("JavaScript running in BSF"); bsf.addEventListener (f, "window", "windowClosing", "java.lang.System.exit (0);"); b1 = new java.awt.Button("Hello World!"); bsf.addEventListener(b1, "action", null, "quit('JavaScript says goodbye')"); f.add(b1); f.pack(); f.show(); f.toFront(); function quit( s ) { java.lang.System.out.println( s ); java.lang.System.exit(0); } Abbildung 12: Beispiel-Sourcecode für BSF Folgende Sprache werden im Moment von BSF unterstützt: Seite: 52 Sprache Beschreibung Nur Windows BML IBM's Bean Markup Language Jscript Microsofts Implementierung von JavaScript X Mozilla Rhino Netscapes Javascript. NetRexx Eine Java-Implementierung in einer einfacheren Syntax. ObjectRexx Scriptsprache Rexx Scriptsprache PerlScript Activestate’s Perl Scripting Umgebung. X VBScript Visual Basic Scripting Umgebung X Jacl Java Implementierung eines grossen Subsets von Tcl JPython Java Implementierung von Python LotusXSL IBM/Lotus Implementierung der XSL-Sprache Tcl Scriptsprache Tabelle 4: Von BSF unterstützte Sprachen Dabei ist zu beachten, dass die Integration weiterer Sprachen kontinuierlich forciert wird und diese Angaben nur eine Momentaufnahme darstellen. Das BSF findet in z.B. in folgenden Bereichen Anwendung: • Die Bean Markup Language (BML) verwendet das BSF, um Java Beans einzubinden und zu manipulieren. • WebSphere verwendet BSF, um Skriptsprachen in die JSP-Erstellung einzubinden. • LotusXSL (XSLT-Prozessor) verwendet BSF, um XML-Dokumente zu transformieren und formatieren. Dabei ermöglicht BSF das Einbinden anderer XML-Parser, die zumindestens das Java API for XML Processing (JAXP) Interface implementiert haben. In den Beispielen, die bei der Installation des WebSphere Application Servers mit installiert werden, ist auch eine Demonstration der Funktionsweise des BSF enthalten. Seite: 53 3.2.3 WebSphere Administrationsmodell Der grundlegende Aufbau einer WebSphere Plattform beginnt mit dem WebSphere Administrationsmodell. Das WebSphere Administrationsmodell besteht aus mehreren Komponenten. Zu jeder Administrationsdomäne gehören ein oder mehrere Knoten, sogenannte Nodes, und eine gemeinsame Datenbank auf die alle Knoten Zugriff haben. Ein Knoten repräsentiert einen physischen Rechner auf dem zumindestens das Administrationsserver-Service läuft. Auf jedem Knoten können auch ein oder mehrere Application Server laufen. Jeder Administrationsserver speichert seine Verwaltungsdaten in die gemeinsame Administrations-Datenbank, in das sogenannte Repository. Abbildung 13: WebSphere Administrationsmodell [nach EnClu01] Jede WebSphere Ressource wie z.B. ein Servlet wird als Administrations Ressource im Administrationsserver abgebildet. Die Administrationsressource speichert Konfigurationsinformationen über die WebSphere Ressource und stellt Methoden zur Verfügung, um die WebRessource zu starten, zu stoppen und zu konfigurieren. Seite: 54 Die Administrationsserver stellen Dienste zur Kontrolle der Ressourcen und für die Einträge in das Repository zur Verfügung. Neben den oben genannten Diensten wie Starten, Stoppen und Konfigurieren der Ressourcen bietet der Administrationsserver auch noch folgende Dienste an: • Naming, um Objekt Referenzierungen zu ermöglichen. • Transaction monitoring, um den Ablauf von Transaktionen zu überwachen. • Security, zur Authentifizierung und Autorisierung. 3.2.4 Administrationstools Der Application Server wird mit Hilfe von unterschiedlichen Tools administriert: • WebSphere Administrative Console (Admin Console), • Java Administrative Console, • WebSphere Control Program, • XMLConfig Tool. Die ersten beiden genannten Tools besitzen ein grafisches Interface, die letzten beiden können nur über die Command-Line bedient werden (siehe Abbildung 14: Administrationsdienste). Abbildung 14: Administrationsdienste [nach ArIy01] Ein weiteres in Problemsituationen wichtiges Tool, ist „DrAdmin“. Dieses Tool unterstützt den Administrator bei der Diagnose von Problemen. Seite: 55 3.2.5 Websphere Application Server In diesem Kapitel werden die wesentlichen Bestandteile des Application Servers beschrieben. Abbildung 15: Application Server Aufbau Der Application Server enthält in der Advanced Edition folgende Komponenten: • Web-Container: In diesem Container können JSPs und Servlets ausgeführt werden • EJB-Container: In diesem Container werden die EJBs ausgeführt (in der Standard Edition nicht enthalten) Eine weitere Komponente im Zusammenspiel mit dem Application Server ist der HTTP-Server und das dazugehörige Plugin. Der HTTP-Server kommuniziert über das Plugin mit dem Application Server. Das Plugin benutzt ein XML-Konfigurationsfile um festzustellen, ob ein hereinkommender Request vom WebServer oder vom Application-Server behandelt werden soll. Die Kommunikation läuft je nach Konfiguration über das HTTP- oder das HTTPS-Protokoll. Als HTTP-Server kommt entweder der hauseigene IBM-HTTPServer zur Verwendung oder ein Fremdprodukt z.B. Apache für das ein Plugin Seite: 56 existiert. Der im Application Server eingebaute HTTP-Server sollte aus Performance- und Sicherheitsgründen nur für Testzwecke verwendet werden. Der Application Server bietet auch die Möglichkeit an, mehrere, sogenannte Virtual Hosts, zu definieren, die auf einer physischen Maschine laufen. Das erlaubt die Konfiguration mehrerer unabhängig laufender und administrierbarer Applikationen, ohne die Notwendigkeit, jeweils einen eigenen Server zur Verfügung stellen zu müssen. Server Groups ermöglichen die Erstellung von Vorlagen, um mehrere, gleichartige Application Server inklusive ihres Inhaltes aufsetzen zu können. Eine Server Group hat dieselbe Struktur und dieselben Attribute wie der Application Server der als Vorbild benutzt wurde. Diese Server Group kann JSPs, Servlets, EJBs und andere Ressourcen enthalten, deren Attribute über die Administrationstools verändert werden können. Es ist wichtig festzustellen, dass eine Server Group nicht mit einem bestimmten Knoten oder physischen Maschine verbunden ist. Sobald der Administrator eine Server Group angelegt hatte, können von dieser Klone abgeleitet werden. Server Groups werden auch dazu verwendet, um die abgeleiteten Klone zu verwalten. Klonen wird der Prozess des Ableitens von den Server Groups genannt. Dabei entstehen sogenannte Klone, die, im Unterschied zu den Server Groups, mit real existierenden Application Server Prozessen, die auf real existierenden Knoten laufen, verbunden sind. Klone können mehrmals oder einmal auf einer einzelnen Maschine laufen (vertical scaling) oder über mehrere Maschinen (horizontal scaling) verteilt werden. Da die Klone alle ident mit ihrer Vorlage sind, können die Anfragen an die Applikation je nach Auslastung auf mehrere Maschinen verteilt werden. Diese Vorgangsweise erlaubt Load Balancing. Sobald ein Attribut der den Klonen zugrunde liegenden Server Group verändert wird, verändert sich dasselbe Attribut bei den abgeleiteten Klonen. Die Änderung wird allerdings erst nach einem Restart der Klone aktiv. Seite: 57 3.2.5.1 Web-Container Der Web-Container dient zur Verarbeitung von Servlets und JSPs. Der Ablauf bei der Verarbeitung dieser Komponenten wird im Kapitel 3.2.8 und 3.2.9 erklärt. Über die Administrationstools können einige Attribute des Web-Containers wie der Name des Application Servers in dem der Web-Container sich befindet, Art und Anzahl der Verbindungen zwischen dem Application Server und dem Web-Container und der Port auf den der Web-Container hört, konfiguriert werden. Jeder Application Server hat genau einen Web-Container, der zwar verändert, aber nicht gelöscht werden kann. Als Web Module wird eine Web Applikation bezeichnet, die sich aus Servlets, JSPs und statischen HTML-Seiten zusammensetzt. Diese Kollektion aus Dateien wird in einer einzelnen Web-Archiv-Datei (.war) gespeichert, die eine Java-StandardArchivdatei ist. Zusätzlich zu dem Archiv wird eine XML-Datei namens web.xml angelegt, die Informationen über den Inhalt der WAR-Datei enthält. Diese Informationen betreffen die Struktur der enthaltenen Dateien, die Abhängigkeiten von externen Ressourcen und die Anleitung, wie die einzelnen Teile zur Run-Time verwendet werden sollen. Ein Web Modul kann entweder als Stand-Alone-Applikation verwendet werden oder in Kombination mit anderen Modulen (Web, EJB oder anderen) als J2EE-Applikation. 3.2.5.2 Enterprise Java Beans - Container Der EJB-Container stellt die Runtime-Umgebung zur Verfügung, um EJB zu installieren und zu betreiben. Der Container ist ein Service, das sowohl Session Beans als auch Entity Beans unterstützt. Die EJBs kommunizieren nicht direkt mit dem Application Server, sondern nutzen den Container als Schnittstelle. Zusammen mit dem Application Server bildet der Container die Runtime-Umgebung für EJBs. Der Container kümmert sich um Datenspeicherung und –abruf, indem er low-level services wie Threading und Transaction support zur Verfügung stellt. Ein EJB-Modul besteht aus einem oder mehreren Enterprise Beans und wird in einem Java-Standard-Archiv namens JAR abgelegt. Analog zum Web-Modul wird zusätzlich zu der JAR-Datei eine XML-Datei angelegt, die ebenfalls Informationen über die Struktur des EJB-Moduls, die externen Abhängigkeiten und die Anleitung, wie die einzelnen EJBs zu verwenden sind, enthält. Seite: 58 Genauso, wie ein Web-Modul stand-alone laufen oder mit anderen kombiniert werden kann, ist es möglich, ein EJB-Modul ohne andere Module oder in Kombination mit anderen Modulen laufen zu lassen. Seite: 59 3.2.6 XML Dieser Abschnitt gibt dem Leser einen Überblick über XML und damit zusammenhängenden Technologien wie z.B. XSL. 3.2.6.1 XML Grundlagen XML steht für „eXtensible Markup Language“, ist eine Auszeichnungssprache und ist eine Teilmenge von SGML. XML wurde hauptsächlich für die Strukturierung und Beschreibung von Daten entwickelt. XML selbst kennt, im Unterschied zu HTML, keine Marken (wie z.B. H1), die die Darstellung der Elemente z.B. im Browser beeinflussen. Wie SGML ist XML eine Auszeichnungssprache, die dem Autor die Möglichkeit gibt selbstdefinierte Marken mit Daten zu verknüpfen. Der Zweck von Marken ist Information über die Daten zu Verfügung zu stellen, mit denen sie verknüpft sind. Demzufolge besteht eine XML-Dokument üblicherweise aus Marken und aus den dazugehörigen Daten. Im folgenden Beispiel gibt die „<autor>“ Marke an, dass „Michael Jeschko“ den Name eines Autors beschreibt: „<autor>Michael Jeschko</autor>“ Die Syntax von XML ist ähnlich der von HTML. Sie ist allerdings wesentlich strikter in der Auslegung: • Öffnende Marken müssen auch ein schliessende Marke haben. • Die Marken sind case-sensitiv und ineinander verschachtelt. • Verschachtelte Marken müssen korrekt geschlossen werden. • Jedes Dokument muss eine Root-Marke haben. • Attribut-Werte müssen immer unter Hochkomma gestellt werden. XML-Dokumente, die alle für XML definierten Bedingungen erfüllen, werden well formed genannt. Der Ausdruck der Gültigkeit eines Dokumentes bezieht sich auf den Umstand ob ein XML-Dokument, dass sich auf eine bestimmte Document Type Definition (DTD) bezieht, sich an die von der DTD definierte logische Struktur hält. Wenn das Dokument sich an die in der DTD definierten Struktur hält, wird es als gültig bezeichnet. Die Document Type Definition enthält u.a. die logische Struktur (Hierarchie) der dazugehörigen Dokumente, die Elemente die im XML-Dokument vorkommen dürfen, die Definition welche Art von Daten (numerisch, alphabetisch, etc.) durch eine Marke beschrieben werden usw. Seite: 60 Mit Hilfe einer DTD wird ein XML-Parser in die Lage versetzt zu überprüfen ob ein vorliegendes XML-Dokument gültig ist. Ohne eine DTD kann ein Parser nur feststellen ob ein XML-Dokument well-formed ist, d.h. ob es sich an die XMLSpezifikationen hält. Abbildung 16 zeigt ein Beispiel für eine DTD. <?xml version = “1.0”?> <!DOCTYPE authors [ <!ELEMENT authors(author)+> <!ELEMENT author(firstname, lastname, title)> <!ELEMENT firstname(#PCDATA)> <!ELEMENT lastname(#PCDATA)> <!ELEMENT title(#PCDATA)> ... Abbildung 16: DTD-Beispiel Abbildung 17 demonstriert den Aufbau eines XML-Dokumentes, in diesem Fall hält das Dokument die Marktanteile verschiedener Web Server für die Jahre 1997-1999 fest: <?xml version="1.0" ?> <marketshare> <marketname>Web Server</marketname> <year value="1998"> <product pname="Apache">50.6%</product> <product pname="Netscape">8.2%</product> <product pname="Microsoft">22.7%</product> </year> <year value="1997"> <product pname="Netscape">11.8%</product> <product pname="Microsoft">17.7%</product> <product pname="Apache">43.7%</product> </year> <year value="1999"> <product pname="Apache">55.5%</product> <product pname="Microsoft">22.0%</product> <product pname="Netscape">7.5%</product> </year></marketshare> Abbildung 17: XML-Beispiel [nach EnCh01] 3.2.6.2 XSL Da XML nur die Struktur der Daten beschreibt, besteht die Notwendigkeit, eine Technologie zur Verfügung zu stellen, die dem Anwender die Möglichkeit gibt zu definieren, wie die Daten dargestellt werden sollen. Hier kommt die Extensible Style Language (XSL) ins Spiel. XSL ist eine Sprache zur Beschreibung von Stylesheets. XSL besteht aus drei Teilen: Seite: 61 • XSL-Transformation ist eine Sprache zur Transformation von XML-Dokumenten. • XML Path Language (XPath) ist eine Ausdruckssprache die u.a. von XSLT verwendet wird, um Zugang zu Teilen von XML-Dokumenten zu erhalten oder dorthin zu verweisen. • XSL Formatting Objects definiert ein XML-Vokabular um FormatierungsSemantiken zu spezifizieren. Ein XSL-Stylesheet ist eine Datei, die angibt, wie ein bestimmtes XML-Dokument darzustellen ist. Obwohl XSL eine unterschiedliche Syntax verwendet, ist sie kompatibel zu CSS2. Für nähere Ausführungen siehe W3C01. Abbildung 18 zeigt ein XSLT-Stylesheet, mit dem das XML-Dokument (vgl. Abbildung 17) über die Marktanteile einiger Webserver in ein HTML-Dokument umgewandelt werden kann [siehe EnCh01]: <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"> <xsl:output method="html"/> <xsl:template match="/"> <HTML> <HEAD> <STYLE TYPE="text/css"> .tableText{ font-weight : bold; font-family : monospace; background-color : silver; text-align : right;} </STYLE> </HEAD> <BODY> <H1>Market share report for the <xsl:apply-templates select="marketshare/marketname"/> market </H1> <TABLE BORDER="1" class="tableText"> <THEAD> <th></th> <xsl:for-each select="marketshare/year[1]/product"> <xsl:sort order="ascending" select="@pname"/> <th><xsl:value-of select="@pname"/></th> </xsl:for-each> </THEAD> <TBODY> <xsl:for-each select="marketshare/year" > <xsl:sort order="ascending" data-type="number" select="@value" /> <tr><td><xsl:value-of select="@value"/></td> <xsl:for-each select="product"> <xsl:sort order="ascending" select="@pname"/> <td><xsl:value-of select="."/></td> </xsl:for-each> </tr> </xsl:for-each> </TBODY> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet> Abbildung 18: XSLT-Beispiel [nach EnCh01] Seite: 62 3.2.6.3 XSLT XSLT ist die Sprache um XML-Dokumente in andere Dokumente wie z.B. andere XML-Dokumente, HTML-Dokumente, WML-Dokumente, etc. umzuwandeln. XSLT ist neben der reinen Umformatierung von XML-Dokumenten auch in der Lage, aus bestehenden XML-Dokumenten bei der Umwandlung neue Elemente hinzuzufügen oder zu entfernen. Es ist ebenfalls möglich, die Elemente umzugruppieren, zu sortieren und festzulegen, welche Elemente dargestellt werden sollen und welche nicht. Für die Transformierung von XML-Dokumenten verwendet XSLT XSL-Stylesheets, die Vorlagen enthalten, wie die einzelnen Marken der Vorlage umzusetzen sind. Um XSL auf XML-Dokumente anwenden zu können, ist eine XSL-Engine notwendig, die die oben genannten Funktionen ausüben kann. Mit geeigneten XSL-Dokumenten ist es damit möglich, XML-Dokumente in beliebige Endformate zu formatieren und damit eine Datenquelle vielen unterschiedlichen Endgeräten z.B. Handys, braillefähigen Endgeräte, PDAs, etc. zugänglich zu machen. XML lässt dem Anwender die Freiheit, die Darstellung des XMLDokumentes von einem XSL-fähigen Client übernehmen zu lassen, oder die Umformatierung gleich am Server vorzunehmen und dem Endgerät das passend formatierte Dokument zu schicken. Ein weiterer Vorteil ist, dass XSL-Vorlagen nicht nur auf ein bestimmtes XML-Dokument angewendet werden können, sondern wiederverwendbar sind. D.h. man kann eine XSL-Vorlage auf viele verschiedene XML-Dokumente anwenden, solange die Struktur der XML-Dokumente im Wesentlichen gleich bleibt. Abbildung 19 zeigt wie das XML-Dokument nach Anwendung des XSLT-Stylesheets durch einen XSLT-Prozessor in HTML aussieht. Dabei ist zu beachten, dass die Daten nach Jahr und Hersteller sortiert ausgegeben werden, obwohl sie im XMLDokument ungeordnet enthalten sind. Seite: 63 Abbildung 19: Beispiel für XSL-Konvertierung [nach EnCh01] 3.2.6.4 Weitere XML-Technologien XPath wird dazu verwendet, um bestimmte Teile innerhalb eines XML-Dokumentes zu adressieren. XPath wurde unter anderem entwickelt, um sowohl von XSLT als auch von Xpointer verwendet zu werden. XPath wird auch von XML Linking verwendet. XPointer unterstützt den Zugriff auf die interne Struktur, wie Elemente oder Attribute, von XML-Dokumente. XLink ermöglicht dem Anwender, Links zwischen verschiedenen XML-Dokumenten herzustellen. Dabei ist es auch möglich, auf mehrere Resourcen zu verweisen. Namespaces erlauben dem Autor eines XML-Dokuments mehrere DTDs innerhalb eines Dokuments zu verwenden, selbst wenn Elemente mit demselben Namen in zwei oder mehreren DTDs definiert sind. Ein Beispiel dafür wäre ein Bibliothekseintrag [siehe EnCh01]: <?xml version”1.0”?> <library-entry xmlns:authr=”authors.dtd” xmlns:bk=”books.dtd”> <bk:book> Seite: 64 <bk:title>XML Sample</bk:title> <bk:pages>210</bk:pages> <bk:isbn>1-868640-34-2</bk:isbn> <authr:author> <authr:firstname>Joe</authr:firstname> <authr:lastname>Bloggs</authr:lastname> <authr:title>Mr</authr:title> </authr:author> </bk:book> </library-entry> Abbildung 20: Beispiel für Namespaces In diesem Beispiel ist das Element title sowohl in der DTD für den Autor als auch in der DTD für das Buch definiert. Mithilfe der Namespaces kann spezifiziert werden, welches Element konkret gemeint ist. XQL stellt eine Abfrage-Sprache ähnlich wie SQL zur Verfügung, um Daten aus XML-Dokumente extrahieren zu können. XSL Formatting Objects werden dazu verwendet, um die Darstellungsform eines XML-Dokumentes festzulegen. 3.2.6.5 WebSphere und XML Die Anwendungsmöglichkeiten für XML im Rahmen der IBM WebSphere Plattform sind vielseitig. Einige Konfigurationsdateien sind bereits in XML codiert, WebServices-Konfigurationsdaten, der Deployment Descriptor und das Web Application Archive werden in XML abgespeichert. Die WebSphere Plattform stellt einige Tools zur Verfügung, die die Verwendung von XML unterstützen: • XMLConfig Tool – dient zur Administration des Application Servers, • XEENA – ist ein visueller XML-Editor, • XML Viewer – ermöglicht die Anzeige von XML-Dokumenten, ihre hierarchische Struktur und die dazugehörigen DTDs, • XML for Java Parser – ein in Java geschriebener Parser zur Validierung von XML-Dokumenten und zur Extrahierung der Daten aus XML-Dokumenten, • XSL-Editor – ermöglicht die Erstellung, Bearbeitung und Speicherung von XML und XSL-Dokumenten, • LotusXLS – ist ein XSLT-Prozessor, der die Umwandlung von XML-Dokumenten in beliebige andere Dokumente ermöglicht, Seite: 65 • DTD Catalogs (DTDs für WML, MathML, CDF), • u.v.m Am Beginn jeder Arbeit mit XML-Dokumenten steht die Generierung dieser Dokumente. WebSphere bietet im Wesentlichen drei Möglichkeiten: 1. Println-Statements aus Servlets, 2. mithilfe des DOM APIs in JavaBeans oder Servlets können XML-Dokumente generiert und durch Servlets oder JSPs wieder ausgegeben werden, 3. mithilfe von XML-formatierten JSPs. Im Zentrum jeder Applikation, die mit XML-Dokumenten arbeitet, steht der XMLProzessor. Die Aufgabe eines XML-Prozessors ist die Verarbeitung von XMLDokumenten, um die Daten über bestimmte Schnittstellen dem Programm zugänglich zu machen, die Syntax zu überprüfen und zu kontrollieren, ob ein Dokument wellformed bzw. valide ist. Im Moment haben sich zwei APIs als quasi-Standards etabliert, um auf die Daten, die der Parser liefert, zugreifen zu können: • SAX – Simple API for XML, • DOM – Document Object Model. Der von IBM zur Verfügung gestellte XML for Java Parser ist ein XML Prozessor und arbeitet mit DOM. Die Klassen des Java Parsers können in jede Java-fähige Applikation eingebunden werden und ermöglichen so den Zugriff auf die notwendigen Verarbeitungskapazitäten, um mit XML-Dokumenten zu arbeiten. Um XML-Dokumente in andere Dokumente umzuwandeln wird von IBM LotusXSL zur Verfügung gestellt. Der Lieferumfang von LotusXSL enthält u.a. ein Servlet, das direkt eingebunden werden kann und die Transformationen vornimmt. Dieses Tool kann auch von der Command Line aus aufgerufen werden. Seite: 66 3.2.7 WebServices Die in Version 4.0 des Application Servers neu integrierten WebServices werden im Folgenden kurz vorgestellt, da sie ganz neue Möglichkeiten zur Erstellung und Vermarktung von Web-Applikationen eröffnen. 3.2.7.1 Definition WebServices sind gekapselte, selbst-beschreibende, modulare Applikationen die quer über das Internet verteilt und benutzt werden können. Eine solche Applikation könnte z.B. Börsedaten sammeln und zur Verfügung stellen. Sobald ein WebService installiert ist, können andere Applikationen oder WebServices dieses Service finden und die zur Verfügung gestellten Funktionen, nutzen. WebServices sind sprach- und betriebssystem-unabhängig, da sie sich auf bereits vorhandene Technologien wie HTML und XML stützen. 3.2.7.2 Architektur WebServices werden durch Service Providers zur Verfügung gestellt. Die Funktionen, die ein WebService anbietet, werden mithilfe der Web Services Description Language (WSDL) beschrieben. Ein Service Broker hilft Service Provider und Service Requestors sich gegenseitig zu finden. Ein Service Requestor benützt das Universal Discovery Description and Integration (UDDI) API, um dem Service Broker mitzuteilen, was er für Services benötigt. Der Service Broker liefert dem Service Requestor die gefundenen Resultate der Anfrage zurück, die es dem Service Requestor ermöglichen, mit dem Service Provider Verbindung aufzunehmen und die angebotenen Dienste in Anspruch zu nehmen. Abbildung 21: Web Service Komponenten und Vorgangsweise [nach EnClu01] Seite: 67 3.2.7.3 WebServices Implementierung Die WebServices Implementierung stützt sich größtenteils auf vier Technologien: • Web Services Description Language (WSDL), • Universal Discovery Description and Integration (UDDI), • Simple Object Access Protocol (SOAP), • eXtensible Markup Language (XML). WSDL ist eine XML-basierte Schnittstellendefinitions-Sprache, die die Erstellung von WebService-Katalogen inklusive einer Beschreibung der offerierten Funktionen ermöglicht. WSDL definiert die WebService Schnittstelle. Diese Schnittstellendefinition enthält Angaben über: • den Kommunikationstyp. D.h. wie funktioniert die Kommunikation zwischen dem WebService und dem Anwender des Service (one-way, request-response, notification). • Meldungen, die das WebService definieren. • verwendete Datentypen(XML-Schema). • das WebService Zugangsprotokoll. D.h. über welches Protokoll kann der Anwender das WebService ansprechen (z.B. SOAP over http). • den WebService Kontaktpunkt. D.h. über welche Adressierung erreicht der Anwender das WebService (z.B. WebService URL). UDDI stellt ein globales und plattformunabhängiges Framework dar, das es Unternehmen ermöglicht: • sich gegenseitig zu finden, • zu definieren, wie man miteinander interagiert und • in einer globalen Registry Informationen abzulegen. Die Informationen, die ein Unternehmen preisgibt, wenn es sich bei einer UDDIRegistry anmeldet, sind: • „White pages“ : Adressen und Kontaktmöglichkeiten • „Yellow pages“ : standardisierte Angaben zu welcher Branche sich ein Unternehmen zählt, • „Green Pages“: Technische Informationen über die angebotenen WebServices. Im Moment (September 2001) existieren drei öffentliche Registries, die von IBM („http://www-3.ibm.com/services/uddi/“), Microsoft („http://uddi.microsoft.com/“) und HP („https://uddi.hp.com/uddi/“) Seite: 68 betrieben werden. Alle drei Registries befinden sich im Beta-Status und bieten die Möglichkeit an, nicht näher beschriebene Web Services über die Registry anzubieten. SOAP ist ein netzwerkneutrales, schlankes, auf XML-basierendes Protokoll, das zum Datenaustausch zwischen zwei Applikationen dient. Seite: 69 3.2.8 Servlet Der folgende Abschnitt soll dem Leser einen Überblick über Servlets und ihre Funktionsweise geben. 3.2.8.1 Überblick Ein Servlet ist eine Web-Komponente, die in einem Container, dem WebContainer, läuft und zur Erstellung von dynamischen Inhalten dient. Servlets sind kleine, plattformunabhängige Java Klassen, die kompiliert im Container ausgeführt werden. Um zu verstehen, wie der WebSphere Application Server mit Servlets arbeitet, ist es wichtig zu verstehen, wie die grundlegende Funktionsweise aussieht. Die Kommunikation zwischen Clients und Servlets funktioniert mit Hilfe des Request/Response-Modells, das als Standard-Interface im Java Servlet API definiert ist. Der Ablauf der Kommunikation zwischen Client und Servlet gestaltet sich folgendermaßen: 1. Der Client schickt eine Anfrage an den Application Server 2. Der Application Server leitet die Anfrage an das angeforderte Servlet weiter 3. Das Servlet konstruiert dynamisch eine Antwort an den Client, wobei auch externe Ressourcen wie EJBs, Unternehmens-Datenbanken, EIS,etc. zum Einsatz kommen können, und gibt sie an den Application Server zurück. 4. Der Server leitet die Antwort an den Client zurück. Abbildung 22: Client-Servlet-Kommunikation [nach ArIy01] Bezogen auf die Funktionalität verhalten sich Servlets wie Common Gateway Interface (CGI)-Programme, haben aber im Vergleich zwei Vorteile aufzuweisen: • Plattformunabhängigkeit durch die Verwendung von Java • Performance-Vorteile: ein Servlet wird nur einmal vom Application Server geladen und bedient jeden Request mit einem neuen Thread. Das hat den Vorteil, dass Seite: 70 nicht für jede Anfrage das Servlet neu geladen und instanziiert werden muss, wie es bei CGI-Programmen der Fall ist. Das Java Servlet-API ist nicht Bestandteil der Kern-Funktionalität von Java, sondern kann als Zusatz-Paket bezogen werden. Diese Pakete (javax.servlet, javax.servlet.http) bestehen aus Java-Klassen, die Standard-Schnittstellen zwischen dem Web-Client und dem Servlet und dem Servlet und seiner Umgebung definieren. Das Javax.servlet-Paket enthält protokollunabhängige Klassen um Servlets zu erstellen, das javax.servlet.http-Paket erweitert die Funktionalität des Basispaketes, um das HTTP-Protokoll zu unterstützen. Die folgenden Ausführungen zum Lebenszyklus eines Servlets beschränken sich der Einfachheit-halber auf das javax.servlet.http-Paket. 3.2.8.2 Der Servlet-Lebenszyklus Ein WebClient kommuniziert nie direkt mit einem Servlet, sondern stellt die Anfrage nach einem Servlet an den Application Server und dieser leitet die Anfrage an das Servlet weiter. Die Aufgabe des Servers ist es, das Servlet bei Bedarf zu laden und zu initialisieren, die Anfragen an die Servlets weiterzuleiten und ein Servlet bei Bedarf wieder zu schließen. Sobald ein Servlet instanziiert wurde, wird bei jeder Anfrage immer nur ein neuer Thread generiert, der die Anfragen behandelt. D.h. es existiert immer nur eine Instanz eines bestimmten Servlets. Abbildung 23 zeigt wie eine einfache Kommunikation zwischen einem Client und einem Servlet funktioniert. Abbildung 23: Client-Servlet Kommunikation Seite: 71 Der Lebenszyklus eines Servlets wird im Servlet-API durch die init, service(doGet oder doPost) und destroy-Methoden repräsentiert. Die init-Methode führt alle notwendigen Initialisierungen des Servlets durch, wie z.B. die Etablierung einer Datenbankverbindung, und wird auf jeden Fall bei jeder Instanzierung des Servlets einmal aufgerufen, bevor noch ein Request behandelt wird. Sobald ein Servlet initialisiert ist, kann es Requests entgegennehmen. Jeder Request wird von einem ServletRequest-Objekt dargestellt, jeder dazugehörige Response durch ein ServletResponse-Objekt. Die service-Methode ist abstrakt definiert und muss von jedem Servlet implementiert werden. Dabei werden als Parameter das Response- und das Request-Objekt übergeben. Das Request-Objekt enthält alle notwendigen Informationen über den Client und die Anfrage selber. Das Response-Objekt enthält in den meisten Fällen eine dynamische generierte HTML-Seite, die an den Client zurückgeliefert wird. Die destroy-Methode wird aufgerufen, wenn ein Servlet wieder zerstört wird. In dieser Methode können Tätigkeiten, wie das Schließen von Datenbankverbindungen durchgeführt werden. Die getServletConfig-Methode liefert ein ServletConfigObjekt, das dazu benutzt werden kann, Initialisierung-Parameter zurückzuliefern. Die getServletInfo-Methode liefert Informationen über den Author, die Version und das Copyright des Servlets. Abbildung 24 zeigt wie der Lebenszyklus eines Servlets an Hand der eben vorgestellten Methoden aussieht. Abbildung 24: Servlet Lebenszyklus [nach ArIy01] Seite: 72 3.2.9 JSP Die Java Server Pages-Technologie erlaubt, ähnlich den Servlets, die Erstellung von dynamischen Webseiten. Diese Nähe zu den Servlets kommt nicht von ungefähr, da JSP eine Erweiterung der Servlet Technologie darstellen. Die JSP-Technologie trennt die Benutzeroberfläche von der Inhaltsgenerierung, um eine Seiten-Layout-Änderung ohne Änderung des darunterliegenden Inhalts durchführen zu können. JSP nutzen XML-ähnliche Marken („tags“, „actions“) und Java-Scriptlets, um die Logik zur Erstellung des Inhaltes zu kapseln. Dabei profitieren JSP von der engen Integration mit anderen Java-Technologien wie Java Beans und Servlets. Im Normalfall bearbeitet ein Web-Entwickler eine HTML-Seite, die das Layout, statisches HTML und Platzhalter-Marken für dynamischen Inhalt enthält. Diese Platzhalter sind JSP-Marken („tags“, „actions“) oder Aktionen und beschreiben den dynamischen Inhalt. Diese Aktionen können Java-Programme (JSP-Scriptlets oder Ausdrücke) sein, die den dynamischen Inhalt erstellen. JSP Aktionen können auch in der Form von speziellen JSP-Marken auftreten, die allgemein benötigte Dienste, wie die Weitergabe eines SQL-Statements an die Datenbank übernehmen. Die JSP Spezifikation 1.2 definiert acht Standard Elemente („actions“), die von jeder JSP Implementation zur Verfügung gestellt werden müssen. Diese sind: • <jsp:root> • <jsp:text> • <jsp:forward> • <jsp:getProperty> • <jsp:include> • <jsp:plugin> • <jsp:setProperty> • <jsp:useBean> Seite: 73 Zusätzlich zu den Standard Elementen unterstützt die JSP-Spezifikation ab Version 1.1 die Entwicklung von wiederverwendbaren Modulen, „custom actions“ genannt. Eine custom action wird durch den Einsatz eines „custom tags“ in einer JSP verwendet. Eine Sammlung von „custom tags“ nennt man „tag library“. Custom tags haben folgende Eigenschaften: • Die aufrufende JSP kann mit dem Aufruf Attribute übergeben • Custom tags haben Zugang zu allen Objekten, die auch der JSP zugänglich sind. • Custom tags können die Antwort, die von der JSP erzeugt wird, beeinflussen. • Custom tags können untereinander kommunizieren. • Custom tags können verschachtelt angeordnet werden und erlauben dadurch eine komplexere Interaktion mit JSP. Der Einsatz von JSP wird nur im Zusammenspiel mit JavaBeans und Servlets empfohlen. Dabei übernimmt das Servlet die Aufgabe, die allfälligen Benutzereingaben zu übernehmen, die Daten der Geschäftslogik entsprechend zu verarbeiten und die Resultate in eine kleine Anzahl von JavaBeans zu verteilen. Diese Beans werden an die JSP zurückgeliefert und die JSP muss nun nur mehr an die richtigen Stellen die Attribute der Beans einfügen. Diese Art der Verwendung von JSP nützt zwar nicht die komplette Leistungspalette aus, stellt aber in Hinsicht auf Code-Wiederverwendung und Wartbarkeit die beste Lösung dar. Abbildung 25 zeigt das Zusammenspiel der einzelnen Komponenten wie JSP, Servlet und JavaBean. Abbildung 25: JSP-Einsatz Seite: 74 Wie schon in Kapitel 3.2.5 dargelegt, laufen sowohl Servlets als auch JSP in einer gemeinsamen Run-time-Umgebung, genannt WebContainer. JSP werden in Servlets compiliert und nachdem sie compiliert sind, ist der Lebenszyklus der JSP sehr ähnlich dem eines Servlets. Abbildung 26: JSP-Lebenszyklus [nach ArIy01] Wenn der WebContainer eine Anfrage für eine JSP bekommt, wird diese an den JSP-Processor weitergeleitet. Sollte das die erste Anfrage für diese JSP sein, existiert noch keine Java-Source-Code-Datei und keine Class-Datei für diese JSP. Der JSP-Processor erzeugt nun zuerst aus der JSP-Datei eine Java Servlet SourceCode-Datei und compiliert diese, um eine Class-Datei herzustellen. Beide Dateien werden nun im JSP-Processor-Verzeichnis abgelegt. Abbildung 27: Java-Source-Code-File-Generierung [nach ArIy01] Für alle nachfolgenden Anforderungen dieser JSP wird nun die bereits compilierte Class-Datei verwendet. Das hat den Vorteil, dass nicht für jede einzelne Anfrage der Vorgang des Erstellens der Source-Code-Datei und der Class-Datei durchlaufen werden muss. Seite: 75 3.2.10 JavaBean JavaBeans stehen zwar nicht im Zentrum dieser Arbeit, spielen aber eine wichtige Statistenrolle im Konzert des Application Servers. Aus diesem Grund erklärt dieser Abschnitt kurz was JavaBeans sind und welche Idee hinter dieser Technologie steckt. Am Zusammenspiel zwischen Servlets und JSP wird eine von vielen Möglichkeiten des Einsatzes von JavaBeans demonstriert. Das JavaBean API ermöglicht die Erstellung von wiederverwendbaren Java-Komponenten, die dem Prinzip des „Write Once, Run Anywhere“ folgen. Die Einsatzmöglichkeiten von JavaBeans sind praktisch unbegrenzt, wie einige Beispiele zeigen sollen: • Kryptografie-Komponenten, • Kalender-Komponenten, • Datenzugangs-Komponenten, • Informationstransportmittel (siehe JSP), • XML-Decoder, • usw. Die Funktionen, die ein JavaBean übernehmen kann, reichen von simplen Aufgaben wie Datumsüberprüfung bis zu hochkomplexen Aufgaben, wie das Erstellen einer Performance-Vorschau eines Aktien-Portfolios. Beans können entweder für den Benutzer sichtbar sein oder unsichtbar im Hintergrund ablaufen. Beim Einsatz von JavaBeans spielt es auch keine Rolle ob man eigene, selbstgeschriebene Beans einsetzt oder Beans von Fremdherstellern zukauft. Zusammengefasst sind die wichtigsten Vorteile von JavaBeans: 1. JavaBeans profitieren von den Vorteilen des Java „Write once, run-anywhere“ Paradigmas. 2. Die Eigenschaften, Ereignisse und Methoden einer Bean, die einer Applikation zur Verfügung gestellt werden, sind kontrollierbar. 3. Der aktuelle Zustand von Beans kann gespeichert und zu jedem beliebigen späteren Zeitpunkt wieder reaktiviert werden. 4. JavaBeans sind verteilbar. 5. Ein und dasselbe Bean kann je nach Einsatzort (Server, Client) verschiedene Aufgaben durchführen. Seite: 76 3.2.11 Enterprise Java Bean Enterprise Java Beans stellen ein Serverkomponentenmodell für eine verteilte und objekt-orientierte Architektur dar. Weiters muss hier festgehalten werden, dass EJBs kein Produkt sind, sondern ein API und Programmiermodell. Die EJB Spezifikation legt nur fest, wie man ein EJB programmiert (API) und es zur Verteilung und Installation beschreibt (Deployment Descriptor). Die Voraussetzung, damit man EJBs verwenden kann, ist ein EJB-Container, der für die EJB-Komponenten als Laufzeitumgebung dient und sie von low-level Diensten wie Datenbankverbindungen, Transaktion, Sicherheit, Zustandsverwaltung, etc. entlastet. Diese Entlastung ermöglicht die Konzentration auf die reine Geschäftsbzw. Applikationslogik. Der Leitsatz lautet „Deklarieren statt Programmieren“. Der EJB-Container stellt für die EJBs die Laufzeit-Umgebung bereit. Die Eigenschaften eines EJB und seine Anforderungen (Transaktionen, Datenbankverbindungen, Sicherheit, etc.) an den Container bzw. den Application Server stellen Metadaten dar und werden in einem sogenannten Deployment Descriptor festgehalten. Die im Deployment Descriptor enthaltenen Informationen werden teilweise bei der Entwicklung und teilweise bei der Installation festgelegt. Jeder Aufruf eines Clients an ein EJB wird vom Container abgefangen und dahingehend überprüft, ob eine Leistung vom Container notwendig ist z.B. Öffnen einer Datenbankverbindung, Starten einer Transaktion, Zugangsüberprüfung,etc. Abbildung 28: EJB Funktionsprinzip [angelehnt an HrNo01] Seite: 77 3.2.11.1 Rollen Im Zusammenhang mit der Entwicklung, Installation und Administration von EJB werden von den Beteiligten mehrere Rollen eingenommen: • Enterprise Bean Provider o entwickelt die EJBs und o legt die Schnittstellen fest, implementiert die Klassen und erzeugt die EJB-jarDateien. • Deployer o konfiguriert die EJBs, um sie für die Laufzeitumgebung anzupassen. • EJB Container provider o stellt den Container für die EJBs zur Verfügung und passt diesen an die Anforderungen der EJBs an. • Application assembler o erstellt neue Applikationen, die sich aus den Teilen Servlets, JSPs, HTML, XML und EJBs zusammensetzen können. • EJB Server provider o stellt den Application Server zur Verfügung und passt ihn an die Bedürfnisse des EJB-Containers an. • System administrator o überwacht und betreibt den Application Server. Seite: 78 3.2.11.2 Arten von Beans EJB Beans können in 2 Gruppen mit jeweils 2 Unterkategorien eingeteilt werden: 1. Entity Beans • Bean Managed • Container Managed 2. Session Beans • Stateful Beans • Stateless Beans Session Beans haben entweder keinen Zustand (Stateless Bean) oder einen Zustand, der für die Lebensdauer eines Beans gilt (Stateful Bean). Die Existenz eines Beans beginnt mit der Erstellung durch den Client und endet mit der Löschung durch den Client oder den Server. Stateful Session Beans die einen Zustand haben, sind exklusiv einem Client zugeordnet, Stateless Session Beans können unterschiedlichen Clients zugeordnet werden. Normalerweise überstehen Session Beans den Absturz bzw. Neustart eines Servers/Containers nicht und haben für den Client keine sichtbare Identität (Schlüssel). Entity Beans haben eine persistenten Zustand, der entweder vom Bean (Bean managed) oder vom Container (Container managed) verwaltet wird. Entity Beans können von mehreren Clients gleichzeitig verwendet werden und überstehen normalerweise den Absturz bzw. Neustart eines Servers bzw. Containers. Jedes Entity Bean kann anhand eines Schlüssels eindeutig identifiziert werden. Beans, die nicht selber für ihre Persistenz sorgen, müssen dem Container mit Hilfe der Deployment Description, die zu persistierenden Felder offen legen und damit wird der Container für die Speicherung des Zustandes des Beans in der Datenbank zuständig. Bean Managed EJBs sorgen selber für ihre Persistenz. Um Ressourcen zu sparen, können Entity Beans und Stateful Session Beans passiviert werden, d.h. ihr Zustand wird gespeichert und bei Bedarf wird das Bean mit dem gespeicherten Zustand wieder reaktiviert. Session Beans werden normalerweise dazu benutzt, um Prozesse zu unterstützen, die keine expliziten Zustände verlangen oder ein „Gedächtnis“ der erfolgten Kommunikation brauchen. Mit Entity Beans wird die persistente Geschäftslogik modelliert. Abbildung 29 erläutert den grundlegenden Unterschied zwischen Session Beans und Entity Beans aus der Sicht der zugreifenden Clients. Seite: 79 Abbildung 29: Session Beans vs. Entity Beans [angelehnt an HrNo01] Als Beispiel zur Anwendung von EJBs kann ein Online-Shop dienen. Dabei übernimmt ein Stateful Session Bean die Funktion eines Warenkorbes. In diesem Session Bean werden über die Dauer der kompletten Session die Artikel eingetragen, die der Benutzer kaufen möchte. Leitet der Benutzer den Kaufvorgang ein, so wird über ein Stateless Session Bean, das auf die Daten des Stateful Session Beans zugreifen kann, ein Entity Bean angesprochen, dass den internen Prozess des Bestellens abwickelt. 3.2.11.3 EJB-Architektur DieEJB-Architektur gestaltet sich folgendermaßen: • Die Bean Instance ist das eigentliche Enterprise Bean, das die Geschäftslogik enthält. • EJB Remote Interface -Das EJB Remote Interface legt nach aussen alle zur Verfügung stehenden Business-Methoden offen. Das EJB Object stellt die Benutzersicht des EJBs und implementiert das EJB Remote Interface. Das Interface wird vom Enterprise Bean Provider erstellt, die Implementierung wird vom EJB Container Provider durchgeführt. • EJB Home Interface -Das Home Interface ist der Mechanismus mit dem ein Client den Container anweisen kann, neue Instanzen eines EJB zu kreieren oder bestehende EJBs zu finden oder zu löschen. Das Interface wird vom Enterprise Bean Provider erstellt und wird vom EJB Container Provider implementiert. Durch die Implementierung entsteht das Home Object eines bestimmten EJB. Seite: 80 • Naming Service -Ein Naming Service (LDAP, NDS, DNS, etc.), hilft dem Client den EJB Container zu finden, auf dem das gesuchte EJB läuft. In Java wird der Zugriff auf solche Services durch JNDI realisiert. • EJB Container -Der Container fungiert als Schnittstelle zwischen der Aussenwelt und den EJBs und stellt dem EJBs low-level Services zur Verfügung. • EJB Server -Der EJB-Server stellt u.a. dem Container die notwendige Umgebung zur Verfügung und übernimmt auch Aufgaben wie load-balancing, Resourcenmanagement, Sicherheitsdienste, etc. Abbildung 30: Komponenten der EJB-Architektur Der Ablauf des Zugriffes auf ein EJB beginnt mit der Suche des Clients über ein Naming Service nach einem EJB-Container, der das gesuchte EJB enthält. Ist das Bean gefunden, erhält der Client eine Referenz auf das Home-Object und das EJB-Object. Mithilfe des Home-Objects ist es dem Client möglich, eine neue Instanz des EJBs zu erzeugen oder eine bestehende zu löschen. Durch das EJB-Object kann der Client die offengelegten Methoden des eigentlichen EJBs aufrufen. Das EJB-Object nimmt diese Aufrufe entgegen und leitet sie an die entsprechende Instanz des EJBs weiter. Wie man erkennen kann, kommunizieren Clients und EJBs nie direkt miteinander, sondern nur über die im Container implementierten Interfaces. Seite: 81 3.2.11.4 Transaktionen Transaktionen gehören zu den Ressourcen, die vom EJB Container den EJBs zur Verfügung gestellt werden können. Für die Einbettung des Transaktionssystems werden die in Java Transactional Service (JTS) und Java Transactional API (JTA) definierten Schnittstellen verwendet. EJBs unterstützen Transaktionen, deren Grenzen entweder vom Client, EJB oder vom Container festgelegt werden. Über diverse Bridges ist die Anbindung von bestehenden Transaktionssystemen(IBM CICS, Siemens openUDM, etc.) an den EJB Server möglich. 3.2.11.5 Datenbankzugriffe Für die Datenbankzugriffe der EJBs ist der Container zuständig, der dafür die JDBCSchnittstelle verwendet. Die Datenbankverbindungen werden vom Container verwaltet und in einem Pool gesammelt. Über JNDI und einem Name Service können EJBs die Referenz auf eine Datenbankverbindung anfordern. Sobald ein EJB eine Datenbankverbindung nicht mehr braucht, wird diese Verbindung wieder an den Pool zurückgegeben, wo sie dann eine andere EJB verwenden kann. D.h. die Verbindungen werden von EJB nicht physisch sondern nur logisch geschlossen. 3.2.11.6 Sicherheit/Authentifizierung Die Authentifikation von Clients bzw. Benutzern ist nicht Teil der EJB-Spezifikation, sondern wird vom Application Server übernommen.Diesen Bereich deckt u.a. in der WebSphere Produkt Plattform das Produkt Tivoli Policy Director ab. Der Application Server muss allerdings dem Container Daten über die Identität des Clients bereitstellen. Dazu gehört, wer der Client ist und welchen Rollen er zugeordnet ist. Durch den Deployment Descriptor wird auch festgelegt, welche Rollen welche Methoden verwenden dürfen. D.h. für jedes einzelne Enterprise Bean wird festgelegt, welche Benutzerrollen es kennt und welche Rollen welche Methode aufrufen dürfen. Da das im Application Server integrierte Sicherheitssystem auf jeden Fall anders aussehen wird und andere Rollen definiert haben wird, als die vom Enterprise Bean Provider im Deployment Descriptor festgelegten Rollen, müssen die im EJB definierten Rollen auf die im Sicherheitssystem existierenden Rollen umgelegt werden. Diese Aufgabe übernimmt der Deployer. Seite: 82 3.2.12 J2EE - Applikationen Eine J2EE Applikation besteht aus einem oder mehreren Modulen: • Enterprise Bean Module (EJB Klassen), • Web Module (Servlets, JSPs, Statische Resourcen wie HTML, GIF, JPGs, etc. ), • Client Module (Client Klassen). Jedes dieser Module besitzt jeweils einen Deployment Descriptor. Der Deployment Descriptor ist ein XML-Text-basierte Datei mit der .XML-Extension, der beschreibt wie die einzelnen Komponenten zu installieren sind. Ein Descriptor für ein Enterprise Bean Modul umfasst z.B. die notwendigen Definitionen damit das EJB Transaktionen nutzen kann oder die Sicherheitsfeatures, die den Zugriff auf das EJB regeln. Da der Descriptor nur deklarative Wirkung entfaltet, kann er geändert werden, ohne den Sourcecode der betreffenden Komponenten verändern zu müssen. Zur Laufzeit liest der Application Server die Definitionen aus dem Descriptor aus und passt die Umgebung dementsprechend an. Nachfolgend sehen Sie ein Beispiel für den Deployment Descriptor der Beispiel-Applikation, die im Installationsumfang enthalten ist: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN" "http://java.sun.com/j2ee/dtds/application_1_2.dtd"> <application id="Application_ID"> <display-name>WebSphere Application Server Samples</displayname> <description>WebSphere Application Server Samples EAR</description> <module id="WebModule_1"> <web> <web-uri>YourCo.war</web-uri> <context-root>/WebSphereSamples</context-root> </web> </module> <module id="WebModule_2"> <web> <web-uri>Samples.war</web-uri> <context-root>/WebSphereSamples/SingleSamples</contextroot> </web> </module> <module id="WebModule_3"> <web> <web-uri>theme.war</web-uri> <context-root>/theme</context-root> </web> </module> <module id="EjbModule_1"> <ejb>TimeoutEJBean.jar</ejb> </module> <module id="EjbModule_2"> <ejb>IncrementEJBean.jar</ejb> </module> <module id="EjbModule_3"> <ejb>HelloEJBean.jar</ejb> </module> Seite: 83 <module id="EjbModule_4"> <ejb>AccountAndTransferEJBean.jar</ejb> </module> <module id="JavaClientModule_1"> <java>HelloEJBClient.jar</java> </module> </application> Abbildung 31: Deployment-Descriptor [nach EnCl201] Diese Module werden in einem Enterprise Application Archiv Datei (.EAR) zusammengefasst. Die EAR-Datei ist eine Standard-JAR-Datei mit der Extension .EAR. Eine EAR-Datei repräsentiert eine ganze J2EE Applikationen oder nur einen Teil davon, da sich eine Applikation auch aus mehreren EAR-Dateien zusammensetzen kann. Die EAR-Datei besteht aus einem oder mehreren Enterprise Bean-, Web- bzw. Application Client Modulen. Diese Bestandteile der EAR-Datei sind im folgenden aufgelistet und werden grafisch in Abbildung 32 dargestellt: • Ein EJB Modul besteht aus einer .JAR-Datei, die den Deployment Descriptor, die .class-Dateien für die Enterprise Beans und eventuell zusätzliche Dateien enthält. • Ein Client Modul besteht aus einer .JAR-Datei, die den Deployment Descriptor, die .class-Dateien für den Application Client und eventuell zusätzliche Dateien enthält. • Ein Web Modul besteht aus einer .WAR-Datei, die den Deployment Descriptor, die .class-Dateien für die Servlets bzw. JSPs, JSP Dateien und eventuell zusätzliche Dateien enthält. Abbildung 32: Aufbau einer J2EE Applikation Die Kapselung in Wiederverwendbarkeit homogenen bestehender Modulen hat Komponenten den Vorteil, erhöht Übersichtlichkeit auch bei grossen Applikationen bewahrt wird. wird dass die und die Seite: 84 Um eine J2EE Applikation zu packen, stellt der WebSphere Application Server das grafische Application Assembly Tool (AAT) zur Verfügung. Der stark ausgeprägte modulare Aufbau der J2EE Applikationen ermöglicht eine gute Aufteilung der Aufgaben auf unterschiedliche Rollen. Daher wurden im Rahmen des J2EE Frameworks einige Rollen definiert, die, je nach Grösse des Unternehmens, von einer oder mehreren Personen erfüllt werden können. Die ersten beiden Rollen (J2EE Product Provider, Tool Provider) übernehmen die Prozesse der Auswahl, des Kaufes und der Installation des J2EE Produktes z.B. IBM WebSphere Application Server, BEA WebLogic, usw. Die eigentlichen Komponenten werden von einem Application Component Provider erstellt, von einem Application Assembler zusammengesetzt und von einem Application Deployer installiert. Die Aufteilung auf diese verschiedenen Rollen baut auf dem Prinzip auf, daß jede Rolle eine verteilbare Datei als Output produziert, die wiederum den Input für die nachfolgende Rolle darstellt. In der Applikationsentwicklungsphase erstellt ein Entwickler in der Rolle als Application Component Provider diverse Enterprise Beans, die in eine EJB .JAR-Datei zusammengefasst werden. Die Rolle des Application Assemblers fasst mehrere JAR-Dateien und andere Module zu einer Applikation zusammen und erstellt eine EAR-Datei. Diese EAR-Datei wird von einem System Administrator in der Rolle des Application Deployers im Zielsystem installiert und den gegebenen Umständen angepasst. Abbildung 33 wiederholt anschaulich den Entwicklungsprozess einer J2EE Applikation und demonstriert die Einbindung der unterschiedlichen Rollen in diesen Prozess. Seite: 85 Abbildung 33: J2EE Rollen im Entwicklungsprozess Kapitel 5.3 auf Seite 167 ff zeigt an einem Beispiel einer einfachen J2EEApplikationen, wie das Packen und Installieren von Enterprise Applikationen funktioniert. Seite: 86 3.3 Systemvoraussetzungen Die folgenden Tabellen geben darüber Auskunft, welche Hardware-Voraussetzungen für die unterschiedlichen Editionen des WebSphere Application Servers gelten und welche Betriebssysteme unterstützt werden. Die Angaben über den notwendigen Hauptspeicher und Prozessor betreffen Intel-kompatible Systeme mit einem Betriebssystem von Microsoft (Windows 2000 oder NT). Für andere Betriebssysteme können die Angaben leicht variieren. Tabelle 5 dokumentiert die Anforderungen für die Standard Edition Version 3.5 des Application Servers. IBM Websphere Application Server Standard Edition Version 3.5 Hardware-Anforderungen • CD-Rom Laufwerk • Minimum 256 MB RAM, Empfohlen 512 MB RAM • 75 MB auf der Festplatte Software-Anforderungen • Windows NT Server 4.0 oder • Windows 2000 Server 5.0 oder • Solaris 2.6 oder • AIX 4.3.3 oder • HP-UX 11.0 • Netscape Navigator 4.07 oder Microsoft Explorer 4.01 • IBM JDK 1.2.2 Unterstütze Betriebssysteme AIX, HP-UX, Solaris, Windows 2000, Windows NT. Tabelle 5: Systemanforderungen „Application Server Standard Edition 3.5“ (Stand: Ende 2001) Seite: 87 Tabelle 6 dokumentiert die Anforderungen für die Advanced Edition Version 4.0 des Application Servers. IBM Websphere Application Server Advanced Edition Version 4.0 Hardware-Anforderungen • CD-Rom Laufwerk • Minimum 384 MB RAM, Empfohlen 512 MB RAM • 180 MB auf der Festplatte • Intel Pentium 500 Mhz Software-Anforderungen • Windows NT Server 4.0 oder Windows 2000 Server 5.0 oder • Solaris 2.6 oder • AIX 4.3.3 oder • HP-UX 11.0 oder • Linux RedHat 7.1 oder SuSe 7.1 • Netscape Navigator 4.73 • Web Browser der HTML4 und CSS unterstützt • IBM JDK 1.2.2 Unterstütze Betriebssysteme AIX, HP-UX, Linux, NetWare, OS/2, OS/390, OS/400, Solaris, Windows 2000, Windows NT und z/OS Tabelle 6: Systemanforderungen „Application Server Advanced Edition 4.0“ (Stand: Ende 2001) Seite: 88 Tabelle 7 dokumentiert die zusätzlichen Anforderungen der Enterprise Edition Version 3.6 und der damit verbundenen Applikationen gegenüber der Standard Edition Version 3.5. IBM Websphere Application Server Enterprise Edition Version 3.6 Components Broker Server Zusätzlich zu Anforderungen für den IBM Websphere Application Server Advanced Edition Version 3.5 Hardware-Anforderungen • Minimum 256 MB RAM • 800x600 Display • 5 GB auf der Festplatte • Intel Pentium 300 Mhz Software-Anforderungen • Windows NT Server 4.0 oder • Solaris 2.7 oder • AIX 4.3.3 oder • IBM JDK 1.2.2 Unterstütze Betriebssysteme AIX, Solaris, Windows NT Tabelle 7: Systemanforderungen „Application Server Enterprise Edition 3.6“ (Stand: Ende 2001) Tabelle 8 dokumentiert die Anforderungen und unterstützen Betriebssystem für den IBM HTTP Server. IBM HTTP Server Version 1.3.12.4 Hardware-Anforderungen Keine Angaben Unterstütze Betriebssysteme AIX, HP-UX, Linux, NetWare, OS/2, OS/390, OS/400, Solaris, Windows 2000, Windows NT und z/OS Tabelle 8: Systemanforderungen „IBM HTTP Server“ (Stand: Ende 2001) Ein wichtiger Teil eines Application Servers stellt der HTTP-Server dar. Seite: 89 Der WebSphere Application Server unterstützt per Plugin folgende HTTP-Server: • Apache Server, Version 1.3.12 oder höher, für AIX, Solaris, Windows NT und HP-UX, • Netscape Enterprise Server, Version 3.5.1 oder höher, für AIX, Solaris und Windows NT, • iPlanet Enterprise Server 4.0 für AIX, Solaris, Windows NT, Windows 2000 und HP-UX, • Microsoft Internet Information Server 4.0 für Windows NT, • Microsoft Internet Information Server 5.0 für Windows 2000, • Lotus Domino Application Server, Release 5.0.2b für AIX, Solaris, Windows NT und HP-UX, • IBM HTTP Server 1.3.12 for AIX, Solaris, Windows NT, Windows 2000 und HP-UX. Tabelle 9 gibt einen Überblick, welche Entwicklungstools und unterstützenden Produkte auf welchen Betriebssystemen lauffähig sind. Weitere Websphere Produkte Produktname Unterstütze Betriebssysteme Visual Age for Java Windows 2000, Windows 98 und Windows NT WebSphere Studio Windows 2000, Windows 98, Windows Me und Windows NT WebSphere Homepage Builder Windows und Linux WebSphere Personalization AIX, HP-UX, Linux, OS/400, Solaris, Windows 2000 und Windows NT WebSphere Voice Server Microsoft Windows NT. Unterstützung von Windows 2000, Linux und Solaris ist geplant WebSphere Transcoding AIX, Linux, OS/400, Solaris, Windows 2000 und Publisher Windows NT WebSphere Edge Server AIX, Linux, Solaris, Windows 2000 und Windows NT WebSphere Site Analyzer AIX, Linux, Solaris, Windows 2000, Windows 95, Windows NT und Windows 98 Tabelle 9: Betriebssystemunterstützung für WebSphere Produkte (Stand: Ende 2001) Seite: 90 4 Installation des WebSphere-Servers Im Zentrum dieses Kapitels steht die Installation des WebSphere-Referenzservers. Dazu werden im Kapitel 4.1 die Voraussetzungen aufgelistet, die notwendig sind, um den Server aufsetzen zu können. Kapitel 4.2 und 4.3 erklären wie ein Benutzer unter Windows 2000 angelegt und mit den notwendigen Rechten ausgestattet wird. Kapitel 4.5 enthält eine detaillierte Beschreibung wie die einzelnen Komponenten installiert und konfiguriert werden. Um die Beispiele installieren, verwenden und verstehen zu können, die im Kapitel 5 beschrieben werden, ist die Installation einiger zusätzlicher Programme notwendig, die teilweise frei verfügbar im Internet zu beziehen sind. Die dafür notwendigen Programme sind in Tabelle 10 aufgelistet. Da es im Rahmen der vorliegenden Arbeit nicht möglich ist auch nur annähernd alle Komponenten der WebSphere Plattform zu installieren, beschränken sich die Ausführungen auf die wesentlichsten Teile. Tabelle 10 dokumentiert welche Produkte werden im Rahmen des Referenzservers installiert werden. Installierte Software Produktname Bemerkung Bezugsquelle Microsoft Windows 2000 Betriebssystem Microsoft IBM HTTP Server 1.3.19 WebServer IBM DB2 Enterprise Edition 7.2 Datenbanksystem IBM IBM WebSphere Application Application Server IBM Java-Entwicklungstool IBM WebSphere Studio 4.0 Entry Entwicklungstool für IBM Edition JSP,Servlet,etc. Xeena Visueller XML-Editor Alphaworks XML Viewer Viewer für XML-Dokumente Alphaworks XSLerator Ein Tool zur Erstellung von Alphaworks Professional Server Advanced Edition 4.0 VisualAge for Java 4.0 Entry Edition XSLT-Skripts LotusXSL Ein XSLT-Prozessor Alphaworks Tabelle 10: Übersicht über die installierten Produkte Seite: 91 Alle im Zusammenhang mit XML stehenden Tools können unter www.alphaworks.ibm.com (Alphaworks) kostenlos bezogen werden. Die einzelnen Installationsabschnitte bestehen in den meisten Fällen aus drei Teilen: 1. Arbeiten, die vor der eigentlichen Installation des Produktes durchzuführen sind, 2. die eigentliche Installation und 3. Konfigurations- und Verifikationsarbeiten. Seite: 92 4.1 Voraussetzungen und wichtige Hinweise Die an dieser Stelle gemachten Angaben beziehen sich nur auf die Referenzinstallation. Tabelle 11 listet den notwendigen freien Platzbedarf auf der Festplatte auf, der benötigt wird, um die Applikationen zu installieren. Hardware 200 MB Festplattenplatz (Minimum) für WebSphere Application Server 350 MB Festplattenplatz (Minimum) für IBM DB2 Personal Edition 7.1 50 MB Festplattenplatz (Minimum) für IBM HTTP Server 1.3.19 350 MB Festplattenplatz (Minimum) für Visual Age for Java 4.0 Entry Edition 300 MB Festplattenplatz (Minimum) für WebSphere Studio 4.0 Entry Edition 100 MB Festplattenplatz (Minimum) für die XML-Tools 135 MB Festplattenplatz (Minimum) für das TEMP-Verzeichnis 1485 MB ~ 1,5 GB Festplattenplatz (Minimum) 256 MB RAM (Minimum) Tabelle 11: Hardwareanforderungen Tabelle 12 enthält die betriebssystemseitigen Softwarevoraussetzungen. Software Microsoft Windows 2000 Service Pack 1. Microsoft Internet Explorer 5 oder höher bzw. Netscape Navigator 4.7 oder höher Winzip Tabelle 12: Softwareanforderungen Die für die Referenzinstallation notwendigen und in Tabelle 10 auf Seite 90 angegebenen Applikationen, erlauben nur zum Teil (z.B. WebSphere Studio) eine Installation unter Windows 98 bzw. ME. Für eine vollständige Installation aller notwendigen Applikationen auf einem Rechner ist daher Windows 98 bzw. ME keine Option. Grundsätzlich ist eine Installation des Application Servers unter Linux möglich, allerdings ist zu diesem Zeitpunkt (Oktober 2001) z.B. das WebSphere Studio nicht für Linux erhältlich. Damit ist eine komplette Installation des Seite: 93 Referenzservers auf Basis Linux ausgeschlossen. Tabelle 13 dokumentiert die Installationspfade, die für die wichtigsten Komponenten genutzt werden. Software WebSphere Application Server D:\WebSphere\AppServer WebSphere Application Server HTTP D:\WebSphere\AppServer Plugin DB2 Server und Client D:\Program Files\SQLLIB IBM HTTP Server D:\IBM HTTP Server IBM VisualAge for Java 4.0 D:\Program Files\IBM\VisualAge for Java Entry Edition IBM WebSphere Studio 4.0 D:\Program Files\WebSphere\Studio40 Entry Edition XEENA D:\IBM\Xeena XML-Viewer D:\WebSphere\XMLTools\xmlviewer XSLerator D:\WebSphere\XMLTools\XSLerator LotusXSL D:\WebSphere\XMLTools\lotusxsl-j_2_0_1 Tabelle 13: Installationspfade Im Laufe der Installation wird es notwendig sein, einige zusätzliche Benutzer anzulegen. Tabelle 14 listet alle Benutzer auf, die für die Installation und den Betrieb des Application Servers und der damit zusammenhängenden Applikationen (DB2, HTTP Server, etc.) notwendig sind. Zusätzlich finden Sie in der Installationsanleitung jeweils an geeigneter Stelle einen Hinweis darauf, welchen Benutzer Sie mit welchem Namen und mit welchen Rechten anlegen sollen. Notwendige Benutzer Benutzername Beschreibung db2admin Administrationsbenutzer für die DB2-Datenbank wasuser Benutzer für den Zugriff des Application Server auf die Administrationsdatenbank im DB2-System wasadmin Administrationsbenutzer für Application Server und HTTP Server wsdemo Benutzer für den Zugriff der Application Server Beispiele auf die DB2-Datenbank Tabelle 14: Notwendige Benutzer Seite: 94 Sie können auch andere Benutzernamen verwenden, allerdings wird davon abgeraten, da sich alle Ausführungen auf die in Tabelle 14 angegebenen Namen beziehen. Wenn Sie selbstgewählte Benutzernamen verwenden, achten Sie darauf, dass diese Benutzernamen nicht länger als 8 Zeichen sein dürfen, da es sonst im Zusammenspiel mit DB2 zu Problemen kommt. Weitere wichtige Namen, die im Rahmen der Installation benötigt werden, sind in Tabelle 15 aufgelistet. Weitere wichtige Namen Name Beschreibung DB2 - DB2 DB2-Dienste DB2 - DB2CTLSV DB2 - DB2DAS00 DB2 JDBC Applet Server DB2 JDBC Applet Server - Steuerzentrale DB2-Lizenzserver DB2-Sicherheitsservice IBM HTTP Administration HTTP Server Dienste IBM HTTP Server IBM WS AdminServer 4.0 Application Server Dienst wasdb Application Server Administrationsdatenbank wasalias Aliasname für die Application Server Administrationsdatenbank wasnode DB2-Knoten für die Application Server Administrationsdatenbank wasuser Benutzer für den Zugriff des Application Server auf die Administrationsdatenbank im DB2-System Tabelle 15: Weitere wichtige Namen Seite: 95 In Tabelle 16 sind die von den wichtigsten Produkten verwendeten IP-Ports aufgelistet. Diese IP-Ports müssen unbelegt sein, damit die reibungslose Funktion der Produkte gewährleistet ist. Belegte IP-Ports Name der Applikation Port WebSphere Application Server Beschreibung 900 Bootstrap port 9000 Location Service Daemon 9080 Default application server DB2 Server und Client 523 DB2 Administration Server 50000 DB2 instance connection port 50001 DB2 instance interrupt port 50002 DB2 Control Server IBM HTTP Server 80 Standard HTTP port 443 Standard HTTPS port 8008 IBM HTTP Server Administration port Tabelle 16: Port-Belegungen Zur Überprüfung welche IP-Ports bereits belegt sind, können sie folgende Vorgangsweise wählen: • Öffnen Sie eine DOS-Box mit Start > Run > Command. • D:\netstat –an • Überprüfen Sie anhand der Liste ob sich unter den aufgelisteten IP-Ports keiner der oben genannten Ports befindet (als Beispiel siehe Abbildung 34). Abbildung 34: Beispiel für Port-Überprüfung Seite: 96 Falls einer der in Tabelle 16 angegebenen Ports belegt sein sollte, müssen Sie den Dienst bzw. die Applikation, die diesen Port belegt stoppen bzw. beenden. Kapitel 4.4 beschreibt wie man Dienste unter Windows 2000 starten und stoppen kann. Um die Installation der einzelnen Produkte durchführen zu können, ist es notwendig mit einem Benutzer angemeldet zu sein, der Administrationsrechte hat. Sollte das nicht der Fall sein, kann es sein, dass manche Produkte gar nicht oder nicht vollständig installiert werden. Sie haben auch die Möglichkeit über die Datei „D:\WINNT\SYSTEM32\DRIVERS\ETC\SERVICES“ die Port-Zuordnung der Dienste zu verändern. Dieser Vorgang wird allerdings nicht empfohlen, da er detailliertes Wissen über das Betriebssystem, die Funktionsweise von Diensten und dem TCP/IPProtokoll verlangt. Die Referenzinstallation wurde auf einer englischen Windows 2000 Version durchgeführt, dementsprechend beziehen Handlungsanweisungen und Screenshots auf diese Version. sich auch alle Seite: 97 4.2 Anlegen eines Windows 2000 Benutzers Dieser Abschnitt beschreibt wie man unter Windows 2000 einen Benutzer anlegt. Es soll hier nur demonstriert werden, wie die Vorgangsweise grundsätzlich abläuft. Welche Benutzer sie konkret anlegen müssen, wird in der Installationsanleitung beschrieben. 1. Starten sie die Systemsteuerung „Start > Settings > Control Panel“. 2. In Control Panel starten sie die Anwendung „Users and Password“. Abbildung 35: Control Panel 3. Auf Add klicken. (Hinweis: Wenn die Checkbox „Users must enter a username and a password to use this computer„nicht angeklickt ist, können keinen neuen Benutzer angelegt werden.) Abbildung 36: Users and Passwords Seite: 98 4. Geben Sie den neuen Benutzernamen, den vollen Namen und eine Beschreibung an und klicken Sie auf „Next“. Abbildung 37: Einen neuen Benutzer hinzufügen 5. Geben Sie das Passwort für den Benutzer ein und klicken Sie auf „Next“. Abbildung 38: Passwort festlegen 6. Klicken Sie auf „Other/Administrators“ und klicken Sie auf „Finish“. Abbildung 39: Gruppenzugehörigkeit festlegen Seite: 99 7. Jetzt sollte der neue Benutzer zusammen mit den schon vorher bestehenden Benutzern in der Liste aufscheinen. 8. Klicken Sie auf den Reiter „Advanced“ und auf den Button „Advanced“. Abbildung 40: „Advanced“-Dialog in „Users and Passwords“ 9. Klicken Sie auf den Ordner „Users“ und wählen Sie dann auf der rechten Seite den gewünschten Benutzer aus, dessen Eigenschaften Sie ändern wollen. Abbildung 41: "Local Users and Groups"-Dialog 10. Mit der rechten Maustaste klicken Sie auf den gewünschten Benutzer und wählen „Properties“. Seite: 100 11. Wählen Sie die Option „Password never expires“ an und klicken Sie auf „OK“. Abbildung 42: „Benutzer Eigenschaften“-Dialog Hinweis: Ohne Ihr Zutun ist in Windows 2000 die Paßwort-Option so eingestellt, dass das Paßwort nach einiger Zeit (Default: 42 Tagen, einstellbar) abläuft d.h. ungültig wird. Sobald ein Paßwort abläuft, muß man das Paßwort ändern. Wenn man einen Dienst mit einem Benutzer zu starten versucht, dessen Paßwort abgelaufen ist, schlägt dieser Versuch fehl. Der Grund ist, da ein Dienst nicht direkt und visuell mit dem Benutzer interagieren kann, daß kein Dialog erscheinen kann, der es dem Benutzer ermöglichen würde, das Paßwort zu ändern. Deswegen sollte man einen Benutzer, der dafür bestimmt ist einen Dienst zu starten, immer mit der Option „Password never expires“ anlegen. Seite: 101 4.3 Benutzerrechte für den Benutzer vergeben Dieser Abschnitt beschreibt wie man unter Windows 2000 Benutzerrechte vergeben kann. Es soll hier nur demonstriert werden, wie die Vorgangsweise grundsätzlich abläuft. Welche Rechte Sie welchem Benutzer zuweisen müssen, wird in der Installationsanleitung beschrieben. 1. Starten sie die Systemsteuerung „Start > Settings > Control Panel“. 2. Rufen Sie die „Local Security Settings“ auf und wählen Sie den Ordner „Local Policies/User Rights Assignment“ aus. Abbildung 43: Local Security Settings 3. Markieren Sie das gesuchte Recht auf der Liste auf der rechten Seite und klicken Sie darauf mit der rechten Maustaste. 4. Jetzt wählen Sie „Security“. Seite: 102 5. Im jetzt erscheinenden Dialog klicken Sie auf „Add“. Abbildung 44: Local Security Policy Setting 6. Jetzt wählen Sie aus der Liste den Benutzer aus, dem Sie das ausgewählte Recht zuweisen wollen (z.B. wasadmin). Durch einen Doppelklick auf den Benutzernamen wird der Benutzer in der unteren Liste eingetragen. Dieser Vorgang wird mit einem Klick auf „OK“ abgeschlossen. Abbildung 45: Benutzer auswählen Seite: 103 7. Jetzt schliessen Sie diese Aktion mit einem Klick auf „OK“ ab. Abbildung 46: Abschliessen der Local Security Policy Settings 8. Die Liste der Benutzerrechte sollte nach dieser Aktion so aussehen. Abbildung 47: Übersicht über die Local Security Settings Seite: 104 4.4 Dienste starten bzw. stoppen Dieser Abschnitt beschreibt wie man unter Windows 2000 Dienste starten bzw. stoppen kann. 1. Starten sie die Services mit „Start > Settings > Control Panel > Administrative Tools > Services“. 2. Um einen Dienst zu starten, drücken Sie auf das Play-Symbol. Abbildung 48: Starten eines Dienstes 3. Um einen Dienst zu stoppen drücken Sie auf das Stop-Symbol Abbildung 49: Stoppen eines Dienstes Seite: 105 4.5 Installationsschritte Dieser Abschnitt beschreibt die einzelnen Installationsschritte für die in Tabelle 10 aufgelisteten Applikationen. 4.5.1 IBM HTTP Server Als erste Applikation muß der IBM HTTP Server installiert werden, da der Application Server auf den HTTP-Server aufsetzt. 4.5.1.1 Vorarbeiten Um den IBM HTTP Server installieren und verwenden zu können, muss ein neuer Benutzer angelegt werden. 1. Legen Sie einen neuen Windows 2000 Benutzer mit dem Namen „wasadmin“, dem Passwort „wasadmin“ und folgenden Eigenschaften an: • Lokale Benutzer (kein Domänenbenutzer), • Benutzer der Gruppe „Administratoren“, • Mit den zusätzlichen Rechten: „log on as a service”, „act as a part of the operating system”. 4.5.1.2 Installation Zur Installation des IBM HTTP Servers sind folgende Schritte notwendig: 1. Melden Sie sich mit einem lokalen Benutzer an, der Administrationsrechte besitzt. 2. Starten Sie das Setup mit setup.exe im Verzeichnis HTTPD. 3. Wählen Sie als Sprache English und klicken Sie auf „OK“. Abbildung 50: Sprachauswahldialog 4. Lesen Sie sich den Willkommenstext durch und klicken Sie auf „Next“. Seite: 106 5. Lesen Sie sich den Text zum Software Lizenz Abkommen durch und klicken Sie auf „Next“. 6. Im „Choose Destination Dialog“ legen Sie den Ziel-Installationspfad auf „D:\IBM HTTP Server“ fest und klicken auf „Next“. Abbildung 51: Installationspfadangabe 7. Im „Setup Type Dialog“ wählen Sie „Typical“ aus und klicken auf „Next“. Abbildung 52: Setupart auswählen 8. Im „Select Program Folder Dialog“ klicken Sie auf „Next“. Seite: 107 9. Im „Information for Service Setup“ geben Sie die folgenden Daten ein und klicken auf „Install“: - User ID: wasadmin - Password: wasadmin - Enter the password again for verification: wasadmin Abbildung 53: Benutzerangaben für den Start des Services Dieser Dialog legt fest mit welchem Benutzer das Service gestartet wird. Die folgenden Eingaben gehen von der Annahme aus, dass Sie den Benutzer wie im Kapitel 4.5.1.1 beschrieben angelegt haben. 10. Das Setup-Programm richtet jetzt den HTTP Server ein. 11. Sobald der „Setup Complete Dialog“ erscheint, klicken Sie auf „Yes, I will restart my computer now“ und klicken auf „Finish“. 12. Wenn das System wieder gestartet ist, melden Sie sich wieder als ein Benutzer mit Administrationsrechten z.B. „Administrator“ an. Seite: 108 4.5.1.3 Bevor Konfiguration der HTTP-Server komplett funktionsfähig ist, müssen noch einige Einstellungen vorgenommen werden. Dazu muss zuerst ein Administrationsaccount auf dem HTTP-Server eingerichtet werden und die Konfigurationsdatei httpd.conf angepasst werden. Abschliessend wird noch der die Funktionsfähigkeit des HTTP Servers überprüft. Anlegen des Administrations Accounts: 1. Öffnen Sie eine DOS-Box mit Start > Run > Command. 2. Wechseln Sie in das Verzeichnis des HTTP-Servers („D:\IBM HTTP Server“) Da unter Windows 2000 die langen Dateinamen angezeigt werden und nicht mehr die kurzen wie unter Win98, man allerdings für sämtliche DOS-Befehle immer noch die kurzen Namen braucht, ist folgende Vorgangsweise angeraten: mit dem Befehl Dir /x wird eine Verzeichnisliste ausgegeben, die auch die kurzen Namen enthält. Dann suchen Sie den kurzen Namen für das Verzeichnis “D:\IBM HTTP Server“ aus der Liste heraus z.B. „IBMHTT~1“. Mit dem Befehl „cd IBMHTT~1“ können Sie in das Zielverzeichnis wechseln. Wenn Sie allerdings die DOS-Box statt mit „Command“ mit „cmd“ aufrufen, können Sie auch direkt lange Dateinamen verwenden. 3. Im Zielverzeichnis rufen Sie den Befehl “htpasswd –m conf\admin.passwd admin“ auf. Dieser Befehl legt einen neuen Administrationsbenutzer im HTTP Server mit dem Namen „admin“ an. Prinzipiell können Sie hier jeden beliebigen Namen verwenden, für die weiteren Ausführungen wird angenommen, dass Sie „admin“ gewählt haben. Nach Aufruf des Befehls werden Sie nach einem Passwort und der Bestätigung für dieses Passwort gefragt. Hier geben Sie in beiden Fällen „admin“ ein. Abbildung 54: Anlegen eines Administrationsbenutzers Seite: 109 4. Jetzt können Sie die DOS-Box wieder schliessen. Aktualisieren der httpd.conf 1. Öffnen Sie mit einem Texteditor die Konfigurationsdatei „D:\IBM HTTP Server\conf\httpd.conf“. 2. Suchen Sie nach dem Eintrag „ServerName“ und ändern Sie ihn nötigenfalls auf ihren Servernamen z.B. „stargazer“ Abbildung 55: Ausschnitt aus der httpd.conf 3. Speichern Sie die bearbeitete Datei. 4. Rebooten Sie das System. 4.5.1.4 Verifizierung In diesem Abschnitt wird dokumentiert, wie man überprüfen kann ob die Installation erfolgreich verlaufen ist. Überprüfung, ob die Serverdienste gestartet sind 1. Starten Sie die Diensteverwaltung „Start > Settings > Control Panel > Administrative Tools>Services“. 2. Überprüfen Sie ob in der Liste die Einträge IBM HTTP Server IBM HTTP Administration jeweils mit dem Status „Started“, dem Startup Type „Automatic“ und mit dem Wert „.\wasadmin“ im Feld „Log On As“ vorkommen. Abbildung 56: Ausschnitt aus den Services Seite: 110 Überprüfung ob Sie auf die Startseite des HTTP-Serves zugreifen können 1. Starten Sie einen Webbrowser und geben Sie die Adresse http://<computername>/ z.B. http://stargazer/ ein. Der Computername muss derselbe sein, wie der, den Sie in der „httpd.conf“Datei eingetragen haben. Danach sollten Sie folgendes Bild sehen: Abbildung 57: Startseite des IBM HTTP-Servers Falls Sie nicht auf diese Seite zugreifen können, kann das mehrere Gründen haben: - eine falsche Einstellung in der httpd.conf Datei, - konkurrierende Einstellungen im Internet-Browser, - nicht gestartete Server-Dienste (siehe Abbildung 56), - ein nicht erfolgter Reboot, - etc. Seite: 111 4.5.2 IBM DB2 Universal Database Enterprise Edition 7.2 Dieser Abschnitt beschreibt die Installation der DB2 Datenbank. 4.5.2.1 Vorarbeiten Um die IBM DB2 Universal Database Enterprise Edition installieren und verwenden zu können, muss ein neuer Benutzer angelegt werden. 1. Legen Sie einen neuen Windows 2000 Benutzer mit dem Namen „db2admin“, dem Passwort „db2admin“ und folgenden Eigenschaften an: • Lokale Benutzer (kein Domänenbenutzer). • Benutzer der Gruppe Administratoren. Mit den zusätzlichen Rechten: „log on as a service”, „act as a part of the operating system“, “create tokens“, “increase quotas“, “replace a process level token“. 4.5.2.2 Installation Um die DB2 Universal Database Enterprise Edition zu installieren, sind folgende Schritte notwendig: 1. Melden Sie sich als „db2admin“ am System an. 2. Starten Sie das Setup-Programm mit „setup.exe“. 3. Klicken Sie auf „Installation“. Abbildung 58: DB2 Installationsdialog Seite: 112 4. Im „Produkte“-Dialog wählen Sie nur die Option „DB2 Enterprise Extended Edition“ an und klicken auf „Weiter“. Abbildung 59: Auswahl der DB2 Enterprise Extended Edition 5. Im „Installationstyp“-Dialog wählen Sie die Option „Standard“ und klicken auf „Weiter“. Abbildung 60: Auswahl der Installationsart 6. Im „Zielspeicherpositions“-Dialog akzeptieren Sie den Standard-Installationspfad und klicken auf „Weiter“. Abbildung 61: Auswahl des Installationspfades Seite: 113 7. In diesem Dialog geben Sie folgendes ein und klicken auf „Weiter“: - Benutzername: db2admin - Kennwort : db2admin - Kennwort bestätigen: db2admin und aktivieren auch die Checkbox „Dieselben Werte für die übrigen Einstellungen der DB2 Benutzernamen und –Kennwörter verwenden“. Abbildung 62: Benutzerangaben für die Steuerzentrale 8. Jetzt werden die notwendigen Dateien installiert. Die Frage nach der Installation von OLAP beantworten Sie mit „OLAP Starter Kit nicht installieren“ und klicken auf „Weiter“. Abbildung 63: OLAP Starter Kit 9. Damit ist die Installation beendet und Sie müssen das System rebooten. 10. Danach melden Sie sich als ein Windows 2000 Benutzer mit Administrationsrechten z.B. Administrator an. Seite: 114 4.5.2.3 Verifizierung Um die DB2-Installation zu überprüfen, führen Sie folgende Schritte durch: 1. Überprüfung der DB2 Release, 2. Überprüfung des Servicenamens, 3. Überprüfung der Konfiguration des Database Managers. Überprüfung der DB2 Release 1. Starten sie die Befehlsfenster mit „Start > Programs > IBM DB2 > Befehlsfenster“. Geben Sie den Befehl „c:\db2level“ ein. Dieser Befehl sollte die folgende Ausgabe zurückliefern: DB21085I Exemplar "DB2" verwendet DB2-Codefreigabe "SQL07021" mit Aktualitäts-ID "03020105" und den Information-Tokens "DB2 v7.1.0.43", "n010504" und "WR21254a". Überprüfung des Servicenamens Nach der Installation hat das Setup die Servicenamen der DB2-Dienste in die „services“ Datei eingetragen. Es wäre grundsätzlich möglich an dieser Stelle den Servicenamen zu verändern bzw. den Port zu verändern, doch würde dies einen hohen Anpassungsaufwand in der Konfiguration nachsichziehen und die potentiellen Fehlerquellen drastisch erhöhen. Daher ist diese Vorgangsweise nur anzuraten, wenn die benötigten Ports schon belegt sind und das Anhalten der blockierenden Dienste keine Option darstellt. 1. Öffnen Sie mit einem Texteditor die Datei „services“ im Verzeichnis „D:\WinNT\system32\drivers\etc\“ und suchen Sie nach Einträgen, deren Kommentare sich auf DB2 beziehen. In dieser Datei sollten zwei Einträge vorhanden sein, die folgendermassen aussehen sollten: db2cDB2 db2iDB2 50000/tcp 50001/tcp #connection port for the DB2 instance DB2 #interrupt port for the DB2 instance DB2 2. Der Eintrag, der später noch benötigt wird, ist in der 1. Spalte zu finden und ist der mit der niedrigeren Portnummer(50000). In diesem Fall ist das der Eintrag „db2cDB2“. 3. Schreiben Sie sich diesen Namen auf, denn er wird später noch benötigt. Seite: 115 Überprüfung der Konfiguration des Database Managers 1. Starten sie die Befehlsfenster mit „Start > Programs > IBM DB2 > Befehlsfenster“. 2. Geben Sie den folgenden Befehl ein: “db2 get dbm cfg |more“ 3. Suchen Sie in der Liste nach dem Eintrag SVCENAME, der folgendermassen aussehen sollte: “TCP/IP Service name (SVCENAME)=db2cDB2“ Abbildung 64: Überprüfen der Datenbank-Konfiguration 1 4. Wenn dieser Wert nicht angezeigt wird, geben Sie folgenden Befehl ein: “db2 update dbm cfg using svcename <servicename>“, wobei „<servicename>“ der Eintrag aus der „service“-Datei ist, den sie sich im vorigen Abschnitt notiert haben. In diesem Falle „db2cDB2“. Abbildung 65: Überprüfen der Datenbank-Konfiguration 2 5. Schließen Sie das Befehlsfenster. Seite: 116 4.5.2.4 Konfiguration Bevor die DB2-Datenbank vom Application Server verwendet werden kann, müssen noch einige Aktivitäten durchgeführt werden: 1. Die Java-Version muss auf Version 2 gesetzt werden. 2. Der Kommunikationsmodus muss auf TCP/IP eingestellt werden. 3. Die WebSphere Application Server Administrationsdatenbank muss aufgesetzt werden. 4. Ein WebSphere Application Server Benutzer muss angelegt werden. Java-Version aktualisieren 1. Stoppen Sie das „DB2 JDBC Applet Server“ Service (Zum Starten und Stoppen von Diensten siehe Kapitel 4.4). 2. Wechseln Sie in das Verzeichnis D:\Program Files\SQLLIB\Java12\ und starten Sie das Programm „usejdbc2.bat“. Abbildung 66: Java-Version aktualisieren Die der Eingabe folgende Ausgabe sollte eine Liste der kopierten Dateien ergeben. Falls das nicht der Fall sein sollte und die Meldung „access denied“ erscheint, stoppen Sie alle DB2-Dienste (DB2-DB2, DB2-DB2CTLSV, DB2DB2DAS00, DB2 JDBC Applet Server, DB2 JDBC Applet Server-Steuerzentrale, DB2-Lizenzserver, DB2-Sicherheitsservice) und starten Sie das Programm usejdbc2.bat erneut. Seite: 117 3. Starten Sie das „DB2 JDBC Applet Server“ Service (Zum Starten und Stoppen von Diensten siehe Kapitel 4.4). Kontrollieren Sie die Datei „D:\Program Files\SQLLIB\Java12\inuse“. Enthält diese Datei den Eintrag „JDBC 2.0“ so ist die Umstellung geglückt. Falls die Datei diesen Eintrag nicht haben sollte, kontrollieren Sie ob Sie wirklich alle DB2 Dienste (DB2-DB2, DB2-DB2CTLSV, DB2- DB2DAS00, DB2 JDBC Applet Server, DB2 JDBC Applet Server-Steuerzentrale, DB2-Lizenzserver, DB2Sicherheitsservice) gestoppt haben und gehen Sie das Verfahren Schritt für Schritt beginnend bei Punkt 1 noch einmal durch. Kommunikationsmodus einstellen 1. Starten sie die Befehlsfenster mit „Start > Programs > IBM DB2 > Befehlsfenster“. 2. Mit dem Befehl „db2set DB2COMM“ können Sie überprüfen, welcher Kommunikationsmodus im Moment eingestellt ist. Abbildung 67: Kommunikationsmodus einstellen 3. Wenn der Kommunikationsmodus nicht auf „TCPIP“ gesetzt ist, können Sie mit dem Befehl „db2set DB2COMM=TCPIP“ die Einstellung manuell setzen. 4. Schließen Sie das Befehlsfenster. Seite: 118 WebSphere Application Server Administrationsdatenbank aufsetzen 1. Starten sie die Befehlsfenster mit „Start > Programs > IBM DB2 > Befehlsfenster“. 2. Erstellen Sie eine Datenbank mit dem Namen „wasdb“ und erhöhen Sie die Heapsize für diese Datenbank. “db2 create db wasdb db2 update db cfg for wasdb using applheapsz 256“ Abbildung 68: Erstellen der WAS Administrationsdatenbank 3. Überprüfen Sie ob die Datenbank korrekt angelegt wurde: “db2 list db directory“ Abbildung 69: Datenbank-Überprüfung Seite: 119 4. Legen Sie einen neuen DB2 Knoten mit dem Namen „wasnode“ an: “db2 catalog tcpip node wasnode remote STARGAZER server db2cDB2“ Abbildung 70: DB2 Knoten erstellen Es ist sehr wichtig, dass der Servername in Grossbuchstaben geschrieben wird. Ist das nicht der Fall, stimmt die Zuordnung von Knoten zu Server nicht. Der Servername ist der, den Sie bei der Überprüfung des Servernamens nach der Installation des http Servers notiert haben z.B. STARGAZER. 5. Jetzt muss ein Aliasname („wasalias“) eingetragen werden, der die Datenbank mit dem neu erstellten Knoten („wasnode“) verbindet: “db2 catalog db wasdb as wasalias at node wasnode“ Abbildung 71: Aliasnamen eintragen 6. Überprüfen Sie, ob der Aliasname korrekt eingetragen wurde: “db2 list db directory“ Abbildung 72: Überprüfung des Aliasnamen Seite: 120 7. Überprüfen Sie, ob Sie sich mit einem Benutzer z.B. db2admin zur Datenbank verbinden können: “db2 connect to wasalias user db2admin using db2admin“ “db2 disconnect current“ Abbildung 73: Verbindungsaufbau zur Administrationsdatenbank Seite: 121 WebSphere Application Server Benutzer anlegen 1. Legen Sie einen neuen Windows 2000 Benutzer namens „wasuser“ an. 2. Starten sie das Befehlsfenster mit „Start > Programs > IBM DB2 > Befehlsfenster“. 3. Verbinden Sie sich als Administrator („db2admin“) zur Datenbank,vergeben Sie die Zugangsberechtigungen für den neuen Benutzer und versuchen Sie sich als Benutzer „wasuser“ an der Datenbank anzumelden: “db2 connect to wasalias user db2admin using db2admin“ “db2 grant connect,createtab on database to user wasuser“ “db2 disconnect current“ “db2 connect to wasalias user wasuser using wasuser“ “db2 disconnect current“ Abbildung 74: Verbindungsaufbau zur Administrationsdatenbank Hinweis: Sollte sie nach einigen Wochen den Application Server Dienst „IBM WS AdminServer 4.0“ nicht mehr starten können, kontrollieren Sie, ob das Passwort für den Benutzer „wasuser“ nicht abgelaufen ist. Dazu starten sie das Befehlsfenster mit „Start > Programs > IBM DB2 > Befehlsfenster“ und versuchen sich mit dem Befehl „db2 connect to wasalias user wasuser using wasuser“ zur „was“-Datenbank zu verbinden. Wenn dieser Seite: 122 Verbindungsversuch mit der Fehlermeldung „Das Kennwort ist abgelaufen“ scheitert, müssen Sie das Passwort neu setzen. Dazu geben Sie im Befehlsfenster den Befehl „db2 CONNECT TO wasalias USER wasuser USING wasuser NEW wasuser CONFIRM wasuser“ ein. Danach können Sie den Dienst „IBM WS AdminServer 4.0“ wieder starten. 4. Schließen Sie das Befehlsfenster. Seite: 123 4.5.3 IBM DB2 Database Client Der folgende Abschnitt beschreibt die Installation der DB2 Clientsoftware, die Sie bei der Arbeit mit der DB2-Datenbank unterstützt. 4.5.3.1 Installation Um den DB2 Datenbank Client zu installieren sind folgende Schritte notwendig: 1. Melden Sie sich als ein Benutzer mit Administrationsrechten z.B. Administrator am System an. 2. Starten Sie das Setup-Programm mit setup.exe auf der DB2-Installationscd. 3. Im Installationsdialog klicken Sie auf „Install“. 4. Im Produktauswahldialog wählen Sie „DB2 Administrations Client“ und klicken Sie auf „Weiter“. Abbildung 75: DB2 Administrationsclient installieren Seite: 124 5. Im „Installationsart-Auswahl“-Dialog wählen Sie „Standard“ und klicken auf „Weiter“. Abbildung 76: Installationsart auswählen 6. Im „Zielspeicherpositions“-Dialog klicken Sie auf „Weiter“. Abbildung 77: Installationspfad auswählen 7. Im nächsten Dialog klicken Sie auf „Weiter“ und der Kopiervorgang beginnt. 8. Sobald die Installation beendet ist, erscheint ein Dialog, der die ersten Schritte mit DB2 beschreibt. Hier klicken sie auf „Beenden“. Seite: 125 4.5.4 IBM WebSphere Application Server Der folgende Abschnitt beschreibt die Installation des WebSphere Application Servers. 4.5.4.1 Vorarbeiten Um die Installation durchführen zu können, müssen Sie das „IBM HTTP Server“ Service beenden. Das können Sie entweder mit dem Service-Programm („Start > Settings > Control Panel > Administrative Tools>Services“) oder dem Befehl net stop „IBM HTTP Server“ tun. 4.5.4.2 Installation 1. Melden Sie sich als ein Windows 2000 Benutzer mit Administrationsrechten z.B. Administrator am System an. 2. Starten Sie das Setup-Programm mit „setup.exe“ auf der WebSphere Application Server Setup-CD. 3. Im Sprachenauswahl-Dialog wählen Sie „Englisch“ und klicken Sie auf „Weiter“. Sie können auch eine andere Sprache wählen. Alle weiteren Ausführungen beziehen sich auf die englische Version. 4. Im nächsten Dialog klicken Sie auf „Weiter“. 5. Im Installationsart Dialog wählen Sie „Custom Installation“ und klicken Sie auf „Next“. Abbildung 78: Auswahl der Installations Optionen Seite: 126 6. Im Dialog zur Auswahl der zu installierenden Komponenten wählen Sie alle außer „IBM HTTP Server“ und „IBM Universal Database“ aus und klicken auf „Next“. Abbildung 79: Komponenten-Auswahl 7. Als WebServer Plugin wählen Sie nur „IBM HTTP Server“ aus und klicken auf „Next“. Abbildung 80: Plugin-Auswahl 8. Um das Application Server Service zu starten, wird der Benutzer „wasadmin“ verwendet. Abbildung 81: Benutzerangaben für das IBM HTTP Server Service Seite: 127 9. Im “Zielort“-Dialog klicken Sie auf „Next“. Abbildung 82: Installationspfad auswählen 10. Im „Datenbank-Optionen“-Dialog tragen Sie als Datenbanknamen den Aliasnamen „wasalias“ und als Datenbankbenutzer „wasuser“ ein und klicken auf „Next“. Abbildung 83: Datenbankoptionen angeben 11. Im nächsten Dialog klicken Sie auf „Next“. Seite: 128 12. Im Dialog, der die ausgewählten Installationsoptionen anzeigt, klicken Sie auf Next und die Installation wird gestartet. Abbildung 84: Installationsoptionen 13. Sobald die Installation beendet ist, beantworten Sie die Frage nach einem sofortigen Reboot des Systems mit „Nein“ und klicken auf „OK“. 14. Benennen Sie die Datei „createwasdb.scr“ im Verzeichnis „D:\WebSphere\AppServer\BIN“ in „createwasdb.bak“ um. Dies verhindert, daß bei einer möglichen Neuinstallation des Application Servers die bestehende Administrationsdatenbank („wasdb“) überschrieben wird und dadurch alle in der Konfigurationsdatenbank gespeicherten Daten verloren gehen. 15. Kontrollieren Sie ob im Log-File „wssetup.log“, das sich im Verzeichnis „D:\WebSphere\AppServer\logs“ befindet, keine Fehler eingetragen wurden (Total Errors: 0) und am Ende der Datei „Install Complete“ steht. 16. Rebooten Sie das System. Seite: 129 4.5.4.3 Verifizierung Um die Funktionsfähigkeit der Installation zu testen sind folgende Schritte durchzuführen: 1. Kontrolle ob das Application Server Administrations Service vorhanden ist. 2. Kontrolle der admin.config Einstellungen. 3. Überprüfen der Änderungen der Webserverkonfiguration. 4. Starten des WebSphere Administrations Prozesses. 5. Starten des Default Servers. 6. Webserver Plugin-Einstellung aktualisieren. Kontrolle des WAS Administrations Services Überprüfen Sie ob das Service IBM WS AdminServer in den Services eingetragen ist. Dazu starten Sie das Services-Programm mit „Start > Settings > Control Panel > Administrative Tools > Services“ und kontrollieren ob in der Liste der Dienst “IBM WS AdminServer 4.0“ enthalten ist. Abbildung 85: Ausschnitt aus den Services Seite: 130 Kontrolle der admin.config Einstellungen Überprüfen Sie ob u.a. folgende Einträge in der Datei „D:\websphere\appserver\bin\admin.config“ eingetragen sind: 1. Die Einstellungen(databasename,dbuser,dbpassword) der Repository-Datenbank (wasalias) müssen denen ihrer Testumgebung entsprechen: # Repository database settings com.ibm.ejs.sm.adminServer.dbdataSourceClassName=COM.ibm.db2.jdbc.DB2Con nectionPoolDataSource com.ibm.ejs.sm.adminServer.dbserverName= com.ibm.ejs.sm.adminServer.dbportNumber= com.ibm.ejs.sm.adminServer.dbdatabaseName=wasalias com.ibm.ejs.sm.adminServer.dbuser=wasuser com.ibm.ejs.sm.adminServer.dbpassword=wasuser com.ibm.ejs.sm.adminServer.dbdisable2Phase=true Abbildung 86: admin.config Einstellungen Wenn Sie sich bis jetzt an die Vorgaben gehalten haben, müssen in der Datei admin.config folgende Einträge vorhanden sein: • Datenbankname (com.ibm.ejs.sm.adminServer.dbdatabaseName): „wasalias“ • Datenbankbenutzer (com.ibm.ejs.sm.adminServer.dbuser): „wasuser“ • Datenbankbenutzer-Passwort (com.ibm.ejs.sm.adminServer.dbpassword): „wasuser“ 2. Prüfen Sie ob das WAS Schema und die Initialkonfiguration beim ersten Start des Application Servers in die Repository-Datenbank geschrieben werden. Das Eintragen des WAS Schemas und der Initialkonfiguration beim ersten Start wird von den Parametern „com.ibm.ejs.sm.adminServer.createTables“ und „install.initial.config“ gesteuert. Folgende Einträge müssen sich in der Datei „D:\websphere\appserver\bin\admin.config“ com.ibm.ejs.sm.adminServer.createTables=true finden: Seite: 131 install.initial.config=true Diese Einstellungen bewirken, dass beim erstmaligen Start des Application Servers, die zur Administration des Application Servers notwendigen Tabellen und Daten in die Administrationsdatenbank „wasdb“ geschreiben werden. Der Application Server wird durch den Start des Dienstes „IBM WS AdminServer 4.0“ aufgerufen. Webserverkonfiguration überprüfen 1. Prüfen Sie, ob folgende Einträge durch die WAS Installation in die „IBM HTTP Server“-Konfigurationsdatei („D:\IBM HTTP Server\CONF\httpd.conf“) eingetragen wurden: LoadModule ibm_app_server_http_module C:/WebSphere/AppServer/bin/mod_ibm_app_server_http.dll WebSpherePluginConfig C:\WebSphere \AppServer \config \plugin-cfg.xml 2. Wenn diese Zeilen nicht vorhanden sind, fügen Sie sie manuell an. Starten des WAS Administrations Prozesses 1. Starten Sie den WAS AdminServer mit „Start > Programs > IBM WebSphere > Application Server V4.0 AE > Start Admin Server“. 2. Das Starten des Admin Servers war erfolgreich wenn: o In der „Services“ Liste der Eintrag für den Dienst „IBM WS AdminServer 4.0“ auf „Started“ steht. Dazu starten Sie das Services-Programm mit „Start > Settings > Control Panel > Administrative Tools > Services“ und kontrollieren ob in der Liste der Dienst „IBM WS AdminServer 4.0“ mit dem Eintrag „Started” in der Spalte „Status”enthalten ist. o Kontrollieren Sie ob der folgende Eintrag in der Datei „D:\WebSphere\AppServer\LOGS \tracefile“ vorhanden ist: “[01.09.26 21:03:29:176 GMT+02:00] 305a5242 Server A WSVR0023I: Server __adminServer bereit für e-business“ Starten des Default Servers Seite: 132 Durch die Auswahl der Komponenten bei der Installation wurde ein „Default“ Application Server in die Administrationsdomäne eingetragen. Dieser Server und seine Servlets können dazu benutzt werden, um festzustellen, ob die Installation richtig funktioniert hat. 1. Starten Sie die Administrationskonsole mit „Start > Programs > IBM WebSphere > Application Server V4.0 AE > Administrator’s Console“. Bitte beachten Sie, daß dieser Vorgang einige Zeit in Anspruch nehmen kann. 2. Klicken Sie mit der rechten Maustaste auf den Eintrag „Default Server“ und wählen Sie den Eintrag „Start“. Abbildung 87: Starten des Default-Servers 3. Das Starten des Servers hat funktioniert, wenn Sie folgende Einträge im unteren Fenster sehen: Seite: 133 Transport http ist empfangsbereit an Port 9.080 Server default server bereit für e-business Abbildung 88: Überprüfung des Startvorganges 4. Sie können die Konfiguration des Servers kontrollieren, indem Sie einige Servlets ansprechen, die bereits im „default server“ installiert sind. Dazu öffnen Sie einen Webbrowser und geben die URL http://stargazer:9080/servlet/snoop bzw. http://stargazer:9080/webapp/examples/showCfg ein. Danach sollten Sie folgende Seiten zu sehen bekommen: Abbildung 89: Überprüfung des Startvorganges Seite: 134 Die explizite Portangabe „9080“ bewirkt, dass der embedded WebServer angesprochen wird und nicht der stand-alone WebServer, dessen Installation im Kapitel 4.5.1 auf Seite 105 beschrieben wurde. Der embedded WebServer ist eine neue Kompontene im Rahmen des Websphere Application Servers und stellt einen funktional eingeschränkten (z.B keine Sicherheitsfeatures, WebServer dar. kein Dieser Workload Management, WebServer dient schlechtere ausschließlich Performance) zu Test- und Entwicklungszwecken und kann den Stand-Alone-Webserver (z.B. IBM HTTP Server) auch nur in diesem Bereich ersetzen bzw. ergänzen. Der Vorteil des embedded WebServers ist , dass nicht für jede Entwicklungsumgebung ein eigener , vollwertiger WebServer aufgesetzt und administriert werden muß. Um die Servlets zu testen, kann in diesem Stadium auch nur der embedded WebServer verwendet werden, da die Konfiguration des StandAlone WebServers (IBM HTTP Server) noch nicht aktualisert ist. Seite: 135 Webserver Plugin-Einstellung aktualisieren Bevor man auf den „default Server“ über den Stand-Alone WebServer zugreifen kann, muss die Konfigurationsdatei „D:\WebSphere\AppServer\CONFIG\plugin-cfg.xml“ aktualisiert werden um folgende Änderungen zu reflektieren: 1. Virtual Host Einstellungen. 2. Application Server Transportprotokolle. 3. Web Container URIs. Die „plugin-cfg.xml“-Datei enthält die Konfigurationsdaten für das HTTP Transport plugin. Für eine genaue Beschreibung der enthaltenen Konfigurationsdaten siehe EnCl201, Seite 1061 ff. Das plugin entscheidet an Hand der Konfigurationsdatei welche Requests an den WebServer (embedded oder Stand alone) und welche an den Application Server weitergeleitet werden sollen. Deswegen muß die Konfigurationsdatei nach jeder Neuinstallation bzw. Änderung einer Kompontene (Servlet, Enterprise Java Beans, JSPs, Applikationen, etc.) aktualisiert werden. Wenn die Aktualisierung nicht erfolgt, kann es sein, daß die Ressource (Servlet, etc.) zwar richtig am Application Server installiert ist, aber dem plugin auf Grund einer veralteten Konfiguration nicht bekannt ist, dass die verlangte Resource bereits am Application Server existiert. Das Endergebnis ist eine Fehlermeldung, da der WebServer den Request durch das plugin erhält und versucht eine nicht existierende Resource anzusprechen. Seite: 136 Um die plugin-Konfigurationsdatei zu aktualisieren, führen Sie folgende Anweisungen durch: 1. Starten Sie die Administrationskonsole mit „Start > Programs > IBM WebSphere > Application Server V4.0 AE > Administrator’s Console“. 2. Klicken Sie mit der rechten Maustaste auf den Knoten des Servers unter den der default host eingetragen ist und wählen Sie „WebServer Plugin erneut generieren“. Abbildung 90: Neugenerierung des Plugins Zum Lieferumfang des Application Servers gehört auch eine Applikation, mit dessen Hilfe die Konfigurationsdatei auch ohne Administrator Konsole aktualisiert werden kann. Um die plugin-Konfigurationsdatei zu aktualisieren, müssen Sie das Programm mit folgendem Aufruf starten: “D:\WebSphere\AppServer\BIN\GenPlugInCfg.bat -wasnode STARGAZER“ Seite: 137 3. Überprüfen Sie die Datei „plugin-cfg.xml“, ob die entsprechenden Änderungen für die Servlets des „default servers“ gemacht wurden (siehe Abbildung 91): Abbildung 91 : Plugin-cfg.xml 4. Starten Sie den Dienst „IBM HTTP Server“ (Zum Starten und Stoppen von Diensten siehe Kapitel 4.4 auf Seite 104). 5. Um die Einstellungen in der plugin Konfigurationsdatei zu überprüfen, können Sie via Stand-Alone WebServer analog zum obigen Test (Starten des default servers, Punkt 4) auf Dazu öffnen die Sie Servlets einen des „default Webbrowser und servers“ geben zugreifen. die URL „http://stargazer/servlet/snoop“ bzw. „http://stargazer/webapp/examples/showCfg“ ein. Danach sollten Sie die folgenden Seiten zu sehen Abbildung 92: Überprüfung des Startvorganges bekommen: Seite: 138 4.5.5 IBM Visual Age for Java 4.0 Entry Edition Der folgende Abschnitt beschreibt die Installation von VisualAge for Java. 1. Starten Sie das Installationsprogramm mit „Setup.exe“. 2. Klicken Sie auf „Install Products“ und „Install VisualAge for Java“. Abbildung 93: Installation VisualAge 3. Klicken Sie auf „Next“. 4. Klicken Sie auf “I accept the terms in the license agreement“ und auf “Next“. Abbildung 94: Lizenzabkommen 5. Klicken Sie auf „Complete“ und auf „Next“. Seite: 139 6. Klicken Sie auf „Next“. Abbildung 95: Installationsumfang wählen 7. Klicken Sie auf „Install“. Abbildung 96: Installation starten 8. Jetzt beginnt die Installation von „VisualAge for Java“. Dieser Vorgang kann einige Minuten dauern. Seite: 140 4.5.6 IBM WebSphere Studio 4.0 Entry Edition Der folgende Abschnitt beschreibt die Installation des WebSphere Studios. 1. Starten Sie das Installationsprogramm mit „Setup.exe“. 2. Klicken Sie auf „Weiter“. 3. Klicken Sie auf „Ja“. 4. Klicken Sie auf „Weiter“. 5. Klicken Sie auf „Weiter“. Abbildung 97: Auswahl der zu installierenden Komponenten 6. Klicken Sie auf „Weiter“. 7. Klicken Sie auf „Weiter“. 8. Nach Beendigung der Installation rebooten Sie ihren Computer. Seite: 141 4.5.7 XML-Tools Der folgende Abschnitt beschreibt die Installation der XML-Tools XEENA, XMLViewer, XSLerator und LotusXSL. 4.5.7.1 XEENA XEENA ist eine XML-Editor, der als Ausgangsbasis eine beliebige DTD akzeptiert. Auf Basis der DTD ist die Erstellung neuer und die Bearbeitung und Veränderung bestehender, von dieser DTD abgeleiteten, XML-Dokumente möglich. 1. Starten Sie das Installationsprogramm mit „Xeena-1.2EA.exe“. 2. Lesen Sie sich die Lizenzbestimmungen für Alphaworks durch und klicken Sie auf „Yes“. 3. Lesen Sie sich die Lizenzbestimmungen für das „Swingpack“ durch und klicken Sie auf „Yes“. 4. Lesen Sie sich die Lizenzbestimmungen für „Apaches Xerces“ Paket durch und klicken Sie auf „Yes“. 5. Lesen Sie sich die Lizenzbestimmungen für „Apaches Xalan“ Paket durch und klicken Sie auf „Yes“. 6. Bestätigen Sie den vorgeschlagenen Installationsort mit „Next“. 7. Wählen Sie die Option „Java2 (Runtime Environment or SDK) “ und klicken Sie auf „Next“. Abbildung 98: Auswahl der Java Umgebung Seite: 142 8. Im „Java Installation“-Dialog müssen Sie das Verzeichnis angeben, in dem das Java SDK installiert ist. In diesem Fall ist das im Verzeichnis „D:\WebSphere\Appserver\java\“. Danach klicken Sie auf „Next“. Hinweis : Das Installationsprogramm sucht die „Java.exe“, trotzdem muß man das Verzeichnis über dem „BIN“-Verzeichnis angeben. Das Setup fügt das „BIN“ Verzeichnis, in dem sich die „Java.exe“ befindet, automatisch an den eingegebenen Pfad an. Abbildung 99: Java-Installationspfad auswählen 9. In Dialog „Proxy-Settings“ müssen Sie einen allenfalls vorhanden Proxy-Server angeben. Dies ist allerdings nur notwendig, wenn Sie auf XML-Dokumente bzw. DTDs zugreifen wollen, die auf einem anderen WebServer liegen. In Normalfall lassen Sie das Feld „Proxy host“ leer und klicken auf „Next“. Abbildung 100: Proxy-Host 10. Den nächsten Dialog bestätigen Sie mit „Next“ und die Installation wird fertiggestellt. Seite: 143 4.5.7.2 XML-Viewer Zur Installation des XML-Viewers muss nur die Datei „xmlviewer.zip“ in ein geeignetes Verzeichnis entpackt werden. Vorschlag: „D:\WebSphere\XMLTools“. 4.5.7.3 XSLerator Zur Installation des XSLT-Skript-Generators muss nur die Datei „XSLerator_Win.zip“ in ein geeignetes Verzeichnis entpackt werden. Vorschlag: „D:\WebSphere\XMLTools“. 4.5.7.4 LotusXSL Der folgende Abschnitt beschreibt die Installation des LotusXSL-Programmes. 1. Zur Installation des XSLT-Transformators muss die Datei „lotusxslj_2_0_1.zip“ in ein geeignetes Verzeichnis entpackt werden. Vorschlag: „D:\WebSphere\XMLTools“. 2. Danach muss noch eine Umgebungsvariable namens JAVA_HOME angelegt werden, die den Pfad zum Java SDK enthält. Dazu gehen Sie in die SystemUmgebung mit „Start > Settings > Control Panel > System“. 3. Im Reiter „Advanced“ klicken Sie auf „Environment Variables“. 4. Dann klicken im Bereich „System variables“ auf „New“ und geben als Name der Variable „JAVA_HOME“ ein und als Wert „D:\WebSphere\AppServer\java“ ein. Diese Variable enthält den Pfad zum Java SDK. Abbildung 101: Umgebungsvariable erstellen Seite: 144 5 Beispiele Um die im „WebSphere Application“ Server eingesetzten Technologien besser verstehen zu können, hat es sich als sehr hilfreich erwiesen, praktische Beispiele zu benützen. Die in Kapitel 3.2.1 bis 3.2.11 vorgestellten Technologien werden durch diese Beispiele abgedeckt. Die folgenden Kapiteln enthalten jeweils eine Anleitung zur Installation und Konfiguration und eine Kurzbeschreibung über den Aufbau und Ablauf des Beispiels. Diese Beispiele sind Teil des Lieferumfanges des Application Servers und werden bei der Installation automatisch angelegt. Voraussetzung für sämtliche Beispiele ist die vollständige Installation und funktionierende Konfiguration, wie in Kapitel 4 beschrieben, der notwendigen Softwarepakete. Kapitel 5.3 zeigt exemplarisch, wie eine selbsterstellte WebApplikation verpackt und im Application Server installiert wird. 5.1 Installation und Konfiguration Die notwendigen Dateien (EAR-Dateien) für diese Beispiele werden von der Installationsroutine des „WebSphere Application Servers“ in das Verzeichnis „D:\WebSphere\AppServer\installableApps“ kopiert installiert. Beispiele Nach der Installation werden die und im automatisch Verzeichnis „D:\WebSphere\AppServer\installedApps“ abgelegt. Dennoch verbleiben einige Dinge zu tun, um die Beispiele lauffähig zu machen. 1. Öffnen Sie einen Webbrowser und geben Sie folgende Adresse ein: “http://<computername>/Wssamples/index.html“ Wobei „<computername>“ für den Namen ihres Computers steht, den Sie auch in der Datei „D:\IBM HTTP Server\CONF\httpd.conf“ eingetragen haben. Z.B.: „http://stargazer/WSsamples/index.html“ Falls Sie nicht auf die Seite zugreifen können, kontrollieren Sie die Schreibweise der URL auf Groß/Kleinschreibung. 2. Klicken Sie auf „Getting Started“. Seite: 145 3. Klicken Sie auf „Complete the Database Configuration Steps“. Abbildung 102: Datenbank-Einstellungen für die Beispiele 4. Klicken Sie auf „Start DB2 Database Configuration“. 5. Legen Sie einen neuen Windows 2000 Benutzer namens „wsdemo“ mit dem Passwort „wsdemo1“ mit den folgenden Einstellungen an: a. „Password never expires“ muss aktiviert sein. b. „User must change password at next LogOn“ muss deaktiviert sein. 6. Klicken Sie auf „Step2“. 7. Überprüfen Sie, ob das „WebSphere Application Server Service“ gestartet ist. Dazu starten Sie das Services-Programm mit „Start > Settings > Control Panel > Administrative Tools > Services“ und kontrollieren ob in der Liste der Dienst „IBM WS AdminServer 4.0“ mit dem Eintrag „Started” in der Spalte „Status”enthalten ist. Seite: 146 8. Starten Sie das Programm, um die Beispielsdatenbank anzulegen: “D:\Websphere\Appserver\Bin\ImportSamplesDB2.bat db2admin db2admin“ Abbildung 103: Anlegen der Samples-Datenbank „db2admin“ ist der Benutzer der im Kapitel 4.5.2 als Datenbank-Administrator angelegt wurde. „db2admin“ ist das dazugehörige Passwort. 9. Restarten Sie den default Server mit Hilfe der Administrations Konsole: a. Starten Sie die Administrationskonsole mit „Start > Programs > IBM WebSphere > Application Server V4.0 AE > Administrator’s Console“. b. Klicken Sie mit der rechten Maustaste auf den Eintrag „Default Server“ und wählen Sie den Eintrag „Neustart“. Abbildung 104: Starten des Default Servers Seite: 147 10. Klicken Sie in der Administrationskonsole auf „Enterprise Anwendungen“ und öffnen Sie den Ordner. Dann klicken Sie auf „Refresh“. Jetzt sollten Sie den Eintrag „stargazer/Samples“ sehen. Abbildung 105: Kontrolle der Installation 11. Klicken Sie im Webbrowser auf „Step3“. 12. Klicken Sie im Webbrowser auf „Submit“. Wenn jetzt keine Fehlermeldung erscheint, so sind die Beispiele korrekt eingerichtet worden. Falls doch eine Fehlermeldung erscheint, können folgende Umstände daran Schuld haben: a. Sie haben den Benutzer „wsdemo“ falsch oder mit einem falschen Passwort eingerichtet. b. Das Einrichten der Samples-Datenbank hat nicht richtig funktioniert. In diesem Fall kontrollieren Sie ob Sie unter Punkt 8 den richtigen Benutzer angegeben haben. Seite: 148 Einrichten des Online-Shop Beispieles 1. Starten Sie einen Webbrowser und geben Sie die Adresse “http://<computername>/WSsamples/index.html“ ein. Wobei „<computername>“ für den Namen ihres Computers steht, den Sie auch in der Datei „D:\IBM HTTP Server\conf\httpd.conf“ eingetragen haben. Z.B.: http://stargazer/WSsamples/index.html 2. Klicken Sie auf Petstore.ear. Abbildung 106: Einrichten des Onlineshops 3. Klicken Sie auf „DB2 Configuration Instructions“. 4. Erstellen Sie eine Sicherungskopie der Datei “D:\WebSphere\AppServer\installableApps\petstore\petstore.ear“ z.B.: petstore2.ear 5. Starten Sie die Applikation „D:\WebSphere\AppServer\bin\assembly.bat“ Seite: 149 6. Wechseln Sie in den Reiter „Vorhanden“, klicken Sie auf „Durchsuchen“ und wählen die Sicherungskopie, die Sie im Schritt 4 angelegt haben. In diesem Fall ist das die Datei „petstore2.ear“. Abbildung 107: Anpassen der Applikation 7. Klicken Sie auf „OK“. 8. Wechseln Sie in den Zweig „petstore > EJB Modules > Customer Component > Entity Beans > TheOrder > Umgebungseinträge“. Abbildung 108: Anpassen der Umgebungseinträge Seite: 150 9. Ändern Sie den Wert von „com.ibm.j2ee.blueprints.customer.order.dao.OrderDAOIDB“ auf „com.ibm.j2ee.blueprints.customer.order.dao.OrderDAODB2“ 10. Klicken Sie auf „Anwenden“. 11. Klicken Sie „Datei > Speichern“ und beenden Sie das Programm. 12. Kopieren Sie die Datei „D:\WebSphere\AppServer\installableApps\petstore\ps_db2.sql“ in das Verzeichnis „D:\Program Files\SQLLIB\bin“. 13. Starten sie die Befehlsfenster mit „Start > Programs > IBM DB2 > Befehlsfenster“. 14. Geben Sie folgende Befehle ein: a. db2 create database PETSDB b. db2 connect to PETSDB user db2admin using db2admin c. db2 –f ps_db2.sql d. db2 terminate Abbildung 109: Datenbank anlegen 15. Starten Sie den Application Server mit „Start > Programs > IBM WebSphere > Application Server V4.0 AE > Start Admin Server“. 16. Starten Sie die Administrationskonsole mit „Start > Programs > IBM WebSphere > Application Server V4.0 AE > Administrator’s Console“. Seite: 151 17. Nun werden die notwendigen Resourcen mit der Applikation verbunden. Dazu wechseln Sie in den Zweig „Resourcen > JDBC-Provider > Sample DB Driver > Datenquellen“. Klicken Sie mit der rechten Maustaste auf den Eintrag „Datenquellen“ und wählen Sie den Eintrag „Neu“. Abbildung 110: Datenquelle anlegen Seite: 152 18. In den Eingabefeldern für die neue Datenquelle geben Sie folgende Daten ein: a. Name: PetStoreDatasource b. JNDI-Name: ps/PetStoreDatasource c. Datenbankname: PETSDB d. Benutzer-ID: db2admin e. Kennwort: db2admin f. Kennwort bestätigen: db2admin Abbildung 111: Eigenschaften der Datenquelle 19. Es ist auch notwendig eine JavaMail-Session anzulegen. Dazu wechseln Sie in den Zweig „Resourcen > JavaMail-Sitzung“. Klicken Sie mit der rechten Maustaste auf den Eintrag „JavaMail-Sitzung“ und wählen Sie den Eintrag „Neu“. Seite: 153 20. In den Eingabefeldern für die neue Mail Sitzung geben Sie folgende Daten ein: a. Name: PetStoreMail b. JNDI-Name: ps/PetStoreMailSession c. Protokoll: smtp d. Server: Geben Sie hier den Namen ihres Mailservers ein, z.B.: e. email.aon.at f. Benutzername: Ihr Mail Benutzernamen g. Kennwort: Ihr Mail Benutzerpasswort h. Kennwort bestätigen: Ihr Mail Benutzerpasswort Hinweis: Falls Sie keinen Zugang zu einem Mailserver haben oder die notwendigen Daten nicht wissen, können Sie die notwendigen Felder mit Beispielswerten füllen, um das Einrichten der Mailsession abschließen zu können. Um das Beispiel „Petshop“ nutzen zu können, ist es unbedingt notwendig, dass eine MailSession-Resource vorhanden ist. Abbildung 112: Eigenschaften der Mail-Session 21. Damit WARs und EJB JARs Klassen auch in anderen Applikationen finden können, muss die Modulsichtbarkeit auf Anwendungsebene umgestellt werden. Seite: 154 Wechseln Sie in den Zweig „<Knoten><stargazer>Anwendungsserver>Default server“ und klicken mit der rechten Maustaste auf den Eintrag „default server“. 22. Klicken Sie auf „Merkmale“ und ändern Sie im Feld Modulsichtbarkeit den Eintrag auf „Anwendung“ und klicken Sie auf „OK“. Abbildung 113: Modulsichtbarkeit ändern 23. Nun muss die Applikation installiert werden. Dazu klicken Sie mit der rechten Maustaste auf „Enterprise Anwendung“ und wählen „Enterprise Anwendung installieren“ aus. Abbildung 114: Enterprise-Anwendung installieren Seite: 155 24. Im nächsten Dialog wählen Sie die Sicherungsdatei (D:\WebSphere\ AppServer\installableApps\petstore\petstore.ear) aus (siehe Einrichten des Online-Shop Beispieles, Punkt 4). Als Anwendungsnamen geben Sie „petstore“ ein. Im Feld in dem der Knoten festgelegt wird auf dem die Anwendung gesucht werden soll müssen Sie Ihren Computernamen auswählen. Danach klicken Sie auf „Weiter“. Abbildung 115: Anwendung installieren 25. Bei allen weiteren Dialogen können Sie die „default“ Einstellung übernehmen und auf „Weiter“ drücken. Wenn alle Einstellungen richtig gemacht wurden erscheint am Ende der Installation folgende Meldung: Abbildung 116: Verteilung der Applikation Auf diese Fragen antworten Sie mit „Nein“. Danach erscheint die Bestätigung dass die Applikation erfolgreich eingerichtet wurde. Abbildung 117: Bestätigung der Installation Seite: 156 Hinweis: Sollten Sie zwischendurch Fehlermeldung bekommen, dass eine der Ressourcen (Datenquellen, JavaMail) nicht gefunden werden können, so kontrollieren Sie ob Sie wirklich alle notwendigen Ressourcen (Datenquellen, JavaMail) angelegt haben und ob die Schreibweise der Ressourcen korrekt ist. 26. Aktualisieren Sie die Ansicht der Administrations Konsole. 27. Klicken Sie mit der rechten Maustaste auf den Knoten des Servers unter dem der „default host“ eingetragen ist und wählen Sie „WebServer Plugin erneut generieren“. 28. Restarten Sie den Server, indem Sie mit der rechten Maustaste auf den Eintrag „Default Server“ klicken und den Eintrag „Neustart“ auswählen. 29. Danach starten Sie erneut die Administrations Konsole. 30. Öffnen Sie den Eintrag „Enterprise-Anwendungen“, klicken mit der rechten Maustaste auf den Eintrag „petstore“ und wählen „Starten“ aus. Abbildung 118: Starten der Anwendung Seite: 157 31. Um den „PetStore“ benutzen zu können, öffnen Sie einen Webbrowser und geben Sie die Adresse „http://stargazer/estore/“ ein. Von dort gelangen Sie direkt zum „OnlineShop“. Abbildung 119: Verifizierung der Installation Hinweis: Falls Sie eine Fehlermeldung beim Zugriff auf den „Onlineshop“ bekommen, überprüfen Sie ob die „petstore“-Anwendung in der Administrationskonsole gestartet wurde bzw. ob der Application Server gestartet ist. Seite: 158 5.2 Beschreibung Tabelle 17 listet die beiliegenden Beispiele auf, die in einem sogenannten Enterprise Archiv („Samples.ear“) zusammengefasst sind. In diesem Archiv sind wiederum die einzelnen Beispiel-Applikationen enthalten, deren Bestandteile zum Teil in Web Archiven (WAR) und zum Teil in Java Archiven (JAR) zusammengefasst sind. Inhalt der Samples.ear Samples.war • BeanScripting • StockQuote • XML • Hello EJB • Increment EJB • Account EJB Transfer EJB servlets and JSPs YourCo.war • YourCo Beispiel-Servlets und JSPs Theme.war • Bilder und Stylesheets, die von den Beispielen benutzt werden. AccountAndTransferEJBean.jar • Enthält ein CMP Entity EJB, ein BMP Entity EJB und ein stateless session EJB. HelloEJBean.jar • Enthält ein stateless session EJB. IncrementEJBean.jar • Enthält ein CMP Entity EJB. TimeoutEJBean.jar • Enthält drei CMP Entity EJBs und ein stateless session EJB. Tabelle 17: Auflistung der installierten Beispiele Seite: 159 Tabelle 18 listet die Komponenten auf, die in den einzelnen Beispielen enthalten sind. Übersicht über die von IBM WebSphere installierten Beispiele Name JSP Bean Scripting X Stock Quote X XML Servlet EJB CMP BMP EJB EJB X JDBC Database X X EJB Samples Hello X Increment X X X X X X Account X X X X X Transfer X X X X X Application Client X PetStore X X X X X YourCo X X X X X Customization X X X X Form X Job Listing X X X X Login/Logout X X X X News X X Page Hit Counter X X X Poll X X X X Quote X Scheduler X X X X Stock X X Survey X X X X Timeout X X Whitepages X X X X X X X Tabelle 18: Inhalt der installierten Beispiele Im Folgenden wird dargestellt welche Funktionen die einzelnen Beispiele demonstrieren. Um die Beispiele sich ansehen zu können, starten Sie einen Webbrowser und geben die Adresse Seite: 160 „http://stargazer/WSsamples/index.html“ ein. Von dieser Seite können Sie zu jedem beliebigen Beispiel navigieren. Damit die Beispiele funktionieren, muß der WebSphere Application Server („IBM WS AdminServer 4.0“-Dienst) und die DB2Datenbank („DB2-DB2“-Dienst) gestartet sein. Alle Beispiele, außer „Pet Store“, sind auch mit ihrem Sourcecode verfügbar und sind im Verzeichnis „D:\WebSphere\AppServer\installedApps“ abgelegt. Die Beispiele sind auf verschiedene Archive (sampleApp.ear, Sourcecodes (*.Java-Dateien) der Samples.ear) Servlets und aufgeteilt. JavaBeans sind Die in Unterverzeichnissen im Verzeichnis „WEB-INF\classes“ unter dem jeweiligen WebArchiv (.war-Verzeichnis) abgelegt. Das WebArchiv ist wiederum unter einem Enterprise Application Archiv (.ear-Verzeichnis) abgespeichert. Z.B. liegt der Sourcecode für das Servlet aus dem Beispiel (YourCo/Poll) im Verzeichnis „D:\WebSphere\AppServer\installedApps\Samples.ear\YourCo.war\WE B-INF\classes\WebSphereSamples\YourCo\Poll“. 5.2.1 YourCo Das Beispiel „YourCo“ demonstriert anhand eines Intranets die vielfältigen Anwendungsmöglichkeiten von EJBs, JSPs, Servlets, JavaBeans in Verbindung mit einer Datenbank-Anbindungen. Tabelle 19 dokumentiert welche Funktionen das Intranets bereitstellt. Funktionen des YourCo Intranets Name Customization Funktion Dieses Beispiel zeigt, wie man das Web-Angebot an den Benutzer anpassen kann. Dazu wählt der Benutzer aus mehreren Themen eines oder mehrere aus. Nach dieser Auswahl wird eine Liste von Links ausgegeben, die auf Webseiten verweisen, die für den Benutzer von Interesse sind. Die Steuerung übernehmen Servlets. Dabei wird u.a. überprüft, ob der Benutzer eingeloggt ist und ob eventuell bereits vorhandene, eingegebene Präferenzen auf die Ausgabe angewendet werden sollen. Die angegebenen Präferenzen werden gespeichert. Seite: 161 Form Dieses Beispiel demonstriert das Zusammenspiel zwischen HTML, Servlet und JSP. Sie können im HTML-Formular Daten eingeben, diese werden an ein Servlet geschickt und in einem JSP wieder ausgegeben. Als Datentransportmittel zwischen Servlet und JSP wird ein JavaBean verwendet. Job Listing Diese Funktion erlaubt das Suchen nach Job Möglichkeiten in der Beispielfirma. Man kann außerdem nach Position und Qualifikationsniveau abgestuft suchen. Wenn man als ein bestimmter Benutzer(„sally“) eingeloggt ist, kann man weitere Jobs in der Datenbank anlegen. Mit Hilfe von Servlets werden die Anfragen an die Datenbank, das Einfügen neuer Jobs und die Customization bewerkstelligt. Login/Logout Dieses Beispiel erlaubt das Ein- bzw. Ausloggen aus dem Employee Center. Sobald sich der Benutzer angemeldet hat, werden die persönlichen Daten des eingeloggten Benutzers in einem Session Bean gespeichert, um Sie zu einem späteren Zeitpunkt auslesen zu können.Gleichzeitig wird dieses Bean auch von anderen Beispielen genutzt, um festzustellen ob sich der Benutzer eingeloggt hat. News Dieses Beispiel zeigt, wie man Daten abhängig von der Tageszeit präsentieren könnte. Einstiegspunkt ist ein Servlet, das abhängig von der Tageszeit den Benutzer zu unterschiedlichen JSPs weiterleitet, die jeweils andere Nachrichten bereitstellen. Page Hit Counter Dieses Beispiel zeigt die Implementierung eines Web-Seiten bzw. WebSite Hit Counters. Die Basis bildet ein JavaBean, das zwei Methoden hat. Eine zum Abfragen und die Andere zum Erhöhen des Hit Counters. Mit diesem Beispiel kann man auch die Hits für einzelne Seiten getrennt von der WebSite zählen lassen, da für jede einzelne Seite ein eigenes Java Bean erzeugt wird. Die ID des jeweiligen Java Beans wird in der Datenbank abgelegt. Der jeweilige aktuellen Stand der Hits für die WebSite als Ganzes oder die einzelne Seite wird ebenfalls in der Datenbank abgelegt. Seite: 162 Poll Dieses Beispiel ermöglicht eine minimale Ja/Nein-Umfrage zu bewältigen. Ein JavaBean mit einem temporären Cache wird dazu verwendet, um die Entscheidung des Benutzers zu speichern. Die Speicherung in die Datenbank und die Abfragen aus der Datenbank übernimmt ein Servlet. Die Interaktion mit dem Benutzer wird über JSPs abgewickelt. Quote Mit diesem Beispiel können zufällig Aussprüche aus einer Textdatei ausgelesen und ausgegeben werden. Dazu wird ein JavaBean verwendet, das die Daten aus einer Datei ausliest und an ein JSP liefert. Scheduler Mit dieser Funktion kann man eine einfache Raumverwaltung implementieren. Es gibt die Möglichkeit, belegte bzw. freie Räume zu suchen und Räume zu reservieren. Hinter den Abfragen nach freien bzw. belegten Räumen und der Reservierung von Räumen stehen JavaBeans. Die Interaktion und Darstellung der Daten übernehmen JSPs. Stock Dieses Beispiel stellt den „aktuellen“ (zufällig generierten) Tageskurs der YourCo-Aktie dar. Die Kalkulation des neuen Kurses und Übergabe der Daten an das ausgebende JSP übernimmt ein JavaBean. Survey Dieses Beispiel zeigt, wie man eine Umfrage online durchführen und die Ergebnisse in der Datenbank speichern könnte. Ein Servlet übernimmt das Eintragen der Daten in die Datenbank, ein anderes holt die Daten bei Bedarf wieder aus der Datenbank. Die Datenübertragung zu den JSPs übernehmen JavaBeans. Die Darstellung der Daten und die Interaktion mit dem Benutzer läuft über JSPs. Seite: 163 Timeout Dieses Beispiel zeigt an Hand einer Urlaubsverwaltung die Verwendung von EJBs. Dabei kann der Benutzer Tage zwischen den „Banken“ Persönlich, Krankenstand und Urlaub transferieren. Diese Änderungen werden über ein CMP EJB mitgeloggt und in einer Tabelle abgelegt. Ein Stateless Session Bean wird verwendet, um alle notwendigen Daten wie transferierte Daten, den Tagessaldo usw. zusammenzustellen. Drei CMP EJBs übernehmen das Generieren von Auditnummern, den Zugriff auf die Transfergeschichte und den Zugriff auf die „Bankzahlen“. Ein Servlet übernimmt die Steuerung der Funktionalität dieses Beispieles und bedient sich der oben genannten EJBs. Whitepages Mit diesem Beispiel kann man sich alle Mitarbeiter der YourCo nach unterschiedlichen Kriterien ausgeben lassen. Für jede Art von Suche wird ein bestimmtes Servlet verwendet. Den Datentransfer zwischen JSPs und Servlets übernehmen JavaBeans. Tabelle 19: Beschreibung der Funktionen des YourCo Beispieles 5.2.2 Bean Scripting Dieses Beispiel zeigt an Hand eines JSPs die Verwendung des BSF (siehe Kapitel 3.2.2). Beide JSPs zeigen eine Umrechnungstabelle von Fahrenheit in Grad Celsius an. Die eine JSP verwendet die Standard-Sprache Java für Skripts in JSPs, um die Umrechnung zu bewerkstelligen. Die zweite JSP demonstriert mittels des JSPMarken <jsp:directive.page language="javascript"/> die Verwendung von JavaScript als Skriptsprache. 5.2.3 StockQuote Das StockQuote-Beispiel demonstriert, wie ein und dieselbe Applikation auf verschiedene Clients (Webbrowser, Sprache, Handy) reagieren und den Output (HTML, VXML, WML) auf den entsprechenden Client anpassen kann. Um das Beispiel zu starten, fragt man mit einem Client bei einem Servlet an, das aufgrund der Eigenschaften des Clients erkennt, welche Form der Kommunikation (HTML, VXML, WML) aktiv ist. Seite: 164 Über eine entsprechende JSP kann man ein Aktienkürzels eingeben. Diese Eingabe wird an das Servlet übergeben, das die weitere Verarbeitung übernimmt. Je nach anfragendem Client leitet das Servlet den Output auf eine JSP, das die Antwort für den Client passend formatiert (HTML, VXML, WML) ausgibt. Damit dieses Beispiel funktioniert muss der Computer einen Internetzugang haben, um den Aktienkurs von der Adresse „http://finance.yahoo.com/d/quotes.csv“ abfragen zu können. 5.2.4 XML Eine Verwendungsmöglichkeit von XSLT wird im Beispiel XML gezeigt. Dabei wird ein XML-Dokument mittels zweier unterschiedlicher XSL-Dateien, unterschiedlich formatiert, in HTML dargestellt. Es besteht auch die Möglichkeit ein eigenes XMLDokument als Basis und eigene XSL-Stylesheets zu verwenden. Ein Servlet übernimmt die Anwendung des jeweiligen XSL-Stylesheets auf das XML-Dokument. 5.2.5 HelloEJB Das HelloEJB-Beispiel enthält ein Stateless Session EJB das einfach nur den Text „Hello from Hello EJB Sample!“ über eine JSP ausgibt. 5.2.6 Increment EJB Dieses Beispiel verwendet ein Servlet das über ein CMP EJB einen Zähler bei Knopfdruck immer um eins erhöht. Das EJB speichert den jeweiligen Wert in der Datenbank und lädt ihn bei Bedarf wieder. Die Ausgabe erfolgt wieder über das Servlet. Seite: 165 5.2.7 Account EJB und Transfer EJB Diese Beispiele erlauben dem Benutzer das Anlegen eines Bankkontos, das Durchführen von Überweisung zwischen den angelegten Konten und das Abrufen von Kontoständen. Der Benutzer hat die Wahl, ein Konto über ein HTML-Formular oder über ein JSPFormular anzulegen. Bei beiden Varianten übernimmt letztlich ein Servlet die Kommunikation mit den EJBs. Welche Art von EJB verwendet wird, kann auch vom Benutzer festgelegt werden. Zur Wahl stehen die Varianten CMP EJB bzw. BMP EJB. Für jeden angelegten Account wird eine Instanz des entsprechenden EJBs angelegt, das sich wiederum mit der Datenbank synchronisiert, um den aktuellen Kontostand zu speichern. 5.2.8 Application Client Dieses Beispiel demonstriert den Zugriff einer J2EE Client Application auf ein Stateless Session EJB. Das EJB gibt nur den Text „Message from Hello EJB: <b>Hello</b> from Hello EJB Sample!“ zurück. Dieser Text wird dann ausgegeben. Das Beispiel wird mit dem Befehl „D:\>launchclient D:\WebSphere\AppServer\installableApps\samples.ear“ aufgerufen. Abbildung 120: Starten der J2EE Client Applikation Hinweis: Sollte der Aufruf der Applikation nicht gelingen, kontrollieren Sie ob die Umgebungsvariable Path den Pfad „D:\WebSphere\Appserver\Bin“ enthält. Seite: 166 Wenn eine Fehlermeldung bei der Initialisierung der Umgebung des J2EE Application Clients nach dem Start der Applikation erscheint, prüfen Sie ob die Umgebungsvariable CLASSPATH den Pfad „D:\WebSphere\AppServer\lib“ enthält. 5.2.9 Pet Store Der „Pet Store“ stellt ein Beispiel für einen kompletten Online-Shop dar, über den man Haustiere bestellen kann. Aufgrund des grossen Umfangs wird dieser Shop hier nur der Vollständigkeit halber angegeben und nicht im Detail beschrieben. Um den „Pet Store“ aufzurufen, starten Sie einen Webbrowser und geben die Adresse „http://stargazer/estore/“ ein. Von dieser Seite kommen Sie mit dem Link „Enter the Store“ direkt zum „Pet Store“. Tabelle 20 gibt Auskunft darüber, welche Funktionen der „Pet Store“ zur Verfügung stellt. Funktionen des „Pet Store“ • Benutzerverwaltung mit Adress- und Präferenzinformationen • Personalisiertes Erscheinungsbild der WebSite • Suchfunktion über die WebSite • Onlineshop mit Einkaufskorbfunktion, Abrechnung, etc. • Durchsuchbarer Haustier-Katalog Tabelle 20: Funktionen des "Pet Store" Seite: 167 5.3 Verpacken und Installieren einer Webapplikation an Hand eines Beispieles Anhand einer minimalen Webapplikation, die nur aus drei JSPs, einem Servlet und einer HTML-Datei besteht, soll dem Leser gezeigt werden, wie die selbst erstellte Webapplikation ihren Weg in den Application Server finden. Dieser Vorgang ist ein wichtiger Zugang zum Verständnis des Aufbaus des Application Servers, da er auf einigen grundlegenden Basiskonzepten (J2EE-Applikationsaufbau, Requestverteilung zwischen HTTP- und Application Server, Webtechnologien wie z.B. Servlets, etc. ) aufbaut. Die Applikation als solche verfolgt keinen bestimmten Sinn, da das zentrale Interesse dieses Abschnitts darin liegt zu vermitteln, wie Applikation verpackt und installiert werden können. Die drei enthaltenen JSPs dienen dazu, zu demonstrieren wie der Zugriff auf eine Tabelle von JSPs aus bewerkstelligt wird. Das Servlet gibt den Text „THIS IS A SERVLET FOR WEBENGINEERING PS!“ aus und soll die grundsätzliche Funktionsweise eines Servlets veranschaulichen. Zur Erstellung und Verpackung der JSPs und des Servlets wurde das IBM WebSphere Studio 4.0 Entry Edition in Verbindung mit IBM Visual Age for Java verwendet. Die Palette der angebotenen Entwicklungstools im Rahmen der WebSphere Plattform befinden sich zu diesem Zeitpunkt (Oktober 2001) gerade in einer Umstrukturierung. Die Entry Edition des WebSphere Studios 4.0 orientiert sich vom Aufbau noch sehr an der Version 3.5 des Application Servers. Die nachfolgenden Editionen des WebSphere Studios haben zum Teil einen anderen Aufbau und sind wesentlich enger mit dem Application Server integriert. Leider war es nicht möglich, für diese Arbeit die Application Developer Edition des WebSphere Studios zu bekommen. Dieses Kapitel konzentriert sich auf die Tätigkeiten die notwendig sind, um die Webapplikation zu verpacken und zu installieren. Die Funktion des Publizierens („Publish“) im WebSphere Studio wird daher nur am Rande erwähnt, da der Vorgang des Erstellens und Installierens von Webapplikationen den Schwerpunkt bildet Die Publish-Funktion betrifft die Möglichkeit, von WebSphere-Studio aus, die geänderten Dateien direkt auf den HTTP-Server bzw. Application Server zu verteilen, Seite: 168 ohne den Umweg des Verpackens und Installierens der kompletten Applikation nach jeder Änderung durchführen zu müssen. Selbstverständlich ist das Verwenden der Publish-Funktion bei „ernsthaften“ Projekte unerlässlich, um den Arbeitsaufwand in vernünftigen Grenzen zu halten. Die Erstellung der JSPs, Servlets usw. steht ausdrücklich nicht im Mittelpunkt der nachfolgenden Zeilen. Um dem Leser den Einstieg in die Entwicklungsarbeit zu erleichtern, enthält dieses Kapitel auch einige Hinweise, welche Besonderheiten bei der Erstellung Webapplikationen mit WebSphere Studio zu beachten sind. 5.3.1 Projekterstellung Am Beginn jedes Projektes steht die Verzeichnisstruktur. Speziell bei grösseren Projekten sollte man sich genau überlegen, wo welche Datei abgelegt werden soll. Durch eine wohl überlegte Verzeichnisstruktur, die allerdings von der Art und Größe des Projektes abhängt, erhöht sich die Wartbarkeit der Applikation deutlich. Die folgenden Schritte beschreiben die Vorgangsweise bei der Erstellung eines neuen Projektes mit Hilfe von WebSphere Studio. 1. Ein neues Verzeichnis mit dem Namen „WASBeispiel“ erstellen. 2. Starten Sie WebSphere Studio mit „Start > Programs > IBM WebSphere > Studio 4.0 > IBM WebSphere Studio v4.0“ 3. Klicken Sie auf „Datei > Neues Projekt“ und geben folgende Daten ein: Projektname: WASBeispiel Projektordner: D:\WASBeispiel\ Erstellen mit: Standardschablone Abbildung 121: Neues Projekt erstellen Seite: 169 4. Stellen Sie die Publikationsstufe auf „Produktion“. Abbildung 122: Publikationsstufe auswählen 5. Legen Sie, soweit notwendig, zusätzliche Verzeichnisse z.B. für JSPs, HTMLDateien, etc. unter dem Projektordner an.In diesem Beispiel soll ein zusätzliches Verzeichnis namens JSP angelegt werden, dass die JSPs enthalten wird. Diese Ordner werden unter dem Projektordner („D:\WASBeispiel\“) angelegt. Abbildung 123: Ordner anlegen 6. Starten Sie VisualAge for Java mit „Start > Programs > IBM VisualAge for Java for Windows V4.0 > IBM VisualAge for Java“. 7. Klicken Sie auf „Go to Workbench“ und auf „OK“. Seite: 170 8. Klicken Sie im Menü auf „Window > Options“. Abbildung 124: VisualAge for Java Optionenen 9. Gehen Sie auf “Remote Access to Tool API“ und klicken dort auf “Start Remote Access to Tool API on VisualAge startup“. Danach klicken Sie auf „Start Remote Access to Tool API“. Dieser Vorgang gibt ihnen die Möglichkeit von „WebSphere Studio“ aus „VisualAge“ zur Bearbeitung von z.B. Servlets zu verwenden. Ohne dieses API ist die Integration von „VisualAge“ in „WebSphere Studio“ nicht möglich. Abbildung 125: Remote Access to Tool API starten Seite: 171 10. In WebSphere Studio klicken Sie auf „Projekt > VisualAge für Java > Studio-Tools in VisualAge installieren“. 11. Danach ist „VisualAge“ auf die Zusammenarbeit mit „WebSphere Studio“ eingestellt. 12. Jetzt können Sie entweder mit Hilfe der Assistenten JSPs, HTML-Seiten und Servlets anlegen oder diese selber erstellen. Die Verwendung der Assistenten zum Anlegen der JSPs oder Servlets ist sehr zu empfehlen solange man noch nicht ausreichend mit der Programmierung von JSPs bzw. Servlets vertraut ist. 13. Wenn Sie die notwendigen Dateien erstellt haben, dürfen Sie nicht vergessen, Servlet-Mappings vorzunehmen. Ein Servlet-Mapping ist der Name unter dem Sie ein in der Webapplikation Servlet ansprechen können. Zum Beispiel wird ein Servlet mit dem Servlet-Mapping „MyServlet“ in der fertigen Applikation mit der URL „http://stargazer/WASBeispiel/MyServlet“ angesprochen. Servlet-Mappings werden angelegt, indem sie mit der rechten Maustaste auf die .class-Datei klicken (Zur Erstellung von .class-Dateien siehe unten) und Merkmale wählen. Unter Servlet-Zuordnung tragen Sie den gewünschten Namen z.B. „WASBeispielServlet“ ein. Abbildung 126: Servlet-Mapping Seite: 172 Hinweise: • Um Servlets sinnvoll zu bearbeiten, sollten Sie zuerst ein neues Projekt in VisualAge anlegen. Vergessen Sie nicht das notwendige Package („servlet.jar“ z.B. in „D:\Program Files\ibm\VisualAge for Java\ide\project_resources\IBM WebSphere Test Environment\lib“) zu installieren, damit die notwendigen Klassen („javax.servlet“,“ javax.servlet.httpservlet“) VisualAge bekannt sind. Falls diese Klassen nicht installiert sind, bekommen Sie eine Fehlermeldung und können die Quellcode-Datei nicht übersetzen. • Das Installieren von Packages in VisualAge funktioniert über Ansicht „Package > rechte Maustaste > Import > Jar File > Mit Browse das JAR-File angeben > Finish“. • Um den Sourcecode des Servlets in VisualAge zu bearbeiten, selektieren Sie die .Java-Datei und klicken auf „Projekt > VisualAge für Java > An VisualAge senden“. Wenn Sie das Servlet unter VisualAge fertig bearbeitet und gespeichert haben, klicken Sie im WebSphere Studio auf „Projekt > VisualAge für Java > Über VisualAge aktualisieren“. • WebSphere Studio arbeitet mit einer integrierten Versionsverwaltung. D.h. es gibt grundsätzlich zwei Versionen von ein und derselben Datei. Eine auf der Sie temporär arbeiten und Änderungen direkt vornehmen können. Die andere Version ist die „produktive“ Datei, die nur aktualisiert wird, wenn Sie das ausdrücklich anordnen. Solange Sie sich nicht sicher sind ob sie ihre Änderungen in die „produktive“ Version übernehmen wollen, sollten Sie die Datei nicht aus der Versionskontrolle entnehmen. Wenn Sie sicher sind, daß sie die Änderungen übernehmen wollen, entnehmen Sie die Datei aus der Versionskontrolle. Wenn eine Datei entnommen wurde, wird bei jedem Speichervorgang die „produktive“ Datei aktualisiert. Wenn Sie die Aktualisierung abgeschlossen haben, stellen Sie die Datei wieder in die Versionskontrolle zurück. Dadurch stellen Sie sicher, dass im produktiven System immer nur die Version einer Datei steht, die die Änderung enthält, die Sie wirklich durchführen wollen. Solange die Dateien nicht entnommen sind, liegen Sie im Verzeichnis D:\Program Files\WebSphere\Studio40\check_out\<Projektname>. Wenn Sie mit der rechten Maustaste auf die Datei klicken und Entnehmen wählen, wird die Datei aus der Versionskontrolle entnommen und im von Ihnen festgelegten Projektordner (z.B. Seite: 173 „D:\WASBeispiel“) abgespeichert. Mit der Funktion „Zurückstellen“ können Sie die Datei wieder in die Versionskontrolle zurückstellen. • WebSphere Studio ermöglicht unterschiedliche Ansichten des Projektes. Wenn Sie eine bestimmte Funktion (z.B. Kompilieren von Servlets) in einer Ansicht nicht finden, ist dies möglicherweise nur in einer anderen Ansicht (Beziehungssicht, Publikationssicht) möglich. • Servlets können nicht in die Applikation verpackt werden, bevor sie nicht kompiliert und als Class-Datei abgelegt wurden (rechte Maustaste > „kompilieren“). • Der Name, unter dem Sie die WebApplikation im Webbrowser aufrufen können wird erst bei der Installation der Applikation festgelegt. Seite: 174 5.3.2 Verpacken der Applikation Wenn Sie die Entwicklungsarbeit abgeschlossen haben, müssen Sie ein Paket erstellen. Dieser Abschnitt beschreibt die Vorgangsweise wie sie so ein Paket erstellen können. Nur Web- bzw. Enterprise-Applikationsarchive können mit Hilfe der Administrationskonsole im Application Server installiert werden. Dazu sollten Sie folgendermassen vorgehen: 1. Erstellen Sie eine Deskriptordatei. Klicken Sie mit der rechten Maustaste auf der linken Seite auf den Projektnamen und wählen Sie „Deskriptordatei für Webkonfiguration erstellen“. Im folgenden Fenster wählen Sie zusätzlich alle Servlets aus die sie inkludieren wollen. Sollte das von ihnen erstellte Servlet hier nicht erscheinen, haben Sie keine „class“-Datei erstellt. Danach klicken Sie auf „Erstellen“. Abbildung 127: Deskriptordatei erstellen 2. Um ein WebArchiv anzulegen, klicken Sie mit der rechten Maustaste auf das Projekt und wählen „WebArchivdatei erstellen“. Dann wählen Sie die richtige Descriptorendatei aus und klicken auf „OK“. Zum Schluss wählen Sie noch einen passenden Speicherort aus z.B. den Projektorder („D:\WASBeispiel“) und klicken auf „Save“. Seite: 175 5.3.3 Installation Um eine Applikation installieren zu können, müssen Sie die Administrationskonsole des Application Servers mit „Start > Programs > IBM WebSphere > Application Server V4.0 AE > Administrator’s Console“ starten In der Applikationskonsole sind folgende Schritte vorzunehmen: 1. Klicken Sie auf das Wizard-Icon und auf „Enterprise-Anwendung installieren“. Abbildung 128: Enterprise Anwendung installieren Seite: 176 2. Wählen Sie „Standalone Modul installieren“ aus und geben Sie die vorhin erstellte .WAR-Datei an. Der Name der Anwendung legt fest, unter welchen Namen die installierte Anwendung in der Administrationskonsole aufscheint. Geben Sie hier ebenfalls „WASBeispiel“ ein. Als Kontext-Root für WebModul tragen Sie den Namen ein, der Teil der BasisURL ihrer Applikation wird. Z.B. „WASBeispiel => http://stargazer/WASBeispiel“ Abbildung 129: Installation des WebModuls 3. Im „Benutzer Aufgabenbereich zuordnen“-Dialog klicken Sie auf „Weiter“. 4. Im „Enterprise-Beans werden an JNDI Namen gebunden“-Dialog klicken Sie auf „Weiter“. 5. Im „EJB-Referenzen werden Enterprise-Beans zugeordnet“-Dialog klicken Sie auf „Weiter“. 6. Im „Resourcenreferenzen an Resource binden“ - Dialog klicken Sie auf „Weiter“. 7. Im „Standarddatenquelle für EJB-Module angeben- Dialog“ klicken Sie auf „Weiter“. 8. Im „Datenquellen für einzelne CMP-Beans angeben“ - Dialog klicken Sie auf „Weiter“. 9. Im „Virtuelle Hosts für Webmodule auswählen“- Dialog klicken Sie auf „Weiter“. 10. Im „Anwendungsserver auswählen“ - Dialog klicken Sie auf „Weiter“. 11. Im „Assistenten für Anwendungsinstallation ausführen“ - Dialog klicken Sie auf „Fertigstellen“. Seite: 177 12. Jetzt wird die Anwendung installiert und sie sollten folgende Bestätigung erhalten: Abbildung 130: Bestätigung der Installation 13. Klicken Sie mit der rechten Maustaste auf den Knoten des Servers unter dem der „default host“ eingetragen ist und wählen Sie „WebServer Plugin erneut generieren“. 14. Restarten Sie den Server, indem Sie mit der rechten Maustaste auf den Eintrag „Default Server“ klicken und den Eintrag „Neustart auswählen“. 15. Danach starten Sie erneut die Administrations-Konsole. 16. Jetzt müssen Sie noch die Applikation starten. Dazu wählen Sie die Applikation im Ordner „Knoten > stargazer > Anwendungsserver > Default Server > Installierte WebModule“, klicken mit der rechten Maustaste auf den Applikationseintrag und wählen „Starten“. 5.3.4 Test der Applikation Um die installierte Applikation zu testen, können Sie folgende Vorgangsweise wählen: 1. Es sollte ein neues Verzeichnis im Ordner „D:\WebSphere\AppServer\installedApps“ aufgetaucht sein. Das neue Verzeichnis trägt den Applikationsnamen, den Sie bei der Installation angegeben haben und zusätzlich dazu, die Endung .ear. Zum Beispiel: „D:\WebSphere\AppServer\installedApps\WASBeispiel.ear“ 2. Starten Sie den Webbrowser und geben Sie die URL ihre Applikation ein. Zum Beispiel könnte eine gültige URL so aussehen: „http://stargazer/WASBeispiel/index.html“. Wenn Sie auf eine Ressource nicht zugreifen können, kontrollieren Sie, ob Sie die Applikation gestartet haben und ob die Ressource wirklich in ihrem Paket enthalten ist. Dies können Sie überprüfen indem Sie z.B. mit dem NT-Explorer in das Seite: 178 Verzeichnis „D:\WebSphere\AppServer\installedApps“ wechseln. Dort suchen Sie das Verzeichnis ihrer Applikation z.B. „WASBeispiel.ear“ und wechseln in dieses Verzeichnis. Wenn die gesuchte Resource in diesem oder einem der Unterverzeichnisse nicht enthalten ist, ist ihr Paket unvollständig und Sie sollten den Vorgang des Packens der Applikation noch einmal durchführen. Seite: 179 6 Zusammenfassung und Ausblick Diese Diplomarbeit ist mit dem Ziel geschrieben worden, Studierenden der SBWL Wirtschaftsinformatik an der Wirtschaftsuniversität Wien den Einstieg in die Materie der Application Server zu erleichtern. Dazu wurde ein möglichst praktikabler Ansatz gewählt, der sich auch an den Erfordernissen des WebEngineering Proseminars orientierte. Der Anspruch des praktikablen Ansatzes wurde durch mehrere Punkte umgesetzt: 1. Die Technologieeinführungen, die die Basis dieser Arbeit bilden, wurden bewusst möglichst wenig Technik-lastig beschrieben. Der Grund dafür ist die Ausrichtung der Diplomarbeit auf Personen, die nur einen beschränkt technischen Background haben. 2. Es wurde der Weg der Installation eines minimalen Entwicklungssystems für einen Application Server ausführlich dokumentiert. Der Zweck dieses Teils bestand einerseits darin, den Leser in die Lage zu versetzen die notwendige Basis für eigenständige Experimente zu legen und andererseits schon während der Installation und Konfiguration des Systems „on the job“ mit zu lernen. 3. Aufbauend auf der beschriebenen Referenzinstallation wurden einige Beispiele beschrieben, die den Studierenden das Verständnis der teilweise sehr komplizierten Technologie erleichtern sollen. Um Missverständisse auszuschließen sei an dieser Stelle erwähnt, daß selbst für die aufgrund des Zeitmangels eingeschränkten Anforderungen des Proseminars, das Studium der mit dem Thema direkt zusammenhängenden Literatur, speziell der Redbooks von IBM (siehe Arly01, EnCh01, EnClu01, NuDj01, WaBo01, WaMa01, WaTo01, WaTo01), durch die vorliegende Arbeit nicht ersetzt werden kann bzw. soll. Um die Einführung möglichst durchgängig zu vollziehen, wurde ein thematischer Bogen aufgespannt, der sich vom grundsätzlichen Aufbau eines Application Servers über die relevanten Technologien bis zu der Beschreibung von Beispielen, die das erworbene theoretische Wissen vertiefen sollen, zieht. Den Einstieg bildet eine allgemeine Beschreibung von Application Servern. Darin wird geklärt aus welchen Komponenten ein Application Server besteht und wie diese Komponenten zusammenspielen. Weiters wird ein kurzer Überblick über den Markt der Application Seite: 180 Server gegeben, um einen ersten Eindruck (Umsatz, Firmen, Marktanteilsverteilung) von dem Markt der Application Server zu bekommen. Mit diesem Wissen ausgestattet, gewährt Kapitel 3 eine Übersicht über die IBM WebSphere Produktplattform, um darauffolgend die Architektur des „IBM WebSphere Application Servers“ vorzustellen. Die Architektur umfasst die wichtigsten Technologien, deren grundsätzliches Verständnis unerlässlich für die Arbeit mit Application Servern ist. Dabei lag der Schwerpunkt eindeutig auf der Aufgabe, dem Leser einen, wie schon erwähnt, möglichst wenig Technik-lastigen Überblick über die jeweilige Technologie zu geben. Es konnte im Rahmen dieser Arbeit auch nicht viel mehr als ein „Mit-derZehenspitze-eintauchen“ realisiert werden, da jede Technologie für sich Potential für eine eigene Diplomarbeit bietet. Die behandelten Themen sind u.a. Java 2 Platform, Enterprise Edition (J2EE), Bean Scripting Framework (BSF), eXtended Markup Language (XML), Enterprise Java Beans (EJB), Java Server Pages (JSP) und Servlets. Diese Auswahl wurde wiederum mit Rücksichtnahme auf die Erfordernisse des Proseminares getroffen. Kapitel 4 beschäftigt sich intensiv mit der Installation des Referenzservers. Das abschließende Kapitel stellt einige Beispiele vor, die das Verständnis der verwendeten Technologien vertiefen sollen. Es wird ebenso demonstriert, wie man eine Applikation erfolgreich „verpacken“ und im Application Server installieren kann. Der Autor hofft, mit dieser Arbeit das Potential von Application Servern verdeutlicht und den Studenten Hilfestellung beim ersten Kontakt mit Application Servern gegeben zu haben. Diese Hilfestellung ist insofern von Bedeutung, da sie die Studenten in die Lage versetzen soll, möglichst erfolgreich sich mit einer neuen Materie zu beschäftigen. Nur wer sich nicht gleich am Anfang einer scheinbar unüberwindlichen Mauer aus Problemen gegenübersieht, ist bereit, sich auch in Zukunft mit neuer und unbekannter Technologie auseinanderzusetzen. Genau diese Fähigkeit, sich vorurteilsfrei mit neuen Themen zu beschäftigen, um diese im Berufsleben einschätzen zu können und nicht hilflos der rasanten technologischen Entwicklung gegenüber zu stehen, wird von Absolventen einer Wirtschaftsuniverstität verlangt. Das große Potential dürfte die Grundlage für die euphorische Beurteilung vieler Analysten gewesen sein. Laut Analysten der Giga Information Group (siehe GiZe01) Seite: 181 erreichte der Umsatz im Marktsegment der Application Server im Jahr 2000 1.64 Milliarden US-$ und steigt bis ins Jahr 2003 auf 9 Milliarden US-$. Doch es gibt auch Anlaß, das Thema Application Server kritisch zu betrachten. Ein Indiz dafür, dass die Entwicklung nicht mit den geschätzten Zahlen mithalten kann, ist das Fehlen von bestätigten Zahlen für das Jahr 2000 per Ende 2001. Alle Schätzungen für die kommenden Jahre in diesem Marktsegment stammen aus dem Jahr 1999. Zusätzlich hat der Markt der Application Server auch unter dem Rückschlag im Bereich E-Commerce gelitten. Das aufgrund dieses Rückschlages verlorene Vertrauen in Internet-Technologie muss erst wieder zurückgewonnen werden. Ein weiterer Faktor für die zukünftige wirtschaftliche Entwicklung des Marktsegments der Application Server, ist das Verhalten der Technologieführer. Denn von ihnen wird es abhängen, ob sich Application Server in den nächsten Jahren durchsetzen werden oder ob sich die Entwicklung verlangsamt. Da sich einige Technologieführer, wie z.B. die Telekombranche, momentan (Ende 2001) in einer schwierigen wirtschaftlichen Phase befinden, wird die Zukunft zeigen, welchen Einfluß dieser Umstand auf die technologische Weichenstellung in diesen Unternehmen haben wird. Die Vielfältigkeit und Komplexität der angeführten Technologien demonstriert in Ansätzen mit welchen Schwierigkeiten sich IT-Verantwortliche und Entwickler auseinander setzen müssen. Um auch nur annähernd das volle Potential der Application Server ausnutzen zu können, bedarf es an Kompetenzen, die vielfach in den Unternehmen einfach nicht vorhanden sind. An diesem Umstand tragen die Unternehmen nur bedingt Schuld. Durch die stark verkürzten Innovationszyklen scheint auch das Bildungssystem auf Dauer nicht in der Lage zu sein, Fachkräfte auszubilden, die alle benötigten Qualifikationen aufweisen. Dies verstärkt die Kluft zwischen dem, unterschiedlichster was zwar Gründe technologisch möglich (Ausbildungsstand, wäre, Infrastruktur, aber aufgrund Kosten, etc.) realistischer Weise nicht umsetzbar ist. Diese Entwicklung ist nicht durch Application Server ausgelöst worden, doch ist sie an diesen sehr deutlich ablesbar. Die obig genannten Kritikpunkte ändern allerdings nichts an der Tatsache, dass Application Server als Anknüpfungspunkt im Bereich der Systemintegration den Unternehmen ganz neue Möglichkeiten eröffnen. Das hohe Problemlösungspotential ist unbestritten vorhanden. Die schwierige wirtschaftliche Lage, der anstehende Neuaufbau des E-Commerce und die problematische „Technologieinflation“ wird Seite: 182 voraussichtlich zu einer Verlangsamung der Verbreitung von Application Server führen. Allerdings steht diesen Faktoren immer noch das ungebrochen hohe Potential gegenüber, das schlussendlich dieser Technologie zum Durchbruch verhelfen sollte. Seite: 183 7 Literaturverzeichnis [AdZo01] Advisor Zone – IBM WebSphere Application Server 4.0 http://advisor.com/Articles.nsf/aid/SMITT256 Abruf am 19.08.2001 [ArIy01] David Artus, Ashok Iyengar, Simon Kapadia,Mohamed Ramdani, James Roca, Chenxi Zhang, Ken Ueno, Larry Brown, Larry Clark, Chris Gerken, Geoff Hambrick, Stacy Joines, Sung-Ik Son, Lorrie Tomek, Jim VanOosten WebSphere V3.5 Handbook. Redbook, Nummer SG24-6161-00. IBM Corporation. 1186 Seiten. http://www.redbooks.ibm.com/redbooks/SG246161.html Abruf am 19.08.2001 [CiJe01] Cimetiere, Jean-Christophe, TechMetrix Research,Serverwatch, Does the App Server Market still exists ? http://serverwatch.internet.com/articles/appsmkt/ Abruf am 29.08.2001 [EnCh01] Louis Ennser, Christophe Chuvan, Paul Fremantle, Ramani Routray,Jouko Ruuskanen The XML-Files : Using XML and XSL with IBM WebSphere 3.0 Redbook, Nummer SG24-5479-00. IBM Corporation. 258 Seiten. [EnClu01] Mark Endrei,Rohan Cluning,Wut Daomanee,Jeff Hayward,Ashok Iyengar,Isabelle Mauny,Torsten Naumann,Ascension Sanchez WebSphere 4.0 Advanced Edition Handbook, RedPiece(Draft Document 31. August.2001), Nummber SG24-6176-00. IBM Corporation. 988 Seiten. Seite: 184 [EnCl201] Mark Endrei,Rohan Cluning,Wut Daomanee,Jeff Hayward,Ashok Iyengar,Isabelle Mauny,Torsten Naumann,Ascension Sanchez WebSphere 4.0 Advanced Edition Handbook, RedPiece(Draft Document 1. October 2001), Nummber SG24-6176-00. IBM Corporation. 1094 Seiten. [EsBe01] Esan, Berna – Architektur und Arbeitsweise der E-Plattform WebSphere, Seminararbeit, Universität Stuttgart http://www.informatik.uni-stuttgart.de/ipvr/as/lehre/hauptseminar/ docWS0001/WAS-Ausarbeitung.pdf Abruf im August 2001 [FlRo01] Flatscher Rony G., Java Bean Scripting with Rexx, 06.05.2001 Proceedings of the „12. International Rexx Symposium“, Triangle Research Park, North Carolina, USA, 30.April 30 – 2.Mai ,The Rexx Language Association, Raleigh N.C. 2001., 27 Seiten. [GiZe01] Gilpin Mike, Zetie Carl – Planning Assumption, 2000 Forecast for the EJB Application Server Market, 19.Juni 2000, Giga Information Group, 7 Seiten [HaNe01] Hansen Hans Robert, Neumann Gustaf, Wirtschaftsinformatik I, ISBN 3-8252-0802-8,1336 Seiten. [HrNo01] Hranitzky, Norbert – Enterprise Java Beans,Präsentationsunterlagen, Siemens AG, 09.07.1999 222 Seiten [KaPe01] Kalender, Peter – A concept for and implementation of the BSF for REXX, Universität Essen, Schiseminar aus Wirtschaftsinformatik, Wintersemester 2000/2001, 10.12.2000 http://nestroy.wi-inf.uni-essen.de/Lv/seminare/ws0001/PKalender/ Seminararbeit.pdf Seite: 185 [IBM101] WebSphere Application Server - Einführung http://www.transarc.ibm.com/Library/documentation/websphere/WASEE/de_DE/pdf/C1227630.pdf Abruf im August 2001 [ManK01] Manfred Kunde EDV-Beratung, Fallstudien, Ti(p)ps & Tricks – Application Server http://www.mkunde.de/fallst/as_navi.html Abruf im August 2001 [NuDj01] Barry Nusbaum,Matias Djunatan,Wakako Jinno und Peter Kelley WebSphere Application Servers: Standard and Advanced Editions. Redbook, Nummer SG24-5460-00. IBM Corporation. ISBN 738413756-3. 480 Seiten. http://www.redbooks.ibm.com/redbooks/SG245460.html Abruf am 19.08.2001 [ReHo01] Reibold, Holger: ZDNet - Im Test: Application Server bis 30.000 Mark http://www.zdnet.de/produkte/artikel/sw/199906/webappserver01_01ec.html Abruf im August 2001 [SPCW01] Prehl, Sabine, Computerwelt, “Zähes Ringen im Application-ServerMarkt”, Dezember 2001 [W3C01] W3C, What is XSL ? http://www.w3.org/Style/XSL/WhatIsXSL.html Abruf im November 2001 [WaBo01] Wahli Ueli, Boyle Iain, Fernandes Juliana, Ribas D’avila Flavio Version 3.5 Self Study Guide: VisualAge for Java and WebSphere Studio, Redbook, Nummer SG24-6136-00, IBM Corporation, 404 Seiten. 0- Seite: 186 [WaMa01] Wahli Ueli, Matthews Alex, Coll Lapido Paula, Norguet Jean-Pierre, WebSphere Version 4 Application Development Handbook, Redbook, Nummer SG24-6134-00, IBM Corporation, 612 Seiten. [WaTo01] Ueli Wahli, Tomlinson Mark, Zimmermann Olaf, Deruyck Wouter, Hendriks Denise Web Services Wizardry with WebSphere Studio Application Developer, Redbook, Nummer SG24-6292-00, IBM Corporation, 622 Seiten. [WASO01] WebSphere Application Server - Overview http://www-4.ibm.com/software/webservers/appserv/ Abruf am 18.08.2001 [WSPA01] WebSphere Application Server Advanced Edition http://www-4.ibm.com/software/webservers/appserv/advanced.html Abruf am 18.08.2001 [WSPE01] WebSphere Application Server Enterprise Edition http://www-4.ibm.com/software/webservers/appserv/enterprise.html Abruf am 18.08.2001 [WSPO01] WebSphere Software Plattform - Übersicht http://www7b.boulder.ibm.com/wsdd/products/platformoverview.html Abruf im August 2001 [WSPS01] WebSphere Application Server Standard Edition http://www-4.ibm.com/software/webservers/appserv/standard.html Abruf im August 2001 [WUVO01] Putscher,Erdem und Sommer - Präsentationsunterlagen für VO WebEngineering http://www.wu-wien.ac.at/usr/h96b/h9625793/ Abruf im August 2001 Seite: 187 8 Verzeichnis der sonstigen Quellen und Hilfsmittel [Alph01] IBM Alphaworks http://www.alphaworks.ibm.com/ Abruf im August 2001 [Apac01] The Apache Software Foundation http://www.apache.org/ Abruf im August 2001 [Java01] Java.Sun.com – The Source for Java Technology http://java.sun.com Abruf im August 2001 [Goog01] Google http://www.google.com/ Abruf im August 2001 [JaWo01] Java World http://www.javaworld.com/ Abruf im August 2001 [MIIS01] Microsoft Internet Information Services - Glossar http://ara.novae.ch/iishelp/iis/htm/core/iigloss.htm Abruf im August 2001 [MüBe01] Prof. Dr. Müller Bernd, Fachhochschule Harz –Studiengang Wirtschaftsinformatik , Abkürzungsverzeichnis und Glossar http://www2.fh-harz.de/~bmueller/skripte/glossar.pdf Abruf am 22.August 2001 Seite: 188 [Open01] Openwave http://www.openwave.com/ Abruf im August 2001 [OS2G01] OS2 und Computer Glossar http://de.os2.org/tips/glossar/ Abruf am 22.August 2001 [Sowi01] Sowinet Internet Glossar http://www.sowinet.com/glossar/ Abruf im August 2001 [W3Sc01] W3Schools Online Web Tutorials http://www.w3schools.com/ Abruf im August 2001 [WWWC01] The World Wide Web Consortium http://www.w3c.org Abruf im August 2001