-
Hintergrund
-
Viele Unternehmen gehen über zu einer Netzwerkanordnung, bei der Rechenressourcen von zentralen Server an lokale Computer bereitgestellt werden, an denen Nutzer positioniert sind. Die Rechenressourcen (z. B. Softwareanwendungen, Verarbeitungsressourcen, Speicherressourcen usw.), die an einem oder mehreren zentralen Server zentralisiert sind, können selektiv einer Sitzung zugeordnet werden, die durch einen Nutzer an einem lokalen Computer hergestellt wird.
-
Protokolle werden bereitgestellt, um es einem Nutzer an einem lokalen Computer zu ermöglichen, auf den Desktop eines entfernten Computers (z. B. eines zentralen Servers) über ein Computernetzwerk zuzugreifen und diesen gemeinschaftlich zu verwenden. Ein solches Protokoll ist das Remote Desktop Protocol (RDP), wie es von der Microsoft Corporation bereitgestellt wird, um entfernte Anzeige- und Eingabefähigkeiten über Netzwerkverbindungen bereitzustellen. Ein weiteres Protokoll, das verwendet werden kann, ist das RGS-Protokoll (RGS = Remote Graphics Software = entfernte Graphiksoftware) von der Hewlett Packard Company. RGS dient dazu, die Computer- und Graphikressourcen eines entfernten Computers vollständig auszunutzen, um interaktiven entfernten Zugriff an dem lokalen Computer zu liefern. Die Desktop-Videodaten des entfernten Computers werden über das Netzwerk zu dem lokalen Computer übertragen, der die Desktop-Videodaten lokal in einem Fenster an dem lokalen Computer anzeigt. RGS ist entworfen, um schnelle Erfassung, Komprimierung und Übertragung von Desktop-Videodaten über ein Netzwerk bereitzustellen. RGS dient dazu, Audiodaten von dem entfernten Computer an den lokalen Computer übertragen werden für eine Ausgabe an einem Audiogerät des lokalen Computers. RGS erfasst auch Nutzertastatur- und Mauseingaben an dem lokalen Computer und sendet die Tastatur- und Mauseingaben an den entfernten Computer zum Verarbeiten durch das Betriebssystem des entfernten Computers, und durch Anwendungen, die auf dem entfernten Computer laufen. RGS ermöglicht es auch, dass Daten anderer Peripheriegeräte (z. B. Speichergeräte) von dem lokalen Computer zu dem entfernten Computer kommuniziert werden.
-
Wenn ein lokaler Computer mit mehreren entfernten Computern verbunden wird, kann es sein, dass mehrere doppelte Peripheriegeräte an den lokalen Computer angehängt werden müssen für die Verwendung mit den entsprechenden entfernten Computern. Die Verwendung doppelter Peripheriegeräte erhöht die Anzahl von Hardwaregeräten, die an den lokalen Computer angehängt werden müssen, und kann zu erhöhter Komplexität und erhöhten Kosten führen.
-
Kurze Beschreibung der Zeichnungen
-
Einige Ausführungsbeispiele der Erfindung sind beispielhaft mit Bezugnahme auf die folgenden Figuren beschrieben:
-
1 ist ein Blockdiagramm einer beispielhaften Anordnung, die einen lokalen Computer und einen entfernten Computer umfasst, in dem ein Ausführungsbeispiel der Erfindung aufgenommen werden kann;
-
2 ist ein Flussdiagramm eines Verfahrens, das gemäß einem Ausführungsbeispiel an dem lokalen Computer durchgeführt wird; und
-
3 ist ein Flussdiagramm eines Prozesses, der gemäß einem Ausführungsbeispiel an dem entfernten Computer durchgeführt wird.
-
Detaillierte Beschreibung
-
1 stellt eine Anordnung dar, bei der ein lokaler Computer 100 (an dem ein Nutzer angeordnet ist) in der Lage ist, mit einem von mehreren entfernten Computer 102 über ein Datennetzwerk 104 zu verbinden. Obwohl nur ein lokaler Computer 100 und zwei entfernte Computer 102 in 1 dargestellt sind, wird angemerkt, dass es mehrere lokale Computer 100 und mehr als zwei entfernte Computer 102 geben kann.
-
Der lokale Computer 100 ist in der Lage, die Ressourcen eines entfernten Computers 102 in Sitzungen zu verwenden, die zwischen dem lokalen Computer 100 und dem entfernten Computer 102 hergestellt werden. Der lokale Computer 100 kann beispielsweise die Graphikressourcen des entfernten Computers 102 verwenden, wobei der entfernte Computer 102 Desktop-Videodaten des entfernten Computers über das Netzwerk 104 zu dem lokalen Computer 100 liefert für eine Anzeige in einem Anzeigegerät 106 des lokalen Computers 100. Der lokale Computer kann außerdem Audioressourcen des entfernten Computers 102 nutzen, wobei der entfernte Computer 102 Audiodaten des entfernten Computers über das Netzwerk 104 zu dem lokalen Computer 100 liefert für eine Ausgabe durch ein Audioausgabegerät 107 (z. B. Kopfhörer, Lautsprecher usw.) des lokalen Computers 100.
-
Außerdem sind ein oder mehrere Nutzerschnittstellengeräte 108 an den lokalen Computer 100 angeschlossen. Änderungen des Zustands des Nutzerschnittstellengeräts 108 werden von dem lokalen Computer 100 über das Datennetzwerk 104 zu dem entfernten Computer 102 kommuniziert. Das Nutzerschnittstellengerät 108 kann ein Human Interface Device (HID) gemäß dem HID-Standard sein, wie es beschrieben ist in Universal Serial Bus (USB), Device Class Definition For Human Interface Devices (HID), Firmware Specification, Version 1.11, vom 27. Juni 2001. Das HID-Gerät 108 kann eine Maus, eine Tastatur oder ein Rollkugeltyp-Eingabegerät, ein Tablett usw. sein.
-
1 zeigt auch ein weiteres Eingabeperipheriegerät 109, das an den lokalen Computer 100 angeschlossen ist. Bei dem gezeigten Beispiel kann das Eingabeperipheriegerät 109 ein Smartcard-Leser sein zum Annehmen von Smartcards, die Nutzersicherheitsinformationen enthalten, um es dem Nutzer zu ermöglichen, auf den lokalen Computer 100 und einen der mehreren entfernten Computer 102 zuzugreifen. Eine Smartcard enthält eine Speichervorrichtung zum Speichern der Nutzersicherheitsinformationen. Wenn die Smartcard in den Smartcard-Leser 109 eingefügt wird, gewinnt der Smartcard-Leser 109 die Sicherheitsinformationen von der Smartcard wieder und liefert die Sicherheitsinformationen an den lokalen Computer 100. Umgekehrt liefert der lokale Computer 100 Sicherheitsinformationen an einen ausgewählten der entfernten Computer 102, auf den der Nutzer zugreifen möchte, damit der ausgewählte entfernte Computer 102 bestimmen kann, ob dem Nutzer Zugriff gewährt ist.
-
Gemäß einigen Ausführungsbeispielen kann der Smartcard-Leser 109 mit mehreren entfernten Computer 102 verwendet werden, so dass der Smartcard-Leser 109 nicht verdoppelt werden muss – ein Smartcard-Leser für jeden entsprechenden entfernten Computer 102. Die Fähigkeit, einen Smartcard-Leser 109 mit mehreren entfernten Computer 102 zu verwenden, erhöht die Effizienz und vermeidet die Dopplung von Hardware. Auf diese Weise ist es möglich, dass ein Smartcard-Leser 109 gleichzeitig mit mehreren entfernten Computer 102 verbunden ist. Jeder solcher entfernte Computer 102 sieht ein virtuelles Bild des Smartcard-Lesers 109.
-
Die entfernten Computer 102 umfassen jeweilige virtuelle Treiber 150 zum Emulieren des Smartcard-Lesers 109. Der virtuelle Treiber 150 interagiert mit einem Smartcard-Leser-Gerätetreiber 152 in jedem entsprechenden entfernten Computer 102. Eine Smartcard-Softwareanwendung 154 ist in jedem entfernten Computer 102 vorgesehen, um die Sicherheitsaufgaben bereitzustellen, die dem Smartcard-Leser 109 zugeordnet sind. Die Smartcard-Softwareanwendung 154 kann beispielsweise Abfrageanforderungen an den Smartcard-Leser-Gerätetreiber 152 senden, um alle Daten zu erhalten, die durch den Smartcard-Leser 109 von einer Smartcard gelesen wurden. Die Abfrageanforderungen werden durch den Smartcard-Leser-Gerätetreiber 152 an den virtuellen Treiber 150 weitergeleitet, der wiederum die Abfrageanfragen über das Netzwerk 102 an den lokalen Computer 100 sendet durch verschiedene dazwischenliegende Komponenten (nachfolgend näher beschrieben).
-
Durch Emulieren des Smartcard-Lesers 109 unter Verwendung des virtuellen Treibers 150 in jedem entfernten Computer 102 muss kein tatsächlicher Smartcard-Leser an dem entfernten Computer vorgesehen sein. Ein oder mehrere entfernte Computer 102 können zu jedem Zeitpunkt mit dem lokalen Computer 100 verbunden sein. Somit kann bewirkt werden, dass ein Smartcard-Leser 109 an den entfernten Computern als mehrere virtuelle Geräte erscheint, die mit den lokalen Computer 100 verbunden sind. Es wird angemerkt, dass es sein kann, dass einer oder mehrere andere entfernte Computer 102 zu dieser bestimmten Zeit nicht mit dem lokalen Computer verbunden sind, und somit wären die Smartcard-Anwendungen 154 in diesen anderen entfernten Computer 102 nicht in der Lage, auf den Smartcard-Leser 109 zuzugreifen, der an den lokalen Computer 100 angeschlossen ist. Als Folge müssten die virtuellen Treiber 150 in solchen anderen entfernten Computer 102 das Vorliegen des Smartcard-Lesers 109 emulieren, auch wenn solche anderen entfernten Computer nicht mit dem lokalen Computer 100 verbunden sind. Das Emulieren des Vorliegens des Smartcard-Lesers 109 umfasst, dass der virtuelle Treiber 150 Antworten auf Anfragen von der Smartcard-Anwendung 154 zurücksendet, auch wenn der Smartcard-Leser 109 nicht aktuell zugreifbar ist. Die Antworten, die durch den virtuellen Treiber 150 gesendet werden, können Antworten sein, die anzeigen, dass durch den Smartcard-Leser 109 keine neuen Daten empfangen wurden.
-
Alternativ, anstatt Abfrageanfragen von der Smartcard-Anwendung 154 zu senden, kann die Smartcard-Anwendung 154 auf ein Eingabeereignis von dem Smartcard-Leser 109 warten, wo das Eingabeereignis anzeigt, dass eine Smartcard in den Smartcard-Leser 109 eingefügt wurde.
-
Sicherheitsinformationen, die durch die Smartcard-Anwendung 154 von dem Smartcard-Leser 109 empfangen wurden, werden mit Sicherheitsinformationen in einer Sicherheitsinformationsdatenbank 156 verglichen, die in einer Speicherung 132 des entfernten Computers 102 gespeichert sind. Die Sicherheitsinformationsdatenbank 156 speichert Sicherheitsinformationen für mehrere Nutzer, die befugt sind, um auf den entfernten Computer 102 zuzugreifen.
-
Bei anderen Implementierungen kann das Eingabeperipheriegerät 109 statt einem Smartcard-Leser ein anderer Typ von Eingabesicherheitsgerät sein (z. B. ein Tastenfeld, um einen Sicherheitscode einzugeben, usw.), um Benutzerzugriff des lokalen Computers 100 und der entfernten Computer 102 zu steuern. Bei noch weiteren Implementierungen kann das Eingabeperipheriegerät 109 ein anderer Peripheriegerättyp sein, wie z. B. ein USB-Kopfhörer. Der Nutzer kann wünschen, dass ein Bild des USB-Kopfhörers an jedem der zwei entfernten Computer erscheint.
-
Der lokale Computer 100 umfasst einen zusammenfügenden (coalescing) Gerätetreiber 160, der mit dem Smartcard-Leser 109 interagiert. Der „zusammenfügende” Gerätetreiber 160 ist ein Gerätetreiber, der in der Lage ist, selektiv unterschiedliche Sitzungen mit ausgewählten unterschiedlichen der entfernten Computer 102 einzurichten zum Senden von Smartcard-Daten an den ausgewählten entfernten Computer 102. Ein Nutzer kann beispielsweise wünschen, mit unterschiedlichen entfernten Computern 102 zu verbinden. Der zusammenfügende Gerätetreiber 160 ist in der Lage, Informationen (Daten- und Steuerinformationen) mit einem jeweiligen Smartcard-Gerätetreiber 152 in dem ausgewählten entfernten Computer 102 auszutauschen. Der zusammenfügende Gerätetreiber 160 ermöglicht eine Interaktion zwischen der Smartcard-Anwendung 154 (in dem verbundenen entfernten Computer 102) und dem Smartcard-Leser 109 (in dem lokalen Computer 100) über das Netzwerk 104. Wenn der lokale Computer 100 mit mehreren entfernten Computern 102 verbunden ist, ist der zusammenfügende Gerätetreiber 160 außerdem in der Lage, mehrere Aufrufe von den entfernten Computer zusammenzufügen. Falls beispielsweise das Eingabeperipheriegerät 109 ein USB-Kopfhörer ist, kann der zusammenfügende Treiber 109 Audiodaten von mehreren entfernten Computer in einen Strom mischen für die Ausgabe an dem USB-Kopfhörer. Falls das Eingabeperipheriegerät 109 ein Smartcard-Leser ist, dann kann der zusammenfügende Treiber 109 andererseits intelligentere Funktionen durchführen, einschließlich Bereitstellen von Cachespeicher, um bestimmte Informationen zu speichern.
-
Das Datennetzwerk 104 kann Daten gemäß dem Internetprotokoll (IP) kommunizieren. Das HID-Gerät 108 und der Smartcard-Leser 109 können an den lokalen Computer 100 angeschlossen werden über Universeller-Serieller-Bus-(USB-)Verbindung(en) 110 (verdrahtete oder drahtlose USB-Verbindung) mit einer USB-Steuerung 112 in dem lokalen Computer 100. Bei der oben beschriebenen Implementierung können alle Daten, die sich auf das HID-Gerät 108 oder den Smartcard-Leser 109 beziehen, in der Form von USB-Daten sein, die in IP-Paketen kommuniziert werden, die über das Datennetzwerk 104 zu dem entfernten Computer 102 übertragen werden. Obwohl bei den beschriebenen Ausführungsbeispielen Bezug genommen wird auf „USB” und „IP”, wird angemerkt, dass Techniken gemäß einigen Ausführungsbeispielen auf Datenpakete gemäß anderen Protokolltypen anwendbar sein können.
-
Der lokale Computer 100 wird als „empfangendes System” bezeichnet, und jeder entfernte Computer 102 wird als ein „sendendes System” bezeichnet. Daher umfasst der lokale Computer 100 Empfängersoftware 114 und der entfernte Computer 102 umfasst Sendersoftware 116. Die Sendersoftware 116 wird verwendet zum Senden von Desktop-Videodaten und Audiodaten des entfernten Computers 102 (sendendes System) über das Datennetzwerk 104 an die Empfängersoftware 114 in dem lokalen Computer 100 (empfangendes System), wo die Desktop-Videodaten an dem Anzeigegerät 106 angezeigt werden, und die Audiodaten durch das Audioausgabegerät 107 ausgegeben werden. Es ist anzumerken, dass die Desktop-Videodaten und Audiodaten, die durch die Sendersoftware 116 gesendet werden, tatsächlich Aufbereitungsvideodaten sind und Aufbereitungsaudiodaten, die durch ein jeweiliges Anzeigegerät und Audioausgabegerät aufbereitet werden können. Die Aufbereitungsvideodaten und Aufbereitungsaudiodaten unterscheiden sich von den Daten, die in Sourcevideodateien enthalten sind (z. B. MPEG-Dateien) oder Sourceaudiodateien, die in ein Format umgewandelt werden müssen, das durch jeweilige Anzeigegeräte aufbereitet werden kann.
-
Die Sendersoftware 116 in dem entfernten Computer 102 empfängt Videodaten von einem Videoteilsystem 136 in dem entfernten Computer 102. Die Videodaten des Videoteilsystems 136 sind anzeigbar durch ein Anzeigegerät, das an den entfernten Computer 102 angeschlossen ist. Die Sendersoftware 116 legt dann Komprimierung an die Videodaten an, die an die Empfängersoftware 114 gesendet werden, die dann Dekomprimierung der Videodaten durchführen kann, bevor die Videodaten an dem Anzeigegerät 106 angezeigt werden.
-
Gleichartig dazu empfängt die Sendersoftware 116 Audiodaten von einem Audioteilsystem 137 in dem entfernten Computer 102. Die Audiodaten des Audioteilsystems 137 können durch ein Audioausgabegerät ausgegeben werden, das an den entfernten Computer 102 angeschlossen ist. Die Sendersoftware 116 legt auch Komprimierung an die Audiodaten an, die an die Empfängersoftware 114 gesendet werden, die dann Dekomprimierung der Audiodaten durchführen kann, bevor die Audiodaten an dem Audioausgabegerät 107 ausgegeben werden.
-
Es ist anzumerken, dass bei einigen Implementierungen kein tatsächliches Anzeigegerät oder Audioausgabegerät mit dem Videoteilsystem 136 oder Audioteilsystem 137 des entfernten Computers 102 verbunden sein muss; bei anderen Implementierungen kann jedoch ein Anzeigegerät oder ein Audioausgabegerät mit dem entfernten Computer 102 verbunden sein.
-
Bei einigen Ausführungsbeispielen sind die Sendersoftware 116 und die Empfängersoftware 114 gemäß dem RGS-Protokoll (RGS = remote graphic software) von der Hewlett Packard Company. RGS dient dazu, Computer- und Graphikressourcen eines entfernten Computers vollständig auszunutzen, um interaktiven entfernten Zugriff von einem lokalen Computer bereitzustellen. Bei einem anderen Ausführungsbeispiel können die Sendersoftware 116 und die Empfängersoftware 114 gemäß dem Remote Desktop Protocol (RDP) von der Microsoft Corporation arbeiten, um entfernte Anzeige- und Eingabefähigkeiten über Netzwerkverbindungen bereitzustellen. Bei weiteren Ausführungsbeispielen können die Sendersoftware 116 und die Empfängersoftware 114 gemäß anderen Technologien sein.
-
Der zusammenfügende Gerätetreiber 160 interagiert mit der USB-Steuerung 112, um Operationen bezüglich des Smartcard-Lesers 109 durchzuführen. Außerdem interagiert ein Gerätetreiber 118 in dem lokalen Computer 100 mit der USB-Steuerung 112, um Operationen bezüglich des HID-Geräts 108 durchzuführen. Beispielsweise kann der Gerätetreiber 118 Änderungsanzeigen des HID-Geräts 108 empfangen (z. B., wenn ein Nutzer eine Maus bewegt hat, eine Tastatur betätigt hat, ein Rollkugeltyp-Eingabegerät bewegt hat, ein Eingabegerät relativ zu einem Tablett bewegt hat usw.).
-
Die Daten, die zwischen dem lokalen Computer 100 und dem entfernten Computer 102 (einschließlich HID-Gerätedaten und Smartcard-Daten) gesendet werden, werden durch Netzwerkschnittstellen 120 und 122 in dem lokalen Computer 100 bzw. dem entfernten Computer 102 bereitgestellt. Jede der Nutzerschnittstellen 120 und 122 umfasst eine physikalische Nutzerschnittstellensteuerung sowie einen Protokollstapel, einschließlich eines IP-Protokollstapel. Die Nutzerschnittstelle 120 sendet USB-Daten (Smartcard-Daten und/oder HID-Daten) in jeweiligen IP-Paketen über das Datennetzwerk 104 an den entfernten Computer 102. Die IP-Pakete werden durch eine Netzwerkschnittstelle 122 in dem entfernten Computer 102 empfangen, der die USB-Smartcard-Daten und/oder HID-Daten von den IP-Paketen extrahiert.
-
Smartcard-Daten, die von der Empfängersoftware 114 an der Sendersoftware 116 empfangen werden, werden an den virtuellen Treiber 150 weitergeleitet, der wiederum die Smartcard-Daten an den Smartcard-Leser-Gerätetreiber 152 sendet zum Weiterleiten an die Smartcard-Anwendung 154.
-
HID-Gerätedaten, die an der Sendersoftware 116 empfangen werden, werden an ein virtuelles Zwischenelement (interposer) 124 weitergeleitet. Das virtuelle Zwischenelement 124 fängt Anrufe von einem HID-Gerätetreiber 126 in dem entfernten Computer 102 ab, die für das entfernt angeordnete HID-Gerät 108 beabsichtigt sind, das an den lokalen Computer 100 angeschlossen ist. Das virtuelle Zwischenelement 124 verhindert, dass Aufrufe an die entfernt angeordneten Peripheriegeräte Gerätetreiber des Betriebssystems in dem entfernten Computer 102 einer niedrigeren Ebene (Kernel) erreichen.
-
Andere Gerätetreiber (nicht gezeigt) in jedem entfernten Computer 102 können Audiodaten und Videodaten erzeugen, die an das Audioteilsystem 137 bzw. das Videoteilsystem 136 geliefert werden, um durch jeweilige Anzeigegeräte aufbereitet zu werden, wie z. B. jeweilige Anzeigegeräte, die mit dem lokalen Computer 100 und dem entfernten Computer 102 verbunden sind.
-
Der entfernte Computer 102 umfasst auch eine oder mehrere Softwareanwendungen 134. Eine Softwareanwendung 134 kann aktualisierte Informationen von dem HID-Gerät 108 empfangen und verarbeiten.
-
Der lokale Computer 100 umfasst eine oder mehrere zentrale Verarbeitungseinheiten (CPUs) 138, die mit einer Speichereinrichtung 139 verbunden sind. Die Softwaremodule des lokalen Computers 100, wie z. B. die Empfängersoftware 114 und die Gerätetreiber 118, sind auf der/den CPU(s) 138 ausführbar.
-
Der entfernte Computer 102 umfasst auf ähnliche Weise eine oder mehrere CPUs 140, die mit dem Speicher 132 verbunden sind. Die Softwaremodule des entfernten Computers 102, wie z. B. die Softwareanwendung(en) 134, Gerätetreiber 126, virtuelles Zwischenelement 124, virtueller Treiber 150, Smartcard-Leser-Gerätetreiber 152, Smartcard-Anwendung 154 und Sendersoftware 116, sind auf der/den CPU(s) 140 ausführbar.
-
2 stellt eine Prozedur dar, die durch einen lokalen Computer 100 durchgeführt wird. Der lokale Computer 100 stellt (bei 202) eine Verbindung (oder Sitzung) mit einem ersten entfernten Computer 102 her. Herstellen einer solchen Verbindung umfasst, dass die Empfängersoftware 114 die Verbindung mit der jeweiligen Sendersoftware 116 des ersten entfernten Computers 102 herstellt.
-
Nachdem die Verbindung mit dem ersten entfernten Computer 102 hergestellt wurde, empfängt der zusammenfügende Gerätetreiber 160 in dem lokalen Computer 100 (bei 204) Informationen von dem Smartcard-Leser 109, wie z. B. eine Anzeige, dass eine Smartcard in den Smartcard-Leser 109 eingefügt wurde. Die empfangenen Informationen (z. B. Nutzersicherheitsnachweise) können durch den zusammenfügenden Treiber 160 zwischengespeichert werden (für zukünftige Nutzung). Der zusammenfügende Gerätetreiber 160 interagiert dann (bei 206) mit der Smartcard-Anwendung 154 des ersten entfernten Computers 102, um Aufgaben bezüglich des Smartcard-Lesers 109 durchzuführen.
-
Später stellt der lokale Computer 100 (bei 208) eine andere Verbindung (oder Sitzung) mit einem zweiten entfernten Computer 102 her. Nach der Verbindung mit dem zweiten entfernten Computer 102 ist sich die zusammenfügende Software 160 bewusst, dass dieselbe mit dem Smartcard-Leser 109 verbunden bleibt. Die zusammenfügende Software 160 sendet (bei 210) ein emuliertes Karteneinsteckereignis an den zweiten entfernten Computer 102, um dem zweiten entfernten Computer anzuzeigen, dass eine Smartcard an dem Smartcard-Leser 109 empfangen wurde. Es ist anzumerken, dass der zusammenfügende Treiber 160 die Nutzersicherheitsnachweise zwischengespeichert hat, die auf Anfrage dem zweiten entfernten Computer 102 bereitgestellt werden können. Der zusammenfügende Gerätetreiber 160 interagiert dann (bei 212) mit der Smartcard-Anwendung 154 des zweiten entfernten Computers 102, um Aufgaben bezüglich des Smartcard-Lesers 109 durchzuführen.
-
Falls eine Smartcard später von dem Smartcard-Leser 109 entfernt wird, ist der zusammenfügende Treiber 160 in der Lage, ein Smartcard-Entfernungsereignis an alle verbundenen entfernten Computer zu senden.
-
3 stellt eine Prozedur gemäß einem Ausführungsbeispiel dar, die an dem entfernten Computer 102 durchgerührt wird. Falls der virtuelle Treiber 150 erfasst, dass der entfernte Computer 102 mit dem lokalen Computer 100 verbunden ist, dann ermöglicht der virtuelle Treiber 150 (bei 302) Interaktion zwischen der Smartcard-Anwendung 154 in dem entfernten Computer 102 und dem Smartcard-Leser 109, der an den lokalen Computer 100 angeschlossen ist.
-
Falls jedoch der virtuelle Treiber 150 erfasst, dass der entfernte Computer 102 nicht mit dem lokalen Computer 100 verbunden ist, dann führt der virtuelle Treiber 150 (bei 304) Emulation des Smartcard-Lesers durch, um ein Vorliegen des Smartcard-Lesers zu emulieren, auch wenn der Smartcard-Leser nicht verbunden ist. In seinem Emulationsmodus handhabt der virtuelle Treiber 150 Anforderungen von der Smartcard-Anwendung 154 und liefert Antworten auf solche Anforderungen. Es ist anzumerken, dass bei einigen anderen Fällen der virtuelle Treiber 150 wählen kann, Emulieren des Smartcard-Lesers zu beenden, falls der Smartcard-Leser nicht verbunden ist.
-
Befehle von Software, die oben beschrieben ist (einschließlich Empfängersoftware 114, zusammenfügender Treiber 160, Gerätetreiber 118, Sendersoftware 116, virtueller Treiber 150, Smartcard-Leser-Gerätetreiber 154, virtuelles Zwischenelement 124 und Gerätetreiber 156 von 1) sind für die Ausführung auf einem Prozessor geladen. (wie z. B. eine oder mehrere CPUs 139, 140 in 1). Der Prozessor umfasst Mikroprozessoren, Mikrocontroller, Prozessormodule oder Teilsysteme (einschließlich eines oder mehrerer Mikroprozessoren oder Mikrocontrollern) oder andere Steuer- oder Rechengeräte. Ein „Prozessor” kann sich auf eine einzelne Komponente oder auf mehrere Komponenten beziehen (z. B. eine CPU oder mehrere CPUs).
-
Daten und Befehle (der Software) sind in jeweiligen Speichervorrichtungen gespeichert, die als ein oder mehrere computerlesbare oder computernutzbare Speichermedien implementiert sind. Speichermedien umfassen unterschiedliche Formen von Speicher einschließlich Halbleiterspeichergeräte, wie z. B. dynamische oder statische Direktzugriffsspeicher (DRAMs oder SRAMs), löschbare und programmierbare Nur-Lese-Speicher (EPROMs), elektrisch löschbare und programmierbare Nur-Lese-Speicher (EEPROMs) und Flash-Speicher; Magnetplatten, wie z. B. Festplatten, Disketten und entfernbare Platten; andere Magnetmedien, die Band umfassen; und optische Medien, wie z. B. Kompaktdisks (CDs) oder digitale Videodisks (DVDs). Es ist anzumerken, dass die Befehle der oben erörterten Software auf einem computerlesbaren oder computernutzbaren Speichermedium vorgesehen sein können oder alternativ auf mehreren computerlesbaren oder computernutzbaren Speichermedien vorgesehen sein können, die in einem großen System mit möglicherweise mehreren Knoten verteilt sein können. Ein solches computerlesbares oder computernutzbares Speichermedium oder -medien ist (sind) Teil eines Artikels (oder eines Herstellungsartikels). Ein Artikel oder Herstellungsartikel kann sich auf jede hergestellte einzelne Komponente oder mehrere Komponenten beziehen.
-
In der vorhergehenden Beschreibung sind zahlreiche Einzelheiten angeführt, um ein Verständnis der vorliegenden Erfindung bereitzustellen. Für Fachleute auf diesem Gebiet ist jedoch klar, dass die vorliegende Erfindung ohne diese Einzelheiten praktiziert werden kann. Obwohl die Erfindung mit Bezugnahme auf eine begrenzte Anzahl von Ausführungsbeispielen offenbart wurde, werden Fachleute auf diesem Gebiet zahlreiche Modifikationen und Variationen davon erkennen. Die angehängten Ansprüche decken solche Modifikationen und Variationen ab, die in die wahre Wesensart und den Schutzbereich der Erfindung fallen.