DE69828202T2 - Client-server system zum aufrechterhalten von anwendungsvorzügen in einer hierarchisches datenstruktur - Google Patents

Client-server system zum aufrechterhalten von anwendungsvorzügen in einer hierarchisches datenstruktur Download PDF

Info

Publication number
DE69828202T2
DE69828202T2 DE69828202T DE69828202T DE69828202T2 DE 69828202 T2 DE69828202 T2 DE 69828202T2 DE 69828202 T DE69828202 T DE 69828202T DE 69828202 T DE69828202 T DE 69828202T DE 69828202 T2 DE69828202 T2 DE 69828202T2
Authority
DE
Germany
Prior art keywords
user
group
presets
applet
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69828202T
Other languages
English (en)
Other versions
DE69828202D1 (de
Inventor
Fillmore Kent HAYES
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69828202D1 publication Critical patent/DE69828202D1/de
Publication of DE69828202T2 publication Critical patent/DE69828202T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Description

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

Claims (3)

  1. Verfahren zur Verwaltung von Benutzerkonfigurationsvoreinstellungen für Anwendungen, die an einer Benutzerstation ausgeführt werden, das zur Verwendung in einem Netzwerksystem vorgesehen ist, welches ein Netzwerk umfasst, das einen Server und eine Vielzahl von Benutzerstationen untereinander verbindet, wobei der Server eine Vielzahl von Benutzeranwendungen zum Herunterladen auf Benutzerstationen speichert, wobei das verfahren Folgendes umfasst: Darstellen aller Benutzer des Systems in einer Baumhierarchie, die aus einem Gruppenknoten "AllUsers", der alle Systembenutzer enthält, und einer Vielzahl von Nachkommengruppenknoten besteht, von denen jeder ausgewählte der Benutzer enthält, die zu der Gruppe gehören, welche von dem Nachkommengruppenknoten dargestellt wird, wobei jeder Knoten Konfigurationsvoreinstellungen für ausgewählte der Anwendungen enthält, die auf dem System zur Verfügung stehen; Zuweisen einer Gruppenprioritätsreihenfolge für jeden Benutzer, der in mehr als einer Gruppe Mitglied ist; in Bezug auf einen bestimmten Benutzer, der die Ausführung einer ausgewählten Anwendung anfordert, Ermitteln der Gruppenprioritätsreihenfolge für den Benutzer; und Erstellen eines Satzes von Konfigurationsvoreinstellungen aus dem Baum, 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; die Voreinstellungen zu einem Satz für die ausgewählte Anwendung zusammengeführt werden, indem der Baum vom Gruppenknoten "AllUsers" zur ersten Gruppe durchlaufen wird; die an jedem Knoten für die ausgewählte Anwendung angegebenen Voreinstellungen erfasst werden; und beim Durchlaufen eines jeden Knotens die erfassten Voreinstellungen mit den an diesem Knoten für die ausgewählte Anwendung angegebenen Voreinstellungen geändert werden.
  2. Vorrichtung zur Verwaltung von Benutzerkonfigurationsvoreinstellungen für Anwendungen, die an einer Benutzerstation ausgeführt werden, die zur Verwendung in einem Netzwerksystem vorgesehen ist, welches ein Netzwerk umfasst, das einen Server und eine Vielzahl von Benutzerstationen untereinander verbindet, wobei der Server eine Vielzahl von Benutzeranwendungen zum Herunterladen auf Benutzerstationen speichert, wobei die Vorrichtung Folgendes umfasst: Mittel, die dazu dienen, alle Benutzer des Systems in einer Baumhierarchie darzustellen, die aus einem Gruppenknoten "AllUsers", der alle Systembenutzer enthält, und einer Vielzahl von Nachkommengruppenknoten besteht, von denen jeder ausgewählte der Benutzer enthält, die zu der Gruppe gehören, welche von dem Nachkommengruppenknoten dargestellt wird, wobei jeder Knoten Konfigurationsvoreinstellungen für ausgewählte der Anwendungen enthält, die auf dem System zur Verfügung stehen; Mittel, die dazu dienen, für jeden Benutzer, der in mehr als einer Gruppe Mitglied ist, eine Gruppenprioritätsreihenfolge zuzuweisen; in Bezug auf einen bestimmten Benutzer, der die Ausführung einer ausgewählten Anwendung anfordert, Mittel, die dazu dienen, die Gruppenprioritätsreihenfolge für den Benutzer zu ermitteln; und Mittel, die dazu dienen, einen Satz von Konfigurationsvoreinstellungen aus dem Baum zu erstellen, 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; die Voreinstellungen zu einem Satz für die ausgewählte Anwendung zusammengeführt werden, indem der Baum vom Gruppenknoten "AllUsers" zur ersten Gruppe durchlaufen wird; die an jedem Knoten für die ausgewählte Anwendung angegebenen Voreinstellungen erfasst werden; und beim Durchlaufen eines jeden Knotens die erfassten Voreinstellungen mit den an diesem Knoten für die ausgewählte Anwendung angegebenen Voreinstellungen geändert werden.
  3. Rechnerprogramm, das auf einem rechnerlesbaren Speichermedium gespeichert wird, um ein Verfahren zur Verwaltung von Benutzerkonfigurationsvoreinstellungen für Anwendungen durchzuführen, die an einer Benutzerstation ausgeführt werden, wobei, wenn das Programm auf einem Rechner in einem Netzwerksystem ausgeführt wird, welches ein Netzwerk umfasst, das einen Server und eine Vielzahl von Benutzerstationen untereinander verbindet, wobei der Server eine Vielzahl von Benutzeranwendungen zum Herunterladen auf Benutzerstationen speichert, das Verfahren die folgenden Schritte umfasst: Darstellen aller Benutzer des Systems in einer Baumhierarchie, die aus einem Gruppenknoten "AllUsers", der alle Systembenutzer enthält, und einer Vielzahl von Nachkommengruppenknoten besteht, von denen jeder ausgewählte der Benutzer enthält, die zu der Gruppe gehören, welche von dem Nachkommengruppenknoten dargestellt wird, wobei jeder Knoten Konfigurationsvoreinstellungen für ausgewählte der Anwendungen enthält, die auf dem System zur Verfügung stehen; Zuweisen einer Gruppenprioritätsreihenfolge für jeden Benutzer, der in mehr als einer Gruppe Mitglied ist; in Bezug auf einen bestimmten Benutzer, der die Ausführung einer ausgewählten Anwendung anfordert, Ermitteln der Gruppenprioritätsreihenfolge für den Benutzer; und Erstellen eines Satzes von Konfigurationsvoreinstellungen aus dem Baum, 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; die Voreinstellungen zu einem Satz für die ausgewählte Anwendung zusammengeführt werden, indem der Baum vom Gruppenknoten "AllUsers" zur ersten Gruppe durchlaufen wird; die an jedem Knoten für die ausgewählte Anwendung angegebenen Voreinstellungen erfasst werden; und beim Durchlaufen eines jeden Knotens die erfassten Voreinstellungen mit den an diesem Knoten für die ausgewählte Anwendung angegebenen Voreinstellungen geändert werden.
DE69828202T 1998-05-05 1998-12-21 Client-server system zum aufrechterhalten von anwendungsvorzügen in einer hierarchisches datenstruktur Expired - Lifetime DE69828202T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US73162 1998-05-05
US09/073,162 US6105063A (en) 1998-05-05 1998-05-05 Client-server system for maintaining application preferences in a hierarchical data structure according to user and user group or terminal and terminal group contexts
PCT/GB1998/003865 WO1999057862A1 (en) 1998-05-05 1998-12-21 Client-server system for maintaining application preferences in a hierarchical data structure

Publications (2)

Publication Number Publication Date
DE69828202D1 DE69828202D1 (de) 2005-01-20
DE69828202T2 true DE69828202T2 (de) 2005-12-15

Family

ID=22112093

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69828202T Expired - Lifetime DE69828202T2 (de) 1998-05-05 1998-12-21 Client-server system zum aufrechterhalten von anwendungsvorzügen in einer hierarchisches datenstruktur

Country Status (10)

Country Link
US (1) US6105063A (de)
EP (1) EP1076973B1 (de)
JP (1) JP3670965B2 (de)
CN (1) CN1120606C (de)
CA (1) CA2324396C (de)
DE (1) DE69828202T2 (de)
IL (1) IL138133A (de)
PL (1) PL343688A1 (de)
TW (1) TW444181B (de)
WO (1) WO1999057862A1 (de)

Families Citing this family (231)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7016811B2 (en) * 2001-08-15 2006-03-21 National Instruments Corporation Network-based system for configuring a programmable hardware element in a measurement system using hardware configuration programs generated based on a user specification
US6324685B1 (en) 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
US6339826B2 (en) * 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
US6493749B2 (en) * 1998-08-17 2002-12-10 International Business Machines Corporation System and method for an administration server
US6567849B2 (en) * 1998-08-17 2003-05-20 International Business Machines Corporation System and method for configuring and administering multiple instances of web servers
US7339595B2 (en) 1998-10-19 2008-03-04 Lightsurf Technologies, Inc. Method and system for improved internet color
US20020126135A1 (en) * 1998-10-19 2002-09-12 Keith Ball Image sharing for instant messaging
US7043529B1 (en) * 1999-04-23 2006-05-09 The United States Of America As Represented By The Secretary Of The Navy Collaborative development network for widely dispersed users and methods therefor
US6324578B1 (en) 1998-12-14 2001-11-27 International Business Machines Corporation Methods, systems and computer program products for management of configurable application programs on a network
US6510466B1 (en) * 1998-12-14 2003-01-21 International Business Machines Corporation Methods, systems and computer program products for centralized management of application programs on a network
US8181113B2 (en) 1998-12-18 2012-05-15 Microsoft Corporation Mediating conflicts in computer users context data
US6513046B1 (en) 1999-12-15 2003-01-28 Tangis Corporation Storing and recalling information to augment human memories
US6842877B2 (en) 1998-12-18 2005-01-11 Tangis Corporation Contextual responses based on automated learning techniques
US6801223B1 (en) 1998-12-18 2004-10-05 Tangis Corporation Managing interactions between computer users' context models
US7231439B1 (en) 2000-04-02 2007-06-12 Tangis Corporation Dynamically swapping modules for determining a computer user's context
US9183306B2 (en) 1998-12-18 2015-11-10 Microsoft Technology Licensing, Llc Automated selection of appropriate information based on a computer user's context
US7225229B1 (en) 1998-12-18 2007-05-29 Tangis Corporation Automated pushing of computer user's context data to clients
US6791580B1 (en) 1998-12-18 2004-09-14 Tangis Corporation Supplying notifications related to supply and consumption of user context data
US8225214B2 (en) 1998-12-18 2012-07-17 Microsoft Corporation Supplying enhanced computer user's context data
US7046263B1 (en) 1998-12-18 2006-05-16 Tangis Corporation Requesting computer user's context data
US6920616B1 (en) 1998-12-18 2005-07-19 Tangis Corporation Interface for exchanging context data
US7779015B2 (en) 1998-12-18 2010-08-17 Microsoft Corporation Logging and analyzing context attributes
US20020030096A1 (en) * 1999-01-25 2002-03-14 David Isherwood Method and system for directing end user to selected network location of provider based on user-provided codes
US6993580B2 (en) * 1999-01-25 2006-01-31 Airclic Inc. Method and system for sharing end user information on network
US6654814B1 (en) * 1999-01-26 2003-11-25 International Business Machines Corporation Systems, methods and computer program products for dynamic placement of web content tailoring
US7792947B1 (en) 1999-04-26 2010-09-07 Mainstream Scientific, Llc Apparatus and method for dynamically coordinating the delivery of computer readable media
US20020174329A1 (en) * 1999-04-28 2002-11-21 Bowler Richard A. Method and system for automatically transitioning files among computer systems
US20020023057A1 (en) * 1999-06-01 2002-02-21 Goodwin Johnathan David Web-enabled value bearing item printing
US7149726B1 (en) 1999-06-01 2006-12-12 Stamps.Com Online value bearing item printing
US6516336B1 (en) * 1999-09-08 2003-02-04 International Business Machines Corporation Method and system for using a two-tiered cache
US6687745B1 (en) 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
US7216110B1 (en) 1999-10-18 2007-05-08 Stamps.Com Cryptographic module for secure processing of value-bearing items
US7233929B1 (en) * 1999-10-18 2007-06-19 Stamps.Com Postal system intranet and commerce processing for on-line value bearing system
AU1571101A (en) 1999-10-18 2001-04-30 Stamps.Com Role assignments in a cryptographic module for secure processing of value-bearing items
EP1224630A1 (de) 1999-10-18 2002-07-24 Stamps.Com Verfahren und vorrichtung für online wertträgersysteme
US7236956B1 (en) 1999-10-18 2007-06-26 Stamps.Com Role assignments in a cryptographic module for secure processing of value-bearing items
US7240037B1 (en) 1999-10-18 2007-07-03 Stamps.Com Method and apparatus for digitally signing an advertisement area next to a value-bearing item
US6978381B1 (en) * 1999-10-26 2005-12-20 International Business Machines Corporation Enhancement to a system for automated generation of file access control system commands
NO314329B1 (no) * 1999-12-06 2003-03-03 Ericsson Telefon Ab L M Arrangement ved telekommunikasjon og fremgangsmåte for samme
EP1107108A1 (de) * 1999-12-09 2001-06-13 Hewlett-Packard Company, A Delaware Corporation System und Verfahren zum Verwalten der Konfiguration von Datenverarbeitungsvorrichtungen in einem hierarchischen Netz
US7035825B1 (en) * 2000-01-04 2006-04-25 E.Piphany, Inc. Managing relationships of parties interacting on a network
US6697865B1 (en) * 2000-01-04 2004-02-24 E.Piphany, Inc. Managing relationships of parties interacting on a network
US7933968B1 (en) * 2000-06-20 2011-04-26 Koninklijke Philips Electronics N.V. Token-based personalization of smart appliances
US6928467B2 (en) 2000-02-02 2005-08-09 Inno Path Software, Inc. Apparatus and methods for providing data synchronization by facilitating data synchronization system design
US6816944B2 (en) 2000-02-02 2004-11-09 Innopath Software Apparatus and methods for providing coordinated and personalized application and data management for resource-limited mobile devices
US6370646B1 (en) 2000-02-16 2002-04-09 Miramar Systems Method and apparatus for multiplatform migration
WO2001061652A2 (en) * 2000-02-16 2001-08-23 Stamps.Com Secure on-line ticketing
US7464153B1 (en) 2000-04-02 2008-12-09 Microsoft Corporation Generating and supplying user context data
AU2001249768A1 (en) 2000-04-02 2001-10-15 Tangis Corporation Soliciting information based on a computer user's context
US6751794B1 (en) 2000-05-25 2004-06-15 Everdream Corporation Intelligent patch checker
US7251775B1 (en) * 2000-06-30 2007-07-31 Nokia Corporation System and method for visual history presentation and management
US7526762B1 (en) * 2000-06-30 2009-04-28 Nokia Corporation Network with mobile terminals as browsers having wireless access to the internet and method for using same
AU2001287105A1 (en) * 2000-09-06 2002-03-22 Portalvision, Inc. Method and apparatus for an information application programming interface
US7376897B1 (en) * 2000-09-30 2008-05-20 Intel Corporation Method, apparatus, and system for determining information representations and modalities based on user preferences and resource consumption
KR100516331B1 (ko) * 2000-10-09 2005-09-21 김화윤 인터넷 기반의 원격 제어 시스템 및 방법
US20020054130A1 (en) 2000-10-16 2002-05-09 Abbott Kenneth H. Dynamically displaying current status of tasks
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7401320B2 (en) * 2000-11-17 2008-07-15 Hewlett-Packard Development Company, L.P. Operator network that routes customer care calls based on subscriber/device profile and CSR skill set
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
AU2002232426A1 (en) * 2000-11-17 2002-05-27 Biftone Corporation System and method for updating and distributing information
US7082549B2 (en) * 2000-11-17 2006-07-25 Bitfone Corporation Method for fault tolerant updating of an electronic device
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US20040068721A1 (en) * 2000-11-17 2004-04-08 O'neill Patrick Network for updating firmware and / or software in wireless communication devices
US8875116B2 (en) * 2000-11-17 2014-10-28 Hewlett-Packard Development Company, L.P. Network for updating firmware and / or software in wireless communication devices
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US7024471B2 (en) * 2000-12-12 2006-04-04 International Business Machines Corporation Mechanism to dynamically update a windows system with user specific application enablement support from a heterogeneous server environment
US7085834B2 (en) * 2000-12-22 2006-08-01 Oracle International Corporation Determining a user's groups
US7349912B2 (en) 2000-12-22 2008-03-25 Oracle International Corporation Runtime modification of entries in an identity system
US7581011B2 (en) * 2000-12-22 2009-08-25 Oracle International Corporation Template based workflow definition
US7415607B2 (en) * 2000-12-22 2008-08-19 Oracle International Corporation Obtaining and maintaining real time certificate status
US7213249B2 (en) * 2000-12-22 2007-05-01 Oracle International Corporation Blocking cache flush requests until completing current pending requests in a local server and remote server
US7711818B2 (en) * 2000-12-22 2010-05-04 Oracle International Corporation Support for multiple data stores
US8015600B2 (en) 2000-12-22 2011-09-06 Oracle International Corporation Employing electronic certificate workflows
US7937655B2 (en) 2000-12-22 2011-05-03 Oracle International Corporation Workflows with associated processes
US7363339B2 (en) * 2000-12-22 2008-04-22 Oracle International Corporation Determining group membership
US7380008B2 (en) 2000-12-22 2008-05-27 Oracle International Corporation Proxy system
US7475151B2 (en) * 2000-12-22 2009-01-06 Oracle International Corporation Policies for modifying group membership
US7802174B2 (en) 2000-12-22 2010-09-21 Oracle International Corporation Domain based workflows
US6961773B2 (en) 2001-01-19 2005-11-01 Esoft, Inc. System and method for managing application service providers
US7958237B2 (en) * 2001-01-23 2011-06-07 Pearl Software, Inc. Method for managing computer network access
US7356816B2 (en) 2001-02-13 2008-04-08 Computer Associates Think, Inc. Method and apparatus for multiplatform migration
US20020124188A1 (en) * 2001-02-20 2002-09-05 Vipadvisor.Com, Inc. Computing environment for facilitating collaboration between professional service providers and their clients
US6789109B2 (en) * 2001-02-22 2004-09-07 Sony Corporation Collaborative computer-based production system including annotation, versioning and remote interaction
US20040098386A1 (en) * 2001-03-30 2004-05-20 Marcus Thint Profile management system
US7143164B2 (en) * 2001-05-21 2006-11-28 Exigen Group Dynamic object library software architecture
US6687733B2 (en) 2001-06-01 2004-02-03 Intergenix Method and system for automatically configuring a client-server network
US7346546B2 (en) * 2001-06-07 2008-03-18 Gateway Inc. Purchasing interface with a task display
US20020194226A1 (en) * 2001-06-15 2002-12-19 Dinesh Sheth Internet information aggregation system using programmatic data extraction
US6996602B2 (en) * 2001-06-18 2006-02-07 Ford Global Technologies, Llc Server-side page table framework for client application definition and execution
US8782254B2 (en) * 2001-06-28 2014-07-15 Oracle America, Inc. Differentiated quality of service context assignment and propagation
US7161899B2 (en) * 2001-07-20 2007-01-09 Bay Microsystems, Inc. Interlocking SONET/SDH network architecture
US20030063122A1 (en) * 2001-07-27 2003-04-03 Cichowlas Bruce William Method, system, and computer program product for developing and using stateful web applications
US6889172B2 (en) * 2001-08-15 2005-05-03 National Instruments Corporation Network-based system for configuring a measurement system using software programs generated based on a user specification
US6910041B2 (en) * 2001-08-23 2005-06-21 International Business Machines Corporation Authorization model for administration
US7225256B2 (en) 2001-11-30 2007-05-29 Oracle International Corporation Impersonation in an access system
US6915341B2 (en) * 2002-01-08 2005-07-05 International Business Machines Corporation System for sending messages to all users in a web hosting environment
DE60205450D1 (de) * 2002-03-08 2005-09-15 Sun Microsystems Inc Verfahren und Vorrichtung für die Bereitstellung von Konfigurationsdaten
US20030191639A1 (en) * 2002-04-05 2003-10-09 Sam Mazza Dynamic and adaptive selection of vocabulary and acoustic models based on a call context for speech recognition
US7369851B2 (en) * 2002-04-19 2008-05-06 Hewlett-Packard Development Company, L.P. Communications network capable of determining SIM card changes in electronic devices
JP2005523515A (ja) * 2002-04-19 2005-08-04 コンピュータ アソシエイツ シンク,インコーポレイテッド コンピュータシステムを管理するための方法及びシステム
US7290054B2 (en) * 2002-04-26 2007-10-30 Redback Networks Inc. Dynamic modification of a subscriber connection
US6993665B2 (en) * 2002-05-01 2006-01-31 Sun Microsystems, Inc. Applet permissions manager
US7216163B2 (en) * 2002-05-15 2007-05-08 Oracle International Corporation Method and apparatus for provisioning tasks using a provisioning bridge server
US7840658B2 (en) 2002-05-15 2010-11-23 Oracle International Corporation Employing job code attributes in provisioning
WO2004010249A2 (en) * 2002-07-19 2004-01-29 Synchrologic, Inc. System and method for utilizing profile information
US8737816B2 (en) * 2002-08-07 2014-05-27 Hollinbeck Mgmt. Gmbh, Llc System for selecting video tracks during playback of a media production
US7739584B2 (en) * 2002-08-08 2010-06-15 Zane Vella Electronic messaging synchronized to media presentation
US7313791B1 (en) 2002-08-22 2007-12-25 Hewlett-Packard Development Company, L.P. Firmware update network and process employing preprocessing techniques
US7340736B2 (en) * 2002-08-22 2008-03-04 Hewlett-Packard Development Company, L.P. Electronic device with an update agent that employs preprocessing techniques for update
US8010423B2 (en) * 2002-08-29 2011-08-30 International Business Machines Corporation Anticipatory mobile system service brokering and resource planning from multiple providers
US7669197B1 (en) 2002-09-12 2010-02-23 Hewlett-Packard Development Company, L.P. Embedded system employing component architecture platform
US7472380B1 (en) 2002-09-23 2008-12-30 Hewlett-Packard Development Company, L.P. Processing system with component architecture platform support
US7461372B2 (en) * 2002-10-11 2008-12-02 Hewlett-Packard Development Company, L.P. System for optimizing distribution of information employing a universal dictionary
WO2004038546A2 (en) * 2002-10-21 2004-05-06 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
US8027843B2 (en) * 2002-11-07 2011-09-27 International Business Machines Corporation On-demand supplemental diagnostic and service resource planning for mobile systems
US7447642B2 (en) * 2002-11-07 2008-11-04 International Business Machines Corporation Location based services revenue sharing and cost offsetting
US7984435B2 (en) * 2002-11-13 2011-07-19 Hewlett-Packard Development Company, L.P. Update system employing reference software to reduce number of update packages
US20040093592A1 (en) 2002-11-13 2004-05-13 Rao Bindu Rama Firmware update in electronic devices employing SIM card for saving metadata information
US7359930B2 (en) * 2002-11-21 2008-04-15 Arbor Networks System and method for managing computer networks
US7047448B2 (en) * 2002-11-21 2006-05-16 Bitfone Corporation Software self-repair toolkit for electronic devices
US6996818B2 (en) * 2002-11-22 2006-02-07 Bitfone Corporation Update system for facilitating software update and data conversion in an electronic device
US7434216B1 (en) 2002-11-25 2008-10-07 Hewlett-Packard Development Company, L.P. Update package generator that employs genetic evolution to determine bank order
US20040113950A1 (en) * 2002-12-17 2004-06-17 International Business Machines Corporation System and method for centrally managed self-contained desktops
US7310775B2 (en) * 2002-12-17 2007-12-18 International Business Machines Corporation System and method for restoring desktop components using distributed desktop packages
US7111245B2 (en) * 2002-12-17 2006-09-19 International Business Machines Corporation System and method for smart graphical components
US7117448B2 (en) 2002-12-17 2006-10-03 International Business Machines Corporation System and method for determining desktop functionality based on workstation and user roles
US7243336B2 (en) * 2002-12-17 2007-07-10 International Business Machines Corporation System and method of extending application types in a centrally managed desktop environment
US7203905B2 (en) 2002-12-17 2007-04-10 International Business Machines Corporation System and method for platform independent desktop lockdown
US7587491B2 (en) * 2002-12-31 2009-09-08 International Business Machines Corporation Method and system for enroll-thru operations and reprioritization operations in a federated environment
WO2004061615A2 (en) * 2002-12-31 2004-07-22 Bitfone Corporation Management of service components installed in an electronic device in a mobile services network
US7890427B1 (en) 2003-01-09 2011-02-15 Hewlett-Packard Development Company, L.P. Authentication of notifications received in an electronic device in a mobile services network
US7480907B1 (en) 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
TWI349204B (en) * 2003-01-10 2011-09-21 Panasonic Corp Group admission system and server and client therefor
WO2004063899A2 (en) 2003-01-13 2004-07-29 Bitfone Corporation Mobile handset capable of updating its update agent
US7644406B2 (en) * 2003-01-21 2010-01-05 Hewlett-Packard Development Company, L.P. Update system capable of updating software across multiple FLASH chips
WO2004070571A2 (en) * 2003-02-03 2004-08-19 Bitfone Corporation Update system for facilitating firmware/software update in a mobile handset
WO2004072773A2 (en) * 2003-02-11 2004-08-26 Bitfone Corporation Electronic device supporting multiple update agents
US8027482B2 (en) * 2003-02-13 2011-09-27 Hollinbeck Mgmt. Gmbh, Llc DVD audio encoding using environmental audio tracks
US7689981B1 (en) 2003-02-28 2010-03-30 Hewlett-Packard Development Company, L.P. Mobile handset with efficient interruption point detection during a multiple-pass update process
US20040230965A1 (en) * 2003-02-28 2004-11-18 Harri Okkonen Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
US8082339B2 (en) 2003-02-28 2011-12-20 Hewlett-Packard Development Company, L.P. Electronic device network having graceful denial of service
US7356727B1 (en) 2003-03-10 2008-04-08 Hewlett-Packard Development Company, L.P. Electronic device employing efficient fault tolerance
US7881745B1 (en) 2003-03-10 2011-02-01 Hewlett-Packard Development Company, L.P. Electronic device network employing provisioning techniques to update firmware and/or software in electronic devices
US7548986B1 (en) 2003-03-17 2009-06-16 Hewlett-Packard Development Company, L.P. Electronic device network providing streaming updates
US7657884B2 (en) * 2003-03-24 2010-02-02 Hewlett-Packard Development Company, L.P. Electronic device supporting multiple update agents
US7587411B2 (en) * 2003-03-27 2009-09-08 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7447785B2 (en) * 2003-03-31 2008-11-04 Microsoft Corporation Dependent context trees for related network offerings
US7975147B1 (en) 2003-03-31 2011-07-05 Hewlett-Packard Development Company, L.P. Electronic device network supporting enciphering and deciphering and update generation in electronic devices
US7987449B1 (en) 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
US7747994B1 (en) 2003-06-04 2010-06-29 Hewlett-Packard Development Company, L.P. Generator based on multiple instruction streams and minimum size instruction set for generating updates to mobile handset
EP1654640B1 (de) 2003-06-04 2018-08-01 Qualcomm Incorporated Netzwerk mit konfiguriebaren generatoren von software-aktualisierungen und mit mobilen elektronischen geräten, die ein konfigurierbares programm zum aktualisieren von software besitzen
US7584466B1 (en) 2003-06-16 2009-09-01 Hewlett-Packard Development Company, L.P. Management tree management in a mobile handset
US8046753B1 (en) 2003-06-18 2011-10-25 Hewlett-Packard Development Company, L.P. Mobile handset with symbian OS and update agent
US8250565B2 (en) * 2003-06-27 2012-08-21 Hewlett-Packard Development Company, L.P. System and method for downloading update packages into a mobile handset in a carrier network
US7343443B1 (en) * 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
US20050114504A1 (en) * 2003-07-09 2005-05-26 Sunil Marolia Carrier network capable of conducting remote diagnostics in a mobile handset
US7366125B1 (en) 2003-07-24 2008-04-29 Bbn Technologies Corp. Extensible satellite communication system
WO2005013123A1 (en) * 2003-07-29 2005-02-10 Bitfone Corporation Mobile handset with update agent implemented in hardware
US20050025349A1 (en) * 2003-07-30 2005-02-03 Matthew Crewe Flexible integration of software applications in a network environment
US7886093B1 (en) 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
US7822831B2 (en) * 2003-07-31 2010-10-26 International Business Machines Corporation Method, system and program product for preserving and restoring mobile device user settings
KR100880783B1 (ko) * 2003-09-03 2009-02-02 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피 전자 장치에서의 3-단계 부팅 프로세스
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7668612B1 (en) 2003-09-18 2010-02-23 Hewlett-Packard Development Company, L.P. System and method for efficient manufacture and update of electronic devices
WO2005031570A1 (en) * 2003-09-26 2005-04-07 Bitfone Corporation Update package catalog for update package transfer between generator and content server in a network
US20050153741A1 (en) * 2003-10-03 2005-07-14 Shao-Chun Chen Network and method for registration of mobile devices and management of the mobile devices
US7904487B2 (en) 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
US7882132B2 (en) 2003-10-09 2011-02-01 Oracle International Corporation Support for RDBMS in LDAP system
US7340447B2 (en) 2003-10-09 2008-03-04 Oracle International Corporation Partitioning data access requests
US7716276B1 (en) 2003-11-17 2010-05-11 Hewlett-Packard Development Company, L.P. Network that supports user-initiated device management
US20050125412A1 (en) * 2003-12-09 2005-06-09 Nec Laboratories America, Inc. Web crawling
US20050132351A1 (en) * 2003-12-12 2005-06-16 Randall Roderick K. Updating electronic device software employing rollback
US7797693B1 (en) 2003-12-12 2010-09-14 Hewlett-Packard Development Company, L.P. NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices
US9323515B1 (en) 2004-01-16 2016-04-26 Qualcomm Incorporated Network with broker for device management
US8838754B1 (en) 2004-01-26 2014-09-16 Qualcomm Incorporated Mobile device with a management forest in a device management network
US7984485B1 (en) 2004-01-29 2011-07-19 Hewlett-Packard Development Company, L.P. Ingestion interface for transferring update package containers into a distribution network
WO2005079334A2 (en) * 2004-02-12 2005-09-01 Bitfone Corporation Device management network that facilitates selective billing
EP1569489B1 (de) * 2004-02-26 2019-12-25 Orange Verfahren zur automatischen Erzeugung von aktiven Profilen für ein Telekommunikationsendgerät
US8238721B2 (en) * 2004-02-27 2012-08-07 Hollinbeck Mgmt. Gmbh, Llc Scene changing in video playback devices including device-generated transitions
US8837921B2 (en) * 2004-02-27 2014-09-16 Hollinbeck Mgmt. Gmbh, Llc System for fast angle changing in video playback devices
US20050210409A1 (en) * 2004-03-19 2005-09-22 Kenny Jou Systems and methods for class designation in a computerized social network application
US8165448B2 (en) * 2004-03-24 2012-04-24 Hollinbeck Mgmt. Gmbh, Llc System using multiple display screens for multiple video streams
US7739679B2 (en) * 2004-04-06 2010-06-15 Hewlett-Packard Development Company, L.P. Object ordering tool for facilitating generation of firmware update friendly binary image
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7971199B1 (en) 2004-05-03 2011-06-28 Hewlett-Packard Development Company, L.P. Mobile device with a self-updating update agent in a wireless network
US7543118B1 (en) 2004-05-07 2009-06-02 Hewlett-Packard Development Company, L.P. Multiple variance platform for the management of mobile devices
US7689982B1 (en) 2004-05-07 2010-03-30 Hewlett-Packard Development Company, L.P. Transparent linker profiler tool with profile database
US7657886B1 (en) 2004-06-03 2010-02-02 Hewlett-Packard Development Company, L.P. Mobile device with a MMU for faster firmware updates in a wireless network
US20060026587A1 (en) * 2004-07-28 2006-02-02 Lemarroy Luis A Systems and methods for operating system migration
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US8045845B2 (en) * 2005-01-03 2011-10-25 Hollinbeck Mgmt. Gmbh, Llc System for holding a current track during playback of a multi-track media production
US20060175271A1 (en) * 2005-01-31 2006-08-10 Emrey David A Apparatus and method of holding a golf score card and writing instrument, and golf bag and system incorporating the same
US8972549B2 (en) * 2005-06-10 2015-03-03 Adaptive Spectrum And Signal Alignment, Inc. User-preference-based DSL system
US20070101342A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Automated device driver management
US20070101328A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Sequencing a single task sequence across multiple operating environments
US7669123B2 (en) * 2006-08-11 2010-02-23 Facebook, Inc. Dynamically providing a news feed about a user of a social network
US8209676B2 (en) 2006-06-08 2012-06-26 Hewlett-Packard Development Company, L.P. Device management in a network
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
US20080079539A1 (en) * 2006-08-15 2008-04-03 Daley Robert C Friends Finder Service for a Mobile Device in a Network
US7874008B2 (en) * 2006-08-29 2011-01-18 International Business Machines Corporation Dynamically configuring extensible role based manageable resources
US8126128B1 (en) * 2006-11-01 2012-02-28 At&T Intellectual Property I, Lp Life cycle management of user-selected applications on wireless communications devices
US7904572B2 (en) * 2006-11-10 2011-03-08 Canon Denshi Kabushiki Kaisha Method, apparatus, and medium for controlling access to and setting for features of an imaging processing device
US8510233B1 (en) 2006-12-27 2013-08-13 Stamps.Com Inc. Postage printer
US9779556B1 (en) 2006-12-27 2017-10-03 Stamps.Com Inc. System and method for identifying and preventing on-line fraud
US20100198937A1 (en) * 2006-12-29 2010-08-05 Bernard Schletz Management of data for installation on a remote device
US8391775B2 (en) * 2007-03-09 2013-03-05 Airbiquity Inc. Mobile digital radio playlist system
US20080250050A1 (en) * 2007-04-05 2008-10-09 Cracchiolo Martin J Method and system for developing a desired set of configuration profiles for an application program and storage medium for storing a set of computer instructions which effectuate the method
US7818396B2 (en) * 2007-06-21 2010-10-19 Microsoft Corporation Aggregating and searching profile data from multiple services
US20080317042A1 (en) * 2007-06-22 2008-12-25 Palo Alto Research Center Incorporated Extensible framework for compatibility testing
FI121618B (fi) * 2007-11-09 2011-01-31 Capricode Oy Mobiilin laitteen laitehallintamenetelmä ja -järjestely
EP2223208A2 (de) 2007-11-15 2010-09-01 Desknet SA Verfahren, das es einer durch ein betriebssystem ausgeführten computervorrichtung erlaubt, softwaremodule auszuführen
US8219595B2 (en) * 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
US20090249493A1 (en) * 2008-03-27 2009-10-01 Computer Associates Think, Inc. Method and System for Determining Software License Compliance
US8725647B2 (en) * 2008-03-27 2014-05-13 Ca, Inc. Method and system for determining software license compliance
US8181230B2 (en) * 2008-06-30 2012-05-15 International Business Machines Corporation System and method for adaptive approximating of a user for role authorization in a hierarchical inter-organizational model
US8645375B1 (en) * 2008-09-29 2014-02-04 Emc Corporation Controlling information about a data storage system returned to an end-user
EP2353238A1 (de) * 2008-10-28 2011-08-10 Airbiquity Inc. Kauf eines in einem radio in einem fahrzeug gespielten musikstücks
US20100229188A1 (en) * 2009-03-03 2010-09-09 International Business Machines Corporation Presenting Data Files to an Application Based on a Characteristic of the Application and the Files
US9485339B2 (en) * 2009-05-19 2016-11-01 At&T Mobility Ii Llc Systems, methods, and mobile devices for providing a user interface to facilitate access to prepaid wireless account information
US8838332B2 (en) * 2009-10-15 2014-09-16 Airbiquity Inc. Centralized management of motor vehicle software applications and services
US8942888B2 (en) 2009-10-15 2015-01-27 Airbiquity Inc. Extensible scheme for operating vehicle head unit as extended interface for mobile device
US9002574B2 (en) 2009-10-15 2015-04-07 Airbiquity Inc. Mobile integration platform (MIP) integrated handset application proxy (HAP)
US8831823B2 (en) * 2009-10-15 2014-09-09 Airbiquity Inc. Centralized management of motor vehicle software applications and services
JP5244831B2 (ja) * 2010-01-25 2013-07-24 株式会社日立製作所 計算機システム及びストレージ統合管理方法
US9081747B1 (en) 2012-03-06 2015-07-14 Big Bang Llc Computer program deployment to one or more target devices
EP2859464B1 (de) 2012-06-08 2020-09-16 Airbiquity, Inc. Beurteilung von elektronischen sensordaten zur entfernten identifizierung eines kraftfahrzeugs und zur überwachung des fahrverhaltens
JP6396320B2 (ja) 2012-12-20 2018-09-26 エアビクティ インコーポレイテッド 効率的なヘッドユニット通信統合
CN103646055B (zh) * 2013-11-29 2017-09-26 广州视源电子科技股份有限公司 一种程序配置信息的获取方法和装置
US10171472B2 (en) 2016-03-02 2019-01-01 Microsoft Technology Licensing, Llc Role-specific service customization
CN108809680B (zh) * 2017-05-04 2021-03-02 腾讯科技(深圳)有限公司 一种设备管理的方法及设备
CN109039670A (zh) 2017-06-09 2018-12-18 钉钉控股(开曼)有限公司 团队配置方法、团队配置方案的分享方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4885770A (en) * 1987-09-04 1989-12-05 Digital Equipment Corporation Boot system for distributed digital data processing system
US5717923A (en) * 1994-11-03 1998-02-10 Intel Corporation Method and apparatus for dynamically customizing electronic information to individual end users
US5491820A (en) * 1994-11-10 1996-02-13 At&T Corporation Distributed, intermittently connected, object-oriented database and management system
US5835727A (en) * 1996-12-09 1998-11-10 Sun Microsystems, Inc. Method and apparatus for controlling access to services within a computer network
US5848233A (en) * 1996-12-09 1998-12-08 Sun Microsystems, Inc. Method and apparatus for dynamic packet filter assignment
US6003082A (en) * 1998-04-22 1999-12-14 International Business Machines Corporation Selective internet request caching and execution system

Also Published As

Publication number Publication date
WO1999057862A1 (en) 1999-11-11
EP1076973B1 (de) 2004-12-15
IL138133A (en) 2005-03-20
JP3670965B2 (ja) 2005-07-13
DE69828202D1 (de) 2005-01-20
PL343688A1 (en) 2001-08-27
TW444181B (en) 2001-07-01
CN1292965A (zh) 2001-04-25
US6105063A (en) 2000-08-15
JP2003505745A (ja) 2003-02-12
EP1076973A1 (de) 2001-02-21
CN1120606C (zh) 2003-09-03
CA2324396C (en) 2004-10-26
CA2324396A1 (en) 1999-11-11
IL138133A0 (en) 2001-10-31

Similar Documents

Publication Publication Date Title
DE69828202T2 (de) Client-server system zum aufrechterhalten von anwendungsvorzügen in einer hierarchisches datenstruktur
DE69923503T2 (de) Authentifizierung und Zugriffskontrolle in einem Managementterminalprogramm zur Verwaltung von Diensten in einem Computernetzwerk
US6205476B1 (en) Client—server system with central application management allowing an administrator to configure end user applications by executing them in the context of users and groups
US6339826B2 (en) Client-server system for maintaining a user desktop consistent with server application user access permissions
DE60131683T2 (de) Verfahren und system zur verwaltung von mehreren netzwerk-betriebsmitteln
US6237092B1 (en) Client-server system with central application management allowing an administrator to configure user and group contexts during application configuration without relaunching the application
US6105066A (en) Client-server system with central application management and using fully qualified class names of object-oriented applications for determining permanent server storage locations for application configuration information
US6108712A (en) Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system
DE60003457T2 (de) Verfahren und system zur konfiguration von komponenten, ausgebbar in einem netzwerk
DE112010003925B4 (de) Erweiterbare Zugriffssteuerungslisten-Grundstruktur
DE69729926T2 (de) Netzwerkbrowser
DE69929772T2 (de) Dateizugriffsteuerung in einem mehrfachprotokoll-datei-server
DE60218069T2 (de) Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung
US8140976B2 (en) Using content aggregation to build administration consoles
DE60319229T2 (de) Verfahren und system zur erweiterung der api eines dateisystems
US5778222A (en) Method and system for managing access to objects
DE60006065T2 (de) Verfahren und system zur entwicklung, anwendung, fernladung, und ausfuhrung, von datenbank gesteuerten webseiten
DE60009309T2 (de) System und verfahren zum presentieren von kanalisierten daten
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE69934894T2 (de) Verfahren und vorrichtung zur wahlweisen einstellung des zugangs zu anwendungsmerkmalen
DE10040213A1 (de) System und Verfahren zur dynamischen, auf dem jeweiligen Aufgabenbereich beruhenden Konfiguration von Benutzerprofilen
US8606916B2 (en) Graphical user interface for performing administration on web components of web sites in a portal framework
DE112011101508T5 (de) Zentrale Steuerung von Datenbankanwendungen
DE19954358A1 (de) Benutzerrollenzugriffssteuerung
DE112022000886T5 (de) Datenverarbeitungssystem mit manipulation logischer datensatzgruppen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7