-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Durchführen von Programmcode-Updates in einem zumindest teilweise vermaschten Netzwerk, das mehrere Knotengruppen von Netzwerkknoten unterschiedlichen Typs aufweist.
-
Netzwerke bestehen aus mehreren Netzwerkknoten, die drahtlos oder drahtgebunden miteinander kommunizieren bzw. Daten austauschen. Beispielsweise kommunizieren Sensor und Aktuatornetze per Funkverbindung miteinander und weisen Netzwerkknoten auf, die mit Sensoren und Aktuatoren ausgestattet sein können. Derartige drahtlose Sensor und Aktuatornetze weisen Netzwerkknoten auf, die lokal mit Strom, beispielsweise aus einer Batterie, versorgt werden. Darüber hinaus weisen derartige Netzwerkknoten typischer Weise nur eine geringe Rechenleistung und eine geringere Speicherausstattung zum Speichern von Daten auf. Die Transceiver derartiger Netzwerkknoten bieten nur eine niedrige Reichweite sowie eine geringe Bandbreite für die Kommunikation über die Funkverbindung bzw. die Luftschnittstelle, insbesondere weil eine derartige Funkkommunikation im Hinblick auf den sehr begrenzten Energievorrat derartiger Netzwerkknoten vergleichsweise viel Energie verbraucht.
-
In Netzwerken kann es vorkommen, dass zur Behebung von Fehlern bzw. Fehlfunktionen in einzelnen oder allen Netzwerkknoten oder zum Implementieren einer verbesserten Softwareversion ein Update-Programmcode auf einige oder alle Netzwerkknoten zu verteilen und dort zu installieren ist.
-
Diese Übertragung eines Programmcode-Updates ist allerdings bei herkömmlichen Übertragungsverfahren in Anbetracht der geringen verfügbaren Bandbreite und der vergleichsweise großen dabei zu übertragenden Datenpakete mit einem hohen Energie- und Ressourcenaufwand bei den betroffenen Netzwerkknoten verbunden.
-
Bei herkömmlichen Verfahren zur Durchführung eines Software-Updates in einem Netzwerk, beispielsweise einem drahtlosen Sensornetzwerk, erfolgt entweder eine unspezifische Verteilung eines Programmimages bzw. eines Programmcode-Updates durch sogenanntes Flooding bzw. Fluten, d. h. mittels einem globalem Broadcast, an alle Netzwerkknoten oder eine spezifische Zustellung des Programmcode-Updates durch ein Punkt-zu-Punkt Vereinbarung, d. h. mittels Unicast, an bestimmte Netzwerkknoten.
-
Viele Netzwerke weisen Netzwerkknoten unterschiedlichen Typs auf, beispielsweise Netzwerkknoten, die mit unterschiedlicher Hardware, insbesondere Sensoren oder Aktuatoren, ausgestattet sind. Bei herkömmlichen Verfahren zum Durchführen von Programmcode-Updates in einem derartigen Netzwerk werden für jeden Typ eines Netzwerkknotens, insbesondere jeden Hardware-Typ, je nach Anwendungskontext mehrere Programmcode-Updates bzw. Programmimages vorgehalten bzw. gespeichert. Aufgrund des zumeist geringen Speicherplatzes in den jeweiligen Netzwerkknoten ist es allerdings oft nicht möglich im Rahmen eines Software-Updates auf jedem Netzwerkknoten ein derartiges Programmimages bzw. einen entsprechenden Update-Programmcode zwischenzuspeichern. Herkömmliche Verfahren zum Durchführen eines Update-Programmcodes sind daher bei derartigen Netzwerken, deren Netzwerkknoten nur über beschränkte Ressourcen verfügen, nicht oder lediglich in ineffizienter Weise anwendbar. Darüber hinaus führen derartige herkömmliche Verfahren zum Durchführen von Programmcode-Updates zu einem relativ hohen Energieverbrauch bei den jeweiligen betroffenen Netzwerkknoten, so dass deren maximale Betriebsdauer aufgrund des hohen Energieverbrauchs bei dem Software-Update entscheidend verringert wird.
-
Es ist daher eine Aufgabe der vorliegenden Erfindung ein Verfahren zum Durchführen von Programmcode-Updates in einem zumindest teilweise vermaschten Netzwerk, das mehrere Knotengruppen von Netzwerkknoten unterschiedlichen Typs aufweist, zu schaffen, das auch bei Netzwerkknoten mit geringen zur Verfügung stehenden Ressourcen effizient einsetzbar ist.
-
Die Erfindung schafft ein Verfahren zum Durchführen von Programmcode-Updates in einem zumindest teilweise vermaschten Netzwerk, das mehrere Knotengruppen von Netzwerkknoten unterschiedlichen Typs aufweist, mit den folgenden Schritten:
Ermitteln eines Overlay-Netzwerkes für jede Knotengruppe, für die ein Programmcode-Update erfolgt,
wobei das Overlay-Netzwerk Ziel-Netzwerkknoten der jeweiligen Knotengruppe und Transfer-Netzwerkknoten anderer Knotengruppen aufweist, über welche voneinander getrennte Ziel-Netzwerkknoten der jeweiligen Knotengruppe verbindbar sind; und
Übertragen mindestens eines Update-Programm-Codes an die Netzwerkknoten des ermittelten Overlay-Netzwerkes der jeweiligen Knotengruppe,
wobei die Transfer-Netzwerkknoten des Overlay-Netzwerkes den Update-Programm-Code transient und die Ziel-Netzwerkknoten des Overlay-Netzwerkes den Update-Programm-Code dauerhaft speichern.
-
Die Erfindung stellt somit ein Verfahren für Software-Updates in heterogenen Netzwerken zur Verfügung, bei dem der Energieverbrauch zur Durchführung des Software-Updates bzw. zur Durchführung des Programmcode-Updates minimal ist.
-
Das erfindungsgemäße Verfahren hat den weiteren Vorteil, dass der Speicherbedarf in den jeweiligen Netzwerkknoten gering ist.
-
Ein weiterer Vorteil des erfindungsgemäßen Verfahrens zum Durchführen von Programmcode-Updates in dem vermaschten Netzwerk besteht darin, dass die Kommunikation zwischen Netzwerkknoten effizient erfolgt.
-
In einer Ausführungsform des erfindungsgemäßen Verfahrens speichert jeder Netzwerkknoten des Netzwerks Nachbarschaftsinformationsdaten, welche die Knoten IDs und Typen der mit dem jeweiligen Netzwerkknoten benachbarten Netzwerkknoten angeben.
-
In einer Ausführungsform des erfindungsgemäßen Verfahrens werden die Nachbarschaftsinformationsdaten der Netzwerkknoten des drahtlosen Netzwerkes zu einem mit dem Netzwerk verbundenen Rechner übertragen, der auf Basis der von den Netzwerkknoten empfangenen Nachbarschaftsinformationsdaten eine Topologie des Netzwerkes ermittelt.
-
In einer Ausführungsform des erfindungsgemäßen Verfahrens wird der Update-Programmcode über drahtlose Schnittstellen an die Netzwerkknoten übertragen.
-
In einer Ausführungsform des erfindungsgemäßen Verfahrens umfassen die drahtlosen Schnittstellen der Netzwerkknoten 805.15.4-Schnittstellen, ZIGBEE-Schnittstellen, WLAN-Schnittstellen oder Blue-Tooth-Schnittstellen.
-
In einer alternativen Ausführungsform des erfindungsgemäßen Verfahrens wird der Update-Programmcode über drahtlose und drahtgebundene Schnittstellen an die Netzwerkknoten übertragen.
-
In einer Ausführungsform des erfindungsgemäßen Verfahrens geben die Nachbarschaftsinformationsdaten auch eine Verbindungsqualität der drahtlosen Verbindungen zu den benachbarten Netzwerkknoten an.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens erfolgt das Ermitteln eines Overlay-Netzwerkes für eine Knotengruppe auf Basis der Nachbarschafts-Informationsdaten der Netzwerkknoten der Knotengruppe durch eine Recheneinheit, welche die Nachbarschaftsinformationsdaten von den Netzwerkknoten der Knotengruppe empfängt.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens erfolgt das Übertragen eines Update-Programmcodes eines Netzwerkknotens paketweise.
-
Die Erfindung schafft ferner ein Netzwerk mit:
mehreren Knotengruppen, die jeweils Netzwerkknoten unterschiedlichen Typs aufweisen,
wobei in jedem Netzwerkknoten ein Speicher für einen ausführbaren Programm-Code vorgesehen ist und in dem Netzwerkknoten Nachbarschaftsinformationsdaten vorhanden sind, welche Knoten-IDs und Typen von mit dem jeweiligen Netzwerkknoten benachbarten Netzwerkknoten angeben; und mit
einer Recheneinheit, die zum Durchführen eines Programm-Code-Updates bei einer Knotengruppe des Netzwerkes auf Basis der Nachbarschaftsinformationsdaten ein zugehöriges Overlay-Netzwerk ermittelt, welches Ziel-Netzwerkknoten der jeweiligen Knotengruppe, bei denen das Programm-Code-Update erfolgt, und Transfer-Netzwerkknoten anderer Knotengruppen aufweist, über welche voneinander getrennte Ziel-Netzwerkknoten der jeweiligen Knotengruppe verbindbar sind,
wobei der Update-Programm-Code an die Netzwerkknoten des ermittelten Overlay-Netzwerkes der jeweiligen Knotengruppe übertragen wird und wobei der Update-Programm-Code in den Ziel-Netzwerkknoten dauerhaft und in den Transfer-Netzwerkknoten transient speicherbar ist.
-
Bei einer Ausführungsform des erfindungsgemäßen Netzwerkes weist jeder Netzwerkknoten einer Knotengruppe einen Prozessor zum Ausführen des Programmcodes und einen Datenspeicher mit mehreren Speicherpartitionen auf, wobei mindestens eine Speicherpartition des Datenspeichers eine Transferspeicherpartition bildet, die zum transienten Zwischenspeichern von Programmcodes für Netzwerkknoten anderer Knotengruppen vorgesehen ist.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Netzwerkes weist jeder Netzwerkknoten ferner auf:
eine Schnittstelle zum paketweisen Empfangen von Programmcode-Updates
einen oder mehrere Sensoren,
einen oder mehrere Aktoren,
eine lokale Energieversorgungseinheit,
einen Programmspeicher zum Laden eines in einer Speicherpartition eines Datenspeichers gespeicherten Programmcodes und einen Parameterspeicher.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Netzwerkes werden der Datenspeicher und der Programmspeicher durch einen Flashspeicher gebildet.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Netzwerkes bilden die Netzwerkknoten des Netzwerkes ein drahtloses, zumindest teilweise vermaschtes Netzwerk.
-
Bei einer Ausführungsform des erfindungsgemäßen Netzwerkes ist die Recheneinheit über einen Gateway-Knoten mit mindestens einem Netzwerkknoten verbunden.
-
Bei einer Ausführungsform des erfindungsgemäßen Netzwerkes sind die Programmcode-Updates über drahtlose Schnittstellen übertragbar, insbesondere über eine IEEE 802.15.4-Schnittstelle, eine ZIGBEE-Schnittstelle, eine WLAN-Schnittstelle oder eine Blue-Tooth-Schnittstelle.
-
Die Erfindung schafft ferner einen Netzwerkknoten, der zu einer Knotengruppe eines bestimmten Typs innerhalb eines Netzwerkes gehört, welches mehrere Knotengruppen unterschiedlichen Typs aufweist, mit:
einer Schnittstelle zum Empfangen von Update-Programmcodes, die jeweils in einer Speicherpartition eines Datenspeichers speicherbar sind,
wobei ein Update-Programmcode in einer bestimmten Transfer-Speicherpartition des Datenspeichers transient speicherbar ist, falls der empfangene Update-Programmcode für Netzwerkknoten einer anderen Knotengruppe bestimmt ist.
-
In einer Ausführungsform des erfindungsgemäßen Netzwerkknotens weist dieser einen Programmspeicher zum Speichern eines ausführbaren Programmcodes auf, der aus einer Speicherpartition des Datenspeichers ladbar ist, sowie einen Prozessor zum Ausführen des geladenen Programmcodes und einen Speicher zum Ablegen von Nachbarschaftsinformationsdaten. welche die Knoten IDs und Typen, der mit dem jeweiligen Netzwerkknoten benachbarten Netzwerkknoten, angeben.
-
In einer Ausführungsform des erfindungsgemäßen Netzwerkknotens weist dieser zusätzlich eine lokale Energieversorgungseinheit, eine oder mehrere Sensoren, einen oder mehrere Aktoren und einen Parameterspeicher auf.
-
Im Weiteren werden bevorzugte Ausführungsformen des erfindungsgemäßen Verfahrens zum Durchführen von Programmcode-Updates in einem Netzwerk, sowie des erfindungsgemäßen Netzwerkes und der in dem Netzwerk enthaltene Netzwerkknoten unter Bezugnahme auf die beigefügten Figuren beschrieben.
-
Es zeigen:
-
1A bis 1E Diagramme zur Erläuterung der Funktionsweise des erfindungsgemäßen Verfahrens zum Durchführen von Programmcode-Updates anhand eines beispielhaften Netzwerkes mit Netzwerkknoten unterschiedlichen Typs;
-
2A bis 2E Diagramme zur Darstellung einer Ausführungsform eines Verfahrens zum Ermitteln eines Overlay-Netzwerkes wie es bei dem erfindungsgemäßen Verfahren eingesetzt werden kann;
-
3 ein Blockschaltbild eines Ausführungsbeispiels für einen im erfindungsgemäßen Netzwerk eingesetzten Netzwerkknotens.
-
Wie man aus 1A erkennen kann, besteht ein erfindungsgemäßes Netzwerk 1 aus mehreren Knotengruppen, die jeweils Netzwerkknoten 2-i unterschiedlichen Typs aufweisen. Bei dem in 1A dargestellten Beispiel gibt es drei verschiedene Knotengruppen, die jeweils Netzwerkknoten eines unterschiedlichen Typs A, B, C aufweisen. Diese Netzwerkknoten unterschiedlichen Typs unterscheiden sich beispielsweise in ihrer Hardware-Ausstattung, beispielsweise in der Anzahl und Art der in ihnen integrierten Sensoren oder Aktoren. Bei den in 1A dargestellten Netzwerkknoten 2-i unterschiedlichen Typs A, B. C handelt es sich beispielsweise um Sensorknoten eines Sensornetzwerkes. Das Netzwerk 1 weist somit eine Vielzahl von Netzwerkknoten 2-i auf, die vor allem über drahtlose Schnittstellen miteinander kommunizieren. Bei einer Variante des erfindungsgemäßen Netzwerkes 1 können die Sensorknoten teilweise über drahtlose Schnittstellen und teilweise über drahtgebundene Schnittstellen miteinander Daten austauschen bzw. kommunizieren. In jedem Netzwerkknoten 2-i ist mindestens ein Speicher für einen ausführbaren Programmcode vorgesehen. Darüber hinaus weist jeder Netzwerkknoten 2-i einen Speicher zum Speicher von Nachbarschaftsinformationsdaten auf. Die Nachbarschaftsinformationsdaten geben die Knoten IDs und Typen der mit den jeweiligen Netzwerkknoten 2-i benachbarten Netzwerkknoten an. Neben den verschiedenen Netzwerkknoten 2-i unterschiedlichen Typs A, B, C weist das Netzwerk 1 mindestens eine Recheneinheit 3 auf, bei der es sich beispielsweise um einen leistungsstarken zentralen Rechner handeln kann. Diese Recheneinheit 3 kann bei einer möglichen Ausführungsform über einen Gateway-Knoten mit mindestens einem Netzwerkknoten 2-i des Netzwerkes 1 verbunden sein. Die zentrale Recheneinheit 3 ist in der Lage aus gesammelten Nachbarschaftsinformationsdaten eine Topologie des gesamten Netzwerkes 1 abzuleiten. In einer möglichen Ausführungsform ermittelt die Recheneinheit 3 zum Durchführen eines Programmcode-Updates bei einer Knotengruppe des Netzwerkes auf Basis der Nachbarschaftsinformationsdaten ein zugehöriges Overlay-Netzwerk. Dieses Overlay-Netzwerk weist die Zielnetzwerkknoten der jeweiligen Knotengruppe auf, bei denen das jeweilige Programmcode-Update erfolgt, sowie Transfer-Netzwerkknoten anderer Knotengruppen, über welche die voneinander getrennten Zielnetzwerkknoten der jeweiligen Knotengruppe verbindbar sind. Bei der Durchführung eines Software-Updates wird der Update-Programmcode an die Netzwerkknoten 2-i des ermittelten Overlay-Netzwerkes der jeweiligen Knotengruppe übertragen und der übertragene Update-Programmcode in den Zielnetzwerkknoten der jeweiligen Knotengruppe dauerhaft gespeichert. Demgegenüber wird der übertragene Update-Programmcode in den Transfernetzwerkknoten des Overlay-Netzwerkes lediglich transient bzw. temporär gespeichert. Jeder Netzwerkknoten 2-i jedes Netzwerkes 1 weist mindestens einen Prozessor zum Ausführen eines Programmcodes sowie einen Datenspeicher mit mehreren Speicherpartitionen auf. Eine der Speicherpartitionen des Datenspeichers bildet eine Transfer-Speicherpartition, die zum transienten Zwischenspeichern der Programmcodes für Netzwerkknoten anderer Knotengruppen vorgesehen ist. Bei einer möglichen Ausführungsform werden der Datenspeicher und der Programmspeicher jeweils durch einen Flashspeicher gebildet.
-
Zur Durchführung eines Programmcode-Updates wird in einem ersten Schritt zunächst für jede Knotengruppe ein Overlay-Netzwerk ermittelt. Die Ermittlung des Overlay-Netzwerkes erfolgt vorzugsweise durch den zentralen leistungsstarken Rechner 3 oder alternativ durch mindestens einen leistungsstarken Netzwerkknoten 2-i des Netzwerkes 1. Zur Durchführung eines Software-Updates bei einer bestimmten Knotengruppe, beispielsweise der Knotengruppe A aller Netzwerkknoten 2-i des Typs A wird zunächst ein Overlay-Netzwerk anhand der Nachbarschaftsinformationsdaten gebildet bzw. berechnet. Hierzu werden, wie in 1B angedeutet, die Nachbarschaftsinformationsdaten von den Netzwerkknoten 2-i, beispielsweise von Sensorknoten, an den Rechner 3 übertragen. Diese Nachbarschaftsinformationsdaten stellen ein Abbild der Topologie des Netzwerkes 1 dar. Die Nachbarschaftsinformationsdaten können von den Netzwerkknoten 2-i beispielsweise über ein Multi-Hop-Mechanismus an die Recheneinheit 3 geliefert werden. In einer möglichen Ausführungsform wird ein sogenanntes Tree-Collection-Verfahren, welches beispielsweise bei der Übertragung von Messdaten in einem Sensornetzwerk benutzt werden kann, zum Liefern der Nachbarschaftsinformationsdaten an die Recheneinheit 3 eingesetzt. Vorzugsweise handelt es sich bei dem Netzwerk 1 um ein statisches Netzwerk, in dem sich die Struktur bzw. die Topologie des Netzwerkes 1 über die Zeit nicht oder nur geringfügig ändert und das keine oder wenige mobile Netzwerkknoten beinhaltet. Bei einem statischen Netzwerk benötigt die Recheneinheit 3 für jedem Netzwerkknoten 2-i lediglich eine Nachricht, welche die entsprechenden Nachbarschaftsinformationsdaten, insbesondere eine Liste der benachbarten Knoten beinhaltet. In der Regel ist in einem Sensornetzwerk bereits mindestens ein Routingverfahren implementiert, das die Weiterleitung von Messdaten an ein Gateway erlaubt.
-
In einer möglichen Ausführungsform wird dieses vorhandene Routingverfahren zusätzlich zum Übertragen der Nachbarschaftsinformationsdaten an die zentrale Recheneinheit 3 benutzt, ohne dass ein eigenständiges Routingverfahren hierfür vorgesehen werden muss. Auf Basis der empfangenen Nachbarschaftsinformationsdaten berechnet die Recheneinheit 3 auf Grundlage der gegebenen Netzwerktopologie für die jeweils upzudatende Knotengruppe ein zugehöriges Overlay-Netzwerk. Dieses Overlay-Netzwerk umfasst die upzudatenden Zielnetzwerkknoten der jeweiligen Knotengruppe und zusätzlich Transfernetzwerkknoten anderer Knotengruppen. Diese Transfernetzwerkknoten sind Knoten, über welche von einander getrennte Zielnetzwerkknoten der jeweiligen upzudatenden Knotengruppe miteinander verbindbar sind. Da die zentrale Recheneinheit 3 über alle relevanten Nachbarschaftsinformationen sowie über genügend Rechenleistung verfügt, kann für jede Knotengruppe ein optimales Overlay-Netzwerk bestimmt werden, mit dessen Hilfe eine Programmcode-Verteilung mit minimalem Energieverbrauch erreicht wird.
-
In einer weiteren Ausführungsform kann das ermittelte Overlay-Netzwerk redundant berechnet werden, um möglichen Störungen in der Konnektivität der Netzwerkknoten 2-i bereits im Vorfeld vorzubeugen. Für jedes Oberlay-Netzwerk werden die Netzwerkknoten derart ausgewählt bzw. berechnet, dass sowohl alle Zielnetzwerkknoten als auch einige Transfernetzwerkknoten enthalten sind. Transfernetzwerkknoten werden im späteren Flooding bzw. Fluten genutzt damit alle Zielnetzwerkknoten der jeweiligen Knotengruppe zur Durchführung des Software-Updates erreicht werden können. Die zentralisierte Ermittlung der beim Software-Update beteiligten Netzwerkknoten 2-i ermöglicht es eine optimale Auswahl der Transfernetzwerkknoten derart vorzunehmen, dass der zusätzliche Übertragungsaufwand und der damit verbundene zusätzliche Energieverbrauch minimiert werden.
-
1C verdeutlicht die Ermittlung eines Overlay-Netzwerkes für die Knotengruppe der Netzwerkknoten des Typ A in dem Netzwerk 1. Bei dem dargestellten Beispiel umfasst die Netzwerkknotengruppe A die Netzwerkknoten 2-1, 2-4, 2-5, 2-6, 2-7 sowie die Netzwerkknoten 2-9. Um alle Netzwerkknoten der Knotengruppe A zu erreichen, ist die Beteiligung des Netzwerkknotens 2-5 des Typs C notwendig. Wie man aus 1C erkennen kann, bilden die Netzwerkknoten 2-1, 2-4, 2-7 eine erste direkt miteinander verbundene Teilgruppe der Netzwerkknotengruppe A und die Netzwerkknoten 2-6, 2-9 eine zweite Teilgruppe der Netzwerkknotengruppe A. Diese beiden Unter- bzw. Teilgruppen der Netzwerkknotengruppe A lassen sich in optimierter Weise über den Netzwerkknoten 2-5 des Typs C verbinden. Alternative Verbindungsmöglichkeiten beispielsweise über den Knoten 2-3 oder den Knoten 2-8 führen zu einem höheren Übertragungs- und Energieaufwand. Wie in 1C dargestellt wird durch den leistungsstarken Rechner 3 intern ein entsprechendes Overlay-Netzwerk berechnet, das neben den fünf Netzwerkknoten des Typs A auch den Netzwerkknoten 2-5 des Typs C als Transfernetzwerkknoten beinhaltet.
-
Sobald ein Software-Update für die Knotengruppe A zu erfolgen hat, wird mindestens ein Update-Programmcode an die Netzwerkknoten des ermittelten Overlay-Netzwerkes der jeweiligen Knotengruppe A übertragen. Der Update-Programmcode wird dabei in den Transfernetzwerkknoten des Overlay-Netzwerkes nur transient bzw. temporär gespeichert. In den Zielnetzwerkknoten des Overlay-Netzwerkes wird hingegen der Update-Programmcode dauerhaft gespeichert. Eine Löschung des transient gespeicherten Update-Programmcodes in dem Speicher des Transfernetzwerkknotens erfolgt beispielsweise erst nach erfolgreichem Update der gesamten Knotengruppe oder nach Ablauf einer bestimmten Zeit oder durch Überschreiben mit einem neuen Update-Programmcode eines nachfolgenden Software-Updates für eine andere Knotengruppe.
-
1D zeigt beispielhaft die Übertragung eines Update-Programmcodes ausgehend von dem Rechner 3 an die Netzwerkknoten der Gruppe A des ermittelten Overlay-Netzwerkes.
-
Ist das Netzwerk 1 ein Netzwerk mit einer statischen Netzwerktopologie erfolgt die Bestimmung des Overlay-Netzwerkes einmalig bzw. erfolgt im Fall von gelegentlichen Veränderungen des Netzwerkes 1 oder der Umgebung mit einer relativ geringen Häufigkeit.
-
In einer möglichen Ausführungsform werden die resultierenden Overlay-Netzwerke den beteiligten Netzwerkknoten 2-i des Netzwerkes 1 bekannt gemacht, indem per Flooding bzw. Fluten die Zugehörigkeit der Netzwerkknoten 2-i zu den verschiedenen Overlay-Netzwerken in dem gesamten Netzwerk 1 kommuniziert werden. Netzwerkknoten 2-i kennen ihre Gruppenzugehörigkeit, da diese statisch ist bzw. durch unveränderliche Eigenschaften des jeweiligen Netzwerkknotens 2-i, beispielsweise des darin implementierten Prozessortyps, festgelegt ist. Bei einer Ausführungsform werden daher nur diejenigen Netzwerkknoten 2-i von ihrer Zugehörigkeit zu einem Overlay-Netzwerk unterrichtet, die nicht einer der zugehörigen Gruppen angehören. Daher ist der Aufwand für derartige Benachrichtigungen innerhalb des Netzwerkes 1 gering.
-
Bei einer möglichen Ausführungsform speichert jeder Netzwerkknoten 2-i, der bei der Übertragung von fremden Daten beteiligt ist bzw. an der Übertragung von Daten, die für andere Netzwerkknotentypen bestimmt sind, diese Daten in einer Transferspeicherpartition des Datenspeichers ab. Deshalb muss der jeweilige Netzwerkknoten 2-i eine geringere Anzahl an Speicherpartitionen beinhalten bzw. aufweisen als auf Grundlage Anzahl der unterschiedlichen Netzwerkknotengruppen und Programmversionen notwendig erscheint. Ein Vorteil des erfindungsgemäßen Verfahrens besteht darin, dass der zentrale Rechner 3 zu jedem Zeitpunkt weiß, welche Netzwerkknoten 2-i an dem jeweiligen Transfer bzw. Update beteiligt sind. Somit kann der zentrale Rechner 3 den Transfer bzw. die Übertragung des Update-Programmcodes stets lückenlos überwachen. Bei der Übertragung der Update-Programmcodes wird der Update-Programmcode in den Transfernetzwerkknoten des Overlay-Netzwerkes temporär in einer Transferspeicherpartition des jeweiligen Datenspeichers zwischengespeichert.
-
Falls ein neuer Netzwerkknoten einem bestehenden Netzwerk 1 hinzugefügt wird, berechnet die zentrale Recheneinheit 3 die beteiligten Netzwerkknoten für alle Knotengruppen neu.
-
Wie in 1E beispielhaft dargestellt ermittelt der zentrale Rechner 3 bei einer Erweiterung des Netzwerkes 1 um einen weiteren Netzwerkknoten 2-12 des Typs A den Knoten 2-10 des Typs C als weiteren Transfernetzwerkknoten für das Overlay-Netzwerk der Knotengruppe A. Auf diese Weise erhält der hinzugekommene Netzwerkknoten 2-12 des Typs A über zwei Hops die aktuellen Daten bzw. den Update-Programmcode.
-
Das Ausführen eines Software-Updates bzw. die Durchführung eines Programmcode-Updates kann auf verschiedene Weise getriggert werden. Beispielsweise kann ein Software-Update für jede Gruppe von Netzwerkknoten in periodischen Zeitabständen indem Netzwerk 1 vorgenommen werden. Eine weitere Möglichkeit besteht darin bei Eintritt eines bestimmten Ereignisses, beispielsweise bei Ausfall eines Netzwerkknotens oder Hinzufügen oder Entfernen eines Netzwerkknotens ein Update auszuführen. Ferner kann ein Software-Update durch eine Nutzereingabe ausgelöst werden. Eine weitere Möglichkeit besteht darin, dass ein oder mehrere Netzwerkknoten eine entsprechende Update-Anforderung übertragen, beispielsweise bei Auftreten einer Fehlfunktion.
-
Die 2A bis 2D verdeutlichen die Ermittlung eines Overlay-Netzwerkes durch eine zentrale Recheneinheit 3 basierend auf der Topologie eines Netzwerkes 1, wie es in 2A dargestellt ist. Der zentrale Rechner 1 verfügt über Informationsdaten, welche Nachbarschaftsbeziehungen angeben, die auch eine Verbindungsqualität der drahtlosen Verbindungen zwischen den benachbarten Netzwerkknoten umfassen können. Eine derartige Information über die Signalqualität der drahtlosen Verbindung ist beispielsweise ein RSSI-Wert (Received Signal Strength Indicator) oder ein LQI-Wert (Link Quality Indicator).
-
Wie in 2B dargestellt werden bei einer möglichen Ausführungsform zunächst die Kanten eines sogenannten Minimal Spanning Trees, beispielsweise mittels eines Kruskal-Algorithmus bestimmt.
-
Wie in 2C dargestellt werden Blätter bzw. Netzwerkknoten des Baumes identifiziert, die nicht zur Zielgruppe gehören. Eine Ausnahme bildet der Netzwerkknoten 2-1, der die Verbindung zu der zentralen Recheneinheit 3 bildet. Dieser Netzwerkknoten 2-1 wird in dem dargestellten Beispiel nicht ausgewählt. Die Kanten, die zu dem identifizierten Netzwerkknoten führen, werden aus dem Spanning-Tree gelöscht. Die identifizierten Netzwerkknoten gehören nicht mehr zu dem jeweiligen Baum. Dieser Schritt wird iterativ solange wiederholt bis keine Netzwerkknoten mehr identifiziert werden können, wie in den , dargestellt ist. Der dabei entstehende Ergebnisbaum verbindet alle Netzwerkknoten der Zielgruppe und diejenigen Netzwerkknoten die notwendig sind um alle Zielnetzwerkknoten der jeweiligen Knotengruppe zu erreichen, das heißt das jeweilige Overlay-Netzwerk.
-
Die 3 zeigt ein Blockschaltbild für ein Ausführungsbeispiel eines erfindungsgemäßen Netzwerkknotens 2-i innerhalb des Netzwerkes 1. Wie in 3 dargestellt weist der Netzwerkknoten 2-i der zu einer Knotengruppe eines bestimmten Typs, beispielsweise des Typs A, B, C innerhalb des Netzwerkes 1 gehört, verschiedene integrierte Einheiten auf. Der Netzwerkknoten 2-i weist bei einer Ausführungsform eine Schnittstelle SP 2A zum Empfangen von Update-Programmcodes auf, die jeweils in einer Speicherpartition SP eines Datenspeichers 2B speicherbar sind. Bei dem dargestellten Ausführungsbeispiel weist der Datenspeicher 2B vier Speicherpartitionen SP auf, wobei eine Speicherpartition eine Transferspeicherpartition T-SP bildet. Ein Update-Programmcode wird in dieser Transferspeicherpartition T-SP des Datenspeichers 2B innerhalb des Netzwerkknotens 2 transient bzw. temporär gespeichert, falls der empfangene Update-Programmcode für Netzwerkknoten einer anderen Knotengruppe bestimmt ist.
-
Bei dem in 3 dargestellten Ausführungsbeispiel enthält der Netzwerkknoten 2-i einen Prozessor 2C zum Ausführen eines oder mehrerer Programmcodes. In einem Programmspeicher 2D sind einer oder mehrere Programmcodes gespeichert, die aus einer Speicherpartition SP des Datenspeichers 2B ladbar sind. Der Netzwerkknoten 2-i verfügt ferner über einen Speicher 2E zum Ablegen von Nachbarschaftsinformationsdaten, welche die Knoten IDs und Typen der mit dem jeweiligen Netzwerkknoten 2-i benachbarten Netzwerkknoten 2-i angeben. Darüber hinaus weist der Netzwerkknoten 2-i eine lokale Energieversorgungseinheit 2F, beispielsweise eine Batterie oder eine Solarzelle, auf. Weiterhin kann der Netzwerkknoten 2-i über eine oder mehrere Sensoren 2G oder eine oder mehrere Aktoren 2H verfügen. Bei einer möglichen Ausführungsform weist der Netzwerkknoten 2-i zudem einen Parameterspeicher 2I auf. Dieser Parameterspeicher 2I ist beispielsweise ein SRAM-Speicher.
-
Bei dem erfindungsgemäßen Verfahren zum Durchführen eines Software-Updates werden für Knotengruppen spezifische Overlay-Netzwerke für den Software-Update durch ein geeignetes Verfahren zur Verbreitung von Datenpaketen verwendet. Neben den Knoten bzw. Zielnetzwerkknoten der jeweiligen Knotengruppe, die mit der neuen Software versorgt werden sollen, werden zusätzlich geeignete Fremdknoten bzw. Transfernetzwerkknoten eingesetzt, um eine ausreichende Junktivität der Zielgruppe bzw. upzudatenden Netzwerkknotengruppe zu erreichen. Die Ermittlung bzw. Berechnung geeigneter Overlay-Netzwerke für alle Knotengruppen des Netzwerkes 1 erfolgt dabei unter Minimierung des notwendigen Kommunikationsaufwands vorzugsweise durch eine zentrale Recheneinheit 3. Zur Ermittlung bzw. Berechnung der Overlay-Netzwerke werden neben der Kenntnis der Gruppenzugehörigkeit der Netzwerkknoten 2-i lediglich Informationen bezüglich direkter Nachbarknoten der jeweiligen Netzwerkknoten verwendet. Diese Nachbarschaftsinformationsdaten fallen im Rahmen eines Routingverfahrens, welches beispielsweise für den Transport von Messdaten zu einem Gateway verwendet wird, ohnehin an, so dass die Generierung derartiger Nachbarschaftsinformationsdaten keinen zusätzlichen Aufwand darstellt.
-
Das erfindungsgemäße Verfahren bietet eine Minimierung von überflüssiger Übertragung von Programmcode-Datenpaketen, da nur diejenigen Netzwerkknoten 2-i adressiert werden, die den jeweiligen Programmcode entweder selbst benötigen oder als Transfernetzwerkknoten dienen, damit alle Netzwerkknoten der jeweiligen Zielnetzwerkknotengruppe über das Fluten erreicht werden.
-
Es besteht bei dem erfindungsgemäßen Verfahren ein geringer Kommunikationsaufwand für die Ermittlung der knotengruppenspezifischen Overlay-Netzwerke, da kein aufwändiges Punkt zu Punkt Routing vorgenommen werden muss.
-
Der Einsatz optimaler Overlay-Netzwerke, die auch redundante Übertragungswege vorsehen können, wird ermöglicht durch die zentrale Bestimmung bzw. Berechnung der Overlay-Netzwerke durch die zentrale Recheneinheit 3.
-
Darüber hinaus wird der Kommunikationsaufwand für die Zustellung der Informationen über die Zugehörigkeit der Netzwerkknoten 2-i zu den Overlay-Netzwerken minimiert, da lediglich Fremdknoten bzw. Transfernetzwerkknoten, die nicht zu der jeweiligen Zielgruppe gehören, benachrichtigt werden müssen.
-
Weiterhin führt das erfindungsgemäße Verfahren zu einer Minimierung des Energiebedarfs für den Software-Update, da der Energiebedarf im Wesentlichen durch die Kommunikation von Programmcode-Datenpaketen sowie deren Speicherung, beispielsweise in einem Flashspeicher der Netzwerkknoten, bestimmt wird.
-
Weiterhin führt das erfindungsgemäße Verfahren zu einer Minimierung des Speicherbedarfs für die verschiedenen Code-Partitionen durch Verwendung von einem oder mehreren Transferspeicherpartitionen auf Transfernetzwerkknoten, das heißt solchen Knoten, die im Kontext eines bestimmten Transfers bzw. einer Übertragung nicht zu der jeweiligen Zielgruppe gehören sondern lediglich zur Weiterleitung von Programmcode-Datenpaketen dienen.
-
Weiterhin ist der Kommunikationsaufwand für einen Setup der Overlay-Netzwerke im Vergleich zu dem Aufwand für die Übertragung von Programmcodepakten minimal, da nur einfache Nachbarschafts- und Zugehörigkeitsinformationsdaten übertragen werden müssen.
-
Da die zentrale Recheneinheit 3, die mit der Bestimmung der Overlay-Netzwerke betraut ist, über eine vollständige Kenntnis der Netzwerktopologie verfügt, können bei einer möglichen Ausführungsform weitere Optimierungen des Download-Prozesses auf einfache Weise in die Bestimmung bzw. Berechnung der Overlay-Netzwerke einfließen, beispielsweise Kriterien, die sich auf den aktuellen Energievorrat der jeweiligen Netzwerkknoten, beispielsweise Sensorknoten, beziehen.
-
Das erfindungsgemäße Netzwerk und das erfindungsgemäße Verfahren zur Durchführung von Software-Updates lassen sich vielseitig einsetzen. Mögliche beispielhafte Anwendungsfälle sind Sensornetzwerke, Feueralarmsysteme, Klimasteuerungen, Helligkeitssteuerungen sowie Anwendungen im Bereich der Landwirtschaft, beispielsweise im Weinbau.
-
Weitere Varianten des erfindungsgemäßen Netzwerkes 1 oder des erfindungsgemäßen Verfahrens zur Durchführung des Software-Updates sind möglich. Beispielsweise kann die Übertragung der Daten zwischen den Netzwerkknoten 2-i kryptographisch geschützt erfolgen. Darüber hinaus kann die Übertragung der Daten drahtlos oder drahtgebunden erfolgen, wobei unterschiedliche Datenübertragungsprotokolle zum Einsatz kommen können. In einer möglichen Ausführungsform werden die verschiedenen Overlay-Netzwerke für mögliche Updates in einem Speicher der Recheneinheit 3 hinterlegt und müssen bei der Vornahme eines notwendigen Software-Updates nicht vorab berechnet werden. Diese Ausführungsvariante bietet den Vorteil, dass ein Software-Update unmittelbar und zügig durchgeführt werden kann. Bei einer alternativen Ausführungsform werden die Overlay-Netzwerke bei Bedarf bzw. Anfrage für die jeweilige Knotengruppe zunächst neu berechnet.
-
Bei einer möglichen Variante des erfindungsgemäßen Netzwerkes 1 sind die Knoten der verschiedenen Knotengruppen nicht statisch positioniert sondern teilweise mobil. Bei dem mobilen Netzwerkknoten kann es sich um mobile Endgeräte handeln.
-
In einer weiteren Variante des erfindungsgemäßen Netzwerkes sind mehrere leistungsstarke Recheneinheiten vorgesehen, um die Overlay-Netzwerke zu ermitteln.
-
In einer weiteren Variante des erfindungsgemäßen Netzwerkes und Verfahrens melden die Netzwerkknoten 2-i nach erfolgreicher Durchführung des Software-Updates dies zurück an die Recheneinheit 3.
-
Bei einer möglichen Variante wird das Software-Update von der Recheneinheit 3 über ein Gateway und einen Verbindungsnetzwerkknoten, beispielsweise den Netzwerkknoten 2-1, zu den übrigen Netzwerkknoten 2-i eingespielt bzw. übertragen. In einer alternativen Ausführungsform veranlasst die zentrale Recheneinheit 3 einen anderen Knoten oder eine andere Recheneinheit bzw. Server zum Übertragen der Programmcode-Updates beispielsweise aus einer Datenbank.
-
Die Abstände bzw. Reichweiten zwischen den Netzwerkknoten 2-i können im großen Umfang variieren. In einer möglichen Ausführungsform beträgt der Abstand zwischen den Netzwerkknoten 2-i bei einem drahtlosen Netzwerk 1 bis zu 20 Meter in Gebäuden und 100 Meter im freien Gelände.
-
Die Größe einer Speicherpartition innerhalb eines Datenspeichers 2B kann ebenfalls je nach Anwendungsfall in einem weiten Bereich variieren. In einer möglichen Ausführungsform beträgt die Größe einer Speicherpartition innerhalb des Datenspeichers 2B 48 bzw. 64 kByte.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- IEEE 802.15.4-Schnittstelle [0026]