Einführung
Verteilte und Selbstorganisierende Rechnersysteme • Prof. Gaedke
KAPITEL 7:
ANWENDUNGSSYSTEME
Motivation – Entwicklung verteilter Anwendungen im Internet
Einführung
TCP/IP
Client/Server-Programmierung
DNS (Domain Name System)  Übung
SMTP (Simple Mail Transfer Protocol)
WWW (World Wide Web)
FTP (File Transfer Protocol)
SNMP (Simple Network Management Protocol)
Implementierung des Protokolls
Verwendung von Standardprotokollen – evtl. bereits unterstützt durch
die verwendete Programmierplattform
 Gänzlich neues Protokoll auf Basis von UDP oder TCP
 Erfordert Programmierunterstützung für Internet Sockets
Berkeley Sockets
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme Welchen Dienst soll die Anwendung (Server) anbieten?
Wie unterhalten sich Dienstnehmer (Client) und Server?
Wie wird das Anwendungsprotokoll beschrieben und realisiert?
Soll die Anwendung auf TCP oder UDP basieren?
Gibt es Gründe für TCP und UDP?
SS 2012
| 308
Einführung: Sockets – Server mit Python
Ursprünglich 1983 an der UC Berkeley als Bestandteil von BSD Unix
Application Programming Interface (API)
 © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Sockets – RFC 147
Rechnernetze ► Kapitel 7: Anwendungssysteme | 309
Einführung: Sockets – Client mit Python
import socket
import socket
HOST = ''
# Symbolisch für local host
PORT = 8080
# Port auf dem der Server hört
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conns, addr = s.accept()
print 'Connected by', addr
while 1:
data = conns.recv(1024)
if not data: break
conns.send(data)
conns.close()
HOST = 'localhost' # Hostname des Ziel-Servers
PORT = 8080
# Port auf dem der Ziel-Server hört
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send('Hello, world')
data = s.recv(1024)
s.close()
print 'Received', repr(data)
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
SS 2012
| 310
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
| 311
Elektronische Post (EMail)
EMail: Allgemeines Modell
Hauptziel:
 Internationaler Austausch elektronischer Mitteilungen zwischen Personen
Wesentliche Charakteristik:
 Unterstützung eines asynchronen Verhaltens von Sender und Empfänger
 Speichervermittlung
User Agent (UA)
Lokales, grafik-/textorientiertes Programm
 Ermöglicht Lesen und Versenden von E-Mail vom lokalen Rechner
 z.B. Elm, Mail, Outlook, Messenger
Allgemeine Basisfunktionen:
 Erstellen von E-Mails
 Übertragung zum Ziel
 Benachrichtigung im Erfolgs-/Fehlerfall
 Anzeige erhaltener Nachrichten
 Speicherung von Nachrichten
Realisierung:
 Simple Mail Transfer Protocol (SMTP) im Internet
 X.400 bei OSI
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme 
Message Transfer Agent (MTA)
Hintergrundprozess
 Zuständig für das Weiterleiten von E-Mails zum Zielrechner
Postamt
UA
SS 2012
MTA
UA
SS 2012
| 313
Internet Mail: Das SMTPModell
Umschlag (Envelope)
 Enthält alle Informationen für den Transport der Mitteilung zum
Empfänger („To:“)
 Adressierung erfolgt mithilfe von DNS, z.B. [email protected]
 Wird interpretiert von den MTAs
Kopfteil (Header)
 Enthält zusätzliche Felder wie z.B. Betreff, Kopie an („Subject:“, „CC:“)
 Interpretiert von den UAs
 SMTP integriert außerdem die Felder des Umschlags im Header
Hauptteil (Body)
 Enthält den eigentlichen Inhalt der Mitteilung (ursprünglich nur ASCII)
SMTP dient der E-Mail-Übermittlung
To:
Header:
CC:
From:
Subject:
Date:
....
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
zeichenorientiertes Protokoll, basierend auf 7-Bit-ASCII
nur wenige Kommandos, z.B. HELO, MAIL, RCPT, DATA, QUIT
UA erhält alle notwendigen Angaben vom Benutzer
MTAs übertragen die Mitteilung zum Zielrechner
Quellsystem
Mitteilung wird über Mail-Queue zum lokalen MTA übertragen
Auslieferung einer E-Mail erfolgt über eine TCP-Verbindung (Port 25) zum
Ziel-MTA
MTA unter UNIX: sendmail
Relay-MTAs dienen als zentrale E-MAIL-Verteiler (z.B. für Fakultät für
Informatik)
To:
From
:...
Absender,
Inhalt usw.
UA
Body
Rechnernetze ► Kapitel 7: Anwendungssysteme MTA
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme | 312
SMTP: Format einer EMail
Postamt
Internet
Mail
Queue
Lokaler SMTP
MTA
Relay
MTA
SMTP
Zielsystem
UA
SS 2012
| 314
Mail
Queue
Mail
Box
Lokaler
MTA
SMTP
Relay
MTA
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme Mail
Queue
SS 2012
| 315
SMTP: Beispielablauf
InternetMail: Verwaltung durch Mailserver
> telnet mailserver 25
Mailserver
E:
220 mailserver ESMTP Telematik Sendmail 8.9.3/8.9.3; Wed, 22 Sep
1999 10:41:34 +0200 (MET DST)
S:
HELO sioux.tm.uni-karlsruhe.de
E:
250 blackfoot Hello sioux [129.13.35.73], pleased to meet you
Mail
Queue
Internet
SMTP
SMTP
S:
E:
MAIL FROM: telematik-vorlesung
250 telematik-vorlesung... Sender ok
S:
E:
RCPT TO: [email protected]
250 telematik-vorlesung .. Recipient ok
E-Mail wird meist zentral über einen Mailserver abgewickelt (Relay-MTA)
S:
E:
S:
S:
E:
DATA
354 Enter mail, end with "." on a line by itself
Lieber Administrator, ...
.
250 KAA12526 Message accepted for delivery
Mittels POP3 (Post Office Protocol 3) holt der Client die vom Mailserver
empfangenen und in der Mailbox gespeicherten Meldungen ab
S:
E:
QUIT
221 blackfoot closing connection
Mailbox
SS 2012
Sir Timothy John
Berners-Lee, OM, KBE,
FRS, FREng, FRSA
(London, 8 June 1955),
Ziel: Einfacher weltweiter
Austausch von Dokumenten
zwischen Wissenschaftlern
Weitere Informationen zu TBL
unter:
http://www.timbernerslee.co.uk/
Erster Prototyp Ende 1990
grafisch (auf NEXTStep) und
zeilenorientiert
Schnelle Verbreitung durch
Universitäten. Bebo White bringt
ersten Web-Server in den USA
(SLAC, Stanford University)
entwickelt von Marc Andreesen
und Eric Bina (University of
Illinois)
ursprünglich für X-WindowsSysteme
als Quellcode per FTP kostenlos
verfügbar  schnelle Verbreitung
Marc Andreesen gründete 1995 die
Firma Netscape
Gründung des W3-Konsortiums im
Juli 1994
vorrangiges Ziel:
Weiterentwicklung des WWW,
z.B. durch Standardisierung von
HTML
Vorsitzender: Tim Berners-Lee
Infos unter http://www.w3.org
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme IMAP erlaubt erweiterte Kommandos (z.B. Filterung)
SS 2012
| 317
Client/ServerArchitektur des WWW
Durchbruch des WWW durch den
WWW-Client Mosaic
Hervorgegangen aus Arbeiten des
britischen Informatikers Tim
Berners-Lee am europäischen
Forschungszentrum CERN (Genf)
einfache Funktionalität
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme | 316
Zur Entwicklung des World Wide Web (WWW)
Mail Client
IMAP (Interactive Mail Access Protocol) dient dazu, die Nachrichten
zentral auf einem Mailserver zu verwalten
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme POP3,
IMAP
Client-Server-Architektur
Web-Browser zur Anzeige von Hypertext-Dokumenten/Hypermedia-Objekten
Hyperlinks erlauben Navigation
Lösungen zu folgenden Fragestellungen erforderlich:
Eindeutige Adressierung einer Web-Seite
Transport einer Web-Seite
Beschreibung des Inhalts (insbes. der Hyperlinks) einer Web-Seite
Server-System
Client-System
Web
Browser
Internet
SS 2012
| 318
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
| 319
Idee der Universal-Adressierung
Adressierung eines Web-Dokuments
Die Idee: Ein allgemeines Schema zur Beschreibung von Adressen bzw.
Ressourcen Identifikatoren:
 Uniform Resource Identifier (URI)
 URI – Syntax for identifiers [RFC1630]
Uniform Resource Locator (URL), [RFC1738]
Erbt Eigenschaften und Regeln von URI
weist der Client-Software den Weg zu einer bestimmten Ressource
auch für Inhalte anderer Server (USENET, FTP, E-Mail) verwendbar
z.B. http://www.informatik.tu-chemnitz.de/index.html
URL
<uri> ::= <scheme>":"<scheme-specific-part>
<scheme>
Name des Scheme
<scheme-specific-part>
Ressourcen Identifikator vorgegeben durch das jeweilige Scheme
Protokoll
bei WWW: abgerufene Web-Seite
bei FTP: zu übertragene Datei
bei Mail: Empfänger der Mail
Web-Browser unterstützen eine Vielzahl von Schemes
SS 2012
Web
Application
User Agent
| 321
Return Of The Resource (1)
Server-Side
Web
Application
Response
SS 2012
Screenshot from the site www.starwars.com
Request
z.B. http, ftp, mailto, telnet
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme | 320
Zusammenspiel Browser und Ressourcen
Client-Side
Ressourcenbezeichnung
Durch die Ressourcenbezeichnung wird das Objekt, auf das im jeweiligen
Server zugegriffen werden soll, identifiziert
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme Rechnername (DNS)
(scheme)
Resource
Web
Server
Web System
Applicationprotocol: HTTP, SOAP, WebDAV, other
TCP/IP-Stack
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
| 322
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
| 323
Screenshot from the site www.starwars.com
Return Of The Resource (3)
Screenshot from the site www.starwars.com
Return Of The Resource (2)
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme | 324
| 325
Screenshot from the site www.starwars.com
Return Of The Resource (5)
Screenshot from the site www.starwars.com
Return Of The Resource (4)
SS 2012
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
| 326
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
| 327
Screenshot from the site www.starwars.com
Return Of The Resource (7)
Screenshot from the site www.starwars.com
Return Of The Resource (6)
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
| 328
Screenshot from the site www.starwars.com
Return Of The Resource (8)
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
| 330
© 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz
Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012
| 329