Welches sind die wesentlichen Besonderheiten?
|
|
-
A-Netze sind mehrdimensional strukturiert
- Wir
glauben, dass Menschen in Allerwelts-Situationen mehrdimensional
denken. Das heißt, sie betrachten abhängig vom Standpunkt und dem Fokus
unterschiedliche Abstraktionen von den verschiedenen Eigenschaften der
modellierten Objekte und der Prozesse. Zum Beispiel gibt es bei einem
Verkauf in einem Webshop unterschiedliche Perspektiven für die
Lagerhaltung, die Rechnungstellung, den Versand, die Kundenbeziehung
usw. Menschen wechseln unbewusst und mühelos zwischen diesen
Perspektiven und behalten dabei deren Abhängigkeiten untereinander im
Blick.
Genauso werden Perspektiven als neues Strukturelement
für das Programmieren mit A-Netzen verwendet und auch sehr komplexe
Vorgänge sind so übersichtlich zu implementieren. Jede Perspektive kann
getrennt bearbeitet und getestet werden. Die verschiedenen Perspektiven
werden auf intuitive Weise synchronisiert und das Gesamtsystem verhält
sich konsistent -
A-Netze sind hierarchisch strukturiert
- In
jeder Perspektive können Transitionen Unternetze enthalten um Details
zu kapseln. Das Verhalten außerhalb dieser verfeinerten Transitionen
wird dadurch nicht beeinflusst. Die Vorgänge in den anderen
Perspektiven können je nach Bedarf mit nur der äußeren Transition oder
mit Transitionen des Teilnetzes gekoppelt werden.
-
A-Netze verwenden Objekte
- Ähnlich
wie bei bekannten Weiterentwicklungen von Petri-Netzen sind die "Token"
in A-Netzen voll funktionsfähige Objekte. (In unserem Prototyp sind es
Java-Objekte.) Diese können interne Zustände ändern oder Seiteneffekte
bewirken und haben auf diese Anschluss zu allen traditionell
programmierten Anwendungen für Berechnungen, Benutzerschnittstellen,
Netzwerkaktionen, Sensoren, Aktoren etc.
Die einzelnen A-Netz-Token innerhalb einer Perspektive werden Aspekte
genannt um zu unterstreichen, dass sie nur einen Teil der Eigenschaften
und Methoden des aus mehreren Aspekten bestehenden modellierten
Gesamtobjekts darstellen.
Aspekte die zum selben Gesamtobjekt gehören werden Siblinks
genannt. Die Schreibweise bezieht sich darauf, dass sie miteinander
verlinkt sind und damit die Vorgänge in den Perspektiven
synchronisieren. In dem Webshop-Beispiel könnte es für einen Kunden je
einen Siblink in der Rechnungsperspektive, der Versandperspektive und
der Kundenbeziehungsperspektive geben, nicht aber in der
Lagerhaltungsperspektive. -
A-Netze modellieren Assoziationen
- Transitionen
mit dem gleichen Namen (Label) in verschiedenen Perspektiven
symboliesieren den gleichen Vorgang. Solche assozieierten Transitionen
schalten gleichzeitig. Die hierarchische innere Struktur dieser
Transitionen kann in einer Perspektive ganz einfach sein und in einer
anderen Perspektive sehr komplex. So kann in der Versandperspektive die
Transition "RechnungErstellen" unstrukturiert sein und die damit in der
Rechnungsperspektive assozierte komplexe Transition "RechnungErstellen"
übersichtlich steuern.
-
A-Netze lassen sich dynamisch ändern
- A-Netze
sehen vor, dass sie zur Laufzeit geändert werden. Dabei unterbrechen
lokale Änderungen nicht die Vielzahl der Unterprozesse des
Gesamtsystems, die damit nicht direkt in Verbindung stehen. Zum
Beispiel könnte dem ein weitere Standort für die Lagerhaltung
hinzugefügt werden, ohne dass das Shopsystem angehalten werden muss.
Die grafische Darstellung der Perspektiven hilft dabei, dass die
Änderungen keine unerwünschten Auswirkungen haben.
Es können für
Testzwecke (Debugging) oder für geforderte Complience oder andere
Restraints spezielle Perspektiven zur Laufzeit hinzugefügt werden, ohne
das produktiv geschaltete System ungewollt zu behindern. (Das ist mit unserem Prototyp getestet worden.)
-
A-Netze kommunizieren miteinander
- Man
kann A-Netze mit anderen Netzen zu sehr großen Strukturen verbinden,
indem man Siblinks zwischen bisher getrennt vorhandenen (und laufenden)
Netzen erzeugt. Dieser Link ähnelt einem Weblink und das verknüpfte
Netz kann sich auf irgend einem anderen Rechner befinden. Damit lassen
sich Prozesse genauso universell weltweit vernetzen wie Dokumente mit
dem HTTP-Protokoll.
Der Datenfluss zwischen den verteilten
Teilnetzen kann gut kontrolliert und sehr gering gehalten werden.
Siblinks können dadurch keine vertraulichen Details aus ihrer
Perspektive weitergeben. - (Dies ist im Prototyp noch nicht implementiert.)
-
A-Netze sind Subjekt-orientiert
- Anders
als bei herkömmlichen Implementierungen von Petri-Netzen wird bei
A-Netzen die Schaltmenge nicht aus der Sicht der Perspektive gesteuert,
sondern von den Aspekten. Damit werden zwar bekannte Analysewerkzeuge
für Petrinetze nicht mehr anwendbar, aber dies ermöglicht auf einfache
Weise die verteilte nebenläufige Ausführung. Es kommt dabei zu einer
automatischen Lastverteilung.)
(Das haben wir durch Simulieren von mehreren Prozessoren getestet.) -
A-Netze vermeiden Konflikte
- A-Netze
garantieren nicht, dass bei Vorliegen der Voraussetzng eine bestimmte -
oder gar eine optimierte - Schaltfolge ausgeführt wird. Stattdessen
gibt es eine schwächere Garantie: Wenn es mögliche Schaltvorgänge gibt,
wird eine davon ausgeführt. Die Prüfung geht von den Aspekten aus.
Jeder Aspekt kann Prüfen, ob es Transitionen gibt, mit denen er eine
Schaltmenge mit anderen Aspekten und Siblinks zum Schalten findet. Die
Reihenfolge, in der diese Prüfung stattfindet wird durch Prioritäten
gesteuert. Nur wenn ein anderer paralleler Prozess die gleichen Aspekte
verwendet wird mit einem Timestamp entschieden, welcher Prozess zum
Zuge kommt. Diese Konflikte sind selten und widersprechen nicht der
oben genannten Garantie.
(Das wurde im Prototyp getestet.) -
A-Netze sind persistent
- Alle
A-Netz-Strukturen (Perspektiven, Transitionen, Stellen, Kanten,
Aspekte) können in einer bzw. mehreren Datenbanken gehalten werden. Ein
Schaltvorgang kann dann als atomare Transaktion auf die Datenbank
abgebildet werden. Das bedeutet, dass die Vorteile einer Datenbank
bezüglich Ausfallsicherheit auf die A-Netze übertragen werden können.
(Im
Prototyp wurde das noch nicht realisiert, sondern die Netze als
serialized object gespeichert. Vermutlich sind die heute verfügbaren
Graph-Datenbanken besonders geeignet.)
A-Netze sind einfach
- Obwohl
A-Netze sehr komplexe Aufgaben lösen können, ist die grafische
Darstellung auch von Nicht-Experten sofort zu verstehen. Auch und
besonders das Aufteilen auf Perspektiven scheint der intuitiven
Vorstellung zu entsprechen.
Diese Erwartung hat sich bei unseren Vorträgen bestätigt.
|