JP6607876B2 - Coordinating input method editor (IME) activity between virtual application client and server - Google Patents

Coordinating input method editor (IME) activity between virtual application client and server Download PDF

Info

Publication number
JP6607876B2
JP6607876B2 JP2017041435A JP2017041435A JP6607876B2 JP 6607876 B2 JP6607876 B2 JP 6607876B2 JP 2017041435 A JP2017041435 A JP 2017041435A JP 2017041435 A JP2017041435 A JP 2017041435A JP 6607876 B2 JP6607876 B2 JP 6607876B2
Authority
JP
Japan
Prior art keywords
ime
client
server
virtual application
response
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.)
Expired - Fee Related
Application number
JP2017041435A
Other languages
Japanese (ja)
Other versions
JP2017201505A (en
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 JP2017201505A publication Critical patent/JP2017201505A/en
Application granted granted Critical
Publication of JP6607876B2 publication Critical patent/JP6607876B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • 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/0237Character input methods using prediction or retrieval techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、仮想アプリケーション・クライアントとサーバとの間におけるインプット・メソッド・エディタ(IME)アクティビティーの調整方法に関する。   The present invention relates to a method for coordinating input method editor (IME) activity between a virtual application client and a server.

オペレーティング・システムは、一般的に、人間の言語の文字をソフトウェア・アプリケーションへと入力することを支援するためにIME(Input Method Editor)をサポートしている。たとえば、IMEは、繁体字中国語、日本語、および韓国語の文字を入力するために提供されており、これらに関しては、対応するキーボード・ボタンが提供されていない。一般的な構成においては、IMEは、稼働中のアプリケーション、たとえば、ワード・プロセッシング・ドキュメント、スプレッドシート、ウェブ・ブラウザなどへの文字入力を支援するために、合成ウィンドウおよび候補ウィンドウなどのIME要素を提示するヘルパー・アプリケーションとして稼働する。   Operating systems typically support IME (Input Method Editor) to assist in inputting human language characters into software applications. For example, IME is provided for inputting traditional Chinese, Japanese, and Korean characters, for which no corresponding keyboard button is provided. In a typical configuration, an IME uses IME elements such as composite windows and candidate windows to support character input into a running application, such as a word processing document, spreadsheet, web browser, etc. Runs as a helper application to present.

たとえば、ユーザのキーボード・レイアウトは、簡体字中国語(たとえばピンイン)、日本語、または韓国語などをサポートすることができる。ユーザがキーボード・ボタンをタイプすると、これに応答してIMEは、合成ウィンドウを生成する。合成ウィンドウは、表示属性に従って表示される合成文字を含む。合成文字は、アプリケーションへと入力されるか、または入力されない場合がある一時的な文字である。合成文字の表示属性は、合成文字を強調し、既に確定されている文字から合成文字を区別し、合成文字のステータスを識別するために、合成文字がどのように表示されるかを指定する。いくつかの例において、合成文字は、単に(たとえば、Microsoft Pinyin IMEにおけるように)、直接のキーボード入力が反映される。その他の例においては、合成文字は、(たとえば、Google Pinyin IMEにおけるように)IMEがキーボード入力からターゲット言語への変換を行った複雑な文字である。   For example, the user's keyboard layout can support Simplified Chinese (eg, Pinyin), Japanese, or Korean. In response to the user typing a keyboard button, the IME generates a composite window. The composite window includes composite characters that are displayed according to display attributes. A composite character is a temporary character that may or may not be entered into the application. The display attribute of the composite character specifies how the composite character is displayed in order to emphasize the composite character, distinguish the composite character from the already determined characters, and identify the status of the composite character. In some examples, the composite character simply reflects direct keyboard input (eg, as in Microsoft Pinyin IME). In other examples, the composite character is a complex character that the IME has converted from keyboard input to the target language (eg, as in Google Pinyin IME).

IMEが合成ウィンドウを生成するのと同時に、IMEは、候補ウィンドウも生成する。候補ウィンドウは、候補リスト、すなわち、キーボード入力に対応するターゲット言語における1または複数の文字に関する予測のリストを含む。たとえば、ユーザは、ターゲット言語における文字が話されたときに発音される方法と同様に発音されるキーボード・シンボルを入力することができる。ユーザがアプリケーションへのキーボード入力をタイプするにつれて、IMEは、さらなるユーザ入力に基づいて合成文字および候補リストを動的に更新して絞り込む。ユーザは、たとえば、候補リスト上のアイテムをクリックすることによって、矢印キーを使用して「エンター」もしくは「スペースバー」をクリックすることによって、または候補リスト上のアイテムを識別する数字を入力することによって、候補リストから1または複数の文字を選択することができる。ユーザが候補リストから候補を選択すると、IMEは、選択された1または複数の文字をアプリケーションへと(たとえば、ドキュメント、セル、入力フィールドなどへと)挿入する。   At the same time that the IME generates a composite window, the IME also generates a candidate window. The candidate window includes a candidate list, ie, a list of predictions for one or more characters in the target language corresponding to keyboard input. For example, the user can enter a keyboard symbol that is pronounced in a manner similar to how it is pronounced when characters in the target language are spoken. As the user types keyboard input to the application, the IME dynamically updates and refines the composite character and candidate list based on further user input. The user can, for example, click on an item on the candidate list, use the arrow keys to click “Enter” or “Spacebar”, or enter a number that identifies the item on the candidate list Can select one or more characters from the candidate list. When the user selects a candidate from the candidate list, the IME inserts the selected character or characters into the application (eg, into a document, cell, input field, etc.).

Microsoft Word、Microsoft Notepad、およびMicrosoft Wordpadなど、いわゆる「部分的にIMEを認識する」アプリケーションに関しては、アプリケーションは、合成要素を表示することを担当するが、候補ウィンドウを表示することは担当しない。IMEは、ユーザ入力に基づいて合成要素を生成し、これらの要素をアプリケーションに提供する。アプリケーションは次いで、現在のカーソル位置において合成要素を表示する。同時にIMEは、合成要素の隣に候補ウィンドウを表示する。Microsoft Commandなど、いわゆる「完全にIMEを認識する」アプリケーションに関しては、アプリケーションは、合成要素および候補リスト要素の両方を表示することを担当する。これらのケースにおいては、IMEは、これらの要素を生成し、これらの要素をアプリケーションに提供し、アプリケーションは、自分自身のプログラミングに従ってこれらの要素を表示する。   For so-called “partially IME-aware” applications such as Microsoft Word, Microsoft Notepad, and Microsoft Wordpad, the application is responsible for displaying composite elements, but not for displaying candidate windows. The IME generates composite elements based on user input and provides these elements to the application. The application then displays the composite element at the current cursor position. At the same time, the IME displays a candidate window next to the composite element. For so-called “fully IME aware” applications, such as Microsoft Command, the application is responsible for displaying both composite and candidate list elements. In these cases, the IME generates these elements and provides these elements to the application, which displays these elements according to its own programming.

ユーザは、ローカルに稼働しているアプリケーションへと文字を入力するためだけでなく、仮想アプリケーションへと文字を入力するためにもIMEを採用したいと望む場合がある。知られているように、「仮想アプリケーション」は、リモート・サーバからホストされているがクライアント・マシン上でローカルにユーザ・インターフェースを提示するアプリケーションである。仮想アプリケーションは、仮想デスクトップのコンテキストにおいて、またはデスクトップ・コンテキストを伴わずにアプリケーション・ウィンドウにおいて提供されることが可能である。仮想アプリケーションは、仮想デスクトップにおいて提供されるか否かにかかわらず、クライアント・マシン上でローカルに稼働されるアプリケーションと同様のルック・アンド・フィールを有することができる。しかしながら、舞台裏では、ローカルのルック・アンド・フィールを保持するために、クライアントとサーバとの間においてデータがやり取りされている。   A user may wish to adopt IME not only for inputting characters to an application running locally, but also for inputting characters to a virtual application. As is known, a “virtual application” is an application that is hosted from a remote server but presents a user interface locally on the client machine. Virtual applications can be provided in the context of a virtual desktop or in an application window without a desktop context. Virtual applications can have the same look and feel as applications that run locally on the client machine, whether or not they are served in a virtual desktop. However, behind the scenes, data is exchanged between the client and server to maintain a local look and feel.

残念なことに、ユーザが、言語の文字を仮想アプリケーションへと入力するためにIMEを採用したいと望む場合には、ローカルでの実行の印象を保持することは困難であることがわかっている。たとえば、ユーザが、文字を仮想アプリケーションへと入力するためにローカル・クライアントのIMEを呼び出したいと望む場合があるが、クライアントとサーバとの間においてIME動作の通信を可能にする構造が存在しない場合がある。結果として、いくつかのIME機能は、ローカルに稼働されているアプリケーションに対して働くのと同じ方法では仮想アプリケーションに対して働かない場合があり、結果的にユーザ経験が損なわれる。仮想アプリケーションのいくつかのサーバは、自分自身のIMEを提供し、これらのIMEをユーザがリモートで動作させることができる。しかしこのようなIMEは、ユーザが好むIMEとは異なる場合がある。したがって、これらの状況においてもユーザ経験が損なわれる。   Unfortunately, it has proven difficult to retain the impression of local execution if the user wishes to adopt IME to enter language characters into a virtual application. For example, the user may wish to invoke the local client's IME to enter characters into the virtual application, but there is no structure that allows communication of IME operations between the client and server. There is. As a result, some IME functions may not work for virtual applications in the same way that they work for locally running applications, resulting in a loss of user experience. Some servers of the virtual application provide their own IMEs that can be operated remotely by the user. However, such an IME may be different from the user's preferred IME. Therefore, the user experience is impaired even in these situations.

従来のアプローチとは対照的に、人間言語の文字を仮想アプリケーションへと入力するための改良された技術は、クライアント・マシン上で稼働するクライアントIMEと、サーバ上で稼働するサーバIMEとの間において通信チャネルを確立して、クライアントIMEが、プロキシとしてサーバIMEを使用して、サーバ上で稼働する仮想アプリケーションと対話することを可能にするステップを含む。サーバIMEは、クライアントIMEからの情報を仮想アプリケーションへ中継する。サーバIMEはまた、仮想アプリケーションからの情報をクライアントIMEへ中継する。したがってサーバIMEは、クライアントIMEが、ローカル・アプリケーションと対話するかのように仮想アプリケーションと対話することを可能にし、仮想アプリケーションおよびローカル・アプリケーションの両方に関して同様のユーザ経験を促進する。ユーザは、自分の好ましいクライアントIMEを引き続き採用することができ、このようなIMEは、仮想アプリケーションとともに使用される場合に、ローカル・アプリケーションとともに使用される場合と同様に動作する。   In contrast to traditional approaches, an improved technique for inputting human language characters into a virtual application is between a client IME running on a client machine and a server IME running on a server. Establishing a communication channel and allowing the client IME to interact with a virtual application running on the server using the server IME as a proxy. The server IME relays information from the client IME to the virtual application. The server IME also relays information from the virtual application to the client IME. Thus, the server IME allows the client IME to interact with the virtual application as if interacting with the local application, facilitating a similar user experience for both the virtual application and the local application. Users can continue to adopt their preferred client IMEs, and such IMEs behave in the same way as when used with local applications when used with virtual applications.

一例においては、サーバIMEは、クライアントIMEによって生成された合成要素を仮想アプリケーションへ中継し、それによって仮想アプリケーションは、ローカル・アプリケーションが表示するのと同じ様式で合成ウィンドウを表示することができる。   In one example, the server IME relays the composite element generated by the client IME to the virtual application so that the virtual application can display the composite window in the same manner that the local application displays.

別の例においては、サーバIMEは、仮想アプリケーションから合成ウィンドウの座標またはカーソルの座標を入手し、これらの座標をクライアントIMEに提供し、それによってクライアントIMEは、合成ウィンドウまたはカーソルの隣に候補リストを表示することができる。   In another example, the server IME obtains the composition window coordinates or cursor coordinates from the virtual application and provides these coordinates to the client IME, so that the client IME can place a candidate list next to the composition window or cursor. Can be displayed.

別の例においては、サーバIMEは、候補リストを仮想アプリケーションが表示すべきか、またはクライアントIMEが表示すべきかを示す情報を仮想アプリケーションから入手する。サーバIMEは、この情報をクライアントIMEに送信し、それによってクライアントIMEは、自分自身で候補リストを表示するか、または候補ウィンドウ要素をサーバへ送信することができ、それによって仮想アプリケーションは、候補ウィンドウを表示することができる。   In another example, the server IME obtains information from the virtual application indicating whether the candidate list should be displayed by the virtual application or the client IME. The server IME sends this information to the client IME so that the client IME can display a candidate list on its own or send a candidate window element to the server so that the virtual application can Can be displayed.

特定の実施形態は、人間言語の文字を仮想アプリケーションへと入力する方法を対象としている。この方法は、クライアント・マシン上で稼働するクライアントIME(Input Method Editor)と、サーバ上で稼働するサーバIMEとの間において通信チャネルを確立するステップであって、通信チャネルが、クライアントIMEがサーバIMEを介して仮想アプリケーションと対話することを可能にする、ステップを含む。仮想アプリケーションは、サーバ上で稼働し、スクリーン出力を提供し、スクリーン出力は、クライアント・マシン上にレンダリングされる。この方法は、クライアントIMEから通信チャネルを介して受信されたIMEデータをサーバIMEによって仮想アプリケーションへ中継して、仮想アプリケーションにIMEデータを提供するステップであって、IMEデータが、クライアント・マシンへのユーザ入力に応答してクライアントIMEによって生成されるステップをさらに含む。この方法はまた、サーバIMEによって仮想アプリケーションから受信されたアプリケーション情報をサーバIMEによって通信チャネルを介してクライアントIMEへ中継して、クライアントIMEにアプリケーション情報を提供するステップをさらに含む。   Certain embodiments are directed to a method of inputting human language characters into a virtual application. This method is a step of establishing a communication channel between a client IME (Input Method Editor) running on a client machine and a server IME running on a server, wherein the communication channel is a server IME. Enabling a user to interact with the virtual application via The virtual application runs on the server and provides screen output, which is rendered on the client machine. The method relays IME data received from a client IME via a communication channel to a virtual application by a server IME and provides the virtual application with the IME data, wherein the IME data is sent to the client machine. It further includes a step generated by the client IME in response to user input. The method also includes relaying application information received from the virtual application by the server IME to the client IME via the communication channel by the server IME to provide the application information to the client IME.

その他の実施形態は、コンピュータ・プログラム製品を対象としている。このコンピュータ・プログラム製品は、制御回路によって実行されたときに、上述の方法など、人間言語の文字を仮想アプリケーションへと入力する方法を制御回路に実行させる命令を有する非一時的なコンピュータ可読メディアのセットを含む。   Other embodiments are directed to computer program products. The computer program product is a non-transitory computer readable medium having instructions that, when executed by a control circuit, cause the control circuit to execute a method of inputting human language characters into a virtual application, such as the method described above. Includes set.

また、さらなる実施形態は、上述の方法など、人間言語の文字を仮想アプリケーションへと入力する方法を実行するように構築および構成されているサーバ装置を対象としている。いくつかの実施形態は、単一のロケーションにおいて実行されるアクティビティーを含み、その一方でその他の実施形態は、コンピュータ化された環境を介して(たとえば、ネットワークを介して)分散されるアクティビティーを含む。   Still further embodiments are directed to server devices that are constructed and configured to perform a method of inputting human language characters into a virtual application, such as the method described above. Some embodiments include activities performed at a single location, while other embodiments include activities distributed over a computerized environment (eg, over a network). .

前述の概要は、本明細書において提示されている例示的な特徴を読者が容易に理解することを支援するために例示の目的で提示されており、限定的であることを意図されているものではない。   The foregoing summary has been presented for purposes of illustration and is intended to be limiting in order to assist the reader in easily understanding the illustrative features presented herein. is not.

前述のおよびその他の特徴および利点は、添付の図面において示されている本発明の特定の実施形態についての以降の説明から明らかになるであろう。それらの図面においては、同様の参照文字は、別々の図を通じて同じまたは同様の部分を指している。   The foregoing and other features and advantages will become apparent from the following description of specific embodiments of the invention as illustrated in the accompanying drawings. In the drawings, like reference characters refer to the same or similar parts throughout the different views.

本明細書の改良された技術の実施形態を実践することができる例示的な環境のブロック図である。1 is a block diagram of an exemplary environment in which embodiments of the improved techniques herein can be practiced. FIG. 図1のクライアントIMEによって生成された例示的な合成要素を示すスクリーンショットであり、これらの合成要素は、仮想アプリケーションにおいて現在のカーソル位置の後に続く。FIG. 2 is a screenshot showing exemplary composite elements generated by the client IME of FIG. 1, which follow the current cursor position in the virtual application. クライアントIMEが仮想アプリケーションと対話することを可能にするための例示的な通信を示すブロック図である。FIG. 4 is a block diagram illustrating example communications for enabling a client IME to interact with a virtual application. クライアントIMEおよびサーバIMEのためのIMEコンパートメントどうしの例示的な同期化を示すスクリーンショットである。FIG. 6 is a screenshot showing an exemplary synchronization of IME compartments for a client IME and a server IME. 図1の環境においてクライアントIMEを初期化し、動作させるためのアクティビティーの例示的なシーケンスを示すフローチャートである。2 is a flow chart illustrating an exemplary sequence of activities for initializing and operating a client IME in the environment of FIG. 人間言語シンボルを仮想アプリケーションへと入力する例示的な方法のフローチャートである。2 is a flowchart of an exemplary method for inputting human language symbols into a virtual application.

本発明の実施形態について説明する。このような実施形態は、本発明のさまざまな特徴および原理を例示するために例として提供されており、本明細書の発明は、開示されている特定の例示的な実施形態よりも広範である。   An embodiment of the present invention will be described. Such embodiments are provided by way of example to illustrate various features and principles of the invention, and the invention herein is broader than the specific exemplary embodiments disclosed. .

人間言語の文字を仮想アプリケーションへと入力するための改良された技術は、クライアント・マシン上で稼働するクライアントIMEと、サーバ上で稼働するサーバIMEとの間において通信チャネルを確立して、クライアントIMEが、プロキシとしてサーバIMEを使用して、サーバ上で稼働する仮想アプリケーションと対話することを可能にするステップを含む。したがってサーバIMEは、クライアントIMEが、ローカル・アプリケーションと対話するかのように仮想アプリケーションと対話することを可能にし、仮想アプリケーションおよびローカル・アプリケーションの両方に関して同様のユーザ経験を促進する。   An improved technique for inputting human language characters into a virtual application is to establish a communication channel between a client IME running on a client machine and a server IME running on a server, and the client IME Includes interacting with a virtual application running on the server using the server IME as a proxy. Thus, the server IME allows the client IME to interact with the virtual application as if interacting with the local application, facilitating a similar user experience for both the virtual application and the local application.

図1は、本明細書の改良された技術の実施形態を実践できる例示的な環境100を示している。ここでは、クライアント・マシン(「クライアント」)110が、ネットワーク130を介してサーバ装置(「サーバ」)120に接続している。ネットワーク130は、任意のタイプのネットワークまたはネットワークの組合せ、たとえば、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、および/またはその他の何らかのタイプのネットワークもしくはネットワークの組合せなどであることが可能である。サーバ120は、仮想化ソフトウェアを備えており、仮想化ソフトウェアは、サーバ120が内部でアプリケーション・インスタンス(「アプリケーション」)を実行することを可能にする一方、たとえば、スクリーンシェアリングおよび/またはその他の手段を介して、それらのアプリケーションのユーザ・インターフェースがクライアント・マシン110などのクライアント・マシン上にレンダリングされることを可能にする。サーバ120上の仮想化ソフトウェアは、アプリケーション仮想化および/または完全なデスクトップ仮想化をサポートすることができ、本明細書において開示されている改良された技術は、両方のケースにおいて当てはまることが意図されている。   FIG. 1 illustrates an exemplary environment 100 in which the improved technique embodiments herein may be practiced. Here, a client machine (“client”) 110 is connected to a server device (“server”) 120 via a network 130. Network 130 may be any type of network or combination of networks, such as a local area network (LAN), a wide area network (WAN), the Internet, and / or some other type of network or combination of networks. It is possible that Server 120 comprises virtualization software, which allows server 120 to run application instances (“applications”) internally, while screen sharing and / or other, for example, Via means, the user interface of those applications can be rendered on a client machine, such as client machine 110. The virtualization software on the server 120 can support application virtualization and / or full desktop virtualization, and the improved techniques disclosed herein are intended to apply in both cases. ing.

知られているように、「アプリケーション仮想化」とは、サーバがアプリケーション・インスタンスを稼働させる一方、アプリケーションのユーザ・インターフェースをクライアントへエクスポートする構成を指す。たとえば、サーバ上で稼働する仮想アプリケーションは、クライアントのデスクトップ上のアプリケーション・ウィンドウ内に現れ、ユーザは、アプリケーション・ウィンドウ内で、たとえば、ユーザのキーボード、マウスなどを使用して、クライアント上の仮想アプリケーションと対話することができる。   As is known, “application virtualization” refers to a configuration in which a server runs an application instance while exporting the application's user interface to a client. For example, a virtual application running on the server appears in an application window on the client desktop, and the user can use the virtual application on the client in the application window, for example, using the user's keyboard, mouse, etc. You can interact with.

対照的に、「デスクトップ仮想化」とは、サーバがユーザの代わりに、自分自身のデスクトップおよびアプリケーションを完備して、ユーザ・セッション全体を稼働させる構成を指す。サーバは、仮想デスクトップをユーザのマシンへエクスポートし、ユーザのマシンは、仮想デスクトップをスクリーン全体に、またはマシン自体のデスクトップ上のウィンドウ内に表示する。ユーザは、仮想デスクトップ内のアプリケーションを始動して、これらのアプリケーションと対話することができ、ネイティブ・デスクトップを使用するのと同じ方法で仮想デスクトップを使用することができる。   In contrast, “desktop virtualization” refers to a configuration in which a server completes its own desktop and applications and runs the entire user session on behalf of the user. The server exports the virtual desktop to the user's machine, which displays the virtual desktop on the entire screen or in a window on the machine's own desktop. A user can start applications in the virtual desktop and interact with these applications, and can use the virtual desktop in the same way as using the native desktop.

図1は、クライアント110の、およびサーバ120の例示的な実施態様をさらに詳細に示している。これらの例は簡略化されており、限定的であるよりもむしろ例示的であるように意図されている。   FIG. 1 shows an exemplary implementation of client 110 and server 120 in more detail. These examples are simplified and are intended to be illustrative rather than limiting.

示されているように、サーバ120は、1または複数のネットワーク・インターフェース160と、プロセッサ162のセットと、メモリ170とを含む。ネットワーク・インターフェース160は、たとえば、ネットワーク130を介して受信された電子信号および/または光信号を、サーバ120によって使用するための電子的な形態へ変換するための1または複数のネットワーク・インターフェース・アダプタを含む。プロセッサ162のセットは、1または複数の処理チップ、コア、および/またはアセンブリ、ならびに関連付けられているコプロセッサおよびチップセットを含む。メモリ170は、揮発性メモリ(たとえば、RAM)、および不揮発性メモリ(たとえば、1または複数のROM、ディスク・ドライブ、ソリッド・ステート・ドライブなど)の両方を含む。プロセッサ162のセットおよびメモリ170は、ともに制御回路を形成し、制御回路は、本明細書において説明されているさまざまな方法および機能を実行するように構築および構成されている。またメモリ170は、実行可能な命令の形態で実現されるさまざまなソフトウェア構造を含む。実行可能な命令がプロセッサ162のセットによって稼働されたときに、プロセッサ162のセットは、ソフトウェア構造の動作を実行させられる。特定のソフトウェア構造が特に示され説明されているが、メモリ170は典型的には、オペレーティング・システム、さまざまなアプリケーション、プロセス、およびデーモンなど、示されていないその他の多くのソフトウェア構造を含むことがわかる。サーバ120は単一のマシンとして示されているが、サーバ120は、代替的に、たとえば、データ・センター、サーバ・ファーム、もしくは、「クラウド」内の任意の場所におけるマシンのバンクなど、複数のマシンとして、および/または1もしくは複数の仮想マシンとして実装されてもよい。サーバ120は、モバイル・デバイス、たとえば、スマートフォン、タブレットなどとして実装されてもよいが、この構成は、あまり一般的ではないと予想される。   As shown, server 120 includes one or more network interfaces 160, a set of processors 162, and memory 170. The network interface 160 is, for example, one or more network interface adapters for converting electronic and / or optical signals received via the network 130 into an electronic form for use by the server 120. including. The set of processors 162 includes one or more processing chips, cores, and / or assemblies, and associated coprocessors and chipsets. Memory 170 includes both volatile memory (eg, RAM) and non-volatile memory (eg, one or more ROMs, disk drives, solid state drives, etc.). The set of processors 162 and memory 170 together form a control circuit, which is constructed and configured to perform the various methods and functions described herein. The memory 170 also includes various software structures implemented in the form of executable instructions. When executable instructions are executed by the set of processors 162, the set of processors 162 is caused to perform the operations of the software structure. Although specific software structures are specifically shown and described, memory 170 typically includes many other software structures not shown, such as an operating system, various applications, processes, and daemons. Understand. Although the server 120 is shown as a single machine, the server 120 may alternatively be a plurality of, eg, a data center, server farm, or bank of machines anywhere in the “cloud”. It may be implemented as a machine and / or as one or more virtual machines. Server 120 may be implemented as a mobile device, such as a smartphone, tablet, etc., but this configuration is not expected to be very common.

メモリ170内で、サーバ120は、サーバ仮想化コンポーネント172を「含む」、すなわち、ソフトウェア命令の実行によって実現する。サーバ仮想化コンポーネント172は、サーバ・エージェント174、サーバIME176、および仮想アプリケーション178を含む。サーバIME176および仮想アプリケーション178は、代替的に、サーバ仮想化コンポーネント172の外部に、たとえば、メモリ170内の独立したコンポーネントとして、またはその他のコンポーネントの部分として提供されてもよい。サーバ・エージェント174は、インターフェース176aを介した、サーバIME176との動作可能な通信状態で配置されている。またサーバIME176は、インターフェース178aを介した、仮想アプリケーション178との動作可能な通信状態で配置されている。インターフェース176aおよび178aは、たとえば、API(Application Program Interface)、システム・メッセージ、またはその他の何らかの1もしくは複数の形態のインターフェースを使用して実装されてもよい。   Within memory 170, server 120 “includes” server virtualization component 172, ie, is implemented by execution of software instructions. Server virtualization component 172 includes server agent 174, server IME 176, and virtual application 178. Server IME 176 and virtual application 178 may alternatively be provided external to server virtualization component 172, for example, as an independent component in memory 170 or as part of other components. The server agent 174 is arranged in an operable communication state with the server IME 176 via the interface 176a. The server IME 176 is arranged in an operable communication state with the virtual application 178 via the interface 178a. Interfaces 176a and 178a may be implemented using, for example, an application program interface (API), a system message, or some other form of one or more forms.

サーバ120上のサーバ・エージェント144は、クライアント110上のクライアント・エージェント144と通信するように構成されている。サーバ・エージェント174およびクライアント・エージェント144は、サーバ120とクライアント110との間における通信チャネル180を確立する。チャネル180は、ネットワーク130を介して物理的に実装され、ユーザ入力関連の情報をサーバ120とクライアント110との間においてやり取りするリアルタイムの(またはリアルタイムに近い)手段を提供する。チャネル180は、サーバ120またはクライアント110のいずれかによるアクションに基づいて確立されることが可能であり、「仮想セッション」、すなわち、アプリケーション仮想化セッションまたはデスクトップ仮想化セッション(どちらが該当するかにかかわらず)の持続時間にわたって保持されることが可能である。   Server agent 144 on server 120 is configured to communicate with client agent 144 on client 110. Server agent 174 and client agent 144 establish a communication channel 180 between server 120 and client 110. Channel 180 is physically implemented via network 130 and provides a real-time (or near real-time) means for exchanging user input related information between server 120 and client 110. The channel 180 can be established based on actions by either the server 120 or the client 110 and is a “virtual session”, ie, an application virtualization session or a desktop virtualization session (regardless of which is true). ) For a duration of).

図1は、単一の仮想アプリケーション178を示しているが、サーバ120は、任意の数の仮想アプリケーションをホストすることができる。また、仮想デスクトップは示されていないが、示されている仮想アプリケーション178は仮想デスクトップ内で稼働されることが可能である。複数の仮想デスクトップが、たとえば別々のユーザごとに提供されることが可能であり、それぞれの仮想デスクトップ内で任意の数の仮想アプリケーションが稼働されることが可能である。一例においては、仮想セッションごとに1つのサーバ・エージェント174が提供される。しかしながら、仮想アプリケーションごとに1つのサーバIME176が提供されることが可能であり、それぞれの仮想アプリケーション178が自分自身のサーバIME176を有する状態となる。したがって、たとえば、単一の仮想セッションにおける複数の仮想アプリケーション178は、自分自身のサーバIMEインスタンスをそれぞれ有する一方で同じサーバ・エージェント174インスタンスを共有することが可能である。   Although FIG. 1 shows a single virtual application 178, the server 120 can host any number of virtual applications. Also, although the virtual desktop is not shown, the virtual application 178 shown can be run within the virtual desktop. Multiple virtual desktops can be provided for each different user, for example, and any number of virtual applications can be run within each virtual desktop. In one example, one server agent 174 is provided for each virtual session. However, one server IME 176 can be provided for each virtual application, and each virtual application 178 has its own server IME 176. Thus, for example, multiple virtual applications 178 in a single virtual session can share the same server agent 174 instance while each having its own server IME instance.

示されている例においては、クライアント・マシン110は、ネットワーク・インターフェース130、プロセッサ132、およびメモリ140を含む。プロセッサ132のセットおよびメモリ140は、ともに制御回路を形成し、制御回路は、説明されているさまざまな方法および機能を実行するように構築および構成されている。クライアント・マシン110はまた、ディスプレイ150(たとえば、モニタ、スクリーン、タッチ・スクリーン、テレビジョンなど)を含む。メモリ140は、実行可能な命令の形態で実現されるさまざまなソフトウェア構造を含む。これらの実行可能な命令がプロセッサ142のセットによって稼働されたときに、プロセッサ142のセットは、これらのソフトウェア構造の動作を実行させられる。クライアント・マシン110はコンピュータとして示されているが、クライアント・マシン110は、広範囲のマシン、デバイス、およびアプライアンス、たとえば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、スマートフォン、タブレット、パーソナル・リーダ、セットトップ・ボックス、ビデオ・ストリーミング・デバイス、スマートTV、ゲーミング・システム、スマート・アプライアンスなど、ならびにそれらの組合せを使用して実装されることが可能である。   In the illustrated example, client machine 110 includes a network interface 130, a processor 132, and memory 140. The set of processors 132 and memory 140 together form a control circuit, which is constructed and configured to perform the various methods and functions described. Client machine 110 also includes a display 150 (eg, a monitor, screen, touch screen, television, etc.). Memory 140 includes various software structures implemented in the form of executable instructions. When these executable instructions are executed by the set of processors 142, the set of processors 142 is caused to perform the operations of these software structures. Although client machine 110 is shown as a computer, client machine 110 can be a wide range of machines, devices, and appliances such as desktop computers, laptop computers, smartphones, tablets, personal readers, set-top devices It can be implemented using boxes, video streaming devices, smart TVs, gaming systems, smart appliances, etc., and combinations thereof.

クライアント110は、クライアント仮想化コンポーネント142およびクライアントIME146を含む。クライアント仮想化コンポーネント142は、クライアント・エージェント144を含む。クライアント・エージェント144は、インターフェース146aを介した、クライアントIME146との動作可能な通信状態で配置されている。インターフェース146aは、たとえば、API、システム・メッセージ、またはその他の何らかの形態のインターフェースを使用して実装されることが可能である。   Client 110 includes a client virtualization component 142 and a client IME 146. Client virtualization component 142 includes a client agent 144. The client agent 144 is arranged in an operable communication state with the client IME 146 via the interface 146a. Interface 146a may be implemented using, for example, an API, system message, or some other form of interface.

クライアント仮想化コンポーネント142は、サーバ120との通信セッションを確立および保持すること、サーバ120から受信された仮想化されたアプリケーションのおよび/または仮想化されたデスクトップのスクリーン・コンテンツを表示すること、ならびにユーザ入力を、たとえば、キーボード、マウスなど(または同等のソフトウェア実施機能)からサーバ120へ導くことなどによって、アプリケーション仮想化および/またはデスクトップ仮想化に関するクライアント・サポートを提供する。   The client virtualization component 142 establishes and maintains a communication session with the server 120, displays virtual application and / or virtualized desktop screen content received from the server 120, and Client support for application virtualization and / or desktop virtualization is provided, such as by directing user input to the server 120 from, for example, a keyboard, mouse, etc. (or equivalent software-implemented function).

クライアント110上で稼働するクライアントIME146は、直接のキーボード入力に適していない非表音文字などの人間言語シンボルのユーザ入力を容易にする。ユーザは、ユーザ自身の好みに基づいてクライアントIME146をインストールすることができる。簡潔にするために単一のクライアントIME146のみが示されているが、クライアント・マシン110は、たとえば、さまざまなターゲット言語に関する、および/またはさまざまなベンダーからの任意の数のクライアントIMEを稼働させることができ、ユーザは、仮想セッション中にさまざまなクライアントIMEの間において切り替えを行うことができる。   The client IME 146 running on the client 110 facilitates user input of human language symbols such as non-phonetic characters that are not suitable for direct keyboard input. The user can install the client IME 146 based on the user's own preferences. Although only a single client IME 146 is shown for brevity, client machine 110 may run any number of client IMEs, eg, for different target languages and / or from different vendors. And the user can switch between different client IMEs during a virtual session.

例示的な動作においては、クライアント・マシン110のユーザ112が、たとえば、プログラムを起動することによって、またはブラウザを使用して特定のウェブ・アドレスへナビゲートすることによって仮想セッションを始動する。ユーザ112によるこのアクションに応答して、サーバ120は、たとえば、コンテナにおいて仮想アプリケーション178を開くことによって、および/または新たなデスクトップ・セッションを作成することによって、仮想セッションをインスタンス化する。クライアント仮想化コンポーネント142は、サーバ仮想化コンポーネント172との間で調整を行って、クライアント・エージェント144とサーバ・エージェント174との間においてチャネル180を確立する。サーバ120は、仮想アプリケーション178の、または仮想デスクトップ全体のユーザ・インターフェースをクライアント110へエクスポートし、クライアント110は、仮想アプリケーション178または仮想デスクトップのグラフィカル出力をディスプレイ150上に表示する。   In an exemplary operation, a user 112 of a client machine 110 initiates a virtual session, for example, by launching a program or navigating to a specific web address using a browser. In response to this action by the user 112, the server 120 instantiates a virtual session, for example, by opening a virtual application 178 in the container and / or creating a new desktop session. The client virtualization component 142 coordinates with the server virtualization component 172 to establish a channel 180 between the client agent 144 and the server agent 174. The server 120 exports the virtual application 178 or the entire virtual desktop user interface to the client 110, which displays the virtual output of the virtual application 178 or virtual desktop on the display 150.

チャネル180が確立されて仮想アプリケーション178が稼働している状態で、ユーザ112は、続けてクライアントIME146を起動することができる。たとえば、ユーザ112は、普通のQUERTYスタイルのキーボードを使用して繁体字中国語の文字をドキュメントへと入力するためにワード・プロセッサまたはEメール・プログラムを使用したいと望む可能性がある。   With the channel 180 established and the virtual application 178 running, the user 112 can subsequently launch the client IME 146. For example, the user 112 may wish to use a word processor or email program to enter traditional Chinese characters into a document using a regular QUERYTY-style keyboard.

ユーザがクライアントIME146を動作させたときに、クライアントIME146は、IMEデータ182を生成する。IMEデータ182は、インターフェース146aを介してクライアント・エージェント144へ流れ、チャネル180を介してサーバ・エージェント174へ転送される。サーバ120内で、IMEデータ182は、サーバIME176へ流れ、サーバIME176は、IMEデータ182を仮想アプリケーション178に提供する。同様に、仮想アプリケーション178が動作したときに、仮想アプリケーション178は、IME動作に関連するアプリケーション・データ184を生成する。サーバIME176は、アプリケーション・データ184を受信し、アプリケーション・データ184を、チャネル180を介してクライアントIME146に返す。したがってサーバIME176は、クライアントIME146のためのプロキシまたは中継器として動作して、IMEデータ182を仮想アプリケーション178へ転送し、アプリケーション・データ184をクライアントIME146に返す。たとえば、クライアントIME146が、ユーザ入力に応答して、合成要素および候補リストなどのUI要素を生成するように動作したときに、サーバIME176は、クライアントIME146の代わりに仮想アプリケーション178と対話して、IMEデータ182を仮想アプリケーション178に提供し、アプリケーション・データ184をクライアントIME146に返す。したがって、エージェント144および174、サーバIME176、ならびにチャネル180は、クライアントIME146が、ローカル・アプリケーションと対話するかのように仮想アプリケーション178とリモートで対話することを可能にする。   When the user operates the client IME 146, the client IME 146 generates IME data 182. The IME data 182 flows to the client agent 144 via the interface 146a and is transferred to the server agent 174 via the channel 180. Within server 120, IME data 182 flows to server IME 176, which provides IME data 182 to virtual application 178. Similarly, when virtual application 178 operates, virtual application 178 generates application data 184 related to the IME operation. Server IME 176 receives application data 184 and returns application data 184 to client IME 146 via channel 180. Thus, server IME 176 operates as a proxy or relay for client IME 146 to transfer IME data 182 to virtual application 178 and return application data 184 to client IME 146. For example, when the client IME 146 operates to generate UI elements, such as composite elements and candidate lists, in response to user input, the server IME 176 interacts with the virtual application 178 on behalf of the client IME 146 to Data 182 is provided to virtual application 178 and application data 184 is returned to client IME 146. Thus, agents 144 and 174, server IME 176, and channel 180 allow client IME 146 to interact remotely with virtual application 178 as if interacting with a local application.

図2は、図1の構成に従って文字を仮想アプリケーション178へと入力するためのクライアントIME146の例示的な動作を示すスクリーンショット200である。ここでは、クライアントIME146は、Google Pinyin IMEであるが、任意のIMEが使用されてもよい。仮想デスクトップ210が、クライアント・マシン110のネイティブ・デスクトップ250上のウィンドウ212内に示されている。仮想デスクトップ210は、仮想システム・トレイ214を含み、ネイティブ・デスクトップ250は、ネイティブ・システム・トレイ254を含む。   FIG. 2 is a screenshot 200 illustrating an exemplary operation of the client IME 146 for entering characters into the virtual application 178 in accordance with the configuration of FIG. Here, the client IME 146 is a Google Pinyin IME, but any IME may be used. A virtual desktop 210 is shown in a window 212 on the native desktop 250 of the client machine 110. Virtual desktop 210 includes a virtual system tray 214 and native desktop 250 includes a native system tray 254.

仮想デスクトップ210は、仮想アプリケーション178としてMicrosoft Notepadのインスタンスを稼働させている。Notepadは、仮想デスクトップ210上のアプリケーション・ウィンドウ220内で稼働しているように見える。Notepadのみが稼働しているように見えるが、任意の数の仮想アプリケーションが仮想デスクトップ210上で稼働することができる。   The virtual desktop 210 operates an instance of Microsoft Notepad as a virtual application 178. Notepad appears to be running in the application window 220 on the virtual desktop 210. Although only Notepad appears to be running, any number of virtual applications can run on the virtual desktop 210.

複数のIME要素を図2において見ることができる。たとえば、合成ウィンドウ154は、表示属性154b(たとえば、示されているようなアンダーライン付け。ただしボールド、カラー、およびその他の設定を含むこともできる)を伴ってレンダリングされている合成文字154aを含む。候補ウィンドウ156は、候補リスト156aを含む。ユーザが、キーボード入力(合成ウィンドウ154の下に示されている)を提供し、クライアントIME146は、合成文字154aおよび候補リスト156aを生成することによって応答している。候補リスト156aは、ターゲット言語でのキーボード入力に対するベスト・マッチの予測(図においては番号が付けられている)を提供する。ユーザは、次いで、クライアントIME146を動作させて、所望の候補、すなわち、ユーザが入力することを意図している候補を選択することができる。ユーザが、たとえば番号を入力することによって選択を行うと、選択された文字は、確定された文字となり、アプリケーションのドキュメントへと入力される。いくつかの確定された文字152が示されており、これらの文字152は、ユーザによってクライアントIME146を使用して既に入力されている。示されている例においては、合成文字154は、候補リスト156aにおける現在の選択と一致している。   Multiple IME elements can be seen in FIG. For example, composite window 154 includes composite character 154a being rendered with display attributes 154b (eg, underlined as shown, but may also include bold, color, and other settings). . The candidate window 156 includes a candidate list 156a. A user provides keyboard input (shown below the compositing window 154), and the client IME 146 responds by generating a composite character 154a and a candidate list 156a. Candidate list 156a provides a best match prediction (numbered in the figure) for keyboard input in the target language. The user can then operate the client IME 146 to select a desired candidate, i.e., a candidate that the user intends to input. When the user makes a selection, for example by entering a number, the selected character becomes a fixed character and is entered into the application document. A number of confirmed characters 152 are shown, and these characters 152 have already been entered by the user using the client IME 146. In the example shown, the composite character 154 matches the current selection in the candidate list 156a.

図2はまた、カーソル158を示している。カーソル158は、合成ウィンドウ154の直後に現れ、新たな文字が入力されるにつれて、または異なる幅の文字が選択されるにつれて、前へ進む。   FIG. 2 also shows a cursor 158. The cursor 158 appears immediately after the compositing window 154 and moves forward as new characters are entered or as different width characters are selected.

図1の、すなわち、エージェント144、エージェント174、チャネル180、クライアントIME146、およびサーバIME176の構成は、クライアントIME146が、仮想アプリケーション178へと文字を入力する際に、ローカル・アプリケーションへと文字を入力する際に行うのとそっくり同じように動作することを可能にする。たとえば、図1の構成は、仮想アプリケーション178が、合成ウィンドウ154をアプリケーション・ウィンドウ220内にレンダリングすることを、すなわち、IMEデータ182をサーバIME176へ送信することによって可能にし、サーバIME176は、仮想アプリケーション178と通信する。仮想アプリケーション178は、クライアントIME146からの入力に基づいて合成ウィンドウ154を、ローカル・アプリケーションが表示するのとちょうど同じように表示する。また、この構成は、クライアントIME146が候補ウィンドウ156を合成ウィンドウ154の隣に、または合成ウィンドウが空である場合にはカーソル158の隣に配置することを可能にする。たとえば、クライアントIME146は、合成ウィンドウ154またはカーソル158のスクリーン座標を要求し、これらのスクリーン座標をアプリケーション・データ184として仮想アプリケーション178から受信することができる。クライアントIME146は次いで、候補ウィンドウ156を配置する際に、受信された座標を適用することができる。さらにまた、クライアントIME146は、仮想アプリケーション178が自分自身で候補リストを表示することができるかどうかを、すなわち、仮想アプリケーション178が、部分的にIMEを認識するか、または完全にIMEを認識するかを示すアプリケーション・データ184を仮想アプリケーション178から入手することができる。受信されたアプリケーション・データ184に基づいて、クライアントIME146は、続いて(Notepadのように、部分的にIMEを認識するアプリケーションに関しては)自分自身で候補ウィンドウ156を表示するか、または(Commandのように、完全にIMEを認識するアプリケーションに関しては)候補リスト156aおよび関連付けられている設定を(チャネル180を介して)仮想アプリケーション178へ送信して、仮想アプリケーション178が自分自身で候補リストを表示することを可能にすることができる。   The configuration of FIG. 1, agent 144, agent 174, channel 180, client IME 146, and server IME 176, inputs characters to the local application when client IME 146 inputs characters to virtual application 178. Allows you to work exactly as you do. For example, the configuration of FIG. 1 allows the virtual application 178 to render the composite window 154 in the application window 220, i.e., by sending the IME data 182 to the server IME 176, where the server IME 176 178 to communicate. Virtual application 178 displays composite window 154 based on input from client IME 146 just as a local application displays. This configuration also allows the client IME 146 to place the candidate window 156 next to the composite window 154 or next to the cursor 158 if the composite window is empty. For example, the client IME 146 may request screen coordinates for the composite window 154 or cursor 158 and receive these screen coordinates from the virtual application 178 as application data 184. The client IME 146 can then apply the received coordinates in placing the candidate window 156. Furthermore, the client IME 146 determines whether the virtual application 178 can display the candidate list on its own, that is, whether the virtual application 178 is partially IME aware or fully IME aware. The application data 184 indicating that can be obtained from the virtual application 178. Based on the received application data 184, the client IME 146 may subsequently display the candidate window 156 on its own (for applications that partially recognize IME, such as Notepad), or (such as Command). In addition, for applications that fully recognize IME), send candidate list 156a and associated settings (via channel 180) to virtual application 178 so that virtual application 178 displays the candidate list on its own. Can be made possible.

図3は、チャネル180を介した、クライアントIME146と仮想アプリケーション178との間における例示的な通信を示している。この通信は、クライアントIME146が、ローカル・アプリケーションとともに動作するかのように仮想アプリケーション178と動作することを可能にする。   FIG. 3 shows exemplary communication between the client IME 146 and the virtual application 178 via the channel 180. This communication allows the client IME 146 to operate with the virtual application 178 as if it operates with a local application.

ここでは、ユーザ・アクションに応答して、たとえば、ユーザが第1のキーボード・シンボルをクライアントIME146へと入力したことに応答して、クライアントIME146によってIMEデータ182として合成始動メッセージ310が生成される。合成始動メッセージ310は、クライアントIME146からクライアント・エージェント144へ、チャネル180を介してサーバ・エージェント174へ、そしてサーバIME176へ伝搬する。サーバIME176は、合成始動メッセージ(または合成始動メッセージの処理されたバージョン)を仮想アプリケーション178に提供する。それに応答して、仮想アプリケーション178は、合成手順を始動する用意を行う。   Here, in response to a user action, for example, in response to a user entering a first keyboard symbol into the client IME 146, a composite start message 310 is generated as IME data 182 by the client IME 146. Composite start message 310 propagates from client IME 146 to client agent 144, to server agent 174 via channel 180, and to server IME 176. Server IME 176 provides a composite start message (or a processed version of the composite start message) to virtual application 178. In response, the virtual application 178 prepares to start the synthesis procedure.

合成要素312は、合成文字154aおよび表示属性154bを含む。クライアントIME146は、ユーザ入力に応答してこれらの合成要素312を生成し、これらの合成要素312を、チャネル180を介してサーバIME176へ送信し、サーバIME176は、これらの合成要素312を仮想アプリケーション178に提供する。次いで仮想アプリケーション178は、受信された合成要素を使用して合成ウィンドウ154を表示する。   The composite element 312 includes a composite character 154a and a display attribute 154b. The client IME 146 generates these composite elements 312 in response to user input and sends these composite elements 312 to the server IME 176 via the channel 180, and the server IME 176 sends these composite elements 312 to the virtual application 178. To provide. Virtual application 178 then displays a composite window 154 using the received composite element.

始動要求320は、合成ウィンドウ内の合成文字のセットに基づいて文字の予測を識別するための候補ウィンドウを始動したいという要求である。始動要求320は、サーバIME176によって受信され、サーバIME176は、この要求を仮想アプリケーション178へ転送する。   The start request 320 is a request to start a candidate window for identifying character predictions based on the set of composite characters in the composite window. Startup request 320 is received by server IME 176, which forwards the request to virtual application 178.

アプリケーション178は、始動応答322を用いて始動要求320に答え、アプリケーション178は、始動応答322を、チャネル180を介してクライアントIME146に返す。始動応答322は、仮想アプリケーション178が候補ウィンドウ156を表示するかどうか、またはクライアントIME146が候補ウィンドウ156を表示するかどうかを示す。たとえば、始動応答322は、候補ウィンドウ156を表示することを仮想アプリケーション178が担当する場合には“FALSE”とし、候補ウィンドウ156を表示することをクライアントIME146が担当する場合には“TRUE”とすることが可能である。   Application 178 answers start request 320 using start response 322, and application 178 returns start response 322 to client IME 146 via channel 180. Startup response 322 indicates whether virtual application 178 displays candidate window 156 or whether client IME 146 displays candidate window 156. For example, the start response 322 is “FALSE” when the virtual application 178 is in charge of displaying the candidate window 156, and “TRUE” when the client IME 146 is in charge of displaying the candidate window 156. It is possible.

始動応答322が“FALSE”である場合には、クライアントIME146は、候補リスト要素330(たとえば、候補リスト文字、ページ・インデックス、現在のページなど)をサーバIME176へ送信し、サーバIME176は、候補リスト要素330を仮想アプリケーション178に提供する。仮想アプリケーション178は次いで、候補リスト要素330を使用して仮想アプリケーション178のスクリーン出力内に候補ウィンドウ156を表示する。これは典型的には、完全にIMEを認識するアプリケーションに関するケースであるということに留意されたい。   If the start response 322 is “FALSE”, the client IME 146 sends a candidate list element 330 (eg, candidate list character, page index, current page, etc.) to the server IME 176, and the server IME 176 Element 330 is provided to virtual application 178. Virtual application 178 then displays candidate window 156 in the screen output of virtual application 178 using candidate list element 330. Note that this is typically the case for applications that are fully IME aware.

しかしながら、始動応答322が“TRUE”である場合には、クライアントIME146は、続いて候補ウィンドウ156をディスプレイ150上にローカルに表示する。これは典型的には、部分的にIMEを認識するアプリケーションに関するケースであるということに留意されたい。   However, if the start response 322 is “TRUE”, the client IME 146 then displays the candidate window 156 locally on the display 150. Note that this is typically the case for applications that are partially IME aware.

クライアントIME146が候補ウィンドウ156を表示する状況においては、図1の構成は、クライアントIME146が候補ウィンドウ156を適切なロケーションに、すなわち、ローカル・アプリケーションに関して候補ウィンドウ156が配置されるのと同じロケーションに配置することを可能にする。たとえば、クライアントIME146は、座標要求340を、チャネル180を介して仮想アプリケーション178へ送信する。仮想アプリケーション178は、座標要求340を受信し、座標応答342を提供する。座標応答342は、チャネル180を介してクライアントIME146に返される。一例においては、座標応答342は、仮想アプリケーション178によって表示される合成ウィンドウ154のエクステント・エリアを示す座標のセットを提供する。これらの座標は、たとえば、合成ウィンドウ154を含む長方形の頂点として表されることが可能である。クライアントIME146は次いで、候補ウィンドウ156を合成ウィンドウ154と相対的に、ローカル・アプリケーションに関して配置するのと同じ方法で、たとえば(図2において示されているように)合成ウィンドウ154のすぐ下に配置することができる。別の例においては、座標応答342は、カーソル158の座標を提供する。そのようなケースにおいては、クライアントIME146は、候補ウィンドウ156をカーソル158のロケーションと相対的に配置する。いくつかの例においては、座標応答342は、合成ウィンドウ154が合成文字154aを含む場合には合成ウィンドウ154のエクステント・エリアを提供するが、合成ウィンドウ154が空である場合にはカーソル158の座標を提供する。   In the situation where the client IME 146 displays the candidate window 156, the configuration of FIG. 1 places the client IME 146 in the appropriate location, that is, in the same location where the candidate window 156 is located for the local application. Make it possible to do. For example, the client IME 146 sends a coordinate request 340 to the virtual application 178 via the channel 180. Virtual application 178 receives coordinate request 340 and provides coordinate response 342. Coordinate response 342 is returned to client IME 146 via channel 180. In one example, the coordinate response 342 provides a set of coordinates that indicate the extent area of the composite window 154 displayed by the virtual application 178. These coordinates can be represented as, for example, the vertices of a rectangle that includes the composite window 154. The client IME 146 then places the candidate window 156 relative to the composition window 154 in the same manner as it is for the local application, eg, just below the composition window 154 (as shown in FIG. 2). be able to. In another example, coordinate response 342 provides the coordinates of cursor 158. In such a case, the client IME 146 places the candidate window 156 relative to the location of the cursor 158. In some examples, the coordinate response 342 provides the extent area of the composite window 154 if the composite window 154 includes the composite character 154a, but the coordinates of the cursor 158 if the composite window 154 is empty. I will provide a.

合成終了メッセージ350は、合成の終了をトリガーする。たとえば、クライアントIME146は、ユーザが候補リスト156aから候補を選択した後に、合成終了メッセージ350を送信する。合成終了メッセージ350に応答して、仮想アプリケーション178は、確定された文字152をアプリケーション・ウィンドウ220内に配置し、合成ウィンドウ154をクリアする。そして合成手順は完了する。   The synthesis end message 350 triggers the end of synthesis. For example, the client IME 146 transmits the composition end message 350 after the user selects a candidate from the candidate list 156a. In response to the composition end message 350, the virtual application 178 places the confirmed character 152 in the application window 220 and clears the composition window 154. The synthesis procedure is then complete.

上述の通信は、新たなキーボード入力をユーザが提供するにつれて任意の回数繰り返されることが可能である。たとえば、クライアントIME146は、新たなキーボード入力をユーザがタイプし続けていることに応答して、新たな合成要素312を繰り返し送信することができる。また、合成ウィンドウ154がサイズを変えるにつれて、ならびに/またはユーザがアプリケーション・ウィンドウ220および/もしくはデスクトップ・ウィンドウ212を移動させるかもしくはサイズ変更するにつれて、座標要求340および応答342が繰り返されることが可能である。たとえば、クライアントIME146は、候補ウィンドウ156の位置を継続的に更新することができ、それによって候補ウィンドウ156は、常に合成ウィンドウ154またはカーソル158の後に続く。   The communication described above can be repeated any number of times as the user provides new keyboard input. For example, the client IME 146 may repeatedly send a new composite element 312 in response to the user continuing to type new keyboard input. Also, coordinate request 340 and response 342 may be repeated as composition window 154 changes size and / or as the user moves or resizes application window 220 and / or desktop window 212. is there. For example, client IME 146 can continually update the position of candidate window 156 so that candidate window 156 always follows composition window 154 or cursor 158.

図4は、例示的なスクリーンショット400を示している。これは、図2のスクリーンショット200に類似しているが、システム・トレイ214および254のさらに接近したビューを提供する。図4はまた、クライアントIME146のステータス・ウィンドウ402を示している。ネイティブ・デスクトップ250においては、システム・トレイ254は、キーボード・データを解釈する際にクライアント・マシン110が適用する人間言語を識別するキーボード言語設定440を含む。仮想デスクトップ210においては、システム・トレイ214は、キーボード言語設定430を含む。システム・トレイ214内のキーボード言語430は、サーバ120に関するキーボード言語選択、すなわち、キーボード入力を解釈する際にサーバ120が適用する人間言語を識別する。   FIG. 4 shows an exemplary screenshot 400. This is similar to the screen shot 200 of FIG. 2, but provides a closer view of the system trays 214 and 254. FIG. 4 also shows the status window 402 of the client IME 146. In the native desktop 250, the system tray 254 includes a keyboard language setting 440 that identifies the human language that the client machine 110 applies when interpreting keyboard data. In the virtual desktop 210, the system tray 214 includes a keyboard language setting 430. The keyboard language 430 in the system tray 214 identifies the keyboard language selection for the server 120, i.e., the human language that the server 120 applies in interpreting keyboard input.

本明細書のさらなる改良によれば、キーボード言語設定440における変更は、キーボード言語設定をクライアント110からサーバ120へ自動的に同期化することをトリガーする。同期化は、新たなキーボード言語での入力に関して特定のサーバIME176をアクティブ化することを含むことができる。したがって、たとえば、ネイティブ・デスクトップ450におけるキーボード設定440を日本語(JP)から簡体字中国語(zh−CN)へ変更することは、仮想デスクトップ210におけるキーボード設定430およびサーバIME176を日本語から簡体字中国語へ自動的に切り替えることをトリガーする。このような同期化は、クライアント110とサーバ120との間においてやり取りされるIMEデータがクライアント110およびサーバ120の両方によって同じ方法で解釈されることを確実にする。   According to a further refinement of the specification, a change in the keyboard language setting 440 triggers the automatic synchronization of the keyboard language setting from the client 110 to the server 120. Synchronization can include activating a particular server IME 176 for input in a new keyboard language. Thus, for example, changing the keyboard setting 440 in the native desktop 450 from Japanese (JP) to simplified Chinese (zh-CN) will change the keyboard setting 430 and server IME 176 in the virtual desktop 210 from Japanese to simplified Chinese. Trigger automatic switching to Such synchronization ensures that IME data exchanged between client 110 and server 120 is interpreted in the same way by both client 110 and server 120.

仮想デスクトップ210におけるシステム・トレイ214はまた、サーバ・コンパートメント設定410を変更するためのオプションを含む。サーバ・コンパートメント設定410は、サーバIME176の設定に関連しており、また、サーバIME176によって入力されるシンボルの人間言語を指定するために使用されるターゲット言語設定410aと、特定の言語におけるシンボルに関して、これらのシンボルが半角の間隔を使用して入力されるか、または全角の間隔を使用して入力されるかを指定するために使用される幅設定410bとを含むことができる。さらなるまたはその他のサーバ・コンパートメント設定が提供されることが可能である。   The system tray 214 in the virtual desktop 210 also includes options for changing the server compartment settings 410. The server compartment settings 410 are related to the settings of the server IME 176, and are related to the target language settings 410a used to specify the human language of the symbols input by the server IME 176, and the symbols in a particular language. And a width setting 410b used to specify whether these symbols are entered using half-width spacing or full-width spacing. Additional or other server compartment settings can be provided.

ステータス・ウィンドウ402は、クライアント・コンパートメント設定420を変更するためのオプションを含む。クライアント・コンパートメント設定420は、クライアントIME146の設定に関連し、ターゲット言語設定(420a)およびシンボル間隔設定(420b)を含むこともできる。さらなるまたはその他のクライアント・コンパートメント設定が提供されてもよい。したがって、クライアント・コンパートメント設定420は、サーバ・コンパートメント設定410がサーバ側でコントロールするのと同じ設定をクライアント側でコントロールすることがわかる。   The status window 402 includes options for changing the client compartment settings 420. The client compartment settings 420 relate to the settings of the client IME 146 and may also include a target language setting (420a) and a symbol interval setting (420b). Additional or other client compartment settings may be provided. Thus, it can be seen that the client compartment settings 420 control the same settings on the client side as the server compartment settings 410 control on the server side.

さらなる改良によれば、クライアントIME146のクライアント・コンパートメント設定420のうちのいずれかにおける変更は、その設定を、サーバIME176の対応するサーバ・コンパートメント設定と自動的に同期化すること、およびその逆に、自動的に同期化することをトリガーする。したがって、たとえば、ステータス・ウィンドウ402内のクライアント・ターゲット言語設定420aを変更することは、サーバ・ターゲット言語設定410aにおける自動的な変更をトリガーする。同様に、システム・トレイ214におけるサーバ間隔設定410bを変更することは、ステータス・ウィンドウ402内のクライアント間隔設定420bにおける自動的な変更をトリガーする。この同期化は、クライアントIME146およびサーバIME176が同じターゲット言語で同じ設定を伴って動作し、それによって、チャネル180を介してクライアントIME146とサーバIME176との間において送信されたデータが正しく解釈されることを確実にする。   According to a further improvement, a change in any of the client compartment settings 420 of the client IME 146 automatically synchronizes its settings with the corresponding server compartment settings of the server IME 176, and vice versa. Trigger automatic synchronization. Thus, for example, changing the client target language setting 420a in the status window 402 triggers an automatic change in the server target language setting 410a. Similarly, changing the server interval setting 410b in the system tray 214 triggers an automatic change in the client interval setting 420b in the status window 402. This synchronization ensures that the client IME 146 and the server IME 176 operate in the same target language with the same settings so that the data sent between the client IME 146 and the server IME 176 over the channel 180 is correctly interpreted. Make sure.

図5は、仮想アプリケーションをサポートするためにクライアント110とサーバ120との間におけるIMEアクティビティーの調整に含まれる動作500の例示的なフェーズを示している。これらのフェーズは、オープニング・フェーズ510、結合フェーズ520、アクティブ化フェーズ530、および合成フェーズ540を含む。これらのフェーズは典型的には、示されている順序で実行されるが、別のクライアントIME146が選択された場合にはアクティブ化フェーズ530が繰り返されることが可能である。   FIG. 5 illustrates an exemplary phase of operations 500 involved in coordinating IME activity between client 110 and server 120 to support virtual applications. These phases include an opening phase 510, a combining phase 520, an activation phase 530, and a synthesis phase 540. These phases are typically performed in the order shown, but the activation phase 530 can be repeated if another client IME 146 is selected.

オープニング・フェーズ510中に、仮想セッションが作成される。クライアント110は、クライアント・エージェント144をインスタンス化し、サーバ120は、サーバ・エージェント174をインスタンス化する。クライアント・エージェント144およびサーバ・エージェント174は、クライアント110とサーバ120との間においてIME関連情報を搬送するためにチャネル180を確立する。   During the opening phase 510, a virtual session is created. Client 110 instantiates client agent 144, and server 120 instantiates server agent 174. Client agent 144 and server agent 174 establish channel 180 to carry IME related information between client 110 and server 120.

結合フェーズ520中に、サーバ120は、チャネル180を介してクライアント110に連絡を取り、サーバ120がサポートする言語など、サーバ120自身の機能をクライアントに知らせる。それに応答して、クライアント110は、クライアント110がサポートする言語など、クライアント110の機能を提供する。一例においては、サーバ120は次いで、クライアントおよびサーバの両方がサポートするそれぞれの言語に関する言語プロファイルを用意する。サーバは次いで、サポートされる言語を確認する結合コミット・メッセージをクライアントへ送信する。   During the binding phase 520, the server 120 contacts the client 110 via the channel 180 and informs the client of its own capabilities, such as the languages that the server 120 supports. In response, the client 110 provides the functionality of the client 110, such as the language that the client 110 supports. In one example, the server 120 then prepares a language profile for each language that both the client and server support. The server then sends a join commit message to the client confirming the supported languages.

アクティブ化フェーズ530は、ユーザがクライアントIME146およびターゲット言語を選択したときに始動する。クライアント・エージェント144は、選択されたターゲット言語を、チャネル180を介してサーバ・エージェント174へ通信する。それに応答して、サーバ・エージェント174は、サーバIME176をアクティブ化し(サーバIME176がまだアクティブ化されていないと想定して)、サーバIME176を、選択されたターゲット言語のプロファイルを使用して動作するように構成する。現在の仮想セッションがデスクトップ仮想化を実行していて、複数の仮想アプリケーション178が稼働している場合には、サーバ・エージェント174は、新たにアクティブ化されたサーバIME176を、すべての稼働しているアプリケーションに対して、仮想セッションに関するシステム・デフォルトIMEとして適用する。このフェーズ中に、クライアント・エージェント144はまた、現在のクライアント・キーボード言語(すなわち、設定440によって示されているような。図4を参照されたい)をサーバ・エージェント174へ送信し、サーバ・エージェント174は、サーバ・キーボード言語(すなわち、設定430によって示されているような)を、クライアント・キーボード言語と同じであるように設定する。   The activation phase 530 starts when the user selects the client IME 146 and the target language. Client agent 144 communicates the selected target language to server agent 174 via channel 180. In response, server agent 174 activates server IME 176 (assuming that server IME 176 has not yet been activated) and causes server IME 176 to operate using the profile for the selected target language. Configure. If the current virtual session is running desktop virtualization and multiple virtual applications 178 are running, the server agent 174 is running all newly activated server IMEs 176. Applies to applications as a system default IME for virtual sessions. During this phase, the client agent 144 also sends the current client keyboard language (ie, as indicated by settings 440; see FIG. 4) to the server agent 174, and the server agent 174 sets the server keyboard language (ie, as indicated by setting 430) to be the same as the client keyboard language.

合成フェーズ540は、アクティブ化フェーズの後に続き、クライアント・マシン110のユーザが、言語シンボルを入力するためにクライアントIME146を使用しているときに、クライアント・エージェント144とサーバ・エージェント174との間におけるチャネル180を介した通信を保持することを含む。仮想セッションは、合成フェーズ540において仮想セッションの残りの持続時間にわたって、またはユーザがクライアントIME146、ターゲット言語、および/もしくはキーボード言語を変更するまで、残存することが可能であり、その時点で動作は、アクティブ化フェーズ530へ戻り、次いでアクティブ化が完了すると、再び合成フェーズ540へ進むことが可能である。   The composition phase 540 follows the activation phase and is between the client agent 144 and the server agent 174 when the user of the client machine 110 is using the client IME 146 to enter language symbols. Holding communications over channel 180. The virtual session can remain in the synthesis phase 540 for the remaining duration of the virtual session or until the user changes the client IME 146, the target language, and / or the keyboard language, at which point the operation is It is possible to return to the activation phase 530 and then proceed to the synthesis phase 540 again when activation is complete.

図6は、人間言語シンボルを仮想アプリケーションへと入力するための例示的なプロセス600を示している。プロセス600は、たとえば環境100に関連して、たとえば、図1に関連して説明されているソフトウェア構造によって実行されることが可能であり、これらのソフトウェア構造は、クライアント・マシン110のメモリ140内に存在してプロセッサ132のセットによって稼働され、および/またはサーバ120のメモリ170内に存在してプロセッサ162のセットによって稼働される。プロセス600のさまざまな行為は、任意の適切な方法で順序付けられることが可能である。したがって、例示されている順序とは異なる順序で行為が実行される実施形態が構築されることが可能であり、これらの実施形態は、いくつかの行為を同時に実行すること(たとえこれらの行為が、例示されている実施形態においては、順次生じるものとして示されていても)を含むことができる。   FIG. 6 shows an exemplary process 600 for inputting human language symbols into a virtual application. Process 600 may be performed, for example, in connection with environment 100, for example, by the software structures described in connection with FIG. 1, which are in memory 140 of client machine 110. And / or run by the set of processors 132 and / or run in the memory 170 of the server 120 and run by the set of processors 162. The various acts of process 600 can be ordered in any suitable manner. Thus, embodiments may be constructed in which actions are performed in a different order than the illustrated order, and these embodiments may perform several actions simultaneously (even if these actions are In the illustrated embodiment, even though they are shown as occurring sequentially).

610において、方法600は、クライアント・マシン110上で稼働するクライアントIME(Input Method Editor)146と、サーバ120上で稼働するサーバIME176との間において通信チャネル180を確立するステップを含む。通信チャネル180は、クライアントIME146がサーバIME176を介して仮想アプリケーション178と対話することを可能にする。仮想アプリケーション178は、サーバ120上で稼働し、クライアント・マシン110上にレンダリングされるスクリーン出力220を提供する。   At 610, the method 600 includes establishing a communication channel 180 between a client IME (Input Method Editor) 146 running on the client machine 110 and a server IME 176 running on the server 120. Communication channel 180 allows client IME 146 to interact with virtual application 178 via server IME 176. Virtual application 178 runs on server 120 and provides screen output 220 that is rendered on client machine 110.

620において、方法600は、クライアントIME146から通信チャネル180を介して受信されたIMEデータ182をサーバIME176によって仮想アプリケーション178へ中継して、仮想アプリケーション178にIMEデータ182を提供するステップを含む。IMEデータ182は、クライアント・マシン110へのユーザ入力に応答してクライアントIME146によって生成される。   At 620, method 600 includes relaying IME data 182 received from client IME 146 via communication channel 180 to virtual application 178 by server IME 176 and providing IME data 182 to virtual application 178. The IME data 182 is generated by the client IME 146 in response to user input to the client machine 110.

630において、方法600は、サーバIME176によって仮想アプリケーション178から受信されたアプリケーション情報184をサーバIME176によって通信チャネル180を介してクライアントIME146へ中継して、クライアントIME146にアプリケーション情報184を提供するステップをさらに含む。   At 630, method 600 further includes relaying application information 184 received from virtual application 178 by server IME 176 to client IME 146 via communication channel 180 by server IME 176 to provide application information 184 to client IME 146. .

人間言語の文字を仮想アプリケーションへと入力するための改良された技術について説明してきた。この技術は、クライアント・マシン110上で稼働するクライアントIME146と、サーバ120上で稼働するサーバIME176との間において通信チャネル180を確立し、クライアントIME146が、プロキシとしてサーバIME176を使用して、サーバ120上で稼働する仮想アプリケーション178と対話することを可能にするステップを含む。サーバIME176は、クライアントIME146からの情報182を仮想アプリケーション178へ中継する。サーバIME176はまた、仮想アプリケーション178からの情報184をクライアントIME146へ中継する。したがってサーバIME176は、クライアントIME146が、ローカル・アプリケーションと対話するかのように仮想アプリケーション178と対話することを可能にし、仮想アプリケーションおよびローカル・アプリケーションの両方に関して同様のユーザ経験を促進する。ユーザは、自分の好ましいクライアントIMEを引き続き採用することができ、このようなIMEは、仮想アプリケーションとともに使用される場合に、ローカル・アプリケーションとともに使用される場合と同様に動作する。   An improved technique for inputting human language characters into a virtual application has been described. This technique establishes a communication channel 180 between a client IME 146 running on a client machine 110 and a server IME 176 running on a server 120, which uses the server IME 176 as a proxy and the server 120. Including allowing to interact with a virtual application 178 running on top. The server IME 176 relays the information 182 from the client IME 146 to the virtual application 178. Server IME 176 also relays information 184 from virtual application 178 to client IME 146. Thus, the server IME 176 allows the client IME 146 to interact with the virtual application 178 as if it were interacting with the local application, facilitating a similar user experience for both the virtual application and the local application. Users can continue to adopt their preferred client IMEs, and such IMEs behave in the same way as when used with local applications when used with virtual applications.

特定の実施形態について説明してきたが、多くの代替的な実施形態または変形形態が作成されることが可能である。たとえば、中国語文字などの非表音言語シンボルの入力に関連してIMEについて説明してきたが、本明細書の改良された技術は、これらの機能を実行するIMEに限定されるものではない。たとえば、本明細書の改良された技術は、たとえば、オートコンプリート、手書き文字認識、または話声認識をサポートするためなどに、表音文字を入力するIMEとともに使用されることも可能である。   While specific embodiments have been described, many alternative embodiments or variations can be made. For example, although IMEs have been described in connection with input of non-phonetic language symbols such as Chinese characters, the improved techniques herein are not limited to IMEs that perform these functions. For example, the improved techniques herein can also be used with IMEs that input phonetic characters, for example, to support autocomplete, handwritten character recognition, or speech recognition.

さらに、本明細書の特定の実施形態を参照しながら特徴が示され説明されているが、このような特徴は、開示されている実施形態およびそれらの異形のうちのいずれかに含まれることが可能であり、本明細書においては含まれている。したがって、いずれかの実施形態に関連して開示されている特徴は、その他のいずれかの実施形態の異形として含まれているということがわかる。   Furthermore, although features have been shown and described with reference to particular embodiments herein, such features may be included in any of the disclosed embodiments and variations thereof. Yes, and is included herein. Thus, it can be seen that features disclosed in connection with any embodiment are included as variants of any other embodiment.

さらにまた、この改良またはこの改良の部分は、磁気ディスク、磁気テープ、コンパクト・ディスク、DVD、光ディスク、フラッシュ・ドライブ、SD(Secure Digital)チップまたはデバイス、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)等などの1または複数の非一時的なコンピュータ可読ストレージ・メディア(例として図6においてはメディア650として示されている)を含むコンピュータ・プログラム製品として具体化されることが可能である。任意の数のコンピュータ可読メディアが使用されることが可能である。このメディアは、命令とともにエンコードされることが可能であり、これらの命令は、1または複数のコンピュータまたはその他のプロセッサ上で実行されたときに、本明細書において説明されている1または複数のプロセスを実行する。このようなメディアは、製品またはマシンとみなされることが可能であり、1つのマシンから別のマシンへトランスポートすることが可能である。   Furthermore, this improvement, or part of this improvement, includes: magnetic disk, magnetic tape, compact disk, DVD, optical disk, flash drive, SD (Secure Digital) chip or device, application specific integrated circuit (ASIC), field Embodied as a computer program product including one or more non-transitory computer readable storage media (eg, shown as media 650 in FIG. 6), such as a programmable gate array (FPGA) It is possible. Any number of computer readable media can be used. The media can be encoded with instructions that, when executed on one or more computers or other processors, are one or more processes described herein. Execute. Such media can be considered a product or a machine and can be transported from one machine to another.

この文書を通じて使用される際には、「comprising(含む)」、「including(含む)」、「containing(含む)」、および「having(有する)」という言葉は、何かの特定のアイテム、ステップ、要素、または態様をオープンエンドな様式で示すことを意図されている。また、本明細書において使用される際には、そうではないという具体的な言明がなされていない限り、「セット」という言葉は、何かの1または複数を意味する。このことは、「〜のセット」というフレーズの後に単数形または複数形の目的語が続いているかどうかにかかわらず、および「〜のセット」というフレーズが単数形または複数形の動詞と接合されているかどうかにかかわらず、当てはまる。さらに、本明細書においては、順序を示す表現、たとえば、「第1の」、「第2の」、「第3の」などが、形容詞として使用されているかもしれないが、このような順序を示す表現は、識別の目的で使用されており、具体的に示されていない限り、何らかの順序付けまたはシーケンスを意味することを意図されているものではない。したがって、たとえば、第1のイベントの前もしくは後に、またはたとえ第1のイベントが生じることがなくても、第2のイベントが起こり得る。加えて、ある特定の要素、特徴、または行為を、「第1の」このような要素、特徴、または行為であると本明細書において識別することは、「第2の」またはその他のこのような要素、特徴、または行為も存在しなければならないということを必要とするものと解釈されるべきではない。むしろ、「第1の」アイテムは、唯一のアイテムである場合がある。本明細書においては特定の実施形態が開示されているが、これらは単なる例として提供されているということ、および本発明はこれらの特定の実施形態に限定されるものではないということがわかる。   As used throughout this document, the terms “comprising”, “including”, “containing”, and “having” refer to any particular item, step , Elements or aspects are intended to be presented in an open-ended manner. Also, as used herein, the word “set” means one or more of something, unless specifically stated otherwise. This is true regardless of whether the phrase “set of” is followed by the singular or plural object, and the phrase “set of” is joined to the singular or plural verb. Whether or not it is true. Furthermore, in this specification, expressions indicating order, for example, “first”, “second”, “third”, etc. may be used as adjectives, but such order The expression is used for identification purposes and is not intended to imply any ordering or sequence unless specifically indicated. Thus, for example, a second event can occur before or after the first event, or even if the first event does not occur. In addition, identifying a particular element, feature, or act as a “first” such element, feature, or act is referred to herein as a “second” or other such Should not be construed as requiring that any element, feature, or act be present. Rather, the “first” item may be the only item. Although specific embodiments are disclosed herein, it will be understood that these are provided by way of example only and that the present invention is not limited to these specific embodiments.

したがって、本発明の範囲から逸脱することなく、本明細書において開示されている実施形態に対して形式および細部においてさまざまな変更が行われることが可能であるということを当業者なら理解するであろう。   Accordingly, one of ordinary skill in the art appreciates that various changes in form and detail can be made to the embodiments disclosed herein without departing from the scope of the invention. Let's go.

Claims (17)

クライアント・マシン上で稼働するクライアントIME(Input Method Editor)と、サーバ上で稼働するサーバIMEとの間において通信チャネルを確立するステップであって、該通信チャネルが、前記クライアントIMEが前記サーバIMEを介して仮想アプリケーションと対話することを可能にし、該仮想アプリケーションが、前記サーバ上で稼働し、スクリーン出力を提供し、該スクリーン出力が、前記クライアント・マシン上にレンダリングされ、前記クライアントIMEは、前記クライアント・マシンにインストールされ、前記クライアント・マシンを操作するユーザにより選択されるIMEであり、前記通信チャネルは、前記クライアントIMEが、前記サーバIMEをプロキシとして使用して仮想アプリケーションと対話することを可能にするステップと、
前記クライアントIMEから前記通信チャネルを介して受信されたIMEデータを前記サーバIMEによって前記仮想アプリケーションへ中継し、前記仮想アプリケーションに前記IMEデータを提供するステップであって、前記IMEデータが、前記クライアント・マシンへのユーザ入力に応答して前記クライアントIMEによって生成され、(i)合成文字のセットおよび表示属性を含む合成要素と、(ii)前記合成文字のセットに基づいて文字の予測を識別するための候補ウィンドウを始動する要求を提供する始動要求と、を含むステップと、
前記サーバIMEによって前記仮想アプリケーションから受信されたアプリケーション情報を前記サーバIMEによって前記通信チャネルを介して前記クライアントIMEへ中継し、前記クライアントIMEに前記アプリケーション情報を提供するステップであってし、前記アプリケーション情報が、前記始動要求に応答して前記仮想アプリケーションによって生成され、前記アプリケーション情報が、前記仮想アプリケーションが候補ウィンドウを表示するかどうかを示す始動応答を含むステップと、
前記始動応答を返したことに応答して、および前記始動応答が、前記仮想アプリケーションが前記候補ウィンドウを表示することを示しているのに伴って、
前記サーバIMEによって前記クライアントIMEから前記通信チャネルを介して候補リスト要素を受信するステップと、
前記サーバIMEによって前記候補リスト要素を前記仮想アプリケーションへ転送するステップと、
前記仮想アプリケーションによって前記候補リスト要素を使用して前記仮想アプリケーションの前記スクリーン出力内に前記候補ウィンドウをレンダリングするステップと、を含む、人間言語の文字を仮想アプリケーションへと入力する方法。
Establishing a communication channel between a client IME (Input Method Editor) operating on a client machine and a server IME operating on a server, the communication channel including the server IME The virtual application runs on the server and provides screen output, the screen output is rendered on the client machine, and the client IME An IME installed on a client machine and selected by a user operating the client machine, and the communication channel is a virtual application using the server IME as a proxy by the client IME. And a step which makes it possible to interact with the Deployment,
Relaying IME data received from the client IME via the communication channel to the virtual application by the server IME and providing the IME data to the virtual application, wherein the IME data is the client (I) a composite element generated by the client IME in response to user input to a machine and including a set of composite characters and display attributes; and (ii) character prediction based on the set of composite characters. A start request that provides a request to start a candidate window of:
Wherein the application information received from the virtual application by the server IME through the communication channel by the server IME relays to the client IME, and a step of providing the application information to the client IME, the application information but the generated by the virtual application in response to a start request, wherein the application information comprises the steps including a starting response which the virtual application indicating whether the candidate window,
In response to returning the startup response, and as the startup response indicates that the virtual application displays the candidate window,
Receiving a candidate list element from the client IME via the communication channel by the server IME;
Transferring the candidate list element to the virtual application by the server IME;
Rendering the candidate window into the screen output of the virtual application using the candidate list element by the virtual application, and inputting human language characters into the virtual application.
クライアント・マシン上で稼働するクライアントIME(Input Method Editor)と、サーバ上で稼働するサーバIMEとの間において通信チャネルを確立するステップであって、該通信チャネルが、前記クライアントIMEが前記サーバIMEを介して仮想アプリケーションと対話することを可能にし、該仮想アプリケーションが、前記サーバ上で稼働し、スクリーン出力を提供し、該スクリーン出力が、前記クライアント・マシン上にレンダリングされ、前記クライアントIMEは、前記クライアント・マシンにインストールされ、前記クライアント・マシンを操作するユーザにより選択されるIMEであり、前記通信チャネルは、前記クライアントIMEが、前記サーバIMEをプロキシとして使用して仮想アプリケーションと対話することを可能にするステップと、  Establishing a communication channel between a client IME (Input Method Editor) operating on a client machine and a server IME operating on a server, the communication channel including the server IME The virtual application runs on the server and provides screen output, the screen output is rendered on the client machine, and the client IME An IME installed on a client machine and selected by a user operating the client machine, and the communication channel is a virtual application using the server IME as a proxy by the client IME. Enabling the user to interact with the application,
前記クライアントIMEから前記通信チャネルを介して受信されたIMEデータを前記サーバIMEによって前記仮想アプリケーションへ中継し、前記仮想アプリケーションに前記IMEデータを提供するステップであって、前記IMEデータが、前記クライアント・マシンへのユーザ入力に応答して前記クライアントIMEによって生成され、(i)合成文字のセットおよび表示属性を含む合成要素と、(ii)前記合成文字のセットに基づいて文字の予測を識別するための候補ウィンドウを始動する要求を提供する始動要求と、を含むステップと、  Relaying IME data received from the client IME via the communication channel to the virtual application by the server IME and providing the IME data to the virtual application, wherein the IME data is the client (I) a composite element generated by the client IME in response to user input to a machine and including a set of composite characters and display attributes; and (ii) character prediction based on the set of composite characters. A start request that provides a request to start a candidate window of:
前記サーバIMEによって前記仮想アプリケーションから受信されたアプリケーション情報を前記サーバIMEによって前記通信チャネルを介して前記クライアントIMEへ中継し、前記クライアントIMEに前記アプリケーション情報を提供するステップであってし、前記アプリケーション情報が、前記始動要求に応答して前記仮想アプリケーションによって生成され、前記アプリケーション情報が、前記クライアントIMEが候補ウィンドウを表示するかどうかを示す始動応答を含むステップと、  Relaying application information received from the virtual application by the server IME to the client IME via the communication channel by the server IME, and providing the application information to the client IME, the application information Generated by the virtual application in response to the start request, the application information including a start response indicating whether the client IME displays a candidate window;
前記始動応答を返したことに応答して、および前記始動応答が、前記クライアントIMEが前記候補ウィンドウを表示することを示しているのに伴って、  In response to returning the start response, and as the start response indicates that the client IME displays the candidate window,
前記サーバIMEによって前記クライアントIMEから前記通信チャネルを介して座標要求を受信するステップと、  Receiving a coordinate request from the client IME via the communication channel by the server IME;
前記サーバIMEによって前記座標要求を前記仮想アプリケーションへ転送するステップと、  Transferring the coordinate request to the virtual application by the server IME;
前記サーバIMEによって前記仮想アプリケーションから座標応答を受信するステップであって、該座標応答が、  Receiving a coordinate response from the virtual application by the server IME, the coordinate response comprising:
(i)前記仮想アプリケーションのカーソルのカーソル位置、または  (I) the cursor position of the virtual application cursor, or
(ii)前記仮想アプリケーションによって表示される前記合成ウィンドウのエクステント・エリアを示す座標のセットのうちの1つを提供するステップと、  (Ii) providing one of a set of coordinates indicating an extent area of the composite window displayed by the virtual application;
前記座標応答を、前記通信チャネルを介して前記クライアントIMEに返して、クライアントIMEが、前記座標応答に基づいて前記スクリーン出力と相対的なロケーションに前記候補ウィンドウを表示することを可能にし、それによって前記候補ウィンドウが、  The coordinate response is returned to the client IME via the communication channel, allowing the client IME to display the candidate window at a location relative to the screen output based on the coordinate response, thereby The candidate window is
(i)前記カーソル位置、または  (I) the cursor position, or
(ii)前記合成ウィンドウのうちの1つの隣に表示されるステップと、を含む、人間言語の文字を仮想アプリケーションへと入力する方法。  (Ii) a method of inputting human language characters into a virtual application comprising: displaying next to one of the composition windows.
前記通信チャネルを介して受信された前記IMEデータが、
ユーザ入力アクションに応答して前記クライアントIMEによって生成された合成始動メッセージをさらに含み、
前記方法が、
前記合成始動メッセージおよび前記合成要素を受信したことに応答して、前記仮想アプリケーションによって、前記仮想アプリケーションの前記スクリーン出力内に合成ウィンドウを表示するステップをさらに含み、
該合成ウィンドウが、前記表示属性を使用して合成文字の前記セットをレンダリングする、請求項1または2に記載の方法。
The IME data received via the communication channel is
Further comprising a composite start message generated by the client IME in response to a user input action;
The method comprises
In response to receiving the composition start message and the composition element, further comprising displaying a composition window in the screen output of the virtual application by the virtual application;
The method of claim 1 or 2 , wherein the composite window renders the set of composite characters using the display attributes.
前記始動要求を前記サーバIMEによって前記クライアントIMEから前記通信チャネルを介して受信するステップと、
前記サーバIMEによって前記始動要求を前記仮想アプリケーションへ転送するステップと、
前記サーバIMEによって前記仮想アプリケーションから前記始動応答を受信するステップと、
前記始動応答を、前記通信チャネルを介して前記クライアントIMEに返すステップと、をさらに含む、請求項に記載の方法。
Receiving the startup request from the client IME via the communication channel by the server IME;
Transferring the startup request to the virtual application by the server IME;
Receiving the startup response from the virtual application by the server IME;
The starting response, further comprising the steps of: returning to the client IME via the communication channel, The method of claim 3.
前記合成要素における変化に応答して、更新された座標応答を前記サーバIMEによって前記通信チャネルを介して前記クライアントIMEへ送信するステップをさらに含み、
前記更新された座標応答が、
(i)更新されたカーソル位置、または
(ii)前記合成ウィンドウの前記エクステント・エリアを示す座標の更新されたセットのうちの1つを示す、請求項に記載の方法。
Responsive to a change in the composite element, further comprising: sending an updated coordinate response by the server IME to the client IME via the communication channel;
The updated coordinate response is
3. The method of claim 2 , indicating one of (i) an updated cursor position, or (ii) an updated set of coordinates indicating the extent area of the composite window.
前記ユーザが前記クライアント・マシン上で前記表示ウィンドウを動かした場合には、さらなる更新された座標応答を前記サーバIMEによって前記通信チャネルを介して前記クライアントIMEへ送信し、
クライアントIMEが、
(i)前記カーソル位置、または
(ii)前記合成ウィンドウのうちの1つの隣に前記候補ウィンドウを引き続き表示することを可能にするステップをさらに含む、請求項に記載の方法。
If the user moves the display window on the client machine, a further updated coordinate response is sent by the server IME via the communication channel to the client IME;
The client IME
6. The method of claim 5 , further comprising the step of: (i) allowing the candidate window to continue to be displayed next to the cursor position, or (ii) one of the composite windows.
前記クライアントIMEおよび前記サーバIMEがそれぞれ、IME設定を識別するそれぞれのコンパートメントを有し、
前記方法が、前記クライアントIMEのコンパートメント設定を前記サーバIMEのコンパートメント設定と同期化し、それにより、いずれのIMEの前記コンパートメント設定に対して行われたいかなる変更も、両方のIMEの前記コンパートメント設定において実施されるステップをさらに含む、請求項1または2に記載の方法。
The client IME and the server IME each have a respective compartment identifying an IME configuration;
The method synchronizes the compartment settings of the client IME with the compartment settings of the server IME so that any changes made to the compartment settings of either IME are performed in the compartment settings of both IMEs. further comprising the method of claim 1 or 2 the steps.
前記通信チャネルを確立した後に、結合動作を実行するステップをさらに含み、
前記結合動作が、
(i)前記サーバによって、結合要求を前記クライアント・マシンへ送信するステップであって、該結合要求が、前記サーバによってサポートされる人間言語のリストを指定するステップと、
(ii)前記サーバによって前記クライアント・マシンから結合応答を受信するステップであって、該結合応答が、前記クライアント・マシンによってもサポートされる前記サーバによってサポートされる人間言語のリストを識別するステップと、
(iii)前記クライアント・マシンから受信された人間言語の前記リスト上のそれぞれの人間言語をサポートするように前記サーバを構成するステップと、を含む、請求項1または2に記載の方法。
Further comprising performing a combining operation after establishing the communication channel;
The combining operation is
(I) sending a join request to the client machine by the server, the join request specifying a list of human languages supported by the server;
(Ii) receiving a combined response from the client machine by the server, the combined response identifying a list of human languages supported by the server that is also supported by the client machine; ,
And (iii) a step of configuring the server to support each of the human language on the list of received human language from the client machine, the method according to claim 1 or 2.
制御回路によって実行されたときに、人間言語の文字を仮想アプリケーションへと入力する方法を前記制御回路に実行させる命令を有する非一時的なコンピュータ可読メディアのセットを含むコンピュータ・プログラム製品であって、
前記方法により、
クライアント・マシン上で稼働するクライアントIME(Input Method Editor)と、サーバ上で稼働するサーバIMEとの間において通信チャネルを確立し、
該通信チャネルが、前記クライアントIMEが前記サーバIMEを介して仮想アプリケーションと対話することを可能にし、
該仮想アプリケーションが、前記サーバ上で稼働し、スクリーン出力を提供し、該スクリーン出力が、前記クライアント・マシン上にレンダリングされ、前記クライアントIMEは、前記クライアント・マシンにインストールされ、前記クライアント・マシンを操作するユーザにより選択されるIMEであり、前記通信チャネルが、前記クライアントIMEは、前記サーバIMEをプロキシとして使用して仮想アプリケーションと対話することを可能にし、
前記クライアントIMEから前記通信チャネルを介して受信されたIMEデータを前記サーバIMEによって前記仮想アプリケーションへ中継して、前記仮想アプリケーションに前記IMEデータを提供し、
前記IMEデータが、前記クライアント・マシンへのユーザ入力に応答して前記クライアントIMEによって生成され、(i)合成文字のセットおよび表示属性を含む合成要素と、(ii)前記合成文字のセットに基づいて文字の予測を識別するための候補ウィンドウを始動する要求を提供する始動要求と、を含み、
前記サーバIMEによって前記仮想アプリケーションから受信されたアプリケーション情報を前記サーバIMEによって前記通信チャネルを介して前記クライアントIMEへ中継して、前記クライアントIMEに前記アプリケーション情報を提供し、前記アプリケーション情報が、前記始動要求に応答して前記仮想アプリケーションによって生成され、前記アプリケーション情報が、前記クライアントIMEが補ウィンドウを表示するかどうかを示す始動応答を含み、
前記始動応答を返したことに応答し、および前記始動応答が、前記クライアントIMEが前記候補ウィンドウを表示することを示しているのに伴って、
前記サーバIMEによって前記クライアントIMEから前記通信チャネルを介して座標要求を受信し、
前記サーバIMEによって前記座標要求を前記仮想アプリケーションへ転送し、
前記サーバIMEによって前記仮想アプリケーションから座標応答を受信するよう構成され、
該座標応答が、
(i)前記仮想アプリケーションのカーソルのカーソル位置、または
(ii)前記仮想アプリケーションによって表示される前記合成ウィンドウのエクステント・エリアを示す座標のセットのうちの1つを提供し、
前記座標応答を、前記通信チャネルを介して前記クライアントIMEに返して、クライアントIMEが、前記座標応答に基づいて前記スクリーン出力と相対的なロケーションに前記候補ウィンドウを表示することを可能にし、それによって前記候補ウィンドウが、
(i)前記カーソル位置または
(ii)前記合成ウィンドウのうちの1つの隣に表示されるよう構成されている、コンピュータ・プログラム製品。
A computer program product comprising a set of non-transitory computer readable media having instructions that when executed by a control circuit cause the control circuit to execute a method for inputting human language characters into a virtual application,
By said method
Establishing a communication channel between a client IME (Input Method Editor) running on a client machine and a server IME running on a server,
The communication channel allows the client IME to interact with a virtual application via the server IME;
The virtual application runs on the server and provides screen output, the screen output is rendered on the client machine, the client IME is installed on the client machine, and the client machine is An IME selected by an operating user, wherein the communication channel allows the client IME to interact with a virtual application using the server IME as a proxy;
Relaying IME data received from the client IME via the communication channel to the virtual application by the server IME to provide the IME data to the virtual application;
The IME data is generated by the client IME in response to user input to the client machine, and is based on (i) a composite element including a set of composite characters and display attributes; and (ii) based on the set of composite characters. A start request that provides a request to start a candidate window for identifying character predictions;
Said relays to the client IME via the communication channel by the server IME application information received from the virtual application by the server IME, providing the application information to the client IME, the application information, the starting the generated by the virtual application in response to the request, the application information, see contains an initiation response which the client IME indicating whether to display the candidate window,
In response to returning the startup response, and the startup response indicates that the client IME displays the candidate window;
Receiving a coordinate request from the client IME via the communication channel by the server IME;
Transferring the coordinate request to the virtual application by the server IME;
Configured to receive a coordinate response from the virtual application by the server IME;
The coordinate response is
(I) the cursor position of the virtual application cursor, or
(Ii) providing one of a set of coordinates indicating an extent area of the composite window displayed by the virtual application;
The coordinate response is returned to the client IME via the communication channel, allowing the client IME to display the candidate window at a location relative to the screen output based on the coordinate response, thereby The candidate window is
(I) the cursor position or
(Ii) A computer program product configured to be displayed next to one of the composition windows .
前記通信チャネルを介して受信された前記IMEデータが、
ユーザ入力アクションに応答して前記クライアントIMEによって生成された合成始動メッセージをさらに含み、
前記方法により、前記合成始動メッセージおよび前記合成要素を受信したことに応答して、前記仮想アプリケーションによって、前記仮想アプリケーションの前記スクリーン出力内に合成ウィンドウを表示し、
該合成ウィンドウが、前記表示属性を使用して合成文字の前記セットをレンダリングするよう構成されている、請求項に記載のコンピュータ・プログラム製品。
The IME data received via the communication channel is
Further comprising a composite start message generated by the client IME in response to a user input action;
In response to receiving the composition start message and the composition element by the method, the virtual application displays a composition window in the screen output of the virtual application;
The computer program product of claim 9 , wherein the composite window is configured to render the set of composite characters using the display attributes.
前記方法により、
前記始動要求を前記サーバIMEによって前記クライアントIMEから前記通信チャネルを介して受信し、
前記サーバIMEによって前記始動要求を前記仮想アプリケーションへ転送し、
前記サーバIMEによって前記仮想アプリケーションから前記始動応答を受信するよう構成され、
前記始動応答を、前記通信チャネルを介して前記クライアントIMEに返すよう構成されている、請求項10に記載のコンピュータ・プログラム製品。
By said method
Receiving the startup request from the client IME via the communication channel by the server IME;
Forwarding the startup request to the virtual application by the server IME;
Configured to receive the startup response from the virtual application by the server IME;
The computer program product of claim 10 , wherein the computer program product is configured to return the startup response to the client IME via the communication channel.
前記方法により、
前記合成要素における変化に応答して、更新された座標応答を前記サーバIMEによって前記通信チャネルを介して前記クライアントIMEへ送信するよう構成され、
前記更新された座標応答が、
(i)更新されたカーソル位置、または
(ii)前記合成ウィンドウの前記エクステント・エリアを示す座標の更新されたセットのうちの1つを示すよう構成されている、請求項に記載のコンピュータ・プログラム製品。
By said method
Responsive to changes in the composite element, configured to send an updated coordinate response by the server IME to the client IME via the communication channel;
The updated coordinate response is
(I) updated cursor position, or (ii) is configured to indicate one of a set of the updated coordinates indicating the extent area of the synthesis window, the computer according to claim 9 Program product.
前記方法により、
前記ユーザが前記クライアント・マシン上で前記表示ウィンドウを動かした場合には、さらなる更新された座標応答を前記サーバIMEによって前記通信チャネルを介して前記クライアントIMEへ送信し、
クライアントIMEが、
(i)前記カーソル位置、または
(ii)前記合成ウィンドウのうちの1つの隣に前記候補ウィンドウを引き続き表示することを可能にするよう構成されている、請求項12に記載のコンピュータ・プログラム製品。
By said method
If the user moves the display window on the client machine, a further updated coordinate response is sent by the server IME via the communication channel to the client IME;
The client IME
The computer program product of claim 12 , configured to allow the candidate window to continue to be displayed next to (i) the cursor position, or (ii) one of the composite windows.
メモリ内に格納されている命令を実行するために前記メモリに結合されているプロセッサのセットを含む制御回路を含むサーバ装置であって、
前記制御回路が、
クライアント・マシン上で稼働するクライアントIME(Input Method Editor)と、
サーバ上で稼働するサーバIMEとの間において通信チャネルを確立するよう構成され、
該通信チャネルが、前記クライアントIMEが前記サーバIMEを介して仮想アプリケーションと対話することを可能にし、
該仮想アプリケーションが、前記サーバ上で稼働し、スクリーン出力を提供し、
該スクリーン出力が、前記クライアント・マシン上にレンダリングされ、前記クライアントIMEは、前記クライアント・マシンにインストールされ、前記クライアント・マシンを操作するユーザにより選択されるIMEであり、前記通信チャネルは、前記クライアントIMEが、前記サーバIMEをプロキシとして使用して仮想アプリケーションと対話することを可能にし、
前記クライアントIMEから前記通信チャネルを介して受信されたIMEデータを前記サーバIMEによって前記仮想アプリケーションへ中継して、前記仮想アプリケーションに前記IMEデータを提供するよう構成され、
前記IMEデータが、前記クライアント・マシンへのユーザ入力に応答して前記クライアントIMEによって生成され、(i)合成文字のセットおよび表示属性を含む合成要素と、(ii)前記合成文字のセットに基づいて文字の予測を識別するための候補ウィンドウを始動する要求を提供する始動要求と、を含み、
前記サーバIMEによって前記仮想アプリケーションから受信されたアプリケーション情報を前記サーバIMEによって前記通信チャネルを介して前記クライアントIMEへ中継して、前記クライアントIMEに前記アプリケーション情報を提供し、前記アプリケーション情報が、前記始動要求に応答して前記仮想アプリケーションによって生成され、前記アプリケーション情報が、前記仮想アプリケーションが補ウィンドウを表示するかどうかを示す始動応答を含み、
前記始動応答を返したことに応答して、および前記始動応答が、前記仮想アプリケーションが前記候補ウィンドウを表示することを示しているのに伴って、
前記制御回路が、
前記サーバIMEによって前記クライアントIMEから前記通信チャネルを介して候補リスト要素を受信し、
前記サーバIMEによって前記候補リスト要素を前記仮想アプリケーションへ転送し、
前記仮想アプリケーションによって前記候補リスト要素を使用して前記仮想アプリケーションの前記スクリーン出力内に前記候補ウィンドウをレンダリングするように構築および構成されている、サーバ装置。
A server device including a control circuit including a set of processors coupled to the memory for executing instructions stored in the memory,
The control circuit comprises:
A client IME (Input Method Editor) running on the client machine;
Configured to establish a communication channel with a server IME running on the server;
The communication channel allows the client IME to interact with a virtual application via the server IME;
The virtual application runs on the server and provides screen output;
The screen output is rendered on the client machine, the client IME is an IME installed on the client machine and selected by a user operating the client machine, and the communication channel is the client Enabling an IME to interact with a virtual application using the server IME as a proxy;
IME data received from the client IME via the communication channel is relayed to the virtual application by the server IME to provide the IME data to the virtual application;
The IME data is generated by the client IME in response to user input to the client machine, and is based on (i) a composite element including a set of composite characters and display attributes; and (ii) based on the set of composite characters. A start request that provides a request to start a candidate window for identifying character predictions;
Said relays to the client IME via the communication channel by the server IME application information received from the virtual application by the server IME, providing the application information to the client IME, the application information, the starting the generated by the virtual application in response to the request, the application information, see contains an initiation response which the virtual application indicating whether the candidate window,
In response to returning the startup response, and as the startup response indicates that the virtual application displays the candidate window,
The control circuit comprises:
Receiving a candidate list element from the client IME via the communication channel by the server IME;
Transferring the candidate list element to the virtual application by the server IME;
A server device constructed and configured to render the candidate window in the screen output of the virtual application using the candidate list element by the virtual application .
前記通信チャネルを介して受信された前記IMEデータが、
ユーザ入力アクションに応答して前記クライアントIMEによって生成された合成始動メッセージをさらに含み、
前記制御回路が、前記合成始動メッセージおよび前記合成要素を受信したことに応答して、前記仮想アプリケーションによって、前記仮想アプリケーションの前記スクリーン出力内に合成ウィンドウを表示して、前記表示属性を使用して合成文字の前記セットをレンダリングするようにさらに構築および構成されている、請求項14に記載のサーバ装置。
The IME data received via the communication channel is
Further comprising a composite start message generated by the client IME in response to a user input action;
In response to receiving the composition start message and the composition element, the control circuit causes the virtual application to display a composition window in the screen output of the virtual application and to use the display attribute. 15. The server device of claim 14 , further constructed and configured to render the set of composite characters.
前記制御回路が、
前記始動要求を前記サーバIMEによって前記クライアントIMEから前記通信チャネルを介して受信し、
前記サーバIMEによって前記始動要求を前記仮想アプリケーションへ転送し、
前記サーバIMEによって前記仮想アプリケーションから前記始動応答を受信するよう構成され、
前記始動応答を、前記通信チャネルを介して前記クライアントIMEに返すようにさらに構築および構成されている、請求項15に記載のサーバ装置。
The control circuit comprises:
Receiving the startup request from the client IME via the communication channel by the server IME;
Forwarding the startup request to the virtual application by the server IME;
Configured to receive the startup response from the virtual application by the server IME;
16. The server device according to claim 15 , further constructed and configured to return the startup response to the client IME via the communication channel.
前記クライアントIMEおよび前記サーバIMEがそれぞれ、IME設定を識別するそれぞれのコンパートメントを有し、
前記制御回路が、前記サーバIMEのコンパートメント設定を前記クライアントIMEのコンパートメント設定と同期化し、それによって、いずれのIMEの前記コンパートメント設定に対して行われたいかなる変更も、両方のIMEの前記コンパートメント設定において実施されるようにさらに構築および構成されている、請求項14に記載のサーバ装置。
The client IME and the server IME each have a respective compartment identifying an IME configuration;
The control circuit synchronizes the compartment settings of the server IME with the compartment settings of the client IME, so that any changes made to the compartment settings of either IME are in the compartment settings of both IMEs. 15. The server device according to claim 14 , further constructed and configured to be implemented.
JP2017041435A 2016-03-11 2017-03-06 Coordinating input method editor (IME) activity between virtual application client and server Expired - Fee Related JP6607876B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610140425.1 2016-03-11
CN201610140425.1A CN107179952B (en) 2016-03-11 2016-03-11 Collaborative Input Method Editor (IME) activity between virtual application clients and servers

Publications (2)

Publication Number Publication Date
JP2017201505A JP2017201505A (en) 2017-11-09
JP6607876B2 true JP6607876B2 (en) 2019-11-20

Family

ID=59830234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017041435A Expired - Fee Related JP6607876B2 (en) 2016-03-11 2017-03-06 Coordinating input method editor (IME) activity between virtual application client and server

Country Status (3)

Country Link
JP (1) JP6607876B2 (en)
KR (1) KR102010127B1 (en)
CN (1) CN107179952B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117256A (en) * 2018-07-12 2019-01-01 维沃移动通信有限公司 A kind of management method and terminal of background application
CN111930367B (en) * 2019-05-13 2024-04-16 阿里巴巴集团控股有限公司 Data processing method, device and equipment
CN113741708B (en) * 2020-05-31 2024-06-11 华为技术有限公司 Input method and electronic equipment
CN112565425B (en) * 2020-12-03 2021-08-06 南京机敏软件科技有限公司 Method for copying and pasting among cloud application programs of multiple cross-cloud server host machine sessions
US12067174B2 (en) 2021-08-17 2024-08-20 Citrix Systems, Inc. Text input synchronization for remote applications
CN115052195B (en) * 2022-06-24 2024-05-14 深圳创维-Rgb电子有限公司 Remote input method, device, equipment and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555529B2 (en) * 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
KR101743122B1 (en) * 2009-11-27 2017-06-15 구글 인코포레이티드 Client-server input method editor architecture
JP6229517B2 (en) * 2014-02-04 2017-11-15 コニカミノルタ株式会社 Image forming system, image forming apparatus, and program
JP6213297B2 (en) * 2014-02-21 2017-10-18 コニカミノルタ株式会社 Image forming system, image forming apparatus, remote control device, and program

Also Published As

Publication number Publication date
JP2017201505A (en) 2017-11-09
CN107179952A (en) 2017-09-19
KR20170106222A (en) 2017-09-20
CN107179952B (en) 2021-03-23
KR102010127B1 (en) 2019-10-21

Similar Documents

Publication Publication Date Title
JP6607876B2 (en) Coordinating input method editor (IME) activity between virtual application client and server
WO2020034747A1 (en) Image generation method, device and apparatus, and storage medium
CN107992301B (en) User interface implementation method, client and storage medium
CN107111496B (en) Customizable blade application
US10671357B2 (en) Preview changes to mobile applications at different display resolutions
CN102929505B (en) Adaptive input language switches
EP2854428B1 (en) Terminal for providing instant messaging service
KR20180125422A (en) Messaging application interacting with one or more extension applications
US10635296B2 (en) Partitioned application presentation across devices
KR102136474B1 (en) Synchronization of client-side keyboard layout with server-side keyboard layout in a virtual session
JP2018504657A (en) Tab-based browser content sharing
KR20160060110A (en) Quick tasks for on-screen keyboards
KR102390187B1 (en) Method and system for providing translation for conference assistance
CN113268212A (en) Screen projection method and device, storage medium and electronic equipment
US20170039037A1 (en) Live mobile application visual editor demo
US20180004546A1 (en) Utilizing a local device keyboard in a remote desktop environment
WO2024011095A1 (en) Methods and systems for recording a graphical element by dragging a drag-to-record element
CN114416270B (en) Page display method, device, equipment and medium
US11487559B2 (en) Dynamically switching between pointer modes
US20160147741A1 (en) Techniques for providing a user interface incorporating sign language
KR102127909B1 (en) Chatting service providing system, apparatus and method thereof
TW202101278A (en) Method, computer system and computer readable recording medium of providing font tag
KR20210018353A (en) A method, apparatus, and computer readable medium for sharing a desktop via a web socket connection within a networked collaboration workspace.
EP3635527B1 (en) Magnified input panels
US20230229869A1 (en) Local input method for remote desktops

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190425

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: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191021

R150 Certificate of patent or registration of utility model

Ref document number: 6607876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees