-
Stand der Technik
-
1. Gebiet
der Erfindung
-
Diese
Erfindung bezieht sich auf Computersysteme und insbesondere auf
die Benutzerauthentifizierung und das Standortmanagement von Benutzersitzungen.
-
2. Stand der
Technik
-
Die
Grundüberzeugungen,
mit denen Computersysteme konfiguriert wurden, haben sich über die
Zeit geändert.
Früher
bestand ein Computer aus einem sogenannten Großrechner bzw. einem mainframe,
auf den von einer Mehrzahl von "Ausgabeterminals" zugegriffen wurde.
Der Großrechner
war eine zentrale Station, die Rechenleistung und Datenspeicherung
bereitstellte. Ein Ausgabeterminal war eine Anzeigevorrichtung für Daten,
welche vom Großrechner
bereitgestellt wurden, und stellte auch Mittel für die Übertragung einiger Daten zum
Großrechner
bereit. Andere Systemparadigmen folgten, einschließlich des
Desktop-Computers, Client-/Server-Architekturen, und neuerdings
die sogenannten Netzwerkcomputer.
-
Ein
Desktop-Computer ist ein eigenständiges
Computersystem, bei dem alle Anwendungen und Daten auf dem Desktop-Computersystem
selbst lagern. Solche Systeme werden in Form von Personalcomputern
implementiert und haben die Benutzung von Computern im privaten
Bereich und in Büros
angeregt. Ein Nachteil von Desktop-Computern ist die kurze Lebenszeit
der im System benutzten Hardware. Desktop-Computer besitzen einen
Mikroprozessor und wenn schnellere und leistungsfähigere Mikroprozessoren
verfügbar
werden, sind Aktualisierungen existierender Desktop-Systeme oder der
Kauf neuer Desktop-Systeme erforderlich. In manchen Büros werden
Desktop-PCs durchgehend
eingesetzt, und deren Zahl geht manchmal in die Tausende oder Zehntausende.
Ein Nachteil solcher großen
Systeme ist der Mangel an Kompatibilität bei den Anwendungen und Daten
der einzelnen Systeme. Einige Benutzer haben aktuellere Versionen
von Software-Anwendungen,
die nicht abwärts
kompatibel mit älteren
Versionen der Software sind. Die Lösung dieses Problems besteht
darin, eine konsistente Software auf allen Systemen zu betreiben.
Die Kosten zum Aktualisieren jedes Systems und die Bereitstellung
lizenzierter Kopien der Software und Software-Aktualisierung können jedoch erheblich
sein.
-
Client-/Server-Systeme
sind Systeme, bei denen durch ein Netzwerk von Client-PCs auf zentrale
Daten und/oder Anwendungen zugegriffen wird. Dies ermöglicht eine
administrative Effizienz bei der Pflege der gemeinsam benutzen Daten.
Die Clients haben jedoch lokale Applikationen und Da ten, die die
gleiche Art von Problemen mit sich bringen kann, wie bei den bereits
beschriebenen Desktop-Systemen.
-
Neuerdings
führte
der Aufstieg des Internets zu dem Vorschlag, sogenannte Netzwerkcomputer
zu benutzen. Ein Netzwerkcomputer ist eine abgespeckte Version eines
Personalcomputers mit weniger Speicherplatz, weniger Arbeitsspeicher
und oftmals weniger Rechenleistung. Die Idee ist, dass Netzwerkcomputer durch
das Internet auf Daten zugreifen, und nur diejenige Anwendungen,
die für
eine bestimmte Aufgabe nötig sind,
dem Netzwerk-Computer bereitgestellt werden. Wenn die Applikationen
nicht länger
benutzt werden, werden sie nicht auf dem Netzwerkcomputer gespeichert.
Es gab einige Kritik an solchen Systemen, da sie nicht die Leistung
eines vollwertigen Desktop-Systems
haben, aber auch nicht genügend
preiswert sind, um die herabgesetzten Fähigkeiten zu rechtfertigen.
Und obwohl der Netzwerkcomputer ein Fundgerät eines Desktop-Computers ist,
kann der Netzwerkcomputer weiterhin Aktualisierungen von Hardware
und Software benötigen,
um eine adäquate
Leistungsfähigkeit
zu bieten.
-
Ein
Beispiel eines dynamischen Host-Konfigurationsprotokolls findet
sich in der RFC 2131. Die RFC 1321 und 2104 zeigen Beispiele von
MD5, bzw. der Nachrichtenverarbeitung. Ein Punkt-zu-Punkt Herausforderungs-Host-Authentifizierungsprotokoll
findet sich in der RFC 1994.
-
"A Movable User Interface
Based On A Simple X-Window Like Protocol", von Sanjay Dasgupta et. al., Proceedings
of the International Conference on EC3-Energy,
Computer, Communication and Control Systems (TENCON), US, New York,
IEEE 1991, Seite 199–203,
ISBN: 0-7803-0539-6, beschreibt eine bewegliche Benutzerschnittstelle,
die eine Umgebung bereitstellt, bei der ein Prozess-Benutzer eine unbegrenzte
Flexibilität hinsichtlich
seines Aufenthaltsortes hat. Die Terminal-Eingaben/Ausgaben eines Prozesses können durch
den Benutzer zu einem anderen Terminal mit vollständiger Kontinuität verlagert
werden. Beim Prozess oder dem Betriebssystem sind keine Änderungen
erforderlich, um dieses Merkmal zu unterstützen, welches dadurch erzielt
wird, dass der Prozess eine Eingabe/Ausgabe an ein Pseudo-Terminal
sendet. Ein Server ist dann dafür verantwortlich,
dass die Eingabe/Ausgabe an einen Client weitergeleitet wird, der
mit dem tatsächlichen
(physischen) Terminal verknüpft
ist.
-
Darstellung
der Erfindung
-
Die
Erfindung wird durch die unabhängigen
Ansprüche
definiert. Weitere Ausführungsformen
sind Gegenstand der abhängigen
Ansprüche.
-
Eine
Authentifizierung und ein Sitzungsmanagement können mit einer Systemarchitektur
genutzt werden, die die Funktionalität zwischen einer Mensch-Maschine-Schnittstellenvorrichtung
(HID) und einem Rechenserviceprovider, wie beispielsweise einem
Server, aufteilt. Ein auf einem Server ausgeführter Authentifizierungsmanager
wechselwirkt mit der HID, um den Benutzer zu identifizieren, wenn
sich der Benutzer über die
HID mit dem System verbindet. Ein auf einem Server ausgeführter Sitzungsmanager
verwaltet auf Computern ablaufende Dienste, die Rechendienste (zum
Beispiel Programme) im Auftrag des Benutzers bereitstellen. Der
Sitzungsmanager benachrichtigt jeden Dienst in einer Sitzung darüber, dass
der Benutzer über
eine vorgegebene Desktop-Maschine mit dem System verbunden ist.
Ein Dienst kann eine Anzeigeausgabe an die HID richten, während der
Benutzer mit dem System verbunden ist. Wenn sich ein Benutzer vom
System entfernt wird jeder Dienst, der für den Benutzer ausgeführt wird, über den
Authentifizierungsmanager und den Sitzungsmanager informiert. Nach
der Benachrichtigung, dass sich der Benutzer vom System entfernt
hat, wird ein Dienst weiterhin ausgeführt, wobei seine Anzeige an
die Desktop-Maschine gestoppt wird.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Beispiel von Systemarchitekturen, die in einer oder mehreren
Ausführungsformen
der Erfindung benutzt werden.
-
2 veranschaulicht
Komponenten der Authentifizierung und des Sitzungsmanagements, sowie
ihr Zusammenarbeiten gemäß einer
Ausführungsform
der Erfindung.
-
3 zeigt
ein Arbeitsablaufdiagramm für
die Initialisierung eines Netzwerk-Terminals als Antwort auf eine
Anschaltoperation gemäß einer
Ausführungsform
der Erfindung.
-
4A–4C zeigen
ein Arbeitsablaufdiagramm gemäß einer
Ausführungsform
der Erfindung für die
Initialisierung des Netzwerk-Terminals 202 als Beantwortung
einer Aufweckoperation.
-
5A–AB zeigen
den Ablauf eines Authentifizierungsprozesses gemäß einer Ausführungsform
der Erfindung.
-
6 zeigt
den Ablauf eines Authentifizierungsabfrageprozesses gemäß einer
Ausführungsform
der Erfindung.
-
7 und 8 zeigen
Beispiele von Systemarchitekturen, die in einer oder mehren Ausführungsformen
der Erfindung benutzt werden.
-
Ausführliche
Beschreibung der Erfindung
-
Ein
Verfahren und eine Vorrichtung für
das Sitzungsmanagement und die Benutzerauthentifizierung werden
beschrieben. In der folgenden Beschreibung werden zahlreiche spezielle
Details dargelegt, um eine gründliche
Beschreibung der vorliegenden Erfindung bereitzustellen. Es wird
jedoch für
den Fachmann klar werden, dass die vorliegende Erfindung ohne diese
speziellen Details ausgeführt
werden kann. In anderen Fällen
wurden allgemein bekannte Merkmale nicht im Detail beschrieben,
um nicht den Blick auf die Erfindung zu verstellen.
-
Überblick
-
Verfahren
und Vorrichtung werden gemäß einer
oder mehreren Ausführungsformen
der Erfindung für die
Authentifizierung eines Systembenutzers und Managementdiensten,
die im System im Namen des Benutzers ausgeführt werden, beschrieben. In
einer Ausführungsform
der Erfindung werden innerhalb einer Systemarchitektur, welche die
Rechenfunktionalität
zwischen einer Benutzer-HID
und einem Rechendienstprovider, wie beispielsweise einem Server,
aufteilt, eine Authentifizierung und ein Sitzungsmanagement ausgeführt.
-
Die 1, 7 und 8 stellen
Beispiele für
in einer oder mehreren Ausführungsformen
der Erfindung benutzten Systemarchitekturen dar. Die vorliegende
Erfindung kann in Standard-Desktop-Computersystemen implementiert werden,
wie sie in 1 beschrieben sind, oder in
jedem anderen Computersystem einschließlich Client-Server-Systeme,
Netzwerk-Computern, oder dem Mensch-Maschine-Schnittstellen-Vorrichtungssystem
der 7 und 8.
-
Ausführungsform einer Computer-Ausführungsumgebung
(Hardware)
-
Eine
Ausführungsform
der Erfindung kann als Computersoftware in der Form eines computerlesbaren Codes
implementiert werden, der auf einem Allzweckrechner, wie dem in 1 gezeigten
Computer 100, ausgeführt
werden kann, oder in der Form von Byte-Codes vorliegender Class-Dateien, die innerhalb
einer JavaTM-Laufzeitumgebung ausführbar sind,
die auf einem solchen Computer läuft.
Eine Tastatur 110 und eine Maus 111 sind an ein
bidirektionales Bussystem 118 angeschlossen. Die Tastatur
und die Maus dienen zur Vornahme von Benutzereingaben in das Computersystem
und zum Weiterleiten dieser Benutzereingaben zum Prozessor 113.
Andere geeignete Eingabevorrichtungen können zusätzlich zu oder anstelle von
der Maus 111 und der Tastatur 110 benutzt werden.
E/A-(Eingabe/Ausgabe-)Einheit 119, gekoppelt an das bidirektionale Bussystem 118,
stellt solche E/A-Elemente als einen Drucker, A/V-(Audio/Vdeo) E/A,
etc. dar.
-
Der
Computer 100 besitzt einen Videospeicher 114,
Hauptspeicher 115 und Massenspeicher 112, alle zusammen
mit der Tastatur 110, der Maus 111 und dem Prozessor 113 an
das bidirektionale Bussystem 118 gekoppelt sind. Der Massenspeicher 112 kann
sowohl fest eingebaute und auch Wechselmedien umfassen, beispielsweise
magnetische, optische oder magneto-optische Speichersysteme, oder
jede andere verfügbare Massenspeichertechnologie.
Der Bus 118 besitzt zum Beispiel 32 Adressleitungen für das Adressieren
von Videospeicher 114 oder Hauptspeicher 115.
Der Systembus 118 beinhaltet zum Beispiel auch einen 32-Bit
Datenbus für
das Übertragen
von Daten zwischen und unter den Komponenten, wie zum Beispiel einen
Prozessor 113, Hauptspeicher 115, Videospeicher 114 und
Massenspeicher 112. Alternativ können Multiplex-Daten-/ Adressleitungen
anstelle separater Daten- und Adressleitungen benutzt werden.
-
In
einer Ausführungsform
der Erfindung ist der Prozessor 113 ein von Motorola hergestellter
Mikroprozessor, wie zum Beispiel der 680X0-Prozessor oder ein von
Intel hergestellter Mikroprozessor, wie zum Beispiel der 80X86,
oder ein Pentium-Prozessor oder ein SPARCTM-Mikroprozessor
von Sun Microsystems. Jedoch kann jeder andere geeignete Mikroprozessor
oder Mikrocomputer benutzt werden. Der Hauptspeicher 115 umfasst
einen dynamischen Schreib-/Lesespeicher mit direktem Zugriff (DRAM).
Der Videospeicher 114 ist ein Video-Schreib-/Lesespeicher
mit direktem Zugriff und Dual Port.
-
Ein
Port des Videospeichers 114 ist mit dem Videoverstärker 116 verbunden.
Der Videoverstärker 116 wird
benutzt, um den Kathodenstrahlrohr-(CRT)Rastermonitor 117 zu
betreiben. Alternativ kann ein Videospeicher 114 benutzt
werden, um einen Flachbildschirm oder eine Flüssigkeitskristalianzeige (LCD),
oder jede andere geeignete Datenpräsentationsvorrichtung zu betreiben.
Der Videospeicher 116 ist allgemein bekannt und kann durch
jede geeignete Vorrichtung implementiert werden. Dieser Schaltkreis
konvertiert im Videospeicher 114 abgelegte Pixeldaten in
ein Rastersignal, das vom Monitor 117 benutzt werden kann.
Der Monitor 117 ist ein Monitortyp, der für die Anzeige
grafischer Bilder geeignet ist.
-
Der
Computer 100 kann auch eine Kommunikationsschnittstelle 120 besitzen,
die an einen Bus 118 gekoppelt ist. Die Kommunikationsschnittstelle 120 stellt
eine Zweiwege-Kommunikationskopplung über die Netzwerkleitungen 121 an
das lokale Netzwerk 122 bereit. Ist zum Beispiel die Kommunikationsschnittstelle eine
ISDN-(Integrated Services Digital Network)Karte oder ein Modem oder
ein Kabelmodem, so stellt die Kommunikationsschnittstelle 120 eine
Datenkommunikationsverbindung des entsprechenden Typs von Telefonleitung
bereit, welche ein Teil der Netzwerkleitung 121 umfasst.
Wenn die Kommunikationsschnittstelle eine LAN-(Local Area Network)Karte
ist, stellt die Kommunikationsschnittstelle 120 eine Datenkommunikationsverbindung über die
Netzwerkleitung 121 an ein kompatibles LAN bereit. Drahtlose
Verbindungen sind auch möglich.
In jeder derartigen Implementierung sendet und empfängt die
Kommunikationsschnittstelle 120 elektrische, elektromagnetische
oder optische Signale, die digitale Datenströme tragen können, welche verschiedene Arten
von Informationen repräsentieren.
-
Die
Netzwerkverbindung 121 stellt typischerweise eine Datenkommunikation
durch eine oder mehrere Netzwerke zu anderen Datendiensten bereit.
Zum Beispiel kann die Netzwerkverbindung 121 eine Verbindung durch
ein lokales Netzwerk 122 zum lokalen Server-Computer 123 bereitstellen,
oder zu einer Datenausrüstung,
die von einem Internet-Serviceprovider (ISP) 124 betrieben
wird. ISP 124 stellt seinerseits Datenkommunikationsdienste
für das
weltweite paketorientierte Datenkommunikationsnetzwerk bereit, welches
allgemein als das „Internet" 125 bezeichnet
wird. Das lokale Netzwerk 122 und das Internet 125 benutzen
jeweils elektrische, elektromagnetische oder optische Signale, die
digitale Datenströme
transferieren. Die Signale durch die verschiedenen Netzwerke und
die Signale auf der Netzwerkleitung 121 und durch die Kommunikationsschnittstelle 120,
welche die digitalen Daten zu und vom Computer 100 übertragen,
sind beispielhafte Formen von Trägerwellen,
die die Information transportieren.
-
Der
Computer 100 kann Nachrichten senden und Daten empfangen,
einschließlich
Programmcode, durch das oder die Netzwerke, durch die Netzwerkverbindung 121 und
die Kommunikationsschnittstelle 120. Im Beispielsfall des
Internets kann der Fern-Server-Computer 126 einen angeforderten
Code für
ein Anwendungsprogramm durch das Internet 125, den ISP 124,
das lokale Netzwerk 122 und die Kommunikationsschnittstelle 120 übertragen.
-
Der
empfangene Code kann vom Prozessor 113, so wie er empfangen
wurde, ausgeführt
werden, und/oder auf Massenspeicher 112 abgelegt werden,
oder auf anderem nicht-flüchtigem
Speicher für
die spätere
Ausführung.
Auf diese Weise kann der Computer 100 Anwendungscode in
der Form einer Trägerwelle erhalten.
-
Anwendungscode
kann in jeder beliebigen Form eines Computerprogrammprodukts verkörpert sein. Ein
Computerprogrammprodukt umfasst ein Medium, dass zum Speichern oder
Transportieren computerlesbaren Codes ausgelegt ist, oder in welchem
computerlesbarer Code eingebettet ist. Einige Beispiele für Computerprogrammprodukte
sind CD-ROMs, ROM-Karten, Disketten, Magnetbänder, Computerfestplatten,
Server in einem Netzwerk, und Trägerwellen.
-
Computersystem
mit Mensch-Maschine-Schnittstellenvorrichtung
-
Die
Erfindung findet auch bei Computersystemen Anwendung, bei denen
anzuzeigende Daten durch ein Netzwerk bereitgestellt werden. Das
Netzwerk kann ein LAN sein, ein WAN (wide area network), das Internet,
das World Wide Web, oder jede andere geeignete Netzwerkkonfiguration.
Eine Ausführungsform
der Erfindung wird in einer Computersystemkonfiguration benutzt,
welche in dieser Beschreibung als Computersystem mit Mensch-Maschine-Schnittstellenvorrichtung
bezeichnet wird.
-
In
diesem System ist die Funktionalität des Systems zwischen einer
Anzeige- und Eingabevorrichtung sowie Datenquellen oder Diensten
aufgeteilt. Die Anzeige- und Eingabevorrichtung ist eine Mensch-Maschine-Schnittstellenvorrichtung
(HID). Die Aufteilung dieses Systems ist derart, dass Zustands-
und Rechenfunktionen vom HID entfernt wurden, und bei Datenquellen
oder Diensten bleiben. In einer Ausführungsform der Erfindung kommunizieren
eine oder mehrere Dienste mit einer oder mehreren HIDs durch eine
zusammengeschaltete Struktur, wie beispielsweise einem Netzwerk.
Ein Beispiel eines solchen Systems ist in 7 gezeigt.
Bezug nehmend auf 7 besteht das System auf einem
Rechenservice-Provider 700, der durch die zusammengeschaltete
Struktur 701 mit den HIDs 702 kommuniziert.
-
Rechenservice-Provider
-
Im
HID-System findet sich die Rechenleistung und die Zustandsverwaltung
in den Dienstanbietern oder Diensten. Die Dienste sind nicht mit
einem speziellen Computer verbunden, sondern können über ein oder mehrere herkömmliche
Desktop-Systeme verteilt werden, so wie sie in Verbindung mit 1 beschrieben wurden,
oder mit traditionellen Servern. Ein Computer kann einen oder mehrere
Dienste haben, oder es kann ein Dienst durch einen oder mehrere
Computer implementiert werden. Der Dienst stellt Berechnungen, Zustand
und Daten für
die HIDs bereit, und der Dienst ist unter der Kontrolle einer gemeinsamen
Autorität
oder eines Managers. In 7 finden sich die Dienste auf
den Computern 710, 711, 712, 713 und 714.
-
Beispiele
von Diensten beinhalten X11/Unix-Dienste, archivierte Videodienste,
Dienste von Windows NT, Programmausführungsdienste von JavaTM und andere. Ein Dienst ist hierbei ein
Prozess, der Ausgangsdaten bereitstellt, und der auf Benutzeranfragen
und -eingaben antwortet.
-
Zusammengeschaltete
Struktur
-
In
der Erfindung ist die zusammengeschaltete Struktur jede beliebige
von mehreren geeigneten Kommunikationspfaden für die Übertragung von Daten zwischen
den Diensten und den HIDs. In einer Ausführungsform ist die zusammengeschaltete
Struktur ein lokales Netzwerk, das als Ethernet-Netzwerk implementiert
ist. Jedes andere lokale Netzwerk kann auch benutzt werden. Es kann
auch überlegt
werden, ob die Erfindung die Benutzung eines WAN, des Internets,
des World Wide Web, oder anderes vorsieht. Die zusammengeschaltete
Struktur kann mit einem physikalischen Medium, wie beispielsweise
einem Kabel oder einem faseroptischen Kabel implementiert werden,
oder es kann in einer kabellosen Umgebung implementiert werden.
-
HIDs
-
Das
HID ist ein Mittel, mit dem Benutzer auf die von den Diensten bereitgestellten
Rechendienste zugreifen können. 7 zeigt
HIDs 721, 722, und 723. Ein HID besitzt
eine Anzeige 726, eine Tastatur 724, eine Maus 725 und
Lautsprecher 727. Die HID besitzt die Elektronik, um diese
Vorrich tungen mit der zusammengeschalteten Struktur zu verbinden,
und um Daten von oder zu diesen Diensten zu übertragen.
-
Ein
Blockdiagramm der HID wird in 8 gezeigt.
Die Komponenten der HID sind intern an einen PCI-Bus 812 gekoppelt.
Ein Netzwerkkontrollblock 802 kommuniziert mit der zusammengeschalteten
Struktur, wie beispielsweise einem Ethernet, durch eine Leitung 814.
Ein Audio-Codec 803 empfängt Audiodaten über die
Schnittstelle 816 und ist an den Block 802 gekoppelt.
USB-Datenkommunikation
wird über
die Leitungen 813 zum USB-Controller 801 ermöglicht.
-
Ein
integrierter Prozessor 804 kann zum Beispiel ein Sparc2ep
mit gekoppelten Flash-Speicher 805 und DRAM 806 sein.
Der USB-Controller 801, Netzwerk-Controller 802 und
der integrierte Prozessor 804 sind jeweils an den PCI-Bus 812 gekoppelt.
Ebenfalls an den PCI-Bus 812 ist der Video-Controller 809 gekoppelt. Der
Video-Controller 809 kann zum Beispiel ein ATI RagePro
+ Bildspeicher-Controller sein, der auf Leitung 815 einen
SVGA-Ausgabe liefert. NTSC-Daten 817 werden
in und aus dem Video-Controller durch den Videodekodierer 810 und
den Videokodierer 811 bereitgestellt. Eine Chipkartenschnittstelle 802 kann
ebenfalls an den Video-Controller 809 gekoppelt sein.
-
Das
oben beschriebene Computersystem dient lediglich zu Veranschaulichungszwecken.
Eine Ausführungsform
der Erfindung kann in jede Art von Computersystem oder Programmier-
oder Verarbeitungsumgebung implementiert werden.
-
In
einer oder mehreren Ausführungsformen
der Erfindung sind Komponenten für
die Authentifizierung und das Sitzungsmanagement konfiguriert, um
Benutzer zu authentifizieren und um Sitzungen zu verlegen und zu
verwalten. Eine Sitzung ist eine anhaltende Repräsentation eines darauf bezogenen
Satzes von einem oder mehreren Diensten, die im Namen eines Benutzers
ausgeführt
werden. Ausführungsformen
der Erfindung authentifizieren einen Benutzer und verlegen eine
Benutzersitzung basierend auf dem gegenwärtigen Ort des Benutzers, ohne
dass innerhalb einer zu konfigurierenden Sitzung ein Dienst benötigt wird,
um eine Benutzervalidierung und -verlegung durchzuführen. Ausführungsformen
der Erfindung authentifizieren den Benutzer ein Mal für alle Dienste
des Benutzers. Durch Benutzung von Ausführungsformen der Erfindung
werden Dienste an das HID (oder andere Terminal-Vorrichtungen) geleitet,
welche ein Benutzer gegenwärtig
benutzt. Es ist nicht für
den Benutzer erforderlich, sich für jeden Dienst anzumelden und
eine neue Verbindung, die für
die HID spezifisch ist, aufzubauen.
-
Gemäß von Ausführungsformen
der Erfindung ist die Authentifizierung eine Einweg-Authentifizierung, welche
die Handhabbarkeit und Skalierbarkeit der Authentifizierung verbessert.
Es ist nicht erforderlich Schlüssel
auszutauschen, was die Notwendigkeit vermeidet, nach Schlüsseln in
zentralen Datenbanken zu suchen.
-
2 veranschaulicht
Komponenten für
die Authentifizierung und das Sitzungsmanagement, und ihr Zusammenwirken
gemäß einer
Ausführungsform
der Erfindung. Das Netzwerk-Terminal 202 ist eine Mensch-Maschine-Schnittstellenvorrichtung
(HID) (zum Beispiel HIDs 721, 722 und 723).
Ein HID hat, als Beispiele für
seine Funktionen, die Aufgabe, Ausgaben von Diensten an den Benutzer
auszugeben und Eingaben für
Dienste vom Benutzer entgegenzunehmen. Das Netzwerk-Terminal 202 hat
die Fähigkeit
auf einen Befehl zu antworten (zum Beispiel ein Anzeigebefehl),
welcher zum Beispiel von einem Software-Programm empfangen wurde
(zum Beispiel Dienste 230–238, Authentifizierungsmanager 204 und
Sitzungsmanager 206), die auf einem Rechenserviceprovider
ausgeführt
werden (zum Beispiel Computer 710, 711, 712, 713,
und 714). Die von einem Benutzer empfangene Eingabe wird
zum Beispiel an einen Dienst weitergeleitet, der eine Benutzeranfrage
erfüllt.
-
Mehr
als ein Server kann die Dienste ausführen, die eine Sitzung umfassen.
Zum Beispiel wird in der Sitzung 208 ein Dienst 230 auf
dem Server 210 ausgeführt,
Dienste 232 und 234 werden auf dem Server 212 ausgeführt, und
Dienste 236 und 238 werden auf dem Server 214 ausgeführt.
-
Ein
Benutzer greift auf ein System (zum Beispiel einen Server, eine
Sitzung, einen Dienst und ein Netzwerk-Terminal) zu, in dem er eine
Anmeldung vornimmt. Während
der Anmeldung wird der Benutzer durch den Sitzungsmanager 204 identifiziert.
Verschiedene Techniken können
benutzt werden, die es erlauben, dass der Benutzer eine Anmeldung
beginnt. Zum Beispiel kann der Benutzer eine Anmeldung dadurch beginnen,
dass er auf eine Taste des Netzwerk-Terminals 202 drückt.
-
In
einer Ausführungsform
der Erfindung greift der Benutzer auf das System zu, indem er eine
Chipkarte in einen Kartenleser einführt (zum Beispiel einen Kartenleser 216,
der mit dem Netzwerk-Terminal 202 verbunden
ist). Eine Chipkarte ist eine Karte, die imstande ist, Informationen
wie solche in einem Magnetstreifen oder einem Speicher der Chipkarte
zu speichern. Die Chipkarte kann Benutzerinformationen, wie zum
Beispiel eine Benutzeridentifikation (zum Beispiel eine Benutzer-ID,
wie zum Beispiel eine 64-Bit Zahl) und einen Geheimcode (zum Beispiel
eine 128-Bit Zufallszahl) speichern, die zum Netzwerk-Terminal 202 übertragen
wird. Der Geheimcode wird während
der Authentifizierung benutzt.
-
Das
Netzwerk-Terminal 202 kennt seine Verbindungs-Netzwerkadresse
(oder kann sie erhalten) und die Adresse des Authentifizierungsmanagers 204.
Wenn ein Benutzer die Anmeldung beginnt, startet das Netzwerk-Terminal 202 eine
Kommunikation mit dem Authentifizierungsmanager 204 um
die Authentifizierung zu beginnen. Der Authentifizierungsmanager 204 ist
ein aktives (d.h. ausführendes)
Programm eines Rechendienstproviders, der mit dem Netzwerk-Terminal 202 über ein
Verbindungsnetzwerk, wie beispielsweise einem lokalen Netzwerk (LAN)
verbunden ist. Es sollte jedoch offensichtlich sein, dass das Netzwerk-Terminal 202 über den
Authentifizierungsmanager 204 mit anderen Verbindungsnetzwerktechnologien
wie beispielsweise Faserkanalschleifen oder Punkt-zu- Punkt-Kabeln, verbunden
werden kann. Das Netzwerk-Terminal 202 sendet eine Startphasenanfrage
an den Authentifizierungsmanager 204, die eine Benutzeridentifikation
(Benutzer-ID) beinhaltet.
-
In
einer Ausführungsform
der Erfindung antwortet der Authentifizierungsmanager 204 auf
die Startphasenanfrage, indem er eine Authentifizierung beginnt,
um den Benutzer zu validieren. Die Authentifizierung kann jeden
Mechanismus beinhalten, der die Identität des Systembenutzers verifiziert.
Ein nur dem Benutzer bekannter Schlüssel bzw. bekanntes Passwort,
oder biometrische Informationen können benutzt werden, um den
Benutzer zu authentifizieren.
-
In
einer Ausführungsform
der Erfindung wird die Authentifizierung durch Überprüfen einer persönlichen
Identifikationsnummer (PIN) vorgenommen, die vom Benutzer in das
Netzwerk-Terminal 202 eingegeben wird. Der Authentifizierungsmanager 204 sendet
einen Befehl (das heißt
eine Authentifizierungsaufforderung), um eine Eingabe der Benutzer-PIN
beim Netzwerk-Terminal 202 zu veranlassen. Die Benutzereingabe
wird vom Netzwerk-Terminal 202 in Pakete unterteilt und
zum Authentifizierungsmanager 204 übertragen (das heißt eine
Authentifizierungsantwort).
-
Der
Authentifizierungsmanager 204 überprüft die Authentifizierungsantwort
mit den in der Authentifizierungsdatenbank 218 aufbewahrten
Informationen, Informationen, die vom Benutzer bereitgestellten
wurden, und Informationen, die während
der Authentifizierung erzeugt wurden. Wenn der Benutzer authentifiziert ist,
wird dem Benutzer Zugang zu einer Sitzung gewährt (zum Beispiel Sitzung 208).
-
Wenn
das erwartete Ergebnis vom Benutzer erhalten wurde, benachrichtigt
der Authentifizierungsmanager 204 den Sitzungsmanager 206 (über eine
Verbindungsnachricht), dass sich der Benutzer beim Netzwerk-Terminal 202 am
System angemeldet hat. In der Authentifizierungsdatenbank 218 enthaltene
Sitzungsinformationen werden benutzt, um den Server, den Port und
den Sitzungs-Identifikator
(ID) für
den Sitzungsmanager 206 zu identifizieren. Der Sitzungsmanager 206 ist
ein auf einem Rechendienstprovider aktives Programm und ist beispielsweise
mit dem Authentifizierungsmanager 204 und dem Netzwerk-Terminal 202 über ein
zusammengeschaltetes Netzwerk verbunden. Der Authentifizierungsmanager 204 sendet
eine Nachricht an den Sitzungsmanager 206, und benutzt
hierbei den Server des Sitzungsmanagers 206 sowie Port-Informationen,
die in der Authentifizierungsdatenbank 218 hinterlegt sind.
-
Als
Antwort auf die Verbindungsnachricht vom Authentifizierungsmanager 204 benachrichtigt
der Sitzungsmanager 206 die Dienste in der aktuellen Sitzung
des Benutzers (d.h., die Dienste in der Sitzung 208), dass
sich der Benutzer mit dem Netzwerk-Terminal 202 verbunden
hat. Das bedeutet, dass der Sitzungsmanager 206 eine Verbindungsnachricht
an die Dienste 230–238 sendet,
um Ausgaben an das Netzwerk-Terminal 202 zu richten. Der
Sitzungsmanager 206 stellt sicher, dass Dienste, die als
für die
Sitzung erforderliche Dienste angesehen werden, ausgeführt werden.
Ist dies nicht der Fall, veranlasst der Sitzungsmanager 206, dass
sie gestartet werden. Der Benutzer kann innerhalb einer Sitzung
mit den Diensten 230–238 interagieren (zum
Beispiel Sitzung 208). Das Netzwerk-Terminal 202 ist
mit den Servern 210, 212 und 214 (und
den Diensten 230–238) über ein
zusammengeschaltetes Netzwerk, wie beispielsweise einem LAN oder
einer anderen Zusammenschaltungstechnologie verbunden. Der Benutzer
kann auch neue Dienste starten oder existierende Dienste beenden.
-
Der
Benutzer kann sich vom System entfernen, indem er die Karte vom
Kartenleser 216 entfernt. Andere Mechanismen, um seine
Verbindungstrennung auszudrücken,
können
ebenfalls im Rahmen der Erfindung benutzt werden (zum Beispiel eine "Abmelde"-Taste beim Netzwerk-Terminal 202).
Dienste 230–238 können weiterhin
laufen, selbst nachdem der Benutzer die Karte vom Kartenleser 216 entnommen
hat. Dies bedeutet, dass die mit einem Benutzer verknüpfte Sitzung
bzw. verknüpften
Sitzungen und Dienste, die eine Sitzung umfassen, weiterhin während des
Zeitraums existieren, während
der ein Benutzer nicht mit dem System verbunden ist (zum Beispiel
abgemeldet ist). Wenn der Benutzer die Karte vom Kartenleser 216 entfernt,
benachrichtigt das Netzwerk-Terminal 202 den Authentifizierungsmanager 204 (zum
Beispiel über
eine Verbindungstrennungsnachricht), welche den Sitzungsmanager 206 benachrichtigt
(zum Beispiel über
eine Verbindungstrennungsnachricht). Der Sitzungsmanager 206 benachrichtigt
Dienste 230–238 (zum
Beispiel über
eine Verbindungstrennungsnachricht), welche ihre Übertragung
von Anzeigebefehlen an das Netzwerk-Terminal 202 beenden.
Dienste 230–238 werden
jedoch während
der Zeit, während
der ein Benutzer nicht am Netzwerk-Terminal angemeldet ist, weiterhin
ausgeführt.
Der Benutzer kann sich für
die Benutzung eines Netzwerk-Terminals, wie das Netzwerk-Terminal 202,
zurückmelden,
sich mit der Sitzung 208 verbinden und mit den Diensten 230–238 interagieren.
-
Obwohl
die 206 jeweils eine einzige Instanz
zeigt, sollte es offensichtlich sein, dass es mehrere Instanzen
von Netzwerk-Terminals 202, Authentifizierungsmanagern 204 und
Sitzungen 208 geben kann. Zum Beispiel kann es mehr als
eine Instanz eines Authentifizierungsmanagers 204 geben,
die ein Netzwerk-Terminal 202 oder mehrere Instanzen von
Netzwerk-Terminals 202 bedienen. Instanzen von Authentifizierungsmanagern 204 können in
einer Hierarchie gemäß der Topologie
des Netzwerks organisiert werden, oder sie können global verfügbar sein.
-
Hat
man mehr als eine Instanz des Authentifizierungsmanagers, verbessert
dies die Skalierbarkeit des Systems, da es möglich ist, Instanzen von Authentifizierungsmanagern 204 basierend
auf der aktuellen Last (zum Beispiel der Zahl der Benutzer) hinzuzufügen (oder
zu entfernen). Weiterhin wird die Zuverlässigkeit verbessert, da redundante
Instanzen von Authentifizierungsmanagern 204 verwendet
werden können.
-
Entsprechend
kann es eine Mehrzahl von Instanzen von Sitzungsmanagern 206 geben.
Wie beim Authentifizierungsmanager 204 können mehrfache
Instanzen von Sitzungsmanagern 206 die Skalierbarkeit und die
Zuverlässigkeit
des Systems steigern.
-
Sitzungsmanager
-
Der
Sitzungsmanager 206 betreibt eine Sitzungsdatenbank 220,
die Mappings zwischen Benutzern, Sitzungen und Diensten beinhalten.
Der Sitzungsmanager 206 verwaltet die Dienste, die jede
vom Sitzungsmanager 206 verwaltete Sitzung umfassen. Zum
Beispiel verwaltet der Sitzungsmanager 206 die Sitzung 208 und
die Dienste 230–238 innerhalb
der Sitzung 208.
-
Um
auf einen Rechendienstprovider zuzugreifen, wird zuerst ein Konto
eröffnet
oder für
einen Benutzer freigeschaltet. Um zum Beispiel gemäß einer
Ausführungsform
der Erfindung einen Benutzer frei zu schalten, wird dem Benutzer
eine Benutzer-ID, eine PIN und eine Chipkarte gegeben, welche die
Benutzer-ID und einen Geheimcode speichern. Zusätzlich wird für den Benutzer
eine Sitzung erzeugt. Wie nachfolgend beschrieben, kann eine Sitzung
keine oder mehr erforderliche Dienste haben. Es kann notwendig sein,
einige der erforderlichen Dienste zu starten, wenn die Sitzung erzeugt
wird. Nachdem ein Dienst gestartet wurde, bleibt er aktiv, gleichgültig, ob
der Benutzer mit dem System verbunden ist oder nicht. Der Abgleich
der erforderlichen Dienste kann gestartet werden, wenn sich der
Benutzer zum ersten Mal anmeldet.
-
Ein
Benutzer ist nicht auf eine Sitzung beschränkt. Mit einem Benutzer kann
zu jedem beliebigen Zeitpunkt eine Mehrzahl von Sitzungen verknüpft sein.
Die Sitzungsdatenbank 220 besitzt Aufzeichnungen, die die
Sitzung oder Sitzungen und den oder die Dienste innerhalb einer
Sitzung identifizieren, die mit einem Benutzer verknüpft sind.
Ein freigeschalteter Benutzer kann vom System entfernt werden. Wenn
ein Benutzer vom System entfernt wird, werden alle mit dem Benutzer
verknüpften
Sitzungen vom System und von der Sitzungsdatenbank 220 entfernt.
Die mit den Benutzersitzungen verknüpften Dienste werden ebenfalls
gestoppt.
-
Nachdem
ein Benutzer freigeschaltet ist, das System zu benutzen, kann sich
der Benutzer über
das Netzwerk-Terminal 202 am System anmelden. Wenn der
Sitzungsmanager 206 vom Authentifizierungsmanager 204 benachrichtigt
wird, dass der Benutzer mit dem Netzwerk-Terminal 202 verbunden
ist, benachrichtigt der Sitzungsmanager 206 die Sitzung
des Benutzers (das heißt
die Dienste, die eine Sitzung umfassen). Der Sitzungsmanager 206 ruft
die Sitzungsdatenbank 220 ab, um die Dienste der Sitzung
zu identifizieren und zu benachrichtigen. Zum Beispiel beinhaltet
die Sitzungsdatenbank 220 Informationen, die die Sitzung 208 und die
Dienste 230–238,
die in der Sitzung 208 beinhaltet sind, identifizieren.
-
Die
Sitzungsdatenbank 220 besitzt dauerhafte Sitzungsaufzeichnungen
und dynamische Sitzungsaufzeichnungen, um Sitzungen und die mit
einer Sitzung verknüpften
Dienste zu identifizieren. Die Sitzungsdatenbank 220 kann
eine oder mehrere Datenbanken oder Datenspeicher sein. Zum Beispiel
können
die dauerhaften Sitzungsaufzeichnungen in einer Konfigurationsdatei
gespeichert sein, wohingegen die dynamischen Sitzungsaufzeichnungen
im Speicher des Datenbanksystems gespeichert sind. Eine dauerhafte
Sitzungsaufzeichnung besitzt Konfigurationsinformationen für den Benutzer
und wird typischerweise zu dem Zeitpunkt erzeugt, zu dem der Benutzer
für das
System freigeschaltet wird. Eine dynamische Sitzungsaufzeichnung
identifiziert diejenigen Dienste, die mit einem Benutzer verknüpft sind.
Dynamische Sitzungsaufzeichnungen identifizieren die erforderlichen
Dienste, die mit einer Benutzersitzung in einer permanenten Sitzungsaufzeichnung verknüpft sind,
ebenso wie aktuell aktive Dienste. Das Folgende beinhaltet ein Format
für eine
permanente Sitzungsaufzeichnung gemäß einer Ausführungsform
der Erfindung:
Sitzungs-ID Dienst-ID Dienst-Host Dienst-Port
ist-träge
-
Das
Feld Sitzungs-ID identifiziert die Sitzung, die den oder die erforderlichen
Dienste besitzt, auf eindeutige Weise. Das Feld Dienst-ID identifiziert
einen mit einer Sitzung verknüpften
Dienst, der mit der Sitzungs-ID identifiziert ist, auf eindeutige
Weise. Die Felder Dienst-Host und Dienst-Port identifizieren den
Server, auf dem ein Dienst läuft,
und den Port auf dem Server, durch welchen ein Dienst kommunizieren
kann. Das Feld ist-träge
identifiziert die Art und Weise, in der ein Dienst gestartet werden
kann. Zum Beispiel kann ist-träge
spezifizieren, dass der Dienst sofort nach der Erzeugung einer Sitzung
gestartet wird, oder dass der Dienst gestartet wird, wenn der Benutzer
zum ersten Mal auf das System zugreift. Die Felder Dienst-ID, Dienst-Host,
Dienst-Port und ist-träge
können
mehrfach vorkommen, wobei jedes Auftreten einen mit der durch die
Sitzungs-ID identifizierte Sitzung verknüpften Dienst identifiziert.
-
Die
dynamische Sitzungsaufzeichnung identifiziert die für eine Sitzung
erforderlichen Dienste und diejenigen Dienste, die gegenwärtig in
einer Sitzung ausgeführt
werden. Die für
eine Sitzung erforderlichen Dienste werden zum Beispiel von den
dauerhaften Sitzungsaufzeichnungen abgerufen. Eine dynamische Sitzungsaufzeichnung
kann null oder mehr Dienste (erforderliche oder andere) identifizieren,
die gegenwärtig
im Namen eines Benutzers ausgeführt
werden.
-
Die
Felder, die benutzt werden, um Informationen über einen Dienst mit einer
dynamischen Sitzungsaufzeichnung zu speichern, hängen davon ab, ob der Dienst
ein erforderlicher Dienst oder ein Dienst ist. Ein erforderlicher
Dienst, der aktuell aktiv ist, ist auch ein aktueller Dienst. Das
Format einer dynamischen Sitzungsaufzeichnung, dass die erforderlichen
Dienste einer Sitzung identifiziert, ist das Gleiche wie das Format für die dauerhafte
Sitzungsaufzeichnung. Das Nachfolgende identifiziert das Format
für eine
Aufzeichnung, die mit einem gegenwärtig ausgeführten Dienst verknüpft sind,
gemäß einer
Ausführungsform
der Erfindung:
Sitzungsverbindung TCPSocketfd erforderlicheDienstverbindung
Dienst-ID
-
Das
Feld Sitzungsverbindung identifiziert die Sitzung des Dienstes.
Eine offene Verbindung, oder Pipe, wird zwischen dem Sitzungsmanager 206 und
einem gegenwärtig
ausgeführten
Dienst in der Sitzung aufgebaut. Die offene Verbindung kann benutzt
werden, um entweder den Sitzungsmanager 206 oder den Dienst, den
der andere abnormal oder auf andere Weise beendet hat, zu benachrichtigen.
In einer Ausführungsform der
Erfindung ist die offene Verbindung eine TCP-Socket-Verbindung, die durch
das Feld TCPSocketfd identifiziert wird. Es sollte jedoch klar sein,
dass zur Benutzung von Ausführungsformen
der Erfindung auch jede andere Form von zuverlässiger Verbindungstechnologie
benutzt werden kann, die eine zuverlässige Benachrichtigung ermöglichen,
dass eine Verbindung deaktiviert oder abgebrochen ist.
-
Der
Dienst hat einen Identifizierer, der im Feld Dienst-ID abgelegt
ist. Ein gegenwärtig
laufender Dienst kann mit einem erforderlichen Dienst verbunden
werden. Eine Verbindung bzw. ein Link zu einem erforderlichen Dienst
wird durch angeforderte Dienstverbindung identifiziert. Wenn es
keine Verbindung zu einem angeforderten Dienst gibt, ist die angeforderte
Dienstverbindung Null.
-
Die
dynamische Sitzungsaufzeichnung kann auch benutzt werden, um Informationen über eine
Verbindung zu einem Netzwerk-Terminal (zum Beispiel das Netzwerk-Terminal 202)
zu speichern. Das Folgende enthält
die Felder, die die Verbindung gemäß einer Ausführungsform
der Erfindung identifizieren:
Sitzungsverbindung Status IP
Adresse
-
Mehrere
Sitzungen können
mit einem Benutzer verknüpft
sein. Das Feld Sitzungsverbindung identifiziert diejenige Sitzung,
mit der ein mit dem Netzwerk-Terminal 202 verbundener Benutzer
gegenwärtig
verbunden ist. Die Sitzungsverbindung kann beispielsweise als ihren
Wert den Wert der Sitzungs-ID haben. Das Feld Status identifiziert
den Verbindungsstatus (d.h., verbunden oder nicht verbunden) des
Netzwerk-Terminals 202 in der Sitzung. Das Feld IP-Adresse
beinhaltet die Verbindungsnetzwerksadresse des Netzwerk-Terminals 202.
Eine IP-Adresse wird in einer oder mehreren Ausführungsformen der Erfindung
benutzt. Es sollte jedoch klar sein, dass alternative Verbindungstechnologien
benutzt werden können,
die alternative Adressierungsschemata benutzen. Zum Beispiel kann
ein ATM-(Asynchronous Transfer Mode)Netzwerk einen 13-stelligen Stellenschalter-Präfix/Endpunkt-Identifizierer
benutzen.
-
Diese
Information kann vom Sitzungsmanager 206 benutzt werden,
um eine Statusmeldung an das Netzwerk-Terminal 202 zu senden.
Wenn das Netzwerk-Terminal 202 nicht innerhalb einer gewissen
Zeitspanne antwortet, nimmt der Sitzungsmanager 206 an,
dass das Netzwerk-Terminal 202 nicht mehr vom Benutzer benutzt
wird, und sendet eine Verbindungstrennungsmeldung an jeden der Dienste
in der Sitzung.
-
Andere
dem Sitzungsmanager 206 bekannte Informationen beinhalten
eine Liste der offenen Verbindungen (zum Beispiel Dienste mit einem
offenen TCPSocketfd) zu Diensten und ein Mapping zwischen offenen
Verbindungen und Sitzungen und den Diensten innerhalb einer Sitzung.
Diese Informationen können
zum Beispiel mit den Sitzungsaufzeichnungen zusammengestellt werden.
-
Die
dem Sitzungsmanager 206 verfügbaren Informationen können benutzt
werden, um eine Sitzung zu verlegen. Zum Beispiel ist es mit einem
gegebenen Dienst möglich,
eine Sitzung zu finden, die den Dienst und/oder die Dienste besitzt,
die in der Sitzung beinhaltet sind. Weiterhin ist es möglich, eine
Sitzung zu lokalisieren, die mit einem gegebenen Benutzer oder Instanz
des Netzwerk-Terminals 202 verknüpft ist,
unabhängig
davon, ob sie zum Beispiel gegenwärtig ausgeführt wird.
-
Dienstaufnahme
-
Wenn
der Sitzungsmanager 206 eine Meldung vom Authentifizierungsmanager 204 erhält, dass
sich ein Benutzer mit dem Netzwerk-Terminal 202 verbunden
hat, startet der Sitzungsmanager 206 diejenigen erforderlichen
Dienste, die gegenwärtig
nicht aktiv sind. Der Sitzungsmanager 206 benachrichtigt
ferner die gegenwärtig
aktiven Dienste, dass diese ihre Eingaben/Ausgaben (E/A) an das
Netzwerk-Terminal 202 richten. E/A können mit einem Befehlsprotokoll
erfolgen, um mit dem Netzwerk-Terminal 202 und seinen Peripherievorrichtungen
zu kommunizieren (Anlage A enthält
ein Beispiel eines Befehlsprotokolls gemäß einer Ausführungsform
der Erfindung).
-
Um
einen Dienst zu starten, greift der Sitzungsmanager 206 auf
den Server, auf dem der Dienst ausgeführt werden wird, zu, um den
Dienst zu starten. Zum Beispiel sendet der Sitzungsmanager 206 eine
Anfrage an einen allgemein bekannten Port des Servers und durchläuft den
Sitzungs-Host, Sitzungs-Port und Sitzungs-ID des Sitzungsmanagers 206.
Der Server verbindet zum Netzwerk-Terminal 202, das mit dem Dienst verbunden
ist, und benutzt die originäre
Authentifizierung des Servers und die Erlaubnisse, um es dem Benutzer
zu ermöglichen,
auf den Server zuzugreifen. Zum Beispiel kann in einer UNIX-Betriebssystemumgebung ein
UNIX-Dienst mit einer "CDE-Anmeldung"-Anzeige gestartet werden, welche auf
einen Netzwerk-Terminal 202 angezeigt wird, um den Benutzer
zu authentifizieren und sicherzustellen, dass der Benutzer es wünscht, mit
dem Dienst verbunden zu werden.
-
Damit
ein Sitzungsmanager 206 einen Dienst auf einem Server starten
kann, werden ihm die Rechte eingeräumt, die erforderlich sind,
um einen Dienst zu starten. Es kann unerwünscht sein, einem Sitzungsmanager 206 diese
Rechte einzuräumen.
Weiterhin können
in gegenwärtigen
Netzwerkumgebungen Server unter verschiedenen Betriebssystemumgebungen
laufen. In diesem Fall muss dem Sitzungsmanager 206 jeder
der Betriebssystemumgebungsprozeduren für den Start eines Dienstes
bekannt sein.
-
Alternativ
kann eine von der Sitzung unterrichtete und auf dem Server laufende
Anwendung den Start vornehmen und den Dienst mit dem Sitzungsmanager 206 registrieren.
In diesem Fall ist es für
den Sitzungsmanager 206 nicht erforderlich, die erforderlichen
Rechte zu haben. Weiterhin muss der Sitzungsmanager 206 nicht
ein zentralisiertes Modell für
den Start von Diensten unter mehreren Betriebssystemumgebungen implementieren.
Die Verantwortung für
den Start von Diensten ist den von der Sitzung unterrichteten Anwendungen überlassen,
die in den verschiedenen Betriebssystemumgebungen laufen. Eine von
der Sitzung unterrichtete Server-Anwendung hat das Wissen des Sitzungsmanagers 206 (zum
Beispiel hat die Sitzungs-ID, den Sitzungs-Host und den Sitzungs-Port
des Sitzungsmanagers 206) und seine Schnittstellen (zum
Beispiel Befehlsformate).
-
Die
von der Sitzung unterrichtete Server-Anwendung kann in Beantwortung
einer vom Sitzungsmanager 206 empfangenen Aufforderung
einen Dienst starten. Der Sitzungsmanager 206 sendet einen
Startbefehl an die Server-Anwendung, die die Erlaubnis zum Start
des Dienstes in der Betriebssystemumgebung des Servers besitzt.
Die Server-Anwendung startet den Dienst für den Sitzungsmanager 206 und
antwortet auf den Sitzungsmanager 206 mit einer gültigen Sitzungs-ID.
Auf UNIX- und NT-Systemen
kann zum Beispiel die Sitzungs-ID in der Betriebssystemumgebung
verfügbar
gemacht werden. Dienste, wie zum Beispiel Videofenster, können zum
Beispiel auf diese Weise starten.
-
Alternativ
kann eine von der Sitzung unterrichtete Anwendung einen Dienst kontaktieren,
um seine Berechtigung in der Form einer kryptographisch unterschriebenen
Autorisierung zu erhalten. Die Server-Anwendung kann die Sitzungs-ID
und die unterschriebene Autorisierung an den Sitzungsmanager 206 weiterleiten. Wenn
die von der Sitzung unterrichtete Anwendung den Sitzungsmanager 206 ohne
eine Autorisierung aber mit einer Beschreibung des Dienstes kontaktiert,
kann der Sitzungsmanager 206 vom Netzwerk-Terminal 202 eine
Erlaubnis einholen, um sicherzustellen, dass der Benutzer berechtigt
ist, den Dienst zu benutzen. Wenn der Benutzer positiv antwortet,
wird der Sitzung der Dienst hinzugefügt.
-
Meldungen
des Sitzungsmanagers
-
Der
Sitzungsmanager 206 empfängt und erzeugt Meldungen,
um die Dienste innerhalb einer Sitzung zu verwalten. Andere als
die hier beschriebenen Techniken können benutzt werden, um Dienste
zu starten. Wenn der Sitzungsmanager 206 einen Dienst startet,
sendet er einen Startbefehl an den Server (oder die von der Sitzung
unterrichtete Server-Anwendung). Der Sitzungsmanager 206 kann
einen Startbefehl erzeugen, um erforderliche Dienste, die zum Beispiel
in der Sitzungsdatenbank 202 identifiziert wurden, zu starten.
Als ein weiteres Beispiel kann der Sitzungsmanager 206 einen
Startbefehl senden, um einen erforderlichen Dienst, den es bestimmt
(zum Beispiel über
eine offene TCP-Verbindung zwischen dem Sitzungsmanager 206 und dem
Dienst) und beendet hat, zu reaktivieren.
-
Der
Sitzungsmanager 206 empfängt eine Verbindungsmeldung,
wenn sich ein Benutzer erfolgreich über ein Netzwerk-Terminal 202 mit
dem System verbunden hat. Als Antwort auf die Verbindungsmeldung
verifiziert der Sitzungsmanager 206, dass alle erforderlichen
Dienste gestartet sind, und startet diejenigen Dienste, die noch
nicht laufen. Der Sitzungsmanager 206 sendet eine Meldung
(zum Beispiel eine Verbindungsmeldung), zu den Diensten in der Sitzung,
um E/A an das Netzwerk-Terminal 202 zu
leiten.
-
Wenn
eine Verbindungstrennungsmeldung empfangen wird, sendet der Sitzungsmanager 206 eine Verbindungstrennungsmeldung
an jeden der Dienste in der Sitzung, damit diese nicht mehr E/A
an das Netzwerk-Terminal 202 richten.
-
Der
Sitzungsmanager 206 kann periodisch Statusmeldungen an
das Netzwerk-Terminal 202 senden, um sicherzustellen, dass
das Netzwerk-Terminal 202 weiterhin verbunden ist. Zum
Beispiel kann der Sitzungsmanager 206 die dynamischen Sitzungsaufzeichnungen
der Sitzungsdatenbank 220 untersuchen, um jede Sitzung
zu identifizieren, die gegenwärtig
mit einem Netzwerk-Terminal verbunden sind. Das bedeutet, dass ein Sitzungsmanager 206 das
Statusfeld, das mit einem Netzwerk-Terminal in einer dynamischen
Sitzungsaufzeichnung in der Sitzungsdatenbank 220 verknüpft ist,
untersuchen kann. Der Sitzungsmanager 206 sendet eine Statusanfrage
(zum Beispiel ein "Ping") an jedes mit einer
Sitzung verbundene Netzwerk-Terminal. Wenn vom Netzwerk-Terminal 202 nicht
innerhalb einer gewissen Zeitspanne (zum Beispiel 20 Sekunden) für eine bestimmte
Sitzung eine Antwort erhalten wurde, nimmt der Sitzungsmanager 206 an,
dass die Sitzung deaktiviert wurde, und sendet eine Verbindungstrennungsmeldung
an jeden Dienst in der Sitzung und weist sie an, ihre Anzeigefunktion
zu beenden.
-
Das
Netzwerk-Terminal 202 beantwortet eine Statusabfrage (z.B.
Ping) vom Sitzungsmanager 206 entweder mit einem Status "Karte drinnen" oder "Karte draußen". Wenn ein Status "Karte draußen" vom Netzwerk-Terminal 202 empfangen
wurde, sendet der Sitzungsmanager 206 eine Verbindungstrennungsmeldung an
jeden der Dienste der Sitzungen.
-
Wenn
der Status "Karte
drinnen" als Antwort
auf eine Statusabfrage gesendet wird, gibt das Terminal 202 auch
an, wie häufig
die Karte in den Kartenleser 216 eingeschoben wurde, die
Zahl der Sekunden seit einem Karteneinschieben, und die Karten-ID.
Die Karten-ID ist zum Beispiel der Wert einer Sitzungs-ID für die Sitzung
eines Benutzers. Der Sitzungsmanager 206 behält zumindest
die letzte Statusinformation vom Netzwerk-Terminal 202,
um die neue Statusinformation mit der vorangegangenen Statusinformation
zu vergleichen. Wenn zum Beispiel die Häufigkeit des Einschiebens oder
die Zahl der Sekunden für
das Einschieben von der letzten Statusinformation abweicht, erachtet
der Sitzungsmanager 206 die Sitzung als deaktiviert. In diesem
Fall sendet der Sitzungsmanager 206 eine Verbindungstrennungsmeldung
an die Dienste der Sitzung.
-
Wenn
ein Dienst gestartet ist, zum Beispiel von einer Server-Anwendung,
die von der Sitzung unterrichtet ist, wird eine Dienstverbindungsmeldung
an den Sitzungsmanager 206 gesendet. Wenn der Dienst eine geeignete
Berechtigung hat, fügt
der Sitzungsmanager 206 den Dienst zur Liste der Dienste
der Sitzung hinzu, und sendet eine Meldung an den Dienst, um E/A
an das Netzwerk-Terminal 202 zu
richten.
-
Authentifizierungsmanager
-
Der
Authentifizierungsmanager ist für
die Gewährleistung
der Legitimität
eines Benutzers verantwortlich, und für die Zuteilung eines Benutzers
zu den Sitzungen. Während
des Startprozesses (welcher nachfolgend im Detail beschrieben wird)
findet ein Authentifizierungsaustausch statt, um den Benutzer in
einer Ausführungsform
der Erfindung zu authentifizieren. Eine Authentifizierung kann jeden
Mechanismus beinhalten, der die Identität des Benutzers am System identifiziert.
Zum Beispiel kann ein Schlüsselpasswort
eingegeben werden, oder können
biometrische Daten erhoben werden, um den Benutzer zu authentifizieren.
-
Die
Authentifizierungsdatenbank 218 besitzt Benutzer- und Sitzungsinformationen,
auf die vom Authentifizierungsmanager 204 zugegriffen werden
kann. In einer Ausführungsform
der Erfindung ist das Format des Datensatzes, das in der Authentifizierungsdatenbank 218 enthalten
ist, wie folgt:
Benutzer-ID Geheim PIN Sitzungs-Host Sitzungs-Port
Sitzungs-ID
-
Die
Felder Benutzer-ID und Geheim beinhalten die gleichen Werte, wie
diejenigen, die in der Chipkarte des Benutzers abgelegt sind. Die
Werte der Benutzer-ID und von Geheim werden typischerweise erhoben, wenn
der Benutzer für
die Systembenutzung freigeschaltet wird. In einer Ausführungsform
der Erfindung enthält
das Feld Geheim einen 128-Bit Wert. Das PIN-Feld ist die persönliche Identifikationsnummer
(PIN), welche dem Benutzer bekannt ist, und die während der
Authentifizierung vom Authentifizierungsmanager 204 abgefragt
wird. Die Benutzer-ID, Geheim und PIN-Werte werden benutzt, um einen Benutzer
zu authentifizieren. Die Authentifizierungsdatenbank 218 können andere
Informationen, wie ein Passwort oder biometrische Daten, enthalten,
die, wenn sie benutzt werden, einen Benutzer authentifizieren.
-
Das
Feld Sitzungs-Host identifiziert den Rechenserviceprovider (zum
Beispiel einen Server), der den Sitzungsmanager 206, der
die aktuelle Sitzung des Benutzers verwaltet, ausführt. Das
Feld Sitzungs-Port identifiziert den Port für die Kommunikation mit dem
Sitzungsmanager 206. Das Feld Sitzungs-ID besitzt einen eindeutigen
Identifizierer für
den Sitzungsmanager 206. Wenn die Authentifizierung erfolgreich
ist, werden die Felder Sitzungs-Host, Sitzungs-Port und Sitzungs-ID
benutzt, um den Sitzungsmanager 206 vom Ort des Benutzers
am Netzwerk-Terminal 202 zu benachrichtigen.
-
In
einer Ausführungsform
der Erfindung wird ein Authentifizierungsmechanismus benutzt, um
einen Benutzer zu authentifizieren (6 zeigt
ein Authentifizierungsaufforderungsarbeitsablaufdiagramm gemäß einer
Ausführungsform
der Erfindung). Der Authentifizierungsmanager 204 sendet
eine Authentifizierungsaufforderung an das Netzwerk-Terminal 202,
um die Authentizität
des Benutzers zu verifizieren. Das Netzwerk-Terminal 202 bereitet
eine Authentifizierungsantwort vor, und gibt sie an den Authentifizierungsmanager 204 weiter.
Ist die Antwort auf die Authentifizierungsabfrage wie erwartet,
ist der Benutzer für
den Authentifizierungsmanager 204 verifiziert.
-
Die 5A–5B stellen
ein Authentifizierungsarbeitsablaufdiagramm gemäß einer Ausführungsform
der Erfindung dar. Der Authentifizierungsprozess kann mehr als ein
Mal wiederholt werden, bis die Authentifizierung erfolgreich ist,
oder bis die Zahl der Wiederholungen, oder Runden, eine gewisse
Anzahl überschreitet.
Bei Schritt 502 wird ein Identifizierer, der die Zahl der
Authentifizierungsrunden repräsentiert,
auf einen Anfangswert von Null gesetzt. Bei Schritt 504 wird
eine Zufallszahl, die als Authentifizierungsaufforderungsnummer
benutzt wird, erzeugt. Bei Schritt 506 sendet der Authentifizierungsmanager 204 einen
Befehl N_AUTHENTICATE an das Netzwerk-Terminal 202, ebenso
wie ein Paket von Informationen für den Authentifizierungsprozess.
-
In
einer Ausführungsform
der Erfindung werden die folgenden Informationen zusammen mit dem
Befehl N_AUTHENTICATE gesendet:
Code Identifizierer Länge WertGröße Wert
-
Das
Code-Feld identifiziert den Informationstyp, der im Informationspaket
enthalten ist. Zum Beispiel besagt ein Wert "1",
dass das Informationspaket eine Authentifizierungsabfrage enthält. Das
Identifizierer-Feld besitzt einen Wert (zum Beispiel den Runden-Indikator)
der im Schritt 502 erzeugt wurde. Das Feld Länge identifiziert
die Länge
des Informationspakets. Das Wert-Feld besitzt die Zufallszahl, oder
den Wert der Authentifizierungsabfrage, der in Schritt 504 erzeugt
wurde. WertGröße identifiziert
die Größe des Wertfeldes (zum
Beispiel 128 Bit).
-
Bei
Schritt 508 sendet der Authentifizierungsmanager Rendering-Befehle
an das Netzwerk-Terminal 202 und veranlasst den Benutzer
die Benutzer-PIN einzugeben. Bei Schritt 510 wartet der
Authentifizierungsmanager 204 auf eine Antwort vom Netzwerk-Terminal 202 oder
auf eine Zeitüberschreitung.
-
Wenn
bei Schritt 510 eine Zeitüberschreitung erfasst wurde,
fährt die
Verarbeitung bei Schritt 514 fort, um festzustellen, ob
die maximale Anzahl von Runden überschritten
wurde. Ist dies nicht der Fall, fährt die Verarbeitung bei Schritt 518 fort,
um den Identifizierer um Eins weiterzuzählen und fährt bei Schritt 504 mit
der Verarbeitung fort, um eine neue Authentifizierungsrunde zu beginnen.
Wenn bei Schritt 514 festgestellt wird, dass die maximale
Anzahl von Runden erreicht ist, wird die Verarbeitung mit Schritt 516 fortgesetzt,
bei der der Authentifizierungsmanager 204 Rendering-Befehle an das Netzwerk-Terminal 202 sendet,
die einen Fehler anzeigen, womit der Authentifizierungsprozess endet.
Rendering-Befehle können
zum Beispiel Teil eines Befehlprotokolls sein, der für die Kommunikation
mit dem Netzwerk-Terminal 202 und seinen Periphervorrichtungen benutzt
wird.
-
Eine
Authentifizierungsroutine beinhaltet vom Authentifizierungsmanager
an das Netzwerk-Terminal 202 gesendete Befehle zum Erfassen
der PIN-Eingabe durch den Benutzer und das Erzeugen einer Antwort. Das
Netzwerk-Terminal 202 erzeugt einen Antwortwert, der die
Ausgabe einer Hashfunktion (d.h., ein Hash-Wert oder eine Authentifizierungsantwort)
von einer Eingabe, einschließlich
der Benutzer-ID, dem Wert des Identifizierers, der Wert von Geheim,
der in der Chipkarte des Benutzers abgelegt ist und der Wert der Authentifizierungsabfrage
(z.B. die in Schritt 504 erzeugte Zufallszahl).
-
Eine
Hash-Funktion kann Eingaben variabler Länge akzeptieren und konvertiert
sie in eine Ausgabe fester Länge
(ein Hash-Wert). Ein Beispiel einer Hash-Funktion nimmt die Eingabe
und gibt ein Byte wieder, das aus dem ausschließlichen Oder (XOR) aller Eingabebytes
besteht. Es gibt viele andere Beispiele für Hash-Funktionen, die von
Ausführungsformen
der Erfindung benutzt werden können.
Die Funktion hmac_md5 (RFC2104) ist ein Beispiel für eine Hash-Funktion,
die in einer Ausführungsform
der Erfindung benutzt wird, um eine Antwort zu erzeugen.
-
Das
folgende Paketformat wird vom Netzwerk-Terminal 202 benutzt,
um die Antwort gemäß einer
Ausführungsform
der Erfindung an den Authentifzierungsmanager 204 zu senden.
Code
Identifizierer Länge
WertGröße Wert
Benutzer-ID
-
Das
Code-Feld ist auf den Wert "2" gesetzt, was anzeigt,
dass das Informationspaket eine Authentifizierungsantwort enthält. Das
Wert-Feld besitzt die Authentifizierungsantwort (zum Beispiel das
Ergebnis einer Hash-Funktion). Das Feld Benutzer-ID enthält die Benutzer-ID
des Benutzers.
-
Wenn
der Authentifizierungsmanager 204 (bei Schritt 510)
feststellt, dass er eine Antwort vom Netzwerk-Terminal 202 empfangen
hat, fährt
er bei Schritt 512 mit der Verarbeitung fort und überprüft, ob der
Identifizierer, der vom Netzwerk-Terminal 202 zurückgegeben
wurde, zu dem Identifizierer passt, der vom Authentifizierungsmanager 204 erzeugt
wurde. Ist dies der Fall fährt
die Ver arbeitung mit Schritt 520 fort, um die Antwort,
die vom Netzwerk-Terminal 202 zurückgegeben wurde, zu untersuchen.
-
Bei
Schritt 520 bestimmt der Authentifizierungsmanager 204,
ob die Authentifizierungsantwort zu der vom Authentifizierungsmanager 204 erwarteten
Antwort passt. Zum Beispiel kann der Authentifizierungsmanager 204 einen
Hash-Wert unter Benutzung seines Identifizierers, der PIN, von Geheim
und des Authentifizierungswerts erzeugen. Wenn der Hash-Wert, der
vom Authentifizierungsmanager 204 erzeugt wurde, zu der Authentifizierungsantwort
passt, die vom Netzwerk-Terminal 202 erzeugt wurde, ist
die Authentifizierung teilweise erfolgreich. Der Authentifizierungsmanager überprüft auch,
ob die Verbindungsnetzwerkadresse des Netzwerk-Terminals 202 und
die Benutzer-ID des Benutzers gültig
sind. Wenn die Authentifizierungsantwort, die Verbindungsnetzwerkadresse
und die Benutzer-ID verifiziert sind, ist die Authentifizierung
erfolgreich. Wenn nicht, hat die Authentifizierung fehlgeschlagen.
-
Wenn
die Authentifizierung erfolgreich ist, fährt die Verarbeitung mit Schritt 528 fort,
um einen Befehl N_AUTHENTICATE zu senden. Das Format des Befehls
ist gemäß einer
Ausführungsform
der Erfindung wie folgt:
Code Identifizierer Länge
-
Das
Code-Feld besitzt einen Wert von "3",
um anzuzeigen, dass der Benutzer erfolgreich authentifiziert wurde.
Die Verarbeitung fährt
mit Schritt 530 fort, um Rendering-Befehle zum Netzwerk-Terminal 202 zu senden,
die anzeigen, dass der Sitzungsmanager 206 mit Benutzern
einer oder mehrerer Benutzersitzungen verbunden ist. Bei Schritt 532 benachrichtigt
der Authentifizierungsmanager den Sitzungsmanager 206,
dass der Benutzer über
das Netzwerk-Terminal 202 mit dem System verbunden ist.
Der Authentifizierungsmanager 204 sendet die Verbindungsnetzwerkadresse
des Netzwerk-Terminals 202 und die Sitzungs-ID des Sitzungsmanagers 206 an
den Server, der den Sitzungsmanager 206 ausführt (das
heißt
den in dem Feld Sitzung-Host identifizierten Server der Authentifizierungsdatenbankdatensatz
des Benutzers) bei Schritt 532.
-
Wenn
die Authentifizierung fehlgeschlagen ist, fährt die Verarbeitung mit Schritt 522 fort,
um einen Befehl N_AUTHENTICATE zu senden. Wie bei einer erfolgreichen
Authentifizierung beinhaltet der Befehl N_AUTHENTICATE ein Code-Feld,
das den Status des Authentifizierungsprozesses anzeigt. Ein Code-Wert von "4" wird zum Beispiel benutzt, um eine
fehlgeschlagene Authentifizierung anzuzeigen. Die Verarbeitung fährt mit
Schritt 524 fort, um Rendering-Befehle an das Netzwerk-Terminal 202 zu
senden, die anzeigen, dass die Authentifizierung fehlgeschlagen
ist, und die den Benutzer anweisen, die Chipkarte aus dem Chipkartenleser 216 zu
nehmen.
-
Der
Authentifizierungsprozess endet mit Schritt 526.
-
Der
mit Bezug auf die 5A–5B beschriebene
Prozess ist ein Beispiel eines Authentifizierungsprozesses. Es sollte
klar sein, dass jede andere Authentifizierungstechnik mit Ausführungsformen
der Erfindung benutzt werden kann. In einer alternativen Ausführungsform
wird vom Benutzer nicht verlangt, eine PIN einzugeben. Die Benutzerkarte
im Kartenleser 216 ist ausreichend, um den Benutzer zu
authentifizieren. Die Benutzer-ID und der Geheimwert können mit
dem Identifizierer und der vom Authentifizierungsmanager 204 erhaltenen
Authentifizierungsantwort hash-codiert werden, um eine Antwort auf
eine Authentifizierungsabfrage vom Authentifizierungsmanager 204 zu
erzeugen. Auf diese Weise kann sich ein Benutzer auf einfache Weise mit
den Benutzerdiensten verbinden, indem er eine Karte mit gültigen Informationen
in den Kartenleser 216 einschiebt.
-
Weiterhin
sollte ersichtlich sein, dass Ausführungsformen der Erfindung
benutzt werden können,
bei denen keine Authentifizierung eines Benutzers durchgeführt wird.
Zum Beispiel kann in einer vertrauenswürdigen oder sicheren Umgebung
kein Bedarf bestehen, die Authentizität eines Benutzers zu verifizieren.
Daher wird in einer Ausführungsform
der Erfindung ein Benutzer mit einer Sitzung verbunden, ohne dass
er zuvor durch den Sitzungsmanager 204 authentifiziert
worden ist. Der Benutzer muss nur eine Identifikation (zum Beispiel
eine Benutzer-ID) bereitstellen. Wenn der Benutzer eine gültige Benutzer-ID
bereitstellt, wird dem Benutzer Zugang zu der Sitzung, die mit dieser
Benutzer-ID verbunden ist, gewährt.
-
Wenn
der Benutzer die Verbindung zum Netzwerk-Terminal 202 trennt,
wird der Authentifizierungsmanager informiert, wobei dieser den
Sitzungsmanager 206 von der getrennten Verbindung informiert.
Zum Beispiel informiert der Kartenleser 216 das Netzwerk-Terminal 202 darüber, dass
der Benutzer die Chipkarte vom Chipkartenleser 216 entfernt
hat. Das Netzwerk-Terminal 202 informiert den Authentifizierungsmanager
von der getrennten Verbindung. Der Authentifizierungsmanager 204 informiert
den Sitzungsmanager 206 darüber, dass der Benutzer seine
Verbindung zum Netzwerk-Terminal 202 getrennt
hat. Der Sitzungsmanager 206 benachrichtigt jeden der Dienste
in der Benutzersitzung.
-
Authentifizierungsroutine
-
Der
Authentifizierungsprozess kann eine Authentifizierungsabfrage beinhalten,
die vom Authentifizierungsmanager 204 ausgelöst wurde.
Die 6 zeigt ein Arbeitsablaufdiagramm für eine Authentifizierungsroutine
zum Handhaben einer Authentifizierungsabfrage gemäß einer
Ausführungsform
der Erfindung. Die Authentifizierungsroutine wird vom Netzwerk-Terminal 202 als
Antwort auf eine Authentifizierungsabfrage ausgeführt, die
vom Authentifizierungsmanager 204 empfangen wurde.
-
Bei
Schritt 602 wird vom Benutzer die Schlüsseleingabe gelesen, bis eine
Eingabe- oder Enter-Taste gedrückt wird.
Die Schlüsseleingabe
wird bei Schritt 604 in ASCII-Zeichen übersetzt. Bei Schritt 606 wird
eine Hash-Funktion benutzt, um einen Hash-Wert zu erzeugen, oder
eine Authentifizierungsantwort, durch eine Aneinanderreihung von
Identifizierer, PIN, Geheim und Authentifizierungsabfragewerten.
Die Authentifizierungsantwort wird bei Schritt 608 an den
Authentifizierungsmanager 204 gesendet. Bei Schritt 610 erwartet
das Netzwerk-Terminal 202 eine Antwort vom Authentifizierungsmanager 204,
oder eine Zeitüberschreitung.
Wenn eine Antwort oder eine Zeitüberschreitung
stattfindet, endet die Authentifizierungsroutine bei Schritt 614.
-
Initialisierung
des Netzwerk-Terminals
-
Das
Netzwerk-Terminal 202 führt
eine Initialisierung aus, wenn es zum ersten Mal eingeschaltet wird. Wenn
kein Benutzer das Netzwerk-Terminal 202 benutzt, kann sich
das Netzwerk-Terminal 202 in einem inaktiven Zustand befinden,
wenn es eingeschaltet wird. Ein Benutzer kann das Netzwerk-Terminal 202 von
seinem inaktiven Zustand unter Benutzung einer der hierin beschriebenen
Techniken aufwecken. Es sollte klar sein, dass andere Techniken
benutzt werden können,
um das Netzwerk-Terminal aufzuwecken.
-
3 zeigt
ein Arbeitsablaufdiagramm für
die Initialisierung des Netzwerk-Terminals 202 als Antwort auf
die Einschaltoperation gemäß einer
Ausführungsform
der Erfindung. Bei Schritt 302 wird eine Feststellung getroffen,
ob eine Anschaltoperation vorgenommen wurde. Wenn nicht, fährt die
Verarbeitung fort und wartet auf eine Anschaltoperation. Bei Schritt 304 wird
vom Netzwerk-Terminal 202 eine Anfrage an das Netzwerk gerichtet,
um die Netzwerkverbindung zu testen. Bei Schritt 306 wird
eine Feststellung getroffen, ob eine Antwort erhalten wurde. Wenn
nicht, fährt
die Verarbeitung mit Schritt 310 fort, um einen Fehler
zu erzeugen, und fährt
die Verarbeitung mit Schritt 302 fort, um eine Anschaltoperation
abzuwarten.
-
Wenn
bei Schritt 306 festgestellt wurde, dass eine Antwort erhalten
wurde, fährt
die Verarbeitung mit Schritt 308 fort und sendet eine Bestätigungs-(ACK-)meldung,
und kann eine Initialisierung des Netzwerk-Terminals 202 in
Schritt 402 der 4A fortgesetzt
werden.
-
Die 4A–4C zeigen
einen Arbeitsablauf gemäß einer
Ausführungsform
der Erfindung für
die Initialisierung des Netzwerk-Terminals 202 als Antwort
auf eine Aufweckoperation. Bezug nehmend auf die 4A wartet
das Netzwerk-Terminal 202 auf eine Benachrichtigung der
Aufweckoperation. In einer Ausführungsform
der Erfindung besteht die Aufweckoperation im Einführen einer
Chipkarte des Benutzers in den Kartenleser 216.
-
Wenn
festgestellt wurde, dass eine Chipkarte in den Kartenleser 216 eingeführt wurde,
fährt die
Verarbeitung bei Schritt 404 fort und sendet eine Anfrage,
um die Kommunikationsnetzwerkadresse des Authentifizierungsmanagers 204 und
des Netzwerk-Terminals 202 zu erhalten. Alternativ kann
die Chipkarte des Benutzers mit der Verbindungsnetzwerkadresse vorprogrammiert
werden. Das Netzwerk-Terminal 202 kann die Verbindungsnetzwerkadresse
zum Beispiel über
den Kartenleser 216 von der Chipkarte lesen.
-
Bei
Schritt 406 erwartet das Netzwerk-Terminal 202 eine
Antwort oder eine Zeitüberschreitung.
Wenn es zu einer Zeitüberschreitung
kommt, fährt
die Verarbeitung mit Schritt 412 fort, um festzustellen,
ob die maximale Anzahl von Versuchen überschritten wurde. Wenn die
maximale Anzahl von Versuchen überschritten wurde,
fährt die
Verarbeitung mit Schritt 410 fort, um einen Fehler zu erzeugen.
Wenn die maximale Anzahl von Versuchen nicht überschritten wurde, fährt die
Verarbeitung mit Schritt 414 fort, um die Zahl der Versuche zu
inkrementieren, und fährt
die Verarbeitung mit Schritt 404 fort, um erneut eine Anfrage
nach der Verbindungsnetzwerkadresse zu senden.
-
Wenn
eine Antwort auf die Anfrage erhalten wurde, fährt die Verarbeitung mit Schritt 408 fort
und sendet einen ACK. Die Verarbeitung fährt mit Schritt 416 von 4B fort.
Bei Schritt 416 sendet das Netzwerk-Terminal 202 eine
Startanfrage an den Authentifizierungsmanager 204. Bei
Schritt 418 wird eine Wiederholungszeit gesetzt, während der
das Netzwerk-Terminal 202 auf eine Antwort auf die Startanfrage
wartet. Bei Schritt 420 wird eine Variable gesetzt, die
anzeigt, dass das Netzwerk-Terminal 220 auf eine Antwort
auf die Startanfrage wartet. Bei Schritt 422 wartet das
Netzwerk-Terminal 202 auf eine Antwort auf die Startanfrage.
-
Wenn
festgestellt wurde, dass keine Antwort erhalten wurde, fährt die
Verarbeitung mit Schritt 424 fort, um festzustellen, ob
die Wiederholungszeit überschritten
wurde. Ist dies nicht der Fall, fährt die Verarbeitung mit Schritt 422 fort,
um auf eine Antwort zu warten. Wenn die Wiederholungszeit überschritten
wurde, fährt
die Verarbeitung mit Schritt 426 fort, um festzustellen,
ob die maximale Anzahl von Versuchen überschritten wurde. Wenn nicht,
fährt die
Verarbeitung mit Schritt 428 fort, um einen Fehler zu erzeugen,
und um zu Schritt 416 zurückzukehren, um die Startanfrage
erneut zu senden. Ist dies nicht der Fall, fährt die Verarbeitung mit Schritt 430 fort,
erhöht
die Anzahl der Versuche und setzt die Wiederholungszeit zurück. Bei
Schritt 432 wird die Startanfrage erneut gesendet und fährt die
Verarbeitung mit Schritt 444 fort, um festzustellen, ob
die Karte vom Kartenleser 216 entfernt wurde.
-
Wenn
bei Schritt 422 festgestellt wurde, dass eine Antwort erhalten
wurde, fährt
die Verarbeitung mit Schritt 434 der 4C fort.
Bei Schritt 434 untersucht das Netzwerk-Terminal 202 die
anfänglich
in Schritt 420 gesetzte Variable um festzustellen, ob es
auf eine Antwort auf die Startanfrage wartet. Ist dies der Fall,
fährt die
Verarbeitung mit Schritt 436 fort, um festzustellen, ob
die Antwort eine Authentifizierungsmeldung ist. Ist dies nicht der
Fall, fährt
die Verarbeitung mit Schritt 424 fort, um die Startanfrage
zu wiederholen, wenn die maximale Anzahl der Versuche noch nicht überschritten
wurde. Wenn bei Schritt 436 festgestellt wurde, dass eine
Authentifizierungsmeldung erhalten wurde, fährt die Verarbeitung mit Schritt 438 fort,
um die Variable Waiting_For_Startup auf Nein (das heißt "N") zu setzen. Die Verarbeitung fährt bei
Schritt 440 fort, um die Authertifizierungsabfrage bei
den Schritten 440 und 442 zu verarbeiten. Die
Authentifizierungsabfrage kann zum Beispiel wie oben mit Bezug auf
die 5A–5B und 6 beschrieben
durchgeführt
werden.
-
Wenn
bei Schritt 434 festgestellt wurde, dass das Netzwerk-Terminal 202 nicht
auf eine Antwort auf die Startanfrage wartet, fährt die Verarbeitung mit den
Schritten 440 und 442 fort, um die Meldung zu
behandeln (zum Beispiel Rendering-Befehle, um vom Dienst 234 erzeugte
Ausgaben graphisch darzustellen).
-
Bei
Schritt 444 wird eine Feststellung getroffen, ob der Benutzer
die Chipkarte vom Chipkartenleser 216 entnommen hat. Wenn
der Benutzer die Karte dem Kartenleser 216 entnimmt, sendet
das Netzwerk-Terminal 202 bei Schritt 448 eine
Verbindungstrennungsmeldung an den Authentifizierungsmanager 204.
Das Netzwerk-Terminal 202 wartet auf eine Bestätigungs-(ACK-)meldung
vom Authentifizierungsmanager 204. Wenn die ACK-Meldung
erhalten wurde, löscht
das Netzwerk-Terminal 202 bei Schritt 450 den
Bildschirm und kehrt bei Schritt 402 zurück, um auf
einen anderen Benutzer zu warten, damit dieser eine Chipkarte in
den Kartenleser 216 einführt.
-
Wenn
bei Schritt 444 festgestellt wurde, dass der Benutzer die
Chipkarte nicht vom Kartenleser 216 entnommen hat, fährt die
Verarbeitung mit Schritt 446 fort, um festzustellen, ob
das Netzwerk-Terminal
auf eine Antwort auf seine Startanfrage wartet. Ist dies der Fall,
fährt die
Verarbeitung mit Schritt 422 fort, um festzustellen, ob
eine Antwort erhalten wurde. Wenn das Netzwerk-Terminal nicht auf
eine Antwort von der Startanfrage wartet, fährt die Verarbeitung mit den
Schritten 440 und 442 fort, um beliebige Meldungen,
die an das Netzwerk-Terminal 202 gesendet wurden, zu verarbeiten.
-
Meldungsformat
-
In
einer Ausführungsform
der Erfindung wird eine Verbindung zum Netzwerk-Terminal 202 über einen UDP-(User
Datagram Protocol)Port eingerichtet. Dies bedeutet, dass Pakete über eine
UDP-Verbindung gesendet
werden und an einem UDP-Port empfangen werden. Der Ziel-UDP-Port
identifiziert auf eindeutige Weise die Verbindung. Die Paketlänge und
die Prüfsummeninformation
werden im UDP-Header mitgeliefert. Die Puffergröße passt in eine Ethernet-MTU
(Maximum Transfer Unit) mit IP/UDP-Headern. Daten werden in einer Netzwerk-Byteordung
(big-endian) gesendet.
-
Es
sollte klar sein, dass andere Protokolle anstelle von UDP benutzt
werden können.
Zum Beispiel können
Protokolle wie ein ATM, AAL5 (AAL oder ATM Adaptionslayer) benutzt
werden.
-
Zusammenfassend
sind ein Verfahren und eine Vorrichtung für das Sitzungsmanagement und
die Benutzerauthentifizierung beschrieben. Besondere Ausführungsformen,
die hierin beschrieben sind, dienen nur Veranschaulichungszwecken
und sollen nicht die hier vorgestellte Erfindung beschränken. Die
Erfindung wird durch die Ansprüche
definiert und durch den vollen Umfang ihrer Äquivalente.
-
Anlage A
-
Beispiel für ein Befehlsprotokoll
Renderingt-Befehle
-
Kabelprotokoll-Befehlsformate
-
Alle
Daten werden über
das Netzwerk in einer Netzwerk-Byteordnung (big-endian) gesendet,
und Bitfelder werden von MSB in LSB gepackt.
-
Das
Basis-Rendering-Befehlsformat ist:
-
-
-
-
Die
Sequenznummer wird für
jeden Befehl inkrementiert. Sequenznummern können nicht alle Null sein,
ausgenommen für
einen EPOCH-ändernden
Flush-Befehl, nachfolgend beschrieben. Rechtecke können nicht
umgebrochen werden. Das heißt
x + Breite < 0x10000
und y + Höhe < 0x10000.
-
Ein
zusätzlicher
Informationsbefehl wird in einem anderen Format definiert:
-
-
Die
Sequenznummer eines Flush-Befehls ist der gleiche, wie die Sequenznummer
des vorangegangenen Befehls, mit der Ausnahme von EPOCH-Änderungen
(siehe die nachfolgende Beschreibung). Das bedeutet, dass Sequenznummern
nur inkrementiert werden, wenn es Pixeländerungen oder EPOCH-Änderungen
gibt.
-
Befehlsbeschreibungen
-
- Set: Setzt das Rechteck definiert durch <x, y> <Breite, Höhe> auf die nachfolgenden Pixelwerte.
Es gibt für jeden
Pixel in der Region einen Pixelwert. Die Anordnung erfolgt in Zeilen;
das heißt
es gibt eine "Breite" – Pixelwerte für Pixel
bei <x, y> bis <x + Breite – 1, y> gefolgt durch Pixel
bei <x, y + 1> bis <x + Breite – 1, y +
1>, etc. <0,0> beschreibt die obere
linke Ecke.
- Fill: Setzt alle Pixel im Rechteck definiert durch <x, y> <Breite, Höhe> auf den einzigen 32-Bit Wert.
- Glyph: Der 32-Bit Wert wird am Pixelort entsprechend eines jeden
Bits im Bitmap platziert, Positionen mit Null-Bit Werten werden
nicht verändert,
Das Bitmap wird in Zeilen ausgelegt (y, y + 1, ...), unter Benutzung
von MSB bis LSB in jedem Byte.
- Copy: Kopiert das Rechteck definiert durch <von_x von_y> <Breite,
Höhe> auf das durch <x, y> <Breite, Höhe> definierte Rechteck. Der Client miss
sicherstellen, dass überlappende
Regionen korrekt kopiert werden (siehe Solaris bstring (3)).
- Bilevel: Die zwei 32-Bit Werte C0 und C1 werden an dem Pixelort
platziert, korrespondierend mit jeder 0 und einem Bit, entsprechend
im Bitmap. Das Bitmap ist in Zeilen ausgelegt (y, y + 1, ...), unter
Benutzung von MSB bis LSB in jedem Byte.
- Set24: Setzt das durch <x,
y> definierte Rechteck <Breite, Höhe> auf die nachfolgenden
Pixelwerte. Die Pixelwerte sind gepackt, so dass es vier Pixel gibt,
definiert durch drei 32-Bit Werte, das heißt: <bgrb, grbg, rbgr>. Wenn die Breite kein Vielfaches von
4 ist, ist das Ende gepackt und dasselbe wie oben mit den verbleibenden Werten
und auf den nächsten
32-Bit Wert aufgefüllt.
Es gibt einen Pixelwert für
jeden Pixel in der Region. Das Layout ist in Zeilen; das heißt es gibt "Breite"-Pixelwerte für Pixel
bei <x, y> bis <x + Breite – 1, y> in ((3 – Breite +
3 > : 4 > 32-Bit Worte gefolgt
von Pixeln bei <x,
y + 1> bis <x – Breite – 1, y +
1>, etc. <0,0> beschreibt die obere
linke Ecke.
- Set YUV Image: Setzt das durch <x, y> <Breite, Höhe> definierte Rechteck
auf die nachfolgenden Pixelwerte. Das Bild im CCIR/ITU.BT-501 Y'CbCr-(oder YUV-)Format
mit Source_W x Source H_Pixeln wird nach RGB decodiert. Die Chroma-Elemente müssen in
der horizontalen und/oder vertikalen Richtung spezifiziert unterabgetastet
werden und müssen
vor ihrer Transformation überabgetastet
werden.
Die Werte von Chroma_Sub_X und Chroma_Sub_Y (X_Subsample
und entsprechend Y_Subsample) werden wie folgt codiert:
0 – keine
Chroma-Werte; monochromes Bild.
1 – unterabgetastet mit 1 (das
heißt
kein Unterabtasten)
2 – Unterabtasten
mit Faktor 2
3 – unterabgetastet
mit Faktor 4
4–7 – undefiniert/reserviert
LUMA_Encoding-Werte
sind:
0 – y
(LUMA) spezifiziert als 8-Bit Daten ohne Vorzeichen
1 – y (LUMA)
besteht aus 4-Bit quantisierten DPCM-Werten (siehe nachfolgend)
2,
3 – undefiniert/reserviert
RFU
ist für
den zukünftigen
Gebrauch reserviert und muss Null sein.
Nach der Decodierung
wird das RGB-Bild, sofern erforderlich, auf Breite x Höhe Pixel
hochskaliert. Das sich ergebende Bild wird am Ort <x, y> angezeigt.
Beachte:
Wenn sowohl CHROMA_Sub_X und CHROMA_Sub_Y Null sind ist das Bild
monochrom (nur LUMA) und keine U- oder V-Daten liegen vor. Es ist
unzulässig,
einen Satz auf Null zu haben und den anderen auf nicht Null.
Die
Komponentenordnung ist Y (oder CCIR-601Y'), U (CCIR-601Cb), und dann V (CCUR-601Cr).
- Set Cursor: Dieser Befehl bestimmt das Erscheinungsbild des
Cursors auf dem lokalen Display (bewegt und angewiesen durch Pointer
[0]). Der Cursor ist maximal ein 64 × 64 Block, kann aber jede
Größe kleiner
als diese haben. Wenn der Maskenwert für einen bestimmten Pixel „1" ist, wird der entsprechende
Cursor-Pixel angezeigt; wenn die Maske "0" ist,
ist der Cursor an dieser Stelle transparent. Wenn die Maske "1" ist, so ist der Pixelwert "c0" wenn der Wert "0" ist, und "c1" wenn
der Wert "1" ist. Wenn die Maske "0" ist, sollte der Pixelwert ebenfalls
Null sein. Eine Maske von "0" und ein Pixelwert
von 1 wird für
die zukünftige
Erweiterung reserviert.
Breite und Höhe können "0" sein,
was anzeigt, dass kein Cursor gezeichnet wird (entsprechend einer
Maske von ausschließlich
Nullen). Das Verfolgen des Pointers erfolgt wie üblich kontinuierlich.
X
und Y bezeichnet den "Hotspot" für den Cursor;
zum Beispiel auf welchem Pixel des Cursorbilds Ereignisse bzw. events
berichtet werden sollen. Dies dient primär dem Stoppen des Cursors an
den Rändern
der Anzeigevorrichtung. X (0, Breite), Y (0, Höhe).
- Set Pointer: Setzt den Ort des Pointers. Pointer (0) kann üblicherweise
gesetzt werden (durch die Maus oder einen Touch Screen) und ist
ein 2D-Anzeigecursor. Dieser Befehl wird für Anwendungen bereitgestellt,
die darauf bestehen, ihren Pointer zu setzen, oder für Anwendungen,
die relative Pointer benötigen
(zum Beispiel zum Rücksetzen
des Cursors auf seine vorherige Position). Als solches gibt es einige
wenige Einschränkungen:
Das
Setzten des Pointers kann überhaupt
nicht funktionieren (zum Beispiel ein Joystick).
Der Pointer-Wert
kann willkürlich
gekappt werden, um die Pointer-Vorrichtung oder den Bildschirm anzupassen.
Der
Benutzer kann fortfahren, den Pointer zu bewegen, nachdem er gesetzt
wurde, aber es wird berichtet, dass eine "Pointer State"-Statusmeldung benutzt wird.
Das
Verhalten des Zurücksetzens
des Pointers für
einen pseudo-relativen Modus kann verschiedene Verhaltensweisen
mit unterschiedlichen Vorrichtungen verursachen; zum Beispiel ein
Touch Screen ist nur setzbar, wenn der Benutzer nicht ein "Dragging" durchführt.
Es
wird Pointern erlaubt bis zu sechs Dimensionen zu haben. Die Zahl
der Dimensionen und die Größe des Befehls
werden durch die DIM-Bits gesetzt. Alle Pointer-Werte haben Vorzeichen,
Zweierkomplement.
- Set Key Locks: Dieser Befehl bestimmt die Sperrwerte für eine Tastatur
mit <INDEX>. Tastatursperren entsprechen
allgemein Lichtern der Tastatur, die durch Software kontrollierbar
sind. Wenn eine Sperrenbedingung angezeigt werden soll, sollte das
Bit in der Maske gesetzt werden, ansonsten sollte das Bit auf Null
gesetzt werden. Da einige Tastaturen die Sperrung lokal implementieren
(zum Beispiel mechanisch) kann das Setzen einer Sperre keinen Effekt
haben. Tasten der Tastatur sollten immer von dem Zustand aus interpretiert
werden, der von der Tastatur berichtet wird. Auf der anderen Seite
wird von einem Host erwartet, einen Befehl „Set Key Lock" auszugeben, wenn
er einen Tastencode für
die Tastatursperre empfangen hat, wenn es das ist, was die Schnittstelle
vorgibt, weil sowohl normale Tastaturen und auch das Terminal nicht
versuchen, die Sperrung normal lokal zu handhaben. Dies liegt daran,
dass das Terminal die Tastatur oder die gewünschte Semantik der Benutzerschnittstelle
nicht versteht.
Das Bitmap für die Tastensperrung resultiert
von der USB-Klassendefinition für
bootfähige
Tastaturen:
0x01 Num Lock
0x02 Caps Lock
0x04 Scroll
Lock
0x08 Compose
0x10 Kana
Alle anderen Bits sind
reserviert – ignoriert
beim Lesen, Null beim Setzen.
- Damage Repair: Dies informiert den Client, dass alle Schadensmeldungen
für die
Sequenznummer SEQ in EPOCH und früher verarbeitet wurden und
dass Reperaturdaten gesendet wurden (siehe den Befehl Damage Back-Channel).
PAD muss Null sein. X, Y, Breite sowie Höhe müssen Null sein.
- Play Audio: Dies spielt eine 48 kHz Audioprobe, und kann in
einen Graphikbefehl-Stream integriert sein.
Eine unbegrenzte
Zahl von Datenströmen
können
vom Terminal empfangen werden, und dies auf der Basis, dass die
zuerst eingetroffenen zuerst bedient werden. Datenströme werden
nach Bedarf alloziert und werden zerlegt, wenn es zu einem Pufferunterlauf
kommt (es gibt keine Daten, die anzuzeigen wären, wenn ihre Zeit gekommen
ist – teilweise
empfangene Puffer werden fehlerverdeckt und abgespielt). Das Terminal
korrigiert eine eventuelle Drift in der Zeitbasis.
Daten werden
mit einem Interleave gesendet, um die Netzwerk-Fehlerverdeckung
zu erleichtern. Eine abgetastete Sequenz wird in eine Interleave-Größe aufgespalten
und es werden höchstens
1 + (Sequenzgröße)/(Interleave-Größe) Proben
pro Paket ausgegeben. Die Proben werden wie folgt ausgewählt: Beachte,
dass die Ordnung, in der die Pakete gesendet werden, zufällig sein
kann (und wahrscheinlich sollten).
Zum Beispiel können für einen
Interleave von 3 und einer Sequenzgröße von 8 die folgenden drei
Pakete gesendet werden: Die Sequenzen sind nummeriert,
so dass das Terminal weiß,
wann eine Fehlerverdeckung vorgenommen werden soll und eine Probensequenz
ausgegeben werden soll.
Proben haben eine Frequenz von 48 kHz,
sind 16 Bit linear, und können
bis zu 16 Kanäle
haben. Zum Beispiel würde
eine Probe mit fünf
Kanälen
10 aufeinander folgende Bytes einnehmen.
Es gibt keine Definition
für die
Zahl der durch das Terminal unterstützten Audiokanäle, und
auch keinen Weg, um dies herauszufinden, aber es können bis
zu 16 Kanäle
gleichzeitig gesendet werden. Da die Zahl der gesendeten Kanäle, von
der Zahl, die das Terminal unterstützt, verschieden sein kann,
wird das Konzept eines Standard-Mix für die ersten acht Kanäle eingeführt. Diese
kann durch Setzen des "Mix"-Feldes deaktiviert
werden, was garantiert, dass gewisse indizierte Kanäle nicht
zusammengemischt werden. Die letzten acht Kanäle werden in dem auf die gleiche
Art und Weise wie die ersten acht Kanäle gemischt, so dass ein Ton
gehört
werden kann. Wenn es genügend
Kanäle
gibt, hängen
die Ergebnisse vom Terminal-Setup ab.
Die standardmäßig zugewiesenen
Kanäle
sind wie folgt: (l = links, r = rechts, r(Ir)
= Nachbar (links, rechts), sw = Subwoofer, cf = Center Fill, c(Ir)
= Mitte (links, rechts), oben = Mitte – Mitte)
Wenn es zum Beispiel
zwei Lautsprecher gibt und mit einem Kanal mit aktiviertem Standard-Mix
gesendet wird, wird der eine Kanal sowohl zum linken als auch zum
rechten Lautsprecher gesendet. Umgekehrt, wenn dem gleichen Terminal
sechs Kanäle
gesendet werden, die Kanäle
0, 2, 4, 5 werden gemischt und an den linken Lautsprecher gesendet,
und die Kanäle
1, 3, 4, 5 werden gemischt und an den rechten Lautsprecher gesendet.
Die
Terminal-Lautsprecher werden in der gleichen Art und Weise angeordnet.
Die
volle Mischmatrix ist in der vollen Spezifikation verfügbar.
- Flush: Es kann für
einen Zeitraum nach diesem Befehl möglicherweise keine Befehle
im Anzeigedatenstrom geben; daher ist es für Clients anzuraten, alle noch
nicht durchgeführten
Renderings an den Bildschirm auszugeben. Das Feld EPOCH stellt 32
zusätzliche
Bits höherer
Ordnung für
die Sequenznummern bereit. FILL besteht aus 16 Bytes, die alle auf
0xFF gesetzt werden. Dieser Befehl stellt eine Gelegenheit bereit,
Datenströme
nach einem Signalabfall zu resynchronisieren.
Die Sequenznummer
eines Flush-Befehls ist normalerweise der gleiche, wie der letzte
Nicht-Flush-Befehl. Wenn jedoch ein EPOCH erschöpft ist (das heißt, die
Sequenznummer des letzten Befehls ist 0xFFFFFF), wird ein Flush-Befehl
mit einer Sequenznummer von Null und einer neuen EPOCH-Nummer (inkrementiert
um 1) gesendet.
-
Rückkanalbefehle
Kabelprotokoll-Statusmeldungsformate
-
Das
Basis-Statusmeldungsformat ist wie folgt:
-
-
-
Statusmeldungsbeschreibungen
-
- Keyboard State: Berichtet den Status einer Tastatur mit <INDEX>. Der Ländercode
ist derjenige von der Definition der USB-Geräteklassen für HIDs, Abschnitt 6.2. Die
Sperren sind von der USB-Klassendefinition für bootfähige Tastaturen:
0x01
Num Lock
0x02 Caps Lock
0x04 Scroll Lock
0x08 Compose
0x10
Kana
Der Befehl 'Set
Key Locks' kann
benutzt werden, um diese Sperren zurückzusetzten, und sollten benutzt
werden, wenn ein Sperrenschlüssel
vom Host entdeckt wurde, da die Tastaturen allgemein nicht den Sperrstatus lokal
behandeln können,
und das Terminal sicherlich auch nicht. Andere als die spezifizierten
Bits sind reserviert und sollten ignoriert werden. Beim Setzen sollten
sie alle auf Null gesetzt werden.
Die Modifizierer-Bits sind
alle von der USB-Klassendefinition für bootfähige Tastaturen und wie folgt:
0x01
Left Control
0x02 Left Shift
0x04 Left Alt
0x08 Left
GUI
0x10 Right Control
0x20 Right Shift
0x40 Right
Alt
0x80 Right GUI
Es gibt stets genügend Platz für sechs
Tasten-Scancodes. Alle Tasten (die nicht Modifizierer sind), die
gedrückt werden,
werden auch berichtet, bis zu sechs Tasten. Dies stellt die Fähigkeiten
eines einfachen Roll-Over und des chording bereit. Die Scancodes
sind von der USB-Klassendefinition für bootfähige Tastaturen.
Von besonderer
Bedeutung ist der Code 0x00, der kein Ereignis im Schlitz anzeigt,
und 0x01 in allen Schlitzten deutet an, dass mehr als acht Tasten
gedrückt
wurden. Modifizierer werden weiterhin in diesem Zustand berichtet.
Nachdem weniger als neun Tasten gedrückt wurden, wird das normale
Berichten aufgenommen. Die Berichtreihenfolge ist willkürlich und
reflektiert nicht die Reihenfolge der Ereignisse.
- Pointer State: Berichtet den Zustand des Pointers mit <INDEX>. DIM zeigt die Zahl
der berichteten Dimensionen an: 1, 2, 3, oder 6. Die Schaltflächen sind
von der USB-Klassendefinition
für bootfähige Tasturen,
das Bit 0 ist die primäre
Schaltfläche
(links), und die Zahlen nehmen von links nach rechts zu. Die berichteten
Werte sind alle Absolutwerte und haben Vorzeichen, Zweierkomplement.
- Active Region: Zeigt das Gebiet des logischen Frame Buffers
an der von newt zurückbehalten
wird. Insbesondere ist dieses Gebiet von der "FROM"-Region
des Copy-Rendering-Befehls,
der erfolgreich spezifiziert sein kann. Dieser Bereich kann sich
bei einem gegebenen Client über
die Zeit ändern,
zum Beispiel wegen des Stils des PAD-End-Scan der Schnittstelle
in einer handbetätigten
Vorrichtung. Auch können
verschiedene Client-Vorrichtungen unterschiedliche aktive Bereiche
melden.
- Damage: Zeigt an, dass stromabwärts gerichtete (Rendering-)Befehle
mit den Sequenznummern SEQ_L usw. bis einschließlich der Sequenznummer SEQ_B
in EPOCH nicht durch den Client vom Server empfangen wurden. PAD0
und PAD1 müssen
Null sein.
Der Client wird weiterhin einen Schaden melden,
bis die Nachricht Damage Re pair für die betroffene Sequenznummer
empfangen wird.
Wenn SEQ_L Null ist, muss der gesamte aktuelle
Bildschirm gesendet werden.
Nachdem eine Schadensmeldung für eine gegebene
Sequenznummer gesendet wurde, wird für vorangegangene Sequenznummern
kein neuer Schaden gemeldet. Es ist jedoch erlaubt, zwei oder mehr
Bereiche zusammenfallen zu lassen, um Platz in späteren Statuspaketen
zu sparen.
-
DPCM-YUV-Beschreibung
-
Eine
weitere Kompression von YUV-Daten ist mit der LUMA_Encoding von
1 möglich.
-
LUMA-Daten
werden wie folgt für
jede Zeile codiert:
-
-
LUMA-Daten
sind wie folgt codiert:
-
-
Clamp
ist eine Clamping-Tabelle; clamp[i] ist:
0 if i < 0;
255 if
i > 255;
i otherwise.
-
Der
benutzte Quantisierer ist:
-