Protokoll-Spezifikationen

Ähnliche Dokumente
Interaktionsdiagramme in UML

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Verteilte Systeme. Nebenläufigkeit. Prof. Dr. Oliver Haase

Mobile und Verteilte Datenbanken

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Javakurs für Anfänger

10. OLAPLINE-Anwendertreffen

Grundlagen der Web-Entwicklung INF3172

7. Syntax: Grammatiken, EBNF

Vorkurs Informatik WiSe 17/18

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Dr. Monika Meiler. Inhalt

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Message Oriented Middleware am Beispiel von XMLBlaster

Übung Praktische Informatik I

Lexikalische Programmanalyse der Scanner

Klausur: Java (Liste P)

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Web Services. Standards und Realisierung in Java

Studienarbeit: Komposition von Web Services. Luhme IX Christian Stahl

Unified Modelling Language

Synchronisation und Kommunikation über Nachrichten

Einführung in die Programmierung mit Java

Modellierung von RFID-Prozessen mit offen Softwarestandards

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006

Theorie zu Übung 8 Implementierung in Java

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Programmieren I + II Regeln der Code-Formatierung

Kap. 6 Message-Oriented Middleware (MOM)

1 Klassen und Objekte

Klassenvariablen, Klassenmethoden

Modellprüfung von UML-Zustandsmaschinen und UML-Kollaborationen in SAL

Vgl. Oestereich Kap 2.7 Seiten

Erläuterungen zu Darstellung des DLQ-Datenportals

Konzepte der Programmiersprachen

Domänenmodell: Fadenkommunikation und -synchronisation

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Abkürzungen. Kapitel 1 - Einleitung Stand der Automobilelektronik Historische Entwicklung Gegenwärtige Probleme 2

Programmierkurs Java

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

7.2 Conjoining Specifications

Modellierung und Programmierung 1

Einstieg in die Informatik mit Java

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Probeklausur: Programmierung WS04/05

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

Schicht 3 des D-Kanals. Einführung

1. Einführung in Temporallogik CTL

Ersetzbarkeit und Verhalten

Techniken der Projektentwicklungen

1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0;

Einführung in die Programmierung

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Aufgabe 1: Interprozesskommunikation In der Vorlesung wurden zentrale Aspekte von grundlegenden Kommunikationsmustern vorgestellt.

Objektorientierte Programmierung

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Kap. 6 Message-Oriented Middleware (MOM)

Byzantinische Fehlertoleranz durch Gruppenkommunikation am Beispiel des Rampart-Toolkit Frank Mattauch

Egon Börger (Pisa) S-BPM. Über den praktischen Gewinn. einer wissenschaftlichen Fundierung

Unified Modeling Language 2

Sven Osterwald Concurrent Objects. Proseminar Parallele Programmierung in Java

Abbildung 3-1: Clients und Server C+S

ÖSTERREICH RECHNET MIT UNS. Standard e-rechnungs-webservice (SERWS) - Status DI Philip Helger, BRZ

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

Die Informationen im vorliegenden Dokument können ohne weitere Hinweise geändert werden. SoftProject GmbH übernimmt

Nebenläufige Programmierung

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse

Überlegungen beim Entwurf eines Betriebssystems

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Neuer Funkrufmaster: DAPNET Folien: Daniel Sialkowski und Ralf Wilke. 2. Hamnettagung in Aachen,

OOA-Dynamische Konzepte

Programmierkonventionen - 1 -

Programmierkurs C++ Abstrakte Klassen und Methoden

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Beispiel Klausuraufgaben

Prinzipien der objektorientierten Programmierung (OOP)

Einstieg in die Informatik mit Java

Objektorientiertes Programmieren

Unified Modeling Language (UML )

JAVA - Methoden - Rekursion

Transkript:

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 <Zustand>:<Richtung><Nachricht> <Zustand> 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. <1,A> Kollaborations-Geschichte = korrekte (unendliche) Folge von Kollaborations- Zuständen, z.b. <1,A> w <2,B>...

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