-
HINTERGRUND DER ERFINDUNG
-
1. BEREICH DER ERFINDUNG
-
Diese Erfindung bezieht sich auf
den Bereich von vernetzten Computersystemen.
-
2. HINTERGRUND DER ERFINDUNG
-
Computerbenutzer wünschen dauernd
leistungsstärkere
Verarbeitungsvorgänge
in sich ständig ändernden
Computerumgebungen. Das Verarbeitungsparadigma verschiebt sich.
Neue Architekturen kommen auf, die neue Lösungen erfordern, um den Bedarf
an hochleistungsfähigen
Verarbeitungsvorgängen
zu bewältigen.
Eine solche Architektur ist diejenige des Thin-Client-Verarbeitungssystems.
-
In der Thin-Client-Architektur wird
die Funktionalität
des Endbenutzer-Computers bis zu dem Punkt reduziert, daß überwiegend
nurmehr die Fähigkeiten
zur Eingabe- und Ausgabe vorhanden sind. Die Endbenutzer-Einrichtung
ist über
ein Computernetzwerk mit hoher Bandbreite mit einem leistungsfähigeren
Server-Computer verbunden, der alle Funktionen durchführt, die
traditionell dem Personal-Computer zugeordnet waren, wie das Ausführen von
Computerprogrammen und das Verarbeiten von Daten.
-
Daher gibt es eine Tendenz, die Verarbeitung für eine überwiegende
Mehrzahl von Benutzern auf einer kleinen Anzahl von leistungsfähigen Systemen zusammenzuführen bzw.
zu konsolidieren. Die Idee von "Web-hosted" Anwendungen paßt in dieses
Modell. Die tatsächliche
Verarbeitung für
alle Benutzer ist auf diesen gemeinsam verwendeten Client- oder zusammengeführten Clientmaschinen
konzentriert. Sie können
zusammengeführte
Clientmaschinen genannt werden, weil sie die traditionelle Rolle
des Client in einer Client/Server-Architektur spielen, wenn auch
für eine
große
Anzahl von Benutzern, obwohl sie häufig großen Servermaschinen entsprechen bzw.
gleichwertig sind. Diese Art von Architektur ist wirtschaftlich
vorteilhaft, weil typischerweise zu jedem gegebenen Zeitpunkt nur
ein kleiner Teil der Gesamtheit aller Nutzer diese Systeme nutzen
muß.
-
Mitunter ist es wünschenswert, gewöhnliche, bereits
vorhandene Computerprogramme auf einem System zusammengeführter bzw.
gemeinsam genutzter Clients zu betreiben. Gewöhnliche, bereits vorhandene
Computerprogramme wurden typischerweise für Einzelbenutzer-Personalcomputer
oder -Arbeitsplatzrechner bzw.-Workstations konzipiert. Auf Einzelbenutzer-Personalcomputern
oder -Workstations gibt es reichlich Ressourcen, weil sie für die Bedürtnisse
eines einzelnen Benutzers, der auf einer einzelnen Maschine arbeitet,
bestimmt sind. Infolgedessen verbrauchen viele Programme, die für Personalcomputer
und -Workstations geschrieben wurden, auch dann noch Ressourcen
(zum Beispiel Verarbeitungsleistung und wahlfrei zugreifbaren Speicher), wenn
der Benutzer aufhört,
mit ihnen zu interagieren. Zwei Beispiele solcher Anwendungen sind
ein Bildschirmschoner oder ein Web-Browser, die Animationen anzeigen.
-
In der Architektur gemeinsam genutzter
Clients könnte
man 1000 Benutzer des zusammengeführten Client haben, aber nur
100 Endbenutzer-Terminals. Daher kann in diesem Beispiel ein Maximum von
100 der 1000 Benutzer (d. h. 10%) gleichzeitig mit ihren Anwendungen
interagieren. Wenn jedes der nicht verbundenen Benutzerprogramme
fortfahren würde,
auch nur eine vernachlässigbare
Menge von Ressourcen (zum Beispiel 0,2%) zu verbrauchen, würde das
System zusammengeführter
Clients überlastet
und wäre
nicht in der Lage, irgendwelche Aktionen für die angeschlossenen Benutzer
durchzuführen,
weil die 900 inaktiven Benutzerprogramme, von denen jedes 0,2% des
Systems verbraucht, 180% der Ressourcen des zusammengeführten Client
benötigen
würden.
-
Auf einem Einzelbenutzer-System würde eine
kleine Last durch eine ruhende bzw. schlummemde Anwendung wie einen
Bildschirmschoner eine kleine, normalerweise nicht wahrnehmbare,
zusätzliche
Last auf dem System darstellen. Jedoch auf einem System zusammengeführter Clients
kann diese kleine Last mit zig, hunderten oder sogar tausenden Benutzern
des gemeinsam genutzten Systems multipliziert werden. Daher Kann
die kleine zusätzliche Überlast,
die diese Programme einführen
bzw. mit sich bringen, die gesamten Ressourcen auf dem gemeinsam
genutzten System verbrauchen, selbst wenn keine nützliche
bzw. brauchbare Arbeit verrichtet wird.
-
Die Entwicklung, die zu diesem Problem
geführt
hat, versteht man besser, wenn man die Entwicklung der Verarbeitung
im Netzwerk bzw. Netzwerk-EDV betrachtet. Das Wachsen des Internet
hat zur vorgeschlagenen Verwendung sogenannter "Netzwerk-Computer" geführt.
Ein Netzwerk-Computer
ist eine abgespeckte Version eines Personal-Computers mit weniger
Speicherplatz, weniger Hauptspeicher und häufig weniger Verarbeitungsleistung.
Die Idee ist, daß Netzwerk-Computer über das Internet
auf Daten zugreifen und nur diejenigen Anwendungen, die für eine bestimmte
Aufgabe benötigt werden,
dem Netzwerk-Computer zur Verfügung
gestellt werden. Wenn die Anwendungen nicht mehr benötigt werden,
werden sie nicht auf dem Netzwerk-Computer gespeichert.
-
In jüngster Zeit ist eine neue Computersystemarchitektur
entstanden, die als die virtuelle Desktop-Architektur bezeichnet
wird. Dieses System sieht eine Neuaufteilung der Funktionalität zwischen
einer zentralen Serveranlage und der Benutzerhardware vor. Daten-
und Berechnungsfunktionalität
werden von Datenquellen über
eine zentralisierte Verarbeitungsanordnung zur Verfügung gestellt.
Auf Seiten des Benutzers wird die gesamte Funktionalität im Wesentlichen
entfernt mit Ausnahme derjenigen, die eine Ausgabe an den Benutzer
erzeugt (z. B. Anzeige und Lautsprecher), eine Eingabe vom Benutzer entgegennimmt
(z. B. Maus und Tastatur), oder anderer Peripheriegeräte, mit
denen der Benutzer interagieren kann (z. B. Scanner, Kameras, entfernbarer Speicher,
etc.).
-
Die gesamte Verarbeitung wird von
einem oder mehreren zusammengeführten
Client-Servern vorgenommen,
die als zentrale Datenquellen fungieren, und die Berechnung wird
unabhängig
von dem Ziel bzw. der Bestimmung der erzeugten Daten vorgenommen.
Die Ausgabe einer Datenquelle wird an ein Terminal übergeben,
das hier als eine "Desktop-Einheit" (Desktop Unit, DTU)
bezeichnet wird. Die DTU ist in der Lage, die Daten zu empfangen
und die Anzeigedaten anzuzeigen, die von den auf den zusammengeführten Client-Servern
ausgeführten Programmen
erzeugt werden.
-
Die virtuelle Desktop-Systemarchitektur kann
in Analogie zu anderen in hohem Maße aufgeteilten Systemen gesehen
werden. Zum Beispiel hält eine öffentliche
Telefongesellschaft leistungsfähige und
hoch entwickelte Verarbeitungsleistung und große Datenbanken in Vermittlungsstellen
vor. Jedoch ist die DTU (z. B. der Telefonhörer) relativ einfach und erfordert
keine Aktualisierung bzw. Aufrüstung,
wenn neue Eigenschaften oder Dienste durch die Telefongesellschaft
hinzugefügt
werden. Das Telefon selbst wird zu einer Einrichtung bzw. einem
Gerät mit
niedrigen Kosten und das extrem wenig veraltet. In ähnlicher
Weise veraltet der Anzeigebildschirm der meisten Computersysteme
kaum und kann typischerweise über
die meisten Aktualisierungen bzw. Aufrüstungen von Desktop-Systemen
hinweg beibehalten werden.
-
Die Bereitstellung von Diensten in
der virtuellen Desktop-Serverarchitektur dreht sich um eine Abstraktion,
die hier als eine "Session" bzw. "Sitzung" bezeichnet wird.
Eine Sitzung ist eine Repräsentation derjenigen
Dienste, die im Namen des Benutzers zu irgendeinem Zeitpunkt ausgeführt werden.
Die Sitzungsabstraktion wird durch Einrichtungen aufrecht erhalten,
die als die Authentisierungs- und Sitzungsmanager bekannt sind,
deren Aufgabe es ist, die Datenbankabbildungen zwischen Tokens (d.
h. eindeutigen Bezeichnern bzw. Kennungen, die an Smartcards oder
andere Mechanismen zur Authentisierung gebunden sind) und Sitzungen
aufrecht zu erhalten und die Dienste, die jede Sitzung ausmachen,
zu verwalten. Für
jeden Benutzer, dessen das System gewahr ist, kann es eine oder
mehrere Sitzungen geben. Der Sitzungsmanager ermöglicht es, daß Sitzungen
konfiguriert und neue Sitzungen gestartet werden.
-
Auf jedem zusammengeführten Clientserver laufen
routinemäßig viele
Sitzungen ab (z. B. eine Gruppe von ablaufenden Anwendungen). Da
die zentralen Servercomputer mehrere Sitzungen für mehrere Benutzer ausführen können und
diese ablaufenden Anwendungen Software umfassen können, die
entwickelt wurde, um unter einer traditionellen Architektur abzulaufen,
zum Beispiel einem Personalcomputer, bei dem der Benutzer einen
fest zugeordneten bzw. dedizierten Prozessor und Hauptspeicher hat,
können
diese Sitzungen möglicherweise
eine enorme Menge von Ressourcen verbrauchen. Diese Ressourcen können sogar
dann verbraucht werden, wenn der Benutzer nicht mit der Sitzung
interagiert, da sie nicht für
Maschinen zusammengeführter
Clients entwickelt wurden.
-
Historisch betrachtet wurde die Steuerung bzw.
Kontrolle der Art und Weise, in der ablaufende Anwendungen Ressourcen
verbrauchen, manuell vorgenommen. Ein Operator würde die Systemressourcen überwachen
und Anwendungen starten und stoppen oder ihre Prioritäten nach
Bedarf anpassen. In einigen Systemen läßt man der Anwendung mit dem
Eingabeschwerpunkt (d. h. der Anwendung, welche die getippte Eingabe
entgegennimmt) eine höhere
Priorität
zukommen. Jedoch versagen diese Strategien in der Verarbeitungsarchitektur
gemeinsam genutzter Clients wegen der riesigen Anzahl von DTUs oder
Terminals, die sich mit einem gemeinsam genutzten Client verbinden,
und der Verschiedenheit und Unvorhersehbarkeit der Beschaffenheit
der Sitzungen. Offensichtlich ist es notwendig, eine Möglichkeit
zu finden, die Verwendung von Ressourcen in einer Verarbeitungsumgebung
gemeinsam genutzter Clients zu verbessern.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die vorliegende Erfindung stellt
ein Verfahren und eine Vorrichtung bereit, um die Nutzung einer oder
mehrerer Ressourcen in einer Verarbeitungsumgebung gemeinsam genutzter
Clients zu verbessern. Die Erfindung überwindet das Problem, das
von den Verwendung traditioneller Computerprogramme auf einem gemeinsam
genutzten Client herrührt, durch
das Überwachen
des Zustandes einer Anwendung, indem festgestellt wird, wann eine
Anwendung keine Ressourcen mehr benötigt, indem die Anwendung veranlaßt wird,
den Verbrauch von Ressourcen einzustellen. Nach einer Ausführungsform
wird der Verbrauch von Ressourcen nicht gestoppt. Stattdessen wird
die Anwendung dazu veranlaßt,
weniger Ressourcen zu verwenden.
-
Eine Ausführungsform der Erfindung entdeckt
bzw. erkennt, wenn ein Benutzer die Interaktion mit einer Anwendung
gestoppt hat. Dies kann zum Beispiel passieren, wenn der Benutzer
eine Kennung (z. B. eine Smartcard) aus der DTU entfernt (das heißt, sie
von einer DTU wegbewegt). Die Erfindung hat einen Mechanismus, um
ein Programm davon abzuhalten, Ressourcen zu verwenden, (oder seinen Ressourcenverbrauch
zu reduzieren), wenn die Interaktion des Benutzers stoppt, und es
später
neu zu starten (oder es in seinen ursprünglichen Zustand zurückzuversetzen).
Die Erfindung beinhaltet ferner eine Prozedur zum Anhalten oder
Reduzieren des Ressourcengebrauchs einer Anwendung, wenn der Benutzer
aufgehört
hat, mit ihr zu interagieren, und sie neu zu starten, wenn der Benutzer
die Interaktion mit ihr beginnt (oder in der Lage ist, die Interaktion
mit ihr zu beginnen).
-
Nach einer Ausführungsform implementiert die
Erfindung einen konfigurierbaren Filter oder eine Konfigurationsdatei.
Dieser Filter oder diese Datei reduziert oder stoppt den Ressourcengebrauch
für eine Teilmenge
einer Menge von Anwendungen, die auf irgendeiner gemeinsam genutzten
Clientmaschine ablaufen kann. All dies wird vollzogen, ohne die
Anwendung in irgendeiner Weise zu ändern.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 stellt
die virtuelle Desktop-Systemarchitektur der vorliegenden Erfindung
dar.
-
2 ist
ein Blockdiagramm eines Beispiel-Computersystems, das mit der vorliegenden
Erfindung verwendet werden kann.
-
3 ist
ein Blockdiagramm einer Ausführungsform
einer DTU der vorliegenden Erfindung.
-
4 stellt
eine Einzelchip-DTU-Ausführungsform
der vorliegenden Erfindung dar.
-
5 stellt
ein Beispiel einer Sitzungsverwaltung und -authentisierung in der
vorliegenden Erfindung dar.
-
6 stellt
Benutzerinteraktion gemäß der vorliegenden
Erfindung dar.
-
7 ist
ein Kontrollflußdiagramm
des Ressourcennutzungsalgorithmus' gemäß der vorliegenden
Erfindung.
-
8 stellt
den Betrieb des konfigurierbaren Filters oder der Konfigurationsdatei
gemäß der vorliegenden
Erfindung dar.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Die vorliegende Erfindung stellt
ein Verfahren und eine Vorrichtung zur Verfügung, um die Nutzung der Ressourcen
in einer Computerumgebung gemeinsam genutzter Clients zu verbessern.
In der nachfolgenden Beschreibung werden zahlreiche spezifische
Einzelheiten dargelegt, um eine vollständigere Beschreibung von Ausführungsformen
der Erfindung bereitzustellen. Es wird jedoch einem Fachmann auf
diesem Gebiet klar sein, daß die
Erfindung ohne diese spezifischen Einzelheiten umgesetzt werden
kann. Andererseits wurden wohlbekannte Eigenschaften nicht im Detail
beschrieben, um die Erfindung nicht zu verschleiern bzw. zu verdecken.
-
Eine oder mehrere Ausführungsformen
der Erfindung können
auch einen Lastverteilungsmechanismus implementieren.
-
Eine oder mehrere Ausführungsformen
der Erfindung können
einen Mechanismus implementieren, um einen rechenbetonten bzw. rechnergestützten Dienst
hochverfügbar
zumachen.
-
Es gibt eine Tendenz, in modernen
Systemen die Verarbeitung für
eine große
bzw. überwiegende
Zahl von Benutzern auf einer kleinen Anzahl von leistungsfähigen Systemen
zusammenzuführen. Die
Idee von "web-hosted" Anwendungen paßt in dieses
Modell. Die tatsächliche
Verarbeitung für
alle Benutzer ist auf diesen Maschinen gemeinsam verwendeter Clients
oder zusammengeführter
Clients konzentriert. Maschinen gemeinsam verwendeter Clients können Maschinen
zusammengeführter
Clients genannt werden, weil sie, obwohl sie häufig großen Servermaschinen gleichwertig
sind, die traditionelle Rolle des Client in einer Client/Serwer-Architektur spielen,
wenn auch für
eine große
Anzahl von Benutzern. Diese Art von Architektur ist wirtschaftlich
vorteilhaft, weil typischerweise zu jedem gegebenen Zeitpunkt nur
ein kleiner Teil der Gesamtheit aller Nutzer diese Systeme benutzen
muß.
-
Zuweilen ist es wünschenswert, gewöhnliche,
bereits vorhandene Computerprogramme auf einem System zusammengeführter oder
gemeinsam genutzter Clients zu betreiben. Typischerweise wurden
bereits vorhandene Computerprogramme für Einzelbenutzer-Personalcomputer
und – Arbeitsplatzrechner
bzw. -Workstations konzipiert. Auf Einzelbenutzer-Personalcomputern
oder – Workstations gibt
es reichlich Ressourcen, weil sie für die Bedürfnisse eines einzelnen Benutzers,
der auf einer Maschine arbeitet, bestimmt sind. Infolge davon verbrauchen
viele der Programme, die für
vorhandene Maschinen geschrieben wurden, auch dann noch Ressourcen
(zum Beispiel Verarbeitungsleistung und wahlfrei zugreifbaren Speicher),
wenn der Benutzer aufhört,
mit ihnen zu interagieren. Auf einem Einzelbenutzer-System würde dies
eine kleine, normalerweise nicht wahrnehmbare, zusätzliche
Last auf dem System darstellen. Auf einem System zusammengeführter Clients
jedoch kann diese kleine Last mit zig, hunderten, tausenden oder
sogar Millionen Benutzern des gemeinsam genutzten Systems multipliziert werden.
Daher kann die kleine zusätzliche
Last, die diese Programme auferlegen, die gesamten Ressourcen auf
dem gemeinsam genutzten System verbrauchen, sogar wenn keine wirkliche
bzw. reale Arbeit verrichtet wird.
-
Die vorliegende Erfindung überwindet
das Problem, das von der Verwendung traditioneller Computerprogramme
auf einem gemeinsam genutzten Client herrührt, durch ein Überwachen
des Zustandes einer Anwendung, indem festgestellt wird, wann eine
Anwendung eine Ressource oder eine Menge von Ressourcen nicht benötigt wird,
und indem die Anwendung veranlaßt
wird, den Verbrauch der Ressource oder der Ressourcen einzustellen. Nach
einer Ausführungsform
wird der Ressourcenverbrauch nicht angehalten, sondern die Anwendung dazu
veranlaßt,
weniger von der Ressource zu verwenden.
-
Die Erfindung erkennt, wenn ein Benutzer die
Interaktion mit einer Anwendung gestoppt hat. Dies kann zum Beispiel
passieren, wenn der Benutzer eine Smartcard aus einer DTU entfernt.
Die Erfindung hat einen Mechanismus, um ein Programm davon abzuhalten,
Ressourcen zu verbrauchen, (oder seinen Ressourcengebrauch zu reduzieren),
wenn die Interaktion des Benutzers zum Stillstand kommt, und es
später
neu zu starten (oder es in seinen ursprünglichen Zustand zurückzuversetzen).
Die Erfindung beinhaltet ferner eine Prozedur zum Anhalten oder
Reduzieren des Ressourcengebrauchs der Anwendung, wenn der Benutzer
aufgehört
hat, mit ihr zu interagieren, und sie neu zu starten, wenn der Benutzer
die Interaktion mit ihr beginnt (oder in der Lage ist, die Interaktion
mit ihr zu beginnen). All dies geschieht, ohne die Anwendung in
irgendeiner Weise zu ändern.
-
Virtuelle Desktop-Systemarchitektur
-
Nach einer Ausführungsform wird die vorliegende
Erfindung in der Computersystemarchitektur implementiert, die als
virtuelle Desktop-Systemarchitektur bezeichnet wird. Dieser Gegenstand
ist in WO-A-99/54804 beschrieben.
-
Die virtuelle Desktop-Systemarchitektur sorgt
für eine
Neuaufteilung von Funktionalität
zwischen einer zentralen Serveranlage und der Benutzerhardware.
Daten- und Berechnungsfunktionalität werden von den Servern mittels
einer zentralisierten Verarbeitungsanordnung zur Verfügung gestellt.
Auf Seiten des Benutzers wird die gesamte Funktionalität entfernt
mit Ausnahme derjenigen, die eine Ausgabe an den Benutzer erzeugt
(z. B. Anzeige und Lautsprecher), eine Eingabe vom Benutzer entgegennimmt
(z. B. Maus und Tastatur), oder anderer Peripheriegeräte, mit
denen der Benutzer interagieren kann (z. B. Scanner, Kameras, entfernbarer
Speicher, etc.).
-
Die gesamte Verarbeitung wird von
dem zentralen Servern vorgenommen, und die Berechnung wird unabhängig von
dem Ziel bzw. dem Bestimmungsort der erzeugten Daten vorgenommen.
Die Ausgabe des Servers wird an eine DTU übergeben. Die DTU ist in der
Lage, die Daten zu empfangen und die Daten anzuzeigen. Die Funktionalität des Systems
ist zwischen einer Anzeige- und Eingabeeinrichtung und Servern aufgeteilt.
Die Anzeige- und Eingabeeinrichtung ist die DTU. Die Aufteilung
dieses Systems ist so, daß Zustands-
und Berechnungsfunktionen aus der DTU entfernt wurden und sich in den
Servern befinden. Nach einer Ausführungsform der Erfindung kommunizieren
ein oder mehrere Server mit einer oder mehreren DTUs über eine
Zwischenverbindungsstruktur wie ein Netzwerk.
-
Ein Beispiel eines solchen Systems
ist in 1 dargestellt.
In 1 besteht das System
aus Servern 100, die Daten durch die Zwischenverbindungsstruktur 101 an
DTUs 102 kommunizieren. Es sollte jedoch beachtet werden,
daß die
Ressourcennutzungsstrategien nicht auf die virtuelle Desktop-Systemarchitektur
beschränkt
ist. Ausführungsformen
der vorliegenden Erfindung werden in Verbindung mit einem Allzweckcomputer,
wie dem in 2 beschriebenen,
implementiert.
-
Ausführungsform
der Allzweckcomputer-Umgebung
-
Eine Ausführungsform der Erfindung kann als
Computersoftware in der Form von computerlesbarem Programmcode implementiert
werden, der auf einem Allzweckcomputer wie dem in 2 abgebildeten Computer 200 ausgeführt wird.
Eine Tastatur 210 und eine Maus 211 sind mit einem
bidirektionalen Systembus 218 verbunden. Die Tastatur und
die Maus sind zum Einbringen von Benutzereingaben in das Computersystem
und zum Kommunizieren dieser Benutzereingaben an die zentrale Verarbeitungseinheit
(Central Processing Unit, CPU) 213. Andere geeignete Eingabeeinrichtungen
können
zusätzlich zu
oder an Stelle der Maus 211 und der Tastatur 210 verwendet
werden. Die I/O (Input/Output, Eingabe/Ausgabe) Einheit 219,
die an den bidirektionalen Systembus 218 angeschlossen
ist, stellt solche I/O-Elemente wie einen Drucker, AN (Audio/Video) I/O,
etc. dar.
-
Der Computer 200 beinhaltet
einen Videospeicher 214, einen Hauptspeicher 215 und
einen Massenspeicher 212, die alle an den bidirektionalen Systembus 218 zusammen
mit der Tastatur 210, der Maus 211 und der CPU 213 angeschlossen
sind. Der Massenspeicher 212 kann sowohl feste als auch
auswechselbare Medien wie magnetische, optische oder magneto-optische
Speichersysteme oder jede andere verfügbare Massenspeichertechnologie
enthalten. Der Bus 218 kann zum Beispiel zweiunddreißig Adreßleitungen
zum Adressieren des Videospeichers 214 oder des Hauptspeichers 215 beinhalten. Der
Systembus 218 enthält
zum Beispiel auch einen 32-Bit-Datenbus zum Übertragen von Daten zwischen
und unter den Komponenten wie der CPU 213, dem Hauptspeicher 215,
dem Videospeicher 214 und dem Massenspeicher 212.
Alternativ können
statt separater Daten- und Adreßleitungen
Multiplex-Daten/Adreßleitungen
verwendet werden.
-
Nach einer Ausführungsform der Erfindung ist
die CPU 213 ein von Motorola hergestellter Mikroprozessor
wie der 680X0-Prozessor oder ein von Intel hergestellter Mikroprozessor
wie der 80X86- oder Pentium-Prozessor oder ein SPARC-Mikroprozessor von
Sun Microsystems. Jedoch kann jeder geeignete Mikroprozessor oder
Mikrocomputer eingesetzt werden. Der Hauptspeicher 215 besteht
aus dynamischem, wahlfrei zugreifbarem Speicher (Dynamic Random
Access Memory, DRAM). Der Videospeicher 214 ist ein zweiseitig
zugänglicher,
wahlfrei zugreifbarer Videospeicher (Dual-Ported Video Random Access
Memory). Ein Zugang des Videospeichers 214 ist an den Videoverstärker 216 angeschlossen.
Der Videoverstärker 216 wird
verwendet, um den Kathodenstrahlröhren-(Cathode Ray Tube, CRT)-Rastermonitor 217 zu
betreiben. Der Videoverstärker 216 ist
nach dem Stand der Technik wohlbekannt und kann durch jede geeignete
Vorrichtung implementiert werden. Diese Schaltung wandelt Pixeldaten,
die in dem Videospeicher 214 gespeichert sind, in Rastersignale
um, die zur Verwendung durch den Monitor 217 geeignet sind.
Der Monitor 217 ist eine Art von Monitor, die zur Anzeige
von grafischen Bildern geeignet ist.
-
Der Computer 200 kann auch
eine Kommunikationsschnittstelle 220 beinhalten, die an
den Bus 218 angeschlossen ist. Die Kommunikationsschnittstelle 220 sorgt
für eine
Zweiwege-Datenkommunikationskopplung
mittels einer Netzwerkverbindung 221 an ein lokales Netzwerk 222.
Wenn zum Beispiel die Kommunikationsschnittstelle 220 eine
ISDN-(Integrated Services Digital Network, Dienste-integrierendes,
digitales Netzwerk)-Karte oder ein Modem ist, stellt die Kommuni kationsschnittstelle 220 eine Datenkommunikationsverbindung
zu der entsprechenden Art von Telefonleitung bereit, die einen Teil der
Netzwerkverbindung 221 umfaßt. Wenn die Kommunikationsschnittstelle 220 eine
LAN-(Local Area Network, lokales Netzwerk)-Karte ist, stellt die
Kommunikationsschnittstelle 220 eine Datenkommunikationsverbindung über die
Netzwerkverbindung 221 zu einem kompatiblen LAN bereit.
Drahtlose Verbindungen sind ebenso möglich. In jeder solchen Implementierung
sendet und empfängt
die Kommunikationsschnittstelle 220 elektrische, elektromagnetische oder
optische Signale, die digitale Datenströme befördern, welche verschiedene
Arten von Information darstellen.
-
Die Netzwerkverbindung 221 stellt
typischerweise Datenkommunikation durch ein oder mehrere Netzwerke
hindurch zu anderen Dateneinrichtungen bereit. Zum Beispiel kann
die Netzwerkverbindung 221 eine Verbindung durch das lokale
Netzwerk 222 zu dem Hostcomputer 223 oder zu einer
Datenanlage, die von einem Internet-Dienstanbieter (Internet Service
Provider, ISP) 224 betrieben wird, zur Verfügung stellen.
Der ISP 224 seinerseits stellt Datenkommunikationsdienste über das
weltweite Paketdatenkommunikationsnetzwerk bereit, das heutzutage gemeinhin
als das "Internet" 225 bezeichnet
wird. Das lokale Netzwerk 222 und das Internet 225 verwenden
beide elektrische, elektromagnetische oder optische Signale, die
digitale Datenströme
befördern. Die
Signale durch die verschiedenen Netzwerke und die Signale auf der
Netzwerkverbindung 221 und durch die Kommunikationsschnittstelle 220,
die digitale Daten zu und von dem Computer 200 befördern, sind
beispielhafte Formen von Trägerwellen,
die Information transportieren.
-
Der Computer 200 kann durch
das Netzwerk bzw. die Netzwerke, die Netzwerkverbindung 221 und
die Kommunikationsschnittstelle 220 Nachrichten senden
und Daten empfangen, einschließlich Programmcode.
In dem Internetbeispiel könnte
der Server 226 einen angeforderten Code für ein Anwendungsprogramm
durch das Internet 225, den ISP 224, das lokale
Netzwerk 222 und die Kommunikationsschnittstelle 220 übertragen.
Im Einklang mit der Erfindung ist das Verwenden von und der Zugriff
auf Information aus Zeichensätzen
in verschiedenen Formaten eine solche heruntergeladene Anwendung,
wie sie hier beschrieben wird.
-
Der empfangene Code kann von der
CPU 213 ausgeführt
werden, sowie er empfangen wird, und/oder in dem Massenspeicher 212 oder
anderem nicht-flüchtigen
Speicher zur späteren
Ausführung gespeichert
werden. Auf diese Weise kann der Computer 200 Anwendungscode
in der Form einer Trägerwelle
erhalten.
-
Die oben beschriebenen Computersysteme dienen
nur als Beispiele. Eine Ausführungsform
der Erfindung kann in jeder Art von Computersystem oder Programmier-
oder Verarbeitungsumgebung implementiert werden.
-
Rechendienstanbieter
-
Unter Hinweis auf die virtuelle Desktop-Systemarchitektur
finden sich Rechenleistung und Zustandspflege bzw. -fortschreibung
in den Dienstanbietern oder Diensten. Die Dienste sind nicht an
einen spezifischen Computer gebunden, sondern können über ein oder mehrere traditionelle
Desktop-Systeme, wie in Verbindung mit 2 beschrieben, oder mit traditionellen
Servern verteilt wer den. Ein Computer kann über einen oder mehrere Dienste
verfügen,
oder ein Dienst kann durch einen oder mehrere Computer implementiert
werden. Der Dienst stellt für die
DTUs Berechnung, Status und Daten bereit und der Dienst steht unter
der Kontrolle bzw. Steuerung einer gemeinsamen Befehlsgewalt oder
eines gemeinsamen Managers. In 1 befinden
sich die Dienste auf den Computern 110, 111, 112, 113 und 114.
Es ist wichtig zu beachten, daß die
zentrale Datenquelle auch Daten bereitstellen kann, die von außerhalb
der zentralen Datenquelle 129 kommen, wie zum Beispiel
das Internet oder das World Wide Web 130. Die Datenquelle
könnte
ebenso Rundfunkeinheiten sein wie jene, die Daten wie Fernseh- oder
Radiosignale 131 rundsenden. Ein Dienst ist hier ein Prozeß, der Ausgabedaten
bereitstellt und auf Benutzeranforderungen und -eingaben antwortet.
-
Es liegt in der Verantwortung des
Dienstes, die Kommunikation mit der DTU zu handhaben, die aktuell
verwendet wird, um auf den gegebenen Dienst zuzugreifen. Dies bringt
es mit sich, die Ausgabe von dem Rechendienst entgegenzunehmen und
sie in ein Standardprotokoll für
die DTU umzuwandeln. Diese Datenprotokollumwandlung wird nach einer
Ausführungsform
der Erfindung von einer Middleware-Schicht behandelt, wie dem X11-Server, der
Microsoft-Windows-Schnittstelle, einem Videoformat-Codeumsetzer
bzw. -Transcoder, der OpenGL-Schnittstelle oder einer Variante der
java. awt. graphics-Klasse innerhalb der Maschine, die den Dienst
erzeugt, obwohl auch andere Ausführungsformen
im Schutzbereich der Erfindung liegen. Die Dienstmaschine behandelt
die Übersetzung
in das und aus dem virtuellen Desktop-Architektur-Leitungsprotokoll
(Virtual Desktop Architecture Wire Protocol).
-
Die diensterzeugenden Computersysteme sind
durch die Zwischenverbindungsstruktur direkt mit den DTUs verbunden.
Es ist ebenso möglich,
daß der
Diensterzeuger ein Proxy für
eine andere Einrichtung ist, die den Berechnungsdienst bereitstellt,
wie ein Datenbankcomputer in einer Drei-Stufen-Architektur (Three
Tiered Architecture), wobei der Proxy-Computer nur Anfragen erzeugen
und Benutzerschnittstellencode ausführen könnte.
-
Zwischenverbindungsstruktur
-
Die Zwischenverbindungsstruktur ist
irgendeiner von mehreren geeigneten Kommunikationspfaden zum Übertragen
von Daten zwischen den Diensten und den DTUs. Nach einer Ausführungsform
ist die Zwischenverbindungsstruktur ein lokales Netzwerk, das als
ein Ethernet-Netzwerk implementiert ist. Jedes andere lokale Netzwerk
kann ebenso eingesetzt werden. Die Erfindung betrachtet auch die Verwendung
von Weitverkehrsnetzwerken (Wide Area Networks), des Internet, des
Word Wide Web, eines Intranet, eines lokalen Netzwerks und anderer. Die
Zwischenverbindungsstruktur kann mit einem physikalischen Medium
wie einem Draht- oder Glasfaserkabel implementiert werden oder sie
kann in einer drahtlosen Umgebung implementiert werden.
-
Desktop-Einheiten
-
Die DTU ist die Einrichtung, durch
die Benutzer auf die Dienste zugreifen. 1 stellt die DTUs 121, 122 und 123 dar.
Eine DTU kann aus einer Anzeige 126, einer Tastatur 124,
einer Maus 125 und Audiolautsprechern 127 bestehen.
Die DTU beinhaltet die benötigte
Elektronik, um diese Einrichtungen mit der Zwischenverbindungsstruktur über Schnittstellen
zu verbinden und Daten zu und von den Diensten zu übertragen
und zu empfangen.
-
Eine Blockdiagramm einer DTU ist
in 3 dargestellt. Die
Komponenten der DTU sind intern an einen PCI-Bus 319 angeschlossen.
Ein Netzwerk-Controller 302 kommuniziert mit der Zwischenverbindungsstruktur
wie einem Ethernet über
die Leitung 314. Eine Audio-Codec 303 empfängt Audiodaten
auf der Schnittstelle 316 und ist an den Netzwerk-Controller 302 angeschlossen.
USB-Datenkommunikation wird auf den Leitungen 313 zum USB-Controller 301 bereitgestellt.
-
Ein eingebetteter Prozessor 304 kann
zum Beispiel ein Sparc2ep mit angeschlossenem Flashspeicher 305 und
DRAM 306 sein. Der USB-Controller 301, der Netzwerk-Controller 302 und
der eingebettete Prozessor 304 sind alle an den PCI-Bus 319 angeschlossen.
Ebenso angeschlossen an den PCI-Bus 319 ist der Video-Controller 309 mit
zugeordnetem SGRAM 307. Der Video-Controller 309 kann zum Beispiel
ein ATI RagePro+ Framepuffer-Controller sein, der SVGA-Ausgabe auf der Leitung 315 bereitstellt.
Daten werden optional in den und aus dem Video-Controller durch den Video-Decoder 310 bzw.
den Video-Encoder 311 übergeben. Diese
Daten können
digitale oder analoge Videosignale umfassen (z. B. NTSC (National
Television Systems Committee), PAL (Phase Alternate Line), etc.). Eine
Smartcard-Schnittstelle 308 kann ebenso an den Video-Controller 309 angeschlossen
sein.
-
Alternativ kann die DTU unter Verwendung einer
Einzelchip-Lösung
implementiert werden wie in 4 dargestellt.
Die Einzelchip-Lösung
enthält
die benötigte
Verarbeitungsfähigkeit,
die mittels der CPU 401 und des Grafik-Wiedergebers bzw.
Bilderzeugers 405 implementiert ist. Der Chipspeicher 407 wird
zusammen mit dem bzw. der Video-Contoller/Schnittstelle 406 zur
Verfügung
gestellt. Ein universeller serieller Bus-(Universal Serial Bus, USB)-Controller 402 ist
vorgesehen, um die Kommunikation mit einer Maus, einer Tastatur
und anderen lokalen Einrichtungen, die an die DTU angeschlossen
sind, zuzulassen. Ein Sound-Controller 403 und eine Verbindungsschnittstelle 404 sind
ebenso vorgesehen. Die Video-Schnittstelle teilt sich den Speicher 407 mit
der CPU 401 und dem Grafik- bzw. Bilderzeuger 405.
Die in dieser Ausführungsform
verwendete Software könnte
sich lokal in nicht-flüchtigem
Speicher befinden, oder sie kann durch die Verbindungsschnittstelle
geladen werden, wenn das Gerät
bzw. die Einrichtung eingeschaltet ist.
-
BETRIEB DER VIRTUELLEN
DESKTOP-SYSTEMARCHITEKTUR
-
Sitzungs-Behandlung bzw.-Handhabung
-
Die Bereitstellung von Diensten in
der virtuellen Desktop-Systemarchitektur dreht sich um eine Abstraktion,
die hier als eine Session bzw. Sitzung bezeichnet wird. Eine Sitzung
ist eine Repräsentation derjenigen
Dienste, die im Namen eines Benutzers zu irgendeinem Zeitpunkt ausgeführt werden.
Eine neue Sitzung kann angelegt bzw. geschaffen werden, wenn ein
neues Token dem Authentisierungsmanager durch die DTU übergeben
wird. Ein Token ist ein eindeutiger Bezeichner bzw. eine eindeutige
Kennung, der bzw. die eine Ethemet-Adresse einer DTU (Pseudo-Token) oder die Seriennummer
auf einer Smartcard sein kann.
-
Die Sitzungsabstraktion wird durch
Einrichtungen aufrecht erhalten, die als die Authentisierungs- und
Sitzungsmanager bekannt sind, deren Aufgabe es ist, die Datenbank
der Abbildungen zwischen Tokens und Sitzungen aufrecht zu erhalten und
die Dienste, die jede Sitzung ausmachen, zu verwalten. Für jedes
Token, von dem das System weiß, gilt,
daß es
eine oder mehrere Sitzungen gibt, bietet der Sitzungsmanager dem
Benutzer oder Administrator einen Dienst, der es ermöglicht,
daß Sitzungen konfiguriert
und neue Sitzungen erzeugt werden.
-
Eine Sitzung ist nicht an irgendeine
bestimmte DTU gebunden. Ein Token ist einer Benutzersitzung zugeordnet,
und die Sitzung kann auf jeder beliebigen DTU angezeigt werden,
an der der Benutzer seine Smartcard einsetzt bzw. einsteckt. Ein
Softwareprozeß,
der als der Authentisierungsmanager bekannt ist, ist dafür verantwortlich,
die Legitimität
eines Tokens sicherzustellen und ein Token einer gewünschten
Sitzung zuzuordnen. Die DTU ist typischerweise im Schlaf-, Bereitschafts-
bzw. Standby- oder ausgeschalteten Betriebszustand, wenn sie nicht
in Verwendung ist. Wenn ein Benutzer eine bestimmte DTU zu benutzen
wünscht,
wird der Zugang bzw. Zugriff des Benutzers in einem Authentisierungsaustausch
validiert bzw. für
gültig
erklärt,
der eines oder mehrere der folgenden umfaßt: eine Smartcard, einen Schlüssel, ein
Paßwort,
einen biometrischen Mechanismus oder irgendeinen anderen geeigneten
Authentisierungsmechanismus. Das Token, das aus diesem Austausch
extrahiert wird, wird daraufhin verwendet, um eine Verbindung zu
der passenden Sitzung aufzubauen.
-
Wenn der Authentisierungsmanager
ein Token validiert, benachrichtigt er den Sitzungsmanager des Servers,
der seinerseits sämtliche
Dienste innerhalb der ausgewählten
Sitzung benachrichtigt, und die Anzeige der Sitzung wird beim Server
zusammengefügt
und zum Desktop des Benutzers übertragen.
Aus einer Sitzung heraus kann ein Benutzer mit vorhandenen Diensten
interagieren, neue Dienste einleiten oder Dienste, die ausgeführt werden,
beenden bzw. löschen.
Wenn der Benutzer die DTU verläßt (z. B.
durch Wegnehmen einer Smartcard), bemerkt der Authentisierungsmanager
dies und benachrichtigt den Sitzungsmanager, der seinerseits sämtliche
ihm zugehörige
Dienste benachrichtigt, die ihre Anzeigefunktionen anhalten, und
die DTU kehrt in ihren Ruhezustand zurück. Die Wirkung der Aktivierung
und Deaktivierung eine DTU ist ähnlich
dem Ausschalten des Anzeigemonitors an einem Desktop-System. Die
Dienste der Benutzersitzung sind noch verfügbar und werden vielleicht
ausgeführt, aber
es wird keine Anzeige erzeugt. Ein Vorteil der vorliegenden Erfindung
ist es, daß auf
die in einer Sitzung verfügbaren
Dienste an irgendeiner angeschlossenen DTU zugegriffen werden kann.
-
5 liefert
ein Beispiel der Sitzungsverwaltung und -authentisierung in der
vorliegenden Erfindung. Dieser Gegenstand ist in WO-A-99/54803 beschrieben.
Das Netzwerkterminal 502 ist eine DTU, das die Aufgabe
hat, die Ausgabe von Diensten einem Benutzer anzuzeigen und die
Eingaben an Dienste von dem Benutzer anzunehmen. Das Netzwerkterminal 502 hat
die Fähigkeit,
auf ein Kommando (z. B. ein Anzeigekommando), das zum Beispiel von
einem auf einem Rechendienstanbieter ausgeführten Softwareprogramm (z.
B. den Diensten 530–538,
dem Authentisierungsmanager 504 und dem Sitzungsmanager 506)
empfangen wurde, zu antworten. Die von einem Benutzer empfangene
Eingabe wird zum Beispiel an einen Dienst weitergeleitet, der eine
Benutzeranforderung erfüllt
bzw. ausführt
Ein Dienst ist ein Programm, das einige Funktionen für einen
Benutzer durchführt.
Mehr als ein Server kann die Dienste ausführen, aus denen eine Sitzung
besteht. Zum Beispiel werden in Sitzung 508 der Dienst 530 auf
dem Server 510, die Dienste 532 und 534 auf
dem Server 512 und die Dienste 536 und 538 auf
dem Server 514 ausgeführt.
-
Ein Benutzer greift auf ein System
(z. B. einen Server, eine Sitzung, einen Dienst und ein Netzwerkterminal)
zu, indem er ein Login einleitet. Während des Login wird der Benutzer
vom Authentisierungsmanager 504 validiert. Verschiedene
Techniken können
verwendet werden, um es dem Benutzer zu ermöglichen, ein Login einzuleiten.
Zum Beispiel kann der Benutzer ein Login einleiten, indem er eine Taste
auf dem Netzwerkterminal 502 drückt.
-
Nach einer Ausführungsform greift ein Benutzer
auf das System zu, indem er eine Smartcard in einen Kartenleser
(z. B. den Kartenleser 516) einführt, der am Netzwerkterminal 502 angebracht
ist. Eine Smartcard ist eine Karte, die in der Lage ist, Information
zu speichern wie zum Beispiel in einem Magnetstreifen oder Speicher
der Smartcard. Die Smartcard kann Benutzerinformation wie eine Benutzerkennung
(d. h. Benutzer-ID wie eine 64-Bit-Zahl) und optional einen geheimen
Code (z. B. eine 128-Bit-Zufallszahl) speichern, die an das Netzwerkterminal 502 übermittelt
wird. Der geheime Code kann während
der Authentisierung verwendet werden.
-
Das Netzwerkterminal 502 ist
sich seiner Verbindungsnetzwerkadresse und der Adresse des Authentisierungsmanagers 504 bewußt (oder
kann sie sich verschaffen). Wenn ein Benutzer ein Login einleitet,
leitet das Netzwerkterminal 502 eine Verbindung mit dem
Authentisierungsmanager 504 ein, um die Authentisierung
zu beginnen. Der Authentisierungsmanager 504 ist ein Programm,
das auf einem Server aktiv ist (z. ⧠. ausgeführt wird),
der mittels eines Verbindungsnetzwerks wie zum Beispiel einem lokalen
Netzwerk (Local Area Network, LAN) mit dem Netzwerkterminal 502 verbunden
ist. Es sollte jedoch klar sein, daß das Netzwerkterminal 502 mit
dem Authentisierungsmanager 504 unter Verwendung anderer
Verbindungsnetzwerktechnologien wie einer Glasfaserschleife, einem
Punkt-zu-Punkt-Kabel oder drahtloser Technologien verbunden sein
kann. Das Netzwerkterminal 502 sendet eine Start- bzw.
Inbetriebsetzungsanforderung, die eine Benutzerkennung (Benutzer-ID)
beinhaltet, an den Authentisierungsmanager 504.
-
Wenn das erwartete Ergebnis vom Benutzer empfangen
wurde, benachrichtigt der Authentisierungsmanager 504 den
Sitzungsmanager 506 (mittels einer Verbindungsnachricht),
daß der
Benutzer sich in das System auf dem Netzwerkterminal 502 eingeloggt
hat. Die in der Authentisierungsdatenbank 518 enthaltene
Sitzungsinformation wird verwendet, um den Server, den Anschluß und den
Sitzungsbezeichner (ID) für
den Sitzungsmanager 506 anzugeben. Der Sitzungsmanager 506 ist
ein Programm, das auf einem Rechendienstanbieter aktiv ist und mit dem
Authentisierungsmanager 504 und dem Netzwerkterminal 502 zum
Beispiel über
ein Verbindungsnetzwerk verbunden ist. Der Authentisierungsmanager 504 sendet
eine Nachricht an den Sitzungsmanager 506, indem er die
in der Authentisierungsdatenbank 518 enthaltene Server-
und Portinformation des Sitzungsmanagers 506 verwendet.
-
Als Reaktion auf die Verbindungsnachricht vom
Authentisierungsmanager 504 benachrichtigt der Sitzungsmanager 506 die
Dienste in der aktuellen Sitzung des Benutzers (d. h. die Dienste
in der Sitzung 508), daß der Benutzer dem Netzwerkterminal 502 zugeordnet
ist. Das heißt,
der Sitzungsmanager 506 sendet eine Verbindungsnachricht
an die Dienste 530–538,
um die Ausgabe an das Netzwerkterminal 502 zu lenken. Der
Sitzungsmanager 506 stellt sicher, daß die Dienste, die als notwendige Dienste
der Sitzung betrachtet werden, gerade ausgeführt werden. Falls nicht, veranlaßt der Sitzungsmanager 506,
daß sie
eingeleitet werden. Der Benutzer kann mit den Diensten 530–538 innerhalb
einer Sitzung (z. B. Sitzung 508) interagieren. Das Netzwerkterminal 502 wird
mit den Servern 510, 512 und 514 (und
den Diensten 530–538) über ein
Verbindungsnetzwerk, wie z. B. ein lokales Netzwerk oder andere
Verbindungstechnologien, verbunden. Der Benutzer kann auch neue
Dienste starten und vorhandene Dienste beenden.
-
Der Benutzer kann aufhören, das
System zu verwenden, indem er die Karte aus dem Kartenleser 516 entfernt.
Andere Mechanismen, um das System zu verlassen, können ebenso
bei bzw. mit der Erfindung verwendet werden (z. B. eine "Abmelde"- bzw. "Sign-Off"-Taste bzw. -Knopf
am Netzwerkterminal 502). Die Dienste 530–538 können weiterlaufen, auch
nachdem der Benutzer die Karte aus dem Kartenleser 516 entfernt
hat. Das heißt,
eine zugeordnete Sitzung bzw. Sitzungen des Benutzers und die Dienste,
aus denen eine Sitzung besteht, können während der Zeitspanne, in der
der Benutzer vom System abgemeldet ist, weiterhin existieren. Wenn der
Benutzer die Karte aus dem Kartenleser 516 entfernt, benachrichtigt
das Netzwerkterminal 502 den Authentisierungsmanager 504 (z.
B. mittels einer Verbindungsabbaunachricht), der den Sitzungsmanager 506 (z.
B. mittels einer Verbindungsabbaunachricht) benachrichtigt. Der
Sitzungsmanager 506 benachrichtigt die Dienste 530–538 (z.
B. mittels einer Verbindungsabbaunachricht), was deren Übermittlung
von Anzeigekommandos an das Netzwerkterminal 502 beendet.
Die Dienste 530–538 setzen die
Ausführung
jedoch während
der Zeit fort, in der der Benutzer vom Netzwerkterminal 502 weg
ist. Der Benutzer kann sich wieder einloggen, indem er ein Netzwerkterminal
wie das Netzwerkterminal 502 verwendet, um sich mit der
Sitzung 508 zu verbinden und mit den Diensten 530–538 zu
interagieren.
-
Hot Desking
-
Eine Ausführungsform der vorliegenden
Erfindung kann einen Mechanismus anwenden, der hier als "Hot Desking" bezeichnet wird.
Hot Desking erleichtert die Feststellung bzw. die Ermittlung, daß ein gegebener
Benutzer an einer gegebenen DTU ist und daß eine Sitzung aktiv oder inaktiv
ist.
-
Das Identifizieren eines Benutzers
durch das für
eine Kennung eindeutige Token, das der Benutzer in eine spezifische
DTU eingesetzt bzw. eingesteckt hat, ermöglicht bzw. erlaubt eine Kommunikation
zwischen dieser DTU und einem Server hinsichtlich der Eingabe dieses
Benutzers und der grafischen Ausgabe. Die Kenntnis darüber, wann
ein Benutzer ein Token entfernt, ermöglicht es festzustellen, wann
eine Sitzung inaktiv wird. Ein Beispiel für Hot Desking ist durch 6 dargestellt.
-
Damit die DTU 602 mit dem
Server 600 kommunizieren kann, muß der Benutzer eine Kennung 603 (z.
B. eine Smartcard) in die DTU 602 einsetzen und versuchen,
sich gegenüber
dem Server 600 mittels der Zwischenverbindungsstruktur 604 zum Switch
bzw. Umschalter 605, über
die Zwischenverbindungsstruktur 606 hinweg und schließlich zum Server 600 zu
authentifizieren. Wenn der Benutzer später die Kennung 603 entfernt
und sie an einer anderen DTU, zum Beispiel DTU 607, einsetzt,
wird dieselbe Sitzung an der neuen DTU 607 von dem Netzwerkpfad
wieder aufgenommen, der von der DTU 607 zum Server 600 über die
Zwischenverbindungsstruktur 608, zum umschaltet 609 und über die
Zwischenverbindungsstruktur 610 hinweg definiert ist. Die
Ausgabe geht an der zweiten Stelle zu DTU 607 über. Nach
einer Ausführungsform
ist die Kennung eine Smartcard, aber diese Kennung kann ebenso einen
Schlüssel,
ein Paßwort,
biometrische Merkmale oder irgendeinen anderen Mechanismus einbeziehen,
der einen Benutzer identifiziert, der eine Sitzung einzuleiten oder
eine Sitzung wieder aufzunehmen sucht, die zuvor inaktiv war.
-
Aufgrund des virtuellen Desktop-Systementwurfes
ist es möglich,
auf der Maschine zusammengeführter
Clients eine große
Anzahl von Benutzern in einer Sitzung (einer Gruppe von einer oder
mehreren laufenden Anwendungen) zu haben, die nicht aktiv mit ihr
verbunden sind. Zum Beispiel könnte
man 1000 Benutzer in einer Sitzung haben, jedoch nur 100 Endbenutzer-Terminals.
Daher können
in diesem Beispiel maximal 100 von den 1000 Benutzern (10%) gleichzeitig
mit ihren Anwendungen interagieren. Wenn jede der nicht angeschlossenen
Sitzungen fortfahren würde,
auch nur eine vernachlässigbare Menge
von Ressourcen zu verbrauchen (zum Beispiel 0,2%), würde das
System zusammengeführter Clients überlastet
und wäre
nicht in der Lage, irgendeine Aktionen für die angeschlossenen Benutzer
durchzuführen,
weil die 900 inaktiven Sitzungen, die nur 0,2% verbrauchen, 180%
der Ressourcen des zusammengeführten
Client benötigen
würden.
-
Die Erfindung stellt fest, ob der
Benutzer aktiv mit einer DTU verbunden ist. Wenn der Benutzer die
Kennung entfernt (z. B. eine Smartcard, ein biometrisches Kennzeichen
oder eine andere Kennung) und die Sitzung nicht mit irgendeiner
DTU verbunden ist, weiß die
Erfindung, daß der
Benutzer aufgehört hat,
mit den Anwendungen in seiner Sitzung zu interagieren.
-
Algorithmen zur Verbesserung der
Ressourcenverwendung Eine Ausführungsform
wird unter den SolarisTM- und Unix-Betriebssystemen
betrieben. Es sollte jedoch beachtet werden, daß diese Erfindung unter jedem
beliebigen Computer-Betriebssystem
betrieben werden kann. Nach einer Ausführungsform, die unter Solaris
oder Unix läuft,
erleichtern Eigenschaften dieser Betriebssysteme das Anhalten und
erneute Starten bestimmter aktiver Prozesse, zum Beispiel Prozesse,
bei denen der Benutzer eine Kennung entfernt hat.
-
Nach einer anderen Ausführungsform
werden dann, wenn die bezeichnete Anwendung Ressourcen wie wahlfrei
zugreifbaren Speicher oder Verarbeitungsleistung zu verbrauchen
versucht, diese versuchten Aktivitäten auf ein permanentes Speichermedium
geschrieben, zum Beispiel ein Festplattenlaufwerk. Wenn es nötig wird,
der Anwendung zu erlauben, mit dem Verbrauchen von Ressourcen wieder
zu beginnen, wenn zum Beispiel ein Benutzer das Identifizierungszeichen
wie der einsetzt, werden die in das permanente Speichermedium geschriebenen
Daten wiederhergestellt und der Prozeß startet erneut an dem Punkt,
an dem er angehalten wurde.
-
Eine Ausführungsform der vorliegenden
Erfindung wird durch 7 veranschaulicht.
Die Erfindung stellt fest, wenn ein Benutzer nicht mit einer Anwendung 700 interagieren
will. Wenn sie das tut, übermittelt
sie ein STOP-Signal 701 an eine oder mehrere Anwendungen
innerhalb der Sitzung, um den Verbrauch von Ressourcen anzuhalten,
während es
keine Möglichkeit
einer Benutzereingabe und keinen Bedarf einer Benutzerausgabe gibt.
-
Nach dieser Ausführungsform führt jede
Anwendung eine zugeordnete Datenstruktur mit sich. Wenn das STOP-Signal
an die Anwendung gesendet wird, wird dieses Ereignis in der Datenstruktur 702 vermerkt.
Zum Beispiel implementiert eine Ausführungsform dies in einer Bool'schen Weise (z. B.
indem ein Stop-Wert auf "wahr" gesetzt wird). Solange der
Wert innerhalb der Datenstruktur wahr ist, wird die Anwendung am
Ablaufen und somit am Verbrauch von Ressourcen gehindert.
-
Die Erfindung fragt dann regelmäßig bzw. periodisch
nach, ob (oder erhält
eine Nachricht, daß) die
Sitzung des Benutzers die Aktivität 703 wieder aufgenommen
hat, und eröffnet
somit die Möglichkeit für eine Interaktion
des Benutzers mit der Anwendung. Wenn die Sitzung nicht aktiv geworden
ist, geht der Fluß entlang
des Übergangs 704 weiter.
Wenn die Sitzung aktiv geworden ist, geht der Fluß entlang der Übergangs 705 weiter,
und die Anwendung wird in Schritt 706 wieder aufgenommen.
Der Prozeß wiederholt
sich danach, wie durch den Übergang 707 angegeben.
-
Nach einer Ausführungsform wird dann, wenn
der Benutzer sich später
mit derselben oder einer anderen DTU verbindet, ein CONTINUE-Signal (oder
-Nachricht) an jeden Anwendungsprozeß gesendet, dem ein STOP-Signal
(oder -Nachricht) gesendet wurde, als die Sitzung unterbrochen wurde. Nach
einer Ausführungsform
kann dies den Bool'schen
Wert in der Datenstruktur der Anwendung zurücksetzen (zum Beispiel auf
falsch). Danach beginnen diese Anwendungsprogramme an der Stelle wieder
zu laufen, wo sie aufgehört
haben.
-
Wie zuvor festgestellt, können Ausführungsformen
der Erfindung dort, wo dies unterstützt wird, Kommandos des Betriebssystems
verwenden, um das Anhalten und Fortsetzen von Prozessen zu erleichtern.
Zum Beispiel zwingen die Kommandos "pstop" und "pstart" unter dem Solaris-Betriebssystem einen Anwendungsprozeß dazu,
die Ausführung anzuhalten
bzw. wieder aufzunehmen. Daher können statt
des Sendens (oder in Ergänzung
zum Senden) von Signalen (oder Nachrichten) und des Modifizierens
der Datenstruktur, wie in 7 beschrieben, Stop-
und Continue-Kommandos
direkt an das Betriebssystem ausgegeben werden.
-
Nach einer Ausführungsform wird einer Teilmenge
der Anwendungen innerhalb der Sitzung des Benutzers das STOP- und
CONTINUE-Signal gesendet. Welche Teilmenge der Anwendungen die Signale
erhält,
kann durch den Systemadministrator oder den Benutzer konfiguriert
werden. Obwohl es möglich
ist, diese Signale an alle Anwendungen in der Sitzung des Benutzers
zu senden, kann es oft wünschenswert
sein, dies auf eine Teilmenge zu beschränken. Einige Anwendungen beenden
ihren Ressourcenverbrauch möglicherweise
automatisch, so daß es
keine Notwendigkeit gibt, sie anzuhalten. Andere Anwendungen reagieren
vielleicht nicht ordnungsgemäß auf STOP und
CONTINUE-Signale, so daß der
Algorithmus nicht auf solche Anwendungen angewandt werden sollte.
Eine Ausführungsform
der Erfindung verwendet einen konfigurierbaren Filter, in dem der
Benutzer oder Systemadministrator eine Menge von Problemanwendungen
auswählt,
die angehalten werden sollten, wenn die Sitzung des Benutzers unterbrochen
wird. Eine andere Ausführungsform
verwendet eine Konfigurationsdatei, um festzulegen, wie der Algorithmus
angewandt wird und auf welche Teilmenge der Anwendungen er angewandt
werden sollte.
-
Die Verwendung des konfigurierbaren
Filters oder der Konfigurationsdatei wird durch 8 veranschaulicht. Innerhalb des Servers 800 befinden
sich die Sitzung 801 und die Sitzung 802. Innerhalb
der Sitzung 801 gibt es die Anwendungen 1 bis n, die mit 803, 804 und 805 bezeichnet
sind. Innerhalb der Sitzung 802 gibt es die Anwendungen
1 bis n, die mit 806, 807 und 808 bezeichnet
sind. Innerhalb des Servers gibt es noch die Ressource 809,
die jede beliebige Ressource innerhalb einer Verarbeitungsmaschine
sein könnte,
um die es eine Konkurrenzsituation bzw. einen Wettstreit unter den
Anwendungen gibt. Dies umfaßt
Prozessorleistung und Speicher. Darüber hinaus ist ein konfigurierbarer
Filter oder eine Konfigurationsdatei mit 810 bezeichnet.
Die DTUs sind als 811 und 812 mit den Identifizierungsmerkmalen 813 und 814 angegeben,
die mit dem Server durch die Zwischenverbindungsstrukturen 815 und 816 verbunden
sind.
-
Die Sitzung 801 ist eine
aktive Sitzung, was durch die Verbindung zwischen dem Identifizierungsmerkmal 813 und
der DTU 811 angezeigt wird. Die Sitzung 802 ist
eine inaktive Sitzung, was durch die Trennung bzw. nicht vorhandene
Verbindung zwischen dem Identifizierungsmerkmal 814 und
der DTU 812 angezeigt wird. Obwohl die Sitzung 802 inaktiv
ist, können
die Prozesse 806, 807 und 808 immer noch
die Ressource 809 verbrauchen. Der konfigurierbare Filter
hat eine Liste von Problemanwendungen. In diesem Beispiel sind die
Anwendungen 806 und 807 Problemanwendungen, weil
sie trotz der Inaktivität
der Sitzung immer noch die Ressource 809 verbrauchen. Der
konfigurierbare Filter (oder die Konfigurationsdatei) 810 hindern
die Anwendungen 806 und 807 daher daran, die Ressource 809 zu
verbrauchen, solange das Token 814 nicht mit der DTU 812 verbunden
ist. Wenn das Identifizierungsmerkmal 814 mit der DTU 812 oder
einer anderen DTU, zum Beispiel 811, verbunden wird, erlaubt
der Filter, daß der
Verbrauch der Ressource 809 durch die Anwendungen 806 und 807 wieder
aufgenommen wird.
-
Jene Anwendungen, die nicht richtig
auf Signale reagieren, können
ihre Ressourcenverwendung in einer ähnlichen Weise reduziert bekommen.
Zum Beispiel reduziert eine Ausführungsform
ihre Prozessorzuteilungspriorität,
solange die Sitzung, die die Anwendung enthält, nicht in Kommunikation
mit einer DTU steht. Die Priorität
wird wieder hergestellt, wenn eine Verbindung neu aufgebaut ist.
Nach einer Ausführungsform
wird die Ressourcenverwendung wie wahlfrei zugreifbarer Speicher
oder Prozessorleistung für
gewisse Sitzungen reduziert, jedoch hält der Filter 810 den
Prozeß nicht
vollständig
an. Daher brauchen in 8 die
angegebenen Problemanwendungen 806 und 807 nicht
durch den Filter 810 angehalten zu werden, sondern ihr
Ressourcenverbrauch wurde reduziert.
-
Somit wurde ein Verfahren und eine
Vorrichtung zur Verbesserung der Ressourcenverwendung in einer Computerumgebung
gemeinsam genutzter Clients in Verbindung mit einer oder meh reren
spezifischen Ausführungsformen
bereitgestellt. Die Erfindung wird durch die Ansprüche und
ihren vollständigen
Schutzbereich von Äquivalenten
definiert.