DE60024706T2 - Verteiltes Parameterkontrollprotokoll - Google Patents

Verteiltes Parameterkontrollprotokoll Download PDF

Info

Publication number
DE60024706T2
DE60024706T2 DE60024706T DE60024706T DE60024706T2 DE 60024706 T2 DE60024706 T2 DE 60024706T2 DE 60024706 T DE60024706 T DE 60024706T DE 60024706 T DE60024706 T DE 60024706T DE 60024706 T2 DE60024706 T2 DE 60024706T2
Authority
DE
Germany
Prior art keywords
setting
terminal
settings
computer
policy
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 - Fee Related
Application number
DE60024706T
Other languages
English (en)
Other versions
DE60024706D1 (de
Inventor
Alan T. Foster City Ruberg
James G. Redwood City Hanko
Benjamin H. Stoltz
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE60024706D1 publication Critical patent/DE60024706D1/de
Application granted granted Critical
Publication of DE60024706T2 publication Critical patent/DE60024706T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/303Terminal profiles
    • 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
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Diese Erfindung betrifft das Gebiet von Computereinstellungen und Computernetzen und insbesondere die Änderung der Einstellungen eines Netzcomputers.
  • Teile der Offenbarung dieses Patentdokuments enthalten Material, das dem Urheberrechtsschutz unterliegt. Der Urheberrechtseigentümer hat keine Einwendungen gegen eine Facsimilewiedergabe des Patentdokuments oder der Patentoffenbarung, wie sie in den Akten oder Aufzeichnungen des Patent- und Markenamtes in Erscheinung tritt, durch beliebige Personen, behält sich jedoch ansonsten alle Urheberrechte vor. Sun, Sun Microsystems, das Sun Logo, Java und alle auf Java basierenden Markenzeichen und Logos sind Marken bzw. registrierte Marken von Sun Microsystems, Inc. in den Vereinigten Staaten und anderen Ländern. Alle SPARC Marken werden unter einer Lizenz verwendet und sind Marken von SPARC International Inc. in den Vereinigten Staaten und anderen Ländern. Produkte, die SPARC Marken tragen, basieren auf einer von Sun Microsystems, Inc. entwickelten Architektur.
  • 2. Stand der Technik
  • In einer Computernetzumgebung kann eine Softwareanwendung oder ein Nutzer an einem Computerterminal anstreben, Computereinstellungen (wie beispielsweise die Lautstärkesteuerung, die Mauszeigergeschwindigkeit oder die Auflösung der Anzeige) in einer speziellen Weise zu konfigurieren. Darüber hinaus kann ein Nutzer anstreben, den Computerterminal zu wechseln, an dem der Nutzer arbeitet (beispielsweise um etwas auf einem Terminal eines Mitarbeiters anzuzeigen) und dabei die vorherigen Einstellungen am neuen Terminal immer noch beizubehalten. Bei einer Anwendung (die auf einem „Server" laufen kann, von dem Anwendungen aus der Ferne ausgeführt werden) können die Einstellungen eines Nutzers (z.B. um eine CD abzuspielen oder eine Sequenz von Farben anzuzeigen) verwendet werden. Um einem Wechsel von Terminals Rechnung zu tragen und damit Anwendungen Einstellungen modifizieren können, müssen Anwendungen, die auf die Einstellungen zugreifen, informiert werden, wenn sich eine Einstellung ändert. Zusätzlich können einige Einstellungen miteinan der verbunden sein und sollten Änderungen an miteinander verbundenen Einstellungen gleichzeitig durchgeführt werden (z.B. die rote, blaue und grüne Komponente einer Anzeige (RGB Werte)). Mechanismen des Standes der Technik bieten nicht die Möglichkeit, Einstellungen über ein Netz zu ändern. Zusätzlich bieten die Mechanismen des Standes der Technik kein Verfahren, um relevante Anwendungen über Änderungen zu informieren oder um miteinander in Verbindung stehende Einstellungen gleichzeitig zu modifizieren.
  • Für ein besseres Verständnis der Erfindung ist eine Beschreibung von Netzen zweckmäßig.
  • Netze
  • In modernen Rechnerumgebungen ist es üblich, mehrere miteinander in einem Netz für eine Kommunikation miteinander verbundene Computer oder Workstations zu verwenden und Daten unter Nutzern des Netzes (die auch als „Clients" bezeichnet werden) gemeinsam zu teilen. Ein Netz kann auch Ressourcen, wie beispielsweise Drucker, Modems, Dateiserver, etc. umfassen und kann auch Dienste, wie beispielsweise Email umfassen.
  • Bei einem Netz kann es sich um ein kleines System handeln, das physikalisch mit Kabeln verbunden ist (ein Lokalbereichsnetz oder „LAN"), oder es können mehrere getrennte Netze miteinander zur Bildung eines größeren Netzes verbunden sein (ein Fernnetz oder „WAN"). Andere Arten von Netzen umfassen das Internet, Telekommunikationsnetze, das World Wide Web, Intranetze, Extranetze, drahtlose Netze und andere Netze, über die elektronische, digitale und/oder analoge Daten kommuniziert werden können.
  • In einigen Fällen sind Computersysteme auf Server-Computersysteme gestützt (die auch als ein „Server" bezeichnet werden), um Informationen zu anfordernden Computern in einem Netz zu liefern. Wenn eine große Anzahl von anfordernden Computern vorhanden ist, kann es notwendig sein, über mehr als ein Server-Computersystem zu verfügen, um die Anforderungen zu behandeln.
  • Im US Patent 5,875,327 wird ein System und ein Verfahren einer Workstation-Konfiguration offenbart, die ein Mehrfachebenen-Hierarchiemanagement von Präferenzen umfaßt, die im wesentlichen eher von einem Dateiserver verwaltet und gespeichert werden, als von jeder einzelnen Workstation. Es wird ein Computernetz offenbart, das Workstations umfaßt, die konfigurierbare Hardwarevorrichtungen und Softwareanwendungen umfassen. Ein Workstationserver ist mit den Workstations verbunden, die hierarchische Präferenzdateien, die Konfigurationsinformationen enthalten, und einen Präferenzmanager umfassen, um basierend auf den Informationen in der hierarchischen Präferenzdatei zusammengefügte Gruppen von Konfigurationsparametern an die Workstations zu liefern.
  • Abriß der Erfindung
  • Mit einem Verfahren, System und einem computerlesbaren Speichermedium gemäß Anspruch 1, 14 bzw. 26 wird ein Steuerungsprotokoll für verteilte Einstellungen realisiert. Gemäß einer oder mehreren Ausführungsformen der Erfindung werden mit einem oder mehreren Servercomputern verbundene Mensch-Maschine-Schnittstellenvorrichtungen (HIDs) oder Terminals bereitgestellt. Die HIDs sind für eine Anzeige von Daten und, um Keyboard-, Cursor-, Audio- und Videodaten über das Netz zum verarbeitenden Server zu senden, konfiguriert. Die Funktionalität ist so aufgeteilt, daß Datenbasen, Server und graphische Nutzerschnittstellenfunktionen von den Servern bereitgestellt werden. Gemäß einer oder mehreren Ausführungsformen der Erfindung wird einer auf einem Server laufenden Anwendung oder einer HID selbst die Fähigkeit verliehen, verschiedene mit den HIDs in Verbindung stehende Einstellungen, wie beispielsweise die Auflösung der Anzeige, die Konfiguration des Audioausgangs (wie beispielsweise die Lautstärkekontrolle oder Kopfhörer im Vergleich zu Lautsprecher) und Energiesparmaßnahmen über ein Netz zu modifizieren.
  • Gemäß einer oder mehrerer Ausführungsformen wird die Fähigkeit zur Verfügung gestellt, daß Anwendungen und Dritte Einstellungen über ein Netz konfigurieren können. Gemäß einer oder mehrerer Ausführungsformen sind damit mehrere Protokolleigenschaften verbunden. Beispielsweise können eine oder mehrere Ausführungsformen die folgenden Eigenschaften umfassen, wobei sie jedoch nicht darauf beschränkt sind: (1) eine HID behält Kenntnis darüber, welche Anwendungen momentan die HID sehen oder darauf zugreifen; (2) Anwendungen/Programme und Server kennen den Status der HID-Einstellungen (was als Idempotenz und Konsistenz bezeichnet wird); (3) um eine Einstellung zu ändern, liefert ein Server die momentane korrekte Einstellung zur HID, bevor die HID eine Änderung beendet (was als Verriegelungsnormerfüllung bezeichnet wird); (4) die Einstellungen sind von einer HID zu einer anderen beweglich; (5) die Arten der Einstellungen bei jeder HID sind unabhängig von anderen HIDs, um Unterschiede zwischen HID-Modellen und -Hardware zu berücksichtigen (was als Modellunabhängigkeit bezeichnet wird); und (6) ein Nutzer, ein dritter Agent, ein Hersteller oder eine andere Einheit kann jede beliebige gewünschte, zu den Einstellungen in Beziehung stehende Richtlinie bestimmen (was als Richtlinienfreiheit bezeichnet wird).
  • Durch Befolgen der oben angegebenen Eigenschaften wird durch das Protokoll gemäß einer oder mehrerer Ausführungsformen sichergestellt, daß die Einstellungen über ein Netz korrekt und konsistent beibehalten werden, während mehrere Einheiten die Einstellungen modifizieren und konfigurieren können.
  • Kurzbeschreibung der Zeichnungen
  • In 1 ist eine Kommunikation zwischen HIDs und Diensten gemäß einer oder mehrerer Ausführungsformen der Erfindung gezeigt.
  • 2 ist ein Blockdiagramm einer HID gemäß einer oder mehrerer Ausführungsformen der Erfindung.
  • 3 ist ein Blockdiagramm einer Ausführungsform eines Computersystems, das dazu geeignet ist, eine geeignete Ausführungsumgebung für eine oder mehrere Ausführungsformen der Erfindung bereitzustellen.
  • 4 veranschaulicht die Beziehung zwischen Anwendungen, Servern und einer HID gemäß einer oder mehrerer Ausführungsformen der Erfindung.
  • 5 veranschaulicht einen Verriegelungsalgorithmus gemäß einer oder mehrerer Ausführungsformen der Erfindung.
  • In 6 ist der Ablauf einer Anwendung zum Senden einer Anforderung für eine Modifizierung gemäß einer Ausführungsform der Erfindung gezeigt.
  • Detaillierte Beschreibung der Erfindung
  • Bei der Erfindung handelt es sich um ein verteiltes Einstellungssteuerungsprotokoll. In der folgenden Beschreibung sind zahlreiche spezielle Einzelheiten dargelegt, um eine umfassen dere Beschreibung von Ausführungsformen der Erfindung zu liefern. Für den Fachmann ist jedoch erkennbar, daß die Erfindung ohne diese speziellen Einzelheiten realisiert werden kann. Bei anderen Gelegenheiten wurden bekannte Merkmale nicht in Einzelheiten beschrieben, um die Erfindung nicht zu verschleiern.
  • Computernetzausführungsform
  • Wie oben beschrieben wurde, umfaßt ein Computernetz mehrere miteinander über ein Kommunikationsmedium verbundene Computer, das ihnen eine Zwischenverbindung und Wechselwirkung untereinander ermöglicht. Gemäß einer oder mehrerer Ausführungsformen der Erfindung wird dieses Kommunikationsmedium unter anderem als die Zwischenverbindungsstruktur bezeichnet und umfaßt die zum Transport von Daten zu und von den Computern erforderlichen physikalischen Wege und Kommunikationsprotokolle. Ein Client/Servernetzmodell umfaßt einen oder mehrere Hauptcomputer (Server), die den Transfer von Daten im Netz verwalten und die die von anderen Computern (Clients) im Netz vorgebrachten Anforderungen bedienen können.
  • Eine oder mehrere Ausführungsformen der Erfindung umfassen eine Client/Server-Computerarchitektur mit einem oder mehreren Clientcomputern oder „Mensch-Maschine-Schnittstellenvorrichtungen (HID)" oder „Terminals" in einem Netz mit einem oder mehreren Servercomputern. Eine HID hat die Aufgabe, einen Ausgang von Diensten zu einem Nutzer anzuzeigen und eine Eingabe zu Diensten von dem Nutzer zu erhalten. Eine HID hat die Fähigkeit, auf einen Befehl zu reagieren (z.B. eine Anzeige des Befehls), der beispielsweise von einem auf einem Computerdienstanbieter ausführenden Softwareprogramm empfangen wird. Die von einem Nutzer empfangene Eingabe wird beispielsweise zu einem Dienst weitergeleitet, der eine Nutzeranforderung erfüllt. Ein Dienst ist ein Programm, das Funktionen für einen Nutzer ausführt. Die von einer Sitzung umfaßten Dienste, können von mehr als einem Server ausgeführt werden.
  • Gemäß einer oder mehrere Ausführungsformen der Erfindung wird eine EDV Zentralverwaltungsmetapher (central office metaphor) bereitgestellt, in der Dienste eines oder mehrerer Server für eine HID oder ein Terminal über ein Netz, wie beispielsweise das Ethernet, bereitgestellt werden. Die HIDs sind für eine Anzeige von Daten und zum Senden von Keyboard-, Cursor-, Audio- und Videodaten über das Netz zum verarbeitenden Server konfiguriert. Die Funktionalität ist so unterteilt, daß Datenbasen, Server und graphische Nutzerschnittstellenfunktion durch die Dienste bereitgestellt werden und eine Mensch-Maschine-Funktionalität durch die HIDs bereitgestellt wird. Eine Kommunikation mit den HIDs von verschiedenen Diensten wird durch eine Umwandlung von ungleichartigen Ausgaben in ein gemeinsames Protokoll erreicht. Geeignete Treiber werden für jeden Dienst bereitgestellt, um eine Protokollumwandlung zu ermöglichen.
  • In einer oder mehreren Ausführungsformen der Erfindung werden mehrere HIDs mit dem Netz gekoppelt. Nutzer können eine einmalige Sitzung an jeder beliebigen HID durch Einführen einer „Smartcard" in einen Kartenleser aktivieren. Eine Smartcard ist eine Karte, die zur Speicherung von Informationen geeignet ist, wie beispielsweise in einem Magnetstreifen oder einem Speicher der Smartcard. Eine Sitzung ist eine langlebige, beständige und zuverlässige Darstellung dieser Dienste, die zu jedem Zeitpunkt im Auftrag eines Nutzers ablaufen. Durch ein Entfernen der Karte wird die Sitzung deaktiviert. Durch ein erneutes Einführen der Karte in dieselbe oder jede beliebige andere HID wird die Sitzung reaktiviert. Somit kann ein Nutzer jede beliebige HID im Netz verwenden, um durch Aktivieren einer Sitzung auf die vom Nutzer verwendeten oder für ihn verfügbaren Ressourcen und Dienste zuzugreifen.
  • Gemäß der Erfindung wird eine neue Computersystemarchitektur bereitgestellt, die als virtuelle Desktoparchitektur bezeichnet wird. Durch dieses System wird ein wesentlich höherer Grad an Funktionalität bei geringeren Kosten ermöglicht als durch Systeme des Standes der Technik. Erfindungsgemäß wird eine Neuaufteilung der Funktionalität zwischen einer zentralen Servereinrichtung und der Nutzerhardware bereitgestellt. Daten und Rechenfunktionalität werden durch Datenquellen über eine zentralisierte Verarbeitungsanordnung bereitgestellt. Am Nutzerende wird die Funktionalität beseitigt, mit Ausnahme der Funktionalität, durch die eine Ausgabe an den Nutzer (z.B. Anzeige und Lautsprecher) erzeugt wird, eine Eingabe vom Nutzer (z.B. Maus und Tastatur) oder anderen Periphergeräten, mit welchen der Nutzer interagieren kann (z.B. Scanner, Kameras, bewegliche Speicher, etc.), aufgenommen wird.
  • Berechnungen werden durch die zentrale Datenquelle und unabhängig vom Ziel der erzeugten Daten durchgeführt. Die Ausgabe der Datenquelle wird an eine HID oder an einen Terminal geliefert. Jede HID ist in der Lage, die Daten zu empfangen und anzuzeigen.
  • Die virtuelle Desktopsystemarchitektur gemäß der vorliegenden Erfindung kann zu anderen stark partitionierten Systemen analogisiert werden. Beispielsweise verfügen öffentliche Telefongesellschaften in den Zentralstellen über leistungsstarke und hoch entwickelte Verarbeitungsleistung. Jedoch ist die HID, das Telefon, relativ einfach und erfordert keine Aufrüstung, wenn neue Features oder Dienste von der Telefongesellschaft hinzugefügt werden. Das Telefon selbst wird ein kostengünstiges, einem extrem geringen Wertverlust unterliegendes Gerät. In ähnlicher Weise weist auch der Anzeigemonitor der meisten Computersysteme einen geringen Wertverlust auf und wird typischerweise bei den meisten Aufrüstungen des Desktopsystems beibehalten.
  • Virtuelle Desktopsystemarchitektur
  • In diesem System ist die Funktionalität des Systems zwischen einer Anzeige- und Eingabevorrichtung und Datenquellen oder Diensten partitioniert. Die Anzeige- und Eingabevorrichtung ist eine HID. Die Partitionierung dieses Systems ist derart, daß Zustands- und Rechenfunktionen von der HID entfernt wurden und sich in den Datenquellen bzw. -diensten befinden. Bei einer Ausführungsform der Erfindung kommunizieren einer oder mehrere Dienste über eine bestimmte Zwischenverbindungsstruktur, wie beispielsweise ein Netz, mit einer oder mehreren HIDs. Ein Beispiel eines derartigen Systems ist in 1 gezeigt. Unter Bezugnahme auf 1 besteht das System aus Rechendienstanbietern 100, die Daten über die Zwischenverbindungsstruktur 101 zu HIDs 102 kommunizieren.
  • Rechendienstanbieter
  • Beim HID-System befindet sich die Rechenleistung und die Statusinstandhaltung in den Dienstanbietern oder Diensten. Die Dienste sind nicht an einen speziellen Computer gebunden, sondern können über eines oder mehrere herkömmliche Desktopsysteme, wie sie im Zusammenhang mit 1 beschrieben wurden, oder herkömmliche Server verteilt sein. Ein Computer kann einen oder mehrere Dienste umfassen, oder ein Dienst kann durch einen oder mehrere Computer implementiert sein. Der Dienst stellt Berechnungen, Zustand und Daten für die HIDs zur Verfügung und der Dienst befindet sich unter der Steuerung einer gemeinsamen Autorität oder Verwalters. In 1 sind die Dienste in den Rechnern 110, 111, 112, 113 und 114 zu finden. Es ist wichtig, zu beachten, daß die zentrale Datenquelle ebenfalls Daten zur Verfügung stellen kann, die von außerhalb der zentralen Datenquelle kommen, wie beispielsweise dem Internet oder dem World Wide Web. Bei der Datenquelle könnte es sich auch um Sendeeinheiten handeln, wie beispielsweise um solche, die Daten, Fernseh- oder Radiosignale senden.
  • Beispiele für Dienste umfassen JAVATM Programm-Ausführungsdienste, X11/Unixdienste, archivierte oder live-Audio- oder Videodienste, Windows NT-Dienst und andere. Hier ist ein Dienst ein Prozeß, der Ausgangsdaten liefert und auf Nutzeranforderungen und -eingaben antwortet.
  • Es liegt in der Verantwortung des Dienstes, Kommunikationen mit der HID abzuwickeln, die momentan verwendet wird, um auf den bestimmten Dienst zuzugreifen. Dies beinhaltet das Verwenden des Ausgangs vom Rechendienst und das Umwandeln desselben in ein Standartprotokoll für die HID. Diese Datenprotokollversion wird bei einer Ausführungsform der Erfindung durch eine Middleware-Ebene gehandhabt, wie beispielsweise eine Variante der java.awt.graphics-class, den X11 Server, die Microsoft Windows Schnittstelle, einen Videoformattranscoder, die OpenGL Schnittstelle, oder in der Dienstanbietermaschine. Die Dienstmaschine erledigt die Übersetzung in das und aus dem virtuellen Desktoparchitekturdrahtprotokoll (virtual desktop architecture wire protocol).
  • Bei einer Ausführungsform der Erfindung ist jeder Dienst mit einer Rechenvorrichtung versehen, die für ihre Leistung optimiert ist. Beispielsweise könnte ein Sun MediaCenter verwendet werden, um einen Videodienst zur Verfügung zu stellen, eine Enterprise-classmaschine verwendet werden, um einen X11/Unixdienst zur Verfügung zu stellen, und könnte eine Hydra-basierte NT Maschine einen Applet-Programm-Ausführungsdienst zur Verfügung stellen.
  • Die den Dienst erzeugenden Computersysteme werden über die Zwischenverbindungsstruktur direkt mit den HIDs verbunden. Der Diensthersteller kann auch ein Proxy für eine andere Vorrichtung sein, die den Rechendienst zur Verfügung stellt, wie beispielsweise ein Datenbasisrechner in einer dreifstufigen Architektur, wobei der Proxycomputer beispielsweise lediglich Anfragen erzeugen könnte, und Nutzerschnittstellencode ausführen könnte.
  • Zwischenverbindungsstruktur
  • Bei der Erfindung ist die Zwischenverbindungsstruktur ein beliebiger einer Vielzahl geeigneter Kommunikationswege zur Übertragung von Daten zwischen den Diensten und den HIDs. Bei einer Ausführungsform ist die Zwischenverbindungsstruktur ein Lokalbereichsnetz, das als ein Ethernet-Netz realisiert ist. Andere Lokalbereichsnetze können ebenfalls verwendet werden. Erfindungsgemäß wird auch die Verwendung von Fernnetzen, des Internets, des World Wide Webs und anderer in Betracht gezogen. Die Zwischenverbindungsstruktur kann mit einem physikalischen Medium, wie beispielsweise über Draht oder über ein optisches Faserkabel realisiert werden, oder sie kann in einer drahtlosen Umgebung implementiert werden.
  • Bei einer Ausführungsform der Erfindung bietet die Zwischenverbindungsstruktur aktiv verwaltete Kommunikationen mit geringer Latenz und hoher Bandbreite zwischen der HID und den Diensten, auf die zugegriffen wird. Gemäß einer Ausführungsform wird ein geschaltetes Netz mit einer einzigen Ebene mit einem kooperativen (im Gegensatz zu einem im Wettbewerb stehenden) Netzverkehr in Betracht gezogen. Zweckbestimmte oder mehrfach genutzte Kommunikationszwischenverbindungen können bei der vorliegenden Erfindung verwendet werden.
  • Mensch-Maschine-Schnittstellenvorrichtungen (HIDs)
  • Die HID ist das Mittel, mit dem Nutzer auf von den Servern oder Diensten bereitgestellte Rechendienste zugreifen und somit kann die HID als ein Client oder eine Nutzerworkstation oder ein Terminal bezeichnet werden. In 1 sind HIDs 121, 122 und 123 gezeigt. Eine HID kam aus einer Anzeige 126, einer Tastatur 124, einer Maus 125 und Lautsprechern 127 bestehen. Die HID umfaßt die Elektronik, die zur Bildung einer Schnittstelle zwischen diesen Vorrichtungen und der Zwischenverbindungsstruktur und um Daten an die Dienste zu senden und davon zu empfangen notwendig ist.
  • Ein Blockdiagramm einer Ausführungsform einer HID ist in 2 gezeigt. Die Komponenten der HID sind intern mit einem PCI Bus 212 gekoppelt. Ein Netzsteuerblock 202 kommuniziert mit der Zwischenverbindungsstruktur, wie beispielsweise einem Ethernet, über die Leitung 214. Ein Audiocodec 203 empfängt Audiodaten an der Schnittstelle 216 und ist mit einem Block 202 gekoppelt. Auf den Leitungen 213 wird eine USB-Datenkommunikation zum USB-Controller 201 bereitgestellt.
  • Bei einem eingebetteten Prozessor 204 kann es sich beispielsweise um einen Sparc2ep mit einem gekoppelten Flashspeicher 205 und einem DRAM 206 handeln. Sowohl der USB Controller 201 als auch der Netzcontroller 202 und der eingebettete Prozessor 204 sind mit dem PCI Bus 212 gekoppelt. Mit dem PCI 212 ist auch der Videocontroller 209 gekoppelt. Der Videocontroller 209 kann beispielsweise ein ATI Rage128 Bildpuffercontroller sein (oder jeder beliebige andere geeignete Controller), der einen SVGA Ausgang auf der Leitung 215 liefert. NTSC oder PAL Daten werden in den Videocontroller über dem Videodekoder 210 eingespeist. Eine Smartcard-Schnittstelle 208 kann ebenfalls mit dem Videocontroller 209 gekoppelt sein.
  • Alternativ kann die HID unter Verwendung einer Einzelchiplösung einschließlich der notwendigen Verarbeitungskapazität implementiert sein.
  • Diese Architektur bzw. System wird in weiteren Einzelheiten im US Patent mit der Anmeldenummer 09/063,335, das auf den vorliegenden Abtretungsempfänger übertragen wurde, mit Anmeldedatum vom 20. April 1988 und dem Titel „Method and Apparatus for Providing a Virtual Desktop System Architecture" beschrieben.
  • Eine Ausführungsform der Erfindung kann als Computersoftware in der Form eines computerlesbaren Codes, der auf einem allgemein verwendbaren Computer, wie beispielsweise dem in 3 gezeigten Computer 300 ausgeführt wird, oder in der Form von Bytecodeclassdateien, die in einer JavaTM Laufzeitumgebung ausführbar sind, die auf einem derartigen Computer läuft, oder in der Form von Bytecodes, die auf einem Prozessor laufen (oder Vorrichtungen, die zur Verarbeitung von Bytecodes geeignet sind), der sich in einer verteilten Umgebung befindet (z.B. einer oder mehrere Prozessoren in einem Netz) implementiert sein. Eine Tastatur 310 und eine Maus 311 sind mit einem Systembus 318 gekoppelt. Die Tastatur und die Maus sind für das Einführen von Nutzereingaben in das Computersystem und zum Kommunizieren der Nutzereingaben zum Prozessor 313 vorgesehen. Zusätzlich oder anstelle der Maus 311 und der Tastatur 310 können andere geeignete Eingabevorrichtungen verwendet werden. Die I/O (Eingabe/Ausgabe) Einheit 319, die mit dem Bussystem 318 gekoppelt ist, stellt derartige I/O Elemente, wie z.B. einen Drucker, A/V (Audio/Video) I/O, etc. dar.
  • Der Computer 300 umfaßt einen Videospeicher 314, einen Hauptspeicher 315 und einen Massenspeicher 312, die mit dem Bus 318 zusammen mit der Tastatur 310, der Maus 311 und dem Prozessor 313 gekoppelt sind. Der Massenspeicher 312 kann sowohl feste als auch bewegliche Medien umfassen, wie beispielsweise magnetische, optische oder magnetischoptische Speichersysteme oder jede beliebige andere verfügbare Massenspeichertechnologie. Der Bus 318 kann beispielsweise 32 Adreßleitungen zur Adressierung eines Videospeichers 314 oder eines Hauptspeichers 315 umfassen. Das Bussystem 318 umfaßt beispielsweise auch einen 64-Bit Datenbus zur Übertragung von Daten zwischen und in den Komponenten, wie beispielsweise dem Prozessor 313, Hauptspeicher 315, Videospeicher 314 und Massenspeicher 312. Alternativ können Multiplex-Daten/Adreßleitungen anstelle getrennter Daten- und Adreßleitungen verwendet werden.
  • Bei einer Ausführungsform der Erfindung handelt es sich bei dem Prozessor 313 um einen von Sun Microsystems, Inc. hergestellten Mikroprozessor, wie beispielsweise den SPARCTM Mikroprozessor, oder um einen von Motorola hergestellten Mikroprozessor, wie beispielsweise den 680X0 Prozessor, oder einen von Intel hergestellten Mikroprozessor, wie beispielsweise den 80X86 oder Pentiumprozessor. Jedoch kann auch jeder andere geeignete Mikroprozessor oder Mikrocomputer verwendet werden. Der Hauptspeicher 315 umfaßt einen dynamischen Direktzugriffspeicher (DRAM). Der Videospeicher 314 ist ein Dualportvideodirektzugriffspeicher. Ein Port des Videospeichers 314 ist mit dem Videoverstärker 316 gekoppelt. Der Videoverstärker 316 wird dazu verwendet, den Kathodenstrahlröhren-(CRT)-Rastermonitor 314 anzusteuern. Der Videoverstärker 316 ist im Stand der Technik gut bekannt und kann mit jedem geeigneten Gerät implementiert werden. Mit diesem Schaltkreis werden im Videospeicher 314 gespeicherte Pixeldaten in ein für eine Verwendung durch den Monitor 317 geeignetes Rastersignal umgewandelt. Bei dem Monitor 317 handelt es sich um einen zur Anzeige von Grafikbildern geeigneten Monitortyp.
  • Der Computer 300 kann auch eine Kommunikationssschnittstelle 320 umfassen, die mit dem Bus 318 gekoppelt ist. Die Kommunikationsschnittstelle 320 bietet eine Zweiwegedatenkommunikationskopplung über eine Netzverbindung 321 zu einem lokalen Netz 322. Beispielsweise bietet die Kommunikationsschnittstelle 320, wenn es sich bei der Kommunikationsschnittstelle 320 um eine Diensteintegriertes-Digitales-Nachrichtennetz-(ISDN)-Karte oder -Modem handelt, eine Datenkommunikationsverbindung zu der entsprechenden Art von Telefonleitung, die einen Teil der Netzverbindung 321 bildet. Falls die Kommunikations schnittstelle 320 eine Lokalbereichsnetz-(LAN)-Karte ist, stellt die Kommunikationsschnittstelle 320 eine Datenkommunikationsverbindung über eine Netzverbindung 321 zu einem kompatiblen LAN bereit. Drahtlose Verbindungen sind ebenfalls möglich. Bei jeder derartigen Implementierung sendet die Kommunikationsschnitstelle 320 elektrische, elektromagnetische oder optische Signale, die Teile der Datenströme übertragen, die verschiedene Typen von Informationen wiedergeben, aus und empfängt solche.
  • Die Netzverbindung 321 bietet typischerweise eine Datenkommunikation über eines oder mehrere Netze zu anderen Datenvorrichtungen. Beispielsweise kann die Netzverbindung 321 eine Verbindung über ein lokales Netz 322 zu einem lokalen Servercomputer 323 oder zu einem Datengerät bereitstellen, das von einem Internetdiensteanbieter (ISP) 324 betrieben wird. Der ISP 324 bietet wiederum Datenkommunikationsdienste über das weltweite Paketdatenkommunikationsnetz, das nunmehr allgemein als das „Internet" 325 bezeichnet wird. Sowohl das lokale Netz 322 als auch das Internet 325 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale durch die verschiedenen Netze und die Signale auf der Netzverbindung 321 und durch die Kommunikationsschnittstelle 320, die die digitalen Daten zu und vom Computer 300 übertragen, sind beispielhafte Arten von Trägerwellen, die die Informationen tragen.
  • Der Computer 300 kann Nachrichten senden und Daten empfangen, einschließlich von Programmcode, über das (die) Netz(e), die Netzverbindung 321 und die Kommunikationsschnittstelle 320. Bei dem Beispiel des Internets könnte der entfernte Servercomputer 326 einen angeforderten Code für ein Anwendungsprogramm über das Internet 325, den ISP 324, das lokale Netz 322 und die Kommunikationsschnittstelle 320 senden.
  • Der empfangene Code kann vom Prozessor 313 so, wie er empfangen wird, ausgeführt werden und/oder für eine spätere Ausführung im Massenspeicher 312 oder in einem anderen nicht flüchtigen Speicher gespeichert werden. Auf diese Weise kann der Computer 300 einen Anwendungscode in der Form einer Trägerwelle erhalten.
  • Der Anwendungscode kann in jeder Form eines Computerprogrammproduktes verkörpert sein. Ein Computerprogrammprodukt umfaßt ein zur Speicherung oder zum Transport eines computerlesbaren Codes konfiguriertes Medium oder ein Medium, in dem ein computerlesbarer Code eingebettet sein kann. Einige Beispiele für Computerprogrammprodukte sind CD- ROM Platten, ROM Karten, Floppydisks, Magnetbänder, Computerfestplattenlaufwerke, Server in einem Netz und Trägerwellen.
  • Die oben beschriebenen Computersysteme sind lediglich eine beispielhafte Darstellung. Eine Ausführungsform der Erfindung kann in jeder beliebigen Art von Computersystemen oder Programmierung oder Verarbeitungsumgebung realisiert sein.
  • Durch Reduzieren der Funktion der Desktop-Einheit auf eine gut definierte, festgelegte Gruppe von Handlungsweisen wird ein Bereich unterschiedlicher Implementierungen möglich. Beispielsweise könnte die HID ausschließlich mit Hardware (wie beispielsweise als ein Board oder ein Chip), als Software, die ein kleines Desktopsystem steuert (z.B. ein Netzcomputer, Personalcomputer, ein herkömmliches Desktopsystem), oder als eine Anwendung implementiert sein, die auf einem Workstationcomputersystems des Standes der Technik läuft.
  • Die Berechnungen werden durch die zentrale Datenquelle und unabhängig vom Ziel der erzeugten Daten ausgeführt. Der Ausgang der Datenquelle wird einer HID zugeführt. Die HID ist zum Empfang und zur Anzeige der Daten eingerichtet.
  • Steuerungsprotokoll für verteilte Einstellungen
  • Bei einer oder mehreren Ausführungsformen der Erfindung wird ein Protokoll zur Konfiguration und zur Pflege von Einstellungen verwendet. Das Protokoll ermöglicht eine relativ gleichzeitige Herstellung mehrerer Einstellungen und sofern irgendwelche Modifizierungen an den Einstellungen vorgenommen werden, werden Programme, die auf relevante Einstellungen zugreifen oder diese verwenden, vom Protokoll aktualisiert. Durch Verwenden des Protokolls kann ein Nutzer zwischen HIDs umschalten und die zuvor konfigurierten Einstellungen ohne zusätzlichen Aufwand oder Handlungen durch den Nutzer verwenden.
  • In 4 ist die Beziehung zwischen Anwendungen, Servern und einem Terminal (oder einer HID) gemäß einer oder mehrerer Ausführungsformen der Erfindung dargestellt. Ein Nutzer kann einen Terminal 400 verwenden. Der Terminal 400 empfängt Kommunikationen vom Server 402 und vom Server 404, die jeweils eine Zahl zwischen 0 und mehreren Anwendungen/Programmen ausführen können (z.B. Anwendung A 406 und Anwendung B 408). Der Terminal 400 kann eine Einstellungstabelle 410 enthalten, die Werte für verschiedene Einstellungen 412 umfaßt.
  • Die Anwendung 406 und 408 können eine oder mehrere Einstellungen 412 verwenden und konfigurieren. Beispielsweise kann es sich bei der Anwendung A 406 um eine Kommunikationsanwendung handeln und kann diese die Lautstärkeeinstellung ausschalten (z.B. Einstellung 1), sobald ein Modem eine Verbindung mit einer Faxmaschine oder einem Internetanbieter herstellt. Auf ähnliche Weise kann es sich bei der Anwendung B 408 um ein Videospiel handeln und kann dieses die Auflösung der Anzeige des Terminals 400 auf eine spezielle Weise konfigurieren. Da sowohl die Anwendung A 406 als auch die Anwendung B 408 mit dem Terminal 400 kommunizieren, werden von beiden Anwendungen die Einstellungen 412 verwendet. Des weiteren kann eine Einstellung unabhängig von entweder der Anwendung A 406 oder der Anwendung B 408 modifiziert werden. Beispielsweise kann ein Nutzer die Lautstärkesteuerung am Terminal 400 modifizieren. Folglich werden bei einer Änderung von Einstellungen (durch eine Anwendung oder auf andere Weise) die Server 402 und 404 und die jeweiligen Anwendungen 406 und 408 über die geänderte Einstellung informiert. Beispielsweise wird, wenn durch die Anwendung A 406 die Einstellung 2 (z.B. zum Wert') geändert wird, der Terminal 400 mit dem neuen Wert der Einstellung 2 aktualisiert.
  • Jedoch geht die Anwendung B 408 immer noch davon aus, daß es sich bei der Einstellung 2 um den alten Wert handelt, da sie von einer Änderung nicht in Kenntnis gesetzt wurde. Gemäß einer oder mehrerer Ausführungsformen der Erfindung gibt der Terminal 400 neue Einstellungen an Anwendungen/Programme zurück, die den Terminal 400 sehen. Folglich würde der Terminal 400 die Anwendung A 406 und die Anwendung B 408 über die Änderung zur Einstellung 2 in Kenntnis setzen. Somit werden die Anwendungen über die Änderung in Kenntnis gesetzt, wenn eine Anwendung eine Einstellung eines Terminals, wie beispielsweise die Lautstärkesteuerung/-Balance, Mausgeschwindigkeit/-beschleunigung, Auflösung der Anzeige, oder Energiespareigenschaften ändert.
  • Eigenschaften für das Steuerungsprotokoll der verteilten Einstellungen
  • Eine oder mehrere Ausführungsformen der Erfindung umfassen ein Protokoll, das aus mehreren eingehaltenen Eigenschaften besteht. Das Festhalten an den Protokolleigenschaften ermöglicht, daß Anwendungen Einstellungen konfigurieren können und stellt sicher, daß An wendungen einheitliche und konsistente Einstellungen aufweisen. Bei einer oder mehreren Ausführungsformen wird an einer oder mehreren der folgenden Eigenschaften festgehalten (die in weiteren Einzelheiten im Nachfolgenden beschrieben sind): (1) Kenntnis der Betrachter; (2) Idempotenz und Konsistenz; (3) Verriegelungsnormerfüllung; (4) Mobilität; (5) Modellunabhängigkeit; (6) Richtlinienfreiheit; (7) Bericht von Hardwareereignissen; und (8) Nur-Lesen.
  • (1) Kenntnis der Betrachter
  • Eine Eigenschaft ist, daß der Terminal 400 in Kenntnis der Anwendung(en) bleibt, die momentan den Terminal sehen. Beispielsweise bleibt in 4 der Terminal 400 in Kenntnis darüber, daß sowohl die Anwendung A 406 als auch die Anwendung B 408 momentan den Terminal 400 sehen. Um diese Eigenschaft einzurichten, kann es bei einer oder mehreren Ausführungsformen der Erfindung erforderlich sein, daß jedes Programm, das eine Einstellung ändert, in der Systemregistratur oder Terminalregistratur, die registrierte Programme verfolgt, registriert ist. Folglich umfaßt jedes Programm eine virtuelle Verbindung mit jedem Terminal, mit dem es kommuniziert, basierend auf jedem Terminal, bei dem es registriert ist. In einer Multicasting-Umgebung (z.B. einer Umgebung, in der eine Nachricht an mehrere Empfänger zur selben Zeit übertragen werden kann) kann jede Anwendung bei einer Multicast-Gruppe registriert sein, wobei die registrierten Programme nicht verfolgt werden und jede Änderung einer Einstellung an die Mitglieder der Multicast-Gruppe gesandt wird und jede daran interessierte Anwendung/Programm in der Gruppe die Einstellungen sehen kann.
  • (2) Idempotenz und Konsistenz
  • Eine Eigenschaft ist die der Idempotenz (die auch als Transaktionsfähigkeit bezeichnet wird) und Konsistenz. Diese Eigenschaft gewährleistet, daß Programme/Server über Einstellungen in Kenntnis gehalten werden. Folglich sind die Programme und Server bezüglich der Einstellungen konsistent. Um sicherzustellen, daß die Einstellungen und Ansichten der Einstellungen zwischen den Anwendungen konsistent sind, werden die Einstellungen zu jedem Zeitpunkt, zu dem eine Änderung erledigt wurde, an die Anwendungen gesandt, die den Terminal sehen. Folglich können alle Einstellungen immer dann noch zu den Anwendungen übertragen werden, wenn lediglich eine einzige Einstellung modifiziert wird. Die Idempotenz betrifft die Eigenschaft, daß ein Programm sofort bestätigen kann, daß sich das System (z.B. jeder Ter minal, der gesehen wird) in einem bestimmten Zustand befindet (z.B. 11-Einstellungen an den Terminals). Um die Idempotenz und Konsistenz aufrechtzuerhalten, wenn Einstellungen geändert werden, werden Informationen zu den Servern und Programmen übertragen.
  • Mit Bezugnahme auf 4 behalten der Server 402, der Server 404, die Anwendung A 406 und die Anwendung B 408 Kenntnis über die momentanen Einstellungen 412. Falls die Einstellung 2 am Terminal 400 durch die Anwendung A 406 geändert würde, würden der Server 402, der Server 404 und die Anwendung B 408 über die geänderte Einstellung informiert. Auf diese Weise verfügen der Server 402, der Server 404, die Anwendung A 406 und die Anwendung B 408 auf einmal über dieselbe konsistente Information.
  • (3) Verriegelungsnormerfüllung
  • Eine Eigenschaft ist, daß die Terminals an derselben Verriegelungsrichtlinie bezüglich der Einstellungen festhalten. Gemäß dieser Eigenschaft erfordern eine oder mehrere Ausführungsformen der Erfindung, daß jede Anwendung an einem bestimmten Verriegelungsalgorithmus festhält. Ein Verriegelungsalgorithmus schützt die Einstellungen, so daß eine Modifizierung einer Einstellung korrekt erledigt werden kann und alle in Beziehung dazu stehenden Einstellungen gleichzeitig modifiziert werden (bzw. vor allen anderen Modifizierungen). Um Fehler auf einem Terminal und bei Anwendungen, bei welchen spezielle Einstellungen verwendet werden, zu verhindern, werden in Beziehung zueinander stehende Einstellungen gleichzeitig bzw. vor allen anderen Modifizierungen geändert. Falls in Beziehung zueinander stehende Einstellungen nicht gleichzeitig modifiziert werden (bzw. vor allen anderen Modifizierungen) könnte eine Einstellung modifiziert werden und die ursprüngliche Einstellung durch eine weitere Anwendung vor Abschluß der in Beziehung dazu stehenden Änderung geändert werden. Folglich wären die in Beziehung zueinander stehenden Einstellungen nicht richtig konfiguriert und könnten zu Anwendungs- oder Terminalfehlern führen.
  • Bei einer oder mehreren Ausführungsformen der Erfindung verwendet der Verriegelungsalgorithmus eine Prozedur/ein Protokoll, die/das als Test-und-Einstellung bezeichnet wird. Bei einer Test-und-Einstellung-Prozedur/Protokoll wird der momentane Wert getestet oder mit einem spezifizierten Wert verglichen und wird die Einstellung erledigt, falls dabei eine Übereinstimmung vorliegt (z.B. der neue Wert wird eingestellt). Um an einer Test-und-Einstellungsprozedur festzuhalten, liefert eine Anwendung den (die) momentanen Einstel lungswert(e) und den (die) neuen Einstellungswert(e), bevor ein Terminal eine Änderung implementiert. Beispielsweise werde angenommen, daß die Anwendung A 402 beabsichtigt, die Einstellung 3 zu „a" zu ändern. Um sicherzustellen, daß die Einstellung A 402 über den aktuellsten Einstellungswert für die Einstellung 3 unterrichtet ist, wenn die Modifizierungsanforderung durch die Anwendung A 402 ausgegeben wird, liefert die Anwendung A 402 den momentanen Einstellungswert und den neuen Einstellungswert zum Terminal 400. Somit wird der Terminal 400, wenn die momentane Einstellung für die Einstellung 3 „x" ist und die Anwendung A 402 eine Änderung anfordert, die besagt, daß die Einstellung 3 „y" ist, die Modifizierungsanforderung ablehnen. Wenn eine Anwendung einen nicht richtigen Einstellungswert liefert, bedeutet dies gegebenenfalls, daß die Anwendung nicht über die neueste Änderung informiert wurde. Auf ähnliche Weise führt der Terminal 400 die gewünschte Änderung aus, wenn die Anwendung A 402 vorsieht, daß der momentane Wert für die Einstellung 3 „x" ist.
  • Um den Gebrauch des Verriegelungsalgorithmus darzustellen, werde angenommen, daß die Anwendung A 402 eine Änderung der Einstellung 3 von „x" zu „a" wünscht und daß die Anwendung B 404 eine Änderung der Einstellung 3 von „x" zu „b" wünscht. Sowohl die Anwendung A 402 als auch die Anwendung B 404 geben Anforderungen zur Änderung der Einstellung 3 von „x" zum neuen Wert aus. Der Terminal 400 empfängt die Anfragen nicht gleichzeitig, sondern der Reihe nach. Im folgenden werde angenommen, daß der Terminal 400 die Modifizierungsanforderung von der Anwendung A 402 zuerst erhält. Der Terminal 400 vergleicht den momentanen Einstellungswert für die Einstellung 3 (z.B. „x") mit dem von der Anwendung A 402 genannten Wert („x"). Da die Werte übereinstimmen, erfüllt der Terminal 400 die Modifizierungsanforderung und ändert die Einstellung 3 von „x" zu „a". Als nächstes wird die Anforderung von der Anwendung B 404 vom Terminal 400 empfangen. Der Terminal 400 vergleicht den momentanen Wert (z.B. „a") mit dem genannten Wert („x") und stellt fest, daß sie nicht übereinstimmen. Da die Werte nicht übereinstimmen, weist der Terminal 400 die durch die Anwendung B 404 angeforderte Änderung zurück und die Anwendung B 404 wird in entsprechender Weise unterrichtet. Die Anwendung B 404 kann über die fehlgeschlagene Änderung durch den Terminal 400 unterrichtet werden, der den momentanen Wert (z.B. „a") zurückgibt. Nach Erhalt eines sich vom angeforderten Wert unterscheidenden Einstellungswertes ist der Anwendung B 404 bekannt, daß die Anforderung fehlgeschlagen ist.
  • In 5 ist der Verriegelungsalgorithmus gemäß einer oder mehrerer Ausführungsformen der Erfindung gezeigt. Im Schritt 500 gibt eine Anwendung eine Anforderung zur Modifizierung einer Einstellung aus. Im Schritt 502 empfängt ein Terminal die Modifizierungsanforderung. Im Schritt 504 vergleicht der Terminal den momentanen Wert der Einstellung mit dem von der Anwendung genannten Wert. Im Schritt 506 bestimmt der Terminal, ob die Werte übereinstimmen. Falls die Werte nicht übereinstimmen, schlägt die Modifizierung im Schritt 510 fehl. Falls die Werte übereinstimmen, wird die Modifizierung im Schritt 508 erledigt. Somit kennt eine Anwendung den momentanen Einstellungswert, um eine Änderung an der Einstellung auszuführen. Bei einer oder mehreren Ausführungsformen können die momentanen Einstellungen (unabhängig davon, ob sie modifiziert sind oder nicht) zu den Anwendungen im Schritt 512 übertragen werden. Gemäß diesem Algorithmus tritt eine Wettlaufsituation auf, bei der die erste Anwendung, die eine Änderung anforderte, erfolgreich ist. Auf diese Weise wird die Einstellungstabelle 410 gesperrt, während eine Einstellung geändert wird, so daß keine anderen Modifizierungen erledigt werden können, bevor die Modifizierungsanforderungen der ersten Anwendung erledigt sind. Des weiteren bietet der Algorithmus eine Lösung für den Fall, daß eine Anwendung eine Änderung an einer Einstellung anfordert, bevor die Anwendung eine Möglichkeit hatte, aktualisierte Einstellungsinformationen vom Terminal 400 zu empfangen.
  • 6 ist ein Ablaufdiagramm, das einen möglichen Mechanismus für eine Anwendung zum Aussenden einer Modifizierungsanforderung gemäß einer Ausführungsform der Erfindung darstellt. Im Schritt 600 sendet eine Anwendung eine Modifizierungsanforderung aus, um einen oder mehrere Einstellungswerte zu ändern, und im Schritt 601 wartet die Anwendung, in Reaktion darauf eine Nachricht bezüglich der momentanen Einstellungen zu erhalten. Im Schritt 602 (z.B. nach einer festgelegten Zeitdauer) kehrt die Anwendung für einen erneuten Versuch um Schritt 600 zurück, wenn die Anwendung die Nachricht bezüglich der momentanen Einstellungen nicht empfängt. Mögliche Gründe, warum die Nachricht bezüglich der momentanen Einstellungen nicht empfangen worden sein könnte, umfassen beispielsweise, daß die Modifizierungsanforderung nie erfolgreich empfangen wurde oder die Antwortnachricht bezüglich der momentanen Einstellungen verloren ging. Falls im Schritt 602 die Nachricht bezüglich der momentanen Einstellungen von der Anwendung empfangen wird, schreitet die Anwendung zum Schritt 603 fort, um die Nachricht bezüglich der momentanen Einstellungen auszuwerten.
  • Im Schritt 603 wird der Anforderungsprozeß erfolgreich beendet, wenn der Anforderungswert gleich dem zurückgegebenem momentanen Wert ist. Falls im Schritt 603 der Anforderungswert nicht gleich dem zurückgegebenem momentanen Einstellungswert ist, schreitet die Anwendung zum Schritt 604 fort. Im Schritt 604 wurde die Modifizierungsanforderung nicht empfangen, wenn der zurückgegebene Wert für die momentane Einstellung gleich dem vorherigen Einstellungswert ist, und die Anwendung kehrt dann für einen erneuten Versuch zum Schritt 600 zurück. Falls im Schritt 604 der zurückgegebene Wert für die momentane Einstellung nicht gleich dem vorherigen Einstellungswert ist, ist eine Wettlaufsituation aufgetreten (beispielsweise wurde die Modifizierungsanforderung einer anderen Anwendung vor der Modifizierungsanforderung dieser Anwendung empfangen) und die Anwendung aktualisiert ihren eigenen Einstellungswert im Schritt 605 vor einer Rückkehr zum Schritt 600 für einen erneuten Versuch. Die Anzahl der Wiederholungen, mit der eine Anwendung eine Modifizierungsanforderung erneut versucht, hängt von den Bedürfnissen der gegebenen Anwendung ab und kann bei verschiedenen Ausführungsformen unterschiedlich sein.
  • (4) Mobilität
  • Gemäß einer oder mehrerer Ausführungsformen der Erfindung kann sich ein Nutzer von einem Terminal trennen (z.B. durch Entnehmen einer Identifikationskarte/Smartcard aus einem Terminal oder durch einen Loggout) und sich mit einem anderen Terminal verwinden (z.B. durch Einführen einer Identifikationskarte/Smartcard oder durch Einloggen). Die Mobilitätseigenschaft des Protokolls gewährleistet, daß der Nutzer, wenn er einen Terminal wechselt, die Wahl hat, die Einstellungen in der zuvor konfigurierten Form zu verwenden, die am neuen Terminal wieder eingesetzt/verwendet werden. Somit sind die Einstellungen von einem Terminal zu einem anderen Terminal beweglich. Folglich gewährleistet der Mobilitätsaspekt, daß zusätzlich zu plötzlich auftretenden Modifizierungen (z.B. durch einen Nutzer, der an einem Terminal eine Einstellung modifiziert), der Terminal spontan geändert werden kann (z.B. durch einen Nutzer, der sich von einem Terminal trennt und mit einem neuen Terminal verbindet). Des weiteren kann einem Nutzer an einem neuen Terminal die Option geboten werden, die Einstellungen so zu verwenden, wie sie von dem Nutzer, der zuvor den Terminal verwendet hat, konfiguriert wurden. Bei einer oder mehreren Ausführungsformen können die Einstellungen im Direktzugriffsspeicher (RAM) eines Terminals gespeichert werden.
  • (5) Modellunabhängigkeit
  • Eine oder mehrere Ausführungsformen der Erfindung erfordern, daß es jeder Terminal zuläßt, daß die Einstellungen unabhängig von anderen Terminals eingestellt werden können. Beispielsweise ist es möglich, daß ein Terminal nicht über einen Kopfhörerausgangsanschluß verfügt oder einen anderen Monitor ob ein anderer Terminal aufweist. Folglich ist es möglich, daß bestimmte Einstellungen an einem dieser Terminals nicht möglich sind. Eine Modellunabhängigkeit ermöglicht, daß jeder Terminal abhängig von den speziellen Eigenschaften des Terminals eingestellt werden kann.
  • Eine oder mehrere Ausführungsformen der Erfindung ermöglichen eine Modellunabhängigkeit durch Bereitstellen einer Zeichenkette bei Kommunikationen, die das Modell der Einheit/des Terminals identifiziert. Beispielsweise kann jede übertragene Nachricht mit einer Information bezüglich der Version des Terminals markiert sein und ermöglicht, daß der Terminal die Einstellungen dynamisch in eine Einstellungssammlung oder ein Einstellungsmodul unter Verwendung jeder beliebigen Programmiersprache wie beispielsweise der JavaTM Programmiersprache, lädt. Der Terminal kann dann die geladenen Einstellungen prüfen und bestimmen, ob sie für den speziellen Terminal geeignet sind (z.B. kein Kopfhörerausgang oder ein anderer Monitor) (z.B. durch Vergleichen der geladenen Einstellungen mit für diesen Terminal zulässigen Einstellungen). Falls bestimmte Einstellungen für das spezielle Terminalmodell nicht zulässig sind, können die Einstellungen ignoriert oder in geeigneter Weise angepaßt werden. Folglich werden die Einstellungen zwischen unterschiedlichen Versionen eines Terminals gesteuert.
  • (6) Richtlinienfreiheit
  • Eine Eigenschaft ist, daß es die Komponenten des Systems einem Nutzer, einem Agenten, einem Dritten, einem Hersteller oder einer anderen Einheit erlauben, jede gewünschte mit den Einstellungen in Beziehung stehende Richtlinie (Policy) einzustellen. Mit anderen Worten können Einstellungsrichtlinien frei eingestellt werden. Bei einer Richtlinie kann es sich um ein Computerprogramm oder um eine Liste von Regeln und Instruktionen bezüglich einer Konfiguration von Einstellungen basierend auf einem Nutzer, einem Terminal, Netz oder einem anderen Standard handeln. Beispielsweise kann eine Richtlinie für bestimmte Nutzereinstellungen sorgen, die nutzerspezifisch sind. Alternativ kann eine Richtlinie für bestimmte Einstellungen sorgen, die auf einer netzweiten Ebene oder auf der Ebene eines Terminals verwendet werden.
  • Beispielsweise kann das Protokoll zulassen, daß in einem Fall, in dem ein Nutzer eine reduzierte Sehstärke aufweist, der Nutzer eine Richtlinie einstellen kann, so daß die Auflösung der Anzeige dem Nutzer von einem Terminal zu einem anderen folgt und individuelle Einstellungen eines Terminals, die zuvor durch frühere Nutzer konfiguriert wurden, ignoriert werden.
  • Alternativ kann ein Nutzer oder eine Anwendung eine Richtlinie einstellen, die allen entspricht. Beispielsweise kann von einer Firma eine Richtlinie gewünscht und eingestellt werden, daß eine Energiesparroutine (z.B. eine Routine, bei der zum Sparen von Energie ein Bildschirm nach einer bestimmten Zeitdauer ausgeblendet wird) von Nutzern in einer bestimmten festgelegten Zeitperiode verwendet wird.
  • Eine andere Art einer Richtlinie ermöglicht es einem Nutzer, Einstellungen zu konfigurieren, die möglicherweise nicht direkt durch Software sondern durch Hardware gesteuert werden. Beispielsweise empfängt ein Nutzer einen Audioausgang von den Lautsprechern des Terminals, wenn keine Kopfhörer an den Computer angeschlossen sind. Jedoch kann eine Richtlinie eingestellt werden, so daß ein Audio-Eingang/Ausgang konfiguriert wird, wenn Kopfhörer an einem Terminal angeschlossen sind. Beispielsweise kann gemäß einer Richtlinie vorgesehen sein, daß wenn Kopfhörer an einem Terminal angeschlossen sind, der Audio-Ausgang lediglich zu den Kopfhörern gerichtet wird. Alternativ kann gemäß einer Richtlinie vorgesehen sein, daß der Lautsprecher ohne Ausgang zu den Kopfhörern verwendet wird, oder daß im Fall, daß Kopfhörer angeschlossen sind, der Audio-Ausgang sowohl zu den Kopfhörern als auch zu den Lautsprechern des Terminals erfolgen sollte.
  • Es ist auch möglich, daß eine Richtlinie eine Hardwareeinstellung lesen und beliebige Softwaresteuerungen in der erforderlichen Form einstellen kann. Falls beispielsweise ein Audioausgang gesteuert wird, kann ein Hardwareschalter so verwendet werden, daß, wenn der Schalter auf 00 konfiguriert ist, der Audioausgang automatisch erfolgt (z.B. wenn Kopfhörer angeschlossen sind, wechselt der Audioausgang zu den Kopfhörern und wenn sie nicht angeschlossen sind, wechselt der Audioausgang zu den Lautsprechern des Terminals), wenn der Schalter auf 01 konfiguriert ist, lediglich die Lautsprecher verwendet werden, wenn der Schalter auf 10 konfiguriert ist, lediglich Kopfhörer verwendet werden können, um einen Au dioausgang zu empfangen, und wenn der Schalter auf 11 eingestellt ist, sowohl der Kopfhörer als auch die Lautsprecher einen Audioausgang empfangen. Gemäß einer oder mehrerer Ausführungsformen der Erfindung wird vorgesehen, daß eine Richtlinie die Konfiguration des Hardwareschalters lesen und interne Steuerungen in der notwendigen Weise einstellen kann, um den gewünschten Audioausgang einzurichten. Des weiteren kann eine Richtlinie dazu verwendet werden, den Schalter abhängig von der Situation einzustellen. Beispielsweise kann eine Richtlinie so eingestellt sein, daß bei der Steuerung eines Telefons in dem Fall, daß Kopfhörer angeschlossen sind, ein Klingelton nur zu den Lautsprechern des Terminals (z.B. Einstellung 01) übertragen wird und daß, sobald das Telefon abgehoben wird, der Audioausgang auf automatisch eingestellt wird (z.B. Einstellung 00) oder nur für die Kopfhörer eingestellt wird (z.B. Einstellung 10).
  • (7) Bericht von Hardwareereignissen
  • Gemäß einer oder mehrerer Ausführungsformen der Erfindung ist ein Terminal erforderlich, um Anwendungen über Hardwareereignisse zu informieren, die eine Einstellung beeinflussen können. Beispielsweise wenn ein Kopfhörer von einem Terminal ausgesteckt ist, kann die mit dem Audioausgang verbundene Einstellung betroffen sein. Sollte ein derartiges Ereignis eintreten, werden die Anwendungen über die Änderung in Kenntnis gesetzt, so daß eine Einstellung in geeigneter Weise eingestellt werden kann.
  • (8) Nur-Lesen
  • Gemäß einer oder mehrerer Ausführungsformen der Erfindung können eine oder mehrere Einstellungen so konfiguriert werden, daß sie von einer Anwendung oder einem Programm nur gelesen und nicht modifiziert werden können. Auf diese Weise kann ein Unternehmen oder eine Einheit eine Einstellung auf einer netzweiten Ebene konfigurieren, wie beispielsweise eine bestimmte Zeitperiode zur Ausführung einer Energiespareinrichtung auf einem Terminal festlegen.
  • Implementierung des Steuerungsprotokolls für verteilte Einstellungen
  • Das Steuerungsprotokoll für verteilte Einstellungen bietet die Fähigkeit zur Steuerung von Programmen und Einstellungen über ein Netz, wie oben beschrieben wurde. Eine oder mehre re Ausführungsformen ermöglichen, daß ein Terminal, eine Einheit, ein Periphergerät oder ein Computerprogramm (das als „gesteuertes Programm" bezeichnet wird) aus der Ferne über ein Netz unter Verwendung eines „steuernden Programms" (z.B. eine auf einem Server ausgeführte Anwendung) gesteuert werden können. Das Protokoll kann in zwei Teile unterteilt sein: ein Steuerungsprotokoll, das für die Übertragung von einem steuernden Programm zum gesteuerten Programmn sorgt und ein Protokoll, das für die Übertragung vom gesteuerten Programm zum steuernden Programm sorgt.
  • Steuerungsprotokoll
  • Gemäß einer oder mehrerer Ausführungsformen der Erfindung überträgt das Steuerungsprotokoll eine Liste von Tupeln, die eine Zahl oder einen Schlüssel enthalten, die bzw. der die auf einem alten Wert basierende Einstellung identifiziert, der mit dem momentanen im gesteuerten Programm enthaltenen Wert übereinstimmen sollte (wie oben beschrieben wurde), und einen neuen Wert, der eingestellt wird, wenn der alte Wert übereinstimmt (wie oben beschrieben wurde). Beispielsweise kann das Steuerungsprogramm übertragen:
    Device Control 0xD8 [< INDEX: 16><PAD:16><OLD:16<>NEW:16>]
  • Gemäß einer oder mehrerer Ausführungsformen der Erfindung kann mit einer derartigen Übertragung ein spezieller Wert am Terminal eingestellt werden. Die oben angegebene Übertragung identifiziert den speziellen Terminal, identifiziert die Einstellung am Terminal (d.h. den INDEX in der Einstellungstabelle) und bestimmt den alten und den neuen Wert. Ein zusätzlicher Wert, der bestimmt, ob gleichzeitig andere Einstellungen modifiziert werden sollten oder nicht, kann am Ende der Übertragung angefügt sein. Auf einen derartigen Wert, würden zusätzliche Indices, alte Werte und neue Werte folgen, wenn er größer als 0 ist. Beispielsweise kann ein Wert von 2 festlegen, daß zwei zusätzliche Einstellungen gleichzeitig mit der ersten Einstellung vorgenommen werden sollten und es würden darauf zwei zusätzliche Gruppen von Indices, alten Werten und neuen Werten folgen.
  • Bei Verwendung der Test- und Einstellung-Operation (die oben beschrieben wurde) erfordert der Terminal, daß die alten Werte korrigiert werden, bevor der (die) neuen Wert(e) eingestellt werden. Falls sich mehrere Einstellungen im Befehl befinden, sollten die alten Werte korri giert werden, bevor irgendwelche Einstellungen vorgenommen werden. Falls die alten Werte nicht korrekt sind, schlägt der Befehl fehl.
  • Bei einer oder mehreren Ausführungsformen der Erfindung erzeugt ein „device control"-Befehl eine „device status"-Nachricht zurück zum Anforderer (z.B. einem Server). Falls eine angeforderte Modifizierung fehlschlägt, können zwei Fälle resultieren: wenn der zurückgegebene Wert derselbe Wert ist, wie der alte Wert, kann die Einstellung nur gelesen werden oder ist verloren; wenn sich der zurückgegebene Wert von dem alten Wert unterscheidet, wurde ein Einstellungswettlauf (z.B. ein Wettlauf zwischen verschiedenen Steuerungsprogrammen, um eine Einstellung zu modifizieren) verloren und die angeforderte Modifizierung sollte erneut versucht werden. Falls eine angeforderte Modifizierung erfolgreich ist, kam der angeforderte neue Wert in der „device status"-Nachricht zurückgegeben werden.
  • Bei einer oder mehreren Ausführungsformen der Erfindung werden, wenn der Server einen speziellen Index (z.B. 0xffff) sendet, die Modellinformation betreffende Informationen zum Terminal ohne irgendwelche Änderungen der Einstellung übertragen.
  • Protokoll vom Terminal zum Server
  • Gemäß einer oder mehrerer Ausführungsformen der Erfindung stellt das Protokoll sicher, daß der Terminal (bzw. das gesteuerte Programm) Informationen zum Server (bzw. zum gesteuerten Programm) überträgt. Dieses Protokoll besteht aus einer Liste von Einstellungen in der Reihenfolge der Schlüssel oder Nummern und ihrer Werte. Zusätzlich kann ein String gesendet werden, der das gesteuerte Programm identifiziert, um aus der Bedeutung der Indices zu bestimmen, welchem Vertrag/welcher Richtlinie das steuernde Programm folgen sollte. Die Übertragung kann auch eine Liste von Flags umfassen, die angeben, welche Einstellungen im Bezug zu diesem Protokoll nur-gelesen werden (z.B. durch einen anderen Mechanismus kann bestimmt sein, daß die Einstellung entweder temporär oder permanent nur-gelesen wird). Beispielsweise kann die folgende Nachricht übertragen werden:
  • Figure 00240001
  • Eine derartige Nachricht kann in Reaktion auf eine „device control"-Nachricht (die oben beschrieben wurde) zurückgegeben werden und wird zu den verschiedenen Diensten gesendet (z.B. Anwendungen und Servern), die device-control-Nachrichten zu diesen Anwendungen gesendet haben und Server können ihre Einstellungsinformation aktualisieren. Um ein einfaches Überspringen der gesamten Nachricht zu ermöglichen, beginnt der oben angegebene Befehl mit einer Bytelänge der gesamten Nachricht, einschließlich des Länge-Feldes (d.h. SIZE:16).
  • Der erste Teil der obigen Nachricht ist der Modellname des Terminals. Der Modellname kann in Form eines Class-Paketnamens definiert sein (wie beispielsweise ein Java Class Paketname), der den Verkäufer, den Modellnamen beschreibt und in der Versionsinformation für das Class-Paket endet. Die folgende Nachricht veranschaulicht einen beispielhaften Modellnamen eines Terminals:
    com.sun.HID-P0:alpha3:atr
    oder com.sun.HID.P1:alpha3:atr
  • Der zweite Teil der oben angegebenen Nachricht ist die Model-Opaque-State-Information. Es besteht ein Maximum von 255 möglichen Einstellungen. Auf die Zahl der Einstellungen kann eine Bitmap der Lese-nur-Flags für jede Einstellung folgen. Wenn sich beispielsweise eine „1" im Bit ganz links des ersten Bytes befindet, kann der erste Parameter als Lese-nur bestimmt werden. Ein Feld gleich den Byte-Zählwert zu einem geradzahligen 16-Bit-Wort aus (z.B. <PAD:8>).
  • Der letzte Teil der Nachricht ist eine Liste von 16 Bitworten, die die Werte jeder indizierten Einstellung aufweisen. Der gesamte Befehl ist auf ein Langwort ausgerichtet.
  • Vom Terminal im „Model Info"-Befehl gesandte Werte werden vom Terminal nur akzeptiert, wenn sie später durch einen Server in einer „Device Control"-Nachricht zurückgegeben werden. Folglich kann ein nicht erkennbarer Server Einstellungen speichern und neu speichern. Durch Verwenden der obigen Protokolle sind die Einstellungen über mehrere Server konsistent und können modifiziert werden, während gleichzeitig sichergestellt ist, daß die Änderungen präzise und sicher sind.
  • Somit wurde ein Steuerprotokoll für verteilte Einstellungen in Verbindung mit einer oder mehreren speziellen Ausführungsformen beschrieben. Die Erfindung ist durch die Ansprüche und den vollen Umfang ihrer Äquivalente definiert.

Claims (37)

  1. Verfahren zur Konfiguration einer Einstellung über ein Netz, umfassend: Erhalten einer Einstellung (412) eines ersten Terminals (400) vom ersten Terminal (400); Bestimmen, ob die Einstellung (412) auf einem zweiten Terminal zu verwenden ist; falls bestimmt wurde, die Einstellung (412) zu verwenden, Verwenden der Einstellung auf dem zweiten Terminal; und gekennzeichnet durch Informieren der Server (402, 404) oder Anwendungsprogramme (406A, 408A), die mit dem zweiten Terminal kommunizieren, wenn die Einstellung auf dem zweiten Terminal verwendet wird.
  2. Verfahren nach Anspruch 1, wobei der Bestimmungsschritt auf einer Richtlinie basiert.
  3. Verfahren nach Anspruch 2, wobei die Richtlinie auf einer Nutzerpräferenz basiert.
  4. Verfahren nach Anspruch 2, wobei die Richtlinie auf einem Terminal (400) basiert.
  5. Verfahren nach Anspruch 2, wobei die Richtlinie auf einem Terminalstandort basiert.
  6. Verfahren nach Anspruch 2, wobei die Richtlinie auf einem Netz basiert.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Einstellung für die Auflösung einer Anzeige bestimmt ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Einstellung für einen Audioausgang bestimmt ist.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Einstellung für eine Mausbeschleunigung bestimmt ist.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Einstellung in einer Einstellungstabelle (410) eines Terminals gespeichert ist.
  11. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Einstellung (412) durch einen Server (402, 404) erhalten wird.
  12. Verfahren nach einem der vorhergehenden Ansprüche, das des weiteren ein Konfigurieren der Einstellung (412) durch Vergleichen eines momentanen Einstellungswertes mit einem angegebenen Einstellungswert umfaßt.
  13. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine oder mehrere Anwendungen eine Kenntnis der Einstellung (412) aufrechterhalten.
  14. System, umfassend: ein erstes Terminal (400); eine Einstellung (412) für das erste Terminal (400); einen Server (402, 404), der dazu konfiguriert ist, zu bestimmen, ob die Einstellung (412) auf einem zweiten Terminal zu verwenden ist; ein zweites Terminal, das dazu konfiguriert ist, die Einstellung (412) zu verwenden, falls der Server bestimmt, die Einstellung (412) zu verwenden; und Anwendungsprogramme (406, 408), die mit dem zweiten Terminal kommunizieren, dadurch gekennzeichnet, daß die Anwendungsprogramme (406, 408) dazu konfiguriert sind, einen Hinweis zu empfangen, daß der Server (402, 404) bestimmt hat, die Einstellung (412) zu verwenden.
  15. System nach Anspruch 14, wobei der Server basierend (412) auf einer Richtlinie bestimmt, ob die Einstellung zu verwenden ist.
  16. System nach Anspruch 15, wobei die Richtlinie auf einer Nutzerpräferenz basiert.
  17. System nach Anspruch 15, wobei die Richtlinie auf einem Terminal basiert.
  18. System nach Anspruch 15, wobei die Richtlinie auf einem Terminalstandort basiert.
  19. System nach Anspruch 15, wobei die Richtlinie auf einem Netz basiert.
  20. System nach einem der Ansprüche 14 bis 19, wobei die Einstellung (412) für die Auflösung einer Anzeige bestimmt ist.
  21. System nach einem der Ansprüche 14 bis 20, wobei die Einstellung (412) für einen Audioausgang bestimmt ist.
  22. System nach einem der Ansprüche 14 bis 21, wobei die Einstellung (412) für ein Energiesparprogramm bestimmt ist.
  23. System nach einem der Ansprüche 14 bis 22, wobei die Einstellung (412) in einer Einstellungstabelle (410) des ersten Terminals (400) gespeichert ist.
  24. System nach einem der Ansprüche 14 bis 23, wobei die Einstellung (412) durch Vergleichen einer momentanen Einstellung mit einer angegebenen Einstellung konfiguriert ist.
  25. System nach einem der Ansprüche 14 bis 24, das des weiteren eine oder mehrere Anwendungen (406, 408) umfaßt, die eine Kenntnis der Einstellung (412) aufrechterhalten.
  26. Computerlesbares Speichermedium, auf dem eine Gruppe von maschinenausführbaren Befehlen zum Konfigurieren einer Einstellung (412) überein Netz gespeichert sind, die, wenn sie auf einem Computer laufen, die Schritte ausführen: Erhalten einer Einstellung (412) für ein erstes Terminal (400) von dem ersten Terminal (400); Bestimmen, ob die Einstellung (412) auf einem zweiten Terminal zu verwenden ist; Verwenden der Einstellung (412) auf dem zweiten Terminal, falls der computerlesbare Programmcode bestimmt, daß die Einstellung (412) zu verwenden ist; und gekennzeichnet durch Informieren der Server (402, 404) oder Anwendungsprogramme (406, 408), die mit dem zweiten Terminal kommunizieren, wenn die Einstellung (412) auf dem zweiten Terminal verwendet wird.
  27. Computerlesbares Speichermedium nach Anspruch 26, wobei die Gruppe von maschinenausführbaren Befehlen des weiteren bewirkt, basierend auf einer Richtlinie zu bestimmen, ob die Einstellung (412) auf einem zweiten Terminal zu verwenden ist.
  28. Computerlesbares Speichermedium nach Anspruch 27, wobei die Richtlinie auf einem Nutzer basiert.
  29. Computerlesbares Speichermedium nach Anspruch 27, wobei die Richtlinie auf einem Terminal (400) basiert.
  30. Computerlesbares Speichermedium nach Anspruch 27, wobei die Richtlinie auf einem Terminalstandort basiert.
  31. Computerlesbares Speichermedium nach Anspruch 27, wobei die Richtlinie auf einem Netz basiert.
  32. Computerlesbares Speichermedium nach einem der Ansprüche 26 bis 31, wobei die Einstellung für die Auflösung einer Anzeige bestimmt ist.
  33. Computerlesbares Speichermedium nach einem der Ansprüche 26 bis 32, wobei die Einstellung (412) für einen Audioausgang bestimmt ist.
  34. Computerlesbares Speichermedium nach einem der Ansprüche 26 bis 33, wobei die Einstellung für eine Mausbeschleunigung bestimmt ist.
  35. Computerlesbares Speichermedium nach einem der Ansprüche 26 bis 34, das des weiteren umfaßt: eine Gruppe von maschinenausführbaren Befehlen, die dazu konfiguriert sind, einen Computer dazu zu veranlassen, die Einstellung (412) in einer Einstellungstabelle (410) eines Terminals (400) zu speichern.
  36. Computerlesbares Speichermedium nach einem der Ansprüche 26 bis 35, das des weiteren umfaßt: eine Gruppe von maschinenausführbaren Befehlen, die dazu konfiguriert sind, einen Computer dazu zu veranlassen, die Einstellung (412) durch Vergleichen einer momentanen Einstellung mit einer angegebenen Einstellung zu konfigurieren.
  37. Computerlesbares Speichermedium nach einem der Ansprüche 26 bis 36, das des weiteren umfaßt: eine Gruppe von maschinenausführbaren Befehlen, die dazu konfiguriert sind, eine oder mehrere Anwendungen dazu zu veranlassen, eine Kenntnis der Einstellung (412) aufrechtzuerhalten.
DE60024706T 1999-04-09 2000-04-07 Verteiltes Parameterkontrollprotokoll Expired - Fee Related DE60024706T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US289794 1999-04-09
US09/289,794 US6538668B1 (en) 1999-04-09 1999-04-09 Distributed settings control protocol

Publications (2)

Publication Number Publication Date
DE60024706D1 DE60024706D1 (de) 2006-01-19
DE60024706T2 true DE60024706T2 (de) 2006-09-14

Family

ID=23113133

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60024706T Expired - Fee Related DE60024706T2 (de) 1999-04-09 2000-04-07 Verteiltes Parameterkontrollprotokoll

Country Status (4)

Country Link
US (1) US6538668B1 (de)
EP (1) EP1043865B1 (de)
AT (1) ATE313112T1 (de)
DE (1) DE60024706T2 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466932B1 (en) * 1998-08-14 2002-10-15 Microsoft Corporation System and method for implementing group policy
US6684260B1 (en) * 1999-05-04 2004-01-27 Hewlett-Packard Development Company, L.P. Maintaining consistency of device driver settings
CA2281370C (en) * 1999-09-01 2002-11-26 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for maintaining consistency among large numbers of similarly configured information handling servers
CA2281367C (en) * 1999-09-01 2002-12-17 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for simplified administration of large numbers of similar information handling servers
US6751658B1 (en) 1999-10-18 2004-06-15 Apple Computer, Inc. Providing a reliable operating system for clients of a net-booted environment
JP4005293B2 (ja) * 2000-02-29 2007-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ、その制御方法、記録媒体及び伝送媒体
US6832273B2 (en) 2000-12-21 2004-12-14 Microsoft Corporation System and method to specify extended configuration descriptor information in USB devices
US7127678B2 (en) * 2000-12-21 2006-10-24 Microsoft Corporation System and method to specify device specific user interface information in the firmware of a USB device
US20020152255A1 (en) * 2001-02-08 2002-10-17 International Business Machines Corporation Accessibility on demand
US7089499B2 (en) * 2001-02-28 2006-08-08 International Business Machines Corporation Personalizing user interfaces across operating systems
US7401084B1 (en) * 2001-06-14 2008-07-15 Oracle International Corporation Two-phase commit with queryable caches
US20030172141A1 (en) * 2002-03-06 2003-09-11 Adtran, Inc. Element management system and method utilizing provision templates
US20030222903A1 (en) * 2002-05-31 2003-12-04 Wolfgang Herzog Distributing customized computer settings to affected systems
US8479101B2 (en) * 2003-11-13 2013-07-02 Koninklijke Philips Electronics N.V. Consistent user interface front end for remote user interfaces
US20050108305A1 (en) * 2003-11-17 2005-05-19 Applera Corporation Management of storage space for an embedded database in a software system
US7735063B2 (en) 2004-07-07 2010-06-08 Sap Aktiengesellschaft Providing customizable configuration data in computer systems
US7774369B2 (en) * 2004-07-07 2010-08-10 Sap Aktiengesellschaft Configuring computer systems with business configuration information
US7583645B2 (en) * 2004-09-01 2009-09-01 Intel Corporation Adaptive MAC architecture for wireless networks
US8732234B2 (en) * 2005-06-07 2014-05-20 Yahoo! Inc. Providing relevant non-requested content to a mobile device
US9118770B2 (en) * 2005-08-31 2015-08-25 Plantronics, Inc. Remote headset configuration
US20070171280A1 (en) * 2005-10-24 2007-07-26 Qualcomm Incorporated Inverse telecine algorithm based on state machine
US9098577B1 (en) 2006-03-31 2015-08-04 Qurio Holdings, Inc. System and method for creating collaborative content tracks for media content
US7925723B1 (en) 2006-03-31 2011-04-12 Qurio Holdings, Inc. Collaborative configuration of a media environment
US20080028400A1 (en) * 2006-07-27 2008-01-31 Microsoft Corporation Virtualization comprising integration of host and guest user interfaces
US7912800B2 (en) * 2006-08-29 2011-03-22 Sap Ag Deduction engine to determine what configuration management scoping questions to ask a user based on responses to one or more previous questions
US20080082517A1 (en) * 2006-08-29 2008-04-03 Sap Ag Change assistant
US20080059630A1 (en) * 2006-08-29 2008-03-06 Juergen Sattler Assistant
US20080071555A1 (en) * 2006-08-29 2008-03-20 Juergen Sattler Application solution proposal engine
US8065661B2 (en) * 2006-08-29 2011-11-22 Sap Ag Test engine
US7908589B2 (en) * 2006-08-29 2011-03-15 Sap Ag Deployment
US7831568B2 (en) 2006-08-29 2010-11-09 Sap Ag Data migration
US8131644B2 (en) * 2006-08-29 2012-03-06 Sap Ag Formular update
US7823124B2 (en) * 2006-08-29 2010-10-26 Sap Ag Transformation layer
US7831637B2 (en) * 2006-08-29 2010-11-09 Sap Ag System on the fly
US7827528B2 (en) 2006-08-29 2010-11-02 Sap Ag Delta layering
US8104080B2 (en) * 2007-01-26 2012-01-24 Microsoft Corporation Universal schema for representing management policy
US20080184277A1 (en) * 2007-01-26 2008-07-31 Microsoft Corporation Systems management policy validation, distribution and enactment
US20080184200A1 (en) * 2007-01-26 2008-07-31 Microsoft Corporation Software configuration policies' validation, distribution, and enactment
US8365096B2 (en) * 2007-12-31 2013-01-29 Motorola Mobility Llc Method and apparatus for transparently mapping personalized alert preferences onto thin client devices with differing capabilities
US20090222921A1 (en) * 2008-02-29 2009-09-03 Utah State University Technique and Architecture for Cognitive Coordination of Resources in a Distributed Network
US8135659B2 (en) * 2008-10-01 2012-03-13 Sap Ag System configuration comparison to identify process variation
US8396893B2 (en) 2008-12-11 2013-03-12 Sap Ag Unified configuration of multiple applications
US8255429B2 (en) * 2008-12-17 2012-08-28 Sap Ag Configuration change without disruption of incomplete processes
EP2228944A1 (de) * 2009-03-09 2010-09-15 Alcatel Lucent Verfahren und System zur Fernkonfiguration einer Vorrichtung
US8429395B2 (en) 2009-06-12 2013-04-23 Microsoft Corporation Controlling access to software component state
US8572290B1 (en) 2011-05-02 2013-10-29 Board Of Supervisors Of Louisiana State University And Agricultural And Mechanical College System and architecture for robust management of resources in a wide-area network
RU2682926C2 (ru) * 2014-11-13 2019-03-22 Кэнон Кабусики Кайся Устройство обработки информации, способ управления и программа

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047288A (en) * 1995-07-20 2000-04-04 Canon Kabushiki Kaisha Group environment setting method and system thereof to provide an equivalent environment for plural participants
US6131116A (en) * 1996-12-13 2000-10-10 Visto Corporation System and method for globally accessing computer services
US6374237B1 (en) * 1996-12-24 2002-04-16 Intel Corporation Data set selection based upon user profile
US5875327A (en) * 1997-02-18 1999-02-23 International Business Machines Corporation Hierarchy of preferences and preference groups
US6085244A (en) * 1997-03-17 2000-07-04 Sun Microsystems, Inc. Dynamic test update in a remote computer monitoring system
US6044465A (en) * 1997-07-07 2000-03-28 International Business Machines Corporation User profile storage on and retrieval from a non-native server domain for use in a client running a native operating system
US6247128B1 (en) * 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6304895B1 (en) * 1997-08-22 2001-10-16 Apex Inc. Method and system for intelligently controlling a remotely located computer
US6065041A (en) * 1997-09-18 2000-05-16 Electronics For Imaging, Inc. Interface code architecture
US6237092B1 (en) * 1998-05-05 2001-05-22 International Business Machines Corp. Client-server system with central application management allowing an administrator to configure user and group contexts during application configuration without relaunching the application
US6161176A (en) * 1998-11-20 2000-12-12 Microsoft Corporation System and method for storing configuration settings for transfer from a first system to a second system
US6182212B1 (en) * 1998-12-14 2001-01-30 International Business Machine Corporation Method and system for automated migration of user settings to a replacement computer system
US6237022B1 (en) * 1999-03-15 2001-05-22 Webtv Networks, Inc. System and method for distributing preferenced data over a communications network

Also Published As

Publication number Publication date
DE60024706D1 (de) 2006-01-19
EP1043865B1 (de) 2005-12-14
EP1043865A3 (de) 2003-11-19
US6538668B1 (en) 2003-03-25
ATE313112T1 (de) 2005-12-15
EP1043865A2 (de) 2000-10-11

Similar Documents

Publication Publication Date Title
DE60024706T2 (de) Verteiltes Parameterkontrollprotokoll
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69834640T2 (de) System und Verfahren zur Synchronisierung elektronischer Nachrichten über ein Netzwerk
EP0814611B1 (de) Kommunikationssystem und Verfahren zur Aufnahme und Verwaltung digitaler Bilder
DE60119045T2 (de) Informationsverteilungssystem und Informationsverteilungsverfahren
DE60133648T2 (de) System und verfahren zum führen von laufzeitdaten in einem server-netzwerk
DE60219678T2 (de) Gezielte medienerfassung über eine kommunikationsvorrichtung
DE60032054T2 (de) Erfassung von geographischen Daten
DE60009489T2 (de) Vorrichtung und verfahren zum verwalten der verteilung von inhalten zu einem gerät
DE60315558T2 (de) Verteiltes Rechnersystem für Vorrichtungsresourcen basierend auf Identität
DE60112374T2 (de) Verfahren und System zur Fernsteuerung eines tragbaren Endgerätes und Computerprodukt
DE60006845T2 (de) Verfahren und vorrichtung zur zusammenarbeit bei multimediaerzeugung über einem netzwerk
DE69735351T2 (de) System zur übermittlung von bildinformationen über ein netzwerk zwischen bebilderungsvorrichtungen, die nach mehreren protokollen arbeiten
DE60130543T2 (de) Gesichertes netzwerkbetriebsmittelzugriffssystem
DE60320486T2 (de) Systeme und Verfahren zur Lieferung von Anwendungen und zur Konfigurationsverwaltung für mobile Geräte
DE60027247T2 (de) Verfahren und Systeme zur Konvertierung von Datenformaten
DE60035830T2 (de) Netzwerkgeräteverwaltungsvorrichtung und - verfahren
DE69832057T2 (de) Datendienst in einem mobilen kommunikationsnetz
DE60203550T2 (de) Verfahren, System and Computerprogrammprodukt für die Synchronisation von verschiedenen Datenstrukturen durch Benutzung von Aktualisierungsmeldungen
DE602004010807T2 (de) Techniken zur bereitstellung eines virtuellen arbeitsraums, bestehend aus einer vielzahl elektronischer einrichtungen
DE60206741T2 (de) Kommunikationsmodul zur steuerung von betriebsabläufen einer pbx
DE602005003179T2 (de) Verfahren zum Verwalten von Knoten in einer Gruppe von gleichrangigen Knoten
EP1532797A1 (de) Verfahren zum übertragen von nutzdatenobjekten gemüss einem profilinformationsobjekt
DE60100624T2 (de) Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient
DE602004006460T2 (de) Verfahren zur Verteilung von Videoinformationen an ein Mobiltelefon auf Basis von &#34;Push&#34; Technologie

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee