• Keine Ergebnisse gefunden

Minimale Ausdrucksfähigkeit von Partnern

Im Dokument Partner datenverarbeitender Services (Seite 60-64)

Partner eines Service

5.2. Minimale Ausdrucksfähigkeit von Partnern

Im vorangegangenen Abschnitt haben wir gezeigt, dass im allgemeinen unentscheidbar ist, ob ein Serviceautomat bedienbar ist. Wenn wir entscheiden wollen, ob zu einem ge-gebenen Serviceautomaten ein Partner existiert, müssen wir die Menge der betrachteten Serviceautomaten daher notwendigerweise einschränken.

Die Klasse von Serviceautomaten, auf die wir uns einschränken, muss dabei mit be-dacht gewählt werden:

Einerseits darf sie nicht zu groß sein, damit die Existenz von Partnern in dieser Klasse noch entscheidbar ist. Andererseits muss die Klasse groß genug sein, damit ein Partner eines Serviceautomaten der Klasse noch mit den in dieser Klasse zur Verfügung stehenden Ausdrucksmitteln darstellbar ist.

Ein Serviceautomat aus einer Klasse S von Serviceautomaten hat im allgemeinen sowohl innerhalb als auch außerhalb vonS Partner. Bei ungeschickter Wahl vonS ist es möglich, dass jeder Partner eines Serviceautomaten ausS außerhalb vonS liegt.

In diesem Abschnitt betrachten wir exemplarisch einen Serviceautomaten, der mit einem Minimum an Ausdrucksmitteln darstellbar ist. Diesen Serviceautomaten können wir allein mit Variablen und der Gleichheitsrelation darstellen, ohne Konstanten und Funktionen zu verwenden.

start

Wir zeigen, dass zur Darstellung eines Partners dieses Serviceautomaten entweder Konstanten oder die Ungleichrelation notwendig sind. Diese Beobachtung ist insbeson-dere deshalb wichtig, da die Klasse derIdentitätsautomaten, d. h. der Serviceautomaten, die nur Variablen, die Gleichheitsrelation und die Ungleichheit benutzen, bereits sehr schwierig zu analysieren ist. In dieser Klasse gibt es, wie wir in Abschnitt 6.2 zeigen wer-den, Serviceautomaten, deren Partner innerhalb dieser Klasse nicht mehr endlich dar-stellbar sind. Aufgrund dieses Umstandes können wir daher bereits für sehr elementare Klassen von Serviceautomaten keinen Algorithmus angeben, der zu jedem Serviceauto-maten garantiert einen Partner innerhalb derselben Klasse konstruiert.

Wir betrachten den Serviceautomaten ForceInequal in Abb. 5.8. Das Universum von ForceInequalist die Menge der ganzen Zahlen. Den ServiceautomatenForceInequalkönnen wir allein unter Verwendung von Variablen und der Gleichheitsrelation darstellen. Die Partner von ForceInequalsind mit dieser Beschränkung nicht darstellbar, wie wir sehen werden:

ForceInequalerhält als Eingabe auf Kanalazwei Zahlen, die in den Variablenx undy gespeichert werden. Dann wählt der Serviceautomat zufällig eine der beiden Zahlen (x in branch1, y in branch2) aus und kommuniziert diese über den Kanal b. In jedem der beiden Zweige führt jeweils eine andere Aktion zum Endknoten (c in branch1 bzw.d in branch2).

Der ServiceautomatP1 ist ein Partner von ForceInequal.P1 kommuniziert auf Kanal

a.(1,2)

Abbildung 5.9.: Serviceautomaten mit zuForceInequaläquivalentem Interface azwei voneinander verschiedene Zahlen 1 und 2. Je nachdem, welche der beiden Zahlen ForceInequalauswählt und anschließend aufbkommuniziert, führtP1entweder die Aktion coder daus. Auf beiden Wegen gelangtForceInequalin seinen Endzustand.

Der ServiceautomatP2 ist kein Partner vonForceInequal.P2 kommuniziert die gleiche Zahl zwei mal an ForceInequal. Anhand der von ForceInequal über den Kanal b kom-munizierten Nachricht kannP2 nicht entscheiden, obForceInequal in Zustandrec1 oder rec2 ist, da diese Nachrichten in beiden Fällen identisch sind. Daher kann P2 anhand der Nachrichten nicht entscheiden, ob die Aktionc oder dausgeführt werden muss, um ForceInequalin seinen Endzustand zu bringen.

Verallgemeinernd können wir schlussfolgern: Jeder Partner vonForceInequalmuss auf Kanalazwei voneinander verschiedene Zahlen kommunizieren. Daher ist auch der Ser-viceautomatP3, welcher beliebige voneinander verschiedene Zahlen aufakommuniziert, ein Partner vonForceInequal.

Der ServiceautomatP3 ist einIdentitätsautomat. Je zwei Variablen eines Guards eines Identitätsautomaten stehen jeweils in einer Gleichheits- oder Ungleichheitsbeziehung zueinander.

Formal definieren wir einen Identitätsautomaten, ohne uns auf eine spezielle syntakti-sche Darstellung der Guards festzulegen. Wir definieren die Prädikate statt dessen direkt als Mengen von Belegungen. Dieser Ansatz hat den Vorteil, dass wir später in Abschnitt 13 Äquivalenzklassen von Belegungen und Zuständen eines Identitätsautomaten bilden können, ohne auf die konkrete Darstellung der Äquivalenzklassen einzugehen.

Jedes Prädikat eines Identitätsautomaten ist identitätsbewahrend, d. h. jedes Paar von Variablen ist in jeder Belegung entweder mit dem gleichen Wert belegt oder mit

ForceInequal P1 P2

P3

Partners(ForceInequal) S=,6=

S=

Abbildung 5.10.: Serviceklassen und Partnermengen. Partner eines Serviceautomaten aus einer KlasseS liegen oft außerhalb vonS.S=bezeichnet die Menge der Serviceautomaten, die nur Variablen, Konjunktion und die Gleich-heitsrelation benutzt. S=,6= bezeichnet die Menge der Serviceautoma-ten, die zusätzlich die Ungleichheitsrelation benutzt.

verschiedenen Werten belegt.

Definition 5.6 (Identitätsäquivalente Belegungen) Zwei Belegungen β, β0 heißen identitätsäquivalent, wenn für jedes Paar von Variablen x, y gilt: β(x) = β(y) gdw.

β0(x) =β0(y).

Definition 5.7 (Identitätsbewahrendes Prädikat) Ein PrädikatP heißt identitäts-bewahrend, wenn jedes Paar β, β0P identitätsäquivalent ist.

Jedes identitätsbewahrende Prädikat können wir als Konjunktion von Formeln der Formx=y undx6=y für Variablen x und y schreiben.

Definition 5.8 (Identitätsautomat) Ein Serviceautomat heißtIdentitätsautomat, wenn der Guard jeder Kante ein identitätsbewahrendes Prädikat ist.

Disjunktionen (z. B. x = yx 6= z) können nicht durch ein identitätsbewahrendes Prädikat ausgedrückt werden. Alternativen können aber durch explizite Verwendung mehrerer Kanten im Serviceautomaten ausgedrückt werden (z. B. eine Kante mit dem Guardx=y und eine Kante mit dem Guardx6=z).

Ebenso sind Prädikate, welche die Relation zwischen zwei Variablen nicht festlegen, nicht identitätsbewahrend. Das Prädikat x=x0y=y0 legt z. B. die Relation zwischen x undynicht fest. Es kann aber äquivalent durch die Disjunktion (x=x0y=y0x= y)∨(x=x0y=y0x6=y) dargestellt werden.

Serviceautomaten, deren Prädikate nur aus Variablen, dem Gleichheitszeichen und dem booleschen Operatoren ∧,∨,¬ gebildet werden, können wir daher durch Hinzufü-gen endlich vieler Kanten in einen äquivalenten Identitätsautomaten umwandeln. Wir werden gelegentlich in Darstellungen von Identitätsautomaten die kompaktere Notation

mit booleschen Operatoren verwenden. Für die formalen Beweise ist die äquivalenzklas-senbasierte Darstellung der Prädikate in der Regel praktischer.

Man beachte, dass ForceInequal selbst kein Identitätsautomat ist, da im Guard der Kante von start zu choice nicht spezifiziert wird, ob a0 = a1 oder a0 6= a1 gilt. Durch Teilen der Kante in zwei Kanten mit entsprechenden Guards kann der Serviceautomat aber in einen Identitätsautomaten umgewandelt werden.

Identitätsautomaten sind die hinsichtlich der Anzahl der verwendeten Ausdrucksmit-tel einfachste Klasse von Serviceautomaten mit Variablen, innerhalb der man sinnvolle Aussagen über Partner machen kann.

Das Gleichheitszeichen ist in unserem Formalismus unverzichtbar, da es den Bezug zwischen den Variablen eines Knotens und den Variablen seiner Nachfolgerknoten her-stellt. Das Ungleichzeichen ist notwendig, um Ausprägungen von Werten unterscheiden zu können.

Eine Variante vonForceInequalwird in [94] als gefärbtes offenes Petrinetz dargestellt.

Die Variante kann in der Petrinetzdarstellung ohne Guards, also insbesondere ohne Ver-wendung des Gleichheitszeichens formuliert werden. In der Petrinetzdarstellung wird daher besonders deutlich, wie elementar der ServiceautomatForceInequalist. Die Petri-netzvariante trifft selbst keine Entscheidung, die vom Inhalt der vom Partner empfange-nen Nachrichten abhängt. Die Inhalte der Nachrichten werden durch den Service lediglich weitergeleitet, ohne dass diese vom Service gelesen werden. Ein Partner der Petrinetz-variante muss also Inhalte von Nachrichten unterscheiden, obwohl die PetrinetzPetrinetz-variante selbst Inhalte von Nachrichten nicht beachtet.

Im Dokument Partner datenverarbeitender Services (Seite 60-64)