[go: up one dir, main page]

DE69938122T2 - Verfahren und System zur Softwareverteilung - Google Patents

Verfahren und System zur Softwareverteilung Download PDF

Info

Publication number
DE69938122T2
DE69938122T2 DE69938122T DE69938122T DE69938122T2 DE 69938122 T2 DE69938122 T2 DE 69938122T2 DE 69938122 T DE69938122 T DE 69938122T DE 69938122 T DE69938122 T DE 69938122T DE 69938122 T2 DE69938122 T2 DE 69938122T2
Authority
DE
Germany
Prior art keywords
node
branch
destination
nodes
software
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.)
Expired - Lifetime
Application number
DE69938122T
Other languages
English (en)
Other versions
DE69938122D1 (de
Inventor
Aaron Islandia Abbott
Dale Islandia Schumacher
Brett Islandia Peterson
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.)
Google LLC
Original Assignee
Computer Associates Think 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 Computer Associates Think Inc filed Critical Computer Associates Think Inc
Publication of DE69938122D1 publication Critical patent/DE69938122D1/de
Application granted granted Critical
Publication of DE69938122T2 publication Critical patent/DE69938122T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft die Softwareverteilung und insbesondere ein Verfahren zur Softwareverteilung über ein Netzwerk, das die Gesamtbandbreite minimiert, die zum Übertragen der Software verwendet wird.
  • Das Übertragen von Softwarepaketen über ein Netzwerk von einem Server zu einem oder mehreren Clients, die das Paket benötigen, ist gut bekannt. Neuere Versionen eines Pakets werden oft herausgegeben und müssen zu den Clients, die auf der älteren Version der Software laufen, verteilt werden.
  • Die Pakete, die erfindungsgemäß verteilt werden, sind Dateiensätze, optional mit begleitenden Skripts. Die Skripts werden im Installationszeitpunkt ausgeführt und können zum Beispiel Vorinstallationsskripts sein, die ausgeführt werden, bevor Dateien installiert werden, oder Nachinstallationsskripts, die anschließend ausgeführt werden.
  • Unter bestimmten Bedingungen ist es nicht zwingend, dass alle Systeme, die mit der älteren Software laufen, auf den neuen Stand gebracht werden, oder es ist für einen Server nicht möglich, eine Aufzeichnung aller Systeme zu haben, die mit der Software laufen. Unter diesen Umständen könnten Clients, die die Software ausführen, periodisch den Server abfragen, der dann eine neue Version der Software hat oder nicht, und fordern, dass die Software zu dem Client gesendet wird, wenn der Server den Client informiert, dass er eine neuere Version hat. Dieser Ansatz wird von vielen kommerziellen Softwareverteilern angewandt, um Upgrades ihrer Produkte über das Internet verfügbar zu machen.
  • In vielen Situationen ist die oben stehende Lösung der Softwareverteilung nicht akzeptabel. Wenn die Software zum Beispiel noch nie auf einem Clientsystem installiert wurde, kann das Clientsystem nicht wissen, dass es die neue Software anfordern soll. Ferner benötigen Softwareupgrades oft das sofortige Installieren, um die Systemintegrität insgesamt aufrechtzuerhalten. Angesichts dieser Situationen und anderer ähnlicher Situationen, ist es erforderlich geworden, Verteilungssoftware bereitzustellen, die aktiv Softwarepakete von einem Server zu einem oder mehreren Clients verteilt, statt darauf zu warten, dass der Client die Software anfordert. Ein Beispiel für ein solches System ist das AutoXfer-Produkt von Platinum Technology, Inc.
  • Softwareverteilungspakete sind gewöhnlich hierarchisch darin, dass die Dateien in dem Softwareverteilungspaket logisch in kleinere Pakete gruppiert werden können, die auf bestimmten Clients erforderlich sind aber nicht auf anderen. Derartige Pakete, die einen Satz von Dateien enthalten, werden als einfache Pakete bezeichnet und können zum Beispiel aus den Dateien bestehen, die eine einzelne Anwendung bilden. Ein Softwarepaket kann auch ein oder mehrere Kompositpakete enthalten, die keine eigentlichen Dateien enthalten, sondern stattdessen Referenzen bezüglich zwei oder mehrerer einfacher oder Kompositpakete, die das Kompositpaket bilden. Ein Kompositpaket kann zum Beispiel eine Folge von Anwendungen darstellen, für die die einfachen Pakete durch das Kompositpaket referenziert werden. Um ein Kompositpaket zwischen Knoten in einem Netzwerk zu senden, müssen die Pakete, auf die sich das Kompositpaket bezieht, gesendet werden, und zwar gemeinsam mit dem Kompositpaket. Zusätzlich kann es ein Kompositpaket auch erfordern, dass seine referenzierten Pakete in der Reihenfolge angegeben werden, die durch seine Definition installiert werden, auch wenn es keine abhängigen Skripts hat.
  • Während des Neuverpackens gibt es zwei Arten von Kompositpaketen, die zu berücksichtigen sind. Ein offenes Paket hat keine Auflagen hinsichtlich der Reihenfolge oder des Verar beitens seines Inhalts, sondern ist eine einfache Gruppierung anderer Pakete. Der Inhalt eines offenen Pakets kann frei gehandhabt werden, ohne das Paket selbst zu kompromittieren, und seine Gegenwart ist durch die Gegenwart seines Inhalts implizit. Ein geschlossenes Paket hat Auflagen, die erfordern, dass sein Inhalt in dem Kontext des Pakets selbst (Installation) installiert wird, und seine Gegenwart muss explizit angegeben werden.
  • Oft haben Zielknoten auf dem Netzwerk bereits eines oder mehrere der einfachen Pakete, auf die sich ein Kompositpaket bezieht, installiert, bevor das Kompositpaket gesendet wird. Wenn das Kompositpaket ein offenes Paket ist, ist es sehr verschwenderisch an Bandbreite, einzelne Kompositpakete in einem offenen Paket zu senden, und es verschwendet viel Bandbreite, einfache, bereits installierte Pakete zu einem Zielknoten zu senden, da die einfachen Pakete zum Vollenden der Installation des Kompositpakets nicht erforderlich sind.
  • Es wurden Standards für Softwareverteilungsformate umgesetzt, wie zum Beispiel der Standard Posix 1387.2. Er verwendet vier Hauptobjekte: Fileset, Subproduct, Product und Bundle. Dieser Standard spezifiziert im Wesentlichen das Installationsformat in einer Unix-Umgebung. Er zieht weitere Posix-Standards für Definitionen und Forderungen, die in dem Standard verwendet werden, heran.
  • Net News verwendet einen Filtermechanismus, um News-Artikel zu Netzwerkmaschinen zu senden, so dass nur das gesendet wird, was gefordert wird und erforderlich ist. Die Artikel haben jedoch keine hierarchische Struktur, so dass die gleichen Probleme auftreten wie bei der Softwareverteilung.
  • EP 0 782 080 beschreibt ein System und ein Verfahren zum Verbreiten von Revisionen durch ein Kommunikationsnetzwerk. Das System weist eine Zustandsmeldeschaltung auf, die mit einem zweiten Knoten in dem Netzwerk verbunden ist, um den laufenden Zustand der Information des zweiten Knotens zu sammeln und zu übertragen. Die Informationsrevisionsschaltung gehört zu einem ersten Knoten des Netzwerks, und dieser empfängt den laufenden Zustand von dem zweiten Knoten und bestimmt, ob eine Revision der Information des zweiten Knotens erforderlich ist. Ist die Revision erforderlich, wird die Revision zu dem zweiten Knoten übertragen, um die Information des zweiten Knotens zu revidieren.
  • DARLEGUNG DER ERFINDUNG
  • Die vorliegende Erfindung stellt ein Verfahren und ein Gerät zum Übertragen eines Softwarepakets, das aus kleineren Softwarepaketen besteht, über ein Netzwerk in einem Baumverteilungsmuster, in dem der Übertragungsknoten das Hauptverzeichnis ist, bereit, und Clients, die irgendeinen Teil des Pakets benötigen, sind bestimmte Knoten in der Baumstruktur. Bei einer bevorzugten Ausführungsform der Erfindung wird Information zu Knoten an Zweigen in der Baumstruktur bereitgestellt, in Zusammenhang mit den Teilen des Kompositpakets, die für die Clients erforderlich sind, zu welchen dieser Knoten das Paket liefert. Der Zweigknoten überträgt nur Teile des Pakets zu jedem seiner Child-Knoten, die für die Knoten darunter erforderlich sind und diesen Child-Knoten in der Baumstruktur enthalten. Jedes Paket, das das Softwarepaket bildet, kann geöffnet werden, sobald irgendwelche Pakete, von welchen es abhängig ist, geöffnet wurden.
  • Gemäß der vorliegenden Erfindung wird Folgendes bereitgestellt: ein System zur hierarchischen Softwareverteilung gemäß Anspruch 1 und ein Verfahren zum Verteilen eines Softwarepakets gemäß Anspruch 7.
  • Unterschiedliche Pakete, die ein Softwarepaket bilden, können unabhängig zu Zielknoten gemulticastet werden, an welchen sie benötigt werden sind, und dann kann jedes Paket geöffnet werden, sobald alle an einem Zielknoten erforderlichen Pakete empfangen wurden.
  • Diese und weitere Aufgaben der Erfindung ergeben sich aus dem restlichen Teil dieser Spezifikation.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Beispiel eines Netzwerks, auf dem die Erfindung umgesetzt werden kann.
  • 3 zeigt die Struktur eines Kompositpakets gemäß einem ersten Beispiel der Erfindung.
  • 4A zeigt die Struktur eines Kompositpakets gemäß einem Beispiel der vorliegenden Erfindung.
  • 4B zeigt ein erstes Beispiel der Verteilung des Kompositpakets, das in 3A gezeigt ist.
  • 4C zeigt ein zweites Beispiel der Verteilung des Kompositpakets, das in 3A gezeigt ist.
  • 5 zeigt eine Anordnung, die von der ersten Ausführungsform erzeugt wird, wenn sie erstellt, welche Pakete entlang jedes Links von dem Knoten Q in 4C zu senden sind.
  • Die 6A und 6B zeigen unterschiedliche übergreifende Baumstrukturen, wie sie in einer zweiten Ausführungsform der Erfindung umgesetzt werden.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine erste Ausführungsform der Erfindung wird unten unter Bezugnahme auf die 1 bis 3 beschrieben.
  • 1 zeigt ein beispielhaftes Netzwerk, auf dem die Erfindung verwendet werden könnte. Ein derartiges Netzwerk hat Knoten 2, die wirken können, um Daten über mehr als einen Netzwerklink 4, die unten Zweigknoten genannt werden, zu routen. Daten können entlang mindestens eines Netzwerklinks empfangen und zu anderen Netzwerklinks von einem Zweigknoten 2 gelenkt werden. Bei einer Standardkonfiguration könnten Daten von jedem der Netzwerklinks 4, die mit dem Zweigknoten verbunden sind, empfangen oder entlang dieser gesendet werden. Diese Zweigknoten könnten zum Beispiel Router der Typen sein, die gewöhnlich auf paketvermittelten Netzwerken gesendet werden.
  • Eine das Netzwerk übergreifende Baumstruktur wird von einem Verteilungsserver (DS) 10 erzeugt, von dem ein Softwarepaket zu einem Satz von Zielknoten 14 zu verteilen ist, die die Software empfangen müssen, wobei Zweigknoten 2 in dem Netzwerk als Zweige in der Baumstruktur wirken. Zielknoten sind mit dem Buchstaben „T" in den 1 und 2 dargestellt. Zielknoten könnten die Blätter 16 der Baumstruktur oder Zweigknoten 2 in der Baumstruktur sein. Eine solche übergreifende Baumstruktur zum Erreichen der Ziele wird in 2 gezeigt.
  • Der Baum braucht nicht explizit definiert zu werden und könnte zum Beispiel implizit in Routingtabellen auf jedem der Zweigknoten 2 sein, die Daten weitergeben, wie gemäß dem Stand der Technik gut bekannt ist. Das heißt, dass jeder der Zweigknoten eine Routingtabelle führt, die die kürzeste Route angibt, die derzeit für einen bestimmten Knoten verfügbar ist. Eine solche Architektur ist gut bekannt und es gibt gut entwickelte Algorithmen zum Führen von Routingtabellen, die ein entsprechendes Routing bereitstellen, um übergreifende Baumstrukturen von jeder Quelle zu mehreren Zielen zu erzeugen. Die Algorithmen und Proto kolle, die verwendet werden, variieren je nach der in dem Abschnitt des betreffenden Netzwerks verwendeten Netzwerkarchitektur. Es gibt zum Beispiel spezifische Algorithmen und Protokolle für brückenverbundene LANs, von welchen einer in IEEE 801.1d beschrieben ist. Eine derartige Architektur für den Gebrauch in Systemen, die auf dem Internet basieren, ist in RFC 1716 dargelegt, das Algorithmen zu effizienten Routen von Internetpaketen basierend auf ihren IP-Adressen gibt. Die Routingtabellen oder äquivalenten Routingstrukturen könnten statisch und manuell aktualisiert oder dynamisch basierend auf Kommunikation zwischen den Knoten sein, die ein Routingprotokoll, wie zum Beispiel OSPF(Open Shortest Path First)-Protokoll verwenden. Zu bemerken ist, dass, solange der Routingmechanismus garantiert, dass zwischen zwei Knoten in einem Netzwerk immer die gleiche Route verwendet wird, die Verteilung von einem Knoten zu mehreren Knoten immer in einem übergreifenden Baumstrukturmuster erfolgt.
  • Jeder der Zweigknoten in dem Baum muss mit Information in Zusammenhang damit versehen werden, welche Knoten bestimmte einfache Pakete 34 und Kompositpakete 32 benötigen, die ein zu sendendes Gesamtsoftwarepaket 30 bilden. Ein Beispiel für ein solches Softwarepaket ist in 3A gezeigt. Gemäß dieser Ausführungsform erfolgt diese Bestimmung an dem DS 10 und kann in einer Transfersteuerdatei enthalten sein, die mit dem Softwarepaket 30 mitgesendet wird.
  • Gemäß der ersten Ausführungsform und wenn ein Paket auf einem Zielknoten 14 installiert wird, wird eine Aufzeichnung dieser Installation geführt, so dass zukünftige Übertragungen zu diesem Zielknoten nur das zu enthalten brauchen, was erforderlich ist. Diese Aufzeichnung kann an dem Ziel selbst geführt werden, und das Ziel kann von dem DS 10 abgefragt werden, wenn neue oder aktualisierte Software zu installieren ist, oder sie kann von dem DS geführt werden, so dass dieser nicht alle Ziele abzufragen braucht.
  • Eine Kombination dieser zwei Verfahren ist möglich.
  • Die erforderliche Information zum Bestimmen der Zielknoten, die bestimmte Pakete benötigen, kann dementsprechend entweder erzielt werden, indem alle Zielknoten in Zusammenhang mit den Paketen, die bereits auf ihnen installiert sind, abgefragt werden, oder indem die Pakete, die auf jedem Knoten installiert sind, während sie installiert werden, mitverfolgt werden. Sollten Pakete, die auf einem bestimmten Zielknoten installiert sind, aus irgendeinem Grund nicht festgestellt werden, kann das gesamte Softwarepaket 30 zu dem Zielknoten gesendet werden.
  • Bestimmte Zweigknoten 2 funktionieren, um Daten in einem Softwarepaket 30 neu zu verpacken, wie unten erklärt wird. Derartige Zweigknoten werden hier als Neuverpackungsknoten 12 bezeichnet. Gemäß dieser Ausführungsform werden diese Knoten mit Speichermedien versehen, die ein gesamtes Softwarepaket speichern können. Es werden aber auch Ausführungsformen in Betracht gezogen, bei welchem das Neuverpacken, das bei dieser Ausführungsform der Erfindung erforderlich ist, „on the fly", das heißt während der Übertragung ausgeführt wird, ohne dass ausreichender Raum zum Speichern des Softwarepakets erforderlich wäre.
  • Es ist wichtig, dass jeder der Neuverpackungsknoten 12 mit allen Zielknoten 14 versorgt wird, zu welchen er schließlich Daten übertragen wird, und die Pakete, die jeder dieser Zielknoten benötigt. Das kann auf viele Arten einfach erzielt werden. Zwei Beispiele werden unten angeführt:
    • 1) Es werden Daten mit dem Softwarepaket 30 von dem DS 10 mit einer Liste aller Zielknoten 14 übertragen, zu welchen das Paket zu übertragen ist. Jeder Zweigknoten 2, der das Paket empfängt, prüft seine Routingtabelle oder eine gleichwertige Datenaufzeichnung, um die kürzeste Route zu allen Knoten, zu welchen er das Paket zu übertragen hat, zu bestimmen. Er sendet entsprechende Teile des Pakets entlang jedes der entsprechenden Zweige, um die Ziele zu erreichen. Der Zweigknoten 2 editiert die Liste der Zielknoten, die er entlang jedes Zweigs weiterleitet, um nur die Zielknoten zu enthalten, die entlang des jeweiligen Zweigs zu erreichen sind.
    • 2) Jeder Neuverpackungsknoten 12 wird mit einer Funktionalität versehen, um alle Ziele zu bestimmen, für die er zum Übertragen von Daten, die von einem bestimmten Knoten kommen, verantwortlich ist. Die Liste der Zielknoten braucht nicht an jedem Zweigknoten editiert zu werden, solange der Neuverpackungsknoten weiß, woher das Paket kommt. Die Liste der Zielknoten könnte in einer einzigen Transfersteuerdatei, wie oben besprochen, gespeichert werden.
  • Das folgende Beispiel veranschaulicht, wie Kompositpakete gemäß der ersten Ausführungsform der vorliegenden Erfindung gesendet werden. Wie in 3 gezeigt, besteht das Kompositpaket A aus Referenzen auf einfache Pakete B und C. Die einzelne Installation des Pakets B funktioniert wie folgt:
    • 1. Das Vorinstallationsskript von B ausführen
    • 2. Die Dateien von B installieren
    • 3. Das Nachinstallationsskript von B ausführen
  • Die Einzelinstallation des Pakets C wird wie folgt durchgeführt:
    • 1. Das Vorinstallationsskript von C ausführen
    • 2. Die Dateien von C installieren
    • 3. Das Nachinstallationsskript von C ausführen
  • Die Installation des Kompositpakets A erfolgt jedoch wie folgt:
    • 1. Das Vorinstallationsskript von A ausführen
    • 2. Das Vorinstallationsskript von B ausführen
    • 3. Die Dateien von B installieren
    • 4. Das Nachinstallationsskript von B ausführen
    • 5. Das Vorinstallationsskript von C ausführen
    • 6. Die Dateien von C installieren
    • 7. Das Nachinstallationsskript von C ausführen
    • 8. Das Nachinstallationsskript von A ausführen.
  • Wenn das Paket B und das Paket C einzeln auf einem Ziel installiert wurden (in getrennten Übertragungen), kann man annehmen, dass das Paket A ebenfalls installiert ist, vorausgesetzt, dass das Paket A nicht von seinen Skripts abhängig ist. Wenn ein Paket von seinen Skripts abhängig ist, bedeutet das, dass die Skripts ausgeführt werden müssen, damit es als effektiv installiert betrachtet wird.
  • Für eine gegebene Übertragung werden die Softwarepaketinhalte an einem DS gesammelt und zu den Zielknoten entlang der Hierarchie von Knoten in der übergreifenden Baumstruktur gesendet. Der DS sendet das Paket zu den Zielknoten des ersten Niveaus in dem Baum, wobei jeder dieser das Paket zu dem nächsten Niveau weitersendet, und so weiter, bis das Paket zu allen Zielknoten des Transfers gesendet wurde. Die Zwischenknoten, die zum Weiterleiten des Pakets verwendet werden, können ebenfalls Zielknoten sein.
  • Das Neuverpacken kann erfolgen, wenn darauf folgende Ziele (die inklusive und unter dem, zu dem gesendet wird) nur einen Abschnitt des Inhalts des Pakets benötigen. Das Bestimmen des Paketinhalts, der an jedem Ziel benötigt wird, erfolgt an dem DS (und ist in der Transfersteuerdatei enthalten), bevor der Transfer beginnt. Der Satz von Paketinhalten, den aufeinander folgende Ziele benötigen, wird als das „neue Paket" definiert.
  • In dem Fall eines offenen Pakets können referenzierte Pakete einfach ausgewählt und dorthin gesendet werden, wo sie benötigt werden. In dem Fall eines geschlossenen Pakets müssen das geschlossene Paket sowie alle Pakete, das es sowohl direkt als auch indirekt referenziert, gesendet werden.
  • In dem folgenden Beispiel, das in den 4A, 4B und 4C gezeigt ist, enthält das Paket zwei Kompositpakete a und c und drei einfache Pakete b, d und e. Der Zweck besteht darin, das Paket a auf den Zielen P, Q, R, S und T zu installieren. Das Paket a ist ein offenes Paket, und das Paket c wird sowohl in dem offenen Fall der 3B als auch in dem geschlossenen Fall, der in 3C gezeigt ist, betrachtet.
  • In dem Fall, in dem das Paket c offen ist (4B):
    Das Ziel P hat die Pakete b und d installiert und benötigt das Paket e.
  • Das Ziel Q hat die Pakete b und e installiert und benötigt das Paket d. Die Pakete b und e werden auch zu den Zielen R, S und T gesendet.
  • Das Ziel R hat die Pakete b und d installiert und benötigt das Paket e.
  • Das Ziel S hat das Paket c[de] installiert und benötigt das Paket b.
  • Das Ziel T hat die Pakete d und e installiert und benötigt das Paket b.
  • In dem Fall, in dem das Paket c geschlossen ist (3C):
    Das Ziel P hat die Pakete b und d installiert und benötigt das Paket c [de].
  • Das Ziel Q hat die Pakete b und e installiert und benötigt das Paket c [de]. Das Paket b wird auch für die Ziele S und T gesendet.
  • Das Ziel R hat die Pakete b und d installiert und benötigt das Paket c [de].
  • Das Ziel S hat das Paket c [de] installiert und benötigt das Paket b.
  • Das Ziel T hat die Pakete d und e installiert und benötigt die Pakete b und c [de].
  • Das derzeitige Verfahren zum Neuverpacken der Pakete, die das Softwarepaket 30 bilden, variiert beträchtlich je nach dem Protokoll und der Architektur, die verwendet werden, man sieht jedoch, dass ein solches Neuverpacken sehr einfach umzusetzen wäre, wenn man die Kenntnis von der Transfersteuerdatei darüber verwendet, welche Pakete benötigt werden. Eine Boolesche Anordnung könnte zum Beispiel mit einer Dimension eingerichtet werden, die den verschiedenen Paketen entspricht, und einer Dimension, die den verschiedenen Zweigen entspricht. Alle Lagen in dieser Anordnung werden ursprünglich auf FALSCH gesetzt. Ein Hilfsprogramm, das auf dem Neuverpackungsknoten umgesetzt wird, scannt durch die Liste der Zielknoten. Wenn es einen Knoten findet, zu dem es entlang eines bestimmten Links senden wird, stellt es die Anordnungslagen in der Anordnung, die zu diesem Link in der ersten Dimension gehört, und die Pakete, die von diesem Zielknoten in der zweiten Dimension benötigt werden, auf WAHR. Sobald alle Zielknoten von dem Hilfsprogramm berücksichtigt wurden, werden alle Inhalte des Softwarepakets, die entlang jedes Links benötigt werden, durch die Lagen in der Anordnung in Zusammenhang mit diesem Link, die auf WAHR gestellt sind, definiert. 5 zeigt ein Beispiel für eine Anordnung dieses Typs zum Neuverpacken des Knotens Q in 4C.
  • Bei einer zweiten Ausführungsform der Erfindung braucht nicht jedes der einfachen und Kompositpakete, die ein Gesamtpaket enthalten, als ein einzelnes ununterbrochenes Paket übertragen zu werden, sondern könnte getrennt mit seinen eigenen Transfersteuerdaten übertragen werden, um sicherzustellen, dass es nur zu ausgewählten Knoten übertragen wird. Jedes Paket, das das Gesamtpaket bildet, würde effektiv zu den entsprechenden Knoten gemulticastet werden. Wenn ein Paket zu einem geschlossenem Kompositpaket gehört, könnte das Paket mit Anhängen versehen werden, die die Zielknoten anweisen, das Paket nicht zu installieren, bis sie das Parent-Kompositpaket empfangen haben. Beim Einsatz dieses alternativen Verfahrens müsste das Neuverpacken nicht ausgeführt werden, und ähnliche Gesamtbandbreite würde verwendet werden. Eine unterschiedliche übergreifende Baumstruktur könnte nämlich für jedes Paket, das gesendet wird, abhängig von seinen Zielknoten verwendet werden. Das wird von den 6A und 6B beispielhaft dargestellt. In 6A wird das Paket B über eine erste übergreifende Baumstruktur über die Links 101, 103 und 104 gesendet. In 6B wird das Paket C über eine übergreifende Baumstruktur über drei andere Links 102, 105 und 106 gesendet. Wenn dieselbe übergreifende Baumstruktur für beide Pakete A und B verwendet würde, müsste ein Paket über alle 4 Links gesendet werden. Wenn man zum Beispiel die Baumstruktur der 6A verwendet, müsste das Paket C über die Links 101, 102, 104 und 106 übertragen werden.
  • Während bevorzugte Ausführungsformen der vorliegenden Erfindung veranschaulicht und beschrieben wurden, ist es für den fachkundigen Leser klar, dass Änderungen und Modi fikationen ausgeführt werden können, ohne die weiteren Aspekte der Erfindung zu verlassen. Unterschiedliche Merkmale der vorliegenden Erfindung sind in den folgenden Ansprüchen dargelegt.

Claims (12)

  1. System (1) für die hierarchische Softwareverteilung, das das Verteilen eines Softwarepakets (a) erlaubt, das mindestens ein erstes, zweites und drittes Softwarepaket (b, d, e) aufweist, zu mehreren Zielknoten, wobei das System Folgendes aufweist: einen Verteilungsknoten (10) zum Übertragen von Softwarepaketen; einen ersten Zweigknoten (2), der zur Kommunikation mit dem Verteilungsknoten (10) eingerichtet ist, wobei der ersten Zweigknoten (2) eingerichtet ist, um mindestens einen Abschnitt des Softwarepakets von dem Verteilungsknoten (10) zu empfangen; einen zweiten Zweigknoten (2), der zur Kommunikation mit dem ersten Zweigknoten (2) über einen ersten Netzwerklink eingerichtet ist; einen ersten, zweiten und dritten Zielknoten (14), wobei: der erste Zielknoten zur Kommunikation mit dem zweiten Zweigknoten (2) über einen dritten Netzwerklink eingerichtet ist, und der erste Zielknoten ferner zur Kommunikation mit dem ersten Zweigknoten über den zweiten Zweigknoten eingerichtet ist; der zweite Zielknoten zur Kommunikation mit dem ersten Zweigknoten über einen zweiten Netzwerklink eingerichtet ist, wobei der zweite Zielknoten das erste Paket (b) speichert; und der dritte Zielknoten (14) zur Kommunikation mit dem zweiten Zweigknoten über einen vierten Netzwerklink (4) eingerichtet ist, wobei sowohl der erste als auch der zweite Zweigknoten (2) eingerichtet sind, um mit Information versehen zu werden, die von dem Verteilungsknoten empfangen wird, die die Zielknoten (14) betrifft, die jedes der Softwarepakete (a, b, c, d, e) benötigen, und ferner eingerichtet ist, um mit Information darüber versehen zu werden, für welche der Zielknoten der Zweigknoten zum Weiterleiten der Information, die von dem Verteilungsknoten empfangen wurde, verantwortlich ist, und welchen der Netzwerklinks der Zweigknoten (2) verwenden muss, wodurch jeder der Zweigknoten bestimmen kann, welches Softwarepaket entlang jedes Netzwerklinks weiterzuleiten ist, und wobei der erste Zweigknoten (2) eingerichtet ist, um das Softwarepaket (a) über den ersten Netzwerklink zu übertragen, um das zweite und dritte Softwarepaket (d, e) automatisch in ein viertes Softwarepaket (c) zu verpacken und das vierte Softwarepaket (c) nur über den zweiten Netzwerklink zu übertragen, und wobei sowohl der erste als auch der zweite Zielknoten (14) das erste, zweite und das dritte Softwarepaket (b, d, e) speichern kann.
  2. System nach Anspruch 1, bei dem das Softwarepaket (a) als ein ununterbrochenes Paket über den ersten Netzwerklink (4) gesendet wird.
  3. System nach Anspruch 1, bei dem der erste Zweigknoten (2) eingerichtet ist, um mit Information darüber versorgt zu werden, welche Pakete (a, b, c, d) zu welchen Zielknoten (14) weitergeleitet werden sollen.
  4. System nach Anspruch 1, bei dem jeder Zweigknoten (2) eingerichtet ist, um mit weiterer Information versehen zu werden, die (i) Zielknoten (14) betrifft, für welche jeder Zweigknoten (2) zum Senden der Pakete (a, b, c, d) verantwortlich ist, und (ii) welches des ersten (c) und des zweiten (b) Pakets von den Zielknoten (14) benötigt wird, und wobei jeder Zweigknoten konfiguriert ist, um die weitere Information zu nachfolgenden Knoten entlang jedes Zweigs weiterzuleiten und die weitere Information für jeden Zweig zu editieren, so dass sie nur Zielknoten (14) enthält, die über diesen Zweig erreicht werden.
  5. System nach Anspruch 1, bei dem das erste Paket (c) mindestens zwei Unterpakete (f, g) aufweist, und wobei die Installation der zwei Unterpakete (f, g) auf jedem der Zielknoten (14) in einer spezifizierten Reihenfolge auszuführen ist; wobei eines der Unterpakete (f, g) bereits auf dem ersten Zielknoten installiert ist; und wobei das System Mittel zum Verteilen der zwei Unterpakete (f, g) zu dem ersten Zielknoten und keines der Unterpakete (f, g) zu dem zweiten Zielknoten aufweist.
  6. System nach Anspruch 1, bei dem jeder Zweigknoten (2) eingerichtet ist, um sowohl das erste als auch das zweite und dritte Paket (b, c, d) von dem Verteilungsknoten (1) unabhängig zu empfangen und jedes empfangene Pakete zu installieren.
  7. Verfahren zum Verteilen eines Softwarepakets (a), das mindestens ein erstes, zweites und ein drittes Paket (b, c, e) aufweist, wobei das Verfahren in einem System ausgeführt wird, das Folgendes aufweist: einen Verteilungsknoten (10) zum Übertragen von Softwarepaketen; einen ersten Zweigknoten (2), der zur Kommunikation mit dem Verteilungsknoten (10) eingerichtet ist, wobei der erste Zweigknoten (2) eingerichtet ist, um mindestens einen Abschnitt des Softwarepakets von dem Verteilungsknoten (10) zu empfangen; einen zweiten Zweigknoten (2), der zur Kommunikation mit dem ersten Zweigknoten (2) über einen ersten Netzwerklink eingerichtet ist; einen ersten, zweiten und dritten Zielknoten (14), wobei: der erste Zielknoten zur Kommunikation mit dem zweiten Zweigknoten (2) über einen dritten Netzwerklink eingerichtet ist, und wobei der erste Zielknoten ferner zur Kommunikation mit dem ersten Zweigknoten über den zweiten Zweigknoten eingerichtet ist; der zweite Zielknoten zur Kommunikation mit dem ersten Zweigknoten über einen zweiten Netzwerklink eingerichtet ist, wobei der zweite Zielknoten das erste Paket (b) speichert; und der dritte Zielknoten (14) zur Kommunikation mit dem zweiten Zweigknoten über einen vierten Netzwerklink (4) eingerichtet ist, wobei das erste Paket (b) bereits auf dem zweiten Zielknoten gegenwärtig ist und das Verfahren die folgenden Schritte aufweist: Versorgen sowohl des ersten als auch des zweiten Zweigknotens (2) mit Information, die von dem Verteilungsknoten empfangen wird und die die Zielknoten (14) betrifft, die jedes der Softwarepakete (a, b, c, d, e) benötigen, und ferner Versorgen mit Information darüber, für welche der Zielknoten der Zweigknoten zum Weiterleiten der Information, die von dem Verteilungsknoten empfangen wird, verantwortlich ist, und welchen der Netzwerklinks der Zweigknoten (2) verwenden soll; an jedem Zweigknoten Bestimmen, welche Softwarepakete entlang jedes Netzwerklinks weitergeleitet werden sollen; Neuverpacken des zweiten und des dritten Pakets (d, e) in ein viertes Softwarepaket (c); Senden des Softwarepakets (a) über den ersten Netzwerklink; Senden des vierten Pakets (c) nur über den zweiten Netzwerklink; und Senden des Softwarepakets (a) zu dem ersten und dritten Zielknoten; wobei das erste, das zweite und das dritte Paket (b, c, d) zu jedem des ersten, zweiten und dritten Zielknoten (14) verteilt werden.
  8. Verfahren nach Anspruch 7, das ferner das Senden des Softwarepakets (a) als ein ununterbrochenes Paket über den ersten Netzwerklink (4) aufweist.
  9. Verfahren nach Anspruch 7, das ferner das Versorgen des ersten Zweigknotens (2) mit Information darüber aufweist, welche Pakete (a, b, c, d) zu welchen Zielknoten (14) gesendet werden sollen.
  10. Verfahren nach Anspruch 7, das ferner Folgendes aufweist: Versorgung jedes der Zweigknoten (2) mit weiterer Information, die Zielknoten (14) betrifft (i), gegenüber welchen jeder Zweigknoten (2) zum Senden der Pakete (a, b, c, d) verantwortlich ist, und (ii) welches des ersten (c) und des zweiten (b) Pakets von den Zielknoten (14) benötigt wird; durch jeden Zweigknoten Weiterleiten der weiteren Information zu nachfolgenden Knoten entlang jedes Zweigs; und an jedem Zweigknoten Editieren der weiteren Information für jeden Zweig, so dass dieser nur Zweigknoten (14), die über diesen Zweig erreicht werden, enthält.
  11. Verfahren nach Anspruch 7, bei dem das erste Paket (c) mindestens zwei Unterpakete (f, g) aufweist, und wobei die Installation der zwei Unterpakete (f, g) auf jedem der Zielknoten (14) in einer spezifizierten Reihenfolge auszuführen ist, wobei eines der Unterpakete (f, g) bereits auf dem ersten Zielknoten installiert ist, und wobei das Verfahren ferner das Verteilen beider Unterpakete (f, g) zu den ersten Zielknoten und keines der Unterpakete (f, g) zu den zweiten Zielknoten aufweist.
  12. Computerlesbares Medium, das Anweisungen enthält, die, wenn sie von einem geeigneten Computer ausgeführt werden, den Computer veranlassen, ein Verfahren gemäß einem der Ansprüche 7 bis 11 auszuführen.
DE69938122T 1998-12-24 1999-12-20 Verfahren und System zur Softwareverteilung Expired - Lifetime DE69938122T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/220,724 US6938075B1 (en) 1998-12-24 1998-12-24 Method and apparatus for hierarchical software distribution packages including composite packages
US220724 1998-12-24

Publications (2)

Publication Number Publication Date
DE69938122D1 DE69938122D1 (de) 2008-03-27
DE69938122T2 true DE69938122T2 (de) 2009-02-12

Family

ID=22824689

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69938122T Expired - Lifetime DE69938122T2 (de) 1998-12-24 1999-12-20 Verfahren und System zur Softwareverteilung

Country Status (11)

Country Link
US (1) US6938075B1 (de)
EP (1) EP1014652B1 (de)
JP (1) JP2000207220A (de)
KR (1) KR20000052565A (de)
CN (1) CN1191525C (de)
AT (1) ATE386396T1 (de)
AU (1) AU779536B2 (de)
BR (1) BR9905969A (de)
CA (1) CA2292145A1 (de)
DE (1) DE69938122T2 (de)
IL (1) IL133564A0 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO314867B1 (no) * 2001-03-13 2003-06-02 Ericsson Telefon Ab L M Fremgangsmåte for å optimalisere programvaredistribusjon i store kommunikasjonsnett
CA2349654A1 (en) * 2001-06-04 2002-12-04 Ibm Canada Limited-Ibm Canada Limitee Server configuration versioning tool
JP3729265B2 (ja) * 2002-08-22 2005-12-21 日本電気株式会社 ネットワークシステム、スパニングツリー構成方法、スパニングツリー構成ノード、及びスパニングツリー構成プログラム
US7853609B2 (en) 2004-03-12 2010-12-14 Microsoft Corporation Update distribution system architecture and method for distributing software
DE102004047367A1 (de) * 2004-09-29 2006-03-30 Siemens Ag Verfahren zum Verteilen von Software und Konfigurationsdaten mit Zeitüberwachung sowie entsprechendes Datennetz
US7770168B1 (en) * 2005-05-25 2010-08-03 Landesk Software Limited Systems and methods for distributing software using nodes within a network group
JP4904746B2 (ja) * 2005-09-08 2012-03-28 富士通株式会社 チェックプログラムおよびチェック方法
CN100407650C (zh) * 2005-11-10 2008-07-30 中国工商银行股份有限公司 分布式业务系统中的软件版本升级系统及其方法
DE102008024809B3 (de) * 2008-05-23 2009-11-19 Universität Konstanz Verfahren zur Speicherung einer Mehrzahl von Revisionen von baumstrukturartig verknüpften Datenfamilienteilen
CN103513998B (zh) * 2012-06-25 2018-05-04 中兴通讯股份有限公司 升级包生成方法和装置、动态文件差分升级的方法和终端
US8924950B2 (en) * 2012-12-17 2014-12-30 Itron, Inc. Utility node software/firmware update through a multi-type package
US8938730B2 (en) * 2012-12-17 2015-01-20 Itron, Inc. Utilizing a multi-system set configuration to update a utility node system set
CN103354505B (zh) * 2013-06-28 2016-08-10 国家电网公司 一种电子装置群软件批量升级方法
US9965262B2 (en) * 2015-05-21 2018-05-08 International Business Machines Corporation Application bundle pulling
US10152516B2 (en) 2015-05-21 2018-12-11 International Business Machines Corporation Managing staleness latency among application bundles
US10389794B2 (en) 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles
US10389850B2 (en) 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles
US9888057B2 (en) 2015-05-21 2018-02-06 International Business Machines Corporation Application bundle management across mixed file system types
US10530660B2 (en) * 2015-05-21 2020-01-07 International Business Machines Corporation Application bundle preloading
US10541876B2 (en) * 2017-02-14 2020-01-21 Nicira, Inc. Inter-connecting logical control planes for state data exchange
US11165886B2 (en) * 2020-01-03 2021-11-02 Bank Of America Corporation Multi-distribution resource allocation system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905233A (en) * 1987-11-23 1990-02-27 Harris Corporation Multiple path routing mechanism for packet communications network
US5095480A (en) * 1989-06-16 1992-03-10 Fenner Peter R Message routing system for shared communication media networks
US5495610A (en) * 1989-11-30 1996-02-27 Seer Technologies, Inc. Software distribution system to build and distribute a software release
SE513182C2 (sv) 1991-06-12 2000-07-24 Icl Systems Ab Förfarande och system för att revidera data i ett distribuerat datasystem
US6134324A (en) * 1991-07-31 2000-10-17 Lsi Logic Corporation Method and system for distributing a plurality of software products, and limiting access thereto
US5319705A (en) 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
WO1994025913A2 (en) 1993-04-30 1994-11-10 Novadigm, Inc. Method and apparatus for enterprise desktop management
US5680548A (en) 1994-12-02 1997-10-21 Xcellenet, Inc. Systems and methods for work assignment and distribution from a server to remote/mobile nodes
US5706431A (en) * 1995-12-29 1998-01-06 At&T System and method for distributively propagating revisions through a communications network
JPH10171814A (ja) 1996-12-12 1998-06-26 Digital Vision Lab:Kk 情報検索装置
US6279005B1 (en) 1997-03-04 2001-08-21 Paul Zellweger Method and apparatus for generating paths in an open hierarchical data structure
US6029004A (en) 1997-03-17 2000-02-22 International Business Machines Corporation Method and apparatus for modular reordering of portions of a computer program based on profile data
US5953724A (en) 1997-11-24 1999-09-14 Lowry Software, Incorporated Global database library data structure for hierarchical graphical listing computer software
US6185734B1 (en) 1998-07-21 2001-02-06 Hewlett-Packard Company Hierarchical registry structure for managing multiple versions of software components
US6108698A (en) 1998-07-29 2000-08-22 Xerox Corporation Node-link data defining a graph and a tree within the graph
US6381743B1 (en) 1999-03-31 2002-04-30 Unisys Corp. Method and system for generating a hierarchial document type definition for data interchange among software tools

Also Published As

Publication number Publication date
ATE386396T1 (de) 2008-03-15
DE69938122D1 (de) 2008-03-27
CN1264077A (zh) 2000-08-23
IL133564A0 (en) 2001-04-30
JP2000207220A (ja) 2000-07-28
CA2292145A1 (en) 2000-06-24
AU779536B2 (en) 2005-01-27
CN1191525C (zh) 2005-03-02
KR20000052565A (ko) 2000-08-25
AU6547599A (en) 2000-06-29
EP1014652A3 (de) 2002-05-08
EP1014652A2 (de) 2000-06-28
US6938075B1 (en) 2005-08-30
BR9905969A (pt) 2000-09-05
EP1014652B1 (de) 2008-02-13

Similar Documents

Publication Publication Date Title
DE69938122T2 (de) Verfahren und System zur Softwareverteilung
DE69723612T2 (de) Datenbanknetzwerk
DE69727438T2 (de) Zwischenspeicher-Protokoll für verbesserte Webleistung
DE69730056T2 (de) Routen von duplikaten
DE69624579T2 (de) System und verfahren für eine verteilte objektverwaltungsumgebung an mehreren orten
DE69203454T2 (de) Verfahren und system zur daten-überprüfung in einem verteilten daten-übertragungssystem.
DE60318651T2 (de) Verfahren und Vorrichtung zur dynamischen Konfigurationsverwaltung
DE69327576T2 (de) Paralleles Rechnersystem
DE69902804T2 (de) Anwendungsunabhängiges nachrichtensystem
DE69832002T2 (de) Übertragungssystem und Übertragungsverfahren,Empfangssystem und Empfangsverfahren
DE60008102T2 (de) Verfahren und vorrichtung zur mehrfachsendung
DE68927508T2 (de) Zeitweilige Zustandsbewahrung für einen verteilten Dateidienst
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE68926567T2 (de) Nachrichten- und Bildschirmübertragung für Rechner in einem mehrsprachigen Netzwerk
DE69735426T2 (de) Nachrichtenübertragung in netzwerken bestehend aus unternetzwerken mit verschiedenen namensraümen
DE69215976T2 (de) Verfahren und Gerät für Netzrechnersystemgruppenverwaltung
DE60204031T2 (de) Hierarchische cachespeicherung in telekommunikationsnetzen
DE60220418T2 (de) Verfahren und Anbieter zur Systemsynchronisation
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE19810807A1 (de) Gerät und Verfahren zum Umsetzen von Meldungen
DE602004005242T2 (de) Zentralisierte konfiguration von verwalteten objekten des link-scope-typs in netzwerken, die auf dem internet-protokoll (ip) basieren
DE10297998B4 (de) Erstellen verteilter Proxy-Konfigurationen
DE19518266A1 (de) Kommunikationssystem mit Mitteln zum Austausch von Software
DE69327017T2 (de) Verfahren und Vorrichtung zur Bildung und Steuerung eines Mehrempfängerübertragungsbaums
DE10024715A1 (de) Verfahren und Vorrichtung zum Einrichten einer Zwei-Wege-Übertragung mit einem fernen Drucker

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: ABBOTT, AARON, ISLANDIA, NEW YORK 11788-7000, US

Inventor name: SCHUMACHER, DALE, ISLANDIA, NEW YORK 11788-700, US

Inventor name: PETERSON, BRETT, ISLANDIA, NEW YORK 11788-7000, US

8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1014652

Country of ref document: EP

Representative=s name: FELIX RUMMLER, DE

R081 Change of applicant/patentee

Ref document number: 1014652

Country of ref document: EP

Owner name: GOOGLE INC., US

Free format text: FORMER OWNER: COMPUTER ASSOCIATES THINK, INC., ISLANDIA, US

Effective date: 20120829

R082 Change of representative

Ref document number: 1014652

Country of ref document: EP

Representative=s name: FELIX RUMMLER, DE

Effective date: 20120829