しかしながら、複合機をデバッグする場合に、ネットワーク接続されたPC側でデバッグ作業を行うと、ログファイルのファイル転送が煩雑になるとともに、デバッグ中の複合機の動作確認が困難となる。このため、複合機側のたとえば操作部となるオペレーションパネルの表示部にログファイルを表示して、デバッグ作業を行えることが好ましい。
しかしながら、複合機に搭載されているメモリは、PCなどに搭載されるメモリの容量に比べて小容量であることが一般的である。このため、メモリのリソース不足でログファイル表示のためのプログラムを複合機で実行することができなかったり、実行できても使用するメモリのリソースの限界まで使用することにより、ログファイルをオペレーションパネルにスムースに表示することができない。
ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置(複合機)を発明した。この複合機によれば、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。
このような新規な複合機では、アプリケーションのプロセスが機能ごとに複数存在するばかりか、アプリケーションの少なくとも2つが共通的に必要とするサービスを提供するコントロールサービスのプロセスが存在し、複合機内部には、従来の複合機に比べて非常に多くのプロセスが互いにプロセス間通信を行いながら並列実行されている。また、各プロセス内部には、複数のスレッドが起動されており、スレッドレベルでの並列実行を実現しながら他のプロセスとプロセス間通信を行ってユーザサービスの機能を実現している。さらには、かかる複合機では、コントロールサービスのプロセスは、複数のアプリケーションが共通に必要とするサービスを提供するという位置づけにあるため、各コントロール
サービスは多数のアプリケーションのプロセスとの間でデータ送受信が発生する。加えて、アプリケーションのプロセスとの間ばかりではなく、コントロールサービス同士のプロセス間においてもデータの送受信が生じる。
このように、出願人が発明をした新規な複合機は、多数のプロセスやスレッドが複雑に絡み合って協働することによりコピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するという特徴的な構成となっている。このため、このような新規な複合機では、多数のプロセスで行われるプロセス間通信データからログファイルを生成してデバッグ作業を行う必要がある。しかし、ログファイルの中のすべてのプロセス間通信データが必ずしもデバッグ作業に必要なわけではなく、ログファイルの中の必要な情報のみを表示することができれば十分である。
この発明は上記に鑑みてなされたもので、多数のプロセスが動作する環境でプロセス間通信情報を表示する際に、必要なコンポーネントだけを起動して、メモリの使用リソースを低減させることができる情報処理装置、プロセス間通信履歴表示方法およびその方法をコンピュータに実行させるプログラムを得ることを目的とする。
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、複数のプログラムがそれぞれプロセスとして動作し、各プロセス間でプロセス間通信を行う情報処理装置であって、プロセス間通信に関する一または複数の通信情報を含む通信履歴情報が格納された記憶手段と、互いに独立して起動可能な複数のコンポーネントからなり、前記通信履歴情報の前記通信情報を表示装置に表示する通信履歴表示手段と、前記通信情報の種別および表示態様を設定した制御情報を入力し、入力した前記制御情報の前記種別に基づいて、抽出する通信情報の表示に必要な一または複数のコンポーネントを前記通信履歴表示手段から選定し、選定された前記コンポーネントを起動するコンポーネント起動手段と、を備え、前記通信履歴表示手段は、起動された前記コンポーネントにより、前記種別に基づいて前記通信履歴情報から通信情報を抽出し、抽出された通信情報を表示装置に前記表示態様で表示することを特徴とする。
また、請求項2にかかる発明は、請求項1に記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、前記通信履歴情報から前記通信情報のデータ種別およびプロセス識別情報を含むヘッダ情報を抽出するヘッダ抽出手段を備え、前記コンポーネント起動手段は、前記制御情報に前記ヘッダ情報のみを表示する旨の設定がされているときに、前記ヘッダ抽出手段を選定して起動することを特徴とする。
また、請求項3にかかる発明は、請求項1に記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、前記通信履歴情報から前記通信情報に含まれるメッセージまたは関数を識別するメッセージ・関数識別情報を、メッセージ名または関数名に変換するメッセージ名・関数名変換手段を備え、前記コンポーネント起動手段は、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記メッセージ名・関数名変換手段を選定して起動することを特徴とする。
また、請求項4にかかる発明は、請求項1または3に記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、前記通信履歴情報から前記通信情報に含まれるプロセス識別情報を、プロセス名に変換するプロセス名変換手段を備え、前記コンポーネント起動手段は、前記制御情報にプロセス識別情報の変換指定がされているときに、前記プロセス名変換手段を選定して起動することを特徴とする。
また、請求項5にかかる発明は、請求項1、3または4に記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、前記通信履歴情報から前記通信情報に含まれるメッセージまたは関数の詳細情報を抽出する詳細情報抽出手段を備え、前記コンポーネント起動手段は、前記制御情報にメッセージまたは関数の詳細情報の表示指定がされているときに、前記詳細情報抽出手段を選定して起動することを特徴とする。
また、請求項6にかかる発明は、請求項1〜5のいずれか一つに記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、前記通信履歴情報からプロセスの生成および消滅経過を抽出するプロセス経過情報抽出手段を備え、前記コンポーネント起動手段は、前記制御情報にプロセスの生成および消滅経過の表示指定がされているときに、前記プロセス経過情報抽出手段を選定して起動することを特徴とする。
また、請求項7にかかる発明は、請求項1〜6のいずれか一つに記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、前記通信履歴情報から前記通信情報に含まれるキーイベントメッセージのキー識別情報を、キー名称に変換するキー変換手段を備え、前記コンポーネント起動手段は、前記制御情報にキー名変換指定がされているときに、前記キー変換手段を選定して起動することを特徴とする。
また、請求項8にかかる発明は、複数のプログラムがそれぞれプロセスとして動作し、各プロセス間でプロセス間通信を行う情報処理装置であって、互いに独立して起動可能な複数のコンポーネントからなり、プロセス間通信の一または複数の通信情報を含む通信履歴情報の前記通信情報を時刻情報とともに通信履歴表示情報として表示装置に表示する通信履歴表示手段と、前記通信情報の種別および表示態様を設定した制御情報を入力し、入力した前記制御情報の前記種別に基づいて、抽出する通信情報の表示に必要な一または複数のコンポーネントを前記通信履歴表示手段から選定し、選定された前記コンポーネントを起動するコンポーネント起動手段と、を備え、前記通信履歴表示手段は、起動された前記コンポーネントにより、前記種別に基づいて前記通信履歴情報から通信情報を抽出し、抽出された通信情報を時刻情報とともに前記通信履歴表示情報として表示装置に前記表示態様で表示することを特徴とする。
また、請求項9にかかる発明は、請求項8に記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、プロセスから前記通信情報のデータ種別およびプロセス識別情報を含むヘッダ情報を抽出するヘッダ抽出手段を備え、前記コンポーネント起動手段は、前記制御情報に前記ヘッダ情報のみを表示する旨の設定がされているときに、前記ヘッダ抽出手段を選定して起動することを特徴とする。
また、請求項10にかかる発明は、請求項8に記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、プロセスから前記通信情報に含まれるメッセージまたは関数を識別するメッセージ・関数識別情報を、メッセージ名または関数名に変換するメッセージ名・関数名変換手段を備え、前記コンポーネント起動手段は、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記メッセージ名・関数名変換手段を選定して起動することを特徴とする。
また、請求項11にかかる発明は、請求項8または10に記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、プロセスから前記通信情報に含まれるプロセス識別情報を、プロセス名に変換するプロセス名変換手段を備え、前記コンポーネント起動手段は、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記プロセス名変換手段を選定して起動することを特徴とする。
また、請求項12にかかる発明は、請求項8、10または11に記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、プロセスから前記通信情報に含まれるメッセージまたは関数の詳細情報を抽出する詳細情報抽出手段を備え、前記コンポーネント起動手段は、前記制御情報にメッセージまたは関数の詳細情報の表示指定がされているときに、前記詳細情報抽出手段を選定して起動することを特徴とする。
また、請求項13にかかる発明は、請求項8〜12のいずれか一つに記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、プロセスからプロセスの生成および消滅経過を抽出するプロセス経過情報抽出手段を備え、前記コンポーネント起動手段は、前記制御情報にプロセスの生成および消滅経過の表示指定がされているときに、前記プロセス経過情報抽出手段を選定して起動することを特徴とする。
また、請求項14にかかる発明は、請求項8〜13のいずれか一つに記載の情報処理装置において、前記通信履歴表示手段は、前記コンポーネントとして、プロセスから前記通信情報に含まれるキーイベントメッセージのキー識別情報を、キー名称に変換するキー変換手段を備え、
前記コンポーネント起動手段は、前記制御情報にキー名変換指定がされているときに、前記キー変換手段を選定して起動することを特徴とする。
また、請求項15にかかる発明は、請求項1〜14のいずれか一つに記載の情報処理装置において、前記通信履歴表示手段は、さらに前記表示装置に表示する前記通信情報を、ネットワークに接続されて複数の情報処理装置を管理する管理装置に送信することを特徴とする。
また、請求項16にかかる発明は、複数のプログラムがそれぞれプロセスとして動作し、各プロセス間でプロセス間通信を行う情報処理装置で行われるプロセス間通信の通信履歴を表示するプロセス間通信履歴表示方法であって、プロセス間通信の一または複数の通信情報を含む通信履歴情報の通信情報を表示装置に表示する通信履歴表示ステップと、前記通信情報の種別および表示態様を設定した制御情報を入力し、入力した前記種別に基づいて、抽出する通信情報の表示に必要な一または複数のコンポーネントを選定し、選定された前記コンポーネントを起動するコンポーネント起動ステップと、を含み、前記通信履歴表示ステップは、起動された前記コンポーネントにより、前記種別に基づいて前記通信履歴情報から通信情報を抽出し、抽出された通信情報を表示装置に前記表示態様で表示することを特徴とする。
また、請求項17にかかる発明は、請求項16に記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報に前記ヘッダ情報のみを表示する旨の設定がされているときに、前記通信履歴情報から前記通信情報のデータ種別およびプロセス識別情報を含むヘッダ情報を抽出するヘッダ抽出手段を選定して起動することを特徴とする。
また、請求項18にかかる発明は、請求項16に記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記通信履歴情報から前記通信情報に含まれるメッセージまたは関数を識別するメッセージ・関数識別情報をメッセージ名または関数名に変換するメッセージ名・関数名変換手段を選定して起動することを特徴とする。
また、請求項19にかかる発明は、請求項16または18に記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にプロセス識別情報の変換指定がされているときに、前記通信履歴情報から前記通信情報に含まれるプロセス識別情報を、プロセス名に変換するプロセス名変換手段を選定して起動することを特徴とする。
また、請求項20にかかる発明は、請求項16、18または19に記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にメッセージまたは関数の詳細情報の表示指定がされているときに、前記通信履歴情報から前記通信情報に含まれるメッセージまたは関数の詳細情報を抽出する詳細情報抽出手段を選定して起動することを特徴とする。
また、請求項21にかかる発明は、請求項16〜20のいずれか一つに記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にプロセスの生成および消滅経過の表示指定がされているときに、前記通信履歴情報からプロセスの生成および消滅経過を抽出するプロセス経過情報抽出手段を選定して起動することを特徴とする。
また、請求項22にかかる発明は、請求項16〜21のいずれか一つに記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にキー名変換指定がされているときに、前記通信履歴情報から前記通信情報に含まれるキーイベントメッセージのキー識別情報を前記表示装置におけるキー名称に変換するキー変換手段を選定して起動することを特徴とする。
また、請求項23にかかる発明は、プロセス間通信の一または複数の通信情報を含む通信履歴情報の通信情報を時刻情報とともに通信履歴表示情報として表示装置に表示する通信履歴表示ステップと、前記通信情報の種別および表示態様を設定した制御情報を入力し、入力した前記制御情報の前記種別に基づいて、抽出する通信情報の表示に必要な一または複数のコンポーネントを選定し、選定された前記コンポーネントを起動するコンポーネント起動ステップと、を含み、前記通信履歴表示ステップは、起動された前記コンポーネントにより、前記種別に基づいて前記通信履歴情報から通信情報を抽出し、抽出された通信情報を時刻情報とともに前記通信履歴表示情報として表示装置に前記表示態様で表示することを特徴とする。
また、請求項24にかかる発明は、請求項23に記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報に前記ヘッダ情報のみを表示する旨の設定がされているときに、前記プログラムのプロセスから前記通信情報のデータ種別およびプロセス識別情報を含むヘッダ情報を抽出するヘッダ抽出手段を選定して起動することを特徴とする。
また、請求項25にかかる発明は、請求項23に記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記プログラムのプロセスから前記通信情報に含まれるメッセージまたは関数を識別するメッセージ・関数識別情報を、メッセージ名または関数名に変換するメッセージ名・関数名変換手段を選定して起動することを特徴とする。
また、請求項26にかかる発明は、請求項23または25に記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記プログラムのプロセスから前記通信情報に含まれるプロセス識別情報を、プロセス名に変換するプロセス名変換手段を選定して起動することを特徴とする。
また、請求項27にかかる発明は、請求項23、25または26に記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にメッセージまたは関数の詳細情報の表示指定がされているときに、前記プログラムのプロセスから前記通信情報に含まれるメッセージまたは関数の詳細情報を抽出する詳細情報抽出手段を選定して起動することを特徴とする。
また、請求項28にかかる発明は、請求項23〜27のいずれか一つに記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にプロセスの生成および消滅経過の表示指定がされているときに、前記プログラムのプロセスからプロセスの生成および消滅経過を抽出するプロセス経過情報抽出手段を選定して起動することを特徴とする。
また、請求項29にかかる発明は、請求項23〜28のいずれか一つに記載のプロセス間通信履歴表示方法において、前記コンポーネント起動ステップは、前記制御情報にキー名変換指定がされているときに、前記プログラムのプロセスから前記通信情報に含まれるキーイベントメッセージのキー識別情報を、前記表示装置におけるキー名称に変換するキー変換手段を選定して起動することを特徴とする。
また、請求項30にかかる発明は、請求項16〜29のいずれか一つに記載のプロセス間通信履歴表示方法において、前記通信履歴表示ステップは、さらに前記表示装置に表示する前記通信情報を、ネットワークに接続されて複数の情報処理装置を管理する管理装置に送信することを特徴とする。
また、請求項31にかかる発明は、請求項16〜30のいずれか一つに記載されたプロセス間通信履歴表示方法をコンピュータに実行させるプログラムである。
請求項1の発明によれば、通信履歴表示手段が互いに独立して起動可能な複数のコンポーネントからなり、コンポーネント起動手段によって通信情報の種別および表示態様を設定した制御情報を入力し、入力した制御情報の種別に基づいて、抽出する通信情報の表示に必要な一または複数のコンポーネントを通信履歴表示手段から選定し、選定されたコンポーネントを起動して、このコンポーネントにより、起動されたコンポーネントにより、種別に基づいて通信履歴情報から通信情報を抽出し、抽出された通信情報を表示装置に表示態様で表示することで、制御情報と連携して通信情報の表示に必要なコンポーネントのみを起動することができるので、デバッグ作業時のリソースの低減を図ることができる。
請求項2の発明によれば、通信履歴表示手段が前記コンポーネントとして、前記通信情報のデータ種別およびプロセス識別情報を含むヘッダ情報を抽出するヘッダ抽出手段を備え、前記コンポーネント起動手段によって、前記制御情報に前記ヘッダ情報のみを表示する旨の設定がされているときに、前記ヘッダ抽出手段を選定して起動することで、メモリ容量が十分でない場合に通信情報のヘッダのみを表示してデバッグ作業が行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項3の発明によれば、通信履歴表示手段が前記コンポーネントとして、前記通信情報に含まれるメッセージまたは関数を識別するメッセージ・関数識別情報を、メッセージ名または関数名に変換するメッセージ名・関数名変換手段を備え、前記コンポーネント起動手段によって、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記メッセージ名・関数名変換手段を選定して起動することで、メモリ容量に応じてメッセージ名や関数名を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項4の発明によれば、前記通信履歴表示手段が前記コンポーネントとして、前記通信情報に含まれるプロセス識別情報を、プロセス名に変換するプロセス名変換手段を備え、前記コンポーネント起動手段によって前記制御情報にプロセス識別情報の変換指定がされているときに、前記プロセス名変換手段を選定して起動することで、メモリ容量に応じてプロセス名を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項5の発明によれば、前記通信履歴表示手段が前記コンポーネントとして、前記通信情報に含まれるメッセージまたは関数の詳細情報を抽出する詳細情報抽出手段を備え、前記コンポーネント起動手段によって前記制御情報にメッセージまたは関数の詳細情報の表示指定がされているときに、前記詳細情報抽出手段を選定して起動することで、メモリ容量に応じてメッセージまたは関数の詳細情報を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項6の発明によれば、前記通信履歴表示手段が前記コンポーネントとして、前記通信履歴情報からプロセスの生成および消滅経過を抽出するプロセス経過情報抽出手段を備え、前記コンポーネント起動手段によって、前記制御情報にプロセスの生成および消滅経過の表示指定がされているときに、前記プロセス経過情報抽出手段を選定して起動することで、メモリ容量に応じてプロセスの生成および消滅経過を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項7の発明によれば、前記通信履歴表示手段が前記コンポーネントとして、前記通信履歴情報に含まれるキーイベントメッセージのキー識別情報を、前記表示装置におけるキー名称に変換するキー変換手段を備え、前記コンポーネント起動手段によって、前記制御情報にキー名変換指定がされているときに、前記キー変換手段を選定して起動することで、メモリ容量に応じてキー名称を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項8の発明によれば、通信履歴表示手段が互いに独立して起動可能な複数のコンポーネントからなり、コンポーネント起動手段によって通信情報の種別および表示態様を設定した制御情報を入力し、入力した制御情報の種別に基づいて、抽出する通信情報の表示に必要な一または複数のコンポーネントを通信履歴表示手段から選定し、選定されたコンポーネントを起動して、このコンポーネントにより、種別に基づいて通信履歴情報から通信情報を抽出し、抽出された通信情報を時刻情報とともに通信履歴表示情報として表示装置に表示態様で表示することで、制御情報と連携して通信情報の表示に必要なコンポーネントのみを起動することができるので、デバッグ作業時のリソースの低減を図ることができる。また、請求項8にかかる発明によれば、通信履歴表示手段が直接、プログラムのプロセスから通信情報を抽出して表示するので、通信履歴表示を速やかに行うことができ、デバッグ作業の効率化を図ることができる。
請求項9の発明によれば、通信履歴表示手段が前記コンポーネントとして、前記プログラムのプロセスから前記通信情報のデータ種別およびプロセス識別情報を含むヘッダ情報を抽出するヘッダ抽出手段を備え、前記コンポーネント起動手段によって、前記制御情報に前記ヘッダ情報のみを表示する旨の設定がされているときに、前記ヘッダ抽出手段を選定して起動することで、メモリ容量が十分でない場合に通信情報のヘッダのみを表示してデバッグ作業が行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項10の発明によれば、通信履歴表示手段が前記コンポーネントとして、前記プログラムのプロセスから前記通信情報に含まれるメッセージまたは関数を識別するメッセージ・関数識別情報を、メッセージ名または関数名に変換するメッセージ名・関数名変換手段を備え、前記コンポーネント起動手段によって、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記メッセージ名・関数名変換手段を選定して起動することで、メモリ容量に応じてメッセージ名や関数名を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項11の発明によれば、前記通信履歴表示手段が前記コンポーネントとして、前記プログラムのプロセスから前記通信情報に含まれるプロセス識別情報を、プロセス名に変換するプロセス名変換手段を備え、前記コンポーネント起動手段によって、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記プロセス名変換手段を選定して起動することで、メモリ容量に応じてプロセス名を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項12の発明によれば、前記通信履歴表示手段が前記コンポーネントとして、前記プログラムのプロセスから前記通信情報に含まれるメッセージまたは関数の詳細情報を抽出する詳細情報抽出手段を備え、前記コンポーネント起動手段によって、前記制御情報にメッセージまたは関数の詳細情報の表示指定がされているときに、前記詳細情報抽出手段を選定して起動することで、メモリ容量に応じてメッセージまたは関数の詳細情報を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項13の発明によれば、前記通信履歴表示手段が前記コンポーネントとして、前記プログラムのプロセスからプロセスの生成および消滅経過を抽出するプロセス経過情報抽出手段を備え、前記コンポーネント起動手段は、前記制御情報にプロセスの生成および消滅経過の表示指定がされているときに、前記プロセス経過情報抽出手段を選定して起動することで、メモリ容量に応じてプロセスの生成および消滅経過を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項14の発明によれば、通信履歴表示手段が前記コンポーネントとして、前記プログラムのプロセスから前記通信情報に含まれるキーイベントメッセージのキー識別情報を、前記表示装置におけるキー名称に変換するキー変換手段を備え、前記コンポーネント起動手段によって、前記制御情報にキー名変換指定がされているときに、前記キー変換手段を選定して起動することで、メモリ容量に応じてキー名称を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項15の発明によれば、通信履歴表示手段は、さらに前記表示装置に表示する前記通信情報を、ネットワークに接続されて複数の情報処理装置を管理する管理装置に送信することで、管理装置側で通信履歴を把握することができ、通信履歴に基づいて情報処理装置ごとに適切な対応をとることができる。
請求項16の発明によれば、コンポーネント起動ステップによって通信情報の種別および表示態様を設定した制御情報を入力し、入力した種別に基づいて、抽出する通信情報の表示に必要な一または複数のコンポーネントを選定し、選定されたコンポーネントを起動して、このコンポーネントにより、種別に基づいて通信履歴情報から通信情報を抽出し、抽出された通信情報を表示装置に表示態様で表示することで、制御情報と連携して通信情報の表示に必要なコンポーネントのみを起動することができるので、デバッグ作業時のリソースの低減を図ることができる。
請求項17の発明によれば、前記コンポーネント起動ステップは、前記制御情報に前記ヘッダ情報のみを表示する旨の設定がされているときに、前記通信履歴情報から前記通信情報のデータ種別およびプロセス識別情報を含むヘッダ情報を抽出するヘッダ抽出手段を選定して起動することで、メモリ容量が十分でない場合に通信情報のヘッダのみを表示してデバッグ作業が行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項18の発明によれば、前記コンポーネント起動ステップは、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記通信履歴情報から前記通信情報に含まれるメッセージまたは関数を識別するメッセージ・関数識別情報をメッセージ名または関数名に変換するメッセージ名・関数名変換手段を選定して起動することで、メモリ容量に応じてメッセージ名や関数名を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項19の発明によれば、前記コンポーネント起動ステップは、前記制御情報にプロセス識別情報の変換指定がされているときに、前記通信履歴情報から前記通信情報に含まれるプロセス識別情報を、プロセス名に変換するプロセス名変換手段を選定して起動することで、メモリ容量に応じてプロセス名を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項20の発明によれば、前記コンポーネント起動ステップは、前記制御情報にメッセージまたは関数の詳細情報の表示指定がされているときに、前記通信履歴情報から前記通信情報に含まれるメッセージまたは関数の詳細情報を抽出する詳細情報抽出手段を選定して起動することで、メモリ容量に応じてメッセージまたは関数の詳細情報を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項21の発明によれば、前記コンポーネント起動ステップは、前記制御情報にプロセスの生成および消滅経過の表示指定がされているときに、前記通信履歴情報からプロセスの生成および消滅経過を抽出するプロセス経過情報抽出手段を選定して起動することで、メモリ容量に応じてプロセスの生成および消滅経過を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項22の発明によれば、前記コンポーネント起動ステップは、前記制御情報にキー名変換指定がされているときに、前記通信履歴情報から前記通信情報に含まれるキーイベントメッセージのキー識別情報を前記表示装置におけるキー名称に変換するキー変換手段を選定して起動することで、メモリ容量に応じてキー名称を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項23の発明によれば、コンポーネント起動ステップによって通信情報の種別および表示態様を設定した制御情報を入力し、入力した制御情報の種別に基づいて、抽出する通信情報の表示に必要な一または複数のコンポーネントを選定し、選定されたコンポーネントを起動して、このコンポーネントにより、種別に基づいて通信履歴情報から通信情報を抽出し、抽出された通信情報を時刻情報とともに通信履歴表示情報として表示装置に表示態様で表示することで、制御情報と連携して通信情報の表示に必要なコンポーネントのみを起動することができるので、デバッグ作業時のリソースの低減を図ることができる。また、請求項23にかかる発明によれば、通信履歴表示ステップで直接、プログラムのプロセスから通信情報を抽出して表示するので、通信履歴表示を速やかに行うことができ、デバッグ作業の効率化を図ることができる。
請求項24の発明によれば、前記コンポーネント起動ステップは、前記制御情報に前記ヘッダ情報のみを表示する旨の設定がされているときに、前記プログラムのプロセスから前記通信情報のデータ種別およびプロセス識別情報を含むヘッダ情報を抽出するヘッダ抽出手段を選定して起動することで、メモリ容量が十分でない場合に通信情報のヘッダのみを表示してデバッグ作業が行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項25の発明によれば、前記コンポーネント起動ステップは、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記プログラムのプロセスから前記通信情報に含まれるメッセージまたは関数を識別するメッセージ・関数識別情報を、メッセージ名または関数名に変換するメッセージ名・関数名変換手段を選定して起動することで、メモリ容量に応じてメッセージ名や関数名を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項26の発明によれば、前記コンポーネント起動ステップは、前記制御情報にメッセージ・関数識別情報の変換指定がされているときに、前記プログラムのプロセスから前記通信情報に含まれるプロセス識別情報を、プロセス名に変換するプロセス名変換手段を選定して起動することで、メモリ容量に応じてプロセス名を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項27の発明によれば、前記コンポーネント起動ステップは、前記制御情報にメッセージまたは関数の詳細情報の表示指定がされているときに、前記プログラムのプロセスから前記通信情報に含まれるメッセージまたは関数の詳細情報を抽出する詳細情報抽出手段を選定して起動することで、メモリ容量に応じてメッセージまたは関数の詳細情報を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項28の発明によれば、前記コンポーネント起動ステップは、前記制御情報にプロセスの生成および消滅経過の表示指定がされているときに、前記プログラムのプロセスからプロセスの生成および消滅経過を抽出するプロセス経過情報抽出手段を選定して起動することで、メモリ容量に応じてプロセスの生成および消滅経過を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項29の発明によれば、前記コンポーネント起動ステップは、前記制御情報にキー名変換指定がされているときに、前記プログラムのプロセスから前記通信情報に含まれるキーイベントメッセージのキー識別情報を、前記表示装置におけるキー名称に変換するキー変換手段を選定して起動することで、メモリ容量に応じてキー名称を表示するか否かを選択してデバッグ作業を行えるので、デバッグ作業時のリソースの低減を図ることができる。
請求項30の発明によれば、前記通信履歴表示ステップは、さらに前記表示装置に表示する前記通信情報を、ネットワークに接続されて複数の情報処理装置を管理する管理装置に送信することで、管理装置側で通信履歴を把握することができ、通信履歴に基づいた情報処理装置ごとに適切な対応をとることができる。
請求項31にかかる発明は、請求項16〜30のいずれか一つに記載されたプロセス間通信履歴表示方法をコンピュータに実行させるプログラムであるので、請求項16〜30のいずれか一つに記載されたプロセス間通信履歴表示方法をコンピュータによって実行することができる。
以下に添付図面を参照して、この発明にかかる情報処理装置、プロセス間通信履歴表示方法およびその方法をコンピュータに実行させるプログラムの好適な実施の形態を詳細に説明する。
(実施の形態1)
図1は、この発明の実施の形態1である画像形成装置(以下、「複合機」という)の機能的構成を示すブロック図である。図1に示すように、複合機100は、白黒ラインプリンタ(B&W LP)101と、カラーラインプリンタ(Color LP)102と、ハードディスク(HD)103と、スキャナ、ファクシミリ、メモリ、ネットワークインタフェースなどのハードウェアリソース104を有するとともに、プラットホーム120とアプリケーション130とから構成されるソフトウェア群110とを備えている。
プラットホーム120は、アプリケーション130からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121と、通信履歴生成部117とを有する。
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。なお、このプラットホーム120は、あらかじめ定義された関数により前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
汎用OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。
SRM123のプロセスは、SCS122とともにシステムの制御およびリソースの管理を行うものである。SRM123のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394 I/F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
SCS122のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。
ECS124のプロセスは、白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、スキャナ、ファクシミリなどからなるハードウェアリソース104のエンジンの制御を行う。
MCS125のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。
FCS127のプロセスは、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
NCS128のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーション130からデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
OCS126は、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)の制御を行う。OCS126は、オペレーションパネルからキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS122に送信するOCSプロセスの部分と、アプリケーション130またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたOCSライブラリの部分とから構成される。このOCSライブラリは、アプリケーション130、コントロールサービスおよび後述する表示処理部の各モジュールにリンクされて実装されている。なお、OCS126のすべてをプロセスとして動作させるように構成しても良く、あるいはOCS126のすべてをOCSライブラリとして構成しても良い。
アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116と、通信ログファイルをオペレーションパネルに表示するために実行されるコンポーネントを選定して起動するコンポーネント起動アプリ118とを有している。これらのアプリケーション130はいずれも複合機100の起動時に初期化部(図示せず)によりプロセスとして生成され、動作する。
コンポーネント起動アプリ118を除く各アプリケーション130と各コントロールサービスには、ロギングハンドラが設けられている。このロギングハンドラは、自プロセスが他のプロセスからメッセージや関数呼び出しなどのデータを受信した場合、受信データに応じた処理を実行する前に、受信データを各プロセスごとに確保された共有メモリに書き込む処理を行う。
通信履歴生成部117は、コントロールサービス層でプロセスとして動作し、アプリケーション130とコントロールサービスにより共有メモリに書き込まれた受信データから、かかる受信データを記録した通信ログファイルを生成するものである。ここで、通信ログファイルは本発明における通信履歴情報を構成する。
このように、実施の形態1にかかる複合機100には、複数のアプリケーション130および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション130に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いに協調動作を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。
また、複合機100では、サードベンダーなどの第三者がコントロールサービス層の上のアプリケーション層に新規なアプリケーションを開発して搭載することが可能となっている。
なお、実施の形態1にかかる複合機100では、複数のアプリケーション130のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション130とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、アプリケーション130が全く存在せず、コントロールサービスのプロセスと汎用OS121とハードウェア資源だけを設け、アプリケーション130をNCS128により接続されたネットワークを介して新規アプリケーションをネットワーク経由で搭載可能な構成とすることもできる。また、各アプリケーション130は、アプリケーションごとに追加または削除することができる。
図2は、図1に示した実施の形態1の複合機100のハードウェア構成図である。図2に示すように、この複合機100は、CPU202、SDRAM203、SRAM208、フラッシュメモリ(フラッシュROM)204、フラッシュカードインタフェース部206およびHD103などをASIC201に接続したコントローラボード200と、オペレーションパネル210と、ファックスコントロールユニット(FCU)220と、USB230と、IEEE1394 240と、プリンタ250とから構成されている。オペレーションパネル210はASIC201に直接接続され、FCU220、USB230、IEEE1394 240およびプリンタ250はPCIバスを介してASIC201に接続されている。
フラッシュカードインタフェース部206は、フラッシュカード207を挿入して、フラッシュカード207とデータのやりとりを行うインタフェースである。このフラッシュカードインタフェース部206によって、通信ログファイルから抽出する情報の抽出条件を設定した制御ファイルを記録したフラッシュカード207を読み込むことができるようになっている。なお、この制御ファイルは本発明における制御情報を構成し、フラッシュカード207およびフラッシュカードインタフェース部206は本発明における記憶手段を構成する。
フラッシュROM204には、各コントロールサービス、各アプリケーション130、通信履歴生成部117、および後述する通信履歴表示部308を構成するコンポーネント起動アプリ118他各部のプログラムが格納されている。
SDRAM203には、各アプリケーション130や各コントロールサービスごとに、これらの各プロセスが通信履歴生成部117のプロセスとの間で、通信情報(受信データ)の送受信を行う際にアクセスされる共有メモリが確保される。
HD103には、通信履歴生成部117によってアプリケーション130やコントロールサービスの受信データ(通信情報)からなる通信ログファイルが生成される。
オペレーションパネル210は、利用者のキー入力、ボタン押下などのキー操作を入力する操作部と、ボタン、ウィンドウ、各種画面などの描画データを表示する表示部とから構成される。
図3は、通信ログファイル生成および通信履歴表示を実行するプロセスの全体構成を示したブロック図である。なお、図3は、コピーアプリ112とMCS125のそれぞれを対象として、各プロセスのプロセス間通信による受信データから通信ログファイル305を生成し、オペレーションパネル210に表示する例を示している。なお、コントロールサービス、アプリケーション130、通信履歴生成部117およびコンポーネント起動アプリ118は、複合機100の起動時に初期化部(図示せず)によって、フラッシュROM204から読み出されてSDRAM203上にプロセスとして実行される。
図3に示すように、コピーアプリ112のプロセスとMCS125のプロセスの内部には、ロギングハンドラ301が起動される。このロギングハンドラ301は、制御ファイル304の設定内容を解析し、自プロセスが対象となっている場合にプロセス間通信による受信データを、各プロセスごとの共有メモリのFIFOキュー303に格納する。
通信履歴生成部117は、ユーザがフラッシュカードインタフェース部206に挿入したフラッシュカード207により入力した制御ファイル304を読み込み、受信データを取得する対象プロセスごとに共有メモリ302をSDRAM203に確保する。そして、各共有メモリ302内部にコントロールサービスまたはアプリケーション130のプロセスによる受信データを格納するFIFO(First-In First-Out)キュー303を生成する。このFIFOキュー303は、各プロセスからの受信データを格納順に読み出し可能となっている。このように共有メモリ302を各プロセスごとに生成しているので、受信データの書き込み元のプロセスを容易に判別することが可能となっている。
また、通信履歴生成部117は、一定時間ごとに各共有メモリ302内のFIFOキュー303を参照して、受信データが格納されているか否かをチェックする。そして、FIFOキュー303に受信データが格納されている場合には、受信データを読み出して、HD103に通信ログファイル305を生成する。
次に、制御ファイル304について説明する。図4は、実施の形態1の複合機100で使用される制御ファイル304の内容を示す説明図である。なお、制御ファイル304は、このようにフラッシュカード207に記録する他、リモートPCなどからネットワーク経由で、あるいはオペレーションパネル210からのユーザの入力操作によって、HD103の汎用OS121のシステムディレクトリに生成して格納するように構成しても良い。
図4に示すように、制御ファイル304は、通信履歴生成部117による受信データの取得タイミングを設定した「取得制御」ブロックと、通信履歴表示部308による通信履歴のオペレーションパネル210への表示内容を設定した「表示制御」ブロックとから構成される。
図4に示すように、制御ファイル304の中の「取得制御」ブロックは、通信履歴生成部117による共有メモリ302へのアクセスタイミングを指定する「ポーリング間隔」フィールドと、受信データを取得する対象のプロセスを指定する「対象プロセス」フィールドと、プロセスの生成および消滅情報を取得するために共有メモリ302にアクセスするタイミングを指定する「プロセス生成・消滅情報出力間隔」フィールドと、プロセス名とプロセスIDの対応情報を取得するために共有メモリ302にアクセスするタイミングを指定する「プロセス名・プロセスID対応情報出力間隔」フィールドと、通信ログファイル305の最大サイズを指定する「通信ログファイル最大サイズ」フィールドから構成される。ここで、プロセスIDは、各プロセスに固有の識別情報であり、本発明におけるプロセス識別情報を構成する。
「対象プロセス」フィールドは、さらに対象とするプロセス名(たとえば、図4に示すように、コピーアプリ、MCSなど)と、指定されたアプリまたはコントロールサービスのプロセスに対して確保される共有メモリ302を識別する共有メモリキーIDと、確保する通信制御用の共有メモリ302のサイズとを指定するようになっている。
制御ファイル304の表示制御ブロックは、メッセージ・関数の表示内容を指定する「メッセージ・関数」ブロックと、プロセスの生成および消滅の経過を表示するか否か(ON:表示する、OFF:表示しない)を指定する「プロセス生成・消滅」ブロックと、オペレーションパネル210に対するユーザのキー操作の経過を表示するか否か(ON:表示する、OFF:表示しない)を指定する「キー操作」ブロックから構成されている。
「メッセージ・関数」ブロックは、さらにオペレーションパネル210にメッセージ・関数のヘッダのみを表示するか(「0」)、メッセージ・関数のすべての情報を表示するか(「1」)を指定する「ヘッダ」フィールドと、メッセージまたは関数の表示の際にメッセージIDをメッセージ名に、関数IDを関数名に変換するか否か(ON:変換する、OFF:変換しない)を指定する「メッセージ名・関数名変換」フィールドと、メッセージまたは関数の表示の際にプロセスIDをプロセス名に変換するか否か(ON:変換する、OFF:変換しない)を指定する「プロセス名変換」フィールドと、メッセージ詳細情報または関数詳細情報を表示するか否か(ON:表示する、OFF:表示しない)を指定する「メッセージ・関数詳細情報」フィールドとから構成される。ここで、メッセージIDは各メッセージに固有の識別番号であり、関数IDは各関数に固有の識別番号である。かかるメッセージIDと関数IDは、本発明におけるメッセージ・関数識別情報を構成する。
「プロセス生成・消滅」ブロックは、さらにプロセスの生成および消滅の経過を表示する際に、プロセスIDをプロセス名に変換するか否か(ON:変換する、OFF:変換しない)を指定する「プロセス名変換」フィールドを有している。
図3において、HD103には、通信履歴生成部117によって生成される通信ログファイル305と、通信履歴表示部308によってオペレーションパネル210に表示するために一時的に生成されるログ表示ファイル306と、各種データファイル307が格納される。各種データファイル307には、APIソートデータファイルと、PID・プロセス名対応データファイルと、プロセス生成・消滅データファイルと、構造体定義データファイルと、キー変換データファイルと、メッセージ変換データファイルとがあり、各データファイルの詳細については後述する。
図5は、通信ログファイル305を構成する各パケットのデータ構造を示す説明図である。図5(a)は、APIデータパケットのデータ構造図であり、図5(b)はプロセスID・プロセス名対応データパケットのデータ構造図であり、図5(c)はプロセス経過データパケットのデータ構造図である。
図5(a)〜(c)に示すように、各パケットの先頭フィールドはいずれもパケットの種別を示す識別子フィールドとなっており、APIデータパケットの識別子フィールドは「API」、プロセスID・プロセス名対応データパケットの識別子は「INFO」、プロセスの生成を示すプロセス経過データパケットの識別子フィールドは「NEW」、プロセスの消滅を示すプロセス経過データパケットの識別子フィールドは「DEL」となっている。
図5(a)に示すように、APIデータパケットは、識別子フィールドに続き、受信プロセスIDフィールドを有している。この受信プロセスIDフィールドは、メッセージあるいは関数呼び出しを受信したプロセスのプロセスIDが設定される。
また、時刻フィールドで、複合機100でプロセス間通信情報の取得を開始してからの経過時間が記録されている。APIデータパケットの時刻フィールドには各プロセスがメッセージまたは関数呼び出しを受信した時の上記経過時間が記録される。
APIデータパケットは、さらにデータ種別、データ長、送信プロセスIDおよび固有データの各フィールドを有している。ここで、データ種別、データ長、送信プロセスIDのフィールドはヘッダ情報となる。データ種別フィールドには、メッセージIDまたは関数IDが格納される。送信プロセスIDフィールドには、メッセージまたは関数の発信元プロセスのプロセスIDが格納されている。固有データフィールドには、具体的なメッセージデータあるいは関数データが格納されている。APIデータパケットは、時刻フィールドから固有データフィールドまでのデータを一つのメッセージまたは関数のAPIデータとして、データデリミタ(0xfe)で区切られて複数の通信データが連結されたパケット構成となっている。パケット全体で一つの受信プロセスIDが割り当てられているため、APIデータパケットは、一つのプロセスで受信したAPIデータから構成されることになる。なお、0xffは、パケットの区切りを示すパケットデリミタであり、図5(b)および(c)でも同様である。なお、APIデータは本発明における通信情報を構成する。
また、APIデータには、メッセージとしてキーイベントメッセージも含まれる。キーイベントメッセージの場合には、固有データに、キーコードや、後述するキー押下条件を示すON、OFFに対応する数値データが格納される。
図5(b)に示すように、プロセスID・プロセス名対応データパケットは、識別子フィールドに続き、時刻、プロセスIDおよびプロセス名の各フィールドを有している。時刻フィールドには複合機100の通信履歴生成部117が各データを共有メモリから取得した時の上記経過時間が記録される。プロセスIDフィールドには、複合機100で動作中のプロセスのプロセス識別情報であるプロセスIDが格納され、プロセス名フィールドには、このプロセスIDに対応したプロセス名が格納される。
図5(c)に示すように、プロセス経過データパケットは、識別子フィールドに続き、時刻フィールド、生成または消滅したプロセスのプロセスIDが格納されるプロセスIDフィールドを有している。この時刻フィールドにも複合機100の通信履歴生成部117が各データを共有メモリから取得した時の上記経過時間が記録される。
各種データファイル307の中のAPIソートデータファイルは、APIデータを時刻フィールドの内容に基づいて時系列順にソートしたデータファイルであり、APIデータ処理部309によって通信ログファイル305から生成される。
各種データファイル307の中のPID・プロセス名対応データファイルは、プロセスIDとプロセス名とを対応付けたデータファイルであり、プロセス名変換部312によって通信ログファイル305から生成される。図6は、PID・プロセス名対応データファイルの内容の一例を示す説明図である。図6に示すように、各プロセスIDにアプリケーションあるいはコントロールサービスのプロセス名が対応してテーブル形式で記録されている。
各種データファイル307の中のプロセス生成・消滅データファイルは、プロセスの生成と消滅の経過を記録したデータファイルであり、プロセス経過処理部314によって通信ログファイル305から生成される。図7は、プロセス生成・消滅データファイルの内容の一例を示す説明図である。図7では、各プロセスIDが「生成」、「消滅」に分類されて記録されている。「生成」に分類されているプロセスIDが複合機100で生成されたプロセスを示し、「消滅」に分類されているプロセスIDが複合機100で消滅したプロセスを示している。
各種データファイル307の中のメッセージ変換データファイルは、メッセージIDとメッセージ名を、関数IDと関数名とをそれぞれ対応付けたXML形式のファイルであり、あらかじめHD103に作成されている。図8は、メッセージ変換データファイルの一例を示す説明図である。図8において、<server>タグは、メッセージ送信または関数を提供するプロセス名が記述される。そして、図8に示すように、この<server>タグのブロックごとに、<message>タグによってメッセージIDとメッセージ名、および関数IDと関数IDとの対応付けが記述されている。すなわち、<message>タグの「type」にメッセージIDまたは関数IDが指定され、「string」に「type」で指定されたメッセージIDまたは関数IDに対応するメッセージ名あるいは関数名が指定されている。
各種データファイル307の中の構造体定義データファイルは、メッセージおよび関数の構造体の構成内容を定義するファイルであり、各構造体の構成内容は、構造体が対応するメッセージまたは関数の固有データと対応している。図9は、構造体定義データファイルの内容の一例を示す説明図である。
図9において、<struct>タグの中の「Name」の設定内容が構造体名を示し、「msg」の設定内容がメッセージ名または関数名を示している。また、<struct>タグのブロック内に一または複数の<member>タグで構造体のメンバの内容(「Name」の設定内容がメンバ名、「Type」の設定内容がデータの型など)を記述している。
各種データファイル307の中のキー変換データファイルは、キーイベントの詳細データを文字列に変換するためのファイルである。図10は、キー変換データファイル116の内容の一例を示す説明図である。
図10において、<key_press>タグがキー押下条件の文字列を定義しており、「Value=1」のとき「Description=”ON”でON状態を、「Value=0」のとき「Description=”OFF”でOFF状態を示している。
<Key_type>タグでは、キータイプのコードと文字列とを対応づけている。キータイプとは、HARDキー(複合機にハードウェアとして存在するキー)かTOUCHキー(複合機100のオペレーションパネルの表示部にタッチパネルのキーとして描画されるキー)である。図10の<Key_type>タグによれば、「Value=1」のとき「Description=”HARD”でHARDキーを、「Value=0」のとき「Description=”TOUCH”でTOUCHキーを示している。
<Key_button>タグでは、ボタンのキーコードとキー名称の文字列を対応づけている。ここで、キーコードは、各キーに固有の識別情報であり、本発明におけるキー識別情報を構成する。図10の例では、HARDキーのボタンとして、キーコード0がキー名称「0」のボタンに対応づけられ、TOUCHキーのボタンとして、キーコード101がキー名称「OK」のボタンに対応づけられている。
次に、通信履歴表示部308について説明する。図3において、通信履歴表示部308は、APIデータ処理部309と、ヘッダ抽出部310と、メッセージ名・関数名変換部311と、プロセス名変換部312と、メッセージ・関数詳細処理部313と、プロセス経過処理部314と、キー名変換部315と、表示処理部316とから構成される。ここで、通信履歴表示部308は本発明における通信履歴表示手段を、ヘッダ抽出部310は本発明におけるヘッダ抽出手段を、メッセージ名・関数名変換部311は本発明におけるメッセージ名・関数名変換手段を、プロセス名変換部312は本発明におけるプロセス名変換手段を、メッセージ関数詳細処理部313は本発明における詳細情報抽出手段を、プロセス経過処理部314は本発明におけるプロセス経過情報抽出手段を、キー名変換部315は本発明におけるキー変換手段をそれぞれ構成する。
また、APIデータ処理部309、ヘッダ抽出部310、メッセージ名・関数名変換部311、プロセス名変換部312、メッセージ・関数詳細処理部313、プロセス経過処理部314、キー名変換部315は、制御ファイル304の設定内容に従ってコンポーネント起動アプリ118によって選定され、フラッシュROM204から読み出されて起動される。このため、図3中では、これらのコンポーネントは点線で示している。
コンポーネント起動アプリ118は、制御ファイル304を読み込み、その設定内容をチェックして、APIデータ処理部309、ヘッダ抽出部310、メッセージ名・関数名変換部311、プロセス名変換部312、メッセージ・関数詳細処理部313、プロセス経過処理部314、キー名変換部315の中から起動すべきコンポーネントを選定して、選定されたコンポーネントを起動する。このコンポーネント起動アプリ118は本発明におけるコンポーネント起動手段を構成する。
APIデータ処理部309は、通信ログファイル305の中のAPIデータを時系列順にソートしてAPIソートデータファイルをHD103に生成する。また、APIデータ処理部309は、HD103にログ表示ファイル306を生成し、スタートレコードを書き込む。
ヘッダ抽出部310は、APIソートデータファイルから、データ種別、発信元プロセスID、データ長からなるヘッダ情報を抽出してログ表示ファイル306に書き込む処理を行う。
メッセージ名・関数名変換部311は、APIソートデータファイルのAPIデータに含まれるメッセージIDおよび関数IDを、メッセージ変換データファイルを参照して、それぞれ対応するメッセージ名または関数名に変換してログ表示ファイル306に書き込む処理を行う。
プロセス名変換部312は、通信ログファイル305を構成するすべてのプロセスID・プロセス名対応データパケットを読み込み、各パケットに含まれるプロセスIDとプロセス名の対を時刻フィールドの内容とともに抽出して、テーブル形式のPID・プロセス名対応データファイルをHD103に生成する。そして、プロセス名変換部312は、APIソートデータファイルのAPIデータに含まれる受信プロセスIDおよび送信プロセスIDを、PID・プロセス名対応データファイルを参照して、それぞれ対応するプロセス名に変換し、ログ表示ファイル306に書き込む処理を行う。
メッセージ・関数詳細処理部313は、構造体定義ファイルを参照して、APIソートデータファイルのAPIデータに含まれる固有データと、メッセージまたは関数に対応する構造体とを対応付けた詳細情報をログ表示ファイル306に書き込む処理を行う。
プロセス経過処理部314は、通信ログファイル305のPID・プロセス名対応データパケットからプロセスの生成と消滅の経過を記録したプロセス生成・消滅データファイルをHD103に生成して、そのPID・プロセス名対応データファイルの内容をログ表示ファイル306に書き込む処理を行う。
キー名変換部315は、APIソートデータファイルからキーイベントメッセージを抽出し、キーイベントに含まれるキーコードを、キー変換データファイルを参照して、キー名称に変換しログ表示ファイル306に書き込む処理を行う。
表示処理部316は、HD103に生成されたログ表示ファイル306の内容をオペレーションパネル210に表示する処理を行う。表示処理部316は、オペレーションパネル210に対して文字データや画像データの描画を行う描画関数を登録したOCSライブラリ317とリンクされており、このため、表示処理部316は描画関数を呼び出すことにより、ログ表示ファイル306の内容をオペレーションパネル210に表示するようになっている。また、表示処理部316は、ログ表示ファイル306をNCS128に送信し、これによってLANなどネットワークに接続されたPC(Personal Computer)などのデバッグ作業用のクライアント端末と、公衆回線などのネットワークに接続された遠隔集中管理装置に送信する。なお、送信処理は、FTPなどのプロトコルを利用したファイル転送あるいは電子メールなどによってNCS128により行われる。
上記通信履歴生成部117、コンポーネント起動アプリ118、通信履歴表示部308の各コンポーネントは、このプロセス間通信履歴表示プログラムを実行したときに、SDRAM203に生成されて実行される。このプロセス間通信履歴表示プログラムは、ソフトウェア開発キット(SDK:Software Development Kit)などの開発用ツールキットの一部または全部として、CD−ROMまたはFDなどの記憶媒体に実行可能な形式またはインストール可能な形式のファイルで提供される。また、このような実行可能な形式またはインストール可能な形式のファイルを、ネットワーク経由で取得可能な方法で提供するようにしても良い。
次に、このように構成された実施の形態1にかかる複合機100によるプロセス間通信の通信履歴生成処理について説明する。通信履歴生成部117は、その起動時に制御ファイル304を読み込み、対象プロセスとして設定されているコントロールサービスやアプリケーション130の各プロセスごとに共有メモリ302をSDRAM203上に確保する。
一方、各アプリケーション130、各コントロールサービスのプロセスは、その起動時に制御ファイル304を参照して、対象プロセスとして自プロセスが設定されている場合には、ロギングハンドラ301を起動する。そして、このロギングハンドラ301によって、プロセス間通信によるメッセージや関数呼び出しなどの受信データが、通信履歴取得の開始時刻からの経過時間とともに逐次共有メモリ302のFIFOキュー303に書き込まれる。
一方、通信履歴生成部117は、共有メモリ302のFIFOキュー303に制御ファイル304に設定されたポーリング間隔の時間ごとにアクセスし、FIFOキュー303に受信データが格納されているか否かを判断する。そして、受信データが格納されている場合には、受信データをAPIデータパケットの形式で記録した通信ログファイル305をHD103に生成する。
また、通信履歴生成部117は、制御ファイル304に設定されたプロセス名・プロセスID対応情報出力間隔の時間ごとに現在動作しているプロセスを調査し、動作中のプロセスのプロセスIDとプロセス名とを対応付けて、通信履歴の取得開始時からの経過時間とともにプロセスID・プロセス名対応データパケットを通信ログファイル305に書き込む。さらに、通信履歴生成部117は、制御ファイル304に設定されたプロセス生成・消滅情報出力間隔の時間ごとに動作中のプロセスを調査し、プロセスの生成状況と消滅状況を上記経過時間とともに記録したプロセス経過データパケットを通信ログファイル305に書き込む。このようにして図5に示した形式の通信ログファイル305が生成される。
次に、通信ログファイル305から制御ファイル304の表示制御ブロックの設定内容に基づいた通信履歴表示処理について説明する。通信履歴表示処理では、まずコンポーネント起動アプリ118によるコンポーネントの選定および起動処理が行われる。図11および12は、コンポーネント起動アプリ118によるコンポーネントの選定および起動処理の手順を示すフローチャートである。
コンポーネント起動アプリ118は、まず制御ファイル304を読み込み(ステップS1101)、「メッセージ・関数」の表示指定を判断する(ステップS1102)。「メッセージ・関数」がONの場合には、APIデータ処理部309を選定する(ステップS1103)。
次に、制御ファイル304の「ヘッダ」の指定を判断する(ステップS1104)。そして、「ヘッダ」に「ヘッダのみ」の設定がなされている場合には、ヘッダ抽出部310を選定する(ステップS1105)。一方、「ヘッダ」に「全部」の設定がなされている場合には、制御ファイル304の「メッセージ名・関数名変換」の設定内容を判断する(ステップS1106)。「メッセージ名・関数名変換」の設定がONの場合には、メッセージ名・関数名変換部311を選定する(ステップS1107)。
次に、制御ファイル304の「プロセス名変換」の設定内容を判断する(ステップS1108)。「プロセス名変換」の設定がONの場合には、プロセス名変換部312を選定する(ステップS1109)。ついで、制御ファイル304の「メッセージ・関数詳細」の設定内容を判断し(ステップS1110)、ONが設定されている場合には、メッセージ・関数詳細処理部313を選定する(ステップS1111)。
次に、制御ファイル304の「プロセス生成・消滅」の設定内容を判断し(ステップS1112)、ONが設定されている場合には、プロセス経過処理部314を選定する(ステップS1113)。「プロセス生成・消滅」の設定内容を判断し(ステップS1114)、ONが設定されている場合には、さらに「プロセス生成・消滅」ブロックの中の「プロセス名変換」の設定内容を判断する。そして、「プロセス名変換」がONの場合にはさらにプロセス名変換部312を選定する(ステップS1115)。
次に、制御ファイル304の「キー操作」の設定内容を判断し(ステップS1116)、ONが設定されている場合には、APIデータ処理部309とキー名変換部315を選定する(ステップS1117)。そして、最後に現在選定されているコンポーネントを起動し(ステップS1118)、これにより通信履歴表示処理が行われる。
図13は、制御ファイル304の表示制御ブロックにおける設定内容とコンポーネント起動アプリ118によって起動されるコンポーネントの関係を示す説明図である。
図14は、制御ファイル304が図4に示した設定内容である場合における通信履歴表示部308のコンポーネントの起動状態を示すブロック図である。図4の制御ファイル304の例では、「メッセージ・関数」ブロックにおいて、ヘッダの指定が「全部」、「メッセージ名・関数名変換」および「プロセス名変換」をONに、「メッセージ・関数詳細情報」をOFFに設定し、かつ「プロセス生成・消滅」をOFF、「キー操作」をONに設定しているので、通信履歴表示部308の中でコンポーネント起動アプリ118によって起動されるコンポーネントは、APIデータ処理部309、メッセージ名・関数名変換部310、プロセス名変換部312、キー名変換部315となる。
コンポーネント起動アプリ118によって選定された各コンポーネントが起動されたら、各コンポーネントによる処理が実行される。すなわち、APIデータ処理部309では、通信ログファイル305の中のAPIデータを時系列順にソートしてAPIソートデータファイルをHD103に生成し、HD103にログ表示ファイル306を生成する。ヘッダ抽出部310は、APIソートデータファイルからヘッダ情報を抽出してログ表示ファイル306に書き込む。
メッセージ名・関数名変換部311では、APIソートデータファイルのAPIデータの中のすべてのメッセージIDおよび関数IDを、メッセージ変換データファイルを参照して、メッセージ名または関数名に変換してログ表示ファイル306に書き込む。
プロセス名変換部312は、通信ログファイル305を構成するすべてのプロセスID・プロセス名対応データパケットを読み込み、各パケットに含まれるプロセスIDとプロセス名の対を時刻フィールドの内容とともに抽出して、PID・プロセス名対応データファイルをHD103に生成する。そして、APIソートデータファイルのソートされたAPIデータの中のすべての受信プロセスIDおよび送信プロセスIDを、PID・プロセス名対応データファイルを参照して、対応するプロセス名に変換し、ログ表示ファイル306に書き込む。
メッセージ・関数詳細処理部313では、構造体定義ファイルを参照して、APIソートデータファイルのAPIデータに含まれる固有データと、メッセージまたは関数に対応する構造体とを対応付けた詳細情報をログ表示ファイル306に書き込む。
プロセス経過処理部314では、通信ログファイル305のPID・プロセス名対応データパケットからプロセスIDとプロセス名との対応をすべて抽出し、PID・プロセス名対応データファイルをHD103に生成し、そのPID・プロセス名対応データファイルの内容をログ表示ファイル306に書き込む処理を行う。
キー名変換部315は、APIソートデータファイルからキーイベントメッセージを抽出し、キーイベントメッセージの中のキーコードを、キー変換データファイルを参照して、キー名称に変換しログ表示ファイル306に書き込む。
そして、このように生成されたログ表示ファイル306を、表示処理部316によって、オペレーションパネル210に表示する。さらに、表示処理部316は、ログ表示ファイル306をNCS128に送信し、これによってLANなどネットワークに接続されたPC(Personal Computer)などのデバッグ作業用のクライアント端末と、公衆回線などのネットワークに接続された遠隔集中管理装置に送信する。
図15〜18に、通信履歴のオペレーションパネル210への表示例を示す。図15(a)は、メッセージ・関数の場合で、メッセージ名・関数名、プロセス名の各変換指定がなされている場合の表示例であり、図15(b)はヘッダのみの指定がされている場合の表示例である。図16はメッセージ・関数詳細情報の表示例である。図17は、キー操作の表示例である。図18はプロセス生成・消滅経過で、プロセス名変換が指定された場合の表示例である。
このように実施の形態1の複合機100では、通信履歴表示部308がAPIデータ処理部309、ヘッダ抽出部310、メッセージ名・関数名変換部311、プロセス名変換部312、メッセージ・関数詳細処理部313、プロセス経過処理部314、キー名変換部315を含み、各部が互いに独立して起動可能であり、コンポーネント起動アプリ118によって通信ログファイル305からの抽出条件を定めた制御ファイル304の設定内容に基づいて、抽出する情報の表示に必要なコンポーネントを上記各部から選定し、選定されたコンポーネントを起動して通信ログファイル305から各種情報を抽出してオペレーションパネル210に表示しているので、制御ファイル304と連携して通信情報などの通信履歴の表示に必要なコンポーネントのみを起動することができ、小容量のメモリを搭載した複合機100におけるデバッグ作業時のリソースを低減させることができる。
(実施の形態2)
実施の形態1にかかる複合機100では、通信履歴生成部117によって各プロセスから受信データを取得して通信ログファイル305を生成した後に、制御ファイル304に基づいて通信ログファイル305から表示すべき履歴を抽出して表示していたが、この実施の形態2にかかる複合機1900では、各プロセスから受信データを取得する段階で表示すべき履歴を抽出して直ちにオペレーションパネル210に表示するものである。
図19は、実施の形態2にかかる複合機1900の機能的構成を示すブロック図である。実施の形態2にかかる複合機1900が実施の形態1の複合機100と異なる点は、通信履歴生成部117が設けられていない点であり、その他の機能的構成およびハードウェア構成は実施の形態1の複合機100と同様である。
図20は、通信履歴表示を実行するプロセスの全体構成を示したブロック図である。図20に示すとおり、実施の形態2にかかる複合機1900では、通信履歴表示部2008が共有メモリ302のFIFOキュー303にアクセスして、各プロセスの受信データを取得するようになっている。また、HD103に通信ログファイルは生成されず、通信履歴表示部2008が共有メモリから受信データを抽出した上で取得し、ログ表示ファイル306を生成してオペレーションパネル210に表示するようになっている。
ここで、各共有メモリ302には、受信データが実施の形態1で説明した図5の各データパケットの形式で格納される。なお、ロギングハンドラ301の処理、制御ファイル304の設定内容、ログ表示ファイル306および各種データファイル307については実施の形態1の複合機100と同様である。
通信履歴表示部2008は、APIデータ処理部2009と、ヘッダ抽出部2010と、メッセージ名・関数名変換部2011と、プロセス名変換部2012と、メッセージ・関数詳細処理部2013と、プロセス経過処理部2014と、キー名変換部2015と、表示処理部2016とから構成される。ここで、APIデータ処理部2009、ヘッダ抽出部2010、メッセージ名・関数名変換部2011、プロセス名変換部2012、メッセージ・関数詳細処理部2013、プロセス経過処理部2014、キー名変換部2015は、実施の形態1の複合機100と同様に、制御ファイル304の設定内容に従ってコンポーネント起動アプリ118によって選定され、フラッシュROM204から読み出されて起動される。
APIデータ処理部2009は、制御ファイル304のポーリング間隔で設定された時間ごとに、共有メモリ302のFIFOキュー303にアクセスしてAPIデータパケットが格納されているか否かをチェックし、格納されている場合には、APIデータを時系列順にソートしてAPIソートデータファイルをHD103に生成する。また、APIデータ処理部2009は、HD103にログ表示ファイル306を生成し、スタートレコードを書き込む。
ヘッダ抽出部2010は、APIソートデータファイルから、データ種別、発信元プロセスID、データ長からなるヘッダ情報を抽出してログ表示ファイル306に書き込む処理を行う。
メッセージ名・関数名変換部2011は、APIソートデータファイルのAPIデータに含まれるメッセージIDおよび関数IDを、メッセージ変換データファイルを参照して、それぞれ対応するメッセージ名または関数名に変換してログ表示ファイル306に書き込む処理を行う。
プロセス名変換部2012は、制御ファイル304のPID・プロセス名対応情報出力間隔で設定された時間ごとに、共有メモリ302のFIFOキュー303にアクセスしPID・プロセス名対応データパケットが格納されているか否かをチェックし、格納されている場合には、格納されているすべてのプロセスID・プロセス名対応データパケットを読み込み、各パケットに含まれるプロセスIDとプロセス名の対を時刻フィールドの内容とともに抽出して、テーブル形式のPID・プロセス名対応データファイルをHD103に生成する。そして、プロセス名変換部2012は、APIソートデータファイルのAPIデータに含まれる受信プロセスIDおよび送信プロセスIDを、PID・プロセス名対応データファイルを参照して、それぞれ対応するプロセス名に変換し、ログ表示ファイル306に書き込む処理を行う。
メッセージ・関数詳細処理部2013は、構造体定義ファイルを参照して、APIソートデータファイルのAPIデータに含まれる固有データと、メッセージまたは関数に対応する構造体とを対応付けた詳細情報をログ表示ファイル306に書き込む処理を行う。
プロセス経過処理部2014は、制御ファイル304のプロセス生成・消滅情報出力間隔で設定された時間ごとに、共有メモリ302のFIFOキュー303にアクセスしてプロセス経過データパケットが格納されているか否かをチェックし、格納されている場合には、PID・プロセス名対応データパケットからプロセプロセスの生成と消滅の経過を記録したプロセス生成・消滅データファイルをHD103に生成して、そのPID・プロセス名対応データファイルの内容をログ表示ファイル306に書き込む処理を行う。
キー名変換部2015は、APIソートデータファイルからキーイベントメッセージを抽出し、キーイベントに含まれるキーコードを、キー変換データファイルを参照して、キー名称に変換しログ表示ファイル306に書き込む処理を行う。表示処理部2016は、実施の形態1の複合機100と同様である。
コンポーネント起動アプリ118は、実施の形態1と同様に、制御ファイル304を読み込み、その設定内容をチェックして、APIデータ処理部2009、ヘッダ抽出部2010、メッセージ名・関数名変換部2011、プロセス名変換部2012、メッセージ・関数詳細処理部2013、プロセス経過処理部2014、キー名変換部2015の中から起動すべきコンポーネントを選定して、選定されたコンポーネントを起動する。
なお、通信履歴表示部2008は本発明における通信履歴表示手段を、ヘッダ抽出部2010は本発明におけるヘッダ抽出手段を、メッセージ名・関数名変換部2011は本発明におけるメッセージ名・関数名変換手段を、プロセス名変換部2012は本発明におけるプロセス名変換手段を、メッセージ関数詳細処理部2013は本発明における詳細情報抽出手段を、プロセス経過処理部2014は本発明におけるプロセス経過情報抽出手段を、キー名変換部2015は本発明におけるキー変換手段を、コンポーネント起動アプリ118は本発明におけるコンポーネント起動手段をそれぞれ構成する。
コンポーネント起動アプリ118による制御ファイル304の内容に基づいたコンポーネントの選定および起動処理は、実施の形態1の図11で説明した処理手順と同様に行われる。
このように実施の形態2にかかる複合機1900では、通信履歴表示部2008がAPIデータ処理部2009、ヘッダ抽出部2010、メッセージ名・関数名変換部2011、プロセス名変換部2012、メッセージ・関数詳細処理部2013、プロセス経過処理部2014、キー名変換部2015を含み、各部が互いに独立して起動可能であり、コンポーネント起動アプリ118によって制御ファイル304の設定内容に基づいて、抽出する情報の表示に必要なコンポーネントを上記各部から選定し、選定されたコンポーネントを起動してコントロールサービスまたはアプリケーション130のプロセスから受信データを抽出してオペレーションパネル210に表示しているので、制御ファイル304と連携して通信履歴の表示に必要なコンポーネントのみを起動することができ、小容量のメモリを搭載した複合機100におけるデバッグ作業時のリソースを低減させることができる。
また、実施の形態2にかかる複合機1900では、通信履歴表示部2008が直接、コントロールサービスのプロセスまたはアプリケーションのプロセスから受信データを抽出してオペレーションパネル210に通信履歴として表示するので、通信履歴の表示を速やかに行え、デバッグ作業の効率化を図ることができる。
なお、実施の形態1および実施の形態2にかかる複合機100,1900では、受信データをプロセスから取得する際に共有メモリ302を利用しているが、メッセージ送受信などの他のプロセス間通信を利用しても良い。
また、実施の形態1および実施の形態2にかかる複合機100,1900では、受信データを取得する際にロギングハンドラ301を利用しているが、他の手法により受信データを取得するように構成しても良い。