Electronic Commerce und Neue Medien Architekturen Internet-basierter Informationssysteme • • • • • • Statische vs. dynamische Information im Web Statische vs. dynamische Information im Web Realisierungsansätze Applikationsserver Java-Applets CGI-Programme Verteilte Anwendungen Abteilung für Wirtschaftsinformatik , WU Wien Folie 1 Integration bestehender IS mit dem WWW • • 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 Klassische Datenbankanbindung im WWW Web-Technologie (Browser, HTML, HTTP, XML, ...) setzt sich als universelle Schnittstelle zu den internen Informationssystemen durch. Connect Request Web-Client Web-Server Connect Confirm Client-ServerArchitektur des WWW HTTP Request • • • Intranet -> Einsatz von Internet-Technologie im firmen-internen Bereich. Bestehende Informationssysteme (deren Datenbanken) werden zunehmend ins Intranet eines Unternehmen integriert. HTTP Response Disconnect request Disconnect Confirm Auch Internet-Anwendungen (Shopping- systeme, Kataloge) greifen zunehmend auf interne Datenbanken zu WebServer Anwendung Web Browser Koppelung mit betrieblichen IS über CGI-Schnittstelle Entstehung von netzwerkzentrierten, mehrschichtigen Informationssystemen Abteilung für Wirtschaftsinformatik , WU Wien Datenbank Folie 3 Dynamische Information im Web (1) Abteilung für Wirtschaftsinformatik , WU Wien Folie 4 Dynamische Information im Web (2) • ServerServer-seitige seitige Realisierung: • KlientenKlienten-seitige seitige Realisierung: – CGICGI-Scripte Scripte:: – Java- Applet 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, ... • 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 – Plug-ins: 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 DBMS CGIProgram Folie 5 Abteilung für Wirtschaftsinformatik , WU Wien Architekturen internetbasierter Informationssysteme Folie 6 Electronic Commerce und Neue Medien Dynamische Information im Web (3) Übersicht über nächsten Folien • ServerServer-seitige seitige Realisierung: – Applikations-Server: 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 Datenbankanbindung über CGI-Script Web Browser HTTP WWWServer CGIScript Applikation DBMS Informations system • 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 – – – – CGI Java-Applets ActiveX Servlets • Verteilte Anwendungen Abteilung für Wirtschaftsinformatik , WU Wien Folie 9 • 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 Zustandsmanagement bei HTTP Folie 10 Java (Sun Microsystems) • Problematik beim Zustandsmanagement: Was ist Java ? – 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). Java Sourcecode Compiler • • Java Bytecode – 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. Folie 11 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 Bytecode Interpreter Windows95 Bytecode Interpreter Unix • • Kompiliert zu Java-Bytecode Weiterentwicklung von C++, sehr ähnlich • Viele Eigenschaften von C++ entfernt (Beispiel: Zeiger, Funktionen, Mehrfachvererbung, ...) – 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 8 Nachteile CGI-basierter Datenbankanbindungen CGI (Standardeing. + Umgebungsvar.) • Detail-Information zu: Abteilung für Wirtschaftsinformatik , WU Wien Architekturen internetbasierter Informationssysteme Folie 12 Electronic Commerce und Neue Medien Java-Applet-Beispiel Eigenschaften von Java-Applets import java. java.applet applet.* .*; import java.awt.*; Java-fähiger Browser 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) (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 } /* Class FirstApplet */ • Sicherheit – keine Zeiger, Prüfung des Bytecodes durch den Bytecode Verifier Java-fähiger Browser (Linux) 0efc345f6b7723ba83f2d90ca4 (...) Abteilung für Wirtschaftsinformatik , WU Wien Folie 13 – Applets haben keinen Zugriff auf das lokale Dateisystem (Trusted Applets schon!) • Einfache Software-Verteilung Abteilung für Wirtschaftsinformatik , WU Wien Stock Ticker-Applet Folie 14 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 15 DB-Zugriff mit Java (3-Stufen-Architektur) WWW-Server und Gateway-Server 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 16 Microsoft ActiveX Applet wird geladen Java-fähiger Browser Abteilung für Wirtschaftsinformatik , WU Wien Folie 17 • „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 Architekturen internetbasierter Informationssysteme Folie 18 Electronic Commerce und Neue Medien Historische Entwicklung verteilter Anwendungen 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 Verteilte Anwendungen GUI GUI Anwendungslogik Zeichenbasierte Benutzerschnittstelle Netzwerk Anwendungslogik Anwendungslogik Datensätze DBMS Stand-aloneAnwendung Anwendungslogik Netzwerk DB-Server Zwei-SchichtenModell Drei-SchichtenModell t Abteilung für Wirtschaftsinformatik , WU Wien Folie 20 Mobiler Programmcode Mobile Applikation • 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 • 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 • SOAP: Aufruf und Ergebnis werden in XML dargestellt • CORBA ( common object request broker architecture) – Unterschiedliche Plattformen • Daher meist interpretierte Sprachen Beispiele: Java, LISP, XOTcl, Safe-Tcl, Python, ... • Symetrische Mobile Code Systeme: Agentensysteme – Mobiler Programmcode Abteilung für Wirtschaftsinformatik , WU Wien Netzwerk Folie 21 Abteilung für Wirtschaftsinformatik , WU Wien Architekturen internetbasierter Informationssysteme Folie 22