Einführung in Verteilte Systeme - Institut für Informatik - Universität ...
Einführung in Verteilte Systeme - Institut für Informatik - Universität ...
Einführung in Verteilte Systeme - Institut für Informatik - Universität ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>E<strong>in</strong>führung</strong> <strong>in</strong><br />
<strong>Verteilte</strong> <strong>Systeme</strong><br />
W<strong>in</strong>tersemester 2005/06<br />
Odej Kao<br />
<strong>Institut</strong> <strong>für</strong> <strong>Informatik</strong><br />
<strong>Universität</strong> Paderborn<br />
Dozent<br />
• Prof. Dr. Odej Kao<br />
AG Betriebssysteme und <strong>Verteilte</strong> <strong>Systeme</strong><br />
Fürstenallee 11, F2.101<br />
Tel. 60-6610<br />
okao@upb.de<br />
http://www.upb.de/cs/ag-kao<br />
Sprechstunde: Donnerstags, 11.00-12.00<br />
Sekretariat<br />
Irene Roger, F2.106<br />
Tel. 60-6620<br />
irene.roger@upb.de<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-2<br />
Vorlesungsstil<br />
• Überwiegend Folien<br />
Werden kapitelweise auf der Homepage der Vorlesung<br />
(http://www.upb.de/cs/ag-kao/de/teach<strong>in</strong>g/ws05/vs1/)<br />
im PDF-Format zur Verfügung gestellt<br />
Sollen während der Vorlesung mit <strong>in</strong>dividuellen Notizen<br />
vervollständigt werden<br />
S<strong>in</strong>d <strong>für</strong> die Prüfungsvorbereitung nur teilweise ausreichend<br />
⇒ Studium von sekundärer Literatur ist erforderlich<br />
• Tafelanschrieb<br />
Beispiele zu Vorlesungs<strong>in</strong>halten<br />
Erläuterungen<br />
Ergänzungen<br />
Übungen<br />
• Übungsgruppenleiter<br />
Ulf Rerrer (urerrer@upb.de)<br />
Raum F2.104, Tel: 60-6611<br />
• Term<strong>in</strong>e<br />
Übung Gruppe 1: Montags, 11-13 Uhr im Raum F0.530<br />
Übung Gruppe 2: Dienstags, 11-13 Uhr im Raum F1.110<br />
Übung Gruppe 3: Montags, 11-13 Uhr im Raum F0.530<br />
Übung Gruppe 4: Dienstags, 11-13 Uhr im Raum F1.110<br />
• Beg<strong>in</strong>n der Übungen: Montag, den 7. November 2005 (Gruppe 1+3)<br />
Dienstag, den 8. November 2005 (Gruppe 2+4)<br />
• E<strong>in</strong>tragung <strong>in</strong> die Übungsgruppen (ab heute 19 Uhr)<br />
Über Stud<strong>in</strong>fo-System. L<strong>in</strong>k auf der Homepage der Vorlesung<br />
wwwcs.upb.de/cs/ag-kao/de/teach<strong>in</strong>g/ws05/vs1/<br />
Mailverteiler vs@upb.de: E<strong>in</strong>tragung automatisch bei Anmeldung <strong>für</strong> die<br />
Übungsgruppen, oder manuell über Skript auf Webseite.<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-3<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-4
Übungsbetrieb<br />
• Ziel der Übung<br />
Praktische Vertiefung der <strong>in</strong> der Vorlesung vorgestellten Konzepte<br />
Implementierung ausgewählter Konzepte <strong>in</strong> Projekten<br />
• Geplante Projekte<br />
1. Anforderungs-/Antwortprotokolle am Beispiel Web Services und<br />
Implementierung der Übungsaufgaben (Rechnerübung)<br />
2. Prozesskommunikation am Beispiel Sockets und Implementierung<br />
der Übungsaufgaben (Rechnerübung)<br />
3. Objektkommunikation am Beispiel Java RMI und Implementierung<br />
der Übungsaufgaben (Rechnerübung)<br />
• Durchführung<br />
Arbeit <strong>in</strong> 2er Teams<br />
Implementierungszeit <strong>in</strong> der Übung selbst wahrsche<strong>in</strong>lich nicht<br />
ausreichend ⇒ Vorarbeit <strong>in</strong> der Zwischenzeit notwendig<br />
Aufgaben müssen <strong>in</strong> der Rechnerübung vorgeführt, erläutert und<br />
abgegeben werden<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-5<br />
Prüfung bzw. Sche<strong>in</strong><br />
• Zum Bestehen der Prüfung bzw. Sche<strong>in</strong>erwerb ist e<strong>in</strong>e<br />
erfolgreiche Teilnahme an der Klausur notwendig<br />
• Klausurterm<strong>in</strong>e werden auf der Homepage bekannt gegeben<br />
Wichtig!! Nur 2 Klausurterm<strong>in</strong>e werden angeboten<br />
• Bonuspunkte <strong>für</strong> e<strong>in</strong>e Notenverbesserung ist möglich<br />
Maßgebende Kriterien<br />
Anwesenheit <strong>in</strong> der Übung<br />
Erfolgreiches Bearbeiten der Projekte<br />
Genaue Festlegung der Bonuskriterien wird <strong>in</strong> den Übungen<br />
bekannt gegeben. Aktuell angedacht<br />
E<strong>in</strong> erfolgreiches Projekt ⇒ Notenverbesserung 0.3<br />
Zwei erfolgreiche Projekte ⇒ Notenverbesserung 0.7<br />
Drei erfolgreiche Projekte ⇒ Notenverbesserung 1.0<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-6<br />
E<strong>in</strong>ordnung<br />
Vorlesungs<strong>in</strong>halte<br />
Rechnernetze<br />
Rechnerarchitektur<br />
Betriebssysteme<br />
<strong>Verteilte</strong><br />
<strong>Systeme</strong><br />
Parallelverarbeitung<br />
Datenverwaltung<br />
• <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong>: Eigenschaften und Beispiele<br />
• Grundlegende Systemmodelle und –architekturen <strong>für</strong> <strong>Verteilte</strong><br />
<strong>Systeme</strong> (Client/Server und Peer-to-Peer Architekturen)<br />
• Interprozesskommunikation (Anforderung/Antwort-Protokoll,<br />
Sockets), externe Darstellung und Marshall<strong>in</strong>g<br />
• Programmiermodelle <strong>für</strong> verteilte Anwendungen (RPC,<br />
objektbasierte Ansätze wie Java RMI, CORBA, ereignisbasierte<br />
Ansätze, .net-Technologie, …)<br />
• Dienste (Namens- und Verzeichnisdienste)<br />
Sicherheit<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-7<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-8
Ziele der Vorlesung<br />
• Vermittlung von Kenntnissen über Architektur und Funktionalität<br />
von verteilten <strong>Systeme</strong>n als wichtige Komponente komplexer<br />
Anwendungssysteme<br />
• Betrachtung von<br />
Charakteristischen Eigenschaften verteilter <strong>Systeme</strong><br />
Systemmodellen verteilter <strong>Systeme</strong><br />
Unterstützenden Aspekten aus den Bereichen Rechnerkommunikation,<br />
Betriebssysteme, Sicherheit, …<br />
Aktuellen Techniken und Mechanismen <strong>in</strong> Form von Fallstudien<br />
• Förderung des Verständnisses <strong>für</strong><br />
Spezifische Eigenschaften verteilter <strong>Systeme</strong><br />
Elementare Bauste<strong>in</strong>e zum Aufbau verteilter <strong>Systeme</strong><br />
Grundlegende Interaktionsmechanismen<br />
• Diese Veranstaltung ist ke<strong>in</strong> Programmierkurs <strong>für</strong> CORBA, Java<br />
RMI, .net, ...<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-9<br />
Literatur<br />
G. Coulouris, J. Dollimore, T. K<strong>in</strong>dberg<br />
<strong>Verteilte</strong> <strong>Systeme</strong>: Konzepte und Design<br />
3 Auflage, Person Studium, 2001<br />
G. Bengel<br />
<strong>Verteilte</strong> <strong>Systeme</strong> <strong>für</strong> Studenten und Praktiker<br />
Vieweg Verlag, 2002<br />
A. Tanenbaum, M. van Steen<br />
<strong>Verteilte</strong> <strong>Systeme</strong>: Grundlagen und Paradigmen<br />
Prentice Hall, 2003<br />
E. Newcomer<br />
Unerstand<strong>in</strong>g Web Services<br />
Addison-Wesley, 2003<br />
M. Weber<br />
<strong>Verteilte</strong> <strong>Systeme</strong><br />
Spektrum, 1998<br />
W. Beer et al.<br />
Die .net Technologie<br />
dpunkt.verlag 2003<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-10<br />
1. <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong><br />
<strong>Systeme</strong><br />
• Überblick<br />
1.1 Charakteristische Eigenschaften <strong>Verteilte</strong>r <strong>Systeme</strong><br />
1.2 Ausgewählte Beispiele <strong>Verteilte</strong>r <strong>Systeme</strong><br />
1.3 Aufgabenbereiche bei <strong>Verteilte</strong>n <strong>Systeme</strong>n<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-11<br />
1.1 Charakteristische<br />
Eigenschaften <strong>Verteilte</strong>r <strong>Systeme</strong><br />
• Grobe Entwicklungsstufen der <strong>Informatik</strong><br />
Phase 1: 1930 - 1960 (Anfänge)<br />
In e<strong>in</strong>e leere Masch<strong>in</strong>e wird ausführbarer<br />
Code <strong>in</strong>klusive E<strong>in</strong>gabedaten geladen<br />
Masch<strong>in</strong>e berechnet Ergebnisse<br />
Gibt die Ergebnisse aus und hält an bzw.<br />
nimmt neuen Auftrag an<br />
⇒Sichtweise: Masch<strong>in</strong>e als Rechenassistent<br />
Phase 2: 1960 - 1980<br />
Programme <strong>in</strong> höheren Programmiersprachen<br />
dienen als E<strong>in</strong>gabedaten <strong>für</strong><br />
Übersetzer/Interpreter<br />
Abarbeitung weitgehend sequentiell<br />
Residentes Betriebssystem ermöglicht<br />
Mehrprogrammbetrieb (time-shar<strong>in</strong>g)<br />
⇒Sichtweise: Hierarchie aus logischen,<br />
sprachverarbeitenden Masch<strong>in</strong>en<br />
Masch<strong>in</strong>e<br />
Programm<br />
Übersetzer<br />
Masch<strong>in</strong>e<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-12
Grobe Entwicklungsstufen<br />
(Phase 3: Mitte 80er – heute)<br />
• Komplexe Softwaresysteme erstrecken sich über e<strong>in</strong>e Vielzahl von<br />
Rechnern<br />
• Grundeigenschaften<br />
Vielzahl spezialisierter, parallel arbeitender Instanzen (Agenten)<br />
Kooperation zur Erfüllung komplexen Aufgaben<br />
Wettbewerb um knappe Ressourcen<br />
⇒ Sichtweise: Gruppe autonomer, „<strong>in</strong>telligenter“ Instanzen, die<br />
untere<strong>in</strong>ander und mit der Außenwelt <strong>in</strong>teragieren<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-13<br />
Phase 3: Netzwerke<br />
• Netzwerke aller Art s<strong>in</strong>d allgegenwärtig<br />
• Internet als globales Netzwerk mit vielen Teilnetzwerken<br />
<strong>Universität</strong>s- und Forschungsnetzwerke<br />
Unternehmensnetzwerke<br />
Mobilfunknetzwerke, …<br />
• Räumliche Distanz zwischen vernetzten Verarbeitungse<strong>in</strong>heiten<br />
(Prozessoren, vollständige Rechner, …) spielt i.A. ke<strong>in</strong>e Rolle<br />
Beispiele<br />
Symmetrische Multiprozessoren gekoppelt über e<strong>in</strong>en Bus<br />
Lokales (Hochgeschw<strong>in</strong>digkeits-) Netzwerk zwischen Clusterknoten<br />
Lokales Netzwerk <strong>in</strong> e<strong>in</strong>em Unternehmen<br />
Wissenschaftliches Netzwerk<br />
Globale, mehrere Kont<strong>in</strong>ente umspannende Netzwerke<br />
Wichtig: Kommunikation und Koord<strong>in</strong>ation der beteiligten<br />
Komponenten über Austausch von Nachrichten<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-14<br />
Def<strong>in</strong>itionen <strong>Verteilte</strong>r <strong>Systeme</strong><br />
• Def<strong>in</strong>ition nach Coulouris<br />
Als <strong>Verteilte</strong>s System wird e<strong>in</strong> System bezeichnet, bei dem sich die<br />
Hardware- und Softwarekomponenten auf vernetzten Rechnern<br />
bef<strong>in</strong>den und nur über den Austausch von Nachrichten<br />
kommunizieren und ihre Aktionen koord<strong>in</strong>ieren<br />
• Def<strong>in</strong>ition nach Tanenbaum<br />
E<strong>in</strong> <strong>Verteilte</strong>s System ist e<strong>in</strong>e Ansammlung von unabhängigen<br />
Rechnern, welche den Benutzern dieses Systems als e<strong>in</strong>e<br />
e<strong>in</strong>heitliche Rechnerressource vorkommen<br />
• Def<strong>in</strong>ition nach Lamport (Nicht ganz ernst geme<strong>in</strong>t ☺)<br />
E<strong>in</strong> verteiltes System ist e<strong>in</strong> System, mit dem ich nicht arbeiten kann,<br />
weil irgende<strong>in</strong> Rechner abgestürzt ist, von dem ich nicht e<strong>in</strong>mal<br />
weiß, dass es ihn überhaupt gibt<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-15<br />
Def<strong>in</strong>itionen <strong>Verteilte</strong>r <strong>Systeme</strong><br />
(2): Begriffliche Annäherung<br />
• <strong>Verteilte</strong>s System: Zusammenfassung autonomer Rechner, die<br />
Durch e<strong>in</strong> Netzwerk verbunden s<strong>in</strong>d und<br />
Sich durch geeignete SW-Unterstützung als zusammenhängendes<br />
Rechensystem darstellen<br />
• Grundeigenschaften<br />
Parallele/Nebenläufige Aktivitäten ⇒ Koord<strong>in</strong>ation und Synchronisation<br />
erforderlich<br />
Ke<strong>in</strong>e globale Uhr und nur begrenzte Synchronisationsmöglichkeiten <strong>für</strong><br />
die lokalen Uhren ⇒ Tim<strong>in</strong>g-Problem<br />
Interaktion durch Nachrichtenaustausch<br />
<strong>Systeme</strong>/Anwendungen können sehr groß se<strong>in</strong><br />
Fehler und Ausfälle s<strong>in</strong>d wahrsche<strong>in</strong>lich<br />
Fehler bei den lokalen Rechenknoten und Verb<strong>in</strong>dungsstrukturen<br />
Fehler bei der Kommunikationsvorgehensweise<br />
⇒Fehlertoleranz notwendig<br />
Heterogene Hardware- und Softwarekomponenten ⇒ Standardisierung<br />
von Schnittstellen erforderlich<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-16
Motivation <strong>für</strong> <strong>Verteilte</strong> <strong>Systeme</strong><br />
• Entwurf, Umsetzung und Betrieb von <strong>Verteilte</strong>n <strong>Systeme</strong>n ist<br />
offensichtlich komplexer als bei traditionellen <strong>Systeme</strong>n<br />
• Allerd<strong>in</strong>gs auch erhöhter Nutzwert<br />
1. Ressourcenteilung<br />
Ressource: HW- und SW-Komponenten, welche sich <strong>in</strong> e<strong>in</strong>em<br />
vernetzten Rechnersystem s<strong>in</strong>nvoll geme<strong>in</strong>sam nutzen lassen<br />
Beispiele<br />
Geme<strong>in</strong>same Drucker, Festplatten, …<br />
Geme<strong>in</strong>same Datenbanken, Kalender, Dateien, …<br />
Geme<strong>in</strong>same Dienste wie Webserver, Email, …<br />
2. Modellierung realer Situationen, die sich durch räumliche Trennung von<br />
Komponenten auszeichnen<br />
Vernetzte Dienste und Clients (Internet, Bankautomaten, …)<br />
Gestaltung von Firmennetzwerken<br />
Unabhängige, vernetzte E<strong>in</strong>heiten <strong>in</strong> Autos, Fabriken, Firmen,<br />
Haushalt, …<br />
Mobile Kommunikation<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-17<br />
Motivation <strong>für</strong> <strong>Verteilte</strong> <strong>Systeme</strong> (2)<br />
3. Beschleunigung der Verarbeitung<br />
E<strong>in</strong>satz unabhängiger, vernetzter Verarbeitungse<strong>in</strong>heiten (Process<strong>in</strong>g<br />
Elements, PE) zur simultanen Verarbeitung unabhängiger Teilprobleme<br />
E<strong>in</strong>fachste Vorgehensweise<br />
Aufteilung der zu verarbeitenden Daten <strong>in</strong> (disjunkte) Teilmengen<br />
Verteilung der Teilmengen über mehrere Prozessoren (PE i<br />
)<br />
Simultane Verarbeitung und Zusammenfassung der Teilergebnisse im<br />
Endergebnis<br />
PE1<br />
PE4<br />
Aufteilung Verteilung und Ausführung Komb<strong>in</strong>ation<br />
PE2<br />
PE3<br />
PE1<br />
PE1<br />
PE4<br />
PE4<br />
PE2<br />
PE2<br />
PE3<br />
PE3<br />
PE1<br />
PE4<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-18<br />
PE2<br />
PE3<br />
Motivation <strong>für</strong> <strong>Verteilte</strong> <strong>Systeme</strong> (3)<br />
3. Beschleunigung der Verarbeitung …<br />
Beschleunigung durch Parallelität<br />
(Speedup)<br />
1,00<br />
0,99<br />
0,98<br />
0,97<br />
0,96<br />
0,95<br />
0,94<br />
0,93<br />
0,92<br />
0,91<br />
0,90<br />
Rechenzeit 1 PE<br />
1<br />
S<br />
P<br />
=<br />
=<br />
Rechenzeit p PEs T<br />
p<br />
S P<br />
∈ ( 0, p]<br />
Effizienz<br />
1 3 5 7 9 11 13 15<br />
Knoten<br />
T<br />
16<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0<br />
Beschleunigung<br />
1 3 5 7 9 11 13 15<br />
Knoten<br />
Auslastung (Effizienz, Efficiency)<br />
Speedup bei p PEs<br />
E =<br />
p<br />
P<br />
=<br />
∈ (0,1] E P<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-19<br />
S<br />
p<br />
p<br />
Motivation <strong>für</strong> <strong>Verteilte</strong> <strong>Systeme</strong> (4)<br />
4. Ausfallsicherheit durch Redundanz<br />
Redundante Datenspeicherung auf räumlich verteilten Datenträgern<br />
Redundante Ausführung von Rechenoperationen, um e<strong>in</strong>zelne<br />
Serverausfälle abzufangen, …<br />
Beispiel: RAIDs (Redundant Array of Inexepensive Disks)<br />
Unterteilung e<strong>in</strong>er Festplatte <strong>in</strong> Strips<br />
E<strong>in</strong> Strip umfasst k Sektoren (strip 0 = Sektoren 0,..,k-1;<br />
strip 1=Sektoren k,..,2k-1; …)<br />
Verteilung von strips über unabhängige Festplatten<br />
RAID level 1: Alle Platten doppelt vorhanden (Orig<strong>in</strong>al + Backup)<br />
⇒ beim Ausfall Umschaltvorgang zur Backup-Platte<br />
Nebeneffekt: Lastenausgleich/höhere Geschw<strong>in</strong>digkeit beim Lesen<br />
RAID<br />
level 1<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-20
1.2 Beispiele <strong>für</strong> <strong>Verteilte</strong><br />
<strong>Systeme</strong><br />
• Bekanntestes Beispiel: Internet<br />
Riesiger Zusammenschluss von unterschiedlichen Netzwerken und<br />
Rechnern<br />
Kommunikation durch Austausch von Nachrichten<br />
Ortunabhängige Nutzung von Diensten wie WWW, E-mail, Dateitransfer,<br />
E-commerce, …<br />
Bereitstellung von Daten (z.B. Text, Bilder, Audio, Video, …)<br />
Diensten (z.B. E-commerce, Mail, SMS-Portale, …)<br />
Anwendungen (ASP= Application Service Provider)<br />
Ortunabhängiger Zugang zu Rechenressourcen<br />
Internet als große Rechenressource bei Projekten wie z.B.<br />
seti@home<br />
Beispiele <strong>für</strong> <strong>Verteilte</strong> <strong>Systeme</strong> (2):<br />
Intranet<br />
Druckerserver<br />
Webserver<br />
Mailserver<br />
LAN<br />
Dateiserver<br />
LAN<br />
Mailserver<br />
LAN<br />
Arbeitsplatzrechner<br />
Druckerserver<br />
Andere Server<br />
Internet<br />
Router/Firewall<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-21<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-22<br />
Beispiele <strong>für</strong> <strong>Verteilte</strong> <strong>Systeme</strong> (2):<br />
Intranet<br />
• Intranet = Teil des Internets, der separat verwaltet wird und dank<br />
e<strong>in</strong>er Abgrenzung über lokale Sicherheitsstrategien verfügen kann<br />
Konfiguration e<strong>in</strong>es Intranets unterliegt der Verantwortlichkeit des<br />
Unternehmens<br />
Ausdehnung nicht lokal beschränkt, d.h. mehrere LANs im Intranet<br />
möglich<br />
Durch besondere Absicherung viele Möglichkeiten zur Ressourcenteilung,<br />
z.B. geme<strong>in</strong>same Dateidienste<br />
Firewalls: Filterung der e<strong>in</strong>- und ausgehenden Nachrichten z.B. nach<br />
Quelle oder Ziel, um kritische Komponenten wie etwa Skripte zu<br />
entdecken und zu sperren<br />
Extreme Lösung: Bei Inselsystemen wird die physikalische Verb<strong>in</strong>dung<br />
zum Internet vollständig unterbrochen ⇒ Zugriff nur über lokale<br />
Term<strong>in</strong>als möglich<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-23<br />
Beispiele <strong>für</strong> <strong>Verteilte</strong> <strong>Systeme</strong> (3)<br />
• Anzahl mobiler Geräte wird <strong>in</strong> den nächsten Jahren die Anzahl festvernetzter<br />
Rechner übersteigen ⇒ Mobile Comput<strong>in</strong>g<br />
W-LAN-Geräte (Notebooks, PDAs), Mobiltelefone, Drucker/Kamera/… mit<br />
Infrarotschnittstellen, ...<br />
Ortunabhängiges Zugangsgerät <strong>für</strong> vernetzte Ressourcen<br />
Rechenkapazitäten der mobilen Geräte steigen<br />
• Zukunftsaufgaben: E<strong>in</strong>heitliche Benutzerumgebung auf allen<br />
Geräten, angepasste Sicherheitskonzepte, Bandbreitenerweiterung …<br />
Host Intranet<br />
Pr<strong>in</strong>ter<br />
W-LAN<br />
Camera<br />
Internet<br />
WAP<br />
gateway<br />
Mobile<br />
phone<br />
Laptop<br />
Host site<br />
Home Intranet<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-24
Beispiele <strong>für</strong> <strong>Verteilte</strong> <strong>Systeme</strong> (4)<br />
• Ubiquitous Comput<strong>in</strong>g (Allgegenwärtiges Rechnen) = Trend zur<br />
Informatisierung und Vernetzung aller D<strong>in</strong>ge<br />
Derzeit: Internet vernetzt fast alle Rechner<br />
Zukunft: Alltagsgegenstände werden durch E<strong>in</strong>bau von Sensoren und<br />
Prozessoren aufgewertet und können mite<strong>in</strong>ander kommunizieren<br />
⇒ Internet wandelt sich von derzeitigen Mensch-zu-Mensch / Masch<strong>in</strong>e-<br />
Kommunikation zu Masch<strong>in</strong>e-zu-Masch<strong>in</strong>e-Kommunikation<br />
• E<strong>in</strong>faches Beispiel: Smart Labels<br />
Kle<strong>in</strong>e (wenige mm 2 ), mit e<strong>in</strong>em Hochfrequenzsignal bestrahlte<br />
Transponder dekodieren das Signal und nutzen die Energie <strong>für</strong> die<br />
Verarbeitung<br />
Anwendungen<br />
Ersatz <strong>für</strong> Barcodes, aber ohne Sichtkontakt zum Lesegerät<br />
Ersatz <strong>für</strong> Diebstahlsicherungen: Statt nur e<strong>in</strong>e Kodierung bezahlt /<br />
gestohlen können z.B. auch Produktstatistiken erstellt werden<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-25<br />
Beispiele <strong>für</strong> <strong>Verteilte</strong> <strong>Systeme</strong> (5)<br />
• Geme<strong>in</strong>same Ressourcennutzung über das Web<br />
Zentraler Begriff: Dienst (Service)<br />
Komponente e<strong>in</strong>es Rechnersystems, die e<strong>in</strong>e Menge verwandter<br />
Ressourcen verwaltet und Benutzern/Anwendungen ihre<br />
Funktionalität bereitstellt<br />
Suchmasch<strong>in</strong>en bieten e<strong>in</strong>en Dienst allen Benutzern des Internets an<br />
(Globaler Dienst)<br />
Zeitungen/Teleteach<strong>in</strong>g-Kurse bieten Zugang zu Onl<strong>in</strong>e-Inhalten <strong>für</strong><br />
e<strong>in</strong>e Gruppe von Abonnementen (Gruppen-spezifischer Dienst)<br />
Anwendungen <strong>für</strong> e<strong>in</strong>en kle<strong>in</strong>en Kreis von Benutzern (Geschäftspartner,<br />
Familie, Freundeskreis, …)<br />
Videokonferenz: Autorisierte Liveübertragung <strong>in</strong> e<strong>in</strong>er<br />
abgeschlossenen Gruppe<br />
CSCW (Computer-Supported Cooperative Work<strong>in</strong>g): Videokonferenz,<br />
geme<strong>in</strong>same Zeichenflächen, geme<strong>in</strong>samer Dokumentenzugriff, …<br />
Private Spielserver, …<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-26<br />
1.3 Aufgabenstellungen<br />
• <strong>Verteilte</strong> <strong>Systeme</strong> basieren auf unterschiedlichen Netzwerken, HW,<br />
Betriebssystemen, Programmiersprachen, Implementierungen, …<br />
• Daraus ergeben sich wichtige Aufgabenstellungen beim Entwurf<br />
<strong>Verteilte</strong>r <strong>Systeme</strong><br />
• Aufgabenstellung Heterogenität<br />
Geme<strong>in</strong>same/Standardisierte Netzwerkprotokolle<br />
Austauschbare, HW-unabhängige Formate <strong>für</strong> Daten/Datenstrukturen<br />
Standards <strong>für</strong> Interprozesskommunikation (Austausch von Nachrichten,<br />
Datenbankanfragen, …)<br />
• Ansätze zur Lösung des Heterogenitätsproblems (und viel mehr)<br />
Middleware: Softwareschicht, die e<strong>in</strong>e Programmierabstraktion<br />
bereitstellt und die Heterogenität der zu Grunde liegenden Komponenten<br />
verbirgt (z.B. CORBA)<br />
Virtuelle Masch<strong>in</strong>en: Compiler erzeugt Code <strong>für</strong> e<strong>in</strong>e virtuelle Masch<strong>in</strong>e,<br />
nicht <strong>für</strong> die Zielhardware (z.B. Java Virtual Mach<strong>in</strong>e)<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-27<br />
Aufgabenstellung: Offenheit<br />
• Offenheit: Erweiterbarkeit des Systems<br />
Grad, zu dem neue Dienste h<strong>in</strong>zugefügt und zur Verwendung von<br />
unterschiedlichen Clients bereitgestellt werden<br />
Veröffentlichung von Spezifikation/Dokumentation zu Schnittstellen und<br />
Komponenten<br />
Internet-Protokolle: RFC-Dokumente (Requests For Comment),<br />
laufend nummeriert, enthalten Diskussionen und Spezifikationen<br />
(siehe www.ietf.org/rfc.html)<br />
CORBA: E<strong>in</strong>e Reihe technischer Dokumente (siehe www.omg.org)<br />
Oft wird so der langsame, offizielle Standardisierungsweg umgangen<br />
• Charakterisierung offener verteilter <strong>Systeme</strong><br />
Schlüsseltechniken und –schnittstellen s<strong>in</strong>d veröffentlicht<br />
E<strong>in</strong>heitlicher Kommunikationsmechanismus existiert / wird verwendet <strong>für</strong><br />
den Zugriff auf geme<strong>in</strong>same Ressourcen<br />
Herstellerunabhängig ⇒ Aufbau aus heterogenen HW- und SW-<br />
Komponenten möglich<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-28
Aufgabenstellung: Sicherheit<br />
• Datenübertragung über öffentliche Netze sowie e<strong>in</strong> möglicher<br />
Zugang von außen stellen hohe Anforderungen an die Sicherheit<br />
Vertraulichkeit: Schutz der Ressourcen gegen die Offenlegung<br />
gegenüber nicht-berechtigten Personen, z.B. Identifizierung e<strong>in</strong>es<br />
externen Benutzers/Agenten<br />
Integrität: Schutz der Ressourcen gegen Veränderung oder<br />
Beschädigung<br />
Verfügbarkeit<br />
Schutz gegen Störungen der Methoden <strong>für</strong> Ressourcenzugriff<br />
Reaktion auf Überlastung durch Sonderereignisse, z.B. Überlastung von<br />
Bankrechnern <strong>in</strong> turbulenten Börsenzeiten<br />
• Weitere Sicherheitsaspekte<br />
Denial-Of-Service-Angriffe: E<strong>in</strong> Server wird mit s<strong>in</strong>nlosen Anfragen<br />
überflutet ⇒ kann nicht mehr auf ernsthafte Anfragen reagieren<br />
Sicherheit mobilen Codes, z.B. Computerviren: Wie kann automatisch<br />
festgestellt werden, ob das mitgelieferte Skript e<strong>in</strong>en Virus enthält?<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-29<br />
www.root-servers.org<br />
Aufgabenstellung: Sicherheit (2)<br />
• Beispiel zu Denial-of-Service-Angriff<br />
Root-Server-Angriff: Oft zitiertes Schreckensszenario des Cyberterorismus<br />
Aus Spiegel-Onl<strong>in</strong>e vom 23.10.2002: Die "größte und höchst entwickelte<br />
Attacke", die das Internet je erlebte, begann am Montag (21.10.2002) um<br />
10 Uhr. Sie fegte neun der 13 zentralen Server zeitweilig aus dem Netz -<br />
und ke<strong>in</strong> Mensch bemerkte es<br />
13 Root Server (10 <strong>in</strong> USA) verteilen DNS-Tabellen ⇒ Dank Cach<strong>in</strong>g war<br />
der Angriff von 1 Stunde (2 Millionen Anfragen/Sekunde) wirkungslos<br />
Aus Spiegel-Onl<strong>in</strong>e<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-30<br />
Aufgabenstellung: Skalierbarkeit<br />
• Skalierbarkeit: <strong>Verteilte</strong> <strong>Systeme</strong> müssen auch bei steigender Anzahl<br />
von Benutzern/Komponenten effizient und effektiv arbeiten<br />
• Beispiel Internet<br />
www.isc.org/ds<br />
Datum<br />
Dezember 1979<br />
Juli 1989<br />
Juli 1993<br />
Juli 1997<br />
Juli 1999<br />
Januar 2004<br />
Computer<br />
188<br />
130.000<br />
1.776.000<br />
19.540.000<br />
56.318.000<br />
233.101.481<br />
Webserver<br />
0<br />
0<br />
130<br />
1.203.096<br />
6.598.697<br />
-<br />
Prozentsatz<br />
0<br />
0<br />
0,008<br />
6<br />
12<br />
-<br />
• Kernprobleme beim Entwurf skalierbarer verteilter <strong>Systeme</strong><br />
Kostenkontrolle <strong>für</strong> die physischen Ressourcen: Bei steigender Nachfrage<br />
soll e<strong>in</strong>e Erweiterung zu vernünftigen Kosten möglich se<strong>in</strong><br />
Kontrolle des Leistungsverlusts und Vermeidung von Leistungsengpässen:<br />
Hierarchische Lösungen (Beispiel DNS) bevorzugen, so dass die Menge zu<br />
ladender/verarbeitender Daten nicht zu groß wird<br />
Erschöpfung der SW-Ressourcen verh<strong>in</strong>dern: Ressourcen so anlegen, dass<br />
sie <strong>für</strong> zukünftige Erweiterungen voraussichtlich ausreichen werden.<br />
Aktuelles Problem: Umstellung von 32-Bit Internetadressen auf 128-Bit<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-31<br />
Aufgabenstellung: Nebenläufigkeit<br />
und Fehlerverarbeitung<br />
• Nebenläufigkeit zur Erhöhung des Durchsatzes unumgänglich<br />
⇒ Sicherungsmechanismen bei gleichzeitigen Zugriffen z.B.<br />
Transaktionskonzept <strong>in</strong> verteilten <strong>Systeme</strong>n notwendig<br />
• Allgeme<strong>in</strong>e Fehlerverarbeitung ist <strong>in</strong> der Regel schwierig, da häufig<br />
partielle Ausfälle auftreten<br />
Fehler erkennen: In e<strong>in</strong>igen Fällen problemlos (z.B. Prüfsummen), viele<br />
Fehler werden nur vermutet<br />
Fehler maskieren: Erkannte Fehler können durch Wiederholung der<br />
Aktion / Redundanz verborgen oder abgeschwächt werden<br />
Fehler tolerieren: Fehler anzeigen, Benutzer weitere Entscheidung<br />
überlassen, z.B. Fehlermeldung Web-Site nicht erreichbar<br />
Wiederherstellung nach Fehlern<br />
Erhöhte Verfügbarkeit und Fehlertoleranz durch Redundanz<br />
Zwei mögliche Routen zwischen Routern im Internet<br />
Jede DNS-Tabelle wird auf zwei Hosts repliziert<br />
Replikation der Datenbankpartitionen auf unabhängigen Rechnern<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-32
Aufgabenstellung: Transparenz<br />
• Transparenz: Verbergen der räumlichen Trennung der e<strong>in</strong>zelnen<br />
Komponenten im verteilten System vor Benutzern/Anwendungen<br />
⇒ das System wird als e<strong>in</strong>e E<strong>in</strong>heit wahrgenommen<br />
• Transparenzformen<br />
Zugriffstransparenz: Identische Zugriffsoperationen <strong>für</strong> lokale und<br />
entfernte Ressourcen<br />
Positionstransparenz: Ke<strong>in</strong>e Kenntnis der Ressourcenposition<br />
notwendig<br />
Replikationstransparenz: Ressourcenreplikation zur Verbesserung der<br />
Leistung/Zuverlässigkeit s<strong>in</strong>d <strong>für</strong> Benutzer/Anwendungen unsichtbar<br />
Mobilitätstransparenz: Verschiebung von Ressourcen/Clients <strong>in</strong>nerhalb<br />
des Systems ohne Bee<strong>in</strong>trächtigung der Arbeit möglich<br />
Leistungstransparenz: Dynamische Rekonfiguration bei variierender<br />
Last möglich<br />
Skalierungstransparenz: Vergrößerung des Systems ohne Veränderung<br />
der Systemstruktur und Anwendungen möglich<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-33<br />
Vor- und Nachteile <strong>Verteilte</strong>r<br />
<strong>Systeme</strong><br />
• Vorteile<br />
Kostenreduktion<br />
Lokale Kontrolle und<br />
Verfügbarkeit<br />
Leichte Erweiterbarkeit<br />
Ausfalltoleranz<br />
Hohe Leistung durch<br />
Parallelarbeit<br />
Modulare Software<br />
Herstellerunabhängigkeit<br />
Übere<strong>in</strong>stimmung mit<br />
organisatorischen Strukturen<br />
• Nachteile<br />
Hoher Bedienungs- und<br />
Wartungsaufwand<br />
Probleme durch Heterogenität<br />
Komplexer Design- und<br />
Implementierungsprozess<br />
Schwierige Verifikation der<br />
Korrektheit<br />
Komplexe Kommunikationssysteme<br />
Hoher Aufwand beim<br />
Übergang vom zentralen zum<br />
dezentralen System<br />
Sicherheitsprobleme<br />
Gesamtkosten schwer<br />
abschätzbar<br />
O. Kao <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Verteilte</strong> <strong>Systeme</strong> 1-34