• Keine Ergebnisse gefunden

5.5 Schichtenmodell

6.1.1 Einf¨uhrung in gef¨arbte Petrinetze

Gef¨arbte Petrinetze (Coloured Petri Nets, CPN) geh¨oren zur Klasse der High-Level-Petrinetze. Diese basieren auf dem klassischen Petrinetzmodell [Pet62], implementieren aber spezifischen Erweiterungen.

Petrinetze allgemein eignen sich besonders zur formalen Modellierung von Informations-und Kontrollfl¨ussen in nebenl¨aufigen oder verteilten Systemen mittels einer klaren ma-thematischen Syntax. Die Modellierungsmethode ist dabei aber graphisch orientiert, d.h.

komplexe Vorg¨ange aus der Realit¨at werden mit einfachen graphischen Mitteln abgebil-det.

Jedes Petrinetz ist aus vier Grundbausteinen aufgebaut:

Marken (Tokens): Eine Marke ist eine abstrakte Repr¨asentation von im Netz ¨uber-tragenen und verarbeiteten Daten.

Stellen (Places): Eine Stelle ist Speicherort f¨ur eine oder mehrere Marken.

Transitionen (Transitions): Eine Transition ist die abstrakte Repr¨asentation f¨ur einen Daten verarbeitenden Prozess. Eine Transition ist aktiviert, wenn jede ihrer Eingabestellen (Stellen, von denen aus ein Bogen zur Transition f¨uhrt) die durch die Gewichtung vorgegebene Markenanzahl beinhaltet. Die Verarbeitung einer ak-tivierten Transition wird Schalten oder Feuern genannt.

B¨ogen (Arcs): Ein Bogen ist ein gerichtete Verbindung von einer Stelle zu einer 121

Transition oder umgekehrt. Die Gewichtung eines Bogens gibt an, wie viele Marken in einem ¨Ubergang zwischen den beiden Endpunkten transferiert werden.

Der Zustand eines Petrinetzes ist die aktuelle Belegung aller Stellen mit Marken. Der Anfangszustand, auch als Initial Marking oder Anfangsmarkierung bezeichnet, ist der a priori vorgegebene Zustand eines Netzes, in welchem noch keine Transitionen ausgel¨ost wurden.

Ein Zustands¨ubergang ist die Umformung eines bestehenden Zustandes in einen neuen Zustand durch Schalten genau einer Transition.

Definition 6.1 Petrinetz (nach [Pet62], [Jen92])

Ein Petrinetz ist ein gerichteter, bipartiter Graph, bestehend aus zwei verschiedenen Ar-ten von KnoAr-ten (Stellen und Transitionen) sowie gerichteAr-ten KanAr-ten zwischen diesen.

Es ist ein 5-Tupel

P N = (P, T, A, w, M0), welches die folgenden Anforderungen erf¨ullt:

1. P ist die endliche Menge der Stellen.

2. T ist die endliche Menge der Transitionen.

3. A ist die endliche Menge der B¨ogen mit

A⊆(P ×T)(T×P)

4. w wird als Gewichtungsfunktion (Weight Function) bezeichnet und ist eine Abbil-dung

w:A→N

5. M0 wird als Anfangsmarkierung (Initial Marking) bezeichnet und wird von einer Initialisierungsfunktion I :P N0 wie folgt erzeugt:

∀p∈P :M0(p) =I(p).

6. Es gilt P∩T =∅, P∪T 6=∅.

In klassischen Petrinetzen k¨onnen allerdings keine konkreten Daten gezielt modelliert, transportiert und verarbeitet werden. Da dies f¨ur die Formalisierung einer AAI mit ver-teiltem Verzeichnis aber unerl¨asslich ist, werden hierf¨ur gef¨arbte Petrinetze eingesetzt.

In diesen wird jeder Marke ein einfacher oder zusammengesetzter Datentyp zugewiesen, welcher als Colour Set oder Farbtyp bezeichnet wird. Die Farbe eines Tokens (Token Colour) ist dann die aktuelle Belegung der Felder des Datentyps mit konkreten Werten.

Als ¨Aquivalent zur Gewichtung von B¨ogen in klassischen Petrinetzen werden in gef¨arbten Petrinetzen Multisets [Jen92] von Marken zwischen Stellen und Transitionen transferiert;

Markierungen von Stellen werden ebenfalls in Form von Multisets dargestellt. Ein Multi-set basiert dabei auf einer Menge S, wobei sie jedes Element von S mehrfach enthalten kann.

Definition 6.2 Multiset (gem¨aß [Jen92])

Ein Multiset m ¨uber eine nicht-leere Menge S ist eine Funktion m∈[SN].

[S N] ist die Menge aller Funktionen1 von S in N. Die Anzahl des Vorkommens von Element s in Multiset m ist m(s)∈N. In der Regel wird m als Summe geschrieben:

m=X

s∈S

m(s)`s, dabei ist m(s)`s als

”m(s)-mal s“ zu lesen. {m(s)|s S} sind die Koeffizienten des Multisets m,m(s) ist dabei der Koeffizient vons. Ein Element s∈S geh¨ort genau dann zum Multiset m, wennm(s)6= 0, man schreibt folglich s∈m.

Addition und Subtraktion von Multisets m1, m2: m1±m2 =X

s∈S

(m1(s))±m2(s))`s Subtraktion ist nur dann m¨oglich, wenn m2 ≤m1.

Skalarmultiplikation, n∈N, m Multiset:n∗m=P

s∈S(n∗m(s))`s

Gr¨oße des Multisets: |m|=P

s∈Sm(s). Bei|m|= heißt m unendlich.

Vergleichsoperatoren: ≤,≥,=und 6=

Gleichheit: Zwei Multisets sind gleich, wenn alle ihre Koeffizienten gleich sind.

Ungleichheit: ∀s∈S:m1≤m2 und ∀s∈S:m1≥m2

Der Operator ++ definiert die Vereinigung (Union) von Multisets. Folglich ergibt der Ausdruck 2`token1+ +3`token2 mittoken1, token2 ∈S ein Multiset mit dreitoken2- und zwei token1-Elementen.

Abbildung 6.1 zeigt beispielhaft die Elemente eines gef¨arbten Petrinetzes. Kommentare sind in (* *)gefasst.

Abbildung 6.1: Elemente eines gef¨arbten Petrinetzes

Folgende Notation wird in der formalen Definition gef¨arbter Petrinetze verwendet [CHP93]:

Die Menge von Multisets ¨uber eine MengeT wird als TM S geschrieben.

1Die Notation m [S N] wird im aktuellen Kapitel gem¨aß [Jen92] ¨aquivalent zur Notation m:SNverwendet.

Der Typ einer Variable v wird als T ype(v) bezeichnet. Analog wird der Typ eines Ausdruckes exprals T ype(expr) geschrieben.

Die Menge aller in einem Ausdruck vorkommenden Variablen istV ar(expr).

Ein Ausdruck exprmitV ar(expr) = 0 heißt geschlossener Ausdruck.

Der Datentyp Boolean wird als B={true, f alse}geschrieben.

Definition 6.3 Gef¨arbtes Petrinetz (nach [Jen92]) Ein gef¨arbtes Petrinetz nach ist ein Tupel

CP N = (Σ, P, T, A, N, C, G, E, I) das die folgenden Anforderungen erf¨ullt:

1. Σ ist eine endliche Menge von Colour Sets.

2. P ist eine endliche Menge von Stellen.

3. T ist eine endliche Menge von Transitionen mit P∩T =∅.

4. A ist eine endliche Menge von B¨ogen mit P∩A=T∩A=∅.

5. N ist eine Knotenfunktion N : A→(P×T)(T ×P).

6. C ist eine Farbfunktion C : P Σ.

7. G ist eine W¨achterfunktion. Sie ist definiert von T in alle Ausdr¨ucke, so dass:

∀t∈T : [(T ype(G(t)) =B)(T ype(V ar(G(t)))Σ)]

8. E ist eine Funktion von Bogenausdr¨ucken. Sie ist definiert vonAin alle Ausdr¨ucke, so dass mit der zu N(a) geh¨origen Stellep(a):

∀a∈A: [(T ype(E(a)) =C(p(a))M S)(T ype(V ar(E(a)))Σ)]

9. I bezeichnet die Initialisierungsfunktion. Sie ist definiert vonP in alle geschlosse-nen Ausdr¨ucke, so dass:

∀p∈P : [T ype(I(p)) =C(p)M S]

In den Transitionen werden die in den Marken enthaltenen Daten verarbeitet und neue Ausgabemarken generiert. Die Farbtypen der Ausgabemarken sind dabei unabh¨angig von den Typen der Eingabemarken. Jede Transition besitzt einen Bezeichner und eine W¨achterfunktion (Guard Function, Guard), in welcher unter Verwendung aller Eingabe-marken der Transition zus¨atzliche Bedingungen f¨ur ihr Schalten definiert werden.

Abbildung 6.2(a) zeigt ein sehr einfaches gef¨arbtes Petrinetz. Die Stelle Input kann ein Multiset von INT-Marken (Ganzzahlen) beinhalten und ist konkret mit zwei Marken belegt. Die Transition Add ist aktiviert, wenn die Eingabestelle mindestens zwei To-ken enth¨alt (siehe Arc), deren Farben (INT-Werte) beide > 0 sind (siehe Guard). Die

Transition realisiert die Summenbildung aus i1und i2. Diese Summe wird als einzelnes Ausgabetoken in die Stelle Output ubertragen.¨

Bemerkung: Die Beschreibung der Datenverarbeitung in Transitionen kann sowohl im Code-Segment als auch in Form von Bogenausdr¨ucken auf den ausgehenden Arcs erfolgen.

Das Petrinetz aus Abb. 6.2(a) ist also bez¨uglich der Funktionalit¨at identisch mit dem aus Abb. 6.2(b).

(a) Mit Code-Segment

(b) Ohne Code-Segment

Abbildung 6.2: Beispiel: Addierer zweier positiver Zahlen