Beschreibung
Verfahren zum Verbreiten einer Computerdatenstruktur auf Knoten eines Netzwerks
Die Erfindung betrifft ein Verfahren zum Verbreiten einer Computerdatenstruktur auf Knoten eines Netzwerks, eine Computerdatenstruktur, Netzwerkknoten, sowie ein Netzwerk.
Netzwerke sind Zusammenschlüsse von verschiedenen technischen primär selbständigen Systemen, insbesondere Computern, aber auch Sensoren, Aktoren, funktechnologische Komponenten usw. , so dass eine Kommunikation der einzelnen Systeme untereinander ermöglicht wird. Die einzelnen Systeme werden dabei als Netzwerkknoten bzw. als Knoten des Netzwerkes bezeichnet. Die Kommunikation erfolgt über verschiedene Medien, wie z. B. WLAN oder LAN.
Netzwerke finden auch Verwendung in der Automatisierungstech- nik. Als solche sind sie Bestandteil von Automatisierungssystemen, die z. B. zur Durchführung von verfahrenstechnischen Prozessen eingesetzt werden. Die einzelnen Netzwerkknoten können dabei im Automatisierungssystem unterschiedliche oder auch die gleichen Aufgaben durchführen. So führen z. B. man- che Netzwerkknoten im Automatisierungssystem Überwachungsfunktionen aus und andere führen Regelungsfunktionen aus . Zur Durchführung der Aufgaben ist auch Software, wie z. B. Firmware, auf den Netzwerkknoten installiert. Ferner können auf Netzwerkknoten so genannte Agenten installiert sein, die z. B. zur Datenerhebung und zur Kontrolle des Knotens dienen.
Netzwerke werden zunehmend komplexer. Dadurch wird auch die Inbetriebnahme und Wartung der Netzwerke immer komplexer. So ist z. B. von Zeit zu Zeit die auf den Netzwerkknoten instal- lierte Firmware zu aktualisieren oder neue Firmware oder
Agenten müssen auf manchen Netzwerkknoten installiert werden.
Nach dem Stand der Technik werden die Netzwerkknoten eines Netzwerks einzeln, von einer zentralen Stelle aus, direkt angesprochen, -um Installationen oder Aktualisierungen (Updates) der Firmware, der Agenten oder von sonstiger Software vorzu- nehmen. Dazu sind in der zentralen Stelle die Knoten in einer Liste zusammengefasst . Auf Basis dieser Liste erfolgt die Installation nacheinander (One-to-One) oder parallel (One-to- Many) . Alternativ werden nach dem Stand der Technik die zu installierenden Software-Komponenten auf einem zentralen Ser- ver vorgehalten. Durch einen an die Netzwerkknoten gesendeten Trigger oder auch nach Ablauf von Überwachungs-Intervallen in den einzelnen Netzwerkknoten beginnen die Netzwerkknoten zu prüfen, ob auf dem zentralen Server neue Software-Komponenten bzw. neue Updates vorliegen. Ist dies der Fall, so beginnt eine Netzwerk-Komponente mit dem Herunterladen der Software und installiert diese anschließend. Dieses Prinzip ist z. B. auch aus dem PC-Bereich bekannt, wo Betriebssystem-Updates von einem zentralen Server über das Internet herunterladbar sind.
Wie bereits oben erwähnt, nimmt die Komplexität der Netzwerke ständig zu. Die nach dem Stand der Technik bekannten Verfahren zur Installation von Firmware, Agenten etc. haben daher den Nachteil, dass sie eine sehr sorgfältige Wartung des Netzwerkes erfordern. So muss z. B. die oben genannte Liste der Knoten stets auf dem aktuellen Stand sein, da ein Knoten, der aus irgendwelchen Gründen nicht in der Liste steht, auch nicht mit neuer oder aktuellerer Software versorgt werden kann. Ein Nachteil bei der Verwendung von einem zentralen Server ist, dass das Netzwerk unter Umständen stark belastet wird und daher eine temporäre Verminderung der Funktionsfähigkeit des Netzwerkes auftritt, falls mehrere Knoten, initiiert von dem Trigger, gleichzeitig die zu installierende Software herunterladen.
Ein Sensornetz ist ein Netzwerk, das aus kleinen bzw. Kleinstcomputern, so genannten Sensorknoten, besteht. Die Sensorknoten sind mit Sensoren ausgestattet und bewältigen
durch Zusammenarbeit eine gemeinsame Aufgabe. Die Sensorknoten kommunizieren dabei in der Regel drahtlos miteinander und organisieren sich auch selbständig. Die Sensorknoten werden nach dem Stand der Technik in großer Zahl und in einem großen Gebiet ausgebracht und überwachen ihre Umgebung so lange, bis ihre Energiereserven erschöpft sind. Aufgrund ihrer Kleinheit, ihres günstigen Preises, ihrer Verwendung in großer Zahl und der Autonomität der Sensorknoten werden Sensorknoten bzw. Sensornetzwerke auch als „smart dust" bezeichnet. Selbstorganisierende Sensornetzwerke kennen nicht mehr unbedingt die Aufgabe jedes einzelnen Netzwerkknotens sondern nur noch die Aufgabe des Gesamtsystems. Hier ist es besonders problematisch, alle Netzwerkknoten zu finden, um diese mit neuer Firmware, mit neuen Agenten oder sonstiger Software zu aktualisieren.
Aufgabe der Erfindung ist es daher, ein verbessertes Verfahren zum Verbreiten von Nutzdaten wie etwa Firmware, Agenten oder sonstiger Software auf die Knoten eines Netzwerkes zur Verfügung zu stellen. Aufgabe der Erfindung ist es ferner, eine verbesserte Computerdatenstruktur, die für die Verbreitung von Nutzdaten auf den Knoten eines Netzwerkes vorgesehen ist, anzugeben. Ferner ist es Aufgabe der Erfindung, verbesserte Netzwerkknoten bzw. ein verbessertes Netzwerk an- zugeben .
Die der Erfindung zugrunde liegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Pa- tentansprüchen angegeben.
Durch die Erfindung wird ein Verfahren zum Verbreiten einer Computerdatenstruktur auf Knoten eines Netzwerkes angegeben. Die Computerdatenstruktur weist zumindest eine Schnittstelle für die Interaktion mit den Netzwerkknoten auf. Ferner erfolgt die Detektion von zumindest einem zweiten Knoten des Netzwerks von dem ersten Knoten aus . Die Computerdatenstruktur wird vom ersten Knoten zu dem zumindest einen zweiten
Knoten übertragen, wo eine Installation der Nutzdaten über die Schnittstelle erfolgt. Vom zweiten Knoten aus erfolgt die Ermittlung von zumindest einem dritten Knoten, auf dem nach der Übertragung der Computerdatenstruktur vom zweiten zum dritten Knoten auch die Installation der Nutzdaten erfolgt. Vom dritten Knoten aus können dann weitere Knoten, wie zuvor für den ersten, zweiten und dritten Knoten beschrieben, de- tektiert werden, auf denen dann die Installation der Nutzdaten erfolgt. Damit kann die Verbreitung der Nutzdaten mittels der Computerdatenstruktur über das gesamte Netzwerk, das heißt über alle Netzwerkknoten, erzielt werden.
Die Computerdatenstruktur wird über den ersten Knoten in das Netzwerk eingebracht, von wo aus sich die Computerdatenstruk- tur im Wesentlichen selbstständig über die anderen Netzwerkknoten im Netzwerk verbreitet und somit die Nutzdaten über das Netzwerk verbreitet werden. Das erfindungsgemäße Verfahren hat den Vorteil, dass kein zentraler Update-Server mehr nötig ist. Damit kann die Verbreitung der Nutzdaten, also z.B. Aktualisierungen von Firmware oder Agenten, in einem komplexen Netzwerk, wie z. B. einem Sensornetzwerk, bewerkstelligt werden. Ein weiterer Vorteil des erfindungsgemäßen Verfahrens ist, dass keine genaue Kenntnis von der Anzahl und der Adresse der zu updatenden Netzwerkknoten mehr nötig ist, da die Detektion der einzelnen Netzwerkknoten von einem benachbarten Netzwerkknoten aus erfolgt. Ein weiterer Vorteil des erfindungsgemäßen Verfahrens ist, dass es relativ einfach und zeitsparend durchführbar ist. Im Prinzip muss die Computerdatenstruktur nur an einer Stelle in das Netzwerk einge- bracht werden. Danach verbreitet sich die Computerdatenstruktur selbstständig bzw. in Wechselwirkung mit den einzelnen Netzwerkknoten im Netzwerk.
Nach einer Ausführungsform der Erfindung handelt es sich bei den Nutzdaten um ausführbaren Code, der von der Computerdatenstruktur auf den Knoten platziert wird. Dazu weist die Computerdatenstruktur ausführbaren Code auf. Die Computerdatenstruktur dient somit als Träger für die auf den Knoten
c
ausführbaren Nutzdaten und bringt den Code, um die Nutzdaten (über die Schnittstelle) auf den jeweiligen Knoten zu installieren, selbst mit.
Nach einer Ausführungsform der Erfindung weist die Computerdatenstruktur einen Zähler auf. Der Zähler wird bei Einbringung der Computerdatenstruktur in das Netzwerk auf einen vorgegebenen Startwert gesetzt. Auf jedem Knoten, der von der Computerdatenstruktur erreicht wird oder auf dem die Nutzda- ten installiert werden, wird der Zähler erniedrigt oder erhöht, wobei die Computerdatenstruktur nur an einen weiteren Knoten übermittelt wird, wenn der Zähler größer oder kleiner ist als ein Endwert. Dabei erfolgt die Erhöhung des Startwerts, falls der Endwert größer ist als der Startwert. Ent- sprechend erfolgt eine Erniedrigung des Startwerts, wenn der Endwert kleiner ist als der Startwert.
Beispielsweise weist die Computerdatenstruktur einen Zähler auf, wobei der Zähler bei Einbringung der Computerdatenstruk- tur in das Netzwerk auf einen vorgegebenen Startwert größer als Null gesetzt ist. Der Zähler wird auf jedem Knoten, der von der Computerdatenstruktur erreicht wird oder auf dem die Nutzdaten installiert werden, um Eins verringert, wobei die Computerdatenstruktur nur an einen weiteren Knoten übermit- , telt wird, wenn der Zähler größer als Null ist. Beim Verbreiten der Computerdatenstruktur wird daher der Zähler, ausgehend von einem Startwert, jeweils beim Erreichen eines neuen Knotens oder bei der Installation der Nutzdaten auf einem neuen Knoten, um Eins verringert. Die Computerdatenstruktur wird nur so lange im Netzwerk von einem Knoten zum nächsten Knoten übertragen, wie der Zähler größer als Null ist. Dies verhindert, dass die Computerdatenstruktur endlos im Netzwerk kreist.
Nach einer Ausführungsform der Erfindung erfolgt verfahrensgemäß die Speicherung der Computerdatenstruktur auf dem ersten Knoten, falls der zumindest eine zweite Knoten temporär nicht erreichbar ist, wobei die Computerdatenstruktur an ei-
,
nen zweiten Knoten übermittelt wird, wenn der zumindest eine zweite Knoten wieder erreichbar ist. Die einzelnen Knoten der Netzwerke können unter Umständen nicht permanent, sondern nur temporär betrieben werden. So werden z. B. die Knoten in ei- nem Sensornetzwerk nur temporär betrieben, um Energie zu sparen. Die einzelnen Knoten befinden sich daher in einem Wachzustand oder in einem Schlaf-Zustand. Im Wach-Zustand führen die Knoten die ihnen zugewiesenen Aufgaben durch, wohingegen sie im Schlaf-Zustand keine Aufgaben durchführen. Man spricht in diesem Zusammenhang auch vom Tagesablauf eines Sensorknotens. Für den Fall, dass die Computerdatenstruktur sich auf dem ersten Knoten befindet, und falls die von dem ersten Knoten erreichbaren Knoten sich im Schlaf-Zustand befinden, wird erfindungsgemäß die Computerdatenstruktur gespeichert, so dass eine Übermittlung der Computerdatenstruktur zu den weiteren Knoten, also z. B. an den zweiten Knoten, dann erfolgt, wenn der Knoten sich wieder im Wach-Zustand befindet und daher auch eine Kommunikation mit dem ersten Knoten aufnehmen kann. Damit ist sichergestellt, dass die Computerdatenstruk- tur auch die Knoten erreicht, die nur temporär mit den anderen Knoten des Netzwerkes kommunizieren können.
Nach einer Ausführungsform der Erfindung weist jeder Knoten des Netzwerks, der für die Interaktion mit der Computerdaten- struktur vorgesehen ist, eine Andockstelle auf, wobei die
Computerdatenstruktur über die Schnittstelle und die Andockstelle die Nutzdaten auf den Knoten übertragen wird. Die Andockstelle kann z. B. mittels eines Dienstes realisiert sein, über den die Nutzdaten auf den Knoten übertragen werden kön- nen .
Nach einer Ausführungsform der Erfindung weist die Computerdatenstruktur eine Signatur auf und jeder Knoten weist Mittel zur Überprüfung der Signatur auf. Verfahrensgemäß erfolgt die Installation der Computerdatenstruktur auf einem Netzwerkknoten nur, wenn durch die Mittel zur Überprüfung der Signatur die Authentizität der Signatur festgestellt worden ist. Die Andockstellen der einzelnen Knoten kann auch von schädlichen
Datenstrukturen, wie etwa Würmern, verwendet werden, um schädliche und unerwünschte Programme auf dem Netzwerkknoten zu installieren. Durch die Überprüfung der Signatur auf Authentizität ist sichergestellt, dass nur Nutzdaten aus ver- trauenswürdiger Quelle auf dem Netzwerkknoten installiert und somit ausgeführt werden.
Nach einer Ausführungsform der Erfindung wird im Anschluss an die Detektion des zweiten Knotens ermittelt, ob die Computer- datenstruktur bereits an den zweiten Knoten übermittelt worden ist. Falls die Computerdatenstruktur bereits an den zweiten Knoten übermittelt wurde, findet keine weitere Übertragung der Computerdatenstruktur statt. Damit ist sichergestellt, dass zum einen das Netzwerk nicht über das notwendige Maß hinaus belastet wird. Zum anderen wird, falls der oben genannte Zähler in der Computerdatenstruktur verwendet wird, sichergestellt, dass dieser nicht aufgrund einer Übermittlung an eine Datenstruktur, die die Computerdatenstruktur bereits empfangen hat, heruntergezählt wird und damit unter Umständen eine Verbreitung auf Netzwerkknoten, die die Computerdatenstruktur noch nicht erhalten haben, aufgrund dessen, dass der Zähler die Null erreicht, verhindert wird.
Nach einer Ausführungsform der Erfindung erfolgt die Überprü- fung des Datenbestands des Netzwerkknotens, auf dem eine Installation der Nutzdaten vorgesehen ist. Für den Fall, dass die Nutzdaten für den Netzwerkknoten ungeeignet sind und/oder die Installation der Nutzdaten auf dem Netzwerkknoten unnötig ist, erfolgt keine Installation. Damit wird verhindert, dass Nutzdaten auf einem Knoten installiert werden, die von diesem
Knoten gar nicht gebraucht werden und eine sich unter Umständen daraus ergebende Störung des Knotens unterbleibt.
Nach einer Ausführungsform der Erfindung werden die Nutzdaten zur Aktualisierung einer vorhandenen Anwendung auf dem Netzwerkknoten installiert, wobei die Installation erfolgt, ohne dass eine Ausführung der Anwendung auf dem Netzwerkknoten unterbrochen wird. Insbesondere, wenn die Nutzdaten für die Ak-
„
tualisierung von einer vorhandenen Anwendung vorgesehen sind, ist es sinnvoll, diese so zu installieren, dass der Netzwerkknoten die Ausführung seiner ihm zugewiesenen Aufgabe nicht unterbrechen muss. Damit wird durch die vorgenommene Aktuali- sierung die Funktionalität des Netzwerkes bzw. des Netzwerkknotens auch nicht temporär eingeschränkt.
Nach einer Ausführungsform der Erfindung weist der Knoten einen Speicher auf, wobei die Anwendung in einem ersten Bereich des Speichers zur Ausführung gespeichert ist, wobei die Nutzdaten für eine zu aktualisierende Komponente der Anwendung vorgesehen sind und wobei die zu aktualisierende Komponente der Anwendung an einer Einsprungadresse, die im folgenden auch als erste Adresse (Al) bezeichnet wird, in dem ersten Bereich des Speichers abgelegt ist. Verfahrensgemäß erfolgt die Speicherung der Nutzdaten unter einer zweiten Adresse (A2) in einem zweiten, freien Bereich des Speichers. Anschließend wird ein erster Sprungbefehl (Jl) im Speicher installiert, wobei der erste Sprungbefehl (Jl) auf die erste Adresse (Al) führt. Ferner erfolgt die Ermittlung von Sprung- und Call-Befehlen in der Anwendung, die auf die Einsprungadresse (erste Adresse Al) führen. Die ermittelten Sprung- und Call-Befehle werden durch Sprung- und Call-Befehle ausgetauscht, die auf den ersten Sprungbefehl (Jl) führen.
Nachdem alle Referenzen (Sprünge, Calls) auf Al über Jl umgelenkt wurden, wird Jl auf A2 umgeschaltet, sodass schlagartig von der alten Komponente auf die neue, aktuelle Komponente umgeschaltet wird. Durch dieses schlagartige Umschalten wird ein eventuell problematischer Parallelbetrieb der alten Komponente und der aktuellen Komponente vermieden. Ferner kann optional in einem nachfolgenden Schritt ein Austausch aller Sprung- und Call-Befehle, die jetzt zu Jl führen, erfolgen, so dass die Sprung- und Call-Befehle direkt auf die zweite Adresse (A2) führen. Dadurch kann der Umweg über Jl wieder eingespart werden. Die Nutzdaten weisen daher nur die zu aktualisierende Komponente der Anwendung auf. Es wird nur ein so genanntes Delta-Update durchgeführt, indem die Sprungbe-
n
fehle, die bisher auf die zu aktualisierende Komponente der Anwendung führen, nun auf die Nutzdaten, die in einem zweiten Adressbereich gespeichert werden, umgelenkt werden. Somit ist sichergestellt, dass, während die Anwendung ausgeführt wird, die zu aktualisierende Komponente aktualisiert werden kann.
Nach einer Ausführungsform der Erfindung ist die Einsprungadresse für die zu aktualisierende Komponente in der Computerdatenstruktur vorgegeben oder wird mittels eines vorgegebenen Suchverfahrens, z. B. unter Verwendung von Pattern-Matching- Verfahren, von der Computerdatenstruktur in der Anwendung ermittelt .
Nach einer Ausführungsform der Erfindung weist der Knoten ei- nen Speicher und einen Service-Manager auf, wobei die Anwendung in einem ersten Bereich des Speichers zur Ausführung gespeichert ist und wobei die Nutzdaten eine neue Funktion der Anwendung bereitstellen. Erfindungsgemäß erfolgt die Speicherung der Nutzdaten auf einem freien, zweiten Bereich des Speichers. Ferner wird die neue Funktion beim Service-Manager angemeldet, wonach die neue Funktion der Anwendung für den Knoten ausführbar ist.
Nach einer Ausführungsform der Erfindung weist der Knoten ei- nen Speicher auf und die Anwendung ist zur Ausführung in einem ersten Bereich des Speichers gespeichert. Die Nutzdaten stellen eine neue Funktion der Anwendung bereit. Verfahrensgemäß erfolgt die Speicherung der Nutzdaten unter einer zweiten Adresse auf einem freien, zweiten Bereich des Speichers. Ferner erfolgt die Ermittlung einer Anschlussstelle für die neue Funktion in der Anwendung, wobei die erste Anschlussstelle unter einer ersten Adresse im ersten Bereich gespeichert ist. Im Anschluss daran erfolgt die Installation eines ersten Sprungs von der ersten Adresse auf die zweite Adresse und eines zweiten Sprungs am Ende des zweiten Bereichs zurück auf die Adresse, die auf die erste Adresse folgt.
± Q
Nach einer Ausführungsform handelt es sich bei den Nutzdaten um Firmware, Aktualisierungen für Firmware, Agenten oder Killer-Agenten. Die Killer-Agenten sind dabei für die Deinstallation von Agenten auf den Netzwerkknoten vorgesehen.
Nach einer Ausführungsform der Erfindung handelt es sich bei dem Netzwerk um ein Netzwerk eines Automatisierungssystems oder um ein Sensornetzwerk.
In einem anderen Aspekt betrifft die Erfindung ein Computerprogrammprodukt mit computerausführbaren Instruktionen zur Durchführung des erfindungsgemäßen Verfahrens .
In einem anderen Aspekt betrifft die Erfindung eine Computer- datenstruktur mit zumindest einer Schnittstelle für die Interaktion mit den Knoten eines Netzwerkes, mit Nutzdaten und mit Mitteln zur Installation der Nutzdaten über die Schnittstelle auf einen ersten Knoten des Netzwerks. Die Computerdatenstruktur hat ferner Mittel zur Detektion zumindest eines zweiten Knotens des Netzwerks von dem ersten Knoten aus und Mitteln zum Übermitteln von sich selbst vom ersten Knoten zu dem zumindest einen zweiten Knoten. Ferner weist die Computerdatenstruktur Mittel zur Installation der Nutzdaten über die Schnittstelle auf dem zumindest einen zweiten Knoten und zur Suche von weiteren Knoten vom dem zweiten Knoten aus auf.
In einem anderen Aspekt betrifft die Erfindung einen Netzwerkknoten in einem Netzwerk mit einer Andockstelle für eine Schnittstelle einer Computerdatenstruktur, wobei die Compu- terdatenstruktur ferner Nutzdaten aufweist. Der Netzwerkknoten hat auch Mittel zur Installation der Nutzdaten auf dem Netzwerkknoten und Mittel zum Senden der Computerdatenstruktur an andere Netzwerkknoten des Netzwerks. Ferner weist der Netzwerkknoten Mittel zur Benachrichtigung eines zentralen Servers des Netzwerks auf, wobei durch die Benachrichtigung die Installation der Nutzdaten auf dem Netzwerkknoten dem Server angezeigt wird. Die Kommunikation zwischen den Netzwerkknoten in dem Netzwerk wird dabei über funkbasierte oder
leitungsgebundene Kommunikationsverbindungen, die z. B. auf dem WLAN-, LAN- oder WIMAX-Standard beruhen, bewerkstelligt.
In einem weiteren Aspekt betrifft die Erfindung ein Netzwerk mit Netzwerkknoten und einem zentralen Server, wobei in dem Netzwerk Nutzdaten über eine Computerdatenstruktur auf die Netzwerkknoten verbreitbar sind, wobei Netzwerkknoten, auf denen eine Installation der Nutzdaten erfolgt ist, eine Benachrichtigung an den zentralen Server zur Anzeige der er- folgten Installation senden, wobei der Server Mittel zur Installation der Nutzdaten auf den Netzwerkknoten, die keine Benachrichtigung an den zentralen Server übermittelt haben, aufweist.
Bevorzugte Ausführungsformen der Erfindung werden nachfolgend anhand der Zeichnungen näher erläutert. Es zeigen:
FIG 1 zeigt ein Blockdiagramm eines Netzwerks,
FIG 2 zeigt ein Flussdiagramm, das Schritte des erfindungs- gemäßen Verfahrens wiedergibt,
FIG 3 zeigt ein Blockdiagramm einer Computerdatenstruktur,
FIG 4 zeigt schematisch ein Blockdiagramm eines beschreibbaren Speichermediums und
FIG 5 zeigt ein Blockdiagramm eines Netzwerks mit einem zentralen Server.
FIG 1 zeigt ein Blockdiagramm eines Netzwerks 100. Das Netzwerk 100 umfasst einen ersten Knoten 102, einen zweiten Knoten 104, einen dritten Knoten 106, einen vierten Knoten 108 und einen fünften Knoten 110. Bei den Knoten 102 bis 110 handelt es beispielsweise um Computersysteme oder um Sensorknoten, die zur drahtlosen Kommunikation miteinander verbunden sind. Dazu werden Kommunikationsverbindungen 134, 136, 138, 140, 142, 144 und 146 zwischen jeweils zwei Knoten eingerich- tet. Bei den Kommunikationsverbindungen 134 bis 146 handelt es beispielsweise um WLAN-Verbindungen .
Der erste Knoten 102 weist einen Mikroprozessor 112 und einen Speicher 114 auf. Der zweite Knoten 104 weist einen Mikroprozessor 126 und einen Speicher 128 auf. Der dritte, vierte und fünfte Knoten 106, 108, 110, weist jeweils auch einen Mikro- Prozessor und einen Speicher auf, die aus Gründen der Einfachheit hier nicht mehr dargestellt sind.
Auf dem Speicher 114 des ersten Knotens 102 ist ein Betriebssystem 116 gespeichert. Das Betriebssystem 116 wird, z. B. bei Inbetriebnahme des ersten Knotens 102, in den Mikroprozessor 112 geladen und von diesem ausgeführt. Das Betriebssystem 116 dient beispielsweise zur Steuerung der auf dem ersten Knoten 102 ablaufenden Prozesse. Das Betriebssystem 116 weist eine Andockstelle 120 für eine Schnittstelle 122 einer Computerdatenstruktur 118 auf. Die Computerdatenstruktur 118 wird über den ersten Knoten 102 in das Netzwerk eingespeist und kann daher über die Andockstelle 120 mit dem Betriebssystem 116 interagieren. Die Computerdatenstruktur 118 weist Nutzdaten 124 auf. Über die Schnittstelle 122 werden die Nutzdaten 124 auf den ersten Knoten übertragen und dann auf dem ersten Knoten 102 installiert.
Die Computerdatenstruktur 118 ist nun ferner so ausgebildet, dass sie vom ersten Knoten 102 weitere Knoten, z. B. den zweiten Knoten 104, des Netzwerkes detektieren kann. Nach der Detektion des zweiten Knotens 104 erfolgt eine Übertragung der Computerdatenstruktur 118 vom ersten Knoten 102 über die Kommunikationsverbindung 134 zum zweiten Knoten 104.
Auf dem zweiten Knoten 104 wird ebenfalls ein Betriebssystem 130 ausgeführt, das eine Andockstelle 132 für die Schnittstelle 122 der Computerdatenstruktur 118 aufweist. Das Betriebssystem 130 ist dabei typischerweise vom gleichen Typ wie das Betriebssystem 116. Über die Schnittstelle 122 und über die Andockstelle 132 können daher die Nutzdaten 124 von der Computerdatenstruktur 118 auf dem zweiten Knoten 104 übertragen werden und auf diesem installiert werden.
Die Computerdatenstruktur 118 sucht ferner vom zweiten Knoten 104 aus nach weiteren Knoten des Netzwerkes 100. Beispielsweise kann die Computerdatenstruktur 118 vom zweiten Knoten 104 aus den vierten Knoten 108 detektieren. Im Anschluss an die Detektion des vierten Knotens 108 erfolgt eine Übertragung der Computerdatenstruktur 118 über die Kommunikations- verbindung 140. Nach der erfolgten Übertragung können die Nutzdaten 124 in der gleichen Art und Weise, wie für den ersten und zweiten Knoten 102 und 104 beschrieben, auf dem vier- ten Knoten 108 installiert werden. Vom vierten Knoten 108 aus kann dann der fünfte Knoten 110 detektiert werden. Im Anschluss daran erfolgt eine Übertragung der Computerdatenstruktur 118 vom vierten Knoten über die Kommunikationsverbindung 144 zum fünften Knoten 110, wo die Nutzdaten 124 e- benfalls installiert werden. Vom fünften Knoten 110 aus kann die Computerdatenstruktur dann den dritten Knoten 106 detektieren und dann über die Kommunikationsverbindung 142 zum dritten Knoten 106 gelangen. Auf dem dritten Knoten 106 erfolgt eine Installation der Nutzdaten über eine für die Schnittstelle 122 der Computerdatenstruktur vom dritten Knoten bereitgestellte Andockstelle. Damit hat sich die Computerdatenstruktur 118 nach ihrer Einbringung in das Netzwerk 100 über alle Knoten des Netzwerkes verbreitet, so dass die Nutzdaten 104 auf den Knoten 102 bis 110 des Netzwerks in- stalliert werden können.
Nach der zuvor beschriebenen Ausführungsform ist die Funktionalität der Initiierung der Installation der Nutzdaten und des Suchens von weiteren Netzwerkknoten in der Computerdaten- Struktur 118 implementiert. Somit müssen die Knoten nur eine Andockstelle aufweisen, über die die Computerdatenstruktur 118 die Nutzdaten 124 auf die Knoten übertragen kann und dann die Installation der Nutzdaten 124 vornehmen kann bzw. zumindest die Installation initiieren kann. Alternativ kann jedoch eine entsprechende Infrastruktur zum Empfangen, Weiterleiten und Installieren der Nutzdaten 124 auf den Knoten 102 bis 110 eingerichtet sein. Dann weist die Computerdatenstruktur im
Wesentlichen nur die Nutzdaten und die Schnittstelle auf, mittels derer an die Andockstelle angedockt werden kann.
Bei den Nutzdaten 124 kann es sich auch beispielsweise um ein Update für die Betriebssysteme 116 bzw. 130 handeln.
Es kann sich bei den Nutzdaten 124 auch um Agenten handeln, die auf den Knoten 102 bis 110 zur Überwachung der Knoten installiert werden. Es kann sich bei den Nutzdaten 124 auch um einen Killeragenten handeln, mittels dem ein auf den Knoten bereits installierter Agent deinstalliert wird.
Handelt es sich bei den Knoten 102 bis 110 um Sensorknoten, dann ist das Betriebssystemen 116 bzw. 130 typischerweise Be- standteil der Firmware und bei den Mikroprozessoren 112, 126 und Speichern 114, 128 handelt es sich um eingebettete Systeme, wobei die Speicher beschreibbare Speicher wie RAM, Flash Speicher oder EEPROMs sind. Bei den Nutzdaten 124 kann es sich daher auch um Aktualisierungen oder Erweiterungen für die Firmware handeln.
FIG 2 zeigt ein Flussdiagramm, das Schritte des erfindungsgemäßen Verfahrens zum Verbreiten einer Computerdatenstruktur auf Knoten eines Netzwerkes wiedergibt. Die Computerdaten- Struktur weist dabei zumindest eine Schnittstelle für die Interaktion mit den Knoten des Netzwerkes und Nutzdaten auf. Erfindungsgemäß erfolgt in Schritt 200 die Installation der Nutzdaten über die Schnittstelle auf einem ersten Knoten des Netzwerks. In Schritt 202 erfolgt die Detektion von zumindest einem zweiten Knoten des Netzwerkes von dem ersten Knoten aus. In Schritt 204 erfolgt die Übertragung der Computerdatenstruktur vom ersten zum zweiten Knoten. In Schritt 206 werden die Nutzdaten über die Schnittstelle auf den zumindest einen zweiten Knoten übertragen und installiert.
FIG 3 zeigt ein schematisches Blockdiagramm der Computerdatenstruktur 118. Wie bereits zuvor erwähnt, weist die Computerdatenstruktur eine Schnittstelle 122 und die Nutzdaten 124
auf. Die Nutzdaten 124 entsprechen dabei dem auf die Netzwerke zu installierenden Code, also dem Code der Software, Firmware, Agenten usw. , der auf den Knoten des Netzwerkes zu installieren ist. In die Schnittstelle 122 ist ein Zähler 148 integriert. Der Zähler 148 ist bei Einbringung der Computerdatenstruktur 118 in das Netzwerk auf einen vorgegebenen Startwert 150, der größer als Null ist, gesetzt. Auf jedem Knoten, der von der Computerdatenstruktur erreicht wird oder auf dem die Nutzdaten installiert werden, wird der Zähler 148 beispielsweise um Eins verringert. Entspricht beispielsweise der Startwert 150 der Zahl 3 beim Einbringen der Computerdatenstruktur 118 in das Netzwerk 100 (vgl. FIG 1), dann verbreitet sich die Computerdatenstruktur 118 nur auf den zweiten Knoten 104 und auf den vierten Knoten 108 unter Berück- sichtigung des in FIG 1 beschriebenen Verbreitungsweges der
Computerdatenstruktur 118. Damit ist durch die Verwendung eines Zählers, der von einem Startwert ausgehend bis auf null heruntergezählt wird, sichergestellt, dass die Computerdatenstruktur 118 nicht endlos im Netzwerk verbleibt. Die Compu- terdatenstruktur 118 kann ferner eine Signatur 152 aufweisen, über die die Authentizität der Computerdatenstruktur 118 durch den Netzwerkknoten geprüft werden kann.
FIG 4 zeigt schematisch ein Blockdiagramm eines beschreibba- ren Speichers 400. Bei dem Speicher 400 kann es sich z.B. um einen Flash-Speicher handeln. Auf dem Speicher 400 ist eine Firmware (FW) 402 gespeichert. Die Firmware 402 weist eine erste Komponente (Fl) 404 auf, die z. B. eine Funktion zum Steuern des, den Speicher 400 beinhaltenden, Netzwerkknotens betrifft. Über die Computerdatenstruktur ist eine zweite Komponente (F2) 406 auf den, den Speicher beinhaltenden Knoten übermittelt worden. Die zweite Komponente 406 betrifft eine Aktualisierung der ersten Komponente 404. Zur Aktualisierung der Firmware 402 mit der zweiten Komponente 406 wird diese unter einer Adresse 418 in einem freien Bereich des Speichers 400 gespeichert. Dann erfolgt eine Installation eines ersten Sprungbefehls 410, der zunächst auf die Adresse 416 führt (gekennzeichnet in FIG 4 durch den Pfeil 422) . Alle Sprung-
und Call-Befehle, wie z. B. der Call-Befehl 408, die auf eine Einsprungadresse 416 der ersten Komponente 404 führen (gekennzeichnet durch den Pfeil 424 in Fig. 1) , werden in der Firmware 402 detektiert. Im Anschluss daran erfolgt ein Aus- tausch der ermittelten Sprung- und Call-Befehle durch Sprung- und Call-Befehle, die auf den ersten Sprungbefehl 410 führen. Damit weist z. B. der Call-Befehl 408 nun nicht mehr direkt auf die Einsprungadresse 416, die zur Ausführung der ersten Komponenten 404 führt, sondern über den ersten Sprungbefehl 410 auf die Adresse 416, so dass bei Aufruf des Call-Befehls 408 immer noch die erste Komponente 404 ausgeführt wird.
Nachdem alle ermittelten Sprung- und Call-Befehle ausgetauscht wurden, wird der Sprungbefehl 410 von der Zieladresse 416 auf die Adresse 418 umgeschaltet (siehe Pfeil 426 in Fig. 1) . Dadurch wird nun nicht mehr die erste Komponente 404, sondern die zweite Komponente 406 ausgeführt, die einer Aktualisierung der ersten Komponente 404 entspricht. Fakultativ können ferner alle Sprung- und Call-Befehle, die nun auf den ersten Sprungbefehl 410 führen, durch Sprung- und Call-Befehle ausgetauscht werden, die sofort auf die Adresse 418 führen. Damit kann ein Update einer ersten Komponente der Firmware "On-the-Fly" durchgeführt werden, so dass die Firmware für ihre eigentliche Aufgabe verfügbar bleibt.
Es kann auch eine dritte Komponente 414, die unter einer anderen Adresse 420 in einem freien Bereich des Speichers 400 gespeichert wird, auf den entsprechenden Netzwerkknoten übertragen werden. Ferner wird zur Installation der dritten Kom- ponente 414 eine geeignete Anschlussstelle (AS) 412 in der Firmware 402 ermittelt, an die, der der dritten Komponente 414 entsprechende Code angehängt wird. Im Anschluss an den der dritten Komponente 414 entsprechenden Code wird ein Rücksprungbefehl auf die Adresse direkt hinter der Anschlussstel- Ie 412 eingefügt.
FIG 5 zeigt ein Blockdiagramm eines Netzwerks 500 mit den Netzwerkknoten 502 bis 512, wobei der Netzwerkknoten 512 von
einem zentralen Server gebildet wird. Verfahrensgemäß können Nutzdaten 514, von denen eine Kopie auch auf dem Server 512 gespeichert ist, an die Knoten 502, 504, 506, 508 und 510 nach Einbringung der Computerdatenstruktur in das Netzwerk 500 an die einzelnen Knoten übertragen und dort installiert werden. Jeder Knoten 502 - 510 weist Mittel zur Benachrichtigung 516 des zentralen Servers 512 auf. Durch die Benachrichtigung wird die Installation der Nutzdaten auf dem Netzwerkknoten auf dem entsprechenden Knoten dem Server 512 ange- zeigt. Empfängt der Server von einem der Knoten, beispielsweise von Knoten 510, keine Benachrichtigung, so kann der Server über Installationsmittel 518 die Nutzdaten 514 an den Knoten 510 übermitteln und dort die Installation der Nutzdaten 514 initiieren.