Protokoll-Spezifikationen

Protokoll-Spezifikationen Steven Müller 1. Einleitung 2. Protokolle 3. Kompatibilität von Protokollen 4. Subprotokolle 5. Realisierung 6. Zusammenfas...
Author: Nicole Maus
5 downloads 2 Views 263KB Size
Protokoll-Spezifikationen Steven Müller

1. Einleitung 2. Protokolle 3. Kompatibilität von Protokollen 4. Subprotokolle 5. Realisierung 6. Zusammenfassung

1. Einleitung Worum geht es in diesem Vortrag? - Quelle: Artikel von Yellin und Strom aus ACM Transactions on Programming Languages and Systems, Vol. 19, No. 2, March 1997 - Erleichterung der Komposition von

Komponenten

Was ist eine Komponente? - SW-Einheit, die Aufgaben zur Verfügung stellt

1. Einleitung (Forts.) Wie arbeiten Komponenten zusammen? - Kommunikation über Schnittstellen - Nachrichtenübermittlung Wie sind Komponenten spezifiziert? - Menge von aufrufbaren Prozeduren - Bsp. Java-Methode: public static int method(int param){ int ret; [Anweisung 1 – n] return ret; }

1. Einleitung (Forts.) Warum sind diese Lösungen unzureichend? - fehlende Dokumentation von Nachrichtenreihenfolge von einer Komponenten - Komponenten können Nachrichten (beliebig) verschicken → Deadlock-Risiko - separat definierte Schnittstellen → Dokumentation von Nachrichtenreihenfolge schwer ersichtlich ⇒ „Protokoll“-Konzept wird eingeführt

1. Einleitung (Forts.) Welche Vorteile bringt das „Protokoll“-Konzept ? 1. Beschreibung der sendbaren und auch der empfangbaren Nachrichten für eine Komponente 2. Erschaffung einer simplen Semantik zur einfachen Überprüfung auf Protokoll-Kompatibilität 3. Implementationsmöglichkeit für viele Sprachen und Umgebungen

2. Protokolle ●

2.1. Aufbau eines Protokolls



2.2. Semantik eines Protokolls

2.1. Aufbau eines Protokolls (1) Schnittstellensignatur –

Menge von verschickbaren Nachrichten



Parametertypen, Sende-/Empfangsnachricht

(2) Protokoll –

Abfolge-Beschränkungen



Übergänge von der Form :→

⇒ definiert Endlichen Automaten

2.1. Aufbau eines Protokolls (Forts.) Beispiel: Auktionär-Automat

2.1. Aufbau eines Protokolls (Forts.) Besonderheiten des Endlichen Automats: –

End-Zustände vs. nicht-terminierend



Sende-, Empfangs- und Misch-Zustände



Lebendigkeitsannahme: Nachrichten werden, wenn möglich, immer verschickt

2.2. Semantik eines Protokolls Prinzip der synchronen Nachrichtenübermittlung: - Senden und Empfangen atomare Aktion - einfaches Verständnis des Systems - Synchronität muss nicht zwingend atomar sein → Ausführungspfad (Nachrichtenreihenfolge) muss stimmen

2.2. Semantik eines Protokolls (Forts.) Alternative: asynchrone Nachrichtenübermittlung: - Komponenten senden immer Nachrichten, wenn möglich - jede Komponente hat eine Warteschlange für ankommende Nachrichten - Protokoll-Integration schwierig ⇒ Standard: synchrone Nachrichtenübermittlung

3. Kompatibilität von Protokollen Wann arbeiten 2 Protokolle korrekt zusammen? ●



Kollaborations-Zustand = Zustandspaar mit jeweils 1 Zustand der beteiligten Komponenten, z.B. Kollaborations-Geschichte = korrekte (unendliche) Folge von KollaborationsZuständen, z.B. →w ...

3. Kompatibilität von Protokollen ●



unspezifizierter Empfang = kein Kollaborations-Zustand für nächste Nachrichtenübermittlung deadlockfrei = Kollaborations-Geschichte endet mit End-Zuständen oder kann immer weiter fortfahren

⇒ kompatibel = kein unspezifizierter Empfang und deadlockfrei

4. Subprotokolle Wie kann man Protokolle erweitern ohne die Kompatibilität einzuschränken? Wie erhält man ein korrektes Subprotokoll? –

Anfangs-Zustand von Subund Originalprotokoll ist „derselbe“



jeder End-Zustand im Originalprotokoll ist ein EndZustand im Subprotokoll

4. Subprotokolle (Forts.) Wie erhält man ein korrektes Subprotokoll? –

man fügt zum Originalprotokoll hinzu: (1) eine Menge von neuen Zuständen (2) eine Menge von neuen Empfangs-Übergängen (3) eine Menge von neuen Sende-Übergängen wobei jeder neue Sende-Übergang einem neuen Zustand im Subprotokoll entspringt

!

Kompatibilität wird bei Einhaltung dieser Regeln nicht beeinträchtigt

4. Subprotokolle (Forts.) Vorteile von Subprotokollen: –

Originalprotokoll P kompatibel zu Protokoll P' ⇒ Subprotokolel von P auch kompatibel zu P'



Subprotokolle von Originalprotokoll und Subprotokolle von invertiertem Originalprotokoll sind auch kompatibel

5. Realisierung ●

synchrone vs. asynchrone Nachrichtenübertragung



sofortiger Aufruf vs. Warteschlangen-Verwaltung



passive vs. aktive Komponenten - unterschiedliche Thread-Verwendung



pessimistischer vs. optimistischer Entscheider - Entscheider regelt Nachrichtenverkehr

6. Zusammenfassung System von Yellin und Strom bringt folgende Vorteile: 1. Spezifikation eines abstrakten Protokolls zur Komposition von Komponenten 2. Erleichterung bei der Überprüfung auf Kompatibilität 3. Dokumentation über Reihenfolgeneinschränkungen 4. Zusammenhänge der Schnittstellennutzung ersichtlich

6. Zusammenfassung (Forts.) Hauptziel aus der Einleitung: Erleichterung der Komposition von Komponenten Bonus: Ziel wird auch erreicht, wenn zusammen gehörende Schnittstellen isoliert voneinander entwickelt werden.