# Netze in Netzen (Petrinetze)

Netze in Netzen sind ein Modellierungsansatz aus der Petri-Netz-Familie.
Von anderen Arten von Petrinetzen heben sie sich durch die Möglichkeit ab, Marken mit einer inneren Struktur zu versehen, die ihrerseits wieder auf Petrinetzbasis funktioniert. Ein Netz kann also weitere Netzexemplare enthalten, die in ihm umherbewegt werden und dabei selbst schalten können.

## Motivation

Netze in Netzen eignen sich zur Modellierung verteilter Systeme mit besonderem Augenmerk auf Aspekte der
* Hierarchie,
* Mobilität und
* Kapselung
Bei vielen Entwicklungen wurde absichtlich ein starker Bezug zur Objektorientierung gesucht, um die Fähigkeit der Petrinetze, nebenläufige Verarbeitung zu modellieren, zu verbinden mit dem Modellieren mit Objekten, die erzeugt werden können und interagieren.

## Geschichte

Ausgehend von Anforderungen aus der Praxis sind seit Mitte der 90er Jahre verschiedene Formalismen entwickelt worden, auf die die Beschreibung "Netze in Netzen" passt. Lomazova und Schnoebelen listen in dem genannten Artikel einige auf, die allgemein bekannt sind: Sibertin-Blanc, Lakos, Moldt und Wienberg als auf Gefärbte Petrinetze aufbauend, daneben die Objektnetze von Valk.
Die früheste Verwendung hierarchischer Netzmodelle findet sich bei Valk und Jessen, wo Valk in einem Beitrag die sogenannten "Task/Flow Nets" einführte, um Auftragssysteme kompakt modellieren zu können. In diesen Modellen laufen Aufträge als Marken durch ein Netz, das ihre Abarbeitung modelliert; zugleich haben die einzelnen Aufträge jeweils einen inneren Status, der ihre Geschichte speichert und anzeigt, inwieweit sie schon abgearbeitet wurden.

## Semantiken

Die hauptsächliche Unterscheidung in der Interpretation findet bei der Behandlung der Marken statt. Sind Marken lediglich Referenzen auf Netzexemplare, die in einem gegebenen globalen Zustand nebeneinander existieren, so handelt es sich um eine Referenzsemantik, sind Marken dagegen selbst als Netze zu interpretieren, so liegt eine Wertesemantik vor. Diese unterscheiden sich in der Behandlung von gleichartigen Marken: Netzmarken in der Wertsemantik existieren unabhängig voneinander und haben jeweils eigene Zustände.
Ein Problem ergibt sich noch nicht unbedingt beim Kopieren, spätestens aber beim Zusammenführen verschiedener Exemplare "desselben" Netzes. Bisweilen ist hier eine dritte Art von Semantik, die in dem Artikel vorgeschlagen worden ist, sinnvoll. Bei dieser Abart der Wertsemantik werden die Ablaufgeschichten der Exemplare zur kleinsten Ablaufgeschichte zusammengeführt, die beide beinhaltet.
Auch sind Mischformen möglich und mitunter modellierungstechnisch relevant.

## Kommunikation

Ohne Kommunikation zwischen den Netzexemplaren lässt sich recht wenig modellieren; wie in der objektorientierten Programmierung bieten die Formalismen daher in der Regel eine Kommunikation der Objekte (Netzexemplare) über vorher festgelegte Schnittstellen an, die allerdings dynamisch gebunden werden.
Abbildung 1 zeigt ein Beispiel für ein Netz, das ein anderes Netz enthält. Dieses Beispiel ist so einfach gestaltet, dass Wert- und Referenzsemantik zusammenfallen. Das innere Netz ist beweglich und kann als Marke von Ort "a" zu Ort "b" geschaltet werden; die Kanalanschriften wirken hier wie Methodenaufrufe und sorgen dafür, dass sich dieser äußere Zustand nach dem synchronisierten Schalten der "aufrufenden" und der "aufgerufenen" Transition im inneren Netz widerspiegelt. Das "x" an den Kanten ist eine Variable, die beim Schalten einer Transition des äußeren Netzes an die Netzmarke gebunden wird.

## Algorithmen und eingeschränkte Formalismen

Klassische Petrinetz-Eigenschaften wie Erreichbarkeit, Beschränktheit und Lebendigkeit sind nur teilweise entscheidbar. Die Arbeit von Köhler-Bußmeier gibt einen Überblick über Entscheidbarkeitsfragen bei elementaren Objekt-Netzen. Um die Komplexität zu reduzieren, wurden Unterklassen definiert, indem die Struktur der unterliegenden Petrinetze eingeschränkt wurde, wie zum Beispiel als Zustands-Maschine. Solche Einschränkungen erlauben immer noch die komplexe Modellierung von z. B. mobilen Systemen, haben aber polynomielle Komplexität beim Model Checking.

## Werkzeuge

* CO-OPN https://smv.unige.ch//research-projects/co-opn basiert auf Algebraischen Höheren Netzen
* RENEW http://www.renew.de ist eine freie Entwicklungsumgebung für Referenznetze mit Java-Integration