• Keine Ergebnisse gefunden

Verteilte Systeme Syste e

N/A
N/A
Protected

Academic year: 2021

Aktie "Verteilte Systeme Syste e"

Copied!
46
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Verteilte Systeme

Friedemann Mattern

ETH Zü i h

Syste e

ETH Zürich

© F. Mattern 2011

ETH

Eidgenössische

Technische Hochschule Zürich

Prüfungsrelevant ist der Inhalt der Vorlesung, nicht alleine der Text dieser Foliensammlung! Herbst 2011

© Friedemann Mattern, 2002

Prof. Friedemann Mattern

Wer bin ich? Wer sind wir?

Prof. Friedemann Mattern + 15 Assistentinnen

und Assistenten

Fachgebiet „Verteilte Systeme“

im Departement Informatik, Institut für Pervasive Computing

(2)

Prof. Friedemann Mattern

Wer bin ich? Wer sind wir?

Prof. Friedemann Mattern + 15 Assistentinnen

und Assistenten Matthias Kovatsch

Ansprechperson für or- ganisatorische Aspekte

Fachgebiet „Verteilte Systeme“

im Departement Informatik, Institut für Pervasive Computing

kovatsch@inf.ethz.ch

© Friedemann Mattern, 2002

Mit was beschäftigen wir uns?

ƒ Infrastruktur für verteilte Systeme

ƒ Internet der Dinge

ƒ Ubiquitous Computing

ƒ Sensornetze

ƒ Verteilte Anwendungen und Algorithmen

5

Mehr zu uns:

www.vs.inf.ethz.ch

und Algorithmen

(3)

Organisatorisches zur Vorlesung

ƒ Format: 6G+1A: Vorlesung g und Praktikum integriert g

ƒ Mo 9:15 - 12:00, Fr 9:15 - 12:00, jew. NO C 6

ƒ Praktikum ist inhaltlich komplementär zur Vorlesung (mobile Kommunikationsplattformen: Android, HTC Desire)

ƒ Gelegentliche Assistentenstunden (zu den “Vorlesungsterminen”) zur Besprechung der Praktikumsaufgaben und Vertiefung des Stoffes

ƒ Gelegentliche Denkaufgaben (ohne Lösung...) in der Vorlesung

ƒ Sinnvolle Vorkenntnisse (Grundlagen)

ƒ 4 Semester der Bachelorstufe Informatik

ƒ Grundkenntnisse Computernetze und Betriebssysteme (z.B. Prozessbegriff, Synchronisation)

ƒ UNIX, Java ist hilfreich

7

© Friedemann Mattern, 2002

Organisatorisches (2)

ƒ Folienkopien p jeweils einige Tage nach der Vorlesung j g g g

ƒ im pdf-Format bei www.vs.inf.ethz.ch/edu

ƒ Vorlesung ab November: Prof. Roger Wattenhofer

ƒ Prüfung schriftlich

ƒ bewertete Praktikumsaufgaben gehen in die Prüfungsnote ein

8

(4)

Einordnung der Vorlesung

ƒ „Verteilte Systeme“ ist ein Querschnittsthema

ƒ Gewisse Überschnei- dungen mit anderen Vor

Principles of Distrib- uted Com- puting Verteilte

Algo- rithmen

Verteilte Systeme

dungen mit anderen Vor- lesungen unvermeidlich

9

OS and Networks

Parallele Program-

mierung

© Friedemann Mattern, 2002

Thematisch verwandte

Veranstaltungen (Masterstufe)

ƒ Ubiquitous Computing q p g

ƒ Enterprise Application Integration - Middleware

ƒ Web Services and Service Oriented Architectures

ƒ Verteilte Algorithmen

ƒ Principles of Distributed Computing

ƒ Einschlägige Seminare

ƒ Praktikum (“Lab”)

ƒ Semester- und Masterarbeit

10

(5)

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

© Friedemann Mattern, 2002

“Verteiltes System” – zwei Definitionen

ƒ 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

ƒ 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

ƒ welche Problemaspekte stecken hinter Lamports Charakterisierung?

12

(6)

“Verteiltes System”

ƒ Physisch verteiltes System y y

ƒ Mehrrechnersystem ... Rechnernetze

Knoten / Prozess Nachricht

ƒ Logisch verteiltes System

ƒ Prozesse (Objekte, Agenten)

ƒ Verteilung des Zustandes (keine globale Sicht)

ƒ Keine gemeinsame Zeit (globale, genaue Uhr)

13

© Friedemann Mattern, 2002

Sichten verteilter Systeme (1)

ƒ Computernetz mit p

“Rechenknoten”, z.B.

ƒ Compute-Cluster

ƒ Local Area Network

ƒ Internet

ƒ Relevante Aspekte:

ƒ Routing, Adressierung,…

Zunehmende Abstraktion

(7)

Sichten verteilter Systeme (2)

ƒ Objekte j in Betriebs- systemen, Middleware, Programmiersprachen

ƒ “Programmierersicht”

ƒ z.B. Client mit API zu Server kommunizierende Prozesse,

kooperierende Objekte

15

kooperierende Objekte

Zunehmende Abstraktion

© Friedemann Mattern, 2002

Sichten verteilter Systeme (3)

ƒ Algorithmen- und g Protokollebene

ƒ Aktionen, Ereignisfolgen

ƒ Konsistenz, Korrektheit

ƒ Man kann verteilte Systeme auf verschiedenen Ab t kti t f b t ht

16

Abstraktionsstufen betrachten

ƒ Es sind dabei jeweils unterschiedliche Aspekte

relevant und interessant

(8)

Die verteilte Welt

Auch die “reale Welt” ist ein verteiltes System:

ƒ viele gleichzeitige (“parallele”) Aktivitäten

ƒ exakte globale Zeitnicht erfahrbar / vorhanden

ƒ keine konsistente Sicht des Gesamtzustandes

ƒ Kooperation durch explizite Kommunikation

ƒ Ursacheund Wirkungzeitlich (und räumlich) getrennt

© Friedemann Mattern, 2002

Warum verteilte Systeme?

ƒ Es gibt inhärent geographisch verteilte Systeme g g g p y

ƒ z.B. Zweigstellennetz einer Bank, Steuerung einer Fabrik (Zusammenführen / Verteilen von Information)

ƒ Electronic commerce

ƒ kooperative Informationsverarbeitung räumlich getrennter Institutionen (z.B. Reisebüros, Kreditkarten,...)

ƒ Mensch-Mensch-Telekommunikation

Wirtschaftliche AspekteWirtschaftliche Aspekte

ƒ E-Mail, Diskussionsforen, Blogs, digitale soz. Netze, IP-Telefonie,...

ƒ Globalisierung von Diensten

ƒ Skaleneffekte, Outsourcing,...

p

ƒ Outsourcing von Diensten, Verlagerung in eine „Cloud“, kann günstiger als klassische Lösung sein

ƒ Compute-Cluster manchmal besseres Preis-Leistungs- verhältnis als Hochleistungs- computer

p

ƒ Outsourcing von Diensten, Verlagerung in eine „Cloud“, kann günstiger als klassische Lösung sein

ƒ Compute-Cluster manchmal besseres Preis-Leistungs- verhältnis als Hochleistungs- computer

(9)

Verteilte Systeme als “Verbunde”

ƒ Verteilte Systeme verbinden räumlich (oder logisch)

ƒ Systemverbund

ƒ gemeinsame Nutzung von Betriebsmitteln, Geräten,...

ƒ einfache inkrementelle

ƒ Lastverbund

ƒ Zusammenfassung der Kapazitäten

ƒ Datenverbund

getrennte Komponenten zu einem bestimmten Zweck

Erweiterbarkeit

ƒ Funktionsverbund

ƒ Kooperation bzgl. Nutzung jeweils spezifischer Eigenschaften

ƒ allgemeine Bereitstellung von Daten

ƒ Überlebensverbund

ƒ Redundanz durch Replikation

19

© Friedemann Mattern, 2002

Historische Entwicklung (1)

ƒ 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”)

ƒ symmetrische Kommunikationsbeziehung ( peer to peer )

ƒ file transfer, remote login, E-Mail

ƒ Internet-Protokollfamilie (TCP/IP,...)

20

(10)

Historische Entwicklung (2)

ƒ 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

ƒ Web / Internet als Plattform

ƒ für electronic commerce etc

ƒ für electronic commerce etc.

ƒ web services

ƒ neue, darauf aufbauende Dienste

ƒ Mobile Geräte (z.B. Smartphones)

ƒ Internet der Dinge

21

Änderung der Vernetzungs“qualität“

Friedemann Mattern

Vernetzung von:

-Computern(ftp)

Mobiler

Eingebettete Internet-

Dienste

‘00:

Computern(ftp) -Dokumenten(WWW) -Menschen(soz. Netze) -Dingen(Internet der Dinge)

E-Mail

Mobiler Zugang

TCP http

Zeit Web 2.0

‘80: WWW

‘90:

(11)

Historie von Konzepten

ƒ Concurrency, Synchronisation

Entwicklung “guter” Konzepte, Modelle Abstraktionen etc

y, y

ƒ war bereits klassisches Thema bei Datenbanken und Betriebssystemen

ƒ Programmiersprachen

ƒ z.B. „kommunizierende“ Objekte

ƒ Parallele und verteilte Algorithmen

ƒ Semantik von Kooperation / Kommunikation

Modelle, Abstraktionen etc.

zum Verständnis der Phäno- menedauert oft lange (not- wendige Ordnung und Sichtung des verfügbaren Gedankenguts)

Diese sind jedoch für die Lösung praktischer Probleme hilfreich, oft sogar notwendig!

ƒ mathematische Modelle für Verteiltheit (z.B. CCS, Petri-Netze)

ƒ Abstraktionsprinzipien

ƒ Schichten, Dienstprimitive,...

ƒ Verständnis grundlegender Phänomene der Verteiltheit

ƒ Konsistenz, Zeit, Zustand,...

Architekturen verteilter Systeme

ƒ Zu Anfang waren Systeme monolithisch u a g a e Syste e o o t sc

- Nicht verteilt / vernetzt -Mainframes

-Terminals als angeschlossene „Datensichtgeräte“

(„Datenendgerät“: Fernschreiber, ASCII)

(12)

Architekturen verteilter Systeme: Peer-to-Peer

ARPANET1969

Jeder Rechner gleichzeitig Informationsanbieter und -konsument

Architekturen verteilter Systeme: Client-Server

- Einführung von Workstations

Internet

Client

Server g

(später dann „PC“)

-WWW-dominiertes Internet -Serverals Informationsanbieter -Clientals Konsument

(13)

Architekturen verteilter

Systeme: Fat- und Thin-Client

Fat-Client Thin-Client

Präsentation

Applikation

Präsentation

Applikation

Präsentation

Applikation

Präsentation

Applikation Applikation

Daten

Daten

Applikation

Daten Daten

Daten

Architekturen verteilter Systeme: 3-Tier

Präsentation

Applikation

Verarbeitung wird auf mehrere physikalische Einheiten verteilt - Logische Schichten minimieren

die Abhängigkeiten - Leichtere Wartung

Ei f h A t h

Daten

- Einfaches Austauschen Server

Server

(14)

Architekturen verteilter Systeme: Multi-Tier

Präsentation

Webserver

Applikation

Weitere Schichten sowie mehrere physikalische Einheiten pro Schicht („Compute-Cluster“) erhöhen die Skalierbarkeitund Flexibilität Mehrere Webserver ermöglichen z.B. Lastverteilung

V t ilt D t b k i d Daten- Verteilte Datenbanken in der

Datenhaltungsschicht bietet Sicherheit durch Replikation und hohen Durchsatz Daten-

verwaltung Daten- haltung Compute-

Cluster

Architekturen verteilter Systeme: Compute-Cluster

Vernetzung kompletter Einzelrechner Vernetzung kompletter Einzelrechner Räumlich konzentriert (wenige Meter) Sehr schnelles Verbindungsnetz

Es gibt diverse Netztopologien, um die Einzelrechner (als Knoten in einem Graphen)p )miteinander zu verbinden – diese sind unterschiedlich hinsichtlich

ƒ Skalierbarkeit der Topologie

ƒ Routingkomplexität

ƒ Gesamtzahl der Einzelverbindungen

ƒ maximale bzw. durchschnittliche Entfernung zweier Knoten

ƒ Anzahl der Nachbarn eines Knotens

ƒ Zahl der alternativ bzw. parallel verfügbaren Wege

ƒ

Bestimmt die die Kosten und die Leistungsfähigkeit eines Systems

(15)

Beispiel: Hypercube- Verbindungstopologie

ƒ Würfel der Dimension d

ƒ Vorteil: einfaches Routing, kurze Weglängen

ƒ Nachteil: Viele Einzelverbindungen (O(n log n) bei n Knoten)

ƒ Rekursives Konstruktionsprinzip

ƒ Hypercube der Dimension 0: Einzelrechner

ƒ Hypercube der Dimension d+1: „Nimm zwei Würfel der Dimension d und verbinde korrespondierende Ecken“

Dimension d und verbinde korrespondierende Ecken

Routing beim Hypercube

ƒ Knoten systematisch y nummerieren (entspr.

rekursivem Aufbau)

ƒ Zieladresse bitweise xor mit Absenderadresse

ƒ Wo sich eine “1” findet, in diese Dimension muss gewechselt werden

ƒ Maximale Weglänge: d; durchschnittliche Weglänge = d/2

(Induktionsbeweis als einfache Übung)

(16)

Beispiel: Hypercube-

Verbindungstopologie (2)

ƒ Dies stellt auch einen Hypercube dar

ƒ ist nur nicht als Würfel gezeichnet

Resümee (1)

ƒ Verteilte Systeme: Begriff, Sichtweisen, Eigenschaften,...

ƒ

ƒ Warum verteilte Systeme?

ƒ Kooperation von a-priori geographisch verteilten Einheiten

ƒ Verteilte Systeme als “Verbund”

ƒ Historische Entwicklung von Systemen und Konzepten

ƒ Architekturvarianten

ƒ Peer-to-Peer

ƒ Client-Server

ƒ Fat-Client vs. Thin Client

ƒ 3-Tier und Multi-Tier

ƒ Compute-Cluster (Beispiel für Verbindungstopologie: Hypercube und Torus)

(17)

Eine andere Verbindungstopo- logie: Der d-dimensionale Torus

ƒ Gitter in d Dimensionen mit “wrap-around”

ƒ Rekursives Konstruktionsprinzip: Nimm w

d

gleiche Exemplare der Dimension d-1 und verbinde korrespon- dierende Elemente zu einem Ring

ƒ Sonderfall Ring: d = 1

ƒ Sonderfall Hypercube: d-dimensionaler Torus mit wi= 2 für alle Dimensionen i

Es gibt noch einige andere sinnvolle Verbindungstopolo- gien (auf die wir nicht eingehen)

Parallelrechner verteiltes System

Verteiltes System

Mehrprozessor-

systeme Computernetze

(geographisch verteilt) eng

gekoppeltlose gekoppelt

Mehrrechner- systeme

MIMD Multiple Instruction, Multiple Data (im Gegensatz zu SIMD)

Multicore

(auf einem Chip)

Parallelrechner Verteiltes System

systeme

(gemeinsamer Speicher)

(geographisch verteilt)

systeme

(räuml. konzentriert)

“multiprocessor” “compute cluster”

(auf einem Chip)

Koppelungsgrad als qualitatives Merkmal

(18)

Architekturen verteilter Systeme:

Service-Oriented Architecture (SOA)

EineUnterteilungder Applikation in Eine Unterteilungder Applikation in einzelne, unabhängige Abläufe innerhalb eines Geschäftsprozesseserhöht die Flexibilität weiter

Lose Kopplung zwischen Services über Nachrichten und events (statt RPC) Services können bei Änderungen der Prozesse einfach neu zusammengestellt werden ( development by composition“) werden („development by composition“) Services können auch von externen Anbieternbezogen werden

Oft in Zusammenhang mit Web-Services

Architekturen verteilter Systeme: Cloud-Computing

Massive Bündelung der

Rechenleistung an zentraler Stelle Outsourcenvon Applikationen in die Cloud

Internetim Wesentlichen nur noch als Vermittlungsinstanz

(19)

Motivierender Trend: Stetige Erhö- hung der Bandbreite für Endnutzer

Hochgeschwindigkeit ins Haus

ƒ Konvergenz TV, Telekom- munikation und Internet

ƒ Technologiewechsel Æ erhebliche Investitionen

ƒ wirtschaftliche Faktoren und Bedingungen

ƒ Telefondraht

ƒ TV-Kabel Æ Internet Æ TV

Æ Telefon Æ Internet ÆGlasfaser

„Tripleplay“ (Sprache, Daten, Video)

(20)

Cloud-Computing

E M il i d b i

Alles ist

„irgendwo“

im Netz

E-Mail wird beim Provider gespeichert

Cloud-Computing

F t d b i

Alles ist

„irgendwo“

im Netz

Fotos werden bei

gespeichert

(21)

Cloud-Computing

Vid b i

Alles ist

„irgendwo“

im Netz

Videos bei

Cloud-Computing

P i t D k t

Alles ist

„irgendwo“

im Netz

Private Dokumente werden bei einem Storage Provider abgelegt

Das Tagebuch wird öffentlich „im Netz“

l Bl füh t

als Blog geführt

(22)

Cloud-Computing

I f i t t

Alles ist

„irgendwo“

im Netz

Informieren tut man sich im Netz

Cloud-Computing

V t t t

Alles ist

„irgendwo“

im Netz

Vernetzen tut man

sich bei „social net-

works“ oder „digital

communities“ im Netz

(23)

Cloud-Computing

Pl ttf i N t

Alles ist

„irgendwo“

im Netz

Plattformen im Netz nutzt man zum

- Kaufen - Spielen

- Kommunizieren - …

Cloud-Computing

Alles ist

„irgendwo“

im Netz

Vorteile für Nutzer:

ƒ von überall zugreifbar

ƒ keine Datensicherung

ƒ keine Softwarepflege

Kein PC, sondern billiges Web-Terminal, Smartphone etc.

Wie Wasserleitungeneinst den eigenen Brunnen überflüssig machten…

(24)

Cloud-Computing

Alles ist

„irgendwo“

im Netz

Voraussetzungen?

ƒ Überall Breitband (fest & mobil)

ƒ Netz-Verlässlichkeit (Versorgungssicherheit, Datenschutz,…)

ƒ Wirtschaftlichkeit

Verlässlichkeit?

Cloud Voraussetzungen?

ƒ Überall Breitband (fest & mobil)

ƒ Netz-Verlässlichkeit (Versorgungssicherheit, Datenschutz,…)

ƒ Wirtschaftlichkeit

(25)

Geschlossen!

Credit Suisse Å100 m

(26)

Cloud-Computing

Alles ist

„irgendwo“

im Netz

Plattformen:

ƒ Wer betreibt sie? Wo?

ƒ Wer verdient daran?

ƒ Wer bestimmt?

ƒ Wer kontrolliert?

ƒ Welche Nationen profitieren davon?

profitieren davon?

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)

ƒ Neben Google weitere

(z.B. Amazon, Microsoft, Ebay,…)

(27)

Google Data Center Groningen

Google Data Center Columbia River

(28)

The Dalles, OR, Columbia River

Google Data Center Columbia River

Electricity supply

Cooling towers

(29)
(30)

Energiezufuhr „Discovery Substation”: 115 kV / 13.8 kV

Nahes Kraftwerk: Dalles Dam Power Station, Columbia River

The Chronicle, March 1, 2007 – PUD to seek vote on coal power

Coal will provide most affordable, reliable future power say supporters of the plan power, say supporters of the plan.

As demand for electricity in The Dalles soars, and federal hydropower supplies near their limit, Northern Wasco County PUD plans to ask voters May 15 for permission to buy power from two separate coal-fueled electrical plants soon to be built.

(31)

Innenansicht eines Cloud-Zentrums

ƒ Effizient wie Fabriken

ƒ Produkt: Internet-Dienste

ƒ Kostenvorteil durch Skaleneffekt

ƒ Faktor 5 – 7 gegenüber traditio- nellen „kleinen“ Rechenzentren

ƒ Angebot nicht benötigter Leistung auf einem Spot Markt Leistung auf einem Spot-Markt

Das entwickelt sich zum eigentlichen Geschäft!

Zukünftige Container-Datenzentren

ƒ Hunderte von Containernaus je einigen tausend Compute-Servern

ƒ mit Anschlüssen für Strom und Kühlung

ƒ Nahe an Kraftwerken

ƒ Transport von Daten billiger als Strom

Thin clients?

(32)

Cloud-Computing für die Industrie und Wirtschaft

ƒ Spontanes Outsourcen von IT inklusive Geschäftsprozesse

ƒ Spontanes Outsourcen von IT inklusive Geschäftsprozesse

ƒ Datenverarbeitung als Commodity

ƒ Software und Datenspeicher als Service

ƒ Keine Bindung von Eigenkapital

ƒ Kosten nach „Verbrauch“

ƒ Elastizität: Sofortiges Hinzufügen weiterer Ressourcen bei Bedarf

ƒ virtualisierte Hardware Markt für „utility computing“

2010: ca. 95 Milliarden EUR

Zusammenfassung Systemarchitekturen

ƒ Peer-to-Peer

ƒ Client-Server (Fat-Client vs. Thin Client)

ƒ 3-Tier

ƒ Multi-Tier

ƒ Service-Oriented Architecture (SOA)

ƒ Compute-Cluster

ƒ Cloud-Computing

(33)

Charakteristika und praktische Probleme verteilter Systeme

ƒ Räumliche Separation und Autonomie der Komponenten führen zu neuen Problemen:

ƒ partielles Fehlverhalten (statt totaler “Absturz”)

ƒ fehlender globaler Zustand/ exakt synchronisierte Zeit

ƒ Inkonsistenzen, z.B. zwischen Datei und Verzeichnis

ƒ Typw. grosse Heterogenität in Hard- und Software

ƒ Komplexität Komplexität

ƒ Sicherheit

(Vertraulichkeit, Authentizität, Integrität, Verfügbarkeit,...)

ƒ notwendigerals in klassischen Einzelsystemen

ƒ aber schwierigerzu gewährleisten (mehr Angriffspunkte)

Gegenmittel?

ƒ Gute Werkzeuge g (“Tools”) und Methoden ( )

ƒ z.B. Middleware als Software-Infrastruktur

ƒ Abstraktion als Mittel zur Beherrschung von Komplexität

ƒ z.B. Schichten (Kapselung, virtuelle Maschinen) oder

ƒ Modularisierung (z.B. Services)

ƒ Adäquate Modelle, Algorithmen, Konzepte

ƒ zur Beherrschung der “neuen” Phänomene

ƒ Ziel der Vorlesung

ƒ Verständnis der grundlegenden Phänomene

ƒ Kenntnis von geeigneten Konzepte und Methoden

(34)

Einige konzeptionelle Probleme und Phänomene verteilter Systeme

1) Schnappschussproblem ) pp p 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 aber noch viel mehr und viel komplexere Probleme

konzeptioneller wie praktischer Art

ƒ Achtung: Manches davon wird nicht hier, sondern in der Vorlesung

“Verteilte Algorithmen” eingehender behandelt!

Ein erstes Beispiel:

Wieviel Geld ist in Umlauf?

ƒ Annahme: konstante Geldmenge

ƒ Ständige Transfers zwischen den Banken

ƒ Niemand hat eine globale Sicht

ƒ Es gibt keine gemeinsame Zeit (“Stichtag”)

ƒ Anwendung: z.B. verteilte

D t b k Si h kt

Datenbank-Sicherungspunkte

(35)

Ein zweites Beispiel:

Das Deadlock-Problem

Ein zweites Beispiel:

Das Deadlock-Problem

(36)

Phantom-Deadlocks

ƒ Aus den Einzelbeobach-

d f h

tungen darf man nicht schliessen:

ƒ A wartet auf B und B wartet auf C und C wartet auf A

ƒ Diese zyklische Wartebe- dingungg gwäre tatsächlich ein Deadlock

ƒ Die Einzelbeobachtungen fanden hier aber zu unter- schiedlichen Zeiten statt

ƒ Lösungohne Zeitstempel?

Ein drittes Problem:

Uhrensynchronisation

ƒ Uhren gehen nicht U e ge e c unbedingt gleich schnell!

ƒ Gilt wenigstens “Beschleuni- gung≈ 0”, d.h. ist konstan- ter Drift gerechtfertigt?

ƒ Wie kann man den Offset der Uhren ermitteln oder zumindest approximieren?

(37)

Ein viertes Problem: (nicht) kausaltreue Beobachtungen

ƒ Gewünscht: Eine Ursache stets vor ihrer (u.U. indirekten) ( ) Wirkung beobachten

Falsche Schlussfolge- rungdes Beobachters:

Es erhöhte sich der Druck (aufgrund einer unbegründeten Aktivi-g tät der Pumpe), es kam zu einem Leck, was durch den abfallenden Druck angezeigt wird.

Und noch ein Problem:

Verteilte Geheimnisvereinbarung

ƒ Problem: A und B wollen sich über einen unsicheren

Kanal auf ein gemeinsames geheimes Passwort einigen

(38)

Verteilte Geheimnisvereinbarung (2)

ƒ Idee: Vorhängeschlösser um eine sichere Truhe:

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?

K ik ti

Kommunikation

(39)

ƒ Prozesse sollen kooperieren, daher unterein-

Kooperation durch

Informationsaustausch

Prozesse sollen kooperieren, daher unterein ander Information austauschen können

ƒ mittels gemeinsamer Daten in einem globalen Speicher (dieser kann physisch oder evtl. nur logisch

vorhanden sein als „virtual shared memory“)

ƒ oder mittels Nachrichten:

Daten an eine entfernte Stelle kopieren Daten an eine entfernte Stelle kopieren

Kommunikation

ƒ Notwendig, damit Kommunikation klappt, ist jedenfalls: g, pp , j 1. ein dazwischenliegendes physikalisches Medium

ƒ z.B. elektrische Signale in Kupferkabeln

2. einheitliche Verhaltensregeln

ƒ Kommunikationsprotokolle

3. gemeinsame Sprache und gemeinsame Semantik 3. gemeinsame Sprache und gemeinsame Semantik

ƒ gleiches Verständnis der Bedeutung von Kommunikationskonstrukten und -regeln

Also trotz Verteiltheit gewisse gemeinsame Aspekte!

(40)

Nachrichtenbasierte Kommunikation

ƒ send Æ receive

ƒ Implizite Synchronisation:

Senden vor Empfangen

ƒ Empfänger erfährt, wie weit der Sender mindestens ist

h h d d h b l

ƒ Nachrichten sind dynamische Betriebsmittel

ƒ verursachen Aufwand und müssen verwaltet werden

Message Passing System (1)

ƒ Organisiert den Nachrichtentransport g p

ƒ Bietet Kommunikationsprimitive (als APIs) an

ƒ z.B. send (...) bzw. receive (...)

ƒ evtl. auch ganze Bibliothekverschiedener Kommunikationsdienste

ƒ verwendbar mit gängigen Programmiersprachen (oft zumindest C)

Verteilte Anwendung ƒ Besteht aus Hilfsprozessen,

Pufferobjekten

System1 System2 System3

APIs

Netz

Pufferobjekten, …

ƒ Verbirgt Details des

zugrundeliegenden Netzes bzw.

Kommunikationssubsystems

(41)

ƒ Verwendet vorhandene Netzprotokolle und implementiert

Message Passing System (2)

damit neue, „höhere“ Protokolle

ƒ Garantiert (je nach „Semantik“) gewisse Eigenschaften

ƒ z.B. Reihenfolgeerhalt oder Prioritäten von Nachrichten

ƒ Abstrahiert von Implementierungsaspekten

ƒ z.B. Geräteadressen oder Längenrestriktionen von Nachrichten etc.

ƒ Maskiert gewisse Fehler

ƒ Maskiert gewisse Fehler

ƒ mit typischen Techniken zur Erhöhung des Zuverlässigkeitsgrades:

Timeouts, Quittungen, Sequenznummern, Wiederholungen, Prüfsummen, fehlerkorrigierende Codes,…

ƒ Verbirgt Heterogenität unterschiedlicher Systemplattformen

ƒ erleichtert damit Portabilitätvon Anwendungen

ƒ Manchmal werden vom Kommunikationssystem

Ordnungserhalt von Nachrichten: FIFO

y

Garantien bzgl. Nachrichtenreihenfolgen gegeben

ƒ Eine mögliche Garantie stellt FIFO (First-In-First-Out) dar: Nachrichten zwischen zwei Prozessen überholen sich nicht: Empfangsreihenfolge = Sendereihenfolge

FIFO kein FIFO

(42)

ƒ FIFO verbietet allerdings nicht, dass Nachrichten evtl. indi-

Ordnungserhalt von

Nachrichten: kausale Ordnung

rekt (über eine Kette anderer Nachrichten) überholt werden

ƒ Möchte man auch dies haben so muss die Kommunikation

Zwar FIFO, aber nicht kausal geordnet

ƒ Möchte man auch dies haben, so muss die Kommunikation kausal geordnet sein

(Anwendungszweck?)

ƒ keine Information erreicht Empfänger auf Umwegen schneller als auf direktem Wege („Dreiecksungleichung“)

ƒ entspricht einer „Globalisierung“ von FIFOauf mehrere Prozesse

ƒ Denkübung: Wie garantiert (d.h. implementiert) man kausale Ordnung auf einem System ohne Ordnungsgarantie?

ƒ Achtung: Semantik ist a priori nicht ganz klar:

Prioritäten von Nachrichten? (1)

c tu g Se a t st a p o c t ga a

ƒ Soll (kann?) das Transportsystem Nachrichten höherer Priorität bevorzugt (=?) befördern?

ƒ Können (z.B. bei fehlender Pufferkapazität) Nach- richten niedrigerer Priorität überschrieben werden?

ƒ Wie viele Prioritätsstufen gibt es?

S ll f E f it t N h i ht it

ƒ Sollen auf Empfangsseite zuerst Nachrichten mit

höherer Priorität angeboten werden?

(43)

ƒ Mögliche Anwendungen:

Prioritäten von Nachrichten? (2)

g g

ƒ Unterbrechen laufender Aktionen (ÆInterrupt)

ƒ Aufbrechen von Blockaden

ƒ Out-of-Band-Signalisierung

h b d d b kl S k

Durchbrechung der FIFO-Reihenfolge!

Vgl. auch Service-Klassen in Computernetzen: bei Rückstaus bei den Routern soll z.B. interaktiver Verkehr bevorzugt werden vor FTP etc.

ƒ Vorsicht bei der Anwendung: Nur bei klarer Semantik verwenden; löst oft ein Problem nicht grundsätzlich!

ƒ Inwiefern ist denn eine (faule) Implementierung, bei der

„eilige“ Nachrichten (insgeheim) wie normale Nachrichten realisiert werden, tatsächlich nicht korrekt?

ƒ Zweck: Klassifikation von Fehlermöglichkeiten;

Fehlermodelle (1)

g ;

Abstraktion von den konkreten, spezifischen Ursachen

ƒ Fehler beim Senden / Übertragen / Empfangen:

P1 P2 P3

ƒ Crash / Fail-Stop: Ausfall eines Prozessors:

P1

P2

P3

?

(44)

ƒ Zeitfehler: Ereignis erscheint zu spät (oder zu früh)

Fehlermodelle (2)

g p ( )

ƒ „Byzantinische“ Fehler: Beliebiges Fehlverhalten, z.B.:

ƒ verfälschte Nachrichteninhalte

ƒ Prozess, der unsinnige Nachrichten sendet

ƒ Fehlertolerante Algorithmen müssen das „richtige“

Fehlermodell berücksichtigen!

(solche Fehler lassen sich nur teilweise, z.B. durch Redundanz, erkennen)

Fehlermodell berücksichtigen!

ƒ adäquate Modellierung der realen Situation / des Einsatzgebietes

ƒ Algorithmus verhält sich korrekt nur relativ zum Fehlermodell

Mitteilungsorientiert

Mitteilung vs. Auftrag (1)

tte u gso e t e t

ƒ Unidirektional

send(...)

ƒ Übermittelte Werte werden der Nachricht typw. als

„Ausgabeparameter“ beim send übergeben

(45)

Auftragsorientiert

Mitteilung vs. Auftrag (2)

Auftragsorientiert

ƒ Bidirektional

ƒ Ergebnis des Auftrags

evtl. zu einem einzigen

Befehl zusammenfassen send(...) receive(...)

receive(...) send(...) ...

...

request

reply

Client

warten

Ergebnis des Auftrags wird als „Antwortnach- richt“ zurückgeschickt

ƒ Auftraggeber („Client“) wartet , bis Antwort eintrifft

Server

Zeit request

reply arbeiten

Resümee (2a)

ƒ Architekturvarianten verteilter Systeme (Fortsetzung)

d h ( )

ƒ Service-Oriented Architecture (SOA)

ƒ Cloud-Computing

ƒ Cloud-Computing

ƒ motiviert durch schnellere / ubiquitäre Netze

ƒ Trend: „alles“ irgendwo im Netz

ƒ Beispiele für Datenzentren

ƒ wirtschaftliche Effekte: Skaleneffekte Spot-Marktwirtschaftliche Effekte: Skaleneffekte, Spot Markt

ƒ Charakteristika / Problembereiche verteilter Systeme

ƒ fehlender globaler Zustand / Zeit; partielles Fehlverhalten

ƒ Heterogenität; Komplexität

(46)

Resümee (2b)

ƒ Beispielhafte Phänomene und konzeptionelle Probleme

ƒ Schnappschussproblem (inkonsistente globale Sicht)

ƒ Phantom-Deadlocks

ƒ Uhrensynchronisation

ƒ kausal inkonsistente Beobachtungen

ƒ Geheimnisaustausch über unsicheren Kanal

ƒ Nachrichtenkommunikation

ƒ Message-passing-Systeme

ƒ Ordnungserhalt; Prioritäten von Nachrichten

ƒ Fehlermodelle

ƒ fehlerhaftes Senden / Empfangen / Transportieren von Nachrichten

ƒ Crash von Prozessen bzw. Prozessoren

ƒ Kommunikationsmuster

ƒ Mitteilung ↔Auftrag

Referenzen

ÄHNLICHE DOKUMENTE

Replikationstransparenz erlaubt, dass mehrere Instanzen von Ressourcen verwendet werden, um die Zuverlässigkeit und die Leistung zu verbessern, ohne dass die Benutzer

Ein User-Interface für Start und Auswertung, welches die zu faktorisierende Zahl entgegen- nimmt, an die Worker verteilt und das Ergebnis (= die vollständige Primfaktorzerlegung sowie

Bitte erläutern Sie drei grundsätzliche Probleme, die sich aus verteilten Zeiten ergeben?. - Welches dieser Probleme löst der

Replikationstransparenz erlaubt, dass mehrere Instanzen von Ressourcen verwendet werden, um die Zuverlässigkeit und die Leistung zu verbessern, ohne dass die Benutzer

– Mobile Node (MN) globally addressable: fixed Home Address (HoA) – Home Agent (HA) to permanently represent MN at home network – Mobile Node locally addressable: changing Care

u Linking: bidirektional, signalisiert mit „exit“ Nachrichten – Erlaubt es Lebenszeit von Aktoren zu

u Junfeng Yang et al., MODIST: Transparent Model Checking of Unmodified Distributed Systems, in Proceedings of the 6th USENIX Symposium on Networked Systems Design and

 nur eine Operation: synchronisiere(S) ; alle lokalen Write-Operationen werden zu allen Kopien übertragen und alle Write-Operationen bei anderen Kopien werden zur lokalen