(57)【要約】【課題】リモートデスクトップシステムにおける画面操作に応じた入力操作に対する描画処理を識別する。【解決手段】リモートデスクトップシステムにおける入力操作データと描画処理データとを取得可能なコンピュータが実行する対応付け方法であって、取得された入力操作データと描画処理データとから所定期間内の入力操作データ群と描画処理データ群とを抽出し、前記入力操作データ群のうちの一の入力操作データに含まれる座標と前記描画処理データ群のうちの一の描画処理データに含まれる描画領域の座標との相対位置を算出し、前記座標の相対位置に基づき前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を算出し、前記想定される座標に基づき前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける処理を含む対応付け方法が提供される。【選択図】図１２
2015170031.tif 000002
【特許請求の範囲】
【請求項１】
リモートデスクトップシステムにおける画面操作に応じた座標を含む入力操作データと、描画処理された領域の座標を含む描画処理データと、を取得可能なコンピュータが実行する対応付け方法であって、
取得された入力操作データと描画処理データとから所定期間内の入力操作データ群と描画処理データ群とを抽出し、
前記入力操作データ群のうちの一の入力操作データに含まれる座標と、前記描画処理データ群のうちの一の描画処理データに含まれる描画領域の座標と、の相対位置を算出し、
前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を算出し、
前記想定される座標に基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける、
処理を含む対応付け方法。
【請求項２】
前記相対位置を算出する処理は、
前記入力操作データ群のうちの最後の入力操作データに含まれる座標と、前記描画処理データ群のうちの最後の描画処理データに含まれる描画領域の座標と、の相対位置を算出する、
請求項１に記載の対応付け方法。
【請求項３】
前記相対位置を算出する処理は、
前記入力操作データ群のうちの最後の入力操作データに含まれる座標と、前記描画処理データ群のうちの最後の描画処理データに含まれる描画領域を画定する複数の座標のそれぞれとから、前記座標の相対位置を複数算出し、
前記想定される座標を算出する処理は、
複数の前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を複数算出し、
前記対応付ける処理は、
複数の前記想定される座標の少なくともいずれかに基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける、
請求項２に記載の対応付け方法。
【請求項４】
リモートデスクトップシステムにおける画面操作に応じた座標を含む入力操作データと、描画処理された領域の座標を含む描画処理データと、を取得可能なコンピュータに実行させるための対応付けプログラムであって、
取得された入力操作データと描画処理データとから所定期間内の入力操作データ群と描画処理データ群とを抽出し、
前記入力操作データ群のうちの一の入力操作データに含まれる座標と、前記描画処理データ群のうちの一の描画処理データに含まれる描画領域の座標と、の相対位置を算出し、
前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を算出し、
前記想定される座標に基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける、
処理を含む対応付けプログラム。
【請求項５】
リモートデスクトップシステムにおける画面操作に応じた座標を含む入力操作データと、描画処理された領域の座標を含む描画処理データと、を取得可能な対応付け装置であって、
取得された入力操作データと描画処理データとから所定期間内の入力操作データ群と描画処理データ群とを抽出するデータ抽出部と、
前記入力操作データ群のうちの一の入力操作データに含まれる座標と、前記描画処理データ群のうちの一の描画処理データに含まれる描画領域の座標と、の相対位置を算出する相対位置算出部と、
前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を算出する想定位置算出部と、
前記想定される座標に基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける対応付け部と、
を有する対応付け装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対応付け方法、対応付けプログラム及び対応付け装置に関する。
【背景技術】
【０００２】
ＧＵＩ（Graphical User Interface）を有する対話システムの性能や品質を評価する方法が提案されている（例えば、特許文献１〜３参照）。対話システムの一例としては、サーバのＧＵＩをクライアント機器から操作し、サーバによる描画処理によって生成された画面をクライアント機器に提供するリモートデスクトップシステムが挙げられる。リモートデスクトップシステムの性能や品質を評価するために、ユーザによりマウスの移動等の操作がなされてから画面が提供されるまでの応答時間を計測することがある。この応答時間が短いほど、リモートデスクトップシステムにおけるユーザの体感品質が良いと評価できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−１５３０２２号公報
【特許文献２】特開２００８−１９１９８１号公報
【特許文献３】特開２００４−３８６１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記リモートデスクトップシステムにおいて、ユーザの画面操作に応じた入力操作に対する描画処理が一対一であれば、入力操作データの送信時刻と描画処理データの受信時刻とに基づき応答時間を正確に算出し、システムの品質を正しく評価することができる。
【０００５】
しかしながら、入力操作と描画処理とは必ず一対一に対応するとは限らない。このため、入力操作データと描画処理データとを単純に対応させて応答時間を算出しても、応答時間が正確に算出できずにシステムの品質を正しく評価することは困難である。
【０００６】
そこで、一側面では、リモートデスクトップシステムにおける画面操作に応じた入力操作に対する描画処理を識別することを目的とする。
【課題を解決するための手段】
【０００７】
一つの案では、リモートデスクトップシステムにおける画面操作に応じた座標を含む入力操作データと、描画処理された領域の座標を含む描画処理データと、を取得可能なコンピュータが実行する対応付け方法であって、取得された入力操作データと描画処理データとから所定期間内の入力操作データ群と描画処理データ群とを抽出し、前記入力操作データ群のうちの一の入力操作データに含まれる座標と、前記描画処理データ群のうちの一の描画処理データに含まれる描画領域の座標と、の相対位置を算出し、前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を算出し、前記想定される座標に基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける、処理を含む対応付け方法が提供される。
【発明の効果】
【０００８】
一態様によれば、リモートデスクトップシステムにおける画面操作に応じた入力操作に対する描画処理を識別することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係るリモートデスクトップシステムの構成例を示す図。
【図２】一実施形態に係るリモートデスクトップシステムの動作例を示す図。
【図３】クライアント機器とサービスサーバとで送受信されるデータの一例を示す図。
【図４】入力操作に対して描画処理される例を示す図。
【図５】一実施形態に係るキャプチャサーバの機能構成例を示す図。
【図６】一実施形態に係る操作ログテーブルに記憶される情報の一例を示す図。
【図７】一実施形態に係るユーザ操作テーブルに記憶される情報の一例を示す図。
【図８】一実施形態に係る描画処理テーブルに記憶される情報の一例を示す図。
【図９】一実施形態に係る相対座標の一例を示す図。
【図１０】一実施形態に係る想定されるカーソルの座標の一例を示す図。
【図１１】一実施形態に係る対応付けの一例を示す図。
【図１２】第１実施形態にかかる対応付け処理を示すフローチャート。
【図１３】第１実施形態にかかる操作ログテーブルに記憶される情報の一例を示す図。
【図１４】第１実施形態にかかる相対座標及び想定されるカーソルの座標の一例を示す図。
【図１５】第２実施形態にかかる対応付け処理を説明するための図。
【図１６】第２実施形態にかかる対応付け処理を説明するための図。
【図１７】第２実施形態にかかる操作ログテーブルに記憶される情報の一例を示す図。
【図１８】第２実施形態にかかる対応付け処理を示すフローチャート。
【図１９】一実施形態に係る応答時間テーブルに記憶される情報の一例を示す図。
【図２０】一実施形態に係るキャプチャサーバのハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１１】
[リモートデスクトップシステム]
まず、本発明の一実施形態にかかるリモートデスクトップシステムについて、図１及び図２を参照しながら簡単に説明する。図１は、一実施形態に係るリモートデスクトップシステムの構成例を示す。図２は、一実施形態に係るリモートデスクトップシステムの動作例を示す。
【００１２】
本実施形態のリモートデスクトップシステム１０は、クライアント機器１、サービスサーバ２、スイッチ３及びキャプチャサーバ４を有する。クライアント機器１とサービスサーバ２とは、ネットワーク５で相互に接続されている。キャプチャサーバ４は、スイッチ３を介してクライアント機器１とサービスサーバ２とで送受信されるデータを取得可能な装置である。
【００１３】
例えば、リモートデスクトップシステム１０には、サービスサーバ２がデスクトップ画面の生成を実行し、クライアント機器１に提供するシンクライアントシステムと呼ばれるシステムも含まれる。
【００１４】
なお、本実施形態のシステムでは、クライアント機器１が複数であるが、単数でもよい。また、本実施形態のシステムでは、サービスサーバ２及びキャプチャサーバ４が単数であるが、複数でもよい。サービスサーバ２及びキャプチャサーバ４が複数の場合、それぞれ分散処理をすることも可能である。
【００１５】
クライアント機器１及びサービスサーバ２は、図２に示したように次のような一連の処理を繰り返す。まず、クライアント機器１は、ユーザによるマウス等の入力装置の操作（以下、「ユーザ操作」ともいう。）に対して入力操作のコマンドをサービスサーバ２に送信する（ステップＳ１）。入力操作のコマンドには、その操作に関する情報を示す入力操作データが含まれる。
【００１６】
「ユーザ操作」は、マウスボタンの押下げ、マウスボタンの移動、キー入力などのユーザによる操作であり、クライアント機器１は、ユーザ操作に応じた入力操作のコマンドを画面更新とは独立にサービスサーバ２に送信する。
【００１７】
サービスサーバ２は、受信した入力操作のコマンドに対応する処理を行う。サービスサーバ２は、描画処理のコマンドをクライアント機器１に返信する（ステップＳ２）。描画処理のコマンドには、サービスサーバ２による描画処理により生成された画面の描画処理データが含まれる。なお、サービスサーバ２による描画処理の一例としては、例えばキー入力に応じた文字の表示、マウス移動操作に伴うポインタの移動、画面のスクロール等、コンピュータが入力操作に応じて実行する種々の描画処理が挙げられる。
【００１８】
クライアント機器１は、サービスサーバ２から受信した描画処理データに基づいてディスプレイの画面を更新する。これにより、ユーザは、ユーザ操作の結果を画面上の表示から視覚的に認識することができる。
【００１９】
リモートデスクトップ環境では、クライアント機器１から「入力操作データ」が送信されてから、クライアント機器１が「描画処理データ」を受信するまでの時間が短いほどユーザの体感する品質が良いということになる。本システムには、クライアント機器１及びサービスサーバ２間で送受信される入力操作データ及び描画処理データを時系列に沿って取得するためにスイッチ３及びキャプチャサーバ４が備えられている。
【００２０】
スイッチ３は、通常のスイッチング機能を備えると共に、ポートミラーリング機能を備える。スイッチ３は、クライアント機器１からサービスサーバ２に送信される入力操作データ及びサービスサーバ２からクライアント機器１に返信される描画処理データを、キャプチャサーバ４に対しポートミラーリングする。
【００２１】
キャプチャサーバ４は、スイッチ３によってポートミラーリングされる入力操作データ及び描画処理データをキャプチャすることによって取得する。そして、キャプチャサーバ４は、キャプチャした入力操作データ及び描画処理データを用いて、クライアント機器１における入力操作が送信されてから、その入力操作に応じて生成された描画処理データがクライアント機器１に返信されるまでの応答時間を算出する。
【００２２】
（クライアント機器及びサービスサーバ間で送受信されるデータの一例）
クライアント機器１及びサービスサーバ２間で送受信されるデータの一例を、図３を参照しながら具体的に説明する。図３に示す例において、下から上に向く矢印は、クライアント機器１からサービスサーバ２に送信されるデータを示す。クライアント機器１からサービスサーバ２に送信されるデータは、入力操作データを含む。
【００２３】
一方、上から下に向く矢印は、サービスサーバ２からクライアント機器１に送信されるデータを示す。サービスサーバ２からクライアント機器１に送信されるデータは、描画処理データを含む。また、描画処理データは、描画処理が新規画面の描画を伴う場合には、描画対象となる画面データを含む。ここで、フレーム送信完了コマンドは、画面の一フレーム分を表示するための描画処理データの送信が完了したことを示す。換言すれば、１つのフレーム送信完了コマンドとその次のフレーム送信完了コマンドとの間に送信される描画処理データが、１フレーム分の画面を表示するための描画処理データに相当する。
【００２４】
ところで、サービスサーバ２は原則として、クライアント機器１で表示する画面に更新が発生していないときは、フレーム送信完了コマンドデータを送信しない。例えば、図３に示したように、ユーザがマウスによるウィンドウ移動の操作を行った場合、ユーザ操作「マウスボタンの押上げ及び押下げ」に応じたクライアント機器１の入力操作データに対する「描画処理データ」は一対一に対応している。一方、Ａで示した通信データでは、ユーザ操作「マウスカーソルの移動」を示す複数の座標の変化に応じた複数の入力操作データに対して「描画処理データ」は一度送信されたのみである。
【００２５】
つまり、マウス操作によるカーソルの位置情報では、ユーザ操作に対する入力操作データが、クライアント機器１からサービスサーバ２にきめ細かく通知されることが多い。その結果として、キャプチャサーバ４は、マウスによりウィンドウを移動するような操作においてはユーザ操作に基づく入力操作データを描画処理データよりも多く取得することとなる。
【００２６】
このように、リモートデスクトップ環境においては、複数の入力操作が間引かれ、単一の描画処理にまとめられてしまう場合がある。図４（ａ）は、複数の入力操作に対して間引かれて描画処理が行われる例を示す。例えば、ユーザ操作ａ〜ｄは、それぞれユーザ操作に応じた入力操作に対してそれぞれ描画処理が行われて描画されるのではなく、まとめて単一の描画処理が実行されて、（１）の時点で描画される。同様に、ユーザ操作ｅ〜ｉ、ユーザ操作ｊ〜ｎ、ユーザ操作ｏ〜ｓは、それぞれまとめて単一の描画処理が実行されて、（２）、（３）、（４）の時点でそれぞれ描画される。
【００２７】
加えて、リモートデスクトップ環境においてはユーザ操作に対する描画処理は多少なりとも遅延する。そのため、抽出する描画処理の終端区間をユーザ操作に対して余裕を持たせる必要がある。一般にインタラクティブな入力操作に対する応答時間の待ち時間の限界値は１５０ミリ秒といわれており、これは時間αの最短値として使用可能であると考える。また、異常検知を目的とする場合は数秒単位での値が適切であると考える。
【００２８】
なお、ネットワークに起因する遅延が発生している場合は上記の待ち時間の基準とは別に、発生している遅延時間に応じて終端区間をさらに延長する必要がある。図４（ｂ）はユーザ操作と描画処理の時系列での関係を表したものである。本実行形態に記載のとおり、リモートデスクトップ環境ではユーザ操作に応じた入力操作データはネットワーク５を通じてサービスサーバ２送られる。サービスサーバ２は、描画処理後、処理結果である描画処理データをネットワーク５を通じてクライアント機器１に送信する。そのため、上記応答時間には、必ずデータ通信による遅延時間が含まれる。図４（ｂ）の例では、ユーザ操作aに対する描画処理データの取得は、上記遅延により（１）で示すタイミングに行われている。（１）のタイミングには次のユーザ操作bが行われている。以下、ユーザ操作bは（２）で示すタイミングに行われ、ユーザ操作ｃは（３）で示すタイミングに行われる、という具合に処理される。
【００２９】
以上に説明したように、リモートデスクトップ環境において、入力操作データと描画処理データとは必ずしも一対一に対応して送受信されるものではない。また、同じ入力操作データに対して必ず特定の描画処理データが返信されるという性質のものでもない。このため、入力操作データと描画処理データとを単純に対応させて応答時間を算出しても、応答時間が正確に算出できずにシステムの品質を正しく評価することは困難である。
【００３０】
そこで、キャプチャサーバ４は、クライアント機器１がサービスサーバ２から受信する描画処理データ群のうちから、一の入力操作データに対応する描画処理データを識別することを可能とする。
【００３１】
以下、キャプチャサーバ４によって実行される入力操作データと描画処理データとの対応付けの一実施形態について説明する。なお、キャプチャサーバ４は、入力操作データと描画処理データとの対応付けを行う対応付け装置の一例である。対応付け装置の他の例としては、キャプチャサーバ４からデータを得ることができる他のサーバが挙げられる。つまり、対応付け装置は、クライアント機器１及びサービスサーバ２間で送受信されるデータを取得可能な装置であればどのような形態でシステムに組み込まれていてもよい。
【００３２】
また、本明細書では、ユーザ操作の一例として「マウス移動」による「ウィンドウの移動」を上げて説明する。しかしながら、本実施形態に係る対応付け方法では、ユーザ操作はウィンドウの移動に限定されない。
【００３３】
[キャプチャサーバの機能構成]
次に、一実施形態に係るキャプチャサーバ４の機能構成の一例について、図５を参照しながら説明する。図５は、一実施形態に係るキャプチャサーバ４の機能構成の一例を示す。キャプチャサーバ４は、キャプチャ部１１、Ｌ７解析部１２、データ抽出部１３、想定位置算出部１４、想定位置算出部１５、対応付け部１６、応答時間算出部１７及び記憶部２０を有する。また、キャプチャサーバ４の記憶部２０は、操作ログテーブル２１、ユーザ操作テーブル２２、描画処理テーブル２３及び応答時間テーブル２４を記憶する。
【００３４】
キャプチャ部１１は、スイッチ３によってポートミラーリングされた、クライアント機器１から送信された入力操作データ及びサービスサーバ２から送信された描画処理データを取得する。この時点では、入力操作データ及び描画処理データは、バイナリデータである。
【００３５】
Ｌ７解析部１２は、キャプチャ部１１によって取得された入力操作データ及び描画処理データを解析し、当該データを変換し、入力操作データ及び描画処理データの内容を示す操作ログを生成し、操作ログテーブル２１に書き込む。
【００３６】
なお、キャプチャ部１１及びＬ７解析部１２は、入力操作データ及び描画処理データを取得し、解析するデータ取得部に相当する。入力操作データは、ユーザ操作に応じた画面上の座標を含む。また、描画処理データには、入力操作データに応じてサービスサーバ２により描画処理された描画領域の座標を含む。
【００３７】
データ抽出部１３は、操作ログテーブル２１に書き込まれたデータのうち、所定の期間内の入力操作データ群と描画処理データ群とを抽出する。所定の期間の一例として、ユーザ操作によりマウスボタンが押し下げられて、カーソルが移動し、マウスボタンが押し上げ（離される）までの時間に更に時間αを加えた時間が挙げられる。時間αの一例としては、サービスサーバ２において描画処理にかかる時間やネットワーク５を介した入力操作データ及び描画処理データの転送にかかる時間等、クライアント機器１及びサービスサーバ２間におけるデータ取得までの遅延時間が挙げられる。抽出された入力操作データ群は、ユーザ操作テーブル２２に記憶され、抽出された描画処理データ群は、描画処理テーブル２３に記憶される。
【００３８】
想定位置算出部１４は、抽出された入力操作データ群から一の入力操作データを取り出す。想定位置算出部１４は、取り出した一の入力操作データに対応する描画処理データを、抽出された描画処理データ群から取り出す。想定位置算出部１４は、取り出した入力操作データに含まれるマウスカーソルの座標と描画処理データの描画領域の座標とからマウスカーソルの座標に対する描画領域の座標の相対位置を算出する。
【００３９】
後述されるように、想定位置算出部１４は、入力操作データ群の最後の入力操作データと描画処理データ群の最後の描画処理データとを取り出し、取り出したデータから相対位置を算出してもよい。また、想定位置算出部１４は、入力操作データ群の最後から一つ前又は複数前の入力操作データと描画処理データ群の最後から一つ前又は複数前の描画処理データとを取り出し、取り出したデータから相対位置を算出してもよい。
【００４０】
例えば、「マウスボタンの押下げ」のような入力操作に対する描画処理は一対一に対応している。その理由は、マウスボタンの押下げによるスクロール描画のような場合には、ユーザである人間がキーボードを操作できる速度がコンピュータの処理能力に比べて十分に遅いからである。一方、マウス操作によるカーソルの位置情報は、入力操作がきめ細かく通知されることが多い。その場合、入力操作に対する描画処理は多対一に対応する場合がある。よって、想定位置算出部１４は、「マウスボタンの押下げ」のような入力操作に対する描画処理が一対一に対応している入力操作データ及び描画処理データを入力操作データ群及び描画処理データ群から取り出し、相対位置を算出することが好ましい。
【００４１】
想定位置算出部１５は、算出された座標の相対位置に基づき、描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を算出する。
【００４２】
対応付け部１６は、想定される座標に基づき、入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける。
【００４３】
応答時間算出部１７は、対応付け部１６で対応付けた入力操作データの送信時刻と描画処理データの送信時刻との時間差である応答時間を算出する。
【００４４】
次に、キャプチャサーバ４の記憶部２０が記憶する各種データのデータ構造について説明する。
【００４５】
操作ログテーブル２１は、クライアント機器１及びサービスサーバ２間で送受信されるデータの操作ログ情報が記録されるテーブルである。操作ログテーブル２１に記憶される操作ログ情報の一例を図６（ａ）に示す。操作ログテーブル２１は、時刻情報（Ｔｉｍｅ）２１ａ、クライアント情報２１ｂ、サーバ情報２１ｃ、種別（Ｔｙｐｅ）２１ｄ、コマンド（Ｃｏｍｍａｎｄ Ｎａｍｅ）２１ｅ及びコマンド引数（Ａｒｇｓ）２１ｆの項目を含む。時刻情報２１ａは、データが送信された時刻を示す。クライアント情報２１ｂは、クライアント機器１のＩＰアドレス（Ｃｌｉｅｎｔ  Ａｄｄｒｅｓｓ）を示す。クライアント情報２１ｂは、クライアント機器１のポート番号（Ｃｌｉｅｎｔ  Ｐｏｒｔ）を含んでもよい。サーバ情報２１ｃは、サービスサーバ２のＩＰアドレス（Ｓｅｒｖｅｒ  Ａｄｄｒｅｓｓ）を示す。サーバ情報２１ｃは、サービスサーバ２のポート番号（Ｓｅｒｖｅｒ  Ｐｏｒｔ）を含んでもよい。種別情報２１ｄは、送信されたデータが入力操作データ（ＲＥＱ）か描画処理データ（ＲＥＳ）かを示す。コマンド２１ｅは、入力操作データ又は描画処理データの指示内容を示し、コマンド引数２１ｆは、コマンド２１ｅの引数を示す。
【００４６】
なお、図６（ａ）に示した操作ログ情報のうち、スクロールバー領域でのマウスボタンの押下げの入力操作（Ｓ）に対して、サービスサーバ２から領域コピーの描画処理（Ｔ）と画像描画の描画処理（Ｕ）が送信された例を図６（ｂ）に示す。図６（ｂ）の左の画面は、マウスボタンを押下する直前の状態を示し、図６（ｂ）の右の画面は、マウスボタンを押下した直後の状態を示す。
【００４７】
マウスボタンが押下されると（Ｓ）、図６（ｂ）の左の画面に示すように、画面が上方向にスクロールする。このように画面が上方向にスクロールするという画面上の変化は、画面の一部の領域を指定して下から上方向へコピーし（Ｔ）、コピーした当該部分の下の領域に画面を新規描画する（Ｕ）ことで表現することができる。「上方向領域コピー（Ｔ）」及び「新規描画（Ｕ）」は、いずれも画面が上方向にスクロールするときに発生する描画処理である。
【００４８】
リモートデスクトップシステム１０では、サービスサーバ２からクライアント機器１に画面更新用の描画処理データが送られ、クライアント機器１では受け取ったデータに従って画面の表示を更新する。その際、図６（ｂ）に示したように、画面更新は一般的に画面全体ではなく、更新が必要な部分のみを小区画に区切って、小区画の群をクライアント機器１に送信する。クライアント機器１では小区画のデータを座標に応じて画面表示に反映させることで更新された画面を構成する。この時、どこまでのデータでその時点の画面表示とするのかを通知するためのコマンドが定められている。その一例としては、前述した「フレーム送信完了」コマンドであり、これらに挟まれたデータ群（とその直前までに表示されていた画面）により構成される画面表示をフレームと呼ぶ。
【００４９】
具体的には直前のフレームに描画されたデータに関しては再送するのではなく、直前のフレームに対するコピー元の座標と大きさ、及びコピー先の座標をクライアント機器１に送信する。クライアント機器１では指定されたコピー元の座標と大きさから指定された大きさの画像データを採取し、それを指定されたコピー先の座標に表示する。これにより画面の全画像データを送ることなく画面の更新を行うことができる。本実施形態では、これを「領域コピー」コマンドで実行する。使用例としては例えばスクロール処理などがある。
【００５０】
ユーザ操作テーブル２２は、抽出された所定期間内の入力操作データ群のリストが記録される。図７は、一実施形態に係るユーザ操作テーブルに記憶される情報の一例を示す。図７には、ユーザ操作の一例として、「マウスによるウィンドウの移動（マウス移動）」が挙げられている。この場合、ユーザ操作テーブル２２に記憶される入力操作データは、入力操作データの送信時刻情報２２ａ及び「マウスによるウィンドウの移動」に対応する画面上の座標（Ｘ，Ｙ）２２ｂの項目を含む。
【００５１】
マウスによるウィンドウの移動では、「マウスボタン押下げ」→「マウスカーソル移動（複数）」→「マウスボタン押し上げ」という順にユーザ操作のコマンドが発生する。
【００５２】
そこで、本実施形態に係るユーザ操作テーブル２２は、操作ログテーブル２１に蓄積された操作ログ情報のうち、所定期間内に発生した「マウスカーソル移動」コマンドの入力操作データ群を抽出し、入力操作データに内包されている座標を時系列にリスト化する（ユーザ操作リスト）。
【００５３】
描画処理テーブル２３は、操作ログテーブル２１に蓄積された操作ログ情報のうち、所定期間内に発生した「領域コピー」コマンドの描画処理データ群を抽出し、時系列にリスト化する（描画処理リスト）。図８は、一実施形態に係る描画処理テーブル２３に記憶される描画処理データの一例を示す。例えば、描画処理データは、描画処理データの送信時刻情報２３ａと、コピー元（Ｘ，Ｙ）の座標２３ｂ及びコピー先（Ｘ，Ｙ）の座標２３ｃの項目を含む。
【００５４】
ここで、所定期間とは、ユーザのマウスボタンの押下操作に応じた入力操作が発生してからマウスボタンの押上（マウスボタンが離される）操作までの時間（例えば、
インタラクティブな入力操作に対する応答時間の待ち時間の限界値である１５０ミリ秒）であってもよいし、この時間に時間αを加えた時間であってもよい。時間αは、描画処理やデータ通信にかかる遅延時間を考慮して定められてもよい。
【００５５】
応答時間テーブル２４には、入力操作データの送信時刻と描画処理データの受信時刻との時間差である応答時間が記録される。
【００５６】
[入力操作データと描画処理データとの対応付け]
図３に示したように、ユーザ操作が「マウスボタン（カーソルキー）の押下げ、押上げ」によるスクロール描画のような場合、ユーザ操作に応じたクライアント機器１の入力操作データと描画処理データとは一対一に対応する。これはユーザである人間がマウスやキーボードを操作できる速度がコンピュータの処理能力に比べて十分遅いからである。
【００５７】
そのため、データ抽出部１３が入力操作データ群及び描画処理データ群を抽出する際の所定期間の終端を「マウス移動」コマンドの完了ではなく、「マウスボタンの押上げ」コマンド以降とすることが好ましい。これによれば、入力操作データ群の最後の入力操作に対応する描画処理が確実に発生するため、最後の入力操作データと描画処理データ群の最後の描画処理データとが一対一に対応する区間を抽出することができる。
【００５８】
以下に説明する、第１及び第２実施形態に係る入力操作データと描画処理データとの対応付け方法では、ユーザ操作（入力操作）と描画処理を下記の３ステップで対応付ける。
【００５９】
（ステップ１：ユーザ操作の範囲を抽出）
ステップ１は、ユーザ操作の範囲を抽出する。ステップ１では、マウスカーソルの座標と描画されるウィンドウの座標とから相対座標が算出される。相対座標の算出の一例を、図９を参照しながら説明する。図９は、一実施形態に係る相対座標の一例を示す図である。
【００６０】
ステップ１では、入力操作データ群の最後の入力操作データの「マウス移動」コマンドの座標と、描画処理データ群の最後の描画処理データの「領域コピー」コマンドの描画領域の座標とから、描画されるウィンドウとマウスカーソルとの相対座標が算出される。図９の上図では、「マウス移動」コマンドの最後の座標（ｘ，ｙ）と、「領域コピー」の座標における最後の領域の座標（ｘ１，ｙ１，ｘ２，ｙ２、ｘ３，ｙ３）のうちのコピー先の左上の座標（ｘ２，ｙ２）とからコピー先のウィンドウとマウスカーソルとの相対座標が算出される。
【００６１】
なお、座標（ｘ１，ｙ１）は、コピー元のウィンドウの左上の座標であり、座標（ｘ２，ｙ２）は、コピー先のウィンドウの左上の座標であり、座標（ｘ３，ｙ３）は、コピー先のウィンドウの右下の座標である。図８の「領域コピー」コマンドの座標のうちコピー先座標（Ｘ，Ｙ）２３ｃは、ウィンドウの左上の座標（ｘ２，ｙ２）に相当する。なお、図８の「領域コピー」コマンドの座標の例では、ウィンドウの右下の座標（ｘ３，ｙ３）は示されていない。
【００６２】
たとえば、図７に示した入力操作データ群の例と、図８に示した描画処理データ群の例を挙げて説明する。図７に示した入力操作例である「マウス移動」コマンドの座標２２ｂのうちの最後の座標（ｘ，ｙ）は、（５５６，４１０）である。また、図８に示した描画処理例である「領域コピー」の座標２３ｂ、２３ｃの最後の領域の左上の座標（ｘ２，ｙ２）、つまり、コピー先座標（Ｘ，Ｙ）２３ｃは、（２２９，４０１）である。よって、図９の下図に示されるように、「マウス移動」の最後の座標（５５６，４１０）と、「領域コピー」の座標における最後の領域の左上の座標（２２９，４０１）とから、描画されるウィンドウとマウスカーソルとの相対座標は、（３２７，９）と算出される。
【００６３】
（ステップ２：描画処理の範囲を抽出）
ステップ２は、描画処理の範囲を抽出する。ステップ２では、ステップ１にて算出した相対座標に基づいて描画領域のそれぞれに対して想定されるマウスカーソルの座標（該当するマウスカーソルがあるはずの論理的な座標）が算出される。描画処理データ群から、想定されるマウスカーソルの座標を算出する例を、図１０を参照しながら説明する。図１０は、一実施形態にかかる想定されるマウスカーソルの座標の一例を示す。
【００６４】
ステップ２では、「領域コピー」コマンドの座標２３ｃに相対座標を加算することで想定されるマウスカーソルの座標が算出される。たとえば、図１０の左表の「領域コピー」コマンドの最初の座標２３ｃである座標（４３２，４０６）に相対座標（３２７，９）を加算することで、図１０の右表に示される、想定されるマウスカーソルの座標（７５９，４１５）が算出される。このようにして、取得した描画処理データ群のすべての「領域コピー」コマンドの座標２３ｃから、想定されるマウスカーソルの座標を算出することができる。
【００６５】
以上から、ステップ２では、図４（ａ）に示した間引きを考慮し、つまり、入力操作データと描画処理データとが一対一に対応していないことを考慮し、間引きの影響を除去するように描画処理データの座標からマウスカーソルの座標を想定する。
【００６６】
（ステップ３：ユーザ処理と描画処理を対応付け）
ステップ３は、ユーザ処理と描画処理を対応付ける。ステップ３では、ステップ２にて算出された、想定されるマウスカーソルの座標と、入力操作データに含まれるマウスカーソルの座標とから、入力操作データ（ユーザ操作）と描画処理データとが対応付けられる。  図１１は、ステップ２にて算出された、想定されるマウスカーソルの位置と図７の入力操作データ群の「マウス移動」コマンドの座標との対応付けの結果の一例を示す。ここでは、ユーザ操作テーブル２２から想定されるマウスカーソルの位置と一致する座標を有する「マウス移動」コマンドを検索し、一致した「マウス移動」コマンドを該当描画処理データに対応付ける。図１１の右表は、対応付けられた「マウス移動」コマンドを塗りつぶして示す。この対応付けによって、リモートデスクトップシステム１０において、入力操作に対する描画処理を識別することができる。
【００６７】
本実施形態に係る対応付け方法では、上記の３ステップによりリモートデスクトップシステム１０における応答時間を正確に測定することができる。これにより、応答時間に基づきリモートデスクトップシステム１０の性能や品質を正しく評価することができる。以下では、本実施形態に係る対応付け方法について、第１実施形態及び第２実施形態に分けて詳細に説明する。
【００６８】
＜第１実施形態＞
[キャプチャサーバで実行される対応付け処理]
次に、第１実施形態かかるキャプチャサーバ４で実行される対応付け処理の一例について、図１２〜図１４を用いて詳細に説明する。図１２は、第１実施形態にかかる対応付け処理を示すフローチャートである。図１３は、第１実施形態にかかる操作ログテーブルに記憶される情報の一例を示す。図１４は、第１実施形態にかかる相対座標及び想定されるカーソルの座標の一例を示す。ここでは、ユーザがマウスカーソルにより画面上のウィンドウの移動の操作を行った場合を例に挙げて説明する。つまり、ユーザ操作によりマウスボタンが押し下げられて、マウスカーソルが移動し、マウスボタンが押し上げられる（離される）動作に応じてキャプチャサーバ４で実行される対応付け処理を説明する。
【００６９】
図１２の対応付け処理が開始されると、キャプチャ部１１は、クライアント機器１から送信された入力操作データ及びサービスサーバ２から送信された描画処理データを取得する。Ｌ７解析部１２は、キャプチャ部１１によって取得されたバイナリデータを解析し、当該データを変換して入力操作データの情報及び描画処理データの情報を生成する。記憶部２０は、生成された入力操作データ及び描画処理データを操作ログテーブル２１に記憶する（ステップＳ１０）。操作ログテーブル２１の一例を図１３に示す。操作ログテーブル２１においてコマンド「mouse move」は、ユーザによる「マウスの移動」を指示する。「マウスの移動」コマンドの「コマンド引数」は、「マウスの移動」コマンドの入力操作データに含まれるカーソルの位置を示す座標である。
【００７０】
コマンド「copy rect cmd」は、「領域コピー」コマンドの描画処理データに含まれる描画されるウィンドウの領域のコピーを指示する。「領域コピー」コマンドの「コマンド引数」では、移動させるウィンドウの「コピー元の左上」、「コピー先の左上」、「コピー先の右下」の座標が順に指定される。
【００７１】
コマンド「send desk picture」は、「新規描画」コマンドの描画処理データに含まれる描画されるウィンドウの領域のコピーを指示する。「新規描画」コマンドの「コマンド引数」には「画像フォーマット」、「描画領域の左上の座標」、「画像データの幅と高さ」が順に指定される
コマンド「send desk flush image」は、実際にクライアント機器１でのディスプレイ描画の開始を指示する。
【００７２】
コマンド「mouse button down／mouse button up」は、ユーザによる「マウスのボタンを押下げ／押上げ」の操作を示す。「マウスのボタンを押下げ／押上げ」コマンドの「コマンド引数」によりどのボタンが押下げ及び押上げされたかが通知される。なお、「Btn=0」は左ボタンを表す。
【００７３】
データ抽出部１３は、操作ログテーブル２１から入力操作データを一つ取り出す（ステップＳ１１）。これにより、図１３の各行に示される入力操作データのいずれかが取り出される。入力操作データであるかは、図１３の操作ログテーブル２１の各入力操作データに含まれる種別により判定可能である。データ抽出部１３は、取り出した入力操作データが「マウスボタンの押下げ」の操作であることが判定されるまで（ステップＳ１２）、順に入力操作データを取り出す（ステップＳ１１）。取り出した入力操作データが「マウスボタンの押下げ」の操作である場合、ステップＳ１３に進む。そして、記憶部２０は、ステップＳ１３にて、取り出した入力操作データが「マウスボタンの押上げ」の操作になるまで、操作ログテーブル２１から入力操作データを取り出し、ユーザ操作リストを作成する（ステップＳ１４）。次に、データ抽出部１３は、操作ログテーブル２１に記憶されたデータをすべて処理したかを判定し（ステップＳ１５）、すべてのデータを処理していない場合は、ステップＳ１１に戻って次の入力操作データを取り出し、ステップＳ１２〜Ｓ１５の処理を実行する。
【００７４】
これにより、図１３に示したユーザ操作テーブル２２の「上から２行目のボタン押下げコマンド」と「下から３行目のボタン押上げコマンド」の間にある「mouse move」コマンド群（「マウスの移動」コマンド群）が抽出される。このようにして「マウスの移動」コマンド群を抽出することで、上記に説明した本実施形態の対応付け方法の３ステップのうちのステップ１に当たる入力操作（ユーザ操作）データの範囲を抽出したユーザ操作リストが作成される。ユーザ操作リストは、入力操作データ群に相当する。
【００７５】
すべてのデータを処理した場合、データ抽出部１３は、ユーザ操作テーブル２２に記憶されたユーザ操作リストから入力操作データを一つ取り出す（ステップＳ１６）。
【００７６】
次に、データ抽出部１３は、取り出した入力操作データ群の時刻情報から開始時刻を取得する（ステップＳ１７）。次に、データ抽出部１３は、取り出した入力操作データ群の最終の入力操作データの時刻情報から取得すべき描画処理の最終時刻を取得する（ステップＳ１８）。
【００７７】
次に、データ抽出部１３は、取得した開始時刻と終了時刻との間に存在する「copy rect cmd」コマンド群（「領域コピー」コマンド群）を抽出した描画処理リストを作成する（ステップＳ１９）。このようにして「領域コピー」コマンド群を抽出することで、上記に説明した本実施形態の対応付け方法の３ステップのうちのステップ２に当たる描画処理データの範囲を抽出した描画処理リストが作成される。図１３の例では、下から３行目の「ボタン押上げ」コマンドから一定範囲内に存在する「copy rect cmd」コマンドの画像処理データの範囲を抽出した描画処理リストが作成される。描画処理リストは、描画処理データ群に相当する。
【００７８】
次に、想定位置算出部１４は、描画処理リストの最終の画像処理データに含まれる座標を取得する（ステップＳ２０）。次いで、想定位置算出部１４は、ユーザ操作リストの最終の入力操作データに含まれる座標を取得する（ステップＳ２１）。次に、想定位置算出部１４は、描画処理リストの最終の画像処理データに含まれる左上の座標と、ユーザ操作リストの最終の入力操作データに含まれる座標とから相対座量を算出する（ステップＳ２２）。
【００７９】
図１３の例によれば、（１）の「ボタン押上げ」コマンドまでの「マウスの移動」コマンドを見ると、最終の入力操作データ（２）の座標（Ｘ，Ｙ）は、（５０６、１８）である。また、抽出された「領域コピー」コマンドを見ると、最終の画像処理データ（３）のウィンドウの左上の座標（Ｘ２，Ｙ２）は、（１０、８）である。これにより、図１４（ａ）に示すように、相対位置は（４９６、１０）と算出される。
【００８０】
次に、想定位置算出部１５は、描画処理リストに挙げられた描画処理データに対して論理的なマウスカーソルの位置（想定されるマウスカーソルの位置）を算出する（ステップＳ２３）。たとえば、図１３の例では、最後の「領域コピー」コマンドの描画処理データ（３）以外の抽出された描画処理データのうち、「領域コピー」コマンドの描画処理データ（４）、（６）、（７）について、想定されるマウスカーソルの位置が算出される。例えば、描画処理データ（４）の場合、ウィンドウの領域のコピー先の左上の座標（Ｘ、Ｙ）は、（３６５、２５１）である。図１４（ｂ）に示したように、この座標（３６５、２５１）に、先に求めた相対座標（４９６，１０）を加算することで、マウスカーソルのの論理的な位置として想定される座標（８６１，２６１）が算出される。
【００８１】
図１２に戻り、対応付け部１６は、描画処理リストから描画処理データを一つ取り出す（ステップＳ２４）。対応付け部１６は、想定される座標に一致する「マウスの移動」コマンドの入力操作データがユーザ操作テーブル２２に記憶されているかを検索する。対応付け部１６は、想定される座標に一致する入力操作データがユーザ操作テーブル２２に記憶されていればその入力操作により該当描画処理が実行されたとして、入力操作データ及び描画処理データを対応付ける（ステップＳ２５）。なお、図１３の例では、対応付け部１６は、対応付けの対象となる入力操作データを、画像処理データ（４）の「copy rect cmd（領域コピー）」コマンドよりも時系列で前の「mouse move（マウス移動）」コマンドのみとすればよい。図１３の例では、描画処理データ（４）から想定される座標に一致する「マウスの移動」コマンドの入力操作データ（５）が対応付けられる。
【００８２】
次に、対応付け部１６は、抽出した操作群から対応付けした操作より時系列で前に存在するエントリ（項目）を削除する（ステップＳ２６）。図１３の例では、画像処理データ（４）より時系列で前に存在する「mouse move」コマンドの入力操作データが削除される。なお、ステップＳ２６は省略することも可能であるが、操作ログテーブル２１を有効に使用するためには省略しないほうが良い。
【００８３】
以後、ステップＳ２７にて、想定位置算出部１５は、描画処理リストに含まれる、想定座標が算出されていない描画処理データに対して想定されるマウスカーソルの想定座標を算出する。そして、描画処理リストに含まれるすべての描画処理データについて処理が行われるまで（ステップＳ２８）、対応付け部１６は、ステップＳ２４〜Ｓ２７の対応付け処理を実行する。これにより、図１３の例では、描画処理データ（６）、（７）についても同様にしてマウスカーソルのの論理的な位置として想定される座標を算出し、想定される座標に一致する「マウスの移動」コマンドの入力操作データと対応付ける。
【００８４】
描画処理リストに含まれるすべての描画処理データについて（ステップＳ２８）、ユーザ操作リストに含まれる入力操作データのいずれかとの対応付けの処理が完了するまで（ステップＳ２９）、Ｓ２４〜Ｓ２８の対応付け処理が実行される。すべての対応付け処理が終了したとき、本処理は終了する。
【００８５】
以上に説明したように、第１実施形態にかかるキャプチャサーバ４によれば、リモートデスクトップシステム１０において、クライアント機器１による入力操作に対するサービスサーバ２からの描画処理を識別することができる。これにより、入力操作データと、その入力操作に応じた描画処理の結果得られる描画処理データとを対応付けることができる。つまり、キャプチャサーバ４は、「ユーザ操作に応じた入力操作」と「描画処理」の座標情報のズレである相対座標を算出し、相対座標を用いて想定されるマウスカーソルの座標を算出し、算出されたマウスカーソルの座標と一致する座標を有する入力操作データを特定する。このようにして特定された入力操作データを描画処理データに対応付ける。こうして対応付けられた入力操作データと描画処理データとの時刻情報の差分から応答時間を正確に測定することができる。この結果、正確な応答時間に基づきリモートデスクトップシステム１０の性能や品質を正しく評価することができる。
【００８６】
＜第２実施形態＞
次に、第２実施形態かかるキャプチャサーバ４で実行される対応付け処理の一例について、図１５〜図１８を用いて詳細に説明する。図１５及び図１６は、第２実施形態にかかる対応付け処理を説明するための図である。図１７は、第２実施形態にかかる操作ログテーブルに記憶される情報の一例を示す．図１８は、第２実施形態にかかる対応付け処理を示すフローチャートである。ここでは、第１実施形態と同様にユーザがマウスカーソルにより画面上のウィンドウの移動の操作を行った場合を例に挙げて説明する。
【００８７】
第１実施形態では、「領域コピー」コマンドの描画処理データに含まれるコピー先領域の左上の座標を基準として相対座標が求められた。しかしながら、図１５に示したように、マウスの移動時にウィンドウの左端が画面の左端を超えるとコピー先領域として画面の範囲外の部分は通知されない。このため、ウィンドウの左上の座標Ｐからのマウスカーソルの相対位置が、正しいマウスカーソルの座標であるにもかかわらず、ウィンドウの領域内の画面の左上に対する座標Ｑからのマウスカーソルの相対位置が誤って算出されてしまう場合が考えられる。
【００８８】
そこで、第２実施形態では、想定位置算出部１４は、第１実施形態にかかる対応付け方法と同様に、ウィンドウの左上の座標からのマウスカーソルの相対位置を算出する。これに加えて、第２実施形態では、想定位置算出部１４は、ウィンドウの右下の座標からのマウスカーソルの相対位置を算出する。
【００８９】
たとえば、図１３の例によれば、（１）の「ボタン押上げ」コマンドまでの「マウスの移動」コマンドを見ると、最終の入力操作データ（２）の座標（Ｘ，Ｙ）は、（５０６、１８）である。また、抽出された「領域コピー（copy rect cmd）」コマンドの描画処理データ（３）では、ウィンドウの左上の座標（ｘ２、ｙ２）は（１０，８）である。よって、図１５の右の座標に示すように、ウィンドウの左上の座標からのマウスカーソルの相対位置は、第１実施形態において説明したとおり（４９６，１０）と算出される。
【００９０】
これに加えて、第２実施形態では、ウィンドウの右下の座標からのマウスカーソルの相対位置が算出される。抽出された「領域コピー（copy rect cmd）」コマンドの描画処理データ（３）では、ウィンドウの右下の座標（ｘ３、ｙ３）は、（９４２，５９３）である。よって、ウィンドウの右下の座標に対するマウスカーソルの相対位置は、（４３６，５７５）と算出される。
【００９１】
ここで、図１６に示すように、ウィンドウの左３００ドット分が画面外に出たとする。この時、「領域コピー」コマンドの描画処理データに含まれるコピー先の左端のｘ座標は、０に設定される。つまり、「領域コピー」コマンドのコピー先の左上の座標（ｘ２、ｙ２）は、（０，８）に設定される。例えば、第２実施形態では、図１７に示した操作ログテーブル２１に記憶された入力操作データ及び描画処理データが用いられるとする。この場合、第１実施形態における操作ログテーブル２１に記憶された入力操作データ及び描画処理データとの違いは、中央部分に記載された差分データのみである。この差分データ中の「領域コピー」コマンドから、コピー先の右下の座標座標（ｘ３、ｙ３）が（６３２，５９３）であることが通知される。
【００９２】
上記「領域コピー」コマンドに含まれる左上の座標を基準としてマウスカーソルの想定される座標を算出すると（４９６，１８）となる。実際の正しい座標は（１９６，１８）であり、描画処理データと入力操作データとが正しく対応付けられていない。
【００９３】
この場合、「領域コピー」コマンドに含まれる右下の座標を基準としてマウスカーソルの想定される座標を算出すると(206,18)となり、正しいマウスカーソルの座標が得られる。そこで、第２実施形態では、ウィンドウの領域を画定する複数の座標を用いて想定されるマウスカーソルの座標を算出し、入力操作データと描画処理データとをより正しく対応付ける。
【００９４】
[キャプチャサーバで実行される対応付け処理]
第２実施形態にかかる対応付け処理は、図１８に示したように、ステップＳ１００及びＳ１０１のみ、第１実施形態にかかる対応付け処理と異なる。よって、第１実施形態にかかる対応付け処理と同じ部分は、図１２の第１実施形態にかかる対応付け処理のフローチャートに示されるステップと同じステップが付与されている。つまり、図１８に示したステップＳ１０〜Ｓ２２、ステップＳ２３〜２５、ステップＳ２６〜Ｓ２９は図１２のステップＳ１０〜Ｓ２９と同一の処理であるため、ここでは説明を省略する。
【００９５】
ステップＳ１００では、想定位置算出部１４は、描画処理リストの最終の画像処理データに含まれる右下の座標と、ユーザ操作リストの最終の入力操作データに含まれる座標とから相対座標（右下基準の相対座標）を算出する。次に、ステップＳ２３〜Ｓ２５が実行され、対応付け部１６は、ステップＳ２２の左上基準の相対座標に基づき算出された、左上基準の想定されるマウスカーソルの座標と一致する入力操作データを対応付ける。ただし、左上基準の想定されるマウスカーソルの座標と一致する入力操作データが存在しない場合もある。その場合であっても、第２実施形態では、ステップＳ１０１において、対応付け部１６は、右下基準の相対座標に基づき算出された、右下基準の想定されるマウスカーソルの座標と一致する入力操作データを対応付ける。
【００９６】
以上に説明したように、第２実施形態にかかるキャプチャサーバ４によれば、複数の論理的な座標（想定される座標）に基づいてキャプチャサーバ４が取得した「ユーザ操作に基づく入力操作」と「描画処理」とをより正確に対応付けることができる。こうして対応付けられた「入力操作データ」と「描画処理データ」との時刻情報の差分から応答時間の測定がより精度よく求められる。この結果、その応答時間に基づきリモートデスクトップシステム１０の性能や品質の評価の精度をより高めることができる。
【００９７】
上記各実施形態において対応付けられた入力操作データと描画処理データとの時刻情報の差分から応答時間を算出した例を図１９に示す。図１９は、応答時間テーブルに記憶される情報の一例を示す。応答時間算出部１７は、入力操作データと描画処理データとの時刻情報の差分から「マウスの移動」の入力操作から実際の画面描画までの応答時間を算出する。例えば、リモートデスクトップシステム１０の性能や品質の評価は、これらの応答時間の平均値や中央値等の代表値に基づき行われてもよい。
【００９８】
（ハードウェア構成例）
最後に、一実施形態に係るキャプチャサーバ４のハードウェア構成例について簡単に説明する。図２０は、一実施形態に係るキャプチャサーバ４のハードウェア構成の一例を示す。
【００９９】
キャプチャサーバ４は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ（Random Access Memory）１０４、ＲＯＭ（Read Only Memory）１０５、ＣＰＵ（Central Processing Unit）１０６、通信Ｉ／Ｆ１０７及びＨＤＤ（Hard Disk Drive）１０８を有し、それぞれがバスＢで相互に接続されている。
【０１００】
入力装置１０１は、キーボードやマウスなどを含み、ユーザのマウス操作等に応じてキャプチャサーバ４に各操作を入力するのに用いられる。表示装置１０２は、ディスプレイなどを含み、キャプチャサーバ４の管理者にシステム運用結果等を表示する。
【０１０１】
通信Ｉ／Ｆ１０７は、キャプチャサーバ４をネットワーク５に接続するインタフェースである。これにより、キャプチャサーバ４は、通信Ｉ／Ｆ１０７を介して入力操作データや描画処理データを取得することができる。
【０１０２】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、装置全体を制御する基本ソフトウェアであるＯＳ（Operating System）、及びＯＳ上において各種機能を提供するアプリケーションソフトウェアなどがある。また、ＨＤＤ１０８は、上記実施形態の対応付け処理を行うためにＣＰＵ１０６により実行される対応付けプログラムを格納する。
【０１０３】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａなどがある。キャプチャサーバ４は、外部Ｉ／Ｆ１０３を介して、記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａには、ＣＤ（Compact Disk）、及びＤＶＤ（Digital Versatile Disk）、ならびに、ＳＤメモリカード（SD Memory card）やＵＳＢメモリ（Universal Serial Bus memory）等がある。
【０１０４】
ＲＯＭ１０５は、不揮発性の半導体メモリ（記憶装置）であり、起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＣＰＵ１０６は、上記記憶装置（例えば「ＨＤＤ」や「ＲＯＭ」など）から、プログラムやデータをＲＡＭ上に読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する演算装置である。
【０１０５】
データ抽出部１３、想定位置算出部１４、想定位置算出部１５、対応付け部１６及び応答時間算出部１７の各部は、ＨＤＤ１０８にインストールされたプログラムがＣＰＵ１０６に実行させる処理により実現される。操作ログテーブル２１、ユーザ操作テーブル２２及び描画処理テーブル２３は、例えば、ＲＡＭ１０４、ＨＤＤ１０８、又はキャプチャサーバ４にネットワーク５を介して接続される記憶装置を用いて実現可能である。
【０１０６】
以上に説明したように、各実施形態におけるクライアント機器１とサービスサーバ２との間では、通信プロトコルに従い入力操作データと描画処理データとが送受信されている。各実施形態にかかるキャプチャサーバ４は、入力操作データと描画処理データとの座標情報のズレを算出し、ズレを用いて論理的な座標情報を算出する。論理的な座標情報に基づいて実際の「ユーザ操作」と「描画処理」とを対応付ける。キャプチャサーバ４は、こうして対応付けられた入力操作データと描画処理データととの時刻情報の差分から応答時間を測定し、これによりリモートデスクトップシステム１０の品質を正確に測定することができる。
【０１０７】
以上、対応付け方法、対応付けプログラム及び対応付け装置を上記各実施形態により説明したが、本発明は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、本発明では、上記各実施形態で述べた技術を矛盾しない範囲で組み合わせることができる。
【０１０８】
例えば、上記実施形態では、主な入力操作として、ユーザによるマウスやキーボードの操作に基づく画面上の「マウスカーソルの移動」による「ウィンドウの移動」を例に挙げて説明した。しかしながら、入力操作には、これに限られず、ユーザによる様々な画面操作に応じた座標を含む操作が含まれる。例えば、入力操作は、画面上に表示された「何らかのオブジェクトの移動」やその他のいかなる操作であってもよい。また、入力操作には、ユーザがマウスやキーボードを用いて直接的に画面操作に応じた操作だけでなく、ユーザのジェスチャ操作により、遠隔的に画面操作に応じた操作も含まれる。
【０１０９】
本発明にかかる対応付け方法によれば、クライアント機器が送信する入力操作データと、クライアント機器がサービスサーバから受信する描画処理データとが必ずしも一対一に取得されない場合においても、システムの性能や品質をより正しく評価することができる。
【０１１０】
また、本発明にかかる対応付け方法は、入力操作データ及び描画処理データにユーザの識別情報を含むことによって、ユーザ毎の応答時間を算出することができる。
【０１１１】
以上の説明に関し、更に以下の項を開示する。
（付記１）
リモートデスクトップシステムにおける画面操作に応じた座標を含む入力操作データと、描画処理された領域の座標を含む描画処理データと、を取得可能なコンピュータが実行する対応付け方法であって、
取得された入力操作データと描画処理データとから所定期間内の入力操作データ群と描画処理データ群を抽出し、
前記入力操作データ群のうちの一の入力操作データに含まれる座標と、前記描画処理データ群のうちの一の描画処理データに含まれる描画領域の座標と、の相対位置を算出し、
前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を算出し、
前記想定される座標に基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける、
処理を含む対応付け方法。
（付記２）
前記相対位置を算出する処理は、
前記入力操作データ群のうちの最後の入力操作データに含まれる座標と、前記描画処理データ群のうちの最後の描画処理データに含まれる描画領域の座標と、の相対位置を算出する、
付記１に記載の対応付け方法。
（付記３）
前記相対位置を算出する処理は、
前記入力操作データ群のうちの最後の入力操作データに含まれる座標と、前記描画処理データ群のうちの最後の描画処理データに含まれる描画領域を画定する複数の座標のそれぞれとから、前記座標の相対位置を複数算出し、
前記想定される座標を算出する処理は、
複数の前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を複数算出し、
前記対応付ける処理は、
複数の前記想定される座標の少なくともいずれかに基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける、
付記２に記載の対応付け方法。
（付記４）
リモートデスクトップシステムにおける画面操作に応じた座標を含む入力操作データと、描画処理された領域の座標を含む描画処理データと、を取得可能なコンピュータに実行させるための対応付けプログラムであって、
取得された入力操作データと描画処理データとから所定期間内の入力操作データ群と描画処理データ群とを抽出し、
前記入力操作データ群のうちの一の入力操作データに含まれる座標と、前記描画処理データ群のうちの一の描画処理データに含まれる描画領域の座標と、の相対位置を算出し、
前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を算出し、
前記想定される座標に基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける、
処理を含む対応付けプログラム。
（付記５）
前記相対位置を算出する処理は、
前記入力操作データ群のうちの最後の入力操作データに含まれる座標と、前記描画処理データ群のうちの最後の描画処理データに含まれる描画領域の座標と、の相対位置を算出する、
付記４に記載の対応付けプログラム。
（付記６）
前記相対位置を算出する処理は、
前記入力操作データ群のうちの最後の入力操作データに含まれる座標と、前記描画処理データ群のうちの最後の描画処理データに含まれる描画領域を画定する複数の座標のそれぞれとから、前記座標の相対位置を複数算出し、
前記想定される座標を算出する処理は、
複数の前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を複数算出し、
前記対応付ける処理は、
複数の前記想定される座標の少なくともいずれかに基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける、
付記５に記載の対応付けプログラム。
（付記７）
リモートデスクトップシステムにおける画面操作に応じた座標を含む入力操作データと、描画処理された領域の座標を含む描画処理データと、を取得可能な対応付け装置であって、
取得された入力操作データと描画処理データとから所定期間内の入力操作データ群と描画処理データ群とを抽出するデータ抽出部と、
前記入力操作データ群のうちの一の入力操作データに含まれる座標と、前記描画処理データ群のうちの一の描画処理データに含まれる描画領域の座標と、の相対位置を算出する相対位置算出部と、
前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を算出する想定位置算出部と、
前記想定される座標に基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける対応付け部と、
を有する対応付け装置。
（付記８）
前記相対位置算出部は、
前記入力操作データ群のうちの最後の入力操作データに含まれる座標と、前記描画処理データ群のうちの最後の描画処理データに含まれる描画領域の座標と、の相対位置を算出する、
付記7に記載の対応付け装置。
（付記９）
前記相対位置算出部は、
前記入力操作データ群のうちの最後の入力操作データに含まれる座標と、前記描画処理データ群のうちの最後の描画処理データに含まれる描画領域を画定する複数の座標のそれぞれとから、前記座標の相対位置を複数算出し、
前記想定位置算出部は、
複数の前記座標の相対位置に基づき、前記描画処理データ群に含まれる他の描画処理データから入力操作データに含まれると想定される座標を複数算出し、
前記対応付け部は、
複数の前記想定される座標の少なくともいずれかに基づき、前記入力操作データ群に含まれる入力操作データを前記他の描画処理データに対応付ける、
付記８に記載の対応付け装置。
【符号の説明】
【０１１２】
１：クライアント機器
２：サービスサーバ
３：スイッチ
４：キャプチャサーバ
５：ネットワーク
１０：リモートデスクトップシステム
１１：キャプチャ部
１２：Ｌ７解析部
１３：データ抽出部
１４：相対位置算出部
１５：想定位置算出部
１６：対応付け部
１７：応答時間算出部
２０：記憶部
２１：操作ログテーブル
２２：ユーザ操作テーブル
２３：描画処理テーブル
２４：応答時間テーブル
【図１】
2015170031.tif 000003
【図２】
2015170031.tif 000004
【図３】
2015170031.tif 000005
【図４】
2015170031.tif 000006
【図５】
2015170031.tif 000007
【図６】
2015170031.tif 000008
【図７】
2015170031.tif 000009
【図８】
2015170031.tif 000010
【図９】
2015170031.tif 000011
【図１０】
2015170031.tif 000012
【図１１】
2015170031.tif 000013
【図１２】
2015170031.tif 000014
【図１３】
2015170031.tif 000015
【図１４】
2015170031.tif 000016
【図１５】
2015170031.tif 000017
【図１６】
2015170031.tif 000018
【図１７】
2015170031.tif 000019
【図１８】
2015170031.tif 000020
【図１９】
2015170031.tif 000021
【図２０】
2015170031.tif 000022