(57)【要約】【課題】プログラムの障害解析作業を効率化させることのできる障害解析支援装置、障害解析支援方法及び障害解析支援プログラムの提供を目的とする。【解決手段】診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援装置であって、第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手段と、前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手段とを有することにより上記課題を解決する。【選択図】図８
2008269163.tif 000002
【特許請求の範囲】
【請求項１】
診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援装置であって、
第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手段と、
前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手段とを有することを特徴とする障害解析支援装置。
【請求項２】
前記第二の診断プログラムは、前記第一のログ情報に基づいて前記障害に関係すると推測される箇所について前記第一の診断プログラムよりも詳細なログ情報を出力することを特徴とする請求項１記載の障害解析支援装置。
【請求項３】
前記ログ情報取得手段は、ネットワークを介して接続される電子機器のプログラムを診断対象として前記第一の診断プログラムが出力する前記ログ情報を取得し、
前記診断プログラム選択手段によって選択される前記第二の診断プログラムを前記電子機器に送信する診断プログラム送信手段を有することを特徴とする請求項１又は２記載の障害解析支援装置。
【請求項４】
前記診断プログラム送信手段は、前記診断プログラム選択手段によって選択される前記第二の診断プログラムを前記電子機器とは異なる電子機器に送信することを特徴とする請求項３記載の障害解析支援装置。
【請求項５】
コンピュータが、診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援方法であって、
第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手順と、
前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手順とを有することを特徴とする障害解析支援方法。
【請求項６】
前記第二の診断プログラムは、前記第一のログ情報に基づいて前記障害に関係すると推測される箇所について前記第一の診断プログラムよりも詳細なログ情報を出力することを特徴とする請求項５記載の障害解析支援方法。
【請求項７】
前記ログ情報取得手順は、ネットワークを介して接続される電子機器のプログラムを診断対象として前記第一の診断プログラムが出力する前記ログ情報を取得し、
前記診断プログラム選択手順において選択される前記第二の診断プログラムを前記電子機器に送信する診断プログラム送信手順を有することを特徴とする請求項５又は６記載の障害解析支援方法。
【請求項８】
前記診断プログラム送信手順は、前記診断プログラム選択手順において選択される前記第二の診断プログラムを前記電子機器とは異なる電子機器に送信することを特徴とする請求項７記載の障害解析支援方法。
【請求項９】
コンピュータに、診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析の支援を実行させるための障害解析支援プログラムであって、
第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手順と、
前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手順とを有することを特徴とする障害解析支援プログラム。
【請求項１０】
前記第二の診断プログラムは、前記第一のログ情報に基づいて前記障害に関係すると推測される箇所について前記第一の診断プログラムよりも詳細なログ情報を出力することを特徴とする請求項９記載の障害解析支援プログラム。
【請求項１１】
前記ログ情報取得手順は、ネットワークを介して接続される電子機器のプログラムを診断対象として前記第一の診断プログラムが出力する前記ログ情報を取得し、
前記診断プログラム選択手順において選択される前記第二の診断プログラムを前記電子機器に送信する診断プログラム送信手順を有することを特徴とする請求項９又は１０記載の障害解析支援プログラム。
【請求項１２】
前記診断プログラム送信手順は、前記診断プログラム選択手順において選択される前記第二の診断プログラムを前記電子機器とは異なる電子機器に送信することを特徴とする請求項１１記載の障害解析支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害解析支援装置、障害解析支援方法及び障害解析支援プログラムに関し、特に診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援装置、障害解析支援方法及び障害解析支援プログラムに関する。
【背景技術】
【０００２】
従来、特に組み込み機器等において動作するプログラムの障害解析（デバッグ等）の代表的な作業として、プログラムが出力するログの解析が行われている。すなわち、プログラムのソースコードには、予め、プログラムが用いている変数の値や、プログラムが動作しているハードウェアの状態を示す情報等をログファイルに出力するための命令（例えば、Ｃ言語におけるｐｒｉｎｔｆ関数）が各所に埋め込まれている。障害が発生した際、斯かる命令（以下、「ログ出力命令」という。）に従って出力されたログファイルを解析することにより、障害の原因が推測又は特定される。
【特許文献１】特開２００４−１３９５７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、予め埋め込まれたログ出力命令に基づいて出力されるログファイル（最初に出力されるログファイル）では、詳細な解析を行うには情報として不十分な場合が多々ある。斯かる場合、最初に出力されるログファイルに基づいて、或る程度障害箇所が絞り込まれる。続いて、その障害箇所周辺について更に詳細なログを出力するように、プログラムのソースコードが修正され、コンパイル及びリンクが行われた上で、プログラムの置き換えが行われる。改めて出力されるログファイルによっても原因が特定できない場合は、更に、ソースコードにログ出力命令が埋め込まれ、上記作業が繰り返される。このように、ログに基づいて障害解析を行う場合、時として大変煩雑な作業が要求されていた。
【０００４】
他方において、近年では、所定の開発環境において作成されているプログラムであれば、任意の箇所に当該プログラムの診断用プログラムの処理を動的に（実行時に）割り込ませることが可能とされている。診断用プログラムでは、診断対象となるプログラムの変数の値等を参照することができる。診断用プログラムの処理の終了後は、診断対象となるプログラムについて診断用プログラムによって割り込まれた位置に処理が復帰する。斯かる技術によれば、診断対象となるプログラムのソースコードを修正することなく、診断用プログラムによって診断対象となるプログラムのログの出力が可能となる。
【０００５】
但し、斯かる技術によっても、診断用プログラムによって最初に出力されるログに基づいて原因が特定できない場合は、ログの出力箇所等を変更するため改めて診断用プログラムを作成し直すといったような反復的な作業は必要とされていた。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、プログラムの障害解析作業を効率化させることのできる障害解析支援装置、障害解析支援方法及び障害解析支援プログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、本発明は、診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援装置であって、第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手段と、前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手段とを有することを特徴とする。
【０００８】
このような障害解析支援装置では、プログラムの障害解析作業を効率化させることができる。
【発明の効果】
【０００９】
本発明によれば、プログラムの障害解析作業を効率化させることのできる障害解析支援装置、障害解析支援方法及び障害解析支援プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における機器管理システムの構成例を示す図である。図１の機器管理システム１において、管理サーバ１０と、機器２０ａ、機器２０ｂ及び機器２０ｃ（以下、総称する場合「機器２０」という。）と、クライアントＰＣ３０ａとは、オフィスにおけるＬＡＮ（Local Area Network）等のネットワーク５０（有線又は無線の別は問わない。）を介して接続されている。また、クライアントＰＣ３０ｂは、ＲＳ−２３２Ｃケーブル又はＵＳＢ（Universal Serial Bus）ケーブル等のケーブル６０を介して接続されている。更に、センターサーバ４０は、インターネット等の広域ネットワーク７０を介してネットワーク５０に接続されている。ＬＡＮ５０と広域ネットワーク７０との間には、ファイアウォール８０が設置されている。
【００１１】
機器２０は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置（複合機）である。機器２０は、ＣＰＵやメモリを備え、メモリに記録されたプログラムに従ったＣＰＵによる制御に基づいて各種の機能を実現する。
【００１２】
クライアントＰＣ３０ａ及び３０ｂ（以下、総称する場合「クライアントＰＣ３０」という。）は、機器２０に関する各種情報（機器情報）の表示や、機器２０に対する動作指示の入力の受付等を行うＰＣ（Personal Computer）である。例えば、クライアントＰＣ３は、Ｗｅｂブラウザを備えており、当該Ｗｅｂブラウザが、機器２０より転送されるＨＴＭＬ（HyperText Markup Language）データに基づいて、機器情報を表示したり、機器２０に対する動作指示の入力を受け付けたりするためのＷｅｂページを表示させる。
【００１３】
管理サーバ１０は、機器２０において利用されるプログラムの診断や、診断を行うための処理の制御を実行するコンピュータである。ここで、プログラムの診断とは、プログラムの障害（バグ等）の原因を解析することをいう。本実施の形態では、プログラムのログ情報に基づいて当該プログラムの診断が行われる。但し、診断対象とされるプログラムのログ情報は、当該プログラムとは別のプログラムによって出力される。本実施の形態では、診断対象とされるプログラムのログ情報を出力するプログラムを「診断プログラム」という。
【００１４】
診断プログラムは、診断対象とされるプログラムの任意の箇所において、当該診断プログラムに定義された処理を動的に割り込ませることができる。すなわち、診断プログラムが適用される場合、診断対象とされたプログラムの実行ステップが任意に指定された箇所（診断箇所）に到達すると、当該診断プログラムの処理が実行される。当該診断プログラムの処理が終了すると、診断対象とされたプログラムに処理制御が復帰する。その後、診断対象とされたプログラムは、診断箇所より処理を再開する。
【００１５】
診断プログラムの中では、診断対象とされるプログラムの変数等を参照可能である。したがって、診断プログラムによって、診断対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させることができるのである。
【００１６】
斯かる診断プログラムによれば、診断対象とされるプログラムについて、ソースコードの修正、コンパイル及びリンク、更に、再インストール等を行うことなく、ログ情報として出力する内容や、ログ情報を出力する箇所等を変更することができる。
【００１７】
なお、以上のような診断プログラムに関する技術は公知技術である。したがって、本実施の形態においては、当該技術の仕組みに関する説明については割愛する。
【００１８】
センターサーバ４０は、各種の診断プログラムを管理するコンピュータである。すなわち、本実施の形態では、障害が発生した際に診断プログラムが作成されるのではなく、過去の経験等に基づいて、予め各種の診断プログラムが作成され、センターサーバ４０において保存及び管理されている。
【００１９】
図２は、本発明の実施の形態における機器の機能構成例を示す図である。図２において、機器２０は、コピーアプリ２１ａ、ＦＡＸアプリ２１ｂ、プリンタアプリ２１ｃ、及びスキャナアプリ２１ｄ等のアプリケーション２１と、サービス層２２と、診断プログラム実行部２３と、ＯＳ２４と等を有する。
【００２０】
コピーアプリ２１ａは、コピー機能を実現するアプリケーションである。ＦＡＸアプリ２１ｂは、ＦＡＸ機能を実現するアプリケーションである。プリンタアプリ２１ｃは、印刷機能を実現するアプリケーションである。スキャナアプリ２１ｄは、スキャナ機能を実現するアプリケーションである。本実施の形態では、これらのアプリケーション２１が診断対象とされる。
【００２１】
サービス層２２は、複数のアプリケーション２１によって共通に必要とされるサービス（機能）をアプリケーション２１に対して提供するプログラム群によって構成される。サービス層２２には、例えば、ネットワーク通信の仲介を行うプログラム、非図示のプリンタやプロッタ等のハードウェアの制御を行うプログラム、メモリやハードディスクドライブ等の記憶装置の管理を行うプログラム、非図示の操作パネルの制御を行うプログラム等が存在する。
【００２２】
診断プログラム実行部２３は、上述した診断プログラム（図中では、診断プログラム２５として示されている。）の実行環境を実現するソフトウェアである。診断プログラム実行部２３は、各アプリケーション２１について、ソースコード上の各ステップと、メモリ上におけるアドレス情報とのマッピング情報（対応情報）を管理している。診断プログラム実行部２３は、当該マッピング情報に基づいて、アプリケーション２１のメモリ上における実行アドレスを監視することにより、ソースコード上におけるいずれのステップが現在実行中であるかを把握することができる。したがって、診断プログラム実行部２３は、当該アプリケーションの実行ステップが、診断箇所（アプリケーション２１のソースコード上の位置）に到達したことを検知することができる。アプリケーション２１の実行ステップが診断箇所に到達すると、診断プログラム実行部２３は、診断プログラム２５を実行させる。なお、診断プログラム２５は、必要に応じて管理サーバ１０より転送される。
【００２３】
ＯＳ２４は、いわゆるＯＳ（Operating System）である。ＯＳ２４は、所定のものに限定されない。
【００２４】
図３は、本発明の実施の形態における管理サーバの機能構成例を示す図である。図３において、管理サーバ１０は、センターサーバアクセス部１１、診断処理制御部１２、機器管理部１３、及びＯＳ１４等を有する。
【００２５】
センターサーバアクセス部１１は、センターサーバ４０とのやりとりを制御する。例えば、センターサーバアクセス部１１は、センターサーバ４０より診断プログラム２５をダウンロード（取得）する。センターサーバアクセス部１１は、センターサーバアドレス１１１に基づいてセンターサーバ４０との通信を行う。センターサーバアドレス１１１は、広域ネットワーク７０上におけるセンターサーバ１１１のアドレス情報（例えば、ＵＲＬ（Uniform Resource Locator））であり、管理サーバ１０の記憶装置に保存されている。
【００２６】
診断処理制御部１２は、機器２０におけるアプリケーション２１の診断の実行や、診断に関する一連の処理の制御等を実行する。
【００２７】
機器管理部１３は、機器２０とのやりとりを制御する。例えば、機器管理部１３は、機器２０に対して診断プログラム２５を転送する。機器管理部１３は、機器リスト１３１に基づいて各機器２０との通信を行う。機器リスト１３１は、各機器２０の名前（ホスト名）と、ネットワーク５０におけるアドレス情報（ＩＰアドレス）との一覧情報であり、管理サーバ１０の記憶装置に保存されている。
【００２８】
ＯＳ１４は、いわゆるＯＳ（Operating System）である。ＯＳ１４は、所定のものに限定されない。
【００２９】
図４は、本発明の実施の形態における管理サーバのハードウェア構成例を示す図である。図４の管理サーバ１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５とを有するように構成される。
【００３０】
管理サーバ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３１】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って管理サーバ１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００３２】
なお、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。
【００３３】
以下、機器管理システム１の処理手順について説明する。図５は、第一の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【００３４】
管理サーバ１０は、センターサーバ４０に対して定期的にポーリングを行うことにより、センターサーバ４０において管理されている診断プログラム２５の更新の有無を問い合わせる（Ｓ１１）。ポーリングによって診断プログラム２５の更新の有無を確認するのは、ファイアウォール８０の存在により、センターサーバ４０側から管理サーバ１０に対して診断プログラムの更新を能動的に通知することはできないからである。なお、診断プログラム２５の更新とは、センターサーバ４０に対する新たな診断プログラム２５の登録や、既存の診断プログラム２５の削除又は更新等を含む。
【００３５】
診断プログラム２５の更新があった場合、管理サーバ１０とセンターサーバ４０との間で相互認証が行われる（Ｓ１２）。相互認証によって双方の正当性が確認されると、センターサーバ４０より管理サーバ１０に対して診断プログラムのカタログ（診断プログラムカタログ）が転送される（Ｓ１３）。診断プログラムカタログとは、センターサーバ４０において管理されている診断プログラム２５の一覧情報をいう。
【００３６】
図６は、診断プログラムカタログの例を示す図である。図６において、診断プログラムカタログは、発生した障害の現象ごとに、適用すべき診断プログラムの名前又はＩＤ（以下、「診断プログラム名」という。）が対応付けられた情報である。
【００３７】
続いて、管理サーバ１０は、診断プログラムカタログを各機器２０に送信する（Ｓ１４）。各機器２０は、当該機器２０の記憶装置に診断プログラムカタログを保存する。
【００３８】
続いて、任意のタイミング（例えば、障害発生時等）において、ユーザの指示に応じて、機器２０の操作パネル又はクライアントＰＣ３０のＷｅｂブラウザに診断プログラムカタログが表示され、表示された診断プログラムカタログの中から適用する（利用する）診断プログラム２５が選択される（１５ａ及びＳ１５ｃ、又はＳ１５ｂ）。機器２０は、選択された診断プログラム２５の診断プログラム名を通知することにより、管理サーバ１０に診断プログラム２５のダウンロードを要求する（Ｓ１６）。
【００３９】
管理サーバ１０は、診断プログラム名に基づいて、要求された診断プログラム２５をセンターサーバ４０よりダウンロードし（Ｓ１７、Ｓ１８）、ダウンロードされた診断プログラム２５を機器２０に転送する（Ｓ１９）。
【００４０】
機器２０の診断プログラム実行部２３は、管理サーバ１０より転送された診断プログラム２５を実行する（Ｓ２０）。これにより、診断プログラム２５は、診断対象とされるアプリケーション２１の診断箇所におけるログ情報を出力する。機器２０は、ログ情報を管理サーバ１０に転送する（Ｓ２１）。ログ情報は、クライアントＰＣ３０にメール等によって送信されてもよい（Ｓ２２）。機器２０よりログ情報を受信した管理サーバ１０は、当該ログ情報をセンターサーバ４０に送信する（Ｓ２３）。これによって、センターサーバ４０において、人的又は自動的にログ情報が解析され、機器２０の障害の原因が解析される。
【００４１】
次に、図５の処理の際に管理サーバ１０において実行される処理手順について説明する。図７は、第一の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【００４２】
管理サーバ１０の診断処理制御部１２は、センターサーバ４０に対して定期的にポーリングを実行するタイミングを制御する（Ｓ１０１）。ポーリングの実行時間になると（Ｓ１０１でＹｅｓ）、センターサーバアクセス部１１は診断処理制御部１２からの指示に応じ、センターサーバアドレス１１１に基づいてセンターサーバ４０に対してポーリングを行うことにより、センターサーバ４０において管理されている診断プログラム２５の更新の有無を問い合わせる（Ｓ１０２）。
【００４３】
続いて、センターサーバアクセス部１１は、センターサーバ４０との間で相互認証を実行する（Ｓ１０３）。相互認証が行われると、センターサーバアクセス部１１は、センターサーバ４０からの診断プログラムカタログを待ち受ける（Ｓ１０４）。センターサーバアクセス部１１によって診断プログラムカタログが受信されると（Ｓ１０４でＹｅｓ）、機器管理部１３は、機器リスト１３１に登録されている機器２０に対して診断プログラムカタログを送信する（Ｓ１０５）。
【００４４】
その後、機器管理部１３が、診断プログラム名と共に当該診断プログラム２５の送信要求を機器２０より受信すると（Ｓ１０６でＹｅｓ）、センターサーバアクセス部１１は、診断プログラム名に基づいて当該診断プログラム２５をセンターサーバ４０よりダウンロードし（Ｓ１０７）、ダウンロードされた診断プログラム２５を機器２０に送信する（Ｓ１０８）。
【００４５】
続いて、機器管理部１３が、機器２０において実行された診断プログラム２５によって出力されるログ情報を機器２０の診断プログラム実行部２３より受信すると（Ｓ１０９でＹｅｓ）、センターサーバアクセス部１１は、当該ログ情報をセンターサーバ４０に転送する（Ｓ１１０）。
【００４６】
次に、第二の実施の形態について説明する。図８は、第二の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【００４７】
管理サーバ１０は、センターサーバ４０に対して定期的にポーリングを行うことにより（Ｓ２１）、センターサーバ４０において管理されている診断プログラム２５をダウンロードし、補助記憶装置１０２に保存しておく。ここでは、複数の診断ポログラム２５がダウンロードされ得る。センターサーバ４０に管理されている全ての診断プログラム２５がダウンロードされてもよいし、既にダウンロード済のものとの差分に係る診断プログラム２５がダウンロードされてもよい。
【００４８】
機器２０において何らかの障害又は異常が発生すると、当該機器２０のサービス層２２は、当該異常等の内容を示すコード（以下、機器異常コード）を管理サーバ１０に送信する（Ｓ２３）。管理サーバ１０は、補助記憶装置１０２に保存されている診断プログラム２５の中から機器異常コードに対応する診断プログラム２５（以下「一次診断プログラム」という。）を自動的に選択し、一次診断プログラムを機器２０に転送する（Ｓ２４）。
【００４９】
機器２０の診断プログラム実行部２３は、診断対象とされるアプリケーション２１の実行中において、アプリケーション２１の実行ステップが一次診断プログラムに対して設定された診断箇所に到達したときに一次診断プログラムを実行する（Ｓ２５）。一次診断プログラムは、実行結果として診断対象のアプリケーション２１のログ情報（一次ログ情報）を機器２０の記憶装置に出力する。なお、診断箇所は、診断プログラム２５の生成時に予め設定されていても良いし、診断プログラム２５の実行時に、例えば操作パネル又はクライアントＰＣ３０のＷｅｂブラウザより設定されてもよい。一次診断プログラムの実行が終了すると、診断プログラム実行部２３は、一次ログ情報を管理サーバ１０に送信する（Ｓ２６）。
【００５０】
管理サーバ１０は、一次ログ情報を解析し、一次ログ情報に基づいて障害の原因に関連すると推測される部分について、より詳細なログ情報を出力する診断プログラム２５（以下「二次診断プログラム」という。）を補助記憶装置１０２に保存されている診断プログラム２５の中から自動的に選択する（Ｓ２７）。管理サーバ１０は、選択された二次診断プログラムを機器２０に転送する（Ｓ２８）。
【００５１】
機器２０の診断プログラム実行部２３は、診断対象とされるアプリケーション２１の実行中において、アプリケーション２１の実行ステップが二次診断プログラムに対して設定された診断箇所に到達したときに二次診断プログラムを実行する（Ｓ２９）。二次診断プログラムは、実行結果として診断対象のアプリケーション２１のログ情報（二次ログ情報）を機器２０の記憶装置に出力する。二次診断プログラムの実行が終了すると、診断プログラム実行部２３は、二次ログ情報を管理サーバ１０に送信する（Ｓ３０）。
【００５２】
管理サーバ１０は、二次ログ情報を解析し、二次ログ情報に基づいて障害の原因に関連すると推測される部分について、より詳細なログ情報を出力する診断プログラム２５（以下「三次診断プログラム」という。）を補助記憶装置１０２に保存されている診断プログラム２５の中から自動的に選択する（Ｓ３１）。管理サーバ１０は、選択された三次診断プログラム２５を機器２０に転送する（Ｓ３２）。
【００５３】
機器２０の診断プログラム実行部２３は、診断対象とされるアプリケーション２１の実行中において、アプリケーション２１の実行ステップが三次診断プログラムに対して設定された診断箇所に到達したときに三次診断プログラムを実行する（Ｓ３３）。三次診断プログラムは、実行結果として診断対象のアプリケーション２１のログ情報（三次ログ情報）を機器２０の記憶装置に出力する。三次診断プログラムの実行が終了すると、診断プログラム実行部２３は、三次ログ情報を管理サーバ１０に送信する（Ｓ３４）。本実施の形態では、三次診断プログラムが最も詳細なログ情報を出力するものであるとする。したがって、管理サーバ１０は、三次ログ情報をセンターサーバ４０に送信する（Ｓ３５）。センターサーバ４０においては、三次ログ情報に基づいて異常等の原因の解析が行われる。なお、一次ログ情報、二次ログ情報、及び三次ログ情報の全てがセンターサーバ４０に送信されてもよい。
【００５４】
次に、図８の処理の際に管理サーバ１０において実行される処理手順について説明する。図９は、第二の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【００５５】
管理サーバ１０の診断処理制御部１２は、センターサーバ４０に対して定期的にポーリングを実行するタイミングを制御する（Ｓ２０１）。ポーリングの実行時間になると（Ｓ２０１でＹｅｓ）、センターサーバアクセス部１１は診断処理制御部１２からの指示に応じ、センターサーバアドレス１１１に基づいてセンターサーバ４０に対してポーリングを行うことにより、センターサーバ４０において管理されている診断プログラム２５の転送を要求する（Ｓ２０２）。
【００５６】
続いて、センターサーバアクセス部１１は、センターサーバ４０との間で相互認証を実行する（Ｓ２０３）。相互認証が行われると、センターサーバアクセス部１１は、センターサーバ４０より転送される診断プログラム（群）を受信する（Ｓ２０４）。
【００５７】
その後、機器管理部１３が、異常等の発生した機器２０より機器異常コードを受信すると（Ｓ２０５）、診断処理制御部１２は、補助記憶装置１０２に保存されている診断プログラム２５の中から機器異常コードに対応する一次診断プログラムを自動的に選択する（Ｓ２０６）。機器管理部１３は、選択された一次診断プログラムを機器２０に送信する（Ｓ２０７）。
【００５８】
一次診断プログラムの選択に際し、診断処理制御部１２は、診断プログラム選択テーブルを用いる。図１０は、診断プログラム選択テーブルの構成例を示す図である。
【００５９】
図１０に示されるように、診断プログラム選択テーブル１２１には、「機器異常コード」の列（項目）と「一次診断プログラム」の列（項目）とにおいて、機器異常コードと一次診断プログラムとの対応関係が登録されている。換言すれば、機器異常コードに対応させて一次診断プログラムが予め生成されている。したがって、診断処理制御部１２は、当該対応関係に基づいて一次診断プログラムを選択する。
【００６０】
図１０の例に基づけば、機器異常コードが「ＥＣ１００１」、「ＥＣ１００２」、「ＥＣ１００３」、「ＥＣ１００４」、又は「ＥＣ１００５」の場合は、プリンタ用診断プログラムが一次診断プログラムとして選択される。また、機器異常コードが、「ＥＣ２００１」、「ＥＣ２００２」、「ＥＣ２００３」、「ＥＣ２００４」、又は「ＥＣ２００５」の場合は、スキャナ用診断プログラムが一次診断プログラムとして選択される。
【００６１】
続いて、機器管理部１３が、機器２０より一次ログ情報を受信すると（Ｓ２０８でＹｅｓ）、診断処理制御部１２は、一次ログ情報を解析し、一次ログ情報に基づいて障害の原因に関連すると推測される部分について、より詳細なログ情報を出力する二次診断プログラムを補助記憶装置１０２に保存されている診断プログラム２５の中から自動的に選択する（Ｓ２０９）。機器管理部１３は、選択された二次診断プログラムを機器２０に送信する（Ｓ２１０）。
【００６２】
二次診断プログラムの選択に際し、診断処理制御部は、図１０に示される診断プログラム選択テーブル１２１を用いる。すなわち、診断プログラム選択テーブル１２１には、「一次ログ情報」の列（項目）と「二次診断プログラム」の列（項目）とにおいて、一次ログ情報の内容と二次診断プログラムとの対応関係が登録されている。換言すれば、一次ログ情報の内容に対応させて二次診断プログラムが予め生成されている。したがって、診断処理制御部１２は、当該対応関係に基づいて二次診断プログラムを選択する。
【００６３】
図１０の例に基づけば、一次診断プログラムとしてプリンタ用診断プログラムを実行した場合に、一次ログ情報においてプリント中にエラーが検出された場合は、プリント中において更に詳細なログ情報を出力するプログラム１１が二次診断プログラムとして選択される。また、一次ログ情報においてドライバ通信中にエラーが検出された場合は、ドライバ通信中において更に詳細なログを出力するプログラム１２が二次診断プログラムとして選択される。
【００６４】
続いて、機器管理部１３が、機器２０より二次ログ情報を受信すると（Ｓ２１１でＹｅｓ）、診断処理制御部１２は、二次ログ情報を解析し、二次ログ情報に基づいて障害の原因に関連すると推測される部分について、より詳細なログ情報を出力する三次診断プログラムを補助記憶装置１０２に保存されている診断プログラム２５の中から自動的に選択する（Ｓ２１２）。機器管理部１３は、選択された三次診断プログラムを機器２０に送信する（Ｓ２１３）。
【００６５】
三次診断プログラムの選択に際し、診断処理制御部１２は、図１０に示される診断プログラム選択テーブル１２１を用いる。すなわち、診断プログラム選択テーブル１２１には、「二次ログ情報」の列（項目）と「三次診断プログラム」の列（項目）とにおいて、二次ログ情報の内容と三次診断プログラムとの対応関係が登録されている。換言すれば、二次ログ情報の内容に対応させて三次診断プログラムが予め生成されている。したがって、診断処理制御部１２は、当該対応関係に基づいて三次診断プログラムを選択する。
【００６６】
図１０の例に基づけば、二次診断プログラムとしてプログラム１１を実行した場合に、二次ログ情報においてメモリエラーが検出された場合は、処理の進行に応じてメモリ消費量又はメモリ残量を測定し、その結果をログ情報として出力するプログラム１１１が三次診断プログラムとして選択される。また、二次ログ情報においてネットワーク通信エラーが検出された場合は、ネットワーク通信について更に詳細なログを出力するプログラム１１２が三次診断プログラムとして選択される。また、二次ログ情報において操作パネル出力エラーが検出された場合は、操作パネルに対する情報の表示（出力）処理について更に詳細なログを出力するプログラム１１３が三次診断プログラムとして選択される。
【００６７】
続いて、機器管理部１３が、機器２０より三次ログ情報を受信すると（Ｓ２１４でＹｅｓ）、センターサーバアクセス部１１は、三次ログ情報をセンターサーバ４０に送信する（Ｓ２１５）。
【００６８】
図８や図７において、ログ情報（一次ログ情報又は二次ログ情報）に基づいて次の診断プログラム２５（二次診断プログラム又は三次診断プログラム）を選択する処理について具体例を示す。図１１は、ログ情報に基づく診断プログラムの選択処理の具体例を説明するための図である。
【００６９】
図１１において、ログ情報ｌ１は、一次診断プログラムとしてのプリンタ診断プログラムによる一次ログ情報を示す。また、ログ情報ｌ２は、二次診断プログラムとしてのプログラム１１による二次ログ情報を示す。更に、ログ情報ｌ３は、三次診断プログラムとしてのプログラム１１１による三次ログ情報を示す。
【００７０】
すなわち、図１１の例では、ログ情報ｌ１において６枚目のプリント中にエラー（プリント中エラー）が検出されたことにより、二次診断プログラムとしてプログラム１１が選択され、プログラム１１によってログ情報ｌ２が出力されている。ログ情報ｌ２において、メモリ確保エラー（メモリエラー）が検出されたことにより、三次プログラムとしてプログラム１１１が選択され、プログラム１１１によってログ情報ｌ３が出力されている。ログ情報ｌ３により、画像メモリの不足が根本的な原因であることが容易に解析されうる。なお、図１０や図１１では、日本語によってエラーの内容が示されているが、プログラムによる処理の便宜上、エラーの内容をエラー番号（エラーコード）によって表現するようにしてもよい。すなわち、診断プログラム選択テーブル１２１では、一次ログ情報と二次診断プログラムとの対応関係や、二次ログ情報と三次診断プログラムとの対応関係は、エラー番号と診断プログラム名との対応関係によって定義するようにすればよい。また、ログ情報には、エラー番号を出力するようにすればよい。この場合、管理サーバ１０の診断処理制御部１２は、ログ情報に含まれているエラー番号を検出し、当該エラー番号を診断プログラム選択テーブル１２１に当てはめることにより、次に実行すべき診断プログラム２５を選択する。
【００７１】
上述したように第二の実施の形態では、診断プログラム２５は、出力されるログ情報が階層的に詳細化されるように予め作成されている。そして、その階層関係において前に実行された診断プログラム２５のログ情報の内容に応じて、次に実行される診断プログラムが選択される。ここで、診断プログラムは、診断対象とされるプログラムを変更することなく、当該診断対象とされるプログラムのログ情報を出力することができるプログラムである。したがって、プログラムに関して異常等が発生した場合の原因の解明作業の作業負担を軽減することができる。
【００７２】
なお、第二の実施の形態では、診断プログラム２５が三階層によって構成されている例を示したが、階層の深さは運用に応じて適宜変更すればよい。また、障害の種別に応じて階層の深さが異なるようにしてもよい。
【００７３】
次に、第三の実施の形態について説明する。第三の実施の形態では、一つの要求に基づいて複数の機器２０の連携処理によってサービスが提供される場合（例えば、複数の機器２０によって分散して印刷が実行される場合等）の診断処理について説明する。
【００７４】
図１２は、第三の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。図１２では、機器２０ａと機器２０ｂとにより連携処理が行われる例を説明する。
【００７５】
管理サーバ１０は、センターサーバ４０に対して定期的にポーリングを行うことにより（Ｓ３１）、センターサーバ４０において管理されている診断プログラム２５をダウンロードし、補助記憶装置１０２に保存しておく。
【００７６】
機器２０ａと機器２０ｂとの連携処理において何らかの障害又は異常（アプリケーション２１の不正動作等）が発生すると、当該機器２０ａのサービス層２２は、当該異常等の内容を示す機器異常コードを管理サーバ１０に送信する（Ｓ３３）。管理サーバ１０は、補助記憶装置１０２に保存されている診断プログラム２５の中から機器異常コードに対応する診断プログラム２５を自動的に選択し、選択された診断プログラム２５を機器２０ａに転送する（Ｓ３４）。
【００７７】
機器２０ａの診断プログラム実行部２３は、診断対象とされるアプリケーション２１の実行中において、アプリケーション２１の実行ステップが当該診断プログラム２５に対して設定された診断箇所に到達したときに当該診断プログラム２５を実行する（Ｓ３５）。当該診断プログラム２５は、実行結果として診断対象のアプリケーション２１のログ情報を機器２０ａの記憶装置に出力する。診断プログラム２５の実行が終了すると、機器２０ａの診断プログラム実行部２３は、ログ情報を管理サーバ１０に送信する（Ｓ３６）。
【００７８】
管理サーバ１０は、ログ情報を解析することにより、次に実行すべき診断プログラム２５を選択する（Ｓ３７）。ここでは、ログ情報に基づいて機器２０ｂでのログ情報の取得が必要であると判定されたこととする。この場合、機器２０ｂに送信すべき診断プログラム２５が選択される。なお、診断プログラム２５の選択は、図１０に示される診断プログラム選択テーブル１２１と同様のテーブルに基づいて行えばよい。また、いずれの機器２０を診断プログラムの送信先とするかについても、エラー番号と診断プログラム２５を実行させる機器２０との対応関係を診断プログラム選択テーブル１２１に登録しておき、その対応関係に基づいて判定するようにすればよい。
【００７９】
続いて、管理サーバ１０は、選択された診断プログラム２５を機器２０ｂに転送する（Ｓ３８）。
【００８０】
機器２０ｂの診断プログラム実行部２３は、診断対象とされるアプリケーション２１の実行中において、アプリケーション２１の実行ステップが診断プログラム２５に対して設定された診断箇所に到達したときに診断プログラム２５を実行する（Ｓ３９）。診断プログラム２５は、実行結果として診断対象のアプリケーション２１のログ情報を機器２０ｂの記憶装置に出力する。診断プログラム２５の実行が終了すると、診断プログラム実行部２３は、ログ情報を管理サーバ１０に送信する（Ｓ４０）。
【００８１】
続いて、管理サーバ１０は、機器２０ｂより送信されたログ情報を解析し（Ｓ４１）、機器２０ａ又は機器２０ｂに対して更に詳細なログを出力する診断プログラム２５（すなわち、二次診断プログラム）の実行が必要であると判定される場合は、二次診断プログラムを機器２０ａ又は２０ｂに送信し、ログ情報を取得する（Ｓ４２〜Ｓ４７）。斯かる判定は、エラー番号と診断プログラム２５との対応関係を示す診断プログラム選択テーブル１２１に基づいて行えばよい。エラー番号に対して診断プログラム２５が対応付けられている場合は、当該診断プログラム２５をその送信先となる機器２０に送信すればよい。エラー番号に対して診断プログラム２５が対応づけられていない場合は、診断プログラム２５の実行はこれ以上不要であると判定し、その時点で取得されているログ情報をセンターサーバ４０に送信する（Ｓ４８）。なお、診断処理制御部１２は、機器２０ａより取得されたログ情報と、機器２０ｂより取得されたログ情報とをマージし、マージされたログ情報がセンターサーバ４０に送信されるようにしてもよい。
【００８２】
図１３は、マージされたログ情報の例を示す図である。図１３の例では、機器２０ａのログ情報と機器２０ｂのログ情報は、時刻に基づいてマージされている。時刻によってマージすることで、二つの機器２０において並列的に実行される処理のログ情報の対比を容易化することができる。
【００８３】
次に、図１２の処理の際に管理サーバ１０において実行される処理手順について説明する。図１４は、第三の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【００８４】
管理サーバ１０の診断処理制御部１２は、センターサーバ４０に対して定期的にポーリングを実行するタイミングを制御する（Ｓ３０１）。ポーリングの実行時間になると（Ｓ３０１でＹｅｓ）、センターサーバアクセス部１１は診断処理制御部１２からの指示に応じ、センターサーバアドレス１１１に基づいてセンターサーバ４０に対してポーリングを行うことにより、センターサーバ４０において管理されている診断プログラム２５の転送を要求する（Ｓ３０２）。
【００８５】
続いて、センターサーバアクセス部１１は、センターサーバ４０との間で相互認証を実行する（Ｓ３０３）。相互認証が行われると、センターサーバアクセス部１１は、センターサーバ４０より転送される診断プログラム（群）を受信する（Ｓ３０４）。
【００８６】
その後、機器管理部１３が、異常等の発生した機器２０ａより機器異常コードを受信すると（Ｓ３０５）、診断処理制御部１２は、補助記憶装置１０２に保存されている診断プログラム２５の中から機器異常コードに対応する診断プログラム２５を診断プログラム選択テーブル１２１に基づいて自動的に選択する（Ｓ３０６）。機器管理部１３は、選択された診断プログラム２５を機器２０ａに送信する（Ｓ３０７）。
【００８７】
続いて、機器管理部１３が、機器２０ａよりログ情報を受信すると（Ｓ３０８でＹｅｓ）、診断処理制御部１２は、ログ情報を解析し（Ｓ３０９）、その解析結果に基づいて、機器２０ｂに実行させる診断プログラム２５を選択する（Ｓ３１０）。機器管理部１３は、選択された診断プログラム２５を機器２０ｂに送信する（Ｓ３１１）。
【００８８】
続いて、機器管理部１３が、機器２０ｂよりログ情報を受信すると（Ｓ３１２でＹｅｓ）、診断処理制御部１２は、ログ情報を解析し、機器２０ａ又は機器２０ｂに対して更に詳細なログを出力する診断プログラム２５（すなわち、二次診断プログラム）の実行が必要であると判定される場合は、機器管理部１３が二次診断プログラムを機器２０ａ又は２０ｂに送信し、ログ情報を取得する（Ｓ３１３〜Ｓ３１７）。
【００８９】
続いて、診断処理制御部１２は、機器２０ａより取得されたログ情報と機器２０ｂより取得されたログ情報とをマージし、センターサーバアクセス部１１は、マージされたログ情報をセンターサーバ４０へ送信する（Ｓ３１８）。
【００９０】
上述したように、第三の実施の形態によれば、複数の機器２０に跨って診断プログラムを実行させ、ログ情報を取得することができる。
【００９１】
なお、上記においては、ログ情報に基づく診断プログラムの選択は、自動的に行われる例について説明した。しかし、必ずしも完全に自動的でなくてもよい。例えば、ログ情報に基づいて、診断プログラム２５が一意に選択できない場合（例えば、診断プログラム選択テーブル１２１において、複数の診断プログラム２５が対応付けられている場合等）、候補となる診断プログラム２５を機器２０の操作パネル等に表示させ、操作者に診断プログラム２５を選択させるようにしてもよい。
【００９２】
また、管理サーバ１０の機能（センターサーバアクセス部１１、診断処理制御部１２等）を、各機器２０に実装するようにしてもよい。図１５は、管理サーバの機能を機器に実装した機器管理システムの構成例を示す図である。図１５中、図１と同一部分には同一符号を付し、その説明は省略する。
【００９３】
図１５の機器管理システム２において、機器２０ａ及び機器２０ｂは、それぞれ診断部２５を有している。診断部２５は、管理サーバ１０の機能をそれぞれの機器において実現する。したがって、図１５の形態において、管理サーバ１０は必ずしも必要ではない。
【００９４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施の形態における機器管理システムの構成例を示す図である。
【図２】本発明の実施の形態における機器の機能構成例を示す図である。
【図３】本発明の実施の形態における管理サーバの機能構成例を示す図である。
【図４】本発明の実施の形態における管理サーバのハードウェア構成例を示す図である。
【図５】第一の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【図６】診断プログラムカタログの例を示す図である。
【図７】第一の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【図８】第二の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【図９】第二の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【図１０】診断プログラム選択テーブルの構成例を示す図である。
【図１１】ログ情報に基づく診断プログラムの選択処理の具体例を説明するための図である。
【図１２】第三の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【図１３】マージされたログ情報の例を示す図である。
【図１４】第三の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【図１５】管理サーバの機能を機器に実装した機器管理システムの構成例を示す図である。
【符号の説明】
【００９６】
１、２    機器管理システム
１０      管理サーバ
１１      センターサーバアクセス部
１２      診断処理制御部
１３      機器管理部１３
１４      ＯＳ
２０、２０ａ、２０ｂ、２０ｃ    機器
２１ａ    コピーアプリ
２１ｂ    ＦＡＸアプリ
２１ｃ    プリンタアプリ
２１ｄ    スキャナアプリ
２２      サービス層
２３      診断プログラム実行部
２４      ＯＳ
２５      診断部
３０ａ、３０ｂ    クライアントＰＣ
４０      センターサーバ
５０      ネットワーク
６０      ケーブル
７０      広域ネットワーク
８０      ファイアーフォール
１００    ドライブ装置
１０１    記録媒体
１０２    補助記憶装置
１０３    メモリ装置
１０４    ＣＰＵ
１０５    インタフェース装置
Ｂ    バス
【図１】
2008269163.tif 000003
【図２】
2008269163.tif 000004
【図３】
2008269163.tif 000005
【図４】
2008269163.tif 000006
【図５】
2008269163.tif 000007
【図６】
2008269163.tif 000008
【図７】
2008269163.tif 000009
【図８】
2008269163.tif 000010
【図９】
2008269163.tif 000011
【図１０】
2008269163.tif 000012
【図１１】
2008269163.tif 000013
【図１２】
2008269163.tif 000014
【図１３】
2008269163.tif 000015
【図１４】
2008269163.tif 000016
【図１５】
2008269163.tif 000017