-
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.