pdf_klein

Transcrição

pdf_klein
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