(57)【要約】【課題】記録したイベントの順に、イベントに対応する画面制御命令を実行することが可能なリモートＧＵＩ環境のシミュレータを提供する。【解決手段】イベント送信部１１は、イベント命令をサーバマシン２００に送信する。記録部１３は、このイベント命令を、再現用データと、予め定めた記録開始時刻から現在時刻までの経過時間とに関連付けて記録装置１５に記録する。クライアント画面制御部１２は、イベント命令に基づきサーバマシン２００により生成された画面制御命令をサーバマシン２００より受け取る。すると記録部１３は、この画面制御命令を、予め定めた記録開始時刻から現在時刻までの経過時間に関連付けて記録装置１５に記録し、再生部１４は、関連付けられた経過時間が、予め定めた取得開始時刻から現在時刻までの経過時間になったイベント命令を記録装置１５より取得し、取得したイベント命令を送信部１１に与える。【選択図】      図１
2008026966.tif 000002
【特許請求の範囲】
【請求項１】
サーバマシンのＧＵＩ環境を、前記サーバマシンに通信ネットワークを介して接続されたクライアントマシンから模擬する、前記クライアントマシンに備えられたシミュレータであって、
前記ＧＵＩ環境を模擬するためのイベント命令が与えられると、このイベント命令を前記サーバマシンに送信するイベント命令送信手段と、
前記イベント命令送信手段に与えられたイベント命令を、該イベント命令に対応するイベントを再現するための再現用データと、予め定めた記録開始時刻から現在時刻までの経過時間とに関連付けて記録媒体に記録する第一の記録手段と、
前記イベント命令に基づいて、前記サーバマシンによって生成された画面制御命令を前記サーバマシンより受け取る画面制御命令受取手段と、
前記画面制御命令受取手段によって前記画面制御命令が受け取られると、この画面制御命令を、前記予め定めた記録開始時刻から現在時刻までの経過時間に関連付けて前記記録媒体に記録する第二の記録手段と、
前記画面制御命令受取手段によって前記画面制御命令が受け取られると、前記記録媒体に記録されているイベント命令のうち、関連付けられた経過時間が、予め定めた取得開始時刻から現在時刻までの経過時間になったイベント命令を前記記録媒体から取得し、前記取得したイベント命令を前記イベント命令送信手段に与えるイベント命令取得手段と
を備えたシミュレータ。
【請求項２】
請求項１に記載のシミュレータにおいて、
前記イベント命令取得手段は、前記イベント命令を前記記録媒体から取得すると、この取得時の時刻から、このイベント命令に関連付けられている経過時間を引いた時刻を新たな前記予め定めた取得開始時刻とするシミュレータ。
【請求項３】
請求項１又は請求項２に記載のシミュレータにおいて、
前記イベント命令送信手段によって前記サーバマシンに送信されたイベント命令に基づいて、前記サーバマシンによって複数の画面制御命令が生成された場合、前記画面制御命令受取手段は、前記生成された複数の画面制御命令の全てを受け取り、前記イベント命令取得手段は、前記画面制御命令受取手段によって前記生成された画面制御命令の全てが受け取られると、受け取った画面制御命令の受け取り順序に関係なく、前記記録媒体に記録されているイベント命令のうち、関連付けられた経過時間が、前記予め定めた取得開始時刻から現在時刻までの経過時間になったイベント命令を前記記録媒体から取得し、前記取得したイベント命令を前記イベント命令送信手段に与えるシミュレータ。
【請求項４】
サーバマシンに通信ネットワークを介して接続され、前記サーバマシンのＧＵＩ環境を模擬するクライアントマシンに適用されるプログラムであって、
前記ＧＵＩ環境を模擬するためのイベント命令が与えられると、このイベント命令を前記サーバマシンに送信する送信機能、
前記与えられたイベント命令を、該イベント命令に対応するイベントを再現するための再現用データと、予め定めた記録開始時刻から現在時刻までの経過時間とに関連付けて記録媒体に記録する第一の記録機能、
前記イベント命令に基づいて、前記サーバマシンによって生成された画面制御命令を前記サーバマシンより受け取る受取機能、
前記受取機能によって前記画面制御命令が受け取られると、この画面制御命令を、前記予め定めた記録開始時刻から現在時刻までの経過時間に関連付けて前記記録媒体に記録する第二の記録機能、
前記受取機能によって前記画面制御命令が受け取られると、前記記録媒体に記録されているイベント命令のうち、関連付けられた経過時間が、予め定めた取得開始時刻から現在時刻までの経過時間になったイベント命令を前記記録媒体から取得し、前記取得したイベント命令を前記イベント命令送信手段に与える取得機能
をコンピュータに実現させるためのプログラム。
【請求項５】
請求項４に記載のプログラムにおいて、
前記取得機能は、前記イベント命令を前記記録媒体から取得すると、この取得時の時刻から、このイベント命令に関連付けられている経過時間を引いた時刻を新たな前記予め定めた取得開始時刻とするプログラム。
【請求項６】
請求項４又は請求項５に記載のプログラムおいて、
前記送信機能によって前記サーバマシンに送信されたイベント命令に基づいて、前記サーバマシンによって複数の画面制御命令が生成された場合、前記受取機能は、前記生成された複数の画面制御命令の全てを受け取り、前記取得機能は、前記受取機能によって前記生成された画面制御命令の全てが受け取られると、受け取った画面制御命令の受け取り順序に関係なく、前記記録媒体に記録されているイベント命令のうち、関連付けられた経過時間が、前記予め定めた取得開始時刻から現在時刻までの経過時間になったイベント命令を前記記録媒体から取得し、前記取得したイベント命令を前記送信機能に与えるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＧＵＩを持つクライアント・サーバシステムのＧＵＩ環境を模擬するシミュレータ及びシミュレーションプログラムに関する。
【背景技術】
【０００２】
近年、クライアント・サーバシステムの管理コストを抑えるために、サーバマシン上で実行しているアプリケーションのＧＵＩ画面をクライアントマシンからコントロールできるようなリモートＧＵＩ環境が多く利用されるようになった（例えば、特許文献１及び２参照）。このようなリモートＧＵＩ環境は、例えば図６のブロック図に示すように、イベント送信部１１及びクライアント画面制御部１２を備えたクライアントマシン１００と、イベント受信部２１、イベント処理部２２、サーバ画面制御部２３、及び画面構成情報２４を備えたサーバマシン２００とが、ＬＡＮやインターネット等の通信ネットワーク３０によって互いに接続されて構成されている。更にイベント送信部１１には、マウス１１ａやキーボード１１ｂ等の入力デバイスが接続されている。なお、通信ネットワーク３０を介してサーバマシン２００に接続されうるクライアントマシン１００は複数台ありえるが、図６では、代表的に１つのクライアントマシン１００のみ図示している。
【０００３】
このように構成されたリモートＧＵＩ環境によるクライアントマシン１００からサーバマシン２００への画面制御は、例えば図７のデータ遷移図に示すように行われる。すなわち、まず、クライアントマシン１００のインベト送信部１１から、マウス１１ａやキーボード１１ｂ等のイベントが、通信ネットワーク３０を経由してサーバマシン２００に送信される。この送信されたイベントは、サーバマシン２００のイベント受信部２１によって受信される（Ｓ５１）。
【０００４】
イベント受信部２１によってイベントが受信されると、それがイベント処理部２２によって検知され（Ｓ５２）、イベントがイベント受信部２１からイベント処理部２２に送られる（Ｓ５３）。
【０００５】
そして、イベント処理部２２では、該イベントに対する処理がなされた後に、処理結果がイベント処理部２２からサーバ画面制御部２３に送られる（Ｓ５４）。
【０００６】
サーバ画面制御部２３では、ステップＳ５４においてイベント処理部２２から送られた処理結果に基づいて画面制御命令が生成される。この生成された画面制御命令は、サーバ画面制御部２３から、通信ネットワーク３０を介して、ステップＳ５１のイベントの送信元のクライアントマシン１００に送られ、このクライアントマシン１００のクライアント画面制御部１２によって受信される（Ｓ５５）。
【０００７】
このように、クライアントマシン１００からサーバマシン２００への画面制御は、クライアントマシン１００からサーバマシン２００に対して、マウス１１ａやキーボード１１ｂ等のイベントを送信し、サーバマシン２００からクライアントマシン１００に対して画面制御命令を送信することによって実現される。
【０００８】
ところで、通信ネットワーク３０を介して、一つのサーバマシン２００に対して、例えば何百台のような多数のクライアントマシン１００が接続されて構成されるような大規模システムに対して、上述したようなリモートＧＵＩ環境によるクライアントマシン１００からサーバマシン２００への画面制御を行うためには、アプリケーションを多数同時に動作させ、アプリケーションの負荷検査を行う必要がある。何百台ものクライアントマシン１００を実際に用意するのは困難であるため、シミュレータが必要となる。
【０００９】
この種のシミュレータは、図８に示すように、クライアントマシン１００に、記録部１３、再生部１４、及び動作データ記録装置１５を追加して構成される。更に、イベント送信部１１は、イベントを送信する際には、サーバマシン２００に送信するのみならず、記録部１３にも出力する。
【００１０】
そして、記録部１３によって記録が開始されると、イベント送信部１１から出力されるイベントが記録部１３によって取得され、取得されたイベントが動作データＡとして動作データ記録装置１５に格納される。動作データＡは、最初のイベントの発生時間からの相対時間である経過時間が書き込まれた時間フィールドＡ１と、イベントの復元に必要なデータが書き込まれたアクションフィールドＡ２とから構成される。なお、図８のアクションフィールドＡ２に示しているイベントの例であるＫｅｙＥｖｅｎｔ、ＭｏｕｓｅＥｖｅｎｔ、及びＦｏｃｕｓＥｖｅｎｔはそれぞれ、キーボード１１ｂを操作したイベント、マウス１１ａを操作したイベント、フォーカス位置（キーボード１１ｂからの入力がなされる位置）が変化するイベントのことである。
【００１１】
一方、再生部１４によって再生が開始されると、動作データ記録装置１５から動作データＡが読み込まれる。そして、再生開始時刻に、動作データＡの時間フィールドＡ１に書き込まれた経過時間を加えた時間になると、アクションフィールドＡ２に書き込まれた対応するイベントが、再生部１４からイベント送信部１１に送信される。
【特許文献１】特開２００４-２２７４０５号公報
【特許文献２】特開２００５-２８５００７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、このような従来のシミュレータでは、以下のような問題がある。
【００１３】
すなわち、図８にその構成例を示すようなシミュレータでは、サーバマシン２００で仮想メモリのページングが発生した場合や、Ｊａｖａ（登録商標）のバーチャルマシンでガベージコレクションが発生した場合など、一時的にサーバマシン２００側のプロセスが、クライアントマシン１００からのイベントに応答できなくなる。
【００１４】
しかしながらクライアントマシン１００側では、サーバマシン２００側で処理が遅れていることが分からない。このため、時間フィールドＡ１に書き込まれた経過時間に達すると、対応するイベントがクライアントマシン１００からサーバマシン２００に次々と送信され続ける。
【００１５】
そのため、記録時にイベント１、画面制御命令１、イベント２の順番で記録され、図９に示すように、イベント１（Ｓ５０〜Ｓ５４）、画面制御命令１（Ｓ５５）、イベント２（Ｓ６０，Ｓ６１）の順番で実行されていたものが、図１０に示すように、イベント１（Ｓ５１）の後に、プロセスの一時的な停止（Ｓ５６）のために、イベントの処理（Ｓ５２〜Ｓ５４）及び画面制御命令１（Ｓ５５）がなされる前に、イベント２（Ｓ６０，Ｓ６１）が実行されてしまうことが起こりうる。これによって、例えば、可視化されていないウィンドウにキーイベントが送信されてしまうなどの問題が発生しうる。
【００１６】
本発明はこのような事情に鑑みてなされたものであり、記録したイベントの順に、イベントに対応する画面制御命令を実行することが可能なリモートＧＵＩ環境のシミュレータ及びシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【００１８】
すなわち、請求項１の発明は、サーバマシンのＧＵＩ環境を、サーバマシンに通信ネットワークを介して接続されたクライアントマシンから模擬する、クライアントマシンに備えられたシミュレータである。このシミュレータは、イベント命令送信手段と、第一の記録手段と、画面制御命令受取手段と、第二の記録手段と、イベント命令取得手段とを備えている。
【００１９】
イベント命令送信手段は、ＧＵＩ環境を模擬するためのイベント命令が与えられると、このイベント命令をサーバマシンに送信する。第一の記録手段は、イベント命令送信手段に与えられたイベント命令を、該イベント命令に対応するイベントを再現するための再現用データと、予め定めた記録開始時刻から現在時刻までの経過時間とに関連付けて記録媒体に記録する。画面制御命令受取手段は、イベント命令に基づいて、サーバマシンによって生成された画面制御命令をサーバマシンより受け取る。第二の記録手段は、画面制御命令受取手段によって画面制御命令が受け取られると、この画面制御命令を、予め定めた記録開始時刻から現在時刻までの経過時間に関連付けて記録媒体に記録する。イベント命令取得手段は、画面制御命令受取手段によって画面制御命令が受け取られると、記録媒体に記録されているイベント命令のうち、関連付けられた経過時間が、予め定めた取得開始時刻から現在時刻までの経過時間になったイベント命令を記録媒体から取得し、取得したイベント命令をイベント命令送信手段に与える。
【００２０】
請求項２の発明は、請求項１の発明のシミュレータにおいて、イベント命令取得手段は、イベント命令を記録媒体から取得すると、この取得時の時刻から、このイベント命令に関連付けられている経過時間を引いた時刻を新たな予め定めた取得開始時刻とする。
【００２１】
請求項３の発明は、請求項１又は請求項２に記載のシミュレータにおいて、イベント命令送信手段によってサーバマシンに送信されたイベント命令に基づいて、サーバマシンによって複数の画面制御命令が生成された場合、画面制御命令受取手段は、生成された複数の画面制御命令の全てを受け取り、イベント命令取得手段は、画面制御命令受取手段によって生成された画面制御命令の全てが受け取られると、受け取った画面制御命令の受け取り順序に関係なく、記録媒体に記録されているイベント命令のうち、関連付けられた経過時間が、予め定めた取得開始時刻から現在時刻までの経過時間になったイベント命令を記録媒体から取得し、取得したイベント命令をイベント命令送信手段に与える。
【００２２】
また、請求項４、請求項５、及び請求項６の発明はそれぞれ、請求項１、請求項２、及び請求項３の発明の各シミュレータのためのプログラムである。
【発明の効果】
【００２３】
本発明によれば、記録したイベントの順に、イベントに対応する画面制御命令を実行することが可能なリモートＧＵＩ環境のシミュレータ及びシミュレーションプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２４】
以下に、本発明を実施するための最良の形態について図面を参照しながら説明する。
【００２５】
なお、以下の各形態の説明に用いる図中の符号は、図６乃至図１０と同一部分については同一符号を付して示すことにする。
【００２６】
（第１の実施の形態）
本発明の第１の実施の形態を説明する。
【００２７】
図１は、第１の実施の形態に係るシミュレータ１６を適用したクライアントマシン１０の構成例を示す機能ブロック図である。
【００２８】
すなわち、本実施の形態に係るシミュレータ１６は、サーバマシンのＧＵＩ環境を、サーバマシン２００にＬＡＮやインターネット等の通信ネットワーク３０を介して接続されたクライアントマシン１０から模擬するためのものである。このシミュレータ１６は、クライアントマシン１０のプログラム記憶領域１７内に本実施の形態に係るシミュレーションプログラムをインストールすることによって構築されたイベント送信部１１、クライアント画面制御部１２、記録部１３、及び再生部１４と、ハードディスク等のハードウェアによって構成された動作データ記録装置１５とから構成している。そして、シミュレータ１６の動作は、このシミュレーションプログラムによって制御される。
【００２９】
シミュレーションプログラムのインストールは、クライアントマシン１０が、例えば磁気ディスク等の図示しない記録媒体に記録された、又はインターネット等の通信ネットワークを介してダウンロードしたシミュレーションプログラムをプログラム記憶領域１７に読み込むことによってなされる。なお、プログラム記憶領域１７に格納されるシミュレーションプログラムは、クライアントマシン１０に実行させるソフトウェア手段（実行プログラムのみならずテーブルやデータ構造も含む）をクライアントマシン１０内に構成させる設定プログラムをも含む。
【００３０】
プログラム記憶領域１７は、磁気ディスク、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリ等、本実施の形態に係るシミュレーションプログラムを記憶でき、かつクライアントマシン１０が読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【００３１】
動作データ記録装置１５に格納される動作データＡは、図２に示すように、時間フィールドＡ１及びアクションフィールドＡ２に加えて、更にタイプフィールドＡ３からなる。時間フィールドＡ１は、最初のレコードからの相対的な経過時間を表し、タイプフィールドＡ３は「イベント」又は「画面制御命令」として保存され、アクションフィールドＡ２はイベントを再現するための再現用データを保存する。
【００３２】
シミュレーションプログラムは、クライアントマシン１０のプログラム記憶領域１７に読み込まれると、イベント送信部１１、クライアント画面制御部１２、記録部１３、及び再生部１４を動作させることによって、図８を用いて既に説明したような処理に加えて、更に以下のような処理を実行させる。
【００３３】
すなわち、イベント送信部１１は、マウス１１ａやキーボード１１ｂから、サーバマシンのＧＵＩ環境を模擬するためのイベントが与えられると、このイベントを、通信ネットワーク３０を経由してサーバマシン２００に送信するとともに、記録部１３に出力する。
【００３４】
記録部１３は、クライアントマシン１０又はクライアントマシン１０の外部に設けられた図示しないクロックから、現在時刻を取得する。また、イベント送信部１１からイベントが出力されると、該イベントに対応する再現用データ、及び最初のレコードからの経過時間を同一レコードとして、動作データ記録装置１５内の動作データＡのタイプフィールドＡ３、アクションフィールドＡ２、及び時間フィールドＡ１にそれぞれ書き込む。
【００３５】
クライアント画面制御部１２は、イベント送信部１１からサーバマシン２００に送信されたイベントに基づいてサーバマシン２００のサーバ画面制御部２３で生成された画面制御命令を、通信ネットワーク３０を経由して、サーバマシン２００のサーバ画面制御部２３より受信する。そして、画面制御命令を受信すると、クライアントマシン１０の画面制御を行うとともに、記録部１３に画面制御命令到着通知を送信する。
【００３６】
記録部１３は、クライアント画面制御部１２から画面制御命令到着通知が送信されると、クロックからの現在時刻を用いて最初のレコードからの経過時間を計算し、計算した経過時間を、動作データ記録装置１５内の動作データＡの次のレコードの時間フィールドＡ１に書き込む。また、タイプフィールドＡ３に「画面制御命令」と書き込む。アクションフィールドＡ２には何も書き込まない。
【００３７】
再生部１４は、クライアントマシン１０又はクライアントマシン１０の外部に設けられた図示しないクロックから、現在時刻を取得する。そして、クライアント画面制御部１２によって画面制御命令が受信されると、クロックから取得した現在時刻を用いて、動作データ記録装置１５内の動作データＡのタイプフィールドＡ３に書き込まれているイベントのうち、時間フィールドＡ１に書き込まれた時間が、最初のレコードを再生したときからの経過時間に達したイベントを把握する。そして、そのイベントを、動作データＡから取得し、取得したイベントをイベント送信部１１に出力する。
【００３８】
このように、再生部１４からイベントが出力されると、イベント送信部１１は、このイベントを、通信ネットワーク３０を経由してサーバマシン２００に送信する。
【００３９】
次に、以上のように構成した本実施の形態に係るシミュレータ１６の動作例を説明する。
【００４０】
まず、記録部１３によってなされるイベント記録時の動作について説明する。
【００４１】
イベント記録時には、記録部１３によって、クライアントマシン１０又はクライアントマシン１０の外部に設けられた図示しないクロックから、現在時刻が取得される。また、イベント送信部１１からは、サーバマシン２００及び記録部１３に向けてイベントが出力される。すると、記録部１３によって、該イベントに対応する再現用データ、及び最初のレコードからの経過時間が同一レコードとして、動作データ記録装置１５内の動作データＡのタイプフィールドＡ３、アクションフィールドＡ２、及び時間フィールドＡ１にそれぞれ書き込まれる。
【００４２】
一方、イベント送信部１１からサーバマシン２００に送信されたイベントは、サーバマシン２００のイベント受信部２１によって受信され、更にイベント処理部２２によって、このイベントに対する処理がなされ、その後サーバ画面制御部２３によって、画面制御命令が生成された後に、サーバ画面制御部２３から、通信ネットワーク３０を介してクライアントマシン１０に向けて送信される。
【００４３】
この送信された画面制御命令は、クライアントマシン１０のクライアント画面制御部１２によって受信される。そして、この画面制御命令に基づいて、クライアント画面制御部１２によって、クライアントマシン１０の画面制御が行われるとともに、記録部１３に画面制御命令到着通知が送信される。
【００４４】
記録部１３では、クライアント画面制御部１２から画面制御命令到着通知が送信されると、クロックからの現在時刻を用いて最初のレコードからの経過時間が計算される。そして、計算された経過時間が、記録部１３によって、動作データ記録装置１５内の動作データＡの次のレコードの時間フィールドＡ１に書き込まれる。また、タイプフィールドＡ３に「画面制御命令」と書き込まれる。アクションフィールドＡ２には何も書き込まれない。
【００４５】
次に、再生部１４によってなされるイベント再生時の動作を、図３のフローチャートを用いて説明する。
【００４６】
再生部１４によってイベント再生が開始される場合には、先ず、再生部１４によって、クライアントマシン１０又はクライアントマシン１０の外部に設けられた図示しないクロックから、現在時刻が取得される。そして、イベント再生のタイミングを制御するための変数ＳＴＡＲＴ＿ＴＩＭＥが、この取得した現在時刻で初期化される。また、イベント再生の処理の流れを制御するための変数Ｎ＿ＣＯＮＴＲＯＬが[０]（零）に初期化される（Ｓ１０１）。
【００４７】
次に、動作データ記録装置１５内の動作データＡから、初めのレコードが再生部１４によって読み取られ、変数ＲＥＣＯＲＤ＿ＴＩＭＥが、時間フィールドＡ１の値で、変数ＲＥＣＯＲＤ＿ＴＹＰＥがタイプフィールドＡ３のデータで初期化される（Ｓ１０２）。
【００４８】
次に、再生部１４によって、上述したクロックから、現在時刻が取得され、（ＳＴＡＲＴ＿ＴＩＭＥ）＋（ＲＥＣＯＲＤ＿ＴＩＭＥ）−（現在時刻）により、待機時間が計算される。そして、再生部１４は、この待機時間だけ待つ（Ｓ１０３）。
【００４９】
ステップＳ１０３における待機後、再生部１４によって、変数ＲＥＣＯＲＤ＿ＴＹＰＥが「イベント」であるか否かが判定される（Ｓ１０４）。そして、変数ＲＥＣＯＲＤ＿ＴＹＰＥが「イベント」である（Ｓ１０４：ＹＥＳ）ならばステップＳ１０５に、「イベント」ではない（Ｓ１０４：ＮＯ）のであればステップＳ１０６に進む。
【００５０】
ステップＳ１０５では、このイベントが再生部１４からイベント送信部１１へ送られる（Ｓ１０５）。その後は、ステップＳ１０２に戻る。
【００５１】
一方、ステップＳ１０６では、再生部１４によって、変数Ｎ＿ＣＯＮＴＲＯＬが、「０」（零）より大きいか否かが判定される。そして、変数Ｎ＿ＣＯＮＴＲＯＬが「０」（零）より大きければ（Ｓ１０６:ＹＥＳ）ステップＳ１０９へ、そうでなければ（Ｓ１０６：ＮＯ）ステップＳ１０７へそれぞれ進む。
【００５２】
ステップＳ１０７では、再生部１４は、クライアント画面制御部１２から、変数Ｎ＿ＣＯＮＴＲＯＬの変更通知が送られるまで待つ（Ｓ１０７）。変数Ｎ＿ＣＯＮＴＲＯＬは、上述したように、イベント再生の処理の流れを制御するための変数であり、ステップＳ１０１で説明したように、再生処理の開始時には０（零）に初期化されている。そして、サーバマシン２００のサーバ画面制御部２３から、クライアント画面制御部１２に画面制御命令が送られると、クライアント画面制御部１２によって、画面制御が行われると共に、変数Ｎ＿ＣＯＮＴＲＯＬがインクリメント（＋１）される。そして、インクリメントされた変数Ｎ＿ＣＯＮＴＲＯＬが、クライアント画面制御部１２から再生部１４へ送られることによって、クライアント画面制御部１２から再生部１４へと変数Ｎ＿ＣＯＮＴＲＯＬの変更通知がなされる。
【００５３】
次に、再生部１４によって、上述したクロックから現在時刻が取得され、変数ＳＴＡＲＴ＿ＴＩＭＥが、（現在時刻）−（変数ＲＥＣＯＲＤ＿ＴＩＭＥ）で更新される（Ｓ１０８）。これによって、サーバマシン２００からの画面制御命令の遅れが補正される。その後、ステップＳ１０９の処理に移行する。
【００５４】
ステップＳ１０９では、再生部１４によって変数Ｎ＿ＣＯＮＴＲＯＬがデクリメント（−１）され（Ｓ１０９）、しかる後にステップＳ１０２に戻る。
【００５５】
上述したように、本実施の形態に係るシミュレータにおいては、上記のような作用により、サーバマシン２００からの画面制御命令の遅れを補正することができる。その結果、記録したイベントの順に、イベントに対応する画面制御命令を実行することが可能となる。
【００５６】
（他の適用例）
上述した第１の実施の形態に係るシミュレータは、以下のようにすることによって、サーバマシン２００上でマルチスレッド又はマルチプロセスで動作しているアプリケーションに対しても適用することが可能である。
【００５７】
すなわち、マルチスレッド又はマルチプロセスに対応しているサーバマシン２００は、図４及び図５に示すように、サーバ画面制御部２３を複数（例えば、サーバ画面制御部２３（＃１）とサーバ画面制御部２３（＃２））備えており、クライアントマシン１０からのイベントに対して、各サーバ画面制御部２３（サーバ画面制御部２３（＃１）及びサーバ画面制御部２３（＃２））が、それぞれが対応する画面制御命令（画面制御命令１（＃１）及び画面制御命令１（＃２））を作成してクライアントマシン１０のクライアント画面制御部１２に送信する。
【００５８】
この場合、クライアント画面制御部１２は、一つのイベントに対して生成された全て（この場合二つ）の画面制御命令（画面制御命令１（＃１）及び画面制御命令１（＃２））を受け取ると、画面制御を行うと共に、変数Ｎ＿ＣＯＮＴＲＯＬをインクリメント（＋１）し、インクリメントした変数Ｎ＿ＣＯＮＴＲＯＬを、再生部１４へ送ることによって、再生部１４へ変数Ｎ＿ＣＯＮＴＲＯＬの変更通知を行う。
【００５９】
なお、マルチスレッド又はマルチプロセスに対応しているサーバマシン２００では、複数のサーバ画面制御部２３（サーバ画面制御部２３（＃１）及びサーバ画面制御部２３（＃２））それぞれの処理内容に応じて、図４に示すように、イベント１に対してサーバ画面制御部２３（＃１）による画面制御命令１（＃１）を送信した後に、サーバ画面制御部２３（＃２）による画面制御命令１（＃２）を送信する場合や、図５に示すように、その逆に、画面制御命令１（＃２）の後に、画面制御命令１（＃１）を送信する場合もある。しかしながら、クライアント画面制御部１２は、送信されてきた画面制御命令の順序に関係なく、一つのイベントに対して生成された全ての画面制御命令を受け取った段階で、画面制御を行うと共に、変数Ｎ＿ＣＯＮＴＲＯＬをインクリメント（＋１）し、インクリメントした変数Ｎ＿ＣＯＮＴＲＯＬを、再生部１４へ送ることによって、再生部１４へと変数Ｎ＿ＣＯＮＴＲＯＬの変更通知を行う。
【００６０】
このようにすることによって、サーバマシン２００上でマルチスレッド又はマルチプロセスで動作しているアプリケーションに対しても、第１の実施の形態のシミュレータで奏される効果と同様に、記録したイベントの順に、イベントに対応する画面制御命令を実行することが可能となる。
【００６１】
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００６２】
【図１】第１の実施の形態に係るシミュレータを適用したクライアントマシンの構成例を示す機能ブロック図。
【図２】動作データのデータ構成例を示す図。
【図３】再生部によってなされるイベント再生時の動作例を示すフローチャート。
【図４】クライアントマシンと、マルチスレッド又はマルチプロセスに対応しているサーバマシンとの間におけるデータの流れを示すデータ遷移図。
【図５】クライアントマシンと、マルチスレッド又はマルチプロセスに対応しているサーバマシンとの間におけるデータの流れを示すデータ遷移図。
【図６】クライアントマシンとサーバマシンとの接続例を示すブロック図。
【図７】クライアントマシンからサーバマシンへの画面制御の流れを示すデータ遷移図。
【図８】クライアント・サーバシステムのＧＵＩ環境を模擬するシミュレータを組み込んだ従来技術によるクライアントマシンの構成例を示すブロック図。
【図９】クライアントマシンからサーバマシンへの画面制御の流れを示すデータ遷移図（イベント１の後にイベント２を行う場合）。
【図１０】クライアントマシンからサーバマシンへの画面制御の流れを示すデータ遷移図（イベント１が一時的に停止する場合）。
【符号の説明】
【００６３】
Ａ…動作データ、Ａ１…時間フィールド、Ａ２…アクションフィールド、Ａ３…タイプフィールド、１０…クライアントマシン、１１…イベント送信部、１１ａ…マウス、１１ｂ…キーボード、１２…クライアント画面制御部、１３…記録部、１４…再生部、１５…動作データ記録装置、１６…シミュレータ、１７…プログラム記憶領域、２１…イベント受信部、２２…イベント処理部、２３…サーバ画面制御部、２４…画面構成情報、３０…通信ネットワーク、１００…クライアントマシン、２００…サーバマシン
【図１】
2008026966.tif 000003
【図２】
2008026966.tif 000004
【図３】
2008026966.tif 000005
【図４】
2008026966.tif 000006
【図５】
2008026966.tif 000007
【図６】
2008026966.tif 000008
【図７】
2008026966.tif 000009
【図８】
2008026966.tif 000010
【図９】
2008026966.tif 000011
【図１０】
2008026966.tif 000012