DE60100624T2 - Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient - Google Patents

Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient Download PDF

Info

Publication number
DE60100624T2
DE60100624T2 DE60100624T DE60100624T DE60100624T2 DE 60100624 T2 DE60100624 T2 DE 60100624T2 DE 60100624 T DE60100624 T DE 60100624T DE 60100624 T DE60100624 T DE 60100624T DE 60100624 T2 DE60100624 T2 DE 60100624T2
Authority
DE
Germany
Prior art keywords
computer
session
application
user
resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60100624T
Other languages
English (en)
Other versions
DE60100624D1 (de
Inventor
G. James HANKO
Duane J. Northcutt
A. Gerard WALL
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE60100624D1 publication Critical patent/DE60100624D1/de
Publication of DE60100624T2 publication Critical patent/DE60100624T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Description

  • 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 530538, 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 530538, 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 530538 innerhalb einer Sitzung (z. B. Sitzung 508) interagieren. Das Netzwerkterminal 502 wird mit den Servern 510, 512 und 514 (und den Diensten 530538) ü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 530538 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 530538 (z. B. mittels einer Verbindungsabbaunachricht), was deren Übermittlung von Anzeigekommandos an das Netzwerkterminal 502 beendet. Die Dienste 530538 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 530538 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.

Claims (19)

  1. Verfahren zum Verbessern des Zugriffes auf eine oder mehrere Ressourcen (803, 804, 805, 806, 807 oder 808) auf einem Computer, auf dem eine Mehrzahl von Anwendungen (803, 804, 805, 806, 807 oder 808) installiert sind, mit: Bestimmen, wann eine Anwendung (803, 804, 805, 806, 807 oder 808) inaktiv geworden ist, Senden eines ersten Signals an die Anwendung (803, 804, 805, 806, 807 oder 808), welches anzeigt, daß die Anwendung (803, 804, 805, 806, 807 oder 808) den Verbrauch der einen oder mehreren Ressourcen (809) beenden oder vermindern sollte, Bestimmen, wann die Anwendung (803, 804, 805, 806, 807 oder 808) ihre Aktivität wiederaufgenommen hat und Senden eines zweiten Signals an die Anwendung (803, 804, 805, 806, 807 oder 808), welches anzeigt, daß die Anwendung (803, 804, 805, 806, 807 oder 808) den Verbrauch der einen oder mehreren Ressourcen (809) wiederaufnehmen oder steigern soll.
  2. Verfahren nach Anspruch 1, wobei das Bestimmen, wann die Anwendung (803, 804, 805, 806, 807 oder 808) inaktiv geworden ist, die Bestimmung aufweist, wann eine Sitzung (801 oder 802) nicht mehr aktiv ist, indem gekennzeichnet wird, wann eine Desktop-Einheit (811 oder 812) mit ihrer Sitzung (801 oder 802) abgetrennt worden ist.
  3. Verfahren nach Anspruch 2, wobei das Bestimmen, wann die Anwendung (803, 804, 805, 806, 807 oder 808) ihre Aktivität wiederaufgenommen hat, das Bestimmen aufweist, wann die Sitzung (801 oder 802) aktiv wird, indem identifiziert wird, wann irgendeine Desktop-Einheit (811 oder 812) wieder mit der Sitzung (801 oder 802) verknüpft ist.
  4. Verfahren nach den Ansprüchen 2 oder 3, wobei ein Kennzeichen, welches die Zuordnung bewirkt, eine Smart Card (813 oder 814) ist.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei die ersten und zweiten Signale durch einen Server (800) gesendet werden.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei die Anwendung (803, 804, 805, 806, 807 oder 808) ein Mitglied der Mehrzahl von Anwendungen (803, 804, 805, 806, 807 oder 808) ist.
  7. Verfahren nach Anspruch 4, wobei das Mitglied einen Teilsatz aus der Mehrzahl von Anwendungen (803, 804, 805, 806, 807 oder 808) aufweist.
  8. Verfahren nach einem der vorstehenden Ansprüche, wobei das erste Signal einen Betriebssystembefehl für das Stoppen eines Vorgangs aufweist und das zweite Signal einen Betriebssystembefehl zum Starten eines Vorgangs aufweist.
  9. Verfahren nach einem der vorstehenden Ansprüche, welches weiterhin aufweist: Modifizieren eines Datenaufbaus, der zu einer Anwendung (803, 804, 805, 806, 807 oder 808) gehört, wenn das erste Signal und das zweite Signal gesendet werden.
  10. Vorrichtung, welche den Zugriff auf eine oder mehrere Ressourcen (809) auf einem Computer verbessert, der eine Mehrzahl von Anwendungen (803, 804, 805, 806, 807 oder 808) enthält, und welche aufweist: eine erste Sitzung (801 oder 802), wobei die erste Sitzung (801 oder 802) von einer Desktop-Einheit (811 oder 812) getrennt wird, was anzeigt, daß die erste Sitzung nicht aktiv ist, ein erstes Signal, welches von dem Computer an zumindest ein Mitglied aus der Mehrzahl von Anwendungen (803, 804, 805, 806, 807 oder 808) gesendet wird und welches anzeigt, daß das zumindest ein Mitglied den Verbrauch einer oder mehrerer Ressourcen (809) beenden sollte, wobei die erste Sitzung (801 oder 802) einer Desktop-Einheit (811 oder 812) erneut zugeordnet wird, was anzeigt, daß die Sitzung (801 oder 802) ihre Aktivität wiederaufgenommen hat, und ein zweites Signal, welches von dem Computer zu dem zumindest einen Mitglied gesendet wird, welches anzeigt, daß das zumindest eine Mitglied den Verbrauch der einen oder mehreren Ressourcen (809) wiederaufnehmen sollte.
  11. Vorrichtung nach Anspruch 10, wobei eine Kennzeichnung, welche die Zuordnung bewirkt, eine Smart Card ist.
  12. Vorrichtung nach Anspruch 10 oder 11, wobei die ersten und zweiten Signale von einem Server (800) gesendet werden.
  13. System nach einem der Ansprüche 10 bis 12, wobei das zumindest eine Mitglied einen Teilsatz aus der Mehrzahl von Anwendungen (803, 804, 805, 806, 807 oder 808) aufweist.
  14. Computerprogrammprodukt, welches aufweist: ein von einem Computer verwendbares Medium, das einen computerlesbaren Programmcode hat, welcher darin verkörpert ist, um den Zugriff auf eine oder mehrere Ressourcen (809) zu verbessern, welches aufweist: einen computerlesbaren Programmcode, welcher so ausgestaltet ist, daß er bewirkt, daß ein Computer den Zugriff auf eine oder mehrere Ressourcen (809) auf einem Computer verbessert, welcher eine Mehrzahl von Anwendungen (803, 804, 805, 806, 807 oder 808) beherbergt, und welcher aufweist: computerlesbaren Programmcode, der so ausgestaltet ist, daß er bewirkt, daß ein Computer bestimmt, wann eine Anwendung (803, 804, 805, 806, 807 oder 808) inaktiv geworden ist, computerlesbaren Programmcode, der so ausgestaltet ist, daß er bewirkt, daß ein Computer ein erstes Signal an die Anwendung (803, 804, 805, 806, 807 oder 808) sendet, welches anzeigt, daß die Anwendung (803, 804, 805, 806, 807 oder 808) mit dem Verbrauch der einen oder mehreren Ressourcen (809) aufhören sollte, computerlesbaren Programmcode, der so ausgestaltet ist, daß er bewirkt, daß ein Computer feststellt, wann die Anwendung (803, 804, 805, 806, 807 oder 808) die Aktivität wiederaufgenommen hat, und computerlesbaren Programmcode, der so ausgestaltet ist, daß er bewirkt, daß ein Computer ein zweites Signal an die Anwendung (803, 804, 805, 806, 807 oder 808) sendet, welches anzeigt, daß die Anwendung (803, 804, 805, 806, 807 oder 808) den Verbrauch der einen oder mehreren Ressourcen (809) wiederaufnehmen oder steigern sollte.
  15. Computerprogrammprodukt nach Anspruch 14, wobei der computerlesbare Programmcode, der so ausgestaltet ist, daß er bewirkt, daß ein Computer feststellt, wann die Anwendung (803, 804, 805, 806, 807 oder 808) inaktiv geworden ist, einen computerlesbaren Programmcode aufweist, der so ausgestaltet ist, daß er bewirkt, daß ein Computer feststellt, wann eine Sitzung (801) nicht mehr aktiv ist, indem sie identifiziert, wann eine Desktop-Einheit (811 oder 812) von der Sitzung (801 oder 802) getrennt worden ist.
  16. Computerprogrammprodukt nach Anspruch 15, wobei der computerlesbare Programmcode, welcher so ausgestaltet ist, daß er bewirkt, daß der Computer bestimmt, wann die Anwendung (803) ihre Aktivität wiederaufgenommen hat, einen computerlesbaren Programmcode aufweist, der so ausgestaltet ist, daß er bewirkt, daß ein Computer feststellt, wann die Sitzung (801 oder 802) aktiv geworden ist, indem er identifiziert, wann irgendeine Desktop-Einheit (811 oder 812) der Sitzung (801 oder 802) wieder neu zugeordnet wird.
  17. Computerprogrammprodukt nach Anspruch 15 oder 16, wobei eine Kennung, welche die Zuordnung bewirkt, eine Smart Card (813 oder 814) ist.
  18. Computerprogrammprodukt nach einem der Ansprüche 14 bis 17, wobei die ersten und zweiten Signale von einem Server (800) gesendet werden.
  19. Computerprogrammprodukt nach einem der Ansprüche 14 bis 18, wobei das erste Signal und das zweite Signal Betriebssystembefehle aufweisen.
DE60100624T 2000-02-25 2001-02-23 Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient Expired - Fee Related DE60100624T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/513,652 US6912578B1 (en) 2000-02-25 2000-02-25 Method and apparatus for improving utilization of a resource on a shared client
US513652 2000-02-25
PCT/US2001/005743 WO2001063401A2 (en) 2000-02-25 2001-02-23 Method and apparatus for improving utilization of a resource on a shared client

Publications (2)

Publication Number Publication Date
DE60100624D1 DE60100624D1 (de) 2003-09-25
DE60100624T2 true DE60100624T2 (de) 2004-06-24

Family

ID=24044141

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60100624T Expired - Fee Related DE60100624T2 (de) 2000-02-25 2001-02-23 Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient

Country Status (5)

Country Link
US (1) US6912578B1 (de)
EP (1) EP1257909B1 (de)
AU (1) AU2001241679A1 (de)
DE (1) DE60100624T2 (de)
WO (1) WO2001063401A2 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7933968B1 (en) * 2000-06-20 2011-04-26 Koninklijke Philips Electronics N.V. Token-based personalization of smart appliances
CA2432141C (en) * 2000-12-18 2010-02-09 Cora Alisuag Computer oriented record administration system
US7587759B1 (en) * 2002-02-04 2009-09-08 Mcafee, Inc. Intrusion prevention for active networked applications
US7363363B2 (en) 2002-05-17 2008-04-22 Xds, Inc. System and method for provisioning universal stateless digital and computing services
US7146569B2 (en) * 2002-10-10 2006-12-05 International Business Machines Corporation Method, apparatus, and program for visual representation of an address space
JP4787684B2 (ja) * 2006-06-15 2011-10-05 日本電気株式会社 セッション管理システム、セッション管理方法、及びプログラム
JP4293234B2 (ja) 2006-12-05 2009-07-08 日本電気株式会社 シンクライアントにおける接続管理方法及び接続管理サーバ
US20080313639A1 (en) * 2007-06-13 2008-12-18 Krishna Kumar Policy based scheduling of software applications
US8780704B2 (en) * 2008-01-10 2014-07-15 Qualcomm Incorporated Shared resource allocation
US20100088397A1 (en) * 2008-10-03 2010-04-08 Joe Jaudon Systems for dynamically updating virtual desktops or virtual applications
US20100088360A1 (en) * 2008-10-03 2010-04-08 Joe Jaudon Methods for dynamically updating virtual desktops or virtual applications
US9367512B2 (en) * 2009-04-22 2016-06-14 Aventura Hq, Inc. Systems and methods for dynamically updating virtual desktops or virtual applications in a standard computing environment
US8234332B2 (en) * 2009-04-22 2012-07-31 Aventura Hq, Inc. Systems and methods for updating computer memory and file locations within virtual computing environments
US8370854B2 (en) * 2009-08-13 2013-02-05 International Business Machines Corporation Automatic closure of a file or a device in a data processing system
US20110082938A1 (en) * 2009-10-07 2011-04-07 Joe Jaudon Systems and methods for dynamically updating a user interface within a virtual computing environment
US8346920B2 (en) * 2010-07-15 2013-01-01 Srr Patent Holdings, Llc Managing network resource requests
US8788863B2 (en) 2011-08-10 2014-07-22 Microsoft Corporation System and method for restoring and/or continuing execution functionality to various processes based on predefined power classifications while transitioning a computing environment from connected standby state to execution state
US8997171B2 (en) 2011-08-19 2015-03-31 Microsoft Technology Licensing, Llc Policy based application suspension and termination
US8578394B2 (en) * 2011-09-09 2013-11-05 Microsoft Corporation Exempting applications from suspension
US9952897B2 (en) 2011-09-12 2018-04-24 Microsoft Technology Licensing, Llc Managing processes within suspend states and execution states
CN104053019A (zh) * 2013-03-12 2014-09-17 中兴通讯股份有限公司 基于虚拟桌面的视频播放、处理方法及装置
US10037221B2 (en) * 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools
CN105893142A (zh) * 2015-12-31 2016-08-24 乐视移动智能信息技术(北京)有限公司 一种资源分配方法及装置
CN115981828B (zh) * 2023-02-09 2023-09-22 中国证券登记结算有限责任公司 一种业务消息处理方法和装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414750A (en) * 1993-06-09 1995-05-09 Mobile Telecommunication Technologies Automated seamless cellular telephone network
US5664095A (en) 1993-12-08 1997-09-02 Intel Corporation Dynamic scaling of CPU cycle consumption in a computer system
US5550970A (en) 1994-08-31 1996-08-27 International Business Machines Corporation Method and system for allocating resources
CA2172823C (en) * 1994-09-21 2008-03-11 John M. Pratt A link manager for managing links integrating data between application programs
US5678024A (en) 1995-05-08 1997-10-14 International Business Machines Corporation Method and system for dynamic performance resource management within a computer based system
US5889941A (en) * 1996-04-15 1999-03-30 Ubiq Inc. System and apparatus for smart card personalization
US6298422B1 (en) * 1996-06-17 2001-10-02 Network Associates, Inc. Method for reducing the memory requirements for an application program executing in a multi-tasking environment
US6393569B1 (en) * 1996-12-18 2002-05-21 Alexander S. Orenshteyn Secured system for accessing application services from a remote station
US6061726A (en) * 1997-05-27 2000-05-09 Novell, Inc. Dynamic rights assignment apparatus and method using network directory services
US6249803B1 (en) * 1997-12-18 2001-06-19 Sun Microsystems, Inc. Method and apparatus for executing code during method invocation
DE69907876T2 (de) 1998-02-26 2004-01-22 Sun Microsystems, Inc., Palo Alto Verfahren, gerät und produkt zum leasen von gruppenmitgliedschaften in einem verteilten system
US6434532B2 (en) * 1998-03-12 2002-08-13 Aladdin Knowledge Systems, Ltd. Interactive customer support for computer programs using network connection of user machine
US5946465A (en) * 1998-03-30 1999-08-31 International Business Machines Corporation Method and system for recovering system resources used by an inactive Telnet client
AUPP308298A0 (en) 1998-04-20 1998-05-14 Ericsson Australia Pty Ltd Access control method and apparatus
US6157927A (en) * 1998-04-22 2000-12-05 Unisys Corporation Methods and apparatus for enabling a component in a first transaction processing environment to access a resource in another environment that is under the control of an Xatmi complaint transaction manager
US6412015B1 (en) * 1998-06-24 2002-06-25 New Moon Systems, Inc. System and method for virtualizing and controlling input and output of computer programs
US6212564B1 (en) * 1998-07-01 2001-04-03 International Business Machines Corporation Distributed application launcher for optimizing desktops based on client characteristics information
US6014784A (en) * 1998-10-19 2000-01-18 Taylor; Rex E. Portable system for generating variable pressure point body support
US6411986B1 (en) * 1998-11-10 2002-06-25 Netscaler, Inc. Internet client-server multiplexer
US6347339B1 (en) * 1998-12-01 2002-02-12 Cisco Technology, Inc. Detecting an active network node using a login attempt
US6272129B1 (en) * 1999-01-19 2001-08-07 3Com Corporation Dynamic allocation of wireless mobile nodes over an internet protocol (IP) network
US6549934B1 (en) * 1999-03-01 2003-04-15 Microsoft Corporation Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client
US6402028B1 (en) * 1999-04-06 2002-06-11 Visa International Service Association Integrated production of smart cards
US6397053B1 (en) * 1999-12-30 2002-05-28 Koninklijke Philips Electronics N.V. (Kpenv) Reduction of power consumption with increased standby time in wireless communications device

Also Published As

Publication number Publication date
WO2001063401A2 (en) 2001-08-30
AU2001241679A1 (en) 2001-09-03
WO2001063401A3 (en) 2002-08-08
EP1257909A2 (de) 2002-11-20
DE60100624D1 (de) 2003-09-25
EP1257909B1 (de) 2003-08-20
US6912578B1 (en) 2005-06-28

Similar Documents

Publication Publication Date Title
DE60100624T2 (de) Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient
DE60101841T2 (de) Verfahren und vorrichtung zum verteilen der last in einer rechnerumgebung
DE69935920T2 (de) Lastausgleich in einer netzwerkumgebung
DE60315558T2 (de) Verteiltes Rechnersystem für Vorrichtungsresourcen basierend auf Identität
DE60216918T2 (de) Verfahren und computersystem zur auswahl eines randservercomputers
DE60125705T2 (de) Vorrichtung und Verfahren zur Implementierung eines HTTP Programmstacks auf einem Client
DE60024706T2 (de) Verteiltes Parameterkontrollprotokoll
DE69923827T2 (de) Verfahren zum Verbindungsaufbau
DE69735348T2 (de) Skalierbare und erweiterbare Systemverwaltungsarchitektur mit datenlosen Endpunkten
DE69912317T2 (de) Vorrichtung und verfahren zur bestimmung einer programmnachbarschaft für einen kundenknoten in einem kundenbedienernetzwerk
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE69938077T2 (de) Verfahren, Vorrichtung und Programmspeichereinrichtung für einen Klienten und ein adaptiver Synchronisierungs- und Transformierungsserver
DE60313567T2 (de) Zugriffsrelayvorrichtung
DE60109709T2 (de) Datenverwaltungsrahmenwerk für Verfahrensverwaltung
DE69627604T2 (de) Verfahren und vorrichtung zum verarbeiten von e/a-anforderungen
DE69933852T2 (de) Hausnetz- autokonfigurierung
DE602005004334T2 (de) Nms zur Verarbeitung von Multi-Server Ereignissen
DE69927713T2 (de) Angekündigte Sitzungsbeschreibung
DE69930695T2 (de) Verfahren und Vorrichtung für ein Applikationsverteiler für eine Serverapplikation
DE60310676T2 (de) System und verfahren zum identifizieren eines drahtlosen versorgungsknotens für eine mobileinheit
DE10297645B4 (de) Verfahren und Einrichtung zum Lastteilen und zur Datenverteilung in Servern
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE112008003966T5 (de) Selektives Um-Abbilden einer Netzwerktopologie
DE69837550T2 (de) System und Verfahren zur Datenübermittlung von einer Serverapplikation an Klientknoten

Legal Events

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