-
Die
Erfindung betrifft allgemein den Bereich der Datenverarbeitung mittels
PC und den Bereich der Netzwerktechnik. Insbesondere betrifft sie
den neuen und im Entstehen begriffenen Bereich der Datenverarbeitung
im Netzwerk, bei der Benutzer von Tischrechnern mit Hilfe eines
Personal Computers, der möglicherweise über keine
eigene Speicherplatte verfügt
und an ein Netzwerk wie zum Beispiel ein unternehmensinternes Netzwerk
(Intranet), das Internet oder ein anderes Netzwerk angeschlossen
ist oder einen Internet-Diensteanbieter (Internet Service Provider,
ISP) nutzt, Zugriff auf Anwendungen erhalten, die dann auf dem Tischrechner
ausgeführt
werden. Genauer gesagt, die Erfindung betrifft die serverbasierte
Speicherung von Software-Voreinstellungen (Konfigurationsdaten)
für Software,
die von einem Server abgerufen und auf dem Tischrechner ausgeführt wird.
-
Der
Bereich der Netzwerkrechner steckt derzeit noch in den Kinderschuhen.
Es wird jedoch davon ausgegangen, dass er sich insbesondere in der Unternehmensumgebung
aus mehreren Gründen sehr
schnell entwickeln wird. Man erwartet, dass, wenn Firmen und möglicherweise
auch einzelne Benutzer an dem Punkt ankommen, an dem sie ihre Hardware
und Software nachrüsten
müssen,
es wirtschaftlicher und weniger kostspielig sein wird, sich diesen
neuen Bereich zu erschließen,
statt diese Nachrüstung
in der herkömmlichen
Weise mit Rechnern, die mit Platte ausgestattet sind, und lokal
gespeicherten und verwalteten Software-Anwendungen zu betreiben.
So kann ein Benutzer in einer Unternehmensumgebung beispielsweise
mittels der TCP/IP- und HTTP-Protokolle des Internet an ein unternehmenseigenes
Intranet angebunden werden und Software-Anwendungen nach Bedarf direkt von einem
Netzwerkserver auf den Tischrechner herunterladen. Eine Anwendung
wird vom Benutzer in der üblichen
Weise auf dem Tischrechner ausgeführt, um nützliche Arbeiten durchzuführen. Ein
Vorteil dieser Gestaltung besteht darin, dass Netzwerkrechner deutlich
preiswerter als herkömmliche,
mit Platte ausgestattete Rechner sind. Gegebenenfalls ist es auch kostengünstiger,
die erforderliche Anzahl von Software-Lizenzen für die Benutzer zu erwerben,
statt für jeden
Benutzer ein einzelnes Exemplar der Software zu kaufen. Ganz sicher
jedoch lassen sich die Software-Verwaltungsprobleme, die viele Benutzer
im Unternehmen haben, weitgehend verringern. Derzeit ist jeder Benutzer
eines mit Platte ausgestatteten Computers oder Arbeitsplatzrechners
häufig
gleichzeitig auch sein eigener Systemadministrator, eine Rolle,
die aufgrund mangelnder Sachkenntnis häufig übermäßig viele Ressourcen in Anspruch
nimmt. Man geht davon aus, dass es sich als ein großer Vorteil
erweisen wird, wenn man dieses Problem aus dem Weg räumt, indem
man eine kleine Anzahl von Serververwaltungsexperten wirksam mit
diesem Problem betraut, statt dass sich viele Benutzer mit den Problemen
der Software-Installation, – Nachrüstung und
Rechnerverwaltung abmühen
müssen.
-
Wie
vorstehend erwähnt
wurde, befinden wir uns mit dieser Vorstellung von der zukünftigen
Datenverarbeitung mittels PC zur Zeit noch ganz am Anfang. Bei den
vorhandenen Systemen gibt es derzeit folglich noch viele Probleme
und Unzulänglichkeiten.
-
In
Netzwerkrechnersystemen erstellt ein Administrator üblicherweise
Benutzerprofile, die auf einem Netzwerkserver gespeichert werden.
Die Profile können
verschiedene Arten von Informationen wie zum Beispiel die Voreinstellungen
des Arbeitsplatzes (Desktop) eines Benutzers sowie Benutzergenehmigungen
für den
Zugriff auf verschiedene Software-Anwendungen, die sich möglicherweise
auf dem Server befinden, enthalten. Wenn sich ein Benutzer im System
anmeldet, weist er sich gegenüber
dem Server aus, der Server macht das Profil für den Benutzer ausfindig und überträgt es an
seinen Rechner, wo es zur Konfiguration des Rechners und zur Erzeugung
eines Arbeitsplatzes verwendet wird. Der Arbeitsplatz kann mehrere
Symbole enthalten, die Anwendungen darstellen, auf die der Benutzer
wohl Zugriff hat. Das Profil enthält sehr wahrscheinlich auch andere
Attribute des Rechners und des Arbeitsplatzes wie zum Beispiel die
Hintergrundfarbe des Arbeitsplatzes oder Zeichenschriftarten und
Punktgrößen, die
auf dem Arbeitsplatz verwendet werden, oder Suchpfade für Datendateien
usw., die ganz benutzerindividuell sind. Bei den Profilen kann es
sich um Profile handeln, die vom Benutzer geändert werden können, oder
um solche, die nicht geändert
werden können.
-
In
einer Umgebung, in der Benutzer ihre eigenen Profile ändern können, wird
ein geändertes Profil
zum Zeitpunkt der Abmeldung wieder zurück auf den Server geladen,
wo es bis zur nächsten
Anmeldung des Benutzers zum Abruf gespeichert wird. Bei manchen
Systemen nach dem Stand der Technik können die Benutzer nach unserem
Kenntnisstand an ihrem jeweiligen Arbeitsplatz jede von ihnen gewünschte Anordnung
von Anwendungssymbolen erzeugen, ungeachtet dessen, ob die Anwendung
auf dem Server vorhanden ist oder nicht, und ungeachtet dessen,
ob ein Benutzer tatsächlich
die Berechtigung zum Zugriff auf eine Anwendung auf dem Server hat oder
nicht. Das System "Lotus
Workplace Desktop" (früher "Kona Desktop" genannt) ist ein
Beispiel für diese
Vorgehensweise. Bei anderen Systemen übergibt der Server dem Benutzer
eine Liste aller Anwendungen, über
die der Server verfügt
und unter denen der Benutzer eine Auswahl treffen kann. In diesem Fall
ist nicht sichergestellt, dass der Benutzer tatsächlich die Berechtigung zum
Zugriff auf eine Anwendung hat, die zur Aufnahme auf den Arbeitsplatz aus
der Liste ausgewählt
wird. Das System "Sun
Hot Java Views" ist
ein Beispiel für
diese Art von System. Anders ausgedrückt, bei den Systemen nach
dem Stand der Technik sind das, was der Benutzer für die Gruppe
von Arbeitsplatz-Anwendungssymbolen konfigurieren kann, und die
Anwendungen, für
die der Benutzer tatsächlich
eine Zugriffsberechtigung hat, nicht aufeinander abgestimmt. In
solch einem Fall erscheint möglicherweise
eine Fehlermeldung (wie zum Beispiel eine Nachricht über einen
nichtberechtigten Zugriff), wenn der Benutzer auf ein Symbol klickt,
um eine Anwendung auszuführen,
für die
er keine Zugriffsberechtigung hat, oder, im ungünstigeren Fall, besteht die
Möglichkeit,
dass der Rechner des Benutzers abstürzt.
-
Eine
weitere Einschränkung
nach dem Stand der Technik besteht darin, dass zum Anlegen von Benutzern,
Benutzergruppen, Endgeräten
(Terminals) und Endgerätegruppen
eine flache Datenstruktur verwendet wird. In Anlehnung an ein gängiges Schema
zur Verwaltung des Benutzerzugriffs auf Rechnerressourcen realisieren
bekannte Netzwerkrechner- Anwendungspakete
(zum Beispiel "Lotus
Administration Facility for Desktops", "Microsoft
Windows NT Profiles and Policies" und "Sun Hot Java Views") auf dem Server
eine flache "Gruppen"-Struktur, um Software-Voreinstellungen
(oder Attribute) in verschiedenen Kontexten zu verwalten. In der
hier verwendeten Weise bezieht sich ein "Kontext" auf einen einzelnen Benutzer, eine
Gruppe von Benutzern, ein Endgerät
oder eine Gruppe von Endgeräten.
Jede Gruppierungsstruktur zur Verwaltung von Software-Voreinstellungen
auf dem Server ermöglicht
einem Administrator, Voreinstellungsattribute für verschiedene Benutzergruppen
sowie für
einzelne Benutzer anzugeben. Flache Systeme sind in vielen Umgebungen
jedoch unflexibel, insbesondere in Umgebungen mit einer großen Anzahl
von Benutzern. Es ist wünschenswert,
ein Verwaltungswerkzeug bereitzustellen, das die Gliederung von
Voreinstellungsdaten in eine hierarchische Struktur unterstützt.
-
Eine
weitere Einschränkung
bei vorhandenen Systemen besteht darin, dass sie in den Möglichkeiten,
die Administratoren und Benutzer zur Konfiguration von Arbeitsplätzen von
Arbeitsplatzrechnern haben, beschränkt sind. Zum Beispiel müssen Administratoren
derzeit Benutzervoreinstellungen mit Hilfe von Konfigurationsprogrammen
einrichten, die zu einer Benutzeranwendung gehören, von dieser aber getrennt
sind. Es ist wünschenswert,
es Herstellern zu ermöglichen,
nur eine einzige Anwendung bereitzustellen. Damit man nur eine Endbenutzeranwendung
von einem Hersteller benötigt,
ist es erforderlich, dass die zentrale Verwaltungseinrichtung die Endbenutzeranwendung
im Kontext eines Benutzers oder einer Gruppe von Benutzern ausführt. Nach dem
Stand der Technik ist eine solche flexible Vorgehensweise in der
Verwaltung nicht möglich.
Anders ausgedrückt,
nach dem Stand der Technik kann ein Administrator nach unserem Wissen
eine Benutzeranwendung nicht im Kontext eines Benutzers ausführen, um
Voreinstellungen für
diesen Benutzer und diese Anwendung festzulegen. Überdies
kann ein Administrator nach dem Stand der Technik eine Benutzeranwendung
nicht ausführen,
um Voreinstellungen im Kontext einer Gruppe von Benutzern festzulegen.
-
Noch
eine weitere Einschränkung
nach dem Stand der Technik, die den Erfindern bekannt ist, besteht
in der Art und Weise, in der der Speicherplatz des Permanentspeichers
des Servers nach dem Stand der Technik partitioniert wird, um sicherzustellen,
dass ein eindeutiger Speicherbereich zur Speicherung von Benutzervoreinstellungen
in Bezug auf die verschiedenen Anwendungen auf dem Server reserviert
wird. Nach dem Kenntnisstand der Erfinder wird das Problem der Verhinderung
von Unvereinbarkeiten bei der Speicherung von Voreinstellungsdaten für verschiedene
Anwendungen in objektorientierten Systemen, bei denen ein Objekt
nach seinem voll klassifizierten Klassennamen abgefragt werden kann,
der es eindeutig ausweist und von anderen Klassen eindeutig unterscheidet,
gelöst,
indem eine erste zentrale Stelle eine eindeutige Bezeichnung zuweist,
die für
einen Hersteller gilt, und indem anschließend eine zweite Stelle beim
Hersteller eine zweite Bezeichnung für jede Anwendung des Herstellers
zuweist, die sich auf die erste Bezeichnung bezieht. Beispielsweise
könnte
dem Hersteller A von der ersten Stelle die Bezeichnung "Hersteller A" zugewiesen werden,
und es wird sichergestellt, dass diese Bezeichnung innerhalb der
Architektur, für
die die erste Stelle tätig
ist, eindeutig ist. Die zweite Stelle beim Hersteller A weist dann
für jede
ihrer Anwendungen innerhalb dieser Architektur die zweite Bezeichnung
zu. Eine der Anwendungen des Herstellers A könnte zum Beispiel die Bezeichnung "vendorA.App1" erhalten, eine andere
könnte
mit "vendorA.App2" bezeichnet werden.
Die Technik bildet die eindeutige Bezeichnung für jede Anwendung in einem System
auf einen Speicherplatz im Permanentspeicher des Systems ab, um
sicherzustellen, dass es bei den Voreinstellungsdaten für die verschiedenen
Anwendungen im Speicher nicht zu Unvereinbarkeiten kommt. Wenn eine
Anwendung ausgeführt wird,
informiert sie den Netzwerkserver über ihren eindeutigen Speicherplatz,
und es liegt in der Verantwortung des Servers, einen Bereich am
Anfangsspeicherplatz entsprechend einem Kontext (Benutzer, Benutzergruppe,
Endgerät
oder Endgerätegruppe) zur
Speicherung von Voreinstellungsdaten zu partitionieren, damit diese
nicht mit Voreinstellungsdaten in einem anderen Kontext kollidieren.
Natürlich
ist diese Art der Verwaltung von Speicherplatz umständlich und
unerwünscht.
Es ist wünschenswert,
dass ein Verfahren ausgearbeitet wird, mittels dessen sich eindeutige
Speicherplätze
zur Speicherung von Voreinstellungsdaten für die vorstehend erwähnten objektorientierten
Anwendungen automatisch erzeugen lassen, ohne notwendigerweise auf
zentrale Stellen zur Zuweisung von eindeutigen Bezeichnungen zurückgreifen
zu müssen,
um bei der Speicherung von Voreinstellungsdaten Unvereinbarkeiten
zu vermeiden, und ohne Informationen über Speicherplätze mittels
Code in eine Anwendung einbinden zu müssen.
-
Noch
eine weitere Einschränkung
in der Technik besteht darin, dass keine Vorkehrungen getroffen
wurden, um vorhandene Anwendungen und vorhandene Hardware in die
neue, zentral verwaltete Netzwerkdatenverarbeitungsumgebung zu überführen, ohne
dass Änderungen
an der vorhandenen Hardware und den vorhandenen Anwendungen vorgenommen
werden müssen.
Vorhandene Hardware, zum Beispiel ein Endgerät, erhält in einer vernetzten Umgebung
seine Konfigurationsdaten zum Startzeitpunkt aus einer Datei in
einem bestimmten Format, die sich auf einem Server befindet. Das
Endgerät wird
so programmiert, dass es weiß,
wie es auf seine Konfigurationsdatei zugreifen muss. Es verwendet eine
eindeutige Kennung, um auf die Datei auf dem Server zuzugreifen.
Die eindeutige Kennung ist häufig
die Medienzugriffssteuerungsadresse (Media Access Control (MAC)
address) des Endgeräts.
In einer neuen, zentral verwalteten Umgebung, die Protokolle und
APIs einschließt,
die sich von denjenigen unterscheiden, für die das Endgerät vorgesehen
ist, kann das Endgerät
jedoch nicht auf Voreinstellungsdaten zugreifen, sondern es kann
lediglich in der für
das Endgerät
vorgesehen Weise auf seine Konfigurationsdatei zugreifen. Dies stellt
ein ernsthaftes Problem dar, da es viele solche Einheiten gibt,
die in Gebrauch sind. Der Umstand, dass sie nicht in neuen Systemen
eingesetzt werden können,
hält Benutzer ganz
entscheidend von einem Wechsel zu den neuen Systemen ab.
-
Noch
eine weitere Einschränkung
nach dem Stand der Technik betrifft die Schnittstelle zwischen einem
Administrator und dem Konfigurationsverwaltungssystem. Bei der Konfiguration
von Software innerhalb einer Verwaltungseinrichtung, um Voreinstellungsdaten
für verschiedene
Benutzer und Benutzergruppen, Endgeräte und Endgerätegruppen
einzurichten, startet die Verwaltungssoftware in dem Kontext (Benutzer,
Benutzergruppe, Endgerät
oder Endgerätegruppe),
der von dem Administrator festgelegt wurde, welcher die Einrichtung
betreibt. Wenn der Administrator den Kontext wechselt, in dem die
Anwendung ausgeführt
wird, muss die Anwendung erneut gestartet werden, um Konfigurationsdaten
für den
neuen Kontext zu laden. Der Vorgang des Neustarts von Software bei
jedem Kontextwechsel ist für einen
Administrator zeitaufwendig und umständlich, insbesondere bei Systemen
mit vielen Benutzern. Bei solchen Systemen wird davon ausgegangen, dass
ein Administrator während
der Konfiguration einer Anwendung den Kontext häufig wechselt.
-
"A group-based Authorization
Model for Cooperative Systems" von
K. Sikkel, Proceedings European Conference on Computer-Supported Cooperative
Work, September 1997, XP002106854, legt ein Berechtigungszuweisungsmodell
für Groupware
offen, bei dem Zugriffsrechte auf Klassen von Objekten (Dokumente,
Programme usw.) in Bezug auf Benutzergruppen festgelegt werden,
die hierarchisch aufgebaut sind.
-
"Storage of user preferences
on a per-user Basis",
IBM Technical Disclosure Bulletin, Band 36, Nr. 1, 1. Januar 1993,
Seite 64, XP000333775, legt ein Verfahren zur Speicherung von Benutzervoreinstellungen
für Rechnersystemeinstellungen
in einem verteilten Dateisystem offen, so dass einzelne Benutzer
ihre Voreinstellungen automatisch abrufen können, wenn sie einen Rechner
benutzen, der Zugriff auf das verteilte Dateisystem hat.
-
Die
vorliegende Erfindung betrifft ein Verfahren, eine Vorrichtung und
ein Rechnerverfahren nach den Ansprüchen 1 bis 3 zur Verwaltung
von Benutzerkonfigurationsvoreinstellungen für Anwendungen, die in einem
Netzwerksystem an einer Benutzerstation ausgeführt werden, wobei das Netzwerksystem
einen in einem Netz mit einer Vielzahl von Benutzerstationen verbundenen
Server umfasst und wobei auf dem Server eine Vielzahl von Benutzeranwendungen
zum Herunterladen auf die Benutzerstationen gespeichert werden.
-
Das
hier beschriebene System stellt ein gemeinsames Archiv (repository)
für Konfigurationsdaten
für Benutzer
und Applets in einer Client/Server-Umgebung bereit. Dies wird als
Client-Profilverwaltung
bezeichnet. Das System ermöglicht
Benutzern zu "wandern", d. h., sich jederzeit
an jedem beliebigen Rechner in dem System anzumelden und den Rechner
zur Laufzeit automatisch entsprechend den für den Benutzer auf dem Server
gespeicherten Voreinstellungen konfigurieren zu lassen. Die bevorzugte
Ausführungsform
ist ein auf Java (Java ist ein Warenzeichen von Sun, Inc.) basierendes
System, und die Client-Rechner verwenden eine Webbrowser-Schnittstelle,
die für
die Ausführung
von Java-Anwendungen ausgelegt ist. In der bevorzugten Ausführungsform
wird folglich davon ausgegangen, dass Benutzer-Applets und das Arbeitsplatz-Applet
Java-Applets sind. Es ist jedoch nicht beabsichtigt, die Erfindung
auf eine Java-Umgebung zu beschränken. Voreinstellungen
für die
lokal gespeicherten Anwendungen können in der herkömmlichen
Weise lokal gespeichert werden, während mit Voreinstellungen für die serverbasierten
Applets in der hier beschriebenen Weise verfahren werden kann.
-
Die
Erfindung ermöglicht
einem Systemadministrator, Benutzer des Systems oder Benutzergruppen,
Endgeräte
und Endgerätegruppen
als Hierarchie aufzubauen und Arbeitsplatz- und Benutzeranwendungsvoreinstellungen
für jede
Gruppe und für die
einzelnen Benutzer getrennt festzulegen. Für einen ausgewählten Gruppenkontext,
zum Beispiel die Gruppe aller Benutzer des Systems, oder eine Teilgruppe,
die eine Reihe von ausgewählten
Benutzern enthält,
wird ein Standardsatz von Voreinstellungen für ein ausgewähltes Benutzer-Applet
festgelegt. Der Standardsatz wird anschließend entsprechend den Voreinstellungen
geändert,
die in der ausgewählten
Gruppe ausdrücklich
angegeben sind. Diese Voreinstellungen werden dann nochmals mit
einem Satz von Voreinstellungen geändert, die speziell zu diesem
Benutzer gehören.
-
In
der bevorzugten Ausführungsform
werden alle Benutzer des Systems in einer Baumhierarchie dargestellt,
die aus einem Gruppenknoten "AllUsers" besteht, der alle
Benutzer des Systems enthält,
und einer Vielzahl von Nachkommengruppenknoten, von denen jeder
einen Satz ausgewählter
Benutzer enthält,
die zu der Gruppe gehören,
welche von dem Nachkommengruppenknoten dargestellt wird. Jeder Knoten
enthält
auch Konfigurationsvoreinstellungen für ausgewählte der in dem System verfügbaren Anwendungen.
Ein Administrator weist für
jeden Benutzer, der in mehr als einer Gruppe Mitglied ist, eine Gruppenprioritätsreihenfolge
zu. Wenn ein Benutzer eine Anwendung ausführt, fordert die Anwendung ihre
Voreinstellungen vom Server an. Die Gruppenprioritätsreihenfolge
für den
Benutzer wird zuerst ermittelt. Dann wird anhand des Baums ein Satz
von Konfigurationsvoreinstellungen erstellt, indem die erste Gruppe
aus der Gruppenprioritätsliste
ermittelt wird, von der ein Satz von Voreinstellungen für die ausgewählte Anwendung
abgeleitet werden kann, und die Voreinstellungen anschließend zu
einem Satz für
die ausgewählte
Anwendung zusammengeführt
werden. Die Zusammenführung
wird durchgeführt,
indem der Baum vom Gruppenknoten "AllUsers" zur ersten Gruppe durchlaufen wird,
wobei die an jedem Knoten für
die ausgewählte
Anwendung angegebenen Voreinstellungen erfasst und die erfassten
Voreinstellungen beim Durchlaufen eines jeden Knotens mit den Voreinstellungen
geändert
werden, die an diesem Knoten für
die ausgewählte
Anwendung angegeben sind.
-
Die
Erfindung bietet eine viel höhere
organisatorische Flexibilität
und ein viel höheres
Verwaltungsvermögen,
als eine nichthierarchische Struktur bieten kann. Eine hierarchische
Struktur kann die Organisation der meisten Unternehmen viel genauer beschreiben.
Je größer das
Unternehmen ist, das modellhaft nachgebildet wird, desto wichtiger
ist es, dass die Möglichkeit
eines hierarchischen Aufbaus gegeben ist.
-
1 zeigt
ein der Veranschaulichung dienendes Netzwerk und Benutzerstationen
einschließlich
der Station eines Administrators, in dem die Erfindung umgesetzt
werden könnte;
-
2 zeigt
in Form eines der Veranschaulichung dienenden Blockdiagramms die
mit einem Server kommunizierende Station des Administrators sowie
Komponenten der Station des Administrators und des Servers, um die
zentrale Profilverwaltung und die Verwaltung von Voreinstellungen
zu ermöglichen;
-
3 zeigt
einen der Veranschaulichung dienenden hierarchischen Aufbau von
Benutzergruppen und Benutzern eines Systems. Der gezeigte beispielhafte
hierarchische Aufbau könnte
auch einzelne Endgeräte
und Endgerätegruppen
beinhalten, doch wurden diese der Einfachheit halber weggelassen;
-
4 zeigt
eine der Veranschaulichung dienende Auflistung von einzelnen Benutzern
und die Reihenfolge der Gruppenpriorität, die zur Festlegung eines
Satzes von Voreinstellungen aus dem hierarchischen Aufbau von 3 verwendet
wird, welche für
einen Benutzer und eine bestimmte von dem Benutzer ausgeführte Anwendung
gelten;
-
5 ist
eine ausführlichere
Darstellung der Station des Administrators und des Servers von 2;
-
6 ist
eine der Veranschaulichung dienende Darstellung der Software-Objekte
am Endgerät
eines Benutzers, zu denen eine Benutzer-Anwendung und die API zwischen
der Anwendung und anderen Komponenten gehören, die zusammenarbeiten,
um die Voreinstellungen des Benutzers festzulegen, während die
Anwendung am Endgerät
des Benutzers ausgeführt
wird;
-
7 und 8 zeigen
beispielhafte Operationen am Endgerät eines Benutzers sowie an
einem Server, um den Benutzer anzumelden und zunächst den Arbeitsplatz des Benutzers
einzurichten sowie die Voreinstellungen für den Arbeitsplatz am Endgerät des Benutzers
festzulegen;
-
die 9 bis 11 zeigen
beispielhafte Operationen am Endgerät eines Administrators sowie
an einem Server, um den Administrator anzumelden, den Arbeitsplatz
des Administrators einzurichten und um anhand eines Beispiels eine
Anmeldung und einen Kontext zur Konfiguration auszuwählen; das
Beispiel zeigt auch einen Kontextwechsel während der Konfiguration des
Arbeitsplatzes des Benutzers und die sich daraus ergebenden Operationen; und
-
die 12 bis 24 zeigen
eine Vielzahl von jeweiligen Momentaufnahmen des Bildschirminhalts
des Administrators in verschiedenen Phasen der Anwendungsverwaltung
einschließlich
des Aufbaus einer Hierarchie, wobei 3 ein Beispiel
dieser Hierarchie darstellt, dem Anlegen und Löschen von Benutzern usw., der
Festlegung von Anwendungsvoreinstellungen für Anwendungen sowie Kontextwechsel
während
der Festlegung von Voreinstellungen.
-
Das
hier beschriebene System stellt ein gemeinsames Archiv für Konfigurationsdaten
für alle Benutzer
und Applets in einer Client/Server-Umgebung bereit. Dies wird als
Client-Profilverwaltung
bezeichnet. Das System ermöglicht
Benutzern zu "wandern", d. h., sich jederzeit
an jedem beliebigen Rechner in dem System anzumelden und den Rechner
zur Laufzeit automatisch entsprechend den auf dem Server gespeicherten
Voreinstellungen konfigurieren zu lassen. Die bevorzugte Ausführungsform
ist ein auf Java (Java ist ein Warenzeichen von Sun, Inc.) basierendes
System, und die Client-Rechner verwenden eine Webbrowser-Schnittstelle,
die für
die Ausführung
von Java-Programmen ausgelegt ist.
-
Die
Begriffe "Applet" und "Servlet" sind feststehende
Begriffe im Bereich der Technik der Java-Programmiersprachen, und
sie werden hier verwendet, da der Fachmann mit der Bedeutung dieser Begriffe
vertraut ist. "Applet" bezieht sich auf
ein unabhängiges
Softwaremodul, das in einem Java-fähigen Webbrowser läuft. "Servlet" bezieht sich auf
ein Software-Modul,
das sich auf einem Java-fähigen Webserver
befindet. Es dürfte
klar sein, dass die Verwendung der Begriffe "Applet" und "Servlet" in dieser Beschreibung nicht als Einschränkung der
Erfindung in irgendeiner Weise zu verstehen ist. Der Klarheit halber
wird der Ausdruck "Konfigurations-Applet" hier zur Bezeichnung
eines Softwaremoduls verwendet, das dazu dient, Voreinstellungen
für eine
Endbenutzer-Softwareanwendung wie zum Beispiel ein Textverarbeitungsprogramm,
ein Datenbank-Verwaltungsprogramm
usw. zu konfigurieren. Da Softwareanwendungen in der Java-Umgebung
ebenfalls "Applets" sind, wird mit dem
Ausdruck "Benutzer-Applet" oder nur "Applet" in dieser Beschreibung
eine Endbenutzeranwendung bezeichnet.
-
In
der bevorzugten Ausführungsform
wird davon ausgegangen, dass Benutzer-Applets und das Arbeitsplatz-Applet
Java-Applets sind. Es versteht sich jedoch, dass die Erfindung nicht
auf eine Java-Umgebung beschränkt
ist. Die Erfindung kann in jedem beliebigen Client/Server-System
eingesetzt werden. Auf Wunsch könnte
das System beispielsweise so ausgelegt werden, dass es herstellereigene Kommunikationsprotokolle
und herstellereigene Anwendungen verwendet, die in einer beliebigen
gewünschten
Programmiersprache geschrieben und kompiliert wurden. Selbst in
der bevorzugten auf Java beruhenden Umgebung könnten überdies Rechner mit eigener
Speicherplatte auf manche Anwendungen lokal und auf andere Applets
vom Server zugreifen. Voreinstellungen für die lokal gespeicherten Anwendungen
könnten
in der herkömmlichen Weise
lokal gespeichert werden, während
mit Voreinstellungen für
die serverbasierten Applets in der hier beschriebenen Weise verfahren
werden könnte.
Neben den Voreinstellungen für
serverbasierte Applets, die hier beschrieben werden, werden Voreinstellungen
für lokal
gespeicherte Anwendungen vorzugsweise jedoch mittels der Profile-Management-Properties-API
auf dem Server gespeichert.
-
Eine
einfache Anwendungsprogrammierschnittstelle (API) ermöglicht es
an die API ausgegebenen Applets, Voreinstellungsdaten einfach zu
speichern und abzurufen, wenn das Applet von einem Benutzer oder
Administrator ausgeführt
wird. Applet-Berechtigungen und Benutzervoreinstellungen können entsprechend
der Mitgliedschaft in einer Gruppe und der Identität des Einzelnen
festgelegt werden.
-
Die
Client-Profilverwaltung beinhaltet die folgenden Dienste:
Unterstützung bei
der Anmeldung – Abbildung
auf ein Benutzerprofil;
Benutzerunterstützung – das verwaltungstechnische Vermögen, Benutzerkennungen
zu erzeugen und Benutzern Dienste und Voreinstellungen direkt bereitzustellen;
Unterstützung für Benutzergruppen – das verwaltungstechnische
Vermögen,
hierarchisch aufgebaute Benutzergruppen anzulegen und Dienste und
Voreinstellungen entsprechend der Mitgliedschaft in einer Gruppe
bereitzustellen;
Transparenz des Kontexts des Benutzer-Applets – automatische
Festlegung des Kontexts, in dem das Benutzer-Applet ausgeführt wird.
Das heißt,
die Festlegung der Benutzer- und/oder Gruppenprofile, die für die Ausführung eines
Benutzer-Applets gelten, und die automatische Einrichtung der Profilumgebung;
Archiv
für die
Voreinstellungen des Benutzer-Applets – kontextbezogener Serverspeicher
für Konfigurationsdaten
des Benutzer-Applets;
Dynamisches Vererben von Voreinstellungen
des Benutzer-Applets – hierarchisches
Zusammenführen von
Voreinstellungen eines Benutzer-Applets zur Ladezeit über das
objektorientierte Prinzip der Vererbung; und
Steuerung des
Zugriffs auf das Benutzer-Applet – Steuerung der Ausführung des
Benutzer-Applets entsprechend den Standardzugriffsrechten der Gruppe, in
der eine Mitgliedschaft besteht. Der Administrator kann Standardzugriffsrechte
von Gruppen außer Kraft
setzen und einzelnen Benutzern zusätzliche Zugriffsrechte gewähren oder
verweigern.
-
Die
Profilverwaltung stellt einen Rahmen bereit, über den diese Aufgaben ausgeführt werden. Manche
Aufgaben werden direkt von der Profilverwaltung unterstützt, zum
Beispiel die Verwaltung von Benutzern/Benutzergruppen, Applet-Listen,
Kontextwechsel, Vererbung von Voreinstellungen usw., während speziell
für Benutzer-Applets
erbrachte Konfigurationsdienste gewöhnlich von gesonderten Konfigurations-Applets
unterstützt
werden, die von einem System-Administrator in der Umgebung der Client-Profilverwaltung
aufgerufen werden. Manche Endbenutzer-Applets stellen die Konfigurationsfunktion
möglicherweise
als Teil des Endbenutzer-Applets bereit. Wenn dies der Fall ist,
kann der Administrator das Endbenutzer-Applet (im Gegensatz zu einem
gesonderten Konfigurations-Applet) im Kontext einzelner Benutzer
und Gruppen ausführen,
um die Konfigurationsvoreinstellungen für diese Benutzer und Gruppen
festzulegen.
-
1 zeigt
eine Übersicht
einer für
die Umsetzung der Erfindung in die Praxis vorgesehenen Umgebung.
Ein Netzwerk 100 ist zur Verbindung einer Vielzahl von
Benutzerstationen wie zum Beispiel Tischrechner-PCs 102,
mobilen Laptop-Computern 104,
Arbeitsplatzrechnern 106 (zum Beispiel RISC- Rechnern), einer
Administrator-Station 108 und einem Server 110 bereitgestellt.
In einer Ausführungsform
könnte
das Netzwerk 100 ein lokales Netzwerk sein. In einer anderen
Ausführungsform
könnte das
Netzwerk 100 ein Weitverkehrsnetzwerk für Stellen wie zum Beispiel
Unternehmen mit geografisch verstreuten Standorten sein, die aber
dennoch in das System eingebunden sind. Es ist nicht beabsichtigt, die
Umgebung, in der die Erfindung in die Praxis umgesetzt werden kann,
einzuschränken;
tatsächlich kommt
ein Netzwerk beliebiger Art, das viele Arten von Stationen untereinander
verbindet, in Betracht.
-
2 ist
eine Übersichtsdarstellung
der Betriebsumgebung, in der die Profilverwaltung von einem Administrator
durchgeführt
wird. Ein Client-Netzwerkrechner 200 eines Administrators
ist links in der Figur dargestellt, und ein Server 202 für das System
ist rechts dargestellt. Der Client und der Server kommunizieren über ein
Netzwerk, das mit der Bezugszahl 203 dargestellt ist. In
dem bestimmten Beispiel von 2 wird davon
ausgegangen, dass es sich bei dem Client-Rechner um den Rechner
eines Systemadministrators handelt.
-
Das
clientseitige Profilverwaltungsprogramm (Profile Manager) 206 ermöglicht dem
Administrator, Voreinstellungen von Benutzer-Applets sowohl auf Benutzer-
als auch auf Gruppenebene konfigurieren. Der Administrator kann
neue Benutzer und Gruppenhierarchien anlegen, verschiedenen Gruppen
Benutzer hinzufügen,
Applet-Berechtigungen für
jede Gruppe und für
einzelne Benutzer festlegen. Daneben kann der Administrator Applets
im Kontext eines einzelnen Benutzers oder einer Gruppe konfigurieren.
Der Administrator kann Passwörter
für Benutzer hinzufügen, löschen und
zurücksetzen.
-
Die
Profilverwaltungsunterstützung
ist für den
allgemeinen Benutzer transparent. Der Administrator kann das Profilverwaltungsprogramm 206 im Kontext
eines beliebigen Benutzers oder einer beliebigen Gruppe aufrufen.
Nur der Administrator kann seinen Kontext wechseln, um Clients (Benutzer)
und Gruppen zu verwalten. Der Server gestattet es einem Benutzer
ohne Verwaltungsbefugnis nicht, den Kontext zu wechseln. Wenn eine
Anforderung am Server ankommt, fragt der Server die auf Echtheit überprüfte Kennung
(ID) des Benutzers ab, der versucht, auf diese Funktion zuzugreifen.
Wenn der Benutzer keine Verwaltungsbefugnis besitzt (d. h., wenn
er kein Mitglied der Gruppe "AllUsers.Administrator" ist), weist das
Profilverwaltungsprogramm-Servlet (Profile Manager Servlet) 214 die
Anforderung zurück.
-
Das
Profilverwaltungsprogramm 206 ruft andere Applets wie zum
Beispiel das Applet1 (208) auf, wie in 2 gezeigt
ist. In diesem Beispiel könnte das
Applet1 das Verwaltungs-Applet zur Konfiguration von Voreinstellungen
in Bezug auf Arbeitsplätze von
Benutzern sein. Oder das Applet1 könnte ein zu einem Endbenutzer-Applet
wie zum Beispiel Editoren, Textverarbeitungsprogrammen, Datenbanken usw.
gehörendes
Konfigurationsdienstprogramm sein. Vorzugsweise sind Konfigurations-Applets
wie zum Beispiel das Konfigurations-Applet 208 als von ihren entsprechenden
Benutzer-Applets getrennte Module vorhanden, doch ist dies nicht
unbedingt erforderlich. Im Kontext von 2 ist das
Applet1 gewöhnlich
ein Konfigurations-Applet für
ein Benutzer-Applet; der Administrator führt das Konfigurations-Applet
Applet1 in einem Gruppenkontext aus, um Gruppenvoreinstellungen
und Berechtigungsstandardwerte zu setzen, oder aber in einem Benutzerkontext,
um Konfigurationen von Benutzer-Applets für einen einzelnen Benutzer
individuell anzupassen. Indem das Applet1 als ein von seinem Benutzer-Applet
getrenntes Modul realisiert wird, wird die Leistungsfähigkeit
erhöht,
da das Konfigurations-Applet1 im Vergleich zum Benutzer-Applet wahrscheinlich
klein ist. Getrennte Konfigurations-Applets ermöglichen dem Administrator auch,
den Endbenutzer bei der Konfiguration des Benutzer-Applets zu unterstützen.
-
Herkömmliche
eigenständige
Rechner speichern Konfigurationsdaten von Benutzer-Applets lokal
in Verbindung mit dem betreffenden Benutzer-Applet. Herkömmliche
eigenständige
Rechner, die auf Java beruhen, speichern Konfigurationsdaten von Benutzer-Applets
unter Verwendung des von der Klasse "java.util.Properties" bereitgestellten Formats. Beide Rechnerkonzepte
setzen voraus, dass das Benutzer-Applet den Namen einer lokalen
Datei angibt, in der die Konfigurationsdaten in Bezug auf das Benutzer-Applet
gespeichert werden sollen. Anders ausgedrückt, zwischen dem Rechner und
dem in ihn geladenen Benutzer-Applet ist eine Beziehung notwendig.
Eine Profilverwaltung, wie sie hier beschrieben wird, stellt die
vertrauten Funktionen eines realen java.util.Properties-Objekts
sowie zusätzliche Einrichtungen
bereit, die die Möglichkeiten
des "wanderns" des Benutzers sowie
die Möglichkeit
der nahtlosen Einbindung in einen leistungsfähigen Verwaltungsrahmen (den
Profile Manager) unterstützen.
-
ProfileManagementProperties
P 210 ist ein Eigenschaften-Objekt (properties object)
für das Applet1
und stellt eine API zwischen dem Applet1 und dem Server bereit,
die dem Server die Feststellung ermöglicht, wo er Konfigurationsdaten
für das Applet1
im Kontext von Benutzern und Gruppen speichern soll.
-
Die
Objektklasse ProfileManagementProperties stellt neben der weiteren
Möglichkeit,
die Konfigurationsdaten für
Software zu erzeugen, zu speichern, aus dem Permanentspeicher abzurufen
und bereitzustellen, die gesamte Funktionalität der java.util.properties-Klasse
bereit. Die Speicherung dieser Daten an einem zentralen Ort macht
die Verwaltung von Konfigurationen von Benutzern und Benutzergruppen
möglich.
-
Wenn
ein Benutzer als Administrator auftritt, kann er mit Hilfe von ProfilManagementProperties 210 das
Benutzer-Applet, das dem Konfigurations-Applet1 entspricht, konfigurieren,
oder er kann das Applet1 konfigurieren, wenn dieses ein Endbenutzer-Applet
ist, und die Konfigurationsdaten am richtigen Ort auf dem Server
in dem richtigen Kontext speichern. Statt zwischen dem Benutzer-Applet
und dem Rechner eine Beziehung herzustellen, wie es in herkömmlichen
Systemen der Fall ist, kann dadurch zwischen dem Benutzer-Applet
und dem Benutzer eine Beziehung hergestellt werden.
-
ProfileManagementProperties 210 ist
eine Erweiterung der Klasse "java.util.Properties". Diese Erweiterung
ermöglicht
es, dass Schlüssel/Wert-Paare
von Voreinstellungsdaten eines Eigenschaften-Objekts einem Schlüssel statt
einem Strom, wie es bei java.util.Properties der Fall ist, zugeordnet
werden können.
Dadurch können
Anwendungsentwickler wiederum statt eines Dateinamens und -pfades
den Schlüssel
zur Angabe eines eindeutigen Speicherplatzes in Bezug auf einen
Kontext für Voreinstellungsdaten
verwenden. ProfileManagementProperties 210 legt den Schlüssel automatisch fest.
Die Erzeugung des Schlüssels
wird in Verbindung mit den 8 und 9 ausführlicher
erörtert. Indem
ProfileManagementProperties 210 im Anschluss an die Klasse "java.util.Properties" modelliert wird,
kann das System über
eine rekursive Klassen-Standard-Auswertung
die Vererbung von Voreinstellungen vorteilhaft nutzen. Somit stellt
diese erweiterte Klasse eine Funktion "Gruppenstandard" bereit, indem Voreinstellungen zusammengetragen
werden, wobei bei einem aktuellen Kontext begonnen wird, wie mit
Bezug auf 3 erörtert wird, und die Kontext-Hierarchie
für Standardwerte
aufsteigend durchlaufen wird.
-
Der
Server 202 enthält
eine Datenbank 212, die Benutzerdaten und Gruppendaten
wie zum Beispiel Benutzer- und Gruppenvoreinstellungen sowie Zugriffsberechtigungen
auf Benutzer-Applets speichert. Der Webserver 218 stellt
einen typischen Webserver mit Unterstützung von Java-Applets dar.
Das Profilverwaltungsprogramm-Servlet 214 bildet Benutzer-
und Gruppenkennungen auf Voreinstellungsdaten ab. Es führt auch
eine Zugriffssteuerungsliste, um den Zugriff von Benutzern auf Anwendungen
auf dem Server zu verwalten.
-
Benutzer-
und Gruppenvoreinstellungen werden in Form einer Baum-Hierarchie
gespeichert, wie in 3 gezeigt ist. Alle Benutzer
des Systems gehören
automatisch zur obersten Gruppe "AllUsers". Alle Benutzer gehören zur
Gruppe "AllUsers"; diese Gruppe enthält die Standardvoreinstellungen für manche
oder für
alle Benutzer-Applets auf dem Server. In 3 wird davon
ausgegangen, dass der Server mindestens vier Benutzer-Applets enthält, die mit
App3, App4, App5 und App6 gekennzeichnet sind. Wie in der Gruppe "AllUsers" angegeben ist, ist der
Standardhintergrund (BG) für
App3 "blau" (BG = Blue). Andere
der Veranschaulichung dienende Voreinstellungen, die mit x, y und
z bezeichnet sind, sind mit den Standardwerten 1, 2 beziehungsweise
3 gezeigt. Die Bezeichnungen x, y und z sollen eine beliebige gewünschte Voreinstellung
darstellen, und die Werte 1, 2 und 3 sind willkürlich gewählt und dienen lediglich zur
besseren Veranschaulichung. Die Voreinstellung x könnte zum
Beispiel die Bildschirmschriftart für den Arbeitsplatz sein; der
Wert x = 1 könnte
die Standardschriftart Times Roman erforderlich machen. Ebenso sind
die Standardvoreinstellungen für
App4 bei allen Benutzern: BG = Grey (BG = grau), x = 2, y = 2 und
z = 2.
-
Die
Standardwerte in der Gruppe "AllUsers" können für andere
Kontexte wie zum Beispiel andere Benutzergruppen und einzelne Benutzer
in jeder gewünschten
Weise geändert
werden. Anhand eines Beispiels sind zusätzlich zu dem Kontext von "AllUsers" in 3 vier
weitere Gruppen (GroupX, GroupY, GroupY1 und GroupY2) gezeigt. Darüber hinaus sind
zwei einzelne Benutzer User1 und UserN gezeigt. Benutzer können in
mehr als einer Gruppe Mitglied sein. In 3 ist User1
Mitglied in "AllUsers", GroupX und GroupY1;
UserN ist Mitglied in "AllUsers" und GroupY2. Wenn
ein Benutzer in mehr als einer Gruppe (neben "AllUsers" in noch einer weiteren Gruppe) Mitglied
ist, werden die Gruppen nach Priorität geordnet, um die Voreinstellungen
für ein
bestimmtes Applet für
diesen Benutzer auszuwählen. Der
Administrator konfiguriert die Prioritäten der Gruppen für einen
Benutzer. Die Priorität
der Gruppen ist in 4 veranschaulicht. In 4 hat
User1 die GroupX (die durch den voll qualifizierten Namen "AllUsers.GroupX" ausgewiesen und
seine Gruppe mit der höchsten
Priorität
ist). Die Gruppe mit der nächsthöheren Priorität von User1
ist GroupY1 ("AllUsers.GroupY.GroupY1"). Die Gruppe mit
der niedrigsten Priorität
von User1 ist die Gruppe "AllUsers". Wenn ein Benutzer,
zum Beispiel User1, die Anforderung für die Ausführung eines Applets, zum Beispiel von App3,
stellt, werden die Voreinstellungen aus dem Baum von 3 entsprechend
der Gruppe oder den Gruppen zusammengeführt, zu der/denen der Benutzer
gehört,
und das Benutzer-Applet wird am Arbeitsplatz des Benutzers entsprechend
konfiguriert.
-
Der
erste Schritt bei der Zusammenführung von
Voreinstellungen für
einen Kontext besteht darin, die Standardwerte zu erhalten. Sofern
es Standardwerte für
einen Benutzer gibt, sind dies der zusammengeführte Satz von Voreinstellungen
für das
Applet von der Gruppe mit der höchsten
Priorität,
von der Voreinstellungsdaten für
das Applet abgerufen werden können.
Sofern es Standardwerte für
eine Gruppe gibt, sind dies der zusammengeführte Satz von Voreinstellungen
für das
Applet vom Elternteil der Gruppe (d. h., die Gruppe "AllUsers" ist der Elternteil von "AllUsers.GroupX"). Wenn eine Gruppe
keinen Elternteil hat (d. h. die oberste Gruppe "AllUsers"), gibt es keine Standardwerte für diese
Gruppe. Um die Voreinstellungen für ein Applet in einem Kontext zusammenzuführen, überschreiben
die Voreinstellungen für
das Applet, die extra in dem Kontext gespeichert sind, die für den Kontext
gesetzten Standardvoreinstellungen für das Applet. Um Voreinstellungen
in dem Standardsatz für
ein Applet in einem Gruppenkontext zusammenzuführen, werden folglich von jedem
Gruppenknoten bis hinauf zur Gruppe "AllUsers" rekursive Aufrufe durchgeführt, wobei
der Satz von Voreinstellungen eines jeden Elternteils für das Applet
angefordert wird. Zur Veranschaulichung des folgenden Beispiels
sei auf 3 verwiesen. Wenn der Kontext
zum Beispiel "AllUsers.GroupY.GroupY1" ist, wird der Elternteil
von GroupY1, der GroupY ist, aufgerufen, und seine Standardvoreinstellungen
für das
Applet werden angefordert. GroupY1 ruft seinen Elternteil, "AllUsers", rekursiv auf.
-
"AllUsers" hat keinen Elternteil,
so dass "AllUsers" auf den Aufruf von
GroupY hin seinen Satz von Voreinstellungen für das Applet zurückgibt.
Dieser Satz von Voreinstellungen wird mit den Voreinstellungen geändert, die
in GroupY gegebenenfalls für
das Applet gespeichert sind. Dies ist nun der Standardsatz von Voreinstellungen
für das
Applet für den
Kontext von GroupY1. Dieser Satz von Standardvoreinstellungen wird
als Ergebnis des rekursiven, von GroupY1 an GroupY gerichteten Aufrufs
an GroupY1 zurückgegeben
und mit den bei GroupY1 gegebenenfalls vorhandenen Voreinstellungen
für das
Applet geändert,
so dass er der in diesem Fall zu verwendende tatsächliche
Satz von Voreinstellungen wird. Der Satz von Voreinstellungen für den Kontext eines
Benutzers wird in derselben Weise erstellt, mit der Ausnahme, dass
die Gruppe mit der höchsten Priorität, von der
Voreinstellungsdaten für
den Benutzer abgerufen werden können,
verwendet wird, um zunächst
den Gruppenkontext festzulegen, von dem die Standardwerte beschafft
werden. Dann wird der tatsächliche
Satz von Voreinstellungen für
den Benutzer und das vom Benutzer angeforderte Applet mit der vorstehend
beschriebenen rekursiven Prozedur erstellt.
-
Die
folgenden Beispiele veranschaulichen die vorstehend beschriebene
Zusammenführung
von Voreinstellungen und sollten in Verbindung mit 3 gelesen
werden.
-
Beispiel 1: Ein Administrator
führt ein
Konfigurations-Applet für
App3 aus, um Voreinstellungen für
die Gruppe "AllUsers.GroupX" festzulegen
-
Um
die Voreinstellungen für
App3 im Kontext von "AllUsers.GroupX" festzulegen, muss
der aktuelle Satz von Voreinstellungen ermittelt werden. "AllUsers.GroupX" fordert die Standardwerte
für seinen Elternteil "AllUsers" an. Da "AllUsers" die oberste Gruppe
ist, schickt sie ihre Voreinstellungen für App3 an GroupX. Dies sind
die Standardvoreinstellungen für
App3 im Kontext von Groupx. Da GroupX keine Voreinstellungen für App3 hat,
ist der Standardsatz von "AllUsers" der tatsächliche
Satz von Voreinstellungen, der zu verwenden ist. In diesem Beispiel
sind diese Voreinstellungen von der Gruppe "AllUsers" wie folgt: BG = Blue (BG = blau), x
= 1, y = 2, z = 3. Der Administrator kann nun mit Hilfe des Konfigurations-Applets
die zusammengeführten
Voreinstellungen in jeder gewünschten
Weise ändern.
-
Beispiel 2: User1 fordert
die Ausführung
von com.ibm.App3 an. Die Voreinstellungen für com.ibm.App3 müssen im
Kontext von User1 zusammengeführt
werden
-
4 zeigt,
dass die Gruppe mit der höchsten
Priorität
für User1 "AllUsers.GroupX" ist; dieser Zweig
der Gruppenhierarchie wird zuerst auf Voreinstellungsdaten bezüglich App3
geprüft.
Ab hier ist das Beispiel weitgehend gleich dem obigen Beispiel 1,
mit der Ausnahme, dass App3 auf dem Arbeitsplatzrechner des Benutzers
mit dem zusammengeführten
Satz der Voreinstellungen konfiguriert wird. Die Voreinstellungen
für App3
für User1
sind wie folgt: BG = Green (BG = grün), x = 1, y = 2, z = 3, da die
im Kontext von User1 für
App3 gespeicherte Voreinstellung "BG = Green" die vom Zweig "AllUsers.GroupX" des Voreinstellungsbaums abgerufene Standardvoreinstellung "BG = Blue" überschreibt.
-
Beispiel 3: Zusammenführung von
Voreinstellungen für
com.ibm.App6 im Kontext von User1
-
Dieses
Beispiel veranschaulicht die Situation der Gruppe mit der höchsten Priorität, die keine
zusammengeführten
Voreinstellungen für
den Kontext von User1 enthält.
Auch hier ist GroupX die Gruppe mit der höchsten Priorität für User1.
Diese Gruppe und ihr Elternteil "AllUsers" enthalten keine
Voreinstellungen für
App6. Deshalb wird die Gruppe mit der nächsthöheren Priorität durchsucht.
Die Gruppe mit der nächsthöheren Priorität für User1
ist GroupY1. von dieser Gruppe kann ein Satz von Voreinstellungen
für App6
abgerufen werden. Die Zusammenführung
von Voreinstellungen geht so vonstatten, wie es im Beispiel 1 beschrieben
ist. Rekursive Aufrufe werden von GroupY1 den Baum hinauf zur Wurzel,
der Gruppe "AllUsers", durchgeführt, und
die Sätze
mit den Voreinstellungen werden entsprechend der Abfolge der rekursiven
Aufrufe hinab zurückgeschickt und
auf ihrem Weg geändert,
um den Standardsatz zu bilden. Anschließend wird der Standardsatz
mit den in GroupY1 gespeicherten Voreinstellungen geändert, um
den zusammengeführten
Satz von Voreinstellungen zu bilden, der für diesen Kontext gilt. Kurz
gesagt, "AllUsers" gibt einen leeren
Satz von Voreinstellungen zurück,
da sie keine Voreinstellungen für
App6 hat. GroupY ändert
diesen leeren Satz mit den Werten a = 1 und b = 2 und schickt diesen Satz
als Standardsatz ein GroupY1 zurück.
GroupY1 ändert
den Standardsatz mit a = 33. Dieser Satz wird dem Kontext User1
zur Verwendung als sein Standardsatz zurückgeschickt. Da im Kontext
von User1 keine Voreinstellungen für App6 gespeichert sind, stellen
die vom Zweig "GroupY1" des Voreinstellungsbaums
abgerufenen Standardwerte den vollständig zusammengeführten Satz
von Voreinstellungen für
App6 dar. Der tatsächliche
Satz von Voreinstellungen wird folglich a = 33, b = 2 für diesen
Kontext.
-
Die
vorstehenden 3 Beispiele beschrieben das Zusammentragen von Voreinstellungen
als Antwort auf einen Ladeaufruf "load()" für
eine bestimmte Softwarekomponente. Wenn Voreinstellungsdaten für eine Softwarekomponente
gespeichert werden, werden alle Voreinstellungen, die ausdrücklich in dem
Kontext geschrieben wurden, in dem sie gespeichert werden, in den
Datenspeicher (212) an den Speicherplatz geschrieben, der
von der Kombination angegeben wird, welche aus dem Kontext, in dem
die Software ausgeführt
wird, und dem Schlüssel
für die Software,
deren Voreinstellungen gespeichert werden, besteht.
-
Berechtigungen
funktionieren ähnlich:
Eine neue Gruppe hat Zugriff auf alle Applet-Namen, die von der
Gruppe selbst zugelassen sind, sowie zu allen Applets, die von ihren Übergruppen
zugelassen werden. Genauso wie Java dem Programmierer gestattet,
eine Überklassenmethode
zu überschreiben, gestattet
die Profilverwaltung dem Systemadministrator jedoch, eine vererbte
Berechtigung zu überschreiben.
Dies wird als "Überschreiben
einer Berechtigung" (overriding
a permission) bezeichnet.
-
Wie
bei der Vererbungsform in Java wird die Form der Vererbung von Voreinstellungen
und Berechtigungen in der Profilverwaltung (Profile Management)
als "Einfachvererbung" bezeichnet. Einfachvererbung
bedeutet, dass jede Gruppe der Profilverwaltung nur eine Obergruppe
haben kann (obgleich eine bestimmte Obergruppe mehrere Untergruppen
haben kann).
-
Bei
Benutzern (Blattknoten) der Profilverwaltung ist gegebenenfalls
eine Mitgliedschaft in mehreren Gruppen erforderlich, so dass eine
Einrichtung notwendig ist, um die Vererbung von Voreinstellungen
auf eine einzige hierarchische Gruppe zu beschränken, um das Risiko von fehlerhaften
Konfigurationen aufgrund von verschiedenen Teilsätzen, die nicht miteinander
vereinbar sind und durch die gruppenübergreifende Zusammenführung von
Voreinstellungen einzelner Zweige eingeführt wurden, so klein wie möglich zu
halten. Indem man die Priorisierung von Mitgliedschaften des Benutzers
in Gruppen zulässt,
kann die Profilverwaltung eine Suchreihenfolge befolgen, wenn sie
nach Voreinstellungen sucht, die zu einem bestimmten Applet gehören. Anders
ausgedrückt,
wenn bei der Gruppe mit der höchsten
Priorität
begonnen wird, hält
die Suche an der ersten Gruppe an, bei der festgestellt wird, dass
sie Konfigurationsdaten für
das Applet enthält,
das versucht, seine Voreinstellungen zu laden.
-
Ein
Benutzer erbt Software-Berechtigungen von Gruppenmitgliedschaften.
Bei sorgfältiger
Modellierung der Geschäftsprozesse
des Unternehmens kann der Administrator vielen Benutzern jeweils
einzeln Zugriffsrechte auf Software zuweisen, ohne durch Ansichten
navigieren zu müssen.
Die Profilverwaltung steuert den Zugriff, indem sie den Webserver
so programmiert, dass er den Zugriff auf Applets gestattet oder
verweigert. Der Webserver führt
die Zugriffssteuerung durch. Das Profilverwaltungsprogramm-Servlet
wird auch durch den Webserver geschützt, indem Benutzerkennungen
und Passwörter
zum Zweck der Identitätsprüfung an
den Webserver geleitet werden müssen.
Es gehört
zum standardmäßigen Funktionsumfang
eines Browsers, nach Bedarf zur Eingabe des Benutzerpassworts aufzufordern.
-
5 zeigt
das System von 2 ausführlicher. Das Konfigurations-Applet
Applet1 wird vom Administrator innerhalb des Profilverwaltungsrahmens
aufgerufen. Das Applet1 kann die Anwendungsprogrammierschnittstelle
(API) 515 zur Abfrage von Informationen über ihre
Betriebsumgebung (zum Beispiel Kontext abfragen, Kontextwechselereignisse
abfragen, Zugriffssteuerungsliste für diesen Kontext abfragen usw.)
so realisieren, dass sie im Profilverwaltungsrahmen fest integriert
ist, doch ist dies keine Bedingung für ein Konfigurations-Applet. In
jedem Fall braucht der Gestalter des Applet1 neben den grundlegenden
Methoden eines java.util.Properties-Objekts, mit denen Voreinstellungsdaten
in das java.util.Properties-Objekt gebracht und aus diesem Objekt
entfernt werden, nur die grundlegenden API-Methoden zu verstehen: "enablePersistence()", "load()" und "save()". Die API 515 stellt
darüber
hinaus die Methoden "list()" und "getContext()" bereit. Das Applet1
braucht sich nur bei der Klasse ProfileManagementProperties einzutragen
und diese Methoden entsprechend aufzurufen. Die Methode "load()" kann aufgerufen
werden, um den aktuellen Stand der Voreinstellungen für das Benutzer-Applet
abzurufen, das gerade im Kontext eines vom Administrator ausgewählten Benutzers
oder einer Benutzergruppe konfiguriert wird. Der Administrator kann
dann die Voreinstellungen wie gewünscht ändern und sie mit Hilfe der
von dem Applet (das die Methode "save()" seines Objekts "ProfileManagementProperties" verwendet) bereitgestellten
Funktion "Konfiguration
speichern" speichern.
Wenn das Applet1 die Liste der Benutzer-Applets benötigt, auf die
ein Benutzer zugreifen darf, kann es die Liste vom Server ebenso
mit der Methode "list()" abrufen. Die Methode "getContext()" kann von dem Applet
dazu verwendet werden, den Namen des Kontexts anzuzeigen, in dem
es ausgeführt
wird, oder sogar um sicherzustellen, dass es nur in einem ganz bestimmten Kontext
ausgeführt
wird (d. h., wenn ein Applet mit Hilfe des Exportagenten einen Dienst
auf dem Server konfigurieren wollte, würde es möglicherweise nur zulassen,
dass es im Kontext "AllUsers" ausgeführt würde, da
die Konfiguration, die exportiert wird, nicht benutzerspezifisch
sondern serverspezifisch ist). Damit das Applet1 im Profilverwaltungsrahmen
ausgeführt
werden kann, muss es sich lediglich beim ProfileManagementProperties-Objekt 210 eintragen
und die Klasse "ProfileManagementProperties", eine Erweiterung
der Klasse "java.util.Properties", ausführen.
-
Das
Profilverwaltungsprogramm 506 stellt auch eine Kontextwechsel-API 516 für Konfigurations-Applets
bereit. Das Applet1 kann einen Kontextwechselereigniswächter (context
change event listener) 512 ausführen. Die API 516 und
der Ereigniswächter 512 ermöglichen
dem Administrator, den Kontext (Benutzer oder Gruppe) zu wechseln,
während
das Konfigurations-Applet ausgeführt
wird, ohne es anhalten und neu starten zu müssen. Bei der Konfiguration
von Benutzervoreinstellungen von Applets beispielsweise wechselt
der Administrator den Kontext wahrscheinlich häufig während der Konfiguration. Wenn
das Konfigurations-Applet als ein Wächter, der auf solche Ereignisse
lauscht (Listener), eingetragen ist, wird es vom Profilverwaltungsprogramm 506 über die
API 516 von einem Kontextwechsel unterrichtet. Dadurch
kann das Applet1 seine Voreinstellungen vom Server für jeden
neuen Kontext auffrischen. Ohne die Ereigniswächter-API müsste das Applet1 vom Administrator
beendet und neu gestartet werden, nachdem ein neuer Kontext ausgewählt worden
ist, um auf die bereits vorhandenen Voreinstellungsdaten für den neuen Kontext
hinzuweisen und um zu verhindern, dass es vom Profilverwaltungsprogramm-Applet
angehalten und neu gestartet wird. Um sich zu registrieren, ruft
das Applet1 eine Methode auf seinem Eigenschaften-Objekt "ProfileManagementProperties" 510, d.
h. "addContextChangeListener" (API 516),
auf. Wenn der Administrator einen neuen Kontext festlegt, richtet das
Profilverwaltungsprogramm 506 einen Aufruf "Kontext festlegen" (API 516)
an das Objekt 510, das als Antwort darauf die Methode "neu laden" (API 516) auf
dem Ereigniswächter 512 aufruft.
Der Ereigniswächter 512 richtet
nun einen Aufruf "Eigenschaften laden" an sein Eigenschaftenobjekt 510,
um die neuen Voreinstellungsdaten vom Server für den neuen Kontext zu erhalten
und veranlasst das Applet1, seine grafische Benutzeroberfläche (GUI)
und seine internen Variablen zu aktualisieren, um die neuen Voreinstellungsdaten
widerzuspiegeln.
-
Die
vorstehende Funktionalität
verhindert, dass ein Netzwerkadministrator möglicherweise Daten aus einem
Kontext liest, den Kontext wechselt und die Daten versehentlich
mit "save()" überschreibt, wenn er eigentlich
einen Ladeaufruf "load()" durchführen möchte, bevor
er Konfigurationsänderungen
in dem neuen Kontext vornimmt.
-
Applets,
die sich nicht als Wächter
registrieren, werden vom Profilverwaltungsprogramm-Applet angehalten,
gelöscht,
neu geladen und neu gestartet, wenn der Administrator einen Kontextwechsel
erzwingt.
-
Die
Profilverwaltung stellt auch einen Dienst "Eigenschaften exportieren" bereit, damit vorhandene
Hardware und Software leicht nachgerüstet und in diese Profilverwaltungsumgebung eingebunden
werden kann. Der Dienst "Eigenschaften
exportieren" ermöglicht dem
Profilverwaltungsprogramm 506 die Unterstützung von
Benutzer-Arbeitsplatzrechnern (der physischen Hardware) sowie von
Benutzern, Gruppen und Benutzeranwendungen. Da vorhandene Arbeitsplatzrechner
keine Kenntnis vom Objekt "ProfileManagementProperties" 510 haben,
ermöglicht
der Exportdienst Herstellern von Arbeitsplatzrechnern die Erzeugung
von Konfigurations-Applets für
Arbeitsplatzrechner, die festlegen, dass ein Exportagent 520 auf
dem Server aufgerufen wird, wenn das Applet des Herstellers seine
Voreinstellungsdaten speichert. Die Markierung "Export" bewirkt, dass eine Instanz einer vom
Hersteller gelieferten Klasse (des Objekts "Exportagent" 520) erzeugt und die Export-Methode
auf dem Objekt aufgerufen wird, um anzugeben, dass Konfigurationsdaten
für den
Arbeitsplatzrechner in einem herstellereigenen Dateiformat gespeichert
und ein oder mehrere Dateispeicherplätze, die vom Arbeitsplatzrechner
benötigt werden,
konfiguriert werden.
-
Nehmen
wir an, dass das Applet1 das Konfigurations-Applet ist, das von
einem Hersteller für
ein vorhandenes Endgerät
bereitgestellt wird, welches sich mit dem vorhandenen Profilverwaltungssystem nicht
verträgt.
Der Hersteller liefert auch den Exportagenten 520. Ein
Administrator kann das Endgerät für den Betrieb
in diesem System konfigurieren, indem er das Profilverwaltungsprogramm 506 ausführt, den
Kontext für
das Endgerät,
das konfiguriert wird, festlegt, das vom Hersteller gelieferte Konfigurations-Applet1
ausführt
und das Applet konfiguriert. Wenn der Administrator die Konfiguration
speichert, befindet sich unter den Daten, die an den Server übertragen
werden, eine eindeutige Kennung, die das Endgerät, das konfiguriert wird, ausweist. Üblicherweise
ist dies die Medienzugriffsteuerungs-(MAC-)Adresse des Endgeräts. Das
Profilverwaltungsprogramm-Servlet 514 stellt fest, dass
bei dem Speicheraufruf ein Exportagent angegeben ist. Das Profilverwaltungsprogramm-Servlet 514 erkennt dies
an einer der gespeicherten Voreinstellungen, die die Notwendigkeit
des Exportagenten angibt. Die Voreinstellung gibt die Export-Markierung in Form des
folgenden Schlüsselwertepaares
an:
XXXXEXPORT_AGENTXXXX = (voll qualifizierter Klassenname
des Exportagenten)
-
Die
Exportmethode (Context context, config properties) des Exportagenten
wird vom Profilverwaltungsprogramm-Servlet 514 aufgerufen,
um aus den gespeicherten Voreinstellungsdaten eine oder mehrere
Dateien 522 auf dem Server anzulegen. Die jeweilige Datei
oder die jeweiligen Dateien werden von der eindeutigen Kennung des
Endgeräts
ausgewiesen, die sich unter den Eigenschaftsdaten des Applet1 befand.
Wenn das Endgerät
später
hochfährt,
lokalisiert und ruft es seine Konfigurationsdaten aus den Dateien 522 auf
dem Server mit Hilfe seiner eindeutigen Kennung in der gleichen
Weise ab, in der es dies immer tat, unabhängig vom Profilverwaltungssystem.
-
6 zeigt
ein Applet1, das auf einem Client-Rechner ausgeführt wird. Das Applet1 könnte ein Endbenutzer-Applet
wie zum Beispiel ein Textverarbeitungsprogramm sein. In jedem Fall
hat das Applet1 Zugriff auf einige der API-Methoden, die bei der
Bezugszahl 515 in 5 gezeigt
sind, wenn es dies wünscht.
Das Applet2 verwendet die Methode "Laden" ("load()"), um Voreinstellungen
abzurufen, und die Methode "Speichern" ("save()"), um Voreinstellungen
zu speichern, die vom Endbenutzer möglicherweise geändert wurden.
-
"EnablePersistence" initialisiert das
Objekt "ProfileManagementProperties" für das Applet2
mit einem Kontext, der gleich dem Benutzerkontext ist, und erzeugt
den eindeutigen Schlüssel,
um den Speicherplatz für
die Voreinstellungsdaten auf dem Server auszuweisen, wie vorstehend
in Bezug auf den Administrator beschrieben wurde.
-
7 zeigt
die Situation eines Benutzers, der seinen Arbeitsplatz einrichtet.
Der Benutzer des Client-Rechners (700) ruft mit seinem
Webbrowser die URL des Arbeitsplatz-Applets auf dem Server auf, und im Schritt 704 sendet
er eine Nachricht (http://server/Desktop.html). Da "Desktop.html" eine vom Server
geschützte
Datei ist, wird bei 706 eine unvorherbestimmbare, variable
zahl (Challenge) an den Webbrowser auf dem Client-Rechner zurückgeschickt.
Der Webbrowser auf dem Client-Rechner antwortet, indem er den Benutzer
zur Eingabe einer Benutzerkennung und eines Passworts auffordert. Bei 708 sendet
der Client dann die Daten in Form der Benutzerkennung und des Passworts
an den Server. Die Benutzerkennung und das Passwort sind bei 708 von 3 fett
gedruckt gezeigt, um zu veranschaulichen, dass diese Daten vom Webbrowser
selbst übergeben
werden. Dieselbe Art von Nomenklatur wird zur Veranschaulichung
derselben Vorgänge auch
an anderen Stellen verwendet. Da der Benutzer vermutlich zur Ausführung des
Arbeitsplatz-Applets berechtigt ist, wird der Anforderung stattgegeben.
-
Zwischen
dem Client und dem Server (nicht gezeigt) finden mehrere Interaktionen
statt, bei denen der Code für
das Arbeitsplatz-Applet vom Server auf den Client geladen wird.
Das Arbeitsplatz-Objekt wird erzeugt, und bei 712 beginnt
seine Ausführung. Das
Arbeitsplatz-Objekt benötigt
seine Voreinstellungsdaten (d. h. Konfigurationsdaten), damit es
den Arbeitsplatz für
den Endbenutzer, der ihn aufruft, individuell einrichten kann. Zu
diesem Zweck erzeugt der Arbeitsplatz als Teil des Initialisierungsprozesses des
Arbeitsplatz-Objekts bei 714 ein ProfileManagementProperties-Objekt
P, mit dem eine Kopie der Voreinstellungsdaten des Benutzers für das Arbeitsplatz-Applet
vom Server abgerufen, geladen und zwischengespeichert wird und die
Daten angewendet und gespeichert werden. Bei 716 erfolgt
dann ein API-Aufruf "P.enablePersistence(desktopObject
(applet)) durch das Arbeitsplatz-Objekt, welcher im Schritt 1) von 716 das
ProfileManagementProperties-Objekt P mit der URL des Profilverwaltungsprogramm-Servlets 214 initialisiert.
Diese URL wird von der URL des Arbeitsplatz-Applets abgeleitet,
das zuvor vom Server geladen wurde. Das ProfileManagementProperties-Objekt
P sendet eine Anforderung 718 an das Profilverwaltungsprogramm-Servlet 214, um
den Kontext für
den Benutzer zu erhalten, der das Arbeitsplatz-Applet ausführt. In diesem Fall besteht der
Kontext aus zwei Komponenten, einem Kontextnamen, bei dem es sich
um die Kennung des Benutzers handelt, und einer Kontextart, die
in diesem Fall "Benutzer" lautet. Das Profilverwaltungsprogramm-Servlet erhält die Kennung
des Benutzers aus der Anforderung 718, und bei 719 schickt
es den Benutzerkontext zurück.
Im Schritt 2) von 716 wird das ProfileManagementProperties-Objekt
P mit dem Kontext des Benutzers initialisiert, der den Arbeitsplatz
ausführt.
Im Schritt 3) von 716 erzeugt das ProfileManagementProperties-Objekt
P einen eindeutigen Schlüssel
für die
Arbeitsplatz-Software, indem es das Java-Arbeitsplatz-Objekt P nach seinem voll qualifizierten
Klassennamen fragt. Alle Jave-Objekte kennen ihren Klassennamen.
Dieser eindeutige Schlüssel
wird mit den Kontextdaten des Benutzers verknüpft, um einen Parameter bereitzustellen,
der in der Datenbank 212 einen eindeutigen Speicherplatz angibt,
um die benutzerspezifischen Voreinstellungsdaten für das Arbeitsplatz-Applet
zu speichern. Jede gewünschte
Methode kann verwendet werden, um die Zeichenfolge, die aus dem
voll qualifizierten Klassennamen und den Kontextdaten des Benutzers
besteht, in den Speicherplatz im Datenspeicher abzubilden. Anschließend wird
eine Anforderung 720 an das Profilverwaltungsprogramm-Servlet 214 gesendet, um
die auf den Benutzer zugeschnittenen Voreinstellungsdaten für das Arbeitsplatz-Applet
zu erhalten. Der Kontext und der Schlüssel werden als Teil der Anforderung 720 übergeben,
um die angeforderten Voreinstellungsdaten zu kennzeichnen. Das Profilverwaltungsprogramm-Servlet 214 antwortet
bei 722 mit den angeforderten Voreinstellungsdaten, die
im ProfileManagementProperties-Objekt P 604 zwischengespeichert
werden.
-
Mit 8 fortfahrend,
liest das Arbeitsplatz-Objekt bei 800 seine Voreinstellungsdaten
aus seinem ProfileManagementProperties-Objekt P und beginnt, den
Arbeitsplatz entsprechend zu aktualisieren (d. h., es setzt gegebenenfalls
die Farbe des Bildschirmhintergrunds auf blau, ruft Informationen über die
Position von Symbolen ab usw.). Das Arbeitsplatz-Objekt ruft eine
Methode auf seinem ProfileManagementProperties-Objekt P auf, um
eine Liste der Softwarekomponenten zu erhalten, für die der
Benutzer eine Zugriffsberechtigung hat. Bei 802 fordert
das ProfileManagementProperties-Objekt P die Daten vom Profilverwaltungsprogramm-Servlet 214 an,
das bei 804 eine Antwort mit den angeforderten Daten erzeugt.
Bei jedem solchen Applet, auf das der Benutzer Zugriff hat, beinhalten
die Daten einen benutzerfreundlichen Namen, die URL des Applets,
die URL eines Symbols für
das Applet usw. (Daten, die der Arbeitsplatz braucht, um das Applet
auf dem Arbeitsplatz darzustellen und um es zu laden und zu starten) sowie
andere optionale Dinge, die für
die Erfindung nicht von Bedeutung sind. Diese Daten werden im ProfileManagementProperties-Objekt
P gespeichert und an das Arbeitsplatz-Objekt zurückgeschickt. Bei 806 verwendet
das Arbeitsplatz-Objekt die Daten des Applets, um einen Ordner für die Applets
anzulegen und um ein Fenster zu erzeugen, das die Symbole und den
benutzerfreundlichen Namen für
jedes Applet anzeigt, auf das der Benutzer Zugriff hat.
-
Nehmen
wir an, dass der Benutzer bei einer vorherigen Ausführung des
Arbeitsplatzes die Symbole für
einen Teil der Softwarekomponenten, die in dem gerade beschriebenen
Ordner angezeigt werden, mit der Funktion "Ziehen und Ablegen" verschoben hat. Es ist möglich, dass
der Benutzer jetzt keinen Zugriff mehr auf die Applets hat, die
mittels "Ziehen
und Ablegen" vom
Ordner an den Arbeitsplatz verschoben wurden. Normalerweise wären diese
Arbeitsplatz-Objekte jedoch ein Teil der Voreinstellungen des Benutzers,
die während
der letzten Ausführung
gespeichert wurden, und sie würden
immer noch am Arbeitsplatz angezeigt werden. Um dies zu vermeiden,
prüft der
Arbeitsplatz seine Voreinstellungen aus seinem ProfileManagementProperties-Objekt
P, um nach Applets Ausschau zu halten, die so konfiguriert sind,
dass sie außerhalb
des Fensters erscheinen, das erzeugt wird, um alle Applets anzuzeigen,
auf die der Benutzer Zugriff hat. In 8 wird davon
ausgegangen, dass es nur ein Applet außerhalb des Applet-Fensters
gibt, das erzeugt wird. Wenn sich mehr als ein solches Applet außerhalb des
Applet-Fensters befinden würde,
würde die
folgende Prozedur für
jedes dieser Applets in einer Schleife durchlaufen werden. Im Schritt 810 vergleicht
der Arbeitsplatz jedes der Applets, die außerhalb des Applet-Fensters erscheinen,
mit der Liste der Applets vom Server, auf die der Benutzer Zugriff hat.
Wenn das Applet in der Liste erscheint, wird das Symbol für das Applet
bei 812 an der gleichen Stelle wie vorher auf dem Arbeitsplatz
angeordnet. Wenn der Benutzer keinen Zugriff mehr auf das Applet
hat, wird es im Schritt 814 aus den Voreinstellungen für den Arbeitsplatz
und auch aus dem ProfileManagementProperties-Objekt P entfernt. Wenn Applets als Teil
dieses Prozesses entfernt werden, weist der Arbeitsplatz das ProfileManagementProperties-Objekt P
an, die Voreinstellungen im Schritt 816 zu speichern. Das
Objekt "ProfileManagementProperties" P sendet eine Anforderung 818 mit
den Voreinstellungs-, Schlüssel-
und Kontextdaten an das Profilverwaltungsprogramm-Servlet 214,
um die neuen Voreinstellungsdaten in der Datenbank 212 zu
speichern. Der Server sendet eine Antwort 820 an das ProfileManagementProperties-Objekt
P, in der er das ProfileManagementProperties-Objekt P darüber informiert,
dass die Anforderung erfolgreich abgearbeitet wurde.
-
9 zeigt
die Situation eines Administrators, der ein Konfigurations-Applet
ausführt,
um Voreinstellungen für
ein Applet für
andere Benutzer oder Benutzergruppen zu konfigurieren. Es versteht
sich, dass die hier erörterten
Grundsätze
auch allgemein für
die Konfiguration von Endgeräten
oder Gruppen von Endgeräten
gelten. Der Administrator am Client 900 ruft mit seinem
Webbrowser die URL des Profilverwaltungsprogramm-Applets 214 auf
dem Server auf, das ausgeführt
werden soll. Bei 904 wird die URL an den Server geschickt.
Da "ProfileManager.html" eine vom Server
geschützte Datei
ist, wird an den Webbrowser auf dem Client eine Challenge 906 zurückgeschickt.
Der Webbrowser antwortet, indem er den Administrator zur Eingabe
einer Benutzerkennung und eines Passworts auffordert. Die Anforderung, "ProfileManager.html" abzurufen, wird
dann bei 908 zum wiederholten Mal an den Server gesendet, wobei
die Daten in Form der Benutzerkennung und des Passworts in der Nachricht
enthalten sind. Da der Administrator vermutlich zur Ausführung des
Profilverwaltungsprogramms berechtigt ist, wird der Anforderung
stattgegeben, und bei 910 wird ein Profilverwaltungsprogramm-Applet
auf das Endgerät
des Administrators heruntergeladen. Zwischen dem Client und dem
Server (nicht gezeigt) finden mehrere Interaktionen statt, bei denen
der Code für
das Profilverwaltungsprogramm-Applet vom Server auf den Client geladen
wird. Das Profilverwaltungsprogramm-Objekt wird erzeugt, und im
Schritt 912 beginnt seine Ausführung.
-
Statt
eines normalen ProfileManagementProperties-Objekts verwendet das
Profilverwaltungsprogramm ein ProfileManagementProperties_nonContextFloating-Objekt.
Mit einer Ausnahme verhält
es sich genauso wie das ProfileManagementProperties-Objekt: Wenn Voreinstellungen
geladen und gespeichert werden, werden sie in den und aus dem Kontext
des Administrators geladen und gespeichert, der das Profilverwaltungsprogramm
ausführt,
und nicht in den und aus dem Kontext (d. h. Benutzer oder Benutzergruppe),
für den
der Administrator eine Konfiguration vornimmt.
-
Das
Profilverwaltungsprogramm-Objekt benötigt seine Voreinstellungsdaten
(d. h. Konfigurationsdaten), damit es das Profilverwaltungsprogramm auf
den Administrator zuschneiden kann, der es aufruft. Zu diesem Zweck
erzeugt das Profilverwaltungsprogramm im Schritt 914 als
Teil des Initialisierungsprozesses des Profilverwaltungsprogramm-Objekts ein ProfileManagementProperties_nonContextFloating-Objekt P_NCF, mit
dem eine Kopie der Voreinstellungsdaten des Administrators für das Profilverwaltungsprogramm-Applet
vom Server abgerufen, geladen und zwischengespeichert wird und die
Daten angewendet und gespeichert werden. Das Profilverwaltungsprogramm-Objekt
ruft dann P_NCF.enablePersistence(profileManagerObjekt (applet))
auf, das im Schritt 1) von 916 das ProfileManagementProperties_nonContextFloating-Objekt
P_NCF mit der URL des Profilverwaltungsprogramm-Servlets 214 initialisiert.
Diese URL wird von der URL des Profilverwaltungsprogramm-Applets
abgeleitet. Das ProfileManagementProperties_nonContextFloating-Objekt
P_NCF sendet eine Anforderung 918 an das Profilverwaltungsprogramm-Servlet 214,
um den Kontextnamen (Kennung (ID)) des Administrators und die Kontextart
(USER) zu erhalten. Das Profilverwaltungsprogramm-Servlet erhält die Kennung
des Administrators aus der Anforderung (918). Der Webbrowser
reicht die Kennung und das Passwort des Administrators in der Nachricht
zusammen mit den Daten weiter, die vom ProfileManagementProperties_nonContextFloating-Objekt
P_NCF gesendet wurden. Das ProfileManagementProperties_nonContextFloating-Objekt
P_NCF wird mit dem Kontext des Administrators initialisiert, der
das Applet im Schritt 2) von 916 ausführt. Im Schritt 3) von 916 erzeugt
das ProfileManagementProperties_nonContextFloating-Objekt P_NCF einen
eindeutigen Schlüssel
für das Profilverwaltungsprogramm-Applet,
indem es das Java-Objekt "profileManagerObjekt" (das als Parameter
im Aufruf "enablePersistence" übergeben wird) nach seinem
voll qualifizierten Klassennamen (d. h. profileManagerObject.getClass().getName())
fragt. Verknüpft
mit den Kontextdaten des Administrators wird dieser eindeutige Schlüssel abgebildet,
um einen eindeutigen Speicherplatz in der Datenbank 212 für die administratorspezifischen
Voreinstellungsdaten für
das Profilverwaltungsprogramm-Applet anzugeben.
-
Eine
Anforderung (922) wird an das Profilverwaltungsprogramm-Servlet 214 gesendet,
um die Voreinstellungsdaten zu erhalten, die auf das Profilverwaltungsprogramm-Applet
zugeschnitten sind, wie es für
den Administrator konfiguriert wurde. Die Anforderung (922)
enthält
den entsprechenden Kontextnamen und die Kontextart sowie Schlüsselinformationen,
um die entsprechenden Voreinstellungsdaten zu kennzeichnen. Das
Profilverwaltungsprogramm-Servlet 214 antwortet mit den
angeforderten Voreinstellungsdaten (924), die im ProfileManagementProperties_nonContextFloating-Objekt
P_NCF zwischengespeichert werden. Das Profilverwaltungsprogramm
liest seine Voreinstellungsdaten aus dem ProfileManagementProperties_nonContextFloating-Objekt
P_NCF und aktualisiert sich entsprechend (d. h., es setzt seine
Hintergrundfarbe zum Beispiel auf blau).
-
Der
Ablauf wird in 10 fortgesetzt. Das Profilverwaltungsprogramm
fordert die Daten über bereits
bestehende Benutzer, Benutzergruppen und Software vom Profilverwaltungsprogramm-Servlet 214 an
und baut bei 1002 den Baum in der linken Ansicht des Konfigurationsfensters
des Profilverwaltungsprogramms auf. Es sei auf die 13 bis 24 verwiesen,
die Beispiele für
die linke Ansicht des Administrators zeigen. An diesem Punkt 1004 wählt der
Administrator einen gewünschten
Kontext zur Konfiguration aus, indem er auf einen Benutzer oder
eine Benutzergruppe aus dem Baum in der linken Ansicht klickt. Das
Profilverwaltungsprogramm legt den Kontext für ProfileManagementProperties-Objekte
fest, indem es "P_NCF.setContext(selected
context)" aufruft.
Es sei auf 15 verwiesen, die den ausgewählten Kontext "User Groups" ("Benutzergruppen") zeigt, der sich
auf die Gruppe aller Systembenutzer bezieht, oder auf 18,
in der ein Gruppenkontext "Development" ausgewählt wird, oder
auf 21, in der ein Benutzerkontext "colleend" ausgewählt wird.
Im Schritt 1006 wählt
der Administrator dann ein zu konfigurierendes Applet aus einer
Liste aller Applets auf dem Server aus. Es sei auf 17 verwiesen,
die ein Beispiel für
die Auswahl eines Applets zeigt. Im Schritt 1008 klickt
der Administrator dann auf eine Schaltfläche "Run/Customize" ("Ausführen/Anpassen"), um das zur Konfiguration
ausgewählte
Applet auszuführen.
Dieses Applet könnte
ein gesondertes Konfigurations-Applet für ein Endbenutzer-Applet sein,
oder es könnte
das Endbenutzer-Applet selbst sein. Bei 1009 und 1011 wird
das ausgewählte
Applet vom Server angefordert und geladen. Im Schritt 1010 wird
das Konfigurations-Applet-Objekt erzeugt, und es beginnt mit seiner Ausführung und
der Erzeugung seines ProfileManagementProperties-Objekts P.
-
Wenn
davon ausgegangen wird, dass das Applet ein gesondertes Konfigurations-Applet
für ein Endbenutzer-Applet
ist, ruft das Applet im Schritt 1012 "p.enablePersistence(configAppletObject, fullyQualifiedClassNameOfAppletBeingConfigured)" auf. Wenn das Applet
andererseits kein gesondertes Konfigurations-Applet, sondern ein
Benutzer-Applet ist, würde
der Aufruf "p.enablePersistence(endUserAppletObject)" lauten, da es seine
eigenen Voreinstellungsdaten und nicht die Voreinstellungsdaten
für ein
anderes Applet einrichten möchte.
Der aktuelle Kontext ist dem ProfileManagementProperties-Objekt P bereits
bekannt, da er vom Administrator über das ProfileManagementProperties_nonContextFloating-Objekt
PM_NCF des Administrators bereits zuvor festgelegt wurde. Der Speicherplatz
des Profilverwaltungsprogramm-Servlets 214 wurde zuvor
erzeugt, als "enablePersistence" auf dem ProfileManagementProperties_nonContextFloating-Objekt
PM_NCF des Profilverwaltungsprogramms aufgerufen wurde. Im Falle
eines Konfigurations-Applets braucht der eindeutige Schlüssel für das Applet nicht
erzeugt zu werden, da er im Aufruf "enablePersistence" vom Konfigurations-Applet an das ProfileManagementProperties-Objekt
P weitergegeben wird.
-
Im
Schritt 1014 trägt
sich das Konfigurations-Applet bei seinem ProfileManagementProperties-Objekt
P selbst als ein Kontextwechselwächter ein.
Wie zuvor erörtert
wurde, gibt dies dem ProfileManagementProperties-Objekt P des Applets
die Möglichkeit,
das Applet zu benachrichtigen, wenn der Administrator einen Kontextwechsel
vornimmt, so dass das Applet die Voreinstellungsdaten für den neuen
Kontext laden und seine grafische Benutzeroberfläche aktualisieren kann, um
die neuen Konfigurationsdaten widerzuspiegeln, ohne dass das Applet beendet
und in dem neuen Kontext neu gestartet werden muss.
-
Der
Ablauf wird in 11 fortgesetzt. Im Schritt 1104 weist
das Konfigurations-Applet das ProfileManagementProperties-Objekt P an, die
Voreinstellungen aus dem aktuellen Kontext für das Applet zu laden, das
gerade konfiguriert wird. Eine Anforderung 1105 wird an
das Profilverwaltungsprogramm-Servlet 214 gesendet, um
die Voreinstellungsdaten, die auf den zuvor vom Administrator ausgewählten Kontext
zugeschnitten sind, für
das Applet, das gerade konfiguriert wird, zu erhalten. Die Anforderung 1105 enthält den entsprechenden
Kontextnamen (des Kontexts, den der Administrator ausgewählt hat)
und die Kontextart (je nach Gegebenheit USER, USER_GROUP oder ALL_USERS_GROUP) sowie
Schlüsselinformationen,
um den Speicherplatz der entsprechenden Voreinstellungsdaten anzugeben.
Das Profilverwaltungsprogramm-Servlet 214 antwortet bei 1106 mit
den angeforderten Voreinstellungsdaten, die im ProfileManagementProperties-Objekt
P zwischengespeichert werden. Das Konfigurations-Applet erhält die Voreinstellungen
vom ProfileManagementProperties-Objekt P und aktualisiert seine
grafische Benutzeroberfläche
entsprechend.
-
Der
Administrator konfiguriert das Applet bei 1107 und speichert
die geänderten
Voreinstellungen, zum Beispiel, indem er die vom Applet bereitgestellte Schaltfläche "SAVE" ("SPEICHERN") anklickt. Als Folge
dieser Operation ruft das Konfigurations-Applet die Methode "save()" auf seinem ProfileManagementProperties-Objekt
P auf. Das ProfileManagementProperties-Objekt P sendet die Voreinstellungen und
den eindeutigen Schlüssel
für das
Applet, das gerade konfiguriert wird, und die Daten, die den aktuellen
Kontext angeben, an das Profilverwaltungsprogramm-Servlet 214.
Das Profilverwaltungsprogramm-Servlet speichert die Voreinstellungsdaten
in der Datenbank 212 an dem vom Kontext und dem Schlüssel angegebenen
Speicherplatz.
-
Der
Schritt 1108 ist ein Beispiel für den nun vom Administrator
vorgenommenen Kontextwechsel, während
das Konfigurations-Applet immer noch ausgeführt wird. Der Administrator
wählt einen
neuen Kontext aus, indem er auf einen Benutzer oder eine Benutzergruppe
klickt (es sei auf 18 verwiesen, die Beispiele
für neue
Kontexte in der linken Ansicht der Bildschirmanzeige des Administrators
zeigt). Als Folge des Kontextwechsels sendet das Profilverwaltungsprogramm 506 eine
Nachricht "Kontext
festlegen" an das
ProfileManagementProperties-Objekt P (510), indem es "P_NCF.setContext(selected
NEW context)" aufruft,
was wiederum das Objekt P veranlasst, den Ereigniswächter 512 über die
API 515 für das
erneute Laden von Eigenschaften von dem Kontextwechsel zu unterrichten.
Dies findet im Schritt 1110 statt. Im Schritt 1112 führt der
Ereigniswächter 512 einen
Ladeaufruf "load()" durch, um die Voreinstellungen
für den
neuen Kontext abzurufen, und im Schritt 1118 wird das Objekt
P mit den neuen Voreinstellungen aktualisiert. Der Administrator
kann nun damit fortfahren, die neuen Voreinstellungen für den neuen
Kontext zu ändern,
sofern dies gewünscht wird,
und sie nötigenfalls
zu speichern, und anschließend
kann er bei Bedarf mit einem neuen Kontextwechsel fortfahren, wie
vorstehend beschrieben wurde.
-
Die
restlichen 12 bis 24 zeigen
jeweils aktuelle Momentaufnahmen des Bildschirminhalts eines Arbeitsplatzrechners
des Administrators, während
Teile des Profilverwaltungsprogramms 206 ausgeführt werden.
-
Das
Hauptkonfigurationsfenster 1200 ist in 12 gezeigt.
Die Baumansicht 1202 links im Fenster zeigt die Profilverwaltung 1204 als
einen von mehreren auf dem Server verfügbaren Diensten. Wenn dieser
Eintrag 1204 ausgewählt
wird, wie in 12 gezeigt ist, zeigt die rechte
Ansicht 1205 des Hauptfensters eine Begrüßungsnachricht
für den
Profilverwaltungsdienst an. Mit Ein- und Ausblendsymbolen wie zum
Beispiel 1208 wird das Erscheinungsbild von Untereinträgen, sofern
vorhanden, unter einem Eintrag in der linken Ansicht gesteuert.
Das "+" bei 1208 wird
als "Einblendsymbol" bezeichnet und zeigt
an, dass es unter dem Eintrag "Profile
Management" ("Profilverwaltung") Untereinträge gibt.
Der Administrator kann diese Untereinträge anzeigen, indem er auf das
Einblendsymbol 1208 klickt, das sich dann in ein "Ausblendsymbol" ("–") verwandelt.
-
13 zeigt
eine Erweiterung des Profilverwaltungseintrags 1208 in 12,
die in 13 zur Anzeige von drei standardmäßigen Untereinträgen führt – "Applets" 1300, "User Groups" ("Benutzergruppen") 1302 und "Users" ("Benutzer") 1304.
Einblendsymbole zeigen an, dass diese Einträge ebenfalls erweitert werden
können. "Applets" 1300 ermöglicht dem
Administrator, die auf dem Server 202 zur Verfügung stehenden
Benutzer-Applets anzugeben, "User
Groups" 1302 ermöglicht dem
Administrator, den Benutzergruppenbaum von 3 zu erzeugen und
mit Einträgen
zu versehen sowie Gruppenvoreinstellungen festzulegen. "Users" 1304 ermöglicht dem Administrator,
neue Benutzer anzulegen und ihre Voreinstellungen festzulegen oder
Voreinstellungen für
bereits bestehende Benutzer zu ändern.
In dem Beispiel von 13 wird "Applets" 1300 ausgewählt. Wenn
dieser Eintrag ausgewählt
wird, zeigt die Ansicht 1305 rechts im Fenster eine Liste 1306 von
Benutzer-Applets an, die dem System bereits angegeben wurden. Attribute
der Anwendung, die in der Liste 1306 ausgewählt wird,
sind bei 1308 gezeigt. Der Administrator gibt ein neues
Applet an, indem er in der Liste 1306 "<NEW>" ("<NEU>") auswählt und die bei 1308 angeforderten
Daten in Form des Namens und des Speicherplatzes eingibt. Ein vorhandenes Applet "Database Explorer" ("Datenbank-Explorer") ist in 1306 als
ausgewählt
gezeigt. Bei 1308 zeigt das Feld "Applet name" ("Name
des Applets") den
Namen dieses Applets an. Das Feld mit der Verweisadresse (Universal
Resource Locator, URL) zeigt die Intranet- oder Internet-Webadresse
dieses Applets auf dem Server 202 an. Das Feld "Complete path of html
file" ("Pfad der html-Datei
vervollständigen") zeigt den Verzeichnispfad
und den Dateinamen des Applets in der Plattenverzeichnisstruktur
des Servers 202 an. Das Feld "Fully qualified class name" ("Voll qualifizierter
Klassenname") zeigt
den voll qualifizierten Klassennamen des Applets an. Das Feld "Icon URL" ("Symbol-URL") zeigt eine Webadresse
der Bilddatei an, die zur Erzeugung eines Symbols für das Applet
auf dem Arbeitsplatz des Benutzers verwendet wird. Die restlichen
Felder sind für
optionale Daten vorgesehen, die von der Software nach deren Aufruf
gegebenenfalls benötigt
werden. Eine Befehlsschaltfläche 1310 "Import Applet List
from File" ("Applet-Liste aus
der Datei importieren")
ermöglicht dem
Administrator, Angaben von Applets aus einer vorhandenen Textdatei
an die vorhandene Liste 1306 anzufügen. wenn die Schaltfläche 1310 angeklickt wird,
wird das in 14 gezeigte Fenster geöffnet und
ermöglicht
dem Administrator, den Pfad und den Dateinamen der Textdatei einzugeben,
die die anzufügenden
Applet-Angaben enthält.
Um alle anstehenden Änderungen
zu speichern, klickt der Administrator auf "File" ("Datei") 1312 und
anschließend
auf "Save" ("Speichern") (nicht gezeigt).
-
In
der linken Ansicht entspricht der Eintrag "User Groups" 1302 der Gruppe "AllUsers" von 3 ("User Groups" und "AllUsers" werden hier austauschbar
verwendet). 15 zeigt die rechte Ansicht
des Bildschirminhalts der Station des Administrators, wenn der Eintrag "User Groups" 1302 ausgewählt wird.
In 15 wird rechts eine Notizbuchansicht angezeigt,
die drei Registerkarten enthält – eine Registerkarte "Members" ("Mitglieder") 1514,
eine Registerkarte "Subgroups" ("Untergruppen") 1516 und
eine Registerkarte "Applet
Permissions" ("Applet-Berechtigungen") 1518.
In 15 wird die Registerkarte "Members" ausgewählt. Die Ansicht "Members" enthält eine
Liste 1520 der Anmeldekennungen aller Mitglieder, die dem
System angegeben wurden. Um einen neuen Benutzer anzulegen (der
automatisch Mitglied in dem gerade ausgewählten Gruppenkontext "User Group" wird), wählt der
Administrator <NEW> aus der Liste 1520 aus,
gibt die entsprechenden Daten in den Eingabefeldern 1524 rechts
der Liste ein und klickt dann auf die Schaltfläche "Create" ("Anlegen") 1522.
Wenn ein bereits bestehendes Mitglied aus der Liste 1520 ausgewählt wird,
werden die für
diesen Benutzer zuvor gespeicherten Attribute bei 1524 angezeigt.
Zu diesen Attributen zählen
der vollständige
Name des ausgewählten
Mitglieds, die Systemkennung des Mitglieds, sein Passwort und alle gewünschten
Bemerkungen. Mit Ausnahme der Kennung können die Attribute durch Anklicken
der Schaltfläche "Modify" ("Ändern") 1525 bearbeitet und die Änderungen
festgeschrieben (aber nicht gespeichert) werden, oder der Benutzer
kann durch Anklicken der Schaltfläche "Delete" ("Entfernen") 1526 ganz
aus dem System entfernt werden. Jede anstehende Änderung lässt sich durch Auswahl des
Eintrags in der Liste 1520 und anschließendes Klicken auf die Schaltfläche "Undo" ("Rückgängig") 1528 löschen.
-
16 zeigt
die rechte Ansicht des Bildschirminhalts des Administrators, die
angezeigt wird, wenn die Registerkarte "Subgroups" ("Untergruppen") 1516 ausgewählt wird.
Die Liste 1620 mit den Untergruppen zeigt vorhandene Gruppen,
bei denen es sich um Untergruppen des Eintrags handelt, der in der
linken Ansicht ausgewählt
wurde, in diesem Beispiel ist dies "User Groups". Daher zeigt die Liste 1620 alle
direkten Untergruppen der Gruppe "AllUsers" an. In der linken Ansicht wird "User Groups" erweitert. Die in
der Liste 1620 gezeigten Untergruppen sind ebenfalls die
unter "User Groups" in der linken Ansicht
eingeblendeten Einträge.
In der Liste 1620 zeigt ein Statusfeld den aktuellen Status
einer jeden Untergruppe an, wie zum Beispiel "! Delete" ("!
Löschen"), "! Modify" ("! Ändern") und "! Create" ("! Anlegen"). Ein leeres Feld "Status" in der Liste 1620 zeigt
an, dass die Untergruppe vorhanden ist und keine Aktionen zur Speicherung
anstehen. Das Symbol "!" zeigt an, dass der
Status "anstehend" ist (noch nicht
gespeichert). Attribute für
die in der Liste 1620 ausgewählte Untergruppe erscheinen
in 1622. Zu diesen Attributen zählen der Name der Untergruppe und
gewünschte
Bemerkungen über
die Untergruppe. Um eine neue Untergruppe anzulegen, wählt der Administrator <NEW> aus der Liste 1620 aus,
gibt den Namen der Untergruppe und gewünschte Bemerkungen in 1622 ein
und klickt auf die Schaltfläche "Create" 1628. In
der Liste 1620 erscheint dann ein Eintrag "! create <subgroup name>" ("!
lege <Namen der
Untergruppe> an") als anstehende
Aktion. Um alle anstehenden Änderungen
zu speichern, klickt der Administrator auf die Schaltfläche "File" in der oberen Menüleiste und
anschließend
auf "Save" (nicht gezeigt).
-
17 zeigt
die rechte Ansicht, die angezeigt wird, wenn die Registerkarte "Applet Permissions" 1518 ausgewählt wird.
Die Liste 1720 führt
die Namen aller Applets auf, die dem System angegeben wurden, und
den Berechtigungsstatus (Zugriff gestatten oder verweigern), der
jedem Applet für
die in der linken Ansicht ausgewählte
Gruppe oder Untergruppe (den aktuellen "Kontext") zugewiesen wurde. Wie bei anderen
Notizbuchseiten, die beschrieben wurden, zeigt ein Ausrufezeichen
an, dass der angezeigte Status eine Änderung ist, die darauf wartet,
gespeichert zu werden. In 17 wird
die Gruppe "User
Groups" in dem in
der linken Ansicht gezeigten Baum ausgewählt, die der Gruppe "AllUsers" entspricht, die
in 3 gezeigt ist. Da alle Benutzer des Systems Mitglieder
in der Gruppe "User
Groups" sind, zeigt
die Liste 1720 die umfassenden Standardberechtigungen aller
Systembenutzer für
jedes Applet, das dem System angegeben wurde. Zum Beispiel ist "permit" (was bedeutet, dass
der Zugriff gestattet ist) für
die Gruppe "AllUsers" der Standardberechtigungsstatus
für das
Applet "Database
Explorer"; ebenso
lautet der Standardberechtigungsstatus für das Applet TFTP bei allen
Benutzern "deny" (was bedeutet, dass
der Zugriff verweigert wird). Der Administrator kann den Berechtigungsstatus
für ein
Applet ändern,
indem er es in der Liste 1720 auswählt und die Schaltfläche "Permit group access" ("Gruppenzugriff gestatten") 1730 oder
die Schaltfläche "Deny group access" ("Gruppenzugriff verweigern") 1732 anklickt.
Ungeachtet des Berechtigungsstatus für ein Applet in dem ausgewählten Kontext
kann ein Administrator darüber
hinaus ein Applet aus der Liste 1720 auswählen und
die Schaltfläche "Run/Customize" 1734 anklicken,
um das Benutzer-Applet in dem ausgewählten Kontext auszuführen. Den
Ansichtsbereich, der zuvor das Notizbuch für den aktuellen Kontext anzeigte,
nimmt dann das in Ausführung
befindliche Benutzer-Applet ein. Wenn das Benutzer-Applet zufällig ein
Konfigurations-Applet für eine
andere Softwarekomponente ist, kann der Administrator die Software-Voreinstellungen
speichern (über
die speziellen für
diese Funktion bereitgestellten Einrichtungen des Konfigurations-Applets);
diese werden dann als die Standard-Voreinstellungen der Software für den ausgewählten Kontext
gespeichert. Wenn das Applet ein Endbenutzer-Applet ist, sind die
Funktionen gleich, mit der Ausnahme, dass das Endbenutzer-Applet statt der
Voreinstellungen für
eine gesonderte Softwarekomponente seine eigenen Voreinstellungen
lädt und
speichert.
-
18 zeigt
die vollständige
Erweiterung des Baumes mit den Untergruppen unter "User Groups" in der linken Ansicht
des Bildschirminhalts des Administrators. Direkt unter "User Groups" gibt es zwei Untergruppen "Administrators" ("Administratoren"), eine Standard-Untergruppe,
die nicht entfernt werden kann, und "IBM",
eine vom Administrator angelegte Untergruppe. Die Untergruppe "IBM" wurde ebenfalls
erweitert und enthält
drei Untergruppen "Hardware", "Services" ("Dienste") und "Software". Die Untergruppe "Software" wurde erweitert
und enthält
mindestens eine Untergruppe mit der Bezeichnung "Development" ("Entwicklung"). Die Untergruppe "Development" enthält mindestens
eine Untergruppe mit der Bezeichnung "NCoD".
Die Untergruppe "NCoD" enthält mehrere
Untergruppen, wie zum Beispiel ConfigFW 58, die keine Kinder
haben. Auch in diesem Beispiel wird die Untergruppe "Development" in dem Erweiterungsbaum
ausgewählt.
Da "Development" nicht ganz oben
in der Baumhierarchie (der Gruppe "AllUsers") angeordnet ist, unterscheidet sich
das in der rechten Ansicht gezeigte Notizbuch etwas von dem in 15 gezeigten,
als "User Groups" ausgewählt wurde,
da nicht alle Benutzer automatisch Mitglied in "Development" sind, wie dies bei "User Groups" der Fall ist. Die Liste 1820 zeigt
die Kennungen (IDs) aller Systemmitglieder zum Anmelden im System
an. Der Status neben jeder Benutzerkennung in der Liste 1820 zeigt,
ob der Benutzer Mitglied in der Untergruppe "Development" ist. Der Status "ja" zeigt
an, dass der Benutzer Mitglied in der Untergruppe "Development" ist, "nein" zeigt an, dass er
kein Mitglied in der Untergruppe "Development" ist, und "inherited" ("geerbt") zeigt an, dass
der Benutzer die Mitgliedschaft in der Gruppe "Development" dadurch geerbt hat, dass er zu mindestens
einer der weiter unten im Baum angeordneten Untergruppen von "Development" gehört. Der Status
der Mitgliedschaft eines Benutzers in einer Untergruppe wird vom
Administrator geändert,
indem er den Benutzer in der Liste 1820 auswählt und
dann die Schaltfläche "Add to Group" ("Zur Gruppe hinzufügen") 1836 oder
die Schaltfläche "Remove from group" ("Aus der Gruppe entfernen") 1838 anklickt. wenn
der Administrator einen neuen Systembenutzer anlegen möchte oder
ein bereits bestehendes Mitglied ändern oder entfernen möchte, klickt
er die Schaltfläche "Create/Modify/Delete
Users" ("Benutzer anlegen/ändern/entfernen") 1840 an.
Durch diese Aktion wird die Notizbuchseite, die in 19 gezeigt ist,
aufgerufen. Die rechte Ansicht von 19 ist ähnlich der
von 15 und ermöglicht
dem Administrator das Anlegen eines neuen Systembenutzers, indem
er in der Liste 1920 "NEW" auswählt und
anschließend
die Schaltfläche "Create" anklickt. Ebenso
kann der Administrator einen bereits bestehenden Systembenutzer ändern oder
entfernen, indem er den entsprechenden Benutzer in der Liste 1920 auswählt und
die entsprechende Schaltfläche "Modify" oder "Delete" anklickt. Benutzer,
die im Kontext einer Untergruppe (zum Beispiel "Development") angelegt werden, erhalten nicht nur
die erforderliche Mitgliedschaft in "User Groups", sondern werden auch automatisch Mitglieder
in der ausgewählten
Untergruppe. Änderungen
an der Liste der Systembenutzer werden gespeichert, indem in der
oberen Menüleiste
der rechten Ansicht auf "File" und anschließend auf "Save" (nicht gezeigt)
geklickt wird.
-
20 zeigt
einen direkten Weg, um zur Liste der Systembenutzer zu gelangen,
um diese zu bearbeiten, statt den in 19 gezeigten
Weg über
die Gruppe und Untergruppe nehmen zu müssen. Um zu 20 zu
gelangen, wählt
der Administrator in der linken Ansicht von 13 zum
Beispiel "Users" 1304 aus.
Dann kann der Administrator in der rechten Ansicht, die in 20 gezeigt
ist, neue Benutzer anlegen und bereits bestehende Benutzer ändern und entfernen,
wie bereits erörtert
wurde, ohne dass er sich im Kontext einer Gruppe oder Untergruppe
befindet.
-
In 21 möchte der
Administrator Daten, die einem Benutzer entsprechen, dessen Kennung "colleend" lautet, direkt bearbeiten.
Dazu erweitert der Administrator beispielsweise "Users" in der linken Ansicht von 21 und
wählt dann "colleend" aus, wie gezeigt
ist. Es erscheint daraufhin die rechte Ansicht, in der ausschließlich die
Systemdaten von "colleend" angezeigt werden.
Die rechte Ansicht enthält drei
Registerkarten. Die erste Registerkarte "User Information" ("Benutzerdaten") wird standardmäßig ausgewählt. In
dieser Registerkarte kann der Administrator den Namen, die Kennung,
das Passwort sowie Bemerkungen in Bezug auf "colleend" ändern.
-
22 zeigt
die rechte Ansicht, wenn der Administrator die zweite Registerkarte "Group Memberships" ("Mitgliedschaften
in Gruppen") auswählt. Die
Liste 2220 zeigt alle Untergruppen, in denen "colleend" Mitglied ist. Die
Untergruppen sind in dieser Liste in der Reihenfolge der Priorität der Untergruppen
für "colleend" gezeigt. Der Administrator
kann die Priorität
der Untergruppen von "colleend" ändern, indem er eine Untergruppe
auswählt
und mit dem rechts von der Liste 2220 befindlichen Aufwärts- oder Abwärtspfeil
die ausgewählte
Untergruppe wie gewünscht
nach oben oder nach unten in der Liste verschiebt. Wenn der Administrator
die Schaltfläche "Add/Remove Group
Memberships" ("Mitgliedschaften
in Gruppen hinzufügen/entfernen") 2242 in 22 anklickt,
zeigt die rechte Ansicht anschließend den Inhalt von 23.
Die rechte Ansicht von 23 ermöglicht dem Administrator, die
Untergruppen zu ändern,
in denen "colleend" Mitglied ist. Der Administrator
nimmt diese Änderung
vor, indem er auf ein entsprechendes Kästchen, das einer gewünschten
Untergruppe entspricht, klickt. Wenn das Kästchen leer ist (was bedeutet,
dass "colleend" zur Zeit nicht Mitglied
ist), wird das Kästchen
mit einem Häkchen
versehen, um "colleend" in die Untergruppe aufzunehmen.
Im umgekehrten Fall, wenn das Kästchen
für eine
Untergruppe bereits mit einem Häkchen versehen
ist, wird das Häkchen
durch Anklicken des Kästchens
entfernt, und "colleend" wird aus der Untergruppe
entfernt.
-
24 zeigt
die rechte Ansicht, wenn die Registerkarte "Applet Permissions" von 22 vom Administrator
ausgewählt
wird. In dieser rechten Ansicht zeigt die Liste 2420 alle
Applets an, die im System angegeben sind. Der Administrator kann "colleend" den Zugriff auf
ein Applet gestatten, indem er das Applet in der Liste 2420 auswählt und
dann die Schaltfläche "Permit user access" ("Benutzerzugriff gestatten") 2430 anklickt;
oder "colleend" kann der Zugriff
verweigert werden, indem der Administrator die Schaltfläche "Deny user access" ("Benutzerzugriff verweigern") 2432 anklickt.
Der Administrator kann auch ein Applet im Kontext von "colleend" starten, indem er
die Schaltfläche "Run/Customize" 2434 anklickt.
Wenn dies geschieht, wird das in der Liste 2420 ausgewählte Applet
in der rechten Ansicht gestartet. Der Administrator kann dann alle
Voreinstellungen ändern,
die das Applet zulässt,
und die Voreinstellungen in der vom Applet vorgesehenen Weise speichern.
Ein typisches Szenario ist hier, dass der Administrator ein Konfigurations-Applet startet und dann
Eingaben in verschiedenen Voreinstellungsfeldern macht. Wenn jedoch
keine getrennte Konfiguration für
ein Benutzer-Applet vorgesehen ist, kann der Administrator das Benutzer-Applet
im Kontext eines Benutzers starten und Voreinstellungen aus dem
Benutzer-Applet festlegen. Ein typisches Szenario ist hier, dass
der Administrator einen Gruppen- oder einen Benutzerkontext auswählt und
dann das Benutzer-Applet startet, wie vorstehend beschrieben wurde.
Gewöhnlich
kann der Administrator dann Voreinstellungen aus einem Auswahlmenü ändern und
sie in der vom Benutzer-Applet vorgesehenen Weise speichern. Beispielsweise
werden die Benutzervoreinstellungen üblicherweise gespeichert, wenn
der Auswahldialog geschlossen wird, oder das Benutzer-Applet kann
andere Verfahren zur Speicherung der Voreinstellungen vorsehen.
Da der Administrator das Applet in diesem Beispiel im Kontext von "colleend" ausführt, werden
die vom Administrator über das
Benutzer-Applet festgelegten Voreinstellungen in jedem Fall so auf
dem Server gespeichert, als wären sie
von "colleend" selbst durch Ausführung des
Applets direkt eingegeben worden.
-
Nicht
gezeigt in den Figuren ist ein Szenario, in dem ein Benutzer bestimmte
Voreinstellungen ändern
kann, die sich auf ein Benutzer-Applet beziehen. Zum Beispiel kann
ein Benutzer- Applet
einem Benutzer gestatten, eine Hintergrundfarbe für ein Fenster oder
Schriftarten und Schriftgrade auszuwählen, so dass jeder Systembenutzer
das Applet bis zu einem gewissen Grad individuell anpassen kann,
wenn das Benutzer-Applet am Arbeitsplatz des Benutzers ausgeführt wird.
In diesem Fall werden die vom Benutzer geänderten Voreinstellungen in
der gleichen Weise gespeichert, in der sie gespeichert werden, wenn
der Administrator das Benutzer-Applet ausführt. Ein Unterschied ist jedoch,
dass der Administrator Benutzer-Applets
ausführen
kann, um Voreinstellungen in Gruppenkontexten festzulegen, wohingegen
Benutzer nur Voreinstellungen für
ihren individuellen Kontext beeinflussen können.