Beschreibungdescription
Verfahren zur Kommunikation zwischen einer Anzahl von ersten Diensten und einer Anzahl von zweiten DienstenA method of communicating between a number of first services and a number of second services
Die Erfindung betrifft ein Verfahren zur Kommunikation zwischen einer Anzahl von ersten Diensten und einer Anzahl von zweiten Diensten.The invention relates to a method for communication between a number of first services and a number of second services.
Aus dem Stand der Technik sind verschiedene Architekturen zur Ausführung von Diensten in Datennetzen bzw. in miteinander vernetzten elektronischen Einheiten bekannt. Insbesondere gibt es sog. service-orientierte Architekturen, bei denen ein Dienst über eine Anfrage aufgerufen werden kann und anschlie- ßend die durch den Dienst bereitgestellten Informationen über eine entsprechende Antwort ausgegeben werden. Ein Beispiel von Diensten in service-orientierten Architekturen sind die aus dem World Wide Web bekannten Web-Services.Various architectures for implementing services in data networks or in interconnected electronic units are known from the prior art. In particular, there are so-called service-oriented architectures in which a service can be called up via a request and subsequently the information provided by the service is output via a corresponding answer. An example of services in service-oriented architectures are the web services known from the World Wide Web.
Im Unterschied hierzu kann eine Datenverarbeitung durchIn contrast to this, data processing can be done by
Dienste auch in einer datengetriebenen Architektur durchgeführt werden, welche beispielsweise in sog. Embedded Networks eingesetzt wird. Dabei werden für einen Dienst ein Eingang mit einer entsprechenden Dateneingabe und ein Ausgang mit ei- ner entsprechenden Datenausgabe spezifiziert, wobei eine Dateneingabe eine entsprechende Datenausgabe generiert. Mehrere Dienste können dabei zu einer Dienste-Verkettung verschaltet werden, wobei mit Hilfe eines geeigneten Protokolls die entsprechenden Dateneingaben und Datenausgaben der Dienste sowie die Weiterleitung der Daten zwischen den Diensten festgelegt werden können. Die Dienste-Verkettungen können dabei einfach verändert werden, ohne dass die Dienste selbst angepasst werden müssen. Auf diese Weise kann in einer datengetriebenen Architektur eine flexible und schnell durchführbare Anpassung von Dienste-Verkettungen erreicht werden.
Heutzutage werden die verschiedenen Dienste-Architekturen nebeneinander verwendet und es gibt bis dato keine Schnittstelle, welche die Dienste der einen Architektur in entsprechende Dienste der anderen Architektur umwandelt.Services are also performed in a data-driven architecture, which is used for example in so-called embedded networks. In this case, an input with a corresponding data input and an output with a corresponding data output are specified for a service, wherein a data input generates a corresponding data output. Several services can be interconnected to a service chaining, with the help of a suitable protocol, the corresponding data inputs and data outputs of the services and the forwarding of the data between the services can be set. The service chainings can be easily changed without having to adjust the services themselves. In this way, in a data-driven architecture, a flexible and quickly feasible adaptation of service chainings can be achieved. Nowadays, the different service architectures are used side by side, and so far there is no interface that converts the services of one architecture into corresponding services of the other architecture.
Aufgabe der Erfindung ist es deshalb, ein Verfahren zur Kommunikation zwischen einer Anzahl von ersten Diensten und einer Anzahl von zweiten Diensten zu schaffen, mit dem verschiedene Dienste-Architekturen miteinander kommunizieren können.The object of the invention is therefore to provide a method for communication between a number of first services and a number of second services, with which different service architectures can communicate with each other.
Diese Aufgabe wird durch das Verfahren gemäß Patentanspruch 1 bzw. den Dienste-Wandler gemäß Patentanspruch 14 gelöst. Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen definiert.This object is achieved by the method according to claim 1 and the service converter according to claim 14. Further developments of the invention are defined in the dependent claims.
Das erfindungsgemäße Verfahren dient zur Kommunikation zwischen einer Anzahl von ersten Diensten und einer Anzahl von zweiten Diensten, wobei die Anzahl von ersten Diensten zu ei- ner service-orientierten Architektur gehört, in welcher ein jeweiliger erster Dienst über Nachrichten basierend auf einem Anfrage-Antwort-Mechanismus mittels eines ersten Protokolls bereitgestellt wird, und wobei die Anzahl von zweiten Diensten zu einer datengetriebenen Architektur gehört, in welcher die zweiten Dienste mittels eines zweiten Protokolls ver- schaltbar sind, wobei das zweite Protokoll Dateneingaben und Datenausgaben der zweiten Dienste und die Weiterleitung von Daten zwischen den zweiten Diensten spezifiziert. Der Begriff des Anfrage-Antwort-Mechanismus ist dabei weit zu verstehen und umfasst nicht nur den Empfang einer Anfrage und einer unmittelbar darauf ausgesendeten Antwort, sondern gegebenenfalls auch Subskriptionen, gemäß denen entsprechende Benachrichtigungen eines ersten Dienstes aufgrund der Subskription ausgesendet werden. In diesem Sinne wird dann eine Anfrage durch eine Subskription repräsentiert, welche entsprechendeThe method according to the invention serves for communication between a number of first services and a number of second services, the number of first services belonging to a service-oriented architecture, in which a respective first service is based on messages based on a request-response Mechanism is provided by means of a first protocol, and wherein the number of second services belongs to a data-driven architecture in which the second services are connectable by means of a second protocol, the second protocol data inputs and data outputs of the second services and the forwarding of data specified between the second services. The term of the request-response mechanism is to be understood broadly and includes not only the receipt of a request and an immediately sent out response, but possibly also subscriptions, according to which corresponding notifications of a first service are sent out due to the subscription. In this sense, a request is then represented by a subscription, which corresponding
Antworten in der Form von Benachrichtigungen generiert. Unter Dateneingabe bzw. Datenausgabe ist der Empfang von Daten an
einem Eingang des Dienstes bzw. die Ausgabe von Daten an einem Ausgang des Dienstes zu verstehen. Insbesondere spezifiziert das zweite Protokoll dabei für eine Dateneingabe bzw. Datenausgabe eine entsprechende Nachricht, welche die einge- gebenen bzw. ausgegebenen Daten enthält sowie festlegt, ob es sich um eine Dateneingabe oder eine Datenausgabe handelt. Ferner enthält die Nachricht einen Bezeichner bzw. Identifi- kator für den Dienst, an dem die Dateneingabe bzw. Datenausgabe erfolgt.Responses generated in the form of notifications. Under data input or data output is the reception of data to understand an input of the service or the output of data at an output of the service. In particular, the second protocol specifies a corresponding message for data input or data output, which contains the entered or output data and determines whether it is a data input or a data output. Furthermore, the message contains an identifier or identifier for the service at which the data input or data output takes place.
In dem erfindungsgemäßen Verfahren wird eine in einem Dienste-Wandler eingehende Nachricht eines ersten Dienstes in eine Dateneingabe eines dem ersten Dienst zugeordneten zweiten Dienstes gewandelt und/oder eine in dem Dienste-Wandler ein- gehende Datenausgabe eines zweiten Dienstes wird in eine von dem Dienste-Wandler ausgehende Nachricht eines dem zweiten Dienst zugeordneten ersten Dienstes gewandelt. Durch die erfindungsgemäße Zuordnung von ausgehenden bzw. eingehenden Nachrichten eines ersten Dienstes einer service-orientierten Architektur zu entsprechenden Dateneingaben bzw. Datenausgaben eines zweiten Dienstes einer datengetriebenen Architektur wird auf einfache Weise eine Kommunikation zwischen der service-orientierten Architektur und der datengetriebenen Architektur erreicht, so dass zweite Dienste auch von ersten Diensten bzw. umgekehrt genutzt werden können.In the method according to the invention, a message of a first service arriving in a service converter is converted into a data input of a second service assigned to the first service and / or a data output of a second service entering into the service converter is transferred to one of the service providers. Converter outgoing message of the second service associated with the first service converted. The inventive assignment of outgoing or incoming messages of a first service of a service-oriented architecture to corresponding data inputs or data outputs of a second service of a data-driven architecture communication between the service-oriented architecture and the data-driven architecture is achieved in a simple manner, so that Second services can also be used by first services or vice versa.
In einer besonders bevorzugten Ausführungsform umfasst die Anzahl von ersten Diensten eine oder mehrere Web-Services, welche hinlänglich aus dem Stand der Technik bekannt sind. Als erstes Protokoll für die Nachrichten der ersten Dienste wird vorzugsweise das ebenfalls aus dem Stand der Technik bekannte SOAP-Protokoll (SOAP = Simple Object Access Protocol) verwendet. Die zweiten Dienste sind vorzugsweise in einem Netz verteilte Dienste, wobei das Netz insbesondere ein sog. Embedded Network ist. Embedded Networks sind hinlänglich aus dem Stand der Technik bekannt und ermöglichen die Einbettung von Diensten in geeignete Netzknoten, welche beispielsweise
Sensoren, Aktoren oder andere elektronische Einheiten darstellen können. Die zweiten Dienste sind dabei in dem Netz zumindest teilweise mittels einer oder mehrerer, über das zweite Protokoll spezifizierte Dienste-Verkettungen miteinan- der verschaltet.In a particularly preferred embodiment, the number of first services comprises one or more web services which are well known in the art. As the first protocol for the messages of the first services preferably also known from the prior art SOAP protocol (SOAP = Simple Object Access Protocol) is used. The second services are preferably services distributed in a network, wherein the network is in particular a so-called embedded network. Embedded networks are well known in the art and allow the embedding of services in suitable network nodes, for example Sensors, actuators or other electronic units. The second services are interconnected in the network at least partially by means of one or more service chainings specified via the second protocol.
In einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird eine in dem Dienste-Wandler eingehende Nachricht eines ersten Dienstes in der Form einer Anfragenach- rieht an den ersten Dienst in eine Dateneingabe eines zweiten Dienstes gewandelt, der dem ersten Dienst zugeordnet ist, und anschließend wird eine Datenausgabe des zweiten Dienstes oder eines weiteren zweiten Dienstes, der ebenfalls dem ersten Dienst zugeordnet ist und mit dem zweiten Dienst verschaltet ist, in eine von dem Dienste-Wandler ausgehende Nachricht des ersten Dienstes in der Form einer Antwort-Nachricht auf die Anfragenachricht gewandelt. Vorzugsweise ist dabei der erste Dienst ein in dem Dienste-Wandler implementierter Dienst. Mit dieser Variante des erfindungsgemäßen Verfahrens kann von ei- nem ersten Dienst effizient ein zweiter Dienst bzw. eine Verkettung von zweiten Diensten mit Hilfe des Dienste-Wandlers aufgerufen werden.In a preferred embodiment of the inventive method, a message arriving in the service converter of a first service in the form of a requesting entity is converted to the first service into a data input of a second service associated with the first service, and then a data output is issued the second service or another second service, which is also associated with the first service and is connected to the second service, converted to a message originating from the service converter of the first service in the form of a response message to the request message. Preferably, the first service is a service implemented in the service converter. With this variant of the method according to the invention, a first service can efficiently call up a second service or a chaining of second services with the aid of the service converter.
In einer weiteren Ausführungsform des erfindungsgemäßen Ver- fahrens werden eine oder mehrere Datenausgaben eines oder mehrerer zweiter Dienste in einem Zwischenspeicher gespeichert und über den Zwischenspeicher dem Dienste-Wandler bereitgestellt, wobei das oder die Datenausgaben vorzugsweise periodisch erzeugt werden. Mit dieser Variante können über einen ersten Dienst Datenausgaben von zweiten Diensten abgerufen werden, ohne dass die Datenausgaben über ein Ereignis ausgelöst werden müssen. In einer besonders bevorzugten Ausführungsform wird der Zwischenspeicher dabei als ein separater zweiter Dienst implementiert, bei dem über Dateneingaben, beispielsweise über Dateneingaben, welche gewandelte Anfragenachrichten an einen ersten Dienst darstellen, zwischengespeicherte Datenausgaben abgerufen werden können, welche vor-
zugsweise Datenausgaben sind, die in entsprechende Antwort- Nachrichten eines ersten Dienstes gewandelt werden.In a further embodiment of the method according to the invention, one or more data outputs of one or more second services are stored in a buffer and provided to the service converter via the buffer, wherein the data output or outputs are preferably generated periodically. With this variant, data outputs from second services can be retrieved via a first service without the data output having to be triggered by an event. In a particularly preferred embodiment, the buffer is implemented as a separate second service in which data entries stored, for example via data inputs which represent converted query messages to a first service, can be used to call up buffered data outputs which are data outputs that are converted into corresponding response messages of a first service.
In einer weiteren Ausgestaltung des erfindungsgemäßen Verfah- rens ist ein erster Dienst in dem Dienste-Wandler durch ein Dokument in einer Beschreibungssprache für erste Dienste, insbesondere durch ein WSDL-Dokument (WSDL = Web Service Description Language) , spezifiziert, wobei das Dokument in dem Dienste-Wandler derart verarbeitet wird, dass aus einer oder mehreren von in dem Dokument spezifizierten Anfragenachrichten an den ersten Dienst eine oder mehrere Dateneingaben von einem oder mehreren zweiten Diensten und aus einer oder mehreren Datenausgaben von einem oder mehreren zweiten Diensten eine oder mehrere, in dem Dokument spezifizierte Antwort- Nachrichten des ersten Dienstes generiert werden.In a further embodiment of the method according to the invention, a first service in the service converter is specified by a document in a description language for first services, in particular by a WSDL document (WSDL = Web Service Description Language), wherein the document in the Services converter is processed such that from one or more of the specified in the document request messages to the first service one or more data inputs from one or more second services and one or more data outputs from one or more second services one or more, in the Document specified response messages of the first service are generated.
In einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens wird eine in dem Dienste-Wandler eingehende Datenausgabe eines zweiten Dienstes in eine von dem Dienste-Wandler ausge- hende Nachricht eines dem zweiten Dienst zugeordneten ersten Dienstes in der Form einer Anfragenachricht an den ersten Dienst gewandelt. Auf diese Weise kann über eine Datenausgabe eines zweiten Dienstes ein erster Dienst angesprochen werden. Vorzugsweise wird dabei die auf die Anfragenachricht einge- hende Antwortnachricht des ersten Dienstes von dem Dienste- Wandler in eine Dateneingabe des zweiten Dienstes gewandelt.In a further refinement of the method according to the invention, a data output of a second service arriving in the service converter is converted into the first service in the form of a request message in a first service assigned to the second service by the service converter. In this way, a first service can be addressed via a data output of a second service. In this case, the response message of the first service which is based on the request message is preferably converted by the service converter into a data input of the second service.
In einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens subskribiert bzw. abonniert sich ein erster Dienst auf vorbestimmte Datenausgaben eines zweiten Dienstes, wobei eine in dem Dienste-Wandler eingehende vorbestimmte Datenausgabe des zweiten Dienstes in dem Dienste-Wandler in eine von dem Dienste-Wandler ausgehende Nachricht des ersten Dienstes gewandelt wird. Die vorbestimmten Datenausgaben sind dabei ins- besondere periodische Datenausgaben. Gemäß dieser Variante des erfindungsgemäßen Verfahrens kann ein erster Dienst auf einfache Weise Datenausgaben eines zweiten Dienstes abrufen.
In einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens wird eine in dem Dienste-Wandler eingehende Nachricht eines ersten Dienstes in der Form einer Antwortnachricht des ersten Dienstes, welche in Antwort auf eine zuvor vom Dienste-Wandler ausgesendeten Anfragenachricht an den ersten Dienst gesendet wurde, in eine Dateneingabe eines dem ersten Dienst zugeordneten zweiten Dienstes gewandelt. Auf diese Weise können über einen zweiten Dienst in geeigneter Weise Daten von einem ersten Dienst abgerufen werden.In a further embodiment of the method according to the invention, a first service subscribes or subscribes to predetermined data outputs of a second service, wherein a predetermined data output of the second service in the service converter in the service converter is converted into a message originating from the service converter first service is converted. The predetermined data outputs are in particular periodic data outputs. According to this variant of the method according to the invention, a first service can easily retrieve data outputs of a second service. In a further embodiment of the method according to the invention, a message of a first service in the form of a response message of the first service which has been sent to the first service in response to a request message previously sent by the service converter is input into a data input a second service associated with the first service. In this way, data can be retrieved from a first service via a second service as appropriate.
In einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens subskribiert sich der Dienste-Wandler auf vorbestimmte Nachrichten eines ersten Dienstes, wobei eine in dem Dienste- Wandler eingehende vorbestimmte Nachricht des ersten Dienstes in dem Dienste-Wandler in eine Dateneingabe eines dem ersten Dienst zugeordneten zweiten Dienst gewandelt wird. Vorzugsweise werden dabei die am Dienste-Wandler eingehenden Nachrichten periodisch erzeugt. Gemäß dieser Variante der Erfin- düng können auf einfache Weise über einen Subskriptions- Mechanismus Daten eines ersten Dienstes einem zweiten Dienst bereitgestellt werden.In a further embodiment of the method according to the invention, the service converter subscribes to predetermined messages of a first service, a predetermined message of the first service arriving in the service converter in the service converter being converted into a data input of a second service associated with the first service , Preferably, the messages arriving at the service converter are generated periodically. According to this variant of the invention, data of a first service can be provided to a second service in a simple manner via a subscription mechanism.
In einer weiteren, besonders bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens sind die ersten und/oder zweiten Dienste zumindest teilweise auf dem Dienste-Wandler implementiert. Insbesondere können die zweiten Dienste als virtuelle Dienste implementiert werden, über welche die Wandlung von eingehenden Nachrichten erster Dienste in entsprechende Da- teneingaben zweiter Dienste bzw. die Wandlung von Datenausgaben zweiter Dienste in ausgehende Nachrichten von ersten Diensten realisiert werden.In a further, particularly preferred embodiment of the method according to the invention, the first and / or second services are at least partially implemented on the service converter. In particular, the second services can be implemented as virtual services, via which the conversion of incoming messages of first services into corresponding data inputs of second services or the conversion of data outputs of second services into outgoing messages of first services are realized.
Die Erfindung betrifft ferner einen Dienste-Wandler zur Kom- munikation zwischen einer Anzahl von ersten Diensten und einer Anzahl von zweiten Diensten, wobei die Anzahl von ersten Diensten zu einer service-orientierten Architektur gehört, in
welcher ein jeweiliger Dienst über Nachrichten basierend auf einem Anfrage-Antwort-Mechanismus mittels eines ersten Protokolls bereitgestellt wird, und wobei die Anzahl von zweiten Diensten zu einer datengetriebenen Architektur gehört, in welcher die zweiten Dienste mittels eines zweiten Protokolls miteinander verschaltbar sind, wobei das zweite Protokoll Dateneingaben und Datenausgaben der zweiten Dienste und die Weiterleitung von Daten zwischen den zweiten Diensten spezifiziert .The invention further relates to a service converter for communication between a number of first services and a number of second services, the number of first services belonging to a service-oriented architecture which a respective service is provided via messages based on a request-response mechanism by means of a first protocol, and wherein the number of second services belongs to a data-driven architecture in which the second services are interconnectable by means of a second protocol, the second Protocol data entries and data outputs of the second services and the forwarding of data between the second services specified.
Der Dienste-Wandler umfasst dabei ein erstes Wandler-Mittel zum Wandeln einer in dem Dienste-Wandler eingehenden Nachricht eines ersten Dienstes in eine Dateneingabe eines dem ersten Dienst zugeordneten zweiten Dienstes und/oder ein zweites Wandler-Mittel zum Wandeln einer in dem Dienste- Wandler eingehenden Datenausgabe eines zweiten Dienstes in eine von dem Dienste-Wandler ausgehende Nachricht eines dem zweiten Dienst zugeordneten ersten Dienstes.The service converter in this case comprises a first converter means for converting a message of a first service incoming in the service converter into a data input of a second service associated with the first service and / or a second converter means for converting one in the service converter incoming data output of a second service in a outgoing from the service converter message of the second service associated with the first service.
Vorzugsweise ist der Dienste-Wandler derart ausgestaltet, dass mit dem Dienste-Wandler eine oder mehrere der oben beschriebenen bevorzugten Ausführungsformen des erfindungsgemäßen Verfahrens durchführbar sind.Preferably, the service converter is configured such that one or more of the preferred embodiments of the inventive method described above can be carried out with the service converter.
Ausführungsbeispiele der Erfindung werden nachfolgend anhand der beigefügten Figuren detailliert beschrieben.Embodiments of the invention are described below in detail with reference to the accompanying drawings.
Es zeigen:Show it:
Fig. 1 ein Netz aus mehreren Netzknoten, in welche zweite Dienste eingebettet sind;1 shows a network of several network nodes, in which second services are embedded;
Fig. 2 das Netz der Fig. 1, welches die Ausführung von eingebetteten Diensten basierend auf einer Variante eines zweiten Protokolls zeigt;
Fig. 3 das Netz der Fig. 1, welches eine dynamische Replatzierung der eingebetteten Dienste wiedergibt;FIG. 2 shows the network of FIG. 1, showing the execution of embedded services based on a variant of a second protocol; FIG. Fig. 3 shows the network of Fig. 1, which represents a dynamic repositioning of the embedded services;
Fig. 4 eine schematische Darstellung einer Kommunikation zwischen ersten und zweiten Diensten mittels eines Dienste-Wandlers gemäß einer Ausführungsform der Erfindung;4 shows a schematic representation of a communication between first and second services by means of a service converter according to an embodiment of the invention;
Fig. 5 bis Fig. 8 verschiedene Ausprägungen des erfindungsgemäßen Verfahrens zur Kommunikation zwischen einem ersten und einem zweiten Dienst;FIGS. 5 to 8 show different forms of the method according to the invention for communication between a first and a second service;
Fig. 9 eine schematische Darstellung eines Beispielszenarios basierend auf einer Jalousie-Kontrolle, in der zweite Dienste mittels einer Dienste-Verkettung ausgeführt werden;9 is a schematic illustration of an example scenario based on a blind control in which second services are executed by means of service chaining;
Fig. 10 eine schematische Darstellung einer Ausführungsform der Erfindung, bei der ein erster Dienst auf den Dienste-Wandler über ein WSDL-Dokument realisiert wird; undFig. 10 is a schematic representation of an embodiment of the invention in which a first service to the service converter is realized via a WSDL document; and
Fig. 11 eine schematische Darstellung, welche dieFig. 11 is a schematic representation which the
Wandlung von Nachrichten gemäß dem ersten Protokoll in Dateneingaben bzw. Datenausgaben gemäß dem zweiten Protokoll verdeutlicht .Conversion of messages according to the first protocol in data inputs or data outputs according to the second protocol illustrates.
Bevor auf die erfindungsgemäße Kommunikation zwischen ersten und zweiten Diensten eingegangen wird, erfolgt anhand von Fig. 1 bis Fig. 3 die Beschreibung von datengetriebenen Diensten in der Form von eingebetteten Diensten in einem Netz
aus mehreren Netzknoten. Gemäß Fig. 1 umfasst dieses Netz die Netzknoten Nl, N2, N3, N4 und N5, welche verschiedene Arten von Geräten darstellen können, die drahtlos und/oder drahtgebunden miteinander kommunizieren können. Insbesondere können die Netzknoten Sensoren, Aktoren, reine Rechnereinheiten sowie eine Kombination aus diesen Geräten darstellen. Auf einigen der Knoten sind zweite Dienste implementiert, welche durch Zahnräder mit Bezugszeichen SEI, SE2, SE3, SE4 und SE5 angedeutet sind. Auf diese Weise wird eine Mehrzahl von zwei- ten Diensten in dem Netz verteilt, wobei diese zweiten Dienste über ein zweites Protokoll miteinander kommunizieren können und miteinander verschaltet werden können. Dieses zweite Protokoll basiert auf einer datengetriebenen Kommunikation in dem Netz der Fig. 1. Bei dieser Kommunikation kann das Emp- fangen von einem Datum den Verarbeitungsschritt des Weiter- sendens von Daten initiieren. Diese Art von Datenverarbeitung wird verwendet, da damit geringe Verzögerungen und geringer Kommunikationsaufwand zwischen den Netzknoten des Netzes verbunden sind.Before discussing the communication according to the invention between first and second services, the description of data-driven services in the form of embedded services in a network will be described with reference to FIGS. 1 to 3 from several network nodes. According to FIG. 1, this network comprises the network nodes N1, N2, N3, N4 and N5, which can represent different types of devices that can communicate with each other wirelessly and / or by wire. In particular, the network nodes can represent sensors, actuators, pure computer units and a combination of these devices. Second services are implemented on some of the nodes, which are indicated by gears labeled SEI, SE2, SE3, SE4 and SE5. In this way, a plurality of second services are distributed in the network, wherein these second services can communicate with each other via a second protocol and can be interconnected with each other. This second protocol is based on data-driven communication in the network of FIG. 1. In this communication, receiving a datum may initiate the processing step of forwarding data. This type of data processing is used because it involves low delays and low communication overhead between the network nodes of the network.
Die Kommunikation zwischen den einzelnen zweiten Diensten gemäß dem zweiten Protokoll läuft derart ab, dass für jeden Dienst eine Dateneingabe und eine Datenausgabe spezifiziert ist und über das Protokoll für eine Datenausgabe eines jewei- ligen zweiten Dienstes festgelegt wird, an welche Dienste die ausgegebenen Daten als entsprechende Dateneingaben weitergeleitet werden sollen. Auf diese Weise werden die Dienste extern über das zweite Protokoll miteinander verschaltet, wobei das Wissen über die Weiterleitung von Daten zwischen den Diensten über entsprechend spezifizierte Datenpfade zwischen den Diensten festgelegt ist. Den einzelnen Diensten ist dabei nicht bekannt, an welchen Dienst ihre Datenausgabe weitergeleitet wird bzw. von welchem Dienst sie eine Dateneingabe empfangen. Dieses Wissen ist basierend auf einer Middleware durch das zweite Protokoll spezifiziert. Hierdurch wird der Vorteil erreicht, dass ohne die Veränderung von Diensten die Verkettung der Dienste in geeigneter Weise über die Anpassung
mittels des zweiten Protokolls spezifizierten Datenpfade verändert werden kann.The communication between the individual second services according to the second protocol proceeds in such a way that for each service a data input and a data output are specified and via the protocol for a data output of a respective second service it is determined to which services the output data is corresponding Data input should be forwarded. In this way, the services are interconnected externally via the second protocol, where the knowledge about the routing of data between the services is determined via correspondingly specified data paths between the services. It is not known to the individual services to which service their data output is forwarded or from which service they receive a data input. This knowledge is specified based on a middleware by the second protocol. As a result, the advantage is achieved that without the change of services, the concatenation of services in an appropriate manner on the adjustment can be changed by means of the second protocol specified data paths.
Basierend auf einer Spezifikation der Verkettung von zweiten Diensten über das zweite Protokoll können verschiedene Optimierungen bei der Übertragung von Daten zwischen den einzelnen Diensten implementiert werden. Insbesondere können in dem Netz optimierte Datenwege mit möglichst geringer Menge an übertragenen Daten implementiert werden. Wird z.B. ein Daten- wert von mehr als einem Dienst verwendet, so wird ein optimierter Datenpfad derart bestimmt, dass soweit möglich der Transport eines Datenpakets in Richtung zu dem Ziel nur einmal erfolgt und die Aufteilung auf mehrere Datenpakete an verschiedene Empfangsknoten an optimierten Stellen, z.B. so spät wie möglich, durchgeführt wird. Hierfür werden dieBased on a specification of the second service chaining of the second protocol, various optimizations in the transmission of data between the individual services can be implemented. In particular, optimized data paths with the least possible amount of transmitted data can be implemented in the network. If e.g. If a data value of more than one service is used, then an optimized data path is determined such that as far as possible the transport of a data packet towards the destination takes place only once and the division into several data packets to different receiving nodes at optimized locations, e.g. as late as possible. For this purpose, the
Strukturen der verschiedenen, über verteilte Dienste realisierten Applikationen an einer oder mehreren zentralen Stellen im Netz gesammelt und dort auf mögliche Überlappungen der Datenwege hin untersucht und optimiert. Aufgrund der Ergeb- nisse dieser Analyse werden Weiterleitungsvorschriften ermittelt, die basierend auf einer entsprechenden Quelladresse des Dienstes einen oder mehrere Dienste bzw. Knoten für die Weiterleitung angeben. Es werden in dem Verfahren somit Quelladressen verwendet, die nicht den sendenden Netzknoten spezifi- zieren, sondern den sendenden Dienst kennzeichnen. Darüber hinaus kann für die Quelladressierung auch ein Kennzeichner des Dateninhalts oder dessen Typs verwendet werden.Structures of the various applications realized via distributed services are collected at one or more central points in the network and there examined for possible overlaps of the data paths and optimized. Based on the results of this analysis, forwarding rules are determined that specify one or more services or nodes for forwarding based on a corresponding source address of the service. Thus, in the method, source addresses are used which do not specify the transmitting network node but identify the transmitting service. In addition, an identifier of the data content or its type can be used for the source addressing.
Fig. 2 verdeutlicht die soeben beschriebene Optimierung. Da- bei wird gemäß einer ersten Applikation eine Dienste- Verkettung ausgehend von dem Dienst SEI zum Dienst SE4 realisiert und durch eine zweite Applikation eine Dienste-Verkettung ausgehend von dem Dienst SEI zum Dienst SE5. Gemäß einer Optimierung werden die übertragenen Daten zwischen den Diens- ten zunächst über die gemeinsamen Datenpfade DPI und DP2 übertragen und erst im Dienst SE3 erfolgt eine Aufteilung in die Datenpfade DP3 und DP4, wobei gemäß dem Datenpfad DP3 die
Daten zu dem Dienst SE5 und gemäß dem Datenpfad DP4 die Daten zu dem Dienst SE4 gelangen.Fig. 2 illustrates the optimization just described. In this case, according to a first application, a service chaining is realized starting from the service SEI to the service SE4, and a service chaining from the service SEI to the service SE5 is implemented by a second application. According to an optimization, the transmitted data between the services is first transmitted via the common data paths DPI and DP2, and only in the service SE3 is a division into the data paths DP3 and DP4 carried out, wherein according to the data path DP3 the Data about the service SE5 and according to the data path DP4 the data arrive at the service SE4.
In einer Ausprägung einer Optimierung der Datenübertragung wird ein Weiterleiten von Nachrichten zwischen den Netzknoten derart durchgeführt, dass eine möglichst weitgehende Kombination des Übertragungswegs für eine Nachricht an mehrere Empfänger basierend auf der Identifikation der Nachricht mit der Quelladresse und einer Zuordnung der Quelladresse zu empfan- genden Knoten bzw. Diensten realisiert wird. Dies führt zu einer Reduktion der Anzahl von Weiterleitungsvorschriften auf dem gemeinsamen Übertragungsweg.In one embodiment of an optimization of the data transmission, a forwarding of messages between the network nodes is carried out such that the greatest possible combination of the transmission path for a message to multiple recipients based on the identification of the message with the source address and an assignment of the source address to receiving nodes or services is realized. This leads to a reduction in the number of forwarding rules on the common transmission path.
In einer weiteren Variante einer Optimierung basierend auf dem zweiten Protokoll wird eine Replatzierung von in dem Netz verteilten Diensten realisiert, so dass die Dienste dynamisch von einem Netzknoten auf einen anderen verlegt werden und hierfür lediglich auf den neuen Datenpfaden zusätzlich notwendige Weiterleitungsvorschriften basierend auf den Quellad- ressen im Netz installiert werden. Diese Variante ist in Fig. 3 verdeutlicht. Man erkennt, dass im Unterschied zu Fig. 1 und Fig. 2 der Dienst SE2, der zunächst auf dem Knoten Nl war, nunmehr auf dem Knoten N3 liegt und der Dienst SE3, der vorher auf dem Dienst N4 war, nunmehr auf dem Knoten N5 liegt. Eine Applikation über eine Verkettung von dem Dienst SEI zum Dienst SE3 über den Dienst SE2 ist dabei durch die Datenpfade DP5 und DP6 angedeutet.In a further variant of an optimization based on the second protocol, a repositioning of services distributed in the network is realized, so that the services are moved dynamically from one network node to another and additionally forwarding instructions based on the source address, which are additionally required on the new data paths. be installed in the network. This variant is illustrated in FIG. It can be seen that, in contrast to FIG. 1 and FIG. 2, the service SE2, which was initially on the node N1, now lies on the node N3 and the service SE3, which was previously on the service N4, now on the node N5 lies. An application via a concatenation of the service SEI to the service SE3 via the service SE2 is indicated by the data paths DP5 and DP6.
Durch die Vermeidung einer redundanten Überlagerung von Daten basierend auf der oben beschriebenen Optimierung lassen sich in Netzen mit komplexen verteilten Applikationen erhebliche Einsparungen an Bandbreite für die Kommunikation erzielen. Dies bedeutet besonders bei drahtlosen Netzknoten mit Batterieversorgung auch eine erhebliche Reduzierung des Energie- Verbrauchs und damit in vielen Fällen eine längere Batterielaufzeit. Für die Dienste ergibt sich weiterhin der Vorteil, dass sie ihre Kommunikationspartner nicht explizit kennen und
verwalten müssen. Die gesamte Kommunikationsstruktur wird in der Weiterleitungsvorschriften abgebildet, die außerhalb der Dienste unter Verwendung eines zweiten Protokolls implementiert werden, wobei dieses zweite Protokoll die Dienste über entsprechende Kennzeichner verwaltet und Datenpfade zwischen den einzelnen Diensten spezifiziert.By avoiding redundant overlay of data based on the optimization described above, networks with complex distributed applications can achieve significant communication bandwidth savings. This means especially for wireless network nodes with battery power also a significant reduction in energy consumption and thus in many cases a longer battery life. For the services, there is the further advantage that they do not explicitly know their communication partners and need to manage. The entire communication structure is mapped in the routing rules implemented outside of the services using a second protocol, this second protocol managing the services via corresponding identifiers and specifying data paths between the individual services.
Fig. 4 zeigt in schematischer Darstellung eine Ausführungsform des erfindungsgemäßen Verfahrens, basierend auf dem die beispielhaft anhand von Fig. 1 bis Fig. 3 beschriebenen zweiten Dienste einer datengetriebenen Architektur mit ersten Diensten basierend auf einer an sich bekannten service-orien- tierten Architektur (englisch: SOA = Service Oriented Archi- tecture) kommunizieren können. Die datengetriebene Architek- tur DA ist im unteren Teil der Fig. 4 angedeutet und die ser- vice-orientierte Architektur SA im oberen Teil der Fig. 4. Netzknoten in der datengetriebenen Architektur sind wiederum mit entsprechenden Bezugszeichen Nl, N2, N3, N4 und N5 bezeichnet. Ebenso sind zweite Dienste in der Form von einge- betteten Diensten mit entsprechenden Bezugszeichen SEI, SE2, SE3, SE4, SE5 und SE6 bezeichnet. Demgegenüber sind erste Dienste in der service-orientierten Architektur SA mit WSl, WS2 und WS3 bezeichnet, wobei in der Ausführungsform der Fig. 4 die ersten Dienste in der Form von an sich bekannten Web- Services realisiert sind. Ferner ist ein Client-Rechner in der service-orientierten Architektur SA mit C bezeichnet. Über diesen Rechner können entsprechende Web-Services aufgerufen werden. Die service-orientierte Architektur SA und die datengetriebene Architektur DA sind über einen Dienste- Wandler in der Form einer Service-Bridge SB miteinander verknüpft, wobei auf der Service-Bridge selbst Webservices bzw. zweite Dienste implementiert sein können. In Fig. 4 stellen der Web-Service WS3 und der zweite Dienst SE6 Dienste dar, welche auf der Service-Bridge SB installiert sind.FIG. 4 shows a schematic representation of an embodiment of the method according to the invention, based on the second services of a data-driven architecture with first services described by way of example with reference to FIGS. 1 to 3, based on a service-oriented architecture known per se (cf. : SOA = Service Oriented Architecture). The data-driven architecture DA is indicated in the lower part of FIG. 4 and the service-oriented architecture SA in the upper part of FIG. 4. Network nodes in the data-driven architecture are again denoted by corresponding reference symbols N1, N2, N3, N4 and N5 denotes. Likewise, second services in the form of embedded services are designated by corresponding reference symbols SEI, SE2, SE3, SE4, SE5 and SE6. In contrast, first services in the service-oriented architecture SA are designated WS1, WS2 and WS3, wherein in the embodiment of FIG. 4 the first services are implemented in the form of known web services. Furthermore, a client computer in the service-oriented architecture SA is designated C. Via this computer appropriate web services can be called up. The service-oriented architecture SA and the data-driven architecture DA are linked to one another via a service converter in the form of a service bridge SB, wherein web services or second services can be implemented on the service bridge itself. In Fig. 4, the web service WS3 and the second service SE6 represent services installed on the service bridge SB.
Die Kommunikation mit einem Web-Service in der serviceorientierten Architektur SA beruht auf einem Request-
Response-Mechanismus, gemäß dem eine Anfrage durch einen Client an einen Web-Service gerichtet werden kann, woraufhin die Anfrage durch eine entsprechende Antwort beantwortet wird. Die Anfragen und Antworten stellen dabei Nachrichten gemäß einem Protokoll der service-orientierten Architektur dar. In einer besonders bevorzugten Ausführungsform sind diese Nachrichten sog. SOAP-Nachrichten (SOAP = Simple Object Access Protocol) , welche hinlänglich aus dem Stand der Technik bekannt sind. Die Service-Bridge beinhaltet zwei Module Ml und M2, wobei das Modul Ml dazu dient, eine aus der service-orientierten Architektur eingehende Nachricht SA in eine entsprechende Dateneingabe an einen eingebetteten Dienst der datengetriebenen Architektur DA umzuwandeln. Demgegenüber dient das Modul M2 dazu, eine aus der datengetriebenen Archi- tektur DA eingehende Datenausgabe eines entsprechenden eingebetteten Dienstes in eine geeignete Nachricht der serviceorientierten Architektur SA umzuwandeln. In Fig. 4 sind ferner Eingänge El und E2 der Dienste SEI und SE2 sowie Ausgänge Al und A2 der Dienste SEI und SE2 angedeutet, wobei ferner beispielhaft eine Dateneingabe an dem Eingang El mit einem Pfeil Pl, eine Datenübertragung von dem Ausgang Al zu dem Eingang E2 mit dem Pfeil P2 und eine Datenausgabe an dem Ausgang A2 mit dem Pfeil P3 angedeutet ist.Communication with a web service in the service-oriented architecture SA is based on a request Response mechanism according to which a request can be made by a client to a web service, whereupon the request is answered by an appropriate response. The requests and responses thereby represent messages according to a protocol of the service-oriented architecture. In a particularly preferred embodiment, these messages are so-called SOAP messages (SOAP = Simple Object Access Protocol), which are sufficiently known from the prior art. The service bridge comprises two modules M1 and M2, the module M1 serving to convert a message SA arriving from the service-oriented architecture into a corresponding data input to an embedded service of the data-driven architecture DA. In contrast, the module M2 serves to convert a data output from a data-driven architecture DA of a corresponding embedded service into a suitable message of the service-oriented architecture SA. Also indicated in FIG. 4 are inputs E1 and E2 of the services SE1 and SE2 and outputs A1 and A2 of the services SE1 and SE2, further exemplifying data input at the input El with an arrow P1, data transmission from the output A1 to the input E2 with the arrow P2 and a data output at the output A2 with the arrow P3 is indicated.
Nachfolgend werden vier Varianten a) bis d) von Realisierungen des erfindungsgemäßen Verfahrens basierend auf einer Kommunikation über die Service-Bridge SB beschrieben.In the following, four variants a) to d) of implementations of the method according to the invention based on a communication via the service bridge SB will be described.
In der Variante a) stellt der Client C eine Web-Service- Anfrage an einen der Web-Services der service-orientierten Architektur SA. Diese Web-Service-Anfrage ist mit einer Dateneingabe an dem Eingang El des ersten eingebetteten Dienstes SEI verknüpft. Die Service-Bridge SB leitet dabei die Anfrage an den Eingang El des adressierten eingebetteten Diens- tes SEI weiter, indem sie aus der Anfrage eine entsprechende Dateneingabe gemäß dem zweiten Protokoll der datengetriebenen Architektur generiert. In einer Variante al) entspricht die
Datenausgabe am Ausgang Al des eingebetteten Dienstes SEI einer entsprechenden Antwort des in der service-orientierten Architektur angesprochenen Web-Services. In diesem Fall erstellt die Service-Bridge unmittelbar eine Antwort in Abhän- gigkeit von der Datenausgabe am Ausgang Al des eingebetteten Dienstes SEI und sendet diese über den durch die Anfrage angesprochenen Web-Service an den Client C. In einer weiteren Variante a2) ist die über den durch den Client C angesprochenen Web-Service zu sendende Antwort mit der Datenausgabe an dem Ausgang A2 des zweiten eingebetteten Dienstes SE2 verknüpft. In diesem Fall schickt die Service-Bridge SB die entsprechende Antwort an den anfragenden Client C zurück, sobald das Ausgangsdatum am Ausgang A2 des zweiten eingebetteten Dienstes SE2 entsprechend einer Verkettung der eingebetteten Dienste ankommt und von dort an die Service-Bridge übermittelt wird. Auf diese Weise erfolgt eine Abbildung einer verteilten Ausführung von eingebetteten Diensten der datengetriebenen Architektur DA auf einen Web-Service der serviceorientierten Architektur.In variant a), the client C makes a web service request to one of the web services of the service-oriented architecture SA. This web service request is associated with a data input at the input El of the first embedded service SEI. The service bridge SB forwards the request to the input El of the addressed embedded service SEI by generating a corresponding data input from the request in accordance with the second protocol of the data-driven architecture. In a variant al) corresponds to Data output at the output Al of the embedded service SEI a corresponding response of the addressed in the service-oriented architecture web services. In this case, the service bridge immediately generates a response as a function of the data output at the output A1 of the embedded service SEI and sends it via the web service addressed by the request to the client C. In a further variant a2), the linked via the addressed by the client C web service response to the data output at the output A2 of the second embedded service SE2. In this case, the service bridge SB sends the corresponding response back to the requesting client C as soon as the output data arrives at the output A2 of the second embedded service SE2 according to a concatenation of the embedded services and is transmitted from there to the service bridge. In this way, a mapping of a distributed execution of embedded services of the data-driven architecture DA to a service-oriented architecture web service takes place.
In einer zweiten Variante b) sind Web-Services über die Service-Bridge SB abrufbar und durch Dienste-Verkettungen realisiert, so dass kontinuierlich Zustandsinformationen oder Ausgangssignale der eingebetteten Dienste auf der Service-Bridge zwischengespeichert werden. Hierzu wird ein geeigneter Cache verwendet, der in der Service-Bridge installiert ist bzw. dieser zugeordnet ist. Ein Client C stellt wiederum eine Anfrage an einen Web-Service der service-orientierten Architektur. Diese Anfrage ist wiederum mit dem Eingang El des ersten eingebetteten Dienstes SEI und einem Ausgang A2 des zweiten eingebetteten Dienstes SE2 verknüpft. Hierdurch wird wiederum eine Verkettung von Diensten in der datengetriebenen Architektur realisiert. Die Service-Bridge SB antwortet auf die vom Client gesendete Anfrage mit Ausgangswerten des zweiten eingebetteten Dienstes, wobei diese Ausgangswerte in dem Cache zwischengespeichert sind.
In einer dritten Variante c) wird die Service-Bridge SB als Teil einer Dienste-Verkettung innerhalb der datengetriebenen Architektur DA konfiguriert. Dabei wird der Ausgang Al des ersten Dienstes SEI mit der Service-Bridge verbunden, welche das Ausgangssignal als Anfrage an einen Web-Service der ser- vice-orientierten Architektur weiterleitet. Des Weiteren kann die Service-Bridge SB mit dem Eingang E2 des zweiten eingebetteten Dienstes SE2 verbunden sein, so dass die Antwort des genannten Web-Services an diesen Eingang weitergeleitet wird. Durch diese Variante wird somit ein Web-Service aus der ser- vice-orientierten Architektur in der datengetriebenen Architektur zur Verfügung gestellt.In a second variant b), web services can be called up via the service bridge SB and realized by service links, so that state information or output signals of the embedded services are buffered continuously on the service bridge. For this purpose, a suitable cache is used, which is installed in the service bridge or assigned to it. A client C in turn makes a request to a service-oriented architecture web service. This request is in turn linked to the input El of the first embedded service SEI and an output A2 of the second embedded service SE2. This in turn realizes a chain of services in the data-driven architecture. The service bridge SB responds to the request sent by the client with output values of the second embedded service, these output values being cached in the cache. In a third variant c), the service bridge SB is configured as part of a service chaining within the data-driven architecture DA. In this case, the output A1 of the first service SEI is connected to the service bridge, which forwards the output signal as a request to a web service of the service-oriented architecture. Furthermore, the service bridge SB may be connected to the input E2 of the second embedded service SE2, so that the response of said web service is forwarded to this input. This variant thus provides a web service from the service-oriented architecture in the data-driven architecture.
In der vierten Variante d) wird die Service-Bridge SB wieder- um als Teil einer Dienste-Verkettung konfiguriert, indem die Service-Bridge SB mit dem Eingang El des eingebetteten Dienstes SEI verbunden wird, so dass Antwort-Nachrichten eines Web-Services der service-orientierten Architektur SA an diesen Eingang weitergeleitet werden. Des Weiteren wird die Ser- vice-Bridge für die Dienste-Verkettung so konfiguriert, dass sie bestimmte Web-Service-Anfragen absetzt, so dass die Web- Service-Antworten an den Eingang des eingebetteten Dienstes El weitergeleitet werden. Hierdurch wird durch die Service- Bridge ein Web-Service in der datengetriebenen Architektur DA verfügbar gemacht.In the fourth variant d), the service bridge SB is again configured as part of a service chain by connecting the service bridge SB to the input El of the embedded service SEI, so that response messages of a web service of the service-oriented architecture SA are forwarded to this input. Furthermore, the service chaining service bridge is configured to dispatch certain web service requests so that the web service responses are forwarded to the input of the embedded service El. As a result, the service bridge makes a web service available in the data-driven architecture DA.
Die über die Service-Bridge SB zugänglichen eingebetteten Dienste können z.B. über eine URI (URI = Universal Ressource Indicator) identifiziert und adressiert werden. In einer be- vorzugten Ausführungsform stellt diese URI direkt die Adresse des entsprechenden eingebetteten Dienstes dar. In einer weiteren Variante kann die URI auch einen Dienst der Service- Bridge adressieren, der wiederum über in der Anfrage stehende Informationen den gewünschten eingebetteten Dienst adres- siert.
Die oben beschriebenen Fälle a) und b) können in einer bevorzugten Ausführungsform auch kombiniert werden, so dass eine Web-Service-Anfrage aus der service-orientierten Architektur mit einem in der Service-Bridge zwischengespeicherten Wert beantwortet wird. In einer weiteren bevorzugten Ausführungsform basieren die Web-Service-Nachrichten in der serviceorientierten Architektur auf textuellen XML-Nachrichten, wohingegen die Dateneingaben bzw. Datenausgaben in der datengetriebenen Architektur binäre XML-Nachrichten enthalten, wobei in der entsprechenden Nachricht des zweiten Protokolls ferner spezifiziert ist, ob die Nachricht eine Dateneingabe oder eine Datenausgabe ist und zu welchem zweiten Dienst sie gehört. Durch den Web-Service wird dabei eine entsprechende Wandlung von textuellen XML-Nachrichten in binäre XML-Nachrichten und umgekehrt realisiert. Insbesondere kann die Service-Bridge Web-Service-Nachrichten gemäß dem SOAP-Protokoll ein- und auspacken und basierend auf einer entsprechenden Wandlung an eingebettete Dienste bzw. Web-Services weiterleiten.The embedded services accessible via the service bridge SB can, for example, be identified and addressed via a URI (Universal Resource Indicator). In a preferred embodiment, this URI directly represents the address of the corresponding embedded service. In a further variant, the URI can also address a service of the service bridge, which in turn addresses the desired embedded service via information in the request. The above-described cases a) and b) can also be combined in a preferred embodiment so that a web service request from the service-oriented architecture is answered with a value buffered in the service bridge. In a further preferred embodiment, the Web service messages in the service-oriented architecture are based on textual XML messages, whereas the data inputs in the data-driven architecture contain binary XML messages, wherein the corresponding message of the second protocol also specifies whether the message is a data input or a data output and to which second service it belongs. The web service implements a corresponding conversion of textual XML messages into binary XML messages and vice versa. In particular, the service bridge can wrap and unpack web service messages in accordance with the SOAP protocol and forward them to embedded services or web services based on a corresponding conversion.
Die Verknüpfung von Anfragen und Antworten von Web-Services mit Dateneingaben und Datenausgaben von eingebetteten Diensten kann z.B. über ein WSDL-Dokument erreicht werden. Dieses Dokument, welches von der Service-Bridge zur Verfügung gestellt wird, beschreibt für einen entsprechenden Web-Service die erwartete Anfrage sowie die darauf basierende Antworten, welche in der Service-Bridge mit einer entsprechenden Dateneingabe eines Dienstes und einer entsprechenden Datenausgabe eines Dienstes verknüpft werden. In der Bridge ist dabei ferner die entsprechende Verkettung der Dienste von dem Dienst, an dem die Dateneingabe erfolgt, bis zu dem Dienst, an dem die Datenausgabe erfolgt, spezifiziert. Die Verkettung kann in geeigneter Weise optimiert werden, wie weiter oben in Bezug auf Fig. 1 bis Fig. 3 beschrieben wurde. In einer weiteren Ausführungsform muss das WSDL-Dokument nicht bereits in der Service-Bridge verfügbar sein, sondern wird erst bei Bedarf, d.h. bei einer entsprechenden Adressierung des Web- Services über eine URI, generiert.
In einer weiteren Ausführungsform kann der Zugriff auf eingebettete Dienste über Web-Services gemäß den obigen Varianten a) und b) auf bestimmte Dienste beschränkt werden. Ferner kann gegebenenfalls eine Web-Service-Anfrage aus Datenausgaben mehrerer eingebetteter Dienste auf der Service-Bridge kompiliert werden und/oder es werden ein oder mehrere Teile der Web-Service-Antworten jeweils einer oder mehreren Dateneingaben von eingebetteten Diensten zugeordnet.The linking of queries and responses of web services with data input and data output from embedded services can, for example, be achieved via a WSDL document. This document, which is provided by the service bridge, describes for an appropriate web service the expected request and the responses based thereon, which are linked in the service bridge with a corresponding data input of a service and a corresponding data output of a service , The bridge also specifies the corresponding concatenation of the services from the service at which the data input takes place to the service at which the data output takes place. The concatenation can be optimized in a suitable way, as described above with reference to FIGS. 1 to 3. In another embodiment, the WSDL document does not already have to be available in the service bridge, but is only generated when needed, ie when the web service is addressed via a URI. In a further embodiment, access to embedded services via web services according to the above variants a) and b) may be restricted to certain services. Further, if desired, a web service request may be compiled from data outputs of multiple embedded services on the service bridge, and / or one or more portions of the web service responses are each associated with one or more data inputs from embedded services.
Im Folgenden werden zur Verdeutlichung anhand von Fig. 5 bis Fig. 8 Szenarien der Kommunikation der Service-Bridge SB mit Web-Services und eingebetteten Diensten beschrieben. Fig. 5 und Fig. 6 zeigen dabei Ausführungsbeispiele der oben be- schriebenen Varianten a) und b) , wohingegen Fig. 7 und Fig. 8 weitergehende Varianten einer erfindungsgemäßen Kommunikation verdeutlichen. In den Szenarien der Fig. 5 bis Fig. 8 sind alle Nachrichten, die auf der linken Seite der als Raute wiedergegebenen Service-Bridge SB ausgetauscht werden, SOAP- Nachrichten (SOAP = Simple Object Access Protocol) , wohingegen alle Nachrichten auf der rechten Seite der Service-Bridge SB als Dateneingaben bzw. Datenausgaben gemäß dem zweiten Protokoll der datengetriebenen Architektur spezifiziert werden. Der Aufbau der Nachrichten des zweiten Protokolls ist dabei derart, dass in der Nachricht zum einen spezifiziert wird, ob es sich bei der Nachricht um eine Dateneingabe oder eine Datenausgabe handelt, und zum anderen, welchem Dienst die Dateneingabe bzw. Datenausgabe zugeordnet ist.In the following, for the sake of clarity, scenarios of the communication of the service bridge SB with web services and embedded services will be described with reference to FIGS. 5 to 8. FIG. 5 and FIG. 6 show exemplary embodiments of the above-described variants a) and b), whereas FIG. 7 and FIG. 8 illustrate further variants of a communication according to the invention. In the scenarios of FIGS. 5 through 8, all messages exchanged on the left side of the service-bridge SB rendered as a diamond are SOAP messages (SOAP = Simple Object Access Protocol), whereas all messages are on the right-hand side the service bridge SB are specified as data inputs or data outputs according to the second protocol of the data-driven architecture. The structure of the messages of the second protocol is such that in the message it is specified on the one hand, whether it is the message is a data input or a data output, and on the other hand, which service the data input or data output is assigned.
In der Variante gemäß Fig. 5 richtet der Client C eine Web- Service-Anfrage RE an einen Web-Service, der auf der Service- Bridge SB läuft. Diese Anfrage wird als eine entsprechende Dateneingabe DI an den eingebetteten Dienst SEI weitergeleitet, woraufhin der eingebettete Dienst SEI eine Datenausgabe DO an seinem Ausgang erzeugt, welche über die Service-Bridge SB in eine Antwort-Nachricht RS des Web-Services gewandelt wird. Gemäß der Variante der Fig. 5 werden somit eingehende
Web-Service-Anfragen in Dateneingaben in der datengetriebenen Architektur DA übersetzt. Die Web-Service-Anfragen werden dabei aufgeschoben, bis die angefragten Daten an der Service- Bridge ankommen. Auf die Ankunft der Daten hin wird die auf- geschobene Anfrage-Nachricht RE reaktiviert und eine geeignete Web-Service-Antwort-Nachricht RS wird erzeugt, die dann an den Client C übertragen wird. Aus Sicht des Clients verhält sich der eingebettete Dienst SEI wie ein anfragbarer (englisch: pullable) Web-Service.In the variant according to FIG. 5, the client C directs a web service request RE to a web service which runs on the service bridge SB. This request is forwarded as a corresponding data input DI to the embedded service SEI, whereupon the embedded service SEI generates a data output DO at its output, which is converted via the service bridge SB into a response message RS of the web service. According to the variant of FIG. 5 are thus incoming Web service requests translated into data entries in the data-driven architecture DA. The web service requests are postponed until the requested data arrives at the service bridge. Upon the arrival of the data, the deferred request message RE is reactivated and an appropriate web service response message RS is generated, which is then transmitted to the client C. From the point of view of the client, the embedded service SEI behaves like a requestable web service.
In dem Szenario der Fig. 6 wird ein Zwischenspeicher in der Form eines Caches CA genutzt. Über den Cache CA werden gespeicherte Daten abgerufen, insbesondere im Falle, dass eingebettete Dienste nicht getriggert werden können, um bei- spielsweise Messwerte zu liefern. In dem Szenario der Fig. 6 wird wiederum eine Anfrage-Nachricht RE eines Clients C an die Service-Bridge SB gesendet. Die Anfrage-Nachricht RE wird in der Service-Bridge SB zurückgestellt und es wird eine der Anfrage entsprechende Dateneingabe DI erzeugt, die nunmehr jedoch nicht direkt an den eingebetteten Dienst SEI gerichtet wird, sondern an den Cache CA, in dem Daten des eingebetteten Dienstes SEI zwischengespeichert sind. Diese Daten werden im Rahmen von periodischen Aktualisierungen PA von dem eingebetteten Dienst SEI an den Cache CA übermittelt. Die Dateneinga- be DI an den Cache löst wiederum eine Datenausgabe DO aus, gemäß der die entsprechend zwischengespeicherten Daten des eingebetteten Dienstes SEI an die Service-Bridge SB übertragen werden. Um kurze Antwortzeiten für den Client C zu gewährleisten, wird der Cache als eigener eingebetteter Dienst zur Verfügung gestellt, der den aktuellsten, vom eingebetteten Dienst SEI bereitgestellten Messwert speichert. Der Cache ist auf diese Weise analog zu dem eingebetteten Dienst SEI gemäß der Variante der Fig. 5 abfragbar.In the scenario of Fig. 6, a cache in the form of a cache CA is used. The cache CA retrieves stored data, especially in the event that embedded services can not be triggered, for example to provide readings. In the scenario of FIG. 6, in turn, a request message RE of a client C is sent to the service bridge SB. The request message RE is reset in the service bridge SB and a data input DI corresponding to the request is generated, which however is now directed not directly to the embedded service SEI, but to the cache CA in which data of the embedded service SEI are cached. These data are transmitted to the cache CA by the embedded service SEI as part of periodic updates PA. The data input DI to the cache in turn triggers a data output DO, according to which the corresponding buffered data of the embedded service SEI are transmitted to the service bridge SB. To ensure short response times for the client C, the cache is provided as a separate embedded service that stores the most recent metric provided by the embedded service SEI. The cache can be queried in this way analogously to the embedded service SEI according to the variant of FIG. 5.
Fig. 7 zeigt ein Szenario, bei dem periodisch durch einen Client C Daten eines eingebetteten Dienstes SEI abgerufen werden. Der Client abonniert/subskribiert dabei die von ihm
gewünschten Daten, die der entsprechende eingebettete Dienst SEI bereitstellt, über eine Subskription SU an einem Web- Service der Service-Bridge. Die Subskription kann beispielsweise mittels eines hinlänglich aus dem Stand der Technik be- kannten WS-Eventing (WS = Web Service) realisiert werden.Fig. 7 shows a scenario in which data of an embedded service SEI is periodically retrieved by a client C. The client subscribes / subscribes to it by him desired data provided by the corresponding embedded service SEI via a subscription SU to a service bridge web service. The subscription can be realized, for example, by means of a WS-Eventing (WS = Web Service) well-known from the state of the art.
Dieses WS-Eventing ist eine spezielle Abonnement-Methode des Standard-Web-Service. Die durch den eingebetteten Dienst SEI generierten Daten werden zur Service-Bridge SB über Datenausgaben DO in der Form von periodischen Datenzustellungen über- tragen. An der Service-Bridge SB werden die Daten in periodische Mitteilungen PN (z.B. WS-Eventing-Notifications) umgewandelt und an den Client C weitergeleitet.This WS-Eventing is a special subscription method of the standard web service. The data generated by the embedded service SEI are transmitted to the service bridge SB via data outputs DO in the form of periodic data deliveries. At the service bridge SB, the data is converted into periodic messages PN (e.g., WS-Eventing Notifications) and forwarded to the client C.
In dem Szenario der Fig. 8 erfolgt eine periodische Datenzu- Stellung an den eingebetteten Dienst SEI. Dabei subskribiert sich die Service-Bridge SB über eine entsprechende Subskription SU auf einen Web-Service einer externen Datenquelle eines Clients C, beispielsweise wiederum mit dem oben beschriebenen WS-Eventing. Aufgrund dieser Subskription werden perio- dische Benachrichtigungen PN betreffend die Daten der externen Datenquelle an die Service-Bridge SB geliefert, welche diese Benachrichtigungen in ein entsprechendes Nachrichtenformat in der datengetriebenen Architektur DA umwandelt und als Dateneingaben DI in der Form von periodischen Datenüber- tragungen an den eingebetteten Dienst SEI sendet.In the scenario of FIG. 8, a periodic data entry is made to the embedded service SEI. In this case, the service bridge SB subscribes via a corresponding subscription SU to a web service of an external data source of a client C, again with the WS-eventing described above. On the basis of this subscription, periodic notifications PN concerning the data of the external data source are supplied to the service bridge SB, which converts these notifications into a corresponding message format in the data-driven architecture DA and as data inputs DI in the form of periodic data transmissions to the embedded service sends SEI.
Im Folgenden wird anhand von Fig. 9 bis Fig. 11 eine konkrete Realisierung einer datengetriebenen Architektur in der Form einer Jalousie-Kontrolle beschrieben, wobei diese Architektur über eine Service-Bridge mittels eines Web-Services geeignet angesprochen werden kann. Die Kästchen der Fig. 9 stellen dabei eingebettete Dienste dar, welche jeweils mit Bezugszeichen SEI bis SE9 bezeichnet sind. Die fett umrandeten Dienste SEI und SE2 sind dabei sog. virtuelle Dienste, welche auf der Service-Bridge SB hinterlegt sind und Platzhalter für Web- Service-Interaktionen in einer service-orientierten Architektur darstellen. Der virtuelle Dienst SEI ist einem Nutzer-
Eingabe-Web-Service zugeordnet, wobei durch die Service- Bridge eine Anfrage an den Web-Service in eine Dateneingabe des Dienstes SEI gewandelt wird, der daraus eine entsprechende Datenausgabe des virtuellen Nutzer-Eingabe-Dienstes SEI erzeugt. Demgegenüber ist der virtuelle Dienst SE2 ein Ausgabe-Dienst, aus dessen Datenausgabe in der Service-Bridge die entsprechende Antwort des Nutzer-Eingabe-Web-Services generiert wird. Die weiteren, in Fig. 9 gezeigten Dienste müssen nicht in der Service-Bridge realisiert sein und haben folgen- de Funktionen:A specific realization of a data-driven architecture in the form of a blind control is described below with reference to FIGS. 9 to 11, wherein this architecture can be suitably addressed via a service bridge by means of a web service. The boxes of FIG. 9 represent embedded services, which are each designated by reference symbols SEI to SE9. The bold-edged services SEI and SE2 are so-called virtual services, which are stored on the service bridge SB and represent placeholders for web service interactions in a service-oriented architecture. The virtual service SEI is a user Assigned input Web service, wherein the service bridge a request to the Web service is converted into a data input of the service SEI, which generates a corresponding data output of the virtual user input service SEI. In contrast, the virtual service SE2 is an output service from whose data output in the service bridge the corresponding response of the user input web service is generated. The other services shown in FIG. 9 do not have to be implemented in the service bridge and have the following functions:
SE3 = WindsensorSE3 = wind sensor
SE4 = Helligkeits-SensorSE4 = brightness sensor
SE5 = Stopp-Sensor (oben) SE6 = Stopp-Sensor (unten)SE5 = stop sensor (top) SE6 = stop sensor (bottom)
SE7 = PriorisierungSE7 = prioritization
SE8 = Kontroll-LogikSE8 = control logic
SE9 = Motor.SE9 = engine.
Durch die oben beschriebenen Dienste wird eine Jalousie- Kontrolle erreicht, welche basierend auf einer Nutzer-Eingabe bzw. auf den Daten eines Windsensors bzw. eines Helligkeits- Sensors unter Berücksichtigung einer geeigneten Priorisierung der Daten mittels einer Kontroll-Logik einen Motor zum Her- auffahren und Herunterfahren einer Jalousie steuert, wobei über einen entsprechenden Stopp-Sensor (oben) die oberste Position der Jalousie erfasst wird und über einen entsprechenden Stopp-Sensor (unten) die unterste Position der Jalousie erfasst wird, woraufhin das Anhalten der Jalousie ausgelöst wird. In dem Netz der Dienste der Fig. 9 erfolgt eine Abarbeitung einer Interaktion durch die Dienste innerhalb einer Dienste-Verkettung, welche von links nach rechts läuft.By the services described above, a blind control is achieved, which based on a user input or on the data of a wind sensor or a brightness sensor, taking into account a suitable prioritization of the data by means of a control logic, a motor to start up and shutdown of a blind, whereby the uppermost position of the blind is detected by means of a corresponding stop sensor (top) and the lowest position of the blind is detected via a corresponding stop sensor (bottom), whereupon the shutter stops. In the network of services of Fig. 9, an interaction is performed by the services within a service chain running from left to right.
Über den Ausgabe-Dienst SE2 wird in Antwort auf eine Nutzer- Eingabe des Dienstes SEI, welche eine gewünschte Position der Jalousie spezifiziert, eine Ausgabe generiert, welche mitteilt, an welcher Position sich die Jalousie tatsächlich nach
der Abarbeitung der Dienste-Verkettung befindet. Die oben beschriebenen Dienste SEI und SE2 sollten über einen zugeordneten Web-Service vom Internet aus verfügbar sein, um z.B. eine Fernüberwachung via eines Mobiltelefons zu ermöglichen. Auf- grund der Tatsache, dass eine benötigte, durch einen Nutzer festgelegte Position der Jalousie durch den Wind-Sensor gemäß dem Dienst SE3 überschrieben werden kann, sollte die endgültige Position der Jalousie als Antwort auf Nutzer-Eingaben über den Ausgabe-Dienst SE2 mitgeteilt werden.In response to a user input of the service SEI specifying a desired position of the blind, the output service SE2 generates an output which tells which position the blind is actually following processing the services chaining is located. The above-described services SEI and SE2 should be available via an associated web service from the Internet, for example, to allow remote monitoring via a mobile phone. Due to the fact that a required user-determined position of the blind can be overwritten by the wind sensor according to the service SE3, the final position of the blind should be notified in response to user inputs via the output service SE2 ,
Fig. 10 zeigt, wie basierend auf den datengetriebenen Diensten SEI und SE2 der Fig. 9 ein geeignetes WSDL-Dokument zur Verwendung von einem Web-Service generiert werden kann, der den Diensten SEI und SE2 zugeordnet ist. Die Blöcke SDl bzw. SD2 repräsentieren dabei die entsprechende Dienste-Beschreibung des Dienstes SEI betreffend die Nutzer-Eingabe bzw. des Dienstes SE2 betreffend die Ausgabe. Gemäß der Dienste-Beschreibung SDl wird basierend auf einer Dateneingabe am Eingang des Dienstes eine Datenausgabe in der Form eines Parame- ters im Float-Format erzeugt, der die gewünschte Jalousie- Position wiedergibt. Gemäß der Dienste-Beschreibung SD2 wird basierend auf einer Dateneingabe am Eingang des Dienstes SE2 eine Datenausgabe in der Form eines Parameters im Float- Format erzeugt, der die tatsächliche Position der Jalousie wiedergibt.Fig. 10 shows how, based on the data-driven services SEI and SE2 of Fig. 9, a suitable WSDL document may be generated for use by a web service associated with the services SEI and SE2. The blocks SD1 and SD2 represent the corresponding service description of the service SEI concerning the user input or the service SE2 concerning the output. According to the service description SD1, based on a data input at the input of the service, a data output in the form of a parameter is generated in float format, which represents the desired position of the blind. According to the service description SD2, based on a data input at the input of the service SE2, a data output is generated in the form of a parameter in float format representing the actual position of the blind.
Die Dienste-Beschreibungen SDl und SD2 sind mit dem WSDL-Dokument D verknüpft, von dem nur die für die Erfindung relevanten Teile wiedergegeben sind und welches im oberen Teil eine XML-Schema-Definition von zwei Typen Tl und T2 enthält. Der Typ Tl repräsentiert dabei die Anfrage an einen Web- Service und ist mit dem Element-Namen „UserlnputRequest" bezeichnet. Der Typ T2 spezifiziert eine Antwort des Web- Service und ist mit dem Element-Namen „OutputResponse" be- zeichnet. Weiter unten im WSDL-Dokument D finden sich die Definitionen entsprechender Nachrichten MEl und ME2, wobei die Nachricht MEl der Anfrage des Web-Services in der Form der
einzustellenden Jalousie-Position entspricht und mit „SetPo- sitionlnput" bezeichnet ist. Demgegenüber entspricht die Nachricht ME2 der Antwort des Web-Services in der Form der tatsächlichen Jalousie-Position und heißt „SetPositionOut- put". An die Definition der Nachrichten MEl und ME2 schließen sich die entsprechenden Adressen in der Form von URI- Indikatoren an, an welche die Nachrichten geschickt werden sollen. Diese Adressen sind in Fig. 10 nicht gezeigt.The service descriptions SD1 and SD2 are linked to the WSDL document D, of which only the parts relevant to the invention are reproduced and which in the upper part contains an XML schema definition of two types T1 and T2. The type Tl represents the request to a web service and is designated with the element name "UserlnputRequest." The type T2 specifies a response of the web service and is designated with the element name "OutputResponse". Further down in the WSDL document D are the definitions of corresponding messages ME1 and ME2, where the message ME1 of the request of the web service in the form of The message ME2 corresponds to the response of the web service in the form of the actual blind position and is called "SetPositionOutput". The definition of the messages ME1 and ME2 is followed by the corresponding addresses in the form of URI indicators to which the messages are to be sent. These addresses are not shown in FIG.
In der Service-Bridge erfolgt die Umwandlung einer entsprechenden Anfrage des Web-Services in eine Dateneingabe des Dienstes SEI und die Umwandlung einer Datenausgabe des Dienstes SE2 in eine entsprechende Antwort des Web-Services. Das WSDL-Dokument spezifiziert dabei einen einzelnen Kommunikati- onsendpunkt für eine Interaktion mit den eingebetteten Diensten, welche - wie in Fig. 9 dargestellt - miteinander verkettet sind. Dies erlaubt Daten von verschiedenen eingebetteten Diensten an unterschiedlichen Positionen in einer entsprechenden Verkettung zu empfangen und zu verschicken. Über das WSDL-Dokument werden dabei die Anfragen und Antworten desIn the service bridge, the conversion of a corresponding request of the web service into a data input of the service SEI and the conversion of a data output of the service SE2 into a corresponding response of the web service. The WSDL document specifies a single communication endpoint for interaction with the embedded services, which - as shown in FIG. 9 - are concatenated with each other. This allows data from different embedded services to be received and sent at different locations in a corresponding daisy chain. Through the WSDL document, the requests and answers of the
Web-Services festgelegt, welche mit entsprechenden Dateneingaben bzw. Datenausgaben am Anfang bzw. am Ende der Verkettung der Dienste verbunden sind. Das WSDL-Dokument kann vorab basierend auf den im zweiten Protokoll spezifizierten Verket- tungen von eingebetteten Diensten erzeugt werden, wobei eine URI zur Adressierung der Dienste-Verkettung generiert wird, sobald die Dienste-Verkettung instantiiert ist. Gegebenenfalls kann auch eine URI ohne Instantiierung erzeugt werden, wobei die Instantiierung dann durchgeführt wird, sobald die URI durch einen Web-Service adressiert wird.Web services that are associated with appropriate data inputs or data outputs at the beginning or at the end of the chaining of services. The WSDL document may be generated in advance based on the embedded service chainings specified in the second protocol, where a URI is generated to address the service chain as soon as the service chaining is instantiated. Optionally, a URI may also be generated without instantiation, wherein the instantiation is then performed as soon as the URI is addressed by a web service.
Nachfolgend wird anhand von Fig. 11 beschrieben, wie eingehende Nachrichten des über das WSDL-Dokument spezifizierten Web-Services in Dateneingaben des eingebetteten Dienstes SEI gewandelt werden bzw. wie Datenausgaben des eingebettetenNext, it will be described with reference to FIG. 11 how incoming messages of the web service specified via the WSDL document are converted into data inputs of the embedded service SEI or how data outputs of the embedded service are
Dienstes SE2 in entsprechende Antworten des Web-Services gewandelt werden. Der Block RE repräsentiert dabei eine Anfrage
an den Web-Service in der Form einer gewünschten Jalousie- Position „targetPosition" bei 1.0. Diese Anfrage wird über ein textuelles XML-Dokument repräsentiert, welches als Dl bezeichnet wird. Anschließend wird diese textuelle SOAP- Nachricht in eine sog. binäre EXI-Repräsentation zur Verwendung in der datengetriebenen Architektur der eingebetteten Dienste gewandelt (EXI = Efficient XML Interchange) . Auf diese Weise wird dann mit Hilfe der EXI-codierten SOAP-Nachricht die entsprechende Dateneingabe für den Service SEI generiert, welche mit DI bezeichnet wird. Diese Dateneingabe enthält neben der EXI-codierten SOAP-Nachricht ferner die Spezifikation des Dienstes SEI (beispielsweise in der Form eines Service- Bezeichners) sowie die Information, dass es sich um eine Dateneingabe handelt.Service SE2 be converted into corresponding responses of the web service. The block RE represents a request to the web service in the form of a desired blind position "targetPosition" at 1.0 This request is represented by a textual XML document, which is referred to as D1, after which this textual SOAP message is converted into a so-called binary EXI file. Representation for use in the data-driven architecture of embedded services (EXI = Efficient XML Interchange), which then uses the EXI coded SOAP message to generate the corresponding data entry for the service SEI, which is designated DI In addition to the EXI coded SOAP message, it also contains the specification of the service SEI (for example in the form of a service identifier) and the information that this is a data input.
Die Nachricht DI wird anschließend in der Verkettung der eingebetteten Dienste, welche in Fig. 9 wiedergegeben ist und in Fig. 11 mit SK bezeichnet ist, weiterverarbeitet. Die Dienste-Verkettung wird dabei durch die bereits oben erwähnte URI adressiert. Beispielsweise wird die Dateneingabe DI an alle Dienste adressiert, welche Daten konsumieren, die durch den virtuellen Dienst der Nutzer-Eingabe SEI hergestellt sind. Im obigen Beispiel der Jalousie-Kontrolle ist das der Dienst SE3, der eine Priorisierung zwischen den Ausgaben der Dienste SEI, SE3 und SE4 beschreibt. Nach Durchlaufen der Dienste- Verkettung wird schließlich eine Datenausgabe DO generiert, welche das gleiche Format wie die Dateneingabe DI aufweist und von dem virtuellen Dienst SE2 ausgegeben wird. Diese Datenausgabe DO enthält wiederum eine EXI-codierte SOAP- Nachricht sowie die Bezeichnung des Dienstes SE2 und die Information, dass es sich um eine Datenausgabe handelt. Diese Nachricht DO wird dann wiederum in der Service-Bridge in eine entsprechende Response RS des Web-Services gewandelt, was dadurch erfolgt, dass die EXI-codierte SOAP-Nachricht, welche in der Datenausgabe DO enthalten ist, in das textuelle XML- Dokument D2 gewandelt ist, welches als endgültige Position ,,finalPosition" der Jalousie die Position 1.0 spezifiziert.
Die SOAP-Nachricht gemäß dem Dokument D2 wird dann als Antwort RS an den Web-Service gegeben.The message DI is then further processed in the concatenation of the embedded services, which is reproduced in FIG. 9 and designated SK in FIG. 11. The service chaining is addressed by the URI already mentioned above. For example, the data input DI is addressed to all services that consume data established by the virtual service of the user input SEI. In the above example of the blind control, this is the service SE3 which describes a prioritization between the outputs of the services SEI, SE3 and SE4. After passing through the service chaining, a data output DO is finally generated which has the same format as the data input DI and is output by the virtual service SE2. This data output DO again contains an EXI-coded SOAP message as well as the name of the service SE2 and the information that this is a data output. This message DO is then in turn converted in the service bridge into a corresponding response RS of the web service, which takes place in that the EXI-coded SOAP message, which is contained in the data output DO, in the textual XML document D2 which specifies the position 1.0 as the final position "finalPosition" of the blind. The SOAP message according to the document D2 is then given as a response RS to the web service.
Die oben beschriebenen Anfrage/Antwort-Interaktionen benöti- gen eine Speicherung einer Abbildung von SOAP-Nachrichten und getriggerten Nachrichten bzw. Interaktionen in der datengetriebenen Architektur, um Nachrichten, die von einem der eingebetteten Dienste der Dienste-Verkettung kommen, der richtigen wartenden Web-Service-Anfrage zuordnen zu können. Der Web-Service-Endpunkt, der durch das oben beschriebene WSDL-The above described request / response interactions require storage of a map of SOAP messages and triggered messages or interactions in the data driven architecture to enable messages coming from one of the embedded services of the service chain to the right waiting web server. Service request. The web service endpoint created by the above-described WSDL
Dokument D definiert ist und als URI bzw. auch als URL (URL = Universal Resource Locator) angesprochen werden kann, identifiziert dabei eine eindeutige Interaktion, beispielsweise basierend auf dem Zielendpunkt der SOAP-Nachricht. Hierdurch kann der Service-Bridge identifizieren, welcher Dienst der Dienste-Verkettung in die Interaktion involviert ist.Document D is defined and can be addressed as URI or URL (URL = Universal Resource Locator), it identifies a unique interaction, for example, based on the destination endpoint of the SOAP message. This allows the service bridge to identify which service chaining service is involved in the interaction.
Wie sich aus der vorangegangenen Beschreibung ergibt, wird durch das erfindungsgemäße Verfahren eine geeignete Kommuni- kation zwischen Diensten einer service-orientierten Architektur, welche durch Anfrage-Antwort-Mechanismen definiert ist, in eine datengetriebene Architektur erreicht, welche durch Dateneingaben und Datenausgaben von Diensten und das Weiterleiten von Daten zwischen den Diensten spezifiziert ist.
As can be seen from the foregoing description, the method according to the invention achieves appropriate communication between services of a service-oriented architecture, defined by request-response mechanisms, in a data-driven architecture, which is supported by data entries and data outputs of services and services the routing of data between the services is specified.