JP6102575B2 - 性能測定方法、性能測定プログラム及び性能測定装置 - Google Patents

性能測定方法、性能測定プログラム及び性能測定装置 Download PDF

Info

Publication number
JP6102575B2
JP6102575B2 JP2013138821A JP2013138821A JP6102575B2 JP 6102575 B2 JP6102575 B2 JP 6102575B2 JP 2013138821 A JP2013138821 A JP 2013138821A JP 2013138821 A JP2013138821 A JP 2013138821A JP 6102575 B2 JP6102575 B2 JP 6102575B2
Authority
JP
Japan
Prior art keywords
input operation
data
client
period
time
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
JP2013138821A
Other languages
English (en)
Other versions
JP2015011653A (ja
Inventor
久保田 敦
敦 久保田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013138821A priority Critical patent/JP6102575B2/ja
Priority to US14/294,746 priority patent/US20150012644A1/en
Publication of JP2015011653A publication Critical patent/JP2015011653A/ja
Application granted granted Critical
Publication of JP6102575B2 publication Critical patent/JP6102575B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Description

本発明は、リモートデスクトップシステムの性能測定を行う技術に関する。
シンクライアントシステムにおいて、クライアントからサーバに送信される2つのパケットの間にサーバからクライアントへのパケットの返信があるかどうかを判定し、当該返信がないときに品質劣化が発生している旨を外部に出力する技術が提供されている。また、サーバのGUI(Graphical User Interface)をクライアントから操作するリモートデスクトップシステムにおいて、サーバ及びクライアント間の通信環境に応じた通信方式を選択する技術が提供されている。当該技術では、サーバからクライアントに対して、クライアントからの操作信号に応じた画像データを生成するためのコマンドを送信する方式か、クライアントからの操作信号に応じた画像データ自体を送信する方式かを選択する。さらに、複数のサーバが連携してトランザクションを実行する複数階層システムにおいて、第1の階層に属するサーバの1処理当たりの平均処理時間の時系列推移と、第2の階層に属するサーバの1処理当たりの平均処理時間の時系列推移との相関の有無を判定する技術が提供されている。また、コンピュータのログデータと自然言語により記述されているデータとを合わせてデータの分析を行う技術において、PC操作ログなどのタイムスタンプ付きのデータ列と、タイムスタンプのついた発話や記述によるデータ列の対応付けをする技術が提供されている。
ここで、リモートデスクトップシステムの性能測定や品質評価をする指標の1つとして、クライアントにおける入力操作がなされてから、その入力操作に応じた画面の描画処理指示がクライアントに返信されるまでの応答時間がある。この応答時間が短いほど、リモートデスクトップシステムにおけるユーザの体感品質が良いということになる。
特開2010−079329号公報 特開2010−087625号公報 特開2011−258057号公報 特開2012−103787号公報
しかし、リモートデスクトップシステムにおけるクライアントにおける入力操作とサービスサーバによる描画指示の返信とは、必ずしも1対1で対応するものではない。また、入力操作と、当該入力操作に応じた画面の描画処理の指示とを対応付ける識別子等も存在しない。このため、応答時間を測定することは困難であった。
そこで、1つの側面では、本発明は、リモートデスクトップシステムにおいて、クライアントにおける入力操作がなされてから、当該入力操作に応じた画面の描画処理の指示がクライアントに返信されるまでの応答時間を測定できるようにすることを目的とする。
1つの側面では、リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を示す画面の描画処理の指示をクライアントに対して行うサーバと通信可能なコンピュータが、次の処理を実行する。まず、クライアントにおいて入力操作がなされたときにクライアントからサーバに送信される入力操作データと、当該入力操作に応じてサーバからクライアントに送信される描画処理データとを取得する。次に、所定期間における入力操作データの発生状況及び少なくとも所定期間を含む期間における描画処理データの発生状況を特定する。さらに、所定期間における入力操作データの発生状況と、描画処理データの発生状況との類似度が最も高い期間を特定する。そして、類似度が最も高い期間に発生した描画処理データの送信時刻と、所定期間に発生した入力操作データの送信時刻との時間差である応答時間を算出する。
1つの側面によれば、リモートデスクトップシステムにおいて、クライアントにおける入力操作がなされてから、当該入力操作に応じた画面の描画処理の指示がクライアントに返信されるまでの応答時間を測定することができる。
リモートデスクトップシステムの一例の全体構成図である。 クライアント及びサービスサーバ間で送受信されるデータの一例の説明図である。 キャプチャサーバのハードウェア構成の一例の説明図である。 キャプチャサーバの機能構造及び記憶手段に記憶されるデータの一例の説明図である。 通信ログテーブルの一例の説明図である。 フレーム単位通信ログテーブルの一例の説明図である。 入力操作テーブル及び描画処理テーブルの一例の説明図である。 入力描画対応テーブルの一例の説明図である。 入力操作時系列データ、描画処理時系列データ及び最大許容数の一例の説明図である。 類似度データの一例の説明図である。 応答時間テーブルの一例の説明図である。 キャプチャ部及びL7解析部が実行する処理の一例を示すフローチャートである。 時系列データ生成部が実行する処理の一例を示すフローチャートである。 対応付け部が実行する処理の一例を示すフローチャートである。 応答時間算出部が実行する処理の一例を示すフローチャートである。 下カーソルキー押下げ時の画面変化の一例の説明図である。 類似度算出方法の一例の説明図である。 キャプチャサーバの機能構造及び記憶手段に記憶されるデータの一例の説明図である。 画素書き換え回数データの一例の説明図である。 入力描画対応テーブルの一例の説明図である。 時系列データ生成部が実行する処理の一例を示すフローチャートである。 入力操作時系列データの一例の説明図である。
[実施例1]
<全体システム構成>
図1は、前述の技術を具現化したリモートデスクトップシステムの全体構成の一例を示す。
本実施例のリモートデスクトップシステムは、クライアント1、サービスサーバ2、スイッチ3及びキャプチャサーバ4を含む。クライアント1、サービスサーバ2、キャプチャサーバ4は、少なくともCPU(Central Processing Unit)及び記憶装置を含んだコンピュータであり、スイッチ3を介し、ネットワークで相互に接続されている。
クライアント1ではユーザ等により入力操作(例えばキーボード入力やマウス移動等)がなされる。一方、サービスサーバ2は、当該クライアント1における入力操作に応じた処理を実行し、処理結果を示す画面の描画処理の指示をクライアント1に対して行う。なお、サービスサーバ2が実行する処理とは、例えばキー入力に応じた文字の表示や、マウス移動操作に伴うポインタの移動、画面のスクロール等、コンピュータが入力操作に応じて実行する種々の処理が該当する。
クライアント1及びサービスサーバ2は、次のような一連の処理を繰り返す。まず、クライアント1は、ユーザ等により入力装置を介して入力操作がされると、その入力操作の内容を示す入力操作データをサービスサーバ2に送信する。サービスサーバ2は、クライアント1から受信した入力操作データに基づき、必要に応じて処理を行う。そして、処理結果を表す画面の描画処理の指示内容を示す描画処理データをクライアント1に返信する。そして、クライアント1は、サービスサーバ2から受信した描画処理データに基づいて描画処理を行い、画面をディスプレイに表示する。これにより、クライアント1において入力操作を行ったユーザ等は、自身の入力操作の結果を、クライアント1のディスプレイに表示された画面で視覚的に認識することができる。
スイッチ3は、通常のスイッチング機能を備えると共に、ポートミラーリング機能を備える。そして、スイッチ3は、クライアント1からサービスサーバ2に送信される入力操作データ及びサービスサーバ2からクライアント1に返信される描画処理データを、キャプチャサーバ4に対しポートミラーリングする。
キャプチャサーバ4は、スイッチ3によってポートミラーリングされる入力操作データ及び描画処理データをキャプチャすることによって取得する。そして、キャプチャサーバ4は、キャプチャした入力操作データ及び描画処理データを用いて、クライアント1における入力操作から、その入力操作に応じて描画された画面がクライアント1に返信されるまでの応答時間を算出する。
なお、本実施例のシステムでは、クライアント1が複数であるが、単数でもよい。また、本実施例のシステムでは、サービスサーバ2及びキャプチャサーバ4が単数であるが、複数でもよい。サービスサーバ2及びキャプチャサーバ4が複数の場合、それぞれ分散処理をすることも可能である。
<クライアント及びサービスサーバ間で送受信される通信データの一例>
ここで、クライアント1及びサービスサーバ2間で送受信される通信データの例について、図2を参照しながら説明する。
図2に示す例において、下から上に向く矢印は、クライアント1からサービスサーバ2に送信されるデータを示す。クライアント1からサービスサーバ2に送信されるデータは、入力操作データを含む。
一方、上から下に向く矢印は、サービスサーバ2からクライアント1に送信される通信データを示す。サービスサーバ2からクライアント1に送信されるデータは、描画処理データを含む。描画処理データは、描画処理の内容を示すコマンドを含む。また、描画処理データは、描画処理が新規画面の描画を伴う場合には、描画対象となる画面データを含む。ここで、描画処理データは、コマンドが「フレーム送信完了」を示すフレーム送信完了コマンドデータを含む。フレーム送信完了コマンドデータは、画面1フレーム分を表示するための描画処理データの送信が完了したことを示す。換言すれば、1つのフレーム送信完了コマンドデータとその次のフレーム送信完了コマンドデータとの間に送信される描画処理データが、1フレーム分の画面を表示するための描画処理データに相当する。
ところで、サービスサーバ2は原則として、クライアント1で表示する画面に更新が発生していないときは、フレーム送信完了コマンドデータを送信しない。サービスサーバ2は、次に画面の更新が発生してフレーム送信完了コマンドデータを送信するときに、フレーム送信完了コマンドデータが送信されなかったフレーム数を、引数「NoChangeFrame」で指定して送信する。換言すれば、引数「NoChangeFrame」は、直前に画面の更新がなされなかったフレーム数を示す。各フレームについてフレーム送信完了コマンドデータが送信されているときには、「NoChangeFrame」の値は0である。
<キャプチャサーバのハードウェア構成>
図3は、キャプチャサーバ4として機能する情報処理装置のハードウェア構成の一例を示す。本情報処理装置は、プロセッサ901、メモリ902、ストレージ903、可搬記憶媒体駆動装置904、入出力装置905及び通信インタフェース906を備える。
プロセッサ901は、制御ユニット、演算ユニット及び命令デコーダ等を含み、実行ユニットが、命令デコーダで解読されたプログラムの命令に従い、制御ユニットより出力される制御信号に応じ、演算ユニットを用いて算術・論理演算を実行する。かかるプロセッサ901は、制御に用いる各種情報が格納される制御レジスタ、既にアクセスしたメモリ2等の内容を一時的に格納可能なキャッシュ、及び、仮想記憶のページテーブルのキャッシュとしての機能を果たすTLBを備える。なお、プロセッサ901は、CPU(Central Processing Unit)コアが複数設けられている構成でもよい。
メモリ902は、例えばRAM(Random Access Memory)等の記憶装置であり、プロセッサ901で実行されるプログラムがロードされるとともに、プロセッサ901の処理に用いるデータが格納されるメインメモリである。また、ストレージ903は、例えばHDD(Hard Disk Drive)やフラッシュメモリ等の記憶装置であり、プログラムや各種データが格納される。可搬記憶媒体駆動装置904は、可搬記憶媒体907に記憶されたデータやプログラムを読み出す装置である。可搬記憶媒体907は、例えば磁気ディスク、光ディスク、光磁気ディスク又はフラッシュメモリ等である。プロセッサ901は、メモリ902やストレージ903と協働しつつ、ストレージ903や可搬記憶媒体907に格納されたプログラムを実行する。なお、プロセッサ901が実行するプログラムや、アクセス対象となるデータは、当該情報処理装置と通信可能な他の装置に格納されていてもよい。なお、本実施形態における「キャプチャサーバ4の記憶手段」とは、メモリ902、ストレージ903及び可搬記憶媒体907若しくは当該情報処理装置と通信可能な他の装置の少なくともいずれかを示す。
入出力装置905は例えばキーボード等やディスプレイ等であり、ユーザ操作等による動作命令を受け付ける一方、情報処理装置による処理結果を出力する。通信インタフェース906は例えばLAN(Local Area Network)カード等であり、外部とのデータ通信を可能にする。前述した情報処理装置の各構成要素は、バス908で接続されている。
<キャプチャサーバの機能構造及びデータ構造>
次に、キャプチャサーバ4の機能構造及びキャプチャサーバ4の記憶手段に記憶されるデータのデータ構造の一例につき、図4〜図11を参照して説明する。
図4は、キャプチャサーバ4の機能構造及び記憶手段に記憶されるデータを示す。
キャプチャサーバ4は、プログラムがインストールされ実行されることにより実現される、キャプチャ部11、L7解析部12、時系列データ生成部13、対応付け部14及び応答時間算出部15を備える。また、キャプチャサーバ4の記憶手段は、通信ログテーブル21、フレーム単位通信ログテーブル22、入力操作テーブル23、描画処理テーブル24、入力描画対応テーブル25、入力操作時系列データ26、描画処理時系列データ27、最大許容数28、類似度データ29及び応答時間テーブル30を記憶する。
キャプチャ部11は、スイッチ3によってポートミラーリングされた、クライアント1から送信された入力操作データ及びサービスサーバ2から送信された描画処理データを取得する。
L7解析部12は、キャプチャ部11によって取得された入力操作データ及び描画処理データ(バイナリデータ)を解析し、当該データを変換して入力操作データ及び描画処理データの内容を示す通信ログを生成し、通信ログテーブル21に書き込む。
なお、キャプチャ部11及びL7解析部12は、換言すれば、クライアント1から送信された入力操作データ及びサービスサーバ2から送信された描画処理データを取得する。キャプチャ部11及びL7解析部12がデータ取得部に相当する。
時系列データ生成部13は、応答時間を測定する任意の期間である所定期間における入力操作データ、及び少なくとも当該所定期間を含む期間における描画処理データの発生状況を特定する。具体的には、時系列データ生成部13は、L7解析部12によって通信ログテーブル21に書き込まれた通信ログをフレーム毎にグループ化したフレーム単位通信ログを生成して、フレーム単位通信ログテーブル22に書き込む。また、時系列データ生成部13は、応答時間を測定する対象とする入力操作を選択し、前述の所定期間に含まれる各フレームにおける当該入力操作を示す入力操作データの発生状況を示す入力操作時系列データ26を生成して記憶手段に書き込む。さらに、時系列データ生成部13は、選択した当該入力操作に応じて実行される描画処理を選択し、少なくとも前述の所定期間を含む期間に含まれる各フレームにおける当該描画処理の描画処理データの発生状況を示す描画処理時系列データ27を生成して記憶手段に書き込む。ここで、時系列データ生成部13は、入力操作に応じて実行される描画処理の種類が複数ある場合には、それぞれの描画処理の種類について描画処理時系列データ27を生成する。なお、時系列データ生成部13は状況特定部に相当する。
対応付け部14は、前述の所定期間における入力操作データの発生状況と、描画処理データの発生状況との類似度が最も高い期間を特定する。具体的には、対応付け部14は、入力操作時系列データ26と描画処理時系列データ27との類似度を算出する。このとき、対応付け部14は、前述の所定期間に含まれる各フレームに対応する入力操作時系列データ26、並びに当該所定期間を含む期間に含まれる各フレームに対応する描画処理時系列データ27の類似度を、最大許容数まで1フレームずつずらしながら、各ずれに対応する期間についてそれぞれ算出する。この算出処理については後で詳述する。そして、対応付け部14は、類似度データ29を生成して記憶手段に書き込み、最も類似度の高いフレームのずれの数を特定する。換言すれば、対応付け部14は、前述の所定期間よりも、最も類似度の高いフレームのずれの数だけ後にずれた期間を特定する。
応答時間算出部15は、対応付け部14で特定した最も類似度の高いフレームのずれの数に基づき、当該ずれの数に対応する期間に発生した描画処理データの送信時刻と、前述の所定期間に最初に発生した入力操作データの送信時刻との時間差である応答時間を算出して出力する。
次に、キャプチャサーバ4の記憶手段に記憶されるデータのデータ構造について説明する。
通信ログテーブル21は、クライアント1及びサービスサーバ2間で送受信される入力操作データ及び描画処理データの内容を示す通信ログが記録されるテーブルである。通信ログテーブル21は、図5に示すように、データが送信された[時刻]、クライアント1のIPアドレス及びポート番号を示す[クライアント]、サービスサーバ2のIPアドレス及びポート番号を示す[サーバ]、クライアント1からの入力操作データ(REQ)かサービスサーバ2からの描画処理データ(RES)かを示す[種別]、データに含まれる指示であるコマンドの内容を示す[コマンド]及びコマンドの引数を示す[コマンド引数]の項目を含む。
フレーム単位通信ログテーブル22は、通信ログテーブル21に格納された通信ログがフレーム毎にグループ化されたデータが記録されるテーブルである。フレーム単位通信ログテーブル22は、図6に示すように、通信ログテーブル21に含まれる項目に加え、フレームを一意に特定する[フレームID]の項目を含む。
入力操作テーブル23は、クライアント1における入力操作であって応答時間の測定対象となり得る入力操作の種類を示すデータ等が記録されるテーブルである。入力操作テーブル23は、図7に示すように、入力操作の種類を示す[入力操作]と、当該入力操作の種類に応じた、入力操作データの発生状況を示す値の値域を示す[値域]の項目を含む。入力操作テーブル23のデータは、システム管理者等によって予め書き込まれる。
描画処理テーブル24は、入力操作との類似度を算出する描画処理の種類を示すデータ等が記録されるテーブルである。描画処理テーブル24は、図7に示すように、入力操作との類似度を算出する描画処理の種類を示す[描画処理]と、当該描画処理の種類に応じた、描画処理データの発生状況を示す値の値域を示す[値域]の項目を含む。描画処理テーブル24のデータは、システム管理者等によって予め書き込まれる。
入力描画対応テーブル25は、入力操作の種類と当該入力操作との類似度を算出する描画処理の種類とを対応付けるデータが記憶されるテーブルである。入力描画対応テーブル25は、図8に示すように、入力操作の種類を示す[入力操作]と、当該入力操作との類似度を算出する描画処理の種類を示す[類似度算出対象]の項目を含む。入力描画対応テーブル25は、システム管理者等によって予め書き込まれる。
入力操作時系列データ26は、図9に示すように、応答時間を測定する期間における、応答時間の測定対象とする入力操作を示す入力操作データの発生状況を示す値を、フレーム毎に保持するデータである。
描画処理時系列データ27は、図9に示すように、応答時間を測定する期間における、応答時間の測定対象とする入力操作との類似度を算出する描画処理を示す描画処理データの発生状況を示す値を、フレーム毎に保持するデータである。
最大許容数28は、図9に示すように、対応付け部14が入力操作データの発生状況と描画処理データの発生状況との類似度(すなわち、入力操作時系列データ26と描画処理時系列データ27との類似度)を算出する際に、入力操作時系列データ26と描画処理時系列データ27とのフレームをずらす数の最大値である。換言すれば、最大許容数28は、応答時間として見込まれる最長の時間に対応するフレーム数(応答時間として見込まれる最長の時間を、1フレーム毎の時間で割った数)である。最大許容数28は、システム管理者等によって予め書き込まれる。
類似度データ29は、図10に示すように、入力操作データの発生状況と描画処理データの発生状況との類似度をフレームのずれ毎に示すデータである。また、類似度データ29は、入力操作データとの類似度を算出した描画処理の種類が複数ある場合には、フレームのずれ毎における、入力操作データの発生状況と描画処理の種類毎の描画処理データとの発生状況との総合類似度をさらに含む。総合類似度の詳細については後述する。
応答時間テーブル30は、クライアント1における入力操作がなされてから、その入力操作に応じた画面の描画処理の指示がクライアント1に返信されるまでの応答時間が記録されるテーブルである。応答時間テーブル30は、図11に示すように、クライアント1から入力操作データが送信された時刻を示す[入力操作時刻]、サービスサーバ2から描画処理データが送信された時刻を示す[描画処理時刻]、クライアント1のIPアドレス等を示す[クライアント]、サービスサーバ2のIPアドレス等を示す[サーバ]、入力操作の種類を示す[入力操作]、描画処理の種類を示す[描画処理]及び入力操作から描画処理までの応答時間を示す[応答時間]の項目を含む。
<キャプチャサーバで実行される処理の詳細>
次に、キャプチャサーバ4の時系列データ生成部13、対応付け部14及び応答時間算出部15が行う処理の一例について、図12〜図15に示すフローチャートを用いてさらに詳細に説明する。
まず、キャプチャ部11及びL7解析部12が実行する処理について、図12に示すフローチャートを用いて説明する。
S1では、キャプチャ部11が、スイッチ3によってポートミラーリングされた、クライアント1から送信された入力操作データ及びサービスサーバ2から送信された描画処理データをキャプチャする。なお、この段階では入力操作データ及び描画処理データはバイナリデータである。
S2では、L7解析部12が、キャプチャ部11によってキャプチャされたバイナリデータを解析し、当該データを変換して入力操作データ及び描画処理データの通信ログを生成し、通信ログテーブル21に書き込む。
次に、時系列データ生成部13が実行する処理について、図13に示すフローチャートを用いて説明する。この処理は、前述したキャプチャ部11及びL7解析部12の処理に続いて実行される。
ステップS11では、時系列データ生成部13が、通信ログテーブル21の通信ログをフレーム単位にグループ化する。そして、時系列データ生成部13は、フレーム単位にグループ化した通信ログに対してフレーム毎にフレームIDを付与したフレーム単位通信ログを生成し、フレーム単位通信ログテーブル22に書き込む。具体的には、時系列データ生成部13は、通信ログテーブル21の通信ログを、コマンド引数にフレーム送信完了コマンド「NoChangeFrame」が含まれている通信ログが各フレームの最後になるようにグループ化する。ここで、時系列データ生成部13は、「NoChangeFrame」の値が0以外の場合は、直前のフレーム送信完了コマンドからの時間差を「NoChangeFrame」の値+1で割り、その時間間隔毎にフレーム補完レコードを生成して補完(挿入)する。
ステップS12では、時系列データ生成部13が、応答時間の測定対象とする1つの入力操作の種類(以下「対象入力操作」という)を入力操作テーブル23の[入力操作]から1つ選択する。対象入力操作は、例えばシステム管理者等が指定することができる。
ステップS13では、時系列データ生成部13が、フレーム単位通信ログテーブル22を参照し、ステップS12で入力操作テーブル23から選択した対象入力操作を示す入力操作データが発生しているフレームを含んだ、連続した任意の複数のフレーム(以下「対象フレーム群」という)を特定する。換言すれば、時系列データ生成部13は、クライアント1において対象入力操作がなされた任意の期間(前述の所定期間)を特定する。そして、時系列データ生成部13は、当該対象フレーム群の各フレームにおける対象入力操作を示す入力操作データの発生状況を示す入力操作時系列データ26を生成する。具体的には、時系列データ生成部13は、フレーム単位通信ログテーブル22のコマンド及びコマンド引数を参照し、各フレームにおいて行われた対象入力操作の内容を、入力操作テーブル23の値域に基づいて数値化(正規化)する。
ステップS14では、時系列データ生成部13が、入力描画対応テーブル25を参照し、対象入力操作との類似度を算出する類似度算出対象の描画処理(以下「対象描画処理」という)を取得する。
ステップS15では、時系列データ生成部13が、ステップS14で取得した対象描画処理の種類を、描画処理テーブル24の描画処理から1つ選択する。
ステップS16では、時系列データ生成部13が、対象フレーム群及び対象フレーム群に続く最大許容数分(所定数)のフレーム(少なくとも前述の所定期間を含む期間)につき、各フレームにおける対象描画処理を示す描画処理データの発生状況を示す描画処理時系列データ27を、フレーム単位通信ログテーブル22を参照して生成する。具体的には、時系列データ生成部13は、フレーム単位通信ログテーブル22のコマンド及びコマンド引数を参照し、各フレームにおいて行われた対象描画処理の内容を、入力操作テーブル23の値域に基づいて数値化(正規化)する。
ステップS17では、時系列データ生成部13が、ステップS14で特定した対象描画処理について全て処理したか否かを判定する。対象描画処理について全て処理した場合は処理を終了し、そうでない場合はステップS15に戻る。
次に、対応付け部14が実行する処理について、図14に示すフローチャートを用いて説明する。この処理は、前述した時系列データ生成部13の処理に続いて実行される。
ステップS21では、対応付け部14が、時系列データ生成部13によって生成された入力操作時系列データ26を選択する。
ステップS22では、対応付け部14が、時系列データ生成部13の処理によって生成された描画処理時系列データ27のうち、1つの描画処理時系列データ27を選択する。
ステップS23では、対応付け部14が、ステップS21で選択した入力操作時系列データ26とステップS22で選択した描画処理時系列データ27とのフレームのずれを0とする。換言すれば、対応付け部14は、入力操作時系列データ26と描画処理時系列データ27との同じフレームのデータ同士が対応するようにする。
ステップS24では、対応付け部14が、入力操作時系列データ26と描画処理時系列データ27との類似度を算出する。類似度を算出する具体的方法の一例として、対応付け部14は、入力操作時系列データ26及び描画処理時系列データ27のそれぞれにつき、フレーム毎の数値を座標としたn次元ベクトルとし、両ベクトルのコサイン類似度を算出する。そして、対応付け部14は、算出した類似度と現在のフレームのずれの数とを対応付けた類似度データ29を記憶する。
ステップS25では、対応付け部14が、入力操作時系列データ26と描画処理時系列データ27とのフレームのずれが最大許容数であるか否かを判定する。フレームのずれが最大許容数でない場合にはステップS26に進み、最大許容数である場合にはステップS27に進む。
ステップS26では、対応付け部14が、入力操作時系列データ26と描画処理時系列データ27とのフレームのずれを1増やす。
ステップS27では、対応付け部14が、全ての描画処理時系列データ27について処理を行ったか否かを判定する。全ての描画処理時系列データ27について処理を行った場合には対応付け部14の処理を終了し、行っていない場合にはステップS22に戻る。
ステップS28では、対応付け部14が、ステップS25で記憶された類似度データ29に基づき、フレームのずれ毎に、入力操作時系列データ26と全ての描画処理時系列データ27との総合類似度を算出する。この総合類似度の算出方法は任意であり、例えば、描画処理時系列データ27の数が2種類であり、それぞれのフレームのずれについて2つの類似度(Simirality1、Simirality2)が算出されている場合、次のような計算式で算出することができる。
この計算式は、類似度がn個算出されている場合にも同様に適用することができる。
そして、対応付け部14は、総合類似度が最も高いずれの数を特定する。換言すれば、対応付け部14は、対象フレーム群における入力操作時系列データ26と、描画処理時系列データ27とが最も類似する期間が、対象フレーム群から当該ずれの数だけ後にずれたフレーム群に相当する期間であることを特定する。さらに換言すれば、対応付け部14は、対象フレーム群における入力操作データと、対象フレーム群から当該ずれの数だけ後にずれたフレーム群における描画処理データとを対応付ける。
次に、応答時間算出部15が実行する処理について、図15に示すフローチャートを用いて説明する。この処理は、前述した対応付け部14の処理に続いて実行される。
ステップS31では、応答時間算出部15が、フレーム単位通信ログテーブル22を参照し、対象フレーム群のなかで対象入力操作が最初に行われた入力操作時刻を取得する。
ステップS32では、応答時間算出部15が、フレーム単位通信ログテーブル22を参照し、対象フレーム群のなかで対象入力操作が最初に行われたフレームから、対応付け部14によって特定された総合類似度が最も高いずれの数だけ後のフレーム送信完了時刻を描画処理時刻として取得する。
ステップS33では、応答時間算出部15が、描画処理時刻と入力操作時刻との時間差(描画処理時刻から入力操作時刻を差し引いた時間)、すなわち応答時間を算出する。そして、応答時間算出部15は、算出した応答時間の出力の一例として、入力操作時刻、描画処理時刻、入力操作が行われたクライアント1及び描画指示を送信したサービスサーバ2のIPアドレス等、入力操作の内容、描画処理の内容及び応答時間を、応答時間テーブル30に書き込む。
<データの具体例>
ここで、前述したキャプチャサーバ4の処理のうち、時系列データ生成部13、対応付け部14及び応答時間算出部15の処理について、図5〜図11に示すデータの具体例及び図16〜図17に示す説明図を参照しながら説明する。
本具体例では、「2013/03/18 09:00:00.000000」より後から「2013/03/18 09:00:00.180000」までの期間における「下カーソルキー押下」の入力操作を、応答時間の測定対象とする。なお、図5の通信ログテーブル21及び図6のフレーム単位通信ログテーブル22のデータは、「2013/03/18 09:00:00.120000」より後のデータの図示を省略している。
まず、時系列データ生成部13は、図5に示す通信ログテーブル21の通信ログを、コマンドがフレーム送信完了コマンドである通信ログが各フレームの最後になるようにグループ化して、図6に示すフレーム単位通信ログテーブル22に書き込む。なお、この具体例ではフレームIDを1から順に付与しているが、例えば[時刻]の値などをそのままフレームIDとして一意性を確保してもよい。ここで、図5の通信ログでは、[時刻]が「2013/03/18 09:00:00.090000」のフレーム送信完了コマンドの引数「NoChangeFrame」が2であり、直前のフレーム送信完了コマンドの[時刻]である「2013/03/18 09:00:00.000000」以降、サービスサーバ2からの描画指示が発生していない。このため、時系列データ生成部13は、直前のフレーム送信完了コマンドの[時刻]である「2013/03/18 09:00:00.000000」からの時間差を3で割り、「2013/03/18 09:00:00.030000」及び「2013/03/18 09:00:00.060000」に、フレーム送信完了コマンドを補完する(ステップ11)。
そして、時系列データ生成部13は、図7に示す入力操作テーブル23から今回の対象入力操作である「下カーソルキー押下げ」を選択する(ステップ12)。さらに、フレーム単位通信ログテーブル22を参照し、「下カーソルキー押下げ」の入力操作データが含まれる対象フレーム群として、フレームID2〜フレームID7を特定する。そして、時系列データ生成部13は、入力操作テーブル23の[値域]に基づき、フレームID2〜フレームID7について「下カーソルキー押下げ」の入力操作データが含まれるフレームを「1」、含まれないフレームを「0」として図9に示す入力操作時系列データ26を生成する(ステップ13)。
次に時系列データ生成部13は、図8に示す入力描画対応テーブル25を参照し、「下カーソルキー押下げ」との類似度算出対象に含まれる対象描画処理である「上方向領域コピー」及び「新規描画領域割合」を取得する(ステップ14)。
なお、「上方向領域コピー」及び「新規描画領域割合」は、いずれも画面が上方向にスクロールするときに発生する描画処理である。図16に示すように、(a)下カーソルキーが押下されることにより、画面が上方向にスクロールする。このように画面が上方向にスクロールするという画面上の変化は、(b)表示している画面の一部の領域を指定して下から上方向へコピーし、(c)コピーした当該部分のさらに下の領域に画面を新規描画する、ことで表現することができる。新規描画領域割合は、画面を新規描画した領域の画素数が画面全体の画素数に対して占める割合を示す。画面全体の画素数は、例えばクライアント1とサービスサーバ2の通信開始時に取得することができる。なお、かりに画面全体の画素数が取得できていない場合には、例えば過去に新たな画面が描画されたことのある領域の画素数の最大値を用いてもよい。
時系列データ生成部13は、まず、図7に示す描画処理テーブル24から「上方向領域コピー」を選択する(ステップ15)。さらに、時系列データ生成部13は、フレームID2〜フレームID7及びフレームID7に続く4つ分(図9に示す最大許容数28)のフレームを特定する。そして、時系列データ生成部13は、フレーム単位通信ログテーブル22の[コマンド]及び[コマンド引数]を参照し、「上方向領域コピー」の描画処理データが含まれるフレームを特定する。そして、時系列データ生成部13は、描画処理テーブル24の[値域]に基づき、「上方向領域コピー」の描画指示データが含まれるフレームを「1」、含まれないフレームを「0」として図9に示す描画処理時系列データ27を生成する(ステップ16)。同様に、時系列データ生成部13は、フレーム単位通信ログテーブル22の[コマンド]及び[コマンド引数]を参照し、「新規描画」の描画処理データが含まれるフレームを特定する。そして、時系列データ生成部13は、「新規描画領域割合」について、描画処理テーブル24の[値域]に基づき、「新規描画領域割合」を「0(無描画)」から「1(全画面描画)」の間の値として図9に示す描画処理時系列データ27を生成する(ステップ15、ステップ16)。
次に、対応付け部14は、図9に示す「下カーソルキー押下げ」の入力操作時系列データ26を選択する(ステップ21)。また、対応付け部14は、図9に示す描画処理時系列データ27のうち、「上方向領域コピー」の描画処理時系列データ27を選択する(ステップ22)。そして、対応付け部14は、「下カーソルキー押下げ」の入力操作時系列データ26と「上方向領域コピー」の描画処理時系列データ27との類似度を、図17に示すように、フレームを1つずつずらしながら算出する(ステップ23〜ステップ26)。具体的には、対応付け部14は、まず、同じフレームIDのデータとの同じフレームIDに対応する値が同じ座標になるようにフレームのずれを0とする(ステップ23)。対応付け部14は、このようにフレームのずれが0の状態で、「下カーソルキー押下げ」の入力操作時系列データ26と「上方向領域コピー」の描画処理時系列データ27との類似度を算出し、「0.894」の値を得る。そして、対応付け部14は、フレームのずれが0であることと類似度「0.894」を対応付けた類似度データ29を図10に示すように記憶する(ステップ24)。同様にして、対応付け部14は、ずれが最大許容数の4になるまで類似度を算出し、類似度データ29に追加する。
さらに、対応付け部14は、図9に示す描画処理時系列データ27のうち、「新規描画領域割合」の描画処理時系列データ27を選択して、同様の処理を行う。
そして、対応付け部14は、「上方向領域コピー」と「新規描画領域割合」のそれぞれについて算出した類似度に基づき、ずれが0の状態からずれが4の状態までのそれぞれの状態について総合類似度を算出し、図10に示すように記録する。そして、対応付け部14は、総合類似度が最大のずれが「2」であることを特定する(ステップ25)。このことはすなわち、「下カーソルキー押下げ」の入力操作から2フレーム遅れて、「下カーソルキー押下げ」の入力操作に応答する「上方向領域コピー」及び「新規描画領域割合」の描画処理がなされた可能性が高いことを意味する。さらに換言すれば、フレームID2〜フレームID7の入力操作と、2フレーム遅れたフレームID4〜フレームID9の描画処理とが対応付けられることを意味する。
次に、応答時間算出部15は、図6に示すフレーム単位通信ログテーブル22を参照し、フレームID2〜フレームID7において、最初に「下カーソルキー押下げ」が行われた時刻、すなわちフレームID2の「2013/03/18 09:00:00.015000」を入力操作時刻として取得する(ステップ31)。さらに、応答時間算出部15は、当該フレームID2から、総合類似度が最大のずれである「2」フレーム後のフレーム、すなわち、フレームID4のフレーム送信完了時刻である「2013/03/18 09:00:00.090000」を描画処理時刻として取得する(ステップ32)。そして、応答時間算出部15は、描画処理時刻から入力操作時刻を差し引いた時間差である応答時間「0.075000」を算出し、図11に示すように応答時間テーブル30に書き込む(ステップ33)。
<本実施例による効果等>
本実施例によれば、クライアント1における入力操作に応じた描画処理が、サービスサーバ2からどの期間に送信されたかが、入力操作データの発生状況と描画処理データの発生状況との類似度を算出することによって特定される。このため、描画処理時刻から入力操作時刻を差し引いた応答時間、すなわちクライアント1における入力操作がなされてから、その入力操作に応じた画面の描画処理の指示がクライアント1に返信されるまでの応答時間を測定することが可能となる。したがって、応答時間に基づいてリモートデスクトップシステムにおける性能測定や品質評価をすることができる。
また、本実施例では、対象入力操作との類似度を算出する対象描画処理が複数の場合、入力操作時系列データ26と複数の描画処理時系列データ27との総合類似度を算出する。これにより、1つの対象入力操作に対する対象描画処理全体としてのフレームのずれの数を適切に特定することができ、応答時間を適切に算出することができる。
さらに、本実施例では、画面描画処理を行う最小単位であるフレーム単位に通信ログをグループ化し、フレーム単位で類似度が最大のずれを算出し、類似度が最も高いフレームのずれの数だけ後のフレーム送信完了時刻を用いて応答時間を算出している。これにより、応答時間の算出精度が高くなる。しかしながら、ずれの算出の処理単位はこのようなフレーム単位に限らず、例えば任意の時間単位にしてもよい。
また、本実施例では、クライアント1で表示する画面に更新が発生せず、描画処理データ及びフレーム送信完了コマンドが送信されていない期間について、フレーム送信完了コマンドを補完している。これにより、フレーム送信完了コマンドが送信されない期間が存在していても、通信ログのグループ化をフレームに相当する時間単位で適切に行うことができ、類似度が最も高いフレームのずれの数に基づいた応答時間の算出を適切に実現することができる。
なお、本実施例では、対象フレーム群のなかで対象入力操作が最初に行われた入力操作時刻との時間差の算出において、描画処理時刻として、対象入力操作が最初に行われたフレームから総合類似度が最も高いずれの数だけ後のフレームのフレーム送信完了時刻を用いている。しかし、フレーム送信完了時刻に限らず、例えば、当該フレームにおいて個別の描画処理データが最後に送信された時刻を用いてもよい。
また、本実施例では、応答時間算出部15が、応答時間を応答時間テーブル30に出力したが、他の方法で応答時間を出力してもよい。例えば、応答時間算出部15は、応答時間をディスプレイに表示したり、帳票出力したりするようにしてもよい。
さらに、本実施例で説明した技術は、キャプチャサーバ4での実現に限らず、例えば、キャプチャサーバ4からさらにデータを取得した他のサーバで実現してもよい。
ここで、本実施例では、応答時間の測定対象とする対象入力操作とする入力操作について特に制限を設けていない。しかし、例えば対象入力操作の入力操作回数が少ないと、実際には対象入力操作に応じた描画ではない場合であっても誤って対応付けてしまう可能性が相対的に高くなる。そこで、入力操作の回数に閾値を設け、所定回数以上連続した入力操作がなされた場合のみ、対象入力操作とするようにしてもよい。なお、この場合、操作間隔が所定間隔以内になされたときに、連続した入力操作がなされたものとして処理すればよい。こうすることにより、対象入力操作に応答して送信された描画指示が特定される精度が高くなる。
[実施例2]
<実施例2の概要>
本実施例では、実施例1に加え、クライアント1における入力操作と関係のない描画処理データがサービスサーバ2から送信される場合においても、入力操作に対する描画処理の対応付けを適切に行うことができるようにする。
ディスプレイ装置の高解像度化に伴い、画面上に複数のアプリケーションが同時に表示されることも多くなっている。また、ユーザによる入力操作に関係なく、時間の経過とともに表示が自動更新されるアプリケーションも増加している。このようなアプリケーションとして、例えばニュースやソーシャルネットワークの更新により表示を更新していくようなアプリケーションがあげられる。
このようなアプリケーションがリモートデスクトップシステムで実行されている場合、クライアント1における入力操作に関係のない描画処理の指示がサービスサーバ2から送信され、入力操作に応答した描画処理を正しく対応付けることが困難となる場合がある。実施例2は、このように入力操作に関係のないノイズとしての描画処理が発生する場合に対応するものであり、特に、入力操作に対する描画指示が入力操作に関係のない描画指示よりも回数が多い場合に適用することが可能である。
なお、実施例2のうち、実施例1と同様の内容については原則として説明を省略する。
<キャプチャサーバの機能構造及びデータ構造>
図18は、実施例2におけるキャプチャサーバ4の全体構成を示す。実施例2におけるキャプチャサーバ4は、実施例1に加え、画素書き換え回数データ31を記憶手段に記憶する。
画素書き換え回数データ31は、図19に示すように、1つのフレームにおける画素毎の書き換え回数を画素に対応する座標で保持する2次元配列データである。なお、図示の関係上、図19では画素の座標数(行及び列の大きさ)を実際の画面よりも小さく表示している。
なお、図20は、実施例2における入力描画対応テーブル25のデータ例である。実施例2では、入力操作の内容に応じて、[類似度算出対象]に「画素毎の平均書き換え回数」が含まれる。
<キャプチャサーバで実行される処理の詳細>
次に、キャプチャサーバ4で実行される処理のうち、時系列データ生成部13の処理について説明する。図21は、実施例2における時系列データ生成部13の処理を示す。
ステップ11からステップ15までは実施例1と同様のため説明を省略する。
ステップ101では、時系列データ生成部13が、対象描画処理が「画素毎の平均書き換え回数」であるか否かを判定する。対象描画処理が「画素毎の平均書き換え回数」のときはステップ102に進み(Yes)、そうでないときにはステップ103に進む(No)。
ステップ102では、時系列データ生成部13が、フレーム単位通信ログテーブル22を参照し、画素書き換え回数データ31を生成して記憶手段に記憶する。具体的には、時系列データ生成部13は、まず、画面全体の画素数を取得する。画面全体の画素数は、前述したように、例えばクライアント1とサービスサーバ2の通信開始時に取得しておいてもよいし、過去に新たな画面が描画されたことのある領域の画素数の最大値を用いてもよい。そして、時系列データ生成部13は、画面全体の画素の座標に対応する2次元配列である初期状態の画素書き換え回数データ31を生成し、各要素の初期値を0とする。さらに、時系列データ生成部13は、対象フレーム群及び対象フレーム群に続く最大許容数分のフレームにつき、例えば領域コピーや新規描画等の描画処理データのコマンド引数を参照し、どの領域が書き変わっているかを特定する。そして、時系列データ生成部13は、描画処理により書き変わった領域(更新対象領域)の画素の座標に対応する要素の値を、画素が書き変わった回数で更新していく。
ステップ103では、時系列データ生成部13が、対象フレーム群及び対象フレーム群に続く最大許容数分のフレームにつき、各フレームにおける対象描画処理を示す描画処理データの発生状況を示す描画処理時系列データ27を、フレーム単位通信ログテーブル22を参照して生成する。具体的には、時系列データ生成部13は、フレーム単位通信ログテーブル22のコマンド及びコマンド引数を参照し、各フレームにおいて行われた対象描画処理の内容を、入力操作テーブル23の値域に基づいて数値化(正規化)する。
この数値化は、対象描画処理が「画素毎の平均書き換え回数」の場合、次のような処理によって実現される。すなわち、時系列データ生成部13は、(1)フレーム単位通信ログテーブル22を参照してそれぞれのフレームにおいて更新された画素の座標数を取得し、(2)取得した各座標について、画素書き換え回数データ31を参照して書き換え回数を取得する。そして、時系列データ生成部13は、(2)で取得した書き換え回数の合計値(Sum)を算出し、当該合計値を(1)で取得した座標数(Cpoints)で割った値(Sum/Cpoints)を、「画素毎の平均書き換え回数」とする。
ステップ17は実施例1と同様であるため説明を省略する。また、対応付け部14及び応答時間算出部15の処理も実施例1と同様であるため説明を省略する。
<データの具体例>
ここで、前述した「画素毎の平均書き換え回数」の数値化について、図19及び図22を参照しながらデータの具体例を示して説明する。
例えば、図19に示す画素書き換え回数データ31で表されるように、画面上に、入力操作により画面が更新されるアプリケーションAが表示する領域Aと、画面が自動更新されるアプリケーションBが表示する領域Bとが存在する例を用いて説明する。また、この画素書き換え回数データ31は、フレームID2のフレームのものであるとする。
図19に示す具体例において、領域Aでは、1フレームで3回の入力操作及び画面描画が発生し、領域Bでは1回の画面描画が発生している。この場合、更新が発生した座標は領域A及び領域Bであり、更新された画素の座標数は、領域Aが40、領域Bが40であるため画面全体で80である。そして、各座標の書き換え回数の合計値は、領域Aの120(3*40)と領域Bの40(1*40)とをあわせて160である。したがって、画素毎の平均書き換え回数は、160を80で割った「2」となる。時系列データ生成部13は、図22に示すように、フレームID2の画素毎の平均書き換え回数を「2」として描画処理時系列データ27を生成する。
なお、図22の描画処理時系列データ27の具体例に示すように、領域Bのみ更新されたフレームでは、画素毎の平均書き換え回数が「1」となる。一方で、領域Aのみ更新されたフレームでは、画素毎の平均書き換え回数が「3」となる。
<本実施例による効果等>
本実施例によれば、実施例1による効果に加え、さらに次のような効果を奏する。すなわち、本実施例によれば、「画素毎の平均書き換え回数」の描画処理時系列データ27が生成される。この平均書き換え回数の描画処理時系列データ27は、入力操作に対する描画指示が入力操作に関係のない描画指示よりも回数が多い場合、入力操作に関係のない描画指示がなされたフレームは入力操作に対する描画指示のみがなされたフレームよりも値が小さくなる。このため、入力操作に関係のない描画指示が発生した場合であっても、入力操作時系列データ26との類似度の算出が比較的正しく行われることとなる。したがって、対象入力操作に応答して送信された描画指示が特定される精度が高くなる。
[その他]
本明細書で説明した情報処理装置の機能的構成及び物理的構成は、上述の態様に限るものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を示す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能なコンピュータが、
前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得し、
所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定し、
前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定し、
前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する
処理を実行する性能測定方法。
(付記2)前記発生状況を特定する処理は、前記描画処理データが示す描画処理の種類が複数あるときには、描画処理の種類毎に前記描画処理データの発生状況を特定し、
前記期間を特定する処理は、前記入力操作データの発生状況と、描画処理の種類毎の前記描画処理データの発生状況との複数の類似度に基づいた総合類似度が最も高い期間を特定する付記1に記載の性能測定方法。
(付記3)前記発生状況を特定する処理は、前記描画処理データが示す画面の更新対象領域の画素を特定して、前記所定期間における当該更新対象領域の画素の平均書き換え回数を算出し、
前記期間を特定する処理は、前記入力操作データの発生状況と、前記平均書き換え回数との類似度を含んだ複数の類似度に基づいた総合類似度が最も高い期間を特定する付記2に記載の性能測定方法。
(付記4)前記期間を特定する処理は、前記入力操作データ及び前記描画処理データをフレーム毎にグループ化し、前記所定期間に含まれる各フレームにおける前記入力操作の発生状況を特定する一方、前記所定期間に含まれる各フレーム及び当該前記所定期間に続く所定数の各フレームにおける前記描画処理データの発生状況を特定し、前記所定期間に含まれる各フレームにおける前記入力操作の発生状況と、前記所定期間を前記所定数まで1フレームずつ後にずらした各期間に含まれる各フレームにおける前記描画処理データの発生状況との類似度を算出し、当該各期間のうち前記類似度が最も高い期間を特定する付記1〜3のいずれか1項に記載の性能測定方法。
(付記5)前記描画処理データは、1つのフレームを描画する描画処理データの送信が完了したことを示すフレーム送信完了コマンド及び直前に画面の更新がなされなかったフレーム数を示す引数を含むフレーム送信完了コマンドデータを含み、
前記期間を特定する処理は、前記フレーム送信完了コマンドデータの前記引数が0よりも大きいときに、前記引数の値に相当する数のフレーム送信完了コマンドデータを前記描画処理データに挿入した上で、1つのフレーム送信完了コマンドデータとその直前のフレーム送信完了コマンドデータとの間に送信される描画処理データを1フレームとしてグループ化する付記4に記載の性能測定方法。
(付記6)リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を表す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能なコンピュータに、
前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得し、
所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定し、
前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定し、
前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する
処理を実行させる性能測定プログラム。
(付記7)リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を表す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能な性能測定装置であって、
前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得するデータ取得部と、
所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定する状況特定部と、
前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定する対応付け部と、
前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する応答時間算出部と
を備えた性能測定装置。
1…クライアント、2…サービスサーバ、3…スイッチ、4…キャプチャサーバ、11…キャプチャ部、12…L7解析部、13…時系列データ生成部、14…対応付け部、15…応答時間算出部、21…通信ログテーブル、22…フレーム単位通信ログテーブル、23…入力操作テーブル、24…描画処理テーブル、25…入力描画対応テーブル、26…入力操作時系列データ、27…描画処理時系列データ、28…最大許容数、29…類似度データ、30…応答時間テーブル、31…画素書き換え回数データ

Claims (6)

  1. リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を示す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能なコンピュータが、
    前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得し、
    所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定し、
    前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定し、
    前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する
    処理を実行する性能測定方法。
  2. 前記発生状況を特定する処理は、前記描画処理データが示す描画処理の種類が複数あるときには、描画処理の種類毎に前記描画処理データの発生状況を特定し、
    前記期間を特定する処理は、前記入力操作データの発生状況と、描画処理の種類毎の前記描画処理データの発生状況との複数の類似度に基づいた総合類似度が最も高い期間を特定する請求項1に記載の性能測定方法。
  3. 前記発生状況を特定する処理は、前記描画処理データが示す画面の更新対象領域の画素を特定して、前記所定期間における当該更新対象領域の画素の平均書き換え回数を算出し、
    前記期間を特定する処理は、前記入力操作データの発生状況と、前記平均書き換え回数との類似度を含んだ複数の類似度に基づいた総合類似度が最も高い期間を特定する請求項2に記載の性能測定方法。
  4. 前記期間を特定する処理は、前記入力操作データ及び前記描画処理データをフレーム毎にグループ化し、前記所定期間に含まれる各フレームにおける前記入力操作の発生状況を特定する一方、前記所定期間に含まれる各フレーム及び当該前記所定期間に続く所定数の各フレームにおける前記描画処理データの発生状況を特定し、前記所定期間に含まれる各フレームにおける前記入力操作の発生状況と、前記所定期間を前記所定数まで1フレームずつ後にずらした各期間に含まれる各フレームにおける前記描画処理データの発生状況との類似度を算出し、当該各期間のうち前記類似度が最も高い期間を特定する請求項1〜3のいずれか1項に記載の性能測定方法。
  5. リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を表す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能なコンピュータに、
    前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得し、
    所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定し、
    前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定し、
    前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する
    処理を実行させる性能測定プログラム。
  6. リモートデスクトップシステムにおいて入力操作がなされるクライアント及び当該クライアントにおける入力操作に応じた処理を実行し処理結果を表す画面の描画処理の指示を前記クライアントに対して行うサーバと通信可能な性能測定装置であって、
    前記クライアントにおいて入力操作がなされたときに前記クライアントから前記サーバに送信される入力操作データと、当該入力操作に応じて前記サーバから前記クライアントに送信される描画処理データとを取得するデータ取得部と、
    所定期間における前記入力操作データの発生状況及び少なくとも前記所定期間を含む期間における前記描画処理データの発生状況を特定する状況特定部と、
    前記所定期間における前記入力操作データの発生状況と、前記描画処理データの発生状況との類似度が最も高い期間を特定する対応付け部と、
    前記類似度が最も高い期間に発生した前記描画処理データの送信時刻と、前記所定期間に発生した前記入力操作データの送信時刻との時間差である応答時間を算出する応答時間算出部と
    を備えた性能測定装置。




JP2013138821A 2013-07-02 2013-07-02 性能測定方法、性能測定プログラム及び性能測定装置 Expired - Fee Related JP6102575B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013138821A JP6102575B2 (ja) 2013-07-02 2013-07-02 性能測定方法、性能測定プログラム及び性能測定装置
US14/294,746 US20150012644A1 (en) 2013-07-02 2014-06-03 Performance measurement method, storage medium, and performance measurement device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013138821A JP6102575B2 (ja) 2013-07-02 2013-07-02 性能測定方法、性能測定プログラム及び性能測定装置

Publications (2)

Publication Number Publication Date
JP2015011653A JP2015011653A (ja) 2015-01-19
JP6102575B2 true JP6102575B2 (ja) 2017-03-29

Family

ID=52133580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013138821A Expired - Fee Related JP6102575B2 (ja) 2013-07-02 2013-07-02 性能測定方法、性能測定プログラム及び性能測定装置

Country Status (2)

Country Link
US (1) US20150012644A1 (ja)
JP (1) JP6102575B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015207802A (ja) * 2014-04-17 2015-11-19 ソニー株式会社 画像処理装置および画像処理方法
JP2018028783A (ja) 2016-08-17 2018-02-22 富士通株式会社 システム状態可視化プログラム、システム状態可視化方法及びシステム状態可視化装置
JP6911544B2 (ja) * 2017-06-02 2021-07-28 富士通株式会社 プログラム、情報処理装置及び情報処理方法
US11431591B2 (en) * 2019-05-01 2022-08-30 Citrix Systems, Inc. Systems and methods for presenting workspace experience indicator on user interface
US11683243B1 (en) * 2019-05-03 2023-06-20 Nvidia Corporation Techniques for quantifying the responsiveness of a remote desktop session
JP7439934B2 (ja) * 2020-08-13 2024-02-28 日本電信電話株式会社 データ処理装置およびデータ処理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046383A1 (en) * 2001-09-05 2003-03-06 Microsoft Corporation Method and system for measuring network performance from a server
US7574323B2 (en) * 2001-12-17 2009-08-11 Wireless Valley Communications, Inc. Textual and graphical demarcation of location, and interpretation of measurements
US20040015591A1 (en) * 2002-07-18 2004-01-22 Wang Frank Xiao-Dong Collective TCP control for improved wireless network performance
US7385923B2 (en) * 2003-08-14 2008-06-10 International Business Machines Corporation Method, system and article for improved TCP performance during packet reordering
US7532642B1 (en) * 2004-03-11 2009-05-12 Sun Microsystems, Inc. Methods and apparatus supporting adaptive bandwidth management
US8274909B2 (en) * 2009-03-26 2012-09-25 Limelight Networks, Inc. Conditional protocol control
US8316104B2 (en) * 2005-11-15 2012-11-20 California Institute Of Technology Method and apparatus for collaborative system
JP2007221207A (ja) * 2006-02-14 2007-08-30 Hitachi Ltd 管理装置及び通信システム
US7809525B2 (en) * 2007-07-31 2010-10-05 International Business Machines Corporation Automatic configuration of robotic transaction playback through analysis of previously collected traffic patterns
US20100228824A1 (en) * 2009-03-06 2010-09-09 Cisco Technology, Inc. Distributed server selection for online collaborative computing sessions
JP2012198818A (ja) * 2011-03-22 2012-10-18 Fujitsu Ltd 分析装置、分析プログラム、分析方法およびシステム

Also Published As

Publication number Publication date
JP2015011653A (ja) 2015-01-19
US20150012644A1 (en) 2015-01-08

Similar Documents

Publication Publication Date Title
JP7437351B2 (ja) 計測手段が組み込まれたソフトウェアを分析するためのデータストリーム処理言語
JP6102575B2 (ja) 性能測定方法、性能測定プログラム及び性能測定装置
US9519401B2 (en) Providing context menu based on predicted commands
CN103984538B (zh) 应用场景的识别方法、功耗管理方法、装置及终端设备
US20170251072A1 (en) System and method for annotating client-server transactions
CN111625625B (zh) 确定异常日志的方法、装置、计算机设备和存储介质
JP2018508865A (ja) アプリケーションイベントの追跡
CN108604142B (zh) 一种触屏设备操作方法及触屏设备
JP2018506783A (ja) 要素識別子の生成
EP3504637A1 (en) Dynamically render large dataset in client application
CN117707677A (zh) 数据渲染方法、装置、电子设备及可读存储介质
CN114489461B (zh) 触控响应方法、装置、设备及存储介质
WO2016100534A1 (en) Data stream processing language for analyzing instrumented software
US8972913B1 (en) Concurrent multiparameter simulation system
JP2018181121A (ja) 分析装置、分析プログラム及び分析方法
JP2018055667A (ja) トレース情報管理システム、方法、及びプログラム
JP2015170031A (ja) 対応付け方法、対応付けプログラム及び対応付け装置
JP2024130366A (ja) 情報処理装置、プログラム及び方法
KR102114260B1 (ko) 스크립트 생성 장치, 방법 및 컴퓨터로 판독 가능한 기록매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170213

R150 Certificate of patent or registration of utility model

Ref document number: 6102575

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees