DE69709959T2 - Verwendung von polymorphischen dateipaketen zur aktualisierung von softwarekomponenten - Google Patents

Verwendung von polymorphischen dateipaketen zur aktualisierung von softwarekomponenten Download PDF

Info

Publication number
DE69709959T2
DE69709959T2 DE69709959T DE69709959T DE69709959T2 DE 69709959 T2 DE69709959 T2 DE 69709959T2 DE 69709959 T DE69709959 T DE 69709959T DE 69709959 T DE69709959 T DE 69709959T DE 69709959 T2 DE69709959 T2 DE 69709959T2
Authority
DE
Germany
Prior art keywords
polymorphic
computer
client
server
program
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
DE69709959T
Other languages
English (en)
Other versions
DE69709959D1 (de
Inventor
Scott Richard SADOWSKY
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.)
NortonLifeLock Inc
Original Assignee
Symantec Corp
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 Symantec Corp filed Critical Symantec Corp
Publication of DE69709959D1 publication Critical patent/DE69709959D1/de
Application granted granted Critical
Publication of DE69709959T2 publication Critical patent/DE69709959T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Description

  • Die vorliegende Erfindung betrifft das Aktualisieren von Softwarekomponenten eines Client-Computers von einem passiven Host-Server-Computer und insbesondere das Aktualisieren von Softwarekomponenten unter Verwendung von polymorphen Datenpaketen.
  • In der Regel aktualisiert ein Nutzer die auf seinem Client-Computer ausgeführte Software auf verschiedene Arten. Zum einen kann der Nutzer neue Disketten oder CD-ROMs von einem Softwarehändler kaufen und die neue Software von der Diskette in den Client-Computer laden. Das Besorgen der Disketten ist zeitaufwendig und häufig mit Kosten verbunden. Außerdem kann der Nutzer Schwierigkeiten beim Herunterladen der Daten von der Diskette haben. Oft erfährt der Nutzer auch von der Aktualisierung vom technischen Kundendienst des Herstellers, wenn er wegen eines Problems oder einer Frage dort anruft. Dieser Anruf kostet den Hersteller Geld, auch wenn die Antwort eine Standard-Antwort ist oder schnell geht.
  • Der Nutzer kann die aktualisierte Software auch durch den Zugriff auf einem räumlich entfernten Host-Computer und das Herunterladen der entsprechenden Dateien vom Host erhalten. Der Host kann sich zum Beispiel bei einem Bulletin-Board-Service (BBS), im Internet, bei einem Internet-Provider wie CompuServe oder einem anderen elektronischen Forum befinden. Um die Software herunterzuladen, konfiguriert der Nutzer seine Kommunikationssoftware für die Verbindung mit dem Host, loggt sich beim Host ein, sucht die entsprechende Datei-Bibliothek auf und leitet die Übertragung der gewünschten Dateien ein. Dann loggt sich der Nutzer meist aus und vervollständigt die Installation. Zuerst muß dazu der Computer des Nutzers meist die übertragenen Dateien dekomprimieren. Dann folgt der Nutzer den vom Host gegebenen Installationsanweisungen. Dieser Prozeß zum Aktualisieren von Software kann für einen unerfahrenen Nutzer zu kompliziert sein und ist auch für erfahrene Experten oft schwierig auszuführen.
  • Manche Software weist einen vereinfachten Aktualisierungsprozeß auf, wobei der Nutzer einen Software-Knopf vorfindet, den er anklickt, um den Aktualisierungsprozeß einzuleiten. Die Software verbindet dann den Nutzer mit einem vorgegebenen Host und übernimmt die Aktualisierung. Die Software läßt dabei den Nutzer über die Details, wie und von wo die aktualisierte Software erhalten wird, im unklaren. Ein solches Softwarepaket ist Cyberjack, das von der Delrina Group (ein Teil von Symantec) in Toronto, Ontario, Kanada hergestellt wird.
  • Ein Softwareprogramm kann sich auch automatisch selbst aktualisieren. Das Softwareprogramm steht dazu mittels eines Übertragungssteuerprotokoll- oder Internetprotokolldienstes (TCP/IP) mit einem Host in Verbindung und überprüft das Programm selbsttätig auf neue Versionen. Wenn es eine neue Version gibt, veranlaßt die Software eine Anfrage an den Nutzer, ob das aktualisierte Programm geladen werden soll. Eine solche Software ist darauf beschränkt, selbsttätig Aktualisierungen von einem Host abzurufen, der vom Softwarehersteller betrieben wird. Ein solches Softwarepaket ist PointCast-Network Beta von PointCast Inc.
  • Aus dem IBM Technical Disclosure Bulletin, Bd. 33 Nr. 5, Oktober 1990, Seiten 169–171, XP000107424, ”Local Area Network Program Distribution Facility” ist bekannt, daß ein Verteiler für ein lokales Netzwerk die Verteilung von Softwarepaketen an Workstations einleitet und steuert, die über ein lokales Netzwerk mit dem Server verbunden sind, wodurch es möglich ist, die Codelevel jeder Workstation zentral zu verfolgen und die Nutzer in die Lager zu versetzen, aktualisierte Programme auszuwählen.
  • Es besteht der Wunsch nach einem Verfahren zum Aktualisieren von Software, das nicht auf die Art der Software beschränkt ist und wobei die Aktualisierung von einer von vielen Quellen erhalten werden kann. Es besteht auch der Wunsch nach einem Verfahren zum Aktualisieren von Software, die bisher noch gar nicht existiert.
  • Die Aspekte der vorliegenden Erfindung sind in den anhängenden Patentansprüchen genannt.
  • Eine Ausführungsform umfaßt ein Verfahren zum Aufnehmen eines Computerprogramms von einem räumlich entfernten Server-Computer für einen Client-Computer. Der Client gibt an den Server ein bestimmtes Anforderungssignal ab. Der Server gibt daraufhin an den Client ein Masterobjekt ab. Das Masterobjekt umfaßt eine Anzahl von polymorphen Deskriptoren für wenigstens ein Computerprogramm und weist eine vorgegebene Struktur auf. Nach einer Auswahl bezeichnet der Client gegenüber dem Server einen der polymorphen Deskriptoren. Der Server übermittelt dann das Computerprogramm, das dem bezeichneten polymorphen Deskriptor entspricht, an den Client.
  • Ein anderer der polymorphen Deskriptoren umfaßt Anweisungen für den Client zum Übernehmen des bereitgestellten Computerprogramms und weist ein vorgegebenes Format auf, das unabhängig von der Art des Clients ist. Dieser polymorphe Deskriptor wird analysiert, um die Anweisungen festzulegen, die der Client zum Übernehmen des bereitgestellten Computerprogramms auszuführen hat. Der polymorphe Deskriptor kann ein Textfeld sein.
  • Ein Kommunikationssystem umfaßt einen Serverspeicher, einen Server und einen Client. Der Serverspeicher enthält ein Masterobjekt und eine Anzahl von Computerprogrammen. Das Masterobjekt umfaßt eine Anzahl von polymorphen Deskriptoren der Anzahl von Computerprogrammen und weist eine vorgegebene Struktur auf.
  • Der Server liest das Masterobjekt aus dem Serverspeicher aus und gibt es in Reaktion auf ein vorgegebenes Anforderungssignal vom Client an den Client ab. Der Client gibt nach einer Auswahl an den Server eine Programmanforderung ab, die einen der polymorphen Deskriptoren bezeichnet. In Reaktion auf die Programmanforderung stellt der Server das Computerprogramm bereit, das dem angegebenen polymorphen Deskriptor entspricht.
  • Das Kommunikationssystem umfaßt des weiteren einen Clientspeicher. Ein anderer der polymorphen Deskriptoren enthält Anweisungen zum Übernehmen des bereitgestellten Computerprogramms in den Clientspeicher. Dieser polymorphe Deskriptor weist ein vorgegebenes Format auf, das von der Art des Clients unabhängig ist. Der Client untersucht diesen polymorphen Deskriptor, um die Anweisungen zu bestimmen, und führt die Anweisungen aus, um das bereitgestellte Computerprogramm in den Clientspeicher zu übernehmen. Der polymorphe Deskriptor kann ein Textfeld sein.
  • Ein Verfahren umfaßt das Bereitstellen eines Computerprogramms von einem räumlich entfernten Server für einen Client. Der Server gibt in Reaktion auf ein vorgegebenes Anforderungssignal an den Client ein Masterobjekt ab. Das Masterobjekt umfaßt eine Anzahl von polymorphen Deskriptoren für wenigstens ein Computerprogramm und weist eine vorgegebene Struktur auf. Der Server gibt daraufhin das Computerprogramm ab, das einem ausgewählten polymorphen Deskriptor entspricht, der entsprechend einer Programmanforderung vom Client, die den ausgewählten polymorphen Deskriptor bezeichnet, festgelegt wurde. Einer der polymorphen Deskriptoren umfaßt Anweisungen für den Client zum Übernehmen des bereitgestellten Computerprogramms und weist ein vorgegebenes Format auf, das unabhängig von der Art des Clients ist.
  • Ein Host umfaßt einen Serverspeicher und einen Server. Der Serverspeicher enthält eine Anzahl von Computerprogrammen und ein Masterobjekt mit einer Anzahl von polymorphen Deskriptoren für die Anzahl von Computerprogrammen, das eine vorgegebene Struktur aufweist. Der Server liest das Masterobjekt aus dem Serverspeicher aus und gibt es in Reaktion auf ein vorgegebenes Anforderungssignal an den Client aus und stellt das Computerprogramm bereit, das dem einen der polymorphen Deskriptoren entspricht, der von der Programmanforderung bezeichnet wird, die einen der polymorphen Deskriptoren auswählt. Ein anderer der polymorphen Deskriptoren umfaßt Anweisungen zum Über nehmen des bereitgestellten Computerprogramms durch den Client, er weist ein vorgegebenes Format auf, das von der Art des Client unabhängig ist. Dieser polymorphe Deskriptor kann ein Textfeld sein.
  • Bei einem Verfahren wird von einem Client aus einem räumlich entfernten Server ein Computerprogramm geladen. Der Client gibt dazu ein vorgegebenes Anforderungssignal an den Server. Der Client erhält daraufhin vom Server ein Masterobjekt. Das Masterobjekt umfaßt eine Anzahl von polymorphen Deskriptoren für wenigstens ein Computerprogramm und weist eine vorgegebene Struktur auf. Der Client gibt dann nach einer Auswahl an den Server eine Programmanforderung ab, die einen der polymorphen Deskriptoren bezeichnet, und nimmt das Computerprogramm vom Server auf, das dem bezeichneten polymorphen Deskriptor entspricht. Ein anderer der polymorphen Deskriptoren umfaßt Anweisungen für den Client zum Übernehmen des erhaltenen Computerprogramms, er weist ein vorgegebenes Format auf, das von der Art des Clients unabhängig ist. Der Client analysiert diesen polymorphen Deskriptor zur Bestimmung der Anweisungen und führt die Anweisungen aus, um das erhaltene Computerprogramm zu übernehmen. Dieser polymorphe Deskriptor kann ein Textfeld sein.
  • Eine Vorrichtung nimmt von einem räumlich entfernten Server ein Computerprogramm und ein Masterobjekt auf. Das Masterobjekt umfaßt eine Anzahl von polymorphen Deskriptoren für eine Anzahl von Computerprogrammen und weist eine vorgegebene Struktur auf. Die Vorrichtung umfaßt einen Client und einen Clientspeicher. Der Clientspeicher speichert das Masterobjekt und ein Programm, das vom Client ausgeführt werden kann. Das Programm erzeugt ein vorgegebenes Anforderungssignal zum Absenden an den entfernten Server zum Anfordern des Masterobjekts. Das Programm übernimmt das vom Server erhaltene Masterobjekt in den Clientspeicher. Das Programm erstellt eine Programmanforderung an den Server, die in Abhängigkeit von einem Auswahlsignal einen der polymorphen Deskriptoren bezeichnet. Das Programm führt ein Computerprogramm aus, das dem bezeichneten polymorphen Deskriptor entspricht, der vom Server erhalten wurde.
  • Das Programm bestimmt die Anweisungen zum Übernehmen des Computerprogramms anhand eines anderen der polymorphen Deskriptoren. Dieser polymorphe Deskriptor weist ein vorgegebenes Format auf, das von der Art des Clients unabhängig ist. Das Programm analysiert diesen polymorphen Deskriptor zur Bestimmung der Anweisungen und führt die Anweisungen aus, um das bereitgestellte Computerprogramm in den Clientspeicher zu übernehmen. Dieser polymorphe Deskriptor kann ein Textfeld sein.
  • Kurzbeschreibung der Zeichnungen
  • Diese und andere Objekte und Merkmale der vorliegenden Erfindung werden genauer mit Bezug zu den beiliegenden Zeichnungen in der folgenden Beschreibung erläutert. Es zeigen:
  • 1 die Blockdarstellung eines Kommunikationssystems 100 gemäß der vorliegenden Erfindung.
  • 2 eine Darstellung des Serverspeichers 106 und des Clientspeichers 108 in dem Kommunikationssystem 100 der 1.
  • 3 eine Darstellung eines Masterobjekts 200 in dem Serverspeicher 106 des Kommunikationssystems 100 der 1.
  • 4 ein Flußdiagramm für die Vorgänge bei der Aufnahme des Masterobjekts 200 aus dem Serverspeicher 106.
  • 5 ein Flußdiagramm für die Übernahme des Masterobjekts 200.
  • 6 ein Flußdiagramm für die Aufnahme und das Übernehmen von ausgewählten Datenpaketen 204 aus dem Serverspeicher 106.
  • Genaue Beschreibung der bevorzugten Ausführungsformen
  • In der 1 ist eine Blockdarstellung eines Kommunikationssystems 100 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Das Kommunikationssystem 100 umfaßt eine Anzahl von Server-Computern 102-1 und 102-2, eine Anzahl von Client-Computern 104-1 und 104-2, eine Anzahl von Serverspeichern 106-1 und 106-2, eine Anzahl von Clientspeichern 108-1 und 108-2 und einen Übertragungskanal 110. Der Klarheit wegen sind nur zwei Server 102, zwei Clients 104, zwei Speicher 106 und zwei Speicher 108 dargestellt. Die Server 102 und die Clients 104 sind jeweils mit dem Übertragungskanal 110 verbunden. Die Serverspeicher 106-1 und 106-2 sind jeweils mit dem Server 102-1 bzw. 102-2 verbunden. Die Clientspeicher 108-1 und 108-2 sind jeweils mit dem Client 104-1 bzw. 104-2 verbunden. Die Server 102-1 und 102-2 brauchen nicht identisch zu sein. Auch die Clients 104-1 und 104-2 brauchen nicht identisch zu sein. Wie später noch beschrieben wird, weist ein polymorphes Masterobjekt 200 (siehe 2) eine Struktur auf, die den Servern 102 und den Clients 104 bekannt ist. Der Polymorphismus ergibt eine vorgegebene Struktur, die aktuelle Implementierung des Objekts wird jedoch erst zum Zeitpunkt der Ausführung festgelegt. Durch Übertragen des polymorphen Masterobjekts 200 können die Server 102 Software an die Clients 104 abgeben, ohne daß die Server 102 und die Clients 104 Informationen über die gegenseitige Struktur besitzen. Eine solche Verwendung des polymorphen Masterobjekts 200 ist die Aktualisierung von Soft ware, die von einem Client 104 ausgeführt wird. Das polymorphe Masterobjekt 200 ermöglicht es dem Client 104, mit jedem der Server 102 in Verbindung zu treten, ohne Kenntnis von der tatsächlichen Implementierung der Software-Datenpakete im Server zu haben. Der Client 104 nutzt das Masterobjekt 200 dazu, zu erfahren, welche Datenpakete zur Verfügung stehen, eine Auswahl an den Server 102 zu übermitteln und das ausgewählte Datenpaket nach Erhalt auszuführen.
  • Beim Aktualisieren von Software arbeitet der Server 102 als passiver Host-Server. Der Server 102 kann zum Beispiel ein CompuServe(TM)-Host, eine herkömmliche Webseite oder ein Novell-Dateiserver sein. Die Server 102 und die Clients 104 können jeweils zum Beispiel ein Computer mit einem Pentium(TM)-Prozessor sein, der von der Intel Corporation in Santa Clara, Kalifornien hergestellt wird und der das Windows-95-Betriebssystem ausführt, das von der Microsoft Corporation in Redmond, Washington produziert wird. Wie erwähnt sind die Server 102 und die Clients 104 nicht notwendigerweise identisch. Der Server 102 kann zum Beispiel ein auf dem SPARC20 basierender Computer sein, der das UNIX-Betriebssystem ausführt, und der Client 104 kann der auf dem Pentium(TM) basierende Computer sein, der oben erwähnt wurde.
  • Der Übertragungskanal 110 kann zum Beispiel das Internet sein. Die Server 102 und die Clients 104 führen jeweils die Programme aus, die im Serverspeicher 106 bzw. im Clientspeicher 108 gespeichert sind, wie es später noch beschrieben wird.
  • Wegen der Klarheit und der Einfachheit wird die Arbeitsweise des Kommunikationssystems 100 für einen einzigen Server 102 und einen einzigen Client 104 beschrieben. Selbstverständlich kann die Kommunikation auch zwischen vielen Servern 102 und Clients 104 erfolgen.
  • Die 2 zeigt eine Darstellung des Serverspeichers 106 und des Clientspeichers 108 des Kommunikationssystems 100. Der Serverspeicher 106 und der Clientspeicher 108 sind computerlesbare Speichermedien, etwa Plattenlaufwerke oder Programmspeicher. Der Serverspeicher 106 enthält ein Masterobjekt 200, eine Protokolldatei 202 und eine Anzahl von Software-Datenpaketen 204.
  • Das Masterobjekt 200 ist ein dauerhaftes Objekt, das eine Datendarstellung von Objekten umfaßt. Insbesondere umfaßt das Masterobjekt 200 eine Liste von Software-Datenpaketen 204, die für die Ausführung durch den Client 104 zur Verfügung stehen. Das Masterobjekt 200 ermöglicht es dem Client 104, neue Arten von Softwarepaketen und Aktionsgegenständen kennenzulernen, die im Server 102 gespeichert sind und die einem definierten Anwendungsprogramminterface (API) entsprechen, das virtuelle Funktionen umfaßt. Das Masterobjekt 200 weist eine Anzahl von Feldern auf, die später in Verbindung mit der 3 beschrieben werden. Einige dieser Felder sind polymorph. Die Struktur des Masterobjekts 200 ist unabhängig von der Art des Clients 104 und des Servers 102, etwa dem Prozessor oder dem Betriebssystem. Die Struktur des Masterobjekts 200 ist auch unabhängig von der Art der Datenpakete 204. Dadurch kann das Masterobjekt 200 unabhängig von der Art der Software oder der Daten Informationen über die Software oder die Daten an den Client liefern, die zur Aktualisierung zur Verfügung stehen. Wenn neue, jetzt noch unbekannte Softwareprogramme entwickelt werden, kann das Masterobjekt 200 auch solche Software darstellen und an den Client 104 genügend Informationen geben, um eine solche Software vom Server 102 zum Client 104 zu übermitteln oder zu aktualisieren.
  • Die Protokolldatei 202 enthält die Protokollinformationen für die Kommunikation auf dem Übertragungskanal 110. Die Protokolldatei 202 enthält vorzugsweise Protokollinformationen über ein Anzahl von Protokollen.
  • Die Anzahl von Datenpaketen 204 sind die Softwaredateien, die vom Client 104 übernommen werden können. Die Datenpakete 204 können polymorph sein. Unter Verwendung der Protokollinformationen kann der Server 102 auf dem Übertragungskanal 110 unter verschiedenen Protokollen kommunizieren. Das Masterobjekt 200 enthält die Informationen über diese Datenpakete 204, damit der Client 104 oder ein Nutzer ein Datenpaket 204 zur Übernahme auswählen kann und damit der Client 104 ein ausgewähltes Datenpaket 204 laden kann.
  • Der Clientspeicher 108 umfaßt ein Masterobjekt 206, ein Programm 208, ein Nutzermodusprogramm 210, ein Automodusprogramm 212, ausgewählte Datenpakete 214 und ein Ausführungsprogrammpaket 216. Das Masterobjekt 206 ist das Masterobjekt 200 vom Serverspeicher 106, das in den Clientspeicher 108 übernommen wurde. Das Programm 208 ermöglicht es dem Nutzer, auf einem Bildschirm (nicht gezeigt) durch Drücken eines virtuellen Knopfes ein Programm auszuwählen und das ausgewählte Programm vom Server 102 zu übernehmen. Alternativ wählt das Programm automatisch ein Programm zur Übernahme aus. Insbesondere ist das Nutzermodusprogramm 210 ein Programm, das es dem Nutzer ermöglicht, im Nutzermodus aus dem Masterobjekt 206 Datenpakete 204 auszuwählen. Das Programm 208 liest die ausgewählten Datenpakete 204 aus dem Serverspeicher 106 aus. Das Automodusprogramm 212 wählt im automatischen Modus automatisch Datenpakete 204 aus dem Masterobjekt 206 gemäß vorgegebenen Auswahlkriterien aus, etwa dem Alter des Datenpakets 204. Das Programm 208 schickt eine Programmanforderung an den Server 102, die die ausgewählte Datei bezeichnet, woraufhin der Server 102 das ausgewählte Datenpaket 204 an den Client 104 übermittelt. Das Format der Pro grammanforderung ist vorgegeben. Sowohl der Client 104 als auch der Server 102 kennen das Format der Programmanforderung.
  • Das ausgewählte Datenpaket 214 enthält die Datenpakete 204 aus dem Server 102, die entweder im Nutzermodus vom Nutzer ausgewählt wurden oder die im Automodus vom Client ausgewählt wurden. Das Ausführungsprogrammpaket 216 führt das ausgewählte Paket aus oder installiert es. Manche ausgewählten Pakete werden nicht zum späteren Gebrauch auf der Festplatte installiert. Solche Programme werden während der gegenwärtigen Nutzeranwendung ausgeführt und beim Abschalten des Clients 104 nicht gesichert.
  • Die 3 zeigt das Masterobjekt 200 eines Servers 102 im Kommunikationssystem 100. Das Masterobjekt 200 umfaßt ein Masterobjekt 300 und eine Host-Datenbank 302. Das Masterobjekt 300 enthält die Objektbeschreibungen der Datenpakete 204 für die zur Verfügung stehende Software, Objektbeschreibungen über die Art der Datenpakete und Objektbeschreibungen über die Art der Aktionsgegenstände.
  • Die Host-Datenbank 302 enthält eine Liste der Hosts, die aufgerufen werden können. Die Liste umfaßt jeweils den Namen des Hosts, die Art des Hosts und die Verbindungs-Zeichenfolge, etwa die Telephonnummer oder die Adresse. Die in der Host-Datenbank 302 aufgelisteten Dateien sind Dateien, die im Vergleich zu den Dateien im Masterobjekt 300 nur selten geändert werden. Natürlich kann die Host-Datenbank 302 im Masterobjekt 200 weggelassen werden und die Dateien in der Host-Datenbank 302 im Masterobjekt 300 aufgelistet werden.
  • Das Masterobjekt 300 enthält eine Anzahl von Datenpaketen 303-0 bis 303-N – 1, ein Pakettypobjekt 304 und ein Paketaktionsobjekt 306. Wegen der Klarheit sind nur zwei Datenpakete 303 gezeigt. Das Masterobjekt 300 kann eine Textdatei sein. Nach dem Lesen des Masterobjekts 300 untersucht der Client 104 das Masterobjekt 300 und baut das Masterobjekt 206 in den Clientspeicher 108 ein.
  • Jedes Datenpaket 303 enthält ein Produktnamenfeld 308, ein Gegenstandnamenfeld 310, ein Typfeld 312, ein Detailfeld 314, ein Aktionsgegenstandfeld 316, ein Dateinamenfeld 318, ein Aktionsdatenfeld 320, ein Größenfeld 322, ein Folgenummerfeld 324, ein Produktcodefeld 326 und ein Sequenzfeld 328.
  • Das Produktnamenfeld 308 gibt den Gruppen-Produktnamen der Datei an, der der Name einer Gruppe von Programmen ist. Der Produktname kann zum Beispiel NORTON Antivirus sein. Das Gegenstandnamenfeld 310 enthält den Namen eines bestimmten Software-Datenpakets 204. Die Datei 204 ist die Datei, die das Programm 208 zur Nutzung durch den Client 104 anfordert. Das Gegenstandnamenfeld 310 gibt den Namen an, der im Nutzermodus für die Nutzerauswahl dem Nutzer angezeigt wird.
  • Das Typfeld 312 gibt die Art der Datei an, etwa Software, Daten, Aktualisierung oder dergleichen. Das Typfeld 312 enthält Text und wird dazu verwendet, die Datei mit anderen, ähnlichen Dateien abzustimmen. Das Detailfeld 314 enthält Text mit weiteren Informationen über die Datei. Der Text wird im Nutzermodus angezeigt, wenn es der Nutzer anfordert. Das Aktionsgegenstandfeld 316 zeigt auf den Aktionsgegenstand, der auszuführen ist, was der Ausführung einer Distributed-Install-Script-Datei (DIS-Datei) entspricht. Das Aktionsgegenstandfeld 316 kann eine Textdatei sein. Die DIS-Datei enthält Informationen, die vom Programm 208 bei der Übernahme des Datenpaketes 304 vom Server 102 verwendet werden können. Der Aktionsgegenstand ist ein Satz von Anweisungen, die das Programm 208 ausführt. Jeder Aktionsgegenstand des Aktionsgegenstandfeldes 316 ist im Paketaktionsobjekt 306 definiert, wie es weiter unten noch beschrieben wird.
  • Das Dateinamenfeld 318 gibt den Namen der Datei im Serverspeicher 106 an, die in den Client 104 herunterzuladen ist. Das Aktionsdatenfeld 320 ist ein freies, nutzerdefiniertes Feld, das hinsichtlich zukünftiger, gegenwärtig noch unbekannter Softwarepakete eine gewisse Flexibilität ermöglicht. Das Größenfeld 322 gibt die Größe des Pakets an. Das Programm 208 verwendet diesen Wert zum Abschätzen der Zeit für das Herunterladen des Pakets. Das Folgenummerfeld 324 ist eine eindeutige Nummer für das Softwarepaket, die es von anderen Versionen der Software unterscheidet. Die Folgenummer kann zum Beispiel das Datum der Aktualisierung des Softwareprogramms sein. Alternativ kann anstelle der Folgenummer auch eine Versionsnummer verwendet werden.
  • Das Produktcodefeld 326 enthält spezielle Flags für bestimmte Softwareprodukte. Das Produktcodefeld 326 ist Teil des Polymorphismus des Masterobjekts 300. Das Produktcodefeld 326 ist ein freies Feld, das hinsichtlich zukünftiger, gegenwärtig noch unbekannter Softwarepakete eine gewisse Flexibilität ermöglicht. Das Sequenzfeld 328 ist ein Platzhalterobjekt zum Einkapseln. Ein Beispiel für eine Einkapselfunktion ist die Vergleichsfunktion.
  • Das Masterobjekt 300 kann auch ein Feld enthalten, das die Sprache des Programms anzeigt, etwa Englisch.
  • Das Masterobjekt 300 enthält für jede Art von Datei im Masterobjekt 300 ein Pakettypfeld 304, wie es vom Typfeld 312 des Datenpakets 303 angezeigt wird. Wegen der Klarheit ist nur ein Pakettypfeld 304 dargestellt. Das Pakettypfeld 304 enthält ein Typfeld 330, ein Abschnittfeld 332 und ein Typdetailfeld 334. Das Typfeld 330 gibt den Damen der Datei an. Das Typfeld 330 entspricht den Typfeldern 312 im Datenpaket 303. Das Ab schnittfeld 332 zeigt den Abschnitt der Datei an. Das Typdetailfeld 334 enthält Details über den Dateityp zur Anzeige für den Nutzer im Nutzermodus 210.
  • Das Masterobjekt 300 enthält ein Paketaktionsobjekt 306 für jeden Aktionsgegenstand des Aktionsgegenstandfeldes 316. Wegen der Klarheit ist nur ein Paketaktionsobjekt 306 dargestellt. Das Paketaktionsobjekt 306 enthält eine Distributed-Install-Script-Lauf-Funktion (DIS-Lauf-Funktion) 336, die bewirkt, daß das Programm 208 die Übernahme des ausgewählten Datenpakets 214 startet. Das DIS-Lauf-Feld 336 ist polymorph. Ein Beispiel eines DIS-Lauf-Feldes 336 enthält den zugehörigen Script-Namen und das zugehörige Directory im Datenpaket 214. Die Aktionsgegenstände können zum Beispiel Untersuchen, Befehl ausführen, Ergebnisse ausgeben sein.
  • Die 4 zeigt ein Flußdiagramm für die Arbeitsweise bei der Übernahme des Masterobjekts 200 vom Serverspeicher 106 durch den Client 104. Wenn das Programm 208 bei 400 konfiguriert ist, verwendet das Programm 208 bei 401 die vorhandene Konfiguration. Wenn das Programm 208 bei 400 nicht konfiguriert ist, bestimmt das Programm 208 bei 402 die zur Verfügung stehenden Server 102, die zur Verfügung stehenden Übertragungskanäle 110 und die zur Übertragung über den Kanal 110 zur Verfügung stehende Software. Die zur Verfügung stehende Software ist die im Client 104 gespeicherte Software, etwa das Betriebssystem und das Protokoll, das für die Kommunikation über den Kanal 110 verwendet wird. Das Programm 208 wählt bei 404 durch Vergleichen der zur Verfügung stehenden Protokolle mit einer Prioritätenliste für die Protokolle und Auswahl des verfügbaren Protokolls mit der höchsten Priorität das Übertragungsprotokoll, den Host und den Ort aus. Die Prioritätenliste kann zum Beispiel an erster Stelle die TCP/IP-Kommunikation und an zweiter Stelle eine Modemkommunikation vorgeben. Alternativ kann die Auswahl mit einem Satz von Regeln erfolgen, die den Verkehr auf dem Kanal, die Datenübertragungsrate und dergleichen bewerten. Das Programm 208 versucht dann bei 406, eine Verbindung zum Host oder Server 102 aufzubauen. Wenn bei 408 keine Verbindung besteht, wählt das Programm 208 im Schritt 410 das nächste Protokoll, den nächsten Host oder Ort aus und versucht bei 406 erneut, eine Verbindung herzustellen.
  • Wenn dagegen bei 408 eine Verbindung zustandegekommen ist, übernimmt das Programm 208 bei 412 durch das Absenden eines vorgegebenen Anforderungssignals an den Server 102 das Masterobjekt 200 vom Server 102. Das Format des Anforderungssignals ist vorgegeben. Sowohl der Client 104 als auch der Server 102 kennen das Format dieser Anforderung. Das Programm 208 übernimmt bei 414 durch Ausführen der Übernahmeroutine, die in Verbindung mit der 5 beschrieben ist, das Masterobjekt 200 als Masterobjekt 206.
  • In der 5 ist ein Flußdiagramm gezeigt, das die Übernahme des Masterobjekts 200 durch den Client 104 darstellt. Das Programm 208 dekomprimiert bei 500 das Masterobjekt 200, wenn dieses komprimiert ist. Das Programm 208 liest bei 502 das Masterobjekt 200 aus. Das Programm 208 erzeugt dann bei 504 eine Speicherstelle zum Speichern des Masterobjekts als Masterobjekt 206.
  • Die 6 zeigt ein Flußdiagramm für das Auslesen und Übernehmen der ausgewählten Datenpakete 204 vom Server 102. Der Client 104 kann in einem von zwei Moden arbeiten. Im automatischen (Auto-)Modus liest das Automodus-Programm 212 das Masterobjekt 206 aus und bestimmt die auszuwählenden Datenpakete 204. Im Nutzermodus zeigt das Nutzermodusprogramm 210 die Datenpakete 204 an, die ausgewählt werden können, und der Nutzer wählt die Datenpakete 204 aus, die aus dem Server 102 auszulesen sind.
  • Wenn bei 600 der Client 104 im Nutzermodus ist, wartet das Nutzermodusprogramm 210 bei 602 auf die Auswahl des Nutzers. Wenn der Nutzer eine Auswahl getroffen hat, versucht das Programm 208 bei 604, eine Verbindung zum Server 102 aufzubauen. Wenn die Verbindung mit dem Server 102 hergestellt ist, liest das Programm 208 bei 606 durch Absenden einer Programmanforderung, die das ausgewählte Programm bezeichnet, das ausgewählte Aktualisierungspaket 204 aus dem Server 102 aus. Die Programmanforderung kann ein polymorpher Deskriptor sein, der vom Masterobjekt 200 abgetrennt wurde. Wenn das Aktualisierungspaket 204 bei 608 heruntergeladen ist, liest das Ausführungsprogrammpaket 216 bei 610 das Aktionsgegenstandfeld 316 aus und verarbeitet bei 612 die Aktionsgegenstände darin. Wenn das Aktiongegenstandfeld 316 ein Textfeld ist, analysiert das Ausführungsprogrammpaket 216 das Textfeld, um die auszuführenden Befehle zu erzeugen. Das Ausführungsprogrammpaket 216 kann dann die Aktionsgegenstände ausführen. Bei Verwendung des polymorphen Masterobjekts 200 braucht das Ausführungsprogrammpaket 216 die Aktionsgegenstände nicht zu kennen, bis die Datei 204 heruntergeladen ist. Dadurch kann die Datei 204 im Server 102 immer wieder aktualisiert werden, bis sie durch einen Client 104 ausgelesen wird.
  • Wenn der Client 104 im Automodus ist, bestimmt das Automodusprogramm 212 bei 614 das richtige Paket 204. Diese Bestimmung kann durch Auswahl vorgegebener Pakettypen unter Verwendung des Typfelds 312 und Aktualisieren jedes Pakets 204 mit einer Folgenummer im Folgenummerfeld 324 erfolgen, die größer ist als die Folgenummer der Datei im Clientspeicher 108. Das Programm 208 liest dann bei 606 das ausgewählte Aktualisierungspaket 204 wie oben beschrieben aus.
  • Die obige Beschreibung soll die Arbeitsweise von bevorzugten Ausführungsformen erläutern und ist nicht so zu verstehen, daß sie den Umfang der Erfindung einschränkt. Der Umfang der Erfindung wird nur von den folgenden Ansprüchen eingeschränkt. Aus der obigen Beschreibung ergeben sich für den Fachmann viele Varianten, die innerhalb des Umfangs der Erfindung liegen.

Claims (25)

  1. Verfahren zum Betreiben eines Client-Computers (104) zum Auslesen eines Computerprogramms (303) aus einem räumlich entfernten Server-Computer (102) in den Client-Computer, wobei der Client-Computer ein vorgegebenes Anforderungssignal an den Server-Computer abgibt; der Client-Computer ein von dem Server-Computer bereitgestelltes polymorphes Masterobjekt (200) aufnimmt, das eine Anzahl von polymorphen Deskriptoren (304, 306) für wenigstens ein Computerprogramm umfaßt und das eine vorgegebene Struktur aufweist, die vom Typus des Client-Computers unabhängig ist; der Client-Computer aufgrund einer Auswahl einen der polymorphen Deskriptoren (304) an den räumlich entfernten Server-Computer übermittelt; und der Client-Computer das Computerprogramm vom Server-Computer aufnimmt, das dem übermittelten polymorphen Deskriptor entspricht.
  2. Verfahren nach Anspruch 1, wobei ein weiterer (306) der polymorphen Deskriptoren Anweisungen zum Übernehmen des bereitgestellten Computerprogramms durch den Client-Computer enthält.
  3. Verfahren nach Anspruch 2, wobei der weitere polymorphe Deskriptor ein vorgegebenes, vom Typus des Client-Computers unabhängiges Format aufweist.
  4. Verfahren nach Anspruch 2, wobei der Client-Computer ferner den weiteren polymorphen Deskriptor analysiert, um die Anweisungen zu bestimmen, und die Anweisungen zum Übernehmen des bereitgestellten Computerprogramms ausführt.
  5. Verfahren nach Anspruch 1, wobei der polymorphe Deskriptor ein Feld darstellt, das Anweisungen zum Übernehmen des ausgewählten Computerprogramms enthält.
  6. Verfahren nach Anspruch 5, wobei das Feld ein Textfeld ist.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei die polymorphen Deskriptoren polymorphe Datenpakete (303) anzeigen, die ein vorgegebenes, vom Typus des Client-Computers und des Server-Computers unabhängiges Format haben, und wobei die Deskriptoren Objektbeschreibungen von verfügbaren Computerprogrammen und Anweisungen zum Übernehmen der jeweiligen Computerprogramme enthalten.
  8. Verfahren nach einem der vorstehenden Ansprüche, wobei die Struktur des polymorphen Masterobjekts vom Typus des Prozessors und vom Betriebssystem des Client-Computers und des Server-Computers unabhängig ist.
  9. Verfahren zum Betreiben eines Server-Computers (102) zum Bereitstellen eines Computerprogramms für einen räumlich entfernten Client-Computer (104), wobei der Server-Computer ein vorgegebenes Anforderungssignal vom Client-Computer aufnimmt; der Server-Computer an den Client-Computer ein polymorphes Masterobjekt (200) abgibt, das eine Anzahl polymorpher Deskriptoren (304) für wenigstens ein Computerprogramm umfaßt und eine vorgegebene Struktur aufweist, die vom Typus des Client-Computers unabhängig ist; der Server-Computer vom Client-Computer eine Programmanforderung aufnimmt, die einen der polymorphen Deskriptoren bezeichnet, der ein ausgewähltes Computerprogramm anzeigt; und wobei der Server-Computer an den Client-Computer das Computerprogramm abgibt, das dem in der Programmanforderung bezeichneten polymorphen Deskriptor entspricht.
  10. Verfahren nach Anspruch 9, wobei ein weiterer der polymorphen Deskriptoren Anweisungen zum Übernehmen des bereitgestellten Computerprogramms durch den Client-Computer enthält.
  11. Verfahren nach Anspruch 10, wobei der weitere polymorphe Deskriptor ein vorgegebenes, vom Typus des Client-Computers unabhängiges Format aufweist.
  12. Verfahren nach Anspruch 9, wobei der polymorphe Deskriptor ein Feld darstellt, das Anweisungen zum Übernehmen des ausgewählten Computerprogramms enthält.
  13. Verfahren nach Anspruch 12, wobei das Feld ein Textfeld ist.
  14. Verfahren nach einem der Ansprüche 9 bis 13, wobei die polymorphen Deskriptoren polymorphe Datenpakete (303) anzeigen, die ein vorgegebenes, vom Typus des Client-Computers und des Server-Computers unabhängiges Format haben, und wobei die Deskriptoren Objektbeschreibungen von verfügbaren Computerprogrammen und Anweisungen zum Übernehmen der jeweiligen Computerprogramme enthalten.
  15. Verfahren nach einem der vorstehenden Ansprüche 9 bis 14, wobei die Struktur des polymorphen Masterobjekts vom Typus des Prozessors und vom Betriebssystem des Client-Computers und des Server-Computers unabhängig ist.
  16. Kommunikationssystem mit einem Server-Speicher (106) zum Speichern eines polymorphen Masterobjekts (200) und einer Anzahl von Computerprogrammen (204), wobei das polymorphe Masterobjekt eine Anzahl von polymorphen Deskriptoren (304, 306) für die Anzahl Computerprogramme umfaßt und eine vorgegebene Struktur aufweist, die vom Typus des Client-Computers unabhängig ist; einem an den Server-Speicher angeschlossenen Server-Computer (102) zum Auslesen des polymorphen Masterobjekts aus dem Server-Speicher und mit einem Ausgang zur Abgabe des polymorphen Masterobjekts in Reaktion auf ein vorgegebenes Anforderungssignal und zum Abgeben des Computerprogramms, das einem der polymorphen Deskriptoren entspricht, in Reaktion auf eine Programmanforderung, die einen der polymorphen Deskriptoren bezeichnet; und wobei der an den Ausgang des Server-Computers angeschlossene Client-Computer (104) an den Server-Computer angeschlossen ist, um das vorgegebene Anforderungssignal abzugeben und um die Programmanforderung abzugeben, die aufgrund einer Auswahl einen der polymorphen Deskriptoren anzeigt.
  17. Kommunikationssystem nach Anspruch 16, ferner mit einem an den Client-Computer angeschlossenen Client-Speicher (108), wobei ein weiterer der polymorphen Deskriptoren (306) Anweisungen zum Übernehmen des bereitgestellten Computerprogramms in den Client-Speicher aufweist.
  18. Kommunikationssystem nach Anspruch 17, wobei der weitere polymorphe Deskriptor ein vorgegebenes, vom Typus des Client-Computers unabhängiges Format aufweist.
  19. Kommunikationssystem nach Anspruch 17, wobei der Client-Computer zur Analyse des weiteren polymorphen Deskriptors ausgelegt ist, um die Anweisungen zu bestimmen und diese Anweisungen zum Übernehmen des bereitgestellten Computerprogramms in den Client-Speicher auszuführen.
  20. Kommunikationssystem nach Anspruch 16, wobei der polymorphe Deskriptor ein Feld darstellt, das Anweisungen zum Übernehmen des ausgewählten Computerprogramms enthält.
  21. Kommunikationssystem nach Anspruch 20, wobei das Feld ein Textfeld ist.
  22. Host-Computer in einem System nach einem der Ansprüche 16 bis 21, mit dem Server-Speicher (106) zum Speichern des polymorphen Masterobjekts (200) und zum Speichern der Anzahl von Computerprogrammen (204), wobei das polymorphe Masterobjekt die Anzahl von polymorphen Deskriptoren (304, 306) für die Anzahl von Computerprogrammen umfaßt und die vorgegebene Struktur aufweist; und wobei der Server-Computer (102) an den Server-Speicher angeschlossen ist, um das polymorphe Masterobjekt aus dem Server-Speicher auszulesen, und den Ausgang aufweist, um das polymorphe Masterobjekt in Reaktion auf ein vorgegebenes Anforderungssignal abzugeben und um in Reaktion auf eine Programmanforderung, die einen der polymorphen Deskriptoren bezeichnet, das Computerprogramm abzugeben, das einem der polymorphen Masterobjekte entspricht.
  23. Vorrichtung in einem System nach einem der Ansprüche 17 bis 19 zum Auslesen eines Computerprogramms und des polymorphen Masterobjekts aus dem räumlich entfernten Server-Computer, wobei das polymorphe Masterobjekt eine Anzahl von polymorphen Deskriptoren für die Anzahl von Computerprogrammen enthält und die vorgegebene Struktur aufweist, wobei die Vorrichtung den Client-Computer (104) umfaßt; wobei der Client-Speicher (108) zum Speichern des polymorphen Masterobjekts und zum Speichern eines Programms vorgesehen ist, das vom Client-Computer ausführbar ist, wobei das Programm in Reaktion auf ein Auswahlsignal ein vorgegebenes Anforderungssignal erzeugt, das vom Server-Computer in Reaktion auf das vorgegebene Anforderungssignal erhaltene polymorphe Masterobjekt in den Client-Speicher übernimmt, eine Programmanforderung an den Server-Computer abgibt, die einen der polymorphen Deskriptoren bezeichnet, und das Computerprogramm ausführt, das dem bezeichneten polymorphen Deskriptor entspricht.
  24. Computerlesbares Speichermedium mit einem gespeicherten Computerprogramm, das beim Ablaufen auf einem Computer das Verfahren nach einem der Ansprüche 1 bis 7 ausführt.
  25. Computerlesbares Speichermedium mit einem gespeicherten Computerprogramm, das beim Ablaufen auf einem Computer das Verfahren nach einem der Ansprüche 9 bis 15 ausführt.
DE69709959T 1996-06-14 1997-06-10 Verwendung von polymorphischen dateipaketen zur aktualisierung von softwarekomponenten Expired - Lifetime DE69709959T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US664388 1996-06-14
US08/664,388 US5790796A (en) 1996-06-14 1996-06-14 Polymorphic package files to update software components
PCT/US1997/010163 WO1997048044A1 (en) 1996-06-14 1997-06-10 Use of polymorphic package files to update software components

Publications (2)

Publication Number Publication Date
DE69709959D1 DE69709959D1 (de) 2002-02-28
DE69709959T2 true DE69709959T2 (de) 2009-09-24

Family

ID=24665792

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69709959T Expired - Lifetime DE69709959T2 (de) 1996-06-14 1997-06-10 Verwendung von polymorphischen dateipaketen zur aktualisierung von softwarekomponenten

Country Status (5)

Country Link
US (1) US5790796A (de)
EP (1) EP0978033B1 (de)
CA (1) CA2257692C (de)
DE (1) DE69709959T2 (de)
WO (1) WO1997048044A1 (de)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038586A (en) * 1993-12-30 2000-03-14 Frye; Russell Automated software updating and distribution
US6505170B1 (en) * 1996-10-04 2003-01-07 Western Union North America Distributed device management system
US6015087A (en) * 1996-10-04 2000-01-18 First Data Corporation Apparatus and method for leasing documents of value
US6317860B1 (en) * 1996-10-28 2001-11-13 Altera Corporation Electronic design automation tool for display of design profile
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US5933647A (en) * 1997-01-24 1999-08-03 Cognet Corporation System and method for software distribution and desktop management in a computer network environment
US6314565B1 (en) * 1997-05-19 2001-11-06 Intervu, Inc. System and method for automated identification, retrieval, and installation of multimedia software components
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
WO1999003047A1 (en) * 1997-07-11 1999-01-21 Earle Machardy Content hosting environment system and cache mechanism
US6460175B1 (en) 1997-07-18 2002-10-01 International Business Machines Corporation Program product for modular, parallel, remote software installation with repeatable, externally-invocable steps
US5974258A (en) * 1997-07-18 1999-10-26 International Business Machines Corporation Method and apparatus for performing single-function software operations on a server processor for a target of one or more processors in a network of processors
US6182279B1 (en) 1997-08-12 2001-01-30 International Business Machines Corporation Method and apparatus for storing templates in a component system
US6093215A (en) * 1997-08-12 2000-07-25 International Business Machines Corporation Method and apparatus for building templates in a component system
US6195794B1 (en) 1997-08-12 2001-02-27 International Business Machines Corporation Method and apparatus for distributing templates in a component system
US5970252A (en) * 1997-08-12 1999-10-19 International Business Machines Corporation Method and apparatus for loading components in a component system
US5978579A (en) * 1997-08-12 1999-11-02 International Business Machines Corporation Architecture for customizable component system
US5953533A (en) * 1997-08-27 1999-09-14 Lucent Technologies Inc. Computer software distribution, installation and maintenance method and apparatus
US6192518B1 (en) * 1998-01-22 2001-02-20 Mis Only, Inc. Method for distributing software over network links via electronic mail
US6484214B1 (en) * 1998-03-05 2002-11-19 Mcdonnell Douglas Helicopter Company Method for distributed object communications based on dynamically acquired and assembled software components
JPH11259284A (ja) * 1998-03-12 1999-09-24 Fujitsu Ltd オンラインプログラム更新システム及びプログラム更新用プログラムを記録したコンピュータ読み取り可能な記録媒体
US6199196B1 (en) * 1998-03-20 2001-03-06 Sun Microsystems, Inc. Methods and apparatus for linking a program for remote execution
US6493870B1 (en) * 1998-03-20 2002-12-10 Sun Microsystems, Inc. Methods and apparatus for packaging a program for remote execution
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6233582B1 (en) * 1998-05-14 2001-05-15 Sun Microsystems, Inc. Persistent storage interface for a configuration object-based system
US6330598B1 (en) * 1998-06-23 2001-12-11 Ameritech Corporation Global service management system for an advanced intelligent network
US6901457B1 (en) * 1998-11-04 2005-05-31 Sandisk Corporation Multiple mode communications system
US6279114B1 (en) * 1998-11-04 2001-08-21 Sandisk Corporation Voltage negotiation in a single host multiple cards system
US6286138B1 (en) * 1998-12-31 2001-09-04 International Business Machines Corporation Technique for creating remotely updatable programs for use in a client/server environment
JP2000207219A (ja) 1999-01-18 2000-07-28 Fujitsu Ten Ltd 車載端末とセンタ―との間の通信システム、及び、通信システムに使用する車載端末
US6484315B1 (en) * 1999-02-01 2002-11-19 Cisco Technology, Inc. Method and system for dynamically distributing updates in a network
US6986134B1 (en) * 1999-03-16 2006-01-10 Sun Microsystems, Inc. Lightweight global distribution mechanism
US6614804B1 (en) * 1999-03-22 2003-09-02 Webtv Networks, Inc. Method and apparatus for remote update of clients by a server via broadcast satellite
US6331855B1 (en) 1999-04-28 2001-12-18 Expertcity.Com, Inc. Method and apparatus for providing remote access, control of remote systems and updating of display information
US6421671B1 (en) 1999-04-30 2002-07-16 Dell Products L.P. Method and system for automated distribution of software
US6996627B1 (en) 1999-05-25 2006-02-07 Realnetworks, Inc. System and method for providing update information
US7062765B1 (en) 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
AU3712300A (en) 1999-06-11 2001-01-02 Liberate Technologies Hierarchical open security information delegation and acquisition
US6606716B1 (en) * 1999-10-06 2003-08-12 Dell Usa, L.P. Method and system for automated technical support for computers
US6760708B1 (en) 1999-08-19 2004-07-06 Dell Products L.P. Method and system for migrating stored data to a build-to-order computing system
US6560726B1 (en) 1999-08-19 2003-05-06 Dell Usa, L.P. Method and system for automated technical support for computers
US7016944B1 (en) 1999-09-30 2006-03-21 Apple Computer, Inc. System and method for passive detection and context sensitive notification of upgrade availability for computer information
US6317316B1 (en) 1999-10-06 2001-11-13 Dell Usa, L.P. Method and system for integrated personal computer components
US6563698B1 (en) 1999-10-06 2003-05-13 Dell Usa, L.P. System and method for providing a computer system with a detachable component
US6574615B1 (en) 1999-10-06 2003-06-03 Dell Usa, L.P. System and method for monitoring support activity
US6598223B1 (en) 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6556431B1 (en) 1999-10-06 2003-04-29 Dell Usa, L.P. System and method for converting alternating current into direct current
US6564220B1 (en) 1999-10-06 2003-05-13 Dell Usa, L.P. System and method for monitoring support activity
US6539499B1 (en) 1999-10-06 2003-03-25 Dell Usa, L.P. Graphical interface, method, and system for the provision of diagnostic and support services in a computer system
US7117273B1 (en) * 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
US6915337B1 (en) * 2000-03-07 2005-07-05 Ricoh Co. Ltd. Method and system for updating the device driver of a business office appliance
US7310801B2 (en) * 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
EP1168163A1 (de) * 2000-06-19 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Verfahren um ein Softwarepaket in einem Benutzerrechner zu installieren
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US6874143B1 (en) * 2000-06-21 2005-03-29 Microsoft Corporation Architectures for and methods of providing network-based software extensions
US7624356B1 (en) 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7418513B2 (en) * 2000-12-15 2008-08-26 International Business Machines Corporation Method and system for network management with platform-independent protocol interface for discovery and monitoring processes
US7707571B1 (en) 2001-01-05 2010-04-27 New Boundary Technologies Inc. Software distribution systems and methods using one or more channels
US7827611B2 (en) 2001-08-01 2010-11-02 Mcafee, Inc. Malware scanning user interface for wireless devices
US6944855B2 (en) 2001-10-25 2005-09-13 Siemens Medical Solutions Health Services Corporation System, method, and article of manufacture for creating and updating an application using software application elements
US7076768B2 (en) * 2001-10-31 2006-07-11 Seiko Epson Corporation Dynamic class packaging
US7251812B1 (en) * 2001-10-31 2007-07-31 Microsoft Corporation Dynamic software update
US7028295B2 (en) * 2001-10-31 2006-04-11 Seiko Epson Corporation Dynamic java class loading for application execution
US7424715B1 (en) * 2002-01-28 2008-09-09 Verint Americas Inc. Method and system for presenting events associated with recorded data exchanged between a server and a user
US8656502B2 (en) * 2002-04-04 2014-02-18 Mcafee, Inc. Controlling use of a computer program installed on a computer
US7430590B1 (en) * 2002-04-17 2008-09-30 Everdream Corporation Method and system to manage services for multiple managed computer systems
US7290215B2 (en) 2002-06-03 2007-10-30 Microsoft Corporation Dynamic wizard interface system and method
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7296017B2 (en) 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7451392B1 (en) 2003-06-30 2008-11-11 Microsoft Corporation Rendering an HTML electronic form by applying XSLT to XML using a solution
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7430711B2 (en) 2004-02-17 2008-09-30 Microsoft Corporation Systems and methods for editing XML documents
US7318063B2 (en) 2004-02-19 2008-01-08 Microsoft Corporation Managing XML documents containing hierarchical database information
US7496837B1 (en) 2004-04-29 2009-02-24 Microsoft Corporation Structural editing with schema awareness
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US7895591B2 (en) * 2004-10-21 2011-02-22 Oracle International Corp. File deployment system and method
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7721190B2 (en) 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7904801B2 (en) 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
DE102005015402A1 (de) * 2005-02-02 2006-08-03 Rohde & Schwarz Sit Gmbh Datencontainer und zugehöriges Verfahren zur Übertragung von sicherheitsrelevanten Nutzdaten an Geräte bzw. Systeme
US8635609B2 (en) * 2005-02-14 2014-01-21 Red Hat, Inc. Software certification and update process
US7725834B2 (en) 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US7987459B2 (en) 2005-03-16 2011-07-26 Microsoft Corporation Application programming interface for identifying, downloading and installing applicable software updates
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
CN100459500C (zh) * 2006-01-18 2009-02-04 腾讯科技(深圳)有限公司 一种客户端软件加载功能扩展文件的方法
US8074213B1 (en) 2006-08-11 2011-12-06 Symantec Operating Corporation Automatic software updates for computer systems in an enterprise environment
US20080072321A1 (en) * 2006-09-01 2008-03-20 Mark Wahl System and method for automating network intrusion training
US8762984B2 (en) * 2007-05-31 2014-06-24 Microsoft Corporation Content distribution infrastructure
US9323519B2 (en) * 2007-08-31 2016-04-26 Red Hat, Inc. Packaging an application
US8453141B1 (en) 2009-01-29 2013-05-28 Symantec Corporation High performance install update
US8005929B1 (en) 2009-02-27 2011-08-23 Symantec Operating Corporation Software update checking method
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
KR20110064697A (ko) * 2009-12-08 2011-06-15 삼성전자주식회사 정보 업데이트 방법 및 그 장치
US11074167B2 (en) * 2019-03-25 2021-07-27 Aurora Labs Ltd. Visualization of code execution through line-of-code behavior and relation models

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155847A (en) * 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5473772A (en) * 1991-04-02 1995-12-05 International Business Machines Corporation Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
EP0496494A3 (en) * 1991-01-22 1993-05-12 International Business Machines Corporation Software maintenance system
EP0592079A2 (de) * 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automatisierte Softwareinstallierung und Betriebsumgebungskonfigurierung in einem Rechnersystem
US5421009A (en) * 1993-12-22 1995-05-30 Hewlett-Packard Company Method of remotely installing software directly from a central computer

Also Published As

Publication number Publication date
WO1997048044A1 (en) 1997-12-18
EP0978033B1 (de) 2002-01-09
US5790796A (en) 1998-08-04
DE69709959D1 (de) 2002-02-28
CA2257692C (en) 2001-10-02
EP0978033A1 (de) 2000-02-09
CA2257692A1 (en) 1997-12-18

Similar Documents

Publication Publication Date Title
DE69709959T2 (de) Verwendung von polymorphischen dateipaketen zur aktualisierung von softwarekomponenten
DE60009489T2 (de) Vorrichtung und verfahren zum verwalten der verteilung von inhalten zu einem gerät
DE69837508T2 (de) Verfahren zum Inhaltswiederauffinden über ein Netzwerk
DE19940210B4 (de) Verfahren zum Herstellen eines Computersystems und zum Modifizieren einer grafischen Benutzeroberfläche, die von einem Betriebssystem kontrolliert wird
DE69735348T2 (de) Skalierbare und erweiterbare Systemverwaltungsarchitektur mit datenlosen Endpunkten
DE69820855T2 (de) Automatische Konfiguration eines Netzwerkdruckers
DE69732968T2 (de) System, verfahren und hergestellter gegenstand zur wartung von server-anwendungssoftware der netzwerk-kundenendgeräte und nicht-netzwerk-kundenengeräte
DE60003457T2 (de) Verfahren und system zur konfiguration von komponenten, ausgebbar in einem netzwerk
DE60213606T2 (de) Anwendungsprogrammserver mit einem laufwerkaufteilungsschema zur anpassung der wachstumsgrösse des anwendungsprogramms
DE69919384T2 (de) Verfahren und vorrichtung zur automatischen optimierung der ausführung eines rechnerprogramms
DE10048942B4 (de) Verfahren und System zur Wartung von Software über ein Netz
DE69637436T2 (de) Objektorientiertes Kommunikationssystem mit Unterstützung für mehrere entfernte Maschinentypen
DE69729926T2 (de) Netzwerkbrowser
DE19836333C2 (de) Software Installation und Testen für ein gemäß einer Bestellung gebautes Computersystem
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE60131683T2 (de) Verfahren und system zur verwaltung von mehreren netzwerk-betriebsmitteln
EP1456742B1 (de) Verfahren, gerätesystem und computerprogramm zum speichern und abrufen von druckdaten in einem netzwerk
DE60304514T2 (de) Fernaktualisierung von Druckereinstellungen auf einem Klientgerät, in einer vernetzten Umgebung
DE19954268A1 (de) Verfahren und System zur Verbesserung des Workflow-Durchsatzes in Workflow-Anwendungssystemen
DE10300149A1 (de) Vorrichtung und Verfahren zum Entwickeln von kundenbedien-personspezifischen Softwareanwendungen
DE10248981A1 (de) System und Verfahren zum Installieren von Anwendungen in einer vertrauenswürdigen Umgebung
DE19951060A1 (de) Eingebaute automatische Kundenidentifizierung beim Verbinden mit einer Verkäufer-Website
DE19628168A1 (de) Vernetztes multimediales Netz
DE10309620A1 (de) Dynamisches Expertenschnittstellensystem und Verfahren
DE19615177C2 (de) Verfahren zum Ändern einer Funktion eines Druckertreibers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition