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