DE102017112041A1 - Automatisches anwendungsstarten in einem flussfähigen mehr-host-system - Google Patents

Automatisches anwendungsstarten in einem flussfähigen mehr-host-system Download PDF

Info

Publication number
DE102017112041A1
DE102017112041A1 DE102017112041.6A DE102017112041A DE102017112041A1 DE 102017112041 A1 DE102017112041 A1 DE 102017112041A1 DE 102017112041 A DE102017112041 A DE 102017112041A DE 102017112041 A1 DE102017112041 A1 DE 102017112041A1
Authority
DE
Germany
Prior art keywords
host computer
host
display
computer
edge
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.)
Pending
Application number
DE102017112041.6A
Other languages
English (en)
Inventor
Paolo Passeri
Rajesh Gopalakrishna
Lapyan Larry Ng
Jean-Christophe Hemes
Jiri HOLZBECHER
Philippe Chazot
Tanvi K. Shah
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.)
Logitech Europe SA
Original Assignee
Logitech Europe SA
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 Logitech Europe SA filed Critical Logitech Europe SA
Publication of DE102017112041A1 publication Critical patent/DE102017112041A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03543Mice or pucks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1407General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • 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/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0383Remote input, i.e. interface arrangements in which the signals generated by a pointing device are transmitted to a PC at a remote location, e.g. to a PC in a LAN
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Ein computerimplementiertes Verfahren umfasst das Empfangen eines Eingangssignals (z. B. Cursor-Bewegung) von einer Eingabevorrichtung, die mit dem ersten Host-Computer kommunikativ gepaart ist, wobei der erste Host-Computer mit einem zweiten Host-Computer kommunikativ gekoppelt ist, das Detektieren, wenn der Cursor ein Anwendungsfenster auswählt und zu einer Kante der Anzeige des ersten Host-Computers bewegt, wobei das Anwendungsfenster eine entsprechende Software-Anwendung betreibt, und in Reaktion auf die Detektion, wenn der Cursor das Anwendungsfenster auswählt und zur Kante der Anzeige des ersten Host-Computers bewegt, Senden eines Steuersignals, das bewirkt, dass ein Prozessor im zweiten Host-Computer ein zweites Anwendungsfenster, das eine zweite entsprechende Software-Anwendung betreibt, auf einer zweiten Anzeige des zweiten Host-Computers startet.

Description

  • QUERVERWEISE AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung ist eine nicht vorläufige Anmeldung und beansprucht den Vorteil und die Priorität der vorläufigen US-Anmeldung Nr. 62/345 744, eingereicht am 3. Juni 2016, mit dem Titel "Automatic-Multi-Host Switching for an Input Device", die hiermit durch den Hinweis in ihrer Gesamtheit für alle Zwecke aufgenommen wird.
  • Die folgenden regulären US-Patentanmeldungen (einschließlich dieser) werden gleichzeitig eingereicht und die ganze Offenbarung der anderen Anmeldungen wird durch den Hinweis in diese Anmeldung für alle Zwecke aufgenommen:
    • – Anmeldung Nr. _____, eingereicht am 29. Juli 2016, mit dem Titel "AUTOMATIC MULTI-HOST SWITCHING FOR AN INPUT DEVICE" (Anwaltsregisternr. 086947-1008912 (134501US);
    • – Anmeldung Nr. _____, eingereicht am 29. Juli 2016, mit dem Titel "AUTOMATIC MULTI-HOST SWITCHING FOR MULTIPLE INPUT DEVICES" (Anwaltsregisternr. 086947-1008913 (134502US);
    • – Anmeldung Nr. _____, eingereicht am 29. Juli 2016, mit dem Titel "AUTOMATIC MULTI-HOST DISCOVERY IN A FLOW-ENABLED SYSTEM " (Anwaltsregisternr. 086947-1013820 (134504US); und
    • – Anmeldung Nr. _____, eingereicht am 29. Juli 2016, mit dem Titel "AUTOMATIC DATA TRANSFER IN A MULTI-HOST FLOW-ENABLED SYSTEM " (Anwaltsregisternr. 086947-1013819 (134505US).
  • HINTERGRUND
  • Personalcomputer (PCs), Tablet-Computer, Laptop-Computer, Smartphones usw. (d. h. "Rechenvorrichtungen") sind in der modernen Gesellschaft alltäglich, wobei viele Computerbenutzer mehrere Computer haben, die für verschiedene Zwecke zweckgebunden sind, einschließlich Arbeitsnutzung, persönlicher Nutzung, Familien- oder geteilter Nutzung und dergleichen. Es ist üblich, dass ein Benutzer mehrere Computer auf regelmäßiger Basis und sogar gleichzeitig verwendet. Viele dieser Computer umfassen jeweils eine Anzahl von Peripheriegeräten zum Steuern von bestimmten Aspekten, einschließlich Dateneingabe (z. B. Tastaturen, Computermäuse, Spielsteuereinheiten, "Eingabevorrichtungen", usw.), Datenausgabe (z. B. Lautsprecher, "Ausgabevorrichtungen", usw.) und anderen Anwendungen (z. B. Datenspeicherung). In vielen herkömmlichen Systemen müssen Benutzer, die regelmäßig auf mehrere Rechenvorrichtungen zugreifen, mehrere Sätze von Peripheriegeräten führen und verwalten, was mühselig sein kann, da jeder Satz ausschließlich mit einer speziellen Rechenvorrichtung gepaart sein kann.
  • Es gab einen gewissen Fortschritt beim Mildern dieses Problems. Einige Systeme ermöglichen beispielsweise die Wiederverwendung einer einzelnen Eingabevorrichtung für die Dateneingabe, in mehrere Rechenvorrichtungen. Diese Lösungen sind jedoch nicht ohne ihre Nachteile. Ein signifikanter Nachteil bei früheren Lösungen besteht darin, wie der Prozess des Umschaltens von mehreren Dateneingabevorrichtungen von einer ersten Host-Rechenvorrichtung auf eine zweite Host-Rechenvorrichtung durchgeführt wird. In einigen früheren Lösungen müsste der Benutzer, um sowohl die Tastaturvorrichtung als auch die Mausvorrichtung auf eine zweite Host-Rechenvorrichtung umzuschalten, zwei separate Handlungen durchführen, was für die Benutzererfahrung schädlich sein kann. In früheren Lösungen werden beispielsweise sowohl die Tastaturvorrichtung als auch die Mausvorrichtung unabhängig mit jeder der zwei oder mehr Host-Rechenvorrichtungen gepaart. Wenn der Benutzer von der Verwendung einer ersten Host-Rechenvorrichtung auf eine zweite Host-Rechenvorrichtung umschalten will, muss der Benutzer die Paarung für jede der Tastaturvorrichtung und der Mausvorrichtung individuell ändern.
  • Auf der Basis des Vorangehenden besteht auf dem Fachgebiet ein Bedarf an verbesserten Verfahren und Systemen, um Eingabevorrichtungen zwischen mehreren Rechenvorrichtungen effizienter umzuschalten.
  • KURZE ZUSAMMENFASSUNG
  • In bestimmten Ausführungsformen umfasst ein computerimplementiertes Verfahren: Empfangen eines Eingangssignals durch einen ersten Host-Computer von einer Eingabevorrichtung, die mit dem ersten Host-Computer kommunikativ gepaart ist, wobei das Eingangssignal einer Bewegung eines Cursors auf einer Anzeige des ersten Host-Computers entspricht, wobei der erste Host-Computer mit einem zweiten Host-Computer kommunikativ gekoppelt ist; Detektieren durch den ersten Host-Computer, wenn der Cursor ein Anwendungsfenster auswählt und zu einer Kante der Anzeige des ersten Host-Computers bewegt und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht, wobei das Anwendungsfenster eine entsprechende Software-Anwendung betreibt; und in Reaktion auf das Detektieren, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer ein zweites Anwendungsfenster, das eine zweite entsprechende Software-Anwendung betreibt, auf einer zweiten Anzeige des zweiten Host-Computers startet. In einigen Fällen kann die zweite Software-Anwendung dieselbe wie die Software-Anwendung des ersten Host-Computers sein.
  • In einigen Ausführungsformen kann das Verfahren ferner das Detektieren von Eingangsdaten, die in das Anwendungsfenster auf der Anzeige des ersten Host-Computers eingegeben werden, durch den ersten Host-Computer und das Senden eines zweiten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass der Prozessor im zweiten Host-Computer die Eingangsdaten in das zweite Anwendungsfenster auf der zweiten Anzeige des zweiten Host-Computers eingibt, umfassen. In einigen Fällen ferner in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines dritten Steuersignals durch den ersten Host-Computer zur Eingabevorrichtung, um die kommunikative Paarung der Eingabevorrichtung vom ersten Host-Computer auf den zweiten Host-Computer umzuschalten. In einigen Implementierungen umfasst das Verfahren ferner in Reaktion auf das Detektieren, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht, das Senden eines vierten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer einen zweiten Cursor auf einer Anzeige des zweiten Host-Computers bewegt. In einigen Fällen kann das Netzwerk ein LAN, ein WAN, ein Netzwerk auf Cloud-Basis oder dergleichen sein. Die Eingabevorrichtung kann mit dem ersten Host-Computer oder dem zweiten Host-Computer über ein drahtloses Kommunikationsprotokoll, einschließlich eines von Bluetooth, Bluetooth LE, Infrarot (IR), ZigBee, Ultrabreitband, HF, oder eine ähnliche Klasse eines Kommunikationsprotokolls kommunikativ gepaart sein.
  • In einigen Ausführungsformen umfasst ein computerimplementiertes Verfahren: Empfangen eines Eingangssignals durch einen ersten Host-Computer von einer Eingabevorrichtung, die mit dem ersten Host-Computer kommunikativ gepaart ist, wobei das Eingangssignal einer Bewegung eines Cursors auf einer Anzeige des ersten Host-Computers entspricht, wobei der erste Host-Computer mit einem zweiten Host-Computer kommunikativ gekoppelt ist; Detektieren durch den ersten Host-Computer, wenn der Cursor ein Anwendungsfenster auswählt und über eine Kante der Anzeige des ersten Host-Computers hinaus bewegt, wobei das Anwendungsfenster eine entsprechende Software-Anwendung betreibt; und in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster über die Kante der Anzeige des ersten Host-Computers hinaus bewegt hat, kann das Verfahren das Senden eines Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer umfassen, das bewirkt, dass ein Prozessor im zweiten Host-Computer ein zweites Anwendungsfenster, das eine zweite entsprechende Software-Anwendung betreibt, auf einer zweiten Anzeige des zweiten Host-Computers startet.
  • In bestimmten Ausführungsformen kann die Bewegung des Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers um mehr als einen Schwellenprozentsatz einer Gesamtgröße des Anwendungsfensters hinaus bewirken, dass der erste Host-Computer das Host-Steuersignal zum zweiten Host-Computer sendet. Der Schwellenprozentsatz kann mindestens 50 % oder irgendein geeigneter Schwellenwert sein, wie für einen Fachmann auf dem Gebiet verständlich wäre. In einigen Fällen kann das Verfahren ferner in Reaktion auf die Detektion, wenn der Cursor ein Anwendungsfenster auswählt und über die Kante der Anzeige des ersten Host-Computers hinaus bewegt, das Senden eines zweiten Steuersignals durch den ersten Host-Computer zur Eingabevorrichtung umfassen, um die kommunikative Paarung der Eingabevorrichtung vom ersten Host-Computer auf den zweiten Host-Computer umzuschalten. Weitere Ausführungsformen können das graphische Abschwächen des Anwendungsfensters auf der ersten Anzeige des ersten Host-Computers und das Senden eines dritten Steuersignals zum zweiten Host-Computer umfassen, das bewirkt, dass der Prozessor des zweiten Host-Computers das zweite Anwendungsfenster auf der zweiten Anzeige graphisch betont. Das graphische Betonen des zweiten Anwendungsfensters kann das Bewirken, dass das zweite Anwendungsfenster die Farbe ändert, die Helligkeit ändert und/oder blinkt, umfassen. Das graphische Abschwächen des Anwendungsfensters kann das Bewirken, dass das Anwendungsfenster die Farbe ändert, die Helligkeit ändert und/oder verblasst, umfassen. In einigen Fällen kann die zweite Software-Anwendung dieselbe wie die Software-Anwendung des ersten Host-Computers sein.
  • In weiteren Ausführungsformen umfasst ein System einen oder mehrere Prozessoren und ein oder mehrere nichtflüchtige computerlesbare Speichermedien, die Befehle enthalten, die dazu ausgelegt sind zu bewirken, dass der eine oder die mehreren Prozessoren Operationen durchführen, einschließlich: Empfangen eines Eingangssignals durch einen ersten Host-Computer von einer Eingabevorrichtung, die mit dem ersten Host-Computer kommunikativ gepaart ist, wobei das Eingangssignal einer Bewegung eines Cursors auf einer Anzeige des ersten Host-Computers entspricht, wobei der erste Host-Computer mit einem zweiten Host-Computer kommunikativ gekoppelt ist, Detektieren durch den ersten Host-Computer, wenn der Cursor ein Anwendungsfenster auswählt und zu einer Kante der Anzeige des ersten Host-Computers bewegt und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht, wobei das Anwendungsfenster eine entsprechende Software-Anwendung betreibt; und in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer ein zweites Anwendungsfenster, das eine zweite entsprechende Software-Anwendung betreibt, auf einer zweiten Anzeige des zweiten Host-Computers startet. In einigen Fällen kann die zweite Software-Anwendung dieselbe wie die Software-Anwendung des ersten Host-Computers sein.
  • In einigen Ausführungsformen enthalten das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien ferner Befehle, um zu bewirken, dass der eine oder die mehreren Prozessoren Operationen durchführen, einschließlich: Detektieren von Eingangsdaten durch den ersten Host-Computer, die in das Anwendungsfenster auf der Anzeige des ersten Host-Computers eingegeben werden, und Senden eines zweiten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass der Prozessor im zweiten Host-Computer die Eingangsdaten in das zweite Anwendungsfenster auf der zweiten Anzeige des zweiten Host-Computers eingibt. In einigen Ausführungsformen enthalten das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien ferner Befehle, um zu bewirken, dass der eine oder die mehreren Prozessoren Operationen durchführen, einschließlich: ferner in Reaktion auf das Detektieren, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines dritten Steuersignals durch den ersten Host-Computer zur Eingabevorrichtung, um die kommunikative Paarung der Eingabevorrichtung vom ersten Host-Computer auf den zweiten Host-Computer umzuschalten.
  • In weiteren Ausführungsformen können das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien ferner Befehle enthalten, um zu bewirken, dass der eine oder die mehreren Prozessoren Operationen durchführen, einschließlich: ferner in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines vierten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer einen zweiten Cursor auf einer Anzeige des zweiten Host-Computers bewegt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die ausführliche Beschreibung wird mit Bezug auf die zugehörigen Figuren dargelegt.
  • 1 zeigt Aspekte eines Systems zum Ermöglichen eines automatischen Umschaltens einer Eingabevorrichtung zwischen Host-Computern gemäß bestimmten Ausführungsformen.
  • 2 zeigt ein System zum Ermöglichen eines automatischen Mehr-Host-Umschaltens für eine Eingabevorrichtung gemäß bestimmten Ausführungsformen.
  • 3 ist ein Ablaufdiagramm, das einen automatischen Entdeckungsprozess von Hosts in einem Teilnetz gemäß bestimmten Ausführungsformen zeigt.
  • 4 zeigt ein vereinfachtes Verfahren zum automatischen Bewirken, dass eine Eingabevorrichtung zwischen Host-Computern in Reaktion auf das Detektieren eines Kantenauslöseereignisses umschaltet, gemäß bestimmten Ausführungsformen.
  • 5 ist ein vereinfachtes Blockdiagramm, das ein kantenausgelöstes Umschalten einer Eingabevorrichtung zwischen einem ersten Host-Computer und einem zweiten Host-Computer gemäß bestimmten Ausführungsformen zeigt.
  • 6 zeigt die Verwendung einer sicheren Zone in einem flussfähigen System gemäß bestimmten Ausführungsformen.
  • 7 zeigt den Effekt einer minimalen Schwellenzeit, die auf ein flussfähiges System angewendet wird, gemäß bestimmten Ausführungsformen.
  • 8 zeigt den Effekt einer minimalen Schwellenzeit, die auf ein flussfähiges System angewendet wird, gemäß bestimmten Ausführungsformen.
  • 9 zeigt ein vereinfachtes Blockdiagramm, das ein Verfahren zur Verzögerungskompensation auf der Basis einer Cursorbahn in einem flussfähigen System zeigt, gemäß bestimmten Ausführungsformen.
  • 10 zeigt ein vereinfachtes Verfahren zur Verzögerungskompensation auf der Basis einer Cursorbahn in einem flussfähigen System gemäß bestimmten Ausführungsformen.
  • 11 zeigt ein vereinfachtes Blockdiagramm eines Systems zum automatischen Bewirken, dass mehrere Eingabevorrichtungen zwischen Host-Computern in Reaktion auf die Detektion eines Kantenauslöseereignisses in einem flussfähigen System umschalten, gemäß bestimmten Ausführungsformen.
  • 12 zeigt ein vereinfachtes Verfahren zum automatischen Bewirken, dass mehrere Eingabevorrichtungen zwischen Host-Computern in Reaktion auf das Detektieren eines Kantenauslöseereignisses in einem flussfähigen System umschalten, gemäß bestimmten Ausführungsformen.
  • 13 zeigt ein vereinfachtes Blockdiagramm eines flussfähigen Systems zum Übertragen von Daten zwischen Host-Computern in Reaktion auf ein Kantenauslöseereignis gemäß bestimmten Ausführungsformen.
  • 14 zeigt ein vereinfachtes Verfahren zum Übertragen von Daten zwischen Host-Computern in einem flussfähigen System in Reaktion auf ein Kantenauslöseereignis gemäß bestimmten Ausführungsformen.
  • 15 zeigt ein vereinfachtes Verfahren zum Starten und Synchronisieren von Software-Anwendungen zwischen Host-Computern gemäß bestimmten Ausführungsformen.
  • 16 zeigt ein flussfähiges System auf Cloud-Basis für das automatische Mehr-Host-Umschalten gemäß bestimmten Ausführungsformen.
  • 17A zeigt ein vereinfachtes Blockdiagramm eines flussfähigen Mehr-Host-Systems gemäß bestimmten Ausführungsformen.
  • 17B zeigt ein vereinfachtes Blockdiagramm eines flussfähigen Mehr-Host-Systems gemäß bestimmten Ausführungsformen.
  • 18 zeigt ein vereinfachtes Verfahren zum dynamischen Überbrücken von Host-Computern in einem flussfähigen Netzwerk gemäß bestimmten Ausführungsformen.
  • 19 zeigt ein vereinfachtes Blockdiagramm eines flussfähigen Mehr-Host-Systems mit Anzeigen mit unterschiedlicher Größe und Auflösung gemäß bestimmten Ausführungsformen.
  • 20 ist ein vereinfachtes Blockdiagramm eines Computersystems gemäß bestimmten Ausführungsformen.
  • 21A zeigt ein vereinfachtes Blockdiagramm, das synchronisierte Anwendungen zeigt, die auf separaten Host-Computern arbeiten, gemäß bestimmten Ausführungsformen.
  • 21B zeigt ein vereinfachtes Blockdiagramm, das synchronisierte Anwendungen zeigt, die auf separaten Host-Computern arbeiten, gemäß bestimmten Ausführungsformen.
  • 22 ist ein Sequenzdiagramm, das einen automatischen Entdeckungsprozess von Hosts in einem Teilnetz zeigt, gemäß bestimmten Ausführungsformen.
  • 23 ist ein Sequenzdiagramm, das einen Computer-Host-Umschalt- und Kopier/Einfüge-Prozess über ein Netzwerk auf Cloud-Basis zeigt, gemäß bestimmten Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Rechenvorrichtungen und insbesondere auf Systeme und Verfahren zum automatischen Umschalten einer Mehr-Host-Schaltvorrichtung zwischen Host-Rechenvorrichtungen.
  • In der folgenden Beschreibung werden verschiedene Ausführungsformen zum automatischen Umschalten zwischen Rechenvorrichtungen unter anderen erfindungsgemäßen Konzepten beschrieben. Für Erläuterungszwecke werden spezielle Konfigurationen und Details dargelegt, um für ein gründliches Verständnis der Ausführungsformen zu sorgen. Für einen Fachmann auf dem Gebiet ist jedoch auch ersichtlich, dass die Ausführungsformen ohne die speziellen Details ausgeführt werden können. Ferner können gut bekannte Merkmale weggelassen oder vereinfacht sein, um die beschriebenen Ausführungsformen nicht unklar zu machen.
  • In bestimmten Ausführungsformen kann ein Benutzer bewirken, dass eine Eingabevorrichtung automatisch die Paarung von einem ersten Host-Computer auf einen zweiten Host-Computer umschaltet, durch Bewegen eines Cursors auf einer Anzeige des ersten Host-Computers zu einer und/oder über eine Kante der Anzeige hinaus. Dieses "Kantenauslöse"-Ereignis kann bewirken, dass der erste Host-Computer ein erstes Steuersignal zur Eingabevorrichtung sendet, um ihre Paarung vom ersten Host-Computer auf den zweiten Host-Computer umzuschalten, und ein zweites Steuersignal zum zweiten Host-Computer sendet, das angibt, wo der Cursor auf seiner Anzeige angeordnet werden sollte, um das zu simulieren, was einem Benutzer als kontinuierlich und nahtlose Bewegung des Cursors von der Anzeige des ersten Host-Computers zur Anzeige des zweiten Host-Computers erscheint. In einigen Ausführungsformen können Inhalte von einer virtuellen Zwischenablage (z. B. auf dem ersten Host-Computer) zu einer virtuellen Zwischenablage des zweiten Host-Computers in Reaktion auf das Kantenauslöseereignis übertragen werden, was Text, Medien, ausführbare Dateien und dergleichen umfassen kann. In einigen Fällen können sich drei oder mehr Host-Computer eine Eingabevorrichtung teilen und Kantenauslösefähigkeiten für kontinuierliche und nahtlose Cursorbewegungen zwischen jeder von ihren entsprechenden Anzeigen umfassen. Vorrichtungen oder Entitäten, die "kommunikativ gekoppelt" sind, können eine bidirektionale elektronische Kommunikation miteinander aufweisen. Vorrichtungen, die mit einer Vorrichtung "gepaart" sind, senden typischerweise Steuersignale (z. B. Bewegungsdetektion, Tastendrucke, Rollradbewegung, usw.) zu einem einzelnen Host-Computer auf einmal, aber können simultan und kommunikativ mit mehreren Host-Computern gekoppelt sein.
  • Ein Host-Computer kann irgendeine geeignete Rechenvorrichtung sein, einschließlich eines Desktop-Computers, eines Laptop-Computers, eines Netbooks, eines Tablet-Computers, eines Smartphones, eines persönlichen digitalen Assistenten und dergleichen. Eine Eingabevorrichtung kann eine Computermaus, eine Tastatur, eine Spielsteuereinheit, eine Rollkugel, ein Berührungsfeld, eine Fernbedienungsvorrichtung, tragbare Technologien (z. B. intelligente Uhren, Headsets), Lautsprecher, Mikrophone und dergleichen umfassen. Obwohl die Ausführungsformen, die folgen, spezielle Typen von Rechenvorrichtungen, Eingabevorrichtungen, Betriebssystemen usw., umfassen, sollte selbstverständlich sein, dass diese speziellen Typen für den Zweck der Erläuterung der neuen Systeme, Verfahren und Konzepte, die folgen, gezeigt sind und nicht als in Bezug auf die Typen von Rechenvorrichtungen, Eingabevorrichtungen und Betriebssystemen (z. B. MS Windows, Apple-Betriebssysteme, iOS, Android OS usw.), die verwendet werden können, einschränkend interpretiert werden sollten. Das heißt, irgendein Typ von Rechenvorrichtung, Eingabevorrichtung, Betriebssystem usw. kann in irgendeiner der Ausführungsformen, die hierin ausdrücklich beschrieben sind, sowie beliebigen Ausführungsformen, die nicht ausdrücklich beschrieben werden, aber innerhalb des breiten Geltungsbereichs dieser Offenbarung liegen, verwendet werden.
  • Überblick über bestimmte Ausführungsformen
  • 1 zeigt Aspekte eines Systems 100 zum Ermöglichen eines automatischen Umschaltens einer Eingabevorrichtung 130 zwischen Host-Computern gemäß bestimmten Ausführungsformen. Das System 100 umfasst einen ersten Host-Computer 110, einen zweiten Host-Computer 120 und eine Eingabevorrichtung 130. Der erste Host-Computer 110 umfasst eine Anzeige 115. Der zweite Host-Computer 120 umfasst eine Anzeige 125. Die Eingabevorrichtung 130 steuert einen Cursor 140 und ist als Computermaus mit Mehr-Host-Umschaltfähigkeiten gezeigt.
  • Die Eingabevorrichtung 130 ist sich von links nach rechts über eine Zeitdauer bewegend gezeigt, die durch t1–t4 definiert ist. Zum Zeitpunkt t1 ist die Eingabevorrichtung 130 stationär und der Cursor 140 ist auf der Anzeige 115 des ersten Host-Computers 110 gezeigt. Zum Zeitpunkt t2 bewegt sich die Eingabevorrichtung 130 von links nach rechts, was bewirkt, dass der Cursor 140 die Kante 118 der Anzeige 115 erreicht, was ein Kantenauslöseereignis einleitet. In Reaktion sendet der erste Host-Computer 110 ein Steuersignal zur Eingabevorrichtung 130, um die kommunikative Paarung vom ersten Host-Computer 110 auf den zweiten Host-Computer 120 umzuschalten. Der erste Host-Computer 110 kann ferner ein zweites Steuersignal zum zweiten Host-Computer 120 senden, das Informationen bereitstellt, die einen Ort des Cursors 140 auf der Anzeige 115, die Bahn des Cursors 140 (z. B. Geschwindigkeit und Richtung des Cursors 140 vor dem Erreichen der Kante 118), Daten einer virtuellen Zwischenablage (z. B. alphanumerische Daten, Mediendaten usw.) für den ersten Host-Computer 110 und/oder andere entsprechende Daten umfassen können, so dass der Cursor 150 auf der Anzeige 125 durch den zweiten Host-Computer 120 an der entsprechenden Kante 128 positioniert werden kann, um eine Bewegung mit geteiltem Bildschirm eines Cursors zwischen den Anzeigen 115, 125 zu simulieren. In einigen Ausführungsformen kann ein Kantenauslöseereignis bewirkt werden, wenn der Cursor eine "flussfähige" Kante erreicht und zusätzliche Eingangssignale entsprechend einer fortgesetzten Bewegung über die flussfähige Kante hinaus empfangen werden.
  • Bis zum Zeitpunkt t3 hat die Eingabevorrichtung 130 die Paarung vom ersten Host-Computer 110 auf den zweiten Host-Computer 120 umgeschaltet und der Cursor 150 ist an der Kante 128 der Anzeige 125 am zweiten Host-Computer 120 positioniert. Zum Zeitpunkt t4 kommt die Eingabevorrichtung 130 zu einem Stopp zusammen mit dem entsprechenden Cursor 150 auf der Anzeige 125. Folglich erfährt der Benutzer das, was als nahtlose und kontinuierliche Bewegung des Cursors 140 zum Zeitpunkt t1 zum Ort des Cursors 150 bis zum Zeitpunkt t4 erscheint, wenn tatsächlich die Bewegung der Cursor 140 und 150 und ihre entsprechenden Anzeigen 115, 125 unabhängig durch die verschiedenen Betriebssysteme des ersten und des zweiten Host-Computers 110, 120 gesteuert werden können.
  • In einigen Fällen kann eine kleine, aber wahrnehmbare Verzögerung zwischen dem Umschalten von einem ersten Host-Computer auf einen zweiten Host-Computer bestehen. Einige Ausführungsformen können Bahndaten vom Cursor 140 verwenden, einschließlich der Cursorgeschwindigkeit und -richtung, um zu berechnen, wo der Cursor 140 in einem Szenario mit geteiltem Bildschirm gelandet wäre, und anschließend den Cursor 150 in Richtung eines entsprechenden Orts am Host-Computer 120 während der Verzögerungsperiode zu bewegen, um die Illusion einer kontinuierlichen Bewegung und eines "Flusses" zwischen dem ersten und dem zweiten Host-Computer zu geben. Dies wird nachstehend in Bezug auf 910 weiter erörtert. Es sollte beachtet werden, dass irgendeine Anzahl von Host-Rechenvorrichtungen verwendet werden kann und irgendein geeignetes Kommunikationsprotokoll zwischen den Host-Rechenvorrichtungen oder zwischen der Eingabevorrichtung und den Host-Rechenvorrichtungen verwendet werden kann, wie nachstehend weiter erörtert.
  • Eine Ausführungsform einer typischen Systemarchitektur
  • 2 zeigt ein System 200 zum Ermöglichen eines automatischen Mehr-Host-Umschaltens für eine Eingabevorrichtung gemäß bestimmten Ausführungsformen. Das System 200 umfasst einen Webdienstanbieter 210, eine Firewall 220, eine Ethernet-Verbindung 230, einen Router 240 und ein lokales Netzwerk (LAN) 250. Das LAN 250 umfasst einen ersten Host-Computer (Host) 260, einen zweiten Host-Computer (Host) 270, einen dritten Host-Computer (Host) 280 und einen vierten Host-Computer (Host) 290. Die Ethernet-Verbindung 230 ist mit dem Webdienstanbieter 210 durch die Firewall 220 gekoppelt. Der Router 240 ist kommunikativ mit dem Ethernet-Netzknoten 230 gekoppelt. Ein fünfter Host-Computer (Host) 295 ist mit der Ethernet-Verbindung 230 gekoppelt. Jeder Host 260290 kann mit dem Router 240 kommunikativ gekoppelt sein, um das LAN 250 zu bilden. Die Eingabevorrichtung 262 (z. B. eine Computermaus) kann zum Mehr-Host-Umschalten befähigt sein (z. B. kann sie mit mehreren Rechenvorrichtungen gepaart werden) und kann mit dem Host 260 und Host 270 kommunikativ gekoppelt werden. Die Eingabevorrichtungen 282 (z. B. Computermaus) und 284 (z. B. Tastatur) können zum Mehr-Host-Umschalten befähigt sein und können mit den Hosts 280 und 290 kommunikativ gekoppelt sein. Die Eingabevorrichtung 297 kann mit dem Host 295 kommunikativ gekoppelt sein. Die Eingabevorrichtungen können mit ihren jeweiligen Host-Computern über irgendein geeignetes drahtloses Kommunikationsprotokoll kommunikativ gekoppelt sein, einschließlich, jedoch nicht begrenzt auf Bluetooth, Bluetooth Low-Energy (BTLE), Infrarot (IR), ZigBee, Logitech Unifying oder ein anderer geeigneter Kommunikationsstandard. Jeder Host-Computer kann eine "Fluss"-Software (201204) umfassen, um ein automatisches Umschalten zwischen den Host-Rechenvorrichtungen zu ermöglichen und zu unterstützen, wie nachstehend weiter erörtert. Das System 200 und beliebige andere Ausführungsformen, die in diesem Dokument erörtert und in Betracht gezogen werden (z. B. 119), die Auslöser auf Anzeigebasis (z. B. auf Pixelbasis) verwenden, um automatisch eine Eingabevorrichtung für einen ersten Host-Computer auf einen zweiten Host-Computer umzuschalten, können allgemein als "flussfähiges System" bezeichnet werden.
  • Irgendein geeigneter Webdienstanbieter, irgendeine geeignete Firewall (gegebenenfalls), irgendeine geeignete Ethernet-Verbindung und irgendein geeigneter Router können in irgendeiner geeigneten Konfiguration verwendet werden. Andere Verfahren zum Vorsehen von Internet-Dienstfähigkeiten für das System 200 sind anwendbar. Die Betriebsdetails und die kommunikative Zusammenwirkung zwischen dem Webdienstanbieter 210, der Firewall 220, der Ethernet-Verbindung 230 und dem Router 240 werden nicht im Einzelnen erörtert, da sie üblicherweise vom Fachmann auf dem Gebiet verstanden werden. In einigen Ausführungsformen kann ein LAN ein geschlossenes Netzwerk sein und kann z. B. nicht mit einem Webdienstanbieter verbunden sein. In solchen Fällen gelten die hierin beschriebenen neuen Konzepte, einschließlich des automatischen Umschaltens einer Eingabevorrichtung zwischen mehreren Host-Computern und des Übertragens von Inhalten, die im Speicher (z. B. virtuelle Zwischenablage) gespeichert sind, immer noch in einem eigenständigen LAN, wie von einem Fachmann auf dem Gebiet eingesehen werden würde.
  • In einigen Ausführungsformen können die Host-Computer 260, 270, 280, 290 eine entsprechende Fluss-Software (201204) umfassen, die ein automatisches Mehr-Host-Umschalten für Eingabevorrichtungen und einen Cursor/Daten-"Fluss" zwischen Host-Computern unterstützt. Das System 200 kann eine Benutzererfahrung eines nahtlosen und kontinuierlichen "Flusses" eines Cursors von einem ersten Host-Computer zu einem zweiten Host-Computer schaffen, da die Host-Computer über die Fluss-Software in kontinuierlicher und/oder periodischer Kommunikation miteinander stehen können und sich Daten teilen können, einschließlich einer Identifikation einer geteilten Eingabevorrichtung (z. B. eindeutiger Identifikationscode), Betriebseinstellungen (d. h. in der Fluss-Software), eines Orts des Cursors, Textdaten oder Medien in einer virtuellen Zwischenablage usw. Wenn ein Benutzer einen Cursor bewegt und ein Kantenauslöseereignis an einem ersten Host-Computer einleitet, kann folglich ein zweiter Host-Computer auf der Basis der geteilten Daten bestimmen, wo sein Cursor angeordnet sein sollte, um eine nahtlose und kontinuierliche Bewegung eines Cursors vom ersten Host-Computer zum zweiten Host-Computer zu simulieren.
  • In einigen Implementierungen können ein oder mehrere Host-Computer einen automatischen Entdeckungsprozess einleiten, um zu bestimmen, welche anderen Vorrichtungen im LAN sich eine oder mehrere Eingabevorrichtungen teilen. Mit Bezug auf 2 ist der Host 260 kommunikativ mit der Eingabevorrichtung 262 (d. h. einer Computermaus mit Mehr-Host-Schaltfähigkeiten) gekoppelt. Der Host 260 kann (z. B. über eine lokale Software 201) eine Rundsendenachricht über das LAN senden, um eine Antwort von einem oder mehreren anderen Host-Computern (d. h. Host-Computern 270290) anzufordern, die auch mit der Eingabevorrichtung 262 kommunikativ gekoppelt sind. Die Nachricht kann Daten umfassen, die die Eingabevorrichtung 262 eindeutig identifizieren. Die Nachricht kann über ein universelles Datagrammprotokoll (UDP), ein Veröffentlichungs-/Teilnahmesystem oder ein anderes geeignetes Kommunikationsprotokoll gesendet werden. Im System 200 kann der Host 270 eine Antwortnachricht senden, die seinen Netzwerknamen vorsieht und bestätigt, dass er mit der Eingabevorrichtung 262 gekoppelt ist. Irgendein Host-Computer im LAN kann den Entdeckungsprozess einleiten.
  • Sobald der Host 260 die Bestätigung (z. B. über UDP-Rundsendung) empfängt, dass der Host 270 mit der Eingabevorrichtung 262 kommunikativ gekoppelt ist, können die Hosts 260, 270 eine direkte Kommunikationsverbindung 265 herstellen, um eine kontinuierliche und/oder periodische Kommunikation zwischen den zwei Computern zu unterstützen. In 2 verwendet die Richtungskommunikationsverbindung ein Übertragungssteuerprotokoll/Internetprotokoll (TCP/IP), obwohl andere sichere Kommunikationsprotokolle in Erwägung gezogen werden (z. B. RINA). Sobald eine direkte Kommunikation zwischen den Host-Computern hergestellt ist (und aufrechterhalten wird), kann ein kantenausgelöstes Mehr-Host-Umschalten an einer Eingabevorrichtung unterstützt werden. In einigen Ausführungsformen kann das System 200 ermöglichen, dass mehrere Eingabevorrichtungen (z. B. Eingabevorrichtungen 282, 284) zwischen Host-Computern (z. B. Hosts 280, 290) beispielsweise durch Kantenauslösung geteilt und automatisch umgeschaltet werden, wie nachstehend weiter erörtert.
  • 3 ist ein Ablaufdiagramm 300, das einen automatischen Entdeckungsprozess von Hosts in einem Teilnetz gemäß bestimmten Ausführungsformen zeigt. Insbesondere umfasst der automatische Entdeckungsprozess das Bestimmen durch einen ersten Host 310, der mit einer Eingabevorrichtung gekoppelt ist, ob andere Hosts in einem Teilnetz (z. B. LAN oder Netzwerk im Allgemeinen) auch mit der Eingabevorrichtung gekoppelt sind. Sobald die anderen Hosts entdeckt sind, kann eine direkte Kommunikationsverbindung (z. B. TCP) zwischen den Hosts hergestellt werden und das automatische Mehr-Host-Umschalten kann beginnen. In einigen Ausführungsformen kann das Ablaufdiagramm 300 den vorstehend in Bezug auf 2 beschriebenen automatischen Entdeckungsprozess hinsichtlich der Hosts 260, 270 und der Eingabevorrichtung 262 darstellen. Das Ablaufdiagramm 300 kann durch eine entsprechende Software 220 für jeden Host 260, 270 durchgeführt werden.
  • In Schritt 310 kann ein Benutzer eine Auswahl unter Verwendung der Software 201 durchführen, um ein automatisches Umschalten an einer Benutzerschnittstelle zu ermöglichen, die auf dem Host 260 (d. h. "Host 0") betrieben wird. In einigen Ausführungsformen kann das automatische Umschalten durch "Kantenauslösung" oder "Kantenumschalten" ausgelöst werden, wie nachstehend zumindest mit Bezug auf 58 weiter erörtert.
  • In Schritt 315 kann die Software 201 veranlassen, dass der Host-Computer 260 eine Nachricht zu anderen Host-Computern im LAN 250 (z. B. über UDP) rundsendet, um festzustellen, ob andere Host-Computer (z. B. Host 270290) sich dieselbe Eingabevorrichtung 262 teilen. Die rundgesendete Nachricht kann den Namen des rundsendenden Host (z. B. "Host 0") und einen eindeutigen Identifizierer für die Eingabevorrichtung 262 umfassen. In Schritt 320 rundsendet der Host 270 ("Host 1") eine Antwortnachricht (z. B. über UDP) mit seinem Hostnamen ("Host 1") und dem eindeutigen Identifizierer für die Eingabevorrichtung 262, die bestätigt, dass der Host 260 auch mit der Eingabevorrichtung 262 kommunikativ gekoppelt ist.
  • In Schritt 325 kann der Host 260 (Host 0) eine Antwort zum Host 270 (Host 1) senden, um eine sichere direkte Kommunikationsverbindung (z. B. TCP) aufzubauen. In Schritt 330 kann der Host 270 die TCP-Verbindung mit dem Host 260 annehmen. In Schritt 335 kann der Host 360 eine sichere Nachricht zum Host 270 senden. Eine sichere Nachrichtenübermittlung zwischen den Host-Computern kann in irgendeinem geeigneten Format stattfinden, wie z. B. JSON, XML, CSV, EDN usw., wie für einen Fachmann auf dem Gebiet verständlich wäre. Die sichere Nachricht kann Einstellungen der Software 201 des Hosts 260 umfassen, die der Eingabevorrichtung 262 zugeordnet sind. Dies kann Tasten/Merkmals-Konfigurationen, Einstellungen von Punkten pro Inch (dpi), Kanten- oder Ortsdetektionseinstellungen, Anzeigeeinstellungen (z. B. welche Kanten, Regionen oder Orte bewirken, dass die Eingabevorrichtung 262 zwischen verbundenen Hosts 260, 270 umschaltet) und dergleichen umfassen.
  • In Schritt 340 kann der Host 270 Software-Einstellungen für die Software 201 empfangen und aktualisiert eine interne Datenbank in der Software 202, die die Software-Einstellungen für jeden verbundenen Host dynamisch nachverfolgt. In Schritt 340 kann folglich der Host 270 Einstellungen für sowohl den Host 260 als auch den Host 270 aufweisen und der Host 270 aktualisiert die Brücke (Verbindung) zwischen ihnen (Schritt 345). In Schritt 350 kann der Host 270 eine sichere Nachricht zum Host 370 senden. Die sichere Nachricht kann Einstellungen der Software 202 des Hosts 370 und andere Daten umfassen, die der Eingabevorrichtung 262 zugeordnet sind, wie vorstehend mit Bezug auf den Host 260 in Schritt 335 erörtert.
  • In Schritt 350 kann der Host 260 Software-Einstellungen für die Software 202 empfangen und eine interne Datenbank in der Software 201 aktualisieren, die Software-Einstellungen für jeden verbundenen Host dynamisch nachverfolgt. In Schritt 355 kann folglich der Host 270 Einstellungen für sowohl den Host 260 als auch den Host 270 aktualisieren und die Brücke (Verbindung) zwischen ihnen aktualisieren (Schritt 360).
  • In Schritt 365 kann der Host 260 aktualisierte Einstellungen für sich selbst (z. B. Eingabevorrichtungseinstellungen, Cursorort/Cursorbahn usw.) zum Host 270 senden. In Schritt 370 kann der Host 270 Software-Einstellungen für die Software 201 empfangen und eine interne Datenbank aktualisieren, die der Software 201 zugeordnet ist, die dynamisch Software-Einstellungen, Cursorort usw. für jeden verbundenen Host nachverfolgt. In Schritt 380 weisen beide Hosts 260, 270 ausgetauschte Software-Konfigurationen auf und ein automatisches Umschalten für die Eingabevorrichtung 161 ist zur Verwendung bereit.
  • 4 zeigt ein vereinfachtes Verfahren 400 zum automatischen Bewirken, dass eine Eingabevorrichtung zwischen Host-Computern in Reaktion auf das Detektieren eines Kantenauslöseereignisses in einem flussfähigen System umschaltet, gemäß bestimmten Ausführungsformen. Das Verfahren 400 (sowie beliebige der nachstehend erörterten anderen Verfahren, einschließlich der Verfahren 1000, 1200, 1400, 1500 und 1800) können durch eine Verarbeitungslogik durchgeführt werden, die eine Hardware (Schaltungsanordnung, zweckgebundene Logik usw.), Software, die auf einer geeigneten Hardware arbeitet (wie z. B. ein Universalrechensystem oder eine zweckgebundene Maschine), Firmware (eingebettete Software) oder irgendeine Kombination davon umfassen kann. Um einen nicht begrenzenden Referenzpunkt für den Leser zu schaffen, werden die Schritte des Verfahrens 400 mit Bezug auf das System 100 von 1 beschrieben. In bestimmten Ausführungsformen kann das Verfahren 400 zumindest durch die Systeme, die in 13 gezeigt und beschrieben sind (z. B. Host 110, Host 260) und das System 2000 von 20 durchgeführt werden. Insbesondere kann das Verfahren 400 (und die Verfahren 1000, 1200, 1400, 1500 und 1800) durch eine Fluss-Software durchgeführt werden, wie vorstehend mit Bezug auf 2 gezeigt und beschrieben.
  • In Schritt 410 kann das Verfahren 400 das Empfangen eines Eingangssignals von der Eingabevorrichtung 130 durch den ersten Host-Computer 110 umfassen, das einer Bewegung des Cursors 140 auf der Anzeige 115 des Host-Computers 110 entspricht. Die Eingabevorrichtung 130 kann mit dem ersten Host-Computer 110 kommunikativ gepaart sein. In einigen Ausführungsformen kann der erste Host-Computer 110 mit einem zweiten Host-Computer 120 kommunikativ gekoppelt werden (z. B. nach den vorstehend mit Bezug auf 3 beschriebenen Entdeckungsschritten).
  • In Schritt 420 kann das Verfahren 400 das Detektieren durch den ersten Host-Computer 110 umfassen, wenn sich der Cursor 140 zur Kante 118 auf der Anzeige 115 des ersten Host-Computers 110 bewegt. In Schritt 430 kann in Reaktion darauf, dass der erste Host-Computer 110 detektiert, dass sich der Cursor 140 zur Kante 118 der Anzeige 115 des ersten Host-Computers 110 bewegt hat, das Verfahren 400 das Senden eines ersten Steuersignals durch den ersten Host-Computer 110 zur Eingabevorrichtung 130 umfassen, um die kommunikative Paarung der Eingabevorrichtung 130 vom ersten Host-Computer 110 auf den zweiten Host-Computer 120 umzuschalten.
  • In Schritt 440 kann das Verfahren 400 ferner das Senden eines zweiten Steuersignals durch den ersten Host-Computer 110 zum zweiten Host-Computer 120 umfassen, das bewirkt, dass der zweite Host-Computer 120 den zweiten Cursor 150 auf der Anzeige 125 des zweiten Host-Computers 120 zu einem Ort bewegt, um eine kontinuierliche Bewegung oder einen "Fluss" des Cursors 140 von der Kante 118 der Anzeige 115 am ersten Host-Computer 110 zu einer entsprechenden Kante 128 der Anzeige 125 am zweiten Host-Computer 120 zu simulieren, wie z. B. zu den Zeitpunkten t2–t3 in 1 gezeigt.
  • Die Kantendetektion kann das Detektieren des Cursors 140 an einer einzelnen Kante oder an einer von mehreren flussfähigen Kanten umfassen, die eine Kantendetektion auslösen können. Die Kantendetektion an einer ersten Kante 118 kann beispielsweise bewirken, dass die Eingabevorrichtung 130 vom Host 110 auf den Host 120 umschaltet. Die Kantendetektion an einer anderen Kante der Anzeige 115 kann jedoch bewirken, dass die Eingabevorrichtung 130 vom Host 110 auf eine dritte Host-Vorrichtung (nicht dargestellt) umschaltet. Irgendeine Anzahl von Kanten oder von Teilen davon kann die Kantendetektion auslösen. In einigen Ausführungsformen kann das Detektieren des Cursors 140 in bestimmten definierten Regionen oder Bereichen der Anzeige 115 bewirken, dass die Eingabevorrichtung 130 zwischen Host-Computern umschaltet. Eine Kante kann durch eine einzelne Reihe oder Spalte von Pixeln definiert sein. In einigen Fällen kann eine Kante durch eine Anzahl von Reihen oder Spalten von Pixeln definiert sein (z. B. rechte Kante der Anzeige 115 mit 5 Pixelspalten breit). Einige Ausführungsformen können ferner das Detektieren einer Geschwindigkeit oder Bahn (d. h. Vektor – Geschwindigkeit und Richtung) des Cursors 140 vor dem und/oder zum Zeitpunkt des Kontakts mit einer Kante umfassen und können die Kantendetektion auf der Basis sowohl des Cursororts als auch der Cursorgeschwindigkeit (z. B. Bewegung größer als 100 Pixel/Sekunde) auslösen.
  • Es sollte erkannt werden, dass die in 4 dargestellten speziellen Schritte ein spezielles Verfahren 400 zum automatischen Bewirken, dass eine Eingabevorrichtung zwischen Host-Computern in Reaktion auf die Detektion eines Kantenauslöseereignisses umschaltet, gemäß bestimmten Ausführungsformen bereitstellen. Andere Sequenzen von Schritten können auch gemäß alternativen Ausführungsformen durchgeführt werden. Alternative Ausführungsformen können beispielsweise die vorstehend umrissenen Schritte in einer anderen Reihenfolge durchführen. Überdies können die individuellen Schritte, die in 4 dargestellt sind, mehrere Unterschritte umfassen, die in verschiedenen Sequenzen durchgeführt werden können, wie für den individuellen Schritt geeignet. Ferner können zusätzliche Schritte in Abhängigkeit von den speziellen Anwendungen hinzugefügt oder entfernt werden. In einigen Ausführungsformen kann beispielsweise der erste Host-Computer 110 ein erstes Steuersignal zur Eingabevorrichtung senden, um ein Umschalten zwischen Host-Computern einzuleiten, kann jedoch nicht mit dem zweiten Host-Computer 120 in Kommunikation stehen, wobei somit der in Schritt 440 beschriebene "Fluss"-Abschnitt beseitigt wird. Alternativ oder zusätzlich können einige Ausführungsformen des Verfahrens 400 ferner (z. B. in Schritt 420) das Detektieren, wenn das Eingangssignal einer fortgesetzten Bewegung des Cursors über die Kante der Anzeige des ersten Host-Computers hinaus entspricht, umfassen. In solchem Fällen würden das Auslösen eines Flussereignisses und das Senden des ersten und des zweiten Steuersignals erfordern, dass sich der Cursor nicht nur zu einer Kante der Anzeige bewegt, sondern weiterhin Eingabevorrichtungssignale empfängt, die eine fortgesetzte Bewegung in dieser speziellen Richtung angeben (z. B. bewegt ein Benutzer den Cursor zur Kante, die den Cursor stoppt, aber der Benutzer bewegt die Eingabevorrichtung weiter in derselben Richtung, was zeigen kann, dass der Benutzer von einem Host-Computer zum nächsten "fließen" will, anstatt absichtlich den Cursor an oder nahe der Anzeigekante schweben zu lassen.) Ein Fachmann auf dem Gebiet würde viele Variationen, Modifikationen und Alternativen des Verfahrens 400 erkennen und einschätzen.
  • Kantendetektion: Ort
  • 5 ist ein vereinfachtes Blockdiagramm 500, das ein kantenausgelöstes Umschalten eines Eingabevorrichtungsschalters zwischen einem ersten Host-Computer und einem zweiten Host-Computer gemäß bestimmten Ausführungsformen zeigt. Das Blockdiagramm 500 umfasst eine Anzeige 515 von einem ersten Host-Computer ("Host 510"), eine Anzeige 525 an einem zweiten Host-Computer ("Host 520") und einen Mehrkanalschalter 535 an einer Eingabevorrichtung 530. Der Mehrkanalschalter 535 kann zwischen drei vom Benutzer programmierbaren Kanälen umgeschaltet werden. Einige Eingabevorrichtungen 530 können mehr oder weniger Kanäle aufweisen. In einigen Ausführungsformen kann der Kanal 1 bewirken, dass die Eingabevorrichtung 530 mit dem Host 510 gepaart wird, der Kanal 2 kann bewirken, dass die Eingabevorrichtung 530 mit dem Host 520 gepaart wird, und der Kanal 3 kann bewirken, dass die Eingabevorrichtung 530 mit einem dritten Host-Computer (nicht dargestellt) gepaart wird oder nicht irgendeinem Host-Computer zugeordnet werden kann (wie gezeigt). Irgendeine programmierte Konfiguration der Kanäle ist möglich, wie für einen Fachmann auf dem Gebiet verständlich wäre. Der Host 510 kann eine Fluss-Software 501 umfassen. Der Host 520 kann eine Fluss-Software 502 umfassen. Die Software 501, 502 kann ähnlich zur Fluss-Software 201, wie vorstehend mit Bezug auf 2 beschrieben, arbeiten.
  • Die Anzeigen 515 und 525 umfassen jeweils eine 2-dimensionale (2D) Anordnung von 1919×1079 Pixeln, die einen Betrachtungsbereich definieren. Irgendeine Pixelauflösung kann verwendet werden und verschiedene Host-Computer können Anzeigen mit unterschiedlichen Pixelauflösungen umfassen. Die Anzeige 515 zeigt einen Cursor 540, der mit der Kante 518 in Kontakt kommt, was bewirkt, dass die Software 501 ein Kantenauslöseereignis einleitet, und bewirkt, dass der Mehrkanalschalter 535 der Eingabevorrichtung 530 die kommunikative Paarung vom Host 110 auf den Host 120 umschaltet. Das Kantenauslöseereignis kann auch bewirken, dass der Host 120 an der Kante 528 anordnet 550, um zu simulieren, was als glatter Übergang eines Cursors von der Anzeige 515 zur Anzeige 525 erscheint, wie vorstehend weiter erörtert. Mit Bezug auf 5 kann ein Kantenauslöser an der einzelnen Pixelspalte auftreten, die durch 0,1079 bis 1919,1079 definiert ist. Eine Kante kann mehrere Pixel breit sein und kann eine vollständige Kante oder einen Abschnitt davon abdecken. In einigen Implementierungen kann ein Auslöser einer Reihe, einer Spalte oder einem Bereich von Pixeln zugeordnet sein, der sich nicht notwendigerweise an einer Kante einer Anzeige befindet. Beispielsweise kann eine Anzahl von graphischen Bildsymbolen, die mehrere unterschiedliche Host-Computer in einem LAN darstellen, auf einer Anzeige so ausgelegt sein, dass sie "Fluss"-Auslöser sind, die bewirken, dass eine Eingabevorrichtung auf einen entsprechenden Host umschaltet, wenn ein Cursor das Bildsymbol kontaktiert (oder überlappt).
  • Kantendetektion: Geschwindigkeit
  • In einigen Ausführungsformen kann die "Fluss"-Software (z. B. Software 201 auf dem Host 260) die Cursorbewegung, -position und -geschwindigkeit überwachen. Wenn ein Cursor einen vom Benutzer konfigurierten Kantenauslöser auf einer Anzeige erreicht und die Geschwindigkeit der Eingabevorrichtung einen vom Benutzer definierten Geschwindigkeitsschwellenwert (z. B. 100 Pixel pro Sekunde) erfüllt oder überschreitet, dann kann die Eingabevorrichtung auf einen anderen Kanal umschalten (d. h. zwischen Host-Computern umschalten). Irgendein geeigneter Geschwindigkeitsschwellenwert kann verwendet werden, der größer oder geringer als 100 Pixel pro Sekunde sein kann.
  • Kantendetektion: sichere Zonen
  • In bestimmten Ausführungsformen kann die "Fluss"-Software (z. B. Software 201 auf dem Host 260) "sichere Zonen" umfassen, die verhindern, dass ein Benutzer versehentlich schnell zwischen Host-Computern umschaltet. Dies kann beispielsweise auftreten, wenn ein Benutzer einen Cursor sehr nahe an eine Kante einer Anzeige bewegt und aufgrund von kleinen Eingabevorrichtungssensor-Zitterbewegungen der Cursor wiederholt Kantenauslösungen zwischen zwei Host-Computern durchführt. Durch Einrichten einer "sicheren Zone" am Empfangsende eines Flusses (d. h. an einem zweiten Host-Computer in einem Fluss von einem ersten Host-Computer zum zweiten Host-Computer) muss folglich ein Benutzer den Cursor außerhalb einen Bereich bewegen, der typischerweise um den Eintrittspunkt des Flusses angeordnet ist, so dass ein Rückfluss zum ersten Host-Computer wahrscheinlicher absichtlich ist. Das heißt, eine sichere Zone kann eine Region sein, die durch einen Bereich (z. B. quadratischer Pixelbereich von 50×50) definiert ist, der die Kantendetektion in dieser speziellen Region des Kantenauslösers ausschaltet.
  • 6 zeigt die Verwendung einer sicheren Zone 660 in einem flussfähigen System 600 gemäß bestimmten Ausführungsformen. Das System 600 umfasst eine Anzeige 615 von einem ersten Host-Computer ("Host 610") und eine Anzeige 625 an einem zweiten Host-Computer ("Host 620"). Der Host 610 kann eine Fluss-Software 601 umfassen und der Host 620 kann eine Software 602 umfassen. Die Software 601, 602 kann ähnlich zur Fluss-Software 201 arbeiten, wie vorstehend in Bezug auf 2 beschrieben. Die Anzeigen 615 und 625 umfassen jeweils eine 2-D-Anordnung von Pixeln, die einen Betrachtungsbereich definieren, wie weiter vorstehend in Bezug auf 5 erörtert. Die Anzeige 615 zeigt einen Cursor 640, der mit der Kante 618 in Kontakt kommt, was bewirkt, dass die Fluss-Software 601 ein Kantenauslöseereignis einleitet, das bewirkt, dass eine entsprechende Eingabevorrichtung (nicht dargestellt) die kommunikative Paarung vom Host 610 auf den Host 620 umschaltet. Wenn sie umgeschaltet wird, erscheint der Cursor 640 auf der Anzeige 615 in die Position 650 auf der Anzeige 625 zu "fließen". Die Position 650 ist innerhalb einer "sicheren Zone" 660 oder einer begrenzten Region angeordnet, die die Kantendetektion in dieser Region verhindert, um ein versehentliches Kantenauslöseereignis zu verhindern, das bewirkt, dass die Eingabevorrichtung zur Anzeige 615 zurückfließt. Die sichere Zone 660 kann irgendeine Größe oder Form aufweisen und kann kontinuierlich oder diskontinuierlich sein (d. h. mehrere getrennte sichere Zonen). Wie in 6 gezeigt, muss der Benutzer den Cursor aus der sicheren Zone 660 zum Weg 670 (oder irgendeiner anderen Kantenauslöseregion außerhalb der sicheren Zone 660) bewegen, um einen Rückfluss zur Anzeige 615 einzuleiten.
  • Kantendetektion – Minimale Schwellenzeit
  • In einigen Ausführungsformen kann die Fluss-Software Zeitstempel überwachen, die der Eingabevorrichtungsaktivierung und -deaktivierung entsprechen. Eine Eingabevorrichtung kann aktiviert werden, wenn die Fluss-Software auf einem ersten Host-Computer detektiert, dass die Eingabevorrichtung von einer zweiten Host-Vorrichtung herein "geflossen" ist (d. h. herein geschaltet wurde). Eine Eingabevorrichtung kann deaktiviert werden, wenn die Fluss-Software auf einem ersten Host-Computer detektiert, dass die Eingabevorrichtung zu einem zweiten Host-Computer heraus "geflossen" ist (d. h. umgeschaltet wurde). Eine minimale Schwellenzeit kann zwischen "Flüssen" implementiert werden, um ein versehentliches Springen zwischen Host-Computern zu vermeiden (d. h. aufgrund von Eingabevorrichtungssensor-Zitterbewegungen). In einigen Ausführungsformen kann die minimale Schwellenzeit vom Benutzer programmierbar sein und kann 100 ms sein. Die minimale Schwellenzeit kann irgendeine geeignete Zeit sein, die kürzer oder länger ist als 100 ms. In einigen Fällen kann die minimale Schwellenzeit für die Anwendung spezifisch sein oder kann auf der Basis der Eingabevorrichtungsbewegung über eine Zeitdauer sich dynamisch ändern.
  • 78 stellen Flussszenarios zwischen zwei Host-Computern mit ähnlichen Systemarchitekturen dar, wie vorstehend in Bezug auf 16 beschrieben ist. Es sollte selbstverständlich sein, dass die Diagramme vereinfacht sind, um Aspekte der Implementierung von Schwellenzeiten in flussfähigen Systemen zu betonen, und zugehörige Host-Computer, eine entsprechende Fluss-Software, eine oder mehrere Mehr-Host-Eingabevorrichtungen und dergleichen umfassen.
  • 78 zeigen ferner den Effekt einer minimalen Schwellenzeit, die auf ein flussfähiges System angewendet wird, gemäß bestimmten Ausführungsformen. 7 umfasst eine Anzeige 715 eines ersten Host-Computers und eine Anzeige 725 eines zweiten Host-Computers. Eine minimale Schwellenzeit wird auf 100 ms festgelegt, obwohl andere Zeiten verwendet werden können. In 7 "fließt" ein Benutzer von der Anzeige 715 zur Anzeige 725. Unmittelbar danach und vor der minimalen Schwellenzeit (d. h. weniger als 100 ms) bewegt der Benutzer einen Cursor auf der Anzeige 725 zu einem Kantenauslöser 770, was dazu führt, dass der Flussprozess abgelehnt wird. Das heißt, die Eingabevorrichtung bleibt mit dem zweiten Host-Computer gepaart (d. h. die Cursorsteuerung bleibt am zweiten Host-Computer), anstatt zum ersten Host-Computer zurückzufließen. In 8 überschreitet der Benutzer die minimale Schwellenzeit (größer als 100 ms) nach einem anfänglichen Fluss von einem ersten Host-Computer zu einem zweiten Host-Computer und der Rückkehrflussprozess zum ersten Host-Computer zurück wird vor sich gehen lassen.
  • Kompensation von Netzwerk/Vorrichtungs-Paarungsverzögerungen – unter Verwendung von Cursorbahn
  • In einigen Ausführungsformen kann eine gewisse unerwünschte Verzögerung bestehen, die in ein flussfähiges System eingeführt wird. Einige Verzögerungsquellen können von einem Host (z. B. TCP-Netzwerkzeitversatz, Zeitversatz eines Netzwerks auf Cloud-Basis), von der Eingabevorrichtung (z. B. Kanalumschaltzeitversatz, Neuverbindung der Eingabevorrichtung mit dem Host) oder beiden stammen. Solche Verzögerungen können sich in einigen Konfigurationen merklich auf die Leistung des Flussprozesses auswirken und könnten zu einer für den Benutzer wahrnehmbaren Pause zwischen einem Kantenauslöseereignis an einer ersten Host-Rechenvorrichtung und der anschließenden Steuerung eines Cursors auf einer zweiten Host-Rechenvorrichtung führen, was sich auf die Benutzererfahrung negativ auswirken könnte. Bestimmte Ausführungsformen der Erfindung kompensieren solche Verzögerungen durch Analysieren einer Bahn eines Cursors an der ersten Rechenvorrichtung und Anwenden derselben auf die zweite Rechenvorrichtung, um eine kontinuierliche Bewegung des Cursors während einer Zeitdauer zu simulieren, in der Steuerdaten von der Eingabevorrichtung aktuell nicht verfügbar sind. Dies kann helfen, die Benutzererfahrung des Erhaltens einer unmittelbaren Rückmeldung für die Cursorbewegung zu verbessern, während Hintergrundverbindungen hergestellt werden.
  • 9 zeigt ein vereinfachtes Blockdiagramm 900, das ein Verfahren für eine Verzögerungskompensation auf Cursorbahnbasis in einem flussfähigen System zeigt, gemäß bestimmten Ausführungsformen. Das System 900 umfasst eine erste Anzeige 915 an einem ersten Host-Computer 910 und eine zweite Anzeige 625 an einem zweiten Host-Computer 920. Die Hosts 910, 920 können jeweils eine Fluss-Software 901, 902 umfassen. Die Software 901, 902 kann ähnlich zur Fluss-Software 201 arbeiten, wie vorstehend mit Bezug auf 2 beschrieben. In einigen Ausführungsformen kann die Software 901, 902 einige oder alle der auf den "Fluss" bezogenen Konzepte, die hierin erörtert sind, durchführen (z. B. Kantendetektion, Senden/Empfangen von Cursor-Ort/Projektil-Daten, Berechnen der Bahn, künstliche Cursorbewegung usw.). Die Anzeigen 915 und 925 können jeweils eine 2-D-Anordnung von Pixeln umfassen, die einen Betrachtungsbereich definieren, wie vorstehend in Bezug auf 5 weiter erörtert. Die hierin beschriebenen "Fluss"-Konzepte können jedoch für dreidimensionale (3-D) Anzeigen gelten, wie für einen Fachmann auf dem Gebiet verständlich wäre.
  • Mit Bezug auf 9 umfasst die erste Anzeige 915 einen Cursor 940, der durch eine Mehr-Host-fähige Eingabevorrichtung 930 gesteuert werden kann, wenn die Eingabevorrichtung 930 auf einen ersten Kanal (Kanal 1) umgeschaltet wird. Die zweite Anzeige 925 umfasst einen Cursor 950, der durch eine Mehr-Host-fähige Eingabevorrichtung 930 gesteuert werden kann, wenn die Eingabevorrichtung 930 auf einen zweiten Kanal (Kanal 2) umgeschaltet wird. Die Eingabevorrichtung 930 kann mehr oder weniger Kanäle umfassen und jeder Kanal kann so programmiert sein, dass er irgendeiner Host-Maschine zugeordnet ist, wie für einen Fachmann auf dem Gebiet verständlich wäre. Der Host 910 kann eine aufgebaute Netzwerkverbindung (z. B. über TCP/IP, RINA usw.) und eine bidirektionale Kommunikation mit dem Host 920 aufweisen, wie vorstehend mit Bezug auf 2 beschrieben.
  • In einigen Ausführungsformen können, wenn sich der Cursor 940 über die Anzeige 915 zu Positionen 942946 bewegt, der Ort des Cursors 940 und seine entsprechenden Projektildaten zu anderen Host-Computern (z. B. Host 920) im Netzwerk gesendet werden. Cursorortsdaten können Daten sein, die den gegenwärtigen Ort eines Cursors auf einer Anzeige beschreiben, mit der eine entsprechende Eingabevorrichtung gegenwärtig gepaart ist (z. B. gegenwärtiges Senden von Cursorsteuerdaten). In einigen Ausführungsformen können Cursorortsdaten (und Projektildaten) abgetastet und zwischen jedem Host im Netzwerk (oder einer Teilmenge davon) ungeachtet dessen, ob die Eingabevorrichtung gegenwärtig damit gepaart ist, gesendet werden. Cursorortsdaten können in irgendeinem geeigneten Format (z. B. Überwachungs-2D-Pixeldaten) vorliegen, wie von einem Fachmann auf dem Gebiet eingeschätzt werden würde.
  • Projektildaten können Daten umfassen, die der Geschwindigkeit, der Beschleunigung, dem Vektor (Geschwindigkeit und Richtung) und dergleichen des Cursors 940 entsprechen, und können in irgendeinem geeigneten Format und mit irgendeiner Frequenz (z. B. periodisch oder kontinuierlich) erzeugt und/oder gesendet werden. In einigen Ausführungsformen können Cursororts- und -projektildaten über TCP/IP (oder ein anderes Kommunikationsprotokoll) zu der Zeit gesendet werden, zu der sich der Cursor an einem ersten/letzten Pixel einer "flussfähigen" Kante befindet. In einigen Fällen können Cursororts- und -projektildaten vor einem "Kanten"-Detektionsereignis gesendet werden (z. B. alle 100 ms, 1 s oder dergleichen). Die Cursororts- und -projektildaten können abgetastet und/oder zu anderen Host-Computeren mit irgendeiner geeigneten Rate oder Frequenz gesendet werden, wie von einem Fachmann auf dem Gebiet eingeschätzt werden würde. Wenn sich der Cursor 940 um die Anzeige 915 bewegt, können folglich andere Host-Computer im Netzwerk trotz irgendeines Zeitversatzes, der mit der TCP/IP-Verbindung verbunden ist, den gegenwärtigen Ort und die gegenwärtige Bahn des Cursors 940 auf der Basis der periodisch empfangenen Cursororts- und -projektildaten abschätzen.
  • In einigen Ausführungsformen kann die Berechnung eines Projektils (z. B. Cursorbewegung) bei jedem Mausbewegungsbericht (oder einem äquivalenten Eingabevorrichtungs-Bewegungs/Handlungs-Bericht) stattfinden. Das tatsächliche Senden von Projektilinformationen zwischen Host-Computern kann jedoch bei jedem Mausbewegungsbericht stattfinden oder nicht (z. B. Senden alle 1, 10 oder 50 usw. Mausbewegungsberichte), was für die Zwecke der Optimierung und Vermeidung des erneuten Sendens von redundanten Informationen dienen kann (z. B. wenn die Maus sich nicht bewegt hat und keine neuen Daten erzeugt werden).
  • In einigen Ausführungsformen wird, wenn der Cursor 940 die Position 948 erreicht, ein Kantenauslöseereignis eingeleitet. In Reaktion kann der Host 910 ein Steuersignal erzeugen, das bewirkt, dass die Eingabevorrichtung 930 vom Kanal 1 (Host 910) auf den Kanal 2 (Host 920) umschaltet, wie vorstehend mit Bezug auf 5 beschrieben, und ferner eine Nachricht (z. B. Steuersignal) zum Host 920 senden, das angibt, dass ein Kantenauslöseereignis aufgetreten ist. Der Host 920 kann dann die künstliche Cursorbewegung für den Cursor 950 auf der Basis der empfangenen Cursororts- und -projektildaten des Hosts 910 starten (d. h. wie der Cursor sich vorher bewegt hat), um eine kontinuierliche und ununterbrochene Cursor-Bewegung zwischen dem Host 910 zum Host 920 zu simulieren, während der Host 920 auf tatsächliche Cursor-Steuersignale von der Eingabevorrichtung 930 wartet, die gegenwärtig durch eine Systemverzögerung stecken geblieben sind. Wie in 9 gezeigt, erscheint ein Ursprung (Ort 949) und eine Bewegung des Cursors 950 zum Ort 952 auf der Anzeige 925 als kontinuierlicher und ununterbrochener Fluss mit einer Bahn ähnlich zu jener des Cursors 940 auf der Anzeige 915. Bis der Cursor 950 den Ort 952 erreicht, kann der Host 920 beginnen, Cursor-Steuersignale von der Eingabevorrichtung 930 zu empfangen, um den Cursor 950 zu steuern (wodurch die künstliche Cursor-Bewegung beendet wird), und eine typische (durch die Eingabevorrichtung gesteuerte) Cursor-Steuerung kann auf der Anzeige 925 folgen. Folglich kann die Verwendung der künstlichen Cursor-Bewegung während eines "Fluss"-Prozesses helfen, die gesamte Benutzererfahrung durch Vorsehen dessen zu verbessern, was als unmittelbare Rückmeldung über die Cursor-Bewegung zwischen Host-Computern erscheint, während die Hintergrundverbindungen hergestellt werden.
  • Die Verzögerung oder der Zeitversatz kann durch eine Anzahl von Quellen eingeführt werden und kann hinsichtlich der Dauer von System zu System variieren. In einigen Ausführungsformen kann das TCP/IP-Netzwerk zwischen dem Host 910 und 920 einen gewissen Zeitversatz (z. B. 10 ms–50 ms) einführen und kann in Abhängigkeit vom Netzwerkverkehr, von der Dichte (Anzahl von Rechenvorrichtungen im Netzwerk) und dergleichen variieren. Der Netzwerkzeitversatz kann sich darauf auswirken, wie lang es dauert, bis der Host 920 eine Angabe empfängt, dass ein Kantenauslöseereignis aufgetreten ist. Der Netzwerkzeitversatz kann auf der Basis des Netzwerkverkehrs, von Netzwerk-Hardwarespezifikationen oder einer anderen Verzögerungsquelle auf Hardware- oder Softwarebasis zunehmen.
  • Der Kanalumschaltzeitversatz, der die Zeit ist, die es dauert, um intern zwischen Kanälen an einer Eingabevorrichtung umzuschalten (z. B. Umschalten zwischen Kanal 1 und 2), kann in Abhängigkeit vom Typ der Eingabevorrichtung 930 variieren (z. B. typischerweise geringer als 25 ms). Ein Neuverbindungszeitversatz, der die Zeit ist, die es dauert, bis die Eingabevorrichtung mit der nächsten Host-Maschine paart (z. B. Paarung des Kanals 2 mit dem Host 920), kann in Abhängigkeit vom Typ von Kommunikationsprotokoll variieren. Der Neuverbindungszeitversatz kann durch Verhandlungen und/oder Authentifizierung zwischen einer Eingabevorrichtung und einem Host-Computer verursacht werden. Der Neuverbindungszeitversatz kann in Abhängigkeit vom Kommunikationsprotokoll oder Bustyp variieren, wie für einen Fachmann auf dem Gebiet verständlich wäre. Ein Empfängerzeitversatz des Logitech Unifying Protokolls kann beispielsweise typischerweise zwischen 100 ms–200 ms liegen. Der Bluetooth-Zeitversatz liegt typischerweise zwischen 2–3 s. Der Netzwerkzeitversatz von Bluetooth Low Energy (LE) ist typischerweise 600 ms–2 s. Die Bluetooth-Verzögerungen sind typischerweise länger als Logitech Unifying, da Bluetooth-Protokolle allgemeiner sind (z. B. ist das Logitech Unifying Protokoll für Logitech-Produkte optimiert), und umfasst typischerweise den Host-Stapel, der versucht, Vorrichtungsinformationen und Paarungsinformationen zu validieren.
  • 10 zeigt ein vereinfachtes Verfahren 1000 für eine Verzögerungskompensation auf Cursorbahnbasis in einem flussfähigen System gemäß bestimmten Ausführungsformen. In Schritt 1010 kann das Verfahren 1000 das Senden von Cursororts- und -projektildaten durch einen ersten Host-Computer (z. B. Host 910) zu einem zweiten Host-Computer (z. B. Host 920), die einer Bewegung eines Cursors (940) am ersten Host-Computer entsprechen, umfassen. Der erste und der zweite Host-Computer können über eine geteilte Netzwerkverbindung (z. B. TCP/IP) mit irgendeiner geeigneten Frequenz (z. B. periodische oder kontinuierliche Cursor-Aktualisierungen) kommunizieren.
  • In Schritt 1020 kann das Verfahren 1000 umfassen, dass der erste Host-Computer ein Kantenauslöseereignis detektiert, das dem entspricht, dass der Cursor am ersten Host-Computer eine Kante (z. B. Position 948 auf der Anzeige 915) erreicht. Beliebige geeignete Kantenauslöseanforderungen können angewendet werden, einschließlich Cursor-Geschwindigkeit, sichere Zonen, minimale Schwellenzeiten und dergleichen.
  • In Schritt 1030 kann in Reaktion auf die Kantendetektion das Verfahren 1000 umfassen, dass der erste Host-Computer ein Steuersignal zu einer Eingabevorrichtung (930) sendet, um automatisch zu bewirken, dass die Eingabevorrichtung die drahtlose Paarung vom ersten Host-Computer (z. B. Kanal 1) auf den zweiten Host-Computer (z. B. Kanal 2) umschaltet. In Schritt 1040 kann auch in Reaktion auf die Kantendetektion das Verfahren 1000 umfassen, dass der erste Host-Computer eine Nachricht zum zweiten Host-Computer sendet, dass ein Kantendetektionsereignis aufgetreten ist. In Reaktion kann der zweite Host-Computer bestimmen, wo sein entsprechender Cursor (z. B. Cursor 950) entspringen sollte (z. B. Ort 949) und wie er sich bewegen sollte (z. B. Geschwindigkeit, Richtung, Beschleunigung), bis Steuersignale von der Eingabevorrichtung empfangen werden (z. B. nach dem Kanalumschalten und der Paarung). Das heißt, der zweite Host-Computer kann seinen Cursor 950 entlang einer berechneten künstlichen Bahn (z. B. berechnet durch die Software 920) auf der Basis der Bahn des Cursors 940 bewegen, bis Steuersignale von der Eingabevorrichtung 930 durch den zweiten Host-Computer empfangen werden (z. B. am Ort 952). Die Cursorsteuerung für den Cursor 950 fährt dann vom Ort 952 unter normalen Betriebsbedingungen fort (d. h. Cursor-Bewegung über Steuersignale von der Eingabevorrichtung), für das, was für den Benutzer als glatte und ununterbrochene Bewegung eines einzelnen Cursors zwischen den Host-Computern (z. B. Host 910 zum Host 920) erscheint.
  • Es sollte erkannt werden, dass die spezifischen Schritte, die in 10 dargestellt sind, ein spezielles Verfahren 1000 für eine Verzögerungskompensation auf Cursorbahnbasis in einem flussfähigen System gemäß bestimmten Ausführungsformen bereitstellen. Andere Sequenzen von Schritten können gemäß alternativen Ausführungsformen auch durchgeführt werden. Alternative Ausführungsformen können beispielsweise die vorstehend umrissenen Schritte in einer anderen Reihenfolge durchführen. Das heißt, bestimmte Ausführungsformen können eine Kantendetektionsbenachrichtigung zu anderen Host-Computern vor dem Senden eines Steuersignals senden, um Kanäle an einer entsprechenden Eingabevorrichtung automatisch umzuschalten. In anderen Ausführungsformen können beide Verfahrensschritte 1030 und 1040 im Wesentlichen gleichzeitig (z. B. innerhalb 5 ms zueinander) stattfinden. Überdies können die in 10 dargestellten individuellen Schritte mehrere Unterschritte umfassen, die in verschiedenen Sequenzen durchgeführt werden können, wie für den individuellen Schritt geeignet. Ferner können zusätzliche Schritte in Abhängigkeit von den speziellen Anwendungen hinzugefügt oder entfernt werden. Auf Steuersignale kann in irgendeiner zweckmäßigen Weise Bezug genommen werden, um ein Steuersignal von einem anderen abzuklären. Begriffe wie "erstes Steuersignal", "zweites Steuersignal" oder "drittes Steuersignal" und dergleichen können beispielsweise verwendet werden, um ein spezielles Steuersignal zu identifizieren und/oder zu erläutern. Ein Fachmann auf dem Gebiet würde viele Variationen, Modifikationen oder Alternativen des Verfahrens 1000 erkennen und einschätzen.
  • Umschalten von mehreren Eingabevorrichtungen zwischen Host-Computern
  • In einigen Benutzersystemanordnungen können mehrere Eingabevorrichtungen kommunikativ mit einem Host-Computer gekoppelt sein. Mehrere Eingabevorrichtungen (z. B. Computermaus, Tastatur usw.) und Ausgabevorrichtungen (z. B. drahtlose Lautsprecher) können beispielsweise einem ersten Host-Computer zugeordnet sein. In einigen Ausführungsformen kann eine Fluss-Software ermöglichen, dass ein Benutzer automatisch mehrere Eingabe- und Ausgabevorrichtungen umschaltet. In einigen Fällen kann es nicht erforderlich sein, dass die verknüpften Eingabe/Ausgabe-Vorrichtungen denselben Kanälen zugewiesen sind.
  • 11 zeigt ein vereinfachtes Blockdiagramm eines Systems 1100 zum automatischen Bewirken, dass mehrere Eingabevorrichtungen zwischen Host-Computern in Reaktion auf die Detektion eines Kantenereignisses umschalten, gemäß bestimmten Ausführungsformen. Um die Analyse zu vereinfachen, umfasst 11 viele ähnliche Systemelemente wie das System 500 von 5, mit Zusatz einer zusätzlichen Eingabevorrichtung (Tastatur 1140) und einem entsprechenden Mehrkanalschalter 1145. Es sollte beachtet werden, dass irgendeine Anzahl von Eingabe- und/oder Ausgabevorrichtungen irgendeiner Anzahl von Host-Rechenvorrichtungen zugeordnet sein kann, wie von einem Fachmann auf dem Gebiet eingeschätzt werden würde.
  • Der Mehrkanalschalter 535 kann zwischen drei vom Benutzer programmierbaren Kanälen umgeschaltet werden. In einigen Ausführungsformen kann der Kanal 1 bewirken, dass die Eingabevorrichtung 530 mit dem Host 510 gepaart wird, der Kanal 2 kann bewirken, dass die Eingabevorrichtung 530 mit dem Host 520 gepaart wird, und der Kanal 3 kann keinem Host-Computer zugeordnet sein (wie gezeigt). Irgendeine programmierte Konfiguration der Kanäle ist möglich.
  • Der Mehrkanalschalter 1145 für die Tastatur 1140 kann zwischen drei vom Benutzer programmierbaren Kanälen umschaltet werden. Einige Eingabevorrichtungen 1145 können mehr oder weniger Kanäle aufweisen. In einigen Ausführungsformen kann der Kanal 1 bewirken, dass die Eingabevorrichtung 1140 mit dem Host 520 gepaart wird, der Kanal 2 kann keinem Host-Computer zugeordnet sein (wie gezeigt) und der Kanal 3 kann bewirken, dass die Eingabevorrichtung 530 mit dem Host 510 gepaart wird.
  • Gemäß einigen Ausführungsformen kann der Host 510 ein Kantenauslöseereignis angeben, wenn der Cursor 540 die Kante 518 der Anzeige 515 erreicht. Der Host 510 kann dann ein Steuersignal erzeugen, das bewirkt, dass die Eingabevorrichtung 530 (z. B. eine Bluetooth-Computermaus) vom Kanal 1 (Host 510) auf den Kanal 2 (Host 520) umschaltet und den vorstehend beschriebenen "Fluss"-Prozess einleitet. Der Host 510 kann ferner ein zweites Steuersignal erzeugen, das bewirkt, dass die Eingabevorrichtung 1140 (z. B. eine Bluetooth-Tastatur) vom Kanal 3 (Host 510) auf den Kanal 1 (Host 520) umschaltet, wie gezeigt. Folglich werden zwei Eingabevorrichtungen gleichzeitig oder im Wesentlichen gleichzeitig (z. B. innerhalb 10 ms zueinander) in Reaktion auf ein Kantenauslöseereignis umgeschaltet. In einigen Ausführungsformen können mehr Eingabe- oder Ausgabevorrichtungen hinzugefügt werden und jede Vorrichtung muss sich nicht auf demselben Kanal befinden.
  • Eingabevorrichtungen können jeweils separate Software-Einstellungen (z. B. über die Software 501, 502) in Bezug auf das Umschalten zwischen Host-Computern aufweisen. Eine Computermaus kann beispielsweise Aspekte einer Verzögerungskompensation (siehe 910) beinhalten, während eine Tastatur dies nicht kann. In einigen Fällen können Bluetooth-Lautsprecher mit einem ersten Host (Host 510) gepaart werden und können dort in Reaktion auf ein Kantenauslöseereignis bleiben. In diesem Zusammenhang würde ein Fachmann auf dem Gebiet viele Variationen, Modifikationen und Alternativen erkennen.
  • 12 zeigt ein vereinfachtes Verfahren 1200 zum automatischen Bewirken, dass mehrere Eingabevorrichtungen zwischen Host-Computern in Reaktion auf die Detektion eines Kantenauslöseereignisses umschalten, gemäß bestimmten Ausführungsformen. In Schritt 1210 kann das Verfahren 1200 das Empfangen eines Eingangssignals durch einen ersten Host-Computer (z. B. Host 510) von einer Eingabevorrichtung (z. B. Eingabevorrichtung 530), die mit dem ersten Host-Computer kommunikativ gepaart ist, umfassen, wobei das Eingangssignal einer Bewegung eines Cursors (z. B. Cursor 540) auf einer Anzeige (z. B. Anzeige 515) des ersten Host-Computers entspricht.
  • In Schritt 1220 kann das Verfahren 1200 das Detektieren durch den ersten Host-Computer umfassen, wenn sich der Cursor zu einer Kante der Anzeige des ersten Host-Computers bewegt und wenn das Eingangssignal einer fortgesetzten Bewegung des Cursors über die Kante der Anzeige des ersten Host-Computers hinaus entspricht. In Reaktion auf die Detektion, dass sich der Cursor zur Kante der Anzeige des ersten Host-Computers bewegt hat und dass das Eingangssignal einer fortgesetzten Bewegung des Cursors über die Kante der Anzeige des ersten Host-Computers hinaus entspricht (d. h. "Ja"-Bedingung in Schritt 1220), kann das Verfahren 1200 (in Schritt 1230) das Senden eines ersten Steuersignals durch den ersten Host-Computer zur Eingabevorrichtung umfassen, um die kommunikative Paarung der Eingabevorrichtung vom ersten Host-Computer zu einem zweiten Host-Computer umzuschalten. Ansonsten kehrt das Verfahren 1200 zu Schritt 1210 zurück (d. h. "Nein"-Bedingung in Schritt 1220). In bestimmten Ausführungsformen kann das Detektieren, wenn sich der Cursor zu einer Kante der Anzeige des ersten Host-Computers bewegt, das Detektieren, wenn der Cursor mit einem oder mehreren einer Vielzahl von Pixeln, die die Kante der Anzeige definieren, überlappt, umfassen.
  • In Schritt 1240 kann das Verfahren 1200 das Senden eines zweiten Steuersignals durch den ersten Host-Computer zu einer zweiten Eingabevorrichtung (z. B. Tastatur 1140) zur zweiten Eingabevorrichtung, die mit dem ersten Host-Computer kommunikativ gepaart ist, umfassen, um die kommunikative Paarung der zweiten Eingabevorrichtung vom ersten Host-Computer auf den zweiten Host-Computer umzuschalten. In einigen Ausführungsformen können das erste und Steuersignale in irgendeiner Reihenfolge oder gleichzeitig gesendet werden. Die Eingabevorrichtung kann eine Computermaus sein. Die zweite Eingabevorrichtung kann eine Tastatur, einen Lautsprecher, ein Mikrophon oder dergleichen umfassen. Der erste Host-Computer kann mit dem zweiten Host-Computer über ein lokales Netzwerk (LAN), ein Netzwerk auf Cloud-Basis oder irgendein geeignetes verbundenes Netzwerk kommunikativ gekoppelt sein, das eine Kommunikation zwischen dem ersten und dem zweiten Host-Computer ermöglicht.
  • Alternativ oder zusätzlich kann das Verfahren 1200 das Senden eines dritten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer umfassen, das bewirkt, dass ein Prozessor im zweiten Host-Computer einen zweiten Cursor auf einer Anzeige des zweiten Host-Computers zu einem Ort bewegt, um eine kontinuierliche Bewegung des Cursors von der Kante der Anzeige des ersten Host-Computers zu einer entsprechenden Kante der Anzeige des zweiten Host-Computers zu simulieren. Einige Ausführungsformen können das Senden von Cursororts- und -projektildaten durch einen ersten Host-Computer (z. B. Host 910) zu einem zweiten Host-Computer (z. B. Host 920) umfassen, die einer Bewegung des Cursors (940) am ersten Host-Computer entsprechen, um die Cursor-"Fluss"-Bewegung zwischen Host-Computern besser zu simulieren, wie vorstehend zumindest in Bezug auf 9 erörtert. Der erste und der zweite Host-Computer (einschließlich zusätzlicher Host-Computer) können über eine geteilte Netzwerkverbindung (z. B. TCP/IP) mit irgendeiner geeigneten Frequenz (z. B. periodische oder kontinuierlichen Cursor-Aktualisierungen) kommunizieren. Die erste Eingabevorrichtung kann eine Computermaus sein. Die zweite Eingabevorrichtung kann eine von einer Tastatur, einem Lautsprecher, einem Mikrophon oder dergleichen sein. Die erste und die zweite Eingabevorrichtung können mit dem ersten Host-Computer oder dem zweiten Host-Computer über ein drahtloses Kommunikationsprotorkoll, einschließlich eines von Bluetooth, Bluetooth LE, Infrarot (IR), ZigBee, Ultrabreitband oder HF, kommunikativ gepaart sein.
  • Es sollte erkannt werden, dass die in 12 dargestellten spezifischen Schritte ein spezielles Verfahren 1200 für eine Verzögerungskompensation auf Cursorbahnbasis in einem flussfähigen System gemäß bestimmten Ausführungsformen bereitstellen. Andere Sequenzen von Schritten können auch gemäß alternativen Ausführungsformen durchgeführt werden. Alternative Ausführungsformen können beispielsweise die vorstehend umrissenen Schritte in einer anderen Reihenfolge durchführen. Das heißt, bestimmte Ausführungsformen können eine Kantendetektionsbenachrichtigung zu anderen Host-Computern senden, bevor ein Steuersignal gesendet wird, um automatisch Kanäle an einer entsprechenden Eingabevorrichtung umzuschalten. In anderen Ausführungsformen können beide Verfahrensschritte 1230 und 1240 im Wesentlichen gleichzeitig (z. B. innerhalb 5 ms zueinander) stattfinden. Überdies können die in 12 dargestellten individuellen Schritte mehrere Unterschritte umfassen, die in verschiedenen Sequenzen durchgeführt werden können, wie für den individuellen Schritt geeignet. Ferner können zusätzliche Schritte in Abhängigkeit von den speziellen Anwendungen hinzugefügt oder entfernt werden. Einige Ausführungsformen können beispielsweise nur erfordern, dass sich der Cursor zur Kante der Anzeige des ersten Host-Computers bewegt hat (d. h. und nicht erfordern, dass das Eingangssignal einer fortgesetzten Bewegung des Cursors über die Kante der Anzeige hinaus entspricht), um zu bewirken, dass der erste Host-Computer das erste, das zweite und das dritte Steuersignal sendet. Ein Fachmann auf dem Gebiet würde viele Variationen, Modifikationen und Alternativen des Verfahrens 1200 erkennen und einschätzen.
  • Teilen von Daten einer virtuellen Zwischenablage zwischen Host-Computern
  • Zusätzlich zum Umschalten der Cursorsteuerung an einem ersten Host-Computer auf einen zweiten Host-Computer kann das automatische Mehr-Host-Umschalten eine zusätzliche Funktionalität bereitstellen, einschließlich der Übertragung von Benutzerdaten. In einigen Ausführungsformen kann ein Benutzer Daten einer virtuellen Zwischenablage (VC) auf einer virtuellen Zwischenablage eines ersten Host-Computers bewegen und kann sie auf einer zweiten Host-Vorrichtung zur Verfügung stellen (z. B. zum Einfügen). Irgendein Typ von VC-Daten kann übertragen werden, einschließlich alphanumerischen Texts, Symbolen, Dokumenten, Medien (z. B. Audio, Video), Dateien (z. B. .doc, .xls, .exe, .rar, .gif, usw.) und dergleichen. Eine kantenausgelöste Übertragung von Daten zwischen zwei Host-Computern kann aus einer Benutzerperspektive nahtlos und unmittelbar erscheinen, was folglich eine noch größere Flexibilität und zusätzliche Funktionalität über das Umschalten von Eingabevorrichtungen zwischen Host-Computern hinaus schafft.
  • 13 zeigt ein vereinfachtes Blockdiagramm eines flussfähigen Systems 1300 zum Übertragen von Daten zwischen Host-Computern in Reaktion auf ein Kantenauslöseereignis gemäß bestimmten Ausführungsformen. Um die Analyse zu vereinfachen, umfasst 13 einige ähnliche Systemelemente wie das System 500 von 5 und zusätzliche Elemente mit einer virtuellen Zwischenablage 1360, die dem Host 510 zugeordnet ist, und einer virtuellen Zwischenablage 1370, die dem Host 520 zugeordnet ist. Ferner werden bestimmte Kantenauslöseschritte nicht im Einzelnen erörtert (z. B. Eingabevorrichtungs-Kanalumschalten), um den Schwerpunkt auf Aspekten von Daten- und Dateiübertragung zwischen Systemen zu halten, die auf irgendeine der Ausführungsformen angewendet werden kann, die in diesem ganzen Dokument explizit und implizit unterstützt werden.
  • In Reaktion darauf, dass sich der Cursor 540 zur Kante 518 der Anzeige 515 bewegt, kann die Software 501 des Hosts 510 ein Kantenauslöseereignis einleiten. Zusätzlich zum Bewirken eines automatischen Host-Umschaltens an einer gepaarten Eingabevorrichtung (z. B. Eingabevorrichtung 530 – siehe 5) kann die Software 501 des Hosts 501 eine Nachricht zur Software 502 des Hosts 520 senden, die angibt, dass die virtuelle Zwischenablage 1360 Daten umfasst, die zum Kopieren verfügbar sind. Die Nachricht kann von irgendeinem geeigneten Typ oder Format sein (z. B. ein Flag), das einen Hinweis oder eine Angabe für die Eingabevorrichtung bereitstellen kann, die der Host-Computer empfängt (nach einem Kantenauslöseereignis), dass die virtuelle Zwischenablage 1360 gespeicherte Daten aufweist. Typischerweise kann eine virtuelle Zwischenablage ein Format eines Typs von Inhalt in der Zwischenablage definieren. In der Fluss-Software (z. B. SW 102) werden beispielsweise das Kopieren und Einfügen von Daten der virtuellen Zwischenablage unterstützt. Einige unterstützte Formate einer virtuellen Zwischenablage umfassen, sind jedoch nicht begrenzt auf Textdateien (z. B. Klartext, rtf usw.), Bilddateien (z. B. x-win-dibv5, png, tiff, bmp, jpeg, gif usw.), Videodateien (z. B. mpeg, mov, usw.), Audiodateien (z. B. .wav, mp3, usw.), ausführbare Dateien, Dokumentdateien (.doc, .xls, .ppt usw.) und dergleichen.
  • Der Host 520 kann den Hinweis empfangen, dass VC-Daten in der virtuellen Zwischenablage 1360 verfügbar sind. Ein Benutzer kann dann zu irgendeiner Zeit danach auf diese VC-Daten zugreifen, während er am Host 520 arbeitet. Wenn ein Benutzer entscheidet, auf die VC-Daten zuzugreifen oder diese einzufügen, kann der Host 520 (über die Software 502) die VC-Daten von der virtuellen Zwischenablage 1360 auf dem Host 510 anfordern. In Reaktion überträgt der Host 510 die VC-Daten von der virtuellen Zwischenablage 1360 zur virtuellen Zwischenablage 1370 auf dem Host 520 und der Benutzer kann die Einfügeoperation vollenden. Aus einer Benutzerperspektive ist der Prozess sehr schnell (z. B. typischerweise unter 500 ms) und stellt das bereit, was als einfache Kopier/Einfüge-Operation erscheint, aber über zwei separate Host-Computer. Die Übertragung von Hinweisdaten oder VC-Daten kann über die Netzwerkverbindung (z. B. TCP/IP-Verbindung) durchgeführt werden, wie vorstehend in Bezug auf 2 weiter erörtert.
  • In einigen Ausführungsformen kann die Übertragung der VC-Daten zwischen Hosts die VC-Daten nicht aus der ursprünglichen virtuellen Zwischenablage entfernen. In einem Netzwerk von vier Host-Computern kann beispielsweise ein erster Host-Computer mit VC-Daten die VC-Daten zu einem oder mehreren der anderen drei Host-Computer übertragen, ohne sie notwendigerweise aus seiner virtuellen Zwischenablage zu löschen, was ein übliches Ergebnis in herkömmlichen Kopier/Einfüge-Operationen an einem einzelnen Betriebssystem (z. B. MS Windows) sein kann.
  • 13 zeigt, wie einige Ausführungsformen zuerst einen Hinweis zu dem (den) anderen Host-Computer(n) liefern, der angibt, dass VC-Daten verfügbar sind, bevor die Daten tatsächlich gesendet werden. Dies kann bevorzugt sein, da einige virtuelle Zwischenablagen sehr große Mengen an Daten aufweisen können und der Benutzer nicht ansonsten verfügbare Bandbreite im lokalen Netzwerk nutzen wollen kann. Dies könnte ausgeprägter sein, wenn größere Zahlen von flussfähigen Host-Computern vernetzt sind, die sich die Inhalte ihrer jeweiligen virtuellen Zwischenablagen teilen können.
  • In einigen Ausführungsformen können sich Host-Computer VC-Daten zwischen einigen oder allen Maschinen in einem Netzwerk teilen, ohne zuerst eine Anforderung von einem Host-Computer zu benötigen. In einigen Fällen können VC-Daten in irgendeinem geeigneten Intervall (z. B. periodisch, kontinuierlich) und nicht notwendigerweise in Reaktion auf ein Kantenauslöseereignis geteilt werden ähnlich zur Übertragung von Cursorortsdaten und -projektildaten zwischen Host-Vorrichtungen, wie vorstehend in Bezug auf 910 erörtert.
  • 14 zeigt ein vereinfachtes Verfahren 1400 zum Übertragen von Daten zwischen Host-Computern in einem flussfähigen System in Reaktion auf ein Kantenauslöseereignis gemäß bestimmten Ausführungsformen. In Schritt 1410 kann das Verfahren 1400 das Empfangen eines Eingangssignals durch einen ersten Host-Computer (z. B. Host 510) von einer Eingabevorrichtung (z. B. Eingabevorrichtung 530), die mit dem ersten Host-Computer kommunikativ gepaart ist, umfassen, wobei das Eingangssignal einer Bewegung eines Cursors (z. B. Cursor 540) auf einer Anzeige (z. B. Anzeige 515) des ersten Host-Computers entspricht. Der erste Host-Computer kann mit einem zweiten Host-Computer in einem Netzwerk (z. B. LAN, WAN, Netzwerk auf Cloud-Basis oder irgendeine kommunikativ verbundene Anordnung zwischen Host-Computern) kommunikativ gekoppelt sein (z. B. über ein TCP/IP-Protokoll).
  • In Schritt 1420 kann das Verfahren 1400 das Bestimmen durch den ersten Host-Computer, dass Daten in einer virtuellen Zwischenablage gespeichert sind, umfassen. Alternativ oder zusätzlich kann das Verfahren 1400 das Speichern von Daten in einer virtuellen Zwischenablage (z. B. virtuellen Zwischenablage 1260) eines ersten Host-Computers (z. B. Host-Computers 510) umfassen. Die Daten (d. h. VC-Daten) können von irgendeinem Typ sein, einschließlich alphanumerischen Texts, Symbolen, Dokumenten (z. B. xls., .word, .ppt, usw.), Medien (z. B. Audio, Video), Dateien (z. B. .doc, .xls, .exe, .rar, .gif usw.) oder dergleichen. In einigen Ausführungsformen kann eine Bildschirmaufnahme auf einer Anzeige eines ersten Host-Computers zu einem entfernten zweiten Host-Computer in Reaktion auf ein Flussereignis am ersten Host-Computer (z. B. Kantenauslöseereignis) gesendet werden. In einigen Ausführungsformen kann ein Flussereignis durch einen Benutzer programmiert werden, um mehrere Aufgaben (z. B. Host-Umschalten, Übertragung einer virtuellen Zwischenablage, usw.) durchzuführen. Die VC-Daten können auf dem ersten Host-Computer, an der Eingabevorrichtung (z. B. in einer Computermaus gespeichert und für irgendeinen Host-Computer zugreifbar (abrufbar)) oder an irgendeinem für den Host-Computer zugänglichen Ort (z. B. in der Cloud) gespeichert werden, wie für einen Fachmann auf dem Gebiet verständlich wäre.
  • In Schritt 1430 kann das Verfahren 1400 das Detektieren eines Kantenauslöseereignisses umfassen, wie vorstehend zumindest in Bezug auf 5 gezeigt und beschrieben. In einigen Ausführungsformen kann ein Kantenauslöseereignis das Detektieren durch den ersten Host-Computer, wenn sich der Cursor zu einer Kante der Anzeige des ersten Host-Computers bewegt und/oder wenn das Eingangssignal einer fortgesetzten Bewegung des Cursors über die Kante der Anzeige des ersten Host-Computers hinaus entspricht, umfassen.
  • In Schritt 1440 kann in Reaktion auf die Detektion, dass sich der Cursor zur Kante der Anzeige des ersten Host-Computers bewegt hat und dass das Eingangssignal einer fortgesetzten Bewegung des Cursors über die Kante der Anzeige des ersten Host-Computers hinaus entspricht, das Verfahren 1400 das Senden eines Hinweises (z. B. Steuersignal, Flag, Nachricht, Alarm usw.) zu einem zweiten Host-Computer (z. B. Host-Computer 520) umfassen, der angibt, dass VC-Daten verfügbar sind (z. B. in einer virtuellen Zwischenablage des ersten Host-Computers, der Eingabevorrichtung usw. gespeichert).
  • In Schritt 1450 kann das Verfahren 1400 das Empfangen einer Anforderung für die VC-Daten durch den zweiten Host-Computer umfassen. In Schritt 1460 kann das Verfahren 1400 das Senden der VC-Daten durch den ersten Host-Computer zum zweiten Host-Computer über die geteilte Netzwerkverbindung (z. B. TCP/IP-Netzwerk) umfassen. In einigen Ausführungsformen kann der erste Host-Computer die VC-Daten speichern und senden. Alternativ oder zusätzlich können die VC-Daten an der Eingabevorrichtung oder an einem anderen externen Ort (z. B. einem dritten Host-Computer, der für den ersten Host-Computer zugänglich ist) gespeichert werden und der erste Host-Computer kann die VC-Daten zuerst abrufen und sie dann zum zweiten Host-Computer senden. In einigen Fällen kann der erste Host-Computer eine Übertragung der VC-Daten zum zweiten Host-Computer koordinieren, ohne sie zuerst zu empfangen. Ein Fachmann auf dem Gebiet würde die vielen Variationen, Modifikationen und alternativen Ausführungsformen davon verstehen.
  • In einigen Ausführungsformen können die Hinweisdaten (z. B. Flag, Nachricht usw.) zusätzliche Informationen umfassen, die die VC-Daten beschreiben. Die Hinweisdaten können beispielsweise angeben, wie viele Dateien sich in der virtuellen Zwischenablage befinden, welche Typen von Dateien (z. B. .doc, .xls, .mp3, .wav, .mov, usw.), Dateigröße, Dateidatum (Zeit/Datum, wenn gespeichert) oder andere Metadaten, wie von einem Fachmann auf dem Gebiet erkannt werden würde.
  • Es sollte erkannt werden, dass die in 14 dargestellten speziellen Schritte zum Übertragen von Daten zwischen Host-Computern in einem flussfähigen System in Reaktion auf ein Kantenauslöseereignis gemäß bestimmten Ausführungsformen. Andere Sequenzen von Schritten können auch gemäß alternativen Ausführungsformen durchgeführt werden. Alternative Ausführungsformen können beispielsweise die vorstehend umrissenen Schritte in einer anderen Reihenfolge durchführen. Überdies können die in 14 dargestellten individuellen Schritte mehrere Unterschritte umfassen, die in verschiedenen Sequenzen durchgeführt werden können, wie für den individuellen Schritt geeignet. Ferner können zusätzliche Schritte in Abhängigkeit von den speziellen Anwendungen hinzugefügt oder entfernt werden. Einige Ausführungsformen können beispielsweise VC-Daten zwischen Hosts übertragen, ohne zuerst eine Hinweisnachricht zu senden. Ein Fachmann auf dem Gebiet würde viele Variationen, Modifikationen und Alternativen des Verfahrens 1400 erkennen und einschätzen.
  • Starten und Synchronisieren von Software-Anwendungen zwischen Host-Computern
  • In einigen Ausführungsformen kann ein kantenausgelöstes Flussereignis an einem ersten Host-Computer verwendet werden, um zu bewirken, dass andere Host-Computer eine Anwendung starten und Aspekte der gestarteten Anwendung mit dem ersten Host-Computer synchronisieren. In einigen Aspekten können das Starten und Synchronisieren in Erwartung eines kantenausgelösten Flussereignisses durchgeführt werden (siehe z. B. 9 für die Erwartung eines kantenausgelösten Flussereignisses). In Reaktion auf die Bestimmung, dass ein Cursor auf einer Anzeige eines ersten Host-Computers sich einer flussfähigen Kante nähert, während eine aktive Software-Anwendung oder ein aktives Software-Programm (z. B. das in einem Fenster arbeitet) gezogen wird, kann beispielsweise der erste Host-Computer ein Steuersignal senden, um zu bewirken, dass (ein) Prozessor(en) auf dem zweiten Host-Computer dieselbe Software-Anwendung oder dasselbe Software-Programm einleitet (einleiten), das auf dem ersten Host-Computer arbeitet, in Erwartung eines Kantenauslöseereignisses. Das Einleiten des Software-Programms kann beispielsweise das Abarbeiten des Software-Programms im Hintergrund, das Beginnen von Authentifizierungsprozeduren für die Software-Anwendung oder das Starten der Software-Anwendung und Spiegeln einer Eingabe von der Software-Anwendung, die auf dem ersten Host-Computer läuft, umfassen. In einigen Ausführungsformen kann, wenn ein Benutzer beispielsweise ein Webseitenfenster in einem Internet-Browser (z. B. Google Chrome®) auf einer Anzeige eines ersten Host-Computers offen hat und beginnt, das Webseitenfenster in Richtung oder an einer flussfähigen Kante zu ziehen, ein anderer Internet-Browser auf dem zweiten Host-Computer zum gleichen Webseitenfenster starten, das auf dem ersten Host-Computer angezeigt wird.
  • In bestimmten Ausführungsformen kann ein kantenausgelöstes Ereignis auftreten, wenn ein Benutzer ein Anwendungsfenster mit einem Cursor auswählt und das Fenster zu einer flussfähigen Kante am ersten Host-Computer zieht. Das Kantenauslöseereignis kann in Reaktion darauf auftreten, dass das Anwendungsfenster mit einer Reihe oder Spalte von Pixeln überlappt, die eine flussfähige Kante an der Anzeige des ersten Host-Computers definieren. In einigen Ausführungsformen kann ein kantenausgelöstes Ereignis in Reaktion darauf auftreten, dass sich das Anwendungsfenster über die flussfähige Kante hinaus bewegt, so dass ein Abschnitt des Fensters am ersten Host-Computer nicht sichtbar ist. Einige zusätzliche nicht begrenzende Ausführungsformen umfassen das Auslösen eines kantenausgelösten Ereignisses in Reaktion darauf, dass sich das Anwendungsfenster über die flussfähige Kante hinaus bewegt und der Cursor überlappt (mit oder ohne fortgesetzte Bewegung über die flussfähige Kante hinaus), das Anwendungsfenster sich über die flussfähige Kante um ein bestimmtes Schwellenausmaß hinaus bewegt (z. B. 50 % Überlappung oder irgendein geeigneter Schwellenwert) oder irgendeine Kombination davon, wie von einem Fachmann auf dem Gebiet eingeschätzt werden würde.
  • In bestimmten Ausführungsformen kann das Übertragen von Daten zwischen Host-Computern in einem flussfähigen System in Reaktion auf ein Kantenauslöseereignis das Übertragen von Software-Anwendungsdaten umfassen. Wenn beispielsweise ein Benutzer eine Software-Anwendung laufen hat, die sowohl auf dem ersten Host-Computer als auch dem zweiten Host-Computer installiert ist, kann, wenn das Fenster, das die Software-Anwendung enthält, zur Kante der Anzeige des ersten Host-Computers gezogen wird, die Software-Anwendung auf dem zweiten Host-Computer gestartet werden, wodurch dieselbe Software-Anwendung gleichzeitig auf dem ersten Host-Computer und dem zweiten Host-Computer läuft. Mit Fortführung des Beispiels können, wenn ein Benutzer mit der Software-Anwendung auf dem ersten Host-Computer zusammenwirkt, Daten von der Software-Anwendung auf der Basis der Zusammenwirkungen des Benutzers am ersten Host-Computer zur Software-Anwendung auf dem zweiten Host-Computer gesendet werden, wodurch Handlungen, die von einem Benutzer am ersten Host-Computer durchgeführt werden, auf einem zweiten Host-Computer gespiegelt werden. Benutzerzusammenwirkungsdaten können alphanumerische Tastatureingaben, Computermauseingaben, die sich auf die Software-Anwendung auswirken, die auf dem ersten Host-Computer arbeitet, oder dergleichen umfassen. In einigen Ausführungsformen kann, wenn zwei Software-Anwendungsfenster auf zwei Host-Computern laufen (z. B. ein Software-Anwendungsfenster auf der Anzeige des ersten Host-Computers und ein Software-Anwendungsfenster auf der Anzeige des zweiten Host-Computers), eine visuelle Angabe zu einem oder beiden der Software-Anwendungsfenster hinzugefügt werden, um zu identifizieren, welches Software-Anwendungsfenster gegenwärtig aktiv ist. Ein aktives Software-Anwendungsfenster kann beispielsweise die Farbe ändern, leuchten, hervorgehoben oder markiert werden, einem Audio- oder graphischen Hinweis zugeordnet werden, oder dergleichen, um den Benutzer zu benachrichtigen, welches Software-Anwendungsfenster gegenwärtig aktiv ist.
  • 21A zeigt ein vereinfachtes Blockdiagramm 2150, das synchronisierte Anwendungen zeigt, die auf separaten Host-Computern 910, 920 arbeiten, gemäß bestimmten Ausführungsformen. Der Host-Computer 910 startet einen Web-Browser ("Web-Browser 1") auf der Anzeige 915 und bewegt den Web-Browser 1 zu einer flussfähigen Kante, was bewirkt, dass der Host 920 den Web-Browser ("Web-Browser 2") auf der Anzeige 925 startet, wie vorstehend erörtert. In einigen Ausführungsformen können die Webseite und/oder der Inhalt im Web-Browser 1 auf dem Web-Browser 2 gespiegelt werden (zusätzlich zum Aufnehmen von Projektildaten, wie vorstehend mit Bezug auf 9 erörtert). Beispielsweise kann der Web-Browser 1 Datenfelder umfassen, damit ein Benutzer Informationen einfüllt (z. B. Name, Alter, Kontonummer usw.). In einigen Ausführungsformen kann der Web-Browser 2 zur gleichen Webseite öffnen und kann dieselben entsprechenden Datenfelder belegen, wenn der Host-Computer 910 kontinuierlich oder periodisch die eingegebenen Daten zum Host-Computer 920 sendet, was dem Benutzer den Eindruck vermitteln kann, dass die Eingabe von Daten an einer Eingabevorrichtung (z. B. Eingabevorrichtung 1140) tatsächlich mit beiden Host-Computern 910, 920 gepaart ist, wenn sie tatsächlich mit einem Host gepaart ist und die eingegebenen Daten von der Eingabevorrichtung 1140 (oder einer anderen Eingabequelle) über ein kantenausgelöstes Ereignis in einem flussfähigen System übertragen werden. In einigen Implementierungen kann eine gewisse Verzögerung zwischen Daten, die am Web-Browser 1 eingegeben werden und am Web-Browser 2 angezeigt werden, aufgrund zumindest teilweise der vorstehend mit Bezug auf 9 erörterten Verzögerungen bestehen. Dies ist in 21A dargestellt, die Daten zeigt, die am Host-Computer 910 eingegeben werden ("1..2..3..") und zum Host-Computer 920 mit einer geringfügigen Verzögerung ("..1..2..3") übertragen werden, wie durch die Ellipsen dargestellt.
  • In einigen Ausführungsformen kann ein einzelnes Software-Anwendungsfenster auf den Anzeigen sowohl des ersten Host-Computers als auch des zweiten Host-Computers gleichzeitig angezeigt werden, so dass das Anwendungsfenster sich über die Anzeigen beider Host-Computer zu erstrecken scheint, selbst wenn jede Software-Anwendung durch jeden entsprechenden Host-Computer unabhängig betrieben wird, wie in 21B gezeigt (nachstehend weiter erörtert). In dieser Ausführungsform kann die Übertragung von Software-Anwendungsdaten von einem ersten Host-Computer zu einem zweiten Host-Computer mit dem Anteil des Software-Anwendungsfensters, der auf beiden Anzeigen des ersten Host-Computers und des zweiten Host-Computers angezeigt wird, in Beziehung stehen. Wenn beispielsweise 25 % eines Software-Anwendungsfensters auf der Anzeige des ersten Host-Computers angezeigt werden und 75 % eines Software-Anwendungsfensters (d. h. durch den zweiten Host-Computer betrieben) auf der Anzeige des zweiten Host-Computers angezeigt werden, kann der Anteil des Software-Anwendungsfensters, der auf der Anzeige des zweiten Host-Computers angezeigt wird, als aktiv betrachtet werden und die durch einen Benutzer im Software-Anwendungsfenster durchgeführten Handlungen können in das Software-Anwendungsfenster auf der Anzeige des ersten Host-Computers gespiegelt werden. Wenn das Fenster dann bewegt wird, so dass 70 % des Software-Anwendungsfensters auf der Anzeige des ersten Host-Computers angezeigt werden und 30 % des Software-Anwendungsfensters auf dem zweiten Host-Computer angezeigt werden, dann können die Handlungen, die durch den Benutzer in der Anwendung durchgeführt werden, die auf dem ersten Host-Computer läuft, in das Software-Anwendungsfenster auf der Anzeige des zweiten Host-Computers gespiegelt werden (z. B. durch den zweiten Host-Computer eingegeben werden).
  • 21B zeigt ein vereinfachtes Blockdiagramm 2150, das synchronisierte Anwendungen zeigt, die auf separaten Host-Computern 910, 920 arbeiten, gemäß bestimmten Ausführungsformen. Der Host-Computer 910 startet einen Web-Browser ("Web-Browser 1") auf der Anzeige 915 und bewegt den Web-Browser 1 zu einer flussfähigen Kante, was bewirkt, dass der Host 920 den Web-Browser auf der Anzeige 925 startet. In diesem Beispiel bewirkt ein kantenausgelöstes Ereignis auf dem Host-Computer 910, dass der Host-Computer 920 einen Web-Browser mit demselben Web-Inhalt öffnet, der Web-Browser 1 scheint sich jedoch über sowohl den Host-Computer 910 als auch den Host-Computer 920 zu erstrecken, obwohl sie zwei separate Instanzen des Web-Browsers sind. Das heißt, der Web-Browser 2 erscheint als Web-Browser 1. Projektildaten können verwendet werden, um beide Host-Computer 910, 920 zu synchronisieren, um die Position der separaten Web-Browser zu steuern, um den "Spreiz"-Effekt zu implementieren. In einigen Fällen kann nur ein Teil einer Webseite (z. B. linke Seite der Webseite) auf dem Host-Computer 910 sichtbar erscheinen und ein anderer Teil (z. B. rechte Seite der Webseite) kann auf dem Host-Computer 920 sichtbar erscheinen, wie in 21B gezeigt, obwohl sie zwei unabhängige Instanzen des Web-Browsers sind. Die vielen Verwendungen, Modifikationen, Implementierungen und Variationen, die möglich sind, wären für einen Fachmann auf dem Gebiet mit dem Nutzen dieser Offenbarung verständlich.
  • In bestimmten Ausführungsformen kann ein Fenster graphisch betont oder abgeschwächt werden, um einen Benutzer mit einem visuellen Hinweis zu versehen, der angibt, welches Fenster gegenwärtig das "aktive" Fenster ist. Wenn beispielsweise ein erster Cursor (oder Cursor plus Anwendungsfenster) auf einer Anzeige eines ersten Host-Computers kantenauslöst und zu einer Anzeige eines zweiten Host-Computers "fließt", kann der Cursor (und/oder das Anwendungsfenster) an der ersten Host-Vorrichtung abgeschwächt werden, um zu zeigen, dass die Cursorbewegung (und/oder Anwendungsfenster-Zusammenwirkungen) nicht mehr auf dem ersten Host-Computer gesteuert werden. Der Cursor und/oder das Anwendungsfenster können durch Ändern ihrer Farbe (z. B. getrübt), Ändern ihrer Helligkeit, Schärfe, ihres Kontrast, Verblassen des Cursors und/oder Anwendungsfensters oder irgendeine andere geeignete Änderung abgeschwächt werden, um eine nicht aktive Verwendung anzugeben. Mit Fortführung des Beispiels werden der Cursor und/oder das Anwendungsfenster auf dem zweiten Host-Computer "aktiv" und können in irgendeiner geeigneten Weise betont werden, einschließlich, jedoch nicht begrenzt auf Ändern der Farbe, Ändern der Helligkeit, Bewirken, dass der Cursor und/oder das Anwendungsfenster kontinuierlich, periodisch oder eine endliche Anzahl von Malen blinken, oder irgendein anderer geeigneter Indikator, wie von einem Fachmann auf dem Gebiet eingeschätzt werden würde. Der erste Host-Computer kann ein Steuersignal zum zweiten Host-Computer senden, um den zweiten Host-Computer anzuweisen, den Cursor und/oder das Anwendungsfenster zu betonen. Alternativ oder zusätzlich kann der zweite Host-Computer die Betonung von selbst in Reaktion auf das Empfangen einer "Fluss"-Handlung einleiten, wie vorstehend beschrieben. Mit Bezug auf 21B scheint das meiste des "gespreizten" Web-Browsers auf dem Host-Computer 920 gezeigt zu werden, der durch die Farbe der Programmleiste 2162 graphisch als "aktiver" Host-Computer angegeben ist. Der Web-Browser am Host-Computer 910 ist durch die "getrübte" Programmeiste 2160 graphisch als "inaktiver" Host angegeben. Ein Fachmann auf dem Gebiet würde die vielen Variationen, Modifikationen und alternativen Ausführungsformen davon verstehen.
  • In weiteren Ausführungsformen können ein Cursor und/oder Anwendungsfenster durch vollständiges Entfernen derselben vom nicht aktiven Host-Computer abgeschwächt werden. Dies kann in einer Anzahl von verschiedenen Weisen durchgeführt werden. Der erste Host-Computer (nicht aktiv) kann beispielsweise ein Bildschirmabbild seiner Anzeige ohne den Cursor und/oder das Anwendungsfenster aufnehmen und es auf seine Anzeige überlagern, wodurch erscheinen lassen wird, dass der Cursor und/oder das Anwendungsfenster verschwunden sind, obwohl sie immer noch in einer darunter liegenden Schicht existieren. In einigen Ausführungsformen können Softwaresteuerungen implementiert werden, die tatsächlich den Cursor und/oder das Anwendungsfenster in einem nicht aktiven Zustand entfernen oder ihre Farbeigenschaften ändern, um zu veranlassen, dass sie für einen Benutzer während eines nicht aktiven Zustandes unsichtbar erscheinen. Fachleute auf dem Gebiet würden die vielen Variationen, Modifikationen und Alternativen, die gelten können, verstehen.
  • In einigen Ausführungsformen kann ein kantenausgelöstes Ereignis bewirken, dass ein Internet-Browser, der auf einem ersten Host-Computer läuft, auf einem zweiten Host-Computer startet, kann jedoch die Paarung der Eingabevorrichtung vom ersten Host-Computer nicht zum zweiten Host-Computer ändern. Ein Benutzer kann beispielsweise eine Eingabevorrichtung verwenden, um einen Cursor zu steuern, um ein Internet-Browser-Fenster auszuwählen, das auf dem ersten Host-Computer läuft, und das Fenster über eine flussfähige Kante hinaus zu ziehen, wobei er achtgibt, um nicht zu ermöglichen, dass der Cursor die flussfähige Kante erreicht. In einigen Fällen kann dies dennoch verursachen, dass ein Internet-Browser-Fenster im zweiten Host-Computer startet, kann jedoch die Eingabevorrichtung dem ersten Host-Computer zugeordnet halten. In einigen Aspekten können zwei oder mehr Eingabevorrichtungen dazu ausgelegt sein, auf der Basis von verschiedenen Kriterien zwischen Vorrichtungen zu "fließen". Eine erste Eingabevorrichtung (z. B. Computermaus) kann beispielsweise von einem ersten Host-Computer zu einem zweiten Host-Computer fließen, wenn der Cursor die flussfähige Kante erreicht und/oder Eingangsdaten empfangen werden, um den Cursor über die flussfähige Kante hinaus zu bewegen, während eine zweite Eingabevorrichtung (z. B. Tastatur oder Lautsprechersatz) fließen kann, wenn ein Anwendungsfenster über die flussfähige Kante hinaus bewegt wird. Im vorliegenden Beispiel bleibt eine Tastatur (z. B. zweite Eingabevorrichtung) dem ersten Host-Computer zugeordnet. In einigen Fällen können Cursorbahndaten (siehe z. B. 9) verwendet werden, um das zweite Browser-Fenster an einem Ort auf der Anzeige des zweiten Host-Computers zu öffnen, um zu veranlassen, dass das erste und das zweite Browser-Fenster als gleiches Fenster erscheinen, das sich über die erste und die zweite Anzeige erstreckt, und Daten können zwischen Host-Computern geteilt werden (z. B. über eine TCP/IP-Netzwerkverbindung). Wenn beispielsweise ein Benutzer beginnt, einen Uniform Resource Locator (URL) in das gespreizte Browser-Fenster auf dem ersten Host-Computer zu tippen, aber der URL zu lang ist, um ihn auf dem abgeschnittenen Browser-Fenster zu sehen, kann der URL-Eintrag mit dem zweiten Host-Computer geteilt werden (d. h. Anordnen im gleichen Dateneingabefeld), um ihn als gleichen URL-Eintrag erscheinen zu lassen, obwohl separate URL-Einträge gleichzeitig in beide URL-Felder in den separaten Internet-Browsern eingegeben werden.
  • 15 zeigt ein vereinfachtes Verfahren 1500 zum Starten und Synchronisieren einer Software-Anwendung zwischen Host-Computern gemäß bestimmten Ausführungsformen. In Schritt 1510 kann das Verfahren 1500 das Empfangen eines Eingangssignals durch einen ersten Host-Computer von einer Eingabevorrichtung umfassen, die mit dem ersten Host-Computer kommunikativ gepaart ist, wobei das Eingangssignal einer Bewegung eines Cursors auf einer Anzeige des ersten Host-Computers entspricht, wobei der erste Host-Computer mit einem zweiten Host-Computer kommunikativ gekoppelt ist.
  • In Schritt 1520 kann das Verfahren 1500 das Detektieren durch den ersten Host-Computer umfassen, wenn der Cursor ein Anwendungsfenster auswählt und zu einer Kante der Anzeige des ersten Host-Computers bewegt und/oder wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht. Das Anwendungsfenster kann eine entsprechende Software-Anwendung (z. B. Internet-Browser, Textverarbeitungsdokument, Tabellenkalkulationsdokument usw.) betreiben.
  • In Schritt 1530 kann das Verfahren 1500 umfassen, dass in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und/oder wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht, umfasst das Verfahren 1500 das Senden eines Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer ein zweites Anwendungsfenster startet, das eine zweite entsprechende Software-Anwendung auf einer zweiten Anzeige des zweiten Host-Computers betreibt. In einigen Fällen kann die zweite entsprechende Anwendung dieselbe wie die Software-Anwendung sein, die im ersten Anwendungsfenster läuft.
  • In Schritt 1540 kann das Verfahren 1500 das Detektieren von Eingangsdaten durch den ersten Host-Computer umfassen, die in das Anwendungsfenster auf der Anzeige des ersten Host-Computers eingegeben werden. In Schritt 1550 kann das Verfahren 1500 das Senden eines zweiten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer umfassen, das bewirkt, dass der Prozessor im zweiten Host-Computer die Eingangsdaten in das zweite Anwendungsfenster auf der zweiten Anzeige des zweiten Host-Computers eingibt.
  • Es sollte erkannt werden, dass die in 15 dargestellten speziellen Schritte zum Starten und Synchronisieren einer Software-Anwendung zwischen Host-Computern gemäß bestimmten Ausführungsformen gemäß bestimmten Ausführungsformen. Andere Sequenzen von Schritten können auch gemäß alternativen Ausführungsformen durchgeführt werden. Alternative Ausführungsformen können beispielsweise die vorstehend umrissenen Schritte in einer anderen Reihenfolge durchführen. Überdies können die in 15 dargestellten individuellen Schritte mehrere Unterschritte umfassen, die in verschiedenen Sequenzen durchgeführt werden können, wie für den individuellen Schritt geeignet. Ferner können zusätzliche Schritte in Abhängigkeit von den speziellen Anwendungen hinzugefügt oder entfernt werden. Ein Fachmann auf dem Gebiet würde viele Variationen, Modifikationen und Alternativen des Verfahrens 1500 erkennen und einschätzen.
  • Entdeckung von Host-Rechenvorrichtungen auf Cloud-Basis
  • Bestimmte flussfähige Systeme sind nicht auf lokale Netzwerke begrenzt und einige können über viele verschiedene Netzwerkdomänen (z. B. WAN, VPN, 3G, 4G, LTE, Enterprise usw.) existieren. Die Entdeckungsoperationen können zu den vorstehend mit Bezug auf 2 beschriebenen Netzwerken auf LAN-Basis ähnlich sein mit dem Zusatz eines Servers auf Cloud-Basis anstelle einer typischen UDP/TCP-Entdeckung und -Netzwerkverbindung.
  • 16 zeigt ein flussfähiges System 1600 auf Cloud-Basis für automatisches Mehr-Host-Umschalten gemäß bestimmten Ausführungsformen. Um die Analyse zu vereinfachen, umfasst 16 einige ähnliche Systemelemente wie das System 500 von 5 und zusätzliche Elemente, einschließlich eines Anwesenheitsservers 1610 auf Cloud-Basis. Die Host-Computer-Entdeckung kann mehrere Netzwerkdomänen abfragen, um z. B. ein Eingabevorrichtungsmodell und eine Seriennummer zu finden, um festzustellen, welche Hosts sich die Eingabevorrichtung teilen. Dies kann ermöglichen, dass Flussoperationen (z. B. automatisches Mehr-Host-Umschalten) ungeachtet des Netzwerks, mit dem ein Benutzer verbunden ist, stattfinden. Ein Hauptunterschied besteht darin, dass anstelle eines LAN ein Server auf Cloud-Basis verwendet wird, um Steuersignale, Daten usw. zwischen Host-Vorrichtungen zu übertragen.
  • Der erste Host-Computer 510 und der zweite Host-Computer 520 können beispielsweise das Vorrichtungsmodell und die Seriennummer der Eingabevorrichtung 530 registrieren 1620, 1625. Der Host-Computer 510 kann dann den Anwesenheitsserver 1610 abfragen, um festzustellen, ob andere Host-Computer online sind (z. B. der Host-Computer 520). Sobald sich jeder Host-Computer über die anderen Host-Computer in dem einen oder den mehreren Netzwerken und ihrer entsprechenden Einstellungen (z. B. Eingabevorrichtungs-Einstellungen, Netzwerkdetails (Netzwerkname, -typ usw.)) bewusst ist, kann dann das Kantenauslösen und Mehr-Host-Umschalten beginnen 1650, wie in 16 gezeigt und vorstehend weiter erörtert. Irgendeines der anderen Flussmerkmale, die vorstehend beschrieben sind (z. B. Teilung einer virtuellen Zwischenablage, Umschalten von mehreren Eingabevorrichtungen, Cursorbahnkompensation usw.), kann in Systemen auf Cloud-Basis implementiert werden, wobei der Hauptunterschied der Weg der Kommunikation zwischen Host-Maschinen ist.
  • 22 ist ein Sequenzdiagramm 2200, das einen automatischen Entdeckungsprozess von Hosts in einem Teilnetz gemäß bestimmten Ausführungsformen zeigt. Insbesondere umfasst der automatische Entdeckungsprozess das Bestimmen durch einen ersten Host, der mit einer Eingabevorrichtung gekoppelt ist, ob andere Hosts in einem Netzwerk auf Cloud-Basis auch mit der Eingabevorrichtung gekoppelt sind. Sobald die anderen Hosts entdeckt sind, kann eine direkte Kommunikationsverbindung zwischen den Hosts hergestellt werden und ein automatisches Mehr-Host-Umschalten kann beginnen. Das Sequenzdiagramm 2200 kann z. B. durch eine entsprechende Software 501, 502 für jeden Host-Computer 510, 520 durchgeführt werden. Ein Fachmann auf dem Gebiet würde die vielen Variationen, Modifikationen und alternativen Ausführungsformen davon verstehen.
  • 23 ist ein Sequenzdiagramm 2300, das einen Computer-Host-Umschalt- und Kopier/Einfüge-Prozess über ein Netzwerk auf Cloud-Basis gemäß bestimmten Ausführungsformen zeigt. Das Diagramm 2300 stellt dar, wie Host-Computer bei einem Anwesenheitsserver registriert werden, wie Host-Computer den Anwesenheitsserver abfragen, um zu bestimmen, welche anderen Host-Computer gegenwärtig online und für ein kantenausgelöstes Ereignis verfügbar sind und wie Host-Computer das flussfähige Ereignis (z. B. Eingabevorrichtungsumschalten, Kopier/Einfüge-Handlung mit VC-Daten, flussfähiges Computeranwendungsstarten, Mehr-Eingabevorrichtungs-Umschalten usw., wie vorstehend erörtert) implementieren. Ein Fachmann auf dem Gebiet würde die vielen Variationen, Modifikationen und alternativen Ausführungsformen davon verstehen.
  • Dynamische Überbrückung in flussfähigen Systemen
  • In einigen flussfähigen Systemen können sich drei oder mehr Host-Computer eine Eingabevorrichtung teilen. Wenn ein Host-Computer aus dem Netzwerk fällt, kann die Fluss-Software (z. B. SW 501, 502) dynamisch Flusseinstellungen zwischen Online-Host-Computern umkonfigurieren, um die Flussanordnung aufrechtzuerhalten.
  • 17A zeigt ein vereinfachtes Blockdiagramm eines flussfähigen Mehr-Host-Systems gemäß bestimmten Ausführungsformen. Um die Analyse zu vereinfachen, umfasst 17 einige ähnliche Systemelemente wie das System 500 von 5, aber sind nicht gezeigt. Insbesondere ist die zugrundeliegende Infrastruktur mit mehreren Host-Computern, Eingabevorrichtung(en) und Kanalselektoren, Fluss-Software und dergleichen nicht dargestellt, aber vorhanden, um den Betrieb der Anzeigen 1710, 1720, 1730 zu unterstützen.
  • In 17A umfasst die Anzeige 1710 des Host 1 einen flussfähigen Kantenauslöser entlang der Kante 1750. Die Anzeige 1720 des Host 2 umfasst flussfähige Auslöser entlang der Kante 1760 und 1770. Die Anzeige 1730 des Host 3 umfasst einen flussfähigen Auslöser entlang der Kante 1780. Wenn im Betrieb ein Cursor zur Kante 1750 der Anzeige 1710 bewegt wird, kann die Steuerung von einer oder mehreren Eingabevorrichtungen von der Anzeige 1710 auf die Anzeige 1720 umgeschaltet werden. Wenn ein Cursor zur Kante 1760 der Anzeige 1720 bewegt wird, kann ebenso die Steuerung von einer oder mehreren Eingabevorrichtungen von der Anzeige 1720 auf die Anzeige 1710 umgeschaltet werden. Wenn ein Cursor zur Kante 1770 der Anzeige 1720 bewegt wird, kann die Steuerung von einer oder mehreren Eingabevorrichtungen von der Anzeige 1720 auf die Anzeige 1730 umgeschaltet werden. Wenn ein Cursor zur Kante 1780 der Anzeige 1730 bewegt wird, kann ebenso die Steuerung von einer oder mehreren Eingabevorrichtungen von der Anzeige 1730 auf die Anzeige 1720 umgeschaltet werden.
  • Flussfähige Kanten können durch einen Benutzer in irgendeiner gewünschten Konfiguration programmiert werden. Manchmal kann jedoch ein Host-Computer aus dem Netzwerk entfernt werden, was verursachen kann, dass die gesamte Systemflusskonfiguration in einen unerwarteten (nicht programmierten) Zustand gesetzt wird. In bestimmten Ausführungsformen kann eine dynamische Überbrückung verwendet werden, um das flussfähige System automatisch zu konfigurieren, um sich an solche Änderungen im System anzupassen. In 17B wird, wenn der Host 2 beispielsweise aus dem Netzwerk fällt, die Kantendetektion des Host 1 umkonfiguriert, so dass eine Kantendetektion bewirken kann, dass eine entsprechende Eingabevorrichtung auf den Host 3 anstatt den Host 2 umschaltet. Wenn der Host 2 wieder online kommt, werden die Hosts 1 und 3 benachrichtigt (z. B. über ihre Netzwerkverbindung) und das flussfähige System konfiguriert sich automatisch, um den Host 2 wieder in die in 17A gezeigte Anordnung erneut einzuführen. Ein Fachmann auf dem Gebiet würde die vielen Variationen, Modifikationen und Umkonfigurationen erkennen, die bei der dynamischen Überbrückung in einem flussfähigen System möglich sind.
  • 18 zeigt ein vereinfachtes Verfahren 1800 zum dynamischen Überbrücken von Host-Computern in einem flussfähigen Netzwerk gemäß bestimmten Ausführungsformen. In Schritt 1810 kann das Verfahren 1800 das Senden einer Rundsendung durch einen ersten Host-Computer, der mit einer Eingabevorrichtung (z. B. Computermaus) kommunikativ gepaart ist, über ein Netzwerk (z. B. UDP über ein LAN), die eine Antwort von anderen Host-Computern im Netzwerk anfordert, die auch mit der Eingabevorrichtung kommunikativ gepaart sind, umfassen. Das Netzwerk kann beliebige miteinander verbundene Rechenvorrichtungen in einem gemeinsamen Netzwerk (z. B. LAN, WAN), verschiedenen Netzwerken oder irgendeiner Kombination davon umfassen.
  • In Schritt 1820 kann das Verfahren 1800 das Empfangen einer rundgesendeten Antwort durch den ersten Host-Computer von einem zweiten und einem dritten Host-Computer im Netzwerk umfassen, die angibt, dass sowohl der zweite als auch der dritte Host-Computer mit der Eingabevorrichtung kommunikativ gepaart sind.
  • In Schritt 1830 kann das Verfahren 1800 das Herstellen einer kommunikativen Verbindung (z. B. TCP/IP) mit dem zweiten und dem dritten Host-Computer durch den ersten Host-Computer über das Netzwerk und das automatische erneute Herstellen der Verbindung mit entweder dem zweiten oder dem dritten Host-Computer, wenn sie sich von dem Netzwerk trennen und damit erneut verbinden, umfassen. Das automatische Wiederherstellen der Verbindung kann eine periodische, aperiodische oder kontinuierliche Abfrage umfassen, um zu bestimmen, ob jeder Host-Computer mit dem Netzwerk verbunden oder davon getrennt ist und/oder für eine Neuverbindung verfügbar ist.
  • In Schritt 1840 kann in Reaktion auf die Detektion, dass ein Cursor, der durch die Eingabevorrichtung gesteuert wird, sich zu einer Kante (und/oder über diese hinaus) einer Anzeige des ersten Host-Computers bewegt hat, das Verfahren 1800 das Senden eines ersten Steuersignals durch den ersten Host-Computer zur Eingabevorrichtung umfassen, um die kommunikative Paarung der Eingabevorrichtung vom ersten Host-Computer auf den zweiten Host-Computer umzuschalten (mit "Ja" in 18 bezeichnet). Ansonsten stellt und stellt erneut das Verfahren 1800 weiterhin dynamisch Verbindungen mit entdeckten Host-Computern im Netzwerk her (zurück zu Schritt 1830).
  • In Schritt 1850 kann in Reaktion auf die Bestimmung, dass der zweite Host-Computer sich vom Netzwerk getrennt hat, und die Detektion, dass der Cursor am ersten Host-Computer sich zur Kante der Anzeige bewegt hat, das Verfahren 1800 das Senden eines dritten Steuersignals durch den ersten Host-Computer zur Eingabevorrichtung umfassen, um die kommunikative Paarung der Eingabevorrichtung vom ersten Host-Computer auf den dritten Host-Computer umzuschalten, wie graphisch in 17B dargestellt
  • Es sollte erkannt werden, dass die in 18 dargestellten speziellen Schritte zum dynamischen Überbrücken von Host-Computern in einem flussfähigen Netzwerk gemäß bestimmten Ausführungsformen. Andere Sequenzen von Schritten können gemäß alternativen Ausführungsformen auch durchgeführt werden. Alternative Ausführungsformen können beispielsweise die vorstehend umrissenen Schritte in einer anderen Reihenfolge durchführen. Die in 18 dargestellten individuellen Schritte können überdies mehrere Unterschritte umfassen, die in verschiedenen Sequenzen durchgeführt werden können, wie für den individuellen Schritt geeignet. Ferner können zusätzliche Schritte in Abhängigkeit von den speziellen Anwendungen hinzugefügt oder entfernt werden. Ein Fachmann auf dem Gebiet würde viele Variationen, Modifikationen und Alternativen des Verfahrens 1800 erkennen und einschätzen.
  • Cursor-Positionierung beim Fluss zwischen Hosts
  • In einigen flussfähigen Systemen können verschiedene Host-Computer Monitore mit verschiedenen Auflösungen und/oder Abmessungen verwenden. Bestimmte Ausführungsformen der Erfindung können berücksichtigen, wenn bestimmt wird, wo ein Cursor während eines Flussprozesses zwischen Host-Computeren angeordnet werden soll. In 19 werden beispielsweise die Monitorendpunkte A bis A' und B bis B' zwischen einem Monitor mit 720p (Host 1) und einem Monitor mit 4K (Host 2) durch eine entsprechende Fluss-Software (z. B. SW 501) abgebildet und ein skalierter Eintrittspunkt während einer Flussoperation wird berechnet. Ein Fachmann auf dem Gebiet würde die vielen Variationen, Modifikationen und Umkonfigurationen erkennen, die in flussfähigen Systemen mit mehreren Monitoren möglich sind.
  • Fortschrittliche Flussanwendungen
  • In bestimmten Ausführungsformen können flussfähige Systeme Gestenidentifikationssysteme und/oder Augen/Kopf-Verfolgungssysteme umfassen, um ein Kantenauslöseereignis einzuleiten. Wenn beispielsweise ein Benutzer eine Handbewegung durchführt, die sich von der physikalischen Stelle des ersten Host-Computers zum zweiten Host-Computer bewegt, kann die Gestenidentifikations-Software in Reaktion auf die Handbewegung ein kantenausgelöstes Ereignis einleiten. In einem anderen Beispiel kann in Reaktion darauf, dass ein Benutzer seinen Kopf dreht (z. B. unter Verwendung eines Kopfverfolgungssystems) oder seine Augen von einer Anzeige eines ersten Host-Computers zu einer Anzeige eines zweiten Host-Computers bewegt, die Kopf/Augen-Verfolgungs-Software ein kantenausgelöstes Ereignis einleiten.
  • In bestimmten Ausführungsformen können flussfähige Systeme Gestenidentifikationssysteme oder Augen/Kopf-Verfolgungssysteme umfassen, um ein Kantenauslöseereignis einzuleiten. Wenn beispielsweise ein Benutzer eine Handbewegung durchführt, die sich von der physikalischen Stelle des ersten Host-Computers zum zweiten Host-Computer bewegt, kann die Gestenidentifikations-Software in Reaktion auf die Detektion der Handbewegung ein kantenausgelöstes Ereignis einleiten. In einem anderen Beispiel kann in Reaktion auf die Detektion, dass ein Benutzer seinen Kopf dreht (z. B. unter Verwendung eines Kopfverfolgungssystems) oder seine Augen von einer Anzeige eines ersten Host-Computers zu einer Anzeige eines zweiten Host-Computers bewegt, die Augen/Kopf-Verfolgungs-Software ein kantenausgelöstes Ereignis einleiten.
  • In Kopf/Augen-Verfolgungs-Ausführungsformen kann eine Kamera durch entweder den ersten Host-Computer, den zweiten Host-Computer, einen dritten Host-Computer oder eine Kombination davon verwendet werden, um einem Blick eines Benutzers zu folgen und ein kantenausgelöstes Ereignis einzuleiten. Die Kamera kann irgendeine geeignete Kamera umfassen, die mit einem Host-Computer verbindbar sein kann. In bestimmten Ausführungsformen kann eine Kamera irgendeine Vorrichtung mit einer eingebauten Kamera (z. B. Mobiltelefon, Tablet, Laptop-Computer) oder eine externe Kamera (z. B. Webcam) umfassen, die mit einem Host-Computer durch die Übertragung eines drahtlosen Kommunikationssignals verbindbar ist, wie z. B. eines Funksignals, Infrarotsignals, Ultraschallsignals, Bluetooth (BT), Bluetooth LE, Infrastructure Wireless Fidelity (WiFi), Soft Access Point (AP), Wifi-Direct, und NFC-Kommunikationsverfahren. In einigen Ausführungsformen können die Kamera und der Host-Computer durch ein Netzwerk auf Cloud-Basis kommunizieren.
  • In Kopf/Augen-Verfolgungs-Ausführungsformen kann die Kopf/Augen-Verfolgungs-Software einen Augenkalibrierungsprozess durchführen, um Kantenauslöseschwellen für einen individuellen Benutzer individuell anzupassen. Der Augenkalibrierungsprozess kann das Definieren der Kanten der Bildschirme (z. B. für ein kantenausgelöstes Ereignis), die der Vielzahl von Host-Computern zugeordnet sind (z. B. erster, zweiter oder dritter Host-Computer), umfassen. Ein System kann beispielsweise einen ersten Host-Computer, einen zweiten Host-Computer und einen dritten Host-Computer umfassen, wobei der zweite Host-Computer und der dritte Host-Computer auf beiden Seiten des ersten Host-Computers angeordnet sind. Ein Benutzer kann auf mehrere verschiedene Augenkalibrierungsindikatoren blicken, die in verschiedenen Bereichen auf dem Bildschirm des ersten Host-Computers angezeigt werden, um die linke und die rechte Kante des Bildschirms des ersten Host-Computers zu definieren, um die Benutzeraugenverfolgung für die Detektion von Kantenauslöseereignissen zu kalibrieren. Wie vorstehend erörtert, können kantenausgelöste Ereignisse den anderen Host-Computern im Netzwerk zugeordnet sein (z. B. zweiter und dritter Host-Computer).
  • In weiteren Ausführungsformen kann der Augenkalibrierungsprozess das Bestimmen einer Reihe von Master-Slave- und Slave-Master-Beziehungen zwischen mehreren Host-Computern umfassen. Das Bestimmen der Reihe von Master-Slave- und Slave-Master-Beziehungen kann das Detektieren und Identifizieren einer Kamera umfassen. In Ausführungsformen kann ein Host-Computer, der mit einer Kamera verbunden ist, wie vorstehend beschrieben, als Master-Host-Computer bestimmt werden und die restlichen Host-Computer können als Slave-Host-Computer bestimmt werden. In anderen Ausführungsformen kann, wenn mehrere Host-Computer individuell mit mehreren Kameras verbunden sind, eine Kombination von Master-Slave-Beziehungen erzeugt werden.
  • Eine erste Master-Slave-Beziehung kann beispielsweise existieren, wenn der erste Host-Computer ein Master-Host-Computer ist, während der zweite und der dritte Host-Computer Slave-Host-Computer sind. Eine zweite Master-Slave-Beziehung kann existieren, wenn der zweite Host-Computer ein Master-Host-Computer ist, während der erste und der dritte Host-Computer Slave-Host-Computer sind, oder irgendeine Kombination davon. In Ausführungsformen, in denen mehrere Sätze von Master-Slave-Beziehungen erzeugt wurden, kann, wenn ein Master-Host-Computer offline geht, ein früherer Slave-Host-Computer zum Master-Host-Computer werden. Wenn beispielsweise ein erster Master-Host-Computer offline geht, kann der zweite Host-Computer automatisch davon, dass er ein Slave-Host-Computer ist, auf einen Master-Host-Computer umstellen.
  • In Kopf/Augen-Verfolgungsausführungsformen mit einer ersten Eingabevorrichtung und einer zweiten Eingabevorrichtung, die mit mindestens einem ersten Host-Computer und einem zweiten Host-Computer gepaart sind, kann in Reaktion auf die Detektion eines Kantenauslöseereignisses das Einleiten des vorstehend beschriebenen "Fluss"-Prozesses das Identifizieren einer Benutzerhandlung und das Verhindern, dass entweder die erste Eingabevorrichtung oder die zweite Eingabevorrichtung umschaltet, umfassen. Eine Benutzerhandlung kann umfassen, ist jedoch nicht begrenzt auf eine kontinuierliche Verwendung (z. B. minimale Zeit zwischen Eingaben, laufende Software-Anwendungen, Streamen von Musik, Videoaufruf) der ersten oder der zweiten Eingabevorrichtung. In einigen Ausführungsformen kann das Identifizieren einer Benutzerhandlung das Überwachen der Anzahl von Tastenanschlägen von einer Maus oder Tastatur, das Überwachen der Anzahl von aktiven Anwendungen und ihrer jeweiligen Prozesse und dergleichen umfassen. In weiteren Ausführungsformen kann das Bestimmen einer Benutzerhandlung auf Schwellenwerten basieren. Wenn beispielsweise die Eingabevorrichtung eine Tastatur ist, kann die Benutzerhandlung auf der Basis einer Schwellenmenge an Zeit zwischen dem, wenn ein Benutzer die Tasten der Tastatur drückt, bestimmt werden. In einem anderen Beispiel kann, wenn die Eingabevorrichtung ein Lautsprecher ist, eine Benutzerhandlung auf der Basis einer Schwellenmenge an Zeit, die eine Software-Anwendung gelaufen ist, oder einer Schwellenverarbeitungsleistung, die erforderlich ist, um die Software-Anwendung zu betreiben, bestimmt werden. In einigen Ausführungsformen kann eine Schwellenmenge an Zeit zwischen Tastendrücken auf einer Tastatur in der Größenordnung von Millisekunden, Sekunden oder Minuten liegen. Eine Schwellenmenge an Zeit zum Betreiben einer Software-Anwendung kann Sekunden, Minuten oder irgendein anderer geeigneter Zeitrahmen sein. Diese Schwellenwerte und andere (z. B. Menge an Verarbeitungsleistung, die erforderlich ist, um die Software-Anwendung zu betreiben) wären für einen Fachmann auf dem Gebiet verständlich, der die vielen Variationen, Modifikationen und alternativen Ausführungsformen davon einschätzen würde.
  • In einem flussfähigen Kopf/Augen-Verfolgungssystem mit einem ersten Host-Computer und einem zweiten Host-Computer kann ein Benutzer beispielsweise eine Maus (z. B. eine erste Eingabevorrichtung) und eine Tastatur (z. B. eine zweite Eingabevorrichtung) mit dem ersten Host-Computer gepaart haben. Wenn der Benutzer auf den Bildschirm des ersten Host-Computers blickt, in eine Anwendung, die auf dem ersten Host-Computer läuft, durch Tippen auf der Tastatur Daten eingibt und anschließend der Benutzer zum Bildschirm des zweiten Host-Computers hinüber blickt, während er weiterhin auf der Tastatur tippt, kann eine Kantenauslösedetektion auftreten und das flussfähige Kopf/Augen-Verfolgungssystem kann die Paarung der Maus vom ersten Host-Computer auf den zweiten Host-Computer umschalten, während die Paarung der Tastatur mit dem ersten Host-Computer aufrechterhalten wird.
  • Für ein anderes Beispiel in einem flussfähigen Kopf/Augen-Verfolgungssystem mit einem ersten Host-Computer und einem zweiten Host-Computer kann ein Benutzer eine Maus (z. B. eine erste Eingabevorrichtung) und einen Lautsprecher (z. B. eine zweite Eingabevorrichtung) mit dem ersten Host-Computer gepaart haben. Wenn der Benutzer auf den Bildschirm des ersten Host-Computers blickt, Musik durch den Lautsprecher am ersten Host-Computer streamt und anschließend der Benutzer auf den Bildschirm des zweiten Host-Computers hinüber blickt, während er weiterhin Musik streamt, kann ein Kantenauslöser auftreten und das flussfähige Kopf/Augen-Verfolgungssystem kann die Paarung der Maus vom ersten Host-Computer auf den zweiten Host-Computer umschalten, während die Paarung des Lautsprechers mit dem ersten Host-Computer aufrechterhalten wird.
  • In noch einem anderen Beispiel in einem flussfähigen Kopf/Augen-Verfolgungssystem mit einem ersten Host-Computer und einem zweiten Host-Computer kann ein Benutzer eine Maus (z. B. eine erste Eingabevorrichtung) und eine Webcam (z. B. eine zweite Eingabevorrichtung) mit dem ersten Host-Computer gepaart haben. Wenn der Benutzer auf den Bildschirm des ersten Host-Computers blickt, einen Videoanruf unter Verwendung der Webcam am ersten Host-Computer hat und anschließend der Benutzer auf den Bildschirm des zweiten Host-Computers hinüberblickt, während er den Videoanruf weiterführt, kann ein Kantenauslöser auftreten und das flussfähige Kopf/Augen-Verfolgungssystem kann die Paarung der Maus vom ersten Host-Computer auf den zweiten Host-Computer umschalten, während die Paarung der Webcam mit dem ersten Host-Computer aufrechterhalten wird.
  • In einigen Ausführungsformen kann, wenn ein Kantenauslöseereignis in Reaktion darauf detektiert wird, dass ein Benutzer seinen Blick vom Bildschirm eines ersten Host-Computers zum Bildschirm eines zweiten Host-Computers bewegt und der Cursor sich nicht vom Bildschirm des ersten Host-Computers zum Bildschirm des zweiten Host-Computers bewegt hat, das flussfähige System vorstehend beschriebene Cursor-Ortsdaten verwenden, um den Cursor in derselben Bahn und Richtung wie den Blick des Benutzers vom Bildschirm des ersten Host-Computers zum Bildschirm des zweiten Host-Computers zu bewegen.
  • Beispielhafte Computersysteme, die die Ausführungsformen hierin implementieren
  • 20 ist ein vereinfachtes Blockdiagramm eines Computersystems 2000 gemäß bestimmten Ausführungsformen. Das Computersystem 2000 kann verwendet werden, um beliebige der vorstehend mit Bezug auf 119 erörterten Host-Computer-Rechenvorrichtungen zu implementieren. Das Computersystem 2000 kann einen oder mehrere Prozessoren 2002 umfassen, die mit einer Anzahl von Peripheriegeräten (z. B. Eingabevorrichtungen) über ein Busuntersystem 2004 kommunizieren können. Diese Peripheriegeräte können ein Ablageuntersystem 2006 (mit einem Speicheruntersystem 2008 und einem Dateiablageuntersystem 2010), Benutzerschnittstellen-Eingabevorrichtungen 2014, Benutzerschnittstellen-Ausgabevorrichtungen 2016 und ein Netzwerk-Schnittstellenuntersystem 2012 umfassen.
  • In einigen Beispielen kann das interne Busuntersystem 2004 einen Mechanismus bereitstellen, um die verschiedenen Komponenten und Untersysteme des Computersystems 2000 miteinander wie beabsichtigt kommunizieren zu lassen. Obwohl das interne Busuntersystem 2004 schematisch als einzelner Bus gezeigt ist, können alternative Ausführungsformen des Busuntersystems mehrere Busse verwenden. Außerdem kann das Netzwerk-Schnittstellenuntersystem 2012 als Schnittstelle zur Übermittlung von Daten zwischen dem Computersystem 2000 und anderen Computersystemen oder Netzwerken dienen. Ausführungsformen des Netzwerk-Schnittstellenuntersystems 2012 können verdrahtete Schnittstellen (z. B. Ethernet, CAN, RS232, RS485 usw.) oder drahtlose Schnittstellen (z. B. ZigBee, Wi-Fi, zellular usw.) umfassen.
  • In einigen Fällen können die Benutzerschnittstellen-Eingabevorrichtungen 2014 eine Tastatur, Zeigevorrichtungen (z. B. Maus, Rollkugel, Berührungsfeld usw.), einen Strichcodescanner, einen Berührungsbildschirm, der in eine Anzeige integriert ist, Audio-Eingabevorrichtungen (z. B. Spracherkennungssysteme, Mikrophone usw.), Mensch-Maschine-Schnittstellen (HMI) und andere Typen von Eingabevorrichtungen umfassen. Im Allgemeinen soll die Verwendung des Begriffs "Eingabevorrichtung" alle möglichen Typen von Vorrichtungen und Mechanismen zum Eingeben von Informationen in ein Computersystem 2000 umfassen. Außerdem können Benutzerschnittstellen-Ausgabevorrichtungen 2016 ein Anzeigeuntersystem, einen Drucker oder nicht visuelle Anzeigen wie z. B. Audio-Ausgabevorrichtungen usw. umfassen. Das Anzeigeuntersystem kann irgendein bekannter Typ von Anzeigevorrichtung sein. Im Allgemeinen soll die Verwendung des Begriffs "Ausgabevorrichtung" alle möglichen Typen von Vorrichtungen und Mechanismen zum Ausgeben von Informationen aus dem Computersystem 2000 umfassen.
  • Das Ablageuntersystem 2006 kann ein Speicheruntersystem 2008 und ein Datei/Platten-Ablageuntersystem 2010 umfassen. Die Untersysteme 2008 und 2010 stellen nichtflüchtige computerlesbare Speichermedien dar, die einen Programmcode und/oder Daten speichern können, die die Funktionalität von Ausführungsformen der vorliegenden Offenbarung bereitstellen (z. B. Software 201204). In einigen Ausführungsformen kann das Speicheruntersystem 2008 eine Anzahl von Speichern umfassen, einschließlich eines Haupt-Direktzugriffsspeichers (RAM) 2018 für die Speicherung von Befehlen und Daten während der Programmausführung und eines Festwertspeichers (ROM) 2020, in dem feste Befehle gespeichert sein können. Das Dateiablageuntersystem 2010 kann einen dauerhaften (d. h. nichtflüchtigen) Speicher für Programm- und Datendateien bereitstellen und kann ein magnetisches oder Halbleiter-Festplattenlaufwerk, ein optisches Laufwerk zusammen mit zugehörigen entnehmbaren Medien (z. B. CD-ROM, DVD, Blu-Ray usw.), ein Laufwerk auf der Basis eines entnehmbaren Flash-Speichers oder eine Karte und/oder andere Typen von Speichermedien, die auf dem Fachgebiet bekannt sind, umfassen.
  • Es sollte erkannt werden, dass das Computersystem 2000 erläuternd ist und die Ausführungsformen der vorliegenden Offenbarung nicht begrenzen soll. Viele andere Konfigurationen mit mehr oder weniger Komponenten als das System 2000 sind möglich.
  • Die verschiedenen Ausführungsformen können ferner in einer breiten Vielfalt von Betriebsumgebungen implementiert werden, die in einigen Fällen einen oder mehrere Benutzercomputer, Rechenvorrichtungen oder Verarbeitungsvorrichtungen umfassen können, die verwendet werden können, um irgendeine von einer Anzahl von Anwendungen zu betreiben. Benutzer- oder Client-Vorrichtungen können irgendeinen von einer Anzahl von Universal-Personalcomputern wie z. B. Desktop- oder Laptop-Computer, die ein Standard-Betriebssystem betreiben, sowie zellulare, drahtlose und in der Hand gehaltene Vorrichtungen, die eine mobile Software betreiben und in der Lage sind, eine Anzahl von Vernetzungs- und Nachrichtenübermittlungsprotokollen zu unterstützen, umfassen. Ein solches System kann eine Anzahl von Arbeitsplatzrechnern umfassen, die irgendeines von einer Vielfalt von kommerziell erhältlichen Betriebssystemen und andere bekannte Anwendungen für Zwecke wie z. B. Entwicklung und Datenbankverwaltung betreiben, umfassen. Diese Vorrichtungen können auch andere elektronische Vorrichtungen umfassen, wie z. B. Pseudoendgeräte, Thin-Clients, Spielsysteme und andere Vorrichtungen, die zur Kommunikation über ein Netzwerk in der Lage sind.
  • Die meisten Ausführungsformen verwenden mindestens ein Netzwerk, das dem Fachmann auf dem Gebiet vertraut wäre, zum Unterstützen von Kommunikationen unter Verwendung von irgendeinem von einer Vielfalt von kommerziell erhältlichen Protokollen wie z. B. TCP/IP, UDP, OSI, FTP, UPnP, NFS, CIFS und dergleichen. Das Netzwerk kann beispielsweise ein lokales Netzwerk, ein weiträumiges Netzwerk, ein virtuelles privates Netzwerk, das Internet, ein Intranet, ein Extranet, ein öffentliches Telefonnetz, ein Infrarot-Netzwerk, ein drahtloses Netzwerk und irgendeine Kombination davon sein.
  • In Ausführungsformen unter Verwendung eines Netzwerkservers kann der Netzwerkserver irgendeine von einer Vielfalt von Server- oder Mittelstands-Anwendungen betreiben, einschließlich HTTP-Servern, FTP-Servern, CGI-Servern, Datenservern, Java-Servern und Geschäftsanwendungsservern. Der (die) Server kann (können) auch in der Lage sein, Programme oder Skripts in Reaktion auf Anforderungen von Benutzervorrichtungen auszuführen, wie z. B. durch Ausführen von einer oder mehreren Anwendungen, die als ein oder mehrere Skripts oder Programme implementiert werden können, die in irgendeiner Programmiersprache geschrieben sind, einschließlich, jedoch nicht begrenzt auf Java®, C, C# oder C++ oder irgendeine Skriptsprache wie z. B. Perl, Python oder TCL, sowie Kombinationen davon. Der (die) Server kann (können) auch Datenbankserver umfassen, einschließlich ohne Begrenzung jener, die von Oracle®, Microsoft®, Sybase® und IBM® kommerziell erhältlich sind.
  • Die Umgebung kann eine Vielfalt von Datenspeichern und anderen Speicher- und Ablagemedien umfassen, wie vorstehend erörtert. Diese können sich an einer Vielzahl von Stellen befinden, wie z. B. auf einem Speichermedium, das lokal ist für (und/oder sich befindet in) einen oder mehrere der Computer oder entfernt von irgendeinem oder aller der Computer über das Netzwerk. In einem speziellen Satz von Ausführungsformen können sich die Informationen in einem Speicherbereichsnetzwerk (SAN) befinden, das dem Fachmann auf dem Gebiet vertraut ist. Beliebige erforderliche Dateien zum Durchführen der Funktionen, die den Computern, Servern oder anderen Netzwerk-Vorrichtungen zugeschrieben sind, können ebenso lokal und/oder entfernt gespeichert sein, wie geeignet. Wenn ein System computergestützte Vorrichtungen umfasst, kann jede solche Vorrichtung Hardwareelemente umfassen, die über einen Bus elektrisch gekoppelt sein können, wobei die Elemente beispielsweise mindestens eine Zentraleinheit (CPU), mindestens eine Eingabevorrichtung (z. B. eine Maus, Tastatur, Steuereinheit, einen Berührungsbildschirm oder ein Tastenfeld) und mindestens eine Eingabevorrichtung (z. B. Anzeigevorrichtung, Drucker oder Lautsprecher) umfassen. Ein solches System kann auch eine oder mehrere Speichervorrichtungen wie z. B. Plattenlaufwerke, optische Speichervorrichtungen und Halbleiter-Speichervorrichtungen wie z. B. RAM oder ROM sowie entnehmbare Medienvorrichtungen, Speicherkarten, Flash-Karten usw. umfassen.
  • Solche Vorrichtungen können auch ein Lesegerät für computerlesbare Speichermedien, eine Kommunikationsvorrichtung (z. B. ein Modem, eine Netzwerkkarte (drahtlos oder verdrahtet), eine Infrarot-Kommunikationsvorrichtung usw.) und einen Arbeitsspeicher umfassen, wie vorstehend beschrieben. Das Lesegerät für computerlesbare Speichermedien kann mit einem nichtflüchtigen computerlesbaren Speichermedium verbunden werden oder dazu ausgelegt sein, dieses zu empfangen, das entfernte, lokale, feste und/oder entnehmbare Speichervorrichtungen sowie Speichermedien zum vorübergehenden und/oder dauerhafteren Enthalten, Speichern, Übertragen und Abrufen von computerlesbaren Informationen darstellt. Das System und verschiedene Vorrichtungen umfassen auch typischerweise eine Anzahl von Software-Anwendungen, Modulen, Diensten oder anderen Elementen, die innerhalb mindestens einer Arbeitsspeichervorrichtung angeordnet sind, einschließlich eines Betriebssystems und Anwendungsprogrammen, wie z. B. einer Client-Anwendung oder eines Browsers. Es sollte erkannt werden, dass alternative Ausführungsformen zahlreiche Abweichungen von der vorstehend beschriebenen aufweisen können. Eine individuell angepasste Hardware könnte beispielsweise auch verwendet werden und/oder spezielle Elemente könnten in Hardware, Software (einschließlich tragbarer Software wie z. B. Applets) oder beiden implementiert werden. Ferner kann eine Verbindung mit anderen Rechenvorrichtungen wie z. B. Netzwerk-Eingabe/Ausgabe-Vorrichtungen verwendet werden.
  • Nichtflüchtige Speichermedien und computerlesbare Speichermedien zum Enthalten eines Codes oder von Teilen eines Codes können beliebige geeignete Medien umfassen, die auf dem Fachgebiet bekannt sind oder verwendet werden, wie z. B., jedoch nicht begrenzt auf flüchtige und nichtflüchtige, entnehmbare und nicht entnehmbare Medien, die in irgendeinem Verfahren oder irgendeiner Technologie für die Speicherung von Informationen wie z. B. computerlesbaren Befehlen, Datenstrukturen, Programmmodulen oder anderen Daten implementiert werden, einschließlich RAM, ROM, elektrisch löschbarer programmierbarer Festwertspeicher (EEPROM), Flash-Speicher oder andere Speichertechnologie, CD-ROM, DVD oder anderer optischer Speicher, magnetische Kassetten, Magnetband, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder irgendein anderes Medium, das verwendet werden kann, um die gewünschten Informationen zu speichern, und auf das durch eine Systemvorrichtung zugegriffen werden kann. Auf der Basis der Offenbarung und Lehren, die hierin bereitgestellt sind, schätzt ein Fachmann auf dem Gebiet andere Weisen und/oder Verfahren ein, um die verschiedenen Ausführungsformen zu implementieren. Computerlesbare Speichermedien umfassen jedoch keine flüchtigen Medien wie z. B. Trägerwellen oder dergleichen.
  • Die Patentbeschreibung und die Zeichnungen sollen folglich in einer vielmehr erläuternden als einschränkenden Hinsicht betrachtet werden. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen daran durchgeführt werden können, ohne vom breiteren Gedanken und Schutzbereich der Offenbarung, wie in den Ansprüchen dargelegt, abzuweichen.
  • Andere Variationen liegen innerhalb des Gedankens der vorliegenden Offenbarung. Obwohl die offenbarten Techniken für verschiedene Modifikationen und alternative Konstruktionen empfänglich sind, sind folglich bestimmte erläuterte Ausführungsformen davon in den Zeichnungen gezeigt und wurden vorstehend im Einzelnen beschrieben. Es sollte jedoch selbstverständlich sein, dass keine Absicht besteht, die Offenbarung auf die offenbarte spezielle Form oder Formen zu begrenzen, sondern im Gegenteil die Absicht darin besteht, alle Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Gedanken und Schutzbereich der Offenbarung, wie in den beigefügten Ansprüchen definiert, fallen.
  • Die Verwendung der Begriffe "ein" und "eine" und "der" und ähnlicher Referenzen im Zusammenhang mit der Beschreibung der offenbarten Ausführungsformen (insbesondere im Zusammenhang mit den folgenden Ansprüchen) sollen als sowohl den Singular als auch den Plural abdeckend aufgefasst werden, wenn hierin nicht anders angegeben oder durch den Zusammenhang deutlich widersprochen. Die Begriffe "umfassend", "aufweisend", "einschließlich" und "enthaltend" sollen als offene Begriffe aufgefasst werden (d. h. die "einschließlich, jedoch nicht begrenzt auf" bedeuten), wenn nicht anders angegeben. Der Begriff "verbunden" soll als teilweise oder ganz enthalten innerhalb, befestigt an oder verbunden mit aufgefasst werden, selbst wenn etwas Zwischenliegendes vorhanden ist. Der Ausdruck "auf der Basis von" sollte als offen und nicht in irgendeiner Weise begrenzend verstanden werden und soll als "zumindest teilweise auf der Basis von" interpretiert oder anderweitig gelesen werden, wenn geeignet. Der Vortrag von Bereichen oder Werten hierin soll nur als Abkürzungsverfahren zur individuellen Bezugnahme auf jeden separaten Wert dienen, der in den Bereich fällt, wenn nicht hierin anders angegeben, und jeder separate Wert ist in der Patentbeschreibung enthalten, als ob er hier individuell aufgeführt wäre. Alle hierin beschriebenen Verfahren können in irgendeiner geeigneten Reihenfolge durchgeführt werden, wenn nicht hierin anders angegeben oder ansonsten deutlich durch den Zusammenhang widersprochen. Die Verwendung von beliebigen und allen Beispielen oder einer beispielhaften Sprache (z. B. "wie z. B."), die hier vorgesehen ist, soll Ausführungsformen der Offenbarung besser erläutern und erlegt dem Schutzbereich der Offenbarung keine Begrenzung auf, wenn nicht anders beansprucht. Keine Sprache in der Patentbeschreibung sollte als irgendein nicht beanspruchtes Element angebend aufgefasst werden, wie für die Ausführung der Offenbarung wesentlich.

Claims (20)

  1. Computerimplementiertes Verfahren, das umfasst: Empfangen eines Eingangssignals durch einen ersten Host-Computer von einer Eingabevorrichtung, die mit dem ersten Host-Computer kommunikativ gepaart ist, wobei das Eingangssignal einer Bewegung eines Cursors auf einer Anzeige des ersten Host-Computers entspricht, wobei der erste Host-Computer mit einem zweiten Host-Computer kommunikativ gekoppelt ist; Detektieren durch den ersten Host-Computer, wenn der Cursor ein Anwendungsfenster auswählt und zu einer Kante der Anzeige des ersten Host-Computers bewegt und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anzeigefensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht, wobei das Anwendungsfenster eine entsprechende Software-Anwendung betreibt; und in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer ein zweites Anwendungsfenster, das eine zweite entsprechende Software-Anwendung betreibt, auf einer zweiten Anzeige des zweiten Host-Computers startet.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei die zweite Software-Anwendung dieselbe wie die Software-Anwendung des ersten Host-Computers ist.
  3. Computerimplementiertes Verfahren nach Anspruch 1, das ferner umfasst: Detektieren von Eingangsdaten, die in das Anwendungsfenster auf der Anzeige des ersten Host-Computers eingegeben werden, durch den ersten Host-Computer; und Senden eines zweiten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass der Prozessor im zweiten Host-Computer die Eingangsdaten in das zweite Anwendungsfenster auf der zweiten Anzeige des zweiten Host-Computers eingibt.
  4. Computerimplementiertes Verfahren nach Anspruch 1, wobei ferner in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines dritten Steuersignals durch den ersten Host-Computer zur Eingabevorrichtung, um die kommunikative Paarung der Eingabevorrichtung vom ersten Host-Computer auf den zweiten Host-Computer umzuschalten.
  5. Computerimplementiertes Verfahren nach Anspruch 1, wobei ferner in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines vierten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer einen zweiten Cursor auf einer Anzeige des zweiten Host-Computers bewegt.
  6. Computerimplementiertes Verfahren nach Anspruch 1, wobei der erste Host-Computer mit einem zweiten Host-Computer über ein lokales Netzwerk (LAN) kommunikativ gekoppelt ist.
  7. Computerimplementiertes Verfahren nach Anspruch 1, wobei die Eingabevorrichtung mit dem ersten Host-Computer oder dem zweiten Host-Computer über ein drahtloses Kommunikationsprotokoll, einschließlich eines von Bluetooth, Bluetooth LE, Infrarot (IR), ZigBee, Ultrabreitband oder HF, kommunikativ gepaart ist.
  8. Computerimplementiertes Verfahren, das umfasst: Empfangen eines Eingangssignals durch einen ersten Host-Computer von einer Eingabevorrichtung, die mit dem ersten Host-Computer kommunikativ gepaart ist, wobei das Eingangssignal einer Bewegung eines Cursors auf einer Anzeige des ersten Host-Computers entspricht, wobei der erste Host-Computer mit einem zweiten Host-Computer kommunikativ gekoppelt ist; Detektieren durch den ersten Host-Computer, wenn der Cursor ein Anwendungsfenster auswählt und über eine Kante der Anzeige des ersten Host-Computers hinaus bewegt, wobei das Anwendungsfenster eine entsprechende Software-Anwendung betreibt; und in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster über die Kante der Anzeige des ersten Host-Computers hinaus bewegt hat: Senden eines Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer ein zweites Anwendungsfenster, das eine zweite entsprechende Software-Anwendung betreibt, auf einer zweiten Anzeige des zweiten Host-Computers startet.
  9. Computerimplementiertes Verfahren nach Anspruch 8, wobei das Bewegen des Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers um mehr als einen Schwellenprozentsatz einer Gesamtgröße des Anwendungsfensters hinaus bewirkt, dass der erste Host-Computer das Host-Steuersignal zum zweiten Host-Computer sendet.
  10. Computerimplementiertes Verfahren nach Anspruch 9, wobei der Schwellenprozentsatz mindestens 50 % ist.
  11. Computerimplementiertes Verfahren nach Anspruch 8, wobei ferner in Reaktion auf die Detektion, wenn der Cursor ein Anwendungsfenster auswählt und über die Kante der Anzeige des ersten Host-Computers hinaus bewegt, das Verfahren umfasst: Senden eines zweiten Steuersignals durch den ersten Host-Computer zur Eingabevorrichtung, um die kommunikative Paarung der Eingabevorrichtung vom ersten Host-Computer auf den zweiten Host-Computer umzuschalten.
  12. Computerimplementiertes Verfahren nach Anspruch 9, das ferner umfasst: graphisches Abschwächen des Anwendungsfensters auf der ersten Anzeige des ersten Host-Computers; und Senden eines dritten Steuersignals zum zweiten Host-Computer, das bewirkt, dass der Prozessor des zweiten Host-Computers das zweite Anwendungsfenster auf der zweiten Anzeige graphisch betont.
  13. Computerimplementiertes Verfahren nach Anspruch 12, wobei das graphische Betonen des zweiten Anwendungsfensters das Bewirken, dass das zweite Anwendungsfenster die Farbe ändert, die Helligkeit ändert und/oder blinkt, umfasst.
  14. Computerimplementiertes Verfahren nach Anspruch 12, wobei das graphische Abschwächen des Anwendungsfensters das Bewirken, dass das Anwendungsfenster die Farbe ändert, die Helligkeit ändert und/oder verblasst, umfasst.
  15. Computerimplementiertes Verfahren nach Anspruch 8, wobei die zweite Software-Anwendung dieselbe wie die Software-Anwendung des ersten Host-Computers ist.
  16. System, das umfasst: einen oder mehrere Prozessoren; und ein oder mehrere nichtflüchtige computerlesbare Speichermedien, die Befehle enthalten, die dazu ausgelegt sind zu bewirken, dass der eine oder die mehreren Prozessoren Operationen durchführen, einschließlich: Empfangen eines Eingangssignals durch einen ersten Host-Computer von einer Eingabevorrichtung, die mit dem ersten Host-Computer kommunikativ gepaart ist, wobei das Eingangssignal einer Bewegung eines Cursors auf einer Anzeige des ersten Host-Computers entspricht, wobei der erste Host-Computer mit einem zweiten Host-Computer kommunikativ gekoppelt ist; Detektieren durch den ersten Host-Computer, wenn der Cursor ein Anwendungsfenster auswählt und zu einer Kante der Anzeige des ersten Host-Computers bewegt, und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht, wobei das Anwendungsfenster eine entsprechende Software-Anwendung betreibt; und in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer ein zweites Anwendungsfenster, das eine zweite entsprechende Software-Anwendung betreibt, auf einer zweiten Anzeige des zweiten Host-Computers startet.
  17. System nach Anspruch 16, wobei die zweite Software-Anwendung dieselbe wie die Software-Anwendung des ersten Host-Computers ist.
  18. System nach Anspruch 16, wobei das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien ferner Befehle enthalten, um zu bewirken, dass der eine oder die mehreren Prozessoren Operationen durchführen, einschließlich: Detektieren von Eingangsdaten, die in das Anwendungsfenster auf der Anzeige des ersten Host-Computers eingegeben werden, durch den ersten Host-Computer; und Senden eines zweiten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass der Prozessor im zweiten Host-Computer die Eingangsdaten in das zweite Anwendungsfenster auf der zweiten Anzeige des zweiten Host-Computers eingibt.
  19. System nach Anspruch 16, wobei das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien ferner Befehle enthalten, um zu bewirken, dass der eine oder die mehreren Prozessoren Operationen durchführen, einschließlich: ferner in Reaktion auf die Detektion, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines dritten Steuersignals durch den ersten Host-Computer zur Eingabevorrichtung, um die kommunikative Paarung der Eingabevorrichtung vom ersten Host-Computer auf den zweiten Host-Computer umzuschalten.
  20. System nach Anspruch 16, wobei das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien ferner Befehle enthalten, um zu bewirken, dass der eine oder die mehreren Prozessoren Operationen durchführen, einschließlich: ferner in Reaktion auf das Detektieren, dass der Cursor das Anwendungsfenster zur Kante der Anzeige des ersten Host-Computers bewegt hat und wenn das Eingangssignal einer fortgesetzten Bewegung des ausgewählten Anwendungsfensters über die Kante der Anzeige des ersten Host-Computers hinaus entspricht: Senden eines vierten Steuersignals durch den ersten Host-Computer zum zweiten Host-Computer, das bewirkt, dass ein Prozessor im zweiten Host-Computer einen zweiten Cursor auf einer Anzeige des zweiten Host-Computers bewegt.
DE102017112041.6A 2016-06-03 2017-06-01 Automatisches anwendungsstarten in einem flussfähigen mehr-host-system Pending DE102017112041A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662345744P 2016-06-03 2016-06-03
US62/345,744 2016-06-03
US15/226,803 US20170351396A1 (en) 2016-06-03 2016-08-02 Automatic application launching in a multi-host flow-enabled system
US15/226,803 2016-08-02

Publications (1)

Publication Number Publication Date
DE102017112041A1 true DE102017112041A1 (de) 2017-12-07

Family

ID=60327784

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017112041.6A Pending DE102017112041A1 (de) 2016-06-03 2017-06-01 Automatisches anwendungsstarten in einem flussfähigen mehr-host-system

Country Status (3)

Country Link
US (1) US20170351396A1 (de)
CN (1) CN107463267A (de)
DE (1) DE102017112041A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277671B2 (en) 2016-06-03 2019-04-30 Logitech Europe S.A. Automatic multi-host discovery in a flow-enabled system
US20170351472A1 (en) * 2016-06-03 2017-12-07 Logitech Europe S.A. Automatic data transfer in a multi-host flow-enabled system
US20170351471A1 (en) * 2016-06-03 2017-12-07 Logitech Europe S.A. Automatic multi-host switching for an input device
CN107122148B (zh) * 2017-03-17 2020-05-12 广州视源电子科技股份有限公司 远程协作方法及系统
TWI681319B (zh) 2018-03-22 2020-01-01 大陸商東莞寶德電子有限公司 游標控制系統及其控制方法
TWI693824B (zh) * 2018-07-18 2020-05-11 緯創資通股份有限公司 操作方法以及相關操作系統
CN109782970B (zh) * 2018-12-25 2021-01-08 维沃移动通信有限公司 一种显示方法和终端
CN110515580B (zh) * 2019-09-02 2022-08-19 联想(北京)有限公司 一种显示控制方法、装置及终端
TWI757762B (zh) * 2020-06-04 2022-03-11 宏正自動科技股份有限公司 多視窗顯示的切換方法以及切換系統
CN114428572A (zh) * 2020-10-29 2022-05-03 京东方科技集团股份有限公司 分屏显示方法、装置、电子设备及计算机可读介质
US20220391158A1 (en) * 2021-06-04 2022-12-08 Apple Inc. Systems and Methods for Interacting with Multiple Display Devices
CN113515202B (zh) * 2021-07-27 2023-12-12 北京字节跳动网络技术有限公司 光标移动方法、装置和电子设备
CN115884140A (zh) * 2021-09-29 2023-03-31 华为技术有限公司 跨设备连接方法、电子设备及存储介质
CN115185390A (zh) * 2022-07-18 2022-10-14 深圳市般若造物科技有限公司 鼠标控制方法、鼠标及存储介质
US11893174B1 (en) * 2022-10-28 2024-02-06 Dell Products L.P. Information handling system mouse gesture to support transfer of visual images in a multi-display configuration

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4494002B2 (ja) * 2003-12-19 2010-06-30 富士通コンポーネント株式会社 切替器および切替器の切替方法
CN101078955A (zh) * 2006-05-26 2007-11-28 南京易思克网络安全技术有限责任公司 一种多个计算机屏幕鼠标切换的装置及方法
WO2011078879A1 (en) * 2009-12-02 2011-06-30 Packet Video Corporation System and method for transferring media content from a mobile device to a home network
US9367224B2 (en) * 2011-04-29 2016-06-14 Avaya Inc. Method and apparatus for allowing drag-and-drop operations across the shared borders of adjacent touch screen-equipped devices
KR20140125671A (ko) * 2013-04-19 2014-10-29 삼성전자주식회사 입력 제어 방법 및 이를 지원하는 전자 장치

Also Published As

Publication number Publication date
US20170351396A1 (en) 2017-12-07
CN107463267A (zh) 2017-12-12

Similar Documents

Publication Publication Date Title
DE102017112044A1 (de) Automatisches mehr-host-umschalten für eine eingabevorrichtung
DE102017112041A1 (de) Automatisches anwendungsstarten in einem flussfähigen mehr-host-system
DE102017112035A1 (de) Automatische Mehr-Host-Entdeckung in einem flussfähigen System
DE102017112027A1 (de) Automatische Datenübertragung in einem flussfähigen Mehr-Host-System
DE102017112043A1 (de) Automatisches mehr-host-umschalten für mehrere eingabevorrichtungen
DE112016003352T5 (de) Reibungslose Benutzeroberfläche für virtuelle Kollaboration, Kommunikation und Cloud-Computing
DE102014100872A1 (de) Touch-Eingabegerät mit haptischem Feedback
DE102015118413B4 (de) Multibetriebssystem-Eingabevorrichtung
DE112016006083T5 (de) Bereitstellung von Rechenressourcen für eine virtuelle Maschine, die ausgelegt ist eine Gruppe von Anwendungsprogrammen zu Hosten, die einem Benutzer zugeordnet sind
DE202017002875U1 (de) Benutzerschnittstelle für Kameraeffekte
US9762699B2 (en) Hierarchical display-server system and method
US20150200979A1 (en) Viewing different window content with different attendees in desktop sharing
DE202008018005U1 (de) Anwendungsmenü-Benutzerschnittstelle
DE202017105256U1 (de) Managementsystem für Audioinhalt und visuellen Inhalt
DE202011109296U1 (de) Vorrichtung zur Bereitstellung eines visuellen Übergangs zwischen Bildschirmen
DE112011103486T5 (de) Kontinuierliche Anwendungsausführung zwischen mehreren Vorrichtungen
DE102015107460A1 (de) Kopplung und Verbindung intelligenter Stifte
DE112013003676T5 (de) Zustandssynchronisierung von mobilen Geräten
US20180302352A1 (en) Instant messaging method and system, and electronic apparatus
DE112019007808T5 (de) Kamera-synchronisation und bild-markieren für eine gesichtsauthentifizierung
DE102014226625A1 (de) Verfahren zur Übertragung von Druckdaten, Server und mobiles Endgerät
DE102012112206A1 (de) Steuerungsverfahren und elektronsiche Vorrichtung
JP6458581B2 (ja) 情報処理システム、表示位置決定方法、端末装置、情報処理装置及びプログラム
DE102014100183A1 (de) Verfahren und Vorrichtung zum Verwenden eines separaten Rückwärtskanals für Benutzereingaben bei der Replizierung der Anzeige eines mobilen Geräts
DE112016002434T5 (de) Techniken für eine simulierte physikalische interaktion zwischen anwendern über ihre mobilen computervorrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed