(57)【要約】【課題】デバッグ作業の効率化を図ること。【解決手段】 画像形成装置におけるオペレーションパネルで行われたキー操作を再生するキー操作再生方法であって、前記画像形成装置における保存データ取得手段が、前記オペレーションパネルに対するキー操作の経時的な複数のキーイベント情報を含むキー履歴データを格納した記憶手段から、前記キー履歴データを取得する保存データ取得ステップと、前記画像形成装置における再生手段が、前記保存データ取得手段により取得したキー履歴データに基づいて前記キーイベント情報を含む再生情報を生成し、前記再生情報を前記アプリケーションプロセスに送信してキー操作を再生する再生ステップと、を含む。【選択図】図１３
2006221671.tif 000002
【特許請求の範囲】
【請求項１】
オペレーションパネルと、画像形成にかかる処理を実行するアプリケーションプロセスとして動作するアプリケーションと、オペレーションパネルで行われたキー操作をキーイベント情報として受信し、当該キーイベント情報をプロセス間通信により前記アプリケーションプロセスに送信するキー操作送受信プロセスとして動作するサービスプログラムと、を備えた画像形成装置において、前記オペレーションパネルで行われたキー操作を再生するキー操作再生方法であって、
前記画像形成装置における保存データ取得手段が、前記オペレーションパネルに対するキー操作の経時的な複数のキーイベント情報を含むキー履歴データを格納した記憶手段から、前記キー履歴データを取得する保存データ取得ステップと、
前記画像形成装置における再生手段が、前記保存データ取得手段により取得したキー履歴データに基づいて前記キーイベント情報を含む再生情報を生成し、前記再生情報を前記アプリケーションプロセスに送信してキー操作を再生する再生ステップと、
を含んだことを特徴とするキー操作再生方法。
【請求項２】
前記保存データ取得ステップにおいて、前記保存データ取得手段は、時刻情報が付加されたキーイベント情報を含むキー履歴データを取得し、
前記再生ステップにおいて、前記再生手段は、前記時刻情報に基づいた間隔で、前記再生情報を前記アプリケーションプロセスに送信することを特徴とする請求項１に記載のキー操作再生方法。
【請求項３】
前記保存データ取得ステップにおいて、前記保存データ取得手段は、前記オペレーションパネルに出力した複数の経時的な描画情報を含む描画履歴データを前記記憶手段から取得し、
前記再生ステップにおいて、前記再生手段は、再生されたキー操作により前記アプリケーションプロセスから送信された描画情報と前記保存データ取得ステップにより取得した描画履歴データの描画情報とを比較し、一致していない場合にはその旨をユーザに通知することを特徴とする請求項１または２に記載のキー操作再生方法。
【請求項４】
前記再生ステップにおいて、前記再生手段は、前記再生情報を、前記キー操作送受信プロセスを介して送信することを特徴とする請求項１ないし３のうちいずれか一つに記載のキー操作再生方法。
【請求項５】
前記再生ステップにおいて、前記再生手段は、キー操作の再生要求があったときに、前記キー操作送受信プロセスに対して、前記画像形成装置を前記再生情報のみを受け付ける再生モードに切り替えるモード切替関数の呼び出しを行うことを特徴とする請求項４に記載のキー操作再生方法。
【請求項６】
前記画像形成装置が、前記キー操作の再生要求を、前記オペレーションパネルから予め定めた複数のキーの入力があったときに発生するステップを有する請求項５に記載のキー操作再生方法。
【請求項７】
キー操作の再生要求があったときに、前記キー操作送受信プロセスによって、前記再生ステップを実行する再生手段としてのプロセスを起動させる起動関数を実行する起動ステップと、
を含んだことを特徴とする請求項４または５に記載のキー操作再生方法。
【請求項８】
前記画像形成装置が、キー操作の再生処理が終了したときに、前記キー操作送受信プロセスに対し、停止要求通知を行う通知ステップと、
前記キー操作送受信プロセスが前記停止要求通知を受信したときに、前記再生ステップを実行する再生手段としてのプロセスを終了させる停止ステップと、
をさらに含んだことを特徴とする請求項７に記載のキー操作再生方法。
【請求項９】
請求項１ないし８のうちいずれか一つに記載されたキー操作再生方法における各ステップを前記画像形成装置に実行させるプログラム。
【請求項１０】
オペレーションパネルと、画像形成にかかる処理を実行するアプリケーションプロセスとして動作するアプリケーションと、オペレーションパネルで行われたキー操作をキーイベント情報として受信し、当該キーイベント情報をプロセス間通信により前記アプリケーションプロセスに送信するキー操作送受信プロセスとして動作するサービスプログラムと、を備えた画像形成装置であって、
前記キー操作に対応するキーイベント情報を、キー履歴データとして格納した記憶手段と、
前記キー履歴データに基づいて前記キーイベント情報を含む再生情報を生成し、前記再生情報を前記アプリケーションプロセスに送信してキー操作を再生する再生手段と、
を備えたことを特徴とする画像形成装置。
【請求項１１】
前記キー履歴データは、時刻情報が付加されたキーイベント情報を含むものであり、
前記再生手段は、前記時刻情報に基づいた間隔で、前記再生情報を前記アプリケーションプロセスに送信することを特徴とする請求項１０に記載の画像形成装置。
【請求項１２】
前記記憶手段は、さらに前記オペレーションパネルに出力した描画情報を、描画履歴データとして格納したものであり、
前記再生手段は、再生されたキー操作により前記アプリケーションプロセスから送信された描画情報と前記描画履歴データの描画情報とを比較し、一致していない場合にはその旨をユーザに通知することを特徴とする請求項１０または１１に記載の画像形成装置。
【請求項１３】
前記再生手段は、前記再生情報を前記キー操作送受信プロセスを介して送信することを特徴とする請求項１０ないし１２のうちいずれか一つに記載の画像形成装置。
【請求項１４】
前記キー操作送受信プロセスとして動作するサービスプログラムは、前記画像形成装置を、前記再生手段から送信された再生情報のみを受け付ける再生モードに切り替えるモード切替関数を定義しており、
前記再生手段は、キー操作の再生要求があったときに、前記キー操作送受信プロセスに対して、前記モード切替関数の呼び出しを行うことを特徴とする請求項１３に記載の画像形成装置。
【請求項１５】
前記オペレーションパネルから予め定めた複数のキーの入力があったときに前記キー操作の再生要求を発生させる手段を有する請求項１４に記載の画像形成装置。
【請求項１６】
前記キー操作送受信プロセスとして動作するサービスプログラムは、前記再生手段のプロセスを起動する起動関数を定義しており、前記キー操作送受信プロセスは、キー操作の再生要求があったときに、前記起動関数を実行することを特徴とする請求項１３または１４に記載の画像形成装置。
【請求項１７】
前記再生手段は、キー操作の再生処理が終了したときに、前記キー操作送受信プロセスに対し、停止要求通知を行い、前記キー操作送受信プロセスは、前記停止要求通知を受信したときに、前記再生手段のプロセスを終了させることを特徴とする請求項１６に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プリンタ、コピーまたはファクシミリなどの画像形成処理にかかるユーザサービスを行う画像形成装置をデバッグする際に、オペレーションパネルからのユーザのキー操作を監視するキー操作監視方法、オペレーションパネルに対する描画情報を取得する描画情報取得方法、オペレーションパネルのキー操作を再現するキー操作再生方法、これらの方法をコンピュータに実行させるプログラムおよびそのようなキー操作監視方法、描画情報取得方法、キー操作再生方法を実行することができる画像形成装置に関する。
【背景技術】
【０００２】
近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、「複合機」という。）が一般的に知られている。この複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する３種類のソフトウェアを設け、ソフトウェアの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【０００３】
このような複合機では、オペレーションパネルの表示部に描画データとして表示した各種キーをユーザが押下することにより、プリンタ、コピー、ファクシミリ、スキャナなどのユーザサービスをユーザのキー操作に応じて提供するようになっている。このため、複合機の開発段階において、ユーザのキー操作に応じた動作が正常に機能するか否かのデバッグ作業が重要な位置づけを帯びてくる。
【特許文献１】特開２００２−２０７３９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の複合機では、ユーザのオペレーションパネルからのキー操作と、キー操作による動作とをデバッグするための機能は設けられていなかった。これは、従来の複合機は、その内部にプリンタ、コピー、スキャナおよびファクシミリ装置に対応する機能単位のソフトウェアをそれぞれ別個に設けた単純な構成となっているため、ユーザのキー操作を監視して各機能の動作確認を行わなくても、各機能単位のソフトウェアごとにデバッグ作業を行うことで、十分な品質を維持することができるためである。
【０００５】
ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置（複合機）を発明した。この画像形成装置によれば、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。
【０００６】
このような複合機では、アプリケーションの少なくとも２つが共通的に必要とするサービスを提供するコントロールサービスを有し、しかも多数のソフトウェアが複雑に絡み合って動作するという特徴的な構成となっているため、各ソフトウェアごとにデバッグ作業を行うだけでは、ユーザのキー操作に応じた動作が正常に実現されているか否かを判断することが困難となるという問題がある。特に、ユーザのキー操作による動作中に障害が発生した場合に、障害のあるソフトウェアの特定が困難となり、複合機のデバッグ作業に多大な労力を要するという問題がある。
【０００７】
この発明は上記に鑑みてなされたもので、デバッグ作業の効率化を図ることができるキー操作監視方法、描画情報取得方法、キー操作再生方法、これらの方法をコンピュータで実行するためのプログラムおよび画像形成装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明は、オペレーションパネルと、画像形成にかかる処理を実行するアプリケーションプロセスとして動作するアプリケーションと、オペレーションパネルで行われたキー操作をキーイベント情報として受信し、当該キーイベント情報をプロセス間通信により前記アプリケーションプロセスに送信するキー操作送受信プロセスとして動作するサービスプログラムと、を備えた画像形成装置において、前記オペレーションパネルで行われたキー操作を再生するキー操作再生方法であって、前記画像形成装置における保存データ取得手段が、前記オペレーションパネルに対するキー操作の経時的な複数のキーイベント情報を含むキー履歴データを格納した記憶手段から、前記キー履歴データを取得する保存データ取得ステップと、前記画像形成装置における再生手段が、前記保存データ取得手段により取得したキー履歴データに基づいて前記キーイベント情報を含む再生情報を生成し、前記再生情報を前記アプリケーションプロセスに送信してキー操作を再生する再生ステップと、を含んだことを特徴とするキー操作再生方法として構成できる。
【０００９】
この発明によれば、オペレーションパネルに対するキー操作の経時的な複数のキーイベント情報を含むキー履歴データを格納した記憶手段からキー履歴データを取得する保存データ取得ステップと、保存データ取得ステップにより取得したキー履歴データに基づいてキーイベント情報を含む再生情報を生成し、再生情報を前記アプリケーションに送信してキー操作を再生する再生ステップとを含んだことで、特定のキー操作の再生を繰り返し実行して評価する際に、操作の再現および自動化を容易に行うことができ、デバッグ作業効率および評価効率の向上を図ることができる。
【００１０】
また、前記保存データ取得ステップにおいて、前記保存データ取得手段は、時刻情報が付加されたキーイベント情報を含むキー履歴データを取得し、前記再生ステップにおいて、前記再生手段は、前記時刻情報に基づいた間隔で、前記再生情報を前記アプリケーションプロセスに送信することとしてもよい。
【００１１】
この発明によれば、保存データ取得ステップが時刻情報が付加されたキーイベント情報を含むキー履歴データを取得し、再生ステップが時刻情報に基づいた間隔で再生情報をアプリケーションに送信することで、一連のキー操作を実際にユーザが行ったキー操作の間隔で自動的に再生することができ、デバッグ作業効率および評価効率のさらなる向上を図ることができる。
【００１２】
また、前記保存データ取得ステップにおいて、前記保存データ取得手段は、前記オペレーションパネルに出力した複数の経時的な描画情報を含む描画履歴データを前記記憶手段から取得し、前記再生ステップにおいて、前記再生手段は、再生されたキー操作により前記アプリケーションプロセスから送信された描画情報と前記保存データ取得ステップにより取得した描画履歴データの描画情報とを比較し、一致していない場合にはその旨をユーザに通知することとしてもよい。
【００１３】
この発明によれば、保存データ取得ステップがオペレーションパネルに出力した複数の経時的な描画情報を含む描画履歴データを記憶手段から取得し、再生ステップが再生されたキー操作によりアプリケーションから送信された描画情報と保存データ取得ステップにより取得した描画履歴データの描画情報とを比較し、一致していない場合にはその旨をユーザに通知することで、アプリケーションがオペレーションパネルに表示する描画情報が正常か否かを自動的に判断することができ、デバッグ効率および評価効率をさらに向上することができる。
【００１４】
また、前記再生ステップにおいて、前記再生手段は、前記再生情報を、前記キー操作送受信プロセスを介して送信することとしてもよい。
【００１５】
この発明によれば、キー操作の再生をより実際の動作に適合させてデバッグ作業を行うことができる。
【００１６】
また、前記再生ステップにおいて、前記再生手段は、キー操作の再生要求があったときに、前記キー操作送受信プロセスに対して、前記画像形成装置を前記再生情報のみを受け付ける再生モードに切り替えるモード切替関数の呼び出しを行うこととしてもよい。
【００１７】
この発明によれば、再生ステップがキー操作の再生要求があったときに、キー操作送受信プロセスに対して再生情報のみを受け付ける再生モードに切り替えるモード切替関数の呼び出しを行うことで、関数呼び出しにより自動的に再生モードに移行するので、キー操作再生に不要なオペレーションパネルからのキーイベントの入力を阻止することができる。
【００１８】
上記キー操作再生方法において、前記キー操作の再生要求を、前記オペレーションパネルから予め定めた複数のキーの入力があったときに発生させることとしてもよい。
【００１９】
この発明によれば、複数のキーを入力することにより、再生モードに移行することができる。
【００２０】
また、キー操作の再生要求があったときに、前記キー操作送受信プロセスによって、前記再生ステップを実行する再生手段としてのプロセスを起動させる起動関数を実行する起動ステップと、を含むこととしてもよい。
【００２１】
この発明によれば、キー操作の再生要求があったときにキー操作送受信プロセスによって再生ステップを実行するプロセスを起動させる起動関数を実行する起動ステップを含んだことで、キー操作再生処理を行う際に画像形成装置を再起動させる必要がなくなり、デバッグ作業時のユーザビリティを向上させることができる。
【００２２】
また、前記画像形成装置が、キー操作の再生処理が終了したときに、前記キー操作送受信プロセスに対し、停止要求通知を行う通知ステップと、前記キー操作送受信プロセスが前記停止要求通知を受信したときに、前記再生ステップを実行する再生手段としてのプロセスを終了させる停止ステップと、をさらに含んでもよい。
【００２３】
この発明によれば、キー操作の再生処理が終了したときにキー操作送受信プロセスに対し、停止要求通知を行う通知ステップと、キー操作送受信プロセスが前記停止要求通知を受信したときに再生ステップを実行するプロセスを終了させる停止ステップとを含んだことで、キー操作再生処理終了時に、自動的にキー監視ステップを実行するプロセスを終了させることができ、デバッグ作業時のユーザビリティを向上させることができる。
【００２４】
また、本発明は、上記キー操作再生方法における各ステップををコンピュータに実行させるプログラムとして構成することもできる。
【００２５】
また、本発明は、オペレーションパネルと、画像形成にかかる処理を実行するアプリケーションプロセスとして動作するアプリケーションと、オペレーションパネルで行われたキー操作をキーイベント情報として受信し、当該キーイベント情報をプロセス間通信により前記アプリケーションプロセスに送信するキー操作送受信プロセスとして動作するサービスプログラムと、を備えた画像形成装置であって、前記キー操作に対応するキーイベント情報を、キー履歴データとして格納した記憶手段と、前記キー履歴データに基づいて前記キーイベント情報を含む再生情報を生成し、前記再生情報を前記アプリケーションプロセスに送信してキー操作を再生する再生手段と、を備えたことを特徴とする画像形成装置として構成してもよい。
【００２６】
この発明によれば、キー操作に対応するキーイベント情報をキー履歴データとして格納した記憶手段と、キー履歴データに基づいてキーイベント情報を含む再生情報を生成し、再生情報を前記アプリケーションに送信してキー操作を再生する再生手段とを備えたことで、特定のキー操作の再生を繰り返し実行して評価する際に、操作の再現性および自動化を容易に行うことができ、デバッグ作業効率および評価効率の向上を図ることができる。
【００２７】
前記キー履歴データは、時刻情報が付加されたキーイベント情報を含むものであり、前記再生手段は、前記時刻情報に基づいた間隔で、前記再生情報を前記アプリケーションプロセスに送信することとしてもよい。
【００２８】
この発明によれば、キー履歴データが時刻情報が付加されたキーイベント情報を含み、再生手段が時刻情報に基づいた間隔で再生情報を送信することで、一連のキー操作を実際にユーザが行ったキー操作の間隔で自動的に再生することができ、デバッグ作業効率および評価効率のさらなる向上を図ることができる。
【００２９】
また、前記記憶手段は、さらに前記オペレーションパネルに出力した描画情報を、描画履歴データとして格納したものであり、
前記再生手段は、再生されたキー操作により前記アプリケーションプロセスから送信された描画情報と前記描画履歴データの描画情報とを比較し、一致していない場合にはその旨をユーザに通知することとしてもよい。
【００３０】
この発明によれば、記憶手段がさらにオペレーションパネルに出力した描画情報を描画履歴データとして格納したものであり、保存データ取得手段が記憶手段に格納された描画履歴データを取得し、再生手段が再生されたキー操作によりアプリケーションから送信された描画情報と描画履歴データの描画情報とを比較し、一致していない場合にはその旨をユーザに通知することで、キー操作再生処理によりアプリケーションがオペレーションパネルに表示する描画情報が正常か否かを自動的に判断することができ、デバッグ効率および評価効率をさらに向上することができる。
【００３１】
また、前記再生手段は、前記再生情報を前記キー操作送受信プロセスを介して送信することとしてもよい。
【００３２】
この発明によれば、キー操作の再生をより実際の動作に適合させてデバッグ作業を行うことができる。
【００３３】
また、前記キー操作送受信プロセスとして動作するサービスプログラムは、前記画像形成装置を、前記再生手段から送信された再生情報のみを受け付ける再生モードに切り替えるモード切替関数を定義しており、前記再生手段は、キー操作の再生要求があったときに、前記キー操作送受信プロセスに対して、前記モード切替関数の呼び出しを行うこととしｔもよい。
【００３４】
この発明によれば、前記キー操作送受信プロセスとして動作するサービスプログラムが再生手段から送信された再生情報のみを受け付ける再生モードに切り替えるモード切替関数を定義しており、再生手段がキー操作の再生要求があったときに、モード切替関数の呼び出しを行うことで、関数呼び出しにより自動的に再生モードに移行するので、キー操作再生に不要なオペレーションパネルからのキーイベントの入力を阻止することができる。
【００３５】
また、前記オペレーションパネルから予め定めた複数のキーの入力があったときに前記キー操作の再生要求を発生させる手段を有することとしてもよい。
【００３６】
この発明によれば、複数のキーを入力することにより、再生モードに移行することができる。
【００３７】
また、前記キー操作送受信プロセスとして動作するサービスプログラムは、前記再生手段のプロセスを起動する起動関数を定義しており、前記キー操作送受信プロセスは、キー操作の再生要求があったときに、前記起動関数を実行することとしてもよい。
【００３８】
この発明によれば、キー操作送受信プロセスとして動作するサービスプログラムが再生手段のプロセスを起動する起動関数を定義しており、キー操作の再生要求があったときに起動関数を実行することで、キー操作再生処理を行う際に画像形成装置を再起動させる必要がなくなり、デバッグ作業時のユーザビリティを向上させることができる。
【００３９】
また、前記再生手段は、キー操作の再生処理が終了したときに、前記キー操作送受信プロセスに対し、停止要求通知を行い、前記キー操作送受信プロセスは、前記停止要求通知を受信したときに、前記再生手段のプロセスを終了させることとしてもよい。
【００４０】
この発明によれば、再生手段がキー操作の再生処理が終了したときに、キー操作送受信プロセスに対し停止要求通知を行い、キー操作送受信プロセスは記停止要求通知を受信したときに再生手段のプロセスを終了させることで、キー操作再生処理終了時に、自動的に再生手段のプロセスを終了させることができ、デバッグ作業時のユーザビリティを向上させることができる。
【００４１】
また、上記の課題を解決するために、本発明を次のように構成することも可能である。
【００４２】
本発明は、オペレーションパネルを備えた画像形成装置において、前記オペレーションパネルからのキー操作を監視するキー操作監視方法であって、キー監視手段が前記キー操作をキーイベント情報として取得するキー監視ステップを有することを特徴とする。
【００４３】
この発明によれば、キー操作をキーイベント情報として取得するので、障害発生時のキー操作を容易に再現することが可能となり、画像形成装置のデバッグ作業を効率的に行うことができる。
【００４４】
上記キー操作監視方法において、前記キー監視ステップは、前記オペレーションパネルの通信ドライバにより配信されたキーイベント情報を前記キー監視手段が受信するステップを有することとしてもよい。
【００４５】
この発明によれば、通信ドライバを用いてキーイベント情報を配信することができる。
【００４６】
また、上記キー操作監視方法において、前記画像形成装置は、画像形成処理で使用されるハードウェア資源と、画像形成処理にかかるユーザサービスに固有の処理を行うアプリケーションとを有し、更に前記アプリケーションと前記ハードウェア資源との間に前記オペレーションパネルの制御を行うシステムコントロールサービスを有し、前記キー監視ステップは、前記システムコントロールサービスによって、前記キー操作をキーイベント情報として取得するキーイベント取得ステップと、前記キーイベント取得ステップによって取得したキーイベント情報を、前記キー監視手段が前記システムコントロールサービスからプロセス間通信によって受信するステップとを含んだこととしてもよい。
【００４７】
この発明によれば、システムコントロールサービスによってキー操作をキーイベント情報として取得するキーイベント取得ステップと、キーイベント取得ステップによって取得したキーイベント情報をシステムコントロールサービスとのプロセス間通信によって受信するキー監視ステップと、を含んだことによって、多数のソフトウェアが動作する画像形成装置においてキー操作によるキーイベント情報をプロセス間通信を利用して容易に取得することができ、デバッグ情報をとして利用することができる。このため、障害発生時のキー操作を容易に再現することができ、画像形成装置のデバッグ作業を効率的に行うことができる。
【００４８】
また、前記キー監視ステップは、前記受信した複数のキーイベント情報を、キー履歴データとして記憶手段に格納するキーイベント保存ステップをさらに含んでもよい。
【００４９】
この発明によれば、キー監視ステップが受信した複数のキーイベント情報を、キー履歴データとして記憶手段に格納するキーイベント保存ステップを含んだことで、一連のキー操作による経時的なキーイベント情報を履歴データとして残しておくことができ、障害発生時の動作を一連のキー操作で再現することが容易となり、デバッグ作業の効率化をさらに向上することができる。
【００５０】
また、前記キー監視ステップは、前記受信したキーイベント情報に時刻情報を付加するキーイベント処理ステップをさらに含み、前記キーイベント保存ステップは、前記時刻情報が付加されたキーイベント情報を前記キー履歴データとして前記記憶手段に格納することとしてもよい。
【００５１】
この発明によれば、キー監視ステップが受信したキーイベント情報に時刻情報を付加するキーイベント処理ステップをさらに含み、キーイベント保存ステップが時刻情報が付加されたキーイベント情報をキー履歴データとして記憶手段に格納することで、時刻情報に基づいて一連のキー操作のタイミングを認識することができ、実際のキー操作とソフトウェアの動作の同期をとってキー操作を再現することができ、デバッグ作業効率の向上をさらに図ることができる。
【００５２】
また、前記キーイベント保存ステップは、さらに前記キー履歴データをネットワークに接続された端末に送信することとしてもよい。
【００５３】
この発明によれば、キーイベント保存ステップがキー履歴データをネットワークに接続された端末に送信することで、キーイベント情報の履歴データをデバッグ作業を行うユーザなどが使用するリモート端末に直接残すことができ、画像形成装置と離れた場所でデバッグ作業を行う場合のユーザビリティを向上することができる。
【００５４】
また、本発明は、画像形成処理にかかるユーザサービスのための処理を行うアプリケーションと、オペレーションパネルとを備えた画像形成装置において、前記オペレーションパネルに出力される描画情報を取得する描画情報取得方法であって、描画情報取得手段が、前記描画情報を、プロセス間通信によって前記アプリケーションから受信する描画情報取得ステップを含んだことを特徴とする描画情報取得方法として構成することもできる。
【００５５】
この発明によれば、前記描画情報を、プロセス間通信によって前記アプリケーションから受信する描画情報取得ステップを含んだことで、多数のソフトウェアが動作する画像形成装置において、オペレーションパネルへの表示内容（描画情報）を容易に取得することができる。このため、このような描画情報をデバッグ情報をとして利用することにより、障害発生時のオペレーションパネルへの描画情報を容易に再現することができ、画像形成装置のデバッグ作業を効率的に行うことができる。
【００５６】
また、上記描画情報取得方法において、前記描画情報取得ステップは、前記オペレーションパネルを管理する関数と対応した描画情報送信関数の呼び出しを前記アプリケーションから受けることにより、前記描画情報を受信することとしてもよい。
【００５７】
この発明によれば、描画情報取得ステップがオペレーションパネルを管理する関数と対応した描画情報送信関数の呼び出しをアプリケーションから受けることにより、描画情報を受信することで、関数呼び出しという簡易なプロセス間通信によって、デバッグ作業に有益な描画情報を容易に取得することができる。
【００５８】
また、この発明によれば、オペレーションパネルを管理する関数と対応した描画情報送信関数を用いて描画情報を受信できるので、アプリケーションの開発段階で、描画情報の通知を描画情報取得モジュールに行うことを意識する必要がなく、アプリケーション開発の効率化も図ることができる。
【００５９】
また、上記描画情報取得方法において、前記アプリケーションから受信した複数の描画情報を、描画履歴データとして記憶手段に格納する描画情報保存ステップをさらに含んでもよい。
【００６０】
この発明によれば、アプリケーションから受信した複数の描画情報を描画履歴データとして記憶手段に格納する描画情報保存ステップを含んだことで、オペレーションパネルに表示する描画情報を経時的な履歴データとして残しておくことができ、障害発生時のオペレーションパネルへの一連の表示を再現することが容易となり、デバッグ作業の効率化をさらに向上することができる。
【００６１】
また、前記描画情報取得ステップは、前記受信した描画情報に時刻情報を付加する描画情報処理ステップをさらに含んでおり、前記描画情報保存ステップは、さらに前記時刻情報が付加された描画情報を、前記描画履歴データとして前記記憶手段に格納することとしてもよい。
【００６２】
この発明によれば、描画情報取得ステップが受信した描画情報に時刻情報を付加する描画情報処理ステップをさらに含んでおり、描画情報保存ステップが時刻情報が付加された描画情報を描画履歴データとして記憶手段に格納することで、時刻情報に基づいて一連のオペレーションパネルへの表示のタイミングを認識することができ、実際のオペレーションパネルへの表示とソフトウェアの動作の同期をとってオペレーションパネルへの表示を再現することができ、デバッグ作業効率の向上をさらに図ることができる。
【００６３】
また、前記描画情報保存ステップは、さらに前記描画履歴データをネットワークに接続された端末に送信することとしてもよい。
【００６４】
この発明によれば、描画情報保存ステップが描画履歴データをネットワークに接続された端末に送信することで、オペレーションパネルの描画情報の履歴データをデバッグ作業を行うユーザなどが使用するリモート端末に直接残すことができ、画像形成装置と離れた場所でデバッグ作業を行う場合のユーザビリティを向上することができる。
【００６５】
また、本発明は、オペレーションパネルを備え、そのオペレーションパネルからのキー操作に基づいて画像形成処理にかかるユーザサービスを提供する画像形成装置であって、前記キー操作をキーイベント情報として取得するキー監視手段を備えたことを特徴とする画像形成装置として構成することもできる。
【００６６】
この発明によれば、キー操作をキーイベント情報として取得するので、障害発生時のキー操作を容易に再現することが可能となり、画像形成装置のデバッグ作業を効率的に行うことができる。
【００６７】
前記キー監視手段は、前記オペレーションパネルの通信ドライバにより配信されたキーイベント情報を受信することとしてもよい。
【００６８】
この発明によれば、通信ドライバを用いてキーイベント情報を配信することができる。
【００６９】
また、前記画像形成装置は、画像形成処理で使用されるハードウェア資源と、画像形成処理にかかるユーザサービスに固有の処理を行うアプリケーションとを有し、更に前記アプリケーションと前記ハードウェア資源との間に前記オペレーションパネルの制御を行うシステムコントロールサービスを有し、前記システムコントロールサービスは前記オペレーションパネルからのユーザのキー操作をキーイベント情報として取得し、前記キー監視手段は、前記システムコントロールサービスとのプロセス間通信によって、前記システムコントロールサービスから前記キーイベント情報を受信することとしてもよい。
【００７０】
この発明によれば、コントロールサービスに含まれてオペレーションパネルからのユーザのキー操作をキーイベント情報として取得するシステムコントロールサービスと、システムコントロールサービスとのプロセス間通信によってシステムコントロールサービスからキーイベント情報を受信するキー監視手段とを備えたことで、多数のソフトウェアが動作する画像形成装置においてキー操作によるキーイベント情報をプロセス間通信を利用して容易に取得することができ、デバッグ情報として利用することができる。このため、障害発生時のキー操作を容易に再現することができ、画像形成装置のデバッグ作業を効率的に行うことができる。
【００７１】
また、上記画像形成装置において、前記システムコントロールサービスから受信した複数のキーイベント情報を、キー履歴データとして記憶手段に格納するキーイベント保存手段をさらに備えたこととしてもよい。
【００７２】
この発明によれば、システムコントロールサービスから受信した複数のキーイベント情報をキー履歴データとして記憶手段に格納するキーイベント保存手段をさらに備えたことで、一連のキー操作による経時的なキーイベント情報を履歴データとして残しておくことができ、障害発生時の動作を一連のキー操作で再現することが容易となり、デバッグ作業の効率化をさらに向上することができる。
【００７３】
また、前記キー監視手段は、前記受信したキーイベント情報に時刻情報を付加するキーイベント処理手段をさらに備え、前記キーイベント保存手段は、前記時刻情報が付加されたキーイベント情報を前記キー履歴データとして前記記憶手段に格納することとしてもよい。
【００７４】
この発明によれば、キー監視手段が受信したキーイベント情報に時刻情報を付加するキーイベント処理手段をさらに備え、キーイベント保存手段は、時刻情報が付加されたキーイベント情報をキー履歴データとして記憶手段に格納することで、時刻情報に基づいて一連のキー操作のタイミングを認識することができ、実際のキー操作とソフトウェアの動作の同期をとってキー操作を再現することができ、デバッグ作業効率の向上をさらに図ることができる。
【００７５】
また、前記キーイベント保存手段は、さらに前記キー履歴データをネットワークに接続された端末に送信することとしてもよい。
【００７６】
この発明によれば、キーイベント保存手段がキー履歴データをネットワークに接続された端末に送信することで、キーイベント情報のキー履歴データをデバッグ作業を行うユーザなどが使用するリモート端末に直接残すことができ、画像形成装置と離れた場所でデバッグ作業を行う場合のユーザビリティを向上することができる。
【００７７】
また、前記キー監視手段と前記キーイベント保存手段は互いに異なるプロセスとして動作し、前記キー監視手段と前記キーイベント保存手段のプロセス間通信によって、前記キー履歴データの送受信を行うこととしてもよい。
【００７８】
この発明は、キー監視手段とキーイベント保存手段は互いに異なるプロセスとして動作し、キー監視手段とキーイベント保存手段のプロセス間通信によってキー履歴データの送受信を行うことで、キーイベント保存手段をキー監視手段から独立して設けることができ、キー監視手段の構成の複雑化を防止することができる。
【００７９】
また、前記キーイベント処理手段は、前記キー監視手段のプロセス内部で生成されたスレッドであることとしてもよい。
【００８０】
この発明によれば、キーイベント処理手段がキー監視手段のプロセス内部で生成されたスレッドであるので、短時間に、またはほぼ同時にキー操作と他のデータ処理が行われた場合でも、両方のデータ処理を並列に実行することができ、デバッグ作業を実際の動作と同じ状況で実現することができる。また、キーイベント情報に時刻情報を付加する場合においても、実際の時刻とずれてしまうことがない。このため、デバッグ作業の正確性を担保することができる。
【００８１】
また、本発明は、画像形成処理にかかるユーザサービスのための処理を行うアプリケーションと、オペレーションパネルとを備え、そのオペレーションパネルからのキー操作に基づいて画像形成処理にかかるユーザサービスを提供する画像形成装置であって、前記アプリケーションが前記オペレーションパネルに出力する描画情報を、プロセス間通信によって前記アプリケーションから受信する描画情報取得手段を備えたことを特徴とする画像形成装置として構成することもできる。
【００８２】
この発明によれば、アプリケーションがオペレーションパネルに出力する描画情報をプロセス間通信によってアプリケーションから受信する描画情報取得手段を備えたことで、オペレーションパネルへの表示内容（描画情報）を容易に取得することができる。このため、このような描画情報をデバッグ情報をとして利用することにより、障害発生時のオペレーションパネルへの描画情報を容易に再現することができ、画像形成装置のデバッグ作業を効率的に行うことができる。
【００８３】
また、前記描画情報取得手段は、前記アプリケーションをクライアントとしたサーバプロセスとして動作し、前記アプリケーションは、前記オペレーションパネルを制御する関数と対応した描画情報送信関数を定義したオペパネコントロールサービスライブラリを備え、前記描画情報送信関数を実行することにより、前記描画情報を前記描画情報取得手段に送信することとしてもよい。
【００８４】
この発明によれば、描画情報取得手段がアプリケーションをクライアントとしたサーバプロセスとして動作し、アプリケーションはオペレーションパネルを制御する関数と対応した描画情報送信関数を定義したオペパネコントロールサービスライブラリを備え、描画情報送信関数を実行することにより描画情報を描画情報取得手段に送信することで、関数呼び出しという簡易なプロセス間通信によって、デバッグ作業に有益な描画情報を容易に取得することができる。
【００８５】
また、上記画像形成装置において、前記アプリケーションから受信した複数の描画情報を、描画履歴データとして記憶手段に格納する描画情報保存手段をさらに備えてもよい。
【００８６】
この発明によれば、アプリケーションから受信した複数の描画情報を描画履歴データとして記憶手段に格納する描画情報保存手段を備えたことで、オペレーションパネルに表示する描画情報を経時的な履歴データとして残しておくことができ、障害発生時のオペレーションパネルへの一連の表示を再現することが容易となり、デバッグ作業の効率化をさらに向上することができる。
【００８７】
また、前記描画情報取得手段は、前記受信した描画情報に時刻情報を付加する描画情報処理手段をさらに備え、前記描画情報保存手段は、さらに前記時刻情報が付加された描画情報を、前記描画履歴データとして前記記憶手段に格納することとしてもよい。
【００８８】
この発明によれば、描画情報取得手段が受信した描画情報に時刻情報を付加する描画情報処理手段をさらに備え、描画情報保存手段が時刻情報が付加された描画情報を描画履歴データとして記憶手段に格納することで、時刻情報に基づいて一連のオペレーションパネルへの表示のタイミングを認識することができ、実際のオペレーションパネルへの表示とソフトウェアの動作の同期をとってオペレーションパネルへの表示を再現することができ、デバッグ作業効率の向上をさらに図ることができる。
【００８９】
また、前記描画情報保存手段は、さらに前記描画履歴データをネットワークに接続された端末に送信することとしてもよい。
【００９０】
この発明によれば、描画情報保存手段が描画履歴データをネットワークに接続された端末に送信することで、オペレーションパネルの描画情報の描画履歴データをデバッグ作業を行うユーザなどが使用するリモート端末に直接残すことができ、画像形成装置と離れた場所でデバッグ作業を行う場合のユーザビリティを向上することができる。
【００９１】
また、上記画像形成装置において、前記描画情報取得手段と前記描画情報保存手段は互いに異なるプロセスとして動作し、前記描画情報取得手段と前記描画情報保存手段のプロセス間通信によって、前記描画履歴データの送受信を行うこととしてもよい。
【００９２】
この発明によれば、描画情報取得手段と描画情報保存手段は互いに異なるプロセスとして動作し、描画情報取得手段と描画情報保存手段のプロセス間通信によって描画履歴データの送受信を行うことで、画像情報保存手段を描画情報取得手段から独立して設けることができ、描画情報取得手段の構成の複雑化を防止することができる。
【００９３】
また、前記描画情報処理手段は、前記描画情報取得手段のプロセス内部で生成されたスレッドであることとしてもよい。
【００９４】
この発明によれば、描画情報処理手段が描画情報取得手段のプロセス内部で生成されたスレッドであるので、短時間に、またはほぼ同時に描画情報のオペレーションパネルに対する出力と他のデータ処理が行われた場合でも、両方のデータ処理を並列に実行することができ、デバッグ作業を実際の動作と同じ状況で実現することができる。また、描画情報に時刻情報を付加する場合においても、実際の時刻とずれてしまうことがない。このため、デバッグ作業の正確性を担保することができる。
【発明の効果】
【００９５】
以上説明したように、本発明によれば、操作の再現を容易に行うことができ、デバッグ作業効率および評価効率の向上を図ることができる。  
【発明を実施するための最良の形態】
【００９６】
以下に添付図面を参照して、この発明にかかるキー操作監視方法、描画情報取得方法、キー操作再生方法、これらの方法をコンピュータに実行させるプログラムおよび画像形成装置の好適な実施の形態を詳細に説明する。
【００９７】
（実施の形態１）
図１は、この発明の実施の形態１である画像形成装置（以下、「複合機」という）の構成を示すブロック図である。図１に示すように、複合機１００は、白黒ラインプリンタ（B&W LP）１０１と、カラーラインプリンタ（Color LP）１０２と、スキャナ１０３と、ファクシミリ１０４と、ハードディスク１０５と、ネットワークインタフェース１０６などのハードウェアリソースを有するとともに、プラットホーム１２０とアプリケーション１３０とから構成されるソフトウェア群１１０とを備えている。
【００９８】
プラットホーム１２０は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１２３と、汎用ＯＳ１２１とを有する。
【００９９】
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＦＣＳ（ファックスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８とキーモニタ１１７とから構成される。なお、このプラットホーム１２０は、あらかじめ定義された関数により前記アプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有する。
【０１００】
汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【０１０１】
キーモニタ１１７は、オペレーションパネル２１０からのユーザのキー操作をキーイベント情報としてＳＣＳ１２２から受信するとともに、各アプリがオペレーションパネル２１０に表示する描画情報を各アプリから受信する。そして、キーモニタ１１７は、受信したキーイベント情報および描画情報にタイムスタンプ（時刻情報）などを付加し、履歴データとしてハードディスク１０５に格納する。また、キーモニタ１１７は、この履歴データに基づいてキーイベントをＳＣＳ１２２に送信してキー操作の再生処理を行う。このキーモニタ１１７は本発明におけるキー監視手段、描画情報取得手段および再生手段を構成する。
【０１０２】
ＳＲＭ１２３のプロセスは、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４ Ｉ／Ｆ、ＲＳ２３２Ｃ Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【０１０３】
具体的には、このＳＲＭ１２３は、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【０１０４】
ＳＣＳ１２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。また、ＳＣＳ１２２のプロセスは、オペレーションパネル２１０からのキー操作をキーイベントとして取得して、各アプリに送信するとともに、キーモニタ１１７に送信する。また、ＳＣＳ１２２は、モード切替関数を実装している。このモード切替関数は、キーモニタ１１７からの関数呼び出しにより実行される。モード切替関数の実行により、ＳＣＳプロセス１２２は、オペレーションパネル２１０からのキーイベントを遮断して、キーモニタ１１７からのキーイベント情報のみを受け付ける再生モードに移行する。
ＥＣＳ１２４のプロセスは、白黒ラインプリンタ（B&W LP）１０１、カラーラインプリンタ（Color LP）１０２、スキャナ１０４、ファクシミリ１０４などからなるハードウェアリソースのエンジンの制御を行う。
【０１０５】
ＭＣＳ１２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【０１０６】
ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【０１０７】
ＮＣＳ１２８は、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。
【０１０８】
アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５とを有している。
【０１０９】
プリンタアプリ１１１と、コピーアプリ１１２と、ファックスアプリ１１３と、スキャナアプリ１１４は、その内部にＯＣＳライブラリ１２６を備えている。すなわち、これらの各アプリのプログラムは、ＯＣＳライブラリ１２６とリンク（結合）した実行可能ファイルとなっている。ここで、ＯＣＳライブラリ１２６は、オペレータ（ユーザ）と本体制御間の情報伝達手段となるオペレーションパネル（操作パネル）の制御を行う各種関数を登録したものであり、各アプリがＯＣＳライブラリ１２６に登録されている描画関数を実行することによって、オペレーションパネルの表示部にウィンドウ、ボタン、その他文字、図形などの描画情報を表示するようになっている。
【０１１０】
図２は、図１に示した実施の形態１の複合機１００のハードウェア構成図である。図２に示すように、この複合機１００は、ＣＰＵ２０２、ＳＤＲＡＭ２０３、ＳＲＡＭ２０８、フラッシュメモリ２０４、およびＨＤ２０５などをＡＳＩＣ２０１に接続したコントローラボード２００と、オペレーションパネル２１０と、ファックスコントロールユニット（ＦＣＵ）２２０と、ＵＳＢ２３０と、ＩＥＥＥ1394 ２４０と、プリンタ２５０とから構成されている。オペレーションパネル２１０はＡＳＩＣ２０１に直接接続され、ＦＣＵ２２０、ＵＳＢ２３０、ＩＥＥＥ1394 ２４０およびプリンタ２５０はＰＣＩバスを介してＡＳＩＣ２０１に接続されている。フラッシュメモリ２０４には、上述の各アプリ、プラットホーム１２０を構成する各コントロールサービスやＳＲＭ１２３の各プログラムが格納されている。
【０１１１】
オペレーションパネル２１０は、ユーザが複合機１００に対して機能選択などの指示を与える操作パネルである。オペレーションパネル２１０は、タッチパネルなどの表示部を備えており、この表示部にプリンタアプリ１１１、コピーアプリ１１２、ファックスアプリ１１３およびスキャナアプリ１１４から各機能の選択指示、倍率指定、ソート、ステイプルなどの機能選択指示、ＯＫ、キャンセルなどの選択指示のボタンや、ウィンドウ、その他文字、図形などの描画データがＯＣＳライブラリ１２６経由で表示される。
【０１１２】
また、オペレーションパネル２１０の表示部（タッチパネル）に表示されたボタンなどのキーをユーザが押下する（触れる）ことによって、ユーザが押下したキー操作がＳＣＳ１２２においてキーイベントとして通知される。
【０１１３】
図３は、実施の形態１にかかるキーモニタ１１７の構成を示すブロック図である。図３に示すようにキーモニタ１１７は、メッセージキュー３１１と、ＳＣＳデータ処理部３０１と、ＯＣＳデータ処理部３０２と、リモートデータ処理部３０３と、データ判定処理部３０４と、保存データ読み込み部３０５と、データ再生部３０６と、データ印刷部３０７と、データ保存部３０８とを備えた構成となっている。ここで、ＳＣＳデータ処理部３０１は本発明におけるキーイベント処理手段を、ＯＣＳデータ処理部３０２は本発明における描画情報処理手段を、保存データ読み込み部３０５は本発明における保存データ取得手段を、データ再生部３０６は本発明における再生手段を、データ保存部３０８は本発明におけるキーイベント保存手段および描画情報保存手段をそれぞれ構成する。
【０１１４】
メッセージキュー３１１は、ＳＣＳプロセス１２２、アプリケーション１３０（各アプリ１１１〜１１４）、ＮＣＳ１２８から送信されてきたメッセージを蓄積しておくものである。このメッセージキュー３１１には、ＳＣＳプロセス１２２からはキーイベント情報が送信され、アプリ１１１〜１１４からは描画情報が送信されて格納される。また、ＬＡＮなどのネットワーク３３０に接続されたリモートＰＣ３２０から送信されたコマンドがＮＣＳプロセス１２８を介してメッセージキュー３１１に格納される。
【０１１５】
図４は、メッセージキュー３１１に送信されるメッセージのデータ構造図である。図４に示す通り、メッセージは、メッセージの発信元を示す発信元と、キーイベントや描画情報を生成、使用するアプリケーションを示すアプリＩＤと、メッセージの種類を示すデータ属性と、データの各フィールドとから構成される。
【０１１６】
発信元フィールドには「ＳＣＳ」、「ＯＣＳ」、「内部」、「リモート」のコードが各発信元で格納されて送信される。ここで、メッセージがリモートＰＣ３２０から送信されたコマンドである場合には、発信元に「リモート」が設定される。なお、発信元が「内部」の場合には、ハードディスク１０５に格納された履歴データであることを示すが、実施の形態１のキーモニタ１１７では、履歴データがメッセージキュー３１１には送信されることはない。
【０１１７】
データ属性フィールドには、「キーイベント」、「描画」、「コマンド」の各コードが発信元で格納される。「キーイベント」の場合にはメッセージがキーイベント情報であることを、「描画」である場合にはメッセージが描画情報であることを、「コマンド」である場合にはメッセージがコマンドであることを示す。ここで、データ属性が描画情報である場合には、その発信元は「ＯＣＳ」である場合と、「内部」である場合の２通りがある。「内部」である場合とは、ハードディスク１０５に格納された履歴データの中の描画情報のときが該当する。
【０１１８】
データフィールドは、キーイベント情報、描画情報、コマンドの各データ属性によって格納されるデータが異なっている。図５（ａ）は、メッセージキュー３１１に格納される（すなわち、ＳＣＳデータ処理部３０１による処理前の）キーイベント情報のデータ構造図である。図５（ａ）に示すように、キーイベント情報では、発信元フィールドに「ＳＣＳ」が、データ属性フィールドに「キーイベント」が発信元のＳＣＳで設定される。また、キーコードフィールドには、オペレーションパネル２１０で操作されたキーの識別コードであるキーコードが設定されており、キー押下状態フィールドではキーが押下されたか否かを、キー有効／無効フィールドではキーコードに対応するキーが有効であるか否かを示すコードが設定されている。
【０１１９】
図６（ａ）は、メッセージキュー３１１に格納される（すなわち、ＯＣＳデータ処理部３０２による処理前の）描画情報のデータ構造図である。図６（ａ）に示すように、描画情報では、発信元フィールドに「ＯＣＳ」が、データ属性フィールドに「描画」が発信元のアプリ１１１〜１１４のＯＣＳライブラリ１２６で設定される。描画データフィールドには、ウィンドウＩＤ、ボタンなどの網掛け表示などの属性を示すアイテムＩＤ、文字情報、図形情報などの描画データが発信元のアプリ１１１〜１１４のＯＣＳライブラリ１２６で設定される。
【０１２０】
図７は、メッセージキュー３１１に格納されるコマンドのデータ構造図である。図７に示すように、コマンドの場合には発信元フィールドに「リモート」が、データ属性フィールドに「コマンド」が発信元のリモートＰＣ３２０で設定される。また、コマンドデータフィールドには、記録コマンド、再生コマンドなどのコマンドごとの識別データが発信元のリモートＰＣ３２０で設定される。
【０１２１】
ＳＣＳデータ処理部３０１は、キーモニタ１１７のプロセス内で生成され動作するスレッドであり、メッセージキュー３１１からキーイベント情報を取得して、データ解析、タイムスタンプの付加を行う。
ＯＣＳデータ処理部３０２は、キーモニタ１１７のプロセス内で生成され動作するスレッドであり、メッセージキュー３１１から描画情報を取得して、データ解析、タイムスタンプの付加を行う。
【０１２２】
図９は、ＳＣＳデータ処理部３０１およびＯＣＳデータ処理部３０２で行われるデータ処理の手順を示すフローチャートである。まず各データ処理部３０１、３０２では、一定間隔ごとにメッセージキュー３１１から処理すべきデータ（メッセージ）を検索して、処理すべきデータがある場合にはそのデータを読み出す（ステップＳ９０１）。
【０１２３】
具体的には、ＳＣＳデータ処理部３０１では、メッセージキュー３１１から発信元「ＳＣＳ」とデータ属性「キーイベント」であるデータを検索し、かかるデータがＳＣＳ１２２から送信されたキーイベント情報であると判断して読み出す。また、ＯＣＳデータ処理部３０２では、メッセージキュー３１１から発信元「ＯＣＳ」とデータ属性「描画」であるデータを検索し、かかるデータがアプリ１１１〜１１４がＯＣＳライブラリ１２６を利用して送信された描画情報であると判断して読み出す。
【０１２４】
つぎに、複合機１００に設けられたタイマーなどからタイムスタンプとして現在時刻を取得する（ステップＳ９０２）。そして、ステップＳ９０１で読み出したデータが各データ処理部３０１、３０２で処理すべきデータの構造に適合しているか否かのデータ解析を行う（ステップＳ９０３）。
【０１２５】
具体的には、ＳＣＳデータ処理部３０１では読み出したデータが図５（ａ）に示すキーイベント情報のデータ構造となっているかを、ＯＣＳデータ処理部３０２では読み出したデータが図６（ａ）に示す描画情報のデータ構造となっているかを解析する。
【０１２６】
そして、データ解析により、読み出したデータが正しいものであるか否かを判断し（ステップＳ９０４）、正しくない場合にはその後の処理を行わずに終了する。
【０１２７】
データが正しいものである場合には、ステップＳ９０２で取得した現在時刻をタイムスタンプとしてデータに付加し、さらにデータ長を付加した上で（ステップＳ９０５）、データ処理判定部３０４に受け渡す（ステップＳ９０６）。なお、データ判定処理部３０４での判定処理をより容易にするために、キーイベント情報に、データ再生、データ印刷またはデータ保存などの識別子をさらに付加する処理を行っても良い。
【０１２８】
図５（ｂ）は、ＳＣＳデータ処理部３０１による処理後のキーイベント情報のデータ構造図であり、図６（ｂ）は、ＯＣＳデータ処理部３０２による処理後の描画情報のデータ構造図である。図５（ｂ）、図６（ｂ）に示すように、ＳＣＳデータ処理部３０１によるキーイベント情報の処理、ＯＣＳデータ処理部３０２による描画情報の処理の結果、データ長とタイムスタンプのデータが先頭に付加される。
【０１２９】
リモートデータ処理部３０３は、リモートＰＣ３２０からネットワーク経由で送信されてきたコマンドのデータ処理を行うものであり、キーモニタ１１７のプロセス内で生成され動作するスレッドである。ただし、ＳＣＳデータ処理部３０１やＯＣＳデータ処理部３０２で行うタイムスタンプおよびデータ長の付加は行われない。リモートデータ処理部３０３では、メッセージキュー３１１から発信元「リモート」であるデータを検索し、かかるデータがリモートＰＣ３２０から送信されたコマンドであると判断して読み出す。そして、読み出したデータの構造が図７に示すコマンドのデータ構造に適合しているか否かのデータ解析を行って、データが正しい場合には読み出したデータをデータ判定処理部３０４に受け渡す。
【０１３０】
データ判定処理部３０４は、各データ処理部３０１、３０２、３０３から受け渡されたデータに対して、発信元フィールド、データ属性フィールドまたはデータフィールドをチェックして、データ再生部３０６、データ印刷部３０７、データ保存部３０８に受け渡すものである。具体的には、発信元が「内部」または「ＯＣＳ」である場合、および発信元が「リモート」でかつデータ属性が「コマンド」でデータの内容が再生コマンドである場合には、データをデータ再生部３０６に受け渡す。従って、データ再生部３０６には、履歴データ、図６（ｂ）に示す描画情報および図７の構造の再生コマンドが入力される。
【０１３１】
データ判定処理部３０４は、発信元が「ＳＣＳ」または「ＯＣＳ」である場合には、データをデータ印刷部３０７およびデータ保存部３０８に受け渡す。従って、データ印刷部３０７とデータ保存部３０８には、図５（ｂ）および図６（ｂ）に示すタイムスタンプが付加されたキーイベント情報および描画情報が入力される。
【０１３２】
データ保存部３０８は、このタイムスタンプが付加されたキーイベント情報および描画情報を履歴データとしてハードディスク（ＨＤ）１０５に格納する。この際、各データの発信元フィールドを「内部」に設定した上で格納する。図８（ａ）は、履歴データ（内部データ）の各レコードのデータ構造図である。図８（ａ）に示すように、履歴データの発信元フィールドには「内部」が設定され、データフィールドはキーイベント情報または描画情報と同様のデータとなっている。ここで、履歴データは、図８（ａ）に示すデータを１レコードとして、経時的に収集された複数レコードから構成されている。
【０１３３】
データ印刷部３０７は、リモートＰＣ３２０から印刷コマンドが送信されたときに、キーイベント情報や描画情報をプリンタ１０１、１０２で印刷するものである。
【０１３４】
保存データ読み込み部３０５は、後述する再生モードのときに、ハードディスク１０５から図８（ａ）に示す履歴データを読み出して、データ判定処理部３０４に受け渡すものである。
【０１３５】
データ再生部３０６は、再生モード時に、ＳＣＳプロセス１２２に対し再生モードへ切り替えるモード切替関数の呼び出しを行い、履歴データから再生情報を生成してＳＣＳプロセス１２２に送信して、履歴データに基づいたキー操作の再生を行うものである。
【０１３６】
図１０は、実施の形態１のキーモニタ１１７のデータ再生部３０６によるキー操作再生処理の手順を示すフローチャートである。図１０に示すように、データ再生部３０６は、まずデータ判定処理部３０４から入力したデータのデータ属性をチェックする（ステップＳ１００１）。そしてデータ属性が「コマンド」であり、データフィールドが再生コマンドである場合には、ＳＣＳプロセス１２２に対して、モード切替関数呼び出しを行う（ステップＳ１００２）。これにより、ＳＣＳプロセス１２２ではモード切替関数が実行されて、オペレーションパネル２１０からのキーイベントを遮断して、キーモニタ１１７からの再生情報（キーイベント情報）だけを受け付ける再生モードに移行する。
【０１３７】
データ属性が「キーイベント」である場合には、データ判定処理部３０４から入力されたデータがキーイベント情報の履歴データであるため、履歴データからデータ長およびタイムスタンプを削除した再生情報を生成する（ステップＳ１００３）。図８（ｂ）は、生成された再生情報のデータ構造図である。この再生情報は、「内部」である点のみが図５（ａ）に示すキーイベント情報と発信元が異なっている。そして、生成した再生情報をＳＣＳプロセス１２２に送信する（ステップＳ１００４）。この処理は、履歴データに含まれるすべてのレコードのキーイベント情報について行われる。また、このような複数の再生情報の送信は、ステップＳ１００３で削除したタイムスタンプと次の履歴データ中のレコードのタイムスタンプとの差の時間の間隔で行われる。従って、実際にユーザがオペレーションパネル２１０でキー操作した間隔と同一間隔でのキー操作が再生されることになり、より実際の操作に適合したデバッグ作業が行えることになる。
【０１３８】
一方、データ属性が「描画」である場合には、データ判定処理部３０４から入力されたデータが履歴データの中の描画情報とアプリ１１１〜１１４からＯＣＳライブラリ１２６経由で受信した描画情報、すなわちキー操作の再生でアプリ１１１〜１１４が実行された結果生成された描画情報である。このため、両方の描画情報を比較して（ステップＳ１００５）、一致するか否かを判断する（ステップＳ１００６）。
【０１３９】
比較の結果、一致している場合にはキー操作再生によるオペレーションパネル２１０への描画情報の表示が正常であると判断する。一方、一致していない場合には、キー操作再生によるオペレーションパネル２１０への描画情報の表示に異常があると判断し、オペレーションパネル２１０またはリモートＰＣ３２０のユーザに対しエラー表示を行う（ステップＳ１００７）。
【０１４０】
次に、以上のように構成されたキーモニタ１１７を含む複合機１００によりキー操作記録処理について説明する。図１１は、キー操作記録処理におけるオペレーションパネル２１０、キーモニタ１１７、ＳＣＳ１２２およびアプリ間のデータの流れを示す説明図である。図１２は、キー操作記録処理の主としてキーモニタ１１７内部のデータの流れを示す説明図である。
【０１４１】
まず、リモートＰＣ３２０から記録コマンドが送信されると（ステップＳ１２０１）、複合機１００のＮＣＳプロセス１２８はネットワーク経由で記録コマンドを受信して、キーモニタ１１７のメッセージキュー３１１に登録する（ステップＳ１２０２）。
【０１４２】
キーモニタ１１７のリモートデータ処理部３０３は、メッセージキュー３１１からこの記録コマンドを取得して（ステップＳ１２０３）、データ解析を行い、これによりキー操作記録処理が開始する。この記録コマンドはデータ判定処理部３０４に出力される（ステップＳ１２０４）。
【０１４３】
オペレーションパネル２１０でユーザのキー操作があった場合には、操作したキーのキーイベント情報がＳＣＳプロセス１２２に通知される（ステップＳ１２０５）。ＳＣＳプロセス１２２は、通知されたキーイベント情報をそのアプリＩＤで指定されたアプリ１１１〜１１４に送信するとともに、メッセージ送信あるいは関数呼び出しなどのプロセス間通信によってキーモニタ１１７のメッセージキュー３１１に登録する（ステップＳ１２０６）。
【０１４４】
キーモニタ１１７のＳＣＳデータ処理部３０１では、メッセージキュー３１１からキーイベント情報を取得して（ステップＳ１２０７）、前述したデータ解析およびタイムスタンプの付加を行って、キーイベント情報をデータ判定処理部３０４に受け渡す（ステップＳ１２０８）。
【０１４５】
データ判定処理部３０４では、キーイベント情報の発信元を判断して、キーイベント情報をデータ保存部３０８に出力する。そして、データ保存部３０８により、発信元を「内部」に設定した履歴データをハードディスク１０５に格納する。
【０１４６】
以上のような、キーイベント情報の取得、履歴データの格納処理は、オペレーションパネル２１０におけるキー操作のたびに行われ、履歴データには複数のキーイベント情報が順次記録されていくことになる。
【０１４７】
一方、ＳＣＳプロセス１２２からキーイベント情報を受信したアプリ１１１〜１１４ではアプリ固有の処理を行うがこの際オペレーションパネル２１０に対して描画情報が出力される場合がある（ステップＳ１２０９）。このとき、アプリ１１１〜１１４は、ＯＣＳライブラリ１２６の描画情報送信関数を実行する。この描画情報送信関数は、アプリ１１１〜１１４が描画情報をオペレーションパネル２１０に出力するＯＣＳライブラリ１２６の関数と一対となった関数であり、オペレーションパネル２１０に出力した描画情報と同一の描画情報をキーモニタ１１７のメッセージキュー３１１に送信するものである。このため、オペレーションパネル２１０に出力した描画情報はキーモニタ１１７のメッセージキュー３１１にも送信すされることになる（ステップＳ１２１０）。
【０１４８】
キーモニタ１１７のＯＣＳデータ処理部３０２では、メッセージキュー３１１から描画情報を取得して（ステップＳ１２１１）、前述したデータ解析およびタイムスタンプの付加を行って、描画情報をデータ判定処理部３０４に受け渡す（ステップＳ１２１２）。
【０１４９】
データ判定処理部３０４では、描画情報の発信元を判断して、キーイベント情報をデータ保存部３０８に出力する（ステップＳ１２１３）。そして、データ保存部３０８により、発信元を「内部」に設定した履歴データをハードディスク１０５に格納する（ステップＳ１２１４）。
【０１５０】
以上のような、描画情報の取得、履歴データの格納処理は、アプリ１１１〜１１４におけるオペレーションパネル２１０に対する描画情報の送信が実行されるたびに行われ、履歴データには複数の描画情報が順次記録されていくことになる。
【０１５１】
また、実施の形態１のキーモニタ１１７では、ＳＣＳデータ処理部３０１とＯＣＳデータ処理部３０２がいずれもスレッドとして動作しているので、ＳＣＳデータ処理部３０１によるデータ処理とＯＣＳデータ処理部３０２によるデータ処理が並列に実行される。従って、短時間の間、またはほぼ同時にキー操作と描画情報のオペレーションパネル２１０に対する出力が行われた場合でも、両データ処理を並列に実行することができ、さらにはタイムスタンプが実際の時刻とずれてしまうことがない。このようなキー操作記録処理によって、キーイベント情報および描画情報からなる履歴データがハードディスク１０５に格納されることになる。
【０１５２】
次に、実施の形態１にかかるキーモニタ１１７を含む複合機１００によりキー操作再生処理について説明する。図１３は、キー操作再生処理におけるオペレーションパネル２１０、キーモニタ１１７、ＳＣＳ１２２およびアプリ間のデータの流れを示す説明図である。図１４は、キー操作再生処理の主としてキーモニタ１１７内部のデータの流れを示す説明図である。
【０１５３】
まず、キー操作再生処理を行う場合には、複合機１００を再起動させる。そして、すべてのプロセスとキーモニタ１１７が再起動したときに、リモートＰＣ３２０から再生コマンドを送信する（ステップＳ１４０１）。複合機１００のＮＣＳプロセス１２８はネットワーク経由で再生コマンドを受信して、キーモニタ１１７のメッセージキュー３１１に登録する（ステップＳ１４０２）。
【０１５４】
キーモニタ１１７のリモートデータ処理部３０３は、メッセージキュー３１１からこの再生コマンドを取得して（ステップＳ１４０３）、データ解析を行ってデータ判定処理部３０４に出力する（ステップＳ１４０４）。
【０１５５】
データ判定処理部３０４では、入力されたデータの発信元が「リモート」であり、データ属性が「コマンド」で、かつコマンドデータが再生コマンドであることを認識して、再生コマンドをデータ再生部３０６に受け渡す（ステップＳ１４０５）。
【０１５６】
データ再生部３０６では、入力されたデータが再生コマンドであるために、ＳＣＳプロセス１２２に対してモード切替関数呼び出しを行い、ＳＣＳ１２２に対して再生モードへの切替要求を行う（ステップＳ１４０６）。
【０１５７】
ＳＣＳプロセス１２２では、モード切替関数を実行して、再生モードに移行する。これにより、図１３に示すように、ＳＣＳプロセス１２２は、キーモニタ１１７からの再生情報のみを入力して、オペレーションパネル２１０からのキー操作を遮断した再生モードの状態となる。
【０１５８】
次に、保存データ読み込み部３０５が、ハードディスク１０５に格納されている履歴データを読み込んで（ステップＳ１４０７）、データ判定処理部３０４へ受け渡す（ステップＳ１４０８）。履歴データは、発信元が「内部」となっているため、データ判定処理部３０４は履歴データをデータ再生部３０６へ受け渡す（ステップＳ１４０９）。
【０１５９】
データ再生部３０６では、入力された履歴データの各レコードごとに、データ属性を判断し、データ属性が「キーイベント」である場合にはデータ長およびタイムスタンプを削除した再生情報を生成し、ＳＣＳプロセス１２２にメッセージ送信というプロセス間通信によって再生情報を送信する（ステップＳ１４１０）。
【０１６０】
ＳＣＳプロセス１２２では、受信した再生情報のキーコードをアプリ１１１〜１１４に送信し、これにより履歴データに基づいたキー操作再生処理が行われる。このような、データ再生部３０６によるＳＣＳプロセス１２２に対する再生情報の送信は、履歴データを構成するレコードの中のデータ属性が「キーイベント」のすべてのレコードについて再生情報を生成して行う。このとき、再生情報の送信は、前の再生情報の生成処理で削除したタイムスタンプに示された時刻と、現在送信しようとする再生情報から削除されたタイムスタンプに示された時刻とにより算出される間隔をおいて行われる。すなわち、実際のユーザのキー操作の時間間隔をおいて、再生情報が送信され、キー操作が再生されることになる。
【０１６１】
なお、データ再生部３０６はデータ属性が「キーイベント」の場合に再生情報を生成しているが、データ属性が「描画」で、かつ発信元が「内部」である場合には再生処理をせず、保持しておく。
【０１６２】
ＳＣＳプロセス１２２では、データ再生部３０６から受信した再生情報の中のキーイベントをアプリ１１１〜１１４に送信することにより、キー操作の再生を行うが、これによりアプリ１１１〜１１４がオペレーションパネル２１０に表示するボタンなどの描画情報を送信した場合（ステップＳ１４１１）、図１２で説明したキー操作記録処理と同様に、描画情報をキーモニタ１１７で受信する（ステップＳ１４１２、Ｓ１４１３、Ｓ１４１４）。
【０１６３】
アプリ１１１〜１１４から受信した描画情報は、発信元が「ＯＣＳ」となっているため、データ判定処理部３０４によりデータ再生部３０６に送られる（ステップＳ１４１５）。この描画情報は、発信元が「ＯＣＳ」で、かつデータ属性が「描画」であるため、データ再生部３０６では、この描画情報と履歴データの描画情報と比較して一致しているか否かを判断する。一致している場合は、キー操作によりアプリ１１１〜１１４でオペレーションパネル２１０に表示される描画情報は正常であると判断するが、不一致の場合には、アプリ１１１〜１１４などで異常が生じていると判断し、オペレーションパネル２１０またはリモートＰＣ３２０にエラーの通知を行う。このように、キー操作の再生により、オペレーションパネル２１０に表示される描画情報が正常がどうかを判断することができるようになっている。
【０１６４】
このように、実施の形態１にかかる複合機１００では、キーモニタ１１７がオペレーションパネル２１０からＳＣＳプロセス１２２経由で、キーイベント情報をプロセス間通信によって取得し、またアプリ１１１〜１１４からオペレーションパネル２１０への描画情報をプロセス間通信によって取得し、タイムスタンプを付加してハードディスク１０５に経時的な履歴データとして格納しているので、タイムスタンプの間隔で一連のキー操作を容易に再現することができ、有益なデバッグ情報を得ることができる。
【０１６５】
また、実施の形態１の複合機１００では、履歴データから再生情報を生成してＳＣＳプロセス１２２に送信してキー操作の再生を行っているので、一連のキー操作の再生を繰り返し自動的に実行してすることができ、デバッグ作業効率および評価効率の向上を図ることができる。
【０１６６】
なお、上記の実施の形態にかかる複合機１００では、キー操作再生処理を開始するに際し、再生コマンドをリモートＰＣ３２０から複合機１００に対して送信し、複合機１００がその再生コマンドを受信することによりモード切替関数の呼び出しが行われるが、これ以外の方法により、複合機１００において再生コマンドを生成し、モード切替関数の呼び出しを行うこともできる。
【０１６７】
例えば、オペレーションパネルから特別な組み合わせのキー入力（例：“[クリア]”＋“１”＋“２”＋“３”＋“[クリア]”）があったときにモード切替関数の呼び出しをしたり、複合機１００に専用キーを設け、その専用キーが押されたときにモード切替関数の呼び出しをする。
（実施の形態２）
実施の形態１にかかる複合機１００は、キーイベント情報および描画情報の履歴データをハードディスク１０５に格納するものであったが、この実施の形態２にかかる複合機１００は、さらに履歴データをリモートＰＣ３２０に送信するものである。
【０１６８】
実施の形態２にかかる複合機１００の構成およびハードウェア構成は、図１および図２に示した実施の形態１の複合機１００と同様であるため説明を省略する。
【０１６９】
図１５は、主としてキーモニタ１１７の構成およびキー操作記録時のデータの流れを示した説明図である。図１５に示すように実施の形態２の複合機１００では、共有メモリ１０７とログ生成部１２９とを備えている点が実施の形態１の複合機１００と異なる。
【０１７０】
ログ生成部１２９は複合機１００で動作するプロセスであり、後述する共有メモリ１０７からキーイベント情報および描画情報を取得して履歴データを生成し、生成された履歴データをＮＣＳプロセス１２８を介してネットワークに接続されたリモートＰＣ３２０に送信するとともに、ハードディスク１０５に格納する。また、ログ生成部１２９は、ハードディスク１０５に格納された履歴データを共有メモリ１０７に格納する。このログ生成部１２９は本発明におけるキーイベント保存手段および描画情報保存手段を構成する。なお、ログ生成部１２９を、リモートＰＣ３２０から履歴データを受信して共有メモリ１０７に格納するように構成しても良い。
【０１７１】
共有メモリ１０７は、ＳＤＲＡＭ２０３に確保され、キーモニタ１１７のプロセスとログ生成部１２９のプロセスから共通にアクセス可能な領域である。
【０１７２】
つぎに、このように構成された実施の形態２にかかる複合機１００におけるキー操作記録処理について説明する。リモートＰＣ３２０からの記録コマンドの送信からキーイベント情報および描画情報のデータ保存部３０８への受け渡しまでの処理（ステップＳ１５０１〜Ｓ１５１３）については、実施の形態１の複合機１００で説明した図１２の処理と同様であるため説明を省略する。
【０１７３】
データ保存部３０８は、タイムスタンプが付加されたキーイベント情報（図５（ｂ））および描画情報（図６（ｂ））を共有メモリ１０７を利用したプロセス間通信によってログ生成部１２９に送信する。すなわち、データ保存部３０８は、タイムスタンプが付加されたキーイベント情報（図５（ｂ））および描画情報（図６（ｂ））を共有メモリ１０７に書き込む（ステップＳ１５１４）。一方、ログ生成部１２９のプロセスは、共有メモリ１０７にアクセスして共有メモリ１０７からキーイベント情報および描画情報を取得することにより（ステップＳ１５１５）、両者のプロセス間通信によるキーイベント情報および描画情報の受け渡しが行われる。
【０１７４】
ログ生成部１２９は、共有メモリ１０７から読み込んだ複数のキーイベント情報および複数の描画情報をまとめて履歴データを生成する。そして、この履歴データをハードディスク１０５に格納するとともに（ステップＳ１５１６）、リモートＰＣ３２０のネットワークアドレスを指定して、ＮＣＳプロセス１２８を介してネットワーク経由でリモートＰＣ３２０に送信する（ステップＳ１５１７、Ｓ１５１８）。
【０１７５】
一方、キー操作再生処理において、キーモニタ１１７が履歴データを読み出す場合には、まずログ生成部１２９がハードディスク１０５から履歴データを読み込んで（ステップＳ１５１９）、共有メモリ１０７に書き込む（ステップＳ１５２０）。そして、キーモニタ１１７の保存データ読み込み部３０５が共有メモリ１０７をアクセスして、共有メモリ１０７に記憶されている履歴データを読み出す（ステップＳ１５２１）、というログ生成部１２９のプロセスとキーモニタ１１７のプロセス間通信によって、履歴データが取得される。これ以降のキー操作再生処理の手順は、図１４で説明した実施の形態１の複合機１００の場合と同様であるので説明を省略する。
【０１７６】
このように実施の形態２にかかる複合機１００では、履歴データをネットワークに接続されたリモートＰＣ３２０に送信しているので、キーイベント情報や描画情報の履歴データをデバッグ作業を行うユーザが使用するリモートＰＣ３２０に直接残すことができ、複合機１００と離れた場所でデバッグ作業を行う場合にユーザにとって便宜なものとなる。
（実施の形態３）
実施の形態１および２にかかる複合機１００は、キー操作再生処理の実行前に、複合機１００を再起動して再生モードに移行する必要があったが、この実施の形態３にかかる複合機１００は動的に再生モードに移行してキー操作再生処理を行うものである。
【０１７７】
実施の形態３にかかる複合機１００の構成およびハードウェア構成は、図１および図２に示した実施の形態１の複合機１００と同様であるため説明を省略する。ただし、実施の形態３の複合機１００において、ＳＣＳ１６２２は、キーモニタ１１７を起動させる起動要求関数と、キーモニタ１１７のプロセスを終了する停止関数を実装している。
【０１７８】
図１６は、実施の形態３の複合機１００におけるキー操作再生処理の初期手順を示す説明図である。キーモニタ１１７によりキー操作再生処理を行う場合には、まずリモートＰＣ３２０から再生コマンドを送信する（ステップＳ１６０１）。このとき、複合機１００を再起動させる必要はない。
【０１７９】
複合機１００のＮＣＳプロセス１６２８が再起動コマンドをネットワーク経由で受信すると（ステップＳ１６０２）、ＮＣＳプロセス１６２８はＳＣＳプロセス１６２２に対し、キーモニタ起動要求関数呼び出しを行う（ステップＳ１６０３）。
【０１８０】
要求を受けたＳＣＳプロセス１６２２では、キーモニタ起動要求関数を実行し、これにより複合機１００内でキーモニタ１１７のプロセスが生成され、起動される（ステップＳ１６０４）。
【０１８１】
一方、キー操作再生処理が終了した場合には、キーモニタ１１７のデータ再生部１６６６は、ＳＣＳプロセス１６２２に対して、終了通知イベントメッセージを送信する（ステップＳ１６０５）。この終了通知イベントメッセージを受信したＳＣＳプロセス１６２２は、停止関数を実行し、これによりキーモニタ１１７のプロセスが消滅する（ステップＳ１６０６）。
【０１８２】
このように実施の形態３にかかる複合機１００では、ＳＣＳ１６２２がキーモニタ１１７を起動する起動関数を備えているので、キー操作再生処理を行う際に起動関数を実行することで、複合機１００を再起動させる必要がなくなり、デバッグ作業時のユーザビリティを向上させることができる。
【０１８３】
また、実施の形態３にかかる複合機１００では、キーモニタ１１７がキー操作の再生処理が終了したときにＳＣＳプロセス１６２２に対し停止要求通知を行い、かかる要求を受けてＳＣＳプロセス１６２２がキーモニタ１１７のプロセスを終了させているので、キー操作再生処理終了時に、自動的にキーモニタ１１７のプロセスを終了させることができ、デバッグ作業時のユーザビリティを向上させることができる。
【０１８４】
(実施の形態４)
実施の形態１〜３にかかる複合機１００では、オペレーションパネル２１０から入力されたキーイベント情報は、ＳＣＳ１２２を介してアプリケーション及びキーモニタ１１７に配信されるが、ＳＣＳ１２２を介さずにオペレーションパネル２１０のドライバがキーイベント情報をアプリケーション及びキーモニタ１７７に配信する構成とすることも可能である。この構成について図１７、図１８を用いて説明する。
【０１８５】
図１７は、図１に示した複合機１００と同じ複合機１００を、エンジンＩ／Ｆの部分をより詳細にして示した図である。
【０１８６】
同図に示したように、各ハードウェアに対応してハードウェア側のドライバとＯＳ側のドライバが備えられており、これらのドライバがエンジンＩ／Ｆを構成する。同図に示すように、実施の形態４では、ＯＳ側のＯＣＳドライバ２１０２がハードウェア側のＯＣＳドライバ２１０１からキーイベント情報を受信し、ＯＳ側のＯＣＳドライバ２１０２がＳＣＳ１２２を介さずに各アプリケーション及びキーモニタ１１７に配信する。
【０１８７】
図１８は、ＯＣＳドライバ２１０１、２１０２の構成を詳細に示した図である。同図に示すように、ハードウェア側のＯＣＳドライバ２１０１では、キー操作機能部２１０３がオペレーションパネル２１０から入力されたキー操作を検出して、それをキーイベント情報として通信ドライバ２１０４に送信する。また、描画機能部２１０５が描画情報を通信ドライバ２１０４から受信して、オペレーションパネル２１０に描画データの表示を行う。また、通信ドライバ２１０４は、ＯＳ側のＯＣＳドライバ２１０２における通信ドライバ２１０６にキーイベント情報を送信する。
【０１８８】
ＯＳ側のＯＣＳドライバ２１０２では、通信ドライバ２１０６がキーイベント情報を各アプリケーション及びキーモニタ１１７に配信する。また、アプリケーションからの描画情報は、ライブラリ関数２１０７を利用して、通信ドライバ２１０６からハードウェア側のＯＣＳドライバ２１０１に送られる。
【０１８９】
なお、同図の点線の丸で囲んだ部分は、実施の形態１〜３における構成である。この場合には、キーイベント情報がＳＣＳ１２２に渡され、そこから各アプリケーションに配信される。今回の実施の形態４では、キーイベント情報の配信に関しては点線の丸で囲んだ部分の機能は使用されない。
【０１９０】
上記のように、実施の形態４によれば、ＳＣＳ１２２を介さなくても、キーイベント情報をアプリケーション及びキーモニタ１１７に配信することが可能となる。なお、キーイベント情報をＳＣＳ１２２を介さずにアプリケーション及びキーモニタ１１７に送る部分以外は、実施の形態１〜３と同じ構成をとることができる。
【０１９１】
なお、実施の形態１〜３にかかる複合機１００では、キーイベント情報や描画情報に付加されたタイムスタンプからキー操作の間隔を算出しているが、履歴データ作成時に、あらかじめタイムスタンプからキー操作の間隔を算出して、履歴データ中に格納するように構成することができる。
【０１９２】
実施の形態１〜３にかかる複合機１００では、いずれもキーモニタ１１７をコントロールサービス層に設け、アプリケーションとのデータの送受信においてアプリケーションプログラムインタフェースを利用可能な構成となっているが、この他、アプリケーション層に例えばキーモニタアプリとして設けるように構成しても良い。
【図面の簡単な説明】
【０１９３】
【図１】実施の形態１にかかる複合機の構成を示すブロック図である。
【図２】実施の形態１の複合機のハードウェア構成図である。
【図３】実施の形態１にかかる複合機におけるキーモニタの構成を示すブロック図である。
【図４】実施の形態１にかかる複合機において、メッセージキューに送信されるメッセージのデータ構造図である。
【図５】図５（ａ）は、実施の形態１にかかる複合機において、メッセージキューに格納されるキーイベント情報のデータ構造図である。図５（ｂ）は、ＳＣＳデータ処理部による処理後のキーイベント情報のデータ構造図である。
【図６】図６（ａ）は、実施の形態１にかかる複合機において、メッセージキューに格納される描画情報のデータ構造図である。図６（ｂ）は、ＯＣＳデータ処理部による処理後の描画情報のデータ構造図である。
【図７】実施の形態１にかかる複合機において、メッセージキューに格納されるコマンドのデータ構造図である。
【図８】図８（ａ）は、実施の形態１にかかる複合機において、履歴データの各レコードのデータ構造図である。図８（ｂ）は、実施の形態１にかかる複合機において生成された再生情報のデータ構造図である。
【図９】実施の形態１にかかる複合機におけるキーモニタ１１７のＳＣＳデータ処理部およびＯＣＳデータ処理部で行われるデータ処理の手順を示すフローチャートである。
【図１０】実施の形態１にかかる複合機におけるキーモニタ１１７のデータ再生部３０６によるキー操作再生処理の手順を示すフローチャートである。
【図１１】実施の形態１にかかる複合機において、キー操作記録処理におけるオペレーションパネル、キーモニタ、ＳＣＳおよびアプリ間のデータの流れを示す説明図である。
【図１２】実施の形態１にかかる複合機において、キー操作記録処理の主としてキーモニタ内部のデータの流れを示す説明図である。
【図１３】実施の形態１にかかる複合機において、キー操作再生処理におけるオペレーションパネル、キーモニタ、ＳＣＳおよびアプリ間のデータの流れを示す説明図である。
【図１４】実施の形態１にかかる複合機において、キー操作再生処理の主としてキーモニタ１１７内部のデータの流れを示す説明図である。
【図１５】実施の形態２にかかる複合機において、主としてキーモニタの構成およびキー操作記録時のデータの流れを示した説明図である。
【図１６】実施の形態３にかかる複合機において、キー操作再生処理の初期手順を示す説明図である。
【図１７】実施の形態４において、図１に示した複合機を、エンジンＩ／Ｆの部分をより詳細にして示した図である。
【図１８】実施の形態４において、ＯＣＳドライバ２１０１、２１０２の構成を詳細に示した図である。
【符号の説明】
【０１９４】
１００ 複合機
１０１ 白黒ラインプリンタ
１０２ カラーラインプリンタ
１０３ スキャナ
１０４ ファクシミリ
１０５ ハードディスク（ＨＤ）
１０６ ネットワークインタフェース
１０７ 共有メモリ
１１０ ソフトウェア群
１１１ プリンタアプリ
１１２ コピーアプリ
１１３ ファックスアプリ
１１４ スキャナアプリ
１１５ ネットファイルアプリ
１１７ キーモニタ
１２０ プラットホーム
１２１ 汎用ＯＳ
１２２  １６２２ ＳＣＳ
１２３ ＳＲＭ
１２４ ＥＣＳ
１２５ ＭＣＳ
１２６ ＯＣＳライブラリ
１２７ ＦＣＳ
１２８，１６２８ ＮＣＳ
１２９ ログ生成部
１３０ アプリケーション
２００ コントローラボード
２０１ ＡＳＩＣ
２０２ ＣＰＵ
２０３ ＳＤＲＡＭ（ＲＡＭ）
２０４ フラッシュメモリ（ＲＯＭ）２０５ ＨＤ
２０８ ＳＲＡＭ
２１０ オペレーションパネル
２３０ ＵＳＢ
２４０ ＩＥＥＥ１３９４
２５０ プリンタ
３０１ ＳＣＳデータ処理部
３０２ ＯＣＳデータ処理部
３０３ リモートデータ処理部
３０４ データ判定処理部
３０５ 保存データ読み込み部
３０６ データ再生部
３０７ データ印刷部
３０８ データ保存部
３１１ メッセージキュー
３３０ ネットワーク
２１０１、２１０２  ＯＣＳドライバ
２１０４、２１０６  通信ドライバ
【図１】
2006221671.tif 000003
【図２】
2006221671.tif 000004
【図３】
2006221671.tif 000005
【図４】
2006221671.tif 000006
【図５】
2006221671.tif 000007
【図６】
2006221671.tif 000008
【図７】
2006221671.tif 000009
【図８】
2006221671.tif 000010
【図９】
2006221671.tif 000011
【図１０】
2006221671.tif 000012
【図１１】
2006221671.tif 000013
【図１２】
2006221671.tif 000014
【図１３】
2006221671.tif 000015
【図１４】
2006221671.tif 000016
【図１５】
2006221671.tif 000017
【図１６】
2006221671.tif 000018
【図１７】
2006221671.tif 000019
【図１８】
2006221671.tif 000020