Vert. Sys., F. Ma. 2
Verteilte Systeme
Departement Informatik ETH Zürich
- Rechner, Personen, Prozesse, “Agenten” sind anverschiedenen Orten.
- Autonome Handlungsträger, die jedoch gelegentlichkooperieren (und dazu über Nachrichtenkommunizieren).
Herbstsemester 2009
Departement Informatik
Friedemann Mattern
Institut für Pervasive Computing
Teil 1
Vert. Sys., F. Ma. 3
Wer bin ich? Wer sind wir?
Fachgebiet “Verteilte Systeme” im Departement - 12 Assistent(inn)en
- Sensornetze
- Verteilte Anwendungen und Algorithmen
Informatik, Institut für Pervasive Computing
- Infrastruktur für verteilte Systeme
- Ubiquitous Computing
Mehr zu uns:
www.vs.inf.ethz.ch
- Internet der Dinge
- Forschungsprojekte
Vert. Sys., F. Ma. 4
Organisatorisches zur Vorlesung
5-stündige Veranstaltung (Vorlesung inkl. Übungen) Sinnvolle Vorkenntnisse (Grundlagen):
- Grundkenntnisse Betriebssysteme (z.B. Prozessbegriff, Synchronisation) - UNIX, Java
- 4 Semester der Bachelorstufe Informatik (inkl. Mathematik-Anteil)
- GelegentlicheDenkaufgabenin der Vorlesung
- GelegentlicheÜbungsstunden (zu den “Vorlesungsterminen”) zur
Mo 8:15 - 11:00, IFW A36 Fr 8:15 - 10:00, IFW A36
- Folienkopien jeweils einige Tage nach der Vorlesung
- im .pdf-Format bei www.vs.inf.ethz.ch/edu
Vorlesung inkl. Übung
- Praktische Übungen korrelieren im Allgemeinen nur schwach mit dem Inhalt der Vorlesung (komplementieren die Vorlesung):
Besprechung der Aufgaben und Vertiefung des Stoffes
Absicht!
- Computernetze
- Vorlesung ab November: Prof. Roger Wattenhofer - Prüfung schriftlich
- bewertete Übungen gehen zu kleinem Teil in die Prüfungsnote ein “Kommunikation mit Nokia N95-Geräten”
- Ansprechperson für organisatorische Aspekte:
- Matthias Kovatsch, kovatsch@inf.ethz.ch
Vert. Sys., F. Ma. 5
Thematisch verwandte Veran-
- Einschlägige Seminare
- Ubiquitous Computing
- Semester- und Masterarbeit
staltungen im Masterstudium
- Principles of Distributed Computing
- Praktikum (“Lab”)
- ...
Verteilte Algorithmen
Verteilte Systeme
konkreter abstrakter
Nicht-leere Schnittmengen!
z.B. Routing
/ vernetzte Systeme
Principles of Distributed Computing
Computernetze
- Enterprise Application Integration - Middleware
- Web Services and Service Oriented Architectures
- Verteilte Algorithmen
Vert. Sys., F. Ma. 6
Literatur
G. Coulouris, J. Dollimore, T. Kindberg: Distributed Systems:
Concepts and Design (4th ed.). Addison-Wesley, 2005
A. Tanenbaum, M. van Steen: Distributed Systems:
Principles and Paradigm (2nd ed.). Prentice-Hall, 2007 Oliver Haase: Kommunikation in verteilten
Anwendungen (2. Auflage). R. Oldenbourg Verlag, 2008
Vert. Sys., F. Ma. 7
A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable.
-- Leslie Lamport A distributed computing system consists of multiple autonomous processors that do not share primary memory, but cooperate by sending messages over a communication network.
-- H. Bal
“Verteiltes System” - zwei Definitionen
Kommuni- kationsnetz
- welche Problemaspekte stecken hinter Lamports Charakterisierung?
Vert. Sys., F. Ma. 8
“Verteiltes System”
Knoten / Prozess Nachricht
Physisch verteiltes System:
Logisch verteiltes System: Prozesse (Objekte, Agenten) - Verteilung des Zustandes (keine globale Sicht) - Keine gemeinsame Zeit (globale, genaue Uhr)
Mehrrechnersystem ... Rechnernetze
Vert. Sys., F. Ma. 9
kommunizierende
Objekte in
Computernetz mit “Rechenknoten”:
Zeit P1
P2 P3
Prozesse, kooper-
Betriebssystemen, Middleware,
Programmiersprachen
⇒
“Programmierersicht”Sichten verteilter Systeme
Algorithmen- und Protokoll- ebene
zunehmende Abstraktion
- Local Area Network - Internet
- Compute-Cluster
ierende Objekte (Client, Server,...)
- Aktionen, Ereignisfolgen - Konsistenz, Korrektheit
⇒
Routing, Adressierung,..Vert. Sys., F. Ma. 10
Die verteilte Welt
Auch die “reale Welt” ist ein verteiltes System:
- Viele gleichzeitige (“parallele”) Aktivitäten - Exakte globale Zeit nicht erfahrbar / vorhanden - Keine konsistente Sicht des Gesamtzustandes - Kooperation durch explizite Kommunikation
- Ursache und Wirkung zeitlich (und räumlich) getrennt
Vert. Sys., F. Ma. 11
- Es gibt inhärent geographisch verteilte Systeme
- Electronic commerce
- Mensch-Mensch-Telekommunikation
→ z.B. Zweigstellennetz einer Bank; Steuerung einer Fabrik
(z.B. Reisebüros, Kreditkarten,...)
→kooperative Informationsverarbeitung räumlich getrennter Institutionen (Zusammenführen / Verteilen von Information)
- E-Mail, Diskussionsforen, Blogs, digitale soz. Netze, IP-Telefonie,...
Warum verteilte Systeme?
- Globalisierung von Diensten
- Skaleneffekte, Outsourcing,...
- Wirtschaftliche Aspekte
- Cluster von einfachen Computern oder Netz von PCs manchmal besseres Preis-Leistungsverhältnis als Grosscomputer
- Outsourcing von Diensten manchmal wirtschaftlicher
- vgl.: Virtualisierung, dynamische Lastverteilung, Cloud Computing
Vert. Sys., F. Ma. 12
Verteilte Systeme als “Verbunde”
- Funktionsverbund
- Kooperation bzgl. Nutzung jeweils spezifischer Eigenschaften
- Lastverbund
- Zusammenfassung der Kapazitäten
- Datenverbund
- allgemeine Bereitstellung von Daten
- Überlebensverbund
- Verteilte Systeme verbinden räumlich (oder logisch)
- gemeinsame Nutzung von Betriebsmitteln, Geräten,....
- einfache inkrementelle Erweiterbarkeit
- dann i.Allg. nur Ausfall von Teilfunktionalität - Redundanz durch Replikation
getrennte Komponenten zu einem bestimmten Zweck - Systemverbund
Vert. Sys., F. Ma. 13
Historische Entwicklung (“Systeme”)
Rechner-zu-Rechner-Kommunikation
- Zugriff auf entfernte Daten (“Datenfernübertragung”, DFÜ) - dezentrale Informationsverarbeitung war zunächst ökonomisch nicht sinnvoll (zu teuer, Fachpersonal nötig)
→ Master-Slave-Beziehung (“Remote Job Entry”, Terminals)
ARPA-Netz (Prototyp des Internet)
- “symmetrische” Kommunikationsbeziehung (“peer to peer”) - Internet-Protokollfamilie (TCP/IP,...)
- file transfer (ftp), remote login, E-Mail
Workstation-Netze (LAN)
- bahnbrechende, frühe Ideen bei XEROX-PARC
(XEROX-Star als erste Workstation, Desktop-Benutzerinterface, Ethernet, RPC, verteilte Dateisysteme,...)
Kommerzielle Pionierprojekte als Treiber
- z.B. Reservierungssysteme, Banken, Kreditkarten
WWW (und Internet) als Plattform
- für electronic commerce etc.
- XML, web services, peer to peer,...
- neue, darauf aufbauende Dienste
Vert. Sys., F. Ma. 14
- Concurrency, Synchronisation,...
- war bereits klassisches Thema bei Datenbanken und Betriebssystemen
- Programmiersprachen
- kommunizierende Objekte
- Physische Parallelität
- Parallele und verteilte Algorithmen - Semantik
- Abstraktionsprinzipien
- Schichten, Dienstprimitive,...
- Verständnis grundlegender Phänomene der Verteiltheit
- Konsistenz, Zeit, Zustand,...
Entwicklung “guter” Konzepte, Modelle, Abstraktionen etc. zum Verständnis der Phänomene dauert oft lange Diese sind jedoch für die Lösung praktischer Probleme hilfreich, oft sogar notwendig!
- mathematische Modelle für Verteiltheit (z.B. CCS, Petri-Netze) - z.B. Multiprozessoren
- notwendige Ordnung und Sichtung des verfügbaren Gedankenguts
Historische Entwicklung (“Konzepte”)
Vert. Sys., F. Ma. 15
Eingebettete Internet-Dienste
Mobiler Internetzugang
WWW E-Mail
Das qualitative Internet-Wachstum
Zeit Menschen mit
Menschen
Menschen mit Maschinen
Maschinen mit Maschinen Menschen mit Dingen
Vernetzung von:
- Computern (ftp) - Dokumenten (WWW)
- Menschen (digitale soziale Netze) - Dingen (“Internet der Dinge”)
Vert. Sys., F. Ma. 16
Software-Infrastruktur für
- Phänomen: das Internet verbreitet sich immer weiter
- mehr Nutzer, Popularisierung - bis an die Person (Handy)
- immer “exotischere” Endgeräte (TV, Kühlschrank, Chipkarte)
- Es entstehen neue Dienste im Netz - Dienste interagieren miteinander
- Markt erfordert sehr schnelle Reaktion
- schnelle Implementierung neuer Dienste - Update über das Netz
- Kompatibilität, Standards, Protokolle, offene Schnittstellen,...
- Anschluss neuer Geräte muss “von selbst” erfolgen
- Integration in eine Infrastruktur und Umgebung von Ressourcen
Internet-basierte Anwendungen?
- Kann man eine Infrastruktur schaffen, die das unterstützt?
- Mobile Geräte, dynamische Umgebungen
- bald enthalten vielleicht auch viele Supermarktprodukte, Kleidungsstücke etc. kommunikationsfähige Chips - Sensoren
- Welche Systemarchitektur ist hierfür geeignet?
A h it kt t ilt S t A rc hit e kt uren ver te ilt er S ys teme Zu Anfan g waren Systeme monolithisch
-Mainframes -Nicht verteilt / vernetzt -Terminals (FernschreiberASCII)(Fernschreiber,ASCII)Architekturen verteilter Systeme: Peer to Peer Systeme: Peer -to -Peer
ARPANET1969 Jeder Rechner gleichzeitig Informationsanbieter und -konsument Heute wieder aktuell für FilesharingÆOverlay-NetzeArchitekturen verteilter Systeme: Client Server Systeme: Client -Server
Client -Einführung von Workstations -WWW-dominiertes InternetInternet
Server -Serverals Informationsanbieter -Clientals KonsumentArchitekturen verteilter Systeme: Fat undThin Client Systeme: Fat - undThin -Client
PräsentationPräsentationPräsentationPräsentationFat-ClientThin-Client PräsentationPräsentationPräsentationPräsentation Applikation ApplikationApplikation ApplikationApplikation Daten DatenDatenDatenDaten
Architekturen verteilter Systeme: 3 Tier Systeme: 3 -Tier
Präsentation VerarbeitungwirdaufmehrereVerarbeitungwirdaufmehrere physikalische Einheiten verteilt Logische Schichten minimieren die Abhängigkeiten ApplikationAbhängigkeiten Leichtere Wartung Einfaches Austauschen DatenArchitekturen verteilter Systeme: Multi Tier Systeme: Multi -Tier
PräsentationWeitere Schichten sowie mehrere physikalische Einheiten pro Schicht erhöhendieSkalierbarkeitund Webserver ApplikationerhöhendieSkalierbarkeitund Flexibilität Mehrere Webserver ermöglichen z.B. LastverteilungApplikationLastverteilung Verteilte Datenbanken in der
Datenhaltungsschicht bietet Sicherheit
durchReplikationundDaten- verwaltung SicherheitdurchReplikationund hohen Durchsatz
Daten- haltung
Architekturen verteilter Systeme: Si Oi t d Ah it t (SOA) S erv ice- O ri en te d A rc hit ec ture (SOA)
EineUnterteilungder Applikation in einzelne, unabhängige Abläufe innerhalb einesGeschäftsprozesseserhöht die FlexibilitätweiterFlexibilitätweiter Lose Kopplung zwischen Services über Nachrichten und events(statt RPC) Services können bei Änderungen der Prozesse einfach neu zusammengestellt werden („developmentby composition“) Services können auch von externen Anbietern bezogen werden Oft in Zusammenhang mit Web-ServicesArchitekturen verteilter Systeme: Cloud Computing Systeme: Cloud -Computing
Massive Bündelung der Rechenleistung an zentraler Stelle Internet als VermittlungsinstanzMotivierender Trend: Stetige Erhö- h dB d b it fü E d t h ung d er B an db re it e fü r E n d nu tze r Hochgeschwindigkeit ins Haus Hochgeschwindigkeit ins Haus
Ko n v e rg e n z T V, T e le k o m - munikation und I n ternet
Technologiewechsel
Æerhebliche Investitionen
ithftlihFktwirtschaftlicheFaktoren und Bedingungen Telef ondr aht
ÆInternet
ÆTV
ÆGlasf aser (
x1x5x10?)
TV -K abel
ÆTelefon
ÆInternet
ÆGlasf aser „T riplepla y“
(Sprache, Daten, Video)(
x1,
x5,
x10,… ?)
Cloud Computing Cloud -Computing Alles ist
E-Mail wir d beim Pr o v ider gespeichert Alles ist „irgendwo“ im Netz Cloud Computing Cloud -Computing Alles ist
Fo to s wer den bei gespeichert Alles ist „irgendwo“ im Netz
Cloud Computing Cloud -Computing Alles ist
Videos bei Alles ist „irgendwo“ im Netz Cloud Computing Cloud -Computing Alles ist
Priv ate Dokumente wer den bei einem St P id Alles ist „irgendwo“ im Netz
St or age P rov id er abgelegt D Tb h id D as Tage b uc h w ir d öf fe ntlich „im Netz“ als Bl o g geführt
Cloud Computing Cloud -Computing Alles ist
Inf o rmie re n tut man sich im Netz Alles ist „irgendwo“ im Netz Cloud Computing Cloud -Computing Alles ist
Ve rn e tz e n tut man sich bei „social net - k “d d i it l Alles ist „irgendwo“ im Netz
wor k s“ o d er „ di g it a l communities“ im Netz
Cloud Computing Cloud -Computing Alles ist
Plat tf ormen im Netz nutzt man zum f Alles ist „irgendwo“ im Netz
-K a u fen - S pielen - K ommunizier en -… Cloud Computing Cloud -Computing Alles ist
Vorteile für Nutzer:
v o n übe ra ll z ug re if ba r Alles ist „irgendwo“ im Netz
o ü be a u g e ba
keine Datensicherung
keine Softwarepflege d Ke in P C , son d ern billiges W e b- Te rminal, Smartphone etc. Wie W a sserleitungen einst den eigenen Brunnen überflüssig machten…
Cloud Computing Cloud -Computing Alles ist
Voraussetzungen?
Übe ra ll Br e itba n d Alles ist „irgendwo“ im Netz
Übe a e tba d
(fest & mobil) Netz-Verlässlichkeit
(Versorgungssicherheit, Datenschutz,…) Wirtschaftlichkeit Cloud Computing Cloud -Computing Alles ist
Plattformen:
W e r bet re ibt si e ? W o ? Alles ist „irgendwo“ im Netz
eb e t e b t s e o
Wer verdient daran?
Wer bestimmt?
Wer kontrolliert?
Wer kontrolliert?
Welche Nationen profitieren davon?
Cloud Computing Cloud -Computing Alles ist Alles ist „irgendwo“ im Netz h hl h Au ch gewö h n lic h e Dinge wer den die Dienste in der „cloud“ nutz en „Breitband ist die Elektrizität des 21 Jahrhunderts“ des 21 . Jahrhunderts“ Wo aber sind dann die „ Kraftwerke “?
Beispiel: Google Datenzentren Beispiel: Google -Datenzentren Jedes Datenzentrum hat 10 000 – 100 000 Computer Kostet über 500 Mio $ (Bau, Infrastruktur, Computer) Verbraucht 50 100 MW Energie (Strom Kühlung) Verbraucht 50 – 100 MW Energie (Strom , Kühlung) Neben Google weitere (z.B. Amazon, Microsoft, Ebay,…) Google Data Center Groningen Google Data Center Groningen
Google Data Center Columbia River Google Data Center Columbia River Rückansicht: Energiezufuhr Rückansicht: Energiezufuhr
InnenansichtInnenansicht Effizient wie Fabriken
Produkt: Internet-Dienste Kt t il dh S k l ff k t K os tenvor te il d urc hS k a lene ff e kt
Faktor 5 – 7 gegenüber traditio- nellen „kleinen“ Rechenzentren Angebot nicht benötigter Leistung auf einem Spot-Markt Das entwick elt sich zum eigentlichen Geschäft! Zk üf ti C t i Dt t Z u kü n fti ge C on ta ine r- D a tenzen tren
Hunderte von Containern aus je einigen tausend Compute-Servern
mit Anschlüssen für Strom und Kühlung Nahe an Kraftwerken
Transport von Daten billiger als Strom Anmerkung zum Thema „ Green IT “:
IT-Infrastruktur verursachte 2007 weltweit ca. 830 Miot CO2(2%) IT-gestütztes Energie-und Gebäudemanagement sollte aber bis zu 4 Mal so viel einsparenCloud-Computing für die Id t i d W i t hf t In d us tr ieu n d Wi rt sc h a ft Spontanes Outsourcen von IT inklusive Geschäftsprozesse
Datenverarbeitung als Commodity Sf t d D t i h l S i
S o ft ware un dD a tenspe ic h er a ls S erv ice Keine Bindung von Eigenkapital
Kosten nach Verbrauch “ Kosten nach „ Verbrauch Elastizität : S o fo rt ig e s Hinzufügen weiterer Ressourcen bei Bedar f Markt für „ utilit y computing “
virtualisierte Hardware Markt für „ utilit y computing 2010: ca. 95 Milliar den EUR
Vert. Sys., F. Ma. 18
Charakteristika und “praktische”
- Räumliche Separation, autonome Komponenten
→ Zwang zur Kommunikation per Nachrichtenaustausch
→ neue Probleme:
- partielles Fehlverhalten (statt totaler “Absturz”)
- fehlender globaler Zustand / exakt synchronisierte Zeit
- Heterogenität
- ist in gewachsenen Informationsumgebungen eine Tatsache - findet sich in Hard- und Software
- Dynamik, Offenheit
- Abstraktion als Mittel zur Beherrschung der Komplexität wichtig:
a) Schichten (Kapselung, virtuelle Maschinen) c) “Transparenz”-Prinzip
b) Modularisierung (z.B. Services)
Probleme verteilter Systeme
- Inkonsistenzen, z.B. zwischen Datei und Verzeichnis - konkurrenter Zugriff, Replikate, Cache,...
- Gewährleistung von “Interoperabilität” ist nicht einfach
- Komplexität
- Sicherheit
- Vertraulichkeit, Authenzitität, Integrität, Verfügbarkeit,...
- notwendiger als in klassischen Einzelsystemen
- aber schwieriger zu gewährleisten (mehr Angriffspunkte)
Eingesetzt zur Realisierung von Leistungs- und Ausfalltransparenz
Vert. Sys., F. Ma. 19
Aspekte verteilter Systeme
im Vergleich zu sequentiellen Systemen:
- Heterogenität - Nebenläufigkeit
- Verständnis der Phänomene schwieriger - Test und Verifikation aufwändiger
- Nichtdeterminismus - Zustandsverteilung
⇒ gute Werkzeuge (“Tools”) und Methoden
⇒ adäquate Modelle, Algorithmen, Konzepte - Grösse und Komplexität
- Programmierung komplexer
- zur Beherrschung der “neuen” Phänomene - z.B. Middleware als Software-Infrastruktur
vieles gleichzeitig morgen anders als heute jede(r) ist anders
niemand weiss alles
Ziel: Verständnis der grundlegenden Phänomene, Kenntnis der geeigneten Konzepte und Verfahren
Vert. Sys., F. Ma. 20
Einige konzeptionelle Probleme und Phänomene verteilter Systeme
1) Schnappschussproblem 2) Phantom-Deadlocks 3) Uhrensynchronisation
4) Kausaltreue Beobachtungen
5) Geheimnisvereinbarung über unsichere Kanäle
- Dies sind einige einfach zu erläuternde Probleme und Phänomene - Es gibt noch viel mehr und viel komplexere Probleme
- konzeptioneller Art - praktischer Art
- Achtung: Manches davon wird nicht hier, sondern in der Vorlesung “Verteilte Algorithmen” eingehender behandelt!
Vert. Sys., F. Ma. 21
- Anwendung: z.B. verteilte DB-Sicherungspunkte
Ein erstes Beispiel:
Wieviel Geld ist in Umlauf?
- Erschwerte Bedingungen:
- niemand hat eineglobale Sicht
- es gibt keinegemeinsame Zeit (“Stichtag”)
- Modellierung:
- verteilte Geldkonten
-ständige Transfers zwischen den Konten
-konstante Geldmenge, oder
-monotone Inflation (→ Untergrenze)
Beispiel: kommunizierende Banken
Konto $ A
B C D
4.17 17.00 25.87 3.76
Σ = ?
Vert. Sys., F. Ma. 22
Ein zweites Beispiel:
Das Deadlock-Problem
Vert. Sys., F. Ma. 23
Das Deadlock-Problem
Vert. Sys., F. Ma. 24
Phantom-Deadlocks
A
B C
A
B C
A
B C
⇒ B wartet auf C
⇒ A wartet auf B
⇒ C wartet auf A (C benutzt ein exklu-
sives Betriebsmittel)
Deadlock!
falscher Schluss!
beobachte B:
beobachte A:
beobachte C:
wait-for relation
B C
A
t = 1
t = 2
t = 3
Keine exakte globale Zeit!
Vert. Sys., F. Ma. 25
Ein drittes Problem:
P1
P2
t1 = 5 t4 = 65
t2 = 70 t3 = 80 wie spät?
so spät Δt ("round trip delay")
- Unsymmetrische Laufzeiten - Wie erfährt man die Laufzeit?
- Lastabhängige Laufzeiten von Nachrichten
P1
P2
(Lokalzeit P1)
(Lokalzeit P2)
- Uhren gehen nicht unbedingt gleich schnell!
(wenigstens “Beschleunigung≈ 0”, d.h. konstanter Drift gerechtfertigt?)
- Wie kann man den Offset der Uhren ermitteln oder zumindest approximieren?
Anfrage erhalten bei t = 70, beantwortet bei t = 80 Inhalt der Nachricht:
Uhrensynchronisation
Vert. Sys., F. Ma. 26
Ein viertes Problem: (nicht)
- Gewünscht: Eine Ursache stets vor ihrer (u.U. indirekter) Wirkung beobachten
kleines Leck
“erhöhe Druck”
Pumpe Druckmesser
Beobachter
Druck-
Druck-
verlust Zeit
v
e
e’ v’
Druck- messer Pumpe
erhöhung (Leitstand)
kausaltreue Beobachtungen
Falsche Schlussfolgerung des Beobachters:
Es erhöhte sich der Druck (aufgrund einer unbegrün-
deten Aktivität der Pumpe), es kam zu einem Leck,
was durch den abfallenden Druck angezeigt wird.
Vert. Sys., F. Ma. 27
Und noch ein Problem:
A B
?!
- Problem: A und B wollen sich über einen unsicheren Kanal auf ein gemeinsames geheimes Passwort einigen.
a k b
A B
1. A denkt sich Passwort k aus und tut es in die Truhe.
2. A verschliesst die Truhe mit einem Schloss a.
3. A sendet die so verschlossene Truhe an B.
4. B umschliesst das ganze mit seinem Schloss b.
5. B sendet alles doppelt verschlossen an A zurück.
6. A entfernt Schloss a.
7. A sendet die mit b verschlossene Truhe wieder an B.
8. B entfernt sein Schloss b.
- Problem: Lässt sich das so softwaretechnisch realisieren?
- Idee: Vorhängeschlösser um eine sichere Truhe:
a b
Wie wäre es damit?: k sei eine Zahl. “Verschliessen” und “aufschliessen”
eines Schlosses entspricht dem Hinzuaddieren oder Subtrahieren einer beliebig ausgedachten (geheimgehaltenen) Zahl a bzw. b.
“Sesam”!
“Sesam”!