-
Die
Erfindung betrifft ein Verfahren zur dynamischen Dienstekonfiguration
eines technischen Systems, welches eine Vielzahl von Diensten mit
jeweils einer oder mehreren Schnittstellen umfasst, wobei zwei Dienste
in dem technischen System dann kompatibel sind, wenn eine direkte
Interaktion des einen Dienstes mit dem anderen Dienst über kompatible
Schnittstellen der Dienste durchführbar ist.
-
Heutzutage
werden viele technische Lösungen,
z. B. im Bereich der Heim- und/oder Gebäude-Automation, nicht durch
ein einzelnes technisches Gerät,
sondern durch eine Vielzahl von unterschiedlichen technischen Geräten gelöst, welche sehr
genau spezifizierte Aufgaben erfüllen.
Die Geräte
stellen hierbei einen oder mehrere sogenannte Dienste bereit, welche
bestimmte technische Aufgaben ausführen können. Unter Dienst wird deshalb hier
und im folgenden eine Einheit eines technischen Geräts verstanden,
welches für
die Durchführung
einer bestimmten technischen Aufgabe vorgesehen ist.
-
Zur Überwachung
und Steuerung von technischen Systemen mit einer Vielzahl von Diensten
bzw. zur Nutzung der Funktionen dieser Systeme ist es oft notwendig,
dass sich ein externes technisches Gerät mit dem vorhandenen technischen
System verbindet. Bei einer derartigen Verbindung müssen insbesondere
die Verfügbarkeiten
der einzelnen Ressourcen der Geräte
im technischen System berücksichtigt
werden. Solche Ressourcen sind beispielsweise durch das System vorgegebene
Bandbreiten zur Datenübertragung
oder die Rechen- bzw. Speicherkapazität von Informationen im System.
-
Aus
dem Stand der Technik sind sogenannte Discovery-Techniken bekannt,
mit denen ein neues, in einem technischen System zu integrierendes
Gerät automatisiert
die einzelnen Dienste des technischen Systems auffindet, beispielsweise über UPnP (=
Universal Plug and Play) oder über
Bluetooth. Hierbei werden zwar Informationen über die im System vorhandenen
Geräte
bereit gestellt, jedoch kann anhand dieser Informationen nicht ermittelt
werden, wie eine ressourceneffiziente Nutzung der einzelnen Geräte möglich ist.
-
Aus
dem Stand der Technik sind ferner funktionale Beschreibungssprachen
bekannt, mit denen die Funktionalitäten einzelner Dienste in einem
Netz von Diensten beschrieben werden und gemäß den Funktionalitäten geeignete
funktionale Pfade zwischen den Diensten festgelegt werden. Bei den
bekannten funktionalen Beschreibungssprachen sind die verwendeten
Dienste jedoch vorab festgelegt und es können keine Dienste dynamisch
eingebunden werden.
-
Aufgabe
der Erfindung ist es deshalb, ein Verfahren und entsprechende Vorrichtungen
zu schaffen, mit denen neue Dienste in einem technischen System
dynamisch integriert werden können.
-
Diese
Aufgabe wird durch die unabhängigen Patentansprüche gelöst. Weiterbildungen
der Erfindung sind in den abhängigen
Ansprüchen
definiert.
-
In
dem erfindungsgemäßen Verfahren
wird eine funktionale Beschreibungssprache verwendet, wobei ggf.
eine bereits aus dem Stand der Technik bekannte Beschreibungssprache
eingesetzt werden kann. Mit Hilfe der Beschreibungssprache, welche eine
Vielzahl von Funktionselementen umfasst, werden die vorhandenen
und im System zu integrierenden Dienste und mögliche Interaktionen zwischen den
Diensten durch ein oder mehrere Funktionselemente beschrieben. Das
Funktionselement gibt hierbei eine Funktionalität des entsprechenden Dienstes oder
der Interaktion wieder. Es können
hierbei einem Dienst auch mehrere Funktionselemente zugeordnet sein,
sofern der Dienst mehrere Funktionen übernehmen kann. Ebenso können einer
Interaktion mehrere Funktionselemente zugeordnet sein, sofern sich
mit der Interaktion verschiedene Funktionen bewerkstelligen lassen.
-
Mit
dem erfindungsgemäßen Verfahren
werden folgende Schritte durchgeführt:
-
Schritt a):
-
Für eine in
dem technischen System durchzuführende
Interaktionsaufgabe zwischen einem oder mehreren neuen, im technischen
System zu integrierenden Anfangsdiensten und einem oder mehreren
Enddiensten des technischen Systems wird eine funktionale Aufgabenbeschreibung
in der funktionalen Beschreibungssprache direkt eingegeben oder über eine
Schnittstelle, welche beispielsweise mit einem Benutzer kommuniziert,
erzeugt. Durch die funktionale Aufgabenbeschreibung werden den Anfangs-
und Enddiensten und deren Interaktionen entsprechende Funktionselemente
vorgegeben. Die Begriffe Anfangs- bzw. Enddienst sind allgemein
zu verstehen und können
für jeden
beliebigen, zu integrierenden bzw. bereits vorhandenen technischen
Dienst im technischen System stehen. Durch die Wortwahl "Anfang" bzw. "Ende" soll lediglich zum
Ausdruck gebracht werden, dass im erfindungsgemäßen Verfahren nach einer Anfang-zu-Ende-Beziehung
zwischen zwei technischen Diensten gesucht wird.
-
Schritt b):
-
Anhand
der funktionalen Aufgabenbeschreibung und der den Diensten und Interaktionen
zugeordneten Funktionselemente werden Kombinationen aus Anfangs-
und Enddienst ermittelt, welche die in dem technischen System durchzuführende Interaktionsaufgabe
lösen.
-
Schritt c):
-
Falls
in Schritt b) Kombinationen aus Anfangs- und Enddienst gefunden
wurden, wird für
wenigstens einen Teil der Anfangs dienste der Kombinationen eine
Suche nach kompatiblen Diensten durchgeführt, bei welcher der Anfangsdienst
nach zu ihm kompatiblen Diensten sucht und die kompatiblen Dienste
wiederum nach zu ihnen kompatiblen Diensten suchen, wodurch Pfade
von aufeinanderfolgenden kompatiblen Diensten erzeugt werden, wobei
ein Pfad als Lösungspfad
der Interaktionsaufgabe bestimmt wird, wenn der Anfangsdienst des
Pfades und der gefundene kompatible Enddienst einer in Schritt b)
aufgefundenen Kombination aus Anfangs- und Enddienst entspricht.
Auf diese Weise werden eine Vielzahl von möglichen Lösungspfaden für die gestellte
Aufgabe erzeugt.
-
Schritt d):
-
Falls
im Schritt c) Lösungspfade
gefunden wurden, wird einer der Lösungspfade ausgewählt und
die Interaktionsaufgabe entlang des ausgewählten Lösungspfades durchgeführt.
-
Durch
das erfindungsgemäße Verfahren
wird somit nicht nur eine Lösung
des Problems durch direkte Interaktion zwischen zwei Diensten gefunden, sondern
es werden auch Lösungen
ermittelt, die das Problem durch Zwischenschaltung von mehreren Diensten
lösen.
Es kann dann nach vorbestimmten Kriterien, insbesondere nach der
Verfügbarkeit
der Ressourcen der einzelnen Dienste, ein geeigneter Lösungspfad
für das
Problem verwendet werden.
-
In
einer Variante des erfindungsgemäßen Verfahrens
wird vor der Durchführung
des Schritts c) in einem Zwischenschritt überprüft, ob die im Schritt b) ermittelten
Kombinationen aus Anfangs- und Enddienst miteinander kompatible
Dienste umfassen. Sollte dies der Fall sein, werden diese Kombinationen
von miteinander kompatiblen Diensten vorab jeweils als ein Lösungspfad
definiert, der bei der späteren
Auswahl von geeigneten Lösungspfaden
berücksichtigt
werden kann. Ggf. kann sofort die Auswahl gemäß Schritt d) durchgeführt werden,
ohne dass noch nach weiteren möglichen
Lösungspfaden
gesucht wird.
-
In
einer besonders bevorzugten Variante des erfindungsgemäßen Verfahrens
ermitteln die neuen, im technischen System zu integrierenden Anfangsdienste
mit Hilfe eines Suchverfahrens die bereits im technischen System
vorhandenen Dienste. Es werden hierbei aus dem Stand der Technik
bekannte Suchverfahren, wie z. B. UPnP oder Bluetooth, verwendet.
-
Vorzugsweise
sind die im technischen System vorhandenen Dienste und die diesen
Diensten zugeordneten Funktionselemente in einem Speicher hinterlegt,
und die Suche gemäß Schritt
c) wird in dem Speicher durchgeführt.
Hierdurch kann die Suche nach Lösungspfaden
beschleunigt werden, da nicht mehr das gesamte technische System
nach vorhandenen Diensten durchsucht werden muss.
-
In
einer weiteren Variante des erfindungsgemäßen Verfahrens wird die Suche
nach Lösungspfaden
in Schritt c) so lange durchgeführt,
bis eine vorbestimmte Anzahl von Lösungspfaden gefunden wurde
oder bis wenigstens ein Abbruchkriterium erfüllt ist. Hierdurch wird die
Komplexität
der Suche auf ein vorbestimmtes Maß begrenzt. Das Abbruchkriterium
ist hierbei vorzugsweise ein Timeout, d. h. ein vorbestimmtes maximales
Zeitintervall, das für
die Suche festgelegt ist. Das Timeout kann vorzugsweise dynamisch
verändert
werden.
-
Zur
Durchführung
der in Schritt c) definierten Suche werden in einer Variante des
erfindungsgemäßen Verfahrens
Nachrichten zwischen den Diensten versendet, welche den Anfangsdienst
des Pfades und ein oder mehrere gemäß der funktionalen Aufgabenbeschreibung
vorgegebene Funktionselemente des Enddienstes enthalten. Vorzugsweise
wird hierbei einer Nachricht die Identität des Dienstes, der die Nachricht
erhält,
hinzugefügt,
sofern diesem Dienst nicht ein gemäß der funktionalen Aufgabenbeschreibung
vorgegebenes Funktionselement zugeordnet ist. Die so erzeugte Nachricht
wird anschließend
wiederum an kompatible Dienste weitergeleitet. Sollte jedoch dem
Dienst, der die Nachricht erhält,
ein gemäß der funktionalen
Aufgabenbe schreibung vorgegebenes Funktionselement zugeordnet sein,
meldet dieser Dienst seine Identität an den Anfangsdienst zurück. Hierdurch
werden die möglichen
Lösungspfade dem
Anfangsdienst bekannt gemacht.
-
In
einer besonders bevorzugten Variante des erfindungsgemäßen Verfahrens
werden bei der Suche in Schritt c) und/oder bei der Auswahl in Schritt d)
vorgegebene Beschränkungen,
insbesondere hinsichtlich der physikalischen Ressourcen der Dienste, berücksichtigt.
Die Beschränkungen
können
hierbei globale, im gesamten technischen System gültige Beschränkungen
umfassen, welche insbesondere erwünschte Eigenschaften der in
dem technischen System durchzuführenden
Interaktionsaufgabe beschreiben. Die Beschränkungen können jedoch auch lokale, nur
in einer Gruppe von Diensten gültige
Beschränkungen
umfassen, welche insbesondere die Verfügbarkeit der physikalischen
Ressourcen in der Gruppe von Diensten betreffen. Durch die Berücksichtigung
derartiger Beschränkungen
können
die Lösungspfade
dynamisch unter Berücksichtigung des
momentanen Zustands des technischen Systems aufgefunden werden.
Auf diese Weise wird automatisiert die Einbindung eines neuen Gerätes in Abhängigkeit
von den verfügbaren
Ressourcen des technischen Systems ermöglicht.
-
Das
erfindungsgemäße Verfahren
wird vorzugsweise in einem technischen System durchgeführt, das
ein Netzwerk aus einer Vielzahl von technischen Geräten umfasst,
wobei in jedem Gerät
ein oder mehrere Dienste des technischen Systems beinhaltet sind.
Insbesondere sind hierbei die im technischen System zu integrierenden
Anfangsdienste in einem einzelnen, in dem technischen System zu
integrierenden Gerät,
insbesondere in einem mobilen Gerät, wie z. B. einem Mobilfunkgerät, einem
Laptop oder einem PDA, beinhaltet. Das Netzwerk kann beispielsweise
ein Heim- und/oder Gebäude-Automations-System
umfassen, welches Benutzern ermöglicht,
sich von außen
in das System einzuloggen und Vorgänge in dem System, wie z. B.
die Steuerung der Heizungsanlage oder die Steuerung von Geräten der Unterhaltungselektronik,
vorzunehmen.
-
Neben
dem soeben beschriebenen Verfahren betrifft die Erfindung ferner
ein technisches System umfassend eine Vielzahl von Diensten, wobei das
technische System derart ausgestaltet ist, dass in dem technischen
System das erfindungsgemäße Verfahren
durchführbar
ist.
-
Die
Erfindung betrifft ferner ein technisches Gerät umfassend einen oder mehrere
Dienste zur Durchführung
des erfindungsgemäßen Verfahrens, mit:
- – einem
Mittel zur Eingabe und/oder Erzeugung einer funktionalen Aufgabenbeschreibung
für eine in
dem technischen System durchzuführende
Interaktionsaufgabe zwischen im technischen System zu integrierenden
Anfangsdiensten des technischen Geräts und einem oder mehreren,
im technischen System bereits vorhandenen Enddiensten gemäß Schritt
a) des erfindungsgemäßen Verfahrens;
- – einem
Mittel zum Ermitteln von Kombinationen aus Anfangs- und Enddienst,
welche die in dem technischen System durchzuführende Interaktionsaufgabe
lösen,
gemäß Schritt
b) des erfindungsgemäßen Verfahrens;
- – einem
Mittel zur Initialisierung der Suche von Lösungspfaden gemäß Schritt
c) des erfindungsgemäßen Verfahrens;
- – einem
Mittel zur Auswahl von Lösungspfaden gemäß Schritt
d) des erfindungsgemäßen Verfahrens.
-
Das
technisches Gerät
kann vorzugsweise auch als eine bereits im technischen System integrierte
Komponente mit einer Gruppe von Diensten fungieren, wobei das Gerät hierzu
Mittel umfasst, um Nachrichten von anderen Geräten zu verarbeiten, die während der
Suche nach Lösungspfaden
empfangen werden.
-
Die
Erfindung betrifft darüber
hinaus ein Computerprogrammprodukt mit einem auf einem maschinenlesbaren
Träger
gespei cherten Programmcode zur Ausführung des erfindungsgemäßen Verfahrens,
wenn das Programm auf einem Rechner abläuft.
-
Ausführungsbeispiele
der Erfindung werden nachfolgend detailliert anhand der beigefügten Figuren
beschrieben.
-
Es
zeigen:
-
1 eine
schematische Darstellung des Ablaufs einer Ausführungsform des erfindungsgemäßen Verfahrens;
-
2 ein
Beispiel eines Anwendungsfalls des erfindungsgemäßen Verfahrens in einem Gebäude-Automations-System;
-
3 den
schematischen Aufbau eines technischen Geräts, das gemäß dem erfindungsgemäßen Verfahren
in ein technisches System integriert werden kann.
-
In
dem in 1 gezeigten technischen System 1 soll
ein neues technisches Gerät 2 umfassend die
Anfangsdienste A1 und A2 in dem technischen System 1 integriert
werden. Das technische System 1 stellt hierbei ein Netzwerk
aus einer Vielzahl von Diensten E1, E2, E3, E4, E5, E6 und E7 dar.
Das technische Gerät 2 verfügt über einen
sogenannten Discovery-Mechanismus,
mit dem Informationen über
die verfügbaren
Dienste im technischen System 1 bereit gestellt werden.
Der Discovery-Mechanismus kann beispielsweise ein UPnP-Mechanismus oder
ein auf Bluetooth basierender Mechanismus sein. Ein solcher Discovery-Mechanismus
ist hinlänglich
aus dem Stand der Technik bekannt, so dass auf dessen detaillierte
Beschreibung an dieser Stelle verzichtet wird. In der hier beschriebenen
Ausführungsform
wird zunächst
von dem Gerät 2 dieser
Discovery-Mechanismus initialisiert, so dass dem technischen Gerät 2 alle
in dem System 1 vorhandenen Dienste bekannt werden.
-
Die
einzelnen Dienste von sowohl dem Gerät 2 als auch dem System 1 verfügen ferner über Mittel zur
Prüfung
der Kompatibilität
der Schnittstellen zwischen den unterschiedlichen Diensten, beispielsweise
in der Form einer Interface-Matcher-Komponente, die ebenfalls hinlänglich aus
dem Stand der Technik bekannt ist. Darüber hinaus wird der Funktionsumfang
von jedem einzelnen Dienst im Gerät 2 und im System 1 sowie
der möglichen
Interaktionen des jeweiligen Dienstes mit anderen Diensten in einer
funktionalen Beschreibungssprache beschrieben, wobei diese Beschreibungssprache
eine Vielzahl von Funktionselementen umfasst, die jeweils die Funktionalität eines
Dienstes oder einer Interaktion wiedergeben.
-
Um
das neue Gerät 2 in
dem technischen System 1 zu integrieren, wird zunächst eine
Aufgabe vorgegeben, welche mit Hilfe der Funktionselemente der funktionalen
Beschreibungssprache wiedergegeben wird. Die Beschreibungssprache
umfasst hierbei sogenannte Functional Nodes, welche jeweils für eine Funktionalität eines
Dienstes stehen, sowie Interaktionstoken, welche jeweils für die Funktionalität einer
Interaktion stehen. Beispielsweise kann auf dem technischen Gerät 2 ein
Video bereit gestellt sein und die Aufgabe kann darin bestehen,
dieses Video auf einem Display anzuzeigen. Das technische Gerät 2 umfasst
somit den Dienst <VIDEO>, der mit einem Dienst <DISPLAY> über einen Interaktionstoken <link> verbunden werden soll.
Die in dem technischen System durchzuführende Aufgabe lautet deshalb:
<VIDEO> <link> <DISPLAY>
-
Im
Regelfall wird der unspezifizierte Interaktionstoken <link> zur eindeutigen Lösung der
gestellten Aufgabe noch näher
spezifiziert, was durch den Aufgabensteller selbst erfolgen kann.
Alternativ kann das technische Gerät 2 mögliche Alternativen
zur genaueren Festlegung des Interaktionstokens und ggf. auch der
Functional Nodes bereitstellen. In dem soeben genannten Beispiel
ergibt sich zur näheren
Definition des unspezifizierten Interaktionstokens <link> nur der Interaktionstoken <show>, da der Functional Node <DISPLAY> nur zur Anzeige von
Videos verwendet werden kann. Würde
der Functional Node <DISPLAY> durch den Functional
Node <TERMINAL> ersetzt werden, gäbe es für das Interaktionstoken <link> weitere Möglichkeiten,
da ein <TERMINAL> auch die Interaktion
der Aufzeichnung des Videos in der Form des Interaktionstokens <record> durchführen kann.
Der Aufgabensteller könnte
in diesem Fall beispielsweise folgende spezifische Aufgabe formulieren:
<VIDEO> <link-show> <TERMINAL>
-
Mit
dieser Aufgabe wird festgelegt, dass die Anzeige eines Videos auf
einem Terminal erwünscht ist.
-
Ein
weiteres Beispiel einer funktionalen Beschreibung einer Aufgabe
ist eine Videowiedergabe auf einem externen Bluetooth-Terminal.
Eine solche Aufgabe könnte
wie folgt aussehen:
<VIDEO-my-video-MPEG> <link-show> <NETWORK-Bluetooth> <TERMINAL-large>
-
Derartige
Beschreibungen werden automatisch in dem Gerät 2 generiert, wobei
die der Beschreibung zugrunde liegende Aufgabe beispielsweise über eine
graphische Benutzeroberfläche
von einem Bediener des Geräts 2 eingegeben
werden kann. Es ist jedoch auch denkbar, dass derartige Beschreibungen
automatisch bei einem Kontakt des Geräts 2 mit dem technischen
System 1 erzeugt werden.
-
Auf
der Basis der im Gerät 2 hinterlegten funktionalen
Aufgabenbeschreibung wird dann in einem ersten Schritt ermittelt,
welche Dienste im technischen System 1 die Aufgabe gemäß der funktionalen
Aufgabenbeschreibung erfüllen.
In dem in 1 gezeigten Szenario erfüllt die
Kombination des Anfangsdiens tes A1 mit jedem Dienst E1, E2 und E3
sowie die Kombination des Anfangsdienstes A2 mit jedem Dienst E1,
E2 und E3 die vorbestimmte Aufgabe. In einem nächsten Schritt wird ein sogenannter Interface-Kompatibilitäts-Check
durchgeführt,
bei dem überprüft wird,
inwieweit die Schnittstellen der Anfangsdienste A1 bzw. A2 mit den
Schnittstellen der Enddienste E1 bzw. E2 bzw. E3 kompatibel sind,
wobei Kompatibilität
bedeutet, dass eine direkte Interaktion zwischen den Diensten ohne
Zwischenschaltung weiterer Dienste über die Schnittstellen der
Dienste möglich
ist. In dem in 1 gezeigten Fall ergibt sich,
dass nur der Dienst A1 mit dem Dienst E1 kompatibel ist. Diese Kompatibilität wird durch
die Linie L1 zwischen den Diensten A1 und E1 angedeutet. Gegebenenfalls
kann das Verfahren nun beendet werden, da zwei kompatible Dienste
gefunden wurden, welche die gestellte Aufgabe lösen, so dass die Aufgabe über diese
Dienste durchgeführt
werden kann.
-
Wie
nachfolgend beschrieben, können
jedoch auch noch weitere, sich über
mehrere Dienste fortsetzende Pfade zur Lösung der gestellten Aufgabe
gesucht werden. Dies wird durch eine sogenannte Resource-Tree-Generation
bewerkstelligt, bei der zunächst
für jeden
Anfangsdienst A1 und A2 nach zu dem Anfangsdienst kompatiblen Diensten
gesucht wird. Hierzu wird eine Nachricht in der Form eines Lookup-Requests
von dem Anfangsdienst A1 bzw. A2 ausgesendet, wobei die Nachricht
die Information über
die gemäß der gestellten
Aufgabe gesuchten Functional Nodes und diverse Beschränkungen
enthält.
Diese Beschränkungen
können
beispielsweise lokale Beschränkungen
hinsichtlich der Verfügbarkeit und
Funktionalität
der Ressourcen der Dienste A1 bzw. A2 sein. Zum Beispiel kann die
Beschränkung darin
bestehen, dass Daten von einem Anfangsdienst nur in einem bestimmten
Format bereit gestellt werden können.
Der Lookup-Request enthält
ferner eine Liste, in der zunächst
nur die Identifikation des Dienstes, der die Nachricht versendet,
gespeichert ist. Der kompatible Dienst, der den Lookup-Request empfängt, überprüft, ob ihm
ein gemäß der Aufgabenstellung
gesuchter Functional Node zugeordnet ist. Ist dies nicht der Fall,
fügt er
seine eigene Identifikation der Liste im Lookup-Request hinzu und
gibt den Lookup-Request an zu ihm kompatible Dienste in seiner Umgebung
weiter. Diese Dienste überprüfen dann
ebenfalls wieder, ob sie den gemäß der gestellten
Aufgabe zu suchenden Functional Node enthalten. Wenn dies wiederum
nicht der Fall ist, werden dem Lookup-Request wiederum die Identifikationen der
jeweiligen Dienste zugefügt,
und der Request wird an weitere, zu dem jeweiligen Dienst kompatible Dienste
weitergesendet. Auf diese Weise wird ein sogenannter Resource-Tree
mit einer Vielzahl von Pfaden in allen Richtungen erzeugt.
-
Die
Suche in einem jeweiligen Pfad wird auf jeden Fall dann beendet,
wenn der Dienst, der den Lookup-Request empfängt, den gemäß der gestellten
Aufgabe gesuchten Functional Node enthält. Der auf diese Weise erzeugte
Suchpfad wird dann als Lösungspfad
der gestellten Aufgabe definiert, wobei von dem Dienst, der den
gesuchten Functional Node enthält,
eine Rückmeldung
an den ursprünglichen Anfangsdienst
gegeben wird. Eine Suche nach kompatiblen Diensten in einem Pfad
wird auch dann beendet, wenn zu einem Dienst keine kompatiblen Dienste
gefunden werden können.
In diesem Fall gilt die Suche in diesem Pfad als gescheitert. Die
Suche nach Lösungspfaden
ist ferner zeitlich durch einen Timeout befristet, wobei der Timeout
kontextsensitiv ist, d. h. er kann durch externe Signale beeinflusst bzw.
gesteuert werden.
-
In 1 ist
schematisch durch mit Pfeilen behaftete Quadrate das Versenden der
Lookup-Requests an kompatible Dienste angedeutet. Es ergibt sich,
dass neben der direkten Verbindung L1 weitere Pfade zur Lösung der
gestellten Aufgabe über
die Linien L2 und L3 bzw. L2 und L4 sowie über die Linien L5, L6 und L7
existieren. Ferner ist beispielhaft durch die gestrichelte Linie
L8 eine Verbindung zwischen dem Anfangsdienst A1 und dem Dienst
E4 angedeutet, welche keinen Lösungspfad
darstellt, da die beiden Dienste entweder nicht miteinander kompatibel sind
oder vorgegebene Beschränkungen, die
mit dem Lookup-Request mitgeschickt werden, nicht erfüllt sind.
Wie bereits erwähnt
wurde, werden diese Beschränkungen
bei der Erzeugung der Lösungspfade
berücksichtigt,
wobei bei der Generierung der Pfade von jedem beteiligten Dienst überprüft wird,
ob er die durch die Beschränkungen
vorgegebenen Ressourcen-Anforderungen erfüllt. Sind diese Anforderungen
nicht erfüllbar,
wird dieser Pfad während
der Suche unterdrückt,
auch wenn die Dienste als zueinander kompatibel eingestuft sind.
Es wird auf diese Weise bereits bei der Erzeugung der Lösungspfade eine
Vorauswahl von möglichen
Lösungspfaden
getroffen.
-
Nach
der Erzeugung der Lösungspfade
wird schließlich
eine Auswahl getroffen, welcher der Lösungspfade zur Durchführung der
gestellten Aufgabe verwendet werden soll. Hierbei können lokale
Beschränkungen
und globale Beschränkungen
berücksichtigt
werden. Bei lokalen Beschränkungen
handelt es sich um Beschränkungen,
die nur lokal, d. h. für eine
vorgegebene Gruppe von Diensten, beispielsweise nur für die Dienste
A1 und A2 des technischen Geräts 2,
gültig
sind. Ein Beispiel einer solchen lokalen Beschränkung ist eine maximale Bandbreite,
mit der Daten von einem Dienst übertragen
werden können.
Demgegenüber
gelten globale Beschränkungen in
dem gesamten technischen System 1 und dem zu integrierenden
Gerät 2.
Diese Beschränkungen
werden von allen Teilnehmern im technischen System ausgesendet und
sollen zur allgemeinen Konfliktlösung
dienen. Typische globale Beschränkungen
beschreiben insbesondere spezielle erwünschte Eigenschaften der auszuführenden
Aufgabe. Solche Beschränkungen
können
z. B. sein:
- – die Aufgabe soll so schnell
wie möglich
ausgeführt
werden;
- – die
Aufgabe soll so energiesparend wie möglich ausgeführt werden;
- – die
Aufgabe soll so kostengünstig
wie möglich ausgeführt werden;
- – die
Aufgabe soll nur mit vertrauenswürdigen Diensten
ausgeführt
werden;
- – die
Aufgabe soll nur mit Diensten ausgeführt werden, welche einen bestimmten
Sicherheitsstandard aufweisen;
- – die
Aufgabe soll derart ausgeführt
werden, dass weiterhin eine hohe Verfügbarkeit der Ressourcen der
Dienste bereitgestellt ist.
-
Gegebenenfalls
können
auch konkurrierende globale und lokale Beschränkungen vorliegen, wobei die
lokalen Beschränkungen
durch die globalen Beschränkungen überstimmt
werden.
-
Die
Auswahl der Lösungspfade
ist in der hier beschriebenen Ausführungsform des Verfahrens somit
mehrstufig. In einem ersten Schritt werden Beschränkungen
bereits bei der Suche nach Lösungspfaden
berücksichtigt,
wobei die Beschränkungen klare
Go/No go-Entscheidungen beinhalten, wonach festgelegt wird, in welche
Richtung sich Lösungspfade
verzweigen können.
Nach der Bestimmung der Lösungspfade
wird dann einer dieser Pfade wiederum durch Beschränkungen
ausgewählt,
wobei bei der Auswahl vorzugsweise dynamische Beschränkungen
berücksichtigt
werden, welche den lokalen Zustand, z. B. den Energievorrat eines
Dienstes oder die Auslastung eines Dienstes, einbeziehen. Es werden
dann sogenannte Go/Conditional-go-Entscheidungen in den Diensten der Lösungspfade
erzeugt, wobei die Go/Conditional-go-Entscheidungen die Fortpflanzung
eines Lösungspfads
von einem Dienst zum nächsten
entweder ohne Beschränkung
zulassen oder unter eine Bedingung betreffend den lokalen Zustand
des betrachteten Dienstes stellen. Ein Kriterium bei der Auswahl
des Lösungspfads
kann z. B. sein, dass nur Lösungspfade
mit eindeutigen Go-Entscheidungen betrachtet werden und hieraus entsprechend
der globalen Beschränkungen
ein Lösungspfad
ausgewählt
wird.
-
Eine
Optimierungsmöglichkeit
des soeben beschriebenen Verfahrens besteht in der Verwendung eines
sogenannten Functionality-Proxy-Dienstes. Diesem Dienst ist die
gesamte Funktionali tät
der Dienste des technischen Systems bekannt. Der Functionality-Proxy-DienstIn
speichert hierzu die Informationen der den Diensten zugeordneten
Functional Nodes in einem lokalen Speicher ab. Die Suche nach Lösungspfaden
erfolgt dann auf der Basis der Informationen im lokalen Speicher.
Es kann somit auf einen Discovery-Mechanismus eines neu zu integrierenden
Dienstes verzichtet werden, da dem neuen Dienst die entsprechenden
Informationen über
den Functionality-Proxy-Dienst bereit gestellt werden. Die soeben
beschriebene Optimierungsmöglichkeit kommt
insbesondere bei technischen Netzwerken im Haus- und/oder Gebäude-Automations-Bereich
in Betracht, da es dort oft quasi-stationäre Zustände von bestimmten Netzwerkpartnern
gibt, die sich über sehr
lange Zeit hinweg nicht verändern
(z. B. die Integration eines Flachbildschirms). Neu hinzukommende
Gerätegruppen
können
somit auf diese stationären
Zustände
direkt über
den Functionality-Proxy-Dienst zugreifen.
-
Nachfolgend
wird in Bezug auf 2 ein spezielles Ausführungsbeispiel
des erfindungsgemäßen Verfahrens
im Bereich der Fernsteuerung von technischen Geräten in der Haus-Automations-Technik
beschrieben. Gemäß 2 wird
folgendes Szenario betrachtet:
- – es ist
ein Heim-Automations-System 3 mit einer Vielzahl von technischen
Geräten
vorhanden;
- – ein
in das Heim-Automations-System zu integrierendes Gerät 4,
wie z. B. ein PDA (PDA = Personal Digital Assistant), soll dynamisch
in das System 3 eingebunden werden.
-
Das
Gerät 4 soll
das Heizungssystem 5 innerhalb des Heim-Automations-Systems 3 steuern, wie
in 2 durch den gestrichelten Pfeil P1 angedeutet
ist. Das Heim-Automations-System
ist hierbei physikalisch nur über
einen Gateway 6 zugänglich, der über einen
Automationsbus 7 mit dem Heizungssystem 5 und
einem Heizungssteuersystem 8 verbunden ist. Die Aufgabe
lässt sich
in einer funktionalen Beschreibungssprache wie folgt wiedergeben:
<PDA> <link> <Heizungssytem>
-
Es
wird nun zunächst
von dem PDA 4 ein Discovery-Mechanismus initialisiert,
um in dem System 3 vorhandene Geräte aufzufinden. Anschließend wird
mit Hilfe der funktionalen Beschreibung der Aufgabe nach entsprechenden
Lösungen
gesucht. Es werden hierbei auch die möglichen Ausprägungen des
Interaktionstokens <link> berücksichtigt.
Insbesondere werden Verbindungen zur Steuerung der Heizung (Interaktionstoken <Steuere Heizung>) und Verbindungen
zur Anzeige der Heizungseinstellungen (Interaktionstoken <Zeige Heizungseinstellungen>) berücksichtigt.
-
In
dem beschriebenen Szenario ergibt sich nach Durchführung des
erfindungsgemäßen Verfahrens
zur Suche nach Lösungspfaden,
dass für
den PDA 4 das Heizungssystem 5 nicht direkt nutzbar
ist, da keine kompatiblen Schnittstellen vorhanden sind. Eine Nutzung
kommt nur unter Zwischenschaltung des Heizungssteuersystems 8 in
Betracht, welches sowohl mit dem Heizungssystem 5 als auch
mit dem PDA 4 kompatibel ist. Hierbei wurden auch dynamisch
die Verfügbarkeit
der Ressourcen des Heizungssystems 5 und des Heizungssteuersystems 8 berücksichtigt.
Der gefundene logische Lösungspfad besteht
somit aus den in 2 gezeigten Pfeilen P2 und P3,
wobei physikalisch die Verbindung der Geräte immer unter Zwischenschaltung
des Gateways 6 erfolgt.
-
Ein
weiteres Beispiel zur Anwendung des erfindungsgemäßen Verfahrens
ist die Übertragung von
Wartungsdaten eines technischen Geräts auf ein video-Darstellungsgerät in der
Form eines Videostroms. Initiator dieser Aufgabenstellung ist ein
Gerät A,
das ein Wartungsdaten-Provider ist. Die Aufgabe lässt sich
in einer funktionalen Beschreibungssprache wie folgt formulieren:
<Wartungsdaten-Provider> <Wartungsdatenanzeige> <Videoterminal>.
-
Das
Gerät A
ermittelt, vorzugsweise unter Zwischenschaltung des oben beschriebenen
Functionality-Proxy-Dienstes, mögliche
Lösungspfade.
Es ergibt sich, das ein Gerät
B die Wartungsdaten darstellen kann, jedoch nicht direkt durch das
Gerät A, sondern über die
Zwischenschaltung eines Wartungssupportgerätes, das die Daten von Geräten im System
visualisieren kann. Bei der Suche nach geeigneten Lösungspfaden
wurden insbesondere auch die technischen Ressourcen des Supportgerätes, insbesondere
die Bandbreite, das Codierverfahren und die mögliche Bildauflösung des
Gerätes
berücksichtigt.
Ferner wurden lokale Beschränkungen
des Gerätes
B ebenfalls in die Suche mit einbezogen, insbesondere die minimale
Auflösung
des Gerätes,
die Sichtbarkeit (Einzelnutzer, Raum, Gruppe etc.) und die momentane
Verfügbarkeit.
Diese Beschränkungen
verfeinern somit das Funktionselement <Videoterminal> der funktionalen Beschreibung der Aufgabe.
-
Wie
sich aus der vorangegangenen Beschreibung von Ausführungsformen
ergibt, weist das erfindungsgemäße Verfahren
eine Reihe von Vorteilen auf. Insbesondere ermöglicht es durch die automatisierte,
die verfügbaren
Ressourcen berücksichtigende
Erzeugung von Lösungspfaden
die automatische dynamische Anbindung von neuen Geräten, ohne
dass eine manuelle Konfiguration durchgeführt werden muss. Der notwendige
Konfigurationsaufwand beschränkt
sich auf die Auswahl von geeigneten Lösungspfaden. Entscheidend ist
hierbei, dass durch die Berücksichtigung
von lokalen und globalen Beschränkungen
bei der Zusammenarbeit zwischen den Geräten eine ressourceneffiziente
Einbindung von neuen Geräten
erfolgen kann. Durch das erfindungsgemäße Verfahren kann ein System
somit flexibel für
neue, nicht vorhergesehene Nutzungsmöglichkeiten eingesetzt werden,
da automatisiert nach neuen Kooperationsmöglichkeiten gesucht wird, wenn
nicht direkt kompatible Geräte
zusammenar beiten sollen. Ferner ist es möglich, dass dynamisch auf sich
verändernde
Bedingungen im technischen System reagiert wird, beispielsweise
auf den Wegfall von aktuell verwendeten Geräten.
-
3 zeigt
schematisiert den Aufbau eines technischen Geräts zur Einbindung in ein technisches
System gemäß dem erfindungsgemäßen Verfahren
bzw. zur Verwendung als bereits vorhandene Komponente im technischen
System. Die in 3 gezeigten Verbindungslinien
zwischen den einzelnen Komponenten sind hierbei lediglich schematisiert und
beispielhaft, und es können
auch noch andere bzw. zusätzliche
Verbindungen zwischen den Komponenten vorliegen.
-
Das
Gerät umfasst
einen Steuerdienst 9 zur Steuerung der dynamischen Erzeugung
von Lösungspfaden.
In den Steuerdienst 9 können
durch den Benutzer Beschränkungen
UP (UP = User Policy) eingegeben werden. Ferner können über den Dienst
sogenannte Kontext-Informationen CI berücksichtigt werden, welche Beschränkungen
im Hinblick auf die Umgebung betreffen, in der das Gerät eingesetzt
wird. Darüber
hinaus wird die zu lösende
Aufgabe in der Form einer funktionalen Aufgabenbeschreibung FTD
(FTD = Functional Task Description) einem entsprechenden Interpreter 10 zugeführt.
-
Die
Ermittlung von Kombinationen aus Anfangs- und Enddienst, welche
die gestellte Aufgabe lösen,
sowie die Suche nach geeigneten Lösungspfaden wird in dem Gerät in dem
Resource-Tree-Generator 11 durchgeführt, der
die Suchanfrage nach kompatiblen Diensten stellt, wobei die Suchanfrage die
geforderten Functional Nodes entsprechend der Aufgabenstellung enthält. Der
Generator 11 ist ferner wiederum mit einem Discovery-Dienst 12 verbunden ist, über den
zunächst
herausgefunden wird, welche Geräte
in dem technischen System vorhanden sind, in das sich das neue Gerät einbinden
möchte.
Der Discovery-Dienst 12 steht
hierbei mit einer entsprechenden Netzwerkschnittstelle 13 in
Verbindung, über
welche die Informationen zwischen dem neuen Gerät und den Geräten in dem
technischen System übertragen
werden.
-
Das
Gerät der 3 verfügt ferner über einen
Cache 14, in dem die von dem Resource-Tree-Generator 11 ermittelten
Lösungspfade
gespeichert werden. Die Auswahl des Lösungspfades erfolgt dann über die
Auswahleinheit 15, welche lokale, in einem Speicher 16 gespeicherte
Beschränkungen
und globale, in einem Speicher 17 gespeicherte Beschränkungen
sowie ggf. auch vorhandene Kontext-Informationen CI und Benutzer-Beschränkungen UP
berücksichtigt.
Darüber
hinaus werden bei der Suche nach Pfaden in dem Resource-Tree-Generator 11 bereits
vorab Beschränkungen
im Hinblick auf die bereitgestellten Ressourcen der einzelnen Geräte berücksichtigt.
Diese Beschränkungen
sind in einem Speicher 18 gespeichert und werden über die Auswahleinheit
dem Resource-Tree-Generator 11 zugeführt.
-
Das
Gerät der 3 verfügt ferner über eine Verwaltungseinheit 19,
welche ein sogenanntes Lease-Management durchführt, gemäß dem festgelegt wird, in welchen
Zeitintervallen bestimmte Dienste zur Verfügung gestellt werden. Ferner
bearbeitet die Verwaltungseinheit Lookup-Requests von anderen Geräten und
leitet diese ggf. zu dem Resource-Tree-Generator weiter, der daraufhin
die Suche nach Lösungspfaden
initialisiert. Das Gerät
der 3 umfasst ferner noch einen Lokalspeicher 20,
in dem die Information der lokal im Gerät verfügbaren Dienste abgelegt ist.