WO2017091411A1 - Synchronizing a server-side keyboard layout with a client-side keyboard layout in a virtual session - Google Patents

Synchronizing a server-side keyboard layout with a client-side keyboard layout in a virtual session Download PDF

Info

Publication number
WO2017091411A1
WO2017091411A1 PCT/US2016/062262 US2016062262W WO2017091411A1 WO 2017091411 A1 WO2017091411 A1 WO 2017091411A1 US 2016062262 W US2016062262 W US 2016062262W WO 2017091411 A1 WO2017091411 A1 WO 2017091411A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
client
keyboard layout
keyboard
user
Prior art date
Application number
PCT/US2016/062262
Other languages
French (fr)
Inventor
Tianze JIANG
Yang Zhang
Kai Lu
Debao DING
Yiwan LU
Original Assignee
Citrix Systems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Citrix Systems, Inc. filed Critical Citrix Systems, Inc.
Priority to KR1020187017990A priority Critical patent/KR102136474B1/en
Priority to JP2018527721A priority patent/JP6615997B2/en
Publication of WO2017091411A1 publication Critical patent/WO2017091411A1/en

Links

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/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0238Programmable keyboards
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • 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/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0236Character input methods using selection techniques to select from displayed items
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Computer And Data Communications (AREA)

Abstract

A computer implemented technique processes user input. The computer implemented technique involves creating a virtual session between a client apparatus operated by a user and a server apparatus that delivers access to a server-based user environment. The technique further involves matching, upon creation of the virtual session, a server keyboard layout of the server apparatus to a client keyboard layout of the client apparatus. The technique further involves providing, after the server keyboard layout is matched to the client keyboard layout, keystroke input from the user to the server-based user environment in accordance with the server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session.

Description

TITLE OF APPLICATION
Synchronizing a Server-Side Keyboard Layout with a Client-Side Keyboard Layout in a Virtual Session
BACKGROUND
Desktop or application virtualization enables a user to connect a local client device to a remote server device over a network, and then access a virtual desktop or virtual application environment provided by the remote server device. Once the user has access to the virtual desktop or virtual application environment, the user is able to use the virtual desktop or virtual application environment to perform useful work (e.g., edit a document, play a slideshow, check email, etc.).
To provide text input to the virtual desktop or virtual application environment, the user types on the keyboard of the local client device, and the keystrokes made by the user are electronically converted to particular characters (e.g., letters, numbers, symbols, etc.). In some situations (e.g., in the context of a desktop computer), the local client device is equipped with a physical keyboard. In other situations (e.g., in the context of a tablet or a smart phone), the local client device is equipped with a touch screen which provides a displayed keyboard.
SUMMARY
Suppose that a touch screen of a local client device initially displays an English
(United States) touch keyboard which enables a user to enter text input to a virtual desktop or virtual application environment provided by a remote server device. Or suppose that the local client device is equipped with a physical keyboard. As the user types on the touch keyboard or physical keyboard of the local client device, the keystrokes made by the user are properly converted to particular English characters.
Further suppose that the local client device is configured to allow the user to switch among different keyboard layouts (e.g., from the English keyboard layout to a French keyboard layout, or to a German keyboard layout, etc.). If this keyboard switching feature is available to the user, the user may try to switch from the English keyboard layout to one of the different keyboard layouts due to personal preference. However, after making the keyboard switch on the local client device, the user may be confused as to which keyboard is currently valid for the virtual desktop or virtual application environment provided by the remote server device. Additionally, it is possible that, after making the keyboard switch on the local client device, the keystrokes entered by the user may be misinterpreted by the virtual desktop or virtual application environment provided by the remote server device.
An improved technique involves electronically synchronizing a server-side keyboard layout with a client-side keyboard layout during a virtual session. Such synchronization eliminates confusion to the user as to which keyboard layout is currently valid. Additionally, such synchronization ensures that the client-side text input is not misinterpreted by the server-side environment. Accordingly, the user experience is greatly improved.
One embodiment is directed to a computer-implemented method of processing user input. The computer-implemented method includes creating a virtual session between a client apparatus operated by a user and a server apparatus that delivers access to a server-based user environment. The method further includes matching, upon creation of the virtual session, a server keyboard layout of the server apparatus to a client keyboard layout of the client apparatus. The method further includes providing, after the server keyboard layout is matched to the client keyboard layout, keystroke input from the user to the server-based user environment in accordance with the server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session.
In some arrangements, matching the server keyboard layout to the client keyboard layout includes performing a keyboard binding operation to negotiate an initial server keyboard layout of the server apparatus with an initial client keyboard layout of the client apparatus. Such an arrangement is well suited for client apparatus that are equipped with touch keyboards that allow the user to switch client-side keyboard layouts. In some arrangements, performing the keyboard binding operation includes:
(i) conveying a keyboard bind request from the server apparatus to the client apparatus, the keyboard bind request identifying a set of compatible server keyboard layouts,
(ii) in response to the keyboard bind request, conveying a keyboard bind
response from the client apparatus to the server apparatus, the keyboard bind response identifying which layout of the set of compatible server keyboard layouts the client apparatus is currently configured to use, and
(iii) in response to the keyboard bind response, conveying a keyboard
bind-commit message from the server apparatus to the client apparatus.
The keyboard bind-commit message commits the client apparatus and the server apparatus to support keyboard layouts identified in the keyboard bind response.
In some arrangements, creating the virtual session between the client apparatus and the server apparatus includes establishing a virtual channel between the client apparatus and the server apparatus through a computer network. In these arrangements, the keyboard bind request, the keyboard bind response, and the keyboard bind-commit message are conveyed through the established virtual channel.
In some arrangements, the keyboard bind response further identifies a set of keyboard features that the client apparatus is constructed and arranged to support (e.g., keyboard types, keyboard layout sets, current platform, etc.).
In some arrangements, the method further includes matching, after the keystroke input from the user is provided to the server-based user environment for a period of time, the server keyboard layout of the server apparatus to another client keyboard layout of the client apparatus.
In some arrangements, matching the server keyboard layout of the server apparatus to the other client keyboard layout of the client apparatus includes receiving a keyboard layout change command from the user and, in response to the keyboard layout change command from the user, loading a new client keyboard layout and setting new the client keyboard layout as system default keyboard layout to synchronize the server keyboard layout of the server apparatus with the new client keyboard layout of the client apparatus which is different than the initial client keyboard layout of the client apparatus.
In some arrangements, the initial client keyboard layout includes a first key arrangement for a first language. Additionally, the new client keyboard layout includes a second key arrangement for a second language that is different than the first key arrangement for the first language. Furthermore, receiving the keyboard layout change command from the user includes obtaining, via a keyboard language indicator for a touch keyboard or operating system taskbar of the client apparatus operated by the user, a keyboard selection from the user. The keyboard selection identifies the second key arrangement for the second language in place of the first key arrangement for the first language.
In some arrangements, the method further includes, after the keyboard layout change operation is performed, providing further keystroke input from the user to the server-based user environment in accordance with the new server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session.
In some arrangements, the method further includes broadcasting a set of keyboard change messages to a set of server applications running in the server-based user environment to notify each server application to use the new server keyboard layout in place of the initial server keyboard layout.
Another embodiment is directed to a computer program product having a non-transitory computer readable medium which stores a set of instructions to process user input. The set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:
(A) creating a virtual session between a client apparatus operated by a user and a server apparatus that delivers access to a server-based user environment;
(B) upon creation of the virtual session, matching a server keyboard layout of the server apparatus to a client keyboard layout of the client apparatus; and
(C) after the server keyboard layout is matched to the client keyboard layout, providing keystroke input from the user to the server-based user environment in accordance with the server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session.
Yet another embodiment is directed to a client apparatus that includes a user interface, memory, and control circuitry coupled to the user interface and the memory.
The memory stores instructions which, when carried out by the control circuitry, cause the control circuitry to:
(A) create a virtual session between the client apparatus and a server apparatus that delivers access to a server-based user environment,
(B) upon creation of the virtual session, match a server keyboard layout of the server apparatus to a client keyboard layout of the client apparatus, and
(C) after the server keyboard layout is matched to the client keyboard layout, provide keystroke input from a user via the user interface to the server- based user environment in accordance with the server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user via the user interface during the virtual session.
Additionally, another embodiment is directed to a server apparatus that includes a network interface, memory, and control circuitry coupled to the network interface and the memory. The memory stores instructions which, when carried out by the control circuitry, cause the control circuitry to:
(A) create a virtual session between a client apparatus operated by a user and the server apparatus to deliver access to a server-based user environment,
(B) upon creation of the virtual session, match a server keyboard layout of the server apparatus to a client keyboard layout of the client apparatus, and
(C) after the server keyboard layout is matched to the client keyboard layout, provide keystroke input from the user to the server-based user environment in accordance with the server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session.
It should be understood that, in the cloud context, at least some of the
computerized circuitry is formed by remote computer resources distributed over a network. Such a computerized environment is capable of providing certain advantages such as distribution of hosted services and resources (e.g., software as a service, platform as a service, infrastructure as a service, etc.), enhanced scalability, etc.
Other embodiments are directed to electronic systems and apparatus, processing circuits, computer program products, and so on. Some embodiments are directed to various methods, electronic components and circuitry which are involved in
synchronizing a server-side keyboard layout with a client-side keyboard layout in a virtual session.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, features and advantages will be apparent from the following description of particular embodiments of the present disclosure, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of various embodiments of the present disclosure.
Fig. 1 is a block diagram of a computerized setting in which a server-side keyboard layout of a server apparatus is synchronized with a client-side keyboard layout of a client apparatus.
Fig. 2 is a block diagram of an example keyboard layout.
Fig. 3 is a sequence diagram of communications during a keyboard binding operation.
Fig. 4 is a block diagram illustrating particular details of a keyboard layout synchronization operation. Fig. 5 is a flowchart of a procedure that is performed by the computerized setting of Fig. 1.
DETAILED DESCRIPTION
An improved technique involves electronically synchronizing a server-side keyboard layout with a client-side keyboard layout during a virtual session. Such synchronization eliminates confusion to the user as to which keyboard layout is currently valid. Additionally, such synchronization ensures that the client-side text input is not misinterpreted by the server-side environment. Accordingly, the user experience is greatly improved.
The individual features of the particular embodiments, examples, and
implementations disclosed herein can be combined in any desired manner that makes technological sense. Moreover, such features are hereby combined in this manner to form all possible combinations, permutations and variants except to the extent that such combinations, permutations and/or variants have been explicitly excluded or are impractical. Support for such combinations, permutations and variants is considered to exist in this document.
Fig. 1 shows a computerized setting 20 which is suitable for electronically synchronizing a server-side keyboard layout with a client-side keyboard layout during a virtual session. The computerized setting 20 includes a client apparatus 22, a server apparatus 24, and a communications medium 26.
The client apparatus 22 is constructed and arranged to operate as a front-end to a virtual session in which a user accesses resources (e.g., applications, content, services, etc.) on the server apparatus 24 through the communications medium 26. Accordingly, the user is able to perform useful work. Suitable client apparatus include a user workstation, a desktop computer, a laptop computer, a tablet device, a smart phone, and the like.
The server apparatus 24 is constructed and arranged to provide access to server-side resources (e.g., applications, content, services, etc.) to one or more client apparatus 22. In some arrangements, the server apparatus 24 is a virtualization platform that hosts virtual machines. Suitable server apparatus 24 include a server computer, a server farm, a server facility or campus, distributed circuitry, and the like.
The communications medium 26 is constructed and arranged to connect the various components of the computerized setting 20 together to enable these components to exchange electronic signals 28 (e.g., see the double arrow 28). At least a portion of the communications medium 26 is illustrated as a cloud to indicate that the communications medium 26 is capable of having a variety of different topologies including backbone, hub-and-spoke, loop, irregular, combinations thereof, and so on. Along these lines, the communications medium 26 may include copper-based data communications devices and cabling, fiber optic devices and cabling, wireless devices, combinations thereof, etc. Furthermore, the communications medium 26 is capable of supporting LAN-based communications, cellular communications, plain old telephone service (POTS) communications, combinations thereof, and so on.
As shown in Fig. 1, the client apparatus 22 includes a communications interface 30, a user interface 32, memory 34, and processing circuitry 36. Such client-side components may be electronically connected together via buses, cables, connectors, circuit boards, and other hardware.
The communications interface 30 is constructed and arranged to connect the client apparatus 22 to the communications medium 26. Accordingly, the communications interface 30 enables the client apparatus 22 to communicate with the other components of the computerized setting 20. Such communications may be line-based and/or wireless (i.e., IP -based, cellular, combinations thereof, and so on).
The user interface 32 is constructed and arranged to receive input from a user and provide output to the user. In the context of a standalone computer, the user interface 32 may be formed by a standard keyboard, pointing device (e.g., mouse) and display. In the context of tablet or a smart phone, the user interface 32 may be formed by other components such as a touch screen, a miniature keyboard, a webcam, a microphone, a speaker, an accelerometer, and so on. The memory 34 is intended to represent both volatile storage (e.g., DRAM, SRAM, etc.) and non-volatile storage (e.g., flash memory, magnetic disk drives, etc.). The memory 34 stores a variety of software constructs 40 including an operating system 42, a set of virtual client applications and data 44 to establish and manage virtual sessions with the server apparatus 24, and other applications and data 46.
The processing circuitry 36 is constructed and arranged to operate in accordance with the various software constructs 40 stored in the memory 34. In particular, the processing circuitry 36, when executing the operating system 42, manages various resources of the client apparatus 22 (e.g., memory allocation, processor cycles, hardware compatibility, etc.).
Additionally, the processing circuitry 36 operating in accordance with the set of virtualization applications and data 44 forms specialized control circuitry to create and maintain a virtual session with the server apparatus 24 on behalf of the user of the client apparatus 22. During such operation and as will be explained in further detail below, the processing circuitry 36 synchronizes a server-side keyboard layout 52 with a client-side keyboard layout 50 to avoid confusion and misinterpretation and thus improve the user's experience. The communications for such synchronization may be performed through a virtual channel 54 (e.g., see double arrow 54 in Fig. 1) which is established between the client apparatus 22 and the server apparatus 24 through the communications medium 26.
Furthermore, the processing circuitry 36 operating in accordance with the other applications and data 46 forms other specialized circuitry to perform other operations. For example, the processing circuitry 36 may enable the user to perform other local user-level operations such as browse the web, watch videos, make cellular phone calls, take pictures, etc. Additionally, the processing circuitry 36 may enable the user to collaborate with one or more other users remotely via online meetings, sharing documents and other content, working in an online virtual team environment (i.e., an online workspace), and so on.
It should be understood that the above-mentioned processing circuitry 36 may be implemented in a variety of ways including via one or more processors (or cores) running specialized software, application specific ICs (ASICs), field programmable gate arrays (FPGAs) and associated programs, discrete components, analog circuits, other hardware circuitry, combinations thereof, and so on. In the context of one or more processors executing software, a computer program product 58 is capable of delivering all or portions of the software to the client apparatus 22. The computer program product 58 has a non-transitory and non-volatile computer readable medium that stores a set of instructions to control one or more operations of the client apparatus 22. Examples of suitable computer readable storage media include tangible articles of manufacture and apparatus that store instructions in a non-volatile manner such as CD-ROM, flash memory, disk memory, tape memory, and the like.
As further shown in Fig. 1, the server apparatus 24 includes a network interface 60, memory 64, and processing circuitry 66. Such server-side components may be electronically connected together via buses, cables, connectors, circuit boards, and other hardware.
The network interface 60 is constructed and arranged to connect the server apparatus 24 to the communications medium 26. Accordingly, the network interface 60 enables the server apparatus 24 to communicate with the other components of the computerized setting 20. Such communications may be line-based and/or wireless (i.e., IP-based, cellular, combinations thereof, and so on).
The memory 64 is intended to represent both volatile storage (e.g., DRAM,
SRAM, etc.) and non-volatile storage (e.g., flash memory, magnetic disk drives, etc.). The memory 64 stores a variety of software constructs 70 including an operating system 72, a set of virtualization applications and data 74 to establish and manage virtual sessions with client apparatus 22, and other applications and data 76.
The processing circuitry 66 is constructed and arranged to operate in accordance with the various software constructs 70 stored in the memory 64. In particular, the processing circuitry 66, when executing the operating system 72, manages various resources of the server apparatus 24 (e.g., memory allocation, processor cycles, hardware compatibility, etc.). Additionally, the processing circuitry 66 operating in accordance with the set of virtualization applications and data 74 forms specialized control circuitry to create and maintain virtual sessions with one or more client apparatus 22. During such operation and as will be explained in further detail below, the processing circuitry 66 synchronizes the server-side keyboard layout 52 with the client-side keyboard layout 50 through the virtual channel 54 to avoid confusion and misinterpretation and thus improve the user's experience.
Furthermore, the processing circuitry 66 operating in accordance with the other applications and data 76 forms other specialized circuitry to perform other operations. For example, the processing circuitry 66 may perform other server-level operations such as code for services and utilities (e.g., applications and services provided to the user during virtual session, security, etc.), code for administrative tools (e.g., user enrollment, user account management, etc.), code for other server-based operations, and so on.
It should be understood that the above-mentioned processing circuitry 66 may be implemented in a variety of ways including via one or more processors (or cores) running specialized software, application specific ICs (ASICs), field programmable gate arrays (FPGAs) and associated programs, discrete components, analog circuits, other hardware circuitry, combinations thereof, and so on. In the context of one or more processors executing software, a computer program product 78 is capable of delivering all or portions of the software to the server apparatus 24. The computer program product 78 has a non-transitory and non-volatile computer readable medium that stores a set of instructions to control one or more operations of the server apparatus 24. Examples of suitable computer readable storage media include tangible articles of manufacture and apparatus that store instructions in a non-volatile manner such as CD-ROM, flash memory, disk memory, tape memory, and the like. Further details will now be provided with reference to Fig. 2.
Fig. 2 shows an example keyboard layout 100 (i.e., a QWERTY keyboard layout) which is suitable for the client-side keyboard layout 50 and/or the server-side keyboard layout 52 (also see Fig. 1). It should be understood that other keyboard layouts are suitable for use as well, e.g., QWERTZ, AZERTY, Dvorak, Colemak, Workman, Norman, JCUKEN, Neo, Plover, BEPO, Turkish, Brahmic scripts, InScript, Khmer, Thai, Sinhalese, Tibetan, Dzongkha, Arabic, Armenian, Cyrillic, other foreign language character keyboard layouts, customized and/or personalized keyboard layouts, and so on.
On the client apparatus 22, the user is able to view the client-side keyboard layout 50 (e.g., displayed on a touch screen) as well as actuate keys of the client-side keyboard layout 50. On the server apparatus 24, the server-side keyboard layout 52 is internally managed.
As shown in Fig. 2, the keyboard layout 100 includes keyboard locations (or keys) 110(1), 110(2), 110(3), ... (collectively, keyboard locations 110) which map to respective characters 112(1), 112(2), 112(3), ... (collectively, characters 112). It should be understood that term character herein is used to mean a letter of an alphabet, a number, a symbol, other text-based metacharacters, functions, directions, operations, combinations thereof, and the like.
Suppose that the example keyboard layout 100 of Fig. 2 is currently the client-side keyboard layout 50 as well as the server-side keyboard layout 52. In this example, the keyboard layout 100 is an English (United States) keyboard layout where location 110(1) maps to "q", location 110(2), maps to "w", location 110(3) maps to "e", and so on. That is, when a user selects the location 110(1) (e.g., via a touch, a keypress, or other keystroke gesture), the user enters a "q". Similarly, when a user selects the location 110(2), the user enters a "w", and so on.
In some arrangements, when a user enters a keystroke, the translation of the particular location 110 to the particular character 112 occurs in the client apparatus 22, and the client apparatus 22 sends an electronic signal identifying the particular character 112 to the server apparatus 24 for processing. In other arrangements, when a user enters a keystroke, the client apparatus 22 sends an electronic signal identifying the particular location 110 to the server apparatus 24, and the translation of the particular location 110 to the particular character 112 occurs in the server apparatus 24. Now suppose that the user activates a menu 120 which presents the user with other selectable keyboard layouts (e.g., by touching a special key 122, by activating an input language indicator on a taskbar of a touch screen, by clicking on a menu/tab, etc.). In such a situation, the user is able to change the current client-side keyboard layout 50 by then touching a different keyboard layout selection. For example, as shown in Fig. 2, the user may select a Japanese keyboard layout "J", a German keyboard layout "DEU", a French keyboard layout "FRA", and so on. If the user makes a selection to switch the current client-side keyboard layout 50 to a different client-side keyboard layout 50, the client apparatus 22 electronically communicates this change to the server-side apparatus 24. In response, the server-side apparatus 24 automatically updates the server-side keyboard layout 52 to synchronize the server-side keyboard layout 52 with the client-side keyboard layout 50. Such server-side operation is preferably transparent to the user thus alleviating the burden for the user to manually make a similar switch on the server apparatus 24.
After the user makes the keyboard layout change, the touch screen of the client apparatus 22 displays the newly selected keyboard layout (also see the user interface 32 in Fig. 1). For the newly selected keyboard layout, at least one or more of the keyboard locations 110 maps to a different character 112 (e.g., a different letter, a different number, a different symbol, etc.) vis-a-vis the earlier keyboard layout. Once the keyboard layout switch has taken place, when the user selects keys of the newly selected keyboard layout, the user is able to enter characters in accordance with the newly selected keyboard layout, e.g., different characters due to different locations for the characters, new characters, new functions, etc.
It should be understood that the client apparatus 22 executes specialized client software (e.g., see the virtual client applications and data 44 in Fig. 1) to form specialized client-side circuitry during a virtual session. Likewise, the server apparatus 24 executes specialized server software (e.g., see the virtualization applications and data 74 in Fig. 1) to form specialized server-side circuitry during the virtual session. Such circuitry establishes a virtual channel 54 (Fig. 1) at a session layer to support a virtual session exchange between the client apparatus 22 and the server apparatus 24, e.g., to encapsulate rich media redirection, to support the Independent Computing Architecture (ICA), to utilize COM ports, video, graphics, smart card features, and so on.
Once the virtual channel 54 is established between the client apparatus 22 and the server apparatus 24, the specialized circuitry on the apparatus 22, 24 synchronize the server-side keyboard layout 52 as well as a client-side keyboard layout 50. In particular, the client apparatus 22 and the server apparatus 24 initially perform a keyboard layout binding operation to initially negotiate keyboard layout sets and synchronize the client-side keyboard layout 50 to the server-side keyboard layout 52. After such initial synchronization, the user may operate the client apparatus 22 with confidence that the client-side keyboard layout 50 matches the server-side keyboard layout 52 on the server apparatus 24. Furthermore, if the user switches from the initial client-side keyboard layout 50 to a new client-side keyboard layout 50, the client apparatus 22 and the server apparatus 24 electronically cooperate to synchronize the new client-side keyboard layout 50 to the server-side keyboard layout 52. Accordingly, there is no confusion to the user as to which keyboard layout is valid on the server apparatus 24. Moreover, there is no opportunity to misinterpret text input on the server apparatus 24. Further details will now be provided with reference to Fig. 3.
Fig. 3 shows a sequence diagram for a keyboard binding operation 150 that is performed between specialized client-side circuitry 152 and specialized server-side circuitry 154 at the beginning of a virtual session between a client apparatus 22 and the server apparatus 24 (also see Fig. 1). Here, the user may have initiated the virtual session in order to access a virtual desktop or virtual application environment provided by the server apparatus 24 (e.g., remote applications, remotely stored content, etc.). The keyboard binding operation initially negotiates client-side keyboard layout 50 sets of the client apparatus 22 with server-side keyboard layout 52 sets of the server apparatus 24.
The specialized client-side circuitry 152 is formed by the processing circuitry 36 of the client apparatus 22 operating in accordance with the virtual client applications and data 44 (Fig. 1). In some arrangements, at least a portion of such client-side circuitry 152 is formed via deployment of a dynamic linked library (abbr. DLL) which is loaded at the onset of a virtual session, e.g., when the user requests a virtual desktop or virtual application from the server apparatus 24.
Similarly, the specialized client-side circuitry 154 is formed by the processing circuitry 76 of the server apparatus 24 operating in accordance with the virtualization applications and data 74 (Fig. 1). In some arrangements, at least a portion of such server-side circuitry 154 is formed via a DLL installed on the server apparatus 24.
During operation, once the virtual session is created between the client apparatus 22 and the server apparatus 24, the specialized circuitry 152, 154 open (or form) the virtual channel 54. It should be understood that communications via the virtual channel 54 (e.g., packets) are conveyed through the communications medium 26 (Fig. 1).
With reference to Fig. 3, after the virtual channel 54 is opened, the specialized server-side circuitry 154 sends a keyboard bind request 160 to the specialized client-side circuitry 152. The keyboard bind request 160 identifies a set of compatible server-side keyboard layouts 54 supported by the server apparatus 24. For example, the keyboard bind request 160 indicates a particular set of server-side keyboard layouts 52 that the server apparatus 24 is currently attempting to support. Additionally, the keyboard bind request 160 further identifies which keyboard features the specialized server-side circuitry 154 can support (e.g., keyboard types, the current platform, etc.).
In response to the keyboard bind request 160, the specialized client-side circuitry
152 performs a keyboard assessment operation 162 which reads the set of compatible server-side keyboard layouts 54 from the keyboard bind request 160 and determines which of the compatible server-side keyboard layouts 54 the client apparatus 22 is configured to support. Such an assessment may be based on a variety of factors such as the particular operating platform of the client apparatus 22, whether particular drivers are installed, whether particular software updates or upgrades are in place, and so on.
The specialized client-side circuitry 152 then generates a keyboard bind response 164 identifying, as a set of compatible client-side keyboard layouts 50, which of the set of compatible server-side keyboard layouts 52 the client apparatus 22 is configured to support, and sends the keyboard bind response 164 to the specialized server-side circuitry 154. Additionally, the keyboard bind response 164 further identifies which keyboard features the specialized client-side circuitry 152 can support (e.g., keyboard types, the current platform, etc.).
In response to the keyboard bind response 164, the specialized server-side circuitry 154 performs a keyboard confirmation operation 166 that confirms that the server apparatus 24 is compatible with the client apparatus 22 from the perspective of keyboard layouts. Furthermore, the specialized server-side circuitry 154 stores the keyboard features identified by the keyboard bind response 164 for future use.
Next, the specialized server-side circuitry 154 generates and sends a keyboard bind-commit message (or command) 168 to the specialized client-side circuitry 152. The keyboard bind-commit message 168 informs the specialized client-side circuitry 152 that the specialized server-side circuitry 154 considers a particular set of server-side keyboard layouts 52 to be valid, i.e., the keyboard layouts that are supported by both the server apparatus 24 and the client apparatus 22.
In response to the keyboard bind-commit message 168, the specialized client-side circuitry 152 considers the keyboard bind-commit message 168 as a command to commit to the particular set of server-side keyboard layouts 52. Accordingly, the specialized client-side circuitry 152 formally saves the client-side keyboard layout 50 sets to match the particular server keyboard layout 52 sets.
At this point, the client apparatus 22 and the server apparatus 24 have negotiated which keyboard layouts are available for use. In particular, the client apparatus 22 and the server apparatus 24 have agreed on a common set of compatible keyboard layouts.
After negotiation of keyboard layouts is completed, the specialized client-side circuitry 152 sends a keyboard layout identifier (KLI) message 180 to the specialized server-side circuitry 154. The KLI message 180 includes, as a keyboard layout identifier, encapsulated keyboard layout information designating a current client-side keyboard layout 50 thus enabling the server apparatus 24 to synchronize (or update) its knowledge of the client-side keyboard layout 50. In particular, the KLI message 180 contains various properties such as input locale, keyboard type, keyboard layout name, etc.
If the user subsequently switches the client-side keyboard layout 50 to a new client-side keyboard layout 50, the specialized client-side circuitry 152 checks whether the new client-side keyboard layout 50 is among the negotiated keyboard layouts 52, i.e., whether the new client-side keyboard layout 50 belongs to the common set of compatible keyboard layouts. If so, the specialized client-side circuitry 152 sends another keyboard layout identifier (KLI) message 180 to the specialized server-side circuitry 154. The KLI message 180 includes, as a keyboard layout identifier, encapsulated keyboard layout information designating the new client-side keyboard layout 50 thus enabling the server apparatus 24 to synchronize (or update) its knowledge of the client-side keyboard layout 50. In particular, the KLI message 180 contains various properties such as input locale, keyboard type, keyboard layout name, etc. Further details will now be provided with reference to Fig. 4.
Fig. 4 is a block diagram illustrating particular details of how the specialized server-side circuitry 154 distributes keyboard information it receives from the specialized client-side circuitry 152 to maintain keyboard layout synchronization between the client apparatus 22 and the server apparatus 24. As shown, the server apparatus 24 includes the specialized server-side circuitry 154 as well as a running operating system 200, and running applications 210(1), 210(2), 210(3), 210(4), ... (collectively, running applications 210) for a virtual desktop and/or virtual application environment accessed by the user during a virtual session. In some arrangements, the virtual desktop and/or virtual application environment is provided via a virtual machine hosted on a virtualization platform.
As shown in Fig. 4, upon receipt of the KLI message 180 from the specialized client-side circuitry 152, the specialized server-side circuitry 154 interfaces with the runner operating system 200 to activate the selected keyboard layout and set the default input language based on the selected keyboard layout, i.e., see arrow 220. Additionally, the specialized server-side circuitry 154 broadcasts a message 230 to notify the running server-side applications 210 of that input language change. Accordingly, all running server-side applications are informed to input user text from the client apparatus 22 in the language (e.g., English, German, French, Japanese, etc.) that is consistent with the selected keyboard layout 50 on the client apparatus 22. Thus, the client apparatus 22 and the server apparatus 24 are able to richly and robustly maintain keyboard layout synchronization and properly interpret user text input.
It should be understood that this keyboard updating process is repeated each time the user switches the client-side keyboard layout 50 (e.g., switches back to an original keyboard layout, switches to a new keyboard layout, etc.). Accordingly, the client-side keyboard layout 50 and the server-side keyboard layout 52 are continuously synchronized. Further details will now be provided with reference to Fig. 5.
Fig. 5 is a flowchart of a procedure 300 that is performed by the circuitry of the computerized setting 20 when synchronizing keyboard layouts. At 302, the circuitry creates a virtual session between a client apparatus operated by a user and a server apparatus that delivers access to a server-based user environment. Such a session may be in response to the user directing the client apparatus 22 to provide access to a virtual desktop or virtual application environment on the server apparatus 24 to perform useful work (also see Fig. 1).
At 304, the circuitry matches a server keyboard layout 52 of the server apparatus to a client keyboard layout 50 of the client apparatus. In particular, the circuitry performs a keyboard binding operation and a keyboard layout synchronization operation to synchronize an initial server keyboard layout 52 of the server apparatus with an initial client keyboard layout 50 of the client apparatus (also see Fig. 3). Later on, to match the server keyboard layout 52 to a client keyboard layout 50, the client apparatus and the server apparatus continue to communicate to carry out a keyboard update operation to update the server keyboard layout 52 to the client keyboard layout 50.
At 306, the circuitry provides keystroke input from the user to the server-based user environment in accordance with the server keyboard layout 52 of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session. Such operation continues until the user terminates the virtual session or switches keyboard layouts (e.g., by returning to 304).
As described above, improved techniques are directed electronically
synchronizing a server-side keyboard layout 52 with a client-side keyboard layout 50 during a virtual session. Such synchronization eliminates confusion to the user as to which keyboard layout is currently valid. Additionally, such synchronization ensures that the client-side text input is not misinterpreted by the server-side environment.
Accordingly, the user experience is greatly improved.
Additionally, one should appreciate that the above-described techniques amount to more than simply providing synchronization between a client and server. Rather, the techniques involve performance of a coordinated matching operation to match a server keyboard layout 52 of the server apparatus to a client keyboard layout 50 of the client apparatus during a virtual session. Such matching provides improvement to technology by eliminating confusion over which keyboard layout is currently valid as well as preventing misinterpretation by the server-side environment. As a result, the
above-described techniques improve the user's experience if the user accesses a server-based user environment (e.g., a virtual desktop environment) during the virtual session.
While various embodiments of the present disclosure have been particularly shown and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure as defined by the appended claims.
For example, it should be understood that various components of the
computerized setting 20 are capable of being implemented in or "moved to" the cloud, i.e., to remote computer resources distributed over a network. Here, the various computer resources may be distributed tightly (e.g., a server farm in a single facility) or over relatively large distances (e.g., over a campus, in different cities, coast to coast, etc.). In these situations, the network connecting the resources is capable of having a variety of different topologies including backbone, hub-and-spoke, loop, irregular, combinations thereof, and so on. Additionally, the network may include copper-based data
communications devices and cabling, fiber optic devices and cabling, wireless devices, combinations thereof, etc. Furthermore, the network is capable of supporting LAN-based communications, SAN-based communications, combinations thereof, and so on.
Additionally, it should be understood that the above-provided keyboard switching example dealt with graphical keyboards that are provided by a touch screen by way of example only. In some arrangements, the above-described improvements are applied to a situation in which a user uses a physical keyboard with a keyboard layout that can be selected through keyboard language settings or indicator of screen provided by the operating system 42 (Fig. 1) instead of a graphical keyboard provided by a touch screen. In some arrangements, the above-described improvements are applied to a situation in which a user replaces a first physical keyboard with a second physical keyboard. In some arrangements, the different physical keyboards are plug-and-play and the particular type of keyboard layout is detected via auto-discovery on the client apparatus 22. In these arrangements, the client apparatus 22 sends a KLI message 180 (Figs. 3 and 4) to the server apparatus 24 informing the server apparatus 24 of the change to the new client-side keyboard layout 50, and the server apparatus 24 responds by synchronizing the server-side keyboard layout 52 with the new client keyboard layout 50. Such
modifications and enhancements are intended to belong to various embodiments of the disclosure.

Claims

CLAIMS What is claimed is:
1. A computer-implemented method of processing user input, the
computer-implemented method comprising:
creating a virtual session between a client apparatus operated by a user and a server apparatus that delivers access to a server-based user environment;
upon creation of the virtual session, matching a server keyboard layout of the server apparatus to a client keyboard layout of the client apparatus; and
after the server keyboard layout is matched to the client keyboard layout, providing keystroke input from the user to the server-based user environment in accordance with the server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session.
2. A computer-implemented method as in claim 1 wherein matching the server keyboard layout to the client keyboard layout includes:
performing a keyboard binding operation to negotiate a set of initial server keyboard layouts of the server apparatus with a set of initial client keyboard layouts of the client apparatus.
3. A computer-implemented method as in claim 2 wherein performing the keyboard binding operation includes:
conveying a keyboard bind request from the server apparatus to the client apparatus, the keyboard bind request identifying a set of compatible server keyboard layouts,
in response to the keyboard bind request, conveying a keyboard bind response from the client apparatus to the server apparatus, the keyboard bind response identifying, as a set of compatible client keyboard layouts, which of the set of compatible server keyboard layouts the client apparatus is able to support, and
in response to the keyboard bind response, conveying a keyboard bind-commit message from the server apparatus to the client apparatus, the keyboard bind-commit message committing the client apparatus to use the set of compatible client keyboard layouts identified in the keyboard bind response.
A computer-implemented method as in claim 3 wherein creating the virtual session between the client apparatus and the server apparatus includes:
establishing a virtual channel between the client apparatus and the server apparatus through a computer network; and
wherein the keyboard bind request, the keyboard bind response, and the keyboard bind-commit message are conveyed through the established virtual channel.
A computer-implemented method as in claim 3 wherein matching the server keyboard layout to the client keyboard layout further includes:
receiving a keyboard layout indication command from the client apparatus and, in response to the keyboard layout indication command, performing a keyboard layout synchronization operation to synchronize the server keyboard layout of the server apparatus with the client keyboard layout of the client apparatus.
A computer-implemented method as in claim 1, further comprising:
after the keystroke input from the user is provided to the server-based user environment for a period of time, matching another server keyboard layout of the server apparatus to another client keyboard layout of the client apparatus that is different than the client keyboard layout.
7. A computer-implemented method as in claim 6 wherein matching the server keyboard layout of the server apparatus to the other client keyboard layout of the client apparatus includes:
receiving a keyboard layout change command from the user and, in response to the keyboard layout change command from the user, performing a keyboard layout change operation to synchronize the other server keyboard layout of the server apparatus with the other client keyboard layout of the client apparatus.
8. A computer-implemented method as in claim 7 wherein the client apparatus
initially uses, as the client keyboard layout, a first client keyboard layout including a first key arrangement for a first language; and wherein receiving the keyboard layout change command from the user includes:
in response to the user switching from the first client keyboard layout to a second client keyboard layout including a second key arrangement for a second language, obtaining a keyboard selection indicator from the client apparatus, the keyboard selection indicator directing the server apparatus to use the second key arrangement for the second language in place of the first key arrangement for the first language.
9. A computer-implemented method as in claim 7, further comprising:
after the keyboard layout change operation is performed, providing further keystroke input from the user to the server-based user environment in accordance with the other server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session.
10. A computer-implemented method as in claim 7, further comprising:
broadcasting a set of keyboard change messages to a set of server applications running in the server-based user environment to notify each server application to use the other server keyboard layout in place of the server keyboard layout.
A computer program product having a non-transitory computer readable medium which stores a set of instructions to process user input; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:
creating a virtual session between a client apparatus operated by a user and a server apparatus that delivers access to a server-based user environment;
upon creation of the virtual session, matching a server keyboard layout of the server apparatus to a client keyboard layout of the client apparatus; and
after the server keyboard layout is matched to the client keyboard layout, providing keystroke input from the user to the server-based user environment in accordance with the server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session.
A computer program product as in claim 11 wherein matching the server keyboard layout to the client keyboard layout includes:
performing a keyboard binding operation to negotiate initial server keyboard layout sets of the server apparatus with initial client keyboard layout sets of the client apparatus.
A computer program product as in claim 12 wherein the method further comprises:
after the keystroke input from the user is provided to the server-based user environment for a period of time, matching another server keyboard layout of the server apparatus to another client keyboard layout of the client apparatus.
A client apparatus, comprising:
a user interface;
memory; and
control circuitry coupled to the user interface and the memory, the memory storing instructions which, when carried out by the control circuitry, cause the control circuitry to:
create a virtual session between the client apparatus and a server apparatus that delivers access to a server-based user environment,
upon creation of the virtual session, match a server keyboard layout of the server apparatus to a client keyboard layout of the client apparatus, and
after the server keyboard layout is matched to the client keyboard layout, provide keystroke input from a user via the user interface to the server-based user environment in accordance with the server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user via the user interface during the virtual session.
A client apparatus as in claim 14 wherein the control circuitry, when matching the server keyboard layout to the client keyboard layout, is constructed and arranged to:
perform a keyboard binding operation to synchronize initial server keyboard layout sets of the server apparatus with initial client keyboard layout sets of the client apparatus.
A client apparatus as in claim 14 wherein the control circuitry is further constructed and arranged to:
after the keystroke input from the user is provided to the server-based user environment for a period of time, match another server keyboard layout of the server apparatus to another client keyboard layout of the client apparatus.
17. A server apparatus, comprising:
a network interface;
memory; and
control circuitry coupled to the network interface and the memory, the memory storing instructions which, when carried out by the control circuitry, cause the control circuitry to:
create a virtual session between a client apparatus operated by a user and the server apparatus to deliver access to a server-based user environment,
upon creation of the virtual session, match a server keyboard layout of the server apparatus to a client keyboard layout of the client apparatus, and
after the server keyboard layout is matched to the client keyboard layout, provide keystroke input from the user to the server-based user environment in accordance with the server keyboard layout of the server apparatus while the server apparatus delivers access to the server-based user environment to the user during the virtual session.
18. A server apparatus as in claim 17 wherein the control circuitry, when matching the server keyboard layout to the client keyboard layout, is constructed and arranged to:
perform a keyboard binding operation to synchronize a set of initial server keyboard layouts of the server apparatus with a set of initial client keyboard layouts of the client apparatus.
19. A server apparatus as in claim 18 wherein the control circuitry is further
constructed and arranged to: after the keystroke input from the user is provided to the server-based user environment for a period of time, match another server keyboard layout of the server apparatus to another client keyboard layout of the client apparatus.
PCT/US2016/062262 2015-11-26 2016-11-16 Synchronizing a server-side keyboard layout with a client-side keyboard layout in a virtual session WO2017091411A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020187017990A KR102136474B1 (en) 2015-11-26 2016-11-16 Synchronization of client-side keyboard layout with server-side keyboard layout in a virtual session
JP2018527721A JP6615997B2 (en) 2015-11-26 2016-11-16 Synchronization of server-side keyboard layout and client-side keyboard layout in virtual sessions

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510837401.7A CN106802762B (en) 2015-11-26 2015-11-26 Synchronizing server-side keyboard layout with client-side layout in virtual session
CN201510837401.7 2015-11-26

Publications (1)

Publication Number Publication Date
WO2017091411A1 true WO2017091411A1 (en) 2017-06-01

Family

ID=57517986

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/062262 WO2017091411A1 (en) 2015-11-26 2016-11-16 Synchronizing a server-side keyboard layout with a client-side keyboard layout in a virtual session

Country Status (4)

Country Link
JP (1) JP6615997B2 (en)
KR (1) KR102136474B1 (en)
CN (1) CN106802762B (en)
WO (1) WO2017091411A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020005044A1 (en) * 2018-06-29 2020-01-02 삼성전자 주식회사 Method for setting layout for physical keyboard by electronic device, and device therefor
WO2020093352A1 (en) * 2018-11-09 2020-05-14 Citrix Systems, Inc. Automated keyboard mapping for virtual desktops
JP2021517328A (en) * 2018-09-30 2021-07-15 上海達龍信息科技有限公司 Method and system for remote control of PC by virtual input device
US11249771B2 (en) 2018-06-27 2022-02-15 Huawei Technologies Co., Ltd. Terminal input invocation

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI658401B (en) * 2017-11-14 2019-05-01 財團法人工業技術研究院 Mobile communication device based on virtual mobile infrastructure and related input method switching methods thereof
CN112068764B (en) * 2020-09-03 2022-06-21 北京搜狗科技发展有限公司 Language switching method and device for language switching

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6456277B1 (en) * 1999-03-02 2002-09-24 International Business Machines Corporation Data conversion method used between different types of keyboards
US8122170B2 (en) * 2009-06-11 2012-02-21 Microsoft Corporation Adaptive keyboard layout mapping

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305511B2 (en) * 2002-12-23 2007-12-04 Microtune (Texas), L.P. Providing both wireline and wireless connections to a wireline interface
JP2007323168A (en) * 2006-05-30 2007-12-13 Canon Inc Message display device and message display method
CN100464308C (en) * 2007-04-20 2009-02-25 北京搜狗科技发展有限公司 Method and system for updating user vocabulary synchronouslly
US8667412B2 (en) * 2007-09-06 2014-03-04 Google Inc. Dynamic virtual input device configuration
US8065143B2 (en) * 2008-02-22 2011-11-22 Apple Inc. Providing text input using speech data and non-speech data
JP5280294B2 (en) * 2009-05-01 2013-09-04 株式会社デジタル System and client program
JP2013520860A (en) * 2010-02-19 2013-06-06 ジョ ウー,スン Multilingual key input device and method
JP5621382B2 (en) * 2010-07-28 2014-11-12 カシオ計算機株式会社 Server apparatus and program
CN102622156B (en) * 2011-01-26 2016-08-03 腾讯科技(深圳)有限公司 Obtain the methods, devices and systems of dummy keyboard
CN102905182B (en) * 2011-07-26 2016-07-06 联想(北京)有限公司 A kind of input method, intelligent TV set and intelligent interactive system
CN103491055B (en) * 2012-06-12 2018-08-07 南京中兴软件有限责任公司 A kind of method of the synchronizing information between multiple client, client and server
JP6205568B2 (en) * 2013-01-16 2017-10-04 株式会社日本デジタル研究所 Remote access control system, method, and program
CN103529954A (en) * 2013-10-12 2014-01-22 成都阜特科技股份有限公司 Method for mutual exclusion of remote virtual machine keyboard mouse and local monitor
CN103645934A (en) * 2013-12-11 2014-03-19 天津湖蓝科技有限公司 Cloud computation based remote virtualized terminal application system and application
US20150208032A1 (en) * 2014-01-17 2015-07-23 James Albert Gavney, Jr. Content data capture, display and manipulation system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6456277B1 (en) * 1999-03-02 2002-09-24 International Business Machines Corporation Data conversion method used between different types of keyboards
US8122170B2 (en) * 2009-06-11 2012-02-21 Microsoft Corporation Adaptive keyboard layout mapping

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11249771B2 (en) 2018-06-27 2022-02-15 Huawei Technologies Co., Ltd. Terminal input invocation
WO2020005044A1 (en) * 2018-06-29 2020-01-02 삼성전자 주식회사 Method for setting layout for physical keyboard by electronic device, and device therefor
US11586352B2 (en) 2018-06-29 2023-02-21 Samsung Electronics Co., Ltd. Method for setting layout for physical keyboard by electronic device, and device therefor
JP2021517328A (en) * 2018-09-30 2021-07-15 上海達龍信息科技有限公司 Method and system for remote control of PC by virtual input device
WO2020093352A1 (en) * 2018-11-09 2020-05-14 Citrix Systems, Inc. Automated keyboard mapping for virtual desktops
CN113454577A (en) * 2018-11-09 2021-09-28 思杰系统有限公司 Automatic keyboard mapping for virtual desktops
JP2022506847A (en) * 2018-11-09 2022-01-17 サイトリックス システムズ,インコーポレイテッド Automatic keyboard mapping for virtual desktops
EP3877832A4 (en) * 2018-11-09 2022-06-22 Citrix Systems, Inc. Automated keyboard mapping for virtual desktops
US11681378B2 (en) 2018-11-09 2023-06-20 Citrix Systems, Inc. Automated keyboard mapping for virtual desktops

Also Published As

Publication number Publication date
JP6615997B2 (en) 2019-12-04
JP2018538619A (en) 2018-12-27
CN106802762B (en) 2020-09-11
CN106802762A (en) 2017-06-06
KR102136474B1 (en) 2020-07-21
KR20180086239A (en) 2018-07-30

Similar Documents

Publication Publication Date Title
WO2017091411A1 (en) Synchronizing a server-side keyboard layout with a client-side keyboard layout in a virtual session
CN110795195B (en) Webpage rendering method and device, electronic equipment and storage medium
KR102255138B1 (en) Message processing method and device, storage medium, and computer device
CN111066042A (en) Virtual conference participant response indication method and system
KR101921144B1 (en) Messaging application interacting with one or more extension applications
US20170302709A1 (en) Virtual meeting participant response indication method and system
WO2019120008A1 (en) Smart television and method for displaying graphical user interface of television screen shot
CN106663013B (en) Step is adjusted for the dynamic of service upgrade
CN104540027A (en) Multimedia display interaction control system under multi-screen environment
CN104965637B (en) The implementation method and device of a kind of interface operation
US20160092152A1 (en) Extended screen experience
CN110069738B (en) Information processing method and device, terminal equipment and server
CN105745650A (en) Device and method for predicting skin age by using quantifying means
WO2014173115A1 (en) Method, device, and system for network communication
CN109478152A (en) Cloud content status frame
US20160147544A1 (en) Assisted client application accessibility
JP6607876B2 (en) Coordinating input method editor (IME) activity between virtual application client and server
US20180173575A1 (en) Opening unsupported file types through remoting sessions
CN113228561A (en) Providing virtual desktops within a computing environment
US10102395B2 (en) System and method for creating and transitioning to multiple facets of a social media object in a social network
CN110798743A (en) Video playing method and device and computer readable storage medium
CN115113773B (en) Information processing method, information processing device, computer readable storage medium, and electronic device
CN115079978A (en) Scene interaction display method and device, server equipment and storage medium
KR101953947B1 (en) Online Customer Service Support Method and System using the Remote Control System for Mobile Terminal
US20200396285A1 (en) Cell phone synchronization server

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16808857

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2018527721

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20187017990

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 16808857

Country of ref document: EP

Kind code of ref document: A1