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