(57)【要約】【課題】修正対象となるプログラムの実行状況に応じて、修正プログラムの適用を行い得る、プログラム修正システム、端末装置、及びサーバ装置、更には、プログラム修正方法、エラー検出プログラム及び管理プログラムを提供する。【解決手段】プログラム修正システム１は、プログラム１０を実行する端末装置２と、修正プログラムを提供するサーバ装置３とを備える。端末装置２は、プログラム１０の実行時のエラーの発生経路を特定する経路情報を生成する経路情報生成部３２と、経路情報をサーバ装置３に送信する通信部３３とを備える。サーバ装置３は、プログラム１０の実行前に発生した過去のエラーの発生経路を特定する情報及び対応する修正プログラムを記憶する記憶部４５と、経路情報が、記憶部４５に記憶されている情報に一致するかどうかを判定する判定部４３と、一致する場合に、修正プログラムを端末装置２に送信する通信部４２とを備える。【選択図】図１
2010191527.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する端末装置と、前記プログラムの修正プログラムを提供するサーバ装置とを備えるプログラム修正システムであって、
前記端末装置は、
前記プログラムの実行時に発生したエラーの発生経路を特定する経路情報を生成する経路情報生成部と、
前記経路情報を前記サーバ装置に送信する通信部とを備え、
前記サーバ装置は、
前記プログラムの実行前に発生した過去のエラーの発生経路を特定する情報と共に、前記過去のエラーに対応する修正プログラムを記憶する記憶部と、
前記端末装置から送信された経路情報が、前記記憶部に記憶されている情報に一致するかどうかを判定する判定部と、
前記判定部が一致すると判定した場合に、前記記憶部に記憶されている前記修正プログラムを前記端末装置に送信する通信部とを備えている、
ことを特徴とするプログラム修正システム。
【請求項２】
前記端末装置の前記経路情報生成部が、前記プログラムの実行時の動作ログから、前記プログラムにおける、前記エラーの発生前の複数の分岐点を特定し、特定した前記複数の分岐点を含む情報を前記経路情報とし、
前記サーバ装置の前記記憶部が、前記過去のエラーの発生経路を特定する情報として、前記プログラムにおける、前記過去のエラーの発生前の複数の分岐点を特定する情報を記憶する、請求項１に記載のプログラム修正システム。
【請求項３】
前記サーバ装置の前記記憶部が、前記過去のエラーに対応して、当該エラーが発生した場合の対処方法が特定されたエラー対処情報を更に記憶し、
前記サーバ装置の前記通信部が、前記判定部が一致しないと判定した場合に、前記経路情報で特定されるエラーに対応した前記エラー対処情報を、前記端末装置に送信する、請求項１または２に記載のプログラム修正システム。
【請求項４】
前記プログラムが、実行時において、動作ログを特定するログ情報と実行時に発生したエラーを特定するエラー情報とを出力可能な場合において、
前記端末装置の前記経路情報生成部が、前記ログ情報及び前記エラー情報に基づいて、前記経路情報を生成する、請求項１〜３のいずれかに記載のプログラム修正システム。
【請求項５】
前記端末装置の前記経路情報生成部が、前記プログラムの実行の終了を検出した後に、前記経路情報を生成する、請求項１〜４のいずれかに記載のプログラム修正システム。
【請求項６】
外部のサーバ装置に接続される端末装置であって、
プログラムの実行時に発生したエラーの発生経路を特定する経路情報を生成する経路情報生成部と、
前記経路情報を前記外部のサーバ装置に送信する通信部とを備えている、ことを特徴とする端末装置。
【請求項７】
前記経路情報生成部が、前記プログラムの実行時の動作ログから、前記エラーの発生経路として、前記プログラムにおける、前記エラーの発生前の複数の分岐点を特定し、特定した前記複数の分岐点を含む情報を前記経路情報とする、請求項６に記載の端末装置。
【請求項８】
前記プログラムが、実行時において、動作ログを特定するログ情報と実行時に発生したエラーを特定するエラー情報とを出力可能な場合において、  前記経路情報生成部が、前
記ログ情報及び前記エラー情報に基づいて、前記経路情報を生成する、請求項６または７に記載の端末装置。
【請求項９】
前記経路情報生成部が、前記プログラムの実行の終了を検出した後に、前記経路情報を生成する、請求項６〜８のいずれかに記載のプログラム修正システム。
【請求項１０】
プログラムの実行時に発生したエラーの発生経路を特定する経路情報を送信する端末装置に接続されたサーバ装置であって、
前記プログラムの実行前に発生した過去のエラーの発生経路を特定する情報と共に、前記過去のエラーに対応する修正プログラムを記憶する記憶部と、
前記端末装置から送信された経路情報が、前記記憶部に記憶されている情報に一致するかどうかを判定する判定部と、
前記判定部が一致すると判定した場合に、前記記憶部に記憶されている前記修正プログラムを前記端末装置に送信する通信部とを備えている、
ことを特徴とするサーバ装置。
【請求項１１】
前記端末装置が、前記プログラムの実行時の動作ログから、前記プログラムにおける、前記エラーの発生前の複数の分岐点を特定し、特定した前記複数の分岐点を含む情報を前記経路情報として送信する場合に、
前記記憶部が、前記過去のエラーの発生経路を特定する情報として、前記プログラムにおける、前記過去のエラーの発生前の複数の分岐点を特定する情報を記憶する、請求項１０に記載のサーバ装置。
【請求項１２】
前記記憶部が、前記過去のエラーに対応して、当該エラーが発生した場合の対処方法が特定されたエラー対処情報を更に記憶し、
前記通信部が、前記判定部が一致しないと判定した場合に、前記経路情報で特定されるエラーに対応した前記エラー対処情報を、前記端末装置に送信する、請求項１０または１１に記載のサーバ装置。
【請求項１３】
端末装置で実行されるプログラムに対して、外部のサーバ装置によって、修正プログラムを適用するためのプログラム修正方法であって、
（ａ）前記端末装置によって、前記プログラムの実行時に発生したエラーの発生経路を特定する経路情報を生成するステップと、
（ｂ）前記端末装置によって、前記経路情報を前記サーバ装置に送信するステップと、
（ｃ）前記サーバ装置によって、前記プログラムの実行前に発生した過去のエラーの発生経路を特定する情報と共に、前記過去のエラーに対応する修正プログラムを記憶するステップと、
（ｄ）前記サーバ装置によって、前記端末装置から送信された経路情報が、前記記憶部に記憶されている情報に一致するかどうかを判定するステップと、
（ｅ）前記（ｄ）のステップで一致すると判定された場合に、前記サーバ装置によって、前記記憶部に記憶されている前記修正プログラムを前記端末装置に送信するステップとを有する、ことを特徴とするプログラム修正方法。
【請求項１４】
前記（ａ）のステップで、前記端末装置によって、前記プログラムの実行時の動作ログから、前記プログラムにおける、前記エラーの発生前の複数の分岐点を特定し、特定した前記複数の分岐点を含む情報を前記経路情報とし、
前記（ｃ）のステップで、前記サーバ装置によって、前記過去のエラーの発生経路を特定する情報として、前記プログラムにおける、前記過去のエラーの発生前の複数の分岐点を特定する情報を記憶する、請求項１３に記載のプログラム修正方法。
【請求項１５】
前記（ｃ）のステップで、前記サーバ装置によって、前記過去のエ
ラーに対応して、当該エラーが発生した場合の対処方法が特定されたエラー対処情報を更に記憶し、
前記（ｅ）のステップで、前記（ｄ）のステップにおいて一致しないと判定された場合に、前記サーバ装置によって、前記経路情報で特定されるエラーに対応した前記エラー対処情報を、前記端末装置に送信する、請求項１３または１４に記載のプログラム修正方法。
【請求項１６】
前記プログラムが、実行時において、動作ログを特定するログ情報と実行時に発生したエラーを特定するエラー情報とを出力可能な場合において、
前記（ａ）のステップで、前記端末装置によって、前記ログ情報及び前記エラー情報に基づいて、前記経路情報を生成する、請求項１３〜１５のいずれかに記載のプログラム修正方法。
【請求項１７】
前記（ａ）のステップで、前記端末装置によって、前記プログラムの実行の終了を検出した後に、前記経路情報を生成する、請求項１３〜１６のいずれかに記載のプログラム修正方法。
【請求項１８】
コンピュータに、
（ａ）プログラムの実行時に発生したエラーの発生経路を特定する経路情報を生成するステップと、
（ｂ）前記経路情報を前記外部のサーバ装置に送信するステップとを実行させる、ことを特徴とするエラー検出プログラム。
【請求項１９】
前記（ａ）のステップで、前記プログラムの実行時の動作ログから、前記エラーの発生経路として、前記プログラムにおける、前記エラーの発生前の複数の分岐点を特定し、特定した前記複数の分岐点を含む情報を前記経路情報とする、請求項１８に記載のエラー検出プログラム。
【請求項２０】
前記プログラムが、実行時において、動作ログを特定するログ情報と実行時に発生したエラーを特定するエラー情報とを出力可能な場合において、
前記（ａ）のステップで、前記ログ情報及び前記エラー情報に基づいて、前記経路情報を生成する、請求項１８または１９に記載のエラー検出プログラム。
【請求項２１】
前記（ａ）のステップで、前記プログラムの実行の終了を検出した後に、前記経路情報を生成する、請求項１８〜２０のいずれかに記載のエラー検出プログラム。
【請求項２２】
端末装置によって、プログラムの実行時に発生したエラーの発生経路を特定する経路情報が送信された場合に、コンピュータによって、前記端末装置への修正プログラムの送信を行うための管理プログラムであって、
前記コンピュータに、
（ａ）前記プログラムの実行前に発生した過去のエラーの発生経路を特定する情報と共に、前記過去のエラーに対応する修正プログラムを記憶するステップと、
（ｂ）前記端末装置から送信された経路情報が、前記（ａ）のステップで記憶されている情報に一致するかどうかを判定するステップと、
（ｃ）前記（ｂ）のステップで一致すると判定された場合に、前記（ａ）のステップで記憶されている前記修正プログラムを前記端末装置に送信するステップとを実行させる、ことを特徴とする管理プログラム。
【請求項２３】
前記端末装置が、前記プログラムの実行時の動作ログから、前記プログラムにおける、前記エラーの発生前の複数の分岐点を特定し、特定した前記複数の分岐点を含む情報を前
記経路情報として送信する場合に、
前記（ａ）のステップで、前記過去のエラーの発生経路を特定する情報として、前記プログラムにおける、前記過去のエラーの発生前の複数の分岐点を特定する情報を記憶する、請求項２２に記載の管理プログラム。
【請求項２４】
前記（ａ）のステップで、前記過去のエラーに対応して、当該エラーが発生した場合の対処方法が特定されたエラー対処情報を更に記憶し、
前記（ｃ）のステップで、前記（ｂ）のステップにおいて一致しないと判定された場合に、前記経路情報で特定されるエラーに対応した前記エラー対処情報を、前記端末装置に送信する、請求項２２または２３に記載の管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム修正システム、これに用いられる端末装置及びサーバ装置、これらを用いたプログラム修正方法、更には、これらを実現するためのエラー検出プログラム及び管理プログラムに関する。
【背景技術】
【０００２】
一般に、コンピュータ・プログラムの分野においては、プログラムのリリース後のバグの発見や改良に伴い、プログラムの提供元は、修正プログラムを作成し、これを利用者に配布している。また、近年のインターネットやＬＡＮ等のネットワークの発展に伴い、修正プログラムの配布は、提供元のサーバ装置や、システム管理者が管理しているサーバ装置等からネットワークを介して行われている。
【０００３】
ところで、プログラムに修正プログラムを適用するかどうかの判断は、多くの場合、プログラムがインストールされたコンピュータの利用者に委ねられている。この場合、利用者は、現在のプログラムの条件が、修正プログラムを適用する条件に合致しているかどうかを判定する必要があり、利用者にとって負担となっている。また、利用者が、修正プログラムの適用を怠ると、プログラムの修正が行われないという問題もある。
【０００４】
このため、例えば、特許文献１〜特許文献３は、提供元のサーバ装置や、システム管理者が管理しているサーバ装置によって自動的に修正プログラムを適用するプログラム修正システムを提案している。例えば、特許文献１及び特許文献２に開示のプログラム修正システムでは、管理側のサーバ装置は、端末装置で使用されているプログラムのバージョン情報を検出し、検出したバージョンが最新で無い場合は、これをトリガーとして、修正プログラムの適用を実行する。
【０００５】
また、修正プログラムの中には、適用の際に、予め別の修正プログラムを適用しておかなければならないものもあり、適用のための手順が複雑な場合がある。これに対して、特許文献３に開示のプログラム修正システムでは、サーバ装置は、修正プログラムを適用する際の手順を解析し、複雑な手順が必要な修正プログラムであっても自動的に適用する。この結果、特許文献３に開示のプログラム修正システムを利用すれば、利用者における負担は更に軽減される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−２１４８２９号公報
【特許文献２】特開２００３−３４５５９７号公報
【特許文献３】特開２００４−１０２３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、運用中のシステムにおいて、実行されるプログラムへの修正プログラムの適用はリスクを伴うことがある。よって、プログラムの実行に無関係な修正プログラムについては、可能な限り、実行されるプログラムへの適用を控えるのが好ましいと考えられる。
【０００８】
しかしながら、上記特許文献１〜特許文献３に開示されたプログラム修正システムでは
、適用対象となるプログラムの実行状況については考慮されず、修正プログラムは、実行状況と無関係であっても、自動的に、実行されるプログラムに適用されてしまう。このため、上記特許文献１〜特許文献３に開示されたプログラム修正システムには、リスクの高い状況を招来してしまうという問題がある。
【０００９】
本発明の目的は、上記問題を解消し、修正対象となるプログラムの実行状況に応じて、修正プログラムの適用を行い得る、プログラム修正システム、端末装置、及びサーバ装置、更には、プログラム修正方法、エラー検出プログラム及び管理プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明におけるプログラム修正システムは、プログラムを実行する端末装置と、前記プログラムの修正プログラムを提供するサーバ装置とを備えるプログラム修正システムであって、
前記端末装置は、
前記プログラムの実行時に発生したエラーの発生経路を特定する経路情報を生成する経路情報生成部と、
前記経路情報を前記サーバ装置に送信する通信部とを備え、
前記サーバ装置は、
前記プログラムの実行前に発生した過去のエラーの発生経路を特定する情報と共に、前記過去のエラーに対応する修正プログラムを記憶する記憶部と、
前記端末装置から送信された経路情報が、前記記憶部に記憶されている情報に一致するかどうかを判定する判定部と、
前記判定部が一致すると判定した場合に、前記記憶部に記憶されている前記修正プログラムを前記端末装置に送信する通信部とを備えている、
ことを特徴とする。
【００１１】
上記目的を達成するため、本発明における端末装置は、外部のサーバ装置に接続される端末装置であって、
プログラムの実行時に発生したエラーの発生経路を特定する経路情報を生成する経路情報生成部と、
前記経路情報を前記外部のサーバ装置に送信する通信部とを備えている、ことを特徴とする。
【００１２】
上記目的を達成するため、本発明におけるサーバ装置は、プログラムの実行時に発生したエラーの発生経路を特定する経路情報を送信する端末装置に接続されたサーバ装置であって、
前記プログラムの実行前に発生した過去のエラーの発生経路を特定する情報と共に、前記過去のエラーに対応する修正プログラムを記憶する記憶部と、
前記端末装置から送信された経路情報が、前記記憶部に記憶されている情報に一致するかどうかを判定する判定部と、
前記判定部が一致すると判定した場合に、前記記憶部に記憶されている前記修正プログラムを前記端末装置に送信する通信部とを備えている、
ことを特徴とする。
【００１３】
上記目的を達成するため、本発明におけるプログラム修正方法は、端末装置で実行されるプログラムに対して、外部のサーバ装置によって、修正プログラムを適用するためのプログラム修正方法であって、
（ａ）前記端末装置によって、前記プログラムの実行時に発生したエラーの発生経路を特定する経路情報を生成するステップと、（ｂ）前記端末装置によって、前記経路情報を前
記サーバ装置に送信するステップと、
（ｃ）前記サーバ装置によって、前記プログラムの実行前に発生した過去のエラーの発生経路を特定する情報と共に、前記過去のエラーに対応する修正プログラムを記憶するステップと、
（ｄ）前記サーバ装置によって、前記端末装置から送信された経路情報が、前記記憶部に記憶されている情報に一致するかどうかを判定するステップと、
（ｅ）前記（ｄ）のステップで一致すると判定された場合に、前記サーバ装置によって、前記記憶部に記憶されている前記修正プログラムを前記端末装置に送信するステップとを有する、ことを特徴とする。
【００１４】
上記目的を達成するため、本発明におけるエラー検出プログラムは、コンピュータに、（ａ）プログラムの実行時に発生したエラーの発生経路を特定する経路情報を生成するステップと、
（ｂ）前記経路情報を前記外部のサーバ装置に送信するステップとを実行させる、ことを特徴とする。
【００１５】
上記目的を達成するため、本発明における管理プログラムは、端末装置によって、プログラムの実行時に発生したエラーの発生経路を特定する経路情報が送信された場合に、コンピュータによって、前記端末装置への修正プログラムの送信を行うための管理プログラムであって、
前記コンピュータに、
（ａ）前記プログラムの実行前に発生した過去のエラーの発生経路を特定する情報と共に、前記過去のエラーに対応する修正プログラムを記憶するステップと、
（ｂ）前記端末装置から送信された経路情報が、前記（ａ）のステップで記憶されている情報に一致するかどうかを判定するステップと、
（ｃ）前記（ｂ）のステップで一致すると判定された場合に、前記（ａ）のステップで記憶されている前記修正プログラムを前記端末装置に送信するステップとを実行させる、ことを特徴とする。
【発明の効果】
【００１６】
以上のように、本発明における、プログラム修正システム、端末装置、サーバ装置、プログラム修正方法、エラー検出プログラム及び管理プログラムによれば、修正対象となるプログラムの実行状況に応じて、修正プログラムの適用が可能となる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の実施の形態における、プログラム修正システム、端末装置及びサーバ装置の概略構成を示すブロック図である。
【図２】図２は、端末装置におけるプログラムの実行工程を示すフロー図である。
【図３】図３は、端末装置におけるエラー検出工程を示すフロー図である。
【図４】図４は、端末装置が送信する経路情報の一例を示す図である。
【図５】図５は、修正プログラム格納データベースに格納される情報の一例を示す図である。
【図６】図６は、端末装置が修正プログラムを受信した場合の表示画面の一例を示す図である。
【図７】図７は、端末装置がエラー対処情報を受信した場合の表示画面の一例を示す図である。
【図８】図８は、サーバ装置における修正プログラムの管理工程を示すフロー図である。
【図９】図９は、修正プログラム管理データベースに登録されている情報の一例を示す図である。
【図１０】図１０は、修正プログラム管理データベースに登録されているエラー対処情報の一例を示す図である。
【発明を実施するための形態】
【００１８】
（実施の形態）
以下、本発明の実施の形態における、プログラム修正システム、端末装置、サーバ装置、プログラム修正方法、エラー検出プログラム及び管理プログラムについて、図１〜図１０を参照しながら説明する。最初に、本実施の形態における、プログラム修正システム、端末装置、及びサーバ装置の構成について図１を用いて説明する。
【００１９】
図１は、本発明の実施の形態における、プログラム修正システム、端末装置及びサーバ装置の概略構成を示すブロック図である。図１に示すように、本実施の形態におけるプログラム修正システム１は、プログラムを実行する端末装置２と、プログラムの修正プログラムを提供するサーバ装置３とを備えている。図１においては、単一の端末装置２のみが図示されているが、実際は、端末装置２は複数個であっても良い。
【００２０】
端末装置２は、経路情報生成部３２と、通信部３３とを備えている。また、端末装置２は、ネットワーク５０を介して、サーバ装置３に接続されている。経路情報生成部３２は、プログラム１０の実行時に発生したエラーの発生経路を特定した経路情報を生成する。ここで、言い換えると、経路情報とは、エラーが発生した原因を特定可能な情報をいう。また、通信部３３は、経路情報をサーバ装置３に送信する。
【００２１】
サーバ装置３は、記憶部４５と、判定部４３と、通信部４２とを備えている。記憶部４５は、その記憶領域内に、修正プログラム管理データベース４４を構築している。修正プログラム管理データベース４４は、プログラム１０の実行前に発生した過去のエラーの発生経路を特定する情報と共に、過去のエラーに対応する修正プログラムを記憶している。
【００２２】
判定部４３は、端末装置２から送信された経路情報が、修正プログラム管理データベース４４に記憶されている情報に一致するかどうかを判定する。判定部４３は、一致すると判定した場合は、記憶している修正プログラムの中から、対応する修正プログラムを選び出す。通信部４２は、選び出された修正プログラムを端末装置２に送信する。
【００２３】
このように、本実施の形態におけるプログラム修正システムでは、現在実行中のプログラムに対して修正プログラムが存在する場合、該修正プログラムが適用可能かどうかは、端末装置２からの経路情報に基づいて判断される。つまり、本実施の形態では、修正プログラムの適用は、実行されているプログラムの実行状況に応じて行われるので、端末装置２がプログラム１０を実行することによって構築されるシステムにおいて、リスクの発生が軽減される。なお、本実施の形態において「過去」とは、プログラム１０の実行が開始された時点より時間的に前の時点全てをいう。
【００２４】
ここで、図１に基づいて、プログラム修正システム１の構成、即ち、端末装置２及びサーバ装置３の構成を更に具体的に説明する。先ず、端末装置２の構成について具体的に説明する。図１に示すように、本実施の形態では、端末装置２は、プログラム１０を実行する実行部２０と、エラー検出部３０とを備えている。
【００２５】
実行部２０で実行されるプログラム１０は、本実施の形態では、プログラムの本体部分である実行モジュール１１に加え、ログ情報出力モジュール１２と、エラー情報出力モジュール１３とを備えている。このうち、実行モジュールが、修正プログラムが適用されるプログラム本体である。
【００２６】
ログ情報出力モジュール１２は、実行モジュール１１の実行時における動作ログを取得し、これを特定するログ情報を出力する。具体的は、ログ情報出力モ
ジュール１２は、例えば、実行モジュール１１での実行分岐点（実行された分岐命令）を特定可能な各種情報を記録及び累積し、その後、出力する。また、エラー情報出力モジュール１２は、実行モジュール１１の実行時に発生したエラーを特定可能なエラー情報（エラーが発生した際の各種情報）を記録し、更にこれを出力する。図１において、１４は、出力されたログ情報及びエラー情報含むファイルを示している。
【００２７】
エラー検出部３０は、上述した経路情報生成部３２と、通信部３３とに加え、更に、プログラム終了検出部３１と、処理結果確認部３４と、修正プログラム格納データベース３５と、情報表示部３６とを備えている。このうち、プログラム終了検出部３１は、プログラム１０の実行終了の検知を行い、実行終了を検知すると、そのことを経路情報生成部３２に通知する。
【００２８】
経路情報生成部３２は、本実施の形態では、プログラム終了検出部３１による通知を受けた後に、プログラム１０の実行時の動作ログから、プログラム１０における、エラーの発生前の複数の分岐点を特定し、特定した複数の分岐点を含む情報を経路情報とする。また、経路情報生成部３２は、生成した経路情報を通信部３３に送信する。
【００２９】
具体的には、経路情報生成部３２は、ログ情報・エラー情報を含むファイル１４に記録されている情報から、例えば、エラーに関連するログ情報や、エラー発生直前から数十ステップ遡った部分までのログ情報を抽出する。また、経路情報生成部３２は、ログ情報・エラー情報１４に記録されているログ情報に、同一事象を複数回繰り返し記録するログ情報が含まれている場合は、複数回繰り返し記録された事象を１回の事象にまとめる。即ち、ログ情報にプログラムのループ処理の実行形跡が存在する場合、経路情報生成部３２は、ループ処理が全体で１ステップとなるように情報を加工する。その後、経路情報生成部３２は、エラーに関連するログ情報を抽出する。
【００３０】
そして、経路情報生成部３２は、抽出したログ情報から、例えば、プログラム名、及びエラー発生直前から数十ステップ遡った部分までに存在する分岐点（分岐命令）を取得し、これらとエラー情報とを合わせて経路情報とする（図４参照）。このような経路情報によれば、プログラム上の分岐点での経路からエラーの発生経路が容易に特定されるので、修正プログラムの適用が必要かどうかを適切に判断できる。
【００３１】
通信部３３は、本実施の形態では、ネットワーク５０を経由して、サーバ装置３の通信部４２に接続されており、これに経路情報を送信する。また、通信部３３は、データを送信する機能だけでなく、サーバ装置３からのデータを受信する機能も備えている。具体的には、通信部３３は、サーバ装置３の修正プログラム管理部４０が送信した情報を受信する。また、通信部３３は、受信した情報を処理結果確認部３４に送信する。
【００３２】
処理結果確認部３４は、サーバ装置３の修正プログラム確認部４０から送信された情報の種類について判断する。本実施の形態では、後述するように、修正プログラム確認部４０は、エラーの内容に応じて、修正プログラム、又はエラー対処情報を送信する。よって、処理結果確認部３４は、送信されてきた情報が修正プログラムであるか、又はエラー対処情報であるかを判断する。
【００３３】
また、判断の結果、修正プログラム確認部４０から送信されてきた情報が修正プログラムである場合は、処理結果確認部３４は、この修正プログラムを修正プログラム格納データベース３５に格納する。更に、このとき、処理結果確認部３４は、修正プログラムが格納されたことを示す情報を情報表示部３６に送信する。一方、判断の結果、送信されてきた情報がエラー対処情報である場合は、処理結果確認部３４は、エラー対処情報を情報表示部３６に送信する。
【００３４】
情報表示部３６は、表示装置３７の表示画面に、処理結果確認部３４から送信された情報を表示させる。具体的には、情報表示部３６は、情報が修正プログラムである場合は、修正プログラムの存在を表示画面に表示する（図６参照）。一方、情報表示部３６は、情報がエラー対処情報である場合は、それによって特定されるエラーに対する対処の方法を表示画面に表示する（図７参照）。
【００３５】
次に、サーバ装置３の構成を更に具体的に説明する。図１に示すように、サーバ装置３は、端末装置２で発生したエラーに対応して修正プログラム（図９参照）を送信する修正プログラム管理部４０を備えている。上述した記憶部４５、判定部４３、及び通信部４２は、修正プログラム管理部４０に備えられている。また、修正プログラム管理部４０は、これらに加えて、経路情報登録部４１も備えている。
【００３６】
経路情報登録部４１は、修正プログラム管理データベース４４に、予め外部から入力された修正プログラム本体と、プログラム１０の実行前に発生した過去のエラーの発生経路を特定する情報（以下、「過去の経路情報」とする。）とを、登録する。過去の経路情報は、修正プログラムが対応するエラー毎に登録されている。
【００３７】
また、過去の経路情報の内容は、上述した経路情報生成部３２によって生成される経路情報と同様の内容を含んでおり、具体的には、プログラム名、エラー情報、及びエラー発生直前から数十ステップ遡った部分までに存在する分岐点（分岐命令）を含んでいる（図４参照）。なお、過去の経路情報としては、端末装置２が過去に送信した経路情報を用いても良いし、外部から修正プログラムと共に入力された情報を用いても良い。
【００３８】
また、本実施の形態では、経路情報登録部４１は、修正プログラム管理データベース４４に、エラーが発生した場合の対処方法を特定するエラー対処情報も登録する（図１０参照）。エラー対処情報は、過去のエラーに対応して、具体的には、修正プログラムを適用する必要のない過去のエラーに対応して、予め作成されている。エラー対処情報も、修正プログラムと同様に外部から入力される。
【００３９】
判定部４３は、本実施の形態では、端末装置２の通信部３３から送信され、通信部４２を介して受信した経路情報と、修正プログラム管理データベース４４に登録されている過去の経路情報とを対比する。対比の結果、一致する場合、即ち、受信した経路情報によって特定されたエラーに対応した過去の経路情報が存在する場合は、上述したように、判定部４３は、対応する修正プログラムを選出し、これを通信部４２に送信する。一方、本実施の形態では、対比の結果、一致しない場合は、判定部４３は、対応するエラー対処情報を選出し、これを通信部４２に送信する。
【００４０】
通信部４２は、本実施の形態では、上述したように、端末装置２の通信部３３から送信された経路情報を受信する。また、通信部４２は、判定部４３が選出した修正プログラムに加え、エラー対処情報も、ネットワーク５０を介して、端末装置２の通信部３３に送信する。
【００４１】
ここで、本発明の実施の形態におけるプログラム修正方法について説明する。但し、本実施の形態におけるプログラム修正方法は、図１に示した端末装置２及びサーバ装置３を動作させることによって実施される。よって、本実施の形態におけるプログラム修正方法の説明は、端末装置２及びサーバ装置３の動作の説明に代える。以下に、図２〜図１０を用いて、端末装置２及びサーバ装置３の動作を説明する。また、以下の説明においては、適宜図１を参酌する。
【００４２】
先ず、図２を用いて、端末装置２における実行部２０の動作について説明する。図２は、端末装置におけるプログラムの実行工程を示すフロー図である。図２に示すように、先ず、端末装置２の実行部２０は、プログラム１０の実行モジュールを実行し（ステップＡ１）、更に、ログ情報出力モジュールを実行し、ログ情報出力モジュールにログ情報の出力を行わせる（ステップＡ２）。これにより、プログラム１０の経路上の分岐点においてどの分岐が実行されたかを特定可能な情報が、ログ情報のファイル１４として出力される。
【００４３】
次に、実行部２０は、実行モジュール１１に、その実行中にエラーが発生しているかどうかを判定させる（ステップＡ３）。ステップＡ３の判定の結果、エラーが発生していない場合は、再度、ステップＡ１が実行される。
【００４４】
一方、ステップＡ２の判定の結果、エラーが発生している場合は、実行部２０は、エラー情報出力モジュールを実行し、エラー情報出力モジュールに、エラー情報のファイル１４の出力を行わせる（ステップＡ４）。実行モジュール１１上でエラーが発生し、ステップＡ４が実行されると、プログラム１０は一旦終了する。
【００４５】
続いて、図３〜図７を用いて、端末装置２におけるエラー検出部３０の動作について説明する。図３は、端末装置におけるエラー検出工程を示すフロー図である。図４は、端末装置が送信する経路情報の一例を示す図である。図５は、修正プログラム格納データベースに格納される情報の一例を示す図である。図６は、端末装置が修正プログラムを受信した場合の表示画面の一例を示す図である。図７は、端末装置がエラー対処情報を受信した場合の表示画面の一例を示す図である。
【００４６】
図２に示したステップＡ４が実行されると、図３に示すように、先ず、検出部３０において、プログラム終了検出部３１が、プログラム１０の終了を検出する（ステップＢ１）。次に、経路情報生成部３２は、ステップＡ２及びＡ４で出力されたファイル１４（ログ情報・エラー情報）を取得し、更に、これを用いて、図４に示す経路情報を生成する（ステップＢ２）。生成された経路情報は、通信部３３に送信される。
【００４７】
次に、通信部３３は、経路情報生成部３２から送信された経路情報を、ネットワーク５０を介して、サーバ装置３の通信部４２に送信する（ステップＢ３）。ステップＢ３が実行されると、エラー検出部３０は、サーバ装置３が送信した情報を受信するまで、待機状態となる。
【００４８】
次に、通信部３３が、サーバ装置３の修正プログラム管理部４０からの情報（確認情報）を受信すると（ステップＢ４）、これを処理結果確認部３４に送信する。処理結果確認部３４は修正プログラム管理部４０からの情報の内容を確認する。次に、処理結果確認部３４は、サーバ装置３の修正プログラム確認部４０から送信された情報が修正プログラムであるかどうかを判定する（ステップＢ５）。
【００４９】
ステップＢ５での判定の結果、送信されてきた情報が修正プログラムである場合は、処理結果確認部３４は、この修正プログラムを修正プログラム格納データベース３５に格納する（ステップＢ６）。また、ステップＢ６の実行の際、処理結果確認部３４は、修正プログラム格納データベース３５において修正プログラムを管理するため、図５に示す格納情報も修正プログラム格納データベース３５に格納する。更に、このとき、処理結果確認部３４は、修正プログラムが格納されたことを示す情報を情報表示部３６に送信する。
【００５０】
そして、ステップＢ６が実行されると、情報表示部３６は、例えば、図６に示すように、適用可能な修正プログラムが存在することを、端末装置２の表示画面３７に表示する（ステップＢ７）。
【００５１】
一方、ステップＢ５での判定の結果、送信されてきた情報が、修正プログラムでない場合、即ち、エラー対処情報である場合は、処理結果確認部３４は、エラー対処情報を情報表示部３６に送信する。これにより、図７に示すように、エラーに対する対処の方法が、端末装置の表示画面３７に表示される（ステップＢ８）。そして、ステップＢ７又はステップＢ８が実行されると、エラー検出部３０は、再度、ステップＢ１から処理を開始する。
【００５２】
続いて、図８〜図１０を用いて、サーバ装置３における修正プログラム管理部４０の動作について説明する。図８は、サーバ装置における修正プログラムの管理工程を示すフロー図である。図９は、修正プログラム管理データベースに登録されている情報の一例を示す図である。図１０は、修正プログラム管理データベースに登録されているエラー対処情報の一例を示す図である。
【００５３】
図８に示すように、先ず、サーバ装置３の修正プログラム管理部４０において、経路情報登録部４１が、修正プログラム管理データベース４４に、修正プログラム本体と、各修正プログラムに対応する過去の経路情報とを登録する（ステップＣ１）。具体的には、図９に示すように、各修正プログラムは、対応するプログラム名、エラー情報、及び分岐点情報に関連付けられた状態で登録される。また、ステップＣ１では、更に、図１０に示すように、予め作成されたエラー対処情報も、修正プログラム管理データベース４４に登録される。
【００５４】
ステップＣ１の実行後は、図３に示したステップＢ３の実行によって、端末装置２から経路情報が送信されてくるまで、修正プログラム管理部４０は経路情報の受信待ち状態となる。そして、待機状態にあるときに、端末装置２の送信部３３から経路情報が送信されると、通信部４２は、ネットワーク５０を介して、経路情報を受信する（ステップＣ２）。
【００５５】
次に、判定部４３は、ステップＣ２で受信された経路情報と、修正プログラム管理データベース４４に登録されている過去の経路情報とを対比し、両者が一致しているかどうか、即ち、対応する修正プログラムが登録されているかどうかを判定する（ステップＣ３）。
【００５６】
例えば、経路情報が、図４に示す、プログラム名「Ｐｒｏｇｒａｍ０１」、エラー情報「０ｘ０００００００１」、エラー発生直前の分岐点情報「Ａ１−Ｂ１−Ｃ１−Ｄ１・・・」を含んでいるとする。この場合、判定部４３は、図４に示す経路情報と、図９に示す修正プログラム管理データベース４４に登録されている情報とが一致するかどうかを判定する。図４及び図９の例では、判定部４３は、対応する修正プログラムとして「Ｐａｔｃｈ０１−０１．ｅｘｅ」が登録されていると判定する。
【００５７】
ステップＣ３の判定の結果、対応する修正プログラムが登録されていない場合は、判定部４３は、例えば、図１０に示した情報から、対応するエラー対処情報を選出し、これを通信部４２に送信する。これにより、通信部４２は、選出されたエラー対処情報を、端末装置２のエラー検出部３０にネットワーク５０を経由して送信する（ステップＣ４０）。そして、ステップＣ４の実行後、修正プログラム管理部４０は、再び、端末装置２から経路情報が送信されてくるまで、経路情報の受信待ち状態となる。
【００５８】
一方、ステップＣ３の判定の結果、対応する修正プログラムが登録されている場合は、判定部４３は、対応する修正プログラムを選出し、これを通信部４２に送信する。これにより、通信部４２は、修正プログラムを、端末装置２のエラー検出部３０にネットワークを経由して送信する（ステップＣ５）。そして、ステップＣ５の実行
後も、修正プログラム管理部４０は、再び、端末装置２から経路情報が送信されてくるまで、経路情報の受信待ち状態となる。
【００５９】
ステップＣ４又はステップＣ５が実行されると、端末装置２のエラー検出部３０では、上述したステップＢ４〜ステップＢ８が実行され、利用者に、エラーの対処方法又は修正プログラムの存在が通知される。
【００６０】
以上のように、本実施の形態におけるプログラム修正システム及びプログラム修正方法では、エラーが発生した端末装置において、プログラムの実行時に記録されたログ情報と、エラー発生時のエラー情報とから、経路情報が作成される。そして、サーバ装置が、経路情報から、公開済みの修正プログラムによって修正された問題と同じ問題が発生しているかどうかを確認する。更に、サーバ装置は、同じ問題が発生していれば、修正プログラムを該当する端末装置に送信し、そうでない場合はエラー対処情報を端末装置に送信する。その後、端末装置では、該当エラーを解消できる修正プログラムの存在、又はエラーに対する対処方法が利用者に通知される。この結果、利用者は、修正対象となるプログラムの実行状況に応じて、修正プログラムを適用することができる。
【００６１】
また、本実施の形態におけるエラー検出プログラムは、コンピュータに、図３に示したステップＢ１〜Ｂ８を実行させるプログラムであれば良く、このプログラムの実行により、本実施の形態における端末装置２（図１参照）を実現できる。この場合、コンピュータのＣＰＵ（central processing unit）は、プログラム終了検出部３１、経路情報生成部３２、及び処理結果確認部３４として機能し、処理を行なう。また、コンピュータに備えられたハードディスク等の記憶装置は、修正プログラム格納データベース３５として機能する。更に、コンピュータの通信用のインターフェイス回路とＣＰＵとで通信部３３が実現され、コンピュータのビデオカードで情報表示部３６が実現される。
【００６２】
更に、本実施の形態における管理プログラムは、コンピュータに、図８に示したステップＣ１〜Ｃ５を実行させるプログラムであれば良く、このプログラムの実行により、本実施の形態におけるサーバ装置３（図１参照）を実現できる。この場合、コンピュータのＣＰＵ（central processing unit）は、経路情報登録部４１、及び判定部４３として機能し、処理を行なう。また、コンピュータに備えられたハードディスク等の記憶装置は、修正プログラム管理データベース４４として機能することができる。更に、サーバ装置３においても、コンピュータの通信用のインターフェイス回路とＣＰＵとで通信部４２が実現される。
【００６３】
また、図１に示した本実施の形態におけるプログラム修正システム１は、エラー情報出力モジュールを実装しているプログラム１０に対して適用されているが、本実施の形態は、この例に限定されるものではない。例えば、本実施の形態におけるプログラム修正システム１は、プログラム１０が、プログラム本体側の特定情報（バージョン情報やファイル固有の情報等）を取得するモジュールを実装する場合にも適用でき、この場合であっても、上述した処理を実行することができる。
【産業上の利用可能性】
【００６４】
本発明をコンピュータシステムに適用すれば、コンピュータでエラーが発生した場合に、不用意に修正プログラムが適用されることはなく、実行されているプログラムの状況に応じて修正プログラムが適用される。このため、リスクの高い状況を回避できる。本発明のプログラム修正システム、端末装置、サーバ装置、プログラム修正方法、エラー検出プログラム及び管理プログラムは産業上の利用可能性を有している。
【符号の説明】
【００６５】
１  プログラム修正システム
２  端末装置
３  サーバ装置
１０  プログラム
１１  実行モジュール
１２  ログ情報出力モジュール
１３  エラー情報出力モジュール
１４  ファイル（ログ情報／エラー情報）
２０  実行部
３０  エラー検出部
３１  プログラム終了検出部
３２  経路情報生成部
３３  通信部
３４  処理結果確認部
３５  修正プログラム格納データベース
３６  情報表示部
３７  表示装置
４０  修正プログラム管理部
４１  経路情報登録部
４２  通信部
４３  判定部
４４  修正プログラム管理データベース
４５  記憶部
５０  ネットワーク
【図１】
2010191527.tif 000003
【図２】
2010191527.tif 000004
【図３】
2010191527.tif 000005
【図４】
2010191527.tif 000006
【図５】
2010191527.tif 000007
【図６】
2010191527.tif 000008
【図７】
2010191527.tif 000009
【図８】
2010191527.tif 000010
【図９】
2010191527.tif 000011
【図１０】
2010191527.tif 000012