Zusammenschlüsse in verteilten Systemen. Überblick. Virtual Synchrony. Gruppenkommunikation



Ähnliche Dokumente
Überblick. Zuverlässige Gruppenkommunikation Grundlagen Zustellungsgarantien bei Multicast JGroups Übungsaufgabe 5

Statuten in leichter Sprache

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Grundlagen der Rechnernetze. Internetworking

Enigmail Konfiguration

SIMP 1.01 Protokollspezifikation (Mindestanforderung)

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Lokales Netzwerk Wie kann ich lokal installierte Drucker im Netzwerk für andere Nutzer freigeben? Frage:

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Zwischenablage (Bilder, Texte,...)

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

1 topologisches Sortieren

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Ihr Zeichen, Ihre Nachricht vom Unser Zeichen (Bei Antwort angeben) Durchwahl (0511) 120- Hannover NDS EU-DLR

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

SMS/ MMS Multimedia Center

1 Belastung. 1.1 Standortbestimmung 1.2 Belastungsvorhersage 1.3 Favoriten

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

Dokumentation IBIS Monitor

Volksbank Oelde-Ennigerloh-Neubeckum eg

Objektorientierte Programmierung

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Technische Dokumentation SilentStatistikTool

Virtual Private Network

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

D a s P r i n z i p V o r s p r u n g. Anleitung. - & SMS-Versand mit SSL (ab CHARLY 8.11 Windows)

Mail-Account Unimail mit der Einstellungen für Outlook Express 5.0

Einrichtung einer eduroam Verbindung unter dem Betriebssystem Android

Installation OMNIKEY 3121 USB

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Die elektronische Rechnung als Fortsetzung der elektronischen Beauftragung so einfach geht es:

Erster Schritt: Antrag um Passwort (s. Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung)

Produkte Info Touchscreen-Panel

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Einstellen der Makrosicherheit in Microsoft Word

Benutzung der LS-Miniscanner

Clustering (hierarchische Algorithmen)

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Routing im Internet Wie findet ein IP Paket den Weg zum Zielrechner?

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Erstellen einer in OWA (Outlook Web App)

Whitepaper. Produkt: combit address manager/combit Relationship Manager. Erweitertes David AddIn für Tobit. combit GmbH Untere Laube Konstanz

teamsync Kurzanleitung

Anbindung des eibport an das Internet

Übung - Konfigurieren einer Windows 7-Firewall

FAQ Freunde-werben auf osnatel.de

TK-Schnittstelleneinrichtung. Redundante Softswitches

Der Jazz Veranstaltungskalender für Deutschland, Österreich und die Schweiz

PhPepperShop Modul Remarketing. Datum: 13. September 2013 Version: 1.2. Warenkorb Wiederherstellung. Bestellabbruch Benachrichtigung.

15 Transportschicht (Schicht 4)

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Benutzerhandbuch - Elterliche Kontrolle

SEND-IT Bedienungsanleitung

Installationsanleitung Sander und Doll Mobilaufmaß. Stand

Einrichtung von Mozilla Thunderbird

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

12. Dokumente Speichern und Drucken

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Bekannte Effekte bei Soft- und Hardware der ESTEC Datenlogger sowie der PC Auswertesoftware

Whitepaper. Produkt: combit Relationship Manager. combit Relationship Manager und Terminalserver. combit GmbH Untere Laube Konstanz

web portal pro What's new?

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

2 Skype zum ersten Mal öffnen und einrichten

WLAN Konfiguration. Michael Bukreus Seite 1

mybev Shop des e-geodata Austria Portal

Informationen als Leistung

Integrierter -versand Konfiguration/Beschreibung

Was meinen die Leute eigentlich mit: Grexit?

Tipps & Tricks: März Parameter der tnsnames.ora im RAC Umfeld. 1. Parameter: Bereich: Erstellung: RAC 03/2011 SH. Letzte Überarbeitung: 11.

HTBVIEWER INBETRIEBNAHME

Die Statistiken von SiMedia

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

MODBUS/TCP und Beckhoff Steuerelemente

Hinweise zum elektronischen Meldeformular

Dokumentation EGVP-Übertmittlungsfehler bei Server-Engpässen Vorgehensweise Seite 1 von 5

Inventur. Bemerkung. / Inventur

Man liest sich: POP3/IMAP

3 Konfiguration OfficeMaster 3.10 SNMP

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

[Leitfaden] [Sicher kommunizieren mit der Stadt Konstanz (VPS)] Einleitung. [Stadt Konstanz] [Herausgeber: Hauptamt] [Stand: 2010]

U08 Entwurfsmuster (II)

Benutzerhandbuch Moodle für Kursteilnehmer/innen am MPG

Bedienungsanleitung C300 Sprachinfoserver der PH Freiburg

Erfolgreiche Verbindung. 3. Anmeldung: Bitte geben Sie Ihren Benutzernamen und Ihr Kennwort ein.

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Transkript:

Überblick Zusammenschlüsse in verteilten Systemen Gruppe Zusammenschluss von Knoten in einem verteilten System, die in der Anzahl begrenzt sind, zumeist miteinander gleichberechtigt kommunizieren und gemeinsamen (globalen) Zustand benötigen Für Replikation, virtuelle Konferenzen, Netzwerkspiele,... Abgrenzung Client/Server-System Clients sind unabhängig voneinander Kommunikation nicht gleichberechtigt P2P-System Peers besitzen nur partielle Sicht auf das Gesamtsystem Auf sehr große Anzahlen von Knoten ausgelegt... Grenzen aber fließend VS-Übung (SS11) 8 1 VS-Übung (SS11) 8 2 Virtual Synchrony Probleme Kein gemeinsamer Speicher Keine gemeinsame Realzeit Zusammensetzung der Gruppe ist oftmals dynamisch Knoten treten ihr bei oder verlassen sie Ausfall von Knoten Abbruch von Verbindungen Lösungsansatz Virtual Synchrony Knoten einigen sich auf Liste aller aktiven Gruppenmitglieder Gemeinsame Sicht auf das Gesamtsystem (View) Erneutes Aushandeln der View bei Änderung der Zusammensetzung Abfolge von Views dient als gemeinsame logische Zeitbasis Nachrichten sind nur für eine View gültig Gruppenkommunikation Verwaltung von Gruppenmitgliedschaften und Bereitstellung von Virtual Synchrony Austausch von Nachrichten zwischen Knoten einer Gruppe Nachrichten der Anwendung oder gruppeninterne Nachrichten Umsetzung von Zustellungsgarantien Mechanismen für Zustandstransfer Beispiele JGroups [http://www.jgroups.org/index.html] Spread... VS-Übung (SS11) 8 3 VS-Übung (SS11) 8 4

Überblick Zuverlässigkeit Best-Effort Multicast Versendet ein korrekter(!) Knoten eine Nachricht, wird sie letztendlich von jedem korrekten Knoten ausgeliefert (Gültigkeit) Keine Nachricht wird mehrmals ausgeliefert (keine Verdopplung) Nur vorher versendete Nachr. werden ausgeliefert (keine Erschaffung) Zuverlässiger Multicast Liefert ein korrekter(!) Knoten eine Nachricht aus, wird sie letztendlich von jedem korrekten Knoten ausgeliefert (Einigkeit) Ansonsten wie Best-Effort Multicast Uniformer Multicast Liefert ein beliebiger(!) Knoten eine Nachricht aus, wird sie letztendlich von jedem korrekten Knoten ausgeliefert (Uniforme Einigkeit) Ansonsten wie zuverlässiger Multicast VS-Übung (SS11) 8 5 VS-Übung (SS11) 8 6 Ordnung Überblick Keine Ordnung Nachrichten werden in keiner festen Reihenfolge ausgeliefert FIFO-Ordnung Nachrichten werden von allen korrekten Knoten in der Reihenfolge ausgeliefert, in der sie versendet wurden Von verschiedenen Knoten gesendete Nachrichten werden in keiner festen Reihenfolge ausgeliefert Kausale Ordnung Jede Nachricht wird von allen korrekten Knoten vor den von ihr (potentiell) verursachten Nachrichten ausgeliefert Kausale Ordnung schließt FIFO-Ordnung mit ein Totale Ordnung Nachrichten werden von allen korrekten Knoten in der gleichen Reihenfolge ausgeliefert Totale Ordnung ist orthogonal zu FIFO- und kausaler Ordnung VS-Übung (SS11) 8 7 VS-Übung (SS11) 8 8

Kurze Wiederholung zu JGroups JGroups Bibliothek und Framework für zuverlässige Gruppenkommunikation Virtual Synchrony, Zustandstransfers, verschiedene Zustellungsgarantien Durch modularen Aufbau über Konfiguration an bestehende Erfordernisse anpassbar Verwendung Knoten verbinden sich mittels eines org.jgroups.jchannel-objekts Nachrichten (org.jgroups.message) können per Unicast oder Multicast versendet werden Auslieferung von Nachrichten erfolgt asynchron (org.jgroups.messagelistener) Benachrichtigung über Gruppenzusammensetzung (org.jgroups.view) ebenfalls asynchron (org.jgroups.membershiplistener) Siehe Folien zu Übungsaufgabe 4 (Replikation) Protokoll-Stack Protokoll-Stack von JGroups ist konfigurier- und erweiterbar JChannel A SEQUENCER GMS UNICAST NAKACK FD FD_SOCK MERGE2 TCPPING TCP org.jgroups.stack. Protocol org.jgroups.header org.jgroups.message JChannel B SEQUENCER GMS UNICAST NAKACK FD FD_SOCK MERGE2 TCPPING TCP org.jgroups.stack.protocolstack VS-Übung (SS11) 8 9 VS-Übung (SS11) 8 10 Protokolle Ausgewählte bestehende Protokolle TCP/UDP Transportprotokolle FD Heartbeat-Protokoll für Ausfallerkennung NAKACK Implementiert FIFO-Multicast GMS Protokoll für Gruppenmitgliedschaft und Sichten SEQUENCER Realisiert eine totale Ordnung auf Basis von NAKACK Implementierung eigener Protokolle möglich Protokolle leiten von der Klasse org.jgroups.stack.protocol ab Registrierung mittels XML-Datei oder zur Laufzeit ClassConfigurator.addProtocol(short id, Class protocol); Ereignisse Empfang und Versand von Nachrichten sowie Statusänderungen werden als Ereignisse im Protokoll-Stack propagiert Zugehörige Methoden der Klasse Protocol Object down ( Event evt ); // Aufruf durch hoehere Schicht Object up( Event evt ); // Aufruf durch untere Schicht Rückgabe von Ergebnis der unteren (super.down( evt );) oder höheren Schichten (super.up( evt );) bzw. null, wenn Ereignis verworfen wurde Klasse org.jgroups.event int gettype (); // Typ des Ereignisses Object getarg (); // Mitgeliefertes Argument Typ (Event.*) Beschreibung Argument MSG Versand (down) oder Empfang (up) org.jgroups.message einer Nachricht VIEW CHANGE Änderung der aktuellen Sicht org.jgroups.view (up und down) SET LOCAL ADDRESS Setzen der lokalen Adresse (down) org.jgroups.address VS-Übung (SS11) 8 11 VS-Übung (SS11) 8 12

Protokoll-Header Serialisierung Protokolle können über Header interne Daten zwischen Knoten austauschen Leiten von org.jgroups.header ab Müssen vergleichbar zu Protokollen registriert werden ClassConfigurator.add(short id, java.lang.class class); Sind Teil von Nachrichten und werden mit diesen übertragen Zugehörige Methoden der Klasse org.jgroups.message Hinzufügen eines Header an Nachricht void putheader(short id, Header hdr); Rückgabe eines Header einer Nachricht oder null, wenn nicht vorhanden Header getheader(short id); JGroups verwendet eigene Mechanismen zur Serialisierung / Deserialisierung zum Beispiel von Headers Schnittstelle org.jgroups.util.streamable void writeto ( DataOutputStream out ); // Serialisierung void readfrom ( DataInputStream in ); // Deserialisierung Klassen müssen registriert werden über XML-Datei oder zur Laufzeit (siehe Registrierung von Headers) Hilfsmethoden in Klasse org.jgroups.util.util byte [] objecttobytebuffer ( Object obj ); Object objectfrombytebuffer ( byte [] buf, int off, int len ); VS-Übung (SS11) 8 13 VS-Übung (SS11) 8 14 Überblick Aufgabenstellung Implementierung eines eigenen Sequencers als JGroups-Protokoll VSTotalOrder Ansatz 1 VSTotalOrder setzt auf NAKACK auf, das FIFO implementiert Umleitung aller Multicast-Nachrichten zu einem ausgewählten Knoten, dem Leader Leader versendet Nachrichten Ein einziger Knoten sendet Multicasts + FIFO = totale Ordnung Ansatz 2 (optional für 5,0 ECTS) Knoten versenden Multicasts selbst Leader sendet extra Nachricht mit Ordnung Nachrichten werden erst ausgeliefert, wenn Ordnung bekannt Beide Ansätze verwenden ACKs für uniformen Multicast VS-Übung (SS11) 8 15 VS-Übung (SS11) 8 16

Hinweise 1. Teilaufgabe Behandeln von Statusänderungen innerhalb der Gruppe Speichern der lokalen Adresse des Knotens bei Event.SET LOCAL ADDRESS Speichern der aktuellen Sicht und bestimmen des Leader bei Event.VIEW CHANGE View besteht aus geordneter Liste der Adressen aller Mitglieder Vector<Address> view.getmembers() Erstes Mitglied der aktuellen Sicht ist Leader Zusammen mit lokaler Adresse kann bestimmt werden, ob ein Knoten der Leader ist Liste der Mitglieder kann leer sein! Klasse VSTotalOrder (im Pub-Verzeichnis) soll als Grundlage dienen Hinweise 2. Teilaufgabe (1/2) Umleiten aller Multicasts zu Leader (Ansatz 1) Überprüfen, ob zu versendende Nachricht Multicast ist msg. isflagset ( Message. NO_ TOTAL_ ORDER ) msg. getdest ()!= null &&! msg. getdest (). ismulticastaddress () ansonsten Ereignis an untere Schicht weiterreichen super.down(...) Initialisierung des Versenders der Nachricht mit lokaler Adresse, falls nicht anders festgelegt msg.getsrc() und msg.setsrc(...) Einpacken der Originalnachricht (Serialisierung) Neues Nachrichtenobjekt mit Leader als Empfänger erzeugen, anhängen der Originalnachricht, Header hinzufügen Versenden der Nachricht vom Leader Wiederum neues Nachrichtenobjekt erzeugen new Message ( null, <local >, msg. getrawbuffer (), msg. getoffset (), msg. getlength () ); VS-Übung (SS11) 8 17 VS-Übung (SS11) 8 18 Hinweise 2. Teilaufgabe (2/2) Nachricht weiterreichen Nachricht vom Leader entgegennehmen Originalnachricht auspacken Originalnachricht an höhere Schicht weiterreichen Vorgegebene Klassen VSMsgID NachrichtenID; bekommt jede Originalnachricht VSTotalOrderMsgType Typ der Nachricht, bisher: Ein Knoten an Leader (REROUTING) und Leader an alle Knoten (MULTICAST) VSTotalOrderHeader Header für interen Datenaustausch; enthält: Nachrichtentyp und -ID, sowie ggf. Ordnung (ViewId und Sequenznummer) Hinweise 3. Teilaufgabe Auslieferung von Nachrichten verzögern Nachricht vom Leader entgegennehmen Nachricht abspeichern ohne sie auszuliefern ACK (neuer Nachrichtentyp) an alle Knoten Versenden Nachrichten nach Empfang von ACKs ausliefern Auslieferung von Nachrichten nach Eintreffen der Empfangsbestätigungen aller Knoten Trotz Verzögerung muss die totale Ordnung beachtet werden ACKs können schon vor eigentlicher Nachricht eintreffen VS-Übung (SS11) 8 19 VS-Übung (SS11) 8 20

Hinweise 4. Teilaufgabe Versenden der Multicasts direkt von Knoten selbst Nachricht muss weder verpackt noch ausgepackt werden Auslieferung der Nachricht ist zu verzögern, bis Ordnung und ACKs vorliegen Herstellung der Reihenfolge Leader versendet beim Eintreffen der Originalnachricht eine Ordnungsnachricht (ohne abermaliges Versenden der Originalnachricht) Anmerkung Die Implementierung der ersten drei Teilaufgaben ist in geeigneter Weise so weit wie möglich wiederzuverwenden Die Implementierung von Ansatz 1 sollte trotz Wiederverwendung lauffähig bleiben Vereinfachungen in Anzahl der Bestätigungen bei uniformen Multicast ACKs von einer Mehrheit der Knoten würde ausreichen Führt zu einigen Sonderfällen Warten auf ACKs von allen Knoten Änderungen der Gruppenzusammensetzung Neuen Knoten fehlt die Nachrichtenhistorie Leaderwechsel muss bei totaler Ordnung berücksichtigt werden Beides kann zur Verletzung von Zustellungsgarantien führen Wechsel von Sichten wird nicht unterstützt Bereinigen von Zwischenspeichern Zwischenspeicher von Nachrichten, z. B. zum Verhindern von Mehrfachauslieferungen, müssen irgendwann bereinigt werden Wird vernachlässigt VS-Übung (SS11) 8 21 VS-Übung (SS11) 8 22 Allgemeine Hinweise Synchronisation Es ist davon auszugehen, dass auf Instanzen der Protokollklassen von mehreren Threads parallel zugegriffen wird Ausnahmen Auftretende Ausnahmen sind zumindest auszugegeben Testen der Implementierung Das Skript distribute.sh erstellt mehrere entfernte Prozesse, die anschließend die Testanwendung VSTestClient ausführen Die Ergebnisse werden in Logs ausgegeben, die mittels des Skripts checklogs.sh überprüft werden können. Vor Aufruf von distribute.sh muss die Datei my hosts mit Hostnamen von regulär erreichbaren CIP-Pool-Rechnern gefüllt werden VS-Übung (SS11) 8 23