1 / 88

Verteilte Algorithmen und Datenstrukturen

Verteilte Algorithmen und Datenstrukturen. Christian Scheideler Institut f ür Informatik Universität Paderborn. Verteilte Algorithmen und Datenstrukturen. Vorlesung : Mi 14-16 Uhr , F0.530 Übung : Mi 16-17 Uhr , F0.530 Webseite : http://www.cs.uni-paderborn.de/?id=10640

braith
Télécharger la présentation

Verteilte Algorithmen und Datenstrukturen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VerteilteAlgorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

  2. VerteilteAlgorithmen und Datenstrukturen Vorlesung:Mi 14-16 Uhr, F0.530 Übung: Mi 16-17 Uhr, F0.530 Webseite: http://www.cs.uni-paderborn.de/?id=10640 Prüfung: • 50%: Softwareprojekt • 50%: mündlichePrüfung • Notenverbesserung um 0,3: Präsentation in Übung Voraussetzungen: Grundkenntnisse in Algorith-men und Datenstrukturen

  3. VerteilteAlgorithmen und Datenstrukturen Übungsaufgaben: • wöchentlicheAusgabe und Abgabe am Mittwoch • teilstheoretisch, teilspraktisch Skript und Übungsaufgaben:Webseite Bücherempfehlungen: keinBuch (Vorlesungbasiert auf neuestenErgebnissen)

  4. VerteilteAlgorithmen und Datenstrukturen Inhalt: • Einführung • Netzwerktheorie • Routing und Scheduling • Hashing und Caching • VerteilterKonsens und Transaktionen • DynamischeNetzwerkefürZusammenhang(Cliquen, Cliquegraphen und Expander) • DynamischeNetzwerkefür Routing(Verankerte und dezentraleNetzwerke) • VerteilteDatenstrukturen • DrahtloseNetzwerke

  5. Einführung Übersicht: • Motivation • Was ist Robustheit? • Das Subjects Paradigma(Grundlage für verteilte Programme) • Die Simulationsumgebung • Beispiele

  6. Einführung Sequentielle Algorithmenund Datenstrukturen Verteilte Algorithmenund Datenstrukturen

  7. Einführung Was sind Kernprobleme für verteilte Systeme?

  8. Verteilte Systeme • Jedes verteilte System benötigt einen zusammenhängenden Wissensgraph über die Teilnehmer. • Solch ein Graph: Overlaynetzwerk

  9. VerteilteAlgorithmen und Datenstrukturen Inhalt: • Einführung • Netzwerktheorie • Routing und Scheduling • Hashing und Caching • VerteilterKonsens und Transaktionen • DynamischeNetzwerkefürZusammenhang(Cliquen, Cliquegraphen und Expander) • DynamischeNetzwerkefür Routing(Verankerte und dezentraleNetzwerke) • VerteilteDatenstrukturen • DrahtloseNetzwerke

  10. Verteilte Systeme Skalierbares Overlaynetzwerk: • Hoher Durchsatz an Nachrichten • Jede Nachricht benötigt nur geringe Zeit

  11. VerteilteAlgorithmen und Datenstrukturen Inhalt: • Einführung • Netzwerktheorie • Routing und Scheduling • Hashing und Caching • VerteilterKonsens und Transaktionen • DynamischeNetzwerkefürZusammenhang(Cliquen, Cliquegraphen und Expander) • DynamischeNetzwerkefür Routing(Verankerte und dezentraleNetzwerke) • VerteilteDatenstrukturen • DrahtloseNetzwerke

  12. Verteilte Systeme Skalierbares Speichersystem: • Hoher Durchsatz an read/write Operationen • Jede Operation benötigt nur geringe Zeit

  13. VerteilteAlgorithmen und Datenstrukturen Inhalt: • Einführung • Netzwerktheorie • Routing und Scheduling • Hashing und Caching • VerteilterKonsens und Transaktionen • DynamischeNetzwerkefürZusammenhang(Cliquen, Cliquegraphen und Expander) • DynamischeNetzwerkefür Routing(Verankerte und dezentraleNetzwerke) • VerteilteDatenstrukturen • DrahtloseNetzwerke

  14. Verteilte Systeme In offenen verteilten System kann sich die Menge der Teilnehmer stark mit der Zeit verändern. Problem: wie erhalten wir die Funktionalität eines verteilten Systems??

  15. Verteilte Systeme Drei grundlegende Ansätze: server-basiert verankert peer-to-peer strukturierte Overlaynetzwerke

  16. VerteilteAlgorithmen und Datenstrukturen Inhalt: • Einführung • Netzwerktheorie • Routing und Scheduling • Hashing und Caching • VerteilterKonsens und Transaktionen • DynamischeNetzwerkefürZusammenhang(Cliquen, Cliquegraphen und Expander) • DynamischeNetzwerkefür Routing(Verankerte und dezentraleNetzwerke) • VerteilteDatenstrukturen • DrahtloseNetzwerke

  17. Verteilte Datenstrukturen Transparente Datenstrukturen: • Verteilte Hashtabelle • Verteilte Suchstrukturen • Verteilter Heap Transparenz: keine extra Links notwendig

  18. VerteilteSysteme Korrektheit, Skalierbarkeit, Robustheit,...

  19. VerteilteAlgorithmen und Datenstrukturen Inhalt: • Einführung • Netzwerktheorie • Routing und Scheduling • Hashing und Caching • VerteilterKonsens und Transaktionen • DynamischeNetzwerkefürZusammenhang(Cliquen, Cliquegraphen und Expander) • DynamischeNetzwerkefür Routing(Verankerte und dezentraleNetzwerke) • VerteilteDatenstrukturen • DrahtloseNetzwerke

  20. Verteilte Systeme Robustheit: • Operationen arbeiten korrekt selbst unter massiven Angriffen • System kann sich selbständig erholen

  21. Fundamentales Dilemma • Skalierbarkeit:Minimiere Ressourcen für Operationen • Robustheit:Maximiere Ressourcen für Angriffe Trotzdem erstaunlich gute Lösungen möglich Skalierbare Systeme leicht zu attackieren!!

  22. Konsensus 5 3 8 2 3 3 3 3

  23. Konsensus Modell: • n Spieler • Jeder Spieler kennt alle anderen • Zeit verläuft in synchronen Fragerunden • Pro Fragerunde kann jeder Spieler nur O(1) viele Fragen stellen / beantworten 5 8 Was ist Deine Nummer? 8.

  24. Konsensus Alle Spieler ehrlich: • Minimum-Regel: • Nach O(log n) Runden haben alle Spieler dieselbe Nummer m.h.W. x y Was ist Deine Nummer? y. x:=min{x,y} Zufälliger Spieler

  25. Konsensus Ein Spieler unehrlich: • Minimum-Regel: unbeschränkte Laufzeit. 5 1 Was ist Deine Nummer? 5. irgendwann später… 5 1 Was ist Deine Nummer? 1.

  26. Konsensus Besser: Median-Regel: • O(log n) Runden m.h.W.: ehrliche Spieler • O(log n loglog n): maxngegn. Spieler z y x Nummer? Nummer? z. y. Zufälliger Spieler x:=median{x,y,z} Zufälliger Spieler

  27. Sie sind gefeuert! DoS-resistentes Informationssystem Past-Insider-Attacke: Gegner kennt alles über System bis (unbekannte) Zeit t0 Ziel:skalierbares Informationssystem, so dass alles, was nacht0 eingefügt oder aktualisiert worden ist, sicher (m.h.W.) gegen past-insiderDoSAttacken ist

  28. Robustheit Entkopplungbzgl. Ort, Zeit und Fluss. • Ortentkopplung:interagierendeProzessemüssennichtihrephysikalischenOrtekennen • Zeitentkopplung:interagierendeProzessemüssennichtzurselbenZeitmiteinanderinteragieren • Flussentkopplung: die AusführungeinerAktioninnerhalbeinesProzessessolltenicht von anderenProzessenabhängen

  29. Gesetze der Robustheit Entkopplung und Selbsterholungvon jedem Zustand Nur dann können verteilte Systeme hochgradig skalierbar und verfügbar sein

  30. Gesetze der Robustheit Vollständige Kontrolle über Ressourcen und Informationen Nur dann können verteilte Prozesse sicher ausgetauscht werden und miteinander interagieren

  31. Gesetze der Robustheit • Eignerzustimmung und Kontrolle • Geringste Ausgesetztheit • Selbsterholung • Entkopplung [POLA, K. Cameron: The laws of identity, D. Epp: The eight rules of security,…]

  32. Gesetze der Robustheit Eignerzustimmung und Kontrolle: • EindeutigdefinierteZuständigkeiten • VollständigeKontrolleüber Info & Ressourcen Geringste Ausgesetztheit: • Nicht mehr Wissen als notwendig • Vollst. Kontrolle über Informationsfluss Selbsterholung: • Erholung muss von jedemZustandausmöglichsein (solange die PlattformnochimlegalenZustandist) Entkopplung: • keineSynchronisationnotwendigfür die Primitive

  33. Subjects Paradigma • Subjekte • Objekte • Relaypunkte • Aktionen

  34. Subjects Paradigma Subjekte: • atomar • gebunden an Ort • statische Menge an Aktionen • sequentielle Abarbeitung von Aufgaben • Objekte und erzeugte Relays und Subjekte lokal zum Subjekt • keine Identität, d.h. Informationsaustausch ist nur über Relays möglich Wichtig fürVerifikationund Kontrolle!

  35. Subjects Paradigma atomar, anonym, aktiv, unbeweglich, enthält Objekte, Relays und Aktionen atomar, anonym, passiv, beweglich atomar, Identitäten erzeugbar, passiv, unbeweglich atomar, anonym, unbeweglich, garantierte Terminierung

  36. Subjekt kann Subjekte erzeugen kann Objekte besitzen undAktionen ausführen kann Verbindungen aufbauen, die nicht umlegbar sind

  37. Relaypunkte Keine Anwender-zugreifbare Identität, aber (dunkle) Identitätsobjekte erzeugbar Ausgehende Kante bei Erzeugung festgelegt. R a) ohne Identität b) mit Identität R A R

  38. Erstes Kennenlernen R A B Öffentliche Identität (TAN) R • Subjekte besitzen keine Identität • Identitäten nicht kopierbar, nur einmal verwendbar • Relayverbindungen können nicht umgelegt werden

  39. Vorstellung A B R R>B C B>A A>B Zustimmung und Kontrolle, geringste Ausgesetztheit?

  40. Delegation von Rechten Zustimmung und Kontrolle, geringste Ausgesetztheit?

  41. Quelle des Objekts R R R’ R‘‘ Startpunkt des Objekts wird dem Objekt mitgegeben.Damit kann bei R’’ überprüft werden, wer die Quelle des Objekts war.

  42. Nachkommen Ressourcenkontrolle Mutter Kind Kind in derselben Maschine wie Mutter.

  43. Nachkommen Einfrieren Löschen

  44. Clones Erinnerung: Subjekte unbeweglich, atomar A B A’ A‘ Zustimmung und Kontrolle, geringste Ausgesetztheit?

  45. Clones Objekte prinzipiell völlig offen gegenüber Eigner. Objekte mit Zugriffsrechten: Clones O A B S O Zustimmung und Kontrolle, geringste Ausgesetztheit?

  46. Erholbarkeit • Existierende Objekte immer erreichbar, da immer Subjekt zugeordnet • Nachkommenbaum der Subjekte immer zusammenhängend und damit Ressour-cenkontrolle lückenlos • Kommunikation von Kind zu Mutter immer vorhanden, und damit immer schwacher Kommunikationszusammenhang der Subjekte

  47. Subjects Paradigma • Simulationsumgebung existiert basierend auf C++ • Vorlesungsseite: • Einführung in C++ • Link auf frei verfügbaren Compiler • Subjects Library und Beispielprogramme

  48. Objekte Object:BasisklassefürObjekte • Container fürdynamischeDaten • keineIdentität (nurüberReferenzerreichbar) • keineAktionen • transferierbar, aber hat zujedemZeitpunkteindeutigenBesitzer (Subjekt) • Besitzerkann auf alleAnwendungsdateninnerhalbvomObjektzugreifen

  49. Objekte Von Object abgeleiteteKlassen: • Identity:enthältIdentitäteinesRelaypunkts • Clone:enthält “schlafendes” Subjekt ObjektedieserKlassensindnureinmalverwendbar, und auf derenInhaltekönnenSubjektenichtzugreifen. BenutzerdefinierteObjekte:ObjectType(<UserObject>){public: <benutzerdefinierteVariablen> <evtl. Konstruktor>};

  50. Relays Relay: Klasse für Relaypunkte • nicht transferierbar • nur eine ausgehende Kante, die bei Generierung erzeugt wird und dann nicht mehr umgelegt werden kann • anonym, aber Identitäten können für eingehende Kanten generiert und transferiert werden

More Related