05.11.2012 Aufrufe

eCommerce Systeme - Institut für Informatik - Christian-Albrechts ...

eCommerce Systeme - Institut für Informatik - Christian-Albrechts ...

eCommerce Systeme - Institut für Informatik - Christian-Albrechts ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Arbeitsgruppe Angewandte <strong>Informatik</strong> (Wirtschaftsinformatik)<br />

Vorlesung: Andreas Speck<br />

Übungen: Sven Feja<br />

<strong>Christian</strong>-<strong>Albrechts</strong>-Universität zu Kiel<br />

<strong>Institut</strong> <strong>für</strong> <strong>Informatik</strong><br />

Raum 404a / 403, Hermann-Rodewald-Str. 3, D-23118 Kiel<br />

Email: andreas.speck@email.uni-kiel.de<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 1 <strong>eCommerce</strong> Sommersemester 2008


Gliederung<br />

1 Einführung<br />

2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

3 Wirtschaftliche Konzepte<br />

4 Web Shop <strong>Systeme</strong><br />

5 Hochleistungs-<strong>eCommerce</strong> <strong>Systeme</strong><br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 2 <strong>eCommerce</strong> Sommersemester 2008


<strong>eCommerce</strong> <strong>Systeme</strong><br />

Gliederung Einführung<br />

2 Grundlagen<br />

2.1 Protokolle (1)<br />

2.2 Unterstützung durch Betriebssystem<br />

2.3 Protokolle (2)<br />

2.4 Programmierung<br />

2.5 Datenpräsentation<br />

2.6 Sicherheit<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 3 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Netzwerke werden durch geschichtete Protokolle beschrieben:<br />

Protokoll-Stack<br />

Application Layer<br />

Internet Layer<br />

Network Layer<br />

Internet Application<br />

TCP / IP<br />

Network Technology<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 4 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Beispiele <strong>für</strong> Protokolle auf der Applikationsschicht:<br />

Application Layer<br />

Internet Layer<br />

Network Layer<br />

HTTP FTP Telnet SSH<br />

TCP / IP<br />

Network Technology<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 5 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Warum werden Protokolle geschichtet?<br />

aus [Tan1997]:<br />

A layer should be created where a different level of abstraction is needed.<br />

Each layer should perform a well defined function.<br />

The function of each layer should be chosen with an eye toward defining<br />

internationally standardized protocols.<br />

The layer boundaries should be chosen to minimize the information flow across<br />

the interface.<br />

The number of layers should be large enough that distinct functions need not to<br />

be thrown together in the same layer out of necessity, and small enough that the<br />

architecture does not become unwieldy.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 6 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Vergleich mit dem<br />

Referenzmodell<br />

<strong>für</strong> Netzwerk-<br />

kommunikation:<br />

Open System<br />

Interconnection<br />

Reference Model (OSI)<br />

of International Standards<br />

Organization (ISO)<br />

Application<br />

Presentation<br />

Session<br />

Transport<br />

Network<br />

Data Link<br />

Physical<br />

Application Protocol<br />

Presentation Protocol<br />

Session Protocol<br />

Transport Protocol<br />

Network Protocol<br />

Data Link Protocol<br />

Physical Protocol<br />

Physical Network (Cable)<br />

Application<br />

Presentation<br />

Session<br />

Transport<br />

Network<br />

Data Link<br />

Physical<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 7 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Grundsätzliche Konzepte eines Referenzmodells:<br />

Ist eine reine Referenz, die angibt:<br />

- welche Dienste vorkommen müssen oder können<br />

- auf welcher Ebene die Dienste angeordnet sind<br />

- welche Dienste miteinander interagieren<br />

Reale Netzwerke<br />

- können die Anzahl der Dienste ändern (meist verringern),<br />

- können die Dienste auf anderen Ebenen anordnen<br />

- und können die Anzahl der Ebenen ändern (meist verringern).<br />

z.B. TCP / IP (4 Ebenen), CAN (2 oder 3 Ebenen)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 8 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Grundsätzliche Konzepte: Peer to Peer Kommunikation<br />

- Dienste auf einer spezifischen Ebene werden als Peers bezeichnet<br />

- diese Dienste kooperieren miteinander<br />

- die jeweils unterlagerten Dienstebenen sind Abstraktionen der<br />

Netzkommunikation<br />

Aufruf<br />

unterlagerter<br />

Dienste<br />

Einpacken<br />

der Daten<br />

Versenden<br />

über Netzwerk<br />

Aufruf<br />

unterlagerter<br />

Dienste<br />

Austausch von<br />

Rechner zu Rechner<br />

kooperierende<br />

Algorithmen<br />

weiterreichen<br />

über Netzwerk<br />

Verbindung<br />

zwischen zwei<br />

Rechnern<br />

Auspacken<br />

der Daten Aufruf<br />

durch unterlagerte<br />

Dienste<br />

Empfangen<br />

über Netzwerk<br />

Aufruf<br />

durch unterlagerte<br />

Austausch von<br />

Rechner zu Rechner<br />

Dienste<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 9 <strong>eCommerce</strong> Sommersemester 2008


7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Netzwerkverbindungen:<br />

Repeater Bridge<br />

(Protokollumwandlung)<br />

Router<br />

(Anpassung<br />

unterschiedlicher<br />

Netzwerke)<br />

Gateway<br />

(vollständige<br />

Umsetzung)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 10 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Genauere Betrachtung einzelner Dienste:<br />

Data Link und Physical: schematisches Modell einer Nachricht<br />

Begin Header (ID) Frame Number DATA Checksum End<br />

Begin: Erkennung, dass eine Nachricht folgt<br />

Header (ID): Adresse des Empfängers, z.T. auch Priorität der Nachricht<br />

Frame Number: Ist die Nachricht Teil eines größeren Datenpakets (Frame),<br />

so wird hier die Nummer der Nachricht innerhalb des Pakets<br />

angegeben (Frame 47, Message 11)<br />

DATA: die Daten, Nutzinformation<br />

Checksum: Maßnahme zur Prüfung der Korrektheit der Nachricht.<br />

Die vorausberechnete Check-Summe, die vom Sender<br />

mitgegeben wurde, muss auch vom Empfänger so berechnet<br />

werden.<br />

End: Erkennung, dass die Nachricht beendet ist<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 11 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Typisches TCP/IP Ebene 2 Protokoll: Ethernet<br />

Zur Erinnerung der Aufbau eines Ethernet-Pakets:<br />

Präambel 8 Bytes Synchronisation<br />

Empfänger 6 Bytes Adresse (11…1 ⇒ Broadcast)<br />

Sender 6 Bytes Adresse<br />

Protokoll 2 Bytes realisiertes Protokoll (z.B. IP)<br />

Daten < 1,5 kBytes nach Abzug der Header höherer Protokollschichten<br />

bleiben ca. 1 kBytes Nutzdaten<br />

Prüfsumme 4 Bytes CRC<br />

Paketlänge ist Kompromiss zwischen Overhead der Verpackung<br />

und Kollisionsgefahr.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 12 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.1 Protokolle (1)<br />

Fehler bei der Übertragung von Daten (Schicht 2 Protokolle)<br />

Ursachen des Verfälschen:<br />

Rauschen, Übersprechen, Echos, elektromagnetische Störimpulse (Bursts)<br />

Störimpuls von 10 ms bei Übertragungsrate 2400 Bit/s ⇒ Burst von 24 Bit<br />

Fehlererkennung redundante Kodierung:<br />

- Fehlererkennende Codes (Error-detecting Code),<br />

ARQ (automatic Repeat Request), d.h. Fehler erkannt ⇒ Wiederholung<br />

- Fehlerkorrigierende Codes (Error-correcting Code)<br />

FEC (Forward Error Correction), geeignete Redundanz ermöglicht<br />

Fehlerkorrektur (z.B. bei Hauptspeicher)<br />

weitere Möglichkeit: Echoverfahren (Zeichen wird reflektiert und damit vom<br />

Sender geprüft)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 13 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.1 Protokolle (1)<br />

TCP / IP Protokoll<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Einordnung realer Dienste wie<br />

TCP und IP gegenüber der im<br />

OSI Modell standardisierten<br />

Dienste<br />

TCP/IP:<br />

TCP = Transmission Control Protocol<br />

IP = Internet Protocol<br />

Telnet, FTP,<br />

SMTP, HTTP, ...<br />

TCP Transmission<br />

Control Protocol<br />

IP Protocol<br />

Ethernet, ATM, ...<br />

Copper, Fiber<br />

Application<br />

Presentation<br />

Session<br />

Transport<br />

Network<br />

Data Link<br />

Physical<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 14 <strong>eCommerce</strong> Sommersemester 2008<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Wozu werden Betriebssysteme benötigt?<br />

Beispiele <strong>für</strong> Rechnersysteme:<br />

1. Controller:<br />

eine einfache Aufgabe, ein Prozess, wenige eingebaute Geräte<br />

(Embedded Devices), meist selbst ein Embedded Device<br />

2. PC oder Workstation:<br />

multifunktional und variabel einsetzbar, mehrere periphere<br />

(und austauschbare) Geräte<br />

mehrere Benutzer mit z.T. unterschiedlichen Rechten,<br />

mehrere Prozesse<br />

3. Maschinensteuerung:<br />

eigentlich Mischung aus 1. und 2.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 15 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Was leisten Betriebssysteme?<br />

Beispiele <strong>für</strong> Rechnersysteme:<br />

Verwaltung von Prozessen<br />

Verwaltung von Benutzern<br />

Verwaltung von Dateien<br />

allgemein: Verwaltung von Ressourcen<br />

Ansteuerung von (peripheren) Geräten<br />

Austausch zwischen Geräten und den Prozessen der Benutzer<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 16 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Aus was besteht ein Betriebssystem?<br />

Kern des Betriebssystems (Kernel):<br />

• absolute Basisfunktionalität (z.B. Scheduling, Verwaltung von Zugriffen,<br />

bzw. Anfragen)<br />

• Basismodule als Zusatz zum Kern<br />

• Treiber, z.B. Gerätetreiber<br />

• Hilfsprogramme (siehe Abschnitt 1.2)<br />

Achtung: ähnlich wie Kernzugriffe (Kernel Traps) aber nicht gleich,<br />

sondern nur ausprogrammierte Kernel Traps<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 17 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?<br />

Kernel Trap<br />

Prozess<br />

z.B. Browser<br />

Zugriff auf Web Server<br />

Kernel<br />

Trap<br />

Kernel<br />

Shell<br />

Treiberprozess<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 18 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?<br />

erstes ganz einfaches Beispiel: C Programm „MyNumer.c“<br />

Was ist das?<br />

„normaler“ Programm-Code<br />

}<br />

Kernel Trap:<br />

Ausdruck auf Bildschirm<br />

⇒ Zugriff auf das Gerät Grafikkarte<br />

#include <br />

void main() {<br />

int i = 99;<br />

i = i + 1;<br />

printf(„Hello my number is: %i \n“, i);<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 19 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?<br />

C Compilation: C Programm „gcc –o myNumber MyNumer.c“<br />

Einzug eines<br />

Header-Files<br />

#include <br />

(Zugriffsschnittstellenbeschribung)<br />

void main() {<br />

„normaler“ Compilation int i = 99;<br />

Umwandlung zu<br />

i = i + 1;<br />

Maschinen-Code<br />

printf(„Hello my number is: %i \n“, i);<br />

}<br />

Kernel Trap:<br />

auch Systemaufruf genannt<br />

Einbinden von Bibliotheks-Code<br />

⇒ führt die Interaktion mit Kernel aus<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 20 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?<br />

Zugriff über einen Systemaufruf (d.h. Kernel Trap)<br />

Was muss bei einem Systemaufruf beachtet werden?<br />

• Kenntnis der Bezeichnung des Aufrufs<br />

• Signatur des Aufrufs:<br />

- Eingangsparameter und deren Bedeutung<br />

- Rückgabeparameter<br />

• eventuell weitere abhängige Aufrufe<br />

Dieses Verfahren wird auch von anderen Programmiersprachen<br />

so nachempfunden (Java, PHP, usw.)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 21 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?<br />

Zugriff über Gerätetreiber (Device Drivers)<br />

• Treiber ist Teil des Bibliotheks-Code<br />

• Treiber ist Geräte-abhängig:<br />

zum Anwendungsprogramm wird eine standardisierte Schnittstelle<br />

verwendet;<br />

zum Geräte Controller hin Geräte-spezifisch<br />

• Treiber werden meist vom Gerätehersteller zur Verfügung gestellt<br />

Call Call Call<br />

Anwendungsprogramm Device Driver Device Controller Device<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 22 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Wie kann auf Geräte über das Betriebssystem zugegriffen werden?<br />

Grobstruktur der Gerätetreiber (Device Drivers)<br />

vom<br />

Anwendungsprogramm<br />

zum<br />

Anwendungsprogramm<br />

eingehender Systemaufruf<br />

Parameteraufbereitung<br />

Parameter aufgreifen,<br />

zerlegen<br />

in EA-Register ablegen<br />

Geräteaufruf von System<br />

Geräteantwort an System<br />

Verlaufsanalyse<br />

Rücksprung von Systemaufruf<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 23 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Hilfs-Programme zum Zugriff aus UNIX / Linux<br />

Zugriff über Console, z.B. xterm mit einer Command Shell, (z.B. bash)<br />

Grundstruktur der UNIX Aufrufe:<br />

xterm –sb –bg yellow &<br />

aufgerufenes Parameter unabhängiger<br />

Programm Kindprozess<br />

Hilfe und Dokumentation:<br />

xterm –-help oder xterm –h oder man xterm<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 24 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Hilfs-Programme zum Zugriff aus UNIX / Linux<br />

Zugriff über Console, z.B. xterm mit einer Command Shell, (z.B. bash)<br />

Grundstruktur der UNIX Aufrufe:<br />

xterm –sb –bg yellow &<br />

aufgerufenes Parameter unabhängiger<br />

Programm Kindprozess<br />

Hilfe und Dokumentation:<br />

xterm –-help oder xterm –h oder man xterm<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 25 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Hilfs-Programme zum Zugriff aus UNIX / Linux<br />

Hilfsprogramme: Dateirechte<br />

<strong>für</strong> Dateien<br />

6 : lesen und schreiben<br />

4 : nur lesen<br />

7: ausführbar, lesen und schreiben<br />

5: ausführbar, nur lesen<br />

Standard:<br />

chmod 644 filename<br />

Bei Verzeichnissen gilt immer:<br />

7 lesen und schreiben,<br />

5 nur lesen<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 26 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Hilfs-Programme zum Zugriff aus UNIX / Linux<br />

Hilfsprogramme: Links auf Dateien<br />

ln stellt Links zwischen Dateien oder Verzeichnissen her<br />

entweder Hardware-Links oder symbolische Links (zu bevorzugen)<br />

Optinen: --symbolic oder -s<br />

Beispiel:<br />

ln -s jdk1.3 java<br />

ergibt:<br />

ls -l java<br />

lrwxrwxrwx 1 root root 6 Jan 18 16:34 java -> jdk1.3<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 27 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Dateisystem in UNIX / Linux<br />

Boot<br />

Block<br />

Super<br />

Block<br />

I-Nodes<br />

Data<br />

Blocks<br />

Data<br />

Blocks<br />

I-Nodes sind eine Indirektion zwischen den Datenblöcken der Datei und<br />

den Dateinamen, sie beinhalten u.a.<br />

Name, Rechte und Besitzer, Größe, Verweise auf Datenblöcke, …<br />

dabei sind I-Nodes faktisch Dateiblöcke<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 28 <strong>eCommerce</strong> Sommersemester 2008<br />


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Dateisystem in UNIX / Linux<br />

Links: Hard Link<br />

Boot<br />

Block<br />

Super<br />

Block<br />

alter Verweis<br />

I-Nodes<br />

neuer Verweis (Hard Link)<br />

Data<br />

Blocks<br />

Data<br />

Blocks<br />

Bei Hard Links wird ein Verweis auf einen (oder mehrere) Dateiblöcke<br />

„hart“ umgebogen.<br />

Vorteil: Die Dateiblöcke werden direkt – also schneller – gefunden.<br />

Nachteil: Bei Fehlern können die alten Verweise nicht mehr rekonstruiert<br />

werden<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 29 <strong>eCommerce</strong> Sommersemester 2008<br />


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Dateisystem in UNIX / Linux<br />

Links: Soft Link<br />

Boot<br />

Block<br />

Super<br />

Block<br />

neuer Verweis (Soft Link greift auf<br />

bestehnden I-Node zurück)<br />

alter Verweis<br />

I-Nodes<br />

Data<br />

Blocks<br />

Data<br />

Blocks<br />

Bei Soft Links wird ein Verweis auf einen anderen Verweis weitergeleitet.<br />

Nachteil: Beim Zugriff auf Datenblöcke kommt es zu einer Indirektion, d.h.<br />

Zeitverzögerung.<br />

Vorteil: Keine bestehenden Verweise und Datenblöcke gehen verloren.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 30 <strong>eCommerce</strong> Sommersemester 2008<br />


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Prozesse in Unix / Linux<br />

Prozesse befinden sich in verschiedenen Zuständen<br />

1<br />

(just)<br />

created<br />

2<br />

runnable<br />

5<br />

Meistens befinden sich die Prozesse im Zustand blocked.<br />

Sie warten auf ein Signal.<br />

3<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 31 <strong>eCommerce</strong> Sommersemester 2008<br />

7<br />

execute<br />

on CPU<br />

4<br />

suspended<br />

8<br />

6<br />

blocked<br />

Zombie


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Prozesse in Unix / Linux<br />

Prozesse<br />

besitzen einen Prozesskontrollblock (Process Control Block, PCB)<br />

mit wichtigen Informationen über den Prozess: z.B. Besitzer, Priorität, Ort<br />

im Speicher, Zustand und Identität<br />

Die Identität wird als Process Identity (PID) bezeichnet.<br />

Anhand diese können Prozesse identifiziert werden:<br />

ps –eaf (fast) alle Prozesse, die auf dem Rechner ablaufen<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 32 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Prozesse in Unix / Linux<br />

Signale an Prozesse<br />

Prozesse sind meist blockiert und warten auf ein Signal.<br />

Beispiele:<br />

Web Server wartet auf ein Signal der Netzkarte, dass ein Zugriff von<br />

außen erfolgt.<br />

Ein Editorprozess wartet auf eine Tastatureingabe.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 33 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Prozesse in Unix / Linux<br />

Signale an Prozesse<br />

Beispiel: Web Server wartet auf ein Signal der Netzkarte, dass ein<br />

Zugriff von außen erfolgt.<br />

1<br />

Kartentreiber<br />

2 Betriebssystem<br />

3<br />

Web<br />

Server<br />

Prozess<br />

1. Netzkarte empfängt Nachricht und gibt diese an<br />

Kartentreiber<br />

2. Kartentreiber informiert Betriebssystem, dass das<br />

Signal versendet werden soll<br />

3. Betriebssystem weckt (deblockiert) Web Server<br />

Prozess auf und informiert, dass ein Signal zugestellt<br />

wurde<br />

4. Web Server Prozess schaut in Signaltabelle nach neu<br />

erhaltenem Signal<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 34 <strong>eCommerce</strong> Sommersemester 2008<br />

Signaltabelle<br />

4


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Prozesse in Unix / Linux<br />

Signale an Prozesse<br />

Manuelles Versenden von Signalen<br />

kill pid sendet ein Signal an den Prozess mit PID<br />

Beispiel:<br />

kill 99 (PID zuvor mit ps ermittelt)<br />

und wenn ein Prozess hängt, also “abgeschossen” werden muss:<br />

kill -9 1010<br />

-9 ist die Nummer des Signals, 9 = SIGKILL<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 35 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Netzwerkkommunikationsmechanismus in UNIX / Linux und<br />

weiteren Betriebssystemen (Socket)<br />

• ermöglichen den Prozessen den Zugriff auf das Netzwerk<br />

• bieten verschiedene Kommunikationsformen:<br />

- zuverlässiger verbindungsorientierter Byte-Stream<br />

- zuverlässiger, verbindungsorientierte Paketstrom (Paket-Stream)<br />

- unsichere Paketübermittlung (Paket Transmission)<br />

Sending Process Receiving Process<br />

Socket<br />

Connection<br />

Network<br />

User Space<br />

Kernel Space<br />

[A.S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992]<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 36 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Ports<br />

Sockets sind eine Funktionalität des Betriebssystems, die von über Netzwerk<br />

kommunizierenden Prozessen genutzt werden.<br />

Dabei werden den Prozessen feste Zugriffspunkte (Ports) zugeordnet<br />

(z.B. FTP-Prozesse haben den Port 21).<br />

• Portnummern 1 bis1023 Systemprozesse oder systemnahe Prozesse<br />

• Portnummern 1024 bis 5000 werden von der Portverwaltung vergeben<br />

• Portnummern ab 5001 werden ohne Kontrolle vom Anwender vergeben<br />

Eine Verbindung wird daher charakterisiert durch:<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 37 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Grundsätzlicher Ablauf der Kommunikation über Socket<br />

hier codiert in C:<br />

Server Client<br />

socket(); /* Adr.fam,Art,Prot. */ socket();<br />

bind(); /* Adresse */<br />

listen(); /* Puffer */<br />

accept(); /* Verb.aufbau */<br />

… /* Server ist blockiert */<br />

connect();/* Verb.aufbau */<br />

read(); /* Lesen - Schreiben */ write();<br />

write(); read();<br />

… /* Server ist blockiert */<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 38 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Grundsätzlicher Ablauf der Kommunikation über Socket<br />

Alternative Realisierung in Java (Teil 1, Deklaration der Variablen):<br />

// create socket instance:<br />

Socket socket = (Socket)null;<br />

// I/O – streams:<br />

InputStream instream;<br />

OutputStream outstream;<br />

// define hostname and portnumber:<br />

String hostname = "141.35.45.222";<br />

int portnumber = 1024;<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 39 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Grundsätzlicher Ablauf der Kommunikation über Socket<br />

Alternative Realisierung in Java (Teil 2, Öffnen der Socket-Verbindung):<br />

// open socket<br />

try {<br />

if (socket == (Socket)null) {<br />

socket = new Socket (hostname, portnumber , true);<br />

System.out.println("New Socket created");<br />

// open streams for socket<br />

instream = socket.getInputStream();<br />

outstream = socket.getOutputStream();<br />

}<br />

else {System.out.println("Socket already existing"); }<br />

} catch ( IOException e ) {System.out.println("Socket Error");};<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 40 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Grundsätzlicher Ablauf der Kommunikation über Socket<br />

Alternative Realisierung in Java (Teil 3, Datenaustausch):<br />

public void communicate () throws IOException {<br />

byte b = (byte)0;<br />

b = (byte) instream.read();<br />

System.out.println("Socket has received Byte:" + b);<br />

outstream.write(b);<br />

outsream.flush();<br />

System.out.println("Socket has send Byte: " + b);<br />

}<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 41 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Grundsätzlicher Ablauf der Kommunikation über Socket<br />

Alternative Realisierung in Java (Teil 4, Socket schließen):<br />

try {<br />

instream.close();<br />

outstream.close();<br />

socket.close();<br />

} catch ( IOException e )<br />

{System.out.println("Socket closed "); };<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 42 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.2 Unterstützung durch Betriebssystem<br />

Durch Socket unterstüzte Protokolle<br />

User<br />

Process<br />

User<br />

Process<br />

TCP UDP<br />

IP ARP<br />

Hardware<br />

Interface<br />

Process Layer<br />

(Application)<br />

Transport Layer<br />

Network Layer<br />

Data Link Layer<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 43 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2)<br />

TCP / IP Protokollpakete<br />

reale Protokollebenen und deren alternative Dienste<br />

User<br />

Process<br />

User<br />

Process<br />

TCP UDP<br />

IP ARP<br />

Hardware<br />

Interface<br />

Process Layer<br />

(Application)<br />

Transport Layer<br />

Network Layer<br />

Data Link Layer<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 44 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2)<br />

Adressierung mit IP Nummer<br />

IP Nummer: beispielsweise 134.041.035.222<br />

jeweils vier Bytes (Wert 0 bis 255)<br />

• TCP sorgt da<strong>für</strong>, daß die Datenpakete „richtig“ bei<br />

der entsprechenden IP ankommen (dazu werden Sequenznummern genutzt, d.h.<br />

man erhält so die richtige Reihenfolge der Pakete sowie die notwendige Anzahl der<br />

Pakete <strong>für</strong> die Vollständigkeit der gesamten Information)<br />

• jeder Rechner, der ans Internet angeschlossen ist, hat auch eine IP-Adresse<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 45 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2)<br />

Klassifikation der Netzwerke anhand der IP Nummer<br />

Klasse-A-Netze<br />

Klasse-B-Netze<br />

Klasse-C-Netze<br />

http://www.arin.net/ - American Registry for Internet Numbers<br />

http://www.ripe.net/ - Réseaux IP Européens<br />

http://www.apnic.net/ - Asia Pacific Network Information Center<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 46 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2)<br />

Klassifikation der Netzwerke anhand der IP Nummer<br />

Klasse-A-Netze<br />

• erste Zahl einer IP-Adresse ist Netzwerknummer, alle anderen Zahlen sind<br />

Hostnummern<br />

• als Netzwerknummern solcher Netze sind Zahlen zwischen 0 und 127<br />

möglich<br />

• innerhalb eines Klasse-A-Netzes kann der entsprechende Netzbetreiber die<br />

zweite, dritte und vierte Zahl der einzelnen IP-Adressen seiner<br />

Netzteilnehmer frei vergeben<br />

• Das amerikanische Militärnetz ist beispielsweise so ein Klasse-A-Netz<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 47 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2)<br />

Klassifikation der Netzwerke anhand der IP Nummer<br />

Klasse-B-Netze<br />

• die beiden ersten Zahlen der IP-Adresse = Netzwerknummer<br />

• bei der ersten Zahl sind Werte zwischen 128 und 191 zulässig<br />

• bei der zweiten sind Zahl Werte zwischen 0 und 255 erlaubt<br />

• Klasse-B-Netze werden vor allem an große Firmen, Universitäten und<br />

Online-Dienste vergeben<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 48 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2)<br />

Klassifikation der Netzwerke anhand der IP Nummer<br />

Klasse-C-Netze<br />

• erste Zahl einer IP-Adresse eines Klasse-C-Netzes liegt zwischen<br />

192 und 223<br />

• Die Zahlen zwei und drei gehören ebenfalls noch zur Netzwerknummer.<br />

• kleine und mittlere Unternehmen mit direkter Internet-Verbindung, aber<br />

auch kleinere Internet-Provider<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 49 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2)<br />

Typisches TCP/IP Ebene 2 Protokoll: Ethernet<br />

Arbitrierung (Buszuteilungsverfahren) nach CSMA / CD<br />

(Carrier Sense Multiple Access / Collision Detected)<br />

• Sendestation „hört“ am Bus ob Bus frei (Carrier Sense)<br />

• wenn Bus frei, dann wird die Nachricht gesendet<br />

• die Nachricht breitet sich im Bus wie eine Welle aus (Bus flooded)<br />

• alle Stationen hören mit<br />

• falls eine Station feststellt, dass zwei Nachrichten kollidieren (d.h. hört<br />

Mischung aus zwei Nachrichten gleichzeitig), wird ein dominantes<br />

Fehlersignal (Jam) gesendet<br />

• hören die mehreren Sender das Jam-Signal, stellen sie das Senden ein und<br />

warten eine Zeitspanne (Back-off)<br />

Vorraussetzung: Das Versenden eines minimalen Pakets dauert länger als die<br />

Kollisionserkennung und Kollisionsmeldung.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 50 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2)<br />

Typisches TCP/IP Ebene 2 Protokoll: Ethernet<br />

Physikalisches Netzwerk: Kabeltypen und Netzwerkkarten<br />

Original Ethernet (0,4" Koaxialkabel):<br />

Thick Ethernet Yellow Cable oder 10Base5 (10 MBit/s, Basisband, 500m)<br />

Billigere Varianten:<br />

Thin-Wire 10Base2 (10 MBit/s, 185m), 0,25„ Koaxialkabel<br />

Twisted Pair 10BaseT (bis 100 MBit/s, 30m), verdrilltes Telefonkabel<br />

Ethernet-Netzwerkkarten habe eine 48 Bit Adresse (MAC-Adresse).<br />

Ursprünglich waren die ersten 3 Byte <strong>für</strong> den Hersteller reserviert (von IEEE) und<br />

die anderen 3 Byte <strong>für</strong> die Gerätenummer.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 51 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Universal Resource Identifier (URI)<br />

Browser<br />

This is a sample text in a document. From the<br />

user's point of view a web document is just a<br />

document which contains links which point to<br />

other documents (or into other documents).<br />

These links may simply be activated by clicking.<br />

Image<br />

Document 1<br />

Document 2<br />

Document n<br />

Wie können Dokumente (bzw. Teile von Dokumente) im Internet eindeutig<br />

lokalisiert und identifiziert werden?<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 52 <strong>eCommerce</strong> Sommersemester 2008<br />


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2)<br />

Universal Resource Identifier (URI)<br />

URN URL<br />

URI<br />

URN (Uniform Resource Code) and URL (Uniform Resource Locator)<br />

URI: an identifier pointing at any kind of information resource in the web;<br />

superset of URN and URL<br />

URN: the globally unique name of the resource and an address indicates where<br />

it is; has no fixed dependence to the real location<br />

URL: a physical address of an object, defining the access protocol<br />

(scheme. e.g. HTTP)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 53 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Universal Resource Identifier (URI)<br />

Client<br />

1. URN 2. URL 3. URL 4. Resource<br />

UNS<br />

URL und URI Konfusion:<br />

Resource<br />

Server<br />

• HTML 3.2 Spezifikation spricht von URL<br />

• HTML 4.0 Spezifikation spricht von URI<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 54 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Universal Resource Identifier (URI)<br />

URL Schema (Scheme-specific Part of URL)<br />

Beispiel:<br />

http://www.web-server.de:80/users/student<br />

Syntax:<br />

" // " [ user [ " : " password ] " @ " ] host [" : " port] " / " url-path<br />

Semantik:<br />

user: Login eines Benutzers, kann entfallen<br />

password: Passwort eines Benutzers, kann entfallen oder leeres Passwort<br />

host: entweder vollständig qualifizierter Domänenname oder IP-Nummer<br />

port: optional, meist Port-Nummer 80 (Standard <strong>für</strong> Web Server)<br />

url-path: Rest der URL, spezifiziert den relativen Ort des Dokuments auf dem Server<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 55 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Universal Resource Identifier (URI)<br />

URL Schema (Scheme-specific Part of URL)<br />

http://www.web-server.de:80/users/student<br />

Scheme Scheme specific Part<br />

ftp: FTP protocol<br />

http: HTTP protocol<br />

https: HTTP over SSL (Secure Sockets Layer)<br />

news: newsgroups or individual articles<br />

nntp: Networks News Transfer Protocol (Usenet news between servers)<br />

mailto: Internet mailing address (SMTP or ESMTP)<br />

telnet: interactive services accessed by telnet protocol<br />

ldap: updating & searching directories over TCP/IP (X.500 directories)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 56 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)<br />

A Protocol which<br />

• defines how messages are formatted and transmitted which actions web servers<br />

and clients can perform<br />

• uses reliable connection-oriented TCP<br />

• is stateless<br />

Goal of HTTP:<br />

• easy to implement (light protocol)<br />

• enables the retrieval of text based documents<br />

• (fast protocol)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 57 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)<br />

Zugriff auf Server<br />

Hier bekanntes Standardverfahren<br />

Client Server<br />

1. Anfrage an Server<br />

2. Antwort des Server<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 58 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)<br />

Proxy Server und Tunnel<br />

Proxy und Gateway:<br />

1. Anfrage an Proxy<br />

Client Proxy<br />

4. Antwort an Client<br />

2. Anfrage 3. Antwort<br />

an Server an Proxy<br />

Origin Server<br />

Tunnel:<br />

1. Anfrage an Server<br />

Client Tunnel<br />

4. Antwort an Client<br />

2. Anfrage 3. Antwort<br />

an Server an Client<br />

Origin Server<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 59 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)<br />

HTTP Services<br />

Message Specifications:<br />

generic and Entity, Request and Response<br />

Content Negotiation:<br />

Language specific, Quality specific, Encoding specific Variants<br />

Authentication, Identification and Authorization<br />

Persistent Connection (HTTP/1.1)<br />

Chunked Encoding (HTTP/1.1)<br />

when length of content is not known at the beginning of the transfer<br />

Caching<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 60 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)<br />

HTTP Caching<br />

Client Cache Server<br />

Cache zwischen Client und Server<br />

Client Server<br />

Cache<br />

Cache auf Seiten des Client<br />

Client Server<br />

Cache<br />

Cache auf Seiten des Server<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 61 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)<br />

HTTP Unterstützung <strong>für</strong> Cockies<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 62 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)<br />

HTTP Unterstützung <strong>für</strong> Cockies<br />

Cookie Types: Set-Cookie and Cookies<br />

Cookie Content: Comment (optional)<br />

Domain (optional)<br />

Max-Age (optional)<br />

Path (optional)<br />

Secure (optional)<br />

Version (mandatory)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 63 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Hypertext Transfer Protocol (HTTP)<br />

HTTP Unterstützung <strong>für</strong> Cockies<br />

Eigenschaften:<br />

• Kleine Dateien (


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Web Server Funktionalität<br />

Nehmen Anfragen von Web Clients in Empfang und antworten durch:<br />

- Auslieferung von Web Seiten (HTML Dokumenten)<br />

- Ausführen von Skripten durch Interpreter, die als Module integriert sind<br />

- Aufruf von externen Skripten über CGI<br />

Aufzeichnen von Informationen:<br />

-Informationen der Clients<br />

- Loging Informationen über Zugriffe und Fehler<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 65 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Web Server Funktionalität<br />

Charakteristika von Web Server<br />

HTML/HTTP-Server:<br />

• Wartet auf HTTP/SHTTP-Anfragen<br />

• Anfrage = URL + Parameter/Daten<br />

• Aktivitäten des Servers:<br />

– Seite im Dateisystem zu URL suchen und zurückliefern<br />

– Skript im Dateisystem zu URL suchen und mit Parametern ausführen<br />

– Ergebnisse zurückgeben (CGI)<br />

– Sonstiges Mapping von URL und Parametern auf Funktionalität<br />

• HTTP-Server als Gateway zur eigentlichen Anwendung<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 66 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Web Server Funktionalität<br />

Charakteristika von Web Server<br />

HTTP-Server – Möglichkeiten zur Dynamik:<br />

• Inhalte (z.B. HTML-Seiten), die ausführbare Anweisungen enthalten,<br />

welche der Server interpretiert (Inline PHP)<br />

• SSI, XSSI<br />

• Serverside Scripting: PHP, JSP<br />

• Eigener Prozess: CGI, FastCGI<br />

• Im Kontext des Servers: Servlets, COM-Objects<br />

• Erweiterungen des Web-Servers, z.B. Apache Modules<br />

• Spezialserver, z.B. LEO Wörterbuch, bis zu 400.000 Anfragen täglich ...<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 67 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Web Server Funktionalität<br />

Anforderungen an Web Server Verfügbarkeit<br />

Geforderte Uptime erlaubte Downtime<br />

Availability Annual Monthly<br />

95% 438 hrs. 36.5 hrs. Beta-Test<br />

99.5% 43.8 hrs. 3.7 hrs. Großteil aller kommer-<br />

99.95% 4.38 hrs. 21.9 mins. ziellen <strong>Systeme</strong><br />

99.98% 1.75 hrs. 8.75 mins. Mission-critical <strong>Systeme</strong><br />

99.99% 0.88 hrs. 4.4 mins. Real-time<br />

99.999% 0.09 hrs. 0.4 mins. Carrier-quality <strong>Systeme</strong><br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 68 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Web Server Funktionalität<br />

Informationsgewinnung durch HTTP-Request<br />

Web-Browser geben mit:<br />

• IP Adresse, z.B.129.28.241.121<br />

• Domain-Name<br />

• Referring Page<br />

• Client-Plattform<br />

• Cookies<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 69 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Web Server Funktionalität<br />

Informationsgewinnung Benutzerdaten<br />

• Feststellung, welche Person sich hinter Request verbirgt<br />

• IP Adresse in HTTP Request<br />

• Authentifizierung durch Benutzer (Login)<br />

• Speicherung<br />

• URL-Rewriting (Session-Identifikator)<br />

• Cookies (siehe vorherige Folien)<br />

• Vergabe einer Session-ID durch Server (Speicherung bei<br />

Client, Abruf durch Server)<br />

• Client-Zertifikate (<strong>für</strong> SSL)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 70 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Web Server Funktionalität<br />

Web Server speichert Information zu allen Anfragen:<br />

• URL<br />

• Zeit<br />

Informationsgewinnung Server Log Analyse<br />

• Client-IP-Adresse<br />

• Browser-Identifikator (Typ, Version, Betriebssystem)<br />

• Referrer-URL<br />

• Meist zuerst Identifikation von User-Sessions und Zuordnung eines Identifikators<br />

• genutzt <strong>für</strong> Visualisierung oder Data-Mining ...<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 71 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.3 Protokolle (2) Web Server Funktionalität<br />

Internet<br />

Server Cluster (Server Farms)<br />

Load<br />

Balance<br />

Anfrage wird<br />

zum am<br />

wenigsten<br />

belasteten Server<br />

geschickt<br />

Web<br />

Server<br />

Web<br />

Server<br />

Web<br />

Server<br />

replizierte<br />

Inhalte<br />

Appl.<br />

Server<br />

Appl.<br />

Server<br />

Appl.<br />

Server<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 72 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung<br />

2.4.1 CGI<br />

2.4.2 PHP<br />

2.4.3 JavaScript<br />

2.4.4 Java Applets (extra Dokument)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 73 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung<br />

CGI<br />

• CGI as interface between servers and external applications.<br />

• CGI is a realized by scripting languages, e.g. Perl<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 74 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung CGI<br />

Communication with the Web Server<br />

Server Environment Variables:<br />

1 Request independent: SERVER_SOFTWARE<br />

SERVER_NAME<br />

GATEWAY_INTERFACE<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 75 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung CGI<br />

Communication with the Web Server<br />

Server Environment Variables:<br />

2 Request dependent: SERVER_PROTOCOL<br />

SERVER_PORT<br />

REQUEST_METHOD<br />

PATH_INFO<br />

PATH_TRANSLATED<br />

SCRIPT_NAME<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 76 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung CGI<br />

Communication with the Web Server<br />

Server Environment Variables:<br />

2 Request dependent (continued): REMOTE_HOST<br />

REMOTE_ADDR<br />

AUTH_TYPE<br />

REMOTE_USER<br />

REMOTE_IDENT<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 77 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung CGI<br />

Access to Server Environment Variables:<br />

#!/usr/bin/perl<br />

print "Content-type: text/html","\n\n";<br />

print "", "\n";<br />

print "", "\n";<br />

print "","\n";<br />

print "", "\n";<br />

print "","\n";<br />

print "Subject of the HTML File","\n";<br />

print "","\n";<br />

$server_name = $ENV{'SERVER_NAME'};<br />

print "The Server Name of the machine is ",<br />

$server_name,"","\n";<br />

print "\n";<br />

print "","\n";<br />

print "","\n";<br />

exit (0);<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 78 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung CGI<br />

Application dependent Data:<br />

#!/usr/bin/perl<br />

print "Content-type: text/html","\n\n";<br />

print "", "\n";<br />

print "", "\n";<br />

print "","\n";<br />

print "", "\n";<br />

print "","\n";<br />

print "Subject of the HTML File","\n";<br />

print "","\n";<br />

%data = ("name",“Schiller","age",35,"place",“Jena");<br />

print $data{'name'}, " is ", $data{'age'}, " years and<br />

lives in", $data{'place'};<br />

print "\n";<br />

print "","\n";<br />

print "","\n";<br />

exit (0);<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 79 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung CGI<br />

Perl Program:<br />

Web Server and Perl Execution:<br />

#!/usr/bin/perl<br />

print "Content-type: text/html","\n\n";<br />

print "", "\n";<br />

print "", "\n";<br />

print "","\n";<br />

print "", "\n";<br />

print "","\n";<br />

print "Subject of the HTML File","\n";<br />

print "","\n";<br />

$server_name = $ENV{'SERVER_NAME'};<br />

print "The Server Name of the machine is<br />

",$server_name,"","\n";<br />

print "\n";<br />

print "","\n";<br />

print "","\n";<br />

exit (0);<br />

HTML exportiert durch Web Server:<br />

<br />

<br />

<br />

<br />

<br />

Subject of the HTML File<br />

<br />

The Server Name of the machine is<br />

my_server.wiwi.uni-jena.de<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 80 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung CGI<br />

Perl Interpreter: perl perl-script.pl<br />

#!/usr/bin/perl<br />

$i = 42;<br />

$square = $i * $i;<br />

print "the square of ", $i, " is ", $square, "\n";<br />

if($i > 1000)<br />

{<br />

$i = 0;<br />

}<br />

while($i


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung CGI<br />

Perl Interpreter: perl perl-script.pl<br />

#!/usr/bin/perl<br />

$value = 123456;<br />

$partof = substr($value,1,3);<br />

print $partof;<br />

@data = (“<strong>Christian</strong>",“Albrecht",“Kiel","Germany");<br />

print $data[0], " ", $data[1], " lives in ", $data[2], " ",<br />

$data[3];<br />

for($i = 1;$i


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung CGI<br />

Perl Interpreter: perl perl-script.pl<br />

Interpreter Execution:<br />

Option | Meaning<br />

-c Syntax Check<br />

-d Debug Mode<br />

-S Usage of given Paths<br />

-T strict Syntax Check while Execution<br />

-v Perl Interpreter Version<br />

-w Syntax Check and Warnings while Execution<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 83 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung PHP<br />

Personal Home Page Tool<br />

<br />

<br />

PHP Examples<br />

<br />

<br />

PHP Examples<br />

<br />

<br />

<br />

echo ("or without processing instructions")<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 84 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung PHP<br />

• 1994: erste Version von R. Lerdorf: Personal Home Page Tool<br />

einfache Skriptsprache zum Gestalten von Web Pages<br />

• Open Source: PHP Hypertext Preprocessors<br />

• 1995 erste professionelle <strong>Systeme</strong> PHP/FI (Personal Hompage Tools<br />

Form Interface) als PHP 2<br />

• seit 1997 intensive Weiterentwicklung mit dem Ergebnis 1999 PHP 3<br />

• 2000 Einführung von PHP 4, aktuell PHP 5<br />

•Besonderheit von PHP im Gegensatz zu z.B. Perl: nur als Webskript<br />

implementiert (Perl seit 1986 von L. Wall)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 85 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung PHP<br />

• PHP kann vom Web Server direkt interpretiert werden<br />

(Einbindung als Modul) oder<br />

• PHP wird über CGI aufgerufen<br />

• Apache ist der wichtigste dieser Web Server, der PHP Module<br />

unterstützt und gleichzeitig der am meisten verwendete Web<br />

Server<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 86 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung PHP<br />

Programmierung: Arrays<br />


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung PHP<br />

Programmierung: Multi-dimensional Arrays<br />


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung PHP<br />

Programmierung: Integer Variablen<br />

<br />

<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 89 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung PHP<br />

Programmierung: Floating Points Variablen<br />

Floating-point Numbers<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 90 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

• ist eine Client-Seitige Scriptsprache:<br />

in HTML Seite eingebettet und wird im Browser (also auf<br />

Client-Seite) ausgeführt / interpretiert<br />

• im HTML Dokument wird JavaScript innerhalb eines<br />

„Script“ Tag definiert:<br />

<br />

function checkZahl(obj){<br />

var x =obj.val e;<br />

if (isNaN(x)){<br />

alert(x +“ ist keine Zahl“);<br />

return false;<br />

}else return true;<br />

}<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 91 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Einfaches Beispiel:<br />

Test auf JavaScript enabled oder disabled in Browser<br />

<br />

<br />

JavaScript Hello World<br />

<br />

<br />

<br />

<br />

<br />

JavaScript Hello World<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 92 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Einsatzmöglichkeiten:<br />

Prüfung und Manipulation von Daten auf Seiten des Clients<br />

z.B. einfach Eingabevalidierungen (siehe JavaScript Funktionen)<br />

– Eingabe nicht leer<br />

– Eingabe ist numerisch oder Ganzzahl<br />

Dynamischer Aufbau von Web Seiten ohne Rückgriff auf<br />

Server, z.B. Anordnen von Graphiken, Aufbereiten von Listen<br />

Nicht geeignet <strong>für</strong>:<br />

vertragsrelevante Geschäftlogik (z.B. Bonitätsprüfung, …)<br />

Diese muss auf Server ablaufen.<br />

JavaScript wird von unterschiedlichen Browsern unterschiedlich<br />

abgearbeitet! (z.B. MS Internet Explorer, Mozilla oder Firefox)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 93 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Anwendung von JavaScript:<br />

• Aussehen und Inhalt von WWW-Dokumenten beeinflussen (Inhalte<br />

einfügen, Farben ändern, mehrere Frames gleichzeitig beeinflussen, ...)<br />

• Browser steuern (Dialogboxen erzeugen, Browser-Windows öffnen/<br />

schließen, Menüleisten, Statuszeile und Symbolleisten des Browsers<br />

beeinflussen, Anordnung von Frames beliebig definieren, URL des<br />

Dokumentes ändern, die Browser-History benutzen, ...)<br />

• Interaktion mit dem Dokumentinhalt erlauben (Auswerten der<br />

Benutzeraktionen - Click, Seite verlassen, etc.)<br />

• den Client-Zustand lokal speichern/lesen - Cookies, d.h. kann begrenzt<br />

auf die Festplatte des Nutzers schreiben/lesen<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 94 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Nicht geeignet <strong>für</strong>:<br />

• Graphiken selbständig erzeugen<br />

• hat „keinen“ Zugriff auf Maschinenressourcen<br />

(Ausnahme - Cookies)<br />

Sicherheitsaspekte beachten!<br />

• keinerlei Netzwerkoperationen<br />

Ausnahme: Darstellung beliebiger URL‘s aus dem WWW<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 95 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

- interpretierte Programmiersprache mit rudimentärer Objektorientierung<br />

- wird durch WebBrowser interpretiert<br />

- Objekte z.B. können Web Browser Windows und deren Inhalte repräsentieren<br />

- im wesentlichen auf die Interaktion mit den Nutzern ausgerichtet<br />

(erweiterte HTML Forms)<br />

Syntax ist an C/C++ und Java angenähert, stellt aber eine eigenständige Sprache<br />

dar:<br />

• keine Variablentypisierung notwendig - d.h. Variablen werden<br />

nicht explizit Typen zugewiesen<br />

• Objekte in JavaScript erinnern oft an Arrays oder Collections<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 96 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

JavaScript ist kein vereinfachtes Java sondern eine eigenständige<br />

Programmiersprache<br />

- selbst der Name wurde vom ursprünglichen LiveScript erst später in<br />

JavaScript geändert<br />

(z.B. können mit JavaScript keine Graphiken erzeugt werden, es kann<br />

auch keine Netzwerke nutzen, kann nur begrenzt auf Systemressourcen<br />

zugreifen etc.)<br />

- kann lediglich den Browser und seine Inhalte steuern<br />

� Java kann dies wiederum nur sehr begrenzt<br />

� damit ergänzen sich diese Sprachen eher<br />

JavaScript kann auch zur Entwicklung „großer“, komplexer Programme<br />

verwendet werden. Die Sinnhaftigkeit ist aber zu bezweifeln.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 97 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Programmbeispiel Quadrieren<br />

<br />

<br />

JavaScript Multiplication with local Variables<br />

<br />

<br />

<br />

<br />

<br />

<br />

input = window.prompt("Insert number to be multiplied by 5:","");<br />

multiplicate(input);<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 98 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Funktionen und Ereignisse:<br />

Funktionen:<br />

• Verarbeitung von Daten und deren Manipulation<br />

• selbstdefinierte Funktionen und vordefinierte Funktionen<br />

Ereignisse (Events):<br />

• Auffangen von Ereignissen, dadurch werden Funktionen ausgelöst<br />

• Interaktion mit den Anwendern<br />

• Verankerung zu HTML Seiten<br />

Charakteristisches Vorgehen bei allen Web-basierten <strong>Systeme</strong>n!<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 99 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

vordefinierte Funktionen:<br />

mathematische Hilfsroutinen:<br />

• isNaN ist das Argument eine gültige Zahl (is NotaNumber)<br />

• isFinite ist das Argument im gültigen Zahlenbereich<br />

• eval interpretiert das Argument als math. Ausdruck<br />

• Number konvertiert das Argument in eine Zahl<br />

• parseInt konvertiert das Argument in eine Ganzzahl<br />

• parseFloat konvertiert das Argument in eine Dezimalzahl<br />

String (de)codierung <strong>für</strong>s Web:<br />

• encodeURI verschlüsselt Sonderzeichen einer URI<br />

• decodeURI entschlüsselt Sonderzeichen einer URI<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 100 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Ereignisse:<br />

JavaScript Aufruf aus einem HTML Formular<br />

<br />

Aktivierung durch EventHandler:<br />

• onChange, onClick, onDblClick<br />

• onError, onAbort<br />

• onLoad, onReset, onUnload, onFocus,onBlur<br />

• onKeydown, onKeypress, onKeyup ...<br />

• onMousedown, onMousemove, onMouseover, onMouseup ...<br />

Beispiel Eingabeüberprüfung:<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 101 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Beispiele <strong>für</strong> Ereignisse:<br />

<br />

onChange bei Verändreungen von Eingabeelementen<br />

onClick bei Mausklick oder Doppelklick auf Element<br />

onFocus tritt ein, wenn ein Element selektiert (aktiviert) wurde<br />

onLoad beim Laden der HTML-Datei in den Browser<br />

onUnload beim Verlassen der HTML-Datei<br />

onMouseover beim Überfahren eines Elements mit der Maus<br />

onMouseout beim Herausfahren der Maus aus Bereich eines Elements<br />

onReset beim Zurücksetzen eines Formulars<br />

onSubmit beim Absenden eines Formulars<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 102 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Syntax: Operatoren<br />

Operatoren dienen z.B. zur Auswertung bestimmter Inhalte von Variablen,<br />

die Verknüpfung von Variablen (ähnliche Syntax / Semantik wie Java)<br />

Vergleichsoperatoren: Logische Operatoren: arithmetische Operatoren:<br />

== gleich<br />

!= ungleich<br />

< kleiner<br />

> größer<br />

größer gleich<br />

3 == 3 ⇒ true<br />

3 > 4 ⇒ false<br />

3 != 4 ⇒ true<br />

“ x“ == “ x“⇒ true<br />

&& logisch UND<br />

|| logisch ODER<br />

! logisch NICHT<br />

if ((a


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Syntax: Variablen und Wertzuweisungen<br />

• Ablage <strong>für</strong> Integer, Real, Text, … , aber keine explizite Typisierung<br />

• Gültigkeitsbereiche (Scopes) <strong>für</strong> Variablen (lokal und global)<br />

können implizit oder explizit deklariert werden:<br />

1. direkt im Programmcode<br />

(implizite Deklaration)<br />

immer mit Wertzuweisung:<br />

... Anweisung 1;<br />

Anweisung 2;<br />

... ;<br />

i = 5;<br />

... ;<br />

nname = ´Martin´;<br />

... ;<br />

Anweisung n;<br />

2. explizite Variabelendeklaration:<br />

var i;<br />

var vname = ´Martin´;<br />

... Anweisung 1;<br />

Anweisung 2;<br />

... ;<br />

Anweisung n;<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 104 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Syntax: Gültigkeitsbereiche von Variablen<br />

lokale Gültigkeit<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 105 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Syntax: Gültigkeitsbereiche von Variablen<br />

globale Gültigkeit<br />

<br />

<br />

<br />

<br />

<br />

input = window.prompt("Text:","");<br />

multiplicate(input);<br />

document.writeln(result); // in scope<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 106 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Syntax: Kontrollstrukturen entsprechen denen von Java<br />

Bedingte Anweisung:<br />

if ( condition) {<br />

// expression in true case<br />

}<br />

else {<br />

//expression infalse case<br />

}<br />

Switch-Case Auswahl:<br />

switch(choice)<br />

{<br />

case condition: expression; break;<br />

default : expression;<br />

}<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 107 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Document Object Model (DOM)<br />

• Repräsentation von Dokumenten als Baum<br />

• Bearbeitung durch Baummanipulation<br />

• Vergleiche XML DOM<br />

DOM Manipulation von verschiedenen Browsern verschieden!<br />

Das W3C definierte 1998 das DOM als Standard.<br />

Die Elemente einer Seite bilden eine hierarchisch geordnete Struktur.<br />

Auf diese Elemente lässt sich mit den Methoden von JavaScript zugreifen.<br />

Die Wurzel einer jeden HTML Seite ist das document, das<br />

dann alle weiteren Formulare und Tags enthält.<br />

Die einzelnen Elemente lassen sich mit ihren symbolischem<br />

Namen oder der Id referenzieren.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 108 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung JavaScript<br />

Document Object Model (DOM)<br />

Location<br />

Window<br />

Document<br />

Frames 0 ..* 0 ..*<br />

0 ..* Applets Forms<br />

0 ..*<br />

Elements<br />

0 ..*<br />

Options<br />

<br />

All<br />

<br />

Layers<br />

<br />

TextArea<br />

<br />

Select<br />

<br />

Input<br />

<br />

RadioButton<br />

<br />

Style<br />

<br />

CheckBox<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 109 <strong>eCommerce</strong> Sommersemester 2008<br />

1<br />

0 ..*<br />

0 ..*<br />

Text/CSS


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.4 Programmierung Java<br />

(siehe<br />

Programmbeispiele<br />

auf Server)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 110 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation<br />

2.5.1 Strukturierte Dokumente<br />

2.5.2 HTML<br />

2.5.3 XML<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 111 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation Strukturierte Dokumente<br />

SGML: Standard Generalized Markup Language<br />

ISO Standard 8879<br />

<br />

<br />

<br />

Text of Title<br />

<br />

<br />

Text, Links, Graphics, etc.<br />

<br />

<br />

SGML oder HTML?<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 112 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation Strukturierte Dokumente<br />

SGML: Standard Generalized Markup Language<br />

ISO Standard 8879<br />

von IBM entwickelt<br />

Ziel: Standard (ASCII) Texte mit unterschiedlichen Formatierungen versehen zu<br />

können;<br />

dazu werden den verschiedenen Textpassagen bestimmte<br />

Formatierungsbefehle zugeordnet<br />

Trennung von Inhalt (Content), Struktur (Syntax) und Darstellung (Presentation)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 113 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation Strukturierte Dokumente<br />

SGML: Grundlegende Konzepte<br />

Chapter<br />

Section<br />

Figure<br />

Document Content:<br />

logical structure, actual content<br />

Book<br />

Chapter<br />

Section<br />

Paragraph<br />

Chapter<br />

Section<br />

Figure<br />

Document Presentation:<br />

consist of a set of rules, e.g. section numbering and formatting or location of footnotes<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 114 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation Strukturierte Dokumente<br />

SGML: Trennung zwischen Inhalt und Präsentation<br />

<br />

<br />

<br />

your name<br />

<br />

<strong>eCommerce</strong> Basics<br />

<br />

SGML<br />

<br />

<br />

Slide #3<br />

This is my text.<br />

my_image.gif<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 115 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation Strukturierte Dokumente<br />

DTD: Document Type Definition<br />

hier einfaches Beispiel des Buches<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 116 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation Strukturierte Dokumente<br />

DTD: Document Type Definition<br />

Metamodell der DTD:<br />

• Elements<br />

• Model Groups Connectors: (, & |) Occurence: (+ * ?)<br />

• Text Elements<br />

• Exceptions: Inclusion (+) or Exclusion (-)<br />

• Attributes<br />

• Entities<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 117 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation HTML<br />

HTML: Hyper Text Mark-up Language<br />

Beschreibung in DTDs <strong>für</strong> HTML 4.0:<br />

• transitional DTD (e.g. , , )<br />

• strict DTD: transitional DTDs which are obsolete in HTML 4.0<br />

• frameset DTD: usage of frame in a HTML file<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 118 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation HTML<br />

2 Categories of HTML content elements:<br />

- Block-level Elements<br />

- Inline Elements<br />

1 Content Model:<br />

Block-level elements may contain block-level elements as well as inline elements. They<br />

create the larger structures. Inline elements may contain only data and other inline<br />

elements.<br />

2 Formatting<br />

Block-line elements begin with new lines and are not subject of line breaking.<br />

Inline elements do not necessarily start with new lines and may be broken across lines.<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 119 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation HTML<br />

HTML: Hyper Text Mark-up Language<br />

Web Browser (Darstellung von Web Sites und Web Applications)<br />

HTML Framework<br />

Text<br />

Listen<br />

Verweise (Links, References)<br />

Tabellen<br />

Bilder<br />

Rahmen (Frames)<br />

Umlaute und Sonderzeichen<br />

Formulare (Forms, Datenaustausch in HTML-Dokumenten)<br />

Farben (Schriftfarbe, Hintergrund, Farbwechsel und Farbtabellen)<br />

Bilder (Images und Image Maps)<br />

CSS, Cascading Style Sheets<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 120 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML: eXtensible Mark-up Language<br />

Dokumente<br />

Parsing<br />

XML Files<br />

SAX Parser<br />

DTD<br />

Erweiterte Konzepte<br />

DOM<br />

Schema<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 121 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML versus HTML<br />

- HTML is inflexible<br />

- SGML is complex<br />

SGML<br />

Declaration<br />

Document<br />

Parser<br />

HTML<br />

DTD<br />

Document XML DTD<br />

XML SGML<br />

Declaration<br />

Parser<br />

XML<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 122 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

Features<br />

<br />

you@yourAddress.com<br />

me@myAddress.com<br />

<strong>eCommerce</strong> Basics Course 2005<br />

<br />

This is the contents of the course.<br />

<br />

<br />

- Tags identify the message as a whole:<br />

the destination and sender addresses, the subject and the text of the message.<br />

Like in HTML, the tag has a matching end tag: .<br />

The data between the tags define an element of the XML data.<br />

It is this ability for one tag to contain others that gives XML its ability to<br />

represent hierarchical data structures<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 123 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

Features<br />

- text-based markup language<br />

- becoming the standard for data interchange on the web<br />

Similar to HTML:<br />

- data is identified by tags ( ... )<br />

(the tags are known as "markup”)<br />

However XML is “well-formed”.<br />

In contrast to HTML:<br />

- XML tags inform what the data means, rather than how to display it.<br />

e.g. HTML tag: ... <br />

e.g. XML tag: ... <br />

Puts a label on a piece of data like a field name in your program.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 124 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Document Structure<br />

Header with<br />

XML Instructions<br />

Document Type<br />

Declaration of<br />

used DTD<br />

Documentation<br />

Content<br />

Root Element<br />

Data Element<br />


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Elements and Attributes<br />

XML DATA Elements<br />

A unit of XML data, delimited by two tags (well-formed). An XML element can enclose other<br />

elements.<br />

<br />

..<br />

..<br />

<br />

The element contains two elements.<br />

Elements may contain other elements or attributes.<br />

XML DATA Attributes<br />

A qualifier on an XML tag that provides additional information.<br />

<br />

<br />

title is an attribute, and Section Information is its value.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 126 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

When to use Elements, when Attributes?<br />

There is neither a specification nor a standard!<br />

Rule of Thumb:<br />

use elements for presentable data and attributes for system data.<br />

Elements:<br />

data presented to a client or application; or part of a formula<br />

can be treated as application data and is easily searchable<br />

e.g.: Internet Programming<br />

Attributes:<br />

data used for grouping, letting an application know how to handle sth.<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 127 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Document Type Definition<br />

Einfaches Beispiel<br />

<br />

<br />

<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 128 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

Basic Parsing: SAX Parser Framework<br />

Simple API for XML<br />

Object Parsing: Document Object Model (DOM)<br />

(based on SAX) [advanced Concept]<br />

Document Definitions for Parsers:<br />

• simple Definition<br />

DTD (Document Type Definition)<br />

• improved Approaches<br />

Schema (Microsoft et al.) [advanced Concept]<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 129 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (course_sample_01.xml)<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>eCommerce</strong><br />

<br />

<br />

<br />

Overview<br />

<strong>eCommerce</strong> Introduction<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 130 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

SAX Parser Framework<br />

SAX Parser Factory:<br />

creates an instance of the parser<br />

Document Handler:<br />

methods which are invoked when an XML tag<br />

is recognized<br />

defines also methods which are invoked when<br />

the parser encounters the text in an XML<br />

element or an inline processing instruction,<br />

respectively.<br />

Error Handler:<br />

Methods error, fatal error, and warning are<br />

invoked in response to various parsing errors.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 131 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

SAX Parser Framework<br />

DTD Handler:<br />

interface which defines methods invoked<br />

when processing definitions in a DTD.<br />

Entity Resolver:<br />

is invoked when the parser must identify<br />

data identified by a URI<br />

The public identifier may be specified in<br />

addition to the URL. The Entity Resolver<br />

can then use the public identifier instead of<br />

the URL to find the document, for example<br />

to access a local copy of the document if<br />

one exists.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 132 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

import javax.xml.parsers.SAXParserFactory;<br />

import javax.xml.parsers.ParserConfigurationException;<br />

import javax.xml.parsers.SAXParser;<br />

public class IP_parser_01 extends HandlerBase {<br />

public static void main (String argv []) {<br />

if (argv.length != 1) {<br />

System.err.println ("Usage: IP_parser_01 ");<br />

System.exit (1);<br />

}<br />

SAXParserFactory factory = SAXParserFactory.newInstance();<br />

try {<br />

// Parse the input<br />

SAXParser saxParser = factory.newSAXParser();<br />

saxParser.parse( new File(argv [0]), new IP_parser_01() );<br />

} catch (Throwable t) {<br />

t.printStackTrace ();<br />

}<br />

System.exit (0); } }<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 133 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Basic Parsing: Call Back Routines (Start and End of Document)<br />

//===========================================================<br />

// SAX DocumentHandler methods<br />

//===========================================================<br />

public void startDocument ()<br />

throws SAXException<br />

{<br />

System.out.println("");<br />

}<br />

public void endDocument ()<br />

throws SAXException<br />

{<br />

System.out.println("...Parsing ends.");<br />

}<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 134 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Basic Parsing: Call Back Routines (Start and End of Element)<br />

public void startElement (String name, AttributeList atts)<br />

throws SAXException<br />

{<br />

System.out.print("startElement: ");<br />

public void endElement(String name)<br />

throws SAXException<br />

{<br />

System.out.println("endElement: " + name); }<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 135 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Basic Parsing: Call Back Routines (Characters)<br />

public void characters(char[] buf , int start, int end)<br />

throws SAXException<br />

{<br />

System.out.println("start: " + start + " end: " + end);<br />

}<br />

String s = new String(buf, start, end);<br />

System.out.println("characters: " + s);<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 136 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Additional Event Handling: Call Back Routines<br />

A locator is an object that contains the information necessary to find the<br />

document. The Locator class encapsulates a system ID (URL) or a public<br />

identifier (URN), or both!<br />

public void setDocumentLocator (Locator l)<br />

{<br />

// Save this to resolve relative URIs or to<br />

// give diagnostics.<br />

try {<br />

}<br />

System.out.print ("LOCATOR");<br />

System.out.println ("\n SYS ID: " + l.getSystemId() );<br />

} catch (IOException e) {<br />

// Ignore errors<br />

}<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 137 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Processing Instruction: Call Back Routines<br />

Information contained in an XML structure that is intended to be interpreted by<br />

a specific application.<br />

XML File:<br />

<br />

<br />

SAX Parser:<br />

public void processingInstruction (String target, String data)<br />

throws SAXException<br />

{<br />

System.out.print ("PROCESSING INSTRUCTION: ");<br />

System.out.println ("");<br />

}<br />

Parsing Result:<br />

PROCESSING INSTRUCTION : <br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 138 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Name Space Handlers: Call Back Routines<br />

Specifies a unique label to the set of element names defined by a DTD.<br />

A document using that DTD can be included in any other document without<br />

having a conflict between element names.<br />

The elements defined in your DTD are then uniquely identified so that, for<br />

example, the parser can tell when an element called should be<br />

interpreted according to your DTD, rather than using the definition for an<br />

element called "name" in a different DTD.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 139 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Name Space Handlers: Call Back Routines<br />

Specifies a unique label to the set of element names defined by a DTD.<br />

<br />

<br />

<br />

<br />

Here is some data.<br />

<br />

<br />

<br />

<br />

Here is some other data (interpret different).<br />

<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 140 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Name Space Handlers: Call Back Routine, continued<br />

2 calls available: Begin and End<br />

Begin:<br />

public void startPrefixMapping (String prefix, String uri)<br />

throws SAXException<br />

{<br />

System.out.print ("Namespace Mapping starts for ");<br />

System.out.println ("prefix: " + prefix + " ; uri: " + uri");<br />

}<br />

End:<br />

public void endPrefixMapping (String prefix)<br />

throws SAXException<br />

{<br />

System.out.print ("Namespace Mapping ends for ");<br />

System.out.println ("prefix: " + prefix");<br />

}<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 141 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Error Handling: default Handling<br />

three kinds of errors:<br />

• fatal error: occurs in the SAX parser when a document is not well formed, or<br />

otherwise cannot be processed.<br />

• error: is generally a validation error -- in other words, it occurs when an XML<br />

document is not valid, although it can also occur if the declaration specifies an<br />

XML version that the parser cannot handle.<br />

• warning: is generated when the document's DTD contains duplicate definitions,<br />

and similar situations that are not necessarily an error.<br />

CHARS: org.xml.sax.SAXParseException: Expected ""<br />

to terminate element starting on line 20.<br />

...<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 142 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Error Handling. Call Back Routine<br />

A SAXException can be constructed using a message, another exception, or both.<br />

So, for example, when Echo.startDocument outputs a string using the emit<br />

method, any I/O exception that occurs is wrapped in a SAXException and sent<br />

back to the parser:<br />

// ... sth. throwable<br />

} catch (SAXException sxe) {<br />

// Error generated by this application<br />

// (or a parser-initialization error)<br />

Exception x = sxe;<br />

if (sxe.getException() != null)<br />

x = sxe.getException();<br />

x.printStackTrace();<br />

} catch (ParserConfigurationException pce) {<br />

// Parser with specified options can't be built<br />

pce.printStackTrace();<br />

}<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 143 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Basic Parsing: XML Document (parser_01.xml)<br />

Error Handling: Call Back Routine, another Example<br />

// ... sth. throwable<br />

} catch (SAXParseException spe) {<br />

// Error generated by the parser<br />

System.out.println ("\n** Parsing error"<br />

+ ", line " + spe.getLineNumber ()<br />

+ ", uri " + spe.getSystemId ());<br />

System.out.println(" " + spe.getMessage() );<br />

}<br />

// Use the contained exception, if any<br />

Exception x = spe;<br />

if (spe.getException() != null)<br />

x = spe.getException();<br />

x.printStackTrace();<br />

} catch (ParserConfigurationException pce) {<br />

// Parser with specified options can't be built<br />

pce.printStackTrace();<br />

}<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 144 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Document Type Definition<br />

(course_sample_02.dtd)<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

%xhtml;<br />

<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 145 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML DTD, Document Type Definition Rules<br />

Specifying Elements:<br />

<br />

Example: <br />

Special Element Values (Element Definition Type):<br />

The element definition could use one of two special values: ANY or EMPTY.<br />

ANY:<br />

The element may contain any other defined element, or PCDATA.<br />

Usually used for the root element of a general-purpose XML document such as<br />

created by a word processor. Textual elements could occur in any order in<br />

such a document, so specifying ANY makes sense.<br />

EMPTY:<br />

The element contains no contents.<br />

<br />

Alternative: Nested elements specified in a parenthesized list of elements.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 146 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML DTD, Document Type Definition Rules<br />

Specifying Elements (continued):<br />

Nested Elements:<br />

<br />

<br />

<br />

<br />

<br />

...<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 147 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML DTD, Document Type Definition Rules<br />

Combination of Elements<br />

<br />

Both Elements (FirstElement, SecondElement) have to appear exactly once!<br />

Operators<br />

[Default Must apear exactly one time<br />

]<br />

? Must appear once or not at all<br />

+ Must appear at least oncs (1 .. n<br />

times).<br />

* May appear one or many times [0 .. n]<br />

Grouping<br />

<br />

or<br />

Operator Description<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 148 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML DTD, Document Type Definition Rules<br />

Parsed Data (only character data, no nested elements):<br />

<br />

<br />

<br />

<br />

<br />

...<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 149 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML DTD, Document Type Definition Rules<br />

Entity References<br />

A reference to an entity that is substituted for the reference when the XML document<br />

is parsed.<br />

<br />

It may reference a predefined entity e.g.:<br />

<br />

<br />

”><br />

<br />

<br />

or it may reference one that is defined in the DTD.<br />

Additional Useful Entities:<br />

<br />

<br />

<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 150 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML DTD, Document Type Definition Rules<br />

Entity References<br />

Entity References<br />

References to external Files:<br />

In the XML data, the reference could be to an entity that is defined in the local subset of<br />

the DTD or to an external XML file (an external entity).<br />

<br />

DTD:<br />

<br />

<br />

XML File:<br />

&Homepage;<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 151 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML DTD, Document Type Definition Rules<br />

Defining Attributes<br />

<br />

<br />

<br />

The last entry in the attribute specification determines the<br />

attributes default value, if any, and tells whether or not the<br />

attribute is required.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 152 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML DTD, Document Type Definition Rules<br />

Defining Attributes<br />

Specification Specifies<br />

#REQUIRED The attribute value must be specified in the<br />

document.<br />

#IMPLIED The value need not be specified in the document.<br />

If it isn't, the application will have a default value it<br />

uses.<br />

"defaultValue" The default value to use, if a value is not specified<br />

in the document.<br />

#FIXED "fixedValue" The value to use. If the document specifies any<br />

value at all, it must be the same.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 153 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML DTD, Document Type Definition Rules<br />

Defining Attributes<br />

Attribute Type Specifies<br />

...(value1 | A list of values separated by vertical bars.<br />

value2 | ...)<br />

CDATA "Unparsed character data".<br />

(For normal people, a text string.)<br />

ID A name that no other ID attribute shares.<br />

IDREF A reference to an ID defined elsewhere in the document.<br />

IDREFS A space-separated list containing one or more ID references.<br />

ENTITY The name of an entity defined in the DTD.<br />

ENTITIES A space-separated list of entities.<br />

NMTOKEN A valid XML name composed of letters, numbers, hyphens, underscores,<br />

and colons.<br />

NMTOKENS A space-separated list of names.<br />

NOTATION The name of a DTD-specified notation, which describes a non-XML data<br />

format, such as those used for image files.*<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 154 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

Document Object Model (DOM)<br />

Defining Attributes<br />

Use the DocumentBuilderFactory class to get a<br />

DocumentBuilder instance (upper left)<br />

produce a Document (a DOM) that<br />

conforms to the DOM specification (lower right).<br />

W3C standardized DOM in 1998.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 155 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

Document Object Model (DOM)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 156 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Schema<br />

• new but incomplete specification, subject of change<br />

(XML schema is not part of the XML 1.0 specification)<br />

• overcomes some limitations and shortcomings of DTDs<br />

• supports more accurate representations of XML structure<br />

constraints<br />

• provides an XML styling process of constraining data<br />

• Schemas are well-formed and valid XML documents<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 157 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Schema<br />

• using XML documents for the definition of XML documents<br />

• supporting rudimentary data types<br />

• providing simple and complex elements<br />

(user defined data types)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 158 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Schema<br />

<br />

<br />

<br />

<br />


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Schema<br />

Data Types:<br />

string Character strings<br />

boolean Binary valued logic (true or false)<br />

float 32-bit floating point type<br />

double 64-bit floating point type<br />

decimal Standard decimal notation, positive and negative<br />

timeInstant A combination of date and time representing one<br />

single instant time<br />

TimeDuration Duration of time<br />

recurringInsta A specific time that recurs over a<br />

nt<br />

binary Binary data<br />

uri A Uniform Resource Indicator (URI)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 160 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Schema<br />

Data Types:<br />

<br />

< complexType name=" myNAMESPACE:ChapterType"><br />

<br />

<br />

<br />

<br />

ChapterType defines the name of the complex element.<br />

Heading is part of the complex element of the type of<br />

string.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 161 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XML Schema<br />

<br />

Data Types: Attributes<br />


2 Grundlagen<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

2.5 Datenpräsentation XML<br />

XSL: Extensible Stylesheet Language<br />

• Specify display characteristics:<br />

identify data content in an XML file and tell how to<br />

display it with an XSL stylesheet<br />

• Specify tag conversions<br />

• Specify "flow objects" or "formatting objects", and the links<br />

between them<br />

Direct Interpretation of XML Instructions by the Web<br />

Server<br />

Integration of XML in Java Servlets<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 163 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sicherheitslücken<br />

Grundsätzlich:<br />

• Versenden und empfangen von statischen Dokumenten<br />

• Versenden und empfangen von dynamischen Elementen<br />

Probleme:<br />

• Daten können von Dritten abgefangen werden<br />

• Schaden auf Seiten des Clients<br />

• Schaden auf Seiten des Servers<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 164 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sicherheitslücken<br />

Hacker, Würmer, Phishing und Trojanische Pferde<br />

Abfangen von Passwörtern<br />

- einige Protokolle wie telnet verschlüsseln Passwörter nicht<br />

- Passwörter sind meist einfach und können erraten, oder durch<br />

massives Probieren herausgefunden werden<br />

Bei einer one-way Encryption mit offenem Zugriff zu den<br />

verschlüsselten Passwörtern (z.B. Standard UNIX Password Scheme)<br />

können Passwörter durch raten, verschlüsseln und vergleichen gefunden<br />

werden<br />

- Hackers nutzen diese Passwörter zum Einbruch in Rechner, z.T. Missbrauch<br />

des Rechners<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 165 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sicherheitslücken<br />

Hacker, Würmer, Phishing und Trojanische Pferde<br />

Morris Internet Worm<br />

entwickelt durch Robert T. Morris, ein Student der Cornell University, 1988;<br />

nutzt Fehler in Berkley UNIX (Solaris, VAX, andere BSD <strong>Systeme</strong>)<br />

- versucht eine rsh (Remote Shell) von vertrauten Maschinen zu nutzen<br />

- suche eines Server (finger) der Login Data der User bekannt gibt<br />

- Nutzung des Debug Mode von sendmail SMTP Server welcher die<br />

Server dazu brachte Skripte auszuführen ⇒ weitere Ausbreitung<br />

Schaden:<br />

6000 Maschinen brachen zusammen durch die Last des Weiterverbreitens des Wurms<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 166 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sicherheitslücken<br />

Hacker, Würmer, Phishing und Trojanische Pferde<br />

Phishing<br />

Durch Vortäuschen einer offiziellen eMail von einer Bank oder Behörde wird die<br />

Eingabe von Daten (Login und Passwort) auf einer bestimmten Web Seite verlangt.<br />

Diese Web Seite wird von den Phishern betrieben.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 167 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sicherheitslücken<br />

Hacker, Würmer, Phishing und Trojanische Pferde<br />

Trojanische Pferde<br />

Wie das antike Vorbild sehen diese vertrauenswürdig aus und werden von<br />

den Benutzern selbst geladen.<br />

Die Tarnung kann z.B. durch Vorgabe einer falschen Herkunft<br />

(z.B. gefälschte IP Nummer) geschehen<br />

Umgeht Sicherheitskonzepte wie Firewalls und Zugriffschutz.<br />

JavaScript unterstützt den Bau von Trojanischen Pferden.<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 168 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sicheres Ausführen von Java Applets in Sand Box<br />

Java läuft in einer Sand Box (kein direkter Zugriff zu Systemressourcen)<br />

Die einzelnen Mechanismen sind:<br />

- Byte Code Verifier (Code-Manipulationen schwierig)<br />

- Applet Loader / Class Loader (lädt nur die angeforderten Java Objekte)<br />

- Securiy Manager (kontrolliert den Zugriff auf Systemressourcen)<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 169 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sicheres Ausführen von Java Applets in Sand Box<br />

Sand Box:<br />

• Kein Zugriff auf das lokale Dateisystem<br />

• Keine Netzwerkverbindungen<br />

– (außer zum Web-Server-Host)<br />

• Bedingter Zugriff auf Systemfunktionen (System.exit() )<br />

• Kein Zugriff auf lokales Clipboard<br />

• Bedingter Zugriff auf <strong>Systeme</strong>igenschaften und deren Veränderung<br />

Neue Konzepte:<br />

• Signierte Applets<br />

• Andere Security-Manager<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 170 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

Java Applets bei Client<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Bestehend Sicherheitsprobleme:<br />

- Deniyl-of-Service Atacken (Applet verursacht zu starke Last)<br />

- hidden Communication (Kommunikation zu einem Angreifer,<br />

DNS manipulations)<br />

- illegale Package Names<br />

- Angriffe auf den Class Loader<br />

- Angriffe Security Manager<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 171 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sicherheitsarchitektur<br />

• Sicherheitsarchitektur bzw. Sicherheitsinfrastruktur<br />

• Bestandteil einer Gesamtarchitektur, der die Sicherheitsstrategie<br />

durchsetzt<br />

• Realisierung der Verwaltung der sicherheitsrelevanten Informationen<br />

und Konzepte<br />

• Zugangskontrolle<br />

• identifiziert und authentifiziert Benutzer<br />

• Zugriffskontrolle<br />

• erlaubt Zugriff auf Daten nur <strong>für</strong> berechtigte Benutzer<br />

• Firewalls sind eine spezielle Form der Zugriffskontrolle<br />

• Kommunikationssicherheit / Kryptographie<br />

Zugangskontrolle Zugriffskontrolle auf Prozesse und Daten<br />

Kommunikationssicherheit<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 172 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sicherheitsarchitektur<br />

Sicherheitsarchitektur bzw. Sicherheitsinfrastruktur<br />

• Bestandteil einer Gesamtarchitektur, die die Sicherheitsstrategie durchsetzt<br />

• Realisierung der Verwaltung der sicherheitsrelevanten Informationen und Konzepte<br />

Zugangskontrolle identifiziert und authentifiziert Benutzer<br />

• Zugriffskontrolle erlaubt Zugriff auf Daten nur <strong>für</strong> berechtigte Benutzer<br />

Firewalls sind eine spezielle Form der Zugriffskontrolle<br />

Kommunikationssicherheit durch sichere Kommunikationsprotokolle<br />

• Einsatz kryptographischer Verfahren<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 173 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

Firewalls<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Dual-Homed Firewall<br />

• ziemlich sicher, aber relativ inflexibel<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 174 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

Firewalls<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Sceened-Host Firewall<br />

• Einige Dienste werden direkt durchgestellt, andere über den Application Proxy<br />

• größere Flexibilität, bei unsachgemäßer Handhabung größere Risiken<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 175 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

Risiken:<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Firewalls: Risiken und Grenzen<br />

• Korrekte Konfiguration eines Firewalls benötigt detaillierte Kenntnisse<br />

– Bedrohungs- und Gefahrenpotential<br />

– Interne Netzinfrastruktur und gewünschte Anwendungsprofile<br />

• Kontinuierliche und sorgfältige Administration erforderlich<br />

– Spezieller Verantwortlicher (Chief Security Officer – CSO) wäre erforderlich<br />

• Teilweise trügerische Sicherheit<br />

– Keine Absicherung gegen Angriffe aus dem internen Netz<br />

– Firewalls decken nur einen Teil der erforderlichen Kontrollen ab<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 176 <strong>eCommerce</strong> Sommersemester 2008


2 Grundlagen<br />

2.6 Sicherheit<br />

<strong>eCommerce</strong> <strong>Systeme</strong><br />

Firewalls: Risiken und Grenzen<br />

Grenzen:<br />

• Keine Virenabwehr, i.d.R. keine semantische Prüfung der Daten<br />

• Kein Schutz gegen Tunneling (verpackte und verschlüsselte Nutzdaten)<br />

– Filterregeln eines Firewalls können umgangen werden<br />

– z.B. auch Tunneling von IPv6 über IPv4<br />

• Berücksichtigung mobiler Endgeräte<br />

– lokale IP-Adresse aus externem Netz als internes Gerät ?<br />

• A-Posteriori Stopfen von Löchern<br />

– nur bekannte Sicherheitslücken können geschlossen werden<br />

File: <strong>eCommerce</strong> 2 Prof. Dr. A. Speck CAU Kiel<br />

Folie 177 <strong>eCommerce</strong> Sommersemester 2008

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!