Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
6.4. KONTROLLFLUSS IN FUNKTIONALEN DATENNETZEN 119<br />
Eine Alternative dazu, <strong>die</strong> ohne <strong>die</strong> genaue Kenntnis der zu aktualisierenden Sequenzen auskommt,<br />
kann mit Hilfe einer modulweiten Liste ermöglicht werden, in <strong>die</strong> <strong>die</strong> Objekt bestimmte<br />
ihrer Aktionen wie z.B. den Aufruf der ÐÐ -Methode eines Funktors eintragen, sobald <strong>die</strong>se<br />
im Zyklus zum ersten Mal durchgeführt wird. Für Aktionen, <strong>die</strong> erfolgreich abgeschlossen<br />
wurden, löscht das Objekt den entsprechenden Eintrag wieder aus der Liste. Einträge, <strong>die</strong> bis<br />
zum Ende des Zyklus nicht aus der Liste gelöscht wurden, zeigen direkt <strong>die</strong> Unerreichbarkeit<br />
von <strong>Daten</strong> oder Funktoren an.<br />
Testzyklen mit überwachendem Agenten: Lokale <strong>und</strong> <strong>die</strong> zuletzt genannten agentenbasierten<br />
Verfahren scheitern, wenn ein Konflikt zu einer Verklemmung führt, da in <strong>die</strong>sem Fall<br />
der Zyklus zu keinem Ende kommt. Besteht <strong>die</strong>se Gefahr, was insbesondere bei asynchronen<br />
Steuerungsmechanismen der Fall ist, sollte nach jeder Änderung des Netzdesigns ein spezieller<br />
Analysezyklus durchlaufen werden, der von einem Agenten angestoßen <strong>und</strong> anschließend<br />
ausgewertet werden kann. Hierbei können alle <strong>Daten</strong>- <strong>und</strong> Funktionsobjekte ihre jeweiligen<br />
Aktionen in eine Liste eintragen. Darüber hinaus besteht <strong>die</strong> Möglichkeit, daß Funktoren ihre<br />
Ó -Methode überspringen, wodurch <strong>die</strong> Laufzeit eines Testlaufs allein durch <strong>die</strong> Verwaltungsoperationen<br />
bestimmt wird <strong>und</strong> damit sehr kurz <strong>und</strong> gut abschätzbar ist. Nach Beendigung des<br />
Zyklus oder nach einer festen Zeitspanne analysiert der Agent <strong>die</strong> Liste, wodurch leicht festzustellen<br />
ist, ob alle Funktoren aufgerufen <strong>und</strong> auch wieder ordnungsgemäß beendet wurden.<br />
Auf <strong>die</strong> Aktionsliste <strong>und</strong> <strong>die</strong> anschließende agentenbasierte Auswertung des Analysezyklus<br />
kann verzichtet werden, wenn der gesamte Testzyklus in einem ungeteilten Kontrollfluß<br />
ausgeführt wird. Wie <strong>die</strong> folgenden Abschnitte zeigen werden, läßt sich in <strong>die</strong>sem Fall jede<br />
potentielle Verklemmung lokal erkennen.<br />
Voraussetzung <strong>für</strong> <strong>die</strong>se Verfahren ist zum einen <strong>die</strong> Mitwirkung der Funktoren <strong>und</strong> <strong>Daten</strong>sequenzen,<br />
<strong>die</strong> den <strong>Daten</strong>flußgraphen bilden, zum anderen ein Objekt, das in der Lage ist,<br />
<strong>die</strong> während eines regulären oder Testzyklus angesammelten Informationen auszuwerten. Beides<br />
ist, da als dynamische Elemente des Graphen nur <strong>Daten</strong>sequenzen <strong>und</strong> Funktoren in Frage<br />
kommen, mit relativ geringem Aufwand möglich, <strong>und</strong> soll daher — wenn lokale Verfahren nicht<br />
greifen — als Lösung präferiert werden.<br />
Das Potential möglicher Konflikte hängt nicht nur vom Netzdesign sondern auch wesentlich<br />
von der Art der Programm- bzw. Modulsteuerung ab. So führen mehrere, parallel arbeitende<br />
Kontrollflüsse, <strong>die</strong> sich asynchron im Netz ausbreiten, leichter zu Konflikten, <strong>die</strong> dazu schwerer<br />
zu erkennen sind, als eine Steuerung, <strong>die</strong> synchron in nur einem Kontrollfluß erfolgt. Dieser<br />
Punkt wird in den folgenden Abschnitten im Rahmen der Verwendung asynchroner Relationen<br />
genauer untersucht werden.<br />
Neben der Beschreibung <strong>und</strong> einem Vergleich der Ablaufmechanismen <strong>und</strong> Kontrollflüsse<br />
unter den verschiedenen Steuerungskonzepten sollen in den folgenden Abschnitten weitere<br />
Designentscheidungen <strong>für</strong> den objektorientierten Entwurf der beteiligten <strong>Daten</strong>- <strong>und</strong> Funktionsobjekte<br />
<strong>und</strong> deren Realisierung in Software abgeleitet werden.<br />
6.4.6 Asynchrone Steuerungskonzepte<br />
Eine Stärke funktionaler Programmbeschreibungen ist, daß sie auf natürliche Art <strong>und</strong> Weise<br />
<strong>die</strong> potentiellen Nebenläufigkeiten der durch sie repräsentierten Aufgaben ausdrücken können.<br />
Damit <strong>die</strong>ser Vorteil bei der Realisierung des funktionalen <strong>Daten</strong>flußgraphen in einem Compu-