DE602005000044T2 - Datentransfer zu Knoten in einem Kommunikationsnetzwerk mit Hilfe von selbstreproduzierenden Code - Google Patents

Datentransfer zu Knoten in einem Kommunikationsnetzwerk mit Hilfe von selbstreproduzierenden Code Download PDF

Info

Publication number
DE602005000044T2
DE602005000044T2 DE602005000044T DE602005000044T DE602005000044T2 DE 602005000044 T2 DE602005000044 T2 DE 602005000044T2 DE 602005000044 T DE602005000044 T DE 602005000044T DE 602005000044 T DE602005000044 T DE 602005000044T DE 602005000044 T2 DE602005000044 T2 DE 602005000044T2
Authority
DE
Germany
Prior art keywords
node
code
data
communication channel
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602005000044T
Other languages
English (en)
Other versions
DE602005000044D1 (de
Inventor
Michael J. Sheehan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of DE602005000044D1 publication Critical patent/DE602005000044D1/de
Application granted granted Critical
Publication of DE602005000044T2 publication Critical patent/DE602005000044T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01DCONSTRUCTION OF BRIDGES, ELEVATED ROADWAYS OR VIADUCTS; ASSEMBLY OF BRIDGES
    • E01D19/00Structural or constructional details of bridges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01DCONSTRUCTION OF BRIDGES, ELEVATED ROADWAYS OR VIADUCTS; ASSEMBLY OF BRIDGES
    • E01D22/00Methods or apparatus for repairing or strengthening existing bridges ; Methods or apparatus for dismantling bridges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Small-Scale Networks (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • 1. Gebiet der Erfindung
  • Die Erfindung betrifft das Gebiet des Nachrichtenwesens, und insbesondere das Übertragen von Daten zu Knoten eines Kommunikationsnetzwerks unter Verwendung eines selbstreplizierenden Codes.
  • 2. Darstellung der Problematik
  • Unternehmen, Firmen, Universitäten usw. haben im Allgemeinen ein Netzwerk, welches Hunderte oder Tausende von Geräten verbindet. Das Netzwerk kann ein lokales Netzwerk (LAN = Local Area Network), ein Großraum-Netzwerk (MAN = Metropolitan Area Network), ein Fernnetzwerk (WAN = Wide Area Network) oder ein anderes Netzwerk sein. Es kommt vor, dass das Netzwerkpersonal Daten, wie zum Beispiel Informationen, Dateien, Software, Anweisungen usw. an mehrere Geräte in dem Netzwerk senden möchte. Bei großen Netzwerken kann es für das Netzwerkpersonal ineffizient sein, die Daten an jedes Gerät einzeln zu übertragen. Würde das Netzwerkpersonal versuchen, die Daten gleichzeitig an mehrere Geräte in dem Netzwerk zu übertragen, könnte die Netzwerk-Bandbreite schnell aufgebraucht sein, vor allem wenn die Datenmenge groß ist. Somit sucht Netzwerkpersonal ständig nach Wegen, um Daten an mehrere Geräte in einem Netzwerk zu übertragen, um die Effizienz zu erhöhen, ohne die Bandbreite des Netzwerks zu opfern.
  • Ein Weg, Daten an mehrere Geräte in dem Netzwerk zu übertragen, besteht darin, die Daten im Multicast-Verfahren über das Netzwerk zu übertragen. Der Begriff „Multicast" kann verwendet werden, um das Senden von Nachrichten oder Datenpaketen an eine ausgewählte Gruppe an Geräten, die sich im Netzwerk befinden, zu beschreiben. Typische Anwendungen, die aus einem sol chen System Nutzen ziehen können, können die Video- und Musikübertragung beinhalten. Das Netzwerkpersonal kann das Multicast-Verfahren verwenden, um Daten an mehrere Geräte auf einem LAN zu übertragen. Dies kann das Problem der einzelnen Bedienung jedes Geräts lösen. Wenn zum Beispiel das Netzwerkpersonal neue Software auf mehreren Geräten, die mit dem LAN in Verbindung stehen, installieren möchte, kann das Netzwerkpersonal die Software über das LAN im Multicast-Verfahren an die Geräte senden.
  • Ein Problem beim Multicast-Verfahren ist, dass die Empfangsgeräte die richtige Software benötigen, um den Multicast zu empfangen. Falls die Empfangsgeräte nicht die richtige Software haben, dann muss die richtige Software auf den Empfangsgeräten installiert werden, bevor sie die Daten empfangen.
  • Ein weiteres Problem beim Multicast-Verfahren ist, dass der Sender unter Umständen nicht weiß, ob die Empfangsgeräte die Software empfangen haben oder nicht. Das UDP-Protokoll (User Datagram Protocol) ist ein Protokoll, das im Multicast-Verfahren verwendet wird, und UDP garantiert die Lieferung einer Nachricht nicht oder erfordert auch keine Rückbestätigung von dem Empfangsgerät. Somit ist dem Sender der Übertragungsstatus der Daten nicht bekannt. Das Netzwerkpersonal könnte eine Art von Rückbestätigung benötigen, um dafür zu sorgen, dass die Übertragung der Software erfolgreich war.
  • Ein anderes Verfahren zur Übertragung von Codes zwischen Geräten ist in der Veröffentlichung EP 0 928 089 beschrieben. In dieser Veröffentlichung wird ein Code auf einem ersten Computer ausgeführt. Der Code wird dann für die Übertragung serialisiert und an einen zweiten Computer übertragen. Dann wird der Code im zweiten Computer deserialisiert, und der zweite Computer führt den Code aus. Der Code migriert in serieller Weise von Computer zu Computer.
  • Eine anderes Anliegen des Netzwerkpersonals könnten Viren sein. Einer der bekannteren Viren ist der Internet-Wurm. Wegen des Internet-Wurms ist der Begriff „Wurm" im Allgemeinen negativ behaftet, als Software, die sich wiederholt auf einem Netzwerk repliziert, um das Netzwerk zu „infizieren" (d.h. ein Virus). Jedoch ist ein Wurm, wie es von vielen Fachmännern verstanden wird, einfach eine sich selbst replizierende Software. Würmer müssen nicht so programmiert sein, dass sie sich unkontrolliert ausbreiten oder ein Netzwerk schädigen.
  • Ein herkömmlicher Wurm kann sich auf einer Reihe von Geräten replizieren. Ein Wurm (Parent Worm) auf einem ersten Gerät kann sich auf einem anderen Gerät replizieren (Child Worm), dann auf einem weiteren Gerät usw. Nachdem sich der Parent Worm auf einem anderen Gerät repliziert hat, um den Child Worm zu erzeugen, hält der Parent Worm im Allgemeinen keinen Kommunikationskanal mit dem Child Worm aufrecht. Somit können der Parent Worm und der Child Worm nicht miteinander kommunizieren, um Daten zu übertragen. Es könnte wünschenswert sein, Würmer, oder andere selbstreplizierende Codes oder Software, auf positive Weise zu verwenden, um Daten über ein Netzwerk zu übertragen.
  • ZUSAMMENFASSUNG DER LÖSUNG
  • Das Problem wird durch ein Verfahren und System gemäß Anspruch 1 und 6 gelöst. Bevorzugte Merkmale sind in den abhängigen Ansprüchen dargelegt.
  • Die Erfindung löst das obige und andere Probleme, indem sie einen selbstreplizierenden Code in einem Kommunikationsnetzwerk verwendet, um Daten zwischen Knoten zu übertragen. Die Knoten des Kommunikationsnetzwerks haben ursprünglich nicht den Code, der für die Datenübertragung erforderlich ist. Der selbstreplizierende Code der Erfindung repliziert sich selbst auf Knoten des Kommunikationsnetzwerks, während er die Kommunikationskanäle zwischen den Knoten aufrechterhält. Die Knoten können dann untereinander Daten über die Kommunikationskanäle übertragen.
  • Vorteilhafterweise kann Netzwerkpersonal den selbstreplizierenden Code verwenden, um Daten effizient an mehrere Knoten in einem Kommunikationsnetzwerk zu übertragen, ohne die Bandbreite des Netzwerks zu opfern. Außerdem muss das Netzwerkpersonal vorher keinen Code auf den Knoten des Kommunikationsnetzwerks installieren, um die Datenübertragung zu erleichtern. Der selbstreplizierende Code kann sich selbst auf den Knoten des Netzwerks vermehren, um die Datenübertragung zu erleichtern. Außerdem kann, weil der Code auf den Knoten einen Kommunikationskanal zwischen den Knoten aufrecht erhält, das Netzwerkpersonal den Status einer Datenübertragung in Echtzeit überwachen, da die Knoten Steuer- und Statusinformationen mit einem Steuerknoten austauschen.
  • Eine beispielhafte Ausführungsform der Erfindung beinhaltet ein Verfahren zur Datenübertragung in einem Kommunikationsnetzwerk. In dem Verfahren führt ein erster Knoten des Kommunikationsnetzwerks einen ersten Code aus, um einen Kommunikationskanal mit einem zweiten Knoten einzurichten. Der erste Knoten führt den ersten Code auch aus, um sich selbst zu replizieren, um einen zweiten Code zu erzeugen, und um den zweiten Code über den Kommunikationskanal an den zweiten Knoten bereitzustellen. Der zweite Knoten führt den zweiten Code aus, um einen Kommunikationskanal mit einem dritten Knoten einzurichten. Der zweite Knoten führt den zweiten Code auch aus, um sich selbst zu replizieren, um einen dritten Code zu erzeugen, und um den dritten Code über den Kommunikationskanal an den dritten Knoten bereitzustellen. Das Verfahren kann das Einrichten von Kommunikationskanälen und Bereitstellen von Codes an mehrere andere Knoten in dem Kommunikationsnetzwerk beinhalten.
  • Ist der Kommunikationskanal zwischen dem ersten Knoten und dem zweiten Knoten eingerichtet und aufrecht gehalten, empfängt der zweite Knoten Daten von dem ersten Knoten über den Kommunikationskanal. Die Daten können jegliche Informationen, Software, Anweisungen usw., die für die Übertragung in einem Kommunikationsnetzwerk ausgelegt sind, umfassen. Der zweite Knoten kann den zweiten Code ausführen, um die Daten zu verwalten. Ist der Kommunikationskanal zwischen dem zweiten Knoten und dem dritten Knoten eingerichtet und aufrecht gehalten, empfängt der dritte Knoten Daten vom zweiten Knoten über den Kommunikationskanal. Der dritte Knoten kann den dritten Code ausführen, um die Daten zu verarbeiten. Andere Knoten des Kommunikationsnetzwerks können auf ähnliche Weise gemäß dem Verfahren funktionieren, um Daten zwischen den Knoten zu übertragen und die Daten zu verwalten.
  • Die Erfindung kann andere beispielhafte Ausführungen, die unten beschrieben sind, beinhalten.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • Dieselbe Bezugsnummer stellt in allen Zeichnungen dasselbe Element dar.
  • 1 stellt ein Kommunikationsnetzwerk in einer beispielhaften Ausführungsform der Erfindung dar.
  • 2A-2B sind Ablaufdiagramme, die ein Verfahren zum Betreiben des Kommunikationsnetzwerks aus 1 darstellen, um Daten zwischen Knoten des Kommunikationsnetzwerks in einer beispielhaften Ausführungsform der Erfindung zu übertragen.
  • 3A-3D stellen dar, wie Codes und Daten in dem Kommunikationsnetzwerk aus 1 gemäß dem Verfahren aus 2A-2B in einer beispielhaften Ausführungsform der Erfindung übertragen werden können.
  • 4 stellt ein Kommunikationsnetzwerk in einer anderen beispielhaften Ausführungsform der Erfindung dar.
  • 5 stellt eine lineare Sworm-Topologie in einer beispielhaften Ausführungsform der Erfindung dar.
  • 6 stellt eine verzweigte Sworm-Topologie in einer beispielhaften Ausführungsform der Erfindung dar.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • 1, 2A-2B, 3A-3D, 4-6 und die folgende Beschreibung schildern spezifische beispielhafte Ausführungsformen der Erfindung, um den Fachmann zu lehren, wie man die beste Art der Erfindung herstellt und verwendet. Um die erfinderischen Prinzipien zu lehren, wurden einige herkömmliche Aspekte der Erfindung vereinfacht oder weggelassen. Der Fachmann wird Abweichungen von diesen Ausführungsformen, die in den Bereich der Erfindung fallen, zu schätzen wissen. Der Fachmann wird zu schätzen wissen, dass die unten beschriebenen Merkmale auf verschiedene Weise kombiniert werden können, um mehrere Variationen der Erfindung zu bilden. Daher ist die Erfindung nicht auf die spezifischen Ausführungsformen, die unten beschrieben sind, beschränkt, sondern lediglich durch die Ansprüche und ihre Äquivalente.
  • Kommunikationsnetzwerk-Konfiguration und -Betrieb – 1, 2A-2B, 3A-3D
  • 1 stellt ein Kommunikationsnetzwerk 100 in einer beispielhaften Ausführungsform der Erfindung dar. Das Kommunikationsnetzwerk 100 beinhaltet mehrere Knoten 101-104, die in der Lage sind, miteinander über eine Netzwerkeinrichtung 110 zu kommunizieren. Die Netzwerkeinrichtung 110 kann ein LAN, ein MAN, ein WAN, oder eine andere Art von Netzwerk umfassen. Ein Knoten kann jedes beliebige System, Gerät, Komponente, Karte usw. für das Kommunikationsnetzwerk 100, wie zum Beispiel einen Computer, umfassen. Das Kommunikationsnetzwerk 100 kann andere Knoten, Komponenten, Geräte oder Systeme, die nicht in 1 gezeigt sind, beinhalten.
  • 2A ist ein Ablaufdiagramm, welches ein Verfahren 200 zum Betreiben eines Kommunikationsnetzwerks 100 darstellt, um Daten zwischen Knoten 101-104 eines Kommunikationsnetzwerks 100 in einer beispielhaften Ausführungsform der Erfindung zu übertragen. Man nehme für die Erläuterung des Verfahrens 200 an, dass die Knoten 101-104 jeweils als erster, zweiter, dritter und vierter Knoten bezeichnet werden. Man nehme weiter an, dass der erste Knoten 101 einen ersten Code beinhaltet, und der zweite Knoten 102 und der dritte Knoten 103 keinen Code aufweisen, der dem ersten Code gleicht oder diesem entspricht.
  • Im Schritt 202 des Verfahrens 200 führt der erste Knoten 101 den ersten Code aus, um einen Kommunikationskanal mit dem zweiten Knoten 102 einzurichten. Der Code umfasst jegliche Anweisungen, die von einem Prozessor ausgeführt werden können, wie zum Beispiel Maschinensprachen-Anweisungen, Programmiersprachen-Anweisungen (kompiliert oder nicht kompiliert), Interpretativsprachen-Anweisungen usw. In Schritt 204 führt der erste Knoten 101 den ersten Code aus, um sich selbst zu replizieren, um den zweiten Code zu erzeugen und den zweiten Code über den Kommunikationskanal an den zweiten Knoten 102 bereitzustellen. Wenn sich der erste Code „repliziert", um den zweiten Code zu erzeugen, repräsentiert der zweite Code eine Kopie oder Nachbildung des ersten Codes, eine im Wesentlichen ähnliche Kopie oder Nachbildung des ersten Codes oder eine Untermenge oder Ableitung des ersten Codes. Der erste Knoten 101 kann die Schritte 202 und 204 mehrere Male durchführen, um Kommunikationskanäle mit verschiedenen Knoten einzurichten und Codes an die Knoten bereitzustellen.
  • In Schritt 206 führt der zweite Knoten 102 den zweiten Code aus, um einen Kommunikationskanal mit dem dritten Knoten 103 einzurichten. Der Kommunikationskanal zwischen dem ersten Knoten 101 und dem zweiten Knoten 102 kann mit dem Kommunikationskanal zwischen dem zweiten Knoten 102 und dem dritten Knoten 103 übereinstimmen oder getrennt von diesem sein. In Schritt 208 führt der zweite Knoten 102 den zweiten Code aus, um sich selbst zu replizieren, um einen dritte Code zu erzeugen und den dritten Code über den Kommunikationskanal an den dritten Knoten 103 bereitzustellen. Der zweite Knoten 102 kann die Schritte 206 und 208 mehrere Male durchführen, um Kommunikationskanäle mit verschiedenen Knoten einzurichten und Codes an die Knoten bereitzustellen, wie durch Schritt „A" dargestellt ist.
  • Ist der Kommunikationskanal zwischen dem ersten Knoten 101 und dem zweiten Knoten 102 eingerichtet und aufrecht gehalten, empfängt der zweite Knoten 102 Daten von dem ersten Knoten 101 über den Kommunikationskanal in Schritt 210. Die Daten können jegliche Informationen, Software, Anweisungen usw., welche für die Übertragung in dem Kommunikationsnetzwerk ausgelegt sind, umfassen. Der zweite Knoten 102 kann auch Steuerinformationen von dem ersten Knoten 101 über den Kommunikationskanal empfangen. Die Steuerinformationen umfassen jegliche Betriebs-, Verwaltungs- oder Management-Informationen, die von den Knoten in dem Kommunikationsnetzwerk verwendet werden. In Antwort auf den Empfang der Daten führt der zweite Knoten 102 den zweiten Code aus, um die Daten in Schritt 212 zu verwalten. Verwalten der Daten bedeutet das Durchführen eines oder mehrerer lokaler Vorgänge an den Daten.
  • Zum Beispiel kann der zweite Code einen Ladevorgang lokal an dem zweiten Knoten 102 beinhalten. Wenn der zweite Knoten 102 die Daten empfängt, kann der zweite Knoten 102 die Daten replizieren und die replizierten Daten an den lokalen Ladevorgang leiten. Der zweite Knoten 102 kann dann den Ladevorgang ausführen, um die replizierten Daten zu empfangen und die replizierten Daten lokal an dem zweiten Knoten 102 zu verarbeiten. Der Ladevorgang kann die Daten in einem besonderen Verzeichnis speichern oder ansonsten die Daten verarbeiten.
  • Ist der Kommunikationskanal zwischen dem zweiten Knoten 102 und dem dritten Knoten 103 eingerichtet und aufrecht gehalten, empfängt der dritte Knoten 103 Daten von dem zweiten Knoten 102 über den Kommunikationskanal in Schritt 214. Der dritte Knoten 103 kann auch Steuerinformationen von dem ersten Knoten 101 über den Kommunikationskanal empfangen. In Antwort auf den Empfang der Daten führt der dritte Knoten 103 den dritten Code aus, um die Daten in Schritt 216 zu verwalten. Das Verwalten der Daten kann das Durchführen eines oder mehrerer lokaler Vorgänge an den Daten beinhalten.
  • Das Verfahren 200 kann mehr Schritte enthalten, um die Daten linear auf diese Weise an andere Knoten zu übertragen, bis die Daten an die gewünschten Knoten übertragen worden sind. Das Verfahren 200 stellt dar, wie die Daten in einer linearen Kette durch das Kommunikationsnetzwerk 100 übertragen werden. Das Verfahren 200 ist jedoch nicht auf lineare Übertragungen beschränkt, wie in 2B dargestellt.
  • 2B ist ein Ablaufdiagramm, welches zusätzliche Schritte darstellt, die im Verfahren 200 verwendet werden können. In Schritt 218 führt der zweite Knoten 102 ferner den zweiten Code aus, um einen Kommunikationskanal mit einem vierten Knoten 104 einzurichten, neben einem Einrichten des Kommunikationskanals mit dem dritten Knoten 103 (siehe Schritt 206 in 2A). In Schritt 220 führt der zweite Knoten 102 den zweiten Code aus, um sich selbst zu replizieren, um einen vierten Code zu erzeugen und den vierten Code über den Kommunikationskanal an den vierten Knoten 104 bereitzustellen. Ist der Kommunikationskanal zwischen dem zweiten Knoten 102 und dem vierten Knoten 104 eingerichtet und aufrecht erhalten, empfängt der vierte Knoten 104 Daten vom zweiten Knoten 102 über den Kommunikationskanal in Schritt 222. Der vierte Knoten 104 kann auch Steuerinformationen von dem ersten Knoten 101 über den Kommunikationskanal empfangen. In Antwort auf den Empfang der Daten führt der vierte Knoten 104 den vierten Code aus, um die Daten in Schritt 224 zu verwalten. Das Verwalten der Daten kann das Durchführen eines oder mehrerer lokaler Vorgänge an den Daten beinhalten.
  • Das Verfahren 200 kann mit ähnlichen Schritten fortfahren, bis die Daten zu den gewünschten Knoten übertragen wurden.
  • 3A-3D stellen dar, wie die Codes und die Daten in dem Kommunikationsnetzwerk 100 gemäß dem Verfahren 200 in einer beispielhaften Ausführungsform der Erfindung übertragen werden. 3A stellt den ersten, zweiten und dritten Knoten 101-103 von Kommunikationsnetzwerk 100 dar. Der Knoten 101 beinhaltet den ersten Code 301 und die Knoten 102-103 beinhalten anfänglich keinen Code, der dem Code 301 gleicht oder ihm entspricht.
  • Der Knoten 101 führt den Code 301 aus, um einen Kommunikationskanal 311 mit dem Knoten 102 (siehe 3B) einzurichten. Der Knoten 101 führt den Code 301 ebenfalls aus, um sich zu replizieren, um einen zweiten Code 302 zu erzeugen und den Code 302 über den Kommunikationskanal 311 an den Knoten 102 bereitzustellen. Der Knoten 101 kann diese Funktion für mehrere Knoten, die nicht in 3B gezeigt sind, durchführen.
  • Der Knoten 102 führt Code 302 aus, um einen Kommunikationskanal 312 mit dem Knoten 103 (siehe 3C) einzurichten. Der Kommunikationskanal 312 kann denselben Kanal wie Kommunikationskanal 311 umfassen. Der Knoten 102 führt Code 302 ebenfalls aus, um sich zu replizieren, um einen dritten Code 303 zu erzeugen und den dritten Code 303 über den Kommunikationskanal 312 an den Knoten 103 bereitzustellen. Der Knoten 102 kann diese Funktion für mehrere Knoten, die nicht in 3C gezeigt sind, durchführen.
  • Der Knoten 102 kann Code 302 auch ausführen, um einen Kommunikationskanal 313 mit dem Knoten 104 (siehe 3D) einzurichten. Der Kommunikationskanal 313 kann denselben Kanal wie die Kommunikationskanäle 311-312 umfassen. Der Knoten 102 führt Code 302 aus, um sich zu replizieren, um den vierten Code 304 zu erzeugen und den vierten Code 304 über den Kommunikationskanal 313 an den Knoten 104 bereitzustellen.
  • Ist der Kommunikationskanal 311 eingerichtet und aufrecht gehalten, empfängt der Knoten 102 Daten 321 von dem Knoten 101 über den Kommunikationskanal 311 (siehe 3D). Die Daten können jegliche Informationen, Software, Anweisungen usw., die für die Übertragung in dem Kommunikationsnetzwerk ausgelegt sind, umfassen. In Antwort auf den Empfang der Daten 321 führt der Knoten 102 Code 302 aus, um die Daten 321 zu verwalten. Zum Beispiel kann der Knoten 102 Code 302 ausführen, um einen oder mehr lokale Vorgänge an den Daten 321 durchzuführen.
  • Ist der Kommunikationskanal 312 eingerichtet und aufrecht gehalten, empfängt der Knoten 103 Daten 321 von dem Knoten 102 über den Kommunikationskanal 312. In Antwort auf den Empfang der Daten 321, führt der Knoten 103 den Code 303 aus, um die Daten 321 zu verwalten. Zum Beispiel kann der Knoten 103 Code 303 ausführen, um einen oder mehrere Vorgänge an den Daten 321 durchzuführen.
  • Ist der Kommunikationskanal 313 eingerichtet und aufrecht gehalten, empfängt der Knoten 104 Daten 321 von dem Knoten 102 über den Kommunikationskanal 313. In Antwort auf den Empfang der Daten 321, führt der Knoten 104 den Code 304 aus, um die Daten 321 zu verwalten. Zum Beispiel kann der Knoten 104 Code 304 ausführen, um einen oder mehrere Vorgänge an den Daten 321 durchzuführen.
  • Vorteilhafterweise kann Netzwerkpersonal den selbstreplizierenden Code, wie er in dieser Ausführungsform beschrieben wurde, verwenden, um effizient Daten an mehrere Knoten 101-104 im Kommunikationsnetzwerk 100 zu übertragen, ohne die Bandbreite des Netzwerks 100 zu opfern. Außerdem muss das Netzwerkpersonal keinen Code an den Knoten 102-104 des Kommunikationsnetzwerks 100 vorher installieren, um die Datenübertragung zu erleichtern. Der selbstreplizierende Code kann sich selbst an den Knoten 102-104 des Netzwerks 100 vermehren, um die Datenübertragung zu vereinfachen.
  • Kommunikationsnetzwerk – 4-6
  • 4 stellt ein Kommunikationsnetzwerk 400 in einer beispielhaften Ausführungsform der Erfindung dar. Das Kommunikationsnetzwerk 400 beinhaltet mehrere Knoten 401-409, die in der Lage sind, miteinander über ein LAN 410 zu kommunizieren. LAN 410 umfasst jede Art eines zuverlässigen Netzwerks, bei dem ein Zugriff auf die Knoten 401-409 von dem LAN 410 nicht durch Firewalls oder andere Schutzmechanismen blockiert ist. In anderen Ausführungsformen kann LAN 410 ein Intranet, ein MAN, ein WAN oder eine andere Art von Unternehmensnetzwerk umfassen. Ein Knoten kann jegliches System, Gerät, Komponente, Karte usw. für das Kommunikationsnetzwerk 400, wie zum Beispiel einen Computer, umfassen. Die Knoten 401-409 sind voneinander entfernt, was bedeutet, dass sie miteinander über LAN 410 kommunizieren. Das Kommunikationsnetzwerk 400 kann andere Knoten, Komponenten, Geräte oder Systeme, die nicht in 4 gezeigt sind, beinhalten.
  • Man nehme an, dass der Knoten 401 ein Steuerknoten ist, der von Netzwerkpersonal betrieben wird. Man nehme ferner an, dass das Netzwerkpersonal einen großen Datenstrom an alle Knoten 402-409 in dem Kommunikationsnetzwerk 400 übertragen will. Zum Beispiel könnte es erforderlich sein, dass das Netzwerkpersonal neue Software an den Knoten 402-409 installiert, wobei die Software einen großen Datenstrom umfasst. Es wäre für das Netzwerkpersonal ineffizient, die Software einzeln auf jeder Maschine zu installieren. Würde das Netzwerkpersonal versuchen, die Software gleichzeitig als einen großen Datenstrom an mehrere Knoten 402-409 zu übertragen, könnte die Bandbreite des LAN 410 beeinträchtigt werden. Das Netzwerkpersonal kann den selbstreplizierenden Code gemäß der Erfindung verwenden, um effizient Software an die Knoten 402-409 zu übertragen, ohne die Bandbreite des LAN 410 zu beeinträchtigen.
  • In dieser Ausführungsform wird der selbstreplizierende Code als ein „streaming worm" (ausströmender Wurm) bezeichnet. Ein „streaming worm" (sworm) umfasst jegliche Software, Code, oder Anweisungen, die sich replizieren können, als auch ein Stück eines beliebigen Ladecodes, auf einer Gruppe an Knoten in einem Kommunikationsnetzwerk, während er Daten zwischen den Knoten strömen lässt. Jeder Sworm besteht aus einem oder mehreren Swormlets, die in einer Anzahl an Topologien angeordnet werden können. Ein Sworm wird in einem Absendevorgang vermehrt, der die Übertragung des Datenstroms steuern kann, welche Knoten zu beinhalten sind usw.
  • Jedes Swormlet beinhaltet einen Swormlet-Code, einen Ladecode und einen Datenstrom. Der Swormlet-Code umfasst den Code, der verwendet wird, um neue Swormlets auf Knoten zu vermehren, den Datenstrom zwischen den Knoten aufrechtzuerhalten usw. der Ladecode umfasst den Code, der lokal an einem Knoten durchgeführt wird. Der Datenstrom umfasst die Daten, die in dem Kommunikationsnetzwerk 400 übertragen werden.
  • Man nehme an, dass der Knoten 401 einen Absendevorgang (nicht gezeigt) beinhaltet, der den Sworm absendet. Weil Netzwerkpersonal einen großen Datenstrom (d.h. Software) an viele Knoten des Netzwerks 400 übertragen will, könnte ein linearer Sworm die effizienteste Topologie für das Übertragen großer Datenströme sein. Ein linearer Strom könnte am besten funktionieren, da die Bandbreite des LAN 410 nicht zwischen den Swormlets des Sworms geteilt werden muss. Es muss nur eine Kopie des großen Datenstroms über das LAN 410 gleichzeitig mit dem linearen Sworm übertragen werden, wie unten dargestellt.
  • 5 stellt eine lineare Sworm-Topologie in einer beispielhaften Ausführungsform der Erfindung dar. Um die lineare Sworm-Topologie zu erzeugen, findet Folgendes statt. Der Absendevorgang 501 in Knoten 401 vermehrt Swormlet 502 (in 5 als S-LET bezeichnet). Insbesondere initiiert der Absendevorgang 501 einen Netzwerkvorgang 521 am Knoten 401. Der Netzwerkvorgang 521 ist so konfiguriert, dass er an Knoten 401 abläuft, um einen Kommunikationskanal mit einem entfernten Endknoten einzurichten und als eine Leitung für den Programmcode, die Steuerinformation und den Datenstrom, die von und zu dem entfernten Knoten gesandt werden, zu agieren. Somit läuft der Netzwerkvorgang 521 am Knoten 401 ab, um einen Kommunikationskanal mit dem Knoten 402 einzurichten. Der Absendevorgang 501 verwendet dann den Netzwerkvorgang 521 als eine Leitung, um eine Kopie des Swormlet-Codes über den Kommunikationskanal zu übertragen, wie durch den Pfeil 525 dargestellt.
  • Der Netzwerkvorgang 521 kann die Kopie des Swormlet-Codes an den Knoten 402 unter Verwendung eines Remote Shell-Commands, wie zum Beispiel remsh, rsh oder ssh, übertragen. Der Netzwerkvorgang 521 kann das Remote Shell-Command verwenden, um ein lineares Perl-Bootstrap-Script, welches den Swormlet-Code über den Kommunikationskanal vom Knoten 401 zieht, zu übertragen und entfernt am Knoten 402 auszuführen. Jedes Swormlet 502 erstreckt sich über zwei Knoten in dieser Ausführungsform.
  • Der Knoten 402 führt den Swormlet-Code aus, um einen Haupt-Swormlet-Vorgang 522, einen Routingvorgang 523 und einen Ladevorgang 524 für Swormlet 502 auszuführen. Der Haupt-Swormlet-Vorgang 522 empfängt den Ladecode von dem Absendevorgang 501 über den Kommunikationskanal, wie durch Pfeil 526 dargestellt. Der Haupt-Swormlet-Vorgang 522 repliziert den Ladecode und leitet die Kopie des Ladecodes an den Ladevorgang 524 weiter. Der Haupt-Swormlet-Vorgang 522 leitet den Ladecode an ein anderes Swormlet weiter (falls erforderlich), wie unten beschrieben ist. Der Haupt-Swormlet-Vorgang 522 initiiert den Ladevorgang 524, um den Ladecode auszuführen.
  • Um die lineare Sworm-Topologie zu bilden, vermehrt der Haupt-Swormlet-Vorgang 522 Swormlet 503. In anderen Ausführungsformen kann der Haupt-Swormlet-Vorgang 522 andere Swormlets vermehren. Durch das Vermehren von Swormlet 503 initiiert der Haupt-Swormlet-Vorgang 522 einen Netzwerkvorgang 531 am Knoten 402. Der Netzwerkvorgang 531 läuft am Knoten 402 ab, um einen Kommunikationskanal mit dem Knoten 403 einzurichten. Swormlet 502 verwendet den Netzwerkvorgang 531 dann als eine Leitung, um eine Kopie des Swormlet-Codes über den Kommunikationskanal zu übertragen, wie von Pfeil 535 dargestellt.
  • Der Knoten 403 führt den Swormlet-Code aus, um einen Haupt-Swormlet-Vorgang 532, einen Routingvorgang 533 und einen Ladevorgang 534 für Swormlet 503 durchzuführen. Der Haupt-Swormlet-Vorgang 532 von Swormlet 503 empfängt einen Ladecode von dem Haupt-Swormlet-Vorgang 522 von Swormlet 502 über den Kommunikationskanal, wie durch Pfeil 536 dargestellt. Der Haupt-Swormlet-Vorgang 532 repliziert den Ladecode und leitet die Kopie des Ladecodes an den Ladevorgang 534 weiter. Der Haupt-Swormlet-Vorgang 532 leitet den Ladecode an ein anderes Swormlet weiter (falls erforderlich). Der Haupt-Swormlet-Vorgang 532 initiiert den Ladevorgang 534, um den Ladecode auszuführen.
  • Die Swormlets werden auf ähnliche Weise durch die Knoten 401-409 des Kommunikationsnetzwerks 400 (siehe 4) vermehrt, wie es vom Absendevorgang 501 bestimmt wurde. Sobald die Swormlets vermehrt wurden und Kommunikationskanäle zwischen den Knoten 401-409 eingerichtet sind, kann ein Datenstrom zwischen den Knoten 401-409 übertragen werden.
  • Der Absendevorgang 501 überträgt einen Datenstrom an das Swormlet 502. Der Datenstrom in dieser Ausführungsform umfasst Software, welche ein großer Datenstrom ist. Der Haupt-Swormlet-Vorgang 522 initiiert den Routingvorgang 523 im Swormlet 502. Der Routingvorgang 523 in Swormlet 502 empfängt den Datenstrom von dem Absendevorgang 501 über den Kommunikationskanal, wie durch den Pfeil 527 dargestellt. Der Routingvorgang 523 repliziert den Datenstrom und leitet eine Kopie des Datenstroms an den Ladevorgang 524 weiter. Der Routingvorgang leitet den Datenstrom an ein anderes Swormlet weiter (falls erforderlich), wie vom Absendevorgang 501 adressiert oder spezifiziert. Der Ladevorgang 524 empfängt die Kopie des Datenstroms von dem Routingvorgang 523. Der Ladevorgang 524 führt den Ladecode aus, um den Datenstrom lokal zu verwalten. Zum Beispiel kann der Ladecode den Ladevorgang 524 dazu veranlassen, den Datenstrom in einem bekannten Verzeichnis im Knoten 402 zu speichern.
  • Der Routingvorgang 523 kann auch Steueranweisungen vom Absendevorgang 501 empfangen. Der Absendevorgang 523 kann die Steueranweisungen am Ladevorgang 524 ausführen. Der Routingvorgang 523 kann die Steueranweisungen auch an ein anderes Swormlet (falls erforderlich) oder einen anderen Knoten weiterleiten.
  • Beim Ausführen des Ladecodes kann der Ladevorgang 524 Ausgabedaten erzeugen. Der Ladevorgang 524 leitet die Ausgabedaten an den Haupt-Swormlet-Vorgang 522 weiter. Der Haupt-Swormlet-Vorgang 522 empfängt die Ausgabedaten vom Ladevorgang 524 und/oder Statusinformationen von einem beliebigen der Vorgänge. Der Haupt-Swormlet-Vorgang 522 bündelt die Ausgabedaten und/oder Statusinformationen vom Ladevorgang 524 und von Child Swormlets und leitet die Ausgabedaten und/oder Statusinformationen über den Kommunikationskanal weiter, wie durch Pfeil 528 dargestellt. Die Statusinformationen können eine Rückmeldung über den Erfolg des Speicherns des großen Datenstroms an Knoten 402 umfassen. Der Netzwerkvorgang 521 hält den Kommunikationskanal zwischen den Knoten 401 und 402 aufrecht, derart dass Ausgabedaten und/oder Statusinformationen zwischen den Knoten ausgetauscht werden können.
  • Der Haupt-Swormlet-Vorgang 523 in Swormlet 503 initiiert den Routingvorgang 533. Der Routingvorgang 533 in Swormlet 503 empfängt den Datenstrom (d.h. Software in dieser Ausführungsform) von dem Routingvorgang 523 in Swormlet 502 über den Kommunikationskanal, wie durch Pfeil 537 dargestellt. Der Routingvorgang 533 repliziert den Datenstrom und leitet eine Kopie des Datenstroms an den Ladevorgang 534 weiter. Der Routingvorgang 523 leitet den Datenstrom an ein anderes Swormlet (falls nötig) weiter, wie im Absendevorgang 501 adressiert oder spezifiziert. Der Ladevorgang 534 empfängt die Kopie des Datenstroms vom Routingvorgang 533. Der Ladevorgang 534 führt den Ladecode aus, um den Datenstrom lokal zu verwalten. Zum Beispiel kann der Ladecode den Ladevorgang 534 dazu veranlassen, den Datenstrom in einem bekannten Verzeichnis im Knoten 403 zu speichern.
  • Der Absendevorgang 501 kann bestimmen, welche Knoten den Datenstrom empfangen sollen, und in welcher Reihenfolge, basierend auf einem Abbild, einer Reihe von Anweisungen, einem Adressiersystem usw. Der Absendevorgang 501 kann den Datenstrom an ein oder mehrere Swormlets 502-504 adressieren oder ihn an alle Swormlets 502-504 senden. Basierend auf der Bestimmung durch den Absendevorgang 501 leitet der Routingvorgang 533 den Datenstrom zum nächsten Knoten weiter oder bereitet das Weiterleiten des Datenstroms zum nächsten Knoten oder zusätzlichen anderen Child-Knoten vor.
  • Der Routingvorgang 533 kann auch Steuerinformationen vom Routingvorgang 523 empfangen. Der Routingvorgang 533 kann die Steuerinformationen am Ladevorgang 534 ausführen. Der Routingvorgang 533 kann außerdem die Steuerinformationen an ein anderes Swormlet weiterleiten (falls erforderlich).
  • Beim Ausführen des Ladecodes kann der Ladevorgang 534 Ausgabedaten erzeugen. Der Ladevorgang 534 leitet die Ausgabedaten an den Haupt-Swormlet-Vorgang 522 weiter. Der Haupt-Swormlet-Vorgang 532 kann die Ausgabedaten von dem Ladevorgang 534 und/oder Statusinformationen von einem beliebigen der Vorgänge empfangen. Der Haupt-Swormlet-Vorgang 532 bündelt die Ausgabedaten und/oder Statusinformationen von dem Ladevorgang 534 und von Child Swormlets und leitet die Ausgabedaten und/oder Statusinformationen über den Kommunikationskanal weiter, wie durch Pfeil 538 dargestellt. Die Statusinformationen können eine Rückmeldung über den Erfolg des Speicherns des großen Datenstroms auf Knoten 403 umfassen. Der Netzwerkvorgang 531 hält den Kommunikationska nal zwischen den Knoten 402 und 403 aufrecht, derart dass Daten und/oder Statusinformationen zwischen den Knoten ausgetauscht werden können.
  • Der Datenstrom kann auf ähnliche Weise durch die Knoten 404-409 des Kommunikationsnetzwerks 400 übertragen werden (siehe 4), wie vom Absendevorgang 501 bestimmt. Da der Datenstrom in diesem Beispiel Software ist, kann das Netzwerkpersonal die Software auf jedem Knoten 402-409 installieren. Die Swormlets können nach dem Übertragen des Datenstroms zerstört werden oder verwendet werden, um andere Datenströme zu übertragen.
  • Das Übertragen des Datenstroms auf die Knoten 402-409 des Kommunikationsnetzwerks 400 in 4 gemäß dem oben beschriebenen Vorgang stellt viele Vorteile bereit. Erstens benötigen die Knoten 402-409 anfänglich keinen besonderen Code, um den Datenstrom zu empfangen. Die Swormlets werden sich auf den Knoten 402-409 replizieren, um den benötigten Code bereitzustellen. Die Knoten können dann den Code parallel zueinander ausführen, um den Datenstrom effizienter zu übertragen. Zweitens kann das Netzwerkpersonal Rückmeldungen über den Status der Übertragung erhalten. Jedes Swormlet hält den Kommunikationskanal zwischen den Knoten aufrecht und stellt Statusinformationen zurück and den Absendevorgang 501 bereit. Somit kann das Netzwerkpersonal die Statusinformationen einsehen, um den Status der Datenstromübertragung zu bestimmen. Drittens wird die Bandbreite des LAN 410 sehr wahrscheinlich durch die Datenstromübertragung nicht beeinträchtigt. Lediglich eine Kopie des Datenstroms sollte auf dem LAN 410 zu einem gegebenen Zeitpunkt in einer linearen Topologie vorhanden sein, da die Knoten die eine Kopie des Datenstroms von Block zu Block, von Knoten zu Knoten weitergeben, bis der Endknoten erreicht ist.
  • Unter der Annahme, dass jeder Knoten 402-409 nun eine Kopie der vorher übertragenen Software beinhaltet, ist es dem Netzwerkpersonal weiterhin möglich, die Software ferngesteuert auf den Knoten 402-409 zu installieren. Das Netzwerkpersonal kann einen anderen Sworm verwenden, um die ferngesteuerte Installation durch die Übertragung eines Datenstroms, der Anweisungen für das Installieren der Software beinhaltet, durchzuführen. Der Datenstrom wird sehr wahrscheinlich nicht groß sein, vor allem im Vergleich zu der Software selbst. Somit könnte für das Übertragen kleinerer Datenströme im Kommunikationsnetzwerk 400 ein linearer Sworm nicht die effizienteste Topologie sein, da die Ausbreitungsverzögerung zu lang sein könnte. Ein verzweigter Sworm könnte eine bessere Topologie für das Übertragen kleinerer Datenströme sein.
  • 6 stellt eine verzweigte Sworm-Topologie in einer beispielhaften Ausführungsform der Erfindung dar. Um die verzweigte Sworm-Topologie zu schaffen, findet Folgendes statt. Der Absendevorgang 501 im Knoten 401 vermehrt Swormlet 602 (in 6 als s-let bezeichnet). Swormlet 602 richtet einen Kommunikationskanal mit dem Knoten 402 ein, so dass Swormlet 602 sich über zwei Knoten 401-402 erstreckt. Swormlet 602 kann einen Netzwerkvorgang, einen Haupt-Swormlet-Vorgang, einen Routingvorgang und einen Ladevorgang beinhalten, die in dieser Ausführungsform aus Gründen der Kürze nicht gezeigt sind.
  • Basierend auf einer vom Absendevorgang 501 bereitgestellten Liste vermehrt sich Swormlet 602 zu Swormlets 603 und 604. Swormlet 603, welches im Knoten 402 arbeitet, richtet einen Kommunikationskanal mit dem Knoten 403 ein, so dass Swormlet 603 sich über zwei Knoten 402-403 erstreckt. Swormlet 603 vermehrt sich zu Swormlets 605-606. Swormlet 605, welches im Knoten 403 arbeitet, richtet einen Kommunikationskanal mit dem Knoten 405 ein, so dass sich Swormlet 605 über zwei Knoten 403 und 405 erstreckt. Swormlet 606, welches im Knoten 403 arbeitet, richtet einen Kommunikationskanal mit dem Knoten 406 ein, so dass sich Swormlet 606 über zwei Knoten 403 und 406 erstreckt. Swormlet 604, welches im Knoten 402 arbeitet, vermehrt sich zu Swormlets 607-608. Swormlet 607, welches im Knoten 404 arbeitet, richtet einen Kommunikationskanal mit dem Knoten 407 ein, so dass sich Swormlet 607 über zwei Knoten 404 und 407 erstreckt. Swormlet 608, welches im Knoten 404 arbeitet, richtet einen Kommunikationskanal mit dem Knoten 408 ein, so dass sich Swormlet 608 über zwei Knoten 404 und 408 erstreckt. Die Swormlets können auf mehrere andere Knoten vermehrt werden, die nicht in 6 gezeigt sind.
  • Wenn die Kommunikationskanäle eingerichtet sind, überträgt der Absendevorgang 501 eine Kopie des Datenstroms an Swormlet 602, wie durch Pfeil 625 dargestellt. Der Datenstrom in dieser Ausführungsform umfasst eine Reihe von Anweisungen zum Installieren von Software an den Knoten. Swormlet 602 leitet eine Kopie des Datenstroms an Swormlet 603 weiter, wie durch Pfeil 626 dargestellt und leitet eine Kopie des Datenstroms an Swormlet 604 weiter, wie durch Pfeil 627 dargestellt. Swormlet 603 leitet eine Kopie des Datenstroms an Swormlet 605 weiter, wie durch Pfeil 628 dargestellt und leitet eine Kopie des Datenstroms an Swormlet 606 weiter, wie durch Pfeil 629 dargestellt. Swormlet 604 leitet eine Kopie des Datenstroms an Swormlet 607 weiter, wie durch Pfeil 630 dargestellt und leitet eine Kopie des Datenstroms an Swormlet 608 weiter, wie durch Pfeil 631 dargestellt.
  • Die Swormlets leiten den Datenstrom an jeden Knoten weiter, der vom Absendevorgang 501 angewiesen ist, den Datenstrom zu empfangen. 6 zeigt eine binäre verzweigte Topologie zur Übertragung von Daten. Es kann jedoch auch eine asymmetrische verzweigte Topologie verwendet werden.
  • Mehrere Swormlets 602-608 können den Datenstrom paral lel zueinander ausströmen, um den Datenstrom effizienter zu übertragen. Das Übertragen des Datenstroms auf die oben beschriebene Weise stellt jedem Knoten den Datenstrom schnell und effizient bereit. Der Datenstrom in dieser Ausführungsform umfasst Anweisungen zum Installieren von Software. Somit kann Netzwerkpersonal schnell und effizient die Anweisungen an mehrere Knoten übertragen, derart dass die Software an den Knoten installiert werden kann.
  • In 6 agiert der Absendevorgang 501 als der einzige Absendevorgang für den Sworm. In anderen Ausführungsformen kann ein Ladevorgang jedes beliebigen der Swormlets 602-608 als ein Absendevorgang für einen anderen neuen und unabhängigen Sworm agieren. Somit kann eine komplexe Verzweigung von Sworms auf rekursive Art konstruiert werden.

Claims (10)

  1. Verfahren (200) zum Betreiben eines Kommunikationsnetzwerks (100), um Daten zwischen Knoten (101-104) des Kommunikationsnetzwerks zu übertragen, wobei das Kommunikationsnetzwerk einen ersten Knoten (101) umfasst, der einen ersten Code enthält, wobei das Verfahren folgende Schritte umfasst: Ausführen (202, 204) des ersten Codes im ersten Knoten, um einen Kommunikationskanal mit einem zweiten Knoten (102) einzurichten, den ersten Code zu replizieren, um einen zweiten Code zu erzeugen, und den zweiten Code an den zweiten Knoten über den Kommunikationskanal bereitzustellen; Ausführen (206, 208) des zweiten Codes im zweiten Knoten, um den Kommunikationskanal mit einem dritten Knoten (103) einzurichten, den zweiten Code zu replizieren, um einen dritten Code zu erzeugen, und den dritten Code an den dritten Knoten über den Kommunikationskanal bereitzustellen; wobei das Verfahren durch folgende Schritte gekennzeichnet ist: Empfangen (210) von Daten in dem zweiten Knoten von dem ersten Knoten über den Kommunikationskanal und Ausführen (212) des zweiten Codes in dem zweiten Knoten, um die Daten zu verwalten; und Empfangen (214) der Daten in dem dritten Knoten von dem zweiten Knoten über den Kommunikationskanal und Ausführen (216) des dritten Codes in dem dritten Knoten, um die Daten zu verwalten.
  2. Verfahren (200) aus Anspruch 1, welches ferner folgende Schritte umfasst: Ausführen (218, 220) des zweiten Codes in dem zweiten Knoten (102), um den Kommunikationskanal mit einem vierten Knoten (104) einzurichten, den zweiten Code zu replizieren, um den vierten Code zu erzeugen, und den vierten Code an den vierten Knoten über den Kommunikationskanal bereitzustellen; und Empfangen (222) der Daten in dem vierten Knoten von dem zweiten Knoten über den Kommunikationskanal und Ausführen (224) des vierten Codes in dem vierten Knoten, um die Daten zu verwalten.
  3. Verfahren (200) aus Anspruch 1, wobei der Schritt des Ausführens des zweiten Codes in dem zweiten Knoten (102), um die Daten zu verwalten, ferner folgende Schritte umfasst: Ausführen des zweiten Codes in dem zweiten Knoten, um die Daten zu replizieren, die von dem ersten Knoten empfangen wurden, und die replizierten Daten zu einem Ladevorgang in dem zweiten Knoten zu leiten; und Ausführen des Ladevorgangs in dem zweiten Knoten, um die replizierten Daten lokal am zweiten Knoten zu verarbeiten, um Ausgabedaten zu erzeugen.
  4. Verfahren (200) aus Anspruch 3, welches ferner folgende Schritte umfasst: Ausführen des zweiten Codes in dem zweiten Knoten (102), um die Ausgabedaten und Statusinformationen von dem zweiten Knoten zu bündeln und die Ausgabedaten und Statusinformationen über den Kommunikationskanal an den ersten Knoten (101) weiterzuleiten.
  5. Verfahren (200) aus Anspruch 1, welches ferner folgende Schritte umfasst: Empfangen von Steuerinformationen in dem zweiten Knoten (102) von dem ersten Knoten (101) über den Kommunikationskanal; Verwenden der Steuerinformationen in dem zweiten Knoten, um die Daten zu verwalten; und Leiten der Daten und der Steuerinformationen von dem zweiten Knoten an den dritten Knoten (103) über den Kommunikationskanal.
  6. Kommunikationsnetzwerk (100), welches die Übertragung von Daten zwischen Knoten (101-104) des Kommunikationsnetzwerks gewährleistet, wobei das Kommunikationsnetzwerk folgendes umfasst: einen ersten Knoten (101); einen zweiten Knoten (102); und einen dritten Knoten (103), welche durch eine Netzwerkeinrichtung (110) gekoppelt sind; wobei der erste Knoten angepasst ist, um einen ersten Code auszuführen, um einen Kommunikationskanal mit dem zweiten Knoten einzurichten; wobei der erste Knoten angepasst ist, um einen ersten Code auszuführen, um den ersten Code zu replizieren, um einen zweiten Code zu erzeugen, und um den zweiten Code an den zweiten Knoten über den Kommunikationskanal bereitzustellen; wobei der zweite Knoten angepasst ist, um einen zweiten Code auszuführen, um den Kommunikationskanal mit dem dritten Knoten einzurichten; wobei der zweite Knoten angepasst ist, um den zweiten Code zu replizieren, um einen dritten Code zu erzeugen, und um den dritten Code an den dritten Knoten über den Kommunikationskanal bereitzustellen; wobei das Kommunikationsnetzwerk gekennzeichnet ist durch: den zweiten Knoten, der angepasst ist, um Daten von dem ersten Knoten über den Kommunikationskanal zu empfangen, und angepasst ist um einen zweiten Code auszuführen, um die Daten zu verwalten; und den dritten Knoten, der angepasst ist, um Daten vom zweiten Knoten über den Kommunikationskanal zu empfangen, und angepasst ist, um einen dritten Code auszuführen, um die Daten zu verwalten.
  7. Kommunikationsnetzwerk (100) aus Anspruch 6, welches ferner einen vierten Knoten (104) umfasst, wobei das Kommunikationsnetzwerk ferner gekennzeichnet ist durch: den zweiten Knoten (102), der angepasst ist um den zweiten Code auszuführen, um den Kommunikationskanal mit dem vierten Knoten einzurichten; den zweiten Knoten, der angepasst ist, um den zweiten Code auszuführen, um den zweiten Code zu replizieren, um den vierten Code zu erzeugen, und um den vierten Code an den vierten Knoten über den Kommunikationskanal bereitzustellen; und den vierten Knoten, der angepasst ist, um die Daten von dem zweiten Knoten über den Kommunikationskanal zu empfangen, und der angepasst ist, um den vierten Code auszuführen, um die Daten zu verwalten.
  8. Kommunikationsnetzwerk (100) aus Anspruch 6, welches ferner gekennzeichnet ist durch: den zweiten Knoten (102), der angepasst ist, um Daten von dem ersten Knoten (101) über den Kommunikationskanal zu empfangen, und der angepasst ist, um den zweiten Code auszuführen, um die Daten zu replizieren, und um die replizierten Daten an einen Ladevorgang in dem zweiten Knoten zu leiten; und den zweiten Knoten, der angepasst ist, um den Ladevorgang auszuführen, um die replizierten Daten lokal zu verarbeiten, um Ausgabedaten zu erzeugen.
  9. Kommunikationsnetzwerk (100) aus Anspruch 8, welches ferner gekennzeichnet ist durch: den zweiten Knoten (102), der angepasst ist, um den zweiten Code auszuführen, um die Ausgabedaten und Statusinformationen von dem zweiten Knoten zu bündeln und die Ausgabedaten und Statusinformationen über den Kommunikationskanal an den ersten Knoten (101) weiterzuleiten.
  10. Kommunikationsnetzwerk (100) aus Anspruch 6, welches ferner gekennzeichnet ist durch: den zweiten Knoten (102), der angepasst ist, um Steuerinformationen von dem ersten Knoten (101) über den Kommunikationskanal zu empfangen, und der angepasst ist, um den zweiten Code auszuführen, um die Steuerinformationen zu verarbeiten, um die Daten zu verwalten, und um die Daten und die Steuerinformationen an den dritten Knoten (103) über den Kommunikationskanal zu leiten.
DE602005000044T 2004-02-25 2005-02-15 Datentransfer zu Knoten in einem Kommunikationsnetzwerk mit Hilfe von selbstreproduzierenden Code Active DE602005000044T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US786911 1985-10-11
US10/786,911 US7474656B2 (en) 2004-02-25 2004-02-25 Data transfer to nodes of a communication network using self-replicating code

Publications (2)

Publication Number Publication Date
DE602005000044D1 DE602005000044D1 (de) 2006-08-31
DE602005000044T2 true DE602005000044T2 (de) 2007-07-19

Family

ID=34750499

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005000044T Active DE602005000044T2 (de) 2004-02-25 2005-02-15 Datentransfer zu Knoten in einem Kommunikationsnetzwerk mit Hilfe von selbstreproduzierenden Code

Country Status (6)

Country Link
US (2) US7474656B2 (de)
EP (1) EP1569113B1 (de)
JP (1) JP4602791B2 (de)
KR (1) KR101110584B1 (de)
CN (1) CN100527693C (de)
DE (1) DE602005000044T2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100287623A1 (en) * 2005-11-23 2010-11-11 Thomas Banik Method for distributing a computer data structure to nodes of a network
US7698440B2 (en) * 2006-10-02 2010-04-13 Phonak Ag Method for controlling a transmission system as well as a transmission system
CN104348868A (zh) * 2013-08-02 2015-02-11 华为技术有限公司 节点安装处理方法、装置和系统
US11349557B2 (en) * 2018-11-30 2022-05-31 At&T Intellectual Property I, L.P. System model and architecture for mobile integrated access and backhaul in advanced networks

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9412553D0 (en) * 1994-06-22 1994-08-10 At & T Global Solutions Intern Method and apparatus for distributing software
US6233601B1 (en) 1996-11-14 2001-05-15 Mitsubishi Electric Research Laboratories, Inc. Itinerary based agent mobility including mobility of executable code
JPH10171660A (ja) 1996-12-13 1998-06-26 Nec Corp データ通信装置
US6782398B1 (en) * 2000-06-14 2004-08-24 Microsoft Corporation Method for executing commands on multiple computers of a network
JP3549861B2 (ja) 2000-09-12 2004-08-04 日本電信電話株式会社 分散型サービス不能攻撃の防止方法および装置ならびにそのコンピュータプログラム
US7162538B1 (en) * 2000-10-04 2007-01-09 Intel Corporation Peer to peer software distribution system
JP2003044637A (ja) * 2001-08-01 2003-02-14 Hitachi Ltd ワークフロー・システム制御方法、および、ワークフロー・システムを実行するためのプログラム
US20030182398A1 (en) * 2002-02-14 2003-09-25 Morlang Keven P. Method of establishing a logical association between connections
EP1505797B1 (de) 2003-08-04 2005-05-11 Alcatel Eine Methode, ein Kommunikationsnetz und ein Softwareprodukt zur Verteilung von Softwarepaketen oder Softwareupdates

Also Published As

Publication number Publication date
CN100527693C (zh) 2009-08-12
US20050185662A1 (en) 2005-08-25
EP1569113A1 (de) 2005-08-31
EP1569113B1 (de) 2006-07-19
KR101110584B1 (ko) 2012-02-15
CN1661979A (zh) 2005-08-31
JP2005244985A (ja) 2005-09-08
US20050204053A1 (en) 2005-09-15
US7474656B2 (en) 2009-01-06
DE602005000044D1 (de) 2006-08-31
KR20060042975A (ko) 2006-05-15
JP4602791B2 (ja) 2010-12-22

Similar Documents

Publication Publication Date Title
DE60204061T2 (de) Verfahren und System zur Informationsübertragung über Mobilkommunikationsnetze
DE60301717T2 (de) Verfahren und Vorrichtung zur inhaltsorientierten Weiterleitung von Paketen im Netz mit Datenspeichervorrichtungen
DE60318651T2 (de) Verfahren und Vorrichtung zur dynamischen Konfigurationsverwaltung
DE3888818T2 (de) Aufgeteilte Lastverteilung.
DE69938122T2 (de) Verfahren und System zur Softwareverteilung
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE602005000779T2 (de) Kommunikationsvorrichtung and Verfahren um Musiksoundkontrolldaten über das Internet zu erhalten und zu übertragen.
DE102005050304A1 (de) Verfahren und Programm für die Generierung automatisch verteilbarer Clients von Application-Servern
DE69327017T2 (de) Verfahren und Vorrichtung zur Bildung und Steuerung eines Mehrempfängerübertragungsbaums
DE112008002439T5 (de) Architektur und Protokoll für die erweiterbare und skalierbare Kommunikation
DE69829630T2 (de) Multicastübertragungsverfahren
DE4327119A1 (de) Dezentrale Software-Umgebung
DE602004005242T2 (de) Zentralisierte konfiguration von verwalteten objekten des link-scope-typs in netzwerken, die auf dem internet-protokoll (ip) basieren
DE10024715A1 (de) Verfahren und Vorrichtung zum Einrichten einer Zwei-Wege-Übertragung mit einem fernen Drucker
DE602005000044T2 (de) Datentransfer zu Knoten in einem Kommunikationsnetzwerk mit Hilfe von selbstreproduzierenden Code
DE69511110T2 (de) Datenkonferenznetz
DE4304916C2 (de) Kommunikationssystem und Verfahren zum Betreiben eines Kommunikationssystems
DE102006041868A1 (de) Verfahren zum Bereitstellen zusammengesetzter Dienste in einem Peer-to-Peer-Netzwerk
DE102011086726B4 (de) Verfahren zur redundanten Kommunikation zwischen einem Nutzer-Terminal und einem Leitsystem-Server
DE602005000715T2 (de) System und Verfahren zur Auswahl einer aktiven Verbindung
DE60301675T2 (de) Routersystem und Methode zur Duplizierung einer Weiterleitungseinheit
DE60203100T2 (de) Netzzugangsanordung
DE60214688T2 (de) Verfahren zur aktualisierung von programmen in einem netzwerkserver mit zugehörigem system und softwareprodukt
DE60131889T2 (de) Verfahren und telekommunikationsknoten zur verteilung von abschlussverkehr in einem telekommunikationsknoten
DE69331310T2 (de) Funktionsverteilung im Paketvermittlungsnetz

Legal Events

Date Code Title Description
8364 No opposition during term of opposition