16.08.2013 Aufrufe

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

7.6. AGENTEN ALS AKTIVE KOMPONENTEN IN DYNAMISCHEN SENSORDATENSYSTEMEN 187<br />

wieder aus ihnen entfernt werden. Insbesondere mit der Funktorliste steht damit ein mächtiger<br />

Mechanismus bereit, dem agentengesteuerten System beliebige Funktionalitäten hinzuzufügen<br />

<strong>und</strong> <strong>die</strong>se frei zu konfigurieren.<br />

Für Agenten werden verschiedene Arbeitsmodi definiert. So können sie inaktiv (noch nicht<br />

gestartet bzw. beendet) — oder aktiv sein, letzteres bedeutet im Regelfall, daß sie kontinuierlich<br />

arbeiten. Im kontinuierlichen Arbeitsmodus wird ein festes Aufrufschema zyklisch abgearbeitet.<br />

Dieser Agentenzyklus läßt sich sowohl durch innere als auch durch äußere Methodenaufrufe<br />

unterbrechen oder beenden. Ein schlafender oder deaktivierter Agent kann durch andere Komponenten<br />

<strong>und</strong> externe Ereignisse geweckt werden. Der Einzelschrittmodus erlaubt schließlich,<br />

jeden einzelnen Zyklus explizit von außen anzustoßen.<br />

Für <strong>die</strong> assoziierten Sequenzen <strong>und</strong> Funktoren lassen sich verschiedene Attribute angeben.<br />

Diese legen <strong>für</strong> jede Agent-Objekt-Relation fest, ob sie aktiv ist <strong>und</strong> ob sie synchron oder asynchron<br />

bearbeitet werden soll. Darüber hinaus erlauben sie <strong>die</strong> Verwaltung zweier Funktionen —<br />

eine <strong>die</strong> vor dem assozierten Objekt, <strong>und</strong> eine, <strong>die</strong> danach aufzurufen ist. Die Rückgabewerte<br />

<strong>die</strong>ser Funktionen beeinflussen den weiteren Zyklusverlauf.<br />

Die Flexibilität des Agentenansatzes ergibt sich somit vor allem aus den vielfältigen Möglichkeiten,<br />

das Arbeitsschema des Agentenzyklus mit verschiedenen Verfahren auszufüllen:<br />

Neben dem Hinzufügen neuer Funktoren können <strong>die</strong> in der ËÕÙÒ ÒØ-Klasse definierten<br />

Methoden mit eigenen Funktionen oder Objekten assoziiert oder in abgeleiteten Agentenklassen<br />

überschrieben <strong>und</strong> so an <strong>die</strong> eigenen Bedürfnisse angepaßt werden.<br />

Attribute <strong>und</strong> Objektreferenzen<br />

Wie Sequenzen <strong>und</strong> Funktoren besitzt jeder Agent einen Namen ÒÑ, der bei dessen Erzeugung<br />

festgelegt wird, <strong>und</strong> über den er eindeutig identifiziert werden kann. Die Maximalzahl<br />

gleichzeitig aktiver Agentenzyklen wird durch Ý ÐÔØ bestimmt, d.h. in einem Sequenzagenten<br />

können auch mehrere Zyklen parallel bearbeitet werden. Der aktuelle Zustand wird<br />

wie in den Sequenz- <strong>und</strong> Funktorklassen durch <strong>die</strong> aktuelle bzw. letzte Zykluszeit Ø , den Index<br />

Á <strong>und</strong> <strong>die</strong> laufenden Aktionen Å gekennzeichnet, wo<strong>für</strong> <strong>die</strong> Attribute ÓÑÔÐÝ ÐÆÙÑ,<br />

ÙÖÖÒØÝ ÐÁÜ, ÓÑÔÐÝ ÐÌÑ, ÙÖÖÒØÝ ÐÌÑ <strong>und</strong> ØÚÝ ÐÆÙÑ zur Verfügung stehen.<br />

Der Bearbeitungsstand wird — analog zu Funktoren — in einer <strong>für</strong> jeden Zyklus exklusiven<br />

Aufrufinstanz Ý ÐÄ×Ø ÒØÝ Ð℄ verwaltet. Um eine Auswertung des Zeitverhaltens<br />

der Bearbeitungszyklen zu ermöglichen, werden in <strong>die</strong> ÒØÝ Ð-Instanzen charakteristische<br />

Zykluszeiten eingetragen: der Zyklusbeginn — Ý ÐËØÖØÌÑ, Start der Sequenzaktualisierungen<br />

— ×ÕÙËØÖØÌÑ, Beginn der Funktoraufrufe — ÙÒ ËØÖØÌÑ, Ende der Funktoraufrufe<br />

— Ý ÐÈÓ×ØÌÑ <strong>und</strong> das Zyklusende — Ý ÐÒÌÑ. Der aktuelle Aktionsstatus wird in<br />

ØÓÒËØØ ØÓÒËØØ repräsentiert. Aus den Zeiten lassen sich minimale, maximale <strong>und</strong><br />

mittlere Bearbeitungszeiten ableiten <strong>und</strong> im Agenten verwalten.<br />

Agenten durchlaufen nicht nur <strong>die</strong> sich aus ihrer Aktionsabfolgen ergebenden Objekt- <strong>und</strong><br />

Aktionszustände, sondern sie können auch auf einer gr<strong>und</strong>legenderen Ebene unterschiedliche<br />

Arbeitsmodi annehmen: aktiv, schlafend, deaktiviert <strong>und</strong> terminiert. Den aktuellen Modus zeigt<br />

ÒØÅÓ an. Ein Moduswechsel kann sofort oder verzögert zum Zyklusende erfolgen. Im<br />

verzögerten Fall zeigt ÒÜØÒØÅÓ den neuen Zustand an, in den am Ende des laufenden<br />

Zyklus gewechselt werden soll.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!