-
Technisches Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft ein System und ein Verfahren für das Verwalten
der Verteilung von Inhalt zu einem Gerät.
-
Beschreibung des Standes
der Technik
-
Inhalt,
mit dem ein Gerät
ausgestattet werden soll, kann eine Vielzahl von unterschiedlichen Formen
annehmen. Beispielsweise können
Datenfiles dem Gerät
bereitgestellt werden für
die Verwendung mit bestimmten Applikationen, die auf dem Gerät installiert
sind. Weiterhin können
bestimmte Applikationsprogramme zu dem Gerät verteilt werden für die Installation
auf dem Gerät,
um neue Funktionen zu unterstützen,
beispielsweise Textverarbeitungsprogramme, Tabellenkalkulationsprogramme, E-Mail-Programme
usw.
-
Bis
heute hat sich der Hauptteil der Entwicklung von Techniken für die Verwaltung
der Verteilung von Inhalt zu Geräten
auf den Bereich von stationären
Computergeräten,
die mit einem Computernetzwerk verbunden sind, zentriert. Innerhalb
solch einer Umgebung ist es dann möglich, eine lokalisierte Verwaltungsunterstützungsstruktur
bereitzustellen, um Inhalt auf dem Netzwerk bereitzustellen und
um den Zugriff von einzelnen Geräten
auf diesen Inhalt zu steuern.
-
Beispielsweise
beschreibt die US-A-5,692,129 eine Technik für das Verwalten von Anwendungsprogrammen
in einem Computernetzwerk. Wenn ein Computernetzwerk innerhalb einer Organisation
bereitgestellt wird, ist es für
eine Verzeichnisdienst-Datenbank, die auf dem Computernetzwerk bereitgestellt
wird, üblich,
ein Verzeichnis vom "White-Pages"-Stil (Service, über den
nach Netzwerkbenutzern gesucht werden kann) betreffend Personen
und anderen Ressourcen innerhalb der Organisation bereitzustellen.
Häufig
sind solche Verzeichnisdienst-Datenbanken objektorientierte Datenbanken.
In Übereinstimmung
mit der Lehre der US-A-5,692,129 wird solch eine objektorientierte
Datenbank angepaßt,
um den Einschluß von
Applikationsobjekte definierenden Softwareapplikationen, die auf
dem Netzwerk verfügbar
sind, zu unterstützen. Weiterhin
werden bestimmte Typen von Objekten in der Datenbank, wie z. B.
Benutzerobjekte, angepaßt, um
die Spezifizierung von Desktop-Attributen zu erlauben. Ein Applikationsobjekt
kann dann als ein Desktop-Attribut für solch ein Objekt hinzugefügt werden,
um anzuzeigen, daß die
entsprechende Applikation dem Benutzer, der durch das Objekt dargestellt
wird, verfügbar
gemacht werden sollte.
-
Zusätzlich spezifiziert
die US-A-5,692,129 die Benutzung einer Startapplikation, die für einen bestimmten
Benutzer ausgelegt sein kann, um das Objekt des Benutzers abzufragen
und den Desktop des Benutzers anzupassen, um Icons für jede Applikation,
die durch Applikationsobjekte, die in den Desktop-Attributen des
Benutzerobjekts identifiziert sind, spezifiziert sind, bereitzustellen.
Somit kann durch den obigen Ansatz der Desktop des Benutzers automatisch
aktualisiert werden, um diejenigen Applikationen, die auf dem Netzwerk
installiert sind und dem Benutzer für den Zugriff verfügbar sind,
anzuzeigen. Die Applikationen selbst werden zentral auf dem Netzwerk
gehalten und der Benutzer greift auf sie über das Netzwerk zu.
-
Die
US-A-5,581,764 beschreibt eine Technik für die Verwaltung der Verteilung
von Inhalt zu einem Gerät.
In Übereinstimmung
mit der Technik der D1 wird eine hierarchische Inhaltsstruktur für eine Gruppe
von Geräten
entwickelt, die in D1 als Schema bezeichnet wird. Innerhalb des
Schemas werden eine oder mehrere dynamische Verbindungen bereitgestellt,
die, wenn eine "Should-have"-(SH-) Liste für jedes bestimmte Gerät erzeugt
wird, aufgelöst
werden, um zu bestimmen, welcher Inhalt zu diesem Gerät bereitgestellt
werden sollte. Um die Auflösung
der dynamischen Verbindungen zu ermöglichen, wird ein ursprünglicher
Abfrageprozeß erfordert,
um die Werte von bestimmten Variablen des Gerätes zu bestimmen.
-
Während diese
Technik klar vorteilhaft bei Computergeräten ist, die permanent mit
dem Netzwerk verknüpft
sind und somit in der Lage sind, Applikationen auf dem Netzwerk
ablaufen zu lassen, ist sie offensichtlich nicht geeignet für verteilte
Geräte, die
nur periodisch Verbindungen zu einem Netzwerk haben, und die, wenn
sie nicht mit einem Netzwerk verbunden sind, immer noch den Inhalt
selbst benötigen
(d. h. der Inhalt muß lokal
für ihre
eigene Verwendung gespeichert sein). Solch ein Szenario wird jedoch
immer üblicher
mit der Verbreitung von tragbaren Computergeräten, Mobiltelefonen, persönlichen
digitalen Assistenten (PDAs), elektronischen Organizern usw. Während es
eindeutig wünschenswert
für eine
Organisation ist, es Individuen innerhalb der Organisation zu erlauben,
solche tragbaren Geräte
zu verwenden, wird es signifikant schwieriger, die Verteilung von
Inhalt zu diesen Geräten
zu steuern und zu verwalten.
-
Zusammenfassung
der Erfindung
-
Von
einem ersten Aspekt aus gesehen stellt die vorliegende Erfindung
ein System für
die Verwaltung der Verteilung von Inhalt zu einer Vorrichtung zur
Verfügung,
das aufweist: eine Datenbank für
das Speichern einer Anzahl von Elementen als eine hierarchische
Struktur von Einrichtungen, von Inhaltsidentifizierern, die mit
Elementen in der hierarchischen Struktur verknüpft werden können, und
von einem der Elemente, die die Einrichtung repräsentieren; einem Server für das Herstellen
von Bezügen
zu der hierarchischen Struktur in der Datenbank, um ein Profil für die Einrichtung
zu erzeugen, wobei das Profil eine Anzahl von Inhaltsidentifizierem
enthält,
die den der Einrichtung zur Verfügung
zu stellenden Inhalt anzeigen, wobei das Profil alle Inhaltsidentifizierer,
die mit dem Element verknüpft
sind, das die Einrichtung darstellt, zusammen mit allen Inhaltsidentifizierern,
die mit Elementen in der hierarchischen Struktur verknüpft sind,
von denen dieses Element abhängt,
enthält;
einen Gerätemanager,
der mit dem Gerät
bzw. der Einrichtung verknüpft
und derart angeordnet ist, daß er
das Profil von dem Server empfängt
und die Inhaltsidentifizierer in dem Profil verwendet, um zu veranlassen,
daß der
Inhalt, der von dem Profil angezeigt wird, der Einrichtung zur Verfügung gestellt
wird, wobei ein Eintrag beibehalten wird, der den Inhalt identifiziert,
der in Übereinstimmung
mit dem Profil zu der Vorrichtung geliefert wurde, wobei der Gerätemanager
weiterhin derart angeordnet ist, daß er mit Empfang eines nachfolgenden Profils
von dem Server die Inhaltsidentifizierer in dem nachfolgenden Profil
mit dem Eintrag vergleicht, um den neuen Inhalt, der dem Gerät noch nicht
bereitgestellt wurde, und den nicht länger dem Gerät zur Verfügung zu
stellenden alten Inhalt zu bestimmen, wobei der Gerätemanager
derart angeordnet ist, daß er die
relevanten Inhaltsidentifizierer verwendet, um zu veranlassen, daß der neue
Inhalt der Einrichtung bzw. dem Gerät zur Verfügung gestellt wird, und um zu
veranlassen, daß der
alte Inhalt entfernt wird.
-
In Übereinstimmung
mit der vorliegenden Erfindung wird eine Datenbank bereitgestellt,
die es ermöglicht,
daß eine
Anzahl von Elementen als eine hierarchische Struktur gespeichert
werden, wobei zumindest eines der Elemente ein Gerät darstellt,
zu dem Inhalt verteilt wird. Die Inhaltsidentifizierer, die bestimmten
Inhalt identifizieren, können
dann mit Elementen in der hierarchischen Struktur verknüpft sein.
Weiterhin wird ein Server bereitgestellt, der in der Lage ist, auf
die hierarchische Struktur in der Datenbank Bezug zu nehmen, um
ein Profil für
ein bestimmtes Gerät
zu erzeugen, wobei das Profil eine Anzahl von Inhaltsidentifizierern
enthält,
wobei jeder Inhaltsidentifizierer einen Inhalt identifiziert, der
diesem Gerät
bereitzustellen ist. Ein Gerätemanager, der
mit dem Gerät
verknüpft
ist, ist dann in der Lage, auf den Empfang des Profils zu agieren,
um zu veranlassen, daß der
Inhalt, der durch das Profil angezeigt wird, zu dem Gerät bereitgestellt
wird, wobei ein Eintrag beibehalten wird, der den Inhalt, der in Übereinstimmung
mit dem Profil dem Gerät
zur Verfügung gestellt
wurde, identifiziert. Der Eintrag wird vorzugsweise in einem logischen
lokalen Speichergebiet relativ zu dem Gerät abgelegt, d. h. an einem
Ort, an dem das Gerät
immer lesen kann, unabhängig
davon, ob es mit einem Netzwerk verbunden ist.
-
Der
Gerätemanager
kann auf dem Gerät
gespeichert sein oder kann von dem Gerät entfernt sein. Im letzteren
Fall wird typischerweise jedoch irgendetwas resident auf dem Gerät selbst
sein, um zu veranlassen, daß der
Gerätemanager
ausgeführt wird,
beispielsweise irgendeine Konfigurationsinformation.
-
In Übereinstimmung
mit der vorliegenden Erfindung wird, wenn zu einem späteren Punkt
der Gerätemanager
ein nachfolgendes Profil von dem Server empfängt, dieses angeordnet, um
die Inhaltsidentifizierer in dem nachfolgenden Profil mit dem beibehaltenen
Eintrag zu vergleichen, um den Inhalt zu identifizieren, der dem
Gerät in Übereinstimmung
mit einem vorherigen Profil bereitgestellt wurde, um neuen Inhalt
zu bestimmen, der noch nicht zu dem Gerät geliefert wurde, und um alten
Inhalt zu bestimmen, der nicht länger
dem Gerät
bereitgestellt wird. Der neue Inhalt kann dann von dem Gerät abgerufen
werden, während
der alte Inhalt entfernt wird, beispielsweise durch tatsächliches
Löschen
dieses Inhalts oder durch das Entfernen von Zeigern auf den Inhalt in
dem lokalen Speicher des Gerätes.
-
Durch
diesen Ansatz ist das System der vorliegenden Erfindung in der Lage,
eine breite Vielfalt von unterschiedlichen Geräten zu unterstützen, die länger oder
kürzer
mit einem Netzwerk verbunden sind und die es notwendig machen können, den
Inhalt lokal zu speichern, um seine Verwendung zu erleichtern, während sie
nicht mit dem Netzwerk verbunden sind. Es sollte ebenso bemerkt
werden, daß das
System ebenso die Verwendung mit Geräten unterstützt, die permanent mit dem
Netzwerk verbunden sein können.
Durch die Verwendung der vorliegenden Erfindung kann der Inhalt,
der einem Gerät zur
Verfügung
gestellt wird, zentral verwaltet werden, so daß, sobald ein Inhaltsidentifizierer
mit dem geeigneten Element in der hierarchischen Struktur verknüpft wurde,
dann dieser Inhaltsidentifizierer in alle Profile, die danach für relevante
Geräte
vorbereitet werden, aufgenommen werden, wodurch der entsprechende
Gerätemanager
für solch
ein Gerät
veranlassen wird, daß Inhalt
das nächste
Mal, wenn das Profil empfangen wird, dem Gerät bereitgestellt wird. Angenommen
jedoch, daß der
Inhalt nicht lediglich zentral gehalten wird und auf diesen an dem
zentralen Punkt durch die Geräte
zugegriffen wird, sondern stattdessen typischerweise den Geräten zur
Verfügung
gestellt wird, erleichtert die vorliegende Erfindung weiterhin die
Entfernung von altem Inhalt von einem Gerät durch den Vergleich eines
nachfolgenden Profils, das von dem Server verteilt wird, mit einem
Eintrag, der zurückbehalten
wurde, um den Inhalt auf dem Gerät
zu identifizieren, der in Übereinstimmung
mit einem vorherigen Profil bereitgestellt wurde.
-
Es
sollte bemerkt werden, daß in
bevorzugten Ausführungsformen
die vorliegende Erfindung einen Benutzer eines Gerätes nicht
davon abhält, ebenso
seinen eigenen Inhalt auf dem Gerät zu installieren, da solch
ein Inhalt nicht in den Profilen enthalten wäre und somit durch die Steuerung
des Gerätemanagers
nicht dem Gerät
zur Verfügung
gestellt würde
oder von dem Gerät
entfernt würde.
Die vorliegende Erfindung ermöglicht
jedoch die Verteilung von bestimmtem Keminhalt zu Geräten, die
zu verwalten sind, so daß dieser
Inhalt bereitgestellt werden kann und im folgenden in einer strukturierten
Art und Weise entfernt werden kann, ohne daß die Beteiligung des Benutzers
des Gerätes
notwendig ist.
-
Der
Inhaltsidentifizierer kann eine Vielzahl von Formen einnehmen. In
bevorzugten Ausführungsformen
stellt jedoch jeder Inhaltsidentifizierer einen Namen für den entsprechenden
Inhalt und einen Ortsindikator bereit, der einen Ort identifiziert, von
dem der Inhalt erhalten werden kann. Wenn somit der Gerätemanager
danach trachtet, den Inhalt für
das Gerät
zu erhalten, kann der Ortsindikator in dem entsprechenden Inhaltsidentifizierer
verwendet werden, um den Ort zu bestimmen, von dem der Inhalt erhalten
werden kann. In bevorzugten Ausführungsformen
wird der Name nicht für
den Inhaltsabfrageprozeß benötigt, stellt
jedoch eine beschreibende Referenz für einen Netzwerkmanager, der
für das Verwalten
der hierarchischen Struktur auf der Datenbank verantwortlich ist,
und tatsächlich
dem Benutzer des Gerätes
zur Verfügung,
zu dem der Inhalt abgerufen wird.
-
Das
System in Übereinstimmung
mit bevorzugten Ausführungsformen
der vorliegenden Erfindung kann verwendet werden, um die Verteilung
einer Vielzahl von unterschiedlichen Inhaltstypen zu verwalten.
Somit identifiziert der Inhaltsidentifizierer vorzugsweise weiterhin
den Typ des entsprechenden Inhalts. Diese Information ist dann verfügbar für die Bezugnahme
von einem Netzwerkmanager, der für das
Verwalten der hierarchischen Struktur auf der Datenbank verantwortlich
ist. Dies kann beispielsweise einen nützlichen Plausibilitätscheck
bereitstellen, um dem Netzwerkmanager zu ermöglichen, sicherzustellen, daß Inhalt
nur den Geräten
zugewiesen wird, die in der Lage sind, diesen Inhaltstyp zu empfangen.
-
Es
versteht sich, daß der
Ortsidentifizierer eine Vielzahl von Formen einnehmen kann, vorausgesetzt,
daß er
dazu dient, den Ort zu identifizieren, von dem der Inhalt erhalten
werden kann. In bevorzugten Ausführungsformen
wird der Inhalt auf Servern abgelegt, die über das Internet kontaktierbar sind
und der Ortsindikator ist eine URL-Adresse.
-
Es
versteht sich, daß,
wenn ein Inhalt dem Gerät
bereitgestellt wird, vorbestimmte Aktionen von dem Gerät durchgeführt werden
müssen,
um den Inhalt korrekt zu empfangen und zu speichern. Das System
von bevorzugten Ausführungsformen
der vorliegenden Erfindung erleichtert dies durch das Bereitstellen
einer Anzahl von Softwarepaketen für das Verknüpfen mit einer Inhaltsinformation,
die erforderlich ist, um den Inhalt zu handhaben, wenn er von dem
Gerät empfangen
wird. Wenn somit ein Inhalt von dem Gerät empfangen wird unter Verwendung eines
Inhaltsidentifizierers in dem Profil, empfängt das Gerät nicht nur den Inhalt, sondern
ebenso jegliche in Bezug stehende Information, die erforderlich ist,
um die korrekte Handhabung des Inhalts innerhalb des Geräts sicherzustellen.
Dieser Inhalt und die in Bezug stehende Information, die dem Gerät bereitgestellt
wird, wird im folgenden als ein "Package" bezeichnet.
-
Wie
früher
erwähnt
wurde, kann die Verteilung einer Mehrzahl von unterschiedlichen
Typen von Inhalt durch das System verwaltet werden. Folglich wird
in bevorzugten Ausführungsformen
ein Packager bzw. ein Softwarepaket bzw. ein Inhaltstyp bereitgestellt.
-
Es
versteht sich, daß die
Information, die innerhalb des Packages bereitgestellt wird, um
zu beschreiben, wie der Inhalt gehandhabt werden soll, eine Vielzahl
von unterschiedlichen Formen annehmen kann, abhängig von dem Inhalt selbst.
Wenn beispielsweise der Inhalt ein Datenfile für eine bestimmte Anwendung
ist, beispielsweise ein Microsoft Word-File, dann wird das Package
den Inhalt als von diesem Typ seiend identifizieren und die Typinformation
kann von dem Gerätemanager
verwendet werden, um zu bestimmen, ob ein Installierer für das Installieren
von Inhalt dieses Typs existiert. Falls nicht, würde der Inhalt typischerweise
nur an einem voreingestellten Ort abgelegt, beispielsweise an einem,
der von dem Gerätemanager
spezifiziert wird. Wenn ein Installierer jedoch verfügbar ist,
dann wird dieser verwendet, um den Inhalt auf dem Gerät zu installieren. Angenommen,
ein Installierer wird verwendet, kann die Information in dem Package
ebenso die erforderliche Versionsnummer von Microsoft Word, die
erforderlich ist, um die Datei zu lesen, identifizieren. Der Installierer
würde dann
versuchen, diese Version von Word zu lokalisieren und beispielsweise
den Benutzer des Gerätes
warnen, wenn er sie nicht findet.
-
Wenn,
als ein anderes Beispiel, der Inhalt ein Applikationsprogramm ist,
dann muß es
im allgemeinen von einem Installierer geeignet auf dem Gerät installiert
sein. In solchen Fällen
kann in bevorzugten Ausführungsformen
die Information, die mit solch einem Inhalt verknüpft ist,
eine Identifikation aufweisen, welche Datei die ausführbare Hauptdatei
ist, eine Identifikation eines Icons aufweisen, das verwendet wird,
um das Programm auf dem Desktop darzustellen usw. Der relevante
Installierer kann dann diese Information nutzen, um zu ermöglichen, das
Anwendungsprogramm korrekt zu installieren.
-
Es
versteht sich, da Geräte
sich mit der Zeit verändern
können
und/oder die Verwendung eines bestimmten Gerätes sich mit der Zeit verändern kann,
was die Verknüpfung
von unterschiedlichen Inhalten mit dem Gerät notwendig machen kann, daß es notwendig
ist, in der Lage zu sein, die hierarchische Struktur in der Datenbank
effizient zu verwalten, um solchen Veränderungen Rech nung zu tragen. Folglich
hat das System von bevorzugten Ausführungsformen ein Verwaltungstool
für das
Bereitstellen einer Schnittstelle, um einen Benutzer in die Lage zu
versetzen, die hierarchische Struktur, die auf der Datenbank abgelegt
ist, zu verwalten. Wenn somit beispielsweise die hierarchische Struktur
verwendet wird, um eine große
Anzahl von Geräten
innerhalb einer Organisation darzustellen, kann ein Benutzer in der
Form eines Systemadministrators das Verwaltungstool verwenden, um
die hierarchische Struktur zu verwalten, um sicherzustellen, daß jedes
Gerät weiterhin
an einem geeigneten Punkt in der hierarchischen Struktur dargestellt
wird, so daß dieses
Gerät den
Inhalt empfängt,
von dem gewünscht
wird, daß er
dem Gerät
bereitgestellt wird.
-
Es
versteht sich, daß es
viele verschiedene Wege gibt, wie die hierarchische Struktur entwickelt werden
kann. In bevorzugten Ausführungsformen beinhalten
jedoch die Elemente innerhalb der hierarchischen Struktur eine oder
mehrere Divisionen; jede Division stellt eine logische Gruppierung
für die
Geräte
dar, wobei das Verwaltungstool es ermöglicht, daß die Divisionen erzeugt und
gelöscht
werden, und ermöglicht,
daß die
Inhaltsidentifizierer mit jeder Division verknüpft werden. Folglich ist es
möglich,
daß oben
in der hierarchischen Struktur eine generische Division bereitgestellt
wird, in die alle Geräte
fallen werden, und dann bestimmte Divisionen zu erzeugen, die von
der generischen Division abhängig
sind. Beispielsweise kann eine Division des technischen Supports
bereitgestellt werden, die alle Geräte beinhaltet, die von dem
Personal des technischem Supports verwendet werden, während eine
getrennte Kundenunterstützungsdivision
erzeugt werden kann, die alle Geräte, die von dem Kundenunterstützungspersonal
verwendet werden, beinhaltet. Es sollte erwähnt werden, daß der Benutzer,
z. B. der Systemadministrator, in der Lage ist, Divisionen zu erzeugen und
zu löschen,
sofern und wenn dies notwendig ist, um eine geeignete hierarchische
Struktur zu entwickeln, innerhalb der die Geräte, die innerhalb der hierarchischen
Struktur dargestellt werden, kategorisiert werden.
-
Es
sollte erwähnt
werden, daß,
da Inhaltsidentifizierer mit jeder Division verknüpft werden können, Inhalt,
der für
alle Geräte
innerhalb einer bestimmten Division gleich ist, nicht einzeln für jedes Gerät spezifiziert
werden muß,
sondern lediglich einmal in Verbindung mit der entsprechenden Division spezifiziert
sein kann. In bevorzugten Ausführungsformen
enthält
das Profil, das von dem Server erzeugt wird, alle Inhaltsidentifizierer,
die mit dem Gerät verknüpft sind,
und alle Inhaltsidentifizierer, die mit einer Division verknüpft sind,
von der das Gerät
in der hierarchischen Struktur abhängt. Es versteht sich, daß dies signifikant
die Effizienz verbessert, mit der Inhalt mit irgendeinem bestimmten
Gerät verknüpft werden
kann. Wenn weiterhin ein Gerät
von einer Division zu einer anderen bewegt wird, wird, wenn das nächste Mal
ein Profil für
dieses Gerät
erzeugt wird, dieses automatisch ein aktualisiertes Profil empfangen,
das den Inhalt anzeigt, der für
das Gerät
in seiner neuen Rolle relevant ist. Jeglicher neue Inhalt wird dann
automatisch abgerufen, während
alter Inhalt entfernt wird.
-
In
bevorzugten Ausführungsformen
der vorliegenden Erfindung ermöglicht
das Verwaltungstool, daß Personenidentifizierer,
die Individuen identifizieren, als Elemente in der hierarchischen
Struktur bereitgestellt werden, wobei das Verwaltungstool verwendet
werden kann, um innerhalb der hierarchischen Struktur das Gerät mit dem
Einzelnen, dem das Gerät
gehört,
zu verknüpfen.
Dieser Einschluß dieser
Extra-Klassifikation ist nützlich,
da häufig
ein bestimmtes Individuum in einer Organisation mehr als ein Gerät haben
kann, und Anfragen für
jedes seiner/ihrer Geräte,
die mit bestimmtem Inhalt beliefert werden sollen, übermitteln
kann. Da die einzelnen Geräte
dann von dem relevanten Personenidentifizierer in der hierarchischen
Struktur abhängen
können,
ist es für
den Systemadministrator einfach, dann den neuen Inhalt mit jedem
Gerät zu
verknüpfen. Weiterhin,
wenn sich Individuen innerhalb der Organisation bewegen, ist der
Systemadministrator in der Lage, die relevanten Personenidentifizierer
zwischen den Divisionen zu bewegen. Dies wird automatisch verursachen,
daß alle
Geräte
dieser Person sich ebenso bewegen und daß für den relevanten Inhalt für diese
Geräte
dann das nächste
Mal, wenn ein Profil zu diesen Geräten geliefert wird, bereitgestellt wird.
-
Es
versteht sich, daß es
eine Anzahl von Mechanismen gibt, die verwendet werden könnten, um das
Profil den Geräten
bei vorbestimmten Intervallen zur Verfügung zu stellen. Wenn beispielsweise
ein Gerät
permanent mit dem Netzwerk verbunden ist, dann könnte der Server angeordnet
sein, um das Profil in periodischen Abschnitten zu erzeugen. In
bevorzugten Ausführungsformen
unterstützt
jedoch das System Geräte
von vielen unterschiedlichen Typen, wovon zumindest einige nicht
permanent mit dem Netzwerk verbunden sein müssen. In dieser Situation ist
es somit notwendig, daß die
Profile erzeugt und verteilt werden, wenn das Gerät mit dem
Netzwerk verbunden wird. Folglich wird in bevorzugten Ausführungsformen
der Gerätemanager
ausgelegt, um eine Verbindung mit dem Server in vorbestimmten Zeitabständen aufzubauen,
um das Profil abzurufen, wobei der Gerätemanager das Gerät identifiziert,
für das das
Profil erforderlich ist.
-
Somit
kann beispielsweise der Gerätemanager
das Profil, unmittelbar nachdem das Gerät eingeschaltet wurde, abfragen,
wobei solch ein Ansatz für bandbreitenbeschränkte Geräte geeignet
ist, die nur mit der Verfügbarkeit
eines Netzwerks arbeiten können,
z. B. GSM-Receiver. Alternativ kann der Gerätemanager ein Profil, unmittelbar
nachdem eine Netzwerkverbindung errichtet wurde, abfragen, wobei solch
ein Ansatz für
diejenigen Geräte
geeignet ist, die vollständig
ohne Netzwerkverfügbarkeit
arbeiten, von denen aber angenommen wird, daß sie gelegentlich Verbindung
herstellen, z. B. tragbare Computer. Alternativ dazu kann als ein
anderes Beispiel der Gerätemanager
derart angeordnet sein, daß er
das Profil auf einer periodischen Basis nach diskreten Zeitintervallen
abfragt, wobei solch ein Ansatz für permanent verbundene Geräte mit hohen
Bandbreiten, beispielsweise Kabelfernsehempfänger und Netzwerkcomputer,
geeignet ist.
-
Wie
vorher erwähnt
wurde, kann die Verteilung einer Mehrzahl von unterschiedlichen
Inhaltstypen von dem System verwaltet werden. In bevorzugten Ausführungsformen
ist zumindest einer der Typen ein Computerprogramm.
-
Die
Datenbank, die verwendet wird, um die hierarchische Struktur zu
speichern, kann eine Vielzahl von Formen einnehmen. In bevorzugten
Ausführungsformen
ist jedoch die Datenbank eine relationale Datenbank. Es sollte erwähnt werden,
daß in
dieser bevorzugten Ausführungsform
diese Datenbank vollständig
getrennt von jeder Verzeichnisservicedatenbank ist, die als eine "White-Pages"-Datenbank für Ressourcen
innerhalb einer Organisation bereitgestellt werden kann. Es wurde
ebenso gefunden, daß es
von Vorteil ist, diese Datenbank getrennt von der Verzeichnisservice datenbank
zu halten, da dies die Datenbank von ihrer Bindung durch die Struktur, die
bereits in der Verzeichnisservicedatenbank vorhanden ist, befreit.
Während
bestimmte Details über Ressourcen
in der Organisation von der Verzeichnisservicedatenbank für die Verwendung
in der Datenbank, die verwendet wird, um die Inhaltsverteilung zu verwalten,
erhalten werden können,
wird stattdessen die tatsächliche
hierarchische Struktur der Datenbank frei bestimmt nur im Hinblick
auf die zu verwaltenden Geräte
und den Inhalt, der zu verteilen ist. Dies ermöglicht es, daß eine sehr
effiziente hierarchische Struktur erzeugt wird.
-
Von
einem zweiten Aspekt aus gesehen stellt die vorliegende Erfindung
ein Computerprogrammprodukt zur Verfügung, das ein Computerprogramm zur
Verfügung
stellt, das betreibbar ist, um einen Server für die Verwendung in einem System
gemäß dem ersten
Aspekt der vorliegenden Erfindung zu konfigurieren, wobei das Computerprogramm
im Betrieb derart ausgelegt ist, daß es veranlaßt, daß der Server die
Schritte ausführt
von: Zugreifen auf eine Datenbank, die eine Anzahl von Elementen
als eine hierarchische Struktur von Einrichtungen bzw. Geräten, die Inhaltsidentifizierer,
die in der Lage sind, mit Elementen in der hierarchischen Struktur
verknüpft
zu sein, und eines der Elemente, das ein Gerät darstellt, zu dem Inhalt
verteilt werden soll, zur Verfügung
stellt, und Bezugnehmen auf die hierarchische Struktur in der Datenbank,
um ein Profil für
das Gerät
zu erzeugen, wobei das Profil jeden Inhaltsidentifizierer, der mit
dem Element, das die Einrichtung darstellt, verknüpft ist,
zusammen mit allen Inhaltsidentifizierern, die mit Elementen in
der hierarchischen Struktur verknüpft sind, von denen dieses
Element abhängt,
enthält.
-
In
einer Ausführungsform
ist das Computerprogrammprodukt weiterhin derart betreibbar, daß es einen
Computer derart konfiguriert, daß er eine Schnittstelle zur
Verfügung
stellt, um es einem Benutzer zu ermöglichen, die hierarchische
Struktur, die in der Datenbank abgelegt ist, zu verwalten.
-
In
einer Ausführungsform
ist das Computerprogrammprodukt weiterhin derart betreibbar, daß es einen
Computer konfiguriert, um eine Verknüpfung mit einer Inhaltsinformation
durchzuführen,
die erforderlich ist, um den Inhalt zu handhaben, wenn er von dem
Gerät empfangen
wird.
-
Von
einem dritten Aspekt aus gesehen stellt die vorliegende Erfindung
ein Computerprogrammprodukt bereit, das ein Computerprogramm bereitstellt,
das betreibbar ist, um einen Gerätemanager
eines Geräts
für die
Verwendung in dem System gemäß dem ersten
Aspekt der vorliegenden Erfindung zu konfigurieren, wobei das System
eine Datenbank hat, die eine Anzahl von Elementen als eine hierarchische
Struktur der Geräte,
die Inhaltsidentifizierer, die mit den Elementen in der hierarchischen
Struktur verknüpft
werden können,
und eines der Elemente, die das Gerät darstellen, bereitstellt,
wobei das Computerprogramm im Betrieb derart ausgelegt ist, daß es den
Gerätemanager
veranlaßt,
die folgenden Schritte auszuführen:
Empfangen eines Profils von einem Server, wobei das Profil durch
Bezugnahme auf die hierarchische Struktur in der Datenbank erzeugt
wurde, um ein Profil für
das Gerät
zu erzeugen, wobei das Profil eine Anzahl von Inhaltsidentifizierern enthält, die
den Inhalt, der dem Gerät
bereitgestellt werden soll, anzeigen, wobei das Profil jeden Inhaltsidentifizierer,
der mit dem Element, das das Gerät darstellt,
verknüpft
ist, zusammen mit allen Inhaltsidentifizierern, die mit Elementen
in der hierarchischen Struktur verknüpft sind, von der dieses Ele ment
abhängt,
enthält,
Verwenden der Inhaltsidentifizierer in dem Profil, um zu veranlassen,
daß der
Inhalt, der von dem Profil angezeigt wird, dem Gerät bereitgestellt
wird, mit Empfang eines nachfolgenden Profils von dem Server, Vergleichen
der Inhaltsidentifizierer in dem nachfolgenden Profil mit einem
Eintrag, der den Inhalt identifiziert, der dem Gerät in Übereinstimmung
mit einem vorherigen Profil bereitgestellt wurde, um neuen Inhalt,
der noch nicht zu dem Gerät
geliefert wurde, und alten Inhalt, der nicht länger zu dem Gerät geliefert
wird, zu bestimmen, und Verwenden der relevanten Inhaltsidentifizierer, um
zu veranlassen, daß der
neue Inhalt zu dem Gerät
geliefert wird, und um zu veranlassen, daß der alte Inhalt entfernt
wird.
-
Von
einem vierten Aspekt aus gesehen stellt die vorliegende Erfindung
ein Verfahren zum Verwalten der Verteilung von Inhalt zu einem Gerät zur Verfügung, das
die Schritte aufweist: Speichern einer Anzahl von Elementen als
eine hierarchische Struktur der Geräte in einer Datenbank, Speichern
von Inhaltsidentifizierern, die in der Lage sind, mit Elementen
in der hierarchischen Struktur verknüpft zu werden, und Speichern
eines der Elemente, welches das Gerät repräsentiert, Bezugnehmen auf die
hierarchische Struktur in der Datenbank, um ein Profil für das Gerät zu erzeugen,
wobei das Profil eine Anzahl von Inhaltsidentifizierern enthält, die
den zu dem Gerät
zu liefernden Inhalt anzeigen, wobei das Profil alle Inhaltsidentifizierer,
die mit dem Element, das das Gerät
darstellt, verknüpft
sind, zusammen mit allen Inhaltsidentifizierern enthält, die
mit Elementen in der hierarchischen Struktur verknüpft sind,
von denen dieses Element abhängt,
Veranlassen unter Bezug auf die Inhaltsidentifizierer in dem Profil,
daß der
Inhalt, der von dem Profil angezeigt wird, dem Gerät zur Verfügung gestellt
wird, Beibehalten eines Eintrages, der den Inhalt identifiziert,
der in Übereinstimmung
mit dem Profil zu dem Gerät
geliefert wurde, Vergleichen mit Empfang eines nachfolgenden Profils
der Inhaltsidentifizierer in dem nachfolgenden Profil mit dem Eintrag,
um neuen Inhalt, der noch nicht zu dem Gerät geliefert wurde, und alten
Inhalt, der nicht länger
dem Gerät
zur Verfügung
gestellt wird, zu bestimmen, und Verwenden der relevanten Inhaltsidentifizierer,
um zu veranlassen, daß neuer Inhalt
zu dem Gerät
geliefert wird, und um zu veranlassen, daß alter Inhalt entfernt wird.
-
Kurze Beschreibung der
Figuren
-
Die
vorliegende Erfindung wird weiter nur beispielhaft unter Bezug auf
eine bevorzugte Ausführungsform
hiervon beschrieben, wie sie in den begleitenden Zeichnungen dargestellt
ist, in denen:
-
1A, 1B und 1C Blockdiagramme
sind, die schematische Darstellungen von Ausführungsformen der vorliegenden
Erfindung bereitstellen,
-
2 ein weiteres Blockdiagramm
ist, das einen Architekturüberblick
eines Systems in Übereinstimmung
mit bevorzugten Ausführungsformen
der vorliegenden Erfindung bereitstellt,
-
3 detaillierter die Verbindungen
zu dem Server in Übereinstimmung
mit bevorzugten Ausführungsformen
der vorliegenden Erfindung darstellt,
-
4–8 eine
Benutzerschnittstelle darstellen, die in bevorzugten Ausführungsformen
der vorliegenden Erfindung verwendet werden, um einen Systemadministrator
in die Lage zu versetzen, die hierarchische Struktur, die in der
Datenbank abgelegt ist, zu verwalten,
-
9 und 10 eine Darstellung von vereinfachten
Beispielen der hierarchischen Struktur bereitstellen, die innerhalb
der Datenbank abgelegt werden kann,
-
11 ein Flußdiagramm
ist, das die Schritte darstellt, die innerhalb eines Netzwerkgerätes durchgeführt werden,
um ein Profil abzufragen, und um auf das Profil zu reagieren, wenn
dieses erhalten wird,
-
12 ein Flußdiagramm
ist, das die Schritte darstellt, die in dem Server durchgeführt werden, um
ein Profil zu dem Client zu liefern,
-
13A–13D Flußdiagramme
sind, die detaillierter die Prozedur darstellen, die innerhalb eines Netzwerkgerätes durchgeführt wird,
um auf dem empfangenen Profil von dem Server zu agieren,
-
14 ein Flußdiagramm
ist, das detaillierter darstellt, wie das Profil von dem Server
in Übereinstimmung
mit bevorzugten Ausführungsformen der
vorliegenden Erfindung präpariert
wird und
-
15 eine schematische Darstellung
bereitstellt, wie Packer in bevorzugten Ausführungsformen verwendet werden,
um den Inhalt für
die Verteilung zu packen.
-
Beschreibung einer bevorzugten
Ausführungsform
-
In
der Vergangenheit wurde eine relativ statische Anzahl von stationären Computergeräten durch eine
lokalisierte Unterstützungsstruktur
verwaltet, die in der Lage ist, komplexe Desktop-Umgebungen zu konfigurieren. Die Zukunft
bietet uns jedoch die Aussicht auf einen Überfluß an Geräten, ob sie nun Computergeräte oder
andere elektronische Geräte
sind, wie z. B. Mobiltelefone, persönliche digitale Assistenten
(PDAs), elektronische Organizer usw., die geographisch fest sein
können
oder nicht. Dies wird ein alternatives Verwaltungssystem erfordern,
das flexibler ist.
-
Die
bevorzugten Ausführungsformen
der vorliegenden Erfindung bezwecken, solch ein alternatives Verwaltungssystem
bereitzustellen für
die verteilte Verwaltung von Netzwerkgeräten innerhalb eines Netzwerkes.
Der Begriff "Netzwerkgerät", so wie er hier
verwendet wird, ist dafür
vorgesehen, sich auf ein Gerät
zu beziehen, dessen Inhalt durch das System der bevorzugten Ausführungsformen
der vorliegenden Erfindung verwaltet wird, ist jedoch nicht dafür vorgesehen,
zu implizieren, daß irgendein
solches Gerät
permanent mit einem Netzwerk verbunden ist. Für die Zwecke der bevorzugten
Ausführungsformen
der vorliegenden Erfindung ist es ausreichend, daß jedes
solche "Netzwerkgerät" in der Lage ist,
zumindest gelegentlich Verbindungen zu einem Netzwerk herzustellen,
entweder direkt oder über
irgendein anderes Gerät.
Beispielsweise können
bestimmte Geräte
ihre Verwaltung zu anderen Geräten übertragen,
die wiederum in der Lage sein müssen,
gelegentlich Netzwerkverbindungen herzustellen. Beispielsweise sind
bestimmte Geräte
vom PDA-Stil nicht
inhärent
netzwerkfähig,
sondern verlassen sich auf einen PC, um bestimmte Dinge für sie zu
tun, wie z. B. neue Programme zu installieren. Da der PC gelegentlich
Netzwerkverbindungen herstellen kann, werden die PDAs ebenso "Netzwerkgeräte" sein, die von dem
System in Übereinstimmung
mit bevorzugten Ausführungsformen
der vorliegenden Erfindung verwaltet werden können.
-
Jedes
Netzwerkgerät
ist in bevorzugten Ausführungsformen
mit einem Client-Programm (das alternativ hier als Gerätemanager
bezeichnet werden kann) ausgestattet, das derart ausgelegt ist,
daß es mit
einem Server in Kommunikationsverbindung steht, wobei der Server
Inhaltsdetails (beispielsweise Programme oder Daten) beibehält, von
denen gewünscht
wird, daß sie
auf jedem Gerät
präsent
sind. In bevorzugten Ausführungsformen
identifiziert das Client-Programm dem Server das Netzwerkgerät und der
Server sendet ein Profil des Inhalts, von dem gewünscht ist,
daß er
auf diesem Gerät
präsent
ist, zu. Das Client-Programm konfiguriert dann vorzugsweise das
Netzwerkgerät,
so daß es
den Inhalt, der in dem Profil identifiziert wird, enthält, wobei
jeglicher Inhalt, der gegenwärtig
nicht auf dem Gerät
präsent ist,
jedoch in dem Profil identifiziert wird, in einer vorbestimmten
Art und Weise abgerufen wird.
-
In
bevorzugten Ausführungsformen
der vorliegenden Erfindung arbeiten das Client-Programm und der Server auf einer JavaTM-Plattform. Die Allgegenwart von JavaTM auf Plattformen, so verschieden wie Kabelfernsehempfänger und
Mobiltelefone, erlaubt die Möglichkeit,
zentral nahezu jede Geräteart, die
vollkommen entfernt ist, zu steuern, vorausgesetzt, daß zumindest
gelegentlich erfolgreich Netzwerkverbindungen errichtet werden,
um zu ermöglichen,
daß diese
Steuerung stattfindet.
-
In
bevorzugten Ausführungsformen
der Erfindung ist das Client-Programm auf jedem Netzwerkgerät verantwortlich
für das
autonome Aktualisieren der Konfiguration des Gerätes. Abhängig von der Art des Gerätes wird
das Client-Programm in vorbestimmten Intervallen ausgeführt, nämlich entweder:
- 1. unmittelbar nachdem das Gerät eingeschaltet wurde,
- 2. unmittelbar nachdem eine Netzwerkverbindung errichtet wurde
oder
- 3. in diskreten Zeitintervallen.
-
Das
erste Szenario ist vorgesehen für
bandbreitenbeschränkte
Geräte,
die nur mit der Verfügbarkeit
eines Netzwerkes arbeiten können,
z. B. GSM-Empfänger.
Das zweite wird für
diejenigen Geräte
verwendet, die vollständig
ohne Netzwerkverfügbarkeit
funktionsfähig
sind, von denen jedoch angenommen wird, daß sie gelegentlich Netzwerkverbindungen
herstellen, z. B. tragbare Computer. Das dritte Szenario ist für Geräte mit hoher
Bandbreite, die permanent verbunden sind, gedacht, wie Kabelfernsehempfänger und
Netzwerkcomputer.
-
Das
Client-Programm kommuniziert die Identität des Gerätes zu einem Server, der mit
einem Inhaltsprofil (z. B. Programme oder Daten) antwortet, der
von einer Netzwerkautorität
gewünscht
wird, daß sie
auf diesem Gerät
präsent
ist. Der Server überträgt nicht
den Inhalt, sondern stattdessen den Ort, von dem der Inhalt abgerufen
werden kann. Der Client zeichnet jeden Inhalt auf, den er abruft,
so daß er
in der Lage ist, selektiv neuen oder aktualisierten Inhalt abzurufen
und Inhalt, der nicht länger
erforderlich ist, zu löschen,
wobei somit alle Verantwortlichkeit des Gerätebenutzers, das Gerät zu verwalten,
abgeschafft wird.
-
Die
Netzwerkautorität
ist die Entitäts
mit Verantwortung für
das Festlegen des Profils der Geräte. Diese Aufgabe wird einfacher
gemacht durch die Verwendung einer hierarchischen Definition/Struktur,
d. h. jedes Gerät
wird dargestellt als ein Mitglied einer logischen Gruppierung, die
Division oder Bereich genannt wird. Jede Division kann wiederum
Mitglied einer anderen Division sein in der Art eines linearen Baumes,
bis der gemeinsame Vorfahr erreicht wird. Ein Profil kann für jede Division
definiert sein. Somit besteht ein Profil für ein Gerät aus jeglichem Inhalt, der
ihm explizit zugewiesen ist innerhalb der hierarchischen Definition
plus dem seiner Division plus dem der Elterndivision usw. bis zu
der Wurzeldivision. Beispielsweise unter Bezug auf 10, wo die Gerätenamen mit Klammern eingeschlossen
sind, wird das Profil von Adelie nicht nur durch seine eigene Konfiguration,
sondern ebenso durch die von Penguin, Bird und All definiert. Daher,
falls Adelie Teil der Gull-Division würde, würde es immer noch die Konfiguration
von Bird and All haben, würde
jedoch nun die von Gull beinhalten statt der von Penguin.
-
Schematische Übersichten
von beispielhaften Ausführungsformen
des Systems der vorliegenden Erfindung sind in den 1A–1C dargestellt.
-
1A stellt eine mögliche Ausführungsform
der vorliegenden Erfindung dar, in der eine Anzahl von Netzwerkgeräten 10 über ein
LAN 50 mit einem Server 30 verbunden sind. In
dieser Ausführungsform
sind die Netzwerkgeräte
wahrscheinlich PCs, müssen
dies jedoch nicht sein, und könnten
tatsächlich
irgendein anderes geeignetes elektronisches Gerät sein, beispielsweise ein
Router, ein intelligenter Hub usw. Weiterhin könnten die Netzwerkgeräte persönliche Organizer,
PDAs usw. sein, die über einen
PC mit dem Netzwerk verbunden sein können.
-
Der
Server 30 ist mit einer Datenbank 40 verbindbar,
die eine hierarchische Definition enthält, die die Geräte identifiziert
und den Inhalt, der mit diesen Geräten verknüpft wird. Ein Systemadministrator kann
die hierarchische Definition verwalten durch Verbinden mit dem Server 30 über ein
Systemadministrationsgerät 20.
Der Ort des Systemadministrationsgeräts kann verändert werden, jedoch ist in
dem Beispiel von 1 das
Systemadministrationsgerät mit
dem Server über
das LAN 50 verbunden.
-
Jedes
Netzwerkgerät 10 wird
in bevorzugten Ausführungsformen
ein Client-Programm haben, das hierauf installiert ist und derart
ausgelegt ist, daß es mit
dem Server 30 kommuniziert, um ein Profil für das jeweilige
Netzwerkgerät
zu erhalten, wobei das Profil von dem Server unter Berücksichtigung
der hierarchischen Definition abgeleitet wird. Das System in Übereinstimmung
mit 1A stellt somit
die verteilte Verwaltung von diesen Netzwerkgeräten zur Verfügung, da
die hierarchische Definition zentral aufbewahrt wird und dann werden
die Client-Programme unter den relevanten Netzwerkgeräten verteilt.
Weiterhin kann die hierarchische Definition direkt von dem Server
verwaltet werden oder kann alternativ von einem verteilten Punkt
verwaltet werden, wie z. B. dem Systemadministrationsgerät 20.
-
1B stellt eine Illustration
einer alternativen Ausführungsform
dar, in der die vorliegende Erfindung verwendet werden kann. In
dieser Ausführungsform
sind die Netzwerkgeräte über ein
mobiles Telekommunikationsnetzwerk verbunden und die Netzwerkgeräte 10 werden
elektronische Geräte sein,
die derart angeordnet sind, daß sie über das mobile
Netzwerk kommunizieren, bei spielsweise Mobiltelefone oder Laptop-Computer
mit Mobiltelefonfähigkeit.
In dieser Ausführungsform
ist der Server 30 über
eine Telekommunikationsinfrastruktur 60 mit einer Anzahl
von Transmittern/Receivern 70 verbunden, die verwendet
werden, um mit den Netzwerkgeräten 10 zu
kommunizieren. Das System arbeitet im wesentlichen in der gleichen
Art und Weise wie die, die unter Bezug auf 1A beschrieben wurden, wobei jedes Netzwerkgerät 10 mit
einem Client-Programm ausgestattet ist, um zu ermöglichen,
daß es mit
dem Server 30 kommuniziert. Es sollte erwähnt werden,
daß das
Systemadministrationsgerät,
das von dem Systemadministrator verwendet wird, um die hierarchische
Definition innerhalb der Datenbank 40 zu verwalten, irgendwo
innerhalb des Netzwerks sein kann, und somit auf dem Server 30 sein
kann oder tatsächlich
von einem Netzwerkgerät
irgendwo innerhalb des Telekommunikationsnetzwerkes bereitgestellt
sein kann.
-
In
bevorzugten Ausführungsformen
der vorliegenden Erfindung können
viele unterschiedliche Typen von Geräten verwaltet werden, die mit
dem Server 30 über
unterschiedliche Mechanismen verbunden sein können. Dies ist schematisch
dargestellt durch die in 1C gezeigte
Ausführungsform.
Hier können
bestimmte Netzwerkgeräte 100,
beispielsweise Desktop-Systeme, eine Verbindung zu dem Server direkt über eine
Ethernet-Verbindung 130 herstellen. Weiterhin können andere
Netzwerkgeräte 110,
beispielsweise Taschen-Organizer, Mobiltelefone usw., über Funkverbindungen
mit einem Transmitter/Receiver 70 mit dem Server eine Verbindung
herstellen. Zusätzlich
können
andere Netzwerkgeräte 120,
beispielsweise ein Laptop-Computer oder ein Multimedia-PC, eine
Verbindung zu dem Server über das
Internet 140 herstellen.
-
Wie
vorher erwähnt
wurde, ist das System von bevorzugten Ausführungsformen für Geräte verfügbar, die
zumindest gelegentliche Netzwerkverbindungen unterstützen. In
bevorzugten Ausführungsformen
verwendet das System Java- und Internettechnologien, um die Fernverwaltung
von einem diversen Bereich von Geräten zu ermöglichen. 2 stellt eine Darstellung des Architekturüberblicks
des Systems von bevorzugten Ausführungsformen
zur Verfügung.
Der Server 30 verwendet die Remote Method Invocation (RMI)
von Java und die Jini-Konnektivität, um sich selbst für die Client-Programme 200 als
Konfigurationsdienst verfügbar
zu machen. RMI ist ein Java-Mechanismus,
der es zwei Programmen erlaubt, transparent über ein Netzwerk zu kommunizieren.
Jini ist eine Software-Infrastruktur, die es ermöglicht, daß Dienste über das Netzwerk verfügbar gemacht
werden, wobei der Leser auf die Website http://www.sun.com/jini/
für weitere
Details hingewiesen wird.
-
Weiterhin
verwendet der Server Standard-Internetprotokolle, wie z. B. HTTP
oder FTP, um Inhalt zu verteilen. Somit kann, wie in 2 dargestellt ist, ein Client-Programm 200,
das auf einem Netzwerkgerät
resident ist, eine Verbindung zu dem Server 30 über entweder
RMI- 220 oder Jini- 230 Mechanismen herstellen,
um ein Profil von dem Server abzurufen und zu empfangen. Weiterhin
kann ein Verwaltungstool 210 (vorzugsweise ein Computerprogramm)
auf einem Gerät
des Systemadministrators beispielsweise einen RMI-Mechanismus 220 verwenden,
um Elementen (z. B. Divisionen, Geräten) innerhalb der hierarchischen
Struktur, die auf der Datenbank 40 aufbewahrt wird, neuen
Inhalt zuzuweisen. Zusätzlich, wenn
das Profil empfangen wurde, kann das Client- Programm 200 den Inhalt von
den Servern 250, 260 über das Internet 240 unter
Verwendung der Standard-Internetprotokolle, wie z. B. HTTP oder FTP,
wie geeignet sammeln.
-
Es
sollte erwähnt
werden, daß das
System der bevorzugten Ausführungsform
eine hochverteilte Anwendung ist. Die Datenbank 40, der
Server 30, das Verwaltungstool 210 und tatsächlich jeder
Verzeichnisserver, der verwendet werden kann, um Information zu
erhalten, um sie innerhalb der Datenbank 40 zu verwenden,
können
alle auf getrennten Maschinen lokalisiert sein.
-
3 stellt mehr Details über die
Art zur Verfügung,
auf die der Server in Übereinstimmung
mit bevorzugten Ausführungsformen
der vorliegenden Erfindung verbunden wird. Der Server 30 ist
dafür ausgelegt,
sich in existierende Server zu integrieren. Somit kann ein Datenbank-Back-End 40 verwendet werden,
um die hierarchische Struktur zu speichern, die von dem Server verwendet
wird, um Profile für Netzwerkgeräte zu erzeugen.
Die Java-Datenbankkonnektivität
(JDBC) erleichtert die Verbindung von dritten Datenbanken mit dem
Server 30. Mehr Informationen betreffend JDBC können unter
der Web-Adresse http://java.sun.com/products/jdbc/ abgerufen werden.
-
Weiterhin
kann ein Standard-Verzeichnisserver, wie z. B. LDAP (ein Internet-Standardverzeichnisserver),
ein NDS usw., mit dem Server 30 verbunden sein, um zu erlauben,
daß Informationen über bestimmte
Benutzer innerhalb der Organisation von dem Server 30 erhalten
werden. Wie in 3 dargestellt
ist, erlaubt es die Java-Naming- und -Directory-Schnittstelle (JNDI),
daß unterschiedliche
Typen von Verzeichnisservern mit dem Server 30 verbunden
werden. Für
mehr Informationen über
JNDI wird der Leser auf die Website http://java.sun.com/products/jndi/
verwiesen. Während
es klar ist, daß die hierarchische
Struktur in der Datenbank 40 von Anfang an durch den Server 30 erzeugt
werden könnte, ist
es sehr wahrscheinlich, daß eine
Organisation, die wünscht,
daß ihre
Geräte
in Übereinstimmung
mit dem System von bevorzugten Ausführungsformen der vorliegenden
Erfindung verwaltet werden, bereits einen Verzeichnisserver haben
wird, der relevante Details über
die Benutzer usw. angibt. Somit kann die Aufgabe des Erzeugens der
hierarchischen Struktur in der Datenbank 40 erheblich vereinfacht
werden durch das Ermöglichen,
daß der
Server 30 die relevanten Details über Benutzer usw. von irgendeinem Standard-Verzeichnisserver,
der bereits innerhalb der Organisation bereitgestellt wird, erhält.
-
Weiterhin
hat es sich als höchst
wünschenswert
erwiesen, die hierarchische Struktur, die verwendet wird, um die
Verteilung von Inhalt zu Geräten zu
verwalten, in einer vollständig
getrennten Datenbank 40 abzulegen, statt zu versuchen,
die zusätzliche
Information in der eher festen Struktur einer existierenden Verzeichnisserver-Datenbank
aufzunehmen, da dies weit mehr Flexibilität in der Erzeugung von geeigneten
Divisionen und Orten von Geräten
innerhalb der Divisionen in Bezug auf die zu verwaltenden Geräte und den
Inhalt, der zu diesen Geräten verteilt
werden soll, zur Verfügung
stellt.
-
In
bevorzugten Ausführungsformen
werden Standard-Internetserver 250 und 260 dann
verwendet, um den tatsächlichen
Inhalt, der zu den Geräten verteilt
werden soll, zu speichern. Der Server 30 ist dann in der
Lage, mit den Servern 250, 260, beispielsweise über Standard-Internetverbindungen,
in Kommunikation zu treten, um zu überprüfen, ob Inhalt gespeichert
wird, und um das Format zu überprüfen, in
dem der Inhalt gespeichert wird usw.
-
Wie
in 3 dargestellt ist,
werden eine Standard-RMI-Registry und ein optionaler Jini-"Djinn" verwendet, um den Dienst den Netzwerkgeräten verfügbar zu
machen. Eine RMI-Registry ist ein entferntes Programm, das Mechanismen
bereitstellt für
das Lokalisieren anderer entfernter Programme und somit die Verwendung
des RMI-Mechanismus erleichtert, um Client-Programmen zu ermöglichen,
mit dem Server 30 zu kommunizieren. "Djinn" ist der Name, der der Gruppe von Geräten, Ressourcen
und Benutzern, die durch die Jini-Softwareinfrastruktur verbunden
sind, gegeben wurde.
-
Betrachtet
man nun die Client-Programme 200, die mit bestimmten Netzwerkgeräten verknüpft sind,
können
sich diese Client-Programme mit dem Server verbinden unter Verwendung
von einem von zwei Verfahren abhängig
von ihrer Konfiguration. Für Netzwerkgeräte mit eingebautem
Client-Code kann der RMI-Mechanismus von Java verwendet werden, während dynamische,
herunterladbare Client-Software als eine Alternative durch den optionalen
Jini-Service bereitgestellt wird. Unter Verwendung des Jini-Ansatzes
wird ein Gerät
bereits das haben, was als Dienst- bzw. Servicebrowser bekannt ist,
der nach Diensten sucht, die verfügbar sind. In diesem Fall wird
das Client-Programm
nicht lokal auf dem Gerät installiert,
sondern der Prozeß kann
automatisiert werden durch die Verwendung einer geeigneten Konfiguration,
die auf dem Gerät
vorhanden ist.
-
Auf
jedem Netzwerkgerät
wird eine Client-Registry geführt,
die einen Eintrag des gesamten Inhalts enthält, der auf dem Gerät vorhanden
ist, der in Übereinstimmung
mit einem Profil, das von dem Server 30 empfangen wurde,
erhalten wurde. Wenn der Server kontaktiert wird, wird ein Profil
abgerufen, das beschreibt, was auf dem Gerät vorhanden sein sollte. Wie
später
detaillierter beschrieben wird, wird der neue und aktualisierte
Inhalt, der durch das Profil angezeigt wird, abgerufen und nicht
mehr bestehender Inhalt wird entfernt. Während dieses Prozesses werden
vorzugsweise alle Installierer und Deinstallierer automatisch von
dem Server 30 heruntergeladen und aufgerufen. Es soll erwähnt werden,
daß dies
alles ohne Eingriff durch den Benutzer des Netzwerkgerätes passiert.
-
In
bevorzugten Ausführungsformen
wird eine Verwaltungstoolapplikation bereitgestellt, um eine einfache
graphische Oberfläche
bereitzustellen, um einen Administrator oder dergleichen darin zu
unterstützen,
dem Systemadministrator zu ermöglichen, eine
hierarchische Struktur von Divisionen und Geräten innerhalb der Datenbank 40 aufzubauen
und zu erhalten. Inhaltsidentifizierer können dann mittels Drag & Drop auf bestimmte
Elemente verschoben werden, die Divisionen und/oder Geräte darstellen, um
Inhalt mit den Elementen der hierarchischen Struktur zu verknüpfen. Über die
Integration mit einem Standard-Verzeichnisserver, wie früher unter Bezug
auf 3 dargestellt wurde,
ist der Systemadministrator in der Lage, zu bestimmen, wem ein bestimmtes
Gerät auf
dem Netzwerk gehört.
Somit beinhaltet das Ausstatten eines Gerätes einer Person für eine neue
Rolle einfach das Ziehen eines Icons, das diese Person darstellt,
zu einer neuen Division. Diese Konzepte werden weiter dargestellt
unter Bezug auf die 4–8, die Beispiel-Illustrationen
der graphischen Oberflächen
darstellen, die von dem Verwaltungstool bereitgestellt werden, um
es einem Systemadministrator zu ermöglichen, die hierarchische
Struktur, die von dem Server 30 auf der Datenbank 40 aufbewahrt
wird, zu verwalten.
-
In 4 stellt das linke Fenster
eine schematische Darstellung der hierarchischen Definition dar,
während
das rechte Fenster als ein Informationsanzeigebereich dient. Das
Fenster unten auf dem Schirm enthält eine Liste von Inhaltsidentifizierern, die
für die
Zuweisung zu Elementen der hierarchischen Struktur verfügbar sind,
die bestimmte Geräte oder
Divisionen darstellen (in diesem Beispiel sind die Inhalte Computerprogramme).
Wie in 4 zu erkennen
ist, beinhaltet jeder Inhaltsidentifizierer einen Namen für den Inhalt
und einen Ortsindikator, in diesem Fall eine URL-Adresse, die den Ort identifiziert,
von dem der entsprechende Inhalt abgerufen werden kann. Optional
kann der Inhaltsidentifizierer Informationen enthalten, wie z. B.
Versionsnummern, Inhaltstyp und das Datum der letzten Modifizierung.
-
5 zeigt die Information,
die dargestellt werden wird, wenn der Systemadministrator die "Engineer"-Division auswählt. Wie
in dem Informationsanzeigebereich zu erkennen ist, zeigt dies an,
daß die
Programme "Yellow", "Indigo" und "Orange" mit der Division "Engineer" verknüpft sind,
und daß ebenso
das Betriebssystem "Green" und die Anwendung "Red" von der Division "All" vererbt werden.
-
6 stellt die Information
dar, die bereitgestellt wird, wenn der Systemadministrator ein Individuum
auswählen
würde,
in diesem Fall das Individuum Nigel Brookes, mit dem zwei Geräte verknüpft sind,
nämlich "Hugh" und "Cuthbert". Schließlich stellt 7 die Programme dar, die
mit dem Gerät "Hugh" verknüpft sind.
Man sieht, daß das
Gerät "Hugh" die direkt verknüpfte Anwendung "Violet" hat, jedoch ebenso
die Programme erbt, die mit den Divisionen "Engineer" und "All" verknüpft sind.
-
8 stellt die graphische
Oberfläche
dar, die für
eine alternative Beispieldatenbankstruktur dargestellt werden kann.
Hier ist ein Gerät
namens Future Phone als einem Individuum, Nigel Brookes, gehörend angezeigt,
der innerhalb der Engineer-Division verknüpft ist, die wiederum eine
Division der Concept-Technology-Division ist. Weiterhin ist die Concept-Technology-Division
innerhalb der Hugh-Symons-Division enthalten, die innerhalb der All-Division
enthalten ist. Wie in 8 zu
sehen ist, hat das Gerät
Future Phone zwei hiermit verknüpfte Applikationen
und erbt ebenso eine Applikation von der All-Division. In diesem
Fall ist es klar, daß die
Divisionen Hugh Symons, Concept Technologies und Engineers keine
direkt mit diesen verknüpften
Inhalte haben, da anderenfalls das Gerät Future Phone ebenso die Information
bzw. den Inhalt von diesen Divisionen erben würde.
-
In 8 sieht man ebenso, daß die Inhaltsidentifizierer
in diesem Fall ebenso optionale Informationen beinhalten, die eine
voreingestellte Mietperiode identifizieren. Diese Information ermöglicht dem
Client-Programm auf einem Netzwerkgerät automatisch, den Inhalt nach
Ablauf der Mietperiode zu entfernen. Somit kann unter Bezug auf 8 gesehen werden, daß zwei der
Applikationen, die dem Gerät
Future Phone zugewiesen sind, auf einer fortwährenden Mietbasis sind, aber
die Applikation JarBall Madness auf einer 30-Tage-Mietbasis ist,
die am 26. August 1999 abläuft.
Das Client-Programm kann diese Information verwenden, um an diesem
Datum automatisch JarBall Madness von dem Future-Phone-Gerät zu entfernen.
-
Für die Vollständigkeit
wird ebenso 9 bereitgestellt,
um eine einfache Darstellung eines Teils einer hierarchischen Struktur
zu geben, die innerhalb der Datenbank 40 aufbewahrt werden
kann. Wie vorher erwähnt
wurde, sind die Geräte
in logischen, hierarchischen Gruppierungen, genannt Divisionen,
organisiert. Jede Division erbt die Inhalte ihrer übergeordneten
Division. Der Inhalt kann diesen Divisionen und den einzelnen Geräten zugewiesen
werden, was dann die Erzeugung eines Profils für bestimmte Geräte erleichtert.
-
In 9 sehen wir, daß Sue Bar
das Gerät "My Cell Phone" gehört. Sie
ist Teil der Customer-Division und ebenso der Support- und All-Division.
Ihr Gerät
wird daher den Inhalt haben, der All, Support, Customer und diesem
speziellen Gerät
zugewiesen ist. Wenn Sue entscheidet, daß sie von einem Service Gebrauch
machen möchte,
der alle SMS- (Kurznachrichtendienst-) Nachrichten zu ihrem E-Mail-Account
senden wird, kann sie diesen Service von dem relevanten Systemadministrator
anfordern. Der Systemadministrator kann entscheiden, diesen Dienst nicht
allgemein verfügbar
zu machen und so ihn stattdessen nur ihrem Mobiltelefon zuzuweisen.
Wenn dieses Gerät
als nächstes
ein Profil von dem Server abruft, wird es automatisch die relevante
Applikation empfangen.
-
Der
Systemadministrator behält
die Verantwortung für
die gesamte Hierarchie, ist jedoch in der Lage, die Steuerung von
Unterdivisionen auf andere Verwalter zu delegieren. Unter Bezug
auf 9 könnte somit
der Netzwerkadministrator die Verantwortlichkeit für die All-Division
behalten, könnte
jedoch wählen,
die Verwaltung der Customer-Support-Division und der Technical-Support-Division an einen
oder mehrere andere Verwalter zu delegieren.
-
Die
Flußdiagramme
der 11 und 12 stellen eine kurze Darstellung
des Prozesses bereit, der durchgeführt wird, wenn ein Client-Programm
auf einem Gerät
in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung ausgeführt wird, wobei 11 die Verarbeitungsschritte
darstellt, die von dem Client-Programm ausgeführt werden, und 12 die Verarbeitungsschritte
darstellt, die von dem Server ausgeführt werden. Es ist klar, daß nicht
alle Ausführungsformen
die exakte Sequenz von Schritten, die in den 11 und 12 dargestellt
sind, ausführen
müssen;
stattdessen sind die 11 und 12 dafür vorgesehen, eine bestimmte Ausführungsform
zu illustrieren. Wenn beispielsweise der Server bestimmt, daß das Gerät nicht
gegenwärtig
in der Datenbank ist, dann kann er ausgelegt sein, um diesem Gerät den Zugriff
auf das Netzwerk zu verweigern, statt einen neuen Eintrag für dieses Gerät in der "New-Devices"-Division zu erzeugen.
-
Unter
Bezug auf die Ausführungsformen
von 12 versteht es sich,
daß, wenn
eine "New-Devices"-Division bereitgestellt
würde,
sie im allgemeinen als Tochter bzw. Unterdivision der Division "All" bereitgestellt würde. Falls
irgendein Inhalt mit der Division "All" verknüpft wäre, dann
würde dieses
neue Gerät
diesen Inhalt erben. Alternativ können jedoch die beiden Divisionen "All" und "New Devices" derart ausgelegt
sein, daß sie
keinen verknüpften
Inhalt haben, so daß das
neue Gerät
nicht mit irgendwelchem Inhalt ausgestattet wird zu dem Zeitpunkt,
wenn es als erstes den Server kontaktiert.
-
Ungeachtet
dessen, welcher Ansatz genommen wird, würde in bevorzugten Ausführungsformen der
Netzwerkadministrator versuchen, alle Geräte, die innerhalb der "New-Devices"-Division plaziert sind,
der geeigneten Division innerhalb der Hierarchie neu zuzuweisen.
Beispielsweise mit Bezug auf die 4–7, wenn das neue Gerät tatsächlich innerhalb
der "Support"-Division wäre, dann
würde der Support-Administrator
dieses Gerät
von der "New-Devices"-Division zu der "Support"-Division bewegen,
so daß in
nachfolgenden Zugriffen das neue Gerät derart angeordnet wird, daß es den
Inhalt empfängt,
der für
die "Support"-Division geeignet
ist.
-
Die 13 und 14 sind Flußdiagramme, die eine detailliertere
Darstellung des Prozesses zur Verfügung stellen, der durchgeführt werden
kann, wenn ein Client-Programm auf einem Gerät ausgeführt wird. Die 13A–13D können als eine detailliertere Darstellung
der in 11 dargestellten
Ausführungsform
angesehen werden, während 14 eine andere Ausführungsform
zu der in 12 dargestellten zeigt,
wobei statt des Zuweisens von unbekannten Geräten zu einer neuen Gerätedivision
der Prozeß, der
in 14 dargestellt ist,
lediglich den Prozeß abbricht
und somit der Prozeß nur
verwendet werden kann, sobald Geräte von dem Systemadministrator einem
geeigneten Ort in der hierarchischen Struktur zugewiesen wurden.
-
Unter
Bezug auf 13A, wenn
das Client-Programm ausgeführt
wird, startet es in Schritt 500 und setzt mit Schritt 510 fort,
wo bestimmt wird, ob es irgendein verfügbares Netzwerk gibt. Falls nicht,
endet der Prozeß in
Schritt 520 und der Prozeß wird das nächste Mal,
wenn das Client-Programm ausgeführt wird,
erneut beginnen. Wie früher
erwähnt wurde,
ist das Client-Programm vorzugsweise derart ausgelegt, daß es in
vorbestimmten Zeitintervallen ausgeführt wird, wobei diese Intervalle
abhängig
von dem Gerätetyp
bestimmt werden.
-
Wenn
das Netzwerk verfügbar
ist, dann setzt der Prozeß mit
Schritt 530 fort, wo das Gerät versucht, das Profil von
dem Server 30 zu laden. In Schritt 540 wird bestimmt,
ob der Lade- bzw. Downloadprozeß erfolgreich
war, d. h. ob ein Profil von dem Server empfangen wurde, und falls
nicht, wird der Prozeß zurück zu Schritt 530 geschleift.
Es versteht sich, daß,
falls es ein zeitweiliges Problem mit entweder dem Server oder dem
Netzwerk gibt, das verhindert, daß das Profil zu dem Client-Programm geliefert
wird, das Client-Programm an diesem Punkt stehenbleiben könnte. Folglich
kann es in einigen Ausführungsformen
dienlich sein, einen Timeout-Mechanismus hier bereitzustellen, wobei
der Prozeß nach
Schritt 520 verzweigt, falls innerhalb einer vorbestimmten
Zeit kein erfolgreicher Download des Profils erreicht wurde. Aus
Gründen
der Einfachheit wurde jedoch dieser Prozeß in 13A nicht dargestellt.
-
Angenommen,
daß der
Profildownload erfolgreich ist, dann setzt der Prozeß mit Schritt 550 fort,
wo das neue Profil mit einem Inhaltseintrag 560 verglichen
wird, der auf dem Netzwerkgerät
gehalten wird, um den Inhalt, der zu dem Gerät in Übereinstimmung mit einem vorherigen
Profil abgerufen wurde, zu identifizieren. Bevor jedoch der Rest
der 13A bis 13B erörtert wird, wird nun die Art
und Weise, in der das Profil von dem Server 30 erzeugt
wird, unter Bezug auf 14 beschrieben.
Die Profilerzeugung wird vorzugsweise von Software durchgeführt, die
auf dem Server 30 installiert ist. Der Prozeß beginnt
in Schritt 700 und in Schritt 705 wartet der Server
auf eine Geräteverbindung.
Sobald das Gerät verbunden
wurde, wird in Schritt 710 bestimmt, ob das Gerät bekannt
ist, d. h. ob es in der hierarchischen Struktur dargestellt wird,
und falls nicht, wird die Verbindung in Schritt 720 geschlossen.
Der Prozeß kehrt
dann zu Schritt 705 zurück,
um eine weitere Geräteverbindung
abzuwarten.
-
Unter
der Annahme, daß das
Gerät bekannt ist,
setzt jedoch der Prozeß mit
Schritt 715 fort, wo die Inhaltsidentifizierer für dieses
Gerät von
dem entsprechenden Element in der hierarchischen Struktur, das in
der Datenbank 40 gehalten wird, abgerufen werden. Dann
wird in Schritt 725 bestimmt, in welcher Division das Gerät in der
hierarchischen Struktur enthalten ist, und dann werden die Inhaltsidentifizierer,
die mit dieser Division verknüpft
sind, ebenso zu den Inhaltsidentifizierern, die in Schritt 715 abgerufen wurden,
hinzugefügt.
-
Als
nächstes
wird in Schritt 735 bestimmt, ob die Division eine Elterndivision
innerhalb der hierarchischen Struktur hat, und falls dies der Fall
ist, wird die Elterndivision in Schritt 730 abgerufen und
die Inhaltsidentifizierer innerhalb dieser Division werden in Schritt 725 zu
den bereits von der Datenbank abgefragten Inhaltsidentifizierern
hinzugefügt.
Dieser Prozeß wird
fortgesetzt, bis in Schritt 735 bestimmt wird, daß die gegenwärtige Division
keine Elterndivision hat (d. h. unter Bezug auf die vorherigen Beispiele bedeutet
dies, daß die
gegenwärtige
Division die All-Division ist), an dessen Punkt bestimmt wird, daß alle zweckmäßigen Inhaltsidentifizierer
lokalisiert wurden. Folglich werden diese Inhaltsidentifizierer
zu dem Gerät
in Schritt 740 als das angeforderte Profil gesendet. Der
Prozeß kehrt
dann zu Schritt 705 zurück,
um auf eine weitere Geräteverbindung
zu warten.
-
Unter
Rückkehr
zu 13A muß als ein
Ergebnis von Schritt 550 jeder neue Inhalt, der abzurufen
ist, alter Inhalt, der zu löschen
ist, oder Inhalt, der zu aktualisieren ist, durch den Bereich des
neuen Profils mit dem vorher gespeicherten Inhaltseintrag 560 bestimmt
werden. Folglich setzt der Prozeß mit Schritt 570 in 13B fort, wo bestimmt wird,
ob es irgendeinen Inhalt gibt, der zu entfernen ist. Falls dies der
Fall ist, wird in Schritt 575 bestimmt, ob es zweckmäßig ist,
einen Uninstaller auszuführen,
um den Inhalt zu entfernen.
-
Bevor
mit der Beschreibung von 13B fortgesetzt
wird, wird der Mechanismus für
das Bestimmen, ob ein Installer/Uninstaller erforderlich ist, detaillierter
erörtert.
Wie vorher erwähnt
wurde, beinhaltet, wenn der Inhalt zu dem Netzwerkgerät abgerufen
wird, dies ebenso in Beziehung stehende Information, die identifiziert,
wie der Inhalt mit Empfang gehandhabt werden soll. In Übereinstimmung
mit bevorzugten Ausführungsformen
der vorliegenden Erfindung wird die Verknüpfung dieser weiteren Information
mit dem Inhalt über
einen oder mehrere Packer, die von dem System von bevorzugten Ausführungsformen
bereitgestellt werden, erzielt, wobei diese Packer vorzugsweise
als Computerprogramme verkörpert
werden. Dieser Prozeß wird
schematisch in 15 dargestellt.
-
Der
Inhaltsliefermechanismus ist sehr flexibel, was es Entwicklern erlaubt,
neue Inhaltstypen zusammen mit jedem notwendigen Installierer und Deinstallierer
einzuführen,
ohne daß irgendeine
clientseitige Software verändert
werden muß.
Beispielsweise könnte
der gesamte Verkaufsstab in einer bestimmten Organisation die letzten
Leistungsergebnisse zu ihren Geräten
bereitgestellt haben und automatisch in einer Datenbankapplikation
auf diesen Geräten
installiert haben.
-
Diese
Flexibilität
wird erzielt durch das Bündeln
von Inhalt in Standard-Java-Archiven (JAR-Files), die in bevorzugten Ausführungsformen mit
einer gut bekannten Datei "META- INF/manifest.mf' verknüpft sind,
und durch das Leiten dieser Java-Archive durch einen Packer, wie
in 15 dargestellt ist.
Eine JAR-Datei ist eine Datei oder Dateien unter Verwendung eines
JAR-Tools, das mit
dem Java-Development-Kit ausgeliefert wurde, die in eine einzelne
Datei komprimiert wurden.
-
Wie
in 15 dargestellt ist,
wird der Inhalt 800 an einen geeigneten Packer innerhalb
einer Gruppe von Packern 810 geleitet. Beispielsweise kann
ein bestimmter Packer 830 für die Packapplikationen bereitgestellt
werden, ein anderer Packer 840 kann für das Packen von Dokumenten
bereitgestellt werden, und ein weiterer Packer 850 kann
für das Packen
anderer Inhaltstypen bereitgestellt werden. Der relevante Packer
verändert
den Inhalt der Manifest-Datei, um zumindest den Namen, den Typ und die
Version des Inhalts zu beinhalten. Es steht dem Packer frei, in
diese Datei irgendeine andere Variable, die erforderlich sein kann,
aufzunehmen. Dies führt
zu einer Bündelung 820,
die in Übereinstimmung
mit bevorzugten Ausführungsformen
der vorliegenden Erfindung zu Netzwerkgeräten verteilt werden kann. Es
sollte erwähnt
werden, daß das
resultierende Bündel
immer noch vollständig
mit Java kompatibel ist.
-
In
bevorzugten Ausführungsformen
wird ein Packer für
jeden Inhaltstyp bereitgestellt. Zusätzlich kann jeder Inhaltstyp
optional einen Installierer/Deinstallierer haben, der bereitgestellt
wird, um solch einen Inhalt auf einem Netzwerkgerät zu installieren/zu deinstallieren.
Da die Packer typspezifisch sind und da alle Installierer/Deinstallierer
ebenso typspezifisch sind, versteht es sich, daß der Packer ausgelegt sein kann,
um alle Variablen, die spezifisch von dem entsprechenden Installierer/Deinstallierer
erfordert werden, zu beinhalten. Wenn beispielsweise der Inhaltstyp
ein Microsoft-Word-Dokument
für PCs
ist, könnte
der Packer in das Bündel
die erforderliche Versionsnummer von Microsoft Word aufnehmen, die
erforderlich ist, um die Datei zu lesen. Der Installierer würde dann
versuchen, diese Version von Word zu lokalisieren und beispielsweise
den Benutzer eines Gerätes
warnen, wenn er sie nicht findet.
-
Als
ein anderes Beispiel könnte,
wenn der Inhaltstyp ein Anwendungsprogramm ist, der Packer in die
Bündelung
eine Identifikation aufnehmen, welche Datei die hauptausführbare Datei
ist, könnte
eine Identifikation eines Icons aufnehmen, das zu verwenden ist,
um das Programm auf dem Desktop darzustellen usw. Die relevanten
Installierer können
dann diese Information verwenden, um zu ermöglichen, daß das Anwendungsprogramm korrekt
installiert wird.
-
Es
kann somit gesehen werden, daß abhängig von
dem Inhaltstyp ein Installierer/Deinstallierer notwendig sein kann
oder nicht. Die gepackte Einheit, wie sie abgerufen wurde, spezifiziert
unter anderem den Inhaltstyp, wie es tatsächlich der Inhaltsidentifizierer
in dem Profil tut, und somit kann der Gerätemanager überprüfen, um zu sehen, ob ein Installierer/Deinstallierer
mit diesem Inhaltstyp verknüpft
ist. Dies kann beispielsweise zweckmäßig sein, wenn der Inhalt ein
Anwendungsprogramm ist.
-
Zurück in 13B setzt der Prozeß, wenn
in Schritt 575 bestimmt wird, daß ein Deinstallierer ausgeführt werden
sollte, mit Schritt 585 fort, wo der geeignete Deinstallierer
heruntergeladen und ausgeführt
wird, um den relevanten Inhalt zu entfernen. In bevorzugten Ausführungsformen
fragt das Client-Programm, um den geeigneten Deinstallierer herunterzuladen,
die RMI-Registry 310, die in 3 dargestellt
ist, ob ein Installierer/Deinstallierer für den empfangenen Inhaltstyp
existiert. Falls solch ein Installierer/Deinstallierer existiert,
wird er von der RMI-Registry zu dem Client-Programm heruntergeladen,
wonach er ausgeführt
werden kann, um den bestimmten in Frage stehenden Inhalt zu deinstallieren.
-
Es
werden jedoch nicht alle Inhaltstypen einen Deinstallierer erfordern.
Beispielsweise kann der Inhalt ein Datenfile sein, der lediglich
das Löschen
erfordert. In diesem Fall wird in Schritt 575 bestimmt, daß es nicht
notwendig ist, einen Deinstallierer auszuführen, wobei in diesem Fall
der Prozeß mit
Schritt 580 fortsetzen wird, wo der Inhalt gelöscht wird.
Der Prozeß kehrt
dann zu Schritt 570 zurück,
um zu bestimmen, ob irgendein weiterer Inhalt entfernt werden muß. Falls
dies der Fall ist, wird der oben beschriebene Prozeß wiederholt.
-
Falls
nicht, setzt der Prozeß mit
Schritt 590 fort, wo bestimmt ist, ob es irgendwelchen
zu aktualisierenden Inhalt gibt. Falls dies der Fall ist, setzt
der Prozeß mit
Schritt 595 fort, wo der aktualisierte Inhalt von dem Ort
heruntergeladen wird, der in dem entsprechenden Inhaltsidentifizierer,
der in dem Profil bereitgestellt wird, angezeigt wird. Wie vorher
erwähnt
wurde, wird der Inhalt vorzugsweise auf Internetservern gespeichert
und in diesem Fall wird der Inhaltsidentifizierer eine geeignete
Internetadresse identifizieren, von der der Inhalt herunterzuladen
ist. Sobald der Inhalt heruntergeladen wurde, wird in Schritt 600 in 13C bestimmt, ob es notwendig
ist, einen Installierer und/oder Deinstallierer auszuführen, wobei,
wie oben erwähnt
wurde, diese Entscheidung basierend auf dem Typ des zu aktualisierenden Inhalts
getroffen wird.
-
Wenn
beispielsweise der Inhalt ein Datenfile ist, dann ist es nicht zweckmäßig, einen
Installierer und/oder Deinstallierer auszuführen, und folglich wird der
Prozeß mit
Schritt 615 fortsetzen, wo der veraltete Inhalt gelöscht wird
und der aktualisierte Inhalt gesichert wird. Angenommen jedoch,
daß bestimmt wird,
daß ein
Installierer und/oder Deinstallierer erforderlich ist, dann setzt
der Prozeß mit
Schritt 605 fort, wo jeder notwendige Installierer und/oder
Deinstallierer unter Verwendung des früher unter Bezug auf Schritt 585 beschriebenen
Prozesses heruntergeladen wird. Der Deinstallierer kann dann ausgeführt werden,
um den veralteten Inhalt zu entfernen, wonach der Prozeß mit Schritt 610 fortsetzt,
wo der notwendige Installierer ausgeführt wird, um den aktualisierten
Inhalt zu installieren. Der Prozeß kehrt dann zu Schritt 590 zurück, um zu
bestimmen, ob weiterer Inhalt aktualisiert werden muß. Falls
dies der Fall ist, wird der oben beschriebene Prozeß wiederholt;
falls dies nicht der Fall ist, setzt jedoch der Prozeß mit Schritt 620 fort,
der in 13D gezeigt ist.
-
In
Schritt 620 wird bestimmt, ob es neuen hinzuzufügenden Inhalt
gibt. Falls dies der Fall ist, setzt der Prozeß mit Schritt 625 fort,
wo der neue Inhalt heruntergeladen wird unter Verwendung der Information,
die in dem relevanten Inhaltsidentifizierer, der in dem Profil enthalten
ist, bereitgestellt wird. Dann wird in Schritt 630 entschieden,
ob ein Installierer ausgeführt
werden muß,
und falls dies der Fall ist, setzt der Prozeß mit Schritt 635 fort,
wo der geeignete Installierer heruntergeladen wird und ausgeführt wird,
um den Inhalt zu installieren. Wenn in Schritt 630 bestimmt
wird, daß ein
Installierer nicht erforderlich ist, dann kann der Prozeß direkt
mit Schritt 640 fortsetzen, wo der neue Inhalt gesichert
wird. In Bezug auf die Ausgabe, ob neuer Inhalt gesichert werden
sollte, wenn ein Installierer verwendet wird, kann er ausgelegt
sein, um zu bestimmen, ob es einen voreingestellten Ort für die Speicherung
dieses Inhaltstyps gibt. Beispielsweise, falls der Inhalt ein Microsoft-Word-File
ist, kann der Installierer die Konfigurationseinstellungen des Gerätes durchsehen,
um zu sehen, ob ein voreingestellter Ort für Microsoft-Word-Dateien spezifiziert
ist, und falls dies der Fall ist, wird dieser Ort für das Speichern
des Inhalts verwendet. Falls kein solcher voreingestellter Ort existiert
oder falls kein Installierer verwendet wird, kann der Gerätemanager
derart ausgelegt sein, daß er
einen voreingestellten Ort spezifiziert, an dem der Inhalt zu speichern
ist.
-
Sobald
der neue Inhalt auf dem Gerät
gespeichert wurde, setzt der Prozeß zurück in Schritt 620 fort,
wo bestimmt wird, ob es weiteren hinzuzufügenden Inhalt gibt. Falls dies
der Fall ist, wird der oben beschriebene Prozeß wiederholt, falls aber kein weiterer
Inhalt hinzuzufügen
ist, setzt der Prozeß dann
mit Schritt 645 fort, wo das gegenwärtige Profil als Inhaltseintrag 560 gespeichert
wird. In bevorzugten Ausführungsformen
wird angenommen, daß an dieser
Stufe das Gerät
alle Inhalte enthält,
wie in dem gegenwärtigen
Profil angezeigt wird. In dem Fall jedoch, daß aus irgendeinem Grund das
Gerät nicht
in der Lage war, jeden bestimmten Eintrag des Inhalts in dem Profil
abzurufen, beispielsweise da der entsprechende Server zu dieser
Zeit außer
Betrieb war, dann ist es bevorzugt, daß der Inhaltseintrag 560 aktualisiert
wird, um den tatsächlichen
Inhalt, der zu dem Gerät
in Übereinstimmung
mit dem Profil abgerufen wurde, zu reflektieren, anstatt lediglich
das gegenwärtige
Profil selbst zu speichern. Sobald der Inhaltseintrag aktualisiert
wurde, setzt dann der Prozeß mit
Schritt 655 fort, wo der Prozeß beendet wird.
-
Aus
der obigen Beschreibung wird ersichtlich, daß das System von bevorzugten
Ausführungsformen
der vorliegenden Erfindung eine Plattform bereitstellt für das Verwalten
von ungleichartigen, heterogenen, verteilten Geräten. Diese Geräte beinhalten,
sind jedoch nicht hierauf beschränkt,
Computer, digitale Mobiltelefone und Set-Top-Boxen. Das System von
bevorzugten Ausführungsformen
stellt einen einmaligen Mechanismus für die automatische Verteilung,
die Installation und die Entfernung von nahezu jeder Art von Inhalt
einschließlich
Applikationen ohne irgendeinen Benutzereingriff zur Verfügung. Ein Systemadministrator
verwendet ein Verwaltungswerkzeug, um ein Programm aus Inhalt für jedes
Gerät oder
jede Gruppe von Geräten
aufzubauen. Bei vorbestimmten Intervallen vergleicht ein kleiner
Teil des clientseitigen Codes ein Profil, das von dem Server erzeugt
wird, mit einem Eintrag des Inhalts, der auf dem Gerät in Übereinstimmung
mit dem vorherigen Profil abgelegt ist. Jeder neue oder zu aktualisierende
Inhalt wird automatisch abgerufen und installiert und jeglicher
alte Inhalt wird entfernt. In bevorzugten Ausführungsformen sind der Server,
das Verwaltungswerkzeug und das Client-Programme alle Java-basiert.
-
Um
die Vielseitigkeit des obigen Systems darzustellen, können die
folgenden Beispielszenarien betrachtet werden.
-
Man
betrachte als erstes die Situation, wo ein Mitglied eines Firmennetzwerkes
ein neues Gerät einfügt. In Übereinstimmung
mit bevorzugten Ausführungsformen
der vorliegenden Erfindung fragt während der Synchronisation das
Gerät nach
der Identität
des Benutzers. Der Server errichtet die Anwesenheit des Benutzers
in dem Verzeichnisserver und installiert automatisch das Gerät als diesem
Benutzer gehörend.
Dem Gerät
wird ein Profil zugewiesen basierend auf seinem Ort in der hierarchischen Struktur
und es wird automatisch seinen geeigneten Inhalt empfangen.
-
Als
ein zweites Beispiel betrachte man die Situation, wo ein Mitglied
einer Organisationseinheit seine Funktion verändert. In bevorzugten Ausführungsformen
der vorliegenden Erfindung wird deren Benutzericon innerhalb der
hierarchischen Struktur mittels Drag & Drop zu der Division, die ihre neue Funktion
darstellt, verschoben. Das Inhaltsprogrammpaket wird dann automatisch
aktualisiert, um die Veränderungen
widerzuspiegeln, wenn das Profil das nächste Mal von dem Gerät des Benutzers
empfangen wird.
-
Als
ein weiteres Beispiel betrachte man die Situation, wo ein Team einen
Pool von Mobiltelefonen betreibt. Normalerweise gehören diese
einer Organisationseinheit in dem Verzeichnisserver. Wenn ein Benutzer
ein Gerät
anfragt, wird es von der Organisationseinheit auf das Icon des Benutzers
verschoben. Das Gerät
wird dann automatisch mit dem Inhalt, der für diesen Benutzer zweckmäßig ist,
ausgestattet.
-
Als
ein weiteres Beispiel betrachte man die Situation, wo ein neues
Programm eingeführt
wird. Ein Verwalter packt das neue Programm unter Verwendung von
einem der früher
beschriebenen Packer, verschickt den gepackten Inhalt zu einem Webserver
und sagt dem Server 30 den Netzwerkort dieses Inhalts.
Ein entsprechender Inhaltsidentifizierer wird dann erzeugt und mit
den geeigneten Divisionen/Geräten
innerhalb der hierarchischen Struktur verknüpft.
-
Schließlich betrachte
man das Szenario, wo ein Programm aktualisiert wird. Vorausgesetzt,
daß es
in der geeigneten Art und Weise unter Verwendung von einem der früher beschriebenen
Packer gepackt ist, wird es automatisch als ein Upgrade verteilt und
das Upgrade wird in Übereinstimmung
mit den früher
unter Bezug auf den in den 13A–13D beschriebenen Prozeß installiert.
-
Obgleich
eine bestimmte Ausführungsform der
Erfindung hier beschrieben wurde, versteht es sich, daß die Erfindung
nicht hierauf begrenzt ist und daß viele Modifikationen und
Hinzufügungen
innerhalb des Schutzbereiches der Erfindung durchgeführt werden
können.
Beispielsweise könnten
verschiedene Kombinationen der Merkmale der folgenden abhängigen Ansprüche durchgeführt werden
mit den Merkmalen der unabhängigen
Ansprüche,
ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen.