JP6615997B2 - 仮想セッションにおけるサーバ・サイド・キーボード・レイアウトとクライアント・サイド・キーボード・レイアウトとの同期 - Google Patents

仮想セッションにおけるサーバ・サイド・キーボード・レイアウトとクライアント・サイド・キーボード・レイアウトとの同期 Download PDF

Info

Publication number
JP6615997B2
JP6615997B2 JP2018527721A JP2018527721A JP6615997B2 JP 6615997 B2 JP6615997 B2 JP 6615997B2 JP 2018527721 A JP2018527721 A JP 2018527721A JP 2018527721 A JP2018527721 A JP 2018527721A JP 6615997 B2 JP6615997 B2 JP 6615997B2
Authority
JP
Japan
Prior art keywords
server
keyboard
client
keyboard layout
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018527721A
Other languages
English (en)
Other versions
JP2018538619A (ja
Inventor
ティアンズ ジァン,
ヤン ジァン,
カイ ルー,
デバオ ディン,
ユーウィン ルー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of JP2018538619A publication Critical patent/JP2018538619A/ja
Application granted granted Critical
Publication of JP6615997B2 publication Critical patent/JP6615997B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

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

Description

デスクトップまたはアプリケーション仮想化は、ユーザがネットワーク上でローカル・クライアント・デバイスをリモート・サーバ・デバイスに接続し、次いで、リモート・サーバ・デバイスによって提供される仮想デスクトップまたは仮想アプリケーション環境にアクセスすることを可能にする。ユーザが仮想デスクトップまたは仮想アプリケーション環境へのアクセスを有すると、ユーザは、有用な作業(たとえば、文書の編集、スライドショーの再生、電子メール確認など)を実行するために、仮想デスクトップまたは仮想アプリケーション環境を使用することができる。
仮想デスクトップまたは仮想アプリケーション環境にテキスト入力を提供するために、ユーザはローカル・クライアント・デバイスのキーボード上でタイプし、ユーザが行うキーストロークが特定の文字(character)(たとえば、文字(letter)、数字、記号など)に電子的に変換される。いくつかの状況では(たとえば、デスクトップコンピュータの文脈では)、ローカル・クライアント・デバイスは物理的キーボードを備える。他の状況では(たとえば、タブレットまたはスマートフォンの文脈で)、ローカル・クライアント・デバイスは表示キーボードを提供するタッチスクリーンを備える。
ローカル・クライアント・デバイスのタッチスクリーンは最初に、ユーザがリモート・サーバ・デバイスによって提供される仮想デスクトップまたは仮想アプリケーション環境にテキスト入力することを可能にする英語(米国)タッチキーボードを表示すると仮定する。または、ローカル・クライアント・デバイスは物理的キーボードを備えると仮定する。ユーザがローカル・クライアント・デバイスのタッチキーボードまたは物理的キーボード上にタイプするにつれて、ユーザが行うキーストロークは特定の英語文字に適切に変換される。
ローカル・クライアント・デバイスは、ユーザが異なるキーボードレイアウト間で(たとえば、英語キーボードレイアウトから、フランス語キーボードレイアウトに、またはドイツ語キーボードレイアウトに)切り替えることを可能にするように構成されているとさらに仮定する。このキーボード切替え特徴がユーザに利用可能である場合、ユーザは、個人的な選好により、英語キーボードレイアウトから異なるキーボードレイアウトのうちの1つに切り替えることを試みることができる。しかしながら、ローカル・クライアント・デバイス上でキーボード切替えを行った後で、ユーザはリモート・サーバ・デバイスによって提供される仮想デスクトップまたは仮想アプリケーション環境に対して現在どのキーボードが有効であるかについて混乱する場合がある。さらに、ローカル・クライアント・デバイス上でキーボード切替えを行った後で、ユーザが入力したキーストロークがリモート・サーバ・デバイスによって提供される仮想デスクトップまたは仮想アプリケーション環境によって誤解される可能性がある。
改善された技法は、仮想セッション中にサーバ・サイド・キーボード・レイアウトをクライアント・サイド・キーボード・レイアウトに電子的に同期させることに関連する。そのような同期は、どのキーボードレイアウトが現在有効であるかについてユーザの混乱を除く。さらに、そのような同期は、クライアント・サイド・テキスト入力がサーバサイド環境によって誤解されないことを確実にする。したがって、ユーザ経験が大いに改善される。
一実施形態は、ユーザ入力を処理するコンピュータ実装方法に関する。このコンピュータ実装方法は、ユーザが動作させるクライアント装置とサーバ・ベース・ユーザ環境へのアクセスを提供するサーバ装置との間に仮想セッションを生成するステップを含む。この方法は、仮想セッションの生成時に、サーバ装置のサーバ・キーボード・レイアウトをクライアント装置のクライアント・キーボード・レイアウトに整合させるステップをさらに含む。この方法は、サーバ・キーボード・レイアウトがクライアント・キーボード・レイアウトに整合した後で、サーバ装置が仮想セッション中にサーバ・ベース・ユーザ環境へのアクセスをユーザに提供する間に、サーバ装置のサーバ・キーボード・レイアウトに従って、ユーザからのキーストローク入力をサーバ・ベース・ユーザ環境に提供するステップをさらに含む。
いくつかの構成では、サーバ・キーボード・レイアウトをクライアント・キーボード・レイアウトに整合させるステップは、サーバ装置の最初のサーバ・キーボード・レイアウトをクライアント装置の最初のクライアント・キーボード・レイアウトと折衝するためのキーボード結合動作を実行するステップを含む。そのような構成は、ユーザがクライアント・サイド・キーボード・レイアウトに切り替えることを可能にするタッチキーボードを備えるクライアント装置に適している。
いくつかの構成では、キーボード結合動作を実行するステップは、
(i) 互換性のあるサーバ・キーボード・レイアウトのセットを識別するキーボード結合要求をサーバ装置からクライアント装置に伝えるステップと、
(ii) キーボード結合要求に応答して、クライアント装置が互換性のあるサーバ・キーボード・レイアウトのセットのどのレイアウトを使用するように現在構成されているかを識別するキーボード結合応答をクライアント装置からサーバ装置に伝えるステップと、
(iii) キーボード結合応答に応答して、キーボード結合コミットメッセージをサーバ装置からクライアント装置に伝えるステップと
を含む。キーボード結合コミットメッセージは、キーボード結合応答内で識別されるキーボードレイアウトをクライアント装置およびサーバ装置にサポートさせる。
いくつかの構成では、クライアント装置とサーバ装置との間に仮想セッションを生成するステップは、コンピュータネットワークを通してクライアント装置とサーバ装置との間に仮想チャネルを確立するステップを含む。これらの構成では、キーボード結合要求、キーボード結合応答、およびキーボード結合コミットメッセージは、確立された仮想チャネルを通して伝えられる。
いくつかの構成では、キーボード結合応答は、クライアント装置がサポートするように構築および構成されたキーボード特徴のセット(たとえば、キーボードタイプ、キーボード・レイアウト・セット、現在のプラットフォームなど)をさらに識別する。
いくつかの構成では、この方法は、ユーザからのキーストローク入力がある時間期間にわたってサーバ・ベース・ユーザ環境に提供された後で、サーバ装置のサーバ・キーボード・レイアウトをクライアント装置の別のクライアント・キーボード・レイアウトに整合させるステップをさらに含む。
いくつかの構成では、サーバ装置のサーバ・キーボード・レイアウトをクライアント装置の別のクライアント・キーボード・レイアウトに整合させるステップは、キーボードレイアウト変更コマンドをユーザから受信し、ユーザからのキーボードレイアウト変更コマンドに応答して、新しいクライアント・キーボード・レイアウトをロードし、サーバ装置のサーバ・キーボード・レイアウトをクライアント装置の最初のクライアント・キーボード・レイアウトとは異なるクライアント装置の新しいクライアント・キーボード・レイアウトに同期させるためのシステムデフォルトキーボードレイアウトとして新しいクライアント・キーボード・レイアウトを設定するステップを含む。
いくつかの構成では、最初のクライアント・キーボード・レイアウトは、第1の言語用の第1のキー構成を含む。さらに、新しいクライアント・キーボード・レイアウトは、第1の言語用の第1のキー構成とは異なる第2の言語用の第2のキー構成を含む。さらに、キーボードレイアウト変更コマンドをユーザから受信するステップは、タッチキーボード用のキーボード言語インジケータまたはユーザが動作させるクライアント装置のオペレーティングシステムタスクバーを介して、キーボード選択をユーザから取得するステップを含む。キーボード選択は、第1の言語用の第1のキー構成の代わりに第2の言語用の第2のキー構成を識別する。
いくつかの構成では、この方法は、キーボードレイアウト変更動作が実行された後で、サーバ装置が仮想セッション中にサーバ・ベース・ユーザ環境へのアクセスをユーザに提供する間に、サーバ装置の新しいサーバ・キーボード・レイアウトに従って、ユーザからのさらなるキーストローク入力をサーバ・ベース・ユーザ環境に提供するステップをさらに含む。
いくつかの構成では、この方法は、最初のサーバ・キーボード・レイアウトの代わりに新しいサーバ・キーボード・レイアウトを使用するように各サーバアプリケーションに通知するためのキーボード変更メッセージのセットをサーバ・ベース・ユーザ環境内で実行するサーバアプリケーションのセットにブロードキャストするステップをさらに含む。
別の実施形態は、ユーザ入力を処理するための命令のセットを記憶した非一時的コンピュータ可読媒体を有するコンピュータプログラム製品に関する。命令のセットは、コンピュータ化回路によって実行されるとき、コンピュータ化回路に、
(A) ユーザが動作させるクライアント装置とサーバ・ベース・ユーザ環境へのアクセスを提供するサーバ装置との間に仮想セッションを生成し、
(B) 仮想セッションの生成時に、サーバ装置のサーバ・キーボード・レイアウトをクライアント装置のクライアント・キーボード・レイアウトに整合させ、
(C) サーバ・キーボード・レイアウトがクライアント・キーボード・レイアウトに整合した後で、サーバ装置が仮想セッション中にサーバ・ベース・ユーザ環境へのアクセスをユーザに提供する間に、サーバ装置のサーバ・キーボード・レイアウトに従って、ユーザからのキーボード入力をサーバ・ベース・ユーザ環境に提供する方法を実行させる。
さらに別の実施形態は、ユーザインターフェースと、メモリと、ユーザインターフェースおよびメモリに結合された制御回路とを含むクライアント装置に関する。メモリは命令を記憶し、命令は、制御回路によって実行されるとき、制御回路に、
(A) クライアント装置とサーバ・ベース・ユーザ環境へのアクセスを提供するサーバ装置との間に仮想セッションを生成させ、
(B) 仮想セッションの生成時に、サーバ装置のサーバ・キーボード・レイアウトをクライアント装置のクライアント・キーボード・レイアウトに整合させ、
(C) サーバ・キーボード・レイアウトがクライアント・キーボード・レイアウトに整合した後で、サーバ装置が仮想セッション中にユーザインターフェースを介してサーバ・ベース・ユーザ環境へのアクセスをユーザに提供する間に、サーバ装置のサーバ・キーボード・レイアウトに従って、ユーザインターフェースを介してユーザからのキーボード入力をサーバ・ベース・ユーザ環境に提供させる。
さらに、別の実施形態は、ネットワークインターフェースと、メモリと、ネットワークインターフェースおよびメモリに結合された制御回路とを含むサーバ装置に関する。メモリは命令を記憶し、命令は、制御回路によって実行されるとき、制御回路に、
(A) ユーザが動作させるクライアント装置とサーバ・ベース・ユーザ環境へのアクセスを提供するサーバ装置との間に仮想セッションを生成させ、
(B) 仮想セッションの生成時に、サーバ装置のサーバ・キーボード・レイアウトをクライアント装置のクライアント・キーボード・レイアウトに整合させ、
(C) サーバ・キーボード・レイアウトがクライアント・キーボード・レイアウトに整合した後で、サーバ装置が仮想セッション中にサーバ・ベース・ユーザ環境へのアクセスをユーザに提供する間に、サーバ装置のサーバ・キーボード・レイアウトに従って、ユーザからのキーボード入力をサーバ・ベース・ユーザ環境に提供させる。
クラウドの文脈で、コンピュータ化回路のうちの少なくともいくつかは、ネットワーク上で配信されるリモートコンピュータリソースによって形成されることを理解されたい。そのようなコンピュータ化環境は、ホストされたサービスおよびリソース(たとえば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど)の配信、強化されたスケーラビリティなど、いくつかの利点を提供することができる。
他の実施形態は、電子システムおよび装置、処理回路、コンピュータプログラム製品などに関する。いくつかの実施形態は、仮想セッションにおいてサーバ・サイド・キーボード・レイアウトをクライアント・サイド・キーボード・レイアウトに同期させることに関連する様々な方法、電子構成要素および回路に関する。
前述のおよび他の目的、特徴、および利点は、異なる図面を通して同様の参照符号が同じ部分を指す添付の図面に示される、本開示の特定の実施形態の以下の説明から明らかになるであろう。図面は、必ずしも一定の尺度であるとは限らず、代わりに、本開示の様々な実施形態の原理を示すことに重点が置かれている。
サーバ装置のサーバ・サイド・キーボード・レイアウトがクライアント装置のクライアント・サイド・キーボード・レイアウトに同期させるコンピュータ化設定のブロック図である。 ある例示的なキーボードレイアウトのブロック図である。 キーボード結合動作中の通信のシーケンス図である。 キーボードレイアウト同期動作の特定の詳細を示すブロック図である。 図1のコンピュータ化設定によって実行される手順のフローチャートである。
改善された技法は、仮想セッション中にサーバ・サイド・キーボード・レイアウトをクライアント・サイド・キーボード・レイアウトに電子的に同期させることに関連する。そのような同期は、どのキーボードレイアウトが現在有効であるかについてユーザの混乱を除く。さらに、そのような同期は、クライアント・サイド・テキスト入力がサーバサイドの環境によって誤解されないことを確実にする、したがって、ユーザ経験が大いに改善される。
本明細書で開示する特定の実施形態、例、および実装形態の個々の特徴は、技術的に道理にかなう所望の方法で組み合わされてよい。さらに、そのような特徴は、それにより、すべての考えられる組合せ、置換、および変形形態を形成するためにこのように組み合わされるが、ただし、そのような組合せ、置換、および/または変形形態が明示的に除外されるか、または非現実的である範囲を除く。そのような組合せ、置換、および変形形態に対するサポートは本文書に存在すると見なされる。
図1は、仮想セッション中にサーバ・サイド・キーボード・レイアウトをクライアント・サイド・キーボード・レイアウトに電子的に同期させるのに適したコンピュータ化設定20を示す。コンピュータ化設定20は、クライアント装置22と、サーバ装置24と、通信媒体26とを備える。
クライアント装置22は、ユーザが通信媒体26を通してサーバ装置24上でリソース(たとえば、アプリケーション、コンテンツ、サービスなど)にアクセスする仮想セッションに対するフロンドエンドとして動作するように構築および構成される。したがって、ユーザは、有用な作業を実行することができる。適切なクライアント装置は、ユーザワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、タブレットデバイス、スマートフォンなどを備える。
サーバ装置24は、サーバサイドのリソース(たとえば、アプリケーション、コンテンツ、サービスなど)へのアクセスを1つまたは複数のクライアント装置22に提供するように構築および構成される。いくつかの構成では、サーバ装置24は、仮想機械をホストする仮想化プラットフォームである。適切なサーバ装置24は、サーバコンピュータ、サーバファーム、サーバ設備またはキャンパス、分散回路などを備える。
通信媒体26は、コンピュータ化設定20の様々な構成要素が電子信号28を交換すること(たとえば、二重矢印28を参照)を可能にするために、それらの構成要素を一緒に接続するように構築および構成される。通信媒体26が、バックボーン、ハブおよびスポーク、ループ、不規則性(irregular)、それらの組合せなどを含めて、様々は異なるトポロジーを有することが可能であることを示すために、通信媒体26の少なくとも一部分はクラウドとして示されている。これらの線に沿って、通信媒体26は、銅線データ通信デバイスおよびケーブル、光ファイバデバイスおよびケーブル、ワイヤレスデバイス、それらの組合せなどを備えていてもよい。さらに、通信媒体26は、LANベースの通信、セルラー通信、基本電話サービス(POTS)通信、それらの組合せなどをサポートすることができる。
図1に示すように、クライアント装置22は、通信インターフェース30と、ユーザインターフェース32と、メモリ34と、処理回路36とを備えている。そのようなクライアントサイド構成要素は、バス、ケーブル、コネクタ、回路基板、および他のハードウェアを介して一緒に電子的に接続され得る。
通信インターフェース30は、クライアント装置22を通信媒体26に接続するように構築および構成される。したがって、通信インターフェース30は、クライアント装置22がコンピュータ化設定20の他の構成要素と通信することを可能にする。そのような通信は、ラインベースおよび/またはワイヤレス(すなわち、IPベース、セルラー、それらの組合せなど)であってよい。
ユーザインターフェース32は、ユーザから入力を受信し、ユーザに出力を提供するように構築および構成される。独立型コンピュータの文脈で、ユーザインターフェース32は、標準キーボード、ポインティングデバイス(たとえば、マウス)およびディスプレイによって形成され得る。タブレットまたはスマートフォンの文脈で、ユーザインターフェース32は、タッチスクリーン、小型キーボード、ウェブカム、マクロフォン、スピーカ、加速度計など、他の構成要素によって形成され得る。
メモリ34は、揮発性記憶装置(たとえば、DRAM、SRAMなど)と不揮発性記憶装置(たとえば、フラッシュメモリ、磁気ディスクドライブなど)の両方を表すことが意図される。メモリ34は、オペレーティングシステム42と、サーバ装置24との仮想セッションを確立および管理するための仮想クライアントアプリケーションおよびデータのセット44と、他のアプリケーションおよびデータ46とを含めて、様々なソフトウェア構成40を記憶する。
処理回路36は、メモリ34内に記憶された様々なソフトウェア構成物40に従って動作するように構築および構成される。具体的には、処理回路36は、オペレーティングシステム42を実行するとき、クライアント装置22の様々なリソース(たとえば、メモリ割振り、プロセッササイクル、ハードウェア互換性など)を管理する。
さらに、仮想化アプリケーションおよびデータ44のセットに従って動作する処理回路36は、クライアント装置22のユーザの代わりにサーバ装置24との仮想セッションを生成および維持するための専用制御回路を形成する。そのような動作中に、以下でさらに詳細に説明されるように、処理回路36は、混乱および誤解を回避し、それにより、ユーザ経験を改善するために、サーバ・サイド・キーボード・レイアウト52をクライアント・サイド・キーボード・レイアウト50に同期させる。そのような同期に関する通信は、通信媒体26を通してクライアント装置22とサーバ装置24との間で確立される仮想チャネル54を通して実行され得る(たとえば、図1の矢印54を参照)。
さらに、他のアプリケーションおよびデータ46に従って動作する処理回路36は、他の動作を実行するための専用回路を形成する。たとえば、処理回路36は、ユーザが、ウェブをブラウズする、ビデオを見る、セルラーフォン呼出しを行う、写真を撮るなど、他のローカル・ユーザ・レベル動作を実行することを可能にし得る。さらに、処理回路36は、ユーザが、オンライン会議を介して1つまたは複数の他のユーザと遠隔に協力すること、文書および他のコンテンツを共有すること、オンライン仮想チーム環境(すなわち、オンライン作業空間)内で作業することなどを可能にし得る。
上述の処理回路36は、専用ソフトウェアを実行する1つまたは複数のプロセッサ(または、コア)、特定用途向けIC(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)および関連プログラム、個別構成要素、アナログ回路、他のハードウェア回路、それらの組合せなどを介することを含めて、様々な方法で実装され得ることを理解されたい。ソフトウェアを実行する1つまたは複数のプロセッサの文脈で、コンピュータプログラム製品58は、ソフトウェアのすべてまたは部分をクライアント装置22に提供することができる。コンピュータプログラム製品58は、クライアント装置22の1つまたは複数の動作を制御するための命令のセットを記憶した非一時的および不揮発性コンピュータ可読媒体を有する。適切なコンピュータ可読記憶媒体の例は、CD−ROM、フラッシュメモリ、ディスクメモリ、テープメモリなど、不揮発性方法で命令を記憶した有形製造品および有形装置を含む。
図1にさらに示すように、サーバ装置24は、ネットワークインターフェース60と、メモリ64と、処理回路66とを備える。そのようなサーバサイド構成要素は、バス、ケーブル、コネクタ、回路基板、および他のハードウェアを介して一緒に電子的に接続され得る。
ネットワークインターフェース60は、サーバ装置24を通信媒体26に接続するように構築および構成される。したがって、ネットワークインターフェース60は、サーバ装置24がコンピュータ化設定20の他の構成要素と通信することを可能にする。そのような通信は、ラインベースおよび/またはワイヤレス(すなわち、IPベース、セルラー、それらの組合せなど)であってよい。
メモリ64は、揮発性記憶装置(たとえば、DRAM、SRAMなど)と不揮発性記憶装置(たとえば、フラッシュメモリ、磁気ディスクドライバなど)の両方を表すことが意図される。メモリ64は、オペレーティングシステム72と、クライアント装置22との仮想セッションを確立および管理するための仮想化アプリケーションおよびデータ74のセットと、他のアプリケーションおよびデータ76とを含めて、様々なソフトウェア構成物70を記憶する。
処理回路66は、メモリ64内に記憶された様々なソフトウェア構成物70に従って動作するように構築および構成される。具体的には、処理回路66は、オペーティングシステム72を実行するとき、サーバ装置24の様々なリソース(たとえば、メモリ割振り、プロセッササイクル、ハードウェア互換性など)を管理する。
さらに、仮想化アプリケーションおよびデータ74のセットに従って動作する処理回路66は、1つまたは複数のクライアント装置22との仮想セッションを生成および維持するための専用制御回路を形成する。そのような動作中、以下でさらに詳細に説明するように、処理回路66は、混乱および誤解を回避し、それにより、ユーザの経験を改善するために、仮想チャネル54を通してサーバ・サイド・キーボード・レイアウト52をクライアント・サイド・キーボード・レイアウト50に同期させる。
さらに、他のアプリケーションおよびデータ76に従って動作する処理回路66は、他の動作を実行するための専用回路を形成する。たとえば、処理回路66は、サービスおよびユーティリティ(たとえば、仮想セッション中にユーザに提供されるアプリケーションおよびサービス、セキュリティなど)用のコード、管理ツール(たとえば、ユーザ登録、ユーザアカウント管理など)用のコード、サーバベースの動作用のコードなど、他のサーバレベル動作を実行することができる。
上述の処理回路66は、専用ソフトウェアを実行する1つまたは複数のプロセッサ(または、コア)、特定用途向けIC(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)および関連プログラム、個別構成要素、アナログ回路、他のハードウェア回路、それらの組合せなどを介することを含めて、様々な方法で実装され得ることを理解されたい。ソフトウェアを実行する1つまたは複数のプロセッサの文脈で、コンピュータプログラム製品78は、ソフトウェアのすべてまたは部分をサーバ装置24に提供することができる。コンピュータプログラム製品78は、サーバ装置24の1つまたは複数の動作を制御するための命令のセットを記憶した非一時的および不揮発性コンピュータ可読媒体を有する。適切なコンピュータ可読記憶媒体の例は、CD−ROM、フラッシュメモリ、ディスクメモリ、テープメモリなど、不揮発性方法で命令を記憶した有形製造品および有形装置を含む。次に、図2を参照してさらなる詳細が提供される。
図2は、クライアント・サイド・キーボード・レイアウト50および/またはサーバ・サイド・キーボード・レイアウト52(やはり図1を参照)に適したある例示的なキーボードレイアウト100(すなわち、QWERTYキーボードレイアウト)を示す。他のキーボードレイアウト、たとえば、QWERTZ、AZERTY、Dvorak、Colemak、Workman、Norman、JCUKEN、Neo、Plover、BEPO、トルコ語、ブラーフミー系文字、InScript、クメール語、タイ語、シンハラ語、チベット語、ドゾンカ語、アラブ語、アルメニア語、キリル語、他の外国語文字キーボードレイアウト、カスタム化および/または個人化されたキーボードレイアウトなども使用に適することを理解されたい。
クライアント装置22上で、ユーザは、(たとえば、タッチスクリーン上に表示される)クライアント・サイド・キーボード・レイアウト50を見ること、ならびにクライアント・サイド・キーボード・レイアウト50のキーを作動させることができる。サーバ装置24上で、サーバ・サイド・キーボード・レイアウト52は内部的に管理される。
図2に示すように、キーボードレイアウト100は、それぞれの文字112(1)、112(2)、112(3)、...(集合的に、文字112)にマップするキーボードロケーション(または、キー)110(1)、110(2)、110(3)、...(集合的に、キーボードロケーション110)を含む。本明細書で文字という用語は、アルファベット文字、数字、記号、他のテキストベースのメタ文字、機能、方向、動作、それらの組合せなどを意味するために使用されることを理解されたい。
図2の例示的なキーボードレイアウト100は、現在、クライアント・サイド・キーボード・レイアウト50ならびにサーバ・サイド・キーボード・レイアウト52であると仮定する。この例では、キーボードレイアウト100は、英語(米国)キーボードレイアウトであり、この場合、ロケーション110(1)は「q」にマップし、ロケーション110(2)は「w」にマップし、ロケーション110(3)は「e」にマップする、などである。すなわち、ユーザが(たとえば、タッチ、キー押下、または他のキーストロークジェスチャによって)ロケーション110(1)を選択するとき、ユーザは「q」を入力する。同様に、ユーザがロケーション110(2)を選択するとき、ユーザは「w」を入力する、などである。
いくつかの構成では、ユーザがキーストロークを入力するとき、特定のロケーション110の特定の文字112への変換がクライアント装置22内で生じ、クライアント装置22は、特定の文字112を識別する電子信号を処理のためにサーバ装置24に送る。他の構成では、ユーザがキーストロークを入力するとき、クライアント装置22は、特定のロケーション110を識別する電子信号をサーバ装置24に送り、特定のロケーション110の特定の文字112への変換がサーバ装置24内で生じる。
ユーザが、(たとえば、特殊キー122にタッチすることによって、タッチスクリーンのタスクバー上の入力言語インジケータをアクティブ化することによって、メニュー/タブ上をクリックすることによってなど)ユーザに他の選択可能なキーボードレイアウトを提示するメニュー120をアクティブ化すると仮定する。そのような状況では、ユーザは、次いで異なるキーボードレイアウト選択をタッチすることによって、現在のクライアント・サイド・キーボード・レイアウト50を変更することができる。たとえば、図2に示すように、ユーザは、日本語キーボードレイアウト「J」、ドイツ語キーボードレイアウト「DEU」、フランス語キーボードレイアウト「FRA」などを選択することができる。ユーザが現在のクライアント・サイド・キーボード・レイアウト50を異なるクライアント・サイド・キーボード・レイアウト50に切り替えることを選択した場合、クライアント装置22は、この変更をサーバサイド装置24に電子的に通信する。応答して、サーバサイド装置24は、サーバ・サイド・キーボード・レイアウト52をクライアント・サイド・キーボード・レイアウト50に同期させるために、サーバ・サイド・キーボード・レイアウト52を自動的に更新する。そのようなサーバサイド動作は、ユーザに透過的であり、それにより、ユーザがサーバ装置24上で同様の切替えを手動で行う負担を軽減することが好ましい。
ユーザがキーボードレイアウト変更を行った後で、クライアント装置22のタッチスクリーンは、新しく選択されたキーボードレイアウトを表示する(やはり、図1のユーザインターフェース32を参照)。新しく選択されたキーボードレイアウトに対して、キーボードロケーション110のうちの少なくとも1つまたは複数が、前のキーボードレイアウトに対して異なる文字112(たとえば、異なる文字、異なる数字、異なる記号など)にマップする。キーボードレイアウト切替えが生じると、ユーザが新しく選択されたキーボードレイアウトのキーを選択するとき、ユーザは、新しく選択されたキーボードレイアウトに従って文字、たとえば、その文字に対する異なるロケーションにより異なる文字、新しい文字、新しい機能などに入ることができる。
クライアント装置22は、仮想セッション中に専用クライアントサイド回路を形成するための専用クライアントソフトウェア(たとえば、図1の仮想クライアント装置およびデータ44を参照)を実行することを理解されたい。同様に、サーバ装置24は、仮想セッション中に専用サーバサイド回路を形成するための専用サーバソフトウェアを実行する(たとえば、図1の仮想化アプリケーションおよびデータ74を参照)。そのような回路は、たとえば、リッチなメディア転送をカプセル化するために、独立コンピュータアーキテクチャ(ICA)をサポートするために、COMポート、ビデオ、グラフィックス、スマートカード特徴を利用するためになど、クライアント装置22とサーバ装置24との間の仮想セッション交換をサポートするためにセッションレイヤにおいて仮想チャネル54(図1)を確立する。
クライアント装置22とサーバ装置24との間に仮想チャネル54が確立されると、装置22、24上の専用回路は、サーバ・サイド・キーボード・レイアウト52ならびにクライアント・サイド・キーボード・レイアウト50を同期させる。具体的には、クライアント装置22およびサーバ装置24は、最初にキーボード・レイアウト・セットを折衝して、クライアント・サイド・キーボード・レイアウト50をサーバ・サイド・キーボード・レイアウト52に同期させるためのキーボードレイアウト結合動作を最初に実行する。そのような最初の同期の後で、ユーザは、クライアント・サイド・キーボード・レイアウト50がサーバ装置24上のサーバ・サイド・キーボード・レイアウト52に整合するという自信をもってクライアント装置22を動作させることができる。さらに、ユーザが最初のクライアント・サイド・キーボード・レイアウト50から新しいクライアント・サイド・キーボード・レイアウト50に切り替える場合、クライアント装置22およびサーバ装置24は、新しいクライアント・サイド・キーボード・レイアウト50をサーバ・サイド・キーボード・レイアウト52に同期させるために電子的に協働する。したがって、どのキーボードレイアウトがサーバ装置24上で有効であるかについてユーザが混乱することはない。さらに、サーバ装置24上のテキスト入力を誤解する機会もない。次に、図3を参照してさらなる詳細が提供される。
図3は、クライアント装置22とサーバ装置24との間の仮想セッションの開始時に(やはり、図1を参照)、専用クライアントサイド回路152と専用サーバサイド回路154との間で実行されるキーボード結合動作150に関するシーケンス図を示す。ここで、ユーザは、サーバ装置24によって提供される仮想デスクトップまたは仮想アプリケーション環境(たとえば、リモートアプリケーション、遠隔に記憶されたコンテンツなど)にアクセスするために、仮想セッションを開始した可能性がある。キーボード結合動作は、クライアント装置22のクライアント・サイド・キーボード・レイアウト50セットをサーバ装置24のサーバ・サイド・キーボード・レイアウト52セットと最初に折衝する。
専用クライアントサイド回路152は、仮想クライアントアプリケーションおよびデータ44に従って動作するクライアント装置22の処理回路36によって形成される(図1)。いくつかの構成では、そのようなクライアントサイド回路152の少なくとも一部分は、たとえば、ユーザが仮想デスクトップまたは仮想アプリケーションをサーバ装置24から要求するとき、仮想セッションの始まりにロードされる動的リンクライブラリ(略してDLL)の展開によって形成される。
同様に、専用クライアントサイド回路154は、仮想化アプリケーションおよびデータ74に従って動作するサーバ装置24の処理回路76によって形成される(図1)。いくつかの構成では、そのようなサーバサイド回路154の少なくとも一部分は、サーバ装置24上に設置されたDLLによって形成される。
動作中、クライアント装置22とサーバ装置24との間に仮想セッションが生成されると、専用回路152、154は仮想チャネル54を開く(または、形成する)。仮想チャネル54を介した通信(たとえば、パケット)は通信媒体26(図1)を通して伝えられることを理解されたい。
図3を参照すると、仮想チャネル54が開かれた後で、専用サーバサイド回路154はキーボード結合要求160を専用クライアントサイド回路152に送る。キーボード結合要求160は、サーバ装置24によってサポートされる互換性のあるサーバ・サイド・キーボード・レイアウト54のセットを識別する。たとえば、キーボード結合要求160は、サーバ装置24が現在サポートを試みているサーバ・サイド・キーボード・レイアウト52の特定のセットを示す。さらに、キーボード結合要求160は、専用サーバサイド回路154がどのキーボード特徴(たとえば、キーボードタイプ、現在のプラットフォームなど)をサポートし得るかをさらに識別する。
キーボード結合要求160に応答して、専用クライアントサイド回路152は、互換性のあるサーバ・サイド・キーボード・レイアウト54のセットをキーボード結合要求160から読み取り、クライアント装置22が互換性のあるサーバ・サイド・キーボード・レイアウト54のうちのどれをサポートするように構成されているかを決定するキーボード査定動作162を実行する。そのような査定は、クライアント装置22の特定のオペレーティングプラットフォーム、特定のドライバが設置されているかどうか、特定のソフトウェア更新またはアップグレードが整っているかどうかなど、様々な要因に基づいてよい。
専用クライアントサイド回路152は、次いで、互換性のあるクライアント・サイド・キーボード・レイアウト50のセットとして、クライアント装置22が互換性のあるサーバ・サイド・キーボード・レイアウト52のセットのうちのどれをサポートするように構成されているかを識別するキーボード結合応答164を生成し、キーボード結合応答164を専用サーバサイド回路154に送る。さらに、キーボード結合応答164は、専用クライアントサイド回路152がどのキーボード特徴(たとえば、キーボードタイプ、現在のプラットフォームなど)をサポートし得るかをさらに識別する。
キーボード結合応答164に応答して、専用サーバサイド回路154は、それぞれのキーボードレイアウトからサーバ装置24がクライアント装置22と互換性があることを確認するキーボード確認動作166を実行する。さらに、専用サーバサイド回路154は、今後の使用のために、キーボード結合応答164によって識別されたキーボード特徴を記憶する。
次に、専用サーバサイド回路154は、キーボード結合コミットメッセージ(または、コマンド)168を生成して、専用クライアントサイド回路152に送る。キーボード結合コミットメッセージ168は、専用サーバサイド回路154がサーバ・サイド・キーボード・レイアウト52の特定のセットが有効であると見なすこと、すなわち、サーバ装置24とクライアント装置22の両方によってサポートされるキーボードレイアウトを専用クライアントサイド回路152に知らせる。
キーボード結合コミットメッセージ168に応答して、専用クライアントサイド回路152は、キーボード結合コミットメッセージ168をサーバ・サイド・キーボード・レイアウト52の特定のセットにコミットさせるためのコマンドと見なす。それに応じて、専用クライアントサイド回路152は、特定のサーバ・キーボード・レイアウト52セットに整合させるためにクライアント・サイド・キーボード・レイアウト50セットを正式に保存する。
この時点で、クライアント装置22およびサーバ装置24は、使用のためにどのキーボードレイアウトが利用可能であるかを折衝している。具体的には、クライアント装置22およびサーバ装置24は、互換性のあるキーボードレイアウトの共通セットに関して合意している。
キーボードレイアウトの折衝が完了した後で、専用クライアントサイド回路152は、キーボードレイアウト識別子(KLI)メッセージ180を専用サーバサイド回路154に送る。KLIメッセージ180は、キーボードレイアウト識別子として、現在のクライアント・サイド・キーボード・レイアウト50を指定する、カプセル化されたキーボードレイアウト情報を含み、これにより、サーバ装置24がクライアント・サイド・キーボード・レイアウト50に関してその知識を同期させること(または、更新すること)を可能にする。具体的には、KLIメッセージ180は、入力ロケール、キーボードタイプ、キーボードレイアウト名など、様々な属性を含む。
ユーザがその後、クライアント・サイド・キーボード・レイアウト50を新しいクライアント・サイド・キーボード・レイアウト50に切り替えた場合、専用クライアントサイド回路152は、新しいクライアント・サイド・キーボード・レイアウト50が折衝されたキーボードレイアウト52の中にあるかどうか、すなわち、新しいクライアント・サイド・キーボード・レイアウト50が互換性のあるキーボードレイアウトの共通セットに属するかどうかを検査する。属する場合、専用クライアントサイド回路152は別のキーボードレイアウト識別子(KLI)メッセージ180を専用サーバサイド回路154に送る。KLIメッセージ180は、キーボードレイアウト識別子として、新しいクライアント・サイド・キーボード・レイアウト50を指定する、カプセル化されたキーボードレイアウト情報を含み、これにより、サーバ装置24がクライアント・サイド・キーボード・レイアウト50に関してその知識を同期させること(または、更新すること)を可能にする。具体的には、KLIメッセージ180は、入力ロケール、キーボードタイプ、キーボードレイアウト名など、様々な属性を含む。次に、図4を参照してさらなる詳細が提供される。
図4は、クライアント装置22とサーバ装置24との間のキーボードレイアウト同期を維持するために、専用サーバサイド回路154が専用クライアントサイド回路152から受信するキーボード情報を専用サーバサイド回路154がどのように配信するかの特定の詳細を示すブロック図である。示すように、サーバ装置24は、仮想セッション中にユーザによってアクセスされる仮想デスクトップおよび/または仮想アプリケーション環境に対する、専用サーバサイド回路154ならびに実行中のオペレーティングシステム200、および実行中のアプリケーション210(1)210(2)、210(3)、210(4)、...(集合的に、実行中のアプリケーション210)を含む。いくつかの構成では、仮想デスクトップおよび/または仮想アプリケーション環境は、仮想化プラットフォーム上でホストされる仮想機械を介して提供される。
図4に示すように、専用クライアントサイド回路152からKLIメッセージ180を受信するとすぐに、専用サーバサイド回路154は、選択されたキーボードレイアウトをアクティブ化し、選択されたキーボードレイアウトに基づいてデフォルト入力言語を設定するために、ランナーオペレーティングシステム200とインターフェースする。すなわち、矢印220を参照。さらに、専用サーバサイド回路154は、実行中のサーバ・サイド・アプリケーション210にその入力言語変更を通知するためのメッセージ230をブロードキャストする。したがって、すべての実行中のサーバ・サイド・アプリケーションは、クライアント装置22から、クライアント装置22上の選択されたキーボードレイアウト50に一致する言語(たとえば、英語、ドイツ語、フランス語、日本語など)でユーザテキストを入力するように知らされる。これにより、クライアント装置22およびサーバ装置24は、キーボードレイアウト同期をリッチかつ頑強に維持し、ユーザテキスト入力を適切に解釈することができる。
ユーザがクライアント・サイド・キーボード・レイアウト50を切り替える(たとえば、元のキーボードレイアウトに再度切り替える、新しいキーボードレイアウトに切り替えるなどする)たびに、このキーボード更新プロセスが繰り返されることを理解されたい。したがって、クライアント・サイド・キーボード・レイアウト50およびサーバ・サイド・キーボード・レイアウト52は連続的に同期される。次に、図5を参照してさらなる詳細が提供される。
図5は、キーボードレイアウトを同期させるときにコンピュータ化設定20の回路によって実行される手順300のフローチャートである。302において、回路は、ユーザが動作させるクライアント装置とサーバ・ベース・ユーザ環境へのアクセスを提供するサーバ装置との間に仮想セッションを生成する。そのようなセッションは、ユーザが有用な作業を実行するために、サーバ装置24上の仮想デスクトップまたは仮想アプリケーション環境へのアクセスを提供するようにクライアント装置22に指示することに応答し得る(やはり、図1を参照)。
304において、回路は、サーバ装置のサーバ・キーボード・レイアウト52をクライアント装置のクライアント・キーボード・レイアウト50に整合させる。具体的には、回路は、サーバ装置の最初のサーバ・キーボード・レイアウト52をクライアント装置の最初のクライアント・キーボード・レイアウト50に同期させるために(やはり、図3を参照)、キーボード結合動作およびキーボードレイアウト同期動作を実行する。後で、サーバ・キーボード・レイアウト52をクライアント・キーボード・レイアウト50に整合させるために、クライアント装置およびサーバ装置は、サーバ・キーボード・レイアウト52をクライアント・キーボード・レイアウト50に更新するためのキーボード更新動作を実行するために引き続き通信する。
306において、回路は、サーバ装置が仮想セッション中にサーバ・ベース・ユーザ環境へのアクセスをユーザに提供する間に、サーバ装置のサーバ・キーボード・レイアウト52に従って、ユーザからのキーストローク入力をサーバ・ベース・ユーザ環境に提供する。そのような動作は、ユーザが仮想セッションを終了するまで、または(たとえば、304に戻ることによって)キーボードレイアウトを切り替えるまで続く。
上述のように、改善された技法は、仮想セッション中にサーバ・サイド・キーボード・レイアウト52をクライアント・サイド・キーボード・レイアウト50に電子的に同期させることに関する。そのような同期は、どのキーボードレイアウトが現在有効であるかについてユーザの混乱を除く。さらに、そのような同期は、クライアント・サイド・テキスト入力がサーバサイド環境によって誤解されないことを確実にする。したがって、ユーザ経験が大いに改善される。
さらに、上述の技法は、クライアントとサーバとの間の同期を単に提供する以上のことを意味することを理解されたい。むしろ、これらの技術は、仮想セッション中にサーバ装置のサーバ・キーボード・レイアウト52をクライアント装置のクライアント・キーボード・レイアウト50に整合させるための調整された整合動作の実行に関連する。そのような整合は、どのキーボードレイアウトが現在有効であるかについての混乱を除くこと、ならびに、サーバサイド環境による誤解を防ぐことによって技術を改善する。結果として、上述の技法は、ユーザが仮想セッション中にサーバ・ベース・ユーザ環境(たとえば、仮想デスクトップ環境)にアクセスする場合、ユーザの経験を改善する。
本開示の様々な実施形態が具体的に示され説明されてきたが、添付の請求項によって定義される本開示の趣旨および範囲から逸脱せずに、その中で形態および詳細への様々な変更を行うことができることを当業者は理解されよう。
たとえば、コンピュータ化設定20の様々な構成要素は、クラウド内で実装されること、またはクラウドに、すなわち、ネットワーク上で提供されるリモートコンピュータリソースに「移転させること」が可能であることを理解されたい。ここで、様々なコンピュータリソースは、密に(たとえば、単一の設備内のサーバファーム)または比較的遠い距離にわたって(たとえば、キャンパスにわたって、様々な都市内で、全国でなど)提供され得る。これらの状況では、リソースを接続するネットワークは、バックボーン、ハブおよびスポーク、ループ、不規則性、それらの組合せなどを含めて、様々な異なるトポロジーを有することができる。さらに、ネットワークは、銅線データ通信デバイスおよびケーブル、光ファイバデバイスおよびケーブル、ワイヤレスデバイス、それらの組合せなどを含み得る。さらに、ネットワークは、LANベースの通信、SANベースの通信、それらの組合せなどをサポートすることができる。
さらに、上記で提供されたキーボード切替え例は、一例として、タッチスクリーンによって提供されるグラフィカルキーボードに対処したことを理解されたい。いくつかの構成では、上述の改善は、ユーザが、タッチスクリーンによって提供されるグラフィカルキーボードの代わりに、キーボード言語設定またはオペレーティングシステム42(図1)によって提供されるスクリーンのインジケータを通して選択され得るキーボードレイアウトを備えた物理的キーボードを使用する状況に適用される。いくつかの構成では、上述の改善は、ユーザが第1の物理的キーボードを第2の物理的キーボードに置換する状況に適用される。いくつかの構成では、様々な物理的キーボードはプラグアンドプレイであり、クライアント装置22上の自動検出によって特定のタイプのキーボードレイアウトが検出される。これらの構成では、クライアント装置22は、新しいクライアント・サイド・キーボード・レイアウト50に対する変更をサーバ装置24に知らせるKLIメッセージ180(図3および図4)をサーバ装置24に送り、サーバ装置24は、サーバ・サイド・キーボード・レイアウト52を新しいクライアント・キーボード・レイアウト50に同期させることによって応答する。そのような修正および拡張は、本開示の様々な実施形態に属することが意図される。

Claims (22)

  1. ユーザが動作させるクライアント装置とサーバ・ベース・ユーザ環境へのアクセスを提供するサーバ装置との間に仮想セッションを生成するステップと、
    前記仮想セッションの生成時に、前記サーバ装置のサーバ・キーボード・レイアウトを前記クライアント装置のクライアント・キーボード・レイアウトに整合させるステップと、
    前記サーバ・キーボード・レイアウトが前記クライアント・キーボード・レイアウトに整合した後、前記サーバ装置が前記仮想セッション中に前記サーバ・ベース・ユーザ環境へのアクセスを前記ユーザに提供する間に、前記サーバ装置の前記サーバ・キーボード・レイアウトに従って、前記ユーザからのキーストローク入力を前記サーバ・ベース・ユーザ環境に提供するステップと、
    を含む、ユーザ入力を処理するコンピュータ実装方法。
  2. 前記サーバ・キーボード・レイアウトを前記クライアント・キーボード・レイアウトに整合させるステップが、
    前記サーバ装置の最初のサーバ・キーボード・レイアウトのセットを前記クライアント装置の最初のクライアント・キーボード・レイアウトのセットと折衝するためのキーボード結合動作を実行するステップを含む請求項1に記載のコンピュータ実装方法。
  3. 前記キーボード結合動作を実行するステップが、
    互換性のあるサーバ・キーボード・レイアウトのセットを識別するキーボード結合要求を前記サーバ装置から前記クライアント装置に伝えるステップと、
    前記キーボード結合要求に応答して、互換性のあるクライアント・キーボード・レイアウトのセットとして、前記クライアント装置が互換性のあるサーバ・キーボード・レイアウトの前記セットのうちのどれをサポートできるかを識別するキーボード結合応答を前記クライアント装置から前記サーバ装置に伝えるステップと、
    キーボード結合応答に応答して、前記キーボード結合応答内で識別される互換性のあるクライアント・キーボード・レイアウトの前記セットを使用するように前記クライアント装置にコミットさせるキーボード結合コミットメッセージを前記サーバ装置から前記クライアント装置に伝えるステップと、
    を含む請求項2に記載のコンピュータ実装方法。
  4. 前記クライアント装置と前記サーバ装置との間に前記仮想セッションを生成するステップが、
    コンピュータネットワークを通して前記クライアント装置と前記サーバ装置との間に仮想チャネルを確立するステップを含み、
    前記キーボード結合要求、前記キーボード結合応答および前記キーボード結合コミットメッセージが、前記確立された仮想チャネルを通して伝えられる請求項3に記載のコンピュータ実装方法。
  5. 前記サーバ・キーボード・レイアウトを前記クライアント・キーボード・レイアウトに整合させるステップが、
    キーボードレイアウト表示コマンドを前記クライアント装置から受信し、前記キーボードレイアウト表示コマンドに応答して、前記サーバ装置の前記サーバ・キーボード・レイアウトを前記クライアント装置の前記クライアント・キーボード・レイアウトに同期させるためのキーボードレイアウト同期動作を実行するステップを含む請求項3に記載のコンピュータ実装方法。
  6. 前記ユーザからの前記キーストローク入力がある時間期間にわたって前記サーバ・ベース・ユーザ環境に提供された後で、前記サーバ装置の別のサーバ・キーボード・レイアウトを前記クライアント・キーボード・レイアウトとは異なる前記クライアント装置の別のクライアント・キーボード・レイアウトに整合させるステップを含む請求項1に記載のコンピュータ実装方法。
  7. 前記サーバ装置の前記サーバ・キーボード・レイアウトを前記クライアント装置の前記別のクライアント・キーボード・レイアウトに整合させるステップが、
    キーボードレイアウト変更コマンドを前記ユーザから受信し、前記ユーザからの前記キーボードレイアウト変更コマンドに応答して、前記サーバ装置の前記別のサーバ・キーボード・レイアウトを前記クライアント装置の前記別のクライアント・キーボード・レイアウトに同期させるためのキーボードレイアウト変更動作を実行するステップを含む請求項6に記載のコンピュータ実装方法。
  8. 前記クライアント装置が、前記クライアント・キーボード・レイアウトとして、第1の言語用の第1のキー構成を含む第1のクライアント・キーボード・レイアウトを最初に使用し、前記キーボードレイアウト変更コマンドを前記ユーザから受信するステップが、
    前記ユーザが前記第1のクライアント・キーボード・レイアウトから、第2の言語用の第2のキー構成を含む第2のクライアント・キーボード・レイアウトに切り替えることに応答して、当該変更を前記サーバ装置に電子的に伝達するステップを含む請求項7に記載のコンピュータ実装方法。
  9. 前記キーボードレイアウト変更動作が実行された後で、前記サーバ装置が前記仮想セッション中に前記サーバ・ベース・ユーザ環境へのアクセスを前記ユーザに提供する間に、前記サーバ装置の前記別のサーバ・キーボード・レイアウトに従って、前記ユーザからのさらなるキーストローク入力を前記サーバ・ベース・ユーザ環境に提供するステップを含む請求項7に記載のコンピュータ実装方法。
  10. 前記サーバ・キーボード・レイアウトの代わりに前記別のサーバ・キーボード・レイアウトを使用するように各サーバアプリケーションに通知するためのキーボード変更メッセージのセットを、前記サーバ・ベース・ユーザ環境内で実行するサーバアプリケーションのセットにブロードキャストするステップを含む請求項7に記載のコンピュータ実装方法。
  11. ユーザ入力を処理するための命令のセットを記憶した非一時的コンピュータ可読媒体を有するコンピュータプログラム製品であって、前記命令のセットが、コンピュータ化回路によって実行されるとき、該コンピュータ化回路に、
    ユーザが動作させるクライアント装置とサーバ・ベース・ユーザ環境へのアクセスを提供するサーバ装置との間に仮想セッションを生成し、
    前記仮想セッションの生成時に、前記サーバ装置のサーバ・キーボード・レイアウトを前記クライアント装置のクライアント・キーボード・レイアウトに整合させ、
    前記サーバ・キーボード・レイアウトが前記クライアント・キーボード・レイアウトに整合した後、前記サーバ装置が前記仮想セッション中に前記サーバ・ベース・ユーザ環境へのアクセスを前記ユーザに提供する間に、前記サーバ装置の前記サーバ・キーボード・レイアウトに従って、前記ユーザからのキーストローク入力を前記サーバ・ベース・ユーザ環境に提供する方法を実行させるコンピュータプログラム製品。
  12. 前記サーバ・キーボード・レイアウトを前記クライアント・キーボード・レイアウトに整合させることが、
    前記サーバ装置の最初のサーバ・キーボード・レイアウト・セットを前記クライアント装置の最初のクライアント・キーボード・レイアウト・セットと折衝するためのキーボード結合動作を実行することを含む請求項11に記載のコンピュータプログラム製品。
  13. 前記方法が、
    前記ユーザからの前記キーストローク入力がある時間期間にわたって前記サーバ・ベース・ユーザ環境に提供された後で、前記サーバ装置の別のサーバ・キーボード・レイアウトを前記クライアント装置の別のクライアント・キーボード・レイアウトに整合させることを含む請求項12に記載のコンピュータプログラム製品。
  14. ユーザインターフェースと、
    メモリと、
    前記ユーザインターフェースおよび前記メモリに結合された制御回路と、
    を備え、
    前記メモリが命令を記憶し、該命令が、前記制御回路によって実行されるとき、前記制御回路に、
    ライアント装置とサーバ・ベース・ユーザ環境へのアクセスを提供するサーバ装置との間に仮想セッションを生成させ、
    前記仮想セッションの生成時に、前記サーバ装置のサーバ・キーボード・レイアウトを前記クライアント装置のクライアント・キーボード・レイアウトに整合させ、
    前記サーバ・キーボード・レイアウトが前記クライアント・キーボード・レイアウトに整合した後、前記サーバ装置が前記仮想セッション中に前記ユーザインターフェースを介して前記サーバ・ベース・ユーザ環境へのアクセスをユーザに提供する間に、前記サーバ装置の前記サーバ・キーボード・レイアウトに従って、前記ユーザインターフェースを介して前記ユーザからのキーストローク入力を前記サーバ・ベース・ユーザ環境に提供させるクライアント装置。
  15. 前記制御回路が、前記サーバ・キーボード・レイアウトを前記クライアント・キーボード・レイアウトに整合させるとき、
    前記サーバ装置の最初のサーバ・キーボード・レイアウト・セットを前記クライアント装置の最初のクライアント・キーボード・レイアウト・セットに同期させるためのキーボード結合動作を実行するように構築および構成される請求項14に記載のクライアント装置。
  16. 前記制御回路が、
    前記ユーザからの前記キーストローク入力がある時間期間にわたって前記サーバ・ベース・ユーザ環境に提供された後で、前記サーバ装置の別のサーバ・キーボード・レイアウトを前記クライアント装置の別のクライアント・キーボード・レイアウトに整合させる
    ようにさらに構築および構成される請求項14に記載のクライアント装置。
  17. ネットワークインターフェースと、
    メモリと、
    前記ネットワークインターフェースおよび前記メモリに結合された制御回路と、
    を備え、
    前記メモリが命令を記憶し、該命令が、前記制御回路によって実行されるとき、前記制御回路に、
    ユーザが動作させるクライアント装置とサーバ・ベース・ユーザ環境へのアクセスを提供するサーバ装置との間に仮想セッションを生成させ、
    前記仮想セッションの生成時に、前記サーバ装置のサーバ・キーボード・レイアウトを前記クライアント装置のクライアント・キーボード・レイアウトに整合させ、
    前記サーバ・キーボード・レイアウトが前記クライアント・キーボード・レイアウトに整合した後、前記サーバ装置が前記仮想セッション中に前記サーバ・ベース・ユーザ環境へのアクセスを前記ユーザに提供する間に、前記サーバ装置の前記サーバ・キーボード・レイアウトに従って、前記ユーザからのキーストローク入力を前記サーバ・ベース・ユーザ環境に提供させるサーバ装置。
  18. 前記制御回路が、前記サーバ・キーボード・レイアウトを前記クライアント・キーボード・レイアウトに整合させるとき、
    前記サーバ装置の最初のサーバ・キーボード・レイアウトのセットを前記クライアント装置の最初のクライアント・キーボード・レイアウトのセットに同期させるためのキーボード結合動作を実行するように構築および構成される請求項17に記載のサーバ装置。
  19. 前記制御回路が、
    前記ユーザからの前記キーストローク入力がある時間期間にわたって前記サーバ・ベース・ユーザ環境に提供された後で、前記サーバ装置の別のサーバ・キーボード・レイアウトを前記クライアント装置の別のクライアント・キーボード・レイアウトに整合させる
    ようにさらに構築および構成される請求項18に記載のサーバ装置。
  20. 前記サーバ装置の前記サーバ・キーボード・レイアウトを前記クライアント装置の前記クライアント・キーボード・レイアウトに整合させるステップが、
    前記サーバ装置内の専用サーバサイド回路から前記クライアント装置内の専用クライアントサイド回路に、前記サーバ装置によってサポートされるサーバ・サイド・キーボード・レイアウトのセットを識別するキーボード結合要求メッセージを送信するステップと、
    前記キーボード結合要求メッセージの受信に応答して、前記クライアント装置内の前記専用クライアントサイド回路が、前記サーバ装置によってサポートされるサーバ・サイド・キーボード・レイアウトの前記セットを前記キーボード結合要求メッセージから読み取ることと、前記クライアント装置が前記サーバ装置によってサポートされる前記サーバ・サイド・キーボード・レイアウトのうちのどれをサポートするように構成されているかを決定することとを行うキーボード査定動作を実行するステップと、
    前記クライアント装置内の前記専用クライアントサイド回路から前記サーバ装置内の前記専用サーバサイド回路に、前記サーバ装置によってサポートされる前記サーバ・サイド・キーボード・レイアウトのうちのどれを前記クライアント装置がサポートするように構成されているかを識別するキーボード結合応答メッセージを送信するステップと、
    前記キーボード結合応答メッセージの受信に応答して、前記サーバ装置内の前記専用サーバサイド回路が、キーボードレイアウトの観点から前記サーバ装置が前記クライアント装置と互換性があることを確認するキーボード確認動作を実行するステップと、
    前記サーバ装置内の前記専用サーバサイド回路から前記クライアント装置内の前記専用クライアントサイド回路に、キーボードレイアウトの特定のセットが前記サーバ装置と前記クライアント装置の両方によってサポートされることを前記専用クライアントサイド回路に知らせるキーボード結合コミットメッセージを送信するステップと、
    を含む請求項1に記載のコンピュータ実装方法。
  21. 前記クライアント装置内の前記専用クライアントサイド回路から前記サーバ装置内の前記専用サーバサイド回路に、現在のクライアント・サイド・キーボード・レイアウトを指定するキーボードレイアウト識別子メッセージを送信するステップと、
    前記キーボードレイアウト識別子メッセージの受信に応答して、前記サーバ装置内の前記専用サーバサイド回路が、前記現在のクライアント・サイド・キーボード・レイアトに基づいてデフォルト入力言語を設定するステップと、
    前記専用サーバサイド回路が、前記キーボードレイアウト識別子メッセージの受信にさらに応答して、前記クライアント装置からのユーザテキストを前記デフォルト入力言語で入力するように、前記サーバ装置上で実行する複数のサーバ・サイド・アプリケーションに知らせるメッセージを、前記サーバ装置上で実行する前記複数のサーバ・サイド・アプリケーションにブロードキャストするステップと、
    を含む請求項20に記載のコンピュータ実装方法。
  22. 前記クライアント装置内の前記専用クライアントサイド回路が前記キーボード査定動作を実行するステップが、特定のドライバが前記クライアント装置内に設置されているかどうかに基づいて、前記サーバ装置によってサポートされる前記サーバ・サイド・キーボード・レイアウトのうちのどれを前記クライアント装置がサポートするように構成されているかを決定するステップを含む請求項20に記載のコンピュータ実装方法。
JP2018527721A 2015-11-26 2016-11-16 仮想セッションにおけるサーバ・サイド・キーボード・レイアウトとクライアント・サイド・キーボード・レイアウトとの同期 Active JP6615997B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510837401.7A CN106802762B (zh) 2015-11-26 2015-11-26 在虚拟会话中同步服务器侧键盘布局与客户端侧布局
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
JP2018538619A JP2018538619A (ja) 2018-12-27
JP6615997B2 true JP6615997B2 (ja) 2019-12-04

Family

ID=57517986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018527721A Active JP6615997B2 (ja) 2015-11-26 2016-11-16 仮想セッションにおけるサーバ・サイド・キーボード・レイアウトとクライアント・サイド・キーボード・レイアウトとの同期

Country Status (4)

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

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI658401B (zh) * 2017-11-14 2019-05-01 財團法人工業技術研究院 基於虛擬化行動架構之行動通訊裝置及其相關輸入法切換方法
WO2020000263A1 (zh) 2018-06-27 2020-01-02 华为技术有限公司 调用输入法的方法和装置、服务器和终端
KR102592044B1 (ko) * 2018-06-29 2023-10-23 삼성전자 주식회사 전자 장치에서 물리적 키보드의 레이아웃 설정 방법 및 장치
CN109358937A (zh) * 2018-09-30 2019-02-19 上海达龙信息科技有限公司 一种基于虚拟输入装置远程操控pc的方法及系统
CA3119214A1 (en) * 2018-11-09 2020-05-14 Citrix Systems, Inc. Automated keyboard mapping for virtual desktops
CN112068764B (zh) * 2020-09-03 2022-06-21 北京搜狗科技发展有限公司 一种语言切换方法、装置和用于语言切换的装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250696A (ja) * 1999-03-02 2000-09-14 Internatl Business Mach Corp <Ibm> 異種キーボード間のデータ変換方法
US7305511B2 (en) * 2002-12-23 2007-12-04 Microtune (Texas), L.P. Providing both wireline and wireless connections to a wireline interface
JP2007323168A (ja) * 2006-05-30 2007-12-13 Canon Inc メッセージ表示装置及びメッセージ表示方法
CN100464308C (zh) * 2007-04-20 2009-02-25 北京搜狗科技发展有限公司 一种用户词库同步更新的方法和系统
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 (ja) * 2009-05-01 2013-09-04 株式会社デジタル システムおよびクライアントプログラム
US8122170B2 (en) * 2009-06-11 2012-02-21 Microsoft Corporation Adaptive keyboard layout mapping
WO2011102689A2 (en) * 2010-02-19 2011-08-25 Soon Jo Woo Multilingual key input apparatus and method thereof
JP5621382B2 (ja) * 2010-07-28 2014-11-12 カシオ計算機株式会社 サーバ装置及びプログラム
CN102622156B (zh) * 2011-01-26 2016-08-03 腾讯科技(深圳)有限公司 获取虚拟键盘的方法、装置和系统
CN102905182B (zh) * 2011-07-26 2016-07-06 联想(北京)有限公司 一种输入方法、智能电视机和智能交互系统
CN103491055B (zh) * 2012-06-12 2018-08-07 南京中兴软件有限责任公司 一种在多个客户端间同步信息的方法、客户端和服务器
JP6205568B2 (ja) * 2013-01-16 2017-10-04 株式会社日本デジタル研究所 リモートアクセス制御システム、方法、およびプログラム
CN103529954A (zh) * 2013-10-12 2014-01-22 成都阜特科技股份有限公司 一种远程虚拟机键盘鼠标与本地监视器互斥的方法
CN103645934A (zh) * 2013-12-11 2014-03-19 天津湖蓝科技有限公司 基于云计算的远程虚拟化终端应用系统及应用
US20150208032A1 (en) * 2014-01-17 2015-07-23 James Albert Gavney, Jr. Content data capture, display and manipulation system

Also Published As

Publication number Publication date
JP2018538619A (ja) 2018-12-27
CN106802762A (zh) 2017-06-06
CN106802762B (zh) 2020-09-11
KR20180086239A (ko) 2018-07-30
KR102136474B1 (ko) 2020-07-21
WO2017091411A1 (en) 2017-06-01

Similar Documents

Publication Publication Date Title
JP6615997B2 (ja) 仮想セッションにおけるサーバ・サイド・キーボード・レイアウトとクライアント・サイド・キーボード・レイアウトとの同期
US10810360B2 (en) Server and method of providing collaboration services and user terminal for receiving collaboration services
KR101921144B1 (ko) 하나 이상의 확장 애플리케이션과 상호작용하는 메시징 애플리케이션
US20130263011A1 (en) Control of computing devices and user interfaces
US10110549B2 (en) Method, server and electronic devices of synchronizing notification messages for electronic devices
US9699262B2 (en) Integrated viewing of local and remote applications in various multiplatform environments
KR102249197B1 (ko) 사용자 단말 장치, 통신 시스템 및 그 제어 방법
CN104965637B (zh) 一种界面操作的实现方法及装置
US20210400093A1 (en) Collaborative remote interactive platform
CN111193960B (zh) 视频处理方法、装置、电子设备及计算机可读存储介质
US20160092152A1 (en) Extended screen experience
KR20210135683A (ko) 인터넷 전화 기반 통화 중 리액션을 표시하는 방법, 시스템, 및 컴퓨터 프로그램
US20150143210A1 (en) Content Stitching Templates
WO2023005197A1 (zh) 内容显示方法及终端
US20170185422A1 (en) Method and system for generating and controlling composite user interface control
US11064008B2 (en) Methods for facilitating a remote interface and devices thereof
US11237854B2 (en) Providing a virtual desktop within a computing environment
US11349889B1 (en) Collaborative remote interactive platform
WO2017140226A1 (zh) 视频处理方法及其设备
US20130117704A1 (en) Browser-Accessible 3D Immersive Virtual Events
CN114500131B (zh) 一种群聊显示方法、装置、系统、设备及存储介质
CN115079978A (zh) 场景互动展示方法、装置、服务端设备及存储介质
Preti et al. Transitions: a crossmedia interaction relevant aspect
CN112527422A (zh) 视图更新方法、装置、设备及存储介质
JP2014021808A (ja) 表示制御装置、プレゼンテーション支援システム、表示制御方法、および、表示制御プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180727

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190731

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191106

R150 Certificate of patent or registration of utility model

Ref document number: 6615997

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250