(57)【要約】【課題】リモートデスクトップシステムにおいて、クライアントにおける入力操作がなされてから、当該入力操作に応じた画面の描画処理の指示がクライアントに返信されるまでの応答時間を測定する。【解決手段】クライアントにおいて入力操作がなされたときにクライアントからサーバに送信される入力操作データと、当該入力操作に応じてサーバからクライアントに送信される描画処理データとを取得する。次に、所定期間における入力操作データの発生状況及び少なくとも所定期間を含む期間における描画処理データの発生状況を特定する。さらに、所定期間における入力操作データの発生状況と、描画処理データの発生状況との類似度が最も高い期間を特定する。そして、類似度が最も高い期間に発生した描画処理データの送信時刻と、所定期間に発生した入力操作データの送信時刻との時間差である応答時間を算出する。【選択図】  図４
2015011653.tif 000002
【特許請求の範囲】
【請求項１】
リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を示す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能なコンピュータが、
前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得し、
所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定し、
前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定し、
前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する
処理を実行する性能測定方法。
【請求項２】
前記発生状況を特定する処理は、前記描画処理データが示す描画処理の種類が複数あるときには、描画処理の種類毎に前記描画処理データの発生状況を特定し、
前記期間を特定する処理は、前記入力操作データの発生状況と、描画処理の種類毎の前記描画処理データの発生状況との複数の類似度に基づいた総合類似度が最も高い期間を特定する請求項１に記載の性能測定方法。
【請求項３】
前記発生状況を特定する処理は、前記描画処理データが示す画面の更新対象領域の画素を特定して、前記所定期間における当該更新対象領域の画素の平均書き換え回数を算出し、
前記期間を特定する処理は、前記入力操作データの発生状況と、前記平均書き換え回数との類似度を含んだ複数の類似度に基づいた総合類似度が最も高い期間を特定する請求項２に記載の性能測定方法。
【請求項４】
前記期間を特定する処理は、前記入力操作データ及び前記描画処理データをフレーム毎にグループ化し、前記所定期間に含まれる各フレームにおける前記入力操作の発生状況を特定する一方、前記所定期間に含まれる各フレーム及び当該前記所定期間に続く所定数の各フレームにおける前記描画処理データの発生状況を特定し、前記所定期間に含まれる各フレームにおける前記入力操作の発生状況と、前記所定期間を前記所定数まで１フレームずつ後にずらした各期間に含まれる各フレームにおける前記描画処理データの発生状況との類似度を算出し、当該各期間のうち前記類似度が最も高い期間を特定する請求項１〜３のいずれか１項に記載の性能測定方法。
【請求項５】
リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を表す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能なコンピュータに、
前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得し、
所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定し、
前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定し、
前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する
処理を実行させる性能測定プログラム。
【請求項６】
リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を表す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能な性能測定装置であって、
前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得するデータ取得部と、
所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定する状況特定部と、
前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定する対応付け部と、
前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する応答時間算出部と
を備えた性能測定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リモートデスクトップシステムの性能測定を行う技術に関する。
【背景技術】
【０００２】
シンクライアントシステムにおいて、クライアントからサーバに送信される２つのパケットの間にサーバからクライアントへのパケットの返信があるかどうかを判定し、当該返信がないときに品質劣化が発生している旨を外部に出力する技術が提供されている。また、サーバのＧＵＩ（Graphical User Interface）をクライアントから操作するリモートデスクトップシステムにおいて、サーバ及びクライアント間の通信環境に応じた通信方式を選択する技術が提供されている。当該技術では、サーバからクライアントに対して、クライアントからの操作信号に応じた画像データを生成するためのコマンドを送信する方式か、クライアントからの操作信号に応じた画像データ自体を送信する方式かを選択する。さらに、複数のサーバが連携してトランザクションを実行する複数階層システムにおいて、第１の階層に属するサーバの１処理当たりの平均処理時間の時系列推移と、第２の階層に属するサーバの１処理当たりの平均処理時間の時系列推移との相関の有無を判定する技術が提供されている。また、コンピュータのログデータと自然言語により記述されているデータとを合わせてデータの分析を行う技術において、ＰＣ操作ログなどのタイムスタンプ付きのデータ列と、タイムスタンプのついた発話や記述によるデータ列の対応付けをする技術が提供されている。
【０００３】
ここで、リモートデスクトップシステムの性能測定や品質評価をする指標の１つとして、クライアントにおける入力操作がなされてから、その入力操作に応じた画面の描画処理指示がクライアントに返信されるまでの応答時間がある。この応答時間が短いほど、リモートデスクトップシステムにおけるユーザの体感品質が良いということになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−０７９３２９号公報
【特許文献２】特開２０１０−０８７６２５号公報
【特許文献３】特開２０１１−２５８０５７号公報
【特許文献４】特開２０１２−１０３７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、リモートデスクトップシステムにおけるクライアントにおける入力操作とサービスサーバによる描画指示の返信とは、必ずしも１対１で対応するものではない。また、入力操作と、当該入力操作に応じた画面の描画処理の指示とを対応付ける識別子等も存在しない。このため、応答時間を測定することは困難であった。
【０００６】
そこで、１つの側面では、本発明は、リモートデスクトップシステムにおいて、クライアントにおける入力操作がなされてから、当該入力操作に応じた画面の描画処理の指示がクライアントに返信されるまでの応答時間を測定できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
１つの側面では、リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を示す画面の描画処理の指示をクライアントに対して行うサーバと通信可能なコンピュータが、次の処理を実行する。まず、クライアントにおいて入力操作がなされたときにクライアントからサーバに送信される入力操作データと、当該入力操作に応じてサーバからクライアントに送信される描画処理データとを取得する。次に、所定期間における入力操作データの発生状況及び少なくとも所定期間を含む期間における描画処理データの発生状況を特定する。さらに、所定期間における入力操作データの発生状況と、描画処理データの発生状況との類似度が最も高い期間を特定する。そして、類似度が最も高い期間に発生した描画処理データの送信時刻と、所定期間に発生した入力操作データの送信時刻との時間差である応答時間を算出する。
【発明の効果】
【０００８】
１つの側面によれば、リモートデスクトップシステムにおいて、クライアントにおける入力操作がなされてから、当該入力操作に応じた画面の描画処理の指示がクライアントに返信されるまでの応答時間を測定することができる。
【図面の簡単な説明】
【０００９】
【図１】リモートデスクトップシステムの一例の全体構成図である。
【図２】クライアント及びサービスサーバ間で送受信されるデータの一例の説明図である。
【図３】キャプチャサーバのハードウェア構成の一例の説明図である。
【図４】キャプチャサーバの機能構造及び記憶手段に記憶されるデータの一例の説明図である。
【図５】通信ログテーブルの一例の説明図である。
【図６】フレーム単位通信ログテーブルの一例の説明図である。
【図７】入力操作テーブル及び描画処理テーブルの一例の説明図である。
【図８】入力描画対応テーブルの一例の説明図である。
【図９】入力操作時系列データ、描画処理時系列データ及び最大許容数の一例の説明図である。
【図１０】類似度データの一例の説明図である。
【図１１】応答時間テーブルの一例の説明図である。
【図１２】キャプチャ部及びＬ７解析部が実行する処理の一例を示すフローチャートである。
【図１３】時系列データ生成部が実行する処理の一例を示すフローチャートである。
【図１４】対応付け部が実行する処理の一例を示すフローチャートである。
【図１５】応答時間算出部が実行する処理の一例を示すフローチャートである。
【図１６】下カーソルキー押下げ時の画面変化の一例の説明図である。
【図１７】類似度算出方法の一例の説明図である。
【図１８】キャプチャサーバの機能構造及び記憶手段に記憶されるデータの一例の説明図である。
【図１９】画素書き換え回数データの一例の説明図である。
【図２０】入力描画対応テーブルの一例の説明図である。
【図２１】時系列データ生成部が実行する処理の一例を示すフローチャートである。
【図２２】入力操作時系列データの一例の説明図である。
【発明を実施するための形態】
【００１０】
［実施例１］
＜全体システム構成＞
図１は、前述の技術を具現化したリモートデスクトップシステムの全体構成の一例を示す。
【００１１】
本実施例のリモートデスクトップシステムは、クライアント１、サービスサーバ２、スイッチ３及びキャプチャサーバ４を含む。クライアント１、サービスサーバ２、キャプチャサーバ４は、少なくともＣＰＵ（Central Processing Unit）及び記憶装置を含んだコンピュータであり、スイッチ３を介し、ネットワークで相互に接続されている。
【００１２】
クライアント１ではユーザ等により入力操作（例えばキーボード入力やマウス移動等）がなされる。一方、サービスサーバ２は、当該クライアント１における入力操作に応じた処理を実行し、処理結果を示す画面の描画処理の指示をクライアント１に対して行う。なお、サービスサーバ２が実行する処理とは、例えばキー入力に応じた文字の表示や、マウス移動操作に伴うポインタの移動、画面のスクロール等、コンピュータが入力操作に応じて実行する種々の処理が該当する。
【００１３】
クライアント１及びサービスサーバ２は、次のような一連の処理を繰り返す。まず、クライアント１は、ユーザ等により入力装置を介して入力操作がされると、その入力操作の内容を示す入力操作データをサービスサーバ２に送信する。サービスサーバ２は、クライアント１から受信した入力操作データに基づき、必要に応じて処理を行う。そして、処理結果を表す画面の描画処理の指示内容を示す描画処理データをクライアント１に返信する。そして、クライアント１は、サービスサーバ２から受信した描画処理データに基づいて描画処理を行い、画面をディスプレイに表示する。これにより、クライアント１において入力操作を行ったユーザ等は、自身の入力操作の結果を、クライアント１のディスプレイに表示された画面で視覚的に認識することができる。
【００１４】
スイッチ３は、通常のスイッチング機能を備えると共に、ポートミラーリング機能を備える。そして、スイッチ３は、クライアント１からサービスサーバ２に送信される入力操作データ及びサービスサーバ２からクライアント１に返信される描画処理データを、キャプチャサーバ４に対しポートミラーリングする。
【００１５】
キャプチャサーバ４は、スイッチ３によってポートミラーリングされる入力操作データ及び描画処理データをキャプチャすることによって取得する。そして、キャプチャサーバ４は、キャプチャした入力操作データ及び描画処理データを用いて、クライアント１における入力操作から、その入力操作に応じて描画された画面がクライアント１に返信されるまでの応答時間を算出する。
【００１６】
なお、本実施例のシステムでは、クライアント１が複数であるが、単数でもよい。また、本実施例のシステムでは、サービスサーバ２及びキャプチャサーバ４が単数であるが、複数でもよい。サービスサーバ２及びキャプチャサーバ４が複数の場合、それぞれ分散処理をすることも可能である。
【００１７】
＜クライアント及びサービスサーバ間で送受信される通信データの一例＞
ここで、クライアント１及びサービスサーバ２間で送受信される通信データの例について、図２を参照しながら説明する。
【００１８】
図２に示す例において、下から上に向く矢印は、クライアント１からサービスサーバ２に送信されるデータを示す。クライアント１からサービスサーバ２に送信されるデータは、入力操作データを含む。
【００１９】
一方、上から下に向く矢印は、サービスサーバ２からクライアント１に送信される通信データを示す。サービスサーバ２からクライアント１に送信されるデータは、描画処理データを含む。描画処理データは、描画処理の内容を示すコマンドを含む。また、描画処理データは、描画処理が新規画面の描画を伴う場合には、描画対象となる画面データを含む。ここで、描画処理データは、コマンドが「フレーム送信完了」を示すフレーム送信完了コマンドデータを含む。フレーム送信完了コマンドデータは、画面１フレーム分を表示するための描画処理データの送信が完了したことを示す。換言すれば、１つのフレーム送信完了コマンドデータとその次のフレーム送信完了コマンドデータとの間に送信される描画処理データが、１フレーム分の画面を表示するための描画処理データに相当する。
【００２０】
ところで、サービスサーバ２は原則として、クライアント１で表示する画面に更新が発生していないときは、フレーム送信完了コマンドデータを送信しない。サービスサーバ２は、次に画面の更新が発生してフレーム送信完了コマンドデータを送信するときに、フレーム送信完了コマンドデータが送信されなかったフレーム数を、引数「NoChangeFrame」で指定して送信する。換言すれば、引数「NoChangeFrame」は、直前に画面の更新がなされなかったフレーム数を示す。各フレームについてフレーム送信完了コマンドデータが送信されているときには、「NoChangeFrame」の値は０である。
【００２１】
＜キャプチャサーバのハードウェア構成＞
図３は、キャプチャサーバ４として機能する情報処理装置のハードウェア構成の一例を示す。本情報処理装置は、プロセッサ９０１、メモリ９０２、ストレージ９０３、可搬記憶媒体駆動装置９０４、入出力装置９０５及び通信インタフェース９０６を備える。
【００２２】
プロセッサ９０１は、制御ユニット、演算ユニット及び命令デコーダ等を含み、実行ユニットが、命令デコーダで解読されたプログラムの命令に従い、制御ユニットより出力される制御信号に応じ、演算ユニットを用いて算術・論理演算を実行する。かかるプロセッサ９０１は、制御に用いる各種情報が格納される制御レジスタ、既にアクセスしたメモリ２等の内容を一時的に格納可能なキャッシュ、及び、仮想記憶のページテーブルのキャッシュとしての機能を果たすＴＬＢを備える。なお、プロセッサ９０１は、ＣＰＵ（Central Processing Unit）コアが複数設けられている構成でもよい。
【００２３】
メモリ９０２は、例えばＲＡＭ（Random Access Memory）等の記憶装置であり、プロセッサ９０１で実行されるプログラムがロードされるとともに、プロセッサ９０１の処理に用いるデータが格納されるメインメモリである。また、ストレージ９０３は、例えばＨＤＤ（Hard Disk Drive）やフラッシュメモリ等の記憶装置であり、プログラムや各種データが格納される。可搬記憶媒体駆動装置９０４は、可搬記憶媒体９０７に記憶されたデータやプログラムを読み出す装置である。可搬記憶媒体９０７は、例えば磁気ディスク、光ディスク、光磁気ディスク又はフラッシュメモリ等である。プロセッサ９０１は、メモリ９０２やストレージ９０３と協働しつつ、ストレージ９０３や可搬記憶媒体９０７に格納されたプログラムを実行する。なお、プロセッサ９０１が実行するプログラムや、アクセス対象となるデータは、当該情報処理装置と通信可能な他の装置に格納されていてもよい。なお、本実施形態における「キャプチャサーバ４の記憶手段」とは、メモリ９０２、ストレージ９０３及び可搬記憶媒体９０７若しくは当該情報処理装置と通信可能な他の装置の少なくともいずれかを示す。
【００２４】
入出力装置９０５は例えばキーボード等やディスプレイ等であり、ユーザ操作等による動作命令を受け付ける一方、情報処理装置による処理結果を出力する。通信インタフェース９０６は例えばＬＡＮ（Local Area Network）カード等であり、外部とのデータ通信を可能にする。前述した情報処理装置の各構成要素は、バス９０８で接続されている。
【００２５】
＜キャプチャサーバの機能構造及びデータ構造＞
次に、キャプチャサーバ４の機能構造及びキャプチャサーバ４の記憶手段に記憶されるデータのデータ構造の一例につき、図４〜図１１を参照して説明する。
図４は、キャプチャサーバ４の機能構造及び記憶手段に記憶されるデータを示す。
キャプチャサーバ４は、プログラムがインストールされ実行されることにより実現される、キャプチャ部１１、Ｌ７解析部１２、時系列データ生成部１３、対応付け部１４及び応答時間算出部１５を備える。また、キャプチャサーバ４の記憶手段は、通信ログテーブル２１、フレーム単位通信ログテーブル２２、入力操作テーブル２３、描画処理テーブル２４、入力描画対応テーブル２５、入力操作時系列データ２６、描画処理時系列データ２７、最大許容数２８、類似度データ２９及び応答時間テーブル３０を記憶する。
【００２６】
キャプチャ部１１は、スイッチ３によってポートミラーリングされた、クライアント１から送信された入力操作データ及びサービスサーバ２から送信された描画処理データを取得する。
【００２７】
Ｌ７解析部１２は、キャプチャ部１１によって取得された入力操作データ及び描画処理データ（バイナリデータ）を解析し、当該データを変換して入力操作データ及び描画処理データの内容を示す通信ログを生成し、通信ログテーブル２１に書き込む。
【００２８】
なお、キャプチャ部１１及びＬ７解析部１２は、換言すれば、クライアント１から送信された入力操作データ及びサービスサーバ２から送信された描画処理データを取得する。キャプチャ部１１及びＬ７解析部１２がデータ取得部に相当する。
【００２９】
時系列データ生成部１３は、応答時間を測定する任意の期間である所定期間における入力操作データ、及び少なくとも当該所定期間を含む期間における描画処理データの発生状況を特定する。具体的には、時系列データ生成部１３は、Ｌ７解析部１２によって通信ログテーブル２１に書き込まれた通信ログをフレーム毎にグループ化したフレーム単位通信ログを生成して、フレーム単位通信ログテーブル２２に書き込む。また、時系列データ生成部１３は、応答時間を測定する対象とする入力操作を選択し、前述の所定期間に含まれる各フレームにおける当該入力操作を示す入力操作データの発生状況を示す入力操作時系列データ２６を生成して記憶手段に書き込む。さらに、時系列データ生成部１３は、選択した当該入力操作に応じて実行される描画処理を選択し、少なくとも前述の所定期間を含む期間に含まれる各フレームにおける当該描画処理の描画処理データの発生状況を示す描画処理時系列データ２７を生成して記憶手段に書き込む。ここで、時系列データ生成部１３は、入力操作に応じて実行される描画処理の種類が複数ある場合には、それぞれの描画処理の種類について描画処理時系列データ２７を生成する。なお、時系列データ生成部１３は状況特定部に相当する。
【００３０】
対応付け部１４は、前述の所定期間における入力操作データの発生状況と、描画処理データの発生状況との類似度が最も高い期間を特定する。具体的には、対応付け部１４は、入力操作時系列データ２６と描画処理時系列データ２７との類似度を算出する。このとき、対応付け部１４は、前述の所定期間に含まれる各フレームに対応する入力操作時系列データ２６、並びに当該所定期間を含む期間に含まれる各フレームに対応する描画処理時系列データ２７の類似度を、最大許容数まで１フレームずつずらしながら、各ずれに対応する期間についてそれぞれ算出する。この算出処理については後で詳述する。そして、対応付け部１４は、類似度データ２９を生成して記憶手段に書き込み、最も類似度の高いフレームのずれの数を特定する。換言すれば、対応付け部１４は、前述の所定期間よりも、最も類似度の高いフレームのずれの数だけ後にずれた期間を特定する。
【００３１】
応答時間算出部１５は、対応付け部１４で特定した最も類似度の高いフレームのずれの数に基づき、当該ずれの数に対応する期間に発生した描画処理データの送信時刻と、前述の所定期間に最初に発生した入力操作データの送信時刻との時間差である応答時間を算出して出力する。
【００３２】
次に、キャプチャサーバ４の記憶手段に記憶されるデータのデータ構造について説明する。
通信ログテーブル２１は、クライアント１及びサービスサーバ２間で送受信される入力操作データ及び描画処理データの内容を示す通信ログが記録されるテーブルである。通信ログテーブル２１は、図５に示すように、データが送信された［時刻］、クライアント１のＩＰアドレス及びポート番号を示す［クライアント］、サービスサーバ２のＩＰアドレス及びポート番号を示す［サーバ］、クライアント１からの入力操作データ（ＲＥＱ）かサービスサーバ２からの描画処理データ（ＲＥＳ）かを示す［種別］、データに含まれる指示であるコマンドの内容を示す［コマンド］及びコマンドの引数を示す［コマンド引数］の項目を含む。
【００３３】
フレーム単位通信ログテーブル２２は、通信ログテーブル２１に格納された通信ログがフレーム毎にグループ化されたデータが記録されるテーブルである。フレーム単位通信ログテーブル２２は、図６に示すように、通信ログテーブル２１に含まれる項目に加え、フレームを一意に特定する［フレームＩＤ］の項目を含む。
【００３４】
入力操作テーブル２３は、クライアント１における入力操作であって応答時間の測定対象となり得る入力操作の種類を示すデータ等が記録されるテーブルである。入力操作テーブル２３は、図７に示すように、入力操作の種類を示す［入力操作］と、当該入力操作の種類に応じた、入力操作データの発生状況を示す値の値域を示す［値域］の項目を含む。入力操作テーブル２３のデータは、システム管理者等によって予め書き込まれる。
【００３５】
描画処理テーブル２４は、入力操作との類似度を算出する描画処理の種類を示すデータ等が記録されるテーブルである。描画処理テーブル２４は、図７に示すように、入力操作との類似度を算出する描画処理の種類を示す［描画処理］と、当該描画処理の種類に応じた、描画処理データの発生状況を示す値の値域を示す［値域］の項目を含む。描画処理テーブル２４のデータは、システム管理者等によって予め書き込まれる。
【００３６】
入力描画対応テーブル２５は、入力操作の種類と当該入力操作との類似度を算出する描画処理の種類とを対応付けるデータが記憶されるテーブルである。入力描画対応テーブル２５は、図８に示すように、入力操作の種類を示す［入力操作］と、当該入力操作との類似度を算出する描画処理の種類を示す［類似度算出対象］の項目を含む。入力描画対応テーブル２５は、システム管理者等によって予め書き込まれる。
【００３７】
入力操作時系列データ２６は、図９に示すように、応答時間を測定する期間における、応答時間の測定対象とする入力操作を示す入力操作データの発生状況を示す値を、フレーム毎に保持するデータである。
【００３８】
描画処理時系列データ２７は、図９に示すように、応答時間を測定する期間における、応答時間の測定対象とする入力操作との類似度を算出する描画処理を示す描画処理データの発生状況を示す値を、フレーム毎に保持するデータである。
【００３９】
最大許容数２８は、図９に示すように、対応付け部１４が入力操作データの発生状況と描画処理データの発生状況との類似度（すなわち、入力操作時系列データ２６と描画処理時系列データ２７との類似度）を算出する際に、入力操作時系列データ２６と描画処理時系列データ２７とのフレームをずらす数の最大値である。換言すれば、最大許容数２８は、応答時間として見込まれる最長の時間に対応するフレーム数（応答時間として見込まれる最長の時間を、１フレーム毎の時間で割った数）である。最大許容数２８は、システム管理者等によって予め書き込まれる。
【００４０】
類似度データ２９は、図１０に示すように、入力操作データの発生状況と描画処理データの発生状況との類似度をフレームのずれ毎に示すデータである。また、類似度データ２９は、入力操作データとの類似度を算出した描画処理の種類が複数ある場合には、フレームのずれ毎における、入力操作データの発生状況と描画処理の種類毎の描画処理データとの発生状況との総合類似度をさらに含む。総合類似度の詳細については後述する。
【００４１】
応答時間テーブル３０は、クライアント１における入力操作がなされてから、その入力操作に応じた画面の描画処理の指示がクライアント１に返信されるまでの応答時間が記録されるテーブルである。応答時間テーブル３０は、図１１に示すように、クライアント１から入力操作データが送信された時刻を示す［入力操作時刻］、サービスサーバ２から描画処理データが送信された時刻を示す［描画処理時刻］、クライアント１のＩＰアドレス等を示す［クライアント］、サービスサーバ２のＩＰアドレス等を示す［サーバ］、入力操作の種類を示す［入力操作］、描画処理の種類を示す［描画処理］及び入力操作から描画処理までの応答時間を示す［応答時間］の項目を含む。
【００４２】
＜キャプチャサーバで実行される処理の詳細＞
次に、キャプチャサーバ４の時系列データ生成部１３、対応付け部１４及び応答時間算出部１５が行う処理の一例について、図１２〜図１５に示すフローチャートを用いてさらに詳細に説明する。
【００４３】
まず、キャプチャ部１１及びＬ７解析部１２が実行する処理について、図１２に示すフローチャートを用いて説明する。
Ｓ１では、キャプチャ部１１が、スイッチ３によってポートミラーリングされた、クライアント１から送信された入力操作データ及びサービスサーバ２から送信された描画処理データをキャプチャする。なお、この段階では入力操作データ及び描画処理データはバイナリデータである。
【００４４】
Ｓ２では、Ｌ７解析部１２が、キャプチャ部１１によってキャプチャされたバイナリデータを解析し、当該データを変換して入力操作データ及び描画処理データの通信ログを生成し、通信ログテーブル２１に書き込む。
【００４５】
次に、時系列データ生成部１３が実行する処理について、図１３に示すフローチャートを用いて説明する。この処理は、前述したキャプチャ部１１及びＬ７解析部１２の処理に続いて実行される。
【００４６】
ステップＳ１１では、時系列データ生成部１３が、通信ログテーブル２１の通信ログをフレーム単位にグループ化する。そして、時系列データ生成部１３は、フレーム単位にグループ化した通信ログに対してフレーム毎にフレームＩＤを付与したフレーム単位通信ログを生成し、フレーム単位通信ログテーブル２２に書き込む。具体的には、時系列データ生成部１３は、通信ログテーブル２１の通信ログを、コマンド引数にフレーム送信完了コマンド「NoChangeFrame」が含まれている通信ログが各フレームの最後になるようにグループ化する。ここで、時系列データ生成部１３は、「NoChangeFrame」の値が０以外の場合は、直前のフレーム送信完了コマンドからの時間差を「NoChangeFrame」の値＋１で割り、その時間間隔毎にフレーム補完レコードを生成して補完（挿入）する。
【００４７】
ステップＳ１２では、時系列データ生成部１３が、応答時間の測定対象とする１つの入力操作の種類（以下「対象入力操作」という）を入力操作テーブル２３の［入力操作］から１つ選択する。対象入力操作は、例えばシステム管理者等が指定することができる。
【００４８】
ステップＳ１３では、時系列データ生成部１３が、フレーム単位通信ログテーブル２２を参照し、ステップＳ１２で入力操作テーブル２３から選択した対象入力操作を示す入力操作データが発生しているフレームを含んだ、連続した任意の複数のフレーム（以下「対象フレーム群」という）を特定する。換言すれば、時系列データ生成部１３は、クライアント１において対象入力操作がなされた任意の期間（前述の所定期間）を特定する。そして、時系列データ生成部１３は、当該対象フレーム群の各フレームにおける対象入力操作を示す入力操作データの発生状況を示す入力操作時系列データ２６を生成する。具体的には、時系列データ生成部１３は、フレーム単位通信ログテーブル２２のコマンド及びコマンド引数を参照し、各フレームにおいて行われた対象入力操作の内容を、入力操作テーブル２３の値域に基づいて数値化（正規化）する。
【００４９】
ステップＳ１４では、時系列データ生成部１３が、入力描画対応テーブル２５を参照し、対象入力操作との類似度を算出する類似度算出対象の描画処理（以下「対象描画処理」という）を取得する。
【００５０】
ステップＳ１５では、時系列データ生成部１３が、ステップＳ１４で取得した対象描画処理の種類を、描画処理テーブル２４の描画処理から１つ選択する。
ステップＳ１６では、時系列データ生成部１３が、対象フレーム群及び対象フレーム群に続く最大許容数分（所定数）のフレーム（少なくとも前述の所定期間を含む期間）につき、各フレームにおける対象描画処理を示す描画処理データの発生状況を示す描画処理時系列データ２７を、フレーム単位通信ログテーブル２２を参照して生成する。具体的には、時系列データ生成部１３は、フレーム単位通信ログテーブル２２のコマンド及びコマンド引数を参照し、各フレームにおいて行われた対象描画処理の内容を、入力操作テーブル２３の値域に基づいて数値化（正規化）する。
【００５１】
ステップＳ１７では、時系列データ生成部１３が、ステップＳ１４で特定した対象描画処理について全て処理したか否かを判定する。対象描画処理について全て処理した場合は処理を終了し、そうでない場合はステップＳ１５に戻る。
【００５２】
次に、対応付け部１４が実行する処理について、図１４に示すフローチャートを用いて説明する。この処理は、前述した時系列データ生成部１３の処理に続いて実行される。
ステップＳ２１では、対応付け部１４が、時系列データ生成部１３によって生成された入力操作時系列データ２６を選択する。
【００５３】
ステップＳ２２では、対応付け部１４が、時系列データ生成部１３の処理によって生成された描画処理時系列データ２７のうち、１つの描画処理時系列データ２７を選択する。
ステップＳ２３では、対応付け部１４が、ステップＳ２１で選択した入力操作時系列データ２６とステップＳ２２で選択した描画処理時系列データ２７とのフレームのずれを０とする。換言すれば、対応付け部１４は、入力操作時系列データ２６と描画処理時系列データ２７との同じフレームのデータ同士が対応するようにする。
【００５４】
ステップＳ２４では、対応付け部１４が、入力操作時系列データ２６と描画処理時系列データ２７との類似度を算出する。類似度を算出する具体的方法の一例として、対応付け部１４は、入力操作時系列データ２６及び描画処理時系列データ２７のそれぞれにつき、フレーム毎の数値を座標としたｎ次元ベクトルとし、両ベクトルのコサイン類似度を算出する。そして、対応付け部１４は、算出した類似度と現在のフレームのずれの数とを対応付けた類似度データ２９を記憶する。
【００５５】
ステップＳ２５では、対応付け部１４が、入力操作時系列データ２６と描画処理時系列データ２７とのフレームのずれが最大許容数であるか否かを判定する。フレームのずれが最大許容数でない場合にはステップＳ２６に進み、最大許容数である場合にはステップＳ２７に進む。
【００５６】
ステップＳ２６では、対応付け部１４が、入力操作時系列データ２６と描画処理時系列データ２７とのフレームのずれを１増やす。
ステップＳ２７では、対応付け部１４が、全ての描画処理時系列データ２７について処理を行ったか否かを判定する。全ての描画処理時系列データ２７について処理を行った場合には対応付け部１４の処理を終了し、行っていない場合にはステップＳ２２に戻る。
【００５７】
ステップＳ２８では、対応付け部１４が、ステップＳ２５で記憶された類似度データ２９に基づき、フレームのずれ毎に、入力操作時系列データ２６と全ての描画処理時系列データ２７との総合類似度を算出する。この総合類似度の算出方法は任意であり、例えば、描画処理時系列データ２７の数が２種類であり、それぞれのフレームのずれについて２つの類似度（Simirality1、Simirality2）が算出されている場合、次のような計算式で算出することができる。
【数１】
2015011653.tif 000003
【００５８】
この計算式は、類似度がｎ個算出されている場合にも同様に適用することができる。
そして、対応付け部１４は、総合類似度が最も高いずれの数を特定する。換言すれば、対応付け部１４は、対象フレーム群における入力操作時系列データ２６と、描画処理時系列データ２７とが最も類似する期間が、対象フレーム群から当該ずれの数だけ後にずれたフレーム群に相当する期間であることを特定する。さらに換言すれば、対応付け部１４は、対象フレーム群における入力操作データと、対象フレーム群から当該ずれの数だけ後にずれたフレーム群における描画処理データとを対応付ける。
【００５９】
次に、応答時間算出部１５が実行する処理について、図１５に示すフローチャートを用いて説明する。この処理は、前述した対応付け部１４の処理に続いて実行される。
ステップＳ３１では、応答時間算出部１５が、フレーム単位通信ログテーブル２２を参照し、対象フレーム群のなかで対象入力操作が最初に行われた入力操作時刻を取得する。
【００６０】
ステップＳ３２では、応答時間算出部１５が、フレーム単位通信ログテーブル２２を参照し、対象フレーム群のなかで対象入力操作が最初に行われたフレームから、対応付け部１４によって特定された総合類似度が最も高いずれの数だけ後のフレーム送信完了時刻を描画処理時刻として取得する。
【００６１】
ステップＳ３３では、応答時間算出部１５が、描画処理時刻と入力操作時刻との時間差（描画処理時刻から入力操作時刻を差し引いた時間）、すなわち応答時間を算出する。そして、応答時間算出部１５は、算出した応答時間の出力の一例として、入力操作時刻、描画処理時刻、入力操作が行われたクライアント１及び描画指示を送信したサービスサーバ２のＩＰアドレス等、入力操作の内容、描画処理の内容及び応答時間を、応答時間テーブル３０に書き込む。
【００６２】
＜データの具体例＞
ここで、前述したキャプチャサーバ４の処理のうち、時系列データ生成部１３、対応付け部１４及び応答時間算出部１５の処理について、図５〜図１１に示すデータの具体例及び図１６〜図１７に示す説明図を参照しながら説明する。
【００６３】
本具体例では、「2013/03/18 09:00:00.000000」より後から「2013/03/18 09:00:00.180000」までの期間における「下カーソルキー押下」の入力操作を、応答時間の測定対象とする。なお、図５の通信ログテーブル２１及び図６のフレーム単位通信ログテーブル２２のデータは、「2013/03/18 09:00:00.120000」より後のデータの図示を省略している。
【００６４】
まず、時系列データ生成部１３は、図５に示す通信ログテーブル２１の通信ログを、コマンドがフレーム送信完了コマンドである通信ログが各フレームの最後になるようにグループ化して、図６に示すフレーム単位通信ログテーブル２２に書き込む。なお、この具体例ではフレームＩＤを１から順に付与しているが、例えば［時刻］の値などをそのままフレームＩＤとして一意性を確保してもよい。ここで、図５の通信ログでは、［時刻］が「2013/03/18 09:00:00.090000」のフレーム送信完了コマンドの引数「NoChangeFrame」が２であり、直前のフレーム送信完了コマンドの［時刻］である「2013/03/18 09:00:00.000000」以降、サービスサーバ２からの描画指示が発生していない。このため、時系列データ生成部１３は、直前のフレーム送信完了コマンドの［時刻］である「2013/03/18 09:00:00.000000」からの時間差を３で割り、「2013/03/18 09:00:00.030000」及び「2013/03/18 09:00:00.060000」に、フレーム送信完了コマンドを補完する（ステップ１１）。
【００６５】
そして、時系列データ生成部１３は、図７に示す入力操作テーブル２３から今回の対象入力操作である「下カーソルキー押下げ」を選択する（ステップ１２）。さらに、フレーム単位通信ログテーブル２２を参照し、「下カーソルキー押下げ」の入力操作データが含まれる対象フレーム群として、フレームＩＤ２〜フレームＩＤ７を特定する。そして、時系列データ生成部１３は、入力操作テーブル２３の［値域］に基づき、フレームＩＤ２〜フレームＩＤ７について「下カーソルキー押下げ」の入力操作データが含まれるフレームを「１」、含まれないフレームを「０」として図９に示す入力操作時系列データ２６を生成する（ステップ１３）。
【００６６】
次に時系列データ生成部１３は、図８に示す入力描画対応テーブル２５を参照し、「下カーソルキー押下げ」との類似度算出対象に含まれる対象描画処理である「上方向領域コピー」及び「新規描画領域割合」を取得する（ステップ１４）。
【００６７】
なお、「上方向領域コピー」及び「新規描画領域割合」は、いずれも画面が上方向にスクロールするときに発生する描画処理である。図１６に示すように、（ａ）下カーソルキーが押下されることにより、画面が上方向にスクロールする。このように画面が上方向にスクロールするという画面上の変化は、（ｂ）表示している画面の一部の領域を指定して下から上方向へコピーし、（ｃ）コピーした当該部分のさらに下の領域に画面を新規描画する、ことで表現することができる。新規描画領域割合は、画面を新規描画した領域の画素数が画面全体の画素数に対して占める割合を示す。画面全体の画素数は、例えばクライアント１とサービスサーバ２の通信開始時に取得することができる。なお、かりに画面全体の画素数が取得できていない場合には、例えば過去に新たな画面が描画されたことのある領域の画素数の最大値を用いてもよい。
【００６８】
時系列データ生成部１３は、まず、図７に示す描画処理テーブル２４から「上方向領域コピー」を選択する（ステップ１５）。さらに、時系列データ生成部１３は、フレームＩＤ２〜フレームＩＤ７及びフレームＩＤ７に続く４つ分（図９に示す最大許容数２８）のフレームを特定する。そして、時系列データ生成部１３は、フレーム単位通信ログテーブル２２の［コマンド］及び［コマンド引数］を参照し、「上方向領域コピー」の描画処理データが含まれるフレームを特定する。そして、時系列データ生成部１３は、描画処理テーブル２４の［値域］に基づき、「上方向領域コピー」の描画指示データが含まれるフレームを「１」、含まれないフレームを「０」として図９に示す描画処理時系列データ２７を生成する（ステップ１６）。同様に、時系列データ生成部１３は、フレーム単位通信ログテーブル２２の［コマンド］及び［コマンド引数］を参照し、「新規描画」の描画処理データが含まれるフレームを特定する。そして、時系列データ生成部１３は、「新規描画領域割合」について、描画処理テーブル２４の［値域］に基づき、「新規描画領域割合」を「０（無描画）」から「１（全画面描画）」の間の値として図９に示す描画処理時系列データ２７を生成する（ステップ１５、ステップ１６）。
【００６９】
次に、対応付け部１４は、図９に示す「下カーソルキー押下げ」の入力操作時系列データ２６を選択する（ステップ２１）。また、対応付け部１４は、図９に示す描画処理時系列データ２７のうち、「上方向領域コピー」の描画処理時系列データ２７を選択する（ステップ２２）。そして、対応付け部１４は、「下カーソルキー押下げ」の入力操作時系列データ２６と「上方向領域コピー」の描画処理時系列データ２７との類似度を、図１７に示すように、フレームを１つずつずらしながら算出する（ステップ２３〜ステップ２６）。具体的には、対応付け部１４は、まず、同じフレームＩＤのデータとの同じフレームＩＤに対応する値が同じ座標になるようにフレームのずれを０とする（ステップ２３）。対応付け部１４は、このようにフレームのずれが０の状態で、「下カーソルキー押下げ」の入力操作時系列データ２６と「上方向領域コピー」の描画処理時系列データ２７との類似度を算出し、「0.894」の値を得る。そして、対応付け部１４は、フレームのずれが０であることと類似度「0.894」を対応付けた類似度データ２９を図１０に示すように記憶する（ステップ２４）。同様にして、対応付け部１４は、ずれが最大許容数の４になるまで類似度を算出し、類似度データ２９に追加する。
【００７０】
さらに、対応付け部１４は、図９に示す描画処理時系列データ２７のうち、「新規描画領域割合」の描画処理時系列データ２７を選択して、同様の処理を行う。
そして、対応付け部１４は、「上方向領域コピー」と「新規描画領域割合」のそれぞれについて算出した類似度に基づき、ずれが０の状態からずれが４の状態までのそれぞれの状態について総合類似度を算出し、図１０に示すように記録する。そして、対応付け部１４は、総合類似度が最大のずれが「２」であることを特定する（ステップ２５）。このことはすなわち、「下カーソルキー押下げ」の入力操作から２フレーム遅れて、「下カーソルキー押下げ」の入力操作に応答する「上方向領域コピー」及び「新規描画領域割合」の描画処理がなされた可能性が高いことを意味する。さらに換言すれば、フレームＩＤ２〜フレームＩＤ７の入力操作と、２フレーム遅れたフレームＩＤ４〜フレームＩＤ９の描画処理とが対応付けられることを意味する。
【００７１】
次に、応答時間算出部１５は、図６に示すフレーム単位通信ログテーブル２２を参照し、フレームＩＤ２〜フレームＩＤ７において、最初に「下カーソルキー押下げ」が行われた時刻、すなわちフレームＩＤ２の「2013/03/18 09:00:00.015000」を入力操作時刻として取得する（ステップ３１）。さらに、応答時間算出部１５は、当該フレームＩＤ２から、総合類似度が最大のずれである「２」フレーム後のフレーム、すなわち、フレームＩＤ４のフレーム送信完了時刻である「2013/03/18 09:00:00.090000」を描画処理時刻として取得する（ステップ３２）。そして、応答時間算出部１５は、描画処理時刻から入力操作時刻を差し引いた時間差である応答時間「0.075000」を算出し、図１１に示すように応答時間テーブル３０に書き込む（ステップ３３）。
【００７２】
＜本実施例による効果等＞
本実施例によれば、クライアント１における入力操作に応じた描画処理が、サービスサーバ２からどの期間に送信されたかが、入力操作データの発生状況と描画処理データの発生状況との類似度を算出することによって特定される。このため、描画処理時刻から入力操作時刻を差し引いた応答時間、すなわちクライアント１における入力操作がなされてから、その入力操作に応じた画面の描画処理の指示がクライアント１に返信されるまでの応答時間を測定することが可能となる。したがって、応答時間に基づいてリモートデスクトップシステムにおける性能測定や品質評価をすることができる。
【００７３】
また、本実施例では、対象入力操作との類似度を算出する対象描画処理が複数の場合、入力操作時系列データ２６と複数の描画処理時系列データ２７との総合類似度を算出する。これにより、１つの対象入力操作に対する対象描画処理全体としてのフレームのずれの数を適切に特定することができ、応答時間を適切に算出することができる。
【００７４】
さらに、本実施例では、画面描画処理を行う最小単位であるフレーム単位に通信ログをグループ化し、フレーム単位で類似度が最大のずれを算出し、類似度が最も高いフレームのずれの数だけ後のフレーム送信完了時刻を用いて応答時間を算出している。これにより、応答時間の算出精度が高くなる。しかしながら、ずれの算出の処理単位はこのようなフレーム単位に限らず、例えば任意の時間単位にしてもよい。
【００７５】
また、本実施例では、クライアント１で表示する画面に更新が発生せず、描画処理データ及びフレーム送信完了コマンドが送信されていない期間について、フレーム送信完了コマンドを補完している。これにより、フレーム送信完了コマンドが送信されない期間が存在していても、通信ログのグループ化をフレームに相当する時間単位で適切に行うことができ、類似度が最も高いフレームのずれの数に基づいた応答時間の算出を適切に実現することができる。
【００７６】
なお、本実施例では、対象フレーム群のなかで対象入力操作が最初に行われた入力操作時刻との時間差の算出において、描画処理時刻として、対象入力操作が最初に行われたフレームから総合類似度が最も高いずれの数だけ後のフレームのフレーム送信完了時刻を用いている。しかし、フレーム送信完了時刻に限らず、例えば、当該フレームにおいて個別の描画処理データが最後に送信された時刻を用いてもよい。
【００７７】
また、本実施例では、応答時間算出部１５が、応答時間を応答時間テーブル３０に出力したが、他の方法で応答時間を出力してもよい。例えば、応答時間算出部１５は、応答時間をディスプレイに表示したり、帳票出力したりするようにしてもよい。
【００７８】
さらに、本実施例で説明した技術は、キャプチャサーバ４での実現に限らず、例えば、キャプチャサーバ４からさらにデータを取得した他のサーバで実現してもよい。
ここで、本実施例では、応答時間の測定対象とする対象入力操作とする入力操作について特に制限を設けていない。しかし、例えば対象入力操作の入力操作回数が少ないと、実際には対象入力操作に応じた描画ではない場合であっても誤って対応付けてしまう可能性が相対的に高くなる。そこで、入力操作の回数に閾値を設け、所定回数以上連続した入力操作がなされた場合のみ、対象入力操作とするようにしてもよい。なお、この場合、操作間隔が所定間隔以内になされたときに、連続した入力操作がなされたものとして処理すればよい。こうすることにより、対象入力操作に応答して送信された描画指示が特定される精度が高くなる。
【００７９】
［実施例２］
＜実施例２の概要＞
本実施例では、実施例１に加え、クライアント１における入力操作と関係のない描画処理データがサービスサーバ２から送信される場合においても、入力操作に対する描画処理の対応付けを適切に行うことができるようにする。
【００８０】
ディスプレイ装置の高解像度化に伴い、画面上に複数のアプリケーションが同時に表示されることも多くなっている。また、ユーザによる入力操作に関係なく、時間の経過とともに表示が自動更新されるアプリケーションも増加している。このようなアプリケーションとして、例えばニュースやソーシャルネットワークの更新により表示を更新していくようなアプリケーションがあげられる。
【００８１】
このようなアプリケーションがリモートデスクトップシステムで実行されている場合、クライアント１における入力操作に関係のない描画処理の指示がサービスサーバ２から送信され、入力操作に応答した描画処理を正しく対応付けることが困難となる場合がある。実施例２は、このように入力操作に関係のないノイズとしての描画処理が発生する場合に対応するものであり、特に、入力操作に対する描画指示が入力操作に関係のない描画指示よりも回数が多い場合に適用することが可能である。
なお、実施例２のうち、実施例１と同様の内容については原則として説明を省略する。
【００８２】
＜キャプチャサーバの機能構造及びデータ構造＞
図１８は、実施例２におけるキャプチャサーバ４の全体構成を示す。実施例２におけるキャプチャサーバ４は、実施例１に加え、画素書き換え回数データ３１を記憶手段に記憶する。
【００８３】
画素書き換え回数データ３１は、図１９に示すように、１つのフレームにおける画素毎の書き換え回数を画素に対応する座標で保持する２次元配列データである。なお、図示の関係上、図１９では画素の座標数（行及び列の大きさ）を実際の画面よりも小さく表示している。
なお、図２０は、実施例２における入力描画対応テーブル２５のデータ例である。実施例２では、入力操作の内容に応じて、［類似度算出対象］に「画素毎の平均書き換え回数」が含まれる。
【００８４】
＜キャプチャサーバで実行される処理の詳細＞
次に、キャプチャサーバ４で実行される処理のうち、時系列データ生成部１３の処理について説明する。図２１は、実施例２における時系列データ生成部１３の処理を示す。
【００８５】
ステップ１１からステップ１５までは実施例１と同様のため説明を省略する。
ステップ１０１では、時系列データ生成部１３が、対象描画処理が「画素毎の平均書き換え回数」であるか否かを判定する。対象描画処理が「画素毎の平均書き換え回数」のときはステップ１０２に進み（Ｙｅｓ）、そうでないときにはステップ１０３に進む（Ｎｏ）。
【００８６】
ステップ１０２では、時系列データ生成部１３が、フレーム単位通信ログテーブル２２を参照し、画素書き換え回数データ３１を生成して記憶手段に記憶する。具体的には、時系列データ生成部１３は、まず、画面全体の画素数を取得する。画面全体の画素数は、前述したように、例えばクライアント１とサービスサーバ２の通信開始時に取得しておいてもよいし、過去に新たな画面が描画されたことのある領域の画素数の最大値を用いてもよい。そして、時系列データ生成部１３は、画面全体の画素の座標に対応する２次元配列である初期状態の画素書き換え回数データ３１を生成し、各要素の初期値を０とする。さらに、時系列データ生成部１３は、対象フレーム群及び対象フレーム群に続く最大許容数分のフレームにつき、例えば領域コピーや新規描画等の描画処理データのコマンド引数を参照し、どの領域が書き変わっているかを特定する。そして、時系列データ生成部１３は、描画処理により書き変わった領域（更新対象領域）の画素の座標に対応する要素の値を、画素が書き変わった回数で更新していく。
【００８７】
ステップ１０３では、時系列データ生成部１３が、対象フレーム群及び対象フレーム群に続く最大許容数分のフレームにつき、各フレームにおける対象描画処理を示す描画処理データの発生状況を示す描画処理時系列データ２７を、フレーム単位通信ログテーブル２２を参照して生成する。具体的には、時系列データ生成部１３は、フレーム単位通信ログテーブル２２のコマンド及びコマンド引数を参照し、各フレームにおいて行われた対象描画処理の内容を、入力操作テーブル２３の値域に基づいて数値化（正規化）する。
【００８８】
この数値化は、対象描画処理が「画素毎の平均書き換え回数」の場合、次のような処理によって実現される。すなわち、時系列データ生成部１３は、（１）フレーム単位通信ログテーブル２２を参照してそれぞれのフレームにおいて更新された画素の座標数を取得し、（２）取得した各座標について、画素書き換え回数データ３１を参照して書き換え回数を取得する。そして、時系列データ生成部１３は、（２）で取得した書き換え回数の合計値（Sum）を算出し、当該合計値を（１）で取得した座標数（Cpoints）で割った値（Sum/Cpoints）を、「画素毎の平均書き換え回数」とする。
【００８９】
ステップ１７は実施例１と同様であるため説明を省略する。また、対応付け部１４及び応答時間算出部１５の処理も実施例１と同様であるため説明を省略する。
【００９０】
＜データの具体例＞
ここで、前述した「画素毎の平均書き換え回数」の数値化について、図１９及び図２２を参照しながらデータの具体例を示して説明する。
【００９１】
例えば、図１９に示す画素書き換え回数データ３１で表されるように、画面上に、入力操作により画面が更新されるアプリケーションＡが表示する領域Ａと、画面が自動更新されるアプリケーションＢが表示する領域Ｂとが存在する例を用いて説明する。また、この画素書き換え回数データ３１は、フレームＩＤ２のフレームのものであるとする。
【００９２】
図１９に示す具体例において、領域Ａでは、１フレームで３回の入力操作及び画面描画が発生し、領域Ｂでは１回の画面描画が発生している。この場合、更新が発生した座標は領域Ａ及び領域Ｂであり、更新された画素の座標数は、領域Ａが４０、領域Ｂが４０であるため画面全体で８０である。そして、各座標の書き換え回数の合計値は、領域Ａの１２０（３＊４０）と領域Ｂの４０（１＊４０）とをあわせて１６０である。したがって、画素毎の平均書き換え回数は、１６０を８０で割った「２」となる。時系列データ生成部１３は、図２２に示すように、フレームＩＤ２の画素毎の平均書き換え回数を「２」として描画処理時系列データ２７を生成する。
【００９３】
なお、図２２の描画処理時系列データ２７の具体例に示すように、領域Ｂのみ更新されたフレームでは、画素毎の平均書き換え回数が「１」となる。一方で、領域Ａのみ更新されたフレームでは、画素毎の平均書き換え回数が「３」となる。
【００９４】
＜本実施例による効果等＞
本実施例によれば、実施例１による効果に加え、さらに次のような効果を奏する。すなわち、本実施例によれば、「画素毎の平均書き換え回数」の描画処理時系列データ２７が生成される。この平均書き換え回数の描画処理時系列データ２７は、入力操作に対する描画指示が入力操作に関係のない描画指示よりも回数が多い場合、入力操作に関係のない描画指示がなされたフレームは入力操作に対する描画指示のみがなされたフレームよりも値が小さくなる。このため、入力操作に関係のない描画指示が発生した場合であっても、入力操作時系列データ２６との類似度の算出が比較的正しく行われることとなる。したがって、対象入力操作に応答して送信された描画指示が特定される精度が高くなる。
【００９５】
［その他］
本明細書で説明した情報処理装置の機能的構成及び物理的構成は、上述の態様に限るものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。
【００９６】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を示す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能なコンピュータが、
前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得し、
所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定し、
前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定し、
前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する
処理を実行する性能測定方法。
【００９７】
（付記２）前記発生状況を特定する処理は、前記描画処理データが示す描画処理の種類が複数あるときには、描画処理の種類毎に前記描画処理データの発生状況を特定し、
前記期間を特定する処理は、前記入力操作データの発生状況と、描画処理の種類毎の前記描画処理データの発生状況との複数の類似度に基づいた総合類似度が最も高い期間を特定する付記１に記載の性能測定方法。
【００９８】
（付記３）前記発生状況を特定する処理は、前記描画処理データが示す画面の更新対象領域の画素を特定して、前記所定期間における当該更新対象領域の画素の平均書き換え回数を算出し、
前記期間を特定する処理は、前記入力操作データの発生状況と、前記平均書き換え回数との類似度を含んだ複数の類似度に基づいた総合類似度が最も高い期間を特定する付記２に記載の性能測定方法。
【００９９】
（付記４）前記期間を特定する処理は、前記入力操作データ及び前記描画処理データをフレーム毎にグループ化し、前記所定期間に含まれる各フレームにおける前記入力操作の発生状況を特定する一方、前記所定期間に含まれる各フレーム及び当該前記所定期間に続く所定数の各フレームにおける前記描画処理データの発生状況を特定し、前記所定期間に含まれる各フレームにおける前記入力操作の発生状況と、前記所定期間を前記所定数まで１フレームずつ後にずらした各期間に含まれる各フレームにおける前記描画処理データの発生状況との類似度を算出し、当該各期間のうち前記類似度が最も高い期間を特定する付記１〜３のいずれか１項に記載の性能測定方法。
【０１００】
（付記５）前記描画処理データは、１つのフレームを描画する描画処理データの送信が完了したことを示すフレーム送信完了コマンド及び直前に画面の更新がなされなかったフレーム数を示す引数を含むフレーム送信完了コマンドデータを含み、
前記期間を特定する処理は、前記フレーム送信完了コマンドデータの前記引数が０よりも大きいときに、前記引数の値に相当する数のフレーム送信完了コマンドデータを前記描画処理データに挿入した上で、１つのフレーム送信完了コマンドデータとその直前のフレーム送信完了コマンドデータとの間に送信される描画処理データを１フレームとしてグループ化する付記４に記載の性能測定方法。
【０１０１】
（付記６）リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を表す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能なコンピュータに、
前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得し、
所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定し、
前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定し、
前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する
処理を実行させる性能測定プログラム。
【０１０２】
（付記７）リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を表す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能な性能測定装置であって、
前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得するデータ取得部と、
所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定する状況特定部と、
前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定する対応付け部と、
前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する応答時間算出部と
を備えた性能測定装置。
【符号の説明】
【０１０３】
１…クライアント、２…サービスサーバ、３…スイッチ、４…キャプチャサーバ、１１…キャプチャ部、１２…Ｌ７解析部、１３…時系列データ生成部、１４…対応付け部、１５…応答時間算出部、２１…通信ログテーブル、２２…フレーム単位通信ログテーブル、２３…入力操作テーブル、２４…描画処理テーブル、２５…入力描画対応テーブル、２６…入力操作時系列データ、２７…描画処理時系列データ、２８…最大許容数、２９…類似度データ、３０…応答時間テーブル、３１…画素書き換え回数データ
【図１】
2015011653.tif 000004
【図２】
2015011653.tif 000005
【図３】
2015011653.tif 000006
【図４】
2015011653.tif 000007
【図５】
2015011653.tif 000008
【図６】
2015011653.tif 000009
【図７】
2015011653.tif 000010
【図８】
2015011653.tif 000011
【図９】
2015011653.tif 000012
【図１０】
2015011653.tif 000013
【図１１】
2015011653.tif 000014
【図１２】
2015011653.tif 000015
【図１３】
2015011653.tif 000016
【図１４】
2015011653.tif 000017
【図１５】
2015011653.tif 000018
【図１６】
2015011653.tif 000019
【図１７】
2015011653.tif 000020
【図１８】
2015011653.tif 000021
【図１９】
2015011653.tif 000022
【図２０】
2015011653.tif 000023
【図２１】
2015011653.tif 000024
【図２２】
2015011653.tif 000025