DE112009004064T5 - Bereitstellen einer angabe einer veränderung an einernutzerschnittstellenvorrichtung über ein netzwerk zwischen computern - Google Patents

Bereitstellen einer angabe einer veränderung an einernutzerschnittstellenvorrichtung über ein netzwerk zwischen computern Download PDF

Info

Publication number
DE112009004064T5
DE112009004064T5 DE112009004064T DE112009004064T DE112009004064T5 DE 112009004064 T5 DE112009004064 T5 DE 112009004064T5 DE 112009004064 T DE112009004064 T DE 112009004064T DE 112009004064 T DE112009004064 T DE 112009004064T DE 112009004064 T5 DE112009004064 T5 DE 112009004064T5
Authority
DE
Germany
Prior art keywords
data
computer
interface device
user interface
received
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.)
Ceased
Application number
DE112009004064T
Other languages
English (en)
Inventor
James M. King
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112009004064T5 publication Critical patent/DE112009004064T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)

Abstract

Ein erster Computer empfängt Daten einer Nutzerschnittstellenvorrichtung über ein Netzwerk von einem zweiten Computer, wobei die Daten der Nutzerschnittstellenvorrichtung ansprechend auf eine an der Nutzerschnittstellenvorrichtung auftretende Veränderung empfangen werden. Ansprechend auf eine Anforderung von einer anfordernden Entität in dem ersten Computer bestimmt ein Modul in dem ersten Computer, ob die Daten der Nutzerschnittstellenvorrichtung seitens des ersten Computers empfangen wurden. Ansprechend auf ein Bestimmen, dass die Daten der Nutzerschnittstellenvorrichtung empfangen wurden, liefert das Modul die empfangenen Daten ansprechend auf die Anforderung an die anfordernde Entität, und ansprechend auf ein Bestimmen, dass die Daten der Nutzerschnittstellenvorrichtung nicht empfangen wurden, liefert das Modul an die anfordernde Entität eine Angabe, dass an der Nutzerschnittstellenvorrichtung keine Veränderung aufgetreten ist.

Description

  • Hintergrund
  • Viele Unternehmen gehen derzeit zu einer Netzwerkanordnung über, bei der Rechenressourcen zentraler Server lokalen Computer bereitgestellt werden, an denen sich Nutzer befinden. Die Rechenressourcen (z. B. Softwareanwendungen, Verarbeitungsressourcen, Speicherressourcen usw.), die an einem oder mehreren zentralen Servern zentralisiert sind, können selektiv einer durch einen Nutzer an einem lokalen Computer eingerichteten Sitzung (Session) zugewiesen werden.
  • Es werden Protokolle bereitgestellt, um einen Nutzer an einem lokalen Computer zu befähigen, über ein Computernetzwerk auf den Desktop eines entfernten Computers (z. B. eines zentralen Servers) zuzugreifen und dasselbe mit zu nutzen. Ein derartiges Protokoll ist das Remote Desktop Protocol (RDP, Entferntes-Desktop-Protokoll), wie es von Microsoft Corporation bereitgestellt wird, um entfernte Anzeige- und Eingabefähigkeiten über Netzwerkverbindungen bereitzustellen. Ein weiteres Protokoll, das verwendet werden kann, ist das Remote Graphic Software Protocol (RGS-Protokoll, RGS = Entfernte-Graphik-Software) von der Firma Hewlett Packard. RGS ist dahin gehend entworfen, die Computer- und Graphikressourcen eines entfernten Computers vollständig zu nutzen, um an dem lokalen Computer einen interaktiven Fernzugriff zu liefern. Die Desktop-Videodaten des entfernten Computers werden über das Netzwerk an den lokalen Computer gesendet, der die Desktop-Videodaten lokal in einem Fenster an dem lokalen Computer anzeigt. RGS ist dahin gehend entworfen, eine schnelle Erfassung, Komprimierung und Übermittlung von Desktop-Videodaten über ein Netzwerk zu liefern. RGS ermöglicht auch, dass Audiodaten von dem entfernten Computer an den lokalen Computer zur Ausgabe auf einer Audiovorrichtung des lokalen Computers gesendet werden. RGS erfasst außerdem Tastatur- und Mauseingaben eines Nutzers an dem lokalen Computer und sendet die Tastatur- und Mauseingaben an den entfernten Computer zur Verarbeitung durch das Betriebssystem des entfernten Computers und durch Anwendungen, die auf dem entfernten Computer ablaufen.
  • Die an den lokalen Computer angeschlossene Tastatur und Maus (und/oder andere Peripheriegeräte) können Menschschnittstellenvorrichtungen (HIDs – human interface devices) sein, die gemäß dem HID-Standard arbeiten, wie bei Universal-Serien-Bus (USB, universal serial bus), Device Class Definition For Human Interface Devices (HID (Vorrichtungsklassendefinition für Nutzerschnittstellenvorrichtungen), Firmware Specification (Firmware-Spezifikation)), Version 1.11 vom 27. Juni 2001, beschrieben ist. Eine HID-Vorrichtung ist eine Vorrichtung vom Unterbrechungstyp (interrupt type), die kontinuierlich Daten für einen Transfer. Der Datentransfer findet sogar in dem Fall statt, dass es keine zu transferierenden Daten gibt, wobei die HID-Vorrichtung null- oder zero-HID-Daten sendet, falls an der HID-Vorrichtung keine Veränderung aufgetreten ist.
  • Im Zusammenhang mit einer Anordnung, bei der die HID-Vorrichtung an einen lokalen Computer angeschlossen ist, der über ein Netzwerk auf Ressourcen eines entfernten Computers zugreift, weist der entfernte Computer einen Vorrichtungstreiber auf, der üblicherweise Intervalle plant, während derer die HID-Vorrichtung HID-Daten von dem lokalen Computer über das Netzwerk an den entfernten Computer transferiert. Der Vorrichtungstreiber des entfernten Computers sendet in jedem Intervall eine Anforderung (Anfrage) bezüglich der HID-Daten der HID-Vorrichtung an den lokalen Computer. Ansprechend auf derartige Vorrichtungstreiberanforderungen sendet der lokale Computer sogar in dem Fall über das Netzwerk HID-Daten zurück an den entfernten Computer, dass an der HID-Vorrichtung keine Veränderung aufgetreten ist. Falls an der HID-Vorrichtung keine Veränderung aufgetreten ist, wenn Daten seitens des entfernten Computers angefordert werden, sendet der lokale Computer zero-HID-Daten über das Netzwerk an den entfernten Computer.
  • Das Senden von zero-HID-Daten und die seitens des entfernten Computers an den lokalen Computer gesendeten periodischen Anforderungen verbrauchen wertvolle Netzwerkressourcen. Bei einem System, das viele lokale Computer und viele entfernte Computer aufweisen kann, kann der oben beschriebene Verkehr einen Stau in einem Netzwerk verursachen.
  • Kurze Beschreibung der Zeichnungen
  • Manche Ausführungsbeispiele der Erfindung werden in Bezug auf die folgenden Figuren beispielhaft beschrieben:
  • 1 ist ein Blockdiagramm einer exemplarischen Anordnung, die einen lokalen Computer und einen entfernten Computer umfasst und bei der ein Ausführungsbeispiel der Erfindung integriert sein kann;
  • 2 ist ein Flussdiagramm eines an einem lokalen Computer (Empfangssystem) durchgeführten Prozesses eines Kommunizieren einer Angabe einer Veränderung au einer Nutzerschnittstellenvorrichtung (die an den lokalen Computer angeschlossen ist) an den entfernten Computer gemäß einem Ausführungsbeispiel; und
  • 3 ist ein Flussdiagramm eines an einem entfernten Computer (Sendesystem) durchgeführten Prozesses eines Ansprechen auf eine Anforderung von einem Vorrichtungstreiber an dem entfernten Computer bezüglich Daten, die sich auf die an den lokalen Computer angeschlossene Nutzerschnittstellenvorrichtung beziehen, gemäß einem Ausführungsbeispiel.
  • Ausführliche Beschreibung
  • 1 veranschaulicht eine Anordnung, bei der ein lokaler Computer 100 (an dem sich ein Nutzer befindet) über ein Datennetzwerk 104 mit einem entfernten Computer 102 verbunden ist. Obwohl in 1 lediglich ein lokaler Computer 100 und ein entfernter Computer 102 gezeigt sind, ist zu beachten, dass mehrere lokale Computer 100 und/oder mehrere entfernte Computer 102 vorliegen können.
  • Der lokale Computer 100 nutzt die Ressourcen des entfernten Computers 102 in Sitzungen, die zwischen dem lokalen Computer 100 und dem entfernten Computer 102 eingerichtet werden. Beispielsweise kann der lokale Computer 100 die Graphikressourcen des entfernten Computers 102 nutzen, in denen der entfernte Computer 102 Desktop-Videodaten des entfernten Computers über das Netzwerk 104 an den lokalen Computer 100 zur Anzeige in einer Anzeigevorrichtung 106 des lokalen Computers 100 liefert.
  • Auch sind an den lokalen Computer 100 eine oder mehrere Nutzerschnittstellenvorrichtungen 108 angeschlossen. Veränderungen des Zustands der Nutzerschnittstellenvorrichtung 108 werden von dem lokalen Computer 100 über das Datennetzwerk 104 an den entfernten Computer 102 kommuniziert. Bei manchen Ausführungsbeispielen ist die Nutzerschnittstellenvorrichtung 108 eine Menschschnittstellenvorrichtung (HID) gemäß dem HID-Standard, wie bei Universal-Serien-Bus (USB), Device Class Definition For Human Interface Devices (HID), Firmware Specification, Version 1.11 vom 27, Juni 2001, beschrieben ist. Bei anderen Ausführungsbeispielen kann die Nutzerschnittstellenvorrichtung 108 gemäß anderen Standards arbeiten. In der folgenden Erörterung wird auf eine an den lokalen Computer 100 angeschlossene „HID-Vorrichtung” Bezug genommen. Jedoch sei angemerkt, dass Techniken gemäß manchen Ausführungsbeispielen auf andere Arten von Nutzerschnittstellenvorrichtungen angewendet werden können.
  • Ein Mechanismus gemäß manchen Ausführungsbeispielen ist vorgesehen, um einen effizienten Transfer von auf die HID-Vorrichtung 108 bezogenen Daten an den entfernten Computer 102 zu ermöglichen. Dieser Mechanismus vermeidet die Übertragung von zero oder null HID-Daten (wobei sich zero oder null HID-Daten auf Daten bezieht, die angeben, dass sich die HID-Vorrichtung 108 nicht verändert hat, mit anderen Worten, ein Nutzer die HID-Vorrichtung 108 nicht bewegt oder betätigt hat). Auch sendet der entfernte Computer 102 gemäß manchen Ausführungsbeispielen keine Anforderungen über das Datennetzwerk 104 an den lokalen Computer 100, um Aktualisierungen der HID-Vorrichtung 108 anzufordern.
  • Stattdessen sendet der lokale Computer 100 der verbesserten Effizienz halber HID-Daten über das Datennetzwerk 104 an den entfernten Computer 102 nur, falls an der HID-Vorrichtung 108 eine Veränderung erfolgt ist (z. B. ein Nutzer hat eine Maus bewegt, eine Tastatur betätigt, eine Eingabevorrichtung vom Rollkugeltyp bewegt, eine Eingabevorrichtung auf einem Tablett bewegt usw.). Auf diese Weise wird eine effizientere Nutzung des Datennetzwerk 104 zur Kommunikation von auf die HID-Vorrichtung 108 bezogenen Daten erzielt, da Anforderungen bezüglich auf die HID-Vorrichtung 108 bezogenen Daten und zero-HID-Daten nicht über das Netzwerk 104 transferiert werden müssen.
  • Das Datennetzwerk 104 kann Daten gemäß dem Internet-Protokoll (internet protocol, IP) kommunizieren. Die HID-Vorrichtung 108 kann über eine Universal-Serien-Bus-Verbindung (USB-Verbindung) 110 (verdrahtete oder drahtlose USB-Verbindung) zu dem lokalen Computer 100 an den lokalen Computer 100 angeschlossen sein. Im Einzelnen ist die HID-Vorrichtung 108 über die USB-Verbindung 110 mit einer HID-Steuervorrichtung 112 verbunden. Bei der oben beschriebenen Implementierung liegen jegliche auf die HID-Vorrichtung 108 bezogene Daten in Form von USB-Daten vor, die in IP-Paketen kommuniziert werden, die über das Datennetzwerk 104 an den entfernten Computer 102 transferiert werden. Obwohl bei den beschriebenen Ausführungsbeispielen auf „USB” und „IP” Bezug genommen wird, sei angemerkt, dass Techniken gemäß manchen Ausführungsbeispielen auf Datenpakete gemäß anderen Arten von Protokollen anwendbar sein können.
  • Der lokale Computer 100 wird als „Empfangssystem” bezeichnet, und der entfernte Computer 102 wird als „Sendesystem” bezeichnet. Als solches umfasst der lokale Computer 100 Empfängersoftware 114, und der entfernte Computer 102 umfasst Sendersoftware 116. Die Sendersoftware 116 wird zum Senden von Desktop-Videodaten des entfernten Computers 102 (Sendesystem) über das Datennetzwerk 104 an die Empfängersoftware 114 in dem lokalen Computer 100 (Empfangssystem) verwendet, wo die Desktop-Videodaten an der Anzeigevorrichtung 106 angezeigt werden. Man beachte, dass die Desktop-Videodaten und -Audiodaten, die durch die Sendersoftware 116 gesendet werden, tatsächlich Wiedergabe-Videodaten und Wiedergabe-Audiodaten sind, die durch eine jeweilige Anzeigevorrichtung und Audioausgabevorrichtung wiedergegeben werden können. Die Wiedergabe-Videodaten und Wiedergabe-Audiodaten unterscheiden sich von Daten, die in Video-Quelldateien (z. B. MPEG-Dateien) oder Audio-Quelldateien enthalten sind, die in ein Format umgewandelt werden müssen, das durch jeweilige Ausgabevorrichtungen wiedergegeben werden kann.
  • Die Sendersoftware 116 in dem entfernten Computer 102 empfängt Videodaten von einem Video-Teilsystem 136 in dem entfernten Computer 102. Die Videodaten des Video-Teilsystems 136 sind durch eine an den entfernten Computer 102 angeschlossene Anzeigevorrichtung anzeigbar. Die Sendersoftware 116 unterzieht die Videodaten, die an die Empfängersoftware 114 gesendet werden, anschließend einer Komprimierung, wobei die Empfängersoftware 114 dann eine Dekomprimierung der Videodaten vornehmen kann, bevor sie die Videodaten an der Anzeigevorrichtung 106 anzeigt. Man beachte, dass eine tatsächliche Anzeigevorrichtung bei manchen Implementierungen nicht mit dem Video-Teilsystem 136 des entfernten Computers 102 verbunden sein muss; jedoch kann bei anderen Implementierungen eine Anzeigevorrichtung mit dem entfernten Computer 102 verbunden sein.
  • Bei manchen Ausführungsbeispielen fallen die Sendersoftware 116 und die Empfängersoftware 114 gemäß dem Remote-Graphics-Software-Protokoll (RGS-Protokolt) von der Firma Hewlett Packard aus. RGS ist dahin gehend entworfen, Computer- und Graphikressourcen eines entfernten Computers vollständig zu nutzen, um einen interaktiven entfernten Zugriff von einem lokalen Computer aus bereitzustellen. Bei einem anderen Ausführungsbeispiel können die Sendersoftware 116 und die Empfängersoftware 114 gemäß dem Remote-Desktop-Protokoll (RDP) von Microsoft Corporation arbeiten, um über Netzwerkverbindungen Fähigkeiten einer entfernten Anzeige und Eingabe bereitzustellen. Bei weiteren Ausführungsbeispielen können die Sendersoftware 116 und die Empfängersoftware 114 gemäß anderen Technologien ausfallen.
  • Ein Vorrichtungstreiber 118 in dem lokalen Computer 100 überwacht kontinuierlich die HID-Steuervorrichtung 112, um Informationen bezüglich der HID-Vorrichtung 108 zu empfangen. Gemäß manchen Ausführungsbeispielen sendet der Vorrichtungstreiber 118 keinerlei Daten über das Datennetzwerk 104, falls keine Veränderung bei der HID-Vorrichtung 108 aufgetreten ist (mit anderen Worten veranlasst der Vorrichtungstreiber 118 nicht, dass zero-HID-Daten über das Datennetzwerk 104 gesendet werden). Falls der Vorrichtungstreiber 118 jedoch eine Veränderung bei der HID-Vorrichtung 108 erfasst, beispielsweise aufgrund einer Nutzermanipulation der HID-Vorrichtung 108, sendet der Vorrichtungstreiber 118 die aktualisierten HID-Daten an die Empfängersoftware 114, die wiederum die HID-Daten (in Form von USB-Daten) an eine Netzwerkschnittstelle 120 in dem Computer 100 sendet.
  • Die Netzwerkschnittstelle 120 umfasst eine physische Netzwerkschnittstellensteuervorrichtung sowie einen Protokollstapel, einschließlich eines IP-Protokollstapels. Die Netzwerkschnittstelle 120 sendet die USB-HID-Daten in einem oder mehreren IP-Paketen über das Datennetzwerk 104 an den entfernten Computer 102. Die IP-Pakete werden seitens einer Netzwerkschnittstelle 122 in dem entfernten Computer 102 empfangen, die die USB-HID-Daten aus den IP-Paketen extrahiert und die USB-HID-Daten an die Sendersoftware 116 weiterleitet. Die Sendersoftware 116 wiederum sendet die USB-HID-Daten an einen HID-Datenpuffer 130, der Bestandteil eines Speichers 132 in dem entfernten Computer 102 ist.
  • Gemäß manchen Ausführungsbeispielen liegt in dem Fall, dass der HID-Datenpuffer 130 HID-Daten enthält, somit ein Hinweis darauf vor, dass bei der HID-Vorrichtung 108 eine Veränderung aufgetreten ist. Falls der HID-Datenpuffer 130 dagegen leer ist, ist dies ein Hinweis darauf, dass keine Veränderung bei der HID-Vorrichtung 108 aufgetreten ist.
  • Der entfernte Computer 102 umfasst ferner einen Vorrichtungstreiber 126 für die HID-Vorrichtung 108, der Anforderungen (z. B. in unregelmäßigen Abständen) bezüglich aktualisierter Daten hinsichtlich der HID-Vorrichtung 108 ausgibt (beispielsweise um zu prüfen, ob eine Maus oder ein anderes Peripheriegerät bewegt wurde). Der entfernte Computer 102 umfasst ferner ein virtuelles Zwischenelement 124, das Anrufe von einem Vorrichtungstreiber 126 in dem entfernten Computer 102 abfängt, der für die HID-Vorrichtung 108 gedacht ist, die an den lokalen Computer 100 statt an den entfernten Computer 102 angeschlossen ist. Das virtuelle Zwischenelement 124 verhindert, dass an die HID-Vorrichtung 108 gerichtete Anrufe auf einer niedrigeren Ebene (Kern) angesiedelte Vorrichtungstreiber des Betriebssystems in dem entfernten Computer 102 erreichen. Obwohl es nicht gezeigt ist, können andere Vorrichtungstreiber in dem entfernten Computer 102 Audiodaten und Videodaten erstellen, die an ein Audio-Teilsystem (nicht gezeigt) bzw. Video-Teilsystem 136 geliefert werden, um durch jeweilige Ausgabevorrichtungen, beispielsweise Ausgabevorrichtungen, die mit dem entfernten Computer 100 bzw. dem entfernten Computer 102 verbunden sind, wiedergegeben werden sollen.
  • Gemäß manchen Ausführungsbeispielen prüft ein HID-Steuermodul 128 in dem virtuellen Zwischenelement 124 ansprechend auf Anrufe von dem Vorrichtungstreiber 126 bezüglich Informationen, die die HID-Vorrichtung 108 betreffen, den HID-Puffer 130 in dem. Speicher 132, um zu bestimmen, ob auf die HID-Vorrichtung 108 bezogene Daten vorliegen. Falls in dem HID-Puffer 130 keine Daten vorliegen, sendet das HID-Steuermodul 128 eine Antwort an den Vorrichtungstreiber 126 zurück und enthält zero-HID-Daten. Falls sich dagegen HID-Daten in dem Puffer 130 befinden, sendet das HID-Steuermodul 128 die tatsächlichen HID-Daten an den Vorrichtungstreiber 126.
  • Man beachte, dass gemäß manchen Ausführungsbeispielen das virtuelle Zwischenelement 124 nicht verlasst, dass ein Anruf von dem Vorrichtungstreiber 126 über das Datennetzwerk 104 an den lokalen Computer 100 gesendet wird. Stattdessen behandelt das virtuelle Zwischenelement 124, genauer gesagt das HID-Steuermodul 128, Antworten auf die Anrufe von dem Vorrichtungstreiber 126 lokal.
  • Der entfernte Computer 102 umfasst ferner eine Softwareanwendung 134. Die Softwareanwendung 134 kann den Vorrichtungstreiber 126 dazu veranlasst haben, einen Anruf zu tätigen, um aktualisierte Informationen von der HID-Vorrichtung 108 anzufordern. Beispielsweise kann die Softwareanwendung 134 einem Nutzer eine graphische Nutzerschnittstelle (GUI – graphical user interface) zur Anzeige präsentiert haben, wobei die GUI in der Lage ist, Nutzereingaben in Steuermenüs, Bildsymbolen (Icons) und so weiter anzunehmen. Die auf die GUI bezogenen Videodaten sind in dem Video-Teilsystem 136 des entfernten Computers 102 gespeichert. Die Videodaten in dem Video-Teilsystem 136 werden seitens der Sendersoftware 116 zur Übertragung über das Datennetzwerk 104 komprimiert, und die komprimierten Videodaten werden seitens der Empfängersoftware 114 in dem lokalen Computer 100 empfangen, die die empfangenen Videodaten dekomprimiert und bewirkt, dass die Videodaten an der Anzeigevorrichtung 106 des lokalen Computers 100 angezeigt werden. Ein Nutzer, der die GUI in der Anzeigevorrichtung 106 betrachtet, möchte wiederum die HID-Vorrichtung 108 eventuell dazu verwenden, bestimmte Befehle zu aktivieren oder Informationen in die GUI einzugeben. Eine Manipulation der HID-Vorrichtung 108 wird durch den Vorrichtungstreiber 118 erfasst, der bewirkt, dass die aktualisierten HID-Daten (USB-Daten in IP-Paketen) seitens der Empfängersoftware 114 über das Datennetzwerk 104 an die Sendersoftware 116 des entfernten Computers 102 gesendet werden. Die aktualisierten HID-Daten werden seitens der Sendersoftware 116 in dem HID-Puffer 130 in dem Speicher 132 gespeichert.
  • Der lokale Computer 100 umfasst eine oder mehrere Zentralverarbeitungseinheiten (CPUs – central processing units) 138, die mit einem Speicher 139 verbunden ist. Die Softwaremodule des lokalen Computers 100 sowie die Empfängersoftware 114 und der Vorrichtungstreiber 118 sind auf der bzw. den CPU(s) 138 ausführbar.
  • Desgleichen umfasst der entfernte Computer 102 eine oder mehrere CPUs 140. Die Softwaremodule des entfernten Computers 102, beispielsweise die Softwareanwendung 134, der Vorrichtungstreiber 126, das virtuelle Zwischenelement 124 und die Sendersoftware 116 sind auf der bzw. den CPUs) 140 ausführbar.
  • Man beachte, dass mehrere HID-Vorrichtungen (oder andere Arten von Nutzerschnittstellenvorrichtungen) an den lokalen Computer 100 angeschlossen sein können. In diesem Fall können mehrere entsprechende Vorrichtungstreiber 118 in dem lokalen Computer 100 und mehrere Vorrichtungstreiber 126 und jeweilige HID-Datenpuffer 130 in dem entfernten Computer 102 vorliegen und dazu angeordnet sein, ähnliche Aufgaben, wie sie oben beschrieben wurden, auszuführen.
  • 2 zeigt eine Prozedur gemäß einem Ausführungsbeispiel, die an dem Empfangssystem (lokalen Computer 100) durchgeführt wird. Der Vorrichtungstreiber 118 in dem lokalen Computer 100 überwacht (bei 202) die HID-Vorrichtung 108 bezüglich einer Veränderung der HID-Vorrichtung 108. Falls (bei 204) keine Veränderung erfasst wird, kehrt der Vorrichtungstreiber 118 zur Aufgabe 202 zurück, um mit der Überwachung bezüglich einer Veränderung der HID-Vorrichtung 108 fortzufahren. Der Vorrichtungstreiber 118 bewirkt nicht, dass zero-HID-Daten über das Datennetzwerk 104 gesendet werden, wenn bei der HID-Vorrichtung 108 keine Veränderung vorliegt.
  • Falls jedoch eine Veränderung an der HID-Vorrichtung 108 erfasst wird, sendet der Vorrichtungstreiber 118 (bei 206) die aktualisierten HID-Daten an die Empfängersoftware 114, die wiederum die aktualisierten HID-Daten an die Netzwerkschnittstelle 120 zur Übertragung in IP-Paketen über das Datennetzwerk 104 an den entfernten Computer 102 sendet.
  • 3 zeigt eine Prozedur, die bei dem Sendesystem (entfernten Computer 102) und im Einzelnen seitens des HID-Steuermoduls 128 in dem virtuellen Zwischenelement 124 durchgeführt wird. Das HID-Steuermodul 128 empfängt (bei 302) einen Anruf von dem Vorrichtungstreiber bezüglich einer Aktualisierung an der HID-Vorrichtung 108. Ansprechend darauf führt das HID-Steuermodul 128 (bei 304) eine Überprüfung daraufhin durch, ob in dem HID-Puffer 130 HID-Daten vorliegen. Falls dies nicht der Fall ist, sendet das HID-Steuermodul 128 zero-HID-Daten an den Vorrichtungstreiber 126. Falls jedoch in dem HID-Puffer 130 HID-Daten vorliegen, sendet das HID-Steuermodul 128 (bei 308) von dem HID-Puffer 130 wiedergewonnene HID-Daten an die Vorrichtung 126.
  • Unter Verwendung von Techniken und Mechanismen gemäß manchen Ausführungsbeispielen wird für einen Transfer von HID-Daten über ein Datennetzwerk eine effizientere Nutzung von Netzwerkbandbreite erzielt.
  • Anweisungen oben beschriebener Software (einschließlich der Vorrichtungstreiber 118, 126, des virtuellen Zwischenelements 124, des HID-Steuermoduls 128, der Empfängersoftware 114 und der Sendersoftware 116 der 1) werden zur Ausführung auf einem Prozessor (beispielsweise einer oder mehreren CPUs 138, 140 in 1) geladen. Der Prozessor umfasst Mikroprozessoren, Mikrosteuerungen, Prozessormodule oder Teilsysteme (die eine(n) oder mehrere Mikroprozessoren oder Mikrosteuerungen umfassen) oder sonstige Steuer- oder Rechenvorrichtungen. Ein „Prozessor” kann sich auf eine einzelne Komponente oder auf mehrere Komponenten beziehen (z. B. eine CPU oder mehrere CPUs).
  • Daten und Anweisungen (der Software) werden in jeweiligen Speichervorrichtungen gespeichert, die als ein oder mehrere computerlesbare oder computernutzbare Speichermedien implementiert sind. Die Speichermedien umfassen verschiedene Formen von Speicher, einschließlich Halbleiterspeichervorrichtungen wie z. B. dynamische oder statische Direktzugriffsspeicher (DRAMs (dynamic random access memories) oder SRAMs (static random access memories)), löschbare und programmierbare Nur-Lese-Speicher (EPROMs – erasable and programmable read-only memories), elektrisch löschbare und programmierbare Nur-Lese-Speicher (EEPROMs – electrically erasable and programmable read-only memories) und Flash-Speicher; Magnetplatten wie z. B. Festplatten, Floppy- und entnehmbare Disks; andere magnetische Medien einschließlich Band; und optische Medien wie beispielsweise Compact-Disks (CDs – compact disks) oder digitale Videoplatten (DVDs – digital video disks). Man beachte, dass die Anweisungen der oben erörterten Software auf einem computerlesbaren oder computernutzbaren Speichermedium bereitgestellt werden können oder alternativ dazu auf mehreren computerlesbaren oder computernutzbaren Speichermedien bereitgestellt werden können, die in einem großen System, das möglicherweise mehrere Knoten aufweist, verteilt sind. (Ein) derartige(s) computerlesbare(s) oder computernutzbare(s) Speichermedium bzw. -medien wird (werden) als Bestandteil eines Artikels (oder Herstellungsartikels) angesehen. Ein Artikel oder Herstellungsartikel kann sich auf eine beliebige hergestellte einzelne Komponente oder mehrere Komponenten beziehen.
  • In der vorstehenden Beschreibung werden zahlreiche Einzelheiten dargelegt, um ein Verständnis der vorliegenden Erfindung zu vermitteln. Jedoch wird Fachleuten einleuchten, dass die vorliegende Erfindung ohne diese Einzelheiten praktiziert werden kann. Obwohl die Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsbeispielen offenbart wurde, werden Fachleuten zahlreiche Modifikationen und Variationen derselben einleuchten. Es ist beabsichtigt, dass die angehängten Patentansprüche derartige Modifikationen und Variationen, wie sie innerhalb der wahren Wesensart und des Schutzumfangs der Erfindung liegen, abdecken.

Claims (15)

  1. Ein Verfahren, das Folgendes aufweist: einen ersten Computer, der Daten einer Nutzerschnittstellenvorrichtung über ein Netzwerk von einem zweiten Computer empfängt, wobei die Daten der Nutzerschnittstellenvorrichtung ansprechend auf eine an der Nutzerschnittstellenvorrichtung auftretende Veränderung empfangen werden; und ansprechend auf eine Anforderung von einer anfordernden Entität in dem ersten Computer: Bestimmen, seitens eines Moduls in dem ersten Computer, ob die Daten der Nutzerschnittstellenvorrichtung seitens des ersten Computers empfangen wurden; ansprechend auf ein Bestimmen, dass die Daten der Nutzerschnittstellenvorrichtung empfangen wurden, Liefern, seitens des Moduls, der empfangenen Daten an die anfordernde Entität ansprechend auf die Anforderung; und ansprechend auf ein Bestimmen, dass die Daten der Nutzerschnittstellenvorrichtung nicht empfangen wurden, Liefern, seitens des Moduls, einer Angabe, dass an der Nutzerschnittstellenvorrichtung keine Veränderung aufgetreten ist, an die anfordernde Entität.
  2. Das Verfahren gemäß Anspruch 1, das ferner Folgendes aufweist: Vorlegen, seitens der anfordernden Entität, von Anforderungen bezüglich eines Zustands der Nutzerschnittstellenvorrichtung in mehreren unregelmäßigen Abständen; und Antworten, seitens des Moduls, auf jede der Anforderungen, indem es: bestimmt, ob der erste Computer aktualisierte Daten der Nutzerschnittstellenvorrichtung empfangen hat; die aktualisierten Daten an die anfordernde Entität liefert, falls die aktualisierten Daten empfangen werden; und die Angabe einer nicht erfolgten Veränderung an der Nutzerschnittstellenvorrichtung liefert, falls die aktualisierten Daten nicht empfangen wurden.
  3. Das Verfahren gemäß Anspruch 1, bei dem das Empfangen der Daten der Nutzerschnittstellenvorrichtung erfolgt, ohne dass der erste Computer eine Anforderung bezüglich der Daten an den zweiten Computer sendet.
  4. Das Verfahren gemäß Anspruch 1, bei dem das Liefern der Angabe einer nicht erfolgten Veränderung an der Nutzerschnittstellenvorrichtung ein Liefern von zero-Menschschnittstellenvorrichtung-Daten (HID-Daten) umfasst.
  5. Das Verfahren gemäß Anspruch 1, das ferner Folgendes aufweist: Speichern der empfangenen Daten in einem Puffer des ersten Computers, wobei das Bestimmen, ob die Daten der Nutzerschnittstellenvorrichtung empfangen wurden, ein Zugreifen auf den Puffer, um zu prüfen, ob der Puffer die empfangenen Daten enthält, umfasst.
  6. Das Verfahren gemäß Anspruch 1, bei dem die Anforderung von einem Vorrichtungstreiber in dem ersten Computer empfangen wird.
  7. Das Verfahren gemäß Anspruch 1, bei dem das Empfangen der Daten der Nutzerschnittstellenvorrichtung ein Empfangen von Universal-Serien-Bus-Daten (USB-Daten) umfasst.
  8. Das Verfahren gemäß Anspruch 1, bei dem das Empfangen der Daten der Nutzerschnittstellenvorrichtung ein Empfangen von USB-Menschschnittstellenvorrichtung-Daten (USB-HID-Daten) umfasst.
  9. Das Verfahren gemäß Anspruch 7, bei dem das Empfangen der USB-Daten ein Empfangen der USB-Daten über ein Internet-Protokoll-Netzwerk (IP-Netzwerk) umfasst.
  10. Das Verfahren gemäß Anspruch 7, das ferner Folgendes aufweist: Senden, seitens des ersten Computers, von Videodaten in einem Video-Teilsystem des ersten Computers über das Netzwerk an den zweiten Computer zur Anzeige an einer Anzeigevorrichtung an dem zweiten Computer.
  11. Ein erster Computer, der Folgendes aufweist: ein Video-Teilsystem; einen Prozessor zum: Senden von Videodaten des Video-Teilsystems über ein Netzwerk an einen zweiten Computer zur Anzeige an einer Anzeigevorrichtung des zweiten Computers; Empfangen von Daten einer Nutzerschnittstellenvorrichtung, die an den zweiten Computer angeschlossen ist, über das Netzwerk; ansprechend auf eine Anforderung von einer anfordernden Entität in dem ersten Computer: Bestimmen, ob die Daten der Nutzerschnittstellenvorrichtung seitens des ersten Computers empfangen wurden; ansprechend auf ein Bestimmen, dass die Daten der Nutzerschnittstellenvorrichtung empfangen wurden, Liefern der empfangenen Daten an die anfordernde Entität ansprechend auf die Anforderung; und ansprechend auf ein Bestimmen, dass die Daten der Nutzerschnittstellenvorrichtung nicht empfangen wurden, Liefern einer Angabe, dass an der Nutzerschnittstellenvorrichtung keine Veränderung aufgetreten ist, an die anfordernde Entität.
  12. Der erste Computer gemäß Anspruch 11, die Aufgabe des Bestimmens und die Aufgaben des Liefens werden seitens eines auf dem Prozessor ausführbaren virtuellen Zwischenelements durchgeführt.
  13. Der erste Computer gemäß Anspruch 11, bei dem die Daten der Nutzerschnittstellenvorrichtung Daten einer Menschschnittstellenvorrichtung (HID) umfassen.
  14. Ein Artikel, der zumindest ein computerlesbares Speichermedium aufweist, das Anweisungen enthält, die, wenn sie ausgeführt werden, einen ersten Computer veranlassen: über ein Netzwerk Daten einer Nutzerschnittstellenvorrichtung, die an einen zweiten Computer angeschlossen ist, zu empfangen; ansprechend auf eine Anforderung von einer anfordernden Entität in dem ersten Computer: zu bestimmen, ob die Daten der Nutzerschnittstellenvorrichtung seitens des ersten Computers empfangen wurden; ansprechend auf ein Bestimmen, dass die Daten der Nutzerschnittstellenvorrichtung empfangen wurden, die empfangenen Daten ansprechend auf die Anforderung an die anfordernde Entität zu liefern; und ansprechend auf ein Bestimmen, dass die Daten der Nutzerschnittstellenvorrichtung nicht empfangen wurden, eine Angabe, dass an der Nutzerschnittstellenvorrichtung keine Veränderung aufgetreten ist, an die anfordernde Entität zu liefern.
  15. Der Artikel gemäß Anspruch 14, bei dem die Anweisungen, wenn sie ausgeführt werden, den ersten Computer ferner veranlassen: Videodaten eines Video-Teilsystems in dem ersten Computer über das Netzwerk an einen zweiten Computer zur Anzeige an einer Anzeigevorrichtung des zweiten Computers zu senden.
DE112009004064T 2009-01-29 2009-01-29 Bereitstellen einer angabe einer veränderung an einernutzerschnittstellenvorrichtung über ein netzwerk zwischen computern Ceased DE112009004064T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/032373 WO2010087827A1 (en) 2009-01-29 2009-01-29 Providing an indication of change at a user interface device over a network between computers

Publications (1)

Publication Number Publication Date
DE112009004064T5 true DE112009004064T5 (de) 2012-06-14

Family

ID=42395876

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112009004064T Ceased DE112009004064T5 (de) 2009-01-29 2009-01-29 Bereitstellen einer angabe einer veränderung an einernutzerschnittstellenvorrichtung über ein netzwerk zwischen computern

Country Status (6)

Country Link
US (1) US20110271191A1 (de)
CN (1) CN102301359B (de)
BR (1) BRPI0920494A2 (de)
DE (1) DE112009004064T5 (de)
GB (1) GB2479104B (de)
WO (1) WO2010087827A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661523B2 (en) * 2009-10-21 2014-02-25 Clearcube Technology, Inc. Mass storage lockout for USB devices on extended USB system
US9274999B2 (en) * 2011-11-22 2016-03-01 Pixart Imaging Inc. Communication system and optical navigation device
TWI598771B (zh) * 2013-12-17 2017-09-11 致伸科技股份有限公司 簡報遙控系統
WO2017027645A1 (en) 2015-08-13 2017-02-16 Merck Sharp & Dohme Corp. Cyclic di-nucleotide compounds as sting agonists

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711622B1 (en) * 1997-12-31 2004-03-23 Broadware Technologies, Inc. Video and audio streaming for multiple users
US6678741B1 (en) * 1999-04-09 2004-01-13 Sun Microsystems, Inc. Method and apparatus for synchronizing firmware
US6538667B1 (en) * 1999-07-23 2003-03-25 Citrix Systems, Inc. System and method for providing immediate visual response to user input at a client system connected to a computer system by a high-latency connection
US6834294B1 (en) * 1999-11-10 2004-12-21 Screenboard Technologies Inc. Methods and systems for providing and displaying information on a keyboard
US7260624B2 (en) * 2002-09-20 2007-08-21 American Megatrends, Inc. Systems and methods for establishing interaction between a local computer and a remote computer
US7653017B2 (en) * 2004-01-30 2010-01-26 Stmicroelectronics N.V. Bluetooth sniff mode power saving
US7814195B2 (en) * 2004-09-10 2010-10-12 Sony Corporation Method for data synchronization with mobile wireless devices
US20070198244A1 (en) * 2006-01-31 2007-08-23 King James M Emulation of a device protocol
US7650444B2 (en) * 2006-09-28 2010-01-19 Digi International, Inc. Systems and methods for remotely managing an application-specific display device
US20080189554A1 (en) * 2007-02-05 2008-08-07 Asad Ali Method and system for securing communication between a host computer and a secure portable device
US20080244081A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Automated testing of audio and multimedia over remote desktop protocol

Also Published As

Publication number Publication date
GB201112681D0 (en) 2011-09-07
GB2479104B (en) 2015-02-11
CN102301359A (zh) 2011-12-28
WO2010087827A1 (en) 2010-08-05
CN102301359B (zh) 2015-07-01
US20110271191A1 (en) 2011-11-03
GB2479104A (en) 2011-09-28
BRPI0920494A2 (pt) 2015-12-22

Similar Documents

Publication Publication Date Title
DE112009004075T5 (de) Selektives kommunizieren von daten eines peripheriegeräts zumehreren sendenden computern
DE112018000226T5 (de) Mobiles Cloud-Computing-Endgerät und Betriebsverfahren dafür
DE69718859T2 (de) Serversteuerung zur Beobachtung und zum Empfang einer verdoppelten Kopie von Anzeigedaten eines Videosteuergeräts
DE60100624T2 (de) Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient
DE112019000309B4 (de) Dynamisches batching von berechtigungen in einem verteilten speichernetzwerk
DE102005051980B4 (de) System und Verfahren zur Netzwerkübertragung eines Informationsverarbeitungssystem-Images
DE202016008208U1 (de) Peer-Gestützte Offline-Übermittlung von Benachrichtigungen
DE202017106604U1 (de) Benutzerdefinierte digitale Komponenten
DE112013003289T5 (de) Gerät, System und Verfahren für client-geregelte Sitzungspersistenz zwischen ein oder mehreren Clients und Servern eines Rechenzentrums
DE112011104787B4 (de) Nutzung von Inhalten über persönliche Clouds
DE112008004056T5 (de) Dateitypzuordnung bei einer Fernrechensitzung
DE112011103498T5 (de) Verhaltensgestützte Client-Auswahl für unterschiedliche Behandlung
DE112011103081T5 (de) Client/Abonnenten-Verlagerung für die Server-Hochverfügbarkeit
DE112016000587T5 (de) Interoperabilität von entdeckungs- und verbindungsprotokollen zwischen clientvorrichtungen und ersten bildschirmvorrichtungen
DE102004052412A1 (de) Verfahren und Vorrichtung zum dynamischen Umschalten zwischen Abfragen und Interrupt, um Netzverkehr zu handhaben
DE112013003300T5 (de) Schrittweise Vorbereitung von Videos auf die Lieferung
DE602004009176T2 (de) Dienstverwaltung durch verwendung mehrerer dienstort-manager
DE202019005789U1 (de) Bereitstellung von Ereignisinhalten
DE102021130396A1 (de) Datenzugriffsüberwachung und -steuerung
DE112009004064T5 (de) Bereitstellen einer angabe einer veränderung an einernutzerschnittstellenvorrichtung über ein netzwerk zwischen computern
DE112022002736T5 (de) Übertragen von aufgabendaten zwischen edge-einheiten beim edge computing
DE112013000812T5 (de) Variable Bestätigungsrate zum Verringern von Buskonflikt in Gegenwart von Datenübertragungsfehlern
DE102022129924A1 (de) Inhaltsfidelitätsanpassung basierend auf benutzerinteraktion
DE68920628T2 (de) Netzwerkterminal-Steuerprogramm für Datenübertragungssubsystem.
DE112009004319T5 (de) Kommunizieren von Datenzugängen zwischen einem ersten und einem zweiten Computer, die über ein Netzwerk verbunden sind

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final