16.11.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!