(57)【要約】【課題】計算機ネットワームにおいて、リモート操作履歴を操作側端末に保存する方式では、被操作端末ユーザによる操作履歴の確認が容易でない。【解決手段】被操作端末に、他の端末装置からのリモート操作メッセージを受信する通信制御部２６Ａと、受信メッセージから抽出された操作入力情報をオペレーティングシステムに入力する基本制御部２０Ａと、上記操作入力情報とこれに応答した特定の端末動作をリモート操作履歴として記録する操作記録／再生制御部２５Ａとを設ける。【選択図】図２
2006277771.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して操作端末装置によりリモート操作される被操作端末装置であって、
上記操作端末装置からリモート操作情報を受信する手段と、
受信した上記リモート操作情報から操作入力情報を抽出する手段と、
上記操作入力情報に基づいて、該被操作端末装置のソフトウェアが行った処理をソフトウェア毎に操作履歴として記録する記録手段と
を有することを特徴とする被操作端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機ネットワーク用の端末装置および操作履歴記録方法に関し、更に詳しくは、ネットワークを介して接続された複数の端末装置のうちの１つが操作端末となって、表示画面共有形式で別の端末装置をリモート操作できるようにした計算機ネットワークにおけるリモート操作履歴の記録技術に関する。
【背景技術】
【０００２】
複数の端末装置（計算機）をネットワークで接続し、１つの端末（操作端末）から表示画面共有方式で別の端末（被操作端末）を遠隔操作するリモート操作型計算機ネットワークシステムについては、例えば、特開平８−２３５０９３号や特開平３−２７６３４２号などの特許公報で提案されている。
【０００３】
リモート操作型計算機ネットワークシステムでは、操作端末で行ったオペレータの入力操作が被操作端末に転送され、この入力操作に応答する形で被操作端末のアプリケーションプログラムが動作する。アプリケーションプログラムが実行された結果、被操作端末の表示画面が変化すると、これが操作端末にも反映される。従って、オペレータは、被操作端末と同一の表示画面を見ながらリモート操作を行うことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
此の種のリモート操作型計算機ネットワークシステムにおける操作履歴の記録方式として、従来、例えば、オペレータの入力操作に伴う表示画面の遷移などを示す履歴情報を操作端末側に残しておき、必要に応じて操作端末で再生することが知られている。
しかしながら、操作履歴を操作端末側に残す操作履歴記録方式では、不在中にリモート操作された被操作端末のユーザにとって、自分の端末を他人が操作したか否か、また、他人がどのような操作を行なったのかを直ちに確認することができないという問題がある。
【０００５】
また、操作履歴を操作端末側に残す方式では、例えば、企業内の情報システムにおいて、システム責任者が、ネットワークに接続された多数のユーザ端末をリモート操作によってメンテナンスする場合、システム責任者の端末装置に蓄積される操作履歴情報が膨大な量となり、その保管と参照が容易でなくなると言う問題がある。
【０００６】
尚、ファイルサーバの蓄積情報を複数の端末装置からアクセスする分散処理型ネットワークにおいては、被操作側となるファイルサーバに端末からの操作履歴が記録される。この場合、ファイルサーバに記憶される操作履歴データは、異常発生時の原因究明を目的としたものであり、例えば、特開平６−６７９５６号公報が示すように、どの端末が、どのファイル領域に、どのような操作をしたかが記録される。
【０００７】
本発明の目的は、被操作端末のユーザが自端末に対するリモート操作履歴を容易に確認できる計算機ネットワーク用の端末装置を提供することにある。
本発明の他の目的は、被操作端末のユーザがリモート操作履歴を容易に確認できる計算機ネットワーク用、特に画面共有型のリモート操作システム用の操作履歴記録方法を提供することにある。
本発明の他の目的は、リモート操作履歴を分散して蓄積することにより、操作端末における履歴データ量を低減できる計算機ネットワーク用の操作履歴記録方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、リモート操作を受ける端末装置に、リモート操作時の表示画面変化を容易に再現できるように操作履歴情報を記録する機能を設けたことを特徴とする。
更に詳述すると、本発明の端末装置は、ネットワークを介して他の端末装置からリモート操作メッセージを受信するための手段と、受信メッセージから抽出された操作入力情報をオペレーティングシステムに入力するための手段と、上記操作入力情報と該操作入力情報に応答した端末表示画面の変化をリモート操作履歴として記録する履歴記録手段とを備えたことを特徴とする。
【０００９】
また、本発明の端末装置は、ネットワークを介して他の端末装置からリモート操作入力情報を受信するための通信制御手段と、上記通信制御手段によって受信された操作入力情報をオペレーティングシステムに入力するためのリモート操作基本制御手段と、上記オペレーティングシステムからアプリケーションプログラムおよびディスプレイ制御部への供給情報と上記操作入力情報とに基づいてリモート操作履歴ファイルを作成する履歴記録手段とを備えたことを特徴とする。
本発明の１つの特徴は、上記履歴記録手段が、他の端末装置からの操作入力情報または該操作入力情報に応答した端末動作が所定の開始条件を満たした時、リモート操作履歴の記録動作を自動的に開始するようにしたことにある。
本発明の他の特徴は、上記履歴記録手段が、他の端末装置からの操作入力情報または該操作入力情報に応答した端末動作が所定の終了条件を満たした時、リモート操作履歴の記録動作を自動的に停止するようにしたことにある。但し、リモート操作履歴の記録動作を開始してから所定時間が経過した時、記録動作を停止するようにしてもよい。
【００１０】
本発明の操作履歴記録方法は、ネットワークを介して接続された複数の端末装置のうちの１つが操作端末となって、他の何れかの端末装置をリモート操作する計算機ネットワークシステムにおいて、（１）上記操作端末から被操作側の端末装置にリモート操作用メッセージを送信するステップと、（２）上記被操作側の端末装置で上記リモート操作用メッセージから操作入力情報を抽出し、上記操作入力情報に対応したプログラム動作を実行するステップと、（３）上記操作入力情報に基づいて生成されたイベント情報を操作履歴として記憶するステップと、（４）上記被操作側の端末装置で上記プログラム動作の実行結果を示すメッセージを上記操作端末に送信するステップと、（５）上記被操作側の端末装置で上記プログラム動作の実行結果を示すイベント情報を操作履歴として記憶するステップとからなることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、被操作端末にリモート操作履歴を残すことができるため、被操作端末のユーザが自端末に対して他人が行ったリモート操作の内容を容易に確認することが可能となる。また、操作履歴データがリモート操作対象となった複数の端末に分散して蓄積されるため、操作端末で蓄積すべき履歴情報量を削減することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施例を図面を参照して詳細に説明する。
図１は、本発明が適用されるリモート操作型計算機ネットワークシステムの基本的な構成を示す。
この計算機ネットワークシステムは、通信ネットワーク２００で接続された複数の計算機（端末装置）からなる。ここでは、簡単化のために、被操作側と操作側の２つの端末装置１００Ａ、１００Ｂを示す。各端末は、ディスプレイ２（２Ａ、２Ｂ）と、キーボード３（３Ａ、３Ｂ）と、マウス４（４Ａ、４Ｂ）と、通信インタフェースを備えたプロセッサ１（１Ａ、１Ｂ）とからなる。
【００１３】
これらの端末１００Ａと１００Ｂは、汎用的なパーソナルコンピュータシステムであってもよいし、特殊機能を備えたワークステーション等の専用端末であってもよい。また、通信ネットワーク２００は、企業内であればＬＡＮ（Local Area Network ）、接続端末が広域にわたる場合は、公衆電話網やＩＳＤＮ（Integrated Service Digital Network）などの通信回線が使用される。
【００１４】
企業内の情報システムでは、各部門に配置された多数の端末装置を通信ネットワークで相互接続し、例えば、特定アプリケーションにおけるテーブルパラメータやコードの変更、障害発生時における障害状態の把握と解析、障害回復操作など、一般の端末ユーザでは難しい高度のオペレータ操作が情報システム部門に所属するシステム管理責任者によるリモート操作によって解決される。
【００１５】
以下の説明では、端末１００Ａを被操作端末（エージェント端末）、端末１００Ｂを操作端末（コントローラ端末）として扱うが、実際の応用では、１つの端末で複数の端末をリモート操作することが可能であり、逆に、１つの端末が異なる複数の端末からリモート操作されてもよい。また、１つの被操作端末を別の被操作端末に接続することによって、リモート操作を複数の被操作端末に多段中継することも可能である。
【００１６】
図１において、操作端末１００Ｂのディスプレイ２Ｂには、被操作端末１００Ａのディスプレイ２Ａの表示内容と同一の内容が表示される。操作端末１００Ｂのオペレータが、ディスプレイ２Ｂ上の特定のウインドウに対してキーボード３Ｂまたはマウス４Ｂから入力操作を行うと、矢印２０１で示すように、操作入力情報が通信ネットワーク２００を介して被操作端末１００Ａに送信される。これらの操作入力情報は、被操作端末において、キーボード３Ａまたはマウス４Ａによる入力情報と同等に扱われ、被操作側のアプリケーションプログラムによる実行結果が、矢印２０２で示すように、操作端末側のディスプレイ２Ｂに反映される。
【００１７】
図２は、被操作端末１００Ａと操作端末１００Ｂのシステム構成を示す。
被操作端末１００Ａのプロセッサ１Ａには、ディスプレイ２Ａ、キーボード３Ａ、マウス４Ａおよびディスク装置５Ａが接続されている。プロセッサ１Ａは、ディスプレイ２Ａを接続するためのディスプレイドライバ１２Ａと、キーボード３Ａを接続するためのキーボードドライバ１３Ａと、マウス４Ａを接続するためのマウスドライバ１４Ａと、ソフトウエアとして、オペレーティングシステム（ＯＳ）１０Ａと、該オペレーティングシステムのもとで実行される複数種類のアプリケーション・プログラム１１とを備えている。
【００１８】
また、上記プロセッサ１Ａには、後述するリモート操作機能およびリモート操作履歴の記録機能を実現するためのソフトウエアとして、オペレーティングシステム１０Ａからディスプレイドライバ１２Ａに出力される描画データを捕捉するためのディスプレイドライバフック制御部２２Ａと、キーボードドライバ１３Ａからオペレーティングシステム１０Ａに入力されるキーボードデータを捕捉するためのキーボードフック制御部２３Ａと、マウスドライバ１４Ａからオペレーティングシステム１０Ａに入力されるマウスデータを捕捉するためのマウスフック制御部２４Ａと、オペレーティングシステム１０Ａによるアプリケーションプログラム１１の制御状態を監視するためのアプリケーションフック制御部２１Ａと、ディスク装置５Ａへの操作記録データの書き込みと記録データの読み出しを制御する操作記録再生制御部２５Ａと、通信ネットワーク２００による情報の送受信を制御するための通信制御部２６Ａと、これらの制御部を統括制御するリモート操作基本制御部２０Ａとが備わっている。
【００１９】
一方、操作端末１００Ｂのプロセッサ１Ｂは、ディスプレイ２Ｂ、キーボード３Ｂ、マウス４Ｂおよびディスク装置５Ｂと接続され、被操作端末側と同様、オペレーティングシステム１０Ｂ、ディスプレイドライバ１２Ｂ、キーボードドライバ１３Ｂ、マウスドライバ１４Ｂを備えている。また、上記プロセッサ１Ｂは、リモート操作機能およびリモート操作履歴の記録機能を実現するためのソフトウエアとして、キーボードフック制御部２３Ｂと、マウスフック制御部２４Ｂと、操作記録再生制御部２５Ｂと、通信制御部２６Ｂと、被操作端末から受信した描画データをディスプレイ２Ｂに描画するための表示制御部２７Ｂと、これらの制御部を統括制御するリモート操作基本制御部２０Ｂとを備えている。
【００２０】
図３は、操作端末１００Ｂから被操作端末１００Ａへのリモート操作入力の転送動作を示す。
操作端末１００Ｂのディスプレイ２Ｂに被操作端末１００Ａと同一の画面（ウインドウ）が表示された状態で、操作端末１００Ｂのオペレータが、画面上の特定のウインドウでキーボード３Ｂを操作した場合、キーボードフック制御部２３Ｂが、上記キーボード３Ｂからの入力データを捕捉し、これを基本制御部２０Ｂに渡す。オペレータがマウス４Ｂを操作した場合は、マウスフック制御部２４Ｂが、上記マウスからの入力データを捕捉し、基本制御部２０Ｂに渡す。これらの入力データは、基本制御部２０Ｂで所定フォーマットのメッセージに変換され、通信制御部２６Ｂを介して通信ネットワーク２００に送出され、被操作端末１００Ａに転送される。
【００２１】
被操作端末１００Ａでは、上記メッセージを通信制御部２６Ａで受信し、基本制御部２０Ａに渡す。基本制御部２０Ａは、受信メッセージから入力データを抽出し、これをオペレーティングシステム１０Ａに渡す。オペレーティングシステム１０Ａは、上記入力データを解析し、該当するアプリケーション・プログラム１１Ａにシミュレートする。アプリケーション・プログラム１１Ａは、上記リモート操作による入力データを自端末のキーボード３Ａまたはマウス４Ａからの入力データと同様に処理する。
【００２２】
操作端末１００Ｂでキーボード３Ｂから入力されたデータは、例えば、図４に示すメッセージフォーマットで被操作端末１００Ａに送信される。
３０１は送信元（操作端末）のアドレス、３０２は送信先（被操作端末）のアドレス、３０３はメッセージ（データ）の種別コード、３０４は入力操作されたキーの種別を示すコード（キーコード）、３０５はキーが押下されたか離されたかを示すキー操作フラグを含む。
【００２３】
操作端末１００Ｂでマウス３Ｂから入力されたデータは、例えば、図５に示すメッセージフォーマットで被操作端末１００Ａに送信される。
マウス入力データ用のメッセージは、送信元アドレス３０１、送信先アドレス３０２、データ種別３０３の他に、マウスの移動またはマウスボタンの操作（押す操作または離す操作）を示すフラグ３２４と、マウスが制御するポインタ（カーソル）位置のｘ座標３２５とｙ座標３２６を含む。
【００２４】
図６は、被操作端末１００Ａでアプリケーションプログラム１１Ａが実行された場合の動作を示す。
リモート入力データに応答してアプリケーションプログラム１１Ａが実行されると、実行結果がディスプレイ２Ａに反映される。この場合、表示内容を変更する描画データ４０が、アプリケーションプログラム１１Ａから、オペレーティングシステム１０Ａ、ディスプレイドライバフック制御部２２Ａを介して、ディスプレイドライバ１２Ａに出力され、ディスプレイ２Ａの表示内容が変わる。
【００２５】
ディスプレイドライバフック制御部２２Ａは、オペレーティングシステム１０Ａからディスプレイドライバ１２Ａに向かう描画データを捕捉（複写）し、基本制御部２０Ａに渡す。基本制御部２０Ａは、上記描画データを所定フォーマットのメッセージ４１に変換し、通信制御部２６Ａを介して、通信ネットワークに送信する。
【００２６】
上記メッセージ４１は、操作端末１００Ｂの通信制御部２６Ｂで受信され、基本制御部２０Ｂに送られる。基本制御部２０Ｂは、受信メッセージから描画データを抽出し、これを表示制御部２７Ｂに送る。表示制御部２７Ｂは、上記描画データをオペレーティングシステム１０Ｂを介してディスプレイドライバ１２Ｂに出力する。これによって、操作端末のディスプレイ２Ｂに、被操作端末側と同一の画面が表示される。
【００２７】
尚、被操作端末１００Ａのディスプレイドライバフック制御部２２Ａにおいて、リモート操作の開始時には全画面の描画データを捕捉し、その後は送信データ量を少なくするために表示変更部分の描画データ（差分データ）を捕捉することによって、比較的低速度の通信回線を使用した場合でも、操作端末側のディスプレイ画面２Ｂへの応答を高速化することが可能となる。
【００２８】
図７は、被操作端末１００Ａから操作端末１００Ｂに送信される描画データ用のメッセージフォーマットを示す。
描画データ用のメッセージは、送信元アドレス３０１、送信先アドレス３０２、データ種別３０３の他に、例えば、描画領域の基点を示すｘ座標４１４とｙ座標４１５、描画領域の幅４１６と高さ４１７、ビットマップ描画の開始位置を示すｘ座標４１８とｙ座標４１９、ビットマップデータ４２０を含む。
【００２９】
次に、被操作端末１００Ａで行われる操作履歴の記録方法について、図８を参照して説明する。
オペレーティングシステム１０Ａが行ったアプリケーション１１Ａの制御（起動、終了、その他）の状態変化はアプリケーションフック制御部２１Ａで捕捉され、画面の変化はディスプレイドライバフック制御部２２Ａで捕捉される。基本制御部２０Ａは、上記各フック制御部から捕捉情報を受信すると、イベントの発生元、操作履歴に残すべきイベント情報および現在時刻を操作記録制御部２５Ａに通知する。通信制御部２６Ａで受信したリモート操作入力（キーボード入力とマウス入力）も、基本制御部２０Ａによって同様に処理され、イベント発生元、イベント情報および現在時刻が操作記録制御部２５Ａに通知される。
【００３０】
操作記録制御部２５Ａは、基本制御部２０Ａから受信したイベント発生元、イベント情報および現在時刻（イベント発生時刻）をディスク装置５Ａ内の操作履歴ファイルに記録する。操作履歴ファイルが形成されるディレクトリ（またはフォルダ）の位置は、リモート操作毎に指定可能であり、必要に応じて記録データを暗号化するようにしてもよい。
【００３１】
図９は、リモート操作履歴ファイル５０の１例を示す。
リモート操作履歴ファイル５０は、イベントの発生時刻順に生成された複数のエントリ５０−１〜５０−６からなり、各エントリは、イベントの時間（発生時刻）５１と、イベント発生元５２と、イベント内容５３と、イベント詳細５４と、対象アプリケーション５５と、端末名称５６とを含む。
【００３２】
イベント発生元５２には、イベントを発生したフック制御部の名称が、例えば、「キーボード」、「マウス」、「ディスプレイ」、「アプリケーション」のように記録される。イベント内容５３には、例えば、マウスの場合「左クリック」、キーボードの場合「Ｃｔｒｌキー押下」、ディスプレイの場合「ビットマップ描画」や「文字描画」、アプリケーションの場合「起動」や「停止」のように、どのようなイベントが発生したかを示す情報が記録される。
【００３３】
イベント詳細５４には、例えば、イベント発生元がディスプレイでイベント内容が「ビットマップ描画」の場合、描画されたビットマップの内容が記録され、イベント発生元がアプリケーションでイベント内容が「起動」の場合、起動されたアプリケーションプログラムの名称が記録される。
対象アプリケーション５５には、イベントの入力または出力対象となったアプリケーションプログラム名が記録され、端末名称５６には、リモート操作した操作端末の名称が記録される。イベントが被操作端末で発生した場合は、端末名称５６は空欄になる。
【００３４】
図９に例示した操作履歴では、端末Ａの「ファイルマネージャ」で１０時３０分２５秒にマウスの左クリックが入力され(５０−１)、３０分２６秒に被操作端末で「ワードプロセッサ」が起動し（５０−２）、「ワードプロセッサ」画面が表示され（５０−３）、３１分１０秒に端末Ａのキーボードで「ワードプロセッサ」に「ｔｅｓｔ」と入力され（５０−４）、被操作端末で「ワードプロセッサ」上に「ｔｅｓｔ」と表示され（５０−５）、４０分３０秒に端末Ａで被操作端末との接続が断となった（５０−６）ことを意味している。
【００３５】
図１０は、操作記録制御部２５Ａの動作を示すフローチャートである。
操作記録制御部（操作記録制御ルーチン）２５Ａでは、先ず、操作履歴の記録開始条件判定処理１００を実行する。記録開始条件判定処理１００で開始条件を満たすイベント群の発生が確認された場合は、記録終了条件判定のためのパラメータの初期化処理１２０を実行した後、基本制御部からのイベント入力を待つ（１２５）。
【００３６】
イベントが入力されると、記録終了条件判定処理１３０を実行する。記録終了条件判定処理１３０によって、終了条件が満たされたことが確認された場合は、再度、記録開始条件判定処理１００に戻り、次のリモート操作履歴の記録に備える。終了条件が満たされていなければ、イベント記録処理１４０を実行した後、ステップ１２５に戻って、基本制御部からの次のイベント入力を待つ。
【００３７】
図１１の（Ａ）〜（Ｄ）は、記録開始条件判定処理１００で参照される記録開始条件を定義した記録開始イベントテ−ブル６０Ａ〜６０Ｄの１例を示す。
操作履歴の記録は、記録開始イベントテ−ブルで指定された特定のイベントが発生した時に開始される。記録開始イベントテ−ブルにおいて、複数のイベントによって開始条件が定義されていた場合は、これらと一致する一連のイベントが所定の順序で発生した時、開始条件が満たされたものと判断される。また、開始条件を示す複数の記録開始イベントテ−ブルが用意されていた場合は、何れかのイベントテ−ブルで開始条件が満たされた時点で、リモート操作履歴の記録が開始される。
【００３８】
図１１に示した記録開始イベントテ−ブル６０Ａは、エントリ６０Ａ−１〜６０Ａ−５が示す５つのイベントの発生を開始条件としている。各エントリは、イベント発生順序を指定するイベント番号６１と、イベント発生元６２と、イベント内容６３と、対象アプリケーション６４と、端末名称６５とからなっている。
【００３９】
イベント内容６３は、例えば、マウスの場合「左クリック」、キーボードの場合「Ｃｔｒｌキー押下」、アプリケーションの場合「起動」や「操作端末接続」など、イベントの詳細を定義する。対象アプリケーション６４は、各イベントの入力対象となったアプリケーション名を指定し、端末名称６５は、特定の端末によるリモート操作を対象とする場合に操作端末を指定する。操作端末を指定しない場合や、リモート操作に該当しないイベントについては、端末名称は空欄とする。
【００４０】
記録開始イベントテ−ブル６０Ａは、操作端末Ａから被操作端末への接続が行われ（６０Ａ−１）、操作端末Ａのキーボードで「Ｃｔｒｌ＋Ａｌｔ＋Ｄｅｌ」が入力され（６０Ａ−２）、アプリケーション「ファイルマネージャ」を起動され（６０Ａ−３）、「ファイルマネージャ」の「ファイル共有」プロパティ画面が表示され（６０Ａ−４）、その後、５秒経過した（６０Ａ−５）場合に、操作記録を開始することを定義している。上記テーブル６０Ａでは複数のイベントを定義したが、１つのイベントだけを記録開始条件としてもよい。
【００４１】
記録開始イベントテーブル６０Ｂ、６０Ｃ、６０Ｄは、記録開始条件の他の例を示す。テーブル６０Ｂは、操作端末Ａと被操作端末を接続した後、「ファイルマネージャ」が起動されることを条件としている。テーブル６０Ｃと６０Ｄは、操作端末Ａと被操作端末を接続した後、「ワードプロセッサ」が起動されること、「ユーザＢがログオン」した後、「表計算」が起動されることを条件としている。このように複数の記録開始イベントテーブルを用意した場合は、何れかの開始条件が成立した時、記録処理が開始される。
【００４２】
図１２の（Ａ）〜（Ｄ）は、記録終了条件判定処理１３０で参照される操作履歴の記録終了条件を定義した記録終了イベントテ−ブル７０Ａ〜７０Ｄの１例を示す。
記録終了イベントテ−ブル７０Ａ〜７０Ｄは、イベントを特定する１つあるいは複数のエントリによって記録終了条件を定義している。各エントリは、上述した記録開始イベントテ−ブル６０Ａ〜６０Ｄと同様、イベント番号７１と、イベント発生元７２と、イベント内容７３と、対象アプリケーション７４と、端末名称７５とからなる。
【００４３】
例えば、記録終了イベントテ−ブル７０Ａは、アプリケーションプログラムである「ファイルマネージャ」が終了し（７０Ａ−１）、操作端末Ａのキーボードで「Ｃｔｒｌ＋Ａｌｔ＋Ｄｅｌ」が入力され（７０Ａ−２）、操作端末Ａとの接続が断となった（７０Ａ−３）場合に、操作記録を終了することを定義している。
また、記録終了イベントテ−ブル７０Ｂ、７０Ｃ、７０Ｄは、それぞれ「ファイルマネージャ」の終了、「ログオフ」、および「記録開始から５分経過」を記録終了条件として定義している。
このように複数の記録終了イベントテーブルを用意した場合は、いずれかの終了条件を満たすイベントが発生した時点で、リモート操作履歴の記録が終了する。
【００４４】
記録開始条件判定処理１００では、図１３に示すテーブルカウンタ８１とイベントカウンタ８２を使用する。
テーブルカウンタ８１は、図１１に示したように複数の記録開始イベントテーブル６０が用意されていた場合に、チェック対象テーブルを特定するためのパラメータＴＣの値を示す。また、イベントカウンタ８２は、記録開始イベントテーブル６０と対応した複数のカウンタ領域８２−１〜８２−ｎからなり、各記録開始イベントテーブルにおけるチェック対象エントリを指定するためのパラメータＥＣの値を示す。
【００４５】
以下の説明では、パラメータＴＣが指定する記録開始イベントテーブルをテーブルＴＣと呼び、テーブルＴＣ用のイベントカウンタの値をＥＣ［ＴＣ］、テーブルＴＣにおける第ＥＣ番目のエントリに定義されたイベントをテーブルイベントＥＣ［ＴＣ］と呼ぶ。
【００４６】
図１４は、記録開始条件判定処理１００の詳細を示す。
記録開始条件判定処理１００では、全ての記録開始イベントテーブルを読み込み（１０１）、各イベントカウンタ８２が示すパラメータＥＣの値を初期化する（１０２）。次に、テーブルカウンタが示すパラメータＴＣの値を初期化し（１０３）、基本制御部２０Ａからのイベント入力を待つ（１０４）。イベントが入力されると、該イベント（以下、発生イベントと言う）をテーブルイベントＥＣ［ＴＣ］と比較する（１０５）。
【００４７】
発生イベントとテーブルイベントＥＣ［ＴＣ］とが不一致の場合、イベントカウンタの値ＥＣ［ＴＣ］を初期化し（１０６）、テーブルカウンタの値ＴＣをインクリメント（１０７）した後、テーブルカウンタの値ＴＣが記録開始イベントテーブルの個数ｍａｘを超えたか否かを判定する（１０８）。もし、ＴＣの値がｍａｘを超えていれば、ステップ１０３に戻り、テーブルカウンタの値ＴＣを初期化した後、次のイベントを待つ。ＴＣの値がｍａｘを超えていなければ、ステップ１０５に戻り、発生イベントと次のテーブルのイベントＥＣ［ＴＣ］とを比較する。
【００４８】
発生イベントがテーブルイベントＥＣ［ＴＣ］と一致した場合は、イベントカウンタの値ＥＣ［ＴＣ］をインクリメントし（１０９）、更新されたイベントカウンタ値ＥＣ［ＴＣ］とテーブルＴＣのエントリ個数ｍａｘ［ＴＣ］とを比較する（１１０）。もし、ＥＣ［ＴＣ］の値がｍａｘ［ＴＣ］を超えた場合、テーブルＴＣで定義された記録開始条件が満たされたことを意味するため、記録開始条件判定処理１００を終了する。 ＥＣ［ＴＣ］の値がｍａｘ［ＴＣ］を超えていなければ、ステップ１０７以降の処理を繰り返す。
【００４９】
後述する記録終了条件判定処理１３０でも、チェック対象となる記録終了イベントテーブル７０を特定するためのパラメータと、各記録終了イベントテーブル内でチェック対象エントリを指定するためのパラメータが必要となる。記録終了条件判定処理１３０は、記録開始条件判定処理１００が終ってから実行されるため、これらのパラメータの値を示すために、図１３に示したテーブルカウンタ８１とイベントカウンタ８２を使用することができる。
【００５０】
図１５は、記録終了判定のための初期化処理１２０の詳細を示す。
この初期化処理１２０では、全ての記録終了イベントテーブル７０を読み込み（１２１）、各イベントカウンタ８２が示すパラメータＥＣの値を初期化する（１２２）。
【００５１】
図１６は、記録終了条件判定処理１３０の詳細を示す。
記録終了条件判定処理１３０でも、パラメータＴＣが指定する記録終了イベントテーブルをテーブルＴＣと呼び、テーブルＴＣ用のイベントカウンタの値をＥＣ［ＴＣ］、テーブルＴＣにおける第ＥＣ番目のエントリに定義されたイベントをテーブルイベントＥＣ［ＴＣ］と呼ぶことにする。
【００５２】
記録終了条件判定処理１３０では、テーブルカウンタが示すパラメータＴＣの値を初期化し（１３１）、発生イベントとテーブルイベントＥＣ［ＴＣ］とを比較する（１３２）。
発生イベントとテーブルイベントＥＣ［ＴＣ］とが不一致の場合、イベントカウンタの値ＥＣ［ＴＣ］を初期化し（１３３）、テーブルカウンタの値ＴＣをインクリメント（１３４）した後、テーブルカウンタの値ＴＣが記録開始イベントテーブルの個数ｍａｘを超えたか否かを判定する（１３５）。
もし、ＴＣの値がｍａｘを超えていれば、全てのイベントテーブルでチェックを終えたことを意味しているため、この記録終了条件判定処理を終了して、記録処理１４０を実行する。ＴＣの値がｍａｘを超えていなければ、ステップ１３２に戻り、発生イベントと次のテーブルのイベントＥＣ［ＴＣ］とを比較する。
【００５３】
発生イベントがテーブルイベントＥＣ［ＴＣ］と一致した場合は、イベントカウンタの値ＥＣ［ＴＣ］をインクリメントし（１３６）、更新されたイベントカウンタ値ＥＣ［ＴＣ］とテーブルＴＣのエントリ個数ｍａｘ［ＴＣ］とを比較する（１３７）。もし、ＥＣ［ＴＣ］の値がｍａｘ［ＴＣ］を超えた場合、テーブルＴＣで定義された記録終了条件が満たされたことを意味するため、この記録開始条件判定処理を終了し、図１０の記録開始条件判定処理１００に戻る。 ＥＣ［ＴＣ］の値がｍａｘ［ＴＣ］を超えていなければ、ステップ１３４以降の処理を繰り返す。
【００５４】
図１７は、記録処理１４０の詳細を示す。
記録処理では、各イベントの発生元を判定し（１４１）、キーボードイベントであれば、キーボードイベント記録（１４２）、マウスイベントであればマウスイベント記録（１４３）、ディスプレイイベントであればディスプレイイベント記録（１４４）、アプリケーションイベントであれば、アプリケーションイベント記録（１４５）を行う。
【００５５】
上記キーボードイベント記録（１４２）によって、例えば、図９に示したエントリ５０−４が記録され、マウスイベント記録（１４３）によってエントリ５０−１が、ディスプレイイベント記録（１４４）によってエントリ５０−３と５０−５が、アプリケーションイベント記録（１４５）によってエントリ５０−２と５０−６が記録される。
【００５６】
次に、ディスク装置５Ａに形成されたリモート操作履歴ファイル５０からの操作履歴データ再生処理手順について説明する。
図１８は、被操作装置１００Ａにおける操作履歴の再生データの流れを示す。
操作記録／再生制御部２５Ａは、ディスク装置５Ａの操作履歴ファイル５０から記録データを取り出し、基本制御部２０Ａに送る。基本制御部２０Ａは、オペレーティングシステム１０Ａおよびディスプレイドライバ１２Ａを介して、記録データをディスプレイ２Ａに出力する。
【００５７】
図１９は、操作記録／再生制御部２５Ａにおける再生制御ルーチン１５０のフローチャートを示す。
再生制御ルーチン１５０では、ユーザからのイベント再生指令を待ち（１５１）、例えば、エンターキー操作等で読み出し指令を受けると、その都度、カウントパラメータｉ（初期値＝０）をインクリメントしながら、操作履歴ファイル５０から第ｉ番目の記録イベント（エントリ５０−ｉ）を読み出す（１５２）。読み出すべき記録イベントが無くなった場合は、再生終了を示すメッセージを表示して（１５４）、このルーチンを終了する。
【００５８】
操作履歴ファイル５０から読み出した記録イベントについて、イベント発生元を判定し、発生元別の処理に振り分ける（１５５）。イベントがキーボードイベントであれば、キーボードイベント再生（１５６）、マウスイベントであればマウスイベント再生（１５７）、ディスプレイイベントであればディスプレイイベント再生（１５８）、アプリケーションイベントであればアプリケーション再生（１５９）を実行し、１つのイベントの再生が完了すると、ステップ１５１に戻って、次の読み出し指令を待つ。
【００５９】
例えば、図９に示した操作履歴において、ディスプレイ画面に注目しているユーザにとって重要となるイベントは、ディスプレイイベント５０−３と５０−５である。これらのイベントは、ディスプレイイベント再生（１５８）で処理され、イベント５０−３が読み出された時、「ワードプロセッサ」の画面が表示され、イベント５０−５が読み出された時、「ワードプロセッサ」上に「ｔｅｓｔ」の文字が表示される。
【００６０】
上記ディスプレイイベント５０−３は、マウスイベント５０−１と、該マウスイベントの実行に伴うアプリケーションイベント５０−２の実行によって発生している。また、ディスプレイイベント５０−５は、キーボードイベント５０−４の実行によって発生している。この場合、キーボードイベント５０−４を処理するキーボードイベント再生（１５６）と、マウスイベント５０−１を処理するマウスイベント再生（１５７）と、アプリケーションイベント５０−２を処理するアプリケーション再生（１５９）では、それぞれのイベントを実際に実行する必要はない。
【００６１】
従って、例えば、操作履歴ファイル５０から読み出された各イベント（エントリ５０−ｉ）に含まれるデータ項目５１〜５６を所定フォーマットの文字列に変換し、これを表示することによって、ユーザにリモート操作の内容とアプリケーション・プログラムの状態を教えるようにすればよい。また、ユーザからの指定に応じて、操作履歴データのうち特定の入力操作、例えば、マウス操作に伴うイベントのみを再生するようにしてもよい。
【００６２】
図２０は、上述した操作履歴再生のために用意されるグラフィカルユーザインタフェース（ＧＵＩ）画面９０の１例を示す。
ここに例示したＧＵＩ画面９０では、操作履歴ファイル５０のファイル名９１と記録時間帯９２が表示してあり、ユーザが選択ボタン９３で再生したいファイルを指定し、選択ボタン９４〜９６によって再生すべきイベント種類を指定できるようになっている。
【００６３】
これらの選択ボタンによってファイルとイベント種類を指定した後、ユーザが画面再生ボタン９７をクリックすると、前述した再生制御ルーチン１５０が起動される。再生制御ルーチン１５０が終了した時、更に別のファイルで操作履歴を再生したい場合は、上記と同様の操作を繰り返せばよい。また、操作履歴の再生を終了したい場合は、キャンセルボタン９８をクリックすればよい。
【００６４】
以上、被操作端末１００Ａが備えるリモート操作履歴の記録機能について説明したが、操作端末１００Ｂ側では、操作記録／再生制御部２５Ｂによって、従来と同様の手法で操作履歴を記録することができる。
尚、操作端末側と被操作端末側で、それぞれのユーザニーズに応じた履歴情報を蓄積すれば、各端末装置のディスク装置に蓄積される履歴データ量を低減できる。従って、例えば、操作端末側のディスク５Ｂには、リモート操作対象となったアプリケーションプログラムに対する入力操作画面の履歴を記録し、被操作端末側のディスク５Ａには、デスクトップ画面全体に対する操作履歴を記録するようにしてもよい。
【００６５】
以上の実施例では、予め設定された記録開始条件が満たされた時、リモート操作履歴の記録動作を開始し、予め設定された記録終了条件が満たされた時、記録動作を停止したが、蓄積データ量を削減するために、必要に応じて記録休止期間を設け、履歴データの記録を間欠的に行うようにしてもよい。この場合、記録動作の再開の都度、表示画面の全体情報を捕捉することによって、画面変化の不連続性を補うようにすればよい。
【図面の簡単な説明】
【００６６】
【図１】本発明が適用されるリモート操作型計算機ネットワークシステムの基本的な構成を示す図。
【図２】被操作端末１００Ａと操作端末１００Ｂのシステム構成を示す図。
【図３】操作端末１００Ｂから被操作端末１００Ａへのリモート操作入力の転送動作を示す図。
【図４】操作端末１００Ｂから送信されるキーボードデータ用のメッセージフォーマットを示す図。
【図５】操作端末１００Ｂから送信されるマウスデータ用のメッセージフォーマットを示す図。
【図６】被操作端末１００Ａでアプリケーションプログラムが実行された場合の動作を示す図。
【図７】被操作端末１００Ａから操作端末１００Ｂに送信される描画データ用のメッセージフォーマットを示す図。
【図８】被操作端末１００Ａにおける操作履歴の記録動作を示す図。
【図９】操作履歴ファイル５０の１例を示す図。
【図１０】操作記録制御部２５Ａの動作を示すフローチャート。
【図１１】記録開始イベントテーブル６０の１例を示す図。
【図１２】記録終了イベントテーブル７０の１例を示す図。
【図１３】操作記録制御部で使用するテーブルカウンタ８１とイベントカウンタ８２を示す図。
【図１４】記録開始条件判定処理１００の詳細を示すフローチャート。
【図１５】記録終了条件判定初期化処理１２０の詳細を示すフローチャート。
【図１６】記録終了条件判定処理１３０の詳細を示すフローチャート。
【図１７】記録処理１４０の詳細を示すフローチャート。
【図１８】操作記録の再生動作を説明するための図。
【図１９】再生制御のフローチャート
【図２０】操作記録再生のためのユーザインタフェース画面の１例を示す図。
【符号の説明】
【００６７】
１００Ａ：被操作端末、１００Ｂ：操作端末、１Ａ、１Ｂ：プロセッサ、２Ａ、２Ｂ：ディスプレイ、３Ａ、３Ｂ：キーボード、
４Ａ、４Ｂ：マウス、５Ａ、５Ｂ：ディスク装置、
１０Ａ、１０Ｂ：オペレーションシステム、
１１：アプリケーション・プログラム、
１２Ａ、１２Ｂ：ディスプレイドライバ、
１３Ａ、１３Ｂ：キーボードドライバ、
１４Ａ、１４Ｂ：マウスドライバ、
２０Ａ、２０Ｂ：リモート操作基本制御部、
２１Ａ：アプリケーションフック制御部、
２２Ａ、２２Ｂ：ディスプレイドライバフック制御部、
２３Ａ、２３Ｂ：キーボードフック制御部、
２４Ａ、２４Ｂ：マウスフック制御部、
２５Ａ、２５Ｂ：操作記録／再生制御部、
２６Ａ、２６Ｂ：通信制御部、５０：操作履歴ファイル、
６０：記録開始イベントテーブル、７０：記録終了イベントテーブル。
【図１】
2006277771.tif 000003
【図２】
2006277771.tif 000004
【図３】
2006277771.tif 000005
【図４】
2006277771.tif 000006
【図５】
2006277771.tif 000007
【図６】
2006277771.tif 000008
【図７】
2006277771.tif 000009
【図８】
2006277771.tif 000010
【図９】
2006277771.tif 000011
【図１０】
2006277771.tif 000012
【図１１】
2006277771.tif 000013
【図１２】
2006277771.tif 000014
【図１３】
2006277771.tif 000015
【図１４】
2006277771.tif 000016
【図１５】
2006277771.tif 000017
【図１６】
2006277771.tif 000018
【図１７】
2006277771.tif 000019
【図１８】
2006277771.tif 000020
【図１９】
2006277771.tif 000021
【図２０】
2006277771.tif 000022