Architekturen Internet-basierter Informationssysteme Architekturen

Werbung
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
Herunterladen