-
Die Erfindung betrifft ein computerimplementiertes Verfahren zum Übertragen von einzelnen Nachrichten mittels eines MQTT-Protokolls, eine Sendevorrichtung, eine Empfangsvorrichtung, ein System, ein erstes Computerprogrammprodukt, ein zweites Computerprogrammprodukt sowie einen computerlesbaren Datenspeicher.
-
Im Bereich des loT (Abkürzung für Internet of Things, auf Deutsch: Internet der Dinge) ist MQTT (Abkürzung für Message Queuing Telemetry Transport) ein Protokoll, das in den letzten Jahren zunehmend eingesetzt wird. Unter anderem wird das MQTT-Protokoll im Bereich Connected Car (auf Deutsch: vernetztes Fahrzeug) verwendet.
-
Das MQTT-Protokoll folgt den Regeln einer Publish-Subscribe-Kommunikation. In der Software-Architektur ist Publish-Subscribe ein Kommunikations- bzw. Nachrichtenmuster, bei dem die Absender von Nachrichten, die Publisher (deutsch: Herausgeber; Anmerkung: im Folgenden werden die deutschsprachigen Begriffe verwendet, soweit dies möglich ist) genannt werden, die Nachrichten nicht so programmieren, dass sie direkt an bestimmte Empfänger, die Subscriber (deutsch: Abonnenten) genannt werden, gesendet werden, sondern stattdessen veröffentlichte Nachrichten in Klassen einteilen, ohne zu wissen, welche Abonnenten es gegebenenfalls gibt. In ähnlicher Weise bekunden Abonnenten Interesse an einer oder mehreren Klassen und erhalten nur Nachrichten, die von Interesse sind, ohne zu wissen, welche Herausgeber es gibt.
-
Beim MQTT-Protokoll interagieren zwei unterschiedliche Teilnehmer untereinander: Ein Broker (auf Deutsch auch als Vermittler bezeichenbar) und eine Vielzahl von Clients (deutsch: Kunden), wobei die Kunden als Herausgeber und Abonnenten nicht direkt miteinander kommunizieren, sondern Nachrichten publishen (deutsch: veröffentlichen) und subscriben (deutsch: abonnieren).
-
Der Kunde kann auch als der Endnutzer der Kommunikation betrachtet werden. Es ist derjenige, der Nachrichten aktiv sendet. Ein Kunde kann auch zu einem Zeitpunkt Nachrichten eines Topics (deutsch: Themas) empfangen, wobei er als Abonnent fungiert. Er kann zu demselben oder einem anderen Zeitpunkt aber auch Nachrichten in dem gleichen Thema veröffentlichen, wobei er als Herausgeber fungiert. Jeder Kunde kann sich durch eine Client ID (deutsch: Kundenidentifikation), beispielsweise in Form eines eindeutigen Codes in Gestalt von Nummern und/oder Buchstaben, identifizieren. Diese kann auch seine Session (deutsch: Sitzung) komplett identifizieren, denn MQTT ist für die Kunden-Seite komplett stateless (deutsch: zustandlos).
-
Die Kommunikation mittels des MQTT-Protokolls basiert auf dem sogenannten Thema-Prinzip, wonach jede Nachricht einem Thema zugeordnet wird. Dies bedeutet, dass jede valide MQTT-Nachricht eine Payload (deutsch: Nutzdaten) mit einem zugehörigen Thema beinhaltet.
-
Die Themen können in ihrer Funktions- und Schreibsyntax Ordnern in einem Filesystem ähnlich und hierarchisch organisiert sein. So kann beispielsweise ein valides Thema in einem Fahrzeug „Rücksitze/Sitz2/Temperatursensor/Temperatur“ heißen. Die Themen müssen von den Kunden abonniert werden, um den Themen zugeordnete Nachrichten zu empfangen. Schließt sich ein neuer Kunde dem Kommunikationsnetz an und schickt dem Broker eine Subscription (deutsch: ein Abonnement) zum Thema „Rücksitze/Sitz2/Temperatursensor/Temperatur“, wird der Broker alle Nachrichten mit diesem Thema an den Abonnenten weiterleiten. Es gibt selbstverständlich auch die Möglichkeit, gewählte Themen wieder abzubestellen und deren entsprechende Nachrichten nicht mehr zu erhalten.
-
Die Aufgabe des Brokers besteht in der Nachrichtenverwaltung und -verteilung. Der Broker stellt quasi das Backend für das MQTT-Protokoll dar und verwaltet und administriert jeglichen Datenverkehr. Zu den Aufgaben des Brokers zählen die Speicherung, Verwaltung und Verteilung aller Informationen zu Themen, deren Abonnenten, Kunden und deren IDs. Die Netzwerkauslastung von MQTT-Kommunikation ist zwar generell gering, dennoch sollte die Bandbreite des Brokers bei einer sehr hohen Anzahl an Kunden entsprechend dimensioniert sein.
-
Beim MQTT-Protokoll sind die Herausgeber von den Abonnenten entkoppelt. Daraus ergeben sich verschiedene Vorteile. Einer davon ergibt sich in der örtlichen Entkopplung, da die Herausgeber und Abonnenten sich nicht gegenseitig kennen müssen (beispielsweise nicht die gegenseitige IP-Adresse kennen müssen). Ein weiterer Vorteil besteht in der zeitlichen Entkopplung, da die Herausgeber und die Abonnenten nicht zeitgleich agieren müssen. Ein noch weiterer Vorteil besteht in der Synchronisationsentkopplung, wonach Operationen auf den ausführenden Computern nicht für die Zeit der Nachrichtenübermittlung blockieren (sog. Asynchrones Messaging).
-
Wenn das MQTT-Protokoll verwendet wird, um zwei oder mehr Subsysteme über eine Kommunikationsverbindung zu verbinden, ist es oft wünschenswert, alle Daten in allen verbundenen Subsystemen verfügbar zu haben. Ein Subsystem kann dabei durch einen einzigen Kunden gebildet werden. Es ist aber auch möglich, dass ein Subsystem durch mehrere Kunden gebildet wird oder, dass mehrere Kunden an ein Subsystem angebunden werden.
-
Für viele Anwendungsfälle ist es wichtig, dass die Informationsübertragung zwischen den Subsystemen mit geringer Latenzzeit erfolgt. Gleichzeitig ist es aber auch entscheidend, die Anzahl der Nachrichten zwischen den Subsystemen deutlich zu erhöhen (z. B. mehrere tausend Nachrichten pro Sekunde), da die Kommunikationsverbindung, die insbesondere drahtlos sein kann, einen zeitvariablen Durchsatz hat und jede Nachricht auch einen Nachrichtenaufwand bedeutet. Daher ist es wünschenswert, die Anzahl der Nachrichten zu begrenzen, aber dennoch eine Kommunikation mit geringer Latenz zu erreichen.
-
Demnach ist es eine Aufgabe der Erfindung, ein Verfahren zur Nachrichtenübertragung mittels MQTT-Protokolls derart zu verbessern, dass die Anzahl der zu übertragenden Nachrichten bei gleichzeitigem Erreichen einer geringen Latenz der Nachrichtenkommunikation verringert wird.
-
Die voranstehende Aufgabe wird durch die Gegenstände der Patentansprüche, insbesondere durch ein computerimplementiertes Verfahren zum Übertragen von einzelnen Nachrichten mittels eines MQTT-Protokolls nach Anspruch 1, eine Sendevorrichtung nach Anspruch 9, eine Empfangsvorrichtung nach Anspruch 10, ein System nach Anspruch 11, ein erstes Computerprogrammprodukt nach Anspruch 12, ein zweites Computerprogrammprodukt nach Anspruch 13 sowie einen computerlesbaren Datenspeicher nach Anspruch 14 gelöst. Weitere Vorteile und Details der Erfindung ergeben sich aus den Unteransprüchen, der Beschreibung und den Zeichnungen. Dabei gelten Merkmale und Details, die im Zusammenhang mit dem erfindungsgemäßen Verfahren beschrieben sind, selbstverständlich auch im Zusammenhang mit der erfindungsgemäßen Sendevorrichtung, der erfindungsgemäßen Empfangsvorrichtung, dem erfindungsgemäßen System, dem erfindungsgemäßen ersten Computerprogrammprodukt, dem erfindungsgemäßen zweiten Computerprogrammprodukt und dem erfindungsgemäßen computerlesbaren Datenträger sowie jeweils umgekehrt, sodass bezüglich der Offenbarung zu den einzelnen Erfindungsaspekten wechselseitig Bezug genommen werden kann.
-
Demnach löst die Erfindung die Aufgabe gemäß einem ersten Aspekt durch ein computerimplementiertes Verfahren zum Übertragen von einzelnen Nachrichten mittels eines MQTT-Protokolls, wobei das Verfahren die Schritte aufweist:
- (a) Sammeln einer Vielzahl von einzelnen Nachrichten, die für zumindest eine Empfangsvorrichtung relevant sind,
- (b) Erstellen einer Sammelnachricht in einem Sammelthema, wobei die Sammelnachricht die gesammelte Vielzahl der für die zumindest eine Empfangsvorrichtung relevanten Nachrichten umfasst,
- (c) Übertragen der Sammelnachricht an die zumindest eine Empfangsvorrichtung,
- (d) Empfangen der übertragenen Sammelnachricht von der zumindest einen Empfangsvorrichtung,
- (e) Entpacken der empfangenen Sammelnachricht in die Vielzahl von einzelnen Nachrichten, und
- (f) Veröffentlichen der entpackten Vielzahl von einzelnen Nachrichten.
-
Das Verfahren kann vorsehen, dass die einzelnen Verfahrensschritte (a) bis (f) in der aufgelisteten Reihenfolge ausgeführt werden. Es kann jedoch alternativ vorgesehen werden, dass einzelne Verfahrensschritte zeitgleich durchgeführt werden, wie später noch im Detail erläutert wird.
-
Der MQTT-Broker leitet bei der Kommunikation gemäß dem Stand der Technik typischerweise Nachrichten zu bestimmten Themen an Kunden, die diese Themen abonniert haben, sofort nach ihrer Veröffentlichung weiter. Dies erfolgt unabhängig von den Bedürfnissen des Kunden (z. B. Anpassung der Nachrichtenfrequenz) und ohne Kenntnis der tatsächlichen Nutzdaten der Nachrichten und ihrer Relevanz für den Kunden. Eine große Anzahl kleiner Nachrichten kann für die Übertragung über eine drahtlosen Kommunikationsverbindung, bei der die verfügbare Bandbreite im Laufe der Zeit stark schwankt, jedoch kritisch sein.
-
Eine einfache Aggregation mehrerer aufeinanderfolgender Nachrichten zu einer großen Einzelnachricht könnte die große Anzahl der kleinen Nachrichten reduzieren. In dieser Hinsicht wurde aber festgestellt, dass dies keine allgemein anwendbare Lösung ist, da die Zustellung einiger Nachrichten zeitkritisch sein kann. Ein MQTT-Broker kennt jedoch keine zeitkritischen Komponente von Nachrichten für einen bestimmten Kunden, da dies nicht Teil des MQTT-Protokolls ist.
-
Als Lösung dessen hat sich gezeigt, dass es möglich wäre, die Anzahl der Nachrichten zu reduzieren, indem mehrere Nachrichten desselben Themas aggregiert werden. Die Zustellung von aggregierten Nachrichten leidet aber unter einer großen Latenzzeit, unabhängig von den Bedürfnissen des Kunden (die von Kunde zu Kunde unterschiedlich sein können). Darüber hinaus kann die Aggregation nur für jedes Thema unabhängig voneinander erfolgen, da Nachrichten verschiedener Themen typischerweise nicht miteinander verwandt sind.
-
Als weitere Lösung hat sich ferner gezeigt, dass es auch möglich wäre, verschiedene Themen zu definieren, bei denen Nachrichten mit gleichem Inhalt in unterschiedlichen Zeitintervallen gesendet werden. Die Kunden könnten dann diese Themen abonnieren und unterschiedlich bedient werden. Dies bedeutet jedoch, dass diese verschiedenen Themen vordefiniert werden müssen. Entsprechend geht auch diese Lösung mit einem Nachteil einher, nämlich mit einem hohen manuellen Aufwand bei der Definition der verschiedenen Themen.
-
Die erfindungsgemäße Lösung sieht stattdessen vor, dass eine Vielzahl einzelner Nachrichten unabhängig von einer eventuellen zeitkritischen Komponente zu einer Sammelnachricht erstellt bzw. aggregiert wird. Die Sammelnachricht wird an zumindest eine Empfangsvorrichtung verschickt, für die die darin enthaltenen einzelnen Nachrichten relevant sind. Die Relevanz kann dadurch hergestellt werden, dass das Sammelthema der Sammelnachricht von der Empfangsvorrichtung bzw. ihr zugeordneten Kunden bzw. Abonnenten abonniert wird.
-
Die Empfangsvorrichtung bildet dabei ein Subsystem des Systems aus, in dem das MQTT-Protokoll zur Kommunikation genutzt wird. Ebenso kann eine Sendevorrichtung vorgesehen sein, die ein weiteres Subsystem des Systems bildet und die insbesondere für die Durchführung der Schritte (a) bis (c) eingerichtet ist. Die Empfangsvorrichtung selbst kann ein Kunde, insbesondere ein Abonnent, sein, der ein oder mehrere Themen, insbesondere das Sammelthema, im Rahmen des MQTT-Protokolls abonniert hat. Die Empfangsvorrichtung kann aber auch einem oder mehreren Kunden, insbesondere Abonnenten, zugeordnet sein bzw. mit diesen drahtlos oder drahtgebunden verbunden sein, um die entpackten einzelnen Nachrichten bei diesen Kunden bzw. Abonnenten zu veröffentlichen. Insoweit kann die Empfangsvorrichtung die Funktion des Verteilens von empfangenen einzelnen Nachrichten nach ihrem Entpacken auf entsprechende Abonnenten übernehmen. Ansonsten können natürlich weitere Kunden, die Herausgeber und/oder Abonnenten sein können, weitere Subsysteme in dem System darstellen und mit der Empfangsvorrichtung und/oder Sendevorrichtung mittels des MQTT-Protokolls verbunden sein.
-
Wenn mehr als eine Empfangsvorrichtung vorhanden ist, kann die Sammelnachricht im Schritt (c) jeweils an jede der mehreren Empfangsvorrichtungen übertragen werden, soweit die darin enthaltenen einzelnen Nachrichten für diese relevant sind. Entsprechend kann dieselbe Sammelnachricht von jeder der Empfangsvorrichtungen eigenständig empfangen, entpackt und veröffentlicht werden. Mit anderen Worten können die Schritte (c) bis (f) für jede der Empfangsvorrichtungen wiederholt werden.
-
Selbstverständlich ist es aber auch möglich, dass mehrere Empfangsvorrichtungen vorhanden sind, für die jedoch jeweils andere einzelne Nachrichten relevant sind. In diesem Fall können mehrere Sammelnachrichten erstellt werden, die jeweils die für die jeweilige Empfangsvorrichtung gesammelten relevanten einzelnen Nachrichten umfassen. Die Sammelnachrichten können dann an die Empfangsvorrichtungen übertragen werden, für die die darin enthaltenen einzelnen Nachrichten relevant sind. Mit anderen Worten können in einem solchen Fall also sämtliche Verfahrensschritte, also die Schritte (a) bis (f), für unterschiedliche Empfangsvorrichtungen wiederholt werden.
-
Ferner können die Schritte (a) bis (f) des Verfahrens selbstverständlich beliebig oft für dieselbe zumindest eine Empfangsvorrichtung wiederholt werden, um jeweils aktuelle einzelne Nachrichten zu veröffentlichen. Dabei kann das Verfahren in bestimmten Zeitabständen für dieselbe zumindest eine Empfangsvorrichtung wiederholt werden, wobei jeweils eine neue Sammelnachricht in dem Sammelthema erstellt, übertragen und entpackt wird.
-
Es kann vorgesehen werden, dass das Übertragen der Sammelnachricht an die zumindest eine Empfangsvorrichtung nach Ablauf eines vordefinierten Sammelzeitraums erfolgt. So kann also die Vielzahl von Nachrichten laufend gesammelt werden, daraus laufend eine Sammelnachricht erstellt werden und diese dann jeweils nach Ablauf des vordefinierten Sammelzeitraums an die Empfangsvorrichtung übertragen werden. Mit anderen Worten könnte man auch sagen, dass das Sammeln der Vielzahl der einzelnen Nachrichten, die für die zumindest eine Empfangsvorrichtung relevant sind, in einem vordefinierten Sammelzeitraum erfolgt und die Sammelnachricht für die in dem Sammelzeitraum gesammelte Vielzahl von Nachrichten erstellt wird. Nach dem Ablauf des vordefinierten Sammelzeitraums, wird die in dem Sammelzeitraum erstellte Sammelnachricht dann an die Empfangsvorrichtung übertragen. Dieses durch Aneinanderreihen mehrere vordefinierten Sammelzeiträume geschaffene intervallartige Sammeln der einzelnen Nachrichten, Erstellen der Sammelnachricht und Übertragen der Sammelnachricht hat den Vorteil, dass damit die Latenzzeit begrenzt werden kann. Vorteilhafterweise wird der Sammelzeitraum relativ kurz gewählt bzw. definiert, damit die Latenzzeit begrenzt wird. Die maximale Latenzzeit der einzelnen Nachrichten wird dabei auf die Dauer des vordefinierten Sammelzeitraums begrenzt. Beispielsweise kann der Sammelzeitraum im Bereich von 1 bis 100 ms, insbesondere von 2 bis 75 ms, ferner insbesondere von 3 bis 50 ms und ganz besonders von 4 bis 40 ms liegen. Ein konkretes Beispiel in diesem Bereich wäre ein Sammelzeitraum von 10 ms. Dieser beispielhafte Sammelzeitraum hat zur Folge, dass die zumindest eine Empfangsvorrichtung 100 Sammelnachrichten pro Sekunde empfängt, wodurch die Latenzzeit auf 10 ms begrenzt wird.
-
Alternativ kann vorgesehen werden, dass das Übertragen der Sammelnachricht an die zumindest eine Empfangsvorrichtung nach Erreichen einer vordefinierten Nachrichtenlänge der Sammelnachricht erfolgt. Mit anderen Worten könnte auch gesagt werden, dass das Sammeln der Vielzahl der einzelnen Nachrichten, die für die zumindest eine Empfangsvorrichtung relevant sind, für eine vordefinierte Nachrichtenlänge der Sammelnachricht erfolgt und die Sammelnachricht mit der für die vordefinierte Nachrichtenlänge gesammelten Vielzahl von einzelnen Nachrichten erstellt wird. Auch dies hat den Vorteil, dass die Latenzzeit effektiv begrenzt werden kann. Dies erfolgt durch die Definition der Nachrichtenlänge als Minimum der erforderlichen Nachrichtenlänge der Sammelnachrichten, die gesendet werden sollen. So können kleine Sammelnachrichten unterhalb der vordefinierten Nachrichtenlänge vermieden werden. Dadurch kann die Anzahl der gesendeten Sammelnachrichten pro Zeiteinheit festgelegt werden.
-
Es kann ferner vorgesehen werden, dass die Vielzahl von einzelnen Nachrichten, die für die zumindest eine Empfangsvorrichtung relevant sind und gesammelt werden, zuvor von einem Broker veröffentlicht werden. Mit anderen Worten kann das Verfahren einen weiteren Schritt aufweisen, der vor den Schritten (a) bis (f) ausgeführt wird und darin besteht, dass der Broker die einzelnen Nachrichten veröffentlicht. Diese werden dann gesammelt, insbesondere von der Sendevorrichtung, wie sie später noch beschrieben werden wird. Dies ermöglicht die einfache Bereitstellung der einzelnen Nachrichten von den Herausgebern. Der Broker selbst kann dabei auf einer von der Sendevorrichtung separaten Vorrichtung bzw. einem separaten Computer oder aber auf der Sendevorrichtung selbst ausgeführt werden, von der die Schritte (a) bis (c) ausgeführt werden können.
-
Dabei kann vorgesehen werden, dass die einzelnen Nachrichten in der Reihenfolge ihrer Veröffentlichung durch den Broker gesammelt werden. Dies erlaubt vorteilhafterweise eine zeitgleiche Durchführung der Schritte (a) und (b) des Verfahrens. Mit anderen Worten können laufend einzelne Nachrichten gesammelt und zu der Sammelnachricht aggregiert bzw. in ihre Erstellung einbezogen werden. Dies vermeidet eine zeitliche Verzögerung zwischen dem Sammeln der einzelnen Nachrichten und dem Übertragen der einzelnen Nachrichten an die zumindest eine Empfangsvorrichtung in Form der Sammelnachricht. Hierneben ist auch eine zeitlich parallele Durchführung der Schritte (e) und (f) des Verfahrens ist denkbar. Dabei können laufend die aus der Sammelnachricht entpackten einzelnen Nachrichten veröffentlicht werden, während die Sammelnachricht entpackt wird. Ansonsten schließt sich der Schritt (c) insbesondere den Schritten (a) und (b) an. Der Schritt (d) wiederum schließt sich insbesondere dem Schritt (d) an und die Schritte (e) und (f) schließen sich insbesondere dem Schritt (d) an.
-
Ferner kann vorgesehen werden, dass die Sammelnachricht mit einer Struktur erstellt wird, die zumindest eine feste Kopfzeile (im Englischen: fixed header) und die Nutzdaten (im Englischen: payload) enthält. Insbesondere kann die Sammelnachricht die Struktur einer herkömmlichen einzelnen Nachricht im MQTT-Protokoll aufweisen. So kann die Sammelnachricht mittels des MQTT-Protokolls genauso wie alle anderen Nachrichten übertragen werden. Entsprechend kann zusätzlich zu der festen Kopfzeile und den Nutzdaten auch eine variable Kopfzeile (im Englischen: variable header) in der Sammelnachricht enthalten sein. Die feste Kopfzeile, die variable Kopfzeile und/oder die Nutzdaten können jeweils eine ihnen zugewiesene Bytezahl aufweisen.
-
Dabei kann vorgesehen werden, dass die Längen der einzelnen Nachrichten als Informationen in den Nutzdaten der Sammelnachricht abgelegt werden. Wie beschrieben, ist die Sammelnachricht, so wie eine herkömmliche MQTT-Nachricht, mit einer festen Kopfzeile und Nutzdaten ausgebildet. Bei n einzelnen Nachrichten in der Sammelnachricht kann jede dieser n Nachrichten eine unterschiedliche Länge haben (jeweils feste Kopfzeile plus Nutzdaten). Durch die Angabe der Längen der einzelnen Nachrichten als Information in den Nutzdaten der Sammelnachricht selbst kann beim Entpacken festgestellt werden, an welcher Stelle eine einzelne Nachricht beginnt und an welcher sie endet, damit diese korrekt und fehlerfrei entpackt werden können. Die Länge jeder einzelnen Nachricht wird dabei durch eine variable Anzahl von Bytes beschrieben. Wenn die einzelne Nachricht eine Länge von weniger als 128 Bytes hat, kann die Länge der einzelnen Nachricht mit einem Byte definiert werden, wobei das MSB (Abkürzung für most significant bit) (Bit 7) auf 0 gesetzt werden kann. Wenn die einzelne Nachricht eine Länge von mindestens 128 Bytes hat, kann das Bit 7 als Fortsetzungsbit verwendet und auf 1 gesetzt werden. Ein zweites Byte kann dann für einzelne Nachrichten mit einer Länge zwischen 128 und 128*127 Bytes verwendet. Wenn die einzelne Nachricht noch länger ist, kann ein weiteres Byte für die Länge der einzelnen Nachricht verwendet werden. Wenn das Fortsetzungs-Flag-Bit eines Bytes 1 ist, bedeutet dies, dass das nächste Byte ebenfalls Teil der verbleibenden Länge ist.
-
Hierbei kann vorgesehen werden, dass die einzelnen Nachrichten hinter den Informationen der Längen der einzelnen Nachrichten in den Nutzdaten abgelegt werden. Die einzelnen Nachrichten können dabei in den Nutzdaten der Sammelnachricht verkettet werden. Die Bytes der Nutzdaten der Sammelnachricht beginnen dann mit den Bytes, die die Längen jeder der einzelnen n Nachrichten definieren, gefolgt von der Verkettung der n Nachrichten. Dadurch können bei der Empfangsvorrichtung alle n Nachrichten korrekt und fehlerfrei extrahiert werden.
-
Gemäß einem zweiten Aspekt der Erfindung wird die eingangs erwähnte Aufgabe gelöst durch eine Sendevorrichtung, umfassend zumindest ein Mittel zum Sammeln einer Vielzahl von einzelnen Nachrichten und Erstellen einer Sammelnachricht im Rahmen eines MQTT-Protokolls durch Ausführung der Schritte (a) und (b) des Verfahrens nach dem ersten Aspekt der Erfindung sowie zumindest ein Mittel zum Übertragen der Sammelnachricht an eine Empfangsvorrichtung durch Ausführung des Schritts (c) des Verfahrens.
-
Das Mittel zum Übertragen der Sammelnachricht an die Empfangsvorrichtung kann eine entsprechende Kommunikationsschnittstelle, insbesondere drahtlose Kommunikationsschnittstelle, zum Aufbauen der Kommunikationsverbindung für die MQTT-Nachrichtenkommunikation sein. Das Mittel zum Sammeln der Vielzahl von einzelnen Nachrichten und Erstellen der Sammelnachricht im Rahmen des MQTT-Protokolls kann eine entsprechend eingerichtete Applikation bzw. ein entsprechend eingerichtetes erstes Computerprogrammprodukt sein, das von der Sendevorrichtung bzw. einem Prozessor der Sendevorrichtung ausgeführt wird. Die Sendevorrichtung kann dabei ein Computer sein. Dies wird später näher erläutert.
-
Gemäß einem dritten Aspekt der Erfindung wird die eingangs erwähnte Aufgabe gelöst durch eine Empfangsvorrichtung, umfassend zumindest ein Mittel zum Empfangen der Sammelnachricht durch Ausführung des Schritts (d) des Verfahrens nach dem ersten Aspekt der Erfindung sowie zumindest ein Mittel zum Entpacken der Sammelnachricht und Veröffentlichen der entpacken Vielzahl von einzelnen Nachrichten durch Ausführung der Schritte (e) und (f) des Verfahrens.
-
Das Mittel zum Empfangen der Sammelnachricht kann eine entsprechende Kommunikationsschnittstelle, insbesondere drahtlose Kommunikationsschnittstelle, zum Aufbauen der Kommunikationsverbindung für die MQTT-Nachrichtenkommunikation sein. Das Mittel zum Entpacken der Sammelnachricht und Veröffentlichen der entpacken Vielzahl von einzelnen Nachrichten kann eine entsprechend eingerichtete Applikation bzw. ein entsprechend eingerichtetes zweites Computerprogrammprodukt sein, das von der Empfangsvorrichtung bzw. einem Prozessor der Empfangsvorrichtung ausgeführt wird. Die Empfangsvorrichtung kann dabei ein Computer sein. Dies wird später näher erläutert.
-
Gemäß einem vierten Aspekt wird die eingangs erwähnte Aufgabe schließlich gelöst durch ein System zur Ausführung des computerimplementierten Verfahrens nach dem ersten Aspekt der Erfindung, umfassend eine Sendevorrichtung nach dem zweiten Aspekt der Erfindung und eine Empfangsvorrichtung nach dem dritten Aspekt der Erfindung.
-
Grundsätzlich können die Empfangsvorrichtung und die Sendevorrichtung sich in einer verteilten Computerumgebung befinden, wobei die Empfangsvorrichtung und die Sendevorrichtung durch voneinander unterschiedliche Computer gebildet werden oder voneinander unterschiedliche Computer aufweisen. Beispielsweise ist es möglich, dass die Sendevorrichtung durch einen Computer in einem Fahrzeug gebildet wird und die Empfangsvorrichtung durch einen Computer in einer Cloud gebildet wird, wobei letztere über das MQTT-Protokoll in Kommunikationsverbindung mit dem Fahrzeug steht.
-
Gemäß einem fünften Aspekt der Erfindung wird die eingangs erwähnte Aufgabe gelöst durch ein erstes Computerprogrammprodukt, umfassend Befehle, die bei der Ausführung des ersten Computerprogrammprodukts durch einen ersten Computer diesen veranlassen, zumindest die Schritte (a) bis (c) des Verfahrens nach dem ersten Aspekt der Erfindung durchzuführen.
-
Selbstverständlich kann das erste Computerprogrammprodukt auch Befehle umfassen, die bei der Ausführung des ersten Computerprogrammprodukts durch den ersten Computer diesen veranlassen, auch die Schritte (d) bis (f) des Verfahrens nach dem ersten Aspekt der Erfindung durchzuführen. Dies kann jedoch, insbesondere bei einer verteilten Computerumgebung, auch auf ein zweites Computerprogrammprodukt ausgelagert werden, welches insofern komplementär zu dem ersten Computerprogrammprodukt auf einem zweiten Computer ausgeführt werden kann.
-
Das erste Computerprogrammprodukt kann auch als ein Multiplexer bezeichnet werden. Das erste Computerprogrammprodukt kann auf der Sendevorrichtung, insbesondere auf einem Datenspeicher der Sendevorrichtung, gespeichert sein. Es kann als das Mittel zum Sammeln der Vielzahl von einzelnen Nachrichten und Erstellen der Sammelnachricht im Rahmen des MQTT-Protokolls fungieren, wie zuvor bereits erläutert worden ist. Ferner kann das erste Computerprogrammprodukt zumindest das Übertragen der Sammelnachricht an die Empfangsvorrichtung mittels des entsprechenden Mittels zur MQTT-Nachrichtenkommunikation auslösen.
-
Gemäß einem fünften Aspekt der Erfindung wird die eingangs erwähnte Aufgabe gelöst durch ein zweites Computerprogrammprodukt, umfassend Befehle, die bei der Ausführung des zweiten Computerprogrammprodukts durch einen zweiten Computer diesen veranlassen, zumindest die Schritte (d) bis (f) des Verfahrens nach dem ersten Aspekt der Erfindung auszuführen.
-
Das zweite Computerprogrammprodukt kann auch als ein Demultiplexer bezeichnet werden. Das zweite Computerprogrammprodukt kann auf der Empfangsvorrichtung, insbesondere auf einem Datenspeicher der Empfangsvorrichtung, gespeichert sein. Es kann als das Mittel zum Entpacken der Sammelnachricht und Veröffentlichen der entpacken Vielzahl von einzelnen Nachrichten fungieren, wie zuvor bereits erläutert worden ist. Ferner kann das zweite Computerprogrammprodukt zumindest das Empfangen der Sammelnachricht von der Sendeeinrichtungen mittels des entsprechenden Mittels zur MQTT-Nachrichtenkommunikation auslösen.
-
Schließlich wird die eingangs erwähnte Aufgabe gemäß einem sechsten Aspekt gelöst durch einen computerlesbaren Datenspeicher, auf dem das erste Computerprogrammprodukt nach dem vierten Aspekt der Erfindung und/oder das zweite Computerprogrammprodukt nach dem fünften Aspekt der Erfindung gespeichert ist.
-
Anhand der beigefügten Zeichnung wird die Erfindung nachfolgend näher erläutert. Sämtliche aus den Ansprüchen, der Beschreibung oder der Figur hervorgehenden Merkmale können sowohl für sich als auch in den beliebigen verschiedenen Kombinationen erfindungswesentlich sein.
-
Anhand der beigefügten Zeichnungen wird die Erfindung nachfolgend näher erläutert. Dabei zeigen:
- 1 eine schematische Ansicht eines Ausführungsbeispiels eines erfindungsgemäßen Systems;
- 2 eine schematische Darstellung von Verfahrensschritten eines Ausführungsbeispiels eines erfindungsgemäßen Verfahrens;
- 3 eine detaillierte schematische Darstellung des Systems aus 1;
- 4 eine schematische Ansicht eines ersten oder zweiten Computers mit einem ersten oder zweiten Computerprogrammprodukt gemäß einem Ausführungsbeispiel der Erfindung;
- 5 eine schematische Darstellung einer Struktur einer einzelnen Nachricht im MQTT-Protokoll; und
- 6 eine schematische Darstellung einer Struktur einer Sammelnachricht im MQTT-Protokoll.
-
Elemente mit gleicher Funktion und Wirkungsweise sind in den 1 bis 6 jeweils mit denselben Bezugszeichen versehen. Soweit ein an sich gleiches Element häufiger als einmal in einer der 1 bis 6 vorhanden ist, werden die Elemente mit demselben Bezugszeichen versehen und fortlaufend nummeriert, wobei die fortlaufende Nummerierung durch einen Punkt von ihrem Bezugszeichen getrennt wird.
-
1 zeigt ein System 100 mit einer Sendevorrichtung 10 und einer Empfangsvorrichtung 20. Das System 100 wird zusammen mit dem Verfahren 200 gemäß der Darstellung aus 2 und teilweise mit Verweis auf 3 im Folgenden beispielhaft erläutert.
-
Im ersten Verfahrensschritt 201 des Verfahrens 200 veröffentlicht ein Broker 11 (siehe 3) mittels eines MQTT-Protokolls eine Vielzahl von einzelnen Nachrichten 1.1, 1.2, 1.3, die von entsprechenden Kunden 30.1, 30.2, 30.3 (siehe 3), die hier als Herausgeber der einzelnen Nachrichten 1.1, 1.2, 1.3 agieren, stammen. Die Vielzahl dieser einzelnen Nachrichten 1.1, 1.2, 1.3 können zeitlich unabhängig voneinander veröffentlicht werden.
-
Die Vielzahl der einzelnen Nachrichten 1.1, 1.2, 1.3, die relevant für die Empfangsvorrichtung 20 sind, wird in dem zweiten Verfahrensschritt 202 innerhalb der Sendevorrichtung 10 gesammelt. In einem dritten Verfahrensschritt 203 wird eine Sammelnachricht 2 in einem Sammelthema erstellt, die die gesammelte Vielzahl der für die Empfangsvorrichtung relevanten Nachrichten 1.1, 1.2, 1.3 umfasst. Das Sammelthema kann von der Empfangsvorrichtung 20 bzw. dieser zugeordneten Kunden 40.1, 40.2 (siehe 3), die hier als Abonnenten agieren, abonniert werden, damit die Empfangsvorrichtung 20 die Sammelnachricht 2 empfangen kann.
-
Nach Ablaufen eines vordefinierten Sammelzeitraums oder nach Erreichen einer vorbestimmten Länge der Sammelnachricht 2 wird die bis dahin erstellte Sammelnachricht 2 in einem vierten Verfahrensschritt 204 periodisch im Rahmen des MQTT-Protokolls an die Empfangsvorrichtung 20 übertragen. In dem fünften Verfahrensschritt 205 wird diese Sammelnachricht 2 von der Empfangsvorrichtung 20 empfangen. Schließlich wird die empfangene Sammelnachricht 2 in einem sechsten Verfahrensschritt 206 in die Vielzahl der zuvor vorhandenen einzelnen Nachrichten 1.1, 1.2, 1.3 entpackt und in einem siebten Verfahrensschritt 207 werden diese einzelnen Nachrichten 1.1, 1.2, 1.3 veröffentlicht, wie 1 zeigt.
-
3 zeigt eine detaillierte Darstellung der 1, die weitere spezifische Details zeigt, die das System 100 aufweisen kann. So zeigt die 3, dass die Sendevorrichtung 10 den Broker 11 sowie einen Multiplexer 12 als ein erstes Computerprogrammprodukt 12 bzw. ein Mittel 12 aufweist. Der Broker 11 und der Multiplexer 12 sind Applikationen, die von einem entsprechenden ersten Prozessor 50 (siehe 4) der Sendevorrichtung 10, ausgeführt werden können. Grundsätzlich kann die Sendevorrichtung 10 dabei als ein Computer ausgebildet sein, der den ersten Prozessor 50 aufweist. Ferner kann die Sendevorrichtung 10 einen Datenspeicher 52 aufweisen, in dem der Multiplexer 12 gespeichert ist. Auch der Broker 11 kann in dem Datenspeicher 52 gespeichert und von der Sendevorrichtung 10 ausgeführt werden. Dies ist aber nicht notwendig, der Broker 11 kann auch von einer anderen Vorrichtung ausgeführt werden, die mittels des MQTT-Protokolls in Kommunikationsverbindung mit der Sendevorrichtung 10 steht. In diesem Zusammenhang kann bei den Vorrichtungen, wie der Sendevorrichtung 10 und der Empfangsvorrichtung 20, auch von Subsystemen des Systems 100 gesprochen werden. Diesen ist jeweils zumindest ein, vorliegend mehrere, Kunden 30.1, 30.2, 30.3, 40.1, 40.2 in Form von Herausgebern und Abonnenten dadurch zugeordnet, dass diese mittels des MQTT-Protokolls mit diesen verbunden sind.
-
Der Broker 11 ist über das MQTT-Protokoll, das in der 1 und der 3 für die Kommunikationsnachrichten innerhalb der eingezeichneten Kommunikationsverbindungen mit den einzelnen Nachrichten 1.1, 1.2, 1.3 und der Sammelnachricht 2 abläuft, mit den Kunden 30.1, 30.2, 30.3 verbunden, die als Herausgeber die einzelnen Nachrichten 1.1, 1.2, 1.3 an den Broker 11 senden, welcher diese veröffentlicht.
-
Zeitlich unabhängig voneinander werden diese einzelnen Nachrichten 1.1, 1.2, 1.3 an den Multiplexer 12 übertragen, der diese zur Sammelnachricht 2 aggregiert bzw. daraus die Sammelnachricht 2 erstellt und mittels einer entsprechenden drahtlosen Kommunikationsschnittstelle 13 als Mittel 13 der Sendevorrichtung 10 an die Empfangsvorrichtung 20 überträgt. Die Empfangsvorrichtung 20 weist ihrerseits ebenfalls eine drahtlose Kommunikationsschnittstelle 22 als ein Mittel 22 auf, mittels derer es die Sammelnachricht 2 empfängt.
-
Die Empfangsvorrichtung 20 weist einen Demultiplexer 21 als zweites Computerprogrammprodukt 21 bzw. Mittel 21 auf. Dieses entpackt die Sammelnachricht 2 und veröffentlicht die entpackten einzelnen Nachrichten 1.1, 1.2, 1.3 bei den Kunden 40.1, 40.2, die vorliegend die Abonnenten sind. Beispielhaft ist hier gezeigt, dass die einzelnen Nachrichten 1.1, 1.2 vom Kunden 40.1 und die einzelne Nachricht 1.3 vom Kunden 40.2 abonniert worden sind, die jeweils mit der Empfangsvorrichtung 20 in Kommunikationsverbindung stehen.
-
4 zeigt die bereits erwähnte Konstruktion der Sendevorrichtung 10 oder Empfangsvorrichtung 20 auf Hardwareebene. Die 4 zeigt entweder die Sendevorrichtung 10 als ersten Computer 10 mit dem ersten Prozessor 51 und dem Datenspeicher 52, auf dem das erste Computerprogrammprodukt 12 gespeichert ist oder die Empfangsvorrichtung 20 als zweiten Computer 20 mit dem zweiten Prozessor 51 und dem Datenspeicher 52, auf dem das zweite Computerprogrammprodukt 21 gespeichert ist.
-
5 zeigt die Struktur einer einzelnen Nachricht 1, die mittels des MQTT-Protokolls übertragen wird. Die Nachricht 1 weist eine feste Kopfzeile 3, eine variable Kopfzeile 4 und Nutzdaten 5 auf. In den Nutzdaten 5 ist der eigentliche Inhalt der Nachricht, die von dem Herausgeber veröffentlicht wird, enthalten.
-
6 zeigt nun die Struktur der Sammelnachricht 2, die grundsätzlich den gleichen Aufbau wie die einzelne Nachricht 1 aus der 5 mit einer festen Kopfzeile 3, einer variablen Kopfzeile 4 und Nutzdaten 5 hat. Allerdings bestehen die Nutzdaten 5 vorliegend nicht aus dem Inhalt einer Nachricht 1, sondern aus den Inhalten der gesammelten Vielzahl von Nachrichten 1. In den Nutzdaten 5 werden dabei zunächst die Längen der einzelnen Nachrichten 1.1... 1.n bzw. ihrer Inhalte als Informationen 6.1... 6.n abgelegt, damit die Empfangsvorrichtung 20 für den Entpackvorgang erkennen kann, wo die jeweiligen der Nachrichten 1.1... 1.n bzw. ihrer Inhalte beginnen und enden. Die einzelnen Nachrichten 1.1... 1.n bzw. ihr Inhalt werden hinter den Informationen 6.1...6.n der Längen der einzelnen Nachrichten 1.1... 1.n in den Nutzdaten 5 abgelegt.
-
Bezugszeichenliste
-
- 1
- einzelne Nachricht
- 2
- Sammelnachricht
- 3
- feste Kopfzeile
- 4
- variable Kopfzeile
- 5
- Nutzdaten
- 6
- Information der Länge einer Nachricht
- 7
- Nachricht
- 10
- Sendevorrichtung, erster Computer
- 11
- Broker
- 12
- erstes Computerprogrammprodukt, Mittel, Multiplexer
- 13
- Mittel, drahtlose Kommunikationsschnittstelle
- 20
- Empfangsvorrichtung, zweiter Computer
- 21
- zweites Computerprogrammprodukt, Mittel, Demultiplexer
- 22
- Mittel, drahtlose Kommunikationsschnittstelle
- 30
- Kunde, Herausgeber
- 40
- Kunde, Abonnent
- 50
- erster Computer
- 51
- Prozessor
- 52
- computerlesbares Speichermedium
- 60
- zweiter Computer
- 100
- System
- 200
- Verfahren
- 201... 207
- Verfahrensschritte