KR20180086239A - Synchronization of client-side and server-side keyboard layouts in a virtual session - Google Patents

Synchronization of client-side and server-side keyboard layouts in a virtual session Download PDF

Info

Publication number
KR20180086239A
KR20180086239A KR1020187017990A KR20187017990A KR20180086239A KR 20180086239 A KR20180086239 A KR 20180086239A KR 1020187017990 A KR1020187017990 A KR 1020187017990A KR 20187017990 A KR20187017990 A KR 20187017990A KR 20180086239 A KR20180086239 A KR 20180086239A
Authority
KR
South Korea
Prior art keywords
server
keyboard
client
keyboard layout
user
Prior art date
Application number
KR1020187017990A
Other languages
Korean (ko)
Other versions
KR102136474B1 (en
Inventor
티안제 지앙
양 장
카이 루
데바오 딩
이완 루
Original Assignee
사이트릭스 시스템스, 인크.
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 사이트릭스 시스템스, 인크. filed Critical 사이트릭스 시스템스, 인크.
Publication of KR20180086239A publication Critical patent/KR20180086239A/en
Application granted granted Critical
Publication of KR102136474B1 publication Critical patent/KR102136474B1/en

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/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
    • 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
    • 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
    • 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

Abstract

컴퓨터로 구현되는 기술은 사용자 입력을 프로세싱한다. 컴퓨터로 구현되는 기술은 사용자에 의해 동작되는 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 서버 장치 사이에 가상 세션을 생성하는 것을 포함한다. 이 기술은 또한 가상 세션의 생성시, 서버 장치의 서버 키보드 레이아웃을 클라이언트 장치의 클라이언트 키보드 레이아웃에 매칭시키는 것을 포함한다. 이 기술은 또한 서버 키보드 레이아웃이 클라이언트 키보드 레이아웃에 매칭된 후에, 서버 장치가 가상 세션 동안 서버 기반 사용자 환경에 대한 액세스를 사용자에게 제공하는 동안 서버 장치의 서버 키보드 레이아웃에 따라 사용자로부터의 키스트로크 입력을 서버 기반 사용자 환경에 제공하는 것을 포함한다.A computer implemented technique processes user input. A computer implemented technique includes creating a virtual session between a client device operated by a user and a server device communicating access to a server based user environment. The technique also includes matching the server keyboard layout of the server device to the client keyboard layout of the client device upon creation of the virtual session. This technique also provides a keystroke input from the user according to the server keyboard layout of the server device, while the server device provides access to the server-based user environment during the virtual session, after the server keyboard layout matches the client keyboard layout Server-based user environment.

Figure P1020187017990
Figure P1020187017990

Description

가상 세션에서의 클라이언트 측 키보드 레이아웃과 서버 측 키보드 레이아웃의 동기화Synchronization of client-side and server-side keyboard layouts in a virtual session

본 발명은 가상 세션에서 서버 측 키보드 레이아웃을 클라이언트 측 키보드 레이아웃에 동기화시키는 것에 관한 것이다.The present invention relates to synchronizing a server-side keyboard layout to a client-side keyboard layout in a virtual session.

데스크톱 또는 애플리케이션 가상화는 사용자가 로컬 클라이언트 장치를 네트워크를 통해 원격 서버 장치에 접속하고 그 후 원격 서버 장치에 의해 제공되는 가상 데스크톱 또는 가상 애플리케이션 환경에 액세스하는 것을 가능하게 한다. 일단 사용자가 가상 데스크톱 또는 가상 애플리케이션 환경에 액세스하면, 그 사용자는 가상 데스크톱 또는 가상 애플리케이션 환경을 사용하여 문서 편집, 슬라이드 쇼 재생, 전자 메일 확인 등과 같은 유용한 작업을 수행할 수 있다. 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 a user accesses a virtual desktop or virtual application environment, the user can use the virtual desktop or virtual application environment to perform useful tasks such as editing documents, playing a slide show, checking e-mail, and the like.

가상 데스크톱 또는 가상 애플리케이션 환경에 텍스트 입력을 제공하기 위해, 사용자는 로컬 클라이언트 장치의 키보드 상에 타이핑하고, 그 사용자가 행한 키스트로크(keystrokes)는 특정 문자(예를 들어, 문자, 숫자, 기호 등)로 전자적으로 변환된다. 어떤 상황에서(예를 들어, 데스크톱 컴퓨터의 상황에서), 로컬 클라이언트 장치에는 물리적 키보드가 탑재된다. 다른 상황에서(예를 들어, 태블릿 또는 스마트폰의 상황에서), 로컬 클라이언트 장치에는 디스플레이형 키보드(displayed keyboard)를 제공하는 터치 스크린(touch screen)이 탑재된다.To provide text input to a virtual desktop or virtual application environment, a user types on a keyboard of a local client device, and the keystrokes that the user makes are stored in a specific character (e.g., letters, numbers, symbols, etc.) Lt; / RTI > In some situations (e.g., in the context of a desktop computer), the local client device may be equipped with a physical keyboard. In other situations (e.g., in the context of a tablet or smartphone), the local client device is equipped with a touch screen that provides a displayed keyboard.

로컬 클라이언트 장치의 터치 스크린이, 원격 서버 장치에 의해 제공되는 데스크톱 또는 가상 애플리케이션 환경에 텍스트 입력을 사용자가 입력할 수 있게 하는 영어(미국) 터치 키보드를 초기에 디스플레이하는 것으로 가정한다. 또는 로컬 클라이언트 장치는 물리적 키보드가 탑재되어 있다고 가정한다. 사용자가 로컬 클라이언트 장치의 터치 키보드 또는 물리적 키보드 상에서 타이핑하면, 그 사용자가 행한 키스트로크는 특정 영어 문자로 적절히 변환된다.It is assumed that the touch screen of the local client device initially displays an English (US) touch keyboard that allows the user to enter text input into the desktop or virtual application environment provided by the remote server device. Or the local client device is assumed to be equipped with a physical keyboard. When a user types on a touch keyboard or physical keyboard of a local client device, the keystrokes that the user makes are appropriately converted to specific English characters.

또한, 로컬 클라이언트 장치는 사용자가 상이한 키보드 레이아웃 사이에서 (예를 들어, 영어 키보드 레이아웃에서 프랑스어 키보드 레이아웃으로 또는 독일어 키보드 레이아웃 등으로) 전환할 수 있도록 구성된다고 가정된다. 이 키보드 전환 특징이 사용자에게 이용될 수 있다면, 사용자는 개인적 취향에 따라 영어 키보드 레이아웃으로부터 상이한 키보드 레이아웃들 중의 하나로 전환하려고 시도할 수 있다. 그러나, 로컬 클라이언트 장치에서 키보드 전환을 수행한 후, 사용자는 원격 서버 장치에 의해 제공되는 가상 데스크톱 또는 가상 애플리케이션 환경에 대해 현재 어떠한 키보드가 유효한지에 대해 혼동될 수 있다. 또한, 로컬 클라이언트 장치에서 키보드 전환이 수행된 후, 사용자에 의해 입력된 키스트로크는 원격 서버 장치에 의해 제공되는 가상 데스크톱 또는 가상 애플리케이션 환경에 의해 잘못 해석될 수가 있다.It is also assumed that the local client device is configured to enable the user to switch between different keyboard layouts (e.g., from an English keyboard layout to a French keyboard layout or a German keyboard layout, etc.). If this keyboard switching feature is available to the user, the user may attempt to switch from the English keyboard layout to one of the different keyboard layouts according to personal preference. However, after performing keyboard switching at the local client device, the user may be confused about which keyboard is currently available for the virtual desktop or virtual application environment provided by the remote server device. Also, after a keyboard switch is performed 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.

개선된 기술은 가상 세션 동안 클라이언트 측 키보드 레이아웃에 서버 측 키보드 레이아웃을 전자적으로 동기화시키는 것을 포함한다. 이러한 동기화는 현재 어떠한 키보드 레이아웃이 유효한지에 대한 사용자 혼동을 제거한다. 또한 이러한 동기화는 클라이언트 측 텍스트 입력이 서버 측 환경에 의해 잘못 해석되지 않도록 보장한다. 따라서, 사용자 경험은 크게 향상된다. The improved technique involves electronically synchronizing a server-side keyboard layout to a client-side keyboard layout during a virtual session. This synchronization eliminates user confusion about which keyboard layouts are currently valid. This synchronization also ensures that client-side text input is not misinterpreted by the server-side environment. Thus, the user experience is greatly improved.

일 실시예는 사용자 입력을 프로세싱하는 컴퓨터로 구현되는 방법에 관한 것이다. 컴퓨터로 구현되는 방법은 사용자에 의해 동작되는 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 서버 장치 사이에 가상 세션을 생성하는 단계를 포함한다. 이 방법은 가상 세션의 생성시, 서버 장치의 서버 키보드 레이아웃을 클라이언트 장치의 클라이언트 키보드 레이아웃에 매칭시키는 단계를 더 포함한다. 상기 방법은, 서버 키보드 레이아웃이 클라이언트 키보드 레이아웃에 매칭된 후에, 서버 장치가 가상 세션 동안 서버 기반 사용자 환경에 대한 액세스를 사용자에게로 전달하는 동안 서버 장치의 서버 키보드 레이아웃에 따라 사용자로부터의 키스트로크 입력을 서버 기반 사용자 환경에 제공하는 단계를 더 포함한다.One embodiment relates to a computer implemented method for processing user input. A computer implemented method includes creating a virtual session between a client device operated by a user and a server device communicating access to a server based user environment. The method further includes matching the server keyboard layout of the server device to the client keyboard layout of the client device upon creation of the virtual session. The method further comprises inputting a keystroke input from the user according to the server keyboard layout of the server device while the server device passes access to the server based user environment to the user during the virtual session after the server keyboard layout matches the client keyboard layout To a server-based user environment.

일부 구성에서, 서버 키보드 레이아웃을 클라이언트 키보드 레이아웃과 정합시키는 단계는 클라이언트 장치의 초기 클라이언트 키보드 레이아웃과 서버 장치의 초기 서버 키보드 레이아웃을 협상하기 위해 키보드 바인딩 동작을 수행하는 단계를 포함한다. 이러한 구성은 사용자가 클라이언트 측 키보드 레이아웃을 전환할 수 있게 하는 터치 키보드가 탑재된 클라이언트 장치에 매우 적합하다. In some arrangements, matching the server keyboard layout with the client keyboard layout includes performing a keyboard binding operation to negotiate an initial client keyboard layout of the client device with an initial server keyboard layout of the server device. This configuration is well suited for client devices equipped with a touch keyboard that allows the user to switch client-side keyboard layout.

일부 구성에서, 키보드 바인딩 동작을 수행하는 단계는: In some configurations, performing a keyboard binding operation comprises:

(i) 서버 장치로부터 클라이언트 장치로 키보드 바인드 요청(keyboard bind request)을 전달하는 단계 - 상기 키보드 바인드 요청은 호환 가능한 서버 키보드 레이아웃의 세트를 식별함 - 와,(i) passing a keyboard bind request from a server device to a client device, the keyboard bind request identifying a set of compatible server keyboard layouts;

(ii) 키보드 바인드 요청에 응답하여, 클라이언트 장치로부터 서버 장치로 키보드 바인드 응답(keyboard bind response)을 전달하는 단계 - 상기 키보드 바인드 응답은 호환 가능한 서버 키보드 레이아웃의 세트 중의 어떤 레이아웃을 클라이언트 장치가 사용하도록 현재 구성된 것인지를 식별함 - 와,(ii) communicating a keyboard bind response from the client device to the server device in response to a keyboard bind request, the keyboard bind response causing the client device to use any of the set of compatible server keyboard layouts Identifying whether it is currently configured,

(iii) 키보드 바인드 응답에 응답하여, 서버 장치로부터 클라이언트 장치로 키보드 바인드-커밋 메시지(keyboard bind-commit message)를 전달하는 단계를 포함한다.(iii) delivering a keyboard bind-commit message from the server device to the client device in response to the keyboard bind response.

키보드 바인드-커밋 메시지는 클라이언트 장치 및 서버 장치가 키보드 바인드 응답에서 식별된 키보드 레이아웃을 지원한다는 것을 커밋한다(commit). Keyboard Bind - The commit message commits that the client device and the server device support the keyboard layout identified in the keyboard bind response.

일부 구성에서, 클라이언트 장치와 서버 장치 사이에 가상 세션을 생성하는 단계는 컴퓨터 네트워크를 통해 클라이언트 장치와 서버 장치 사이에 가상 채널을 수립하는 단계를 포함한다. 이러한 구성에서 키보드 바인드 요청, 키보드 바인드 응답 및 키보드 바인드-커밋 메시지는 수립된 가상 채널을 통해 전달된다. In some configurations, creating a virtual session between the client device and the server device includes establishing a virtual channel between the client device and the server device over the computer network. In this configuration, the keyboard bind request, the keyboard bind response, and the keyboard bind-commit message are carried through the established virtual channel.

일부 구성에서, 키보드 바인드 응답은, 클라이언트 장치가 구성하고 지원하도록 구성된 키보드 피처(keyboard features)의 세트(예를 들어, 키보드 유형, 키보드 레이아웃 세트, 현재 플랫폼 등)를 식별한다. In some configurations, the keyboard bind response identifies a set of keyboard features (e.g., keyboard type, keyboard layout set, current platform, etc.) configured to be configured and supported by the client device.

일부 구성에서, 본 방법은 사용자로부터의 키스트로크 입력이 일정 기간 동안 서버 기반 사용자 환경에 제공된 후, 서버 장치의 서버 키보드 레이아웃을 클라이언트 장치의 다른 클라이언트 키보드 레이아웃에 매칭시키는 단계를 더 포함한다. In some configurations, the method further comprises matching the server keyboard layout of the server device to another client keyboard layout of the client device after the keystroke input from the user is provided to the server-based user environment for a period of time.

일부 구성에서, 서버 장치의 서버 키보드 레이아웃을 클라이언트 장치의 다른 클라이언트 키보드 레이아웃에 매칭시키는 단계는 사용자로부터 키보드 레이아웃 변경 커맨드를 수신하는 단계와, 사용자로부터의 키보드 레이아웃 변경 커맨드에 응답하여, 새로운 클라이언트 키보드 레이아웃을 로딩하고, 상기 서버 장치의 서버 키보드 레이아웃을 클라이언트 장치의 초기 클라이언트 키보드 레이아웃과 다른 클라이언트 장치의 상기 새로운 클라이언트 키보드 레이아웃과 동기화시키기 위해 상기 새로운 클라이언트 키보드 레이아웃을 시스템 디폴트 키보드 레이아웃으로서 설정하는 단계를 포함한다. In some arrangements, matching the server keyboard layout of the server device to another client keyboard layout of the client device may include receiving a keyboard layout change command from a user, and responsive to a keyboard layout change command from the user, And setting the new client keyboard layout as a system default keyboard layout to synchronize the server keyboard layout of the server device with the initial client keyboard layout of the client device and the new client keyboard layout of another client device .

일부 구성에서, 초기 클라이언트 키보드 레이아웃은 제1 언어를 위한 제1 키 배열을 포함한다. 또한, 새로운 클라이언트 키보드 레이아웃은 제1 언어를 위한 제1 키 배열과 상이한 제2 언어를 위한 제2 키 배열을 포함한다. 또한, 사용자로부터 키보드 레이아웃 변경 커맨드를 수신하는 단계는 사용자에 의해 동작되는 클라이언트 장치의 터치 키보드(touch keyboard) 또는 운영 체제 태스크바(operating system taskbar)에 대한 키보드 언어 표시자를 통해 사용자로부터의 키보드 선택을 획득하는 단계를 포함한다. 키보드 선택은 제1 언어를 위한 제1 키 배열 대신에 제2 언어를 위한 제2 키 배열을 식별한다. In some configurations, the initial client keyboard layout includes a first key arrangement for a first language. In addition, the new client keyboard layout includes a first key arrangement for a first language and a second key arrangement for a second language. In addition, receiving the keyboard layout change command from the user may include selecting a keyboard from the user via a keyboard language indicator for a touch keyboard or an operating system taskbar of a client device operated by the user . The keyboard selection identifies a second key arrangement for a second language instead of a first key arrangement for a first language.

일부 구성에서, 상기 방법은 키보드 레이아웃 변경 동작이 수행된 후, 서버 장치가 가상 세션 동안 서버 기반 사용자 환경에 대한 액세스를 사용자에게 전달하는 동안 서버 장치의 새로운 서버 키보드 레이아웃에 따라 사용자로부터의 추가적인 키스트로크 입력을 서버 기반 사용자 환경에 제공하는 단계를 더 포함한다.In some configurations, the method may further include, after a keyboard layout change operation is performed, adding additional keystrokes from the user in accordance with the new server keyboard layout of the server device while the server device passes access to the server- And providing input to a server-based user environment.

일부 구성에서, 상기 방법은 초기 서버 키보드 레이아웃 대신에 새로운 서버 키보드 레이아웃을 사용하도록 각 서버 애플리케이션에 통지하기 위해 서버 기반 사용자 환경에서 실행중인 서버 애플리케이션들의 세트에 키보드 변경 메시지들의 세트를 브로드캐스팅하는 단계를 더 포함한다. In some configurations, the method includes broadcasting a set of keyboard change messages to a set of server applications running in a server-based user environment to notify each server application to use a new server keyboard layout instead of an initial server keyboard layout .

다른 실시예는 사용자 입력을 프로세싱하기 위한 명령어들의 세트를 저장하는 비 일시적 컴퓨터 판독 가능 매체를 갖는 컴퓨터 프로그램 제품에 관한 것이다. 명령어들의 세트는 컴퓨터화된 회로에 의해 수행될 때, 컴퓨터화된 회로로 하여금, Another embodiment is directed to a computer program product having a non-volatile computer readable medium storing a set of instructions for processing user input. A set of instructions, when performed by a computerized circuit,

(A) 사용자에 의해 동작되는 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 서버 장치 사이에 가상 세션을 생성하는 것과; (A) creating a virtual session between a client device operated by a user and a server device communicating access to a server based user environment;

(B) 가상 세션의 생성시, 서버 장치의 서버 키보드 레이아웃을 클라이언트 장치의 클라이언트 키보드 레이아웃에 매칭시키는 것과; (B) matching the server keyboard layout of the server device with the client keyboard layout of the client device when creating the virtual session;

(C) 상기 서버 키보드 레이아웃이 상기 클라이언트 키보드 레이아웃에 매칭된 후에, 서버 장치가 가상 세션 동안 서버 기반 사용자 환경에 대한 액세스를 사용자에게 전달하는 동안 서버 장치의 서버 키보드 레이아웃에 따라 사용자로부터의 키스트로크 입력을 서버 기반 사용자 환경에 제공하는 것의 방법을 수행하게 한다.(C) inputting a keystroke input from the user according to the server keyboard layout of the server device while the server device transmits access to the server-based user environment during the virtual session to the user after the server keyboard layout matches the client keyboard layout To a server-based user environment.

또 다른 실시예는 사용자 인터페이스, 메모리, 및 사용자 인터페이스 및 메모리에 결합된 제어 회로를 포함하는 클라이언트 장치에 관한 것이다. 상기 메모리는 상기 제어 회로에 의해 수행될 때, 상기 제어 회로로 하여금, Yet another embodiment relates to a client device comprising a user interface, a memory, and a control circuit coupled to the user interface and the memory. Wherein when the memory is executed by the control circuit,

(A) 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 서버 장치 사이에 가상 세션을 생성하는 것과; (A) creating a virtual session between a client device and a server device that conveys access to a server-based user environment;

(B) 가상 세션의 생성시, 서버 장치의 서버 키보드 레이아웃을 클라이언트 장치의 클라이언트 키보드 레이아웃에 매칭시키는 것과; (B) matching the server keyboard layout of the server device with the client keyboard layout of the client device when creating the virtual session;

(C) 상기 서버 키보드 레이아웃이 상기 클라이언트 키보드 레이아웃에 매칭된 후에, 서버 장치가 가상 세션 동안 사용자 인터페이스를 통해 서버 기반 사용자 환경에 대한 액세스를 사용자에게 전달하는 동안 서버 장치의 서버 키보드 레이아웃에 따라 사용자로부터의 키스트로크 입력을 사용자 인터페이스를 통해 서버 기반 사용자 환경에 제공하는 것을 수행하게 하는 명령어들을 저장한다.(C) after the server keyboard layout is matched to the client keyboard layout, while the server device passes access to the server-based user environment via the user interface to the user during the virtual session, To provide a keystroke input to the server-based user environment via the user interface.

또한, 다른 실시예는 네트워크 인터페이스, 메모리, 및 네트워크 인터페이스 및 메모리에 연결된 제어 회로를 포함하는 서버 장치에 관한 것이다. 상기 메모리는 상기 제어 회로에 의해 수행될 때, 상기 제어 회로로 하여금, Still another embodiment relates to a server device including a network interface, a memory, and a control circuit coupled to the network interface and the memory. Wherein when the memory is executed by the control circuit,

(A) 사용자에 의해 동작되는 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 서버 장치 사이에 가상 세션을 생성하는 것과; (A) creating a virtual session between a client device operated by a user and a server device communicating access to a server based user environment;

(B) 가상 세션의 생성시, 서버 장치의 서버 키보드 레이아웃을 클라이언트 장치의 클라이언트 키보드 레이아웃에 매칭시키는 것과; (B) matching the server keyboard layout of the server device with the client keyboard layout of the client device when creating the virtual session;

(C) 상기 서버 키보드 레이아웃이 상기 클라이언트 키보드 레이아웃에 매칭된 후에, 서버 장치가 가상 세션 동안 서버 기반 사용자 환경에 대한 액세스를 사용자에게 전달하는 동안 서버 장치의 서버 키보드 레이아웃에 따라 사용자로부터의 키스트로크 입력을 서버 기반 사용자 환경에 제공하는 것을 수행하게 하는 명령어들을 저장한다.(C) inputting a keystroke input from the user according to the server keyboard layout of the server device while the server device transmits access to the server-based user environment during the virtual session to the user after the server keyboard layout matches the client keyboard layout To the server-based user environment.

클라우드 환경에서 컴퓨터화된 회로의 적어도 일부는 네트워크를 통해 분산된 원격 컴퓨터 리소스에 의해 형성된다는 것을 이해해야 한다. 이러한 컴퓨터화된 환경은 호스팅된 서비스 및 리소스(예를 들어, 서비스로서의 소프트웨어, 서비스로서의 플랫폼, 서비스로서의 인프라스트럭쳐 등), 향상된 확장성 등과 같은 소정의 이점을 제공할 수 있다. It should be understood that at least some of the computerized circuits in the cloud environment are formed by remote computer resources distributed over the network. Such a computerized environment may provide certain benefits, such as hosted services and resources (e.g., software as a service, platform as a service, infrastructure as a service, etc.), improved scalability, and the like.

다른 실시예는 전자 시스템 및 장치, 프로세싱 회로, 컴퓨터 프로그램 제품 등에 관한 것이다. 일부 실시예는 가상 세션에서 서버 측 키보드 레이아웃을 클라이언트 측 키보드 레이아웃에 동기화시키는 것과 관련된 다양한 방법들, 전자 컴포넌트들 및 회로에 관한 것이다.Other embodiments relate to electronic systems and devices, processing circuits, computer program products, and the like. Some embodiments are directed to various methods, electronic components, and circuitry associated with synchronizing a server-side keyboard layout to a client-side keyboard layout in a virtual session.

전술한 것 및 다른 목적, 특징 및 이점은 첨부된 도면에 도시된 바와 같이, 본 개시의 특정 실시예에 대한 다음의 설명으로부터 명백해질 것이며, 첨부된 도면 내의 동일한 참조 부호는 상이한 도면 전반에 걸쳐 동일한 부분을 나타낸다. 도면은 반드시 일정한 축척일 필요는 없으며, 대신에 본 개시의 다양한 실시예의 원리를 설명할 때 강조가 행해질 수 있다.
도 1은 서버 장치의 서버 측 키보드 레이아웃이 클라이언트 장치의 클라이언트 측 키보드 레이아웃에 동기화되는 컴퓨터화된 설정의 블록도이다.
도 2는 예시적인 키보드 레이아웃의 블록도이다.
도 3은 키보드 바인딩 동작 동안 통신의 시퀀스 다이어그램이다.
도 4는 키보드 레이아웃 동기화 동작의 특정 세부 사항을 예시하는 블록도이다.
도 5는 도 1의 컴퓨터화된 설정에 의해 수행되는 절차의 흐름도이다.
BRIEF DESCRIPTION OF THE DRAWINGS The foregoing and other objects, features and advantages will be apparent from the following description of specific embodiments of the present disclosure, as illustrated in the accompanying drawings, wherein like reference numerals in the accompanying drawings indicate like Lt; / RTI > The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the various embodiments of the present disclosure.
1 is a block diagram of a computerized configuration in which a server-side keyboard layout of a server device is synchronized to a client-side keyboard layout of a client device.
2 is a block diagram of an exemplary keyboard layout.
Figure 3 is a sequence diagram of communication during a keyboard binding operation.
4 is a block diagram illustrating specific details of a keyboard layout synchronization operation.
5 is a flow chart of the procedure performed by the computerized configuration of FIG.

개선된 기술은 가상 세션 동안 서버 측 키보드 레이아웃을 클라이언트 측 키보드 레이아웃에 전자적으로 동기화시키는 것을 포함한다. 이러한 동기화는 현재 어떠한 키보드 레이아웃이 유효한지에 관한 사용자에 대한 혼동을 제거한다. 또한 이러한 동기화는 클라이언트 측 텍스트 입력이 서버 측 환경에 의해 잘못 해석되지 않도록 보장한다. 따라서 사용자 경험은 크게 향상된다. The improved technique involves electronically synchronizing a server-side keyboard layout to a client-side keyboard layout during a virtual session. This synchronization eliminates confusion for the user as to which keyboard layout is currently valid. This synchronization also ensures that client-side text input is not misinterpreted by the server-side environment. The user experience is therefore greatly improved.

본 명세서에 개시된 특정 실시예, 예 및 구현예들은 기술적인 의미를 갖는 임의의 바람직한 방식으로 조합될 수 있다. 더욱이, 이러한 특징들은 이러한 방식으로 결합되어 모든 가능한 조합, 치환 및 변형을 형성하지만, 그러한 조합, 치환 및/또는 변형이 명시적으로 제외되거나 비실용적인 경우는 제외된다. 이러한 조합, 치환 및 변형에 대한 지지가 이 문서 내에 존재하는 것으로 간주된다. The specific embodiments, examples, and implementations disclosed herein may be combined in any desired manner having a technical meaning. Moreover, these features are combined in this manner to form all possible combinations, permutations, and variations, except where such combinations, substitutions and / or modifications are expressly excluded or impractical. Support for such combinations, substitutions and modifications is deemed to be present in this document.

도 1은 가상 세션 동안 서버 측 키보드 레이아웃을 클라이언트 측 키보드 레이아웃에 전자적으로 동기화시키기에 적합한 컴퓨터화된 설정(20)을 도시한다. 컴퓨터화된 설정(20)은 클라이언트 장치(22), 서버 장치(24) 및 통신 매체(26)를 포함한다. Figure 1 shows a computerized configuration 20 suitable for electronically synchronizing a server-side keyboard layout to a client-side keyboard layout during a virtual session. The computerized configuration 20 includes a client device 22, a server device 24, and a communications medium 26.

클라이언트 장치(22)는 사용자가 통신 매체(26)를 통해 서버 장치(24) 상의 리소스(예를 들어, 애플리케이션, 컨텐츠, 서비스 등)에 액세스하는 가상 세션에 대한 프론트 엔드로서 동작하도록 구성 및 배치된다. 따라서, 사용자는 유용한 작업을 수행할 수 있다. 적합한 클라이언트 장치는 사용자 워크스테이션, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 장치, 스마트폰 등을 포함한다. The client device 22 is configured and arranged to operate as a front end for a virtual session in which a user accesses resources (e.g., applications, content, services, etc.) on the server device 24 via the communication medium 26 . Thus, the user can perform useful work. Suitable client devices include user workstations, desktop computers, laptop computers, tablet devices, smart phones, and the like.

서버 장치(24)는 서버 측 리소스(예를 들어, 애플리케이션, 컨텐츠, 서비스 등)에 대한 액세스를 하나 이상의 클라이언트 장치(22)에 제공하도록 구성 및 배치된다. 일부 구성에서, 서버 장치(24)는 가상 머신을 호스팅하는 가상화 플랫폼이다. 적합한 서버 장치(24)는 서버 컴퓨터, 서버 팜, 서버 설비 또는 캠퍼스, 분산 회로 등을 포함한다. Server device 24 is configured and arranged to provide one or more client devices 22 with access to server-side resources (e.g., applications, content, services, etc.). In some configurations, the server device 24 is a virtualization platform hosting a virtual machine. Suitable server devices 24 include server computers, server farms, server facilities or campuses, distributed circuits, and the like.

통신 매체(26)는 컴퓨터화된 설정(20)의 여러 컴포넌트들을 함께 접속하여 이들 컴포넌트들이 전자 신호(28)를 교환(예를 들어, 양방향 화살표(28) 참조)할 수 있게 하도록 구성 및 배치된다 . 통신 매체(26)의 적어도 일부분은 클라우드로 도시되어, 통신 매체(26)가 백본, 허브 및 스포크, 루프, 불규칙한 것, 이들의 조합 등을 포함하는 다양한 상이한 토폴로지를 가질 수 있음을 표시한다. 이들 라인을 따라, 통신 매체(26)는 구리 기반 데이터 통신 장치 및 케이블링, 광섬유 장치 및 케이블링, 무선 장치, 이들의 조합 등을 포함할 수 있다. 또한, 통신 매체(26)는 LAN 기반 통신, 셀룰러 통신, POTS(plain old telephone service) 통신, 이들의 조합 등을 지원할 수 있다. The communication medium 26 is configured and arranged to connect the various components of the computerized configuration 20 together so that these components can exchange the electronic signal 28 (e.g., see the double arrow 28) . At least a portion of communication media 26 is shown in the cloud to indicate that communication media 26 may have a variety of different topologies including backbones, hubs and spokes, loops, irregularities, combinations thereof, and the like. Along these lines, communication media 26 may include copper based data communication devices and cabling, fiber optic devices and cabling, wireless devices, combinations thereof, and the like. The communication media 26 may also support LAN based communications, cellular communications, plain old telephone service (POTS) communications, combinations thereof, and the like.

도 1에 도시된 바와 같이, 클라이언트 장치(22)는 통신 인터페이스(30), 사용자 인터페이스(32), 메모리(34) 및 프로세싱 회로(36)를 포함한다. 이러한 클라이언트 측 컴포넌트들은 버스, 케이블, 커넥터, 회로 보드 및 기타 하드웨어를 통해 전자적으로 서로 접속될 수 있다. 1, the client device 22 includes a communication interface 30, a user interface 32, a memory 34, and a processing circuit 36. The communication interface 30, These client-side components can be electronically interconnected via buses, cables, connectors, circuit boards, and other hardware.

통신 인터페이스(30)는 클라이언트 장치(22)를 통신 매체(26)에 접속하도록 구성 및 배치된다. 따라서, 통신 인터페이스(30)는 클라이언트 장치(22)가 컴퓨터화된 설정(20)의 다른 컴포넌트들과 통신할 수 있게 한다. 이러한 통신은 회선 기반 및/또는 무선(즉, IP 기반, 셀룰러, 이들의 조합 등)일 수 있다. The communication interface 30 is configured and arranged to connect the client device 22 to the communication medium 26. Thus, the communication interface 30 enables the client device 22 to communicate with other components of the computerized configuration 20. Such communication may be circuit based and / or wireless (i.e., IP based, cellular, combinations thereof, etc.).

사용자 인터페이스(32)는 사용자로부터 입력을 수신하고 출력을 사용자에게 제공하도록 구성 및 배치된다. 독립형 컴퓨터의 상황에서, 사용자 인터페이스(32)는 표준 키보드, 포인팅 장치(예를 들어, 마우스) 및 디스플레이에 의해 형성될 수 있다. 태블릿 또는 스마트폰의 상황에서, 사용자 인터페이스(32)는 터치 스크린, 소형 키보드, 웹캠, 마이크로폰, 스피커, 가속도계 등과 같은 다른 컴포넌트들에 의해 형성될 수 있다. The user interface 32 is configured and arranged to receive input from a user and provide an output to the user. In the context of a stand alone computer, the user interface 32 may be formed by a standard keyboard, a pointing device (e.g., a mouse), and a display. In the context of a tablet or smartphone, 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 the like.

메모리(34)는 휘발성 저장 장치(예를 들어, DRAM, SRAM 등) 및 비휘발성 저장 장치(예를 들어, 플래시 메모리, 자기 디스크 드라이브 등)를 나타내기 위한 것이다. 메모리(34)는 운영 체제(42), 서버 장치(24)와의 가상 세션을 수립하고 관리하기 위한 가상 클라이언트 애플리케이션 및 데이터(44)의 세트, 및 다른 애플리케이션 및 데이터(46)를 포함하는 다양한 소프트웨어 구성(40)을 저장한다. The memory 34 is intended to represent volatile storage devices (e.g., DRAM, SRAM, etc.) and non-volatile storage devices (e.g., flash memory, magnetic disk drives, etc.). Memory 34 includes a set of virtual client applications and data 44 for establishing and managing virtual sessions with operating system 42 and server device 24 and various software configurations including other applications and data 46. [ (40).

프로세싱 회로(36)는 메모리(34)에 저장된 다양한 소프트웨어 구성(40)에 따라 동작하도록 구성 및 배치된다. 특히, 프로세싱 회로(36)는 운영 체제(42)를 실행할 때, 클라이언트 장치(22)의 다양한 리소스(예를 들어, 메모리 할당, 프로세서 사이클, 하드웨어 호환성 등)를 관리한다. The processing circuitry 36 is configured and arranged to operate in accordance with the various software configurations 40 stored in the memory 34. In particular, the processing circuitry 36 manages the various resources (e.g., memory allocation, processor cycles, hardware compatibility, etc.) of the client device 22 when running the operating system 42.

또한, 가상화 애플리케이션 및 데이터(44)의 세트에 따라 동작하는 프로세싱 회로(36)는 클라이언트 장치(22)의 사용자를 대신하여 서버 장치(24)와의 가상 세션을 생성 및 유지하기 위한 특수 제어 회로를 형성한다. 이러한 동작 동안, 그리고 이하에서 더 상세히 설명되는 바와 같이, 프로세싱 회로(36)는 혼동 및 오역을 피하고 사용자 경험을 개선하기 위해 서버 측 키보드 레이아웃(52)을 클라이언트 측 키보드 레이아웃(50)에 동기화시킨다. 이러한 동기화를 위한 통신은 통신 매체(26)를 통해 클라이언트 장치(22)와 서버 장치(24) 사이에 수립된 가상 채널(54)(예를 들어, 도 1의 이중 화살표(54) 참조)을 통해 수행될 수 있다. In addition, processing circuitry 36, operating in accordance with a set of virtualization applications and data 44, forms special control circuitry for creating and maintaining a virtual session with server device 24 on behalf of a user of client device 22 do. During this operation, and as will be described in greater detail below, the processing circuitry 36 synchronizes the server-side keyboard layout 52 to the client-side keyboard layout 50 to avoid confusion and misinterpretation and to improve the user experience. Communication for such synchronization is accomplished through a virtual channel 54 established between the client device 22 and the server device 24 via the communication medium 26 (e.g., see the double arrow 54 in FIG. 1) .

또한, 다른 애플리케이션 및 데이터(46)에 따라 동작하는 프로세싱 회로(36)는 다른 동작을 수행하는 다른 특수 회로를 형성한다. 예를 들어, 프로세싱 회로(36)는 사용자가 웹 브라우징, 비디오 시청, 셀룰러 전화 호출, 사진 촬영 등과 같은 다른 로컬 사용자 레벨 동작을 수행할 수 있게 한다. 또한, 프로세싱 회로(36)는 사용자가 온라인 회의, 문서 및 다른 콘텐츠 공유, 온라인 가상 팀 환경(즉, 온라인 작업 공간)에서의 작업 등을 통해 원격으로 하나 이상의 다른 사용자와 협업할 수 있게 한다. In addition, the processing circuitry 36, which operates in accordance with other applications and data 46, forms other specialized circuits that perform other operations. For example, the processing circuitry 36 allows a user to perform other local user level operations, such as web browsing, video viewing, cellular telephone calling, photographing, and the like. In addition, the processing circuitry 36 allows a user to remotely collaborate with one or more other users through online conferencing, document and other content sharing, work in an online virtual team environment (i.e., an online workspace), and the like.

전술한 프로세싱 회로(36)는 특수 소프트웨어, 애플리케이션 특정 IC (ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 및 관련 프로그램을 실행하는 하나 이상의 프로세서(또는 코어)를 통해, 이산 컴포넌트, 아날로그 회로, 다른 하드웨어 회로, 이들의 조합 등을 포함하는 다양한 방식으로 구현될 수 있다. 소프트웨어를 실행하는 하나 이상의 프로세서의 상황에서, 컴퓨터 프로그램 제품(58)은 소프트웨어의 전부 또는 일부를 클라이언트 장치(22)에 전달할 수 있다. 컴퓨터 프로그램 제품(58)은 클라이언트 장치(22)의 하나 이상의 동작을 제어하기 위한 명령어들의 세트를 저장하는 비 일시적 및 비휘발성 컴퓨터 판독가능 저장 매체를 갖는다. 적합한 컴퓨터 판독가능 저장 매체의 예는 CD-ROM, 플래시 메모리, 디스크 메모리, 테이프 메모리 등과 같은 비휘발성 방식으로 명령어를 저장하는 유형의 제조 물품 및 장치를 포함한다. The above-described processing circuitry 36 may be implemented with discrete components, analog circuitry, other hardware circuitry (not shown), etc., via one or more processors (or cores) executing specialized software, application specific integrated circuits (ASICs), field programmable gate arrays , Combinations of these, and the like. In the context of one or more processors executing software, the computer program product 58 may communicate all or part of the software to the client device 22. [ The computer program product 58 has non-volatile and non-volatile computer-readable storage media for storing a set of instructions for controlling one or more operations of the client device 22. [ Examples of suitable computer-readable storage media include articles of manufacture and apparatus for storing instructions in nonvolatile manner such as CD-ROM, flash memory, disk memory, tape memory, and the like.

도 1에 더 도시된 바와 같이, 서버 장치(24)는 네트워크 인터페이스(60), 메모리(64) 및 프로세싱 회로(66)를 포함한다. 이러한 서버 측 컴포넌트들은 버스, 케이블, 커넥터, 회로 보드 및 기타 하드웨어를 통해 전자적으로 서로 접속될 수 있다. As further shown in FIG. 1, the server device 24 includes a network interface 60, a memory 64, and a processing circuit 66. These server-side components can be electronically interconnected via buses, cables, connectors, circuit boards, and other hardware.

네트워크 인터페이스(60)는 서버 장치(24)를 통신 매체(26)에 접속하도록 구성 및 배치된다. 따라서, 네트워크 인터페이스(60)는 서버 장치(24)가 컴퓨터화된 설정(20)의 다른 컴포넌트들과 통신할 수 있게 한다. 이러한 통신은 회선 기반 및/또는 무선(즉, IP 기반, 셀룰러, 이들의 조합 등)일 수 있다. The network interface 60 is configured and arranged to connect the server device 24 to the communications medium 26. Thus, the network interface 60 allows the server device 24 to communicate with other components of the computerized configuration 20. [ Such communication may be circuit based and / or wireless (i.e., IP based, cellular, combinations thereof, etc.).

메모리(64)는 휘발성 저장 장치(예를 들어, DRAM, SRAM 등) 및 비휘발성 저장 장치(예를 들어, 플래시 메모리, 자기 디스크 드라이브 등)를 나타내기 위한 것이다. 메모리(64)는 운영 체제(72), 클라이언트 장치(22)와의 가상 세션을 수립하고 관리하기 위한 가상화 애플리케이션 및 데이터(74)의 세트, 및 다른 애플리케이션 및 데이터(76)를 포함하는 다양한 소프트웨어 구성(70)을 저장한다. The memory 64 is intended to represent volatile storage devices (e.g., DRAM, SRAM, etc.) and non-volatile storage devices (e.g., flash memory, magnetic disk drives, etc.). Memory 64 includes a set of virtualization applications and data 74 for establishing and managing a virtual session with an operating system 72, client device 22, and various software configurations including other applications and data 76 70).

프로세싱 회로(66)는 메모리(64)에 저장된 다양한 소프트웨어 구성(70)에 따라 동작하도록 구성 및 배치된다. 특히, 프로세싱 회로(66)는 운영 체제(72)를 실행할 때 서버 장치(24)의 다양한 리소스(예를 들어, 메모리 할당, 프로세서 사이클, 하드웨어 호환성 등)를 관리한다. The processing circuitry 66 is configured and arranged to operate in accordance with the various software configurations 70 stored in the memory 64. In particular, the processing circuitry 66 manages the various resources (e.g., memory allocation, processor cycles, hardware compatibility, etc.) of the server device 24 when executing the operating system 72.

또한, 가상화 애플리케이션 및 데이터(74)의 세트에 따라 동작하는 프로세싱 회로(66)는 하나 이상의 클라이언트 장치(22)와의 가상 세션을 생성 및 유지하기 위한 특수 제어 회로를 형성한다. 이러한 동작 동안, 및 이하에서 더 상세히 설명되는 바와 같이, 프로세싱 회로(66)는 혼동 및 오역을 피하고 사용자의 경험을 향상시키기 위해 서버 측 키보드 레이아웃(52)을 가상 채널(54)을 통해 클라이언트 측 키보드 레이아웃(50)에 동기화시킨다. In addition, the processing circuit 66, which operates in accordance with a set of virtualization applications and data 74, forms a special control circuit for creating and maintaining a virtual session with one or more client devices 22. [ During this operation, and as will be described in greater detail below, the processing circuitry 66 is configured to communicate the server-side keyboard layout 52 with the client-side keyboard 54 via the virtual channel 54, to avoid confusion and misinterpretation, To the layout (50).

또한, 다른 애플리케이션 및 데이터(76)에 따라 동작하는 프로세싱 회로(66)는 다른 동작을 수행하는 다른 특수 회로를 형성한다. 예를 들어, 프로세싱 회로(66)는 서비스 및 유틸리티(예를 들어, 가상 세션 동안 사용자에게 제공되는 애플리케이션 및 서비스, 보안 등)를 위한 코드, 관리 툴(예를 들어, 사용자 등록, 사용자 계정 관리 등)을 위한 코드, 다른 서버 기반 동작을 위한 코드 등과 같은 다른 서버 레벨 동작을 수행할 수 있다. In addition, the processing circuitry 66, which operates in accordance with other applications and data 76, forms other special circuitry to perform other operations. For example, processing circuitry 66 may include code for services and utilities (e.g., applications and services provided to a user during a virtual session, security, etc.), management tools (e.g., user registration, ), Code for other server-based operations, and so on.

전술한 프로세싱 회로(66)는 특수한 소프트웨어, 애플리케이션 특정 IC(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 및 관련 프로그램을 실행하는 하나 이상의 프로세서(또는 코어)를 통해 이산 컴포넌트, 아날로그 회로, 다른 하드웨어 회로, 이들의 조합 등을 포함하는 다양한 방식으로 구현될 수 있다. 소프트웨어를 실행하는 하나 이상의 프로세서의 상황에서, 컴퓨터 프로그램 제품(78)은 소프트웨어의 전부 또는 일부를 서버 장치(24)에 전달할 수 있다. 컴퓨터 프로그램 제품(78)은 서버 장치(24)의 하나 이상의 동작을 제어하기 위한 명령어들의 세트를 저장하는 비 일시적 및 비휘발성 컴퓨터 판독가능 저장 매체를 갖는다. 적합한 컴퓨터 판독가능 저장 매체의 예는 CD-ROM, 플래시 메모리, 디스크 메모리, 테이프 메모리 등과 같은 비휘발성 방식으로 명령어를 저장하는 유형의 제조 물품 및 장치를 포함한다. 이제 더 상세한 내용이 도 2를 참조하여 제공될 것이다. The above-described processing circuitry 66 may include discrete components, analog circuitry, other hardware circuitry, and / or software components, via one or more processors (or cores) executing specialized software, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) A combination of these, and the like. In the context of one or more processors executing software, the computer program product 78 may communicate all or part of the software to the server device 24. [ The computer program product 78 has non-volatile and non-volatile computer-readable storage media for storing a set of instructions for controlling one or more operations of the server device 24. [ Examples of suitable computer-readable storage media include articles of manufacture and apparatus for storing instructions in nonvolatile manner such as CD-ROM, flash memory, disk memory, tape memory, and the like. More details will now be provided with reference to FIG.

도 2는 클라이언트 측 키보드 레이아웃(50) 및/또는 서버 측 키보드 레이아웃(52)(또한 도 1 참조)에 적합한 예시적인 키보드 레이아웃(100)(즉, QWERTY 키보드 레이아웃)을 도시한다. 다른 키보드 레이아웃, 예를 들어, QWERTZ, AZERTY, Dvorak, Colemak, Workman, Norman, JCUKEN, Neo, Plover, BEPO, Turkish, Brahmic 스크립트, InScript, Khmer, Thai, Sinhalese, Tibetan, Dzongkha, Arabic, Armenian, Cyrillic, 다른 외국어 문자 키보드 레이아웃, 맞춤형 및/또는 개인화된 키보드 레이아웃 등이 또한 사용에 적합하다는 것을 이해해야 한다.Figure 2 illustrates an exemplary keyboard layout 100 (i.e., a QWERTY keyboard layout) suitable for a client-side keyboard layout 50 and / or a server-side keyboard layout 52 (see also Figure 1). Other keyboard layouts, for example, QWERTZ, AZERTY, Dvorak, Colemak, Workman, Norman, JCUKEN, Neo, Plover, BEPO, Turkish, Brahmic script, InScript, Khmer, Thai, Sinhalese, Tibetan, Dzongkha, Arabic, Armenian, Cyrillic , Other foreign-language character keyboard layouts, customized and / or personalized keyboard layouts, etc., are also suitable for use.

클라이언트 장치(22) 상에서, 사용자는 클라이언트 측 키보드 레이아웃(50)의 키들을 작동시킬 뿐만 아니라 클라이언트 측 키보드 레이아웃(50)을 시청(예를 들어, 터치 스크린 상에 디스플레이됨)할 수 있다. 서버 장치(24) 상에서, 서버 측 키보드 레이아웃(52)은 내부적으로 관리된다. On the client device 22, the user can view (e.g., display on the touch screen) the client side keyboard layout 50 as well as actuate the keys of the client side keyboard layout 50. On the server device 24, the server-side keyboard layout 52 is internally managed.

도 2에 도시된 바와 같이, 키보드 레이아웃(100)은 각각의 문자들(112(1), 112(2), 112(3), ...)(집합적으로, 문자들(112))에 매핑되는 키보드 위치들(또는 키들(110(1), 110(2), 110(3), ...)(집합적으로 키보드 위치들(112))을 포함한다. 본 명세서에서 문자라는 용어는 알파벳 문자, 숫자, 기호, 다른 텍스트 기반 메타문자, 기능, 방향, 동작, 이들의 조합 등을 의미하는 것으로 사용된다는 것을 이해해야 한다. As shown in Figure 2, the keyboard layout 100 includes a plurality of characters 112 (1), 112 (2), 112 (3), ... (collectively, (Or keyboard locations 112 collectively) that are mapped to one or more keys 110 (1), 110 (2), 110 (3), ... Alphabetic characters, numbers, symbols, other text-based meta-characters, functions, directions, operations, combinations thereof, and the like.

도 2의 예시적인 키보드 레이아웃(100)이 현재 서버 측 키보드 레이아웃(52) 뿐만 아니라 클라이언트 측 키보드 레이아웃(50)이라고 가정한다. 이 예에서, 키보드 레이아웃(100)은 위치 110(1)이 "q", 위치 110(2)가 "w", 위치 110(3)이 "e ", 등등으로 매핑되는 영어(미국) 키보드 레이아웃이다. 즉, 사용자가 (예를 들어, 터치, 키 누르기 또는 다른 키스트로크 제스처를 통해) 위치 110(1)을 선택할 때, 사용자는 "q"를 입력한다. 유사하게, 사용자가 위치 110(2)를 선택할 때, 사용자는 "w" 등을 입력한다. It is assumed that the exemplary keyboard layout 100 of FIG. 2 is the client-side keyboard layout 50 as well as the current server-side keyboard layout 52. In this example, the keyboard layout 100 includes an English (US) keyboard layout in which locations 110 (1) are mapped to "q", locations 110 (2) are mapped to "w", locations 110 to be. That is, when the user selects position 110 (1) (e.g., via a touch, key press, or other keystroke gesture), the user enters "q". Similarly, when the user selects position 110 (2), the user enters "w" or the like.

일부 구성에서, 사용자가 키스트로크를 입력하면, 특정 위치(110)의 특정 문자(112)로의 변환이 클라이언트 장치(22)에서 발생하고, 클라이언트 장치(22)는 특정 문자(112)를 식별하는 전자 신호를 프로세싱을 위해 서버 장치(24)에 전송한다. 다른 구성에서, 사용자가 키스트로크를 입력할 때, 클라이언트 장치(22)는 특정 위치(110)를 식별하는 전자 신호를 서버 장치(24)에 전송하고 특정 위치(110)의 특정 문자(112)로의 변환이 서버 장치(24)에서 발생한다. In some arrangements, when the user enters a keystroke, a conversion of the specific location 110 to a specific character 112 occurs at the client device 22, and the client device 22 receives an electronic Signal to the server device 24 for processing. In another configuration, when a user enters a keystroke, the client device 22 sends an electronic signal identifying the particular location 110 to the server device 24 and sends the electronic signature to the specific character 112 of the particular location 110 Transformation occurs at the server device 24.

이제, 사용자가 (예를 들어, 특별한 키(122)를 터치하거나, 터치 스크린의 태스크바 상의 입력 언어 표시자를 활성화시키거나, 메뉴/탭을 클릭함으로써, 등등) 사용자에게 다른 선택 가능한 키보드 레이아웃을 제공하는 메뉴(120)를 활성화하는 것으로 가정한다. 이러한 상황에서, 사용자는 다른 키보드 레이아웃 선택을 터치함으로써 현재의 클라이언트 측 키보드 레이아웃(50)을 변경할 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 사용자는 일본어 키보드 레이아웃 "J", 독일어 키보드 레이아웃 "DEU", 프랑스어 키보드 레이아웃 "FRA" 등을 선택할 수 있다. 사용자가 현재의 클라이언트 측 키보드 레이아웃(50)을 다른 클라이언트 측 키보드 레이아웃(50)으로 전환하도록 선택하면, 클라이언트 장치(22)는 이 변경을 서버 측 장치(24)에 전자적으로 통신한다. 이에 응답하여, 서버 측 장치(24)는 서버 측 키보드 레이아웃(52)을 클라이언트 측 키보드 레이아웃(50)에 동기화시키도록 서버 측 키보드 레이아웃(52)을 자동으로 갱신한다. 이러한 서버 측 동작은 바람직하게는 사용자에게 투명한 것이며, 따라서 사용자가 서버 장치(24) 상에서 수동으로 유사한 전환을 수행하는 부담을 경감시킨다.Now, the user can provide another selectable keyboard layout to the user (e.g., by touching the special key 122, activating the input language indicator on the taskbar of the touch screen, clicking the menu / tab, etc.) And activates the menu 120 to display the menu. In this situation, the user can change the current client-side keyboard layout 50 by touching a different keyboard layout selection. For example, as shown in FIG. 2, the user can select a Japanese keyboard layout "J", a German keyboard layout "DEU", a French keyboard layout "FRA", and the like. If the user chooses to switch the current client-side keyboard layout 50 to another client-side keyboard layout 50, the client device 22 electronically communicates this change to the server- In response, the server-side device 24 automatically updates the server-side keyboard layout 52 to synchronize the server-side keyboard layout 52 with the client-side keyboard layout 50. This server-side operation is preferably transparent to the user, thus alleviating the burden of the user performing a manual switchover on the server device 24.

사용자가 키보드 레이아웃을 변경한 후에, 클라이언트 장치(22)의 터치 스크린은 새로 선택된 키보드 레이아웃(도 1의 사용자 인터페이스(32) 참조)을 디스플레이한다. 새롭게 선택된 키보드 레이아웃에 대해, 키보드 위치들(110) 중 적어도 하나 이상은 이전의 키보드 레이아웃에 대해 상이한 문자(112)(예를 들어, 다른 문자, 다른 숫자, 다른 기호 등)에 매핑된다. 일단 키보드 레이아웃 전환이 발생하면, 사용자가 새롭게 선택된 키보드 레이아웃의 키를 선택할 때, 사용자는 새롭게 선택된 키보드 레이아웃에 따라 문자들, 가령, 문자들에 대해 상이한 위치들에 기인한 상이한 문자들, 새로운 문자들, 새로운 기능 등을 입력할 수 있다.After the user changes the keyboard layout, the touch screen of the client device 22 displays the newly selected keyboard layout (see user interface 32 of FIG. 1). For a newly selected keyboard layout, at least one or more of the keyboard locations 110 are mapped to different characters 112 (e.g., different characters, different numbers, different symbols, etc.) for the previous keyboard layout. Once a keyboard layout transition occurs, when a user selects a key of a newly selected keyboard layout, the user may select different keys for the characters, e.g., different characters due to different locations, , A new function, and the like.

클라이언트 장치(22)는 가상 세션 동안 특수 클라이언트 측 회로를 형성하기 위해 특수 클라이언트 소프트웨어(예를 들어, 도 1의 가상 클라이언트 애플리케이션 및 데이터(44) 참조)를 실행한다는 것을 이해해야 한다. 마찬가지로, 서버 장치(24)는 가상 세션 동안 특수 서버 측 회로를 형성하기 위해 특수 서버 소프트웨어(예를 들어, 도 1의 가상화 애플리케이션 및 데이터(74) 참조)를 실행한다. 이러한 회로는 클라이언트 장치(22)와 서버 장치(24) 간의 가상 세션 교환을 지원하기 위해, 예를 들어, 리치 미디어 리디렉션을 캡슐화하고, ICA(Independent Computing Architecture)를 지원하고, COM 포트, 비디오, 그래픽, 스마트 카드 기능 등을 활용하기 위해, 세션 계층에서 가상 채널(54)(도 1)을 수립한다.It should be appreciated that client device 22 executes special client software (e.g., see FIG. 1, virtual client application and data 44) to form special client-side circuitry during a virtual session. Likewise, server device 24 executes special server software (e.g., see FIG. 1, virtualization application and data 74) to form special server-side circuitry during a virtual session. Such circuitry may include, for example, encapsulating rich media redirection, supporting Independent Computing Architecture (ICA), supporting COM port, video, graphics, etc., to support virtual session exchange between client device 22 and server device 24. [ To establish a virtual channel 54 (FIG. 1) at the session layer to utilize the smart card function, and the like.

가상 채널(54)이 클라이언트 장치(22)와 서버 장치(24) 사이에 설정되면, 장치(22, 24)상의 특수 회로는 클라이언트 측 키보드 레이아웃(50) 뿐만 아니라 서버 측 키보드 레이아웃(52)을 동기화시킨다. 특히, 클라이언트 장치(22) 및 서버 장치(24)는 초기에 키보드 레이아웃 세트들을 협상하고 클라이언트 측 키보드 레이아웃(50)을 서버 측 키보드 레이아웃(52)에 동기화시키기 위해, 키보드 레이아웃 바인딩 동작을 초기에 수행한다. 이러한 초기 동기화 후에, 사용자는 클라이언트 측 키보드 레이아웃(50)이 서버 장치(24) 상의 서버 측 키보드 레이아웃(52)과 매칭한다는 확신을 가지고 클라이언트 장치(22)를 동작시킬 수 있다. 또한, 사용자가 초기 클라이언트 측 키보드 레이아웃(50)에서 새로운 클라이언트 측 키보드 레이아웃(50)으로 전환하면, 클라이언트 장치(22) 및 서버 장치(24)는 전자적으로 협력하여 새로운 클라이언트 측 키보드 레이아웃(50)을 서버 측 키보드 레이아웃(52)에 동기화시킨다. 따라서, 어떤 키보드 레이아웃이 서버 장치(24) 상에서 유효한지에 관해 사용자에게 혼동은 없다. 또한, 서버 장치(24) 상의 텍스트 입력을 잘못 해석할 기회가 없다. 이제 더 상세한 내용이 도 3을 참조하여 제공될 것이다. If virtual channel 54 is set between client device 22 and server device 24 then the special circuitry on devices 22 and 24 will synchronize the client side keyboard layout 50 as well as the server side keyboard layout 52 . In particular, client device 22 and server device 24 initially perform keyboard layout binding operations to negotiate keyboard layout sets initially and synchronize client-side keyboard layout 50 to server-side keyboard layout 52 do. After this initial synchronization, the user can operate the client device 22 with the assurance that the client-side keyboard layout 50 matches the server-side keyboard layout 52 on the server device 24. [ In addition, when the user switches from the initial client-side keyboard layout 50 to the new client-side keyboard layout 50, the client device 22 and the server device 24 electronically collaborate to create a new client-side keyboard layout 50 To the server-side keyboard layout 52. Thus, there is no confusion to the user as to which keyboard layout is valid on the server device 24. [ In addition, there is no opportunity to misinterpret text input on the server device 24. More details will now be provided with reference to FIG.

도 3은 클라이언트 장치(22)와 서버 장치(24) 사이의 가상 세션의 시작에서(도 1 참조) 특수 클라이언트 측 회로(152)와 특수 서버 측 회로(154) 사이에서 수행되는 키보드 바인딩 동작(150)을 위한 시퀀스도를 도시하고 있다. 여기서, 사용자는 서버 장치(24)에 의해 제공되는 가상 데스크톱 또는 가상 애플리케이션 환경(예를 들어, 원격 애플리케이션, 원격으로 저장된 콘텐츠 등)에 액세스하기 위해 가상 세션을 개시할 수 있다. 키보드 바인딩 동작은 서버 장치(24)의 서버 측 키보드 레이아웃(52)의 세트와 클라이언트 장치(22)의 클라이언트 측 키보드 레이아웃(50)의 세트를 초기에 협상한다. 3 illustrates a keyboard binding operation 150 (FIG. 1) performed between the special client-side circuit 152 and the special server-side circuit 154 at the start of a virtual session between the client device 22 and the server device 24 ). ≪ / RTI > Here, a user may initiate a virtual session to access a virtual desktop or virtual application environment (e.g., a remote application, remotely stored content, etc.) provided by the server device 24. [ The keyboard binding operation initially negotiates a set of server side keyboard layout 52 of server device 24 and a set of client side keyboard layout 50 of client device 22. [

특수 클라이언트 측 회로(152)는 가상 클라이언트 애플리케이션 및 데이터(44)(도 1)에 따라 동작하는 클라이언트 장치(22)의 프로세싱 회로(36)에 의해 형성된다. 일부 구성에서, 그러한 클라이언트 측 회로(152)의 적어도 일부는 가상 세션의 개시시에, 가령, 사용자가 서버 장치(24)로부터 가상 데스크톱 또는 가상 애플리케이션을 요청할 때 로딩되는 동적 링크 라이브러리(DLL로 약칭됨)의 배치를통해 형성된다.The special client side circuitry 152 is formed by the processing circuitry 36 of the client device 22 operating in accordance with the virtual client application and data 44 (Figure 1). In some arrangements, at least a portion of such client-side circuitry 152 may include a dynamic link library (abbreviated as DLL) that is loaded at the start of the virtual session, e.g., when the user requests a virtual desktop or virtual application from the server device 24 ). ≪ / RTI >

유사하게, 특수 클라이언트 측 회로(154)는 가상화 애플리케이션 및 데이터(74)(도 1)에 따라 동작하는 서버 장치(24)의 프로세싱 회로(76)에 의해 형성된다(도 1). 일부 구성에서, 이러한 서버 측 회로(154)의 적어도 일부는 서버 장치(24) 상에 설치된 DLL을 통해 형성된다. Similarly, special client-side circuitry 154 is formed by the processing circuitry 76 of the server device 24 operating in accordance with the virtualization application and data 74 (FIG. 1) (FIG. 1). In some arrangements, at least a portion of such server-side circuitry 154 is formed through a DLL installed on the server device 24. [

동작 동안, 일단 가상 세션이 클라이언트 장치(22)와 서버 장치(24) 사이에서 생성되면, 특수 회로(152, 154)는 가상 채널(54)을 개방(또는 형성한다). 가상 채널(54)(예를 들어, 패킷)을 통한 통신은 통신 매체(26)(도 1)를 통해 전달된다는 것을 이해해야 한다. During operation, the special circuitry 152, 154 opens (or forms) the virtual channel 54 once a virtual session is created between the client device 22 and the server device 24. It should be appreciated that communication over the virtual channel 54 (e.g., packet) is carried over the communication medium 26 (FIG. 1).

도 3을 참조하면, 가상 채널(54)이 개방된 후에, 특수 서버 측 회로(154)는 키보드 바인드 요청(160)을 특수 클라이언트 측 회로(152)로 전송한다. 키보드 바인드 요청(160)은 서버 장치(24)에 의해 지원되는 호환 가능한 서버 측 키보드 레이아웃(54)의 세트를 식별한다. 예를 들어, 키보드 바인드 요청(160)은 서버 장치(24)가 현재 지원하려고 시도중인 서버 측 키보드 레이아웃(52)의 특정 세트를 나타낸다. 또한, 키보드 바인드 요청(160)은 특정 서버 측 회로(154)가 지원할 수 있는 어떠한 키보드 피처(예를 들어, 키보드 유형, 현재 플랫폼 등)를 더 식별한다.3, after the virtual channel 54 is opened, the special server side circuit 154 sends a keyboard bind request 160 to the special client side circuit 152. The keyboard bind request 160 identifies a set of compatible server-side keyboard layouts 54 supported by the server device 24. For example, the keyboard bind request 160 represents a particular set of server-side keyboard layouts 52 that the server device 24 is currently attempting to support. In addition, the keyboard bind request 160 further identifies any keyboard features (e.g., keyboard type, current platform, etc.) that the particular server side circuitry 154 can support.

키보드 바인드 요청(160)에 응답하여, 특수 클라이언트 측 회로(152)는 키보드 바인드 요청(160)으로부터 호환 가능한 서버 측 키보드 레이아웃(54)의 세트를 판독하고 호환 가능한 서버 측 키보드 레이아웃(54) 중 클라이언트 장치(22)가 지원하도록 구성된 호환 가능한 서버 측 키보드 레이아웃을 결정하는 키보드 평가 동작(162)을 수행한다. 이러한 평가는 클라이언트 장치(22)의 특정 동작 플랫폼, 특정 드라이버의 설치 여부, 특정 소프트웨어 갱신 또는 업그레이드의 설치 여부 등과 같은 다양한 인자에 기초할 수 있다.In response to the keyboard bind request 160, the special client-side circuit 152 reads a set of compatible server-side keyboard layouts 54 from the keyboard bind request 160 and, And performs a keyboard evaluation operation 162 that determines a compatible server-side keyboard layout configured to support device 22. Such an evaluation may be based on various factors such as the particular operating platform of the client device 22, whether a particular driver is installed, whether a particular software update or upgrade is installed, and so on.

그 다음, 특수 클라이언트 측 회로(152)는 호환 가능한 서버 측 키보드 레이아웃(52)의 세트 중 클라이언트 장치(22)가 지원하도록 구성된 서버 측 키보드 레이아웃을 호환 가능한 클라이언트 측 키보드 레이아웃(50)의 세트로서 식별하는 키보드 바인드 응답(164)을 생성하고, 이 키보드 바인드 응답(164)을 특수 서버 측 회로(154)에 전송한다. 또한, 키보드 바인드 응답(164)은 특정 클라이언트 측 회로 (152)가 지원할 수 있는 어떠한 키보드 피처(예를 들어, 키보드 유형, 현재 플랫폼 등)를 더 식별한다. The special client-side circuitry 152 then identifies the server-side keyboard layout configured to be supported by the client device 22 among the set of compatible server-side keyboard layouts 52 as a set of compatible client-side keyboard layouts 50 And sends the keyboard bind response 164 to the special server side circuit 154. The special server side circuit 154 receives the keyboard bind response 164, The keyboard bind response 164 further identifies any keyboard features (e.g., keyboard type, current platform, etc.) that a particular client-side circuit 152 may support.

키보드 바인드 응답(164)에 응답하여, 특수 서버 측 회로(154)는 키보드 레이아웃의 관점에서 서버 장치(24)가 클라이언트 장치(22)와 호환 가능하다는 것을 확인하는 키보드 확인 동작(166)을 수행한다. 또한, 특수 서버 측 회로(154)는 장래의 사용을 위해 키보드 바인드 응답(164)에 의해 식별된 키보드 피처를 저장한다. In response to the keyboard bind response 164, the special server-side circuit 154 performs a keyboard verification operation 166 that verifies that the server device 24 is compatible with the client device 22 in terms of keyboard layout . In addition, the special server-side circuit 154 stores the keyboard features identified by the keyboard bind response 164 for future use.

다음으로, 특수 서버 측 회로(154)는 키보드 바인드-커밋 메시지(또는 커맨드)(168)를 생성하여 특수 클라이언트 측 회로(152)에 전송한다. 키보드 바인드-커밋 메시지(168)는 특수 서버 측 회로(154)가 서버 측 키보드 레이아웃(52)의 특정 세트가 유효하다고 간주하는 것, 즉 키보드 레이아웃들이 서버 장치(24) 및 클라이언트 장치(22) 모두에 의해 지원된다는 것을 특수 클라이언트 측 회로(152)에 알린다.Next, the special server side circuit 154 generates a keyboard bind-commit message (or command) 168 and sends it to the special client-side circuit 152. The keyboard bind-commit message 168 indicates that the special server-side circuit 154 determines that a particular set of server-side keyboard layout 52 is valid, i.e., that the keyboard layouts are valid for both the server device 24 and the client device 22 To the special client-side circuit 152 that it is supported by the client-side circuitry 152. [

키보드 바인드-커밋 메시지(168)에 응답하여, 특수 클라이언트 측 회로(152)는 키보드 바인드-커밋 메시지(168)를 서버 측 키보드 레이아웃(52)의 특정 세트에 커밋하는 커맨드로 간주한다. 따라서, 특수 클라이언트 측 회로(152)는 특정 서버 키보드 레이아웃(52)의 세트에 매칭하는 클라이언트 측 키보드 레이아웃(50)의 세트를 공식적으로 저장한다. In response to the keyboard bind-commit message 168, the special client-side circuit 152 considers the keyboard bind-commit message 168 as a command to commit to a particular set of server-side keyboard layout 52. Thus, the special client-side circuitry 152 officially stores a set of client-side keyboard layouts 50 that match the set of specific server keyboard layouts 52.

이 시점에서, 클라이언트 장치(22) 및 서버 장치(24)는 어떤 키보드 레이아웃이 사용 가능한지에 대해 협상했다. 특히, 클라이언트 장치(22)와 서버 장치(24)는 호환 가능한 키보드 레이아웃의 공통 세트에 동의했다. At this point, the client device 22 and the server device 24 have negotiated which keyboard layout is available. In particular, client device 22 and server device 24 agreed on a common set of compatible keyboard layouts.

키보드 레이아웃의 협상이 완료된 후, 특수 클라이언트 측 회로(152)는 키보드 레이아웃 식별자(KLI) 메시지(180)를 특수 서버 측 회로(154)에 전송한다. KLI 메시지(180)는 키보드 레이아웃 식별자로서 현재의 클라이언트 측 키보드 레이아웃(50)을 지정하는 캡슐화된 키보드 레이아웃 정보를 포함하며, 이는 서버 측 장치(24)가 클라이언트 측 키보드 레이아웃(50)의 지식을 동기화(또는 갱신)하는 것을 가능하게 한다. 특히, KLI 메시지(180)는 입력 로케일(input locale), 키보드 유형, 키보드 레이아웃 이름 등과 같은 다양한 특성을 포함한다. After the negotiation of the keyboard layout is completed, the special client side circuit 152 transmits the keyboard layout identifier (KLI) message 180 to the special server side circuit 154. The KLI message 180 includes encapsulated keyboard layout information that specifies the current client-side keyboard layout 50 as the keyboard layout identifier that allows the server-side device 24 to synchronize the knowledge of the client- (Or update) it. In particular, the KLI message 180 includes various characteristics such as input locale, keyboard type, keyboard layout name, and the like.

이어서 만약 사용자가 클라이언트 측 키보드 레이아웃(50)을 새로운 클라이언트 측 키보드 레이아웃(50)으로 전환하면, 특수 클라이언트 측 회로(152)는 새로운 클라이언트 측 키보드 레이아웃(50)이 협상된 키보드 레이아웃(52) 내에 속하는지 여부, 즉 새로운 클라이언트 측 키보드 레이아웃(50)이 호환 가능한 키보드 레이아웃의 공통 세트에 속하는지 여부를 체킹한다. 만약 그러하다면, 특수 클라이언트 측 회로(152)는 다른 키보드 레이아웃 식별자(KLI) 메시지(180)를 특수 서버 측 회로(154)에 전송한다. KLI 메시지(180)는 키보드 레이아웃 식별자로서 새로운 클라이언트 측 키보드 레이아웃(50)을 지정하는 캡슐화된 키보드 레이아웃 정보를 포함하며, 이는 서버 측 장치(24)가 클라이언트 측 키보드 레이아웃(50)의 지식을 동기화(또는 갱신)할 수 있게 한다. 특히, KLI 메시지(180)는 입력 로케일, 키보드 유형, 키보드 레이아웃 이름 등과 같은 다양한 특성을 포함한다. 이제 더 상세한 내용이 도 4를 참조하여 제공될 것이다. Subsequently, if the user switches the client-side keyboard layout 50 to a new client-side keyboard layout 50, then the special client-side circuitry 152 will allow the new client-side keyboard layout 50 to be within the negotiated keyboard layout 52 Whether the new client-side keyboard layout 50 belongs to a common set of compatible keyboard layouts. If so, the special client-side circuit 152 sends another keyboard layout identifier (KLI) message 180 to the special server-side circuit 154. The KLI message 180 includes encapsulated keyboard layout information that specifies a new client side keyboard layout 50 as a keyboard layout identifier that allows the server side device 24 to synchronize knowledge of the client side keyboard layout 50 Or update). In particular, the KLI message 180 includes various characteristics such as input locale, keyboard type, keyboard layout name, and the like. More details will now be provided with reference to FIG.

도 4는 클라이언트 장치(22)와 서버 장치(24) 간의 키보드 레이아웃 동기화를 유지하기 위해 특수 서버 측 회로(154)가 특수 클라이언트 측 회로(152)로부터 수신한 키보드 정보를 어떻게 분산하는지에 대한 특정 세부 사항을 도시한 블록도이다. 도시된 바와 같이, 서버 장치(24)는 가상 세션 동안 사용자에 의해 액세스되는 가상 데스크톱 및/또는 가상 애플리케이션 환경을 위한 실행중인 운영 체제(200) 및 실행중인 애플리케이션들((210(1), 210(2), 210(3), 210(4), ...)(집합적으로, 실행중인 애플리케이션들(210)) 뿐만 아니라 특수 서버 측 회로(154)를 포함한다. 일부 구성에서, 가상 데스크톱 및/또는 가상 애플리케이션 환경은 가상화 플랫폼에서 호스팅되는 가상 머신을 통해 제공된다. Figure 4 illustrates specific details of how the special server side circuit 154 distributes keyboard information received from the special client side circuit 152 to maintain keyboard layout synchronization between the client device 22 and the server device 24. [ Fig. As shown, the server device 24 includes a running operating system 200 and running applications 210 (1), 210 () for a virtual desktop and / or virtual application environment accessed by a user during a virtual session 2), 210 (3), 210 (4), ... (collectively, running applications 210) as well as special server side circuitry 154. In some configurations, / / The virtual application environment is provided through a virtual machine hosted on a virtualization platform.

도 4에 도시된 바와 같이, 특수 클라이언트 측 회로(152)로부터 KLI 메시지(180)를 수신하면, 특수 서버 측 회로(154)는 실행중인 운영 체제(runner operating system)(200)와 인터페이스하여 선택된 키보드 레이아웃을 활성화하고, 선택한 키보드 레이아웃에 기초하여 디폴트 입력 언어를 설정한다(화살표 220 참조). 또한, 특수 서버 측 회로(154)는 실행중인 서버 측 애플리케이션(210)에 그 입력 언어 변경을 통지하기 위해 메시지(230)를 브로드캐스트한다. 따라서, 실행중인 모든 서버 측 애플리케이션은 클라이언트 장치(22) 상의 선택된 키보드 레이아웃(50)과 일치하는 언어(예를 들어, 영어, 독일어, 프랑스어, 일본어 등)로 클라이언트 장치(22)로부터의 사용자 텍스트를 입력하도록 통보받는다 . 따라서, 클라이언트 장치(22) 및 서버 장치(24)는 풍부하고 견고하게 키보드 레이아웃 동기화를 유지하고 사용자 텍스트 입력을 적절히 해석할 수 있다. Upon receiving the KLI message 180 from the special client-side circuitry 152, as shown in FIG. 4, the special server-side circuitry 154 interfaces with the running-in operating system Activates the layout, and sets the default input language based on the selected keyboard layout (see arrow 220). In addition, the special server-side circuitry 154 broadcasts a message 230 to notify the running server-side application 210 of its input language change. Accordingly, all server-side applications that are running will receive user text from the client device 22 in a language (e.g., English, German, French, Japanese, etc.) that matches the selected keyboard layout 50 on the client device 22 You will be notified. Thus, the client device 22 and the server device 24 can maintain rich and robust keyboard layout synchronization and properly interpret user text input.

이러한 키보드 갱신 프로세스는 사용자가 클라이언트 측 키보드 레이아웃(50)을 전환(예를 들어, 원래의 키보드 레이아웃으로 다시 전환하고, 새로운 키보드 레이아웃으로 전환하는 등)할 때마다 반복된다는 것을 이해해야 한다. 따라서, 클라이언트 측 키보드 레이아웃(50)과 서버 측 키보드 레이아웃(52)은 연속적으로 동기화된다. 이제 더 상세한 내용이 도 5를 참조하여 제공될 것이다. It should be appreciated that such a keyboard refresh process is repeated each time the user switches the client side keyboard layout 50 (e.g., switch back to the original keyboard layout, switch to the new keyboard layout, etc.). Thus, the client-side keyboard layout 50 and the server-side keyboard layout 52 are continuously synchronized. More details will now be provided with reference to FIG.

도 5는 키보드 레이아웃을 동기화할 때 컴퓨터화된 설정(20)의 회로에 의해 수행되는 절차(300)의 흐름도이다. 302에서, 회로는 사용자에 의해 동작되는 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 서버 장치 사이에 가상 세션을 생성한다. 그러한 세션은 유용한 작업(도 1 참조)을 수행하기 위해 서버 장치(24) 상의 가상 데스크톱 또는 가상 애플리케이션 환경에 대한 액세스를 제공하도록 사용자가 클라이언트 장치(22)에게 지시하는 것에 응답한 것일 수 있다.5 is a flow diagram of a procedure 300 performed by the circuitry of computerized settings 20 when synchronizing the keyboard layout. At 302, the circuit creates a virtual session between a client device operated by a user and a server device communicating access to a server-based user environment. Such a session may be in response to a user directing the client device 22 to provide access to a virtual desktop or virtual application environment on the server device 24 to perform useful operations (see FIG. 1).

304에서, 회로는 서버 장치의 서버 키보드 레이아웃(52)을 클라이언트 장치의 클라이언트 키보드 레이아웃(50)에 매칭시킨다. 특히, 회로는 키보드 바인딩 동작 및 키보드 레이아웃 동기화 동작을 수행하여 서버 장치의 초기 서버 키보드 레이아웃(52)을 클라이언트 장치의 초기 클라이언트 키보드 레이아웃(50)에 동기화시킨다(도 3 참조). 나중에, 서버 키보드 레이아웃(52)을 클라이언트 키보드 레이아웃(50)에 매칭시키기 위해, 클라이언트 장치 및 서버 장치는 키보드 갱신 동작을 수행하여 서버 키보드 레이아웃(52)을 클라이언트 키보드 레이아웃(50)으로 갱신하기 위해 통신을 계속한다. At 304, the circuit matches the server keyboard layout 52 of the server device to the client keyboard layout 50 of the client device. In particular, the circuit performs keyboard binding operations and keyboard layout synchronization operations to synchronize the initial server keyboard layout 52 of the server device to the initial client keyboard layout 50 of the client device (see FIG. 3). Later on, to match the server keyboard layout 52 to the client keyboard layout 50, the client device and the server device perform communication update to perform a keyboard update operation to update the server keyboard layout 52 to the client keyboard layout 50 Lt; / RTI >

306에서, 회로는, 서버 장치가 가상 세션 동안 서버 기반 사용자 환경에 대한 액세스를 사용자에게 전달하는 동안 서버 장치의 서버 키보드 레이아웃(52)에 따라 사용자로부터의 키스트로크 입력을 서버 기반 사용자 환경에 제공한다. 이러한 동작은 사용자가 가상 세션을 종료하거나 (예를 들어, 304로 복귀함으로써) 키보드 레이아웃을 전환할 때까지 계속된다. At 306, the circuit provides a keystroke input from the user to the server-based user environment in accordance with the server keyboard layout 52 of the server device, while the server device passes access to the server-based user environment during the virtual session to the user . This operation continues until the user terminates the virtual session (for example, by returning to 304) and switches the keyboard layout.

전술한 바와 같이, 개선된 기술은 가상 세션 동안 서버 측 키보드 레이아웃(52)을 클라이언트 측 키보드 레이아웃(50)에 전자적으로 동기화시키는 것에 관한 것이다. 이러한 동기화는 현재 어떤 키보드 레이아웃이 유효한지에 관한 사용자의 혼동을 제거한다. 또한 이러한 동기화는 클라이언트 측 텍스트 입력이 서버 측 환경에 의해 잘못 해석되지 않도록 보장한다. 따라서 사용자 경험은 크게 향상된다. As described above, the improved technique relates to electronically synchronizing the server-side keyboard layout 52 to the client-side keyboard layout 50 during a virtual session. This synchronization eliminates user confusion about which keyboard layouts are currently valid. This synchronization also ensures that client-side text input is not misinterpreted by the server-side environment. The user experience is therefore greatly improved.

또한, 전술한 기술은 단순히 클라이언트와 서버 간의 동기화를 제공하는 것 이상의 가치가 있음을 알아야 한다. 오히려, 이 기술은 가상 세션 동안 서버 장치의 서버 키보드 레이아웃(52)을 클라이언트 장치의 클라이언트 키보드 레이아웃(50)에 매칭시키는 조정된 매칭 동작의 수행을 포함한다. 이러한 매칭 동작은 어떤 키보드 레이아웃이 현재 유효한지를 통해 혼동을 제거하고 서버 측 환경에 의한 잘못된 해석을 방지함으로써 기술 향상을 제공한다. 결과적으로, 전술한 기술은 가상 세션 동안 사용자가 서버 기반 사용자 환경(예를 들어, 가상 데스크톱 환경)에 액세스하는 경우 사용자의 경험을 향상시킨다. It should also be noted that the above described technique is more than merely providing synchronization between a client and a server. Rather, the technique involves performing a coordinated matching operation that matches the server keyboard layout 52 of the server device to the client keyboard layout 50 of the client device during a virtual session. This matching operation provides technical enhancement by eliminating confusion through which keyboard layout is currently valid and preventing misinterpretation by the server side environment. As a result, the above-described techniques improve the user experience when a user accesses a server-based user environment (e.g., a virtual desktop environment) during a virtual session.

본 개시의 다양한 실시예가 특정하게 도시되고 기술되었지만, 본 기술 분야의 당업자는 첨부된 청구항들에 의해 정의되는 본 발명의 사상 및 범위로부터 벗어남이 없이 형태 및 세부 사항의 다양한 변화가 이루어질 수 있음을 이해할 것이다.While various embodiments of the present disclosure have been particularly shown and described, those skilled in the art will readily appreciate that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. will be.

예를 들어, 컴퓨터화된 설정(20)의 다양한 컴포넌트들은 클라우드 내에서 구현될 수 있거나 클라우드로 이동, 즉, 네트워크를 통해 분산된 원격 컴퓨터 리소스에 이동될 수 있다. 여기서, 다양한 컴퓨터 리소스는 (예를 들어, 단일 시설 내의 서버 팜과 같이) 밀착되게 분산될 수 있거나 또는 (예를 들어, 캠퍼스, 다른 도시, 해안에서 해안 등에 걸쳐) 비교적 먼 거리에 걸쳐 분산될 수 있다. 이러한 상황에서, 리소스를 연결하는 네트워크는 백본, 허브 앤 스포크, 루프, 불규칙한 것, 이들의 조합 등을 포함한 다양한 토폴로지를 가질 수 있다. 또한, 네트워크는 구리 기반 데이터 통신 장치 및 케이블링, 광섬유 장치 및 케이블링, 무선 장치, 이들의 조합 등을 포함할 수 있다. 또한, 네트워크는 LAN 기반 통신, SAN 기반 통신, 이들의 조합 등을 지원할 수 있다. For example, the various components of the computerized configuration 20 may be implemented in the cloud or moved to the cloud, i. E., To remote computer resources distributed over the network. Here, the various computer resources may be closely distributed (e.g., as in a server farm within a single facility) or distributed over a relatively long distance (e.g., across a campus, other city, coast to coast, etc.) have. In this situation, the network connecting the resources can have various topologies including backbone, hub and spoke, loops, irregularities, combinations thereof, and the like. The network may also include copper based data communication devices and cabling, optical fiber devices and cabling, wireless devices, combinations thereof, and the like. The network may also support LAN based communications, SAN based communications, combinations thereof, and the like.

또한, 상기 제공된 키보드 전환의 예는 오직 예로서 터치 스크린에 의해 제공되는 그래픽 키보드를 다루었다는 것을 이해해야 한다. 일부 구성에서, 전술한 개선은, 사용자가 터치 스크린에 의해 제공되는 그래픽 키보드 대신에, 운영 체제(42)(도 1)에 의해 제공되는 스크린의 표시자 또는 키보드 언어 설정을 통해 선택될 수 있는 키보드 레이아웃을 갖는 물리적 키보드를 사용하는 상황에 적용된다. 일부 구성에서, 전술한 개선은, 사용자가 제1 물리적 키보드를 제2 물리적 키보드로 대체하는 상황에 적용된다. 일부 구성에서, 상이한 물리적 키보드는 플러그 앤 플레이이고, 키보드 레이아웃의 특정 유형은 클라이언트 장치(22) 상의 자동 발견(auto-discovery)을 통해 검출된다. 이러한 구성에서, 클라이언트 장치(22)는 새로운 클라이언트 측 키보드 레이아웃(50)으로의 변경을 서버 장치(24)에 알리는 KLI 메시지(180)(도 3 및 도 4)를 서버 장치(24)에 전송하고, 서버 장치(24)는 이에 응답하여 서버 측 키보드 레이아웃(52)을 새로운 클라이언트 키보드 레이아웃(50)에 동기화시킨다. 이러한 변형 및 개선은 본 개시의 다양한 실시예에 속하도록 의도된다. It should also be appreciated that the example of the keyboard switching provided above dealt with a graphical keyboard provided by the touch screen only by way of example. In some configurations, the above-described enhancements may be made to the keyboard (not shown), which may be selected through an indicator of the screen provided by the operating system 42 (Fig. 1) This applies to situations where a physical keyboard with a layout is used. In some configurations, the foregoing improvements apply to situations in which a user replaces a first physical keyboard with a second physical keyboard. In some configurations, the different physical keyboards are plug-and-play, and certain types of keyboard layouts are detected through auto-discovery on the client device 22. In this configuration, the client device 22 sends a KLI message 180 (FIGS. 3 and 4) to the server device 24 to inform the server device 24 of the change to the new client-side keyboard layout 50 , The server device 24 in response causes the server-side keyboard layout 52 to synchronize to the new client keyboard layout 50. Such variations and modifications are intended to fall within the various embodiments of the disclosure.

Claims (19)

사용자 입력을 프로세싱하는 컴퓨터로 구현되는 방법에 있어서,
사용자에 의해 동작되는 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 서버 장치 사이에 가상 세션을 생성하는 단계와,
상기 가상 세션의 생성시에, 상기 서버 장치의 서버 키보드 레이아웃을 상기 클라이언트 장치의 클라이언트 키보드 레이아웃에 매칭시키는 단계와,
상기 서버 키보드 레이아웃이 상기 클라이언트 키보드 레이아웃에 매칭된 후에, 상기 서버 장치가 상기 가상 세션 동안 상기 서버 기반 사용자 환경에 대한 액세스를 상기 사용자에게 전달하는 동안 상기 서버 장치의 상기 서버 키보드 레이아웃에 따라 상기 사용자로부터의 키스트로크 입력을 상기 서버 기반 사용자 환경에 제공하는 단계를 포함하는
방법.
A computer-implemented method for processing user input,
Creating a virtual session between a client device operated by a user and a server device communicating access to a server based user environment,
Matching the server keyboard layout of the server device with the client keyboard layout of the client device upon creation of the virtual session;
Based user environment during the virtual session, after the server keyboard layout is matched to the client keyboard layout, the server keyboard layout is transferred from the user to the server in accordance with the server keyboard layout of the server device Based keystroke input to the server-based user environment
Way.
제1항에 있어서,
상기 서버 키보드 레이아웃을 상기 클라이언트 키보드 레이아웃에 매칭시키는 단계는, 상기 서버 장치의 초기 서버 키보드 레이아웃들의 세트를 상기 클라이언트 장치의 초기 클라이언트 키보드 레이아웃들의 세트와 협상하도록 키보드 바인딩 동작을 수행하는 단계를 포함하는
방법.
The method according to claim 1,
Wherein matching the server keyboard layout to the client keyboard layout comprises performing a keyboard binding operation to negotiate a set of initial server keyboard layouts of the server device with a set of initial client keyboard layouts of the client device
Way.
제2항에 있어서,
상기 키보드 바인딩 동작을 수행하는 단계는,
상기 서버 장치로부터 상기 클라이언트 장치로 키보드 바인드 요청을 전달하는 단계 - 상기 키보드 바인드 요청은 호환 가능한 서버 키보드 레이아웃들의 세트를 식별함 - 와,
상기 키보드 바인드 요청에 응답하여, 상기 클라이언트 장치로부터 상기 서버 장치로 키보드 바인드 응답을 전달하는 단계 - 상기 키보드 바인드 응답은 상기 호환 가능한 서버 키보드 레이아웃들의 세트 중 상기 클라이언트 장치가 지원할 수 있는 하나를 호환 가능한 클라이언트 키보드 레이아웃들의 세트로서 식별함 - 와,
상기 키보드 바인드 응답에 응답하여, 상기 서버 장치로부터 상기 클라이언트 장치로 키보드 바인드-커밋 메시지를 전달하는 단계 - 상기 키보드 바인드-커밋 메시지는 상기 클라이언트 장치가 상기 키보드 바인드 응답에서 식별된 상기 호환 가능한 클라이언트 키보드 레이아웃들의 세트를 사용하도록 커밋함 - 를 포함하는
방법.
3. The method of claim 2,
The step of performing the keyboard binding operation includes:
Forwarding a keyboard bind request from the server device to the client device, the keyboard bind request identifying a set of compatible server keyboard layouts;
Communicating a keyboard bind response from the client device to the server device in response to the keyboard bind request, wherein the keyboard bind response is a response to the client device response from a client device capable of supporting one of the set of compatible server keyboard layouts, Identified as a set of keyboard layouts,
Communicating a keyboard bind-commit message from the server device to the client device in response to the keyboard bind response, the keyboard bind-commit message being generated by the client device in response to the keyboard bind response, To use a set of < RTI ID = 0.0 >
Way.
제3항에 있어서,
상기 클라이언트 장치와 상기 서버 장치 사이에 가상 세션을 생성하는 단계는 컴퓨터 네트워크를 통해 상기 클라이언트 장치와 상기 서버 장치 사이에 가상 채널을 수립하는 단계를 포함하되, 상기 키보드 바인드 요청, 상기 키보드 바인드 응답 및 상기 키보드 바인딩-커밋 메시지는 상기 수립된 가상 채널을 통해 전달되는
방법.
The method of claim 3,
Wherein creating a virtual session between the client device and the server device comprises establishing a virtual channel between the client device and the server device via a computer network, wherein the keyboard bind request, the keyboard bind response, The keyboard bind-commit message is passed through the established virtual channel
Way.
제3항에 있어서,
상기 서버 키보드 레이아웃을 상기 클라이언트 키보드 레이아웃에 매칭시키는 단계는, 상기 클라이언트 장치로부터 키보드 레이아웃 표시 커맨드를 수신하는 단계와, 상기 키보드 레이아웃 표시 커맨드에 응답하여, 상기 서버 장치의 서버 키보드 레이아웃을 상기 클라이언트 장치의 상기 클라이언트 키보드 레이아웃에 동기화시키기 위해 키보드 레이아웃 동기화 동작을 수행하는 단계를 더 포함하는
방법.
The method of claim 3,
Wherein the step of matching the server keyboard layout to the client keyboard layout further comprises the steps of: receiving a keyboard layout display command from the client apparatus; receiving, in response to the keyboard layout display command, Further comprising performing a keyboard layout synchronization operation to synchronize to the client keyboard layout
Way.
제1항에 있어서,
상기 사용자로부터의 키스트로크 입력이 일정 시간 동안 상기 서버 기반 사용자 환경에 제공된 후, 상기 서버 장치의 다른 서버 키보드 레이아웃을 상기 클라이언트 키보드 레이아웃과는 상이한 상기 클라이언트 장치의 다른 클라이언트 키보드 레이아웃에 매칭시키는 단계를 더 포함하는
방법.
The method according to claim 1,
Matching the different server keyboard layout of the server device to another client keyboard layout of the client device different from the client keyboard layout after the keystroke input from the user is provided to the server based user environment for a certain period of time Included
Way.
제6항에 있어서,
상기 서버 장치의 상기 서버 키보드 레이아웃을 상기 클라이언트 장치의 다른 클라이언트 키보드 레이아웃에 매칭시키는 단계는, 상기 사용자로부터 키보드 레이아웃 변경 커맨드를 수신하는 단계와, 상기 키보드 레이아웃 변경 커맨드에 응답하여 상기 서버 장치의 상기 다른 서버 키보드 레이아웃을 상기 클라이언트 장치의 상기 다른 클라이언트 키보드 레이아웃에 동기화시키기 위해 키보드 레이아웃 변경 동작을 수행하는 단계를 포함하는
방법.
The method according to claim 6,
Wherein the step of matching the server keyboard layout of the server device to another client keyboard layout of the client device further comprises the steps of: receiving a keyboard layout change command from the user; Performing a keyboard layout change operation to synchronize the server keyboard layout to the other client keyboard layout of the client device
Way.
제7항에 있어서,
상기 클라이언트 장치는 초기에 클라이언트 키보드 레이아웃으로서 제1 언어를 위한 제1 키 배열을 포함한 제1 클라이언트 키보드 레이아웃을 사용하고,
상기 사용자로부터 상기 키보드 레이아웃 변경 커맨드를 수신하는 단계는, 상기 사용자가 상기 제1 클라이언트 키보드 레이아웃으로부터 제2 언어를 위한 제2 키 배열을 포함한 제2 클라이언트 키보드 레이아웃으로 전환하는 것에 응답하여, 상기 클라이언트 장치로부터 키보드 선택 표시자를 획득하는 단계를 포함하되, 상기 키보드 선택 표시자는 상기 서버 장치로 하여금 상기 제1 언어를 위한 상기 제1 키 배열 대신 상기 제2 언어를 위한 상기 제2 키 배열을 사용하도록 지시하는
방법.
8. The method of claim 7,
Wherein the client device initially uses a first client keyboard layout including a first key arrangement for a first language as a client keyboard layout,
Wherein the step of receiving the keyboard layout change command from the user comprises: in response to the user switching from the first client keyboard layout to a second client keyboard layout comprising a second key arrangement for a second language, Wherein the keyboard selection indicator instructs the server device to use the second key arrangement for the second language instead of the first key arrangement for the first language
Way.
제7항에 있어서,
상기 키보드 레이아웃 변경 동작이 수행된 후에, 상기 서버 장치가 상기 가상 세션 동안 상기 서버 기반 사용자 환경에 대한 액세스를 상기 사용자에게 전달하는 동안 상기 서버 장치의 상기 다른 서버 키보드 레이아웃에 따라 상기 사용자로부터의 추가 키스트로크 입력을 상기 서버 기반 사용자 환경에 제공하는 단계를 더 포함하는
방법.
8. The method of claim 7,
Based on the other server keyboard layout of the server device, while the server device transfers access to the server-based user environment during the virtual session to the user after the keyboard layout changing operation is performed, Providing a stroke input to the server-based user environment
Way.
제7항에 있어서,
상기 서버 키보드 레이아웃 대신에 상기 다른 서버 키보드 레이아웃을 사용하도록 각 서버 애플리케이션에 통지하기 위해 상기 서버 기반 사용자 환경에서 실행중인 서버 애플리케이션들의 세트에 키보드 변경 메시지들의 세트를 브로드캐스팅하는 단계를 더 포함하는
방법.
8. The method of 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 instead of the server keyboard layout
Way.
사용자 입력을 프로세싱하기 위한 명령어들의 세트를 저장하는 비 일시적 컴퓨터 판독가능 매체를 가진 컴퓨터 프로그램 제품으로서,
상기 명령어들의 세트는 컴퓨터화된 회로에 의해 실행될 때 상기 컴퓨터화된 회로로 하여금,
사용자에 의해 동작되는 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 서버 장치 사이에 가상 세션을 생성하는 단계와,
상기 가상 세션의 생성시에, 상기 서버 장치의 서버 키보드 레이아웃을 상기 클라이언트 장치의 클라이언트 키보드 레이아웃에 매칭시키는 단계와,
상기 서버 키보드 레이아웃이 상기 클라이언트 키보드 레이아웃에 매칭된 후에, 상기 서버 장치가 상기 가상 세션 동안 상기 서버 기반 사용자 환경에 대한 액세스를 상기 사용자에게 전달하는 동안 상기 서버 장치의 상기 서버 키보드 레이아웃에 따라 상기 사용자로부터의 키스트로크 입력을 상기 서버 기반 사용자 환경에 제공하는 단계를 포함하는 방법을 수행하게 하는
컴퓨터 프로그램 제품.

18. A computer program product having a non-transitory computer readable medium storing a set of instructions for processing user input,
The set of instructions, when executed by the computerized circuit, cause the computerized circuit to:
Creating a virtual session between a client device operated by a user and a server device communicating access to a server based user environment,
Matching the server keyboard layout of the server device with the client keyboard layout of the client device upon creation of the virtual session;
Based user environment during the virtual session, after the server keyboard layout is matched to the client keyboard layout, the server keyboard layout is transferred from the user to the server in accordance with the server keyboard layout of the server device Providing a keystroke input of the server-based user environment to the server-based user environment
Computer program products.

제11항에 있어서,
상기 서버 키보드 레이아웃을 상기 클라이언트 키보드 레이아웃에 매칭시키는 단계는 상기 서버 장치의 초기 서버 키보드 레이아웃들의 세트를 상기 클라이언트 장치의 초기 클라이언트 키보드 레이아웃들의 세트와 협상하도록 키보드 바인딩 동작을 수행하는 단계를 포함하는
컴퓨터 프로그램 제품.
12. The method of claim 11,
Wherein matching the server keyboard layout to the client keyboard layout comprises performing a keyboard binding operation to negotiate a set of initial server keyboard layouts of the server device with a set of initial client keyboard layouts of the client device
Computer program products.
제12항에 있어서,
상기 방법은, 상기 사용자로부터의 키스트로크 입력이 일정 시간 동안 상기 서버 기반 사용자 환경에 제공된 후, 상기 서버 장치의 다른 서버 키보드 레이아웃을 상기 클라이언트 장치의 다른 클라이언트 키보드 레이아웃에 매칭시키는 단계를 더 포함하는
컴퓨터 프로그램 제품.
13. The method of claim 12,
The method further comprises the step of matching a different server keyboard layout of the server device to another client keyboard layout of the client device after the keystroke input from the user is provided to the server based user environment for a period of time
Computer program products.
클라이언트 장치로서,
사용자 인터페이스와,
메모리와,
상기 사용자 인터페이스 및 상기 메모리에 결합된 제어 회로를 포함하고,
상기 메모리는, 제어 회로에 의해 실행될 때, 상기 제어 회로로 하여금,
상기 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 서버 장치 사이에 가상 세션을 생성하게 하고,
상기 가상 세션의 생성시에, 상기 서버 장치의 서버 키보드 레이아웃을 상기 클라이언트 장치의 클라이언트 키보드 레이아웃에 매칭시키게 하고,
상기 서버 키보드 레이아웃이 상기 클라이언트 키보드 레이아웃에 매칭된 후에, 상기 서버 장치가 상기 가상 세션 동안 상기 서버 기반 사용자 환경에 대한 액세스를 사용자 인터페이스를 통해 사용자에게 전달하는 동안 상기 서버 장치의 상기 서버 키보드 레이아웃에 따라 상기 사용자로부터의 키스트로크 입력을 상기 사용자 인터페이스를 통해 상기 서버 기반 사용자 환경에 제공하게 하는
명령어들을 저장하는
클라이언트 장치.
As a client device,
A user interface,
A memory,
And a control circuit coupled to the user interface and the memory,
Wherein the memory, when being executed by the control circuit,
To create a virtual session between the client device and a server device that delivers access to the server-based user environment,
When generating the virtual session, causing the server keyboard layout of the server device to match the client keyboard layout of the client device,
Based on the server keyboard layout of the server device, while the server device transmits access to the server-based user environment during the virtual session to the user via the user interface after the server keyboard layout matches the client keyboard layout Providing a keystroke input from the user to the server-based user environment via the user interface
Store instructions
Client device.
제14항에 있어서,
상기 제어 회로는, 상기 서버 키보드 레이아웃을 상기 클라이언트 키보드 레이아웃에 매칭할 때, 상기 서버 장치의 초기 서버 키보드 레이아웃들의 세트를 초기 클라이언트 키보드 레이아웃들의 세트에 동기화시키기 위해 키보드 바인딩 동작을 수행하도록 구성 및 배치되는
클라이언트 장치.
15. The method of claim 14,
The control circuit is configured and arranged to perform a keyboard binding operation to synchronize a set of initial server keyboard layouts of the server device to a set of initial client keyboard layouts when matching the server keyboard layout to the client keyboard layout
Client device.
제14항에 있어서,
상기 제어 회로는 또한,
상기 사용자로부터의 키스트로크 입력이 일정 시간 동안 상기 서버 기반 사용자 환경에 제공된 후에, 상기 서버 장치의 다른 서버 키보드 레이아웃을 상기 클라이언트 장치의 다른 클라이언트 키보드 레이아웃에 매칭시키도록 구성 및 배치되는
클라이언트 장치.
15. The method of claim 14,
The control circuit may further comprise:
Configured and arranged to match another server keyboard layout of the server device to another client keyboard layout of the client device after a keystroke input from the user is provided to the server based user environment for a period of time
Client device.
서버 장치로서,
네트워크 인터페이스와,
메모리와,
상기 네트워크 인터페이스 및 상기 메모리에 결합된 제어 회로를 포함하고,
상기 메모리는, 제어 회로에 의해 실행될 때, 상기 제어 회로로 하여금,
사용자에 의해 동작되는 클라이언트 장치와 서버 기반 사용자 환경에 대한 액세스를 전달하는 상기 서버 장치 사이에 가상 세션을 생성하게 하고,
상기 가상 세션의 생성시에, 상기 서버 장치의 서버 키보드 레이아웃을 상기 클라이언트 장치의 클라이언트 키보드 레이아웃에 매칭시키게 하고,
상기 서버 키보드 레이아웃이 상기 클라이언트 키보드 레이아웃에 매칭된 후에, 상기 서버 장치가 상기 가상 세션 동안 상기 서버 기반 사용자 환경에 대한 액세스를 상기 사용자에게 전달하는 동안 상기 서버 장치의 상기 서버 키보드 레이아웃에 따라 상기 사용자로부터의 키스트로크 입력을 상기 서버 기반 사용자 환경에 제공하게 하는
명령어들을 저장하는
서버 장치.
A server apparatus comprising:
A network interface,
A memory,
And a control circuit coupled to the network interface and the memory,
Wherein the memory, when being executed by the control circuit,
To create a virtual session between a client device operated by a user and the server device communicating access to a server based user environment,
When generating the virtual session, causing the server keyboard layout of the server device to match the client keyboard layout of the client device,
Based user environment during the virtual session, after the server keyboard layout is matched to the client keyboard layout, the server keyboard layout is transferred from the user to the server in accordance with the server keyboard layout of the server device To provide the keystroke input of the server-based user environment
Store instructions
Server device.
제17항에 있어서,
상기 제어 회로는, 상기 서버 키보드 레이아웃을 상기 클라이언트 키보드 레이아웃에 매칭할 때, 상기 서버 장치의 초기 서버 키보드 레이아웃들의 세트를 상기 클라이언트 장치의 초기 클라이언트 키보드 레이아웃들의 세트에 동기화시키기 위해 키보드 바인딩 동작을 수행하도록 구성 및 배치되는
서버 장치.
18. The method of claim 17,
Wherein the control circuit performs a keyboard binding operation to synchronize a set of initial server keyboard layouts of the server device to a set of initial client keyboard layouts of the client device when matching the server keyboard layout to the client keyboard layout Configured and deployed
Server device.
제18항에 있어서,
상기 제어 회로는 또한,
상기 사용자로부터의 키스트로크 입력이 일정 시간 동안 상기 서버 기반 사용자 환경에 제공된 후에, 상기 서버 장치의 다른 서버 키보드 레이아웃을 상기 클라이언트 장치의 다른 클라이언트 키보드 레이아웃에 매칭시키도록 구성 및 배치되는
서버 장치.
19. The method of claim 18,
The control circuit may further comprise:
Configured and arranged to match another server keyboard layout of the server device to another client keyboard layout of the client device after a keystroke input from the user is provided to the server based user environment for a period of time
Server device.
KR1020187017990A 2015-11-26 2016-11-16 Synchronization of client-side keyboard layout with server-side keyboard layout in a virtual session KR102136474B1 (en)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
KR20180086239A true KR20180086239A (en) 2018-07-30
KR102136474B1 KR102136474B1 (en) 2020-07-21

Family

ID=57517986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187017990A KR102136474B1 (en) 2015-11-26 2016-11-16 Synchronization of client-side keyboard layout with server-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)

Families Citing this family (6)

* 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
WO2020000263A1 (en) * 2018-06-27 2020-01-02 华为技术有限公司 Method and device for calling input method, and server and terminal
KR102592044B1 (en) * 2018-06-29 2023-10-23 삼성전자 주식회사 Apparatus and method for setting layout of physical keyboard in electronic device
CN109358937A (en) * 2018-09-30 2019-02-19 上海达龙信息科技有限公司 A kind of method and system based on virtual input device remote control PC
JP2022506847A (en) * 2018-11-09 2022-01-17 サイトリックス システムズ,インコーポレイテッド Automatic keyboard mapping for virtual desktops
CN112068764B (en) * 2020-09-03 2022-06-21 北京搜狗科技发展有限公司 Language switching method and device for language switching

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250696A (en) * 1999-03-02 2000-09-14 Internatl Business Mach Corp <Ibm> Method for converting data between different types of keyboards
JP2007323168A (en) * 2006-05-30 2007-12-13 Canon Inc Message display device and message display method
US20100318695A1 (en) * 2009-06-11 2010-12-16 Microsoft Corporation Adaptive keyboard layout mapping

Family Cites Families (14)

* 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
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
WO2011102689A2 (en) * 2010-02-19 2011-08-25 Soon Jo Woo Multilingual key input apparatus and method thereof
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250696A (en) * 1999-03-02 2000-09-14 Internatl Business Mach Corp <Ibm> Method for converting data between different types of keyboards
JP2007323168A (en) * 2006-05-30 2007-12-13 Canon Inc Message display device and message display method
US20100318695A1 (en) * 2009-06-11 2010-12-16 Microsoft Corporation Adaptive keyboard layout mapping

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102136474B1 (en) Synchronization of client-side keyboard layout with server-side keyboard layout in a virtual session
US10810360B2 (en) Server and method of providing collaboration services and user terminal for receiving collaboration services
KR101921144B1 (en) Messaging application interacting with one or more extension applications
US9338110B1 (en) Method of providing instant messaging service, recording medium that records program therefore, and terminal
CN110795195A (en) Webpage rendering method and device, electronic equipment and storage medium
CN106663013B (en) Step is adjusted for the dynamic of service upgrade
US10185468B2 (en) Animation editor
US20150143210A1 (en) Content Stitching Templates
US20140164930A1 (en) Mobile device application for remotely controlling a presentation accessed via a presentation server
CN103530096A (en) Remote control method, remote control equipment and display equipment
KR102007506B1 (en) Method for communicating using image in messenger, apparatus and system for the same
US20160092152A1 (en) Extended screen experience
CN104965637B (en) The implementation method and device of a kind of interface operation
JP6861287B2 (en) Effect sharing methods and systems for video
CN109478152A (en) Cloud content status frame
JP6607876B2 (en) Coordinating input method editor (IME) activity between virtual application client and server
US10303331B2 (en) Live mobile application visual editor demo
US20150319215A1 (en) Methods for facilitating a remote interface and devices thereof
JP2022515702A (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
CN111766958B (en) Input method implementation method, device, electronic equipment and storage medium
US11140216B2 (en) Dynamically providing host input control for streaming applications
KR101983837B1 (en) A method and system for producing an image based on a user-feedbackable bots, and a non-transient computer-readable recording medium
CN115079978A (en) Scene interaction display method and device, server equipment and storage medium
Preti et al. Transitions: a crossmedia interaction relevant aspect

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant