Architekturen Internet-basierter Informationssysteme • • • • • • Statische vs. dynamische Information im Web Realisierungsansätze Applikationsserver Java-Applets CGI-Programme Verteilte Anwendungen Abteilung für Wirtschaftsinformatik, WU Wien Folie 1 Statische vs. dynamische Information im Web • Statische Information: – – – – Information ist relativ änderungsinvariant, wird typischerweise in HTML auf einem HTTP-Server abgelegt, Benutzer haben primär lesenden Zugriff, keine Interaktion möglich. • Dynamische Information: – – – – Bei jedem Zugriff wird potentiell andere Information geliefert, Benutzer kann mit dem Informationssystem interagieren, Abfragen an das Informationssystem können parametrisiert werden, typischer Weise: • Datenbankabfragen (Kataloge, ...) • Integration mit innerbetrieblichen Informationssystem • Portale (personalisierbar, ...) Abteilung für Wirtschaftsinformatik, WU Wien Folie 2 Integration bestehender IS mit dem WWW • Web-Technologie (Browser, HTML, HTTP, XML, ...) setzt sich als universelle Schnittstelle zu den internen Informationssystemen durch. • Intranet -> Einsatz von Internet-Technologie im firmen-internen Bereich. • Bestehende Informationssysteme (deren Datenbanken) werden zunehmend ins Intranet eines Unternehmen integriert. • Auch Internet-Anwendungen (Shopping-systeme, Kataloge) greifen zunehmend auf interne Datenbanken zu Entstehung von netzwerkzentrierten, mehrschichtigen Informationssystemen Abteilung für Wirtschaftsinformatik, WU Wien Folie 3 Klassische Datenbankanbindung im WWW Connect Request Web-Client Web-Server Connect Confirm Client-ServerArchitektur des WWW HTTP Request HTTP Response Disconnect request Disconnect Confirm WebServer Koppelung mit betrieblichen IS über CGI-Schnittstelle Abteilung für Wirtschaftsinformatik, WU Wien Web Browser Anwendung DBMS CGIProgram Datenbank Folie 4 Dynamische Information im Web (1) • Klienten-seitige Realisierung: – Java-Applet: (interaktive) Applikation wird in einem Ausschnitt einer Web-Seite ausgeführt. Browser enthält Java-BytecodeInterpreter. – Java-Script (=ECMA-Script, hat mit Java nur den Namen gemein): In der darzustellenden Web-Seite ist Programmcode enthalten, der im Browser ausgeführt wird. Typische Nutzung: Eingebehilfe, Menue-Gestaltung, ... – Plug-ins: Browser kann zur Laufzeit weiter Komponenten laden, die Interaktion realisieren (Browser- und plattformabhängig, bei Binärcode: Sicherheitsproblematik!) • Weitere Script-Sprachen (z.B. VB-Script, Tcl, ...) • ActiveX (Microsoft) Abteilung für Wirtschaftsinformatik, WU Wien Folie 5 Dynamische Information im Web (2) • Server-seitige Realisierung: – CGI-Scripte: • URL verweist nicht auf eine HTML-Seite, sondern auf ein Programm, dessen Ergebnis eine HTML-Seite ist. • CGI: Common Gateway Interface, definiert Schnittstelle zwischen einem HTTPServer und einem externen Programm • CGI-Programme: meist in Perl, aber auch Tcl, C++, Java, ... • Typische Anwendung: Anbindung von HTML-Formularen an Datenbanken • Nachteil: Für jede Anfrage wird ein externes Programm gestartet – Aktive Server-Seiten: • Der HTML-Text enthält Markierungen (spezielle Zeichenketten), die vor dem Absenden an den Klienten ersetzt werden. • Anwendungen: Zugriffs-Zähler, „server side includes“, Einbindung von Datenbankinformation in Webseiten • Häufigster Vertreter: PHP (http://www.php.net/), ASP, JSP • Nachteil: Abhängigkeiten zwischen HTML-Seiten bei komplexen Anwendungen unübersichtlich Abteilung für Wirtschaftsinformatik, WU Wien Folie 6 Dynamische Information im Web (3) • Server-seitige Realisierung: – Applikations-Server: • HTTP-Server, der für eine spezielle Applikation erweitert wurde, bzw. • Anwendungssystem, das auch HTTP-Server als Interaktionsschnittstelle anbietet • URI verweist auf Methode (Unterprogramm) im Server • Ansätze: – ISAPI (Microsoft, für Microsoft Information Server) – NSAPI (Netscape, für Netscape-Enterprise Server) – Servlets (Java, Server-seitiges Gegenstück zum Applet) – AOL-Server (gute Datenbankanbindung, skalierbar, Tcl) • Vorteil: Zustand kann leichter zwischen Anfragen im Web erhalten werden (bspw. muss nur eine Datenbankverbindung aufgebaut werden) • Nachteil: Für kleine Anwendungen oft grosser Aufwand, relativ viel Detailwissen erforderlich; kommerzielle Lösungen relativ teuer (BEA, WebLogic, IBM Websphere, Oracle, ...) Abteilung für Wirtschaftsinformatik, WU Wien Folie 7 Übersicht über nächsten Folien • Detail-Information zu: – – – – CGI Java-Applets ActiveX Servlets • Verteilte Anwendungen Abteilung für Wirtschaftsinformatik, WU Wien Folie 8 Datenbankanbindung über CGI-Script Web Browser HTTP WWWServer Applikation CGI (Standardeing. + Umgebungsvar.) CGIScript DBMS Informationssystem • HTTP-Sever ruft Gateway-Script über URI auf und übergibt Argumente. • Gateway-Script führt über SQL-Befehle die Datenbankabfrage durch. • Ergebnisse werden vom Script in HTML formatiert und vom WWW-Server als HTML-Seite an den Browser geschickt. Abteilung für Wirtschaftsinformatik, WU Wien Folie 9 Nachteile CGI-basierter Datenbankanbindungen • Web-Server erzeugt für jeden CGI-Request einen neuen Prozeß. • Für jeden Request wird Script-Programm (und Interpreter) neu geladen, gestartet und beendet • Keine Lastverteilung zugunsten des Servers - alle Berechnungen werden zentral ausgeführt. • HTTP als zustandsloses Protokoll unterstützt keine Sitzungen (engl.: sessions) • Dadurch muß der Benutzer an der Datenbank stets neu an- und abgemeldet werden. Abteilung für Wirtschaftsinformatik, WU Wien Folie 10 Zustandsmanagement bei HTTP • Problematik beim Zustandsmanagement: – Benutzer stellt an einen Server mehrere Anfragen und möchte nicht bei jeder Anfrage die gesamte Information neu eingeben – Ein HTTP-Server behandelt jeden Request unabhängig von den anderen (HTTP ist zustandslos). – Beispiel: Einkaufswagen, mehrseitiges Formular, .... • Ansätze: – Cookies: Server speichert Information beim Client, der Client schickt bei Anfrage an den gleichen Server diese Information mit – Hidden Form Fields (HTML-Formulare): In jedes Formular wird ein nicht-dargestelltes Feld eingefügt, anhand dessen bei einem neuen Request der Server die Transaktion finden kann. – Parameter für URLs: Jede URL eines dynamisch erzeugten HTMLFormulars erhält einen Parameter zur Identifikation der Transaktion. Abteilung für Wirtschaftsinformatik, WU Wien Folie 11 Java (Sun Microsystems) Was ist Java ? Java Sourcecode Compiler Java Bytecode Bytecode Interpreter Windows95 Bytecode Interpreter Unix • Virtuelle Maschine, Maschine kann auf unterschiedlichen Plattformen interpretiert werden • Programmiersprache und Compiler für die virtuelle Maschine • Klassenbibliothek (JDK, umfangreiche Netzwerk- und GUI-Funktionalität) Die Java-Programmiersprache • Kompiliert zu Java-Bytecode • Weiterentwicklung von C++, sehr ähnlich • Viele Eigenschaften von C++ entfernt (Beispiel: Zeiger, Funktionen, Mehrfachvererbung, ...) Abteilung für Wirtschaftsinformatik, WU Wien Folie 12 Java-Applet-Beispiel import java.applet.*; .* import java.awt.*; public class FirstApplet extends Applet { //Diese Methode paint stellt das Applet dar public void paint(Graphics g) { g.drawString(„Hello Student“, 25, 50); } Java-fähiger Browser (Windows ME) } /* Class FirstApplet */ 0efc345f6b7723ba83f2d90ca4 (...) Java-fähiger Browser (Linux) Abteilung für Wirtschaftsinformatik, WU Wien Folie 13 Eigenschaften von Java-Applets Java-fähiger Browser (1) HTTP-Anfrage (über URI) (2) Übertragung des Byte-Codes WWW-Server • Browser (mit Java Interpreter) kann Java-Applets als Teil einer HTML-Seite laden und ausführen – Animationen, Darstellung von Graphiken, Audio-Funktionalität – Lokale Interaktionen (Maus, Keyboard) – TCP/IP-Verbindungen zu server-seitigen Anwendungen • Sicherheit – keine Zeiger, Prüfung des Bytecodes durch den Bytecode Verifier – Applets haben keinen Zugriff auf das lokale Dateisystem (Trusted Applets schon!) • Einfache Software-Verteilung Abteilung für Wirtschaftsinformatik, WU Wien Folie 14 Stock Ticker-Applet Abteilung für Wirtschaftsinformatik, WU Wien Folie 15 DB-Zugriff mit Java-Applets Applet laden Java-fähiger Browser Applet kommuniziert mit DB (eigene TCP/IP Verbindung) WWW-Server und Datenbank-Server • Java-Anwendung kann eigene Netzwerkverbindung öffnen (Transaktionen sind möglich) • Bei Applets jedoch i.d.R. Einschränkungen bezüglich der Netzwerkverbindung. • JDBC (ähnlich ODBC) - Java Klassen für Datenbankzugriff: Gemeinsamer Standard der großen DB-Hersteller. • Stärkere Belastung des Klienten - Lastverteilung zugunsten des Servers. Abteilung für Wirtschaftsinformatik, WU Wien Folie 16 DB-Zugriff mit Java (3-Stufen-Architektur) Applet wird geladen Java-fähiger Browser WWW-Server und Gateway-Server Datenbank-Server Datenbank-Server • Mehrstufige Client-Server-Architekturen können das Problem der eingeschränkten Netzwerkverbindungen umgehen. • Über den Gateway-Server können auch mehrere Datenbanken angesprochen werden. Abteilung für Wirtschaftsinformatik, WU Wien Folie 17 Microsoft ActiveX • „Sammlung von Techniken, Protokollen und APIs zur Realisierung von netzwerkweiten Anwendungen.“ • Erlaubt client-seitige Anwendungen ähnlich Applets. • ActiveX stützt sich auf Microsofts KomponentenTechnik DCOM und ist plattformabhängig(!). Man benötigt einen COM-fähigen Web-Browser. • ActiveX-Controls können in einer Reihe von Programmiersprachen erzeugt werden. • Das ausgefeilte Sicherheitskonzept von Java fehlt und beschränkt sich auf digitales Signieren der Controls! Abteilung für Wirtschaftsinformatik, WU Wien Folie 18 Server-seitiges Java ? Servlets • Einfaches Server API für Java Anwendungen. • Plattformunabhängigkeit und leichte Portierbarkeit durch die Programmiersprache Java. • Servlets werden (ähnlich wie dynam. Bibliotheken) beim ersten Aufruf geladen und bleiben im Server. • Der Servlet-Code kann auch von anderen Rechnern geladen werden. • Auch die Einbettung von Servlet-Output in eine HTML Seite ist durch <SERVLET>-Tag möglich. Der Web-Server durchsucht dabei den HTML Code und ersetzt die entsprechende Passage. Abteilung für Wirtschaftsinformatik, WU Wien Folie 19 Historische Entwicklung verteilter Anwendungen GUI Anwendungslogik Zeichenbasierte Benutzerschnittstelle Netzwerk Anwendungslogik Anwendungslogik Datensätze DBMS Stand-aloneAnwendung Zwei-SchichtenModell GUI Netzwerk Anwendungslogik Netzwerk DB-Server Drei-SchichtenModell t Abteilung für Wirtschaftsinformatik, WU Wien Folie 20 Verteilte Anwendungen • Client-/Server-Anwendung: „geteilte Anwendung“ • Allgemeine Lösungsansätze – Middleware: Infrastruktur zur Realisierung verteilter Anwendungen – Remote-Procedure-Call (RPC): Prozeduraufruf über ein Netzwerk • SUN-RPC • SOAP: Aufruf und Ergebnis werden in XML dargestellt • CORBA (common object request broker architecture) – Mobiler Programmcode Abteilung für Wirtschaftsinformatik, WU Wien Folie 21 Mobiler Programmcode Mobile Applikation • Programmcode kann mehr oder minder selbstständig von Rechner zu Rechner migrieren („wandern“) • Programmausführung in einer meist eingeschränkten Laufzeitumgebung • Kompilierte Programme in Maschinencode ungeeignet, da – Sicherheitsrisiko zu hoch – Unterschiedliche Plattformen • Daher meist interpretierte Sprachen Beispiele: Java, LISP, XOTcl, Safe-Tcl, Python, ... • Symetrische Mobile Code Systeme: Agentensysteme Abteilung für Wirtschaftsinformatik, WU Wien Folie 22