Aufrufe
vor 5 Jahren

8 Werkzeuge f¨ur Rapid Prototyping mit verteilten Soft - tuprints

8 Werkzeuge f¨ur Rapid Prototyping mit verteilten Soft - tuprints

Aufbauend auf der in

Aufbauend auf der in Kapitel 5 spezifizierten Software-Infrastruktur wurden in Kapitel 6 Basistopologien zur Realisierung von Ambient-Intelligence-Szenarios definiert und Konfliktlösungsstrategien auf den unterschiedlichen Kanälen spezifiziert. Werden auf Basis dieser Konfliktlösungsstrategien 103 Komponentenensembles gebildet, so kann der Entwickler von Komponenten unter Verwendung der in Abbildung 45 spezifizierten API- Schnittstelle eigene Transducer implementieren. Dies geschieht wie in den Beispielen aus Kapitel 5.1.5 und in den Anwendungen aus Kapitel 7 und Kapitel 8 beschrieben. Mittels der Programmzeilen 1: static Channel channelObject = null; 2: channelObject = new Channel(Kanalname, IN/OUT, Strategie); implementiert ein Komponentenentwickler ein Kanalobjekt in seiner eigenen Komponente und weist dem Kanal den in der Komponententopologie vereinbarten Namen und die vereinbarte Kanalstrategie zu. Als schon fest implementierte Kanalstrategien stehen hier die in Kapitel 6.2.1 spezifizierte Strategie zur Behandlung von Ereignissen (plus den Alternativstrategien all, random und fastest) und die in Kapitel 6.2.2 spezifizierte Strategie zur Auswahl unter konkurrierenden Komponenten zur Verfügung 104 . Soll der jetzt entstandene Transducer von dem Kanal Ereignisse lesen können, so wählt der Entwickler die Richtung ” IN“ und definiert für das entstandene Kanalobjekt ein SodaPopHandler- Objekt mittels der folgenden Programmzeile: 3: channelObject.subscribe(new EventHandler(this)); Für die Richtung ” OUT“, d.h. der Transducer soll in der Lage sein, Ereignisse zu erzeugen und Remote Procedure Calls zu verarbeiten, wird entsprechend ein RPCHandler definiert. 3: channelObject.subscribe(new RPCHandler(this)); Im Anschluss an die Zuweisung der jeweiligen SodaPopHandler-Objekte an die Kanalobjekte müssen noch die Methoden für die Evaluierung der UtilityValue-Funktionen und der Behandlung von Remote Procedure Calls bzw. der Behandlung von Ereignissen und Antworten auf eigenen Remote Procedure Calls implementiert werden. Die Rückgabewerte der UtilityValue-Funktionen müssen dabei in Übereinstimmung mit den für die jeweilige Konfliktlösungsstrategie definierten Absprachen realisiert werden. Der Entwickler von verteilten Komponenten- und Geräteensembles verfügt somit über eine Software- Infrastruktur mit integrierten Strategien zum Aufbau von Ambient-Intelligence-Anwendungen. Die in dieser Arbeit realisierte Software-Infrastruktur kann also als leicht nutzbar im Sinne von Grimm [91] bezeichnet werden. 103 Hier soll klar betont werden, dass die Konfliktlösungsstrategien topologie-unabhängig sind und in jeder anderen Komponententopologie in der in Kapitel 6.2.1 und Kapitel 6.2.2 beschriebenen Verwendung angewendet werden können. 104 Tatsächlich müssen sich die Entwickler einer Applikation die aus einem dynamischen Komponentenbzw. Geräteensemble besteht nur auf die verwendete Komponententopologie und die auf den entsprechenden Kanälen zu verwendenden Konfliktlösungsstrategien einigen. 251

a) DYNAMITE-Wohnzimmer . . . b) Interessante Fachgespräche . . . c) Verteilte Demonstratoren . . . d) und Anwendungen. Abbildung 128: Das Projekt DYNAMITE auf der Mensch-Technik-Interaktion- Ausstellung des Bundesministeriums für Bildung und Forschung (BMB+F) vom 9. – 15. März 2006 in Hannover. Aber zur Benutzbarkeit einer solchen Software-Infrastruktur gehört nicht nur die Möglichkeit darauf basierend Komponenten zu realisieren, sondern auch die Software-Infrastruktur für eigene Zwecke zu erweitern und eigene Konfliktlösungsstrategien zu implementieren. Hierzu bieten die Klassen ChannelEventHandler und ChannelRPCHandler (vgl. Abbildung 44) die Methode applyConflictResolutionStrategy() an, in der eigene Algorithmen zur Konfliktlösung auf Basis der evaluierten UtilityValue-Funktionen der am Kanal konnektierten Komponenten implementiert werden können. Elting (vgl. Kapitel 7.2.4 und Elting und Hellenschmidt [58] und Elting [59]) implementierte auf Basis der in dieser Arbeit spezifizierten Software-Infrastruktur eine Konfliktlösungsstrategie, die amodale Information unter Berücksichtigung der Fähigkeiten vorhandener multimodaler Ausgabekomponenten in Teilaufgaben zerteilt und diese den einzelnen modalen Komponenten zur Bearbeitung zuweist. Amodale Information kann somit zeitgleich von einer graphischen Benutzeroberfläche, von einer Sprachausgabe und von einem virtuellen Charakter dem Benutzer mitgeteilt werden (siehe Abbildung 101). In einer späteren Anwendung unter Verwendung dieser Konfliktlösungsstrategie werden zudem mehrere heteroge- 252

eine infrastruktur f ¨ur das management von verteilten ... - DVS