-
Die Erfindung betrifft ein Verfahren zur Datenübertragung zwischen mindestens zwei Teilnehmern in einem Fahrzeug. Weiter betrifft die Erfindung ein Kommunikationsnetzwerk in einem Fahrzeug sowie ein Fahrzeug.
-
In heutigen Kommunikationsnetzwerken in Fahrzeugen weisen Teilnehmer des Kommunikationsnetzwerks zustandsbehaftete Schnittstellen auf, insbesondere Teilnehmer in einem sogenannten Infotainment-System. Eine Datenübertragung mittels dieser zustandsbehafteten Schnittstellen erfordert eine exakte Einhaltung von Aufrufsequenzen. Somit ergibt sich nachteilig eine enge kommunikationstechnische Verzahnung der Teilnehmer, welche eine Verteilung von Funktionen und Funktionalitäten im Kommunikationsnetzwerk erschwert und eine Multi-Client-Fähigkeit des Kommunikationsnetzwerks einschränkt.
-
Die
US 2010/0030466 A1 offenbart ein Verfahren zur Navigation außerhalb eines Fahrzeugs, wobei ein Navigationsgerät Routeninformationen empfängt, die in Bezug zu einer Route von einem Startpunkt zu einem Ziel stehen. Hierbei werden die Routeninformationen außerhalb des Navigationsgeräts bestimmt und umfassen Fahrzeugeigenschaften. Die Routeninformationen werden im Navigationsgerät gespeichert. Weiter wird das Fahrzeug basierend auf den Routeninformationen zum Ziel geführt. Weiter wird ein Abweichungszustand detektiert, in dem das Fahrzeug die Route verlassen hat. Weiter wird eine Routenanfrage an einen Server gesendet, die die Fahrzeugeigenschaften umfasst. Die Druckschrift offenbart hierbei jedoch keine Einzelheiten zum Ablauf der Kommunikation zwischen dem Navigationsgerät und dem Server. Weiter ist der Server außerhalb des Fahrzeuges angeordnet.
-
Die
DE 100 44 891 A1 offenbart ein Verfahren zum Betrieb einer multifunktionalen menügeführten Anzeigeeinrichtung in einem Kraftfahrzeug, bei welcher durch die Anwahl eines Menüpunktes jeweils eine Funktion oder ein Parameter angezeigt bzw. neu angezeigt wird. Hierbei werden die Dateninhalte von Anzeigen verschiedener Aggregate im Kraftfahrzeug in einem mit der Anzeigeeinrichtung bidirektional korrespondierenden Steuergerät funktions- und/oder aggregatbezogen gespeichert. Bei Anwahl des Menüpunktes wird zunächst nur eine Kopfzeile eines Speicherinhalts angezeigt, wobei nachfolgend durch entsprechende Tastschalterbetätigung der gesamte, auf die Kopfzeile bezogene, Speicherinhalt übertragen und angezeigt wird. Hieraus ergibt sich ein mehrere Übertragungsvorgänge umfassende Datenübertragung.
-
Die
DE 10 2004 013 629 A1 offenbart ein Kommunikationssystem für ein Kraftfahrzeug. Dieses dient zur Übertragung einer den Betrieb des Kraftfahrzeuges betreffenden Information von einem sendenden Steuergerät zu einem empfangenden Steuergerät, wobei das Kommunikationssystem ein Bussystem umfasst. Weiter umfasst das Kommunikationssystem eine von der Ausgestaltung des Bussystems unabhängige Schnittstelle zur Eingabe der über das Bussystem übertragenen und/oder Ausgabe der über das Bussystem zu übertragenden den Betrieb des Kraftfahrzeugs betreffenden Information. Auch diese Druckschrift offenbart keine Details zum Ablauf der Datenübertragung.
-
Die
DE 603 13 373 T2 offenbart ein interaktives Fahrzeugsteuersystem mit einer Steuereinheit, die an mindestens ein Fahrzeug-Gerät über erste Anschlussmittel angeschlossen ist. Weiter offenbart ist mindestens Client-Gerät, das an die Steuereinheit über zweite Anschlussmittel angeschlossen ist, worauf der Benutzer interagiert. Weiter umfasst die Steuereinheit einen Transferprotokoll-Server, der mindestens eine Mensch-Maschine-Schnittstelle an das Client-Gerät überträgt. Auch diese Druckschrift offenbart keine Details zum Ablauf der Datenübertragung.
-
Die
DE 10 2012 020 974 A1 offenbart ein Verfahren zur Bereitstellung multimedialer Daten in einem Kraftfahrzeug (Kfz), wie sie insbesondere bei sogenannten Infotainmentsystemen zum Einsatz kommen können.
-
Es stellt sich das technische Problem, ein Verfahren zur Datenübertragung zwischen mindestens zwei Teilnehmern in einem Fahrzeug, ein Kommunikationsnetzwerk in einem Fahrzeug sowie ein Fahrzeug zu schaffen, welche eine Kommunikation zwischen den Teilnehmern vereinfachen und eine Multi-Client-Fähigkeit des Kommunikationsnetzwerkes verbessern.
-
Die Lösung des technischen Problems ergibt sich durch die Gegenstände mit den Merkmalen der Ansprüche 1, 11 und 12. Weitere vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen.
-
Vorgeschlagen wird ein Verfahren zur Datenübertragung zwischen mindestens zwei Teilnehmern in einem Fahrzeug. Das Fahrzeug kann insbesondere ein Kraftfahrzeug sein. Ein erster Teilnehmer bildet einen Server in einem Client-Server-Kommunikationsnetzwerk. Mindestens ein weiterer Teilnehmer bildet einen Client in dem Client-Server-Kommunikationsnetzwerk. Allerdings sind die Teilnehmer nicht auf die Funktion eines Servers oder Clients festgelegt. So ist es möglich, dass ein Teilnehmer für einen oder mehrere Übertragungsvorgänge einen Server und für einen oder mehrere davon verschiedene Übertragungsvorgänge einen Client bereitstellt.
-
Erfindungsgemäß erfolgt mittels der Datenübertragung eine zustandslose Kommunikation zwischen dem ersten Teilnehmer und dem mindestens einen weiteren Teilnehmer.
-
Zustandslos bedeutet hierbei, dass Daten einer vollständigen clientseitigen Anfrage und/oder Daten einer vollständigen serverseitigen Antwort jeweils in genau einem Übertragungsvorgang übertragen werden. Die serverseitige Antwort kann hierbei eine Antwort auf die clientseitige Anfrage sein, wobei eine solche Antwort als korrespondierende Antwort bezeichnet werden kann. Zustandslos bedeutet, dass alle Informationen, die zur Ausführung mindestens einer serverseitigen Operation notwendig sind, in genau einem Übertragungsvorgang vom Client zum Server übertragen werden. Weiter bedeutet zustandslos, dass alle Informationen, die zur Ausführung mindestens einer clientseitigen Operation notwendig sind, in genau einem Übertragungsvorgang vom Server zum Client übertragen werden. Weiter bedeutet zustandslos, dass alle Informationen, die zur Bestätigung einer durch einen Server angefragten Operation notwendig sind, in genau einem Übertragungsvorgang vom Client zu dem Server übertragen werden. Weiter bedeutet zustandslos, dass alle Informationen, die zur Bestätigung einer durch einen Client angefragten Operation notwendig sind, in genau einem Übertragungsvorgang vom Server zu dem Client übertragen werden. Insbesondere ist es hierdurch nicht mehr erforderlich, eine clientseitige Anfrage als auch eine serverseitige Antwort in einer mehrere Übertragungsvorgänge umfassenden Sequenz wie bisher üblich zu übertragen. Ein einzelner Übertragungsvorgang bezeichnet hierbei einen Teil einer Gesamtsequenz, die zu einer Synchronisation der Zustände in Client und Server notwendig ist.
-
Anfragen, insbesondere clientseitige Anfragen, können hierbei z.B. eine Lese-Anfrage, eine Schreib-Anfrage oder eine Löschen-Anfrage sein, die jeweils serverseitig oder clientseitig eine Lese-Operation, eine Schreib-Operation oder eine Löschen-Operation auslösen. Eine Schreib-Anfrage kann hierbei eine Erzeugen-Anfragen oder eine Aktualisierungs-Anfrage sein.
-
Auch kann zustandslos bedeuten, dass die Teilnehmer Operationen aufgrund der in dem einen Übertragungsvorgang übertragenen Informationen ausführen können und keine weitere Kenntnisse benötigen, insbesondere keine weiteren Kenntnisse über bisher erfolgte Kommunikationsvorgänge und/oder die darin übermittelten Informationen.
-
Der erste Teilnehmer kann beispielsweise ein Steuergerät im Fahrzeug sein, insbesondere ein Steuergerät eines Infotainment-Systems im Fahrzeug oder von einem solchen Steuergerät bereitgestellt werden, wobei das Steuergerät Daten bereitstellt, die oder deren Inhalt einem Fahrzeuginsassen über ein entsprechendes Ausgabegerät übermittelt werden. Beispielsweise können diese Daten in dem Steuergerät erzeugt oder in dem Steuergerät, beispielsweise in einer Speichereinrichtung des Steuergeräts, gespeichert sein. Der weitere Teilnehmer kann z.B. als Ausgabegerät in dem Fahrzeug ausgebildet sein oder von einem solchen Ausgabegerät bereitgestellt werden. Ein Ausgabegerät kann beispielsweise eine Anzeigeeinrichtung, beispielsweise ein Display, oder eine akustische Wiedergabeeinrichtung, beispielsweise ein Lautsprecher, sein. Selbstverständlich kann das Ausgabegerät hierbei noch eine Einrichtung zur Steuerung des Ausgabegerätes umfassen, wobei die Einrichtung zur Steuerung des Ausgabegeräts das entsprechende Ausgabegerät derart ansteuert, dass Daten oder deren Inhalt wie gewünscht ausgegeben werden. So kann die Steuereinrichtung einer Anzeigeeinrichtung die Anzeigeeinrichtung in Abhängigkeit von anzuzeigenden Informationen ansteuern.
-
Wie nachfolgend noch näher erläutert können die Teilnehmer des Client-Server-Kommunikationsnetzwerkes jeweils Kommunikationsschnittstellen ausbilden oder aufweisen, die die vorgeschlagene Datenübertragung zur zustandslosen Kommunikation ermöglichen. Derartige Kommunikationsschnittstellen können auch als zustandsfreie Kommunikationsschnittstellen bezeichnet werden.
-
Das Verfahren zur Datenübertragung kann insbesondere nach dem RESTful-Prinzip (Representational State Transfer-Prinzip) erfolgen. Gemäß diesem Prinzip werden in dem Client-Server-Kommunikationsnetzwerk Ressourcen bereitgestellt, wobei eine Ressource eine bestimmte Information oder einen bestimmten Dienst beinhaltet. Jede Ressource ist mit einer globalen Kennung referenziert.
-
Mittels der vorgeschlagenen Datenübertragung können insbesondere Daten in Form von Objekten oder Objektlisten übertragen werden. Selbstverständlich können jedoch auch binäre Daten übertragen werden. So können z.B. Daten, die genau ein Objekt oder genau eine Objektliste codieren, in genau einem Übertragungsvorgang, z.B. vom ersten zum weiteren Teilnehmer, übertragen werden. Die Datenübertragung kann aber auch zur Übermittlung von Anfragen und der Übermittlung von Statusinformationen dienen.
-
Hierdurch ergibt sich in vorteilhafter Weise eine vereinfachte Kommunikation zwischen einem Client und einem Server, insbesondere zwischen mehreren Clients und einem Server, da eine Datenübertragung, die einen bestimmten Vorgang, z.B. eine Schreib-Operation, betrifft, maximal zwei Übertragungsvorgänge benötigt, nämlich vom Client zum Server (Anfrage) und vom Server zum Client (Antwort). Allerdings ist es auch möglich, dass einen bestimmten Vorgang betreffende Daten in einem einzigen Übertragungsvorgang, insbesondere vom Server zum Client, übertragen werden. Dies wird nachfolgend näher erläutert.
-
In einer bevorzugten Ausführungsform erfolgt die Datenübertragung zwischen den mindestens zwei Teilnehmern gemäß einem Übertragungsprotokoll aus einer Menge von mindestens zwei voneinander verschiedenen Übertragungsprotokollen. Insbesondere kann die Datenübertragung gemäß einem Übertragungsprotokoll aus einer Menge von genau zwei Übertragungsprotokollen erfolgen. Jedes Übertragungsprotokoll der Menge der verschiedenen Übertragungsprotokolle ermöglicht die vorhergehend erläuterte zustandslose Kommunikation.
-
Somit ist es möglich, dass eine Datenübertragung in einem Übertragungsvorgang entweder gemäß einem ersten Übertragungsprotokoll oder gemäß einem weiteren Übertragungsprotokoll erfolgt.
-
Die Datenübertragung kann über genau einen Kommunikationskanal oder über genau eine Kommunikationsverbindung erfolgen, wobei der Kommunikationskanal/die Kommunikationsverbindung die Datenübertragung gemäß jedem der Übertragungsprotokolle ermöglicht. Auch können für Datenübertragung gemäß verschiedener Übertragungsprotokolle verschiedene Kommunikationskanäle/Kommunikationsverbindungen vorgesehen sein.
-
In jedem der verschiedenen Übertragungsprotokolle können bestimmte Berechtigungen für jeden der Teilnehmer, insbesondere Berechtigungen für vorbestimmte Anfragen, festgelegt sein.
-
Hierdurch ergibt sich in vorteilhafter Weise, dass verschiedene Datenübertragungen, insbesondere Datenübertragungen aus verschiedenen Anlässen, gemäß verschiedener Übertragungsprotokolle erfolgen können.
-
In einer weiter bevorzugten Ausführungsform erfolgt eine Datenübertragung, die durch eine clientseitige Anfrage initiiert wird, gemäß einem ersten Übertragungsprotokoll. Hierbei kann die clientseitige Anfrage bereits einen ersten Teilübertragungsvorgang der Datenübertragung ausbilden. Die clientseitige Anfrage kann beispielsweise einem Abruf von Statusinformationen oder Inhaltsinformationen dienen. Insbesondere kann die clientseitige Anfrage eine vorhergehend erläuterte Lese-Anfrage, Schreib-Anfrage oder Lösch-Anfrage sein. Eine korrespondierende serverseitige Antwort auf die clientseitige Anfrage kann hierbei ebenfalls gemäß dem ersten Übertragungsprotokoll übertragen werden. So können beispielsweise Daten vom Server zum Client aufgrund einer Lese-Anfrage des Clients übertragen werden.
-
Weiter erfolgt eine Datenübertragung, die durch ein serverseitiges Ereignis initiiert wird, gemäß einem weiteren Übertragungsprotokoll, wobei das weitere Übertragungsprotokoll von dem ersten Übertragungsprotokoll verschieden ist. Ein serverseitiges Ereignis kann beispielsweise auftreten, wenn zwei zeitlich aufeinanderfolgende, jedoch gleiche Lese-Anfragen an den Server unterschiedliche Antworten erzeugen würden. Für eine Datenübertragung in einem Übertragungsvorgang gemäß dem weiteren Übertragungsprotokoll ist also keine clientseitige Anfrage notwendig. Wie nachfolgend näher erläutert, ist hierfür jedoch gegebenenfalls eine clientseitige Registrierungsanfrage notwendig.
-
Die Datenübertragung gemäß dem ersten Übertragungsprotokoll kann auch als sogenanntes Polling bezeichnet werden, während die Datenübertragung gemäß dem weiteren Übertragungsprotokoll auch als Pushing bezeichnet werden kann. Hierdurch ergibt sich in vorteilhafter Weise ein Verfahren zur Datenübertragung, in dem nicht zwingend clientseitige Anfragen, insbesondere zyklische einseitige Anfragen, notwendig sind, um serverseitige Ereignisse zeitnah zu erfassen.
-
In einer weiteren Ausführungsform ist das erste Übertragungsprotokoll ein REST/http-Protokoll und das weitere Übertragungsprotokoll ein ws-Protokoll. Ein REST/http-Protokoll bezeichnet hierbei ein Representational State Transfer - Protokoll und eine ws-Protokoll ein Websocket-Protokoll. Hierdurch ergibt sich in vorteilhafter Weise eine einfache Implementierung verschiedener Protokolle.
-
In einer weiteren Ausführungsform erfolgt die Datenübertragung an den mindestens einen weiteren Teilnehmer aufgrund eines serverseitigen Ereignisses nur dann, wenn der mindestens eine weitere Teilnehmer sich für das Ereignis über eine Registrierungsanfrage registriert hat. Eine Registrierungsanfrage bezeichnet eine clientseitige Anfrage, aufgrund derer serverseitig eine Anmelde- oder eine Abmeldeoperation für eine Benachrichtigungsfunktion zur Benachrichtigung des Clients bei einem oder mehreren serverseitigen Ereignissen durchgeführt wird. In einem angemeldeten Zustand erfolgt die vorhergehend erläuterte ereignisinitiierte Datenübertragung vom Server zum Client, falls ein derartiges serverseitiges Ereignis auftritt. In einem abgemeldeten Zustand erfolgt keine ereignisinitiierte Übertragung vom Server zum Client, falls ein derartiges serverseitiges Ereignis auftritt.
-
Hierdurch ergibt sich in vorteilhafter Weise, dass eine ereignisinitiierte Datenübertragung nur an bestimmte Clients erfolgt, wodurch eine übertragene Datenmenge reduziert wird.
-
In einer weiteren Ausführungsform ist mindestens ein Datenformat für die Datenübertragung für alle Übertragungsprotokolle gleich. Dies bedeutet, dass ein Datenformat für Anfragen und/oder Antworten in den verwendeten Übertragungsprotokollen gleich ist. Anfragen und/oder Antworten sind also unabhängig vom Übertragungsprotokoll gleich aufgebaut. Hierdurch ergibt sich in vorteilhafter Weise eine vereinfachte Implementierbarkeit des vorgeschlagenen Verfahrens.
-
In einer weiteren Ausführungsform ist eine Adressierungsstruktur für alle Übertragungsprotokolle gleich. Dies bedeutet, dass in Anfragen und/oder Antworten enthaltene Adressen, z.B. Adressen von Datenobjekten, Statusobjekten und/oder Objektlisten, in den verwendeten Übertragungsprotokollen gleich sind. Adressen sind also unabhängig vom Übertragungsprotokoll gleich aufgebaut. Z.B. kann eine, insbesondere maximale, Adressierungstiefe, also eine Anzahl möglicher Adressebenen, für alle Übertragungsprotokolle gleich sein. Hierdurch ergibt sich in vorteilhafter Weise ebenfalls eine vereinfachte Implementierbarkeit des vorgeschlagenen Verfahrens.
-
In einer weiteren Ausführungsform ist eine clientseitige Anfrage und/oder eine Registrierungsanfrage parametrisiert. Parametrisiert bedeutet, dass in einer clientseitigen Anfrage und/oder in einer Registrierungsanfrage mindestens ein Parameter an den ersten Teilnehmer (Server) übergeben wird. Dieser Parameter kann insbesondere zur Filterung genutzt werden. Hierbei kann aus einer Anzahl von möglichen Antworten eine Antwort oder mehrere Antworten in Abhängigkeit des Filterparameters gefiltert werden. Wird kein Parameter übergeben, so kann eine ungefilterte Antwort erfolgen, beispielsweise können alle möglichen Antworten übertragen werden.
-
Ist die clientseitige Anfrage und/oder die Registrierungsanfrage auf Anfrage einer Objektliste gerichtet, so können als Parameter beispielsweise ein Adressabstand (eine Stelle des Eintrags in einer Liste) und/oder eine Anzahl von zu übertragenden Objekten gewählt werden. Dies ermöglicht somit die Übertragung eines gewünschten Ausschnitts von Objekten aus der Objektliste.
-
Ein weiterer Parameter kann beispielsweise ein Referenztiefenparameter sein. Enthält eine unter einer ersten Adresse angefragte Antwort, beispielsweise ein angefragtes Objekt, eine Referenz auf mindestens eine weitere Antwort, die unter einer weiteren Adresse adressiert ist, beispielsweise eine Referenz auf ein weiteres Objekt, so kann es wünschenswert sein, diese weitere Antwort ebenfalls als Teil der Antwort auf die clientseitige Anfrage und/oder aufgrund eines serverseitigen Ereignisses zu übertragen. Der Referenztiefenparameter gibt hierbei eine Anzahl von Referenzierungsebenen an, die bei der Übertragung berücksichtigt werden. Der Referenztiefenparameter kann beispielsweise auf einen maximalen Wert, beispielsweise auf 3, beschränkt werden.
-
Ein weiterer Filterparameter kann z.B. eine Aktualisierungsfrequenz für periodische Aktualisierungsantworten sein, die beispielsweise aufgrund einer clientseitigen Registrierungsanfrage vom Server an angemeldete Clients übertragen werden. Ein weiterer Parameter kann eine maximale Aktualisierungsrate für ereignisinitiierte Antworten sein. Ändert sich z.B. ein Zustand oder eine Eigenschaft schneller als die durch die maximale Aktualisierungsrate festgelegte Zeit, so kann eine Menge von ereignisinitiierten Antworten begrenzt werden. In diesem Fall kann beispielsweise nur der zum Ablauf der durch die Aktualisierungsrate festgelegten Zeitdauer aktuelle Zustand übertragen werden.
-
In einer weiteren Ausführungsform ist die Datenübertragung zu dem mindestens einen weiteren Teilnehmer eine gefilterte Datenübertragung. Gefiltert bedeutet hierbei, dass aus einer Anzahl von möglichen Antworten auf eine clientseitige Anfrage und/oder eine Registrierungsanfrage eine oder mehrere Antworten in Abhängigkeit mindestens eines Filterkriteriums, beispielsweise in Abhängigkeit des vorhergehend erläuterten mindestens einen Filterparameters, gefiltert und übertragen werden. Hierdurch kann in vorteilhafter Weise eine Menge von zu übertragenden Daten reduziert werden.
-
In einer weiteren Ausführungsform werden eine Antwort codierende Daten übertragen, beispielsweise ein Objekt codierende Daten. Die Daten enthalten mindestens eine Referenz auf mindestens eine weitere Antwort, beispielsweise mindestens ein weiteres Objekt. Hierbei können sich die Antworten beispielsweise in ihrer jeweiligen Adressierung unterscheiden. Weiter werden zusätzlich die die mindestens eine weitere Antwort codierenden Daten übertragen. Hierdurch erfolgt somit eine Auflösung der Referenz, wodurch auch die referenzierte Antwort innerhalb eines Datenübertragungsvorgangs in der zustandslosen Kommunikation übertragen wird.
-
Weiter vorgeschlagen wird ein Kommunikationsnetzwerk zur Datenübertragung zwischen mindestens zwei Teilnehmern in einem Fahrzeug, wobei das Kommunikationsnetzwerk als Client-Server-Kommunikationsnetzwerk ausgebildet ist. Ein erster Teilnehmer bildet einen Server in dem Client-Server-Kommunikationsnetzwerk, wobei mindestens ein weiterer Teilnehmer einen Client in dem Client-Server-Kommunikationsnetzwerk bildet.
-
Erfindungsgemäß stellen die Teilnehmer jeweils eine Kommunikationsschnittstelle bereit oder weisen diese auf, wobei die Kommunikationsschnittstellen derart ausgebildet sind, dass über die Kommunikationsschnittstellen die vorhergehend erläuterte zustandslose Kommunikation zwischen dem ersten Teilnehmer und dem mindestens einen weiteren Teilnehmer durchführbar ist.
-
Somit ergibt sich also ein Kommunikationsnetzwerk, das derart ausgebildet ist, dass ein Verfahren gemäß einer der vorhergehend beschriebenen Ausführungsformen mittels des Kommunikationsnetzwerkes durchführbar ist.
-
Beispielsweise können die Teilnehmer über ein Bus-System, insbesondere einen CAN-Bus, verbunden sein. Selbstverständlich sind jedoch weitere drahtgebundene oder drahtlose Verbindungsarten vorstellbar.
-
Weiter vorgeschlagen wird ein Fahrzeug, wobei das Fahrzeug das vorhergehend beschriebene Kommunikationsnetzwerk umfasst.
-
Die Erfindung wird anhand eines Ausführungsbeispiels näher erläutert. Die Figuren zeigen:
- 1 ein schematisches Blockschaltbild eines erfindungsgemäßen Kommunikationsnetzwerks,
- 2 ein schematisches Flussdiagramm eines erfindungsgemäßen Verfahrens und
- 3 ein weiteres schematisches Flussdiagramm eines erfindungsgemäßen Verfahrens.
-
Nachfolgend bezeichnen gleiche Bezugszeichen Elemente mit gleichen technischen Merkmalen.
-
In 1 ist ein schematisches Blockschaltbild eines erfindungsgemäßen Kommunikationsnetzwerks 1 dargestellt. Das Kommunikationsnetzwerk 1 umfasst einen als Server ausgebildeten ersten Teilnehmer 2, einen als Client ausgebildeten zweiten Teilnehmer 3 und einen als Client ausgebildeten dritten Teilnehmer 4. Die Teilnehmer 2, 3, 4 stellen hierbei nicht dargestellte Kommunikationsschnittstellen bereit oder weisen diese auf, die softwaretechnisch und/oder hardwaretechnisch bereitgestellt werden können.
-
Über die Schnittstellen der Teilnehmer 2, 3, 4 erfolgt eine Datenübertragung zwischen dem ersten und dem zweiten Teilnehmer 2, 3 als auch zwischen dem ersten und dem dritten Teilnehmer 2, 4. Hierbei erfolgt mittels der Datenübertragung eine zustandslose Kommunikation zwischen dem ersten und dem zweiten Teilnehmer 2, 3 und dem ersten und dem dritten Teilnehmer 2, 4.
-
Schematisch dargestellt sind weiter zwei Übertragungsprotokolle, wobei eine Datenübertragung gemäß eines ersten Übertragungsprotokolls durch eine durchgezogene Linie und eine Datenübertragung gemäß eines zweiten Übertragungsprotokolls durch eine gestrichelte Linie dargestellt ist. Das erste Übertragungsprotokoll ist ein REST/http-Protokoll und das weitere Übertragungsprotokoll ist ein ws-Protokoll.
-
Die zustandslose Kommunikation wird exemplarisch anhand der Kommunikation zwischen dem ersten und dem zweiten Teilnehmer 2, 3 erläutert. In einer ersten Ausführungsform erfolgt eine clientseitige Anfrage cA, die in einem Übertragungsvorgang gemäß dem ersten Übertragungsprotokoll übertragen wird. Die clientseitige Anfrage cA ist hierbei vollständig und enthält also alle Informationen, die zur Durchführung einer angefragten serverseitigen Operation notwendig sind. Aufgrund der clientseitigen Anfrage cA, z.B. nach der Durchführung der serverseitigen Operation, wird eine anfrageinitiierte Antwort aA in einem Übertragungsvorgang vom ersten an den zweiten Teilnehmer 2, 3 übertragen. Die anfrageinitiierte Antwort aA ist hierbei vollständig und enthält also alle Informationen, die der zweite Teilnehmer 3, z. B. in der clientseitigen Anfrage cA angefragt hat. Hierbei bilden sowohl die clientseitige Anfrage cA als auch die anfrageinitiierte Antwort aA zustandslose Teilübertragungsvorgänge einer zustandslosen Frage-Antwort-Sequenz, die genau aus diesen zwei Teilübertragungsvorgängen besteht.
-
Insbesondere kann jede clientseitige Anfrage cA eine Adresse, eine Kennung (ID) sowie einen Namen einer angefragten Antwort, z.B. eines angefragten Objektes, enthalten. Die Kennung kann hierbei insbesondere eine im Kommunikationsnetzwerk 1 eindeutige Kennung sein. Weiter kann die clientseitige Anfrage cA Filterparameter enthalten.
-
Z.B. kann die clientseitige Anfrage cA als Lese-Anfrage, Lösch-Anfrage oder Schreib-Anfrage erfolgen, wodurch serverseitig jeweils verschiedene Operationen durchgeführt werden. Je nach Art der Anfrage, insbesondere bei einer Lese-Anfrage, erfolgt die anfrageinitiierte Antwort aA, die wiederum alle Informationen enthält, die durch die clientseitige Anfrage cA angefragt wurden.
-
Weiter dargestellt ist eine ereignisinitiierte Antwort eA, wobei eine Datenübertragung vom ersten zum zweiten Teilnehmer 2, 3 in genau einem Übertragungsvorgang gemäß dem weiteren Übertragungsprotokoll erfolgt, wenn ein serverseitiges Ereignis, also ein Ereignis auf Seiten des ersten Teilnehmers 2, eintritt. Nicht in 1 dargestellt ist eine clientseitige Registrierungsanfrage rA (siehe 3), durch die sich der zweite und der dritte Teilnehmer 3, 4 jeweils für eine ereignisinitiierte Datenübertragung registrieren. Die Datenübertragung gemäß dem weiteren Übertragungsprotokoll erfolgt immer dann, wenn zwei zeitlich aufeinanderfolgende Lese-Anfragen an den ersten Teilnehmer 2 mit der gleichen Adresse verschiedene anfrageinitiierte Antworten aA erzeugen würden. In einer anfrageinitiierten Antwort aA oder einer ereignisinitiierten Antwort eA können Statusobjekte, Datenobjekte, binäre Daten oder Objektlisten, insbesondere Listen von Datenobjekten, übertragen werden.
-
Adressen im Kommunikationsnetzwerk können beispielsweise wie folgt aufgebaut sein:
wobei Adressebene
1 beispielsweise einen Service, Adressebene
2 beispielsweise eine bestimmte Ressource und Adressebene
3 beispielsweise eine Kennung eines Daten- oder Statusobjekts bezeichnen kann. Clientseitige Anfragen
cA, die nur Einträge in Adressebene
1 und gegebenenfalls Adressebene
2 enthalten, können als anfrageinitiierte Antwort
aA eine Objektliste erhalten. Adressen, die Einträge in allen Adressebenen enthalten, können als anfrageinitiierte Antwort
aA insbesondere ein Daten- oder Statusobjekt erhalten.
-
Ein Datenobjekt kann hierbei insbesondere eine Kennung, eine Adresse und einen Namen des Datenobjekts enthalten. Weiter kann ein Datenobjekt einen Nutzdatenanteil enthalten. Weiter kann ein Datenobjekt eine Statusinformation enthalten. Weiter kann ein Datenobjekt Validierungsinformationen zur Validierung des die Antwort erzeugenden Teilnehmers 2, 3, 4 enthalten. Eine Antwort auf eine fehlgeschlagene Anfrage nach einem Datenobjekt kann weiter Fehlermeldungsinformationen und/oder einen Fehlercode enthalten.
-
Ein Statusobjekt kann eine Statusinformation, eine Fehlermeldungsinformation, einen Fehlercode und/oder eine Kennung enthalten.
-
Jedes Daten- oder Statusobjekt kann in jedem Übertragungsvorgang mit seiner Kennung, seiner Adresse und seinem Namen übertragen werden.
-
Datenobjekte oder Objektlisten können insbesondere aufgrund einer Lese-Anfrage und Statusobjekte können insbesondere aufgrund einer Schreib-Anfrage oder Lösch-Anfrage übertragen werden.
-
Weiter können clientseitige Anfragen cA oder Registrierungsanfragen rA (siehe 3) parametrisiert sein. Wird beispielsweise ein darzustellendes Bild abgefragt, so können Parameter eine gewünschte Bildbreite, beispielsweise in Form einer Pixelanzahl, und eine gewünschte Bildhöhe, beispielsweise in Form einer Pixelanzahl, umfassen.
-
Eine Adresse einer Anfrage von einem Client an einen Server kann als weitere Information noch eine Kennung für clientseitige Elemente enthalten. In Abhängigkeit dieser Kennung kann eine angefragte Antwort nur an bestimmte Elemente des entsprechenden Clients, beispielsweise des zweiten oder dritten Teilnehmers 3, 4, übertragen werden.
-
In 2 ist ein schematisches Flussdiagramm eines erfindungsgemäßen Verfahrens dargestellt. In einem ersten Schritt S1 wird eine vollständige clientseitige Anfrage cA, beispielsweise vom zweiten oder dritten Teilnehmer 3, 4 (siehe 1), erzeugt und in einem Übertragungsvorgang an den ersten Teilnehmer 2 übertragen. In einem zweiten Schritt S2 erzeugt der erste Teilnehmer 2 eine vollständige korrespondierende anfrageinitiierte Antwort aA und überträgt diese in einem Übertragungsvorgang wieder an den anfragenden zweiten oder dritten Teilnehmer 3, 4. Je nach Anfrage kann die Antwort z.B. ein Datenobjekt, ein Statusobjekt, Binärdaten oder eine Objektliste enthalten.
-
3 zeigt ein weiteres Flussdiagramm eines erfindungsgemäßen Verfahrens. In einem ersten Schritt S1 erzeugt ein Client, beispielsweise der zweite oder der dritte Teilnehmer 3, 4 (siehe 1) eine vollständige Registrierungsanfrage rA und überträgt diese in einem Übertragungsvorgang an den ersten Teilnehmer 2. Die Registrierungsanfrage rA kann beispielsweise eine Anmelde- oder Abmelde-Anfrage sein. Eine solche Registrierungsanfrage rA kann neben der Art der Anfrage eine Adresse der angefragten Antwort, z.B. eines angefragten Datenobjekts, Statusobjekts oder Objektliste, verschiedene Parameter, beispielsweise einen einen bestimmten Antwortparameter codierenden Parameter, einen eine Wiederholrate codierenden Parameter, einen eine maximale Übertragungsrate codierenden Parameter und weitere Parameter enthalten. Ist die Registrierungsanfrage rA eine Anmelde-Anfrage, so wird serverseitig geprüft, zu welchem Zeitpunkt sich eine Änderung der angefragten Antwort ergibt. Zum Zeitpunkt einer Änderung wird eine vollständige ereignisinitiierte Antwort eA erzeugt und in einem Übertragungsvorgang an den anfragenden Teilnehmer 3, 4 übertragen (zweiter Schritt S2). Hiernach wird weiter serverseitig geprüft, zu welchem Zeitpunkt sich eine erneute Änderung ergibt. Ergibt sich eine solche erneute Änderung, so wird wiederum eine vollständige ereignisinitiierte Antwort eA in einem Übertragungsvorgang an den anfragenden Teilnehmer 3, 4 übertragen (dritter Schritt S3). In 3 ist dargestellt, dass in einem vierten Schritt S4 eine weitere Registrierungsanfrage rA, die als Abmelde-Anfrage ausgebildet ist, an den ersten Teilnehmer 2 übertragen wird. Hiernach endet die Übertragung der ereignisinitiierten Antworten eA.
-
Bezugszeichenliste
-
- 1
- Kommunikationsnetzwerk
- 2
- erster Teilnehmer
- 3
- zweiter Teilnehmer
- 4
- dritter Teilnehmer
- cA
- clientseitige Anfrage
- aA
- anfrageinitiierte Antwort
- eA
- ereignisinitiierte Antwort
- rA
- Registrierungsanfrage
- S1
- erstere Schritt
- S2
- zweiter Schritt
- S3
- dritter Schritt
- S4
- vierter Schritt