説明

障害解析支援装置、障害解析支援方法及び障害解析支援プログラム

【課題】プログラムの障害解析作業を効率化させることのできる障害解析支援装置、障害解析支援方法及び障害解析支援プログラムの提供を目的とする。
【解決手段】診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援装置であって、第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手段と、前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手段とを有することにより上記課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、障害解析支援装置、障害解析支援方法及び障害解析支援プログラムに関し、特に診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援装置、障害解析支援方法及び障害解析支援プログラムに関する。
【背景技術】
【0002】
従来、特に組み込み機器等において動作するプログラムの障害解析(デバッグ等)の代表的な作業として、プログラムが出力するログの解析が行われている。すなわち、プログラムのソースコードには、予め、プログラムが用いている変数の値や、プログラムが動作しているハードウェアの状態を示す情報等をログファイルに出力するための命令(例えば、C言語におけるprintf関数)が各所に埋め込まれている。障害が発生した際、斯かる命令(以下、「ログ出力命令」という。)に従って出力されたログファイルを解析することにより、障害の原因が推測又は特定される。
【特許文献1】特開2004−139572号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、予め埋め込まれたログ出力命令に基づいて出力されるログファイル(最初に出力されるログファイル)では、詳細な解析を行うには情報として不十分な場合が多々ある。斯かる場合、最初に出力されるログファイルに基づいて、或る程度障害箇所が絞り込まれる。続いて、その障害箇所周辺について更に詳細なログを出力するように、プログラムのソースコードが修正され、コンパイル及びリンクが行われた上で、プログラムの置き換えが行われる。改めて出力されるログファイルによっても原因が特定できない場合は、更に、ソースコードにログ出力命令が埋め込まれ、上記作業が繰り返される。このように、ログに基づいて障害解析を行う場合、時として大変煩雑な作業が要求されていた。
【0004】
他方において、近年では、所定の開発環境において作成されているプログラムであれば、任意の箇所に当該プログラムの診断用プログラムの処理を動的に(実行時に)割り込ませることが可能とされている。診断用プログラムでは、診断対象となるプログラムの変数の値等を参照することができる。診断用プログラムの処理の終了後は、診断対象となるプログラムについて診断用プログラムによって割り込まれた位置に処理が復帰する。斯かる技術によれば、診断対象となるプログラムのソースコードを修正することなく、診断用プログラムによって診断対象となるプログラムのログの出力が可能となる。
【0005】
但し、斯かる技術によっても、診断用プログラムによって最初に出力されるログに基づいて原因が特定できない場合は、ログの出力箇所等を変更するため改めて診断用プログラムを作成し直すといったような反復的な作業は必要とされていた。
【0006】
本発明は、上記の点に鑑みてなされたものであって、プログラムの障害解析作業を効率化させることのできる障害解析支援装置、障害解析支援方法及び障害解析支援プログラムの提供を目的とする。
【課題を解決するための手段】
【0007】
そこで上記課題を解決するため、本発明は、診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援装置であって、第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手段と、前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手段とを有することを特徴とする。
【0008】
このような障害解析支援装置では、プログラムの障害解析作業を効率化させることができる。
【発明の効果】
【0009】
本発明によれば、プログラムの障害解析作業を効率化させることのできる障害解析支援装置、障害解析支援方法及び障害解析支援プログラムを提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における機器管理システムの構成例を示す図である。図1の機器管理システム1において、管理サーバ10と、機器20a、機器20b及び機器20c(以下、総称する場合「機器20」という。)と、クライアントPC30aとは、オフィスにおけるLAN(Local Area Network)等のネットワーク50(有線又は無線の別は問わない。)を介して接続されている。また、クライアントPC30bは、RS−232Cケーブル又はUSB(Universal Serial Bus)ケーブル等のケーブル60を介して接続されている。更に、センターサーバ40は、インターネット等の広域ネットワーク70を介してネットワーク50に接続されている。LAN50と広域ネットワーク70との間には、ファイアウォール80が設置されている。
【0011】
機器20は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置(複合機)である。機器20は、CPUやメモリを備え、メモリに記録されたプログラムに従ったCPUによる制御に基づいて各種の機能を実現する。
【0012】
クライアントPC30a及び30b(以下、総称する場合「クライアントPC30」という。)は、機器20に関する各種情報(機器情報)の表示や、機器20に対する動作指示の入力の受付等を行うPC(Personal Computer)である。例えば、クライアントPC3は、Webブラウザを備えており、当該Webブラウザが、機器20より転送されるHTML(HyperText Markup Language)データに基づいて、機器情報を表示したり、機器20に対する動作指示の入力を受け付けたりするためのWebページを表示させる。
【0013】
管理サーバ10は、機器20において利用されるプログラムの診断や、診断を行うための処理の制御を実行するコンピュータである。ここで、プログラムの診断とは、プログラムの障害(バグ等)の原因を解析することをいう。本実施の形態では、プログラムのログ情報に基づいて当該プログラムの診断が行われる。但し、診断対象とされるプログラムのログ情報は、当該プログラムとは別のプログラムによって出力される。本実施の形態では、診断対象とされるプログラムのログ情報を出力するプログラムを「診断プログラム」という。
【0014】
診断プログラムは、診断対象とされるプログラムの任意の箇所において、当該診断プログラムに定義された処理を動的に割り込ませることができる。すなわち、診断プログラムが適用される場合、診断対象とされたプログラムの実行ステップが任意に指定された箇所(診断箇所)に到達すると、当該診断プログラムの処理が実行される。当該診断プログラムの処理が終了すると、診断対象とされたプログラムに処理制御が復帰する。その後、診断対象とされたプログラムは、診断箇所より処理を再開する。
【0015】
診断プログラムの中では、診断対象とされるプログラムの変数等を参照可能である。したがって、診断プログラムによって、診断対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させることができるのである。
【0016】
斯かる診断プログラムによれば、診断対象とされるプログラムについて、ソースコードの修正、コンパイル及びリンク、更に、再インストール等を行うことなく、ログ情報として出力する内容や、ログ情報を出力する箇所等を変更することができる。
【0017】
なお、以上のような診断プログラムに関する技術は公知技術である。したがって、本実施の形態においては、当該技術の仕組みに関する説明については割愛する。
【0018】
センターサーバ40は、各種の診断プログラムを管理するコンピュータである。すなわち、本実施の形態では、障害が発生した際に診断プログラムが作成されるのではなく、過去の経験等に基づいて、予め各種の診断プログラムが作成され、センターサーバ40において保存及び管理されている。
【0019】
図2は、本発明の実施の形態における機器の機能構成例を示す図である。図2において、機器20は、コピーアプリ21a、FAXアプリ21b、プリンタアプリ21c、及びスキャナアプリ21d等のアプリケーション21と、サービス層22と、診断プログラム実行部23と、OS24と等を有する。
【0020】
コピーアプリ21aは、コピー機能を実現するアプリケーションである。FAXアプリ21bは、FAX機能を実現するアプリケーションである。プリンタアプリ21cは、印刷機能を実現するアプリケーションである。スキャナアプリ21dは、スキャナ機能を実現するアプリケーションである。本実施の形態では、これらのアプリケーション21が診断対象とされる。
【0021】
サービス層22は、複数のアプリケーション21によって共通に必要とされるサービス(機能)をアプリケーション21に対して提供するプログラム群によって構成される。サービス層22には、例えば、ネットワーク通信の仲介を行うプログラム、非図示のプリンタやプロッタ等のハードウェアの制御を行うプログラム、メモリやハードディスクドライブ等の記憶装置の管理を行うプログラム、非図示の操作パネルの制御を行うプログラム等が存在する。
【0022】
診断プログラム実行部23は、上述した診断プログラム(図中では、診断プログラム25として示されている。)の実行環境を実現するソフトウェアである。診断プログラム実行部23は、各アプリケーション21について、ソースコード上の各ステップと、メモリ上におけるアドレス情報とのマッピング情報(対応情報)を管理している。診断プログラム実行部23は、当該マッピング情報に基づいて、アプリケーション21のメモリ上における実行アドレスを監視することにより、ソースコード上におけるいずれのステップが現在実行中であるかを把握することができる。したがって、診断プログラム実行部23は、当該アプリケーションの実行ステップが、診断箇所(アプリケーション21のソースコード上の位置)に到達したことを検知することができる。アプリケーション21の実行ステップが診断箇所に到達すると、診断プログラム実行部23は、診断プログラム25を実行させる。なお、診断プログラム25は、必要に応じて管理サーバ10より転送される。
【0023】
OS24は、いわゆるOS(Operating System)である。OS24は、所定のものに限定されない。
【0024】
図3は、本発明の実施の形態における管理サーバの機能構成例を示す図である。図3において、管理サーバ10は、センターサーバアクセス部11、診断処理制御部12、機器管理部13、及びOS14等を有する。
【0025】
センターサーバアクセス部11は、センターサーバ40とのやりとりを制御する。例えば、センターサーバアクセス部11は、センターサーバ40より診断プログラム25をダウンロード(取得)する。センターサーバアクセス部11は、センターサーバアドレス111に基づいてセンターサーバ40との通信を行う。センターサーバアドレス111は、広域ネットワーク70上におけるセンターサーバ111のアドレス情報(例えば、URL(Uniform Resource Locator))であり、管理サーバ10の記憶装置に保存されている。
【0026】
診断処理制御部12は、機器20におけるアプリケーション21の診断の実行や、診断に関する一連の処理の制御等を実行する。
【0027】
機器管理部13は、機器20とのやりとりを制御する。例えば、機器管理部13は、機器20に対して診断プログラム25を転送する。機器管理部13は、機器リスト131に基づいて各機器20との通信を行う。機器リスト131は、各機器20の名前(ホスト名)と、ネットワーク50におけるアドレス情報(IPアドレス)との一覧情報であり、管理サーバ10の記憶装置に保存されている。
【0028】
OS14は、いわゆるOS(Operating System)である。OS14は、所定のものに限定されない。
【0029】
図4は、本発明の実施の形態における管理サーバのハードウェア構成例を示す図である。図4の管理サーバ10は、それぞれバスBで相互に接続されているドライブ装置100と、補助記憶装置102と、メモリ装置103と、CPU104と、インタフェース装置105とを有するように構成される。
【0030】
管理サーバ10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0031】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って管理サーバ10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0032】
なお、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。
【0033】
以下、機器管理システム1の処理手順について説明する。図5は、第一の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【0034】
管理サーバ10は、センターサーバ40に対して定期的にポーリングを行うことにより、センターサーバ40において管理されている診断プログラム25の更新の有無を問い合わせる(S11)。ポーリングによって診断プログラム25の更新の有無を確認するのは、ファイアウォール80の存在により、センターサーバ40側から管理サーバ10に対して診断プログラムの更新を能動的に通知することはできないからである。なお、診断プログラム25の更新とは、センターサーバ40に対する新たな診断プログラム25の登録や、既存の診断プログラム25の削除又は更新等を含む。
【0035】
診断プログラム25の更新があった場合、管理サーバ10とセンターサーバ40との間で相互認証が行われる(S12)。相互認証によって双方の正当性が確認されると、センターサーバ40より管理サーバ10に対して診断プログラムのカタログ(診断プログラムカタログ)が転送される(S13)。診断プログラムカタログとは、センターサーバ40において管理されている診断プログラム25の一覧情報をいう。
【0036】
図6は、診断プログラムカタログの例を示す図である。図6において、診断プログラムカタログは、発生した障害の現象ごとに、適用すべき診断プログラムの名前又はID(以下、「診断プログラム名」という。)が対応付けられた情報である。
【0037】
続いて、管理サーバ10は、診断プログラムカタログを各機器20に送信する(S14)。各機器20は、当該機器20の記憶装置に診断プログラムカタログを保存する。
【0038】
続いて、任意のタイミング(例えば、障害発生時等)において、ユーザの指示に応じて、機器20の操作パネル又はクライアントPC30のWebブラウザに診断プログラムカタログが表示され、表示された診断プログラムカタログの中から適用する(利用する)診断プログラム25が選択される(15a及びS15c、又はS15b)。機器20は、選択された診断プログラム25の診断プログラム名を通知することにより、管理サーバ10に診断プログラム25のダウンロードを要求する(S16)。
【0039】
管理サーバ10は、診断プログラム名に基づいて、要求された診断プログラム25をセンターサーバ40よりダウンロードし(S17、S18)、ダウンロードされた診断プログラム25を機器20に転送する(S19)。
【0040】
機器20の診断プログラム実行部23は、管理サーバ10より転送された診断プログラム25を実行する(S20)。これにより、診断プログラム25は、診断対象とされるアプリケーション21の診断箇所におけるログ情報を出力する。機器20は、ログ情報を管理サーバ10に転送する(S21)。ログ情報は、クライアントPC30にメール等によって送信されてもよい(S22)。機器20よりログ情報を受信した管理サーバ10は、当該ログ情報をセンターサーバ40に送信する(S23)。これによって、センターサーバ40において、人的又は自動的にログ情報が解析され、機器20の障害の原因が解析される。
【0041】
次に、図5の処理の際に管理サーバ10において実行される処理手順について説明する。図7は、第一の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【0042】
管理サーバ10の診断処理制御部12は、センターサーバ40に対して定期的にポーリングを実行するタイミングを制御する(S101)。ポーリングの実行時間になると(S101でYes)、センターサーバアクセス部11は診断処理制御部12からの指示に応じ、センターサーバアドレス111に基づいてセンターサーバ40に対してポーリングを行うことにより、センターサーバ40において管理されている診断プログラム25の更新の有無を問い合わせる(S102)。
【0043】
続いて、センターサーバアクセス部11は、センターサーバ40との間で相互認証を実行する(S103)。相互認証が行われると、センターサーバアクセス部11は、センターサーバ40からの診断プログラムカタログを待ち受ける(S104)。センターサーバアクセス部11によって診断プログラムカタログが受信されると(S104でYes)、機器管理部13は、機器リスト131に登録されている機器20に対して診断プログラムカタログを送信する(S105)。
【0044】
その後、機器管理部13が、診断プログラム名と共に当該診断プログラム25の送信要求を機器20より受信すると(S106でYes)、センターサーバアクセス部11は、診断プログラム名に基づいて当該診断プログラム25をセンターサーバ40よりダウンロードし(S107)、ダウンロードされた診断プログラム25を機器20に送信する(S108)。
【0045】
続いて、機器管理部13が、機器20において実行された診断プログラム25によって出力されるログ情報を機器20の診断プログラム実行部23より受信すると(S109でYes)、センターサーバアクセス部11は、当該ログ情報をセンターサーバ40に転送する(S110)。
【0046】
次に、第二の実施の形態について説明する。図8は、第二の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【0047】
管理サーバ10は、センターサーバ40に対して定期的にポーリングを行うことにより(S21)、センターサーバ40において管理されている診断プログラム25をダウンロードし、補助記憶装置102に保存しておく。ここでは、複数の診断ポログラム25がダウンロードされ得る。センターサーバ40に管理されている全ての診断プログラム25がダウンロードされてもよいし、既にダウンロード済のものとの差分に係る診断プログラム25がダウンロードされてもよい。
【0048】
機器20において何らかの障害又は異常が発生すると、当該機器20のサービス層22は、当該異常等の内容を示すコード(以下、機器異常コード)を管理サーバ10に送信する(S23)。管理サーバ10は、補助記憶装置102に保存されている診断プログラム25の中から機器異常コードに対応する診断プログラム25(以下「一次診断プログラム」という。)を自動的に選択し、一次診断プログラムを機器20に転送する(S24)。
【0049】
機器20の診断プログラム実行部23は、診断対象とされるアプリケーション21の実行中において、アプリケーション21の実行ステップが一次診断プログラムに対して設定された診断箇所に到達したときに一次診断プログラムを実行する(S25)。一次診断プログラムは、実行結果として診断対象のアプリケーション21のログ情報(一次ログ情報)を機器20の記憶装置に出力する。なお、診断箇所は、診断プログラム25の生成時に予め設定されていても良いし、診断プログラム25の実行時に、例えば操作パネル又はクライアントPC30のWebブラウザより設定されてもよい。一次診断プログラムの実行が終了すると、診断プログラム実行部23は、一次ログ情報を管理サーバ10に送信する(S26)。
【0050】
管理サーバ10は、一次ログ情報を解析し、一次ログ情報に基づいて障害の原因に関連すると推測される部分について、より詳細なログ情報を出力する診断プログラム25(以下「二次診断プログラム」という。)を補助記憶装置102に保存されている診断プログラム25の中から自動的に選択する(S27)。管理サーバ10は、選択された二次診断プログラムを機器20に転送する(S28)。
【0051】
機器20の診断プログラム実行部23は、診断対象とされるアプリケーション21の実行中において、アプリケーション21の実行ステップが二次診断プログラムに対して設定された診断箇所に到達したときに二次診断プログラムを実行する(S29)。二次診断プログラムは、実行結果として診断対象のアプリケーション21のログ情報(二次ログ情報)を機器20の記憶装置に出力する。二次診断プログラムの実行が終了すると、診断プログラム実行部23は、二次ログ情報を管理サーバ10に送信する(S30)。
【0052】
管理サーバ10は、二次ログ情報を解析し、二次ログ情報に基づいて障害の原因に関連すると推測される部分について、より詳細なログ情報を出力する診断プログラム25(以下「三次診断プログラム」という。)を補助記憶装置102に保存されている診断プログラム25の中から自動的に選択する(S31)。管理サーバ10は、選択された三次診断プログラム25を機器20に転送する(S32)。
【0053】
機器20の診断プログラム実行部23は、診断対象とされるアプリケーション21の実行中において、アプリケーション21の実行ステップが三次診断プログラムに対して設定された診断箇所に到達したときに三次診断プログラムを実行する(S33)。三次診断プログラムは、実行結果として診断対象のアプリケーション21のログ情報(三次ログ情報)を機器20の記憶装置に出力する。三次診断プログラムの実行が終了すると、診断プログラム実行部23は、三次ログ情報を管理サーバ10に送信する(S34)。本実施の形態では、三次診断プログラムが最も詳細なログ情報を出力するものであるとする。したがって、管理サーバ10は、三次ログ情報をセンターサーバ40に送信する(S35)。センターサーバ40においては、三次ログ情報に基づいて異常等の原因の解析が行われる。なお、一次ログ情報、二次ログ情報、及び三次ログ情報の全てがセンターサーバ40に送信されてもよい。
【0054】
次に、図8の処理の際に管理サーバ10において実行される処理手順について説明する。図9は、第二の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【0055】
管理サーバ10の診断処理制御部12は、センターサーバ40に対して定期的にポーリングを実行するタイミングを制御する(S201)。ポーリングの実行時間になると(S201でYes)、センターサーバアクセス部11は診断処理制御部12からの指示に応じ、センターサーバアドレス111に基づいてセンターサーバ40に対してポーリングを行うことにより、センターサーバ40において管理されている診断プログラム25の転送を要求する(S202)。
【0056】
続いて、センターサーバアクセス部11は、センターサーバ40との間で相互認証を実行する(S203)。相互認証が行われると、センターサーバアクセス部11は、センターサーバ40より転送される診断プログラム(群)を受信する(S204)。
【0057】
その後、機器管理部13が、異常等の発生した機器20より機器異常コードを受信すると(S205)、診断処理制御部12は、補助記憶装置102に保存されている診断プログラム25の中から機器異常コードに対応する一次診断プログラムを自動的に選択する(S206)。機器管理部13は、選択された一次診断プログラムを機器20に送信する(S207)。
【0058】
一次診断プログラムの選択に際し、診断処理制御部12は、診断プログラム選択テーブルを用いる。図10は、診断プログラム選択テーブルの構成例を示す図である。
【0059】
図10に示されるように、診断プログラム選択テーブル121には、「機器異常コード」の列(項目)と「一次診断プログラム」の列(項目)とにおいて、機器異常コードと一次診断プログラムとの対応関係が登録されている。換言すれば、機器異常コードに対応させて一次診断プログラムが予め生成されている。したがって、診断処理制御部12は、当該対応関係に基づいて一次診断プログラムを選択する。
【0060】
図10の例に基づけば、機器異常コードが「EC1001」、「EC1002」、「EC1003」、「EC1004」、又は「EC1005」の場合は、プリンタ用診断プログラムが一次診断プログラムとして選択される。また、機器異常コードが、「EC2001」、「EC2002」、「EC2003」、「EC2004」、又は「EC2005」の場合は、スキャナ用診断プログラムが一次診断プログラムとして選択される。
【0061】
続いて、機器管理部13が、機器20より一次ログ情報を受信すると(S208でYes)、診断処理制御部12は、一次ログ情報を解析し、一次ログ情報に基づいて障害の原因に関連すると推測される部分について、より詳細なログ情報を出力する二次診断プログラムを補助記憶装置102に保存されている診断プログラム25の中から自動的に選択する(S209)。機器管理部13は、選択された二次診断プログラムを機器20に送信する(S210)。
【0062】
二次診断プログラムの選択に際し、診断処理制御部は、図10に示される診断プログラム選択テーブル121を用いる。すなわち、診断プログラム選択テーブル121には、「一次ログ情報」の列(項目)と「二次診断プログラム」の列(項目)とにおいて、一次ログ情報の内容と二次診断プログラムとの対応関係が登録されている。換言すれば、一次ログ情報の内容に対応させて二次診断プログラムが予め生成されている。したがって、診断処理制御部12は、当該対応関係に基づいて二次診断プログラムを選択する。
【0063】
図10の例に基づけば、一次診断プログラムとしてプリンタ用診断プログラムを実行した場合に、一次ログ情報においてプリント中にエラーが検出された場合は、プリント中において更に詳細なログ情報を出力するプログラム11が二次診断プログラムとして選択される。また、一次ログ情報においてドライバ通信中にエラーが検出された場合は、ドライバ通信中において更に詳細なログを出力するプログラム12が二次診断プログラムとして選択される。
【0064】
続いて、機器管理部13が、機器20より二次ログ情報を受信すると(S211でYes)、診断処理制御部12は、二次ログ情報を解析し、二次ログ情報に基づいて障害の原因に関連すると推測される部分について、より詳細なログ情報を出力する三次診断プログラムを補助記憶装置102に保存されている診断プログラム25の中から自動的に選択する(S212)。機器管理部13は、選択された三次診断プログラムを機器20に送信する(S213)。
【0065】
三次診断プログラムの選択に際し、診断処理制御部12は、図10に示される診断プログラム選択テーブル121を用いる。すなわち、診断プログラム選択テーブル121には、「二次ログ情報」の列(項目)と「三次診断プログラム」の列(項目)とにおいて、二次ログ情報の内容と三次診断プログラムとの対応関係が登録されている。換言すれば、二次ログ情報の内容に対応させて三次診断プログラムが予め生成されている。したがって、診断処理制御部12は、当該対応関係に基づいて三次診断プログラムを選択する。
【0066】
図10の例に基づけば、二次診断プログラムとしてプログラム11を実行した場合に、二次ログ情報においてメモリエラーが検出された場合は、処理の進行に応じてメモリ消費量又はメモリ残量を測定し、その結果をログ情報として出力するプログラム111が三次診断プログラムとして選択される。また、二次ログ情報においてネットワーク通信エラーが検出された場合は、ネットワーク通信について更に詳細なログを出力するプログラム112が三次診断プログラムとして選択される。また、二次ログ情報において操作パネル出力エラーが検出された場合は、操作パネルに対する情報の表示(出力)処理について更に詳細なログを出力するプログラム113が三次診断プログラムとして選択される。
【0067】
続いて、機器管理部13が、機器20より三次ログ情報を受信すると(S214でYes)、センターサーバアクセス部11は、三次ログ情報をセンターサーバ40に送信する(S215)。
【0068】
図8や図7において、ログ情報(一次ログ情報又は二次ログ情報)に基づいて次の診断プログラム25(二次診断プログラム又は三次診断プログラム)を選択する処理について具体例を示す。図11は、ログ情報に基づく診断プログラムの選択処理の具体例を説明するための図である。
【0069】
図11において、ログ情報l1は、一次診断プログラムとしてのプリンタ診断プログラムによる一次ログ情報を示す。また、ログ情報l2は、二次診断プログラムとしてのプログラム11による二次ログ情報を示す。更に、ログ情報l3は、三次診断プログラムとしてのプログラム111による三次ログ情報を示す。
【0070】
すなわち、図11の例では、ログ情報l1において6枚目のプリント中にエラー(プリント中エラー)が検出されたことにより、二次診断プログラムとしてプログラム11が選択され、プログラム11によってログ情報l2が出力されている。ログ情報l2において、メモリ確保エラー(メモリエラー)が検出されたことにより、三次プログラムとしてプログラム111が選択され、プログラム111によってログ情報l3が出力されている。ログ情報l3により、画像メモリの不足が根本的な原因であることが容易に解析されうる。なお、図10や図11では、日本語によってエラーの内容が示されているが、プログラムによる処理の便宜上、エラーの内容をエラー番号(エラーコード)によって表現するようにしてもよい。すなわち、診断プログラム選択テーブル121では、一次ログ情報と二次診断プログラムとの対応関係や、二次ログ情報と三次診断プログラムとの対応関係は、エラー番号と診断プログラム名との対応関係によって定義するようにすればよい。また、ログ情報には、エラー番号を出力するようにすればよい。この場合、管理サーバ10の診断処理制御部12は、ログ情報に含まれているエラー番号を検出し、当該エラー番号を診断プログラム選択テーブル121に当てはめることにより、次に実行すべき診断プログラム25を選択する。
【0071】
上述したように第二の実施の形態では、診断プログラム25は、出力されるログ情報が階層的に詳細化されるように予め作成されている。そして、その階層関係において前に実行された診断プログラム25のログ情報の内容に応じて、次に実行される診断プログラムが選択される。ここで、診断プログラムは、診断対象とされるプログラムを変更することなく、当該診断対象とされるプログラムのログ情報を出力することができるプログラムである。したがって、プログラムに関して異常等が発生した場合の原因の解明作業の作業負担を軽減することができる。
【0072】
なお、第二の実施の形態では、診断プログラム25が三階層によって構成されている例を示したが、階層の深さは運用に応じて適宜変更すればよい。また、障害の種別に応じて階層の深さが異なるようにしてもよい。
【0073】
次に、第三の実施の形態について説明する。第三の実施の形態では、一つの要求に基づいて複数の機器20の連携処理によってサービスが提供される場合(例えば、複数の機器20によって分散して印刷が実行される場合等)の診断処理について説明する。
【0074】
図12は、第三の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。図12では、機器20aと機器20bとにより連携処理が行われる例を説明する。
【0075】
管理サーバ10は、センターサーバ40に対して定期的にポーリングを行うことにより(S31)、センターサーバ40において管理されている診断プログラム25をダウンロードし、補助記憶装置102に保存しておく。
【0076】
機器20aと機器20bとの連携処理において何らかの障害又は異常(アプリケーション21の不正動作等)が発生すると、当該機器20aのサービス層22は、当該異常等の内容を示す機器異常コードを管理サーバ10に送信する(S33)。管理サーバ10は、補助記憶装置102に保存されている診断プログラム25の中から機器異常コードに対応する診断プログラム25を自動的に選択し、選択された診断プログラム25を機器20aに転送する(S34)。
【0077】
機器20aの診断プログラム実行部23は、診断対象とされるアプリケーション21の実行中において、アプリケーション21の実行ステップが当該診断プログラム25に対して設定された診断箇所に到達したときに当該診断プログラム25を実行する(S35)。当該診断プログラム25は、実行結果として診断対象のアプリケーション21のログ情報を機器20aの記憶装置に出力する。診断プログラム25の実行が終了すると、機器20aの診断プログラム実行部23は、ログ情報を管理サーバ10に送信する(S36)。
【0078】
管理サーバ10は、ログ情報を解析することにより、次に実行すべき診断プログラム25を選択する(S37)。ここでは、ログ情報に基づいて機器20bでのログ情報の取得が必要であると判定されたこととする。この場合、機器20bに送信すべき診断プログラム25が選択される。なお、診断プログラム25の選択は、図10に示される診断プログラム選択テーブル121と同様のテーブルに基づいて行えばよい。また、いずれの機器20を診断プログラムの送信先とするかについても、エラー番号と診断プログラム25を実行させる機器20との対応関係を診断プログラム選択テーブル121に登録しておき、その対応関係に基づいて判定するようにすればよい。
【0079】
続いて、管理サーバ10は、選択された診断プログラム25を機器20bに転送する(S38)。
【0080】
機器20bの診断プログラム実行部23は、診断対象とされるアプリケーション21の実行中において、アプリケーション21の実行ステップが診断プログラム25に対して設定された診断箇所に到達したときに診断プログラム25を実行する(S39)。診断プログラム25は、実行結果として診断対象のアプリケーション21のログ情報を機器20bの記憶装置に出力する。診断プログラム25の実行が終了すると、診断プログラム実行部23は、ログ情報を管理サーバ10に送信する(S40)。
【0081】
続いて、管理サーバ10は、機器20bより送信されたログ情報を解析し(S41)、機器20a又は機器20bに対して更に詳細なログを出力する診断プログラム25(すなわち、二次診断プログラム)の実行が必要であると判定される場合は、二次診断プログラムを機器20a又は20bに送信し、ログ情報を取得する(S42〜S47)。斯かる判定は、エラー番号と診断プログラム25との対応関係を示す診断プログラム選択テーブル121に基づいて行えばよい。エラー番号に対して診断プログラム25が対応付けられている場合は、当該診断プログラム25をその送信先となる機器20に送信すればよい。エラー番号に対して診断プログラム25が対応づけられていない場合は、診断プログラム25の実行はこれ以上不要であると判定し、その時点で取得されているログ情報をセンターサーバ40に送信する(S48)。なお、診断処理制御部12は、機器20aより取得されたログ情報と、機器20bより取得されたログ情報とをマージし、マージされたログ情報がセンターサーバ40に送信されるようにしてもよい。
【0082】
図13は、マージされたログ情報の例を示す図である。図13の例では、機器20aのログ情報と機器20bのログ情報は、時刻に基づいてマージされている。時刻によってマージすることで、二つの機器20において並列的に実行される処理のログ情報の対比を容易化することができる。
【0083】
次に、図12の処理の際に管理サーバ10において実行される処理手順について説明する。図14は、第三の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【0084】
管理サーバ10の診断処理制御部12は、センターサーバ40に対して定期的にポーリングを実行するタイミングを制御する(S301)。ポーリングの実行時間になると(S301でYes)、センターサーバアクセス部11は診断処理制御部12からの指示に応じ、センターサーバアドレス111に基づいてセンターサーバ40に対してポーリングを行うことにより、センターサーバ40において管理されている診断プログラム25の転送を要求する(S302)。
【0085】
続いて、センターサーバアクセス部11は、センターサーバ40との間で相互認証を実行する(S303)。相互認証が行われると、センターサーバアクセス部11は、センターサーバ40より転送される診断プログラム(群)を受信する(S304)。
【0086】
その後、機器管理部13が、異常等の発生した機器20aより機器異常コードを受信すると(S305)、診断処理制御部12は、補助記憶装置102に保存されている診断プログラム25の中から機器異常コードに対応する診断プログラム25を診断プログラム選択テーブル121に基づいて自動的に選択する(S306)。機器管理部13は、選択された診断プログラム25を機器20aに送信する(S307)。
【0087】
続いて、機器管理部13が、機器20aよりログ情報を受信すると(S308でYes)、診断処理制御部12は、ログ情報を解析し(S309)、その解析結果に基づいて、機器20bに実行させる診断プログラム25を選択する(S310)。機器管理部13は、選択された診断プログラム25を機器20bに送信する(S311)。
【0088】
続いて、機器管理部13が、機器20bよりログ情報を受信すると(S312でYes)、診断処理制御部12は、ログ情報を解析し、機器20a又は機器20bに対して更に詳細なログを出力する診断プログラム25(すなわち、二次診断プログラム)の実行が必要であると判定される場合は、機器管理部13が二次診断プログラムを機器20a又は20bに送信し、ログ情報を取得する(S313〜S317)。
【0089】
続いて、診断処理制御部12は、機器20aより取得されたログ情報と機器20bより取得されたログ情報とをマージし、センターサーバアクセス部11は、マージされたログ情報をセンターサーバ40へ送信する(S318)。
【0090】
上述したように、第三の実施の形態によれば、複数の機器20に跨って診断プログラムを実行させ、ログ情報を取得することができる。
【0091】
なお、上記においては、ログ情報に基づく診断プログラムの選択は、自動的に行われる例について説明した。しかし、必ずしも完全に自動的でなくてもよい。例えば、ログ情報に基づいて、診断プログラム25が一意に選択できない場合(例えば、診断プログラム選択テーブル121において、複数の診断プログラム25が対応付けられている場合等)、候補となる診断プログラム25を機器20の操作パネル等に表示させ、操作者に診断プログラム25を選択させるようにしてもよい。
【0092】
また、管理サーバ10の機能(センターサーバアクセス部11、診断処理制御部12等)を、各機器20に実装するようにしてもよい。図15は、管理サーバの機能を機器に実装した機器管理システムの構成例を示す図である。図15中、図1と同一部分には同一符号を付し、その説明は省略する。
【0093】
図15の機器管理システム2において、機器20a及び機器20bは、それぞれ診断部25を有している。診断部25は、管理サーバ10の機能をそれぞれの機器において実現する。したがって、図15の形態において、管理サーバ10は必ずしも必要ではない。
【0094】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0095】
【図1】本発明の実施の形態における機器管理システムの構成例を示す図である。
【図2】本発明の実施の形態における機器の機能構成例を示す図である。
【図3】本発明の実施の形態における管理サーバの機能構成例を示す図である。
【図4】本発明の実施の形態における管理サーバのハードウェア構成例を示す図である。
【図5】第一の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【図6】診断プログラムカタログの例を示す図である。
【図7】第一の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【図8】第二の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【図9】第二の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【図10】診断プログラム選択テーブルの構成例を示す図である。
【図11】ログ情報に基づく診断プログラムの選択処理の具体例を説明するための図である。
【図12】第三の実施の形態における機器管理システムの処理手順を説明するためのシーケンス図である。
【図13】マージされたログ情報の例を示す図である。
【図14】第三の実施の形態における管理サーバの処理手順を説明するためのフローチャートである。
【図15】管理サーバの機能を機器に実装した機器管理システムの構成例を示す図である。
【符号の説明】
【0096】
1、2 機器管理システム
10 管理サーバ
11 センターサーバアクセス部
12 診断処理制御部
13 機器管理部13
14 OS
20、20a、20b、20c 機器
21a コピーアプリ
21b FAXアプリ
21c プリンタアプリ
21d スキャナアプリ
22 サービス層
23 診断プログラム実行部
24 OS
25 診断部
30a、30b クライアントPC
40 センターサーバ
50 ネットワーク
60 ケーブル
70 広域ネットワーク
80 ファイアーフォール
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス

【特許請求の範囲】
【請求項1】
診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援装置であって、
第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手段と、
前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手段とを有することを特徴とする障害解析支援装置。
【請求項2】
前記第二の診断プログラムは、前記第一のログ情報に基づいて前記障害に関係すると推測される箇所について前記第一の診断プログラムよりも詳細なログ情報を出力することを特徴とする請求項1記載の障害解析支援装置。
【請求項3】
前記ログ情報取得手段は、ネットワークを介して接続される電子機器のプログラムを診断対象として前記第一の診断プログラムが出力する前記ログ情報を取得し、
前記診断プログラム選択手段によって選択される前記第二の診断プログラムを前記電子機器に送信する診断プログラム送信手段を有することを特徴とする請求項1又は2記載の障害解析支援装置。
【請求項4】
前記診断プログラム送信手段は、前記診断プログラム選択手段によって選択される前記第二の診断プログラムを前記電子機器とは異なる電子機器に送信することを特徴とする請求項3記載の障害解析支援装置。
【請求項5】
コンピュータが、診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析を支援する障害解析支援方法であって、
第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手順と、
前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手順とを有することを特徴とする障害解析支援方法。
【請求項6】
前記第二の診断プログラムは、前記第一のログ情報に基づいて前記障害に関係すると推測される箇所について前記第一の診断プログラムよりも詳細なログ情報を出力することを特徴とする請求項5記載の障害解析支援方法。
【請求項7】
前記ログ情報取得手順は、ネットワークを介して接続される電子機器のプログラムを診断対象として前記第一の診断プログラムが出力する前記ログ情報を取得し、
前記診断プログラム選択手順において選択される前記第二の診断プログラムを前記電子機器に送信する診断プログラム送信手順を有することを特徴とする請求項5又は6記載の障害解析支援方法。
【請求項8】
前記診断プログラム送信手順は、前記診断プログラム選択手順において選択される前記第二の診断プログラムを前記電子機器とは異なる電子機器に送信することを特徴とする請求項7記載の障害解析支援方法。
【請求項9】
コンピュータに、診断対象とされるプログラムに対して処理を割り込ませることにより前記プログラムに関するログ情報を出力する診断プログラムを用いて前記プログラムの障害の解析の支援を実行させるための障害解析支援プログラムであって、
第一の診断プログラムが出力する第一のログ情報を取得するログ情報取得手順と、
前記ログ情報の内容と前記診断プログラムとの対応関係を示す対応関係情報が記録された記憶装置を用いて、前記第一のログ情報に対応する診断プログラムを次に用いる第二の診断プログラムとして選択する診断プログラム選択手順とを有することを特徴とする障害解析支援プログラム。
【請求項10】
前記第二の診断プログラムは、前記第一のログ情報に基づいて前記障害に関係すると推測される箇所について前記第一の診断プログラムよりも詳細なログ情報を出力することを特徴とする請求項9記載の障害解析支援プログラム。
【請求項11】
前記ログ情報取得手順は、ネットワークを介して接続される電子機器のプログラムを診断対象として前記第一の診断プログラムが出力する前記ログ情報を取得し、
前記診断プログラム選択手順において選択される前記第二の診断プログラムを前記電子機器に送信する診断プログラム送信手順を有することを特徴とする請求項9又は10記載の障害解析支援プログラム。
【請求項12】
前記診断プログラム送信手順は、前記診断プログラム選択手順において選択される前記第二の診断プログラムを前記電子機器とは異なる電子機器に送信することを特徴とする請求項11記載の障害解析支援プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate