DE69709959T2 - Verwendung von polymorphischen dateipaketen zur aktualisierung von softwarekomponenten - Google Patents
Verwendung von polymorphischen dateipaketen zur aktualisierung von softwarekomponenten Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
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 Kommunikationssystems100 gemäß der vorliegenden Erfindung. -
2 eine Darstellung des Serverspeichers106 und des Clientspeichers108 in dem Kommunikationssystem100 der1 . -
3 eine Darstellung eines Masterobjekts200 in dem Serverspeicher106 des Kommunikationssystems100 der1 . -
4 ein Flußdiagramm für die Vorgänge bei der Aufnahme des Masterobjekts200 aus dem Serverspeicher106 . -
5 ein Flußdiagramm für die Übernahme des Masterobjekts200 . -
6 ein Flußdiagramm für die Aufnahme und das Übernehmen von ausgewählten Datenpaketen204 aus dem Serverspeicher106 . - Genaue Beschreibung der bevorzugten Ausführungsformen
- In der
1 ist eine Blockdarstellung eines Kommunikationssystems100 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Das Kommunikationssystem100 umfaßt eine Anzahl von Server-Computern102-1 und102-2 , eine Anzahl von Client-Computern104-1 und104-2 , eine Anzahl von Serverspeichern106-1 und106-2 , eine Anzahl von Clientspeichern108-1 und108-2 und einen Übertragungskanal110 . Der Klarheit wegen sind nur zwei Server102 , zwei Clients104 , zwei Speicher106 und zwei Speicher108 dargestellt. Die Server102 und die Clients104 sind jeweils mit dem Übertragungskanal110 verbunden. Die Serverspeicher106-1 und106-2 sind jeweils mit dem Server102-1 bzw.102-2 verbunden. Die Clientspeicher108-1 und108-2 sind jeweils mit dem Client104-1 bzw.104-2 verbunden. Die Server102-1 und102-2 brauchen nicht identisch zu sein. Auch die Clients104-1 und104-2 brauchen nicht identisch zu sein. Wie später noch beschrieben wird, weist ein polymorphes Masterobjekt200 (siehe2 ) eine Struktur auf, die den Servern102 und den Clients104 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 Masterobjekts200 können die Server102 Software an die Clients104 abgeben, ohne daß die Server102 und die Clients104 Informationen über die gegenseitige Struktur besitzen. Eine solche Verwendung des polymorphen Masterobjekts200 ist die Aktualisierung von Soft ware, die von einem Client104 ausgeführt wird. Das polymorphe Masterobjekt200 ermöglicht es dem Client104 , mit jedem der Server102 in Verbindung zu treten, ohne Kenntnis von der tatsächlichen Implementierung der Software-Datenpakete im Server zu haben. Der Client104 nutzt das Masterobjekt200 dazu, zu erfahren, welche Datenpakete zur Verfügung stehen, eine Auswahl an den Server102 zu übermitteln und das ausgewählte Datenpaket nach Erhalt auszuführen. - Beim Aktualisieren von Software arbeitet der Server
102 als passiver Host-Server. Der Server102 kann zum Beispiel ein CompuServe(TM)-Host, eine herkömmliche Webseite oder ein Novell-Dateiserver sein. Die Server102 und die Clients104 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 Server102 und die Clients104 nicht notwendigerweise identisch. Der Server102 kann zum Beispiel ein auf dem SPARC20 basierender Computer sein, der das UNIX-Betriebssystem ausführt, und der Client104 kann der auf dem Pentium(TM) basierende Computer sein, der oben erwähnt wurde. - Der Übertragungskanal
110 kann zum Beispiel das Internet sein. Die Server102 und die Clients104 führen jeweils die Programme aus, die im Serverspeicher106 bzw. im Clientspeicher108 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 Server102 und einen einzigen Client104 beschrieben. Selbstverständlich kann die Kommunikation auch zwischen vielen Servern102 und Clients104 erfolgen. - Die
2 zeigt eine Darstellung des Serverspeichers106 und des Clientspeichers108 des Kommunikationssystems100 . Der Serverspeicher106 und der Clientspeicher108 sind computerlesbare Speichermedien, etwa Plattenlaufwerke oder Programmspeicher. Der Serverspeicher106 enthält ein Masterobjekt200 , eine Protokolldatei202 und eine Anzahl von Software-Datenpaketen204 . - Das Masterobjekt
200 ist ein dauerhaftes Objekt, das eine Datendarstellung von Objekten umfaßt. Insbesondere umfaßt das Masterobjekt200 eine Liste von Software-Datenpaketen204 , die für die Ausführung durch den Client104 zur Verfügung stehen. Das Masterobjekt200 ermöglicht es dem Client104 , neue Arten von Softwarepaketen und Aktionsgegenständen kennenzulernen, die im Server102 gespeichert sind und die einem definierten Anwendungsprogramminterface (API) entsprechen, das virtuelle Funktionen umfaßt. Das Masterobjekt200 weist eine Anzahl von Feldern auf, die später in Verbindung mit der3 beschrieben werden. Einige dieser Felder sind polymorph. Die Struktur des Masterobjekts200 ist unabhängig von der Art des Clients104 und des Servers102 , etwa dem Prozessor oder dem Betriebssystem. Die Struktur des Masterobjekts200 ist auch unabhängig von der Art der Datenpakete204 . Dadurch kann das Masterobjekt200 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 Masterobjekt200 auch solche Software darstellen und an den Client104 genügend Informationen geben, um eine solche Software vom Server102 zum Client104 zu übermitteln oder zu aktualisieren. - Die Protokolldatei
202 enthält die Protokollinformationen für die Kommunikation auf dem Übertragungskanal110 . Die Protokolldatei202 enthält vorzugsweise Protokollinformationen über ein Anzahl von Protokollen. - Die Anzahl von Datenpaketen
204 sind die Softwaredateien, die vom Client104 übernommen werden können. Die Datenpakete204 können polymorph sein. Unter Verwendung der Protokollinformationen kann der Server102 auf dem Übertragungskanal110 unter verschiedenen Protokollen kommunizieren. Das Masterobjekt200 enthält die Informationen über diese Datenpakete204 , damit der Client104 oder ein Nutzer ein Datenpaket204 zur Übernahme auswählen kann und damit der Client104 ein ausgewähltes Datenpaket204 laden kann. - Der Clientspeicher
108 umfaßt ein Masterobjekt206 , ein Programm208 , ein Nutzermodusprogramm210 , ein Automodusprogramm212 , ausgewählte Datenpakete214 und ein Ausführungsprogrammpaket216 . Das Masterobjekt206 ist das Masterobjekt200 vom Serverspeicher106 , das in den Clientspeicher108 übernommen wurde. Das Programm208 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 Server102 zu übernehmen. Alternativ wählt das Programm automatisch ein Programm zur Übernahme aus. Insbesondere ist das Nutzermodusprogramm210 ein Programm, das es dem Nutzer ermöglicht, im Nutzermodus aus dem Masterobjekt206 Datenpakete204 auszuwählen. Das Programm208 liest die ausgewählten Datenpakete204 aus dem Serverspeicher106 aus. Das Automodusprogramm212 wählt im automatischen Modus automatisch Datenpakete204 aus dem Masterobjekt206 gemäß vorgegebenen Auswahlkriterien aus, etwa dem Alter des Datenpakets204 . Das Programm208 schickt eine Programmanforderung an den Server102 , die die ausgewählte Datei bezeichnet, woraufhin der Server102 das ausgewählte Datenpaket204 an den Client104 übermittelt. Das Format der Pro grammanforderung ist vorgegeben. Sowohl der Client104 als auch der Server102 kennen das Format der Programmanforderung. - Das ausgewählte Datenpaket
214 enthält die Datenpakete204 aus dem Server102 , die entweder im Nutzermodus vom Nutzer ausgewählt wurden oder die im Automodus vom Client ausgewählt wurden. Das Ausführungsprogrammpaket216 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 Clients104 nicht gesichert. - Die
3 zeigt das Masterobjekt200 eines Servers102 im Kommunikationssystem100 . Das Masterobjekt200 umfaßt ein Masterobjekt300 und eine Host-Datenbank302 . Das Masterobjekt300 enthält die Objektbeschreibungen der Datenpakete204 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-Datenbank302 aufgelisteten Dateien sind Dateien, die im Vergleich zu den Dateien im Masterobjekt300 nur selten geändert werden. Natürlich kann die Host-Datenbank302 im Masterobjekt200 weggelassen werden und die Dateien in der Host-Datenbank302 im Masterobjekt300 aufgelistet werden. - Das Masterobjekt
300 enthält eine Anzahl von Datenpaketen303-0 bis303-N – 1 , ein Pakettypobjekt304 und ein Paketaktionsobjekt306 . Wegen der Klarheit sind nur zwei Datenpakete303 gezeigt. Das Masterobjekt300 kann eine Textdatei sein. Nach dem Lesen des Masterobjekts300 untersucht der Client104 das Masterobjekt300 und baut das Masterobjekt206 in den Clientspeicher108 ein. - Jedes Datenpaket
303 enthält ein Produktnamenfeld308 , ein Gegenstandnamenfeld310 , ein Typfeld312 , ein Detailfeld314 , ein Aktionsgegenstandfeld316 , ein Dateinamenfeld318 , ein Aktionsdatenfeld320 , ein Größenfeld322 , ein Folgenummerfeld324 , ein Produktcodefeld326 und ein Sequenzfeld328 . - 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 Gegenstandnamenfeld310 enthält den Namen eines bestimmten Software-Datenpakets204 . Die Datei204 ist die Datei, die das Programm208 zur Nutzung durch den Client104 anfordert. Das Gegenstandnamenfeld310 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 Typfeld312 enthält Text und wird dazu verwendet, die Datei mit anderen, ähnlichen Dateien abzustimmen. Das Detailfeld314 enthält Text mit weiteren Informationen über die Datei. Der Text wird im Nutzermodus angezeigt, wenn es der Nutzer anfordert. Das Aktionsgegenstandfeld316 zeigt auf den Aktionsgegenstand, der auszuführen ist, was der Ausführung einer Distributed-Install-Script-Datei (DIS-Datei) entspricht. Das Aktionsgegenstandfeld316 kann eine Textdatei sein. Die DIS-Datei enthält Informationen, die vom Programm208 bei der Übernahme des Datenpaketes304 vom Server102 verwendet werden können. Der Aktionsgegenstand ist ein Satz von Anweisungen, die das Programm208 ausführt. Jeder Aktionsgegenstand des Aktionsgegenstandfeldes316 ist im Paketaktionsobjekt306 definiert, wie es weiter unten noch beschrieben wird. - Das Dateinamenfeld
318 gibt den Namen der Datei im Serverspeicher106 an, die in den Client104 herunterzuladen ist. Das Aktionsdatenfeld320 ist ein freies, nutzerdefiniertes Feld, das hinsichtlich zukünftiger, gegenwärtig noch unbekannter Softwarepakete eine gewisse Flexibilität ermöglicht. Das Größenfeld322 gibt die Größe des Pakets an. Das Programm208 verwendet diesen Wert zum Abschätzen der Zeit für das Herunterladen des Pakets. Das Folgenummerfeld324 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 Produktcodefeld326 ist Teil des Polymorphismus des Masterobjekts300 . Das Produktcodefeld326 ist ein freies Feld, das hinsichtlich zukünftiger, gegenwärtig noch unbekannter Softwarepakete eine gewisse Flexibilität ermöglicht. Das Sequenzfeld328 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 Masterobjekt300 ein Pakettypfeld304 , wie es vom Typfeld312 des Datenpakets303 angezeigt wird. Wegen der Klarheit ist nur ein Pakettypfeld304 dargestellt. Das Pakettypfeld304 enthält ein Typfeld330 , ein Abschnittfeld332 und ein Typdetailfeld334 . Das Typfeld330 gibt den Damen der Datei an. Das Typfeld330 entspricht den Typfeldern312 im Datenpaket303 . Das Ab schnittfeld332 zeigt den Abschnitt der Datei an. Das Typdetailfeld334 enthält Details über den Dateityp zur Anzeige für den Nutzer im Nutzermodus210 . - Das Masterobjekt
300 enthält ein Paketaktionsobjekt306 für jeden Aktionsgegenstand des Aktionsgegenstandfeldes316 . Wegen der Klarheit ist nur ein Paketaktionsobjekt306 dargestellt. Das Paketaktionsobjekt306 enthält eine Distributed-Install-Script-Lauf-Funktion (DIS-Lauf-Funktion)336 , die bewirkt, daß das Programm208 die Übernahme des ausgewählten Datenpakets214 startet. Das DIS-Lauf-Feld336 ist polymorph. Ein Beispiel eines DIS-Lauf-Feldes336 enthält den zugehörigen Script-Namen und das zugehörige Directory im Datenpaket214 . 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 Masterobjekts200 vom Serverspeicher106 durch den Client104 . Wenn das Programm208 bei400 konfiguriert ist, verwendet das Programm208 bei401 die vorhandene Konfiguration. Wenn das Programm208 bei400 nicht konfiguriert ist, bestimmt das Programm208 bei402 die zur Verfügung stehenden Server102 , die zur Verfügung stehenden Übertragungskanäle110 und die zur Übertragung über den Kanal110 zur Verfügung stehende Software. Die zur Verfügung stehende Software ist die im Client104 gespeicherte Software, etwa das Betriebssystem und das Protokoll, das für die Kommunikation über den Kanal110 verwendet wird. Das Programm208 wählt bei404 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 Programm208 versucht dann bei406 , eine Verbindung zum Host oder Server102 aufzubauen. Wenn bei408 keine Verbindung besteht, wählt das Programm208 im Schritt410 das nächste Protokoll, den nächsten Host oder Ort aus und versucht bei406 erneut, eine Verbindung herzustellen. - Wenn dagegen bei
408 eine Verbindung zustandegekommen ist, übernimmt das Programm208 bei412 durch das Absenden eines vorgegebenen Anforderungssignals an den Server102 das Masterobjekt200 vom Server102 . Das Format des Anforderungssignals ist vorgegeben. Sowohl der Client104 als auch der Server102 kennen das Format dieser Anforderung. Das Programm208 übernimmt bei414 durch Ausführen der Übernahmeroutine, die in Verbindung mit der5 beschrieben ist, das Masterobjekt200 als Masterobjekt206 . - In der
5 ist ein Flußdiagramm gezeigt, das die Übernahme des Masterobjekts200 durch den Client104 darstellt. Das Programm208 dekomprimiert bei500 das Masterobjekt200 , wenn dieses komprimiert ist. Das Programm208 liest bei502 das Masterobjekt200 aus. Das Programm208 erzeugt dann bei504 eine Speicherstelle zum Speichern des Masterobjekts als Masterobjekt206 . - Die
6 zeigt ein Flußdiagramm für das Auslesen und Übernehmen der ausgewählten Datenpakete204 vom Server102 . Der Client104 kann in einem von zwei Moden arbeiten. Im automatischen (Auto-)Modus liest das Automodus-Programm212 das Masterobjekt206 aus und bestimmt die auszuwählenden Datenpakete204 . Im Nutzermodus zeigt das Nutzermodusprogramm210 die Datenpakete204 an, die ausgewählt werden können, und der Nutzer wählt die Datenpakete204 aus, die aus dem Server102 auszulesen sind. - Wenn bei
600 der Client104 im Nutzermodus ist, wartet das Nutzermodusprogramm210 bei602 auf die Auswahl des Nutzers. Wenn der Nutzer eine Auswahl getroffen hat, versucht das Programm208 bei604 , eine Verbindung zum Server102 aufzubauen. Wenn die Verbindung mit dem Server102 hergestellt ist, liest das Programm208 bei606 durch Absenden einer Programmanforderung, die das ausgewählte Programm bezeichnet, das ausgewählte Aktualisierungspaket204 aus dem Server102 aus. Die Programmanforderung kann ein polymorpher Deskriptor sein, der vom Masterobjekt200 abgetrennt wurde. Wenn das Aktualisierungspaket204 bei608 heruntergeladen ist, liest das Ausführungsprogrammpaket216 bei610 das Aktionsgegenstandfeld316 aus und verarbeitet bei612 die Aktionsgegenstände darin. Wenn das Aktiongegenstandfeld316 ein Textfeld ist, analysiert das Ausführungsprogrammpaket216 das Textfeld, um die auszuführenden Befehle zu erzeugen. Das Ausführungsprogrammpaket216 kann dann die Aktionsgegenstände ausführen. Bei Verwendung des polymorphen Masterobjekts200 braucht das Ausführungsprogrammpaket216 die Aktionsgegenstände nicht zu kennen, bis die Datei204 heruntergeladen ist. Dadurch kann die Datei204 im Server102 immer wieder aktualisiert werden, bis sie durch einen Client104 ausgelesen wird. - Wenn der Client
104 im Automodus ist, bestimmt das Automodusprogramm212 bei614 das richtige Paket204 . Diese Bestimmung kann durch Auswahl vorgegebener Pakettypen unter Verwendung des Typfelds312 und Aktualisieren jedes Pakets204 mit einer Folgenummer im Folgenummerfeld324 erfolgen, die größer ist als die Folgenummer der Datei im Clientspeicher108 . Das Programm208 liest dann bei606 das ausgewählte Aktualisierungspaket204 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)
- 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. - Verfahren nach Anspruch 1, wobei ein weiterer (
306 ) der polymorphen Deskriptoren Anweisungen zum Übernehmen des bereitgestellten Computerprogramms durch den Client-Computer enthält. - Verfahren nach Anspruch 2, wobei der weitere polymorphe Deskriptor ein vorgegebenes, vom Typus des Client-Computers unabhängiges Format aufweist.
- 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.
- Verfahren nach Anspruch 1, wobei der polymorphe Deskriptor ein Feld darstellt, das Anweisungen zum Übernehmen des ausgewählten Computerprogramms enthält.
- Verfahren nach Anspruch 5, wobei das Feld ein Textfeld ist.
- 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. - 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.
- 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. - Verfahren nach Anspruch 9, wobei ein weiterer der polymorphen Deskriptoren Anweisungen zum Übernehmen des bereitgestellten Computerprogramms durch den Client-Computer enthält.
- Verfahren nach Anspruch 10, wobei der weitere polymorphe Deskriptor ein vorgegebenes, vom Typus des Client-Computers unabhängiges Format aufweist.
- Verfahren nach Anspruch 9, wobei der polymorphe Deskriptor ein Feld darstellt, das Anweisungen zum Übernehmen des ausgewählten Computerprogramms enthält.
- Verfahren nach Anspruch 12, wobei das Feld ein Textfeld ist.
- 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. - 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.
- 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. - 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. - Kommunikationssystem nach Anspruch 17, wobei der weitere polymorphe Deskriptor ein vorgegebenes, vom Typus des Client-Computers unabhängiges Format aufweist.
- 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.
- Kommunikationssystem nach Anspruch 16, wobei der polymorphe Deskriptor ein Feld darstellt, das Anweisungen zum Übernehmen des ausgewählten Computerprogramms enthält.
- Kommunikationssystem nach Anspruch 20, wobei das Feld ein Textfeld ist.
- 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. - 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. - Computerlesbares Speichermedium mit einem gespeicherten Computerprogramm, das beim Ablaufen auf einem Computer das Verfahren nach einem der Ansprüche 1 bis 7 ausführt.
- Computerlesbares Speichermedium mit einem gespeicherten Computerprogramm, das beim Ablaufen auf einem Computer das Verfahren nach einem der Ansprüche 9 bis 15 ausführt.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/664,388 US5790796A (en) | 1996-06-14 | 1996-06-14 | Polymorphic package files to update software components |
US664388 | 1996-06-14 | ||
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)
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 |
US6026226A (en) * | 1996-10-28 | 2000-02-15 | Altera Corporation | Local compilation in context within a design hierarchy |
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 |
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 |
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 |
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 |
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 |
US6195794B1 (en) | 1997-08-12 | 2001-02-27 | International Business Machines Corporation | Method and apparatus for distributing templates in a 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 |
WO2000077974A1 (en) | 1999-06-11 | 2000-12-21 | Liberate Technologies | Hierarchical open security information delegation and acquisition |
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 |
US6606716B1 (en) * | 1999-10-06 | 2003-08-12 | Dell Usa, L.P. | Method and system for automated technical support for computers |
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 |
US6556431B1 (en) | 1999-10-06 | 2003-04-29 | Dell Usa, L.P. | System and method for converting alternating current into direct current |
US6574615B1 (en) | 1999-10-06 | 2003-06-03 | 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 |
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 |
US6563698B1 (en) | 1999-10-06 | 2003-05-13 | Dell Usa, L.P. | System and method for providing a computer system with a detachable component |
US6564220B1 (en) | 1999-10-06 | 2003-05-13 | Dell Usa, L.P. | System and method for monitoring support activity |
US6317316B1 (en) | 1999-10-06 | 2001-11-13 | Dell Usa, L.P. | Method and system for integrated personal computer components |
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 |
US7155667B1 (en) | 2000-06-21 | 2006-12-26 | Microsoft Corporation | User interface for integrated spreadsheets and word processing tables |
US6874143B1 (en) * | 2000-06-21 | 2005-03-29 | Microsoft Corporation | Architectures for and methods of providing network-based software extensions |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
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 |
US7624356B1 (en) | 2000-06-21 | 2009-11-24 | Microsoft Corporation | Task-sensitive methods and systems for displaying command sets |
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 |
US7540031B2 (en) * | 2001-08-01 | 2009-05-26 | Mcafee, Inc. | Wireless architecture with malware scanning component manager and associated API |
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 |
US7028295B2 (en) * | 2001-10-31 | 2006-04-11 | Seiko Epson Corporation | Dynamic java class loading for application execution |
US7251812B1 (en) * | 2001-10-31 | 2007-07-31 | Microsoft Corporation | Dynamic software update |
US7076768B2 (en) * | 2001-10-31 | 2006-07-11 | Seiko Epson Corporation | Dynamic class packaging |
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 |
US7415672B1 (en) | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7296017B2 (en) | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML 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 | 삼성전자주식회사 | 정보 업데이트 방법 및 그 장치 |
US10922218B2 (en) * | 2019-03-25 | 2021-02-16 | Aurora Labs Ltd. | Identifying software interdependencies using line-of-code behavior and relation models |
Family Cites Families (5)
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 |
-
1996
- 1996-06-14 US US08/664,388 patent/US5790796A/en not_active Expired - Lifetime
-
1997
- 1997-06-10 WO PCT/US1997/010163 patent/WO1997048044A1/en active IP Right Grant
- 1997-06-10 DE DE69709959T patent/DE69709959T2/de not_active Expired - Lifetime
- 1997-06-10 EP EP97931132A patent/EP0978033B1/de not_active Expired - Lifetime
- 1997-06-10 CA CA002257692A patent/CA2257692C/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CA2257692C (en) | 2001-10-02 |
EP0978033B1 (de) | 2002-01-09 |
US5790796A (en) | 1998-08-04 |
EP0978033A1 (de) | 2000-02-09 |
DE69709959D1 (de) | 2002-02-28 |
CA2257692A1 (en) | 1997-12-18 |
WO1997048044A1 (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 | |
DE69030340T2 (de) | Makler für die Auswahl von Rechnernetzwerkservern | |
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 | |
DE68926428T2 (de) | Personalisierung von Benutzerschnittstellen für Anwendungsprogramme | |
DE69637436T2 (de) | Objektorientiertes Kommunikationssystem mit Unterstützung für mehrere entfernte Maschinentypen | |
DE69220093T2 (de) | Verarbeitungsnetzwerk für verteilte anwendungsprogramme. | |
DE69729926T2 (de) | Netzwerkbrowser | |
DE19836333C2 (de) | Software Installation und Testen für ein gemäß einer Bestellung gebautes Computersystem | |
DE69817158T2 (de) | Benutzerschnittstellen-Mechanismus zur Manipulierung von Kontexten in Computerverwaltungsapplikationen | |
DE68925474T2 (de) | Verriegelungsrechnersysteme | |
EP1456742B1 (de) | Verfahren, gerätesystem und computerprogramm zum speichern und abrufen von druckdaten in einem netzwerk | |
DE69202575T2 (de) | Verfahren und vorrichtung zur reduktion der datenmenge fuer die softwareinstallierung. | |
DE3688191T2 (de) | Editor für virtuelle Maschinen. | |
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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |