(57)【要約】【課題】クライアントコンピュータから送られてくる、サーバコンピュータを不安定にする恐れがあるプログラム実行要求を事前に認識し、そのようなプログラム実行要求は他のコンピュータで処理させることにより、システムの信頼性及び可用性を向上させる。【解決手段】監視用コンピュータ２は、クライアントコンピュータ１から送られてきたプログラム実行要求が予め定められている仕様条件を満たしていない場合は、評価用サーバコンピュータ４に送付する。更に、監視用コンピュータ２は、仕様条件を満たすプログラム実行要求であっても、過去にアプリケーションプログラムを異常終了させたプログラム実行要求と同一仕様のプログラム実行要求もしくは過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求と同一仕様のプログラム実行要求は、評価用サーバコンピュータ４に送信する。【選択図】      図１
2004295533.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータからのプログラム実行要求が、予め定められている仕様条件を満たしているか否かを判断し、満たしている場合は、前記プログラム実行要求をサーバコンピュータへ送信し、満たしていない場合は、前記プログラム実行要求を評価用サーバコンピュータに送信する監視用コンピュータと、
該監視用コンピュータからプログラム実行要求が送られてきたとき、該プログラム実行要求に従ってアプリケーションプログラムを実行し、その実行結果を前記監視用コンピュータに返却するサーバコンピュータと、
前記監視用コンピュータからプログラム実行要求が送られてきたとき、該プログラム実行要求によって実行要求されたアプリケーションプログラムを、その実行状態を常時監視しながら実行し、実行結果を前記監視用コンピュータに返却する評価用サーバコンピュータとを備えたことを特徴とするアプリケーション障害回避システム。
【請求項２】
請求項１記載のアプリケーション障害回避システムにおいて、
前記監視用コンピュータが、
前記クライアントコンピュータからのプログラム実行要求が前記仕様条件を満たすものであっても、過去にアプリケーションプログラムを異常終了させたプログラム実行要求と同一仕様のプログラム実行要求もしくは過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求と同一仕様のプログラム実行要求は、前記評価用サーバコンピュータに送信する構成を有することを特徴とするアプリケーション障害回避システム。
【請求項３】
請求項１記載のアプリケーション障害回避システムにおいて、
前記監視用コンピュータが、
プログラム実行要求が満たすべき仕様条件が格納された実行要求仕様記憶部と、
前記クライアントコンピュータからのプログラム実行要求が、前記実行要求仕様記憶部に格納されている仕様条件を満たすか否かを判断し、満たしている場合は、前記プログラム実行要求を前記サーバコンピュータへ送信し、満たしていない場合は、前記プログラム実行要求を前記評価用サーバコンピュータへ送信する実行要求評価手段とを備えたことを特徴とするアプリケーション障害回避システム。
【請求項４】
請求項３記載のアプリケーション障害回避システムにおいて、
過去にアプリケーションプログラムを異常終了させたプログラム実行要求の仕様および過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求の仕様が格納された実行エラー要求記憶部を備え、且つ、
前記実行要求仕様記憶部に、実行結果が満たすべき実行結果条件が格納され、前記実行要求評価手段が、前記クライアントコンピュータからのプログラム実行要求が前記実行要求仕様記憶部に格納されている仕様条件を満たしている場合であっても、前記実行エラー要求記憶部に格納されている仕様と合致する仕様のプログラム実行要求は、前記評価用サーバコンピュータに送信する構成を有することを特徴とするアプリケーション障害回避システム。
【請求項５】
クライアントコンピュータからのプログラム実行要求が、予め定められている仕様条件を満たしているか否かを判断し、満たしている場合は、前記プログラム実行要求に従ってアプリケーションプログラムを実行し、満たしていない場合は、前記プログラム実行要求を評価用サーバコンピュータに送信するサーバコンピュータと、
前記サーバコンピュータからプログラム実行要求が送られてきたとき、該プログラム実行要求によって実行要求されているアプリケーションプログラムを、その実行状態を常時監視しながら実行し、実行結果を前記サーバコンピュータに返却する評価用サーバコンピュータとを備えたことを特徴とするアプリケーション障害回避システム。
【請求項６】
請求項５記載のアプリケーション障害回避システムにおいて、
前記サーバコンピュータが、
前記クライアントコンピュータからのプログラム実行要求が前記仕様条件を満たすものであっても、過去にアプリケーションプログラムを異常終了させたプログラム実行要求と同一仕様のプログラム実行要求もしくは過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求と同一仕様のプログラム実行要求は、前記評価用サーバコンピュータに送信する構成を有することを特徴とするアプリケーション障害回避システム。
【請求項７】
クライアントコンピュータからのプログラム実行要求が、予め定められている仕様条件を満たしているか否かを判断し、満たしている場合は、前記プログラム実行要求を、受信したプログラム実行要求に従ってアプリケーションプログラムを実行するサーバコンピュータへ送信し、満たしていない場合は、前記プログラム実行要求を、受信したプログラム実行要求によって実行要求されているアプリケーションプログラムを、その実行状態を常時監視しながら実行する評価用サーバコンピュータに送信する構成を有することを特徴とする監視用コンピュータ。
【請求項８】
請求項７記載の監視用コンピュータにおいて、
前記クライアントコンピュータからのプログラム実行要求が前記仕様条件を満たすものであっても、過去にアプリケーションプログラムを異常終了させたプログラム実行要求と同一仕様のプログラム実行要求もしくは過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求と同一仕様のプログラム実行要求は、前記評価用サーバコンピュータに送信する構成を有することを特徴とする監視用コンピュータ。
【請求項９】
クライアントコンピュータからのプログラム実行要求が、予め定められている仕様条件を満たしているか否かを判断し、満たしている場合は、前記プログラム実行要求に従ってアプリケーションプログラムを実行し、満たしていない場合は、前記プログラム実行要求を、受信したプログラム実行要求によって実行要求されているアプリケーションプログラムをその実行状態を常時監視しながら実行する評価用サーバコンピュータに送信する構成を有することを特徴とするサーバコンピュータ。
【請求項１０】
請求項９記載のサーバコンピュータにおいて、
前記クライアントコンピュータからのプログラム実行要求が前記仕様条件を満たしているものであっても、過去にアプリケーションプログラムを異常終了させたプログラム実行要求と同一仕様のプログラム実行要求もしくは過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求と同一仕様のプログラム実行要求は、前記評価用サーバコンピュータに送信する構成を有することを特徴とするサーバコンピュータ。
【請求項１１】
コンピュータを、
クライアントコンピュータからのプログラム実行要求が、予め定められている仕様条件を満たしているか否かを判断し、満たしている場合は、前記プログラム実行要求を、受信したプログラム実行要求に従ってアプリケーションプログラムを実行するサーバコンピュータへ送信し、満たしていない場合は、前記プログラム実行要求を、受信したプログラム実行要求によって実行要求されているアプリケーションプログラムを、その実行状態を常時監視しながら実行する評価用サーバコンピュータに送信する手段として機能させるためのプログラム。
【請求項１２】
コンピュータを、
クライアントコンピュータからのプログラム実行要求が、予め定められている仕様条件を満たしているか否かを判断し、満たしている場合は、前記プログラム実行要求に従ってアプリケーションプログラムを実行し、満たしていない場合は、前記プログラム実行要求を、受信したプログラム実行要求によって実行要求されているアプリケーションプログラムを、その実行状態を常時監視しながら実行する評価用サーバコンピュータに送信する手段として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバコンピュータがクライアントコンピュータからのプログラム実行要求に従ってアプリケーションプログラムを実行する分散システムに関し、特に、サーバコンピュータを不安定にさせる恐れがあるプログラム実行要求を事前に認識し、そのようなプログラム実行要求は他のコンピュータで処理させることにより、システムの信頼性を向上させる技術に関する。
【０００２】
【従来の技術】
分散システムにおいて、アプリケーションプログラムの状態を監視し、障害発生時の原因究明やデバッグに要する時間を短縮するということは従来から行われている。このような技術としては、種々の技術が知られており、例えば、被監視ノード上で動作するアプリケーションプログラムに、それ自身の稼働状況や障害に関する情報を出力するインタフェースを組み込んでおき、上記インタフェースによって得られた情報を被監視ノードから監視ノードに送信する技術が知られている（例えば、特許文献１参照）。
【０００３】
ところで、分散システムにおいては、不特定多数のクライアントコンピュータからプログラム実行要求が送られてくる可能性がある。そのような状況においては、想定していないプログラム実行要求が送付されてくる場合もあり、そのまま処理すると、サーバコンピュータを不安定にする可能性がある。例えば、想定していないプログラム実行要求に従ってアプリケーションプログラムを実行した結果、大量のリソースが使用され、サーバコンピュータが不安定になることも考えられる。しかし、上述した特許文献１などに記載されている従来の技術は、あくまで障害発生後の復旧作業を効率的に行えるようにするための技術であるので、想定していないプログラム実行要求によってサーバコンピュータが不安定になるのを防ぐことはできない。
【０００４】
このような問題点を解決するため、例えば、図６のブロック図に示すような分散システムが考えられる。この図６に示した分散システムは、プログラム実行要求を送付するクライアントコンピュータ６１と、クライアントコンピュータ６１からのプログラム実行要求を受け取り、アプリケーションプログラムを実行するサーバコンピュータ６２から構成されている。
【０００５】
クライアントコンピュータ６１は、クライアントプログラムを動作させるクライアントプログラム実行手段６１１を含んでいる。
【０００６】
一方、サーバコンピュータ６２は、プログラム実行要求が満たすべき仕様条件が格納された実行要求仕様記憶部６２２と、クライアントコンピュータ６１から送られてきたプログラム実行要求を解析し、その仕様が実行要求仕様記憶部６２２に格納されている仕様条件を満たしているか否かを判断し、満たしていない場合には要求元のクライアントコンピュータ６１にエラー情報を返し、満たしている場合にはプログラム実行要求をプログラム実行手段６２３に渡す実行要求評価手段６２１と、プログラム実行要求によって要求されたアプリケーションプログラムを実行するプログラム実行手段６２３とを含んでいる。
【０００７】
このような構成を有する分散システムは、次のように動作する。
【０００８】
先ず、クライアントコンピュータ６１内のクライアントプログラム実行手段６１１が、クライアントプログラムを実行し、サーバコンピュータ６２内の実行要求評価手段６２１に対してプログラム実行要求を送付する。
【０００９】
これにより、実行要求評価手段６２１は、受け取ったプログラム実行要求を解析して、実行要求仕様記憶部６２２に記憶されている仕様条件を満たすか否かを判断する。そして、仕様条件を満たさない場合にはクライアントプログラム実行手段６１１に対してエラー情報を送付する。これに対して、仕様条件を満たしている場合には、プログラム実行要求をプログラム実行手段６２３に渡す。
【００１０】
プログラム実行手段６２３は、受け取ったプログラム実行要求を解析し、指定されたアプリケーションプログラムを実行する。アプリケーションプログラムの実行が終了すると、プログラム実行手段６２３は、実行結果を実行要求評価手段６２１へ送付する。実行要求評価手段６２１は、送付されてきた実行結果をクライアントプログラム実行手段６１１へ送付する。以上の処理により、クライアントプログラム実行手段６１１は、プログラム実行要求の結果を得るのである。
【００１１】
【特許文献１】
特開平８−２１２１７７号公報
【００１２】
【発明が解決しようとする課題】
図６に示した分散システムによれば、仕様条件を満たさないプログラム実行要求によって、サーバコンピュータが不安定になるという問題点は解決することができる。しかし、図６に示した分散システムにも、次のような問題点がある。
【００１３】
第１の問題点は、仕様条件に合わないプログラム実行要求はプログラムの実行を試さずに全てエラーとして処理されてしまうということである。
【００１４】
第２の問題点は、処理結果がエラーとなることが明らかであるプログラム実行要求であっても、プログラム実行要求が仕様通りであれば、サーバコンピュータで必ず処理されてしまうということがある。その結果、サーバコンピュータの動作が不安定になる可能性がある。
【００１５】
そこで、本発明の目的は、サーバコンピュータを不安定にする恐れがあるプログラム実行要求を事前に認識し、そのようなプログラム実行要求は他のコンピュータで処理させることにより、システムの信頼性及び可用性を向上させることにある。
【００１６】
【課題を解決するための手段】
本発明に係る第１のアプリケーション障害回避システムは、上記目的を達成するため、
クライアントコンピュータからのプログラム実行要求が、予め定められている仕様条件を満たしているか否かを判断し、満たしている場合は、前記プログラム実行要求をサーバコンピュータへ送信し、満たしていない場合は、前記プログラム実行要求を評価用サーバコンピュータに送信する監視用コンピュータと、
該監視用コンピュータからプログラム実行要求が送られてきたとき、該プログラム実行要求に従ってアプリケーションプログラムを実行し、その実行結果を前記監視用コンピュータに返却するサーバコンピュータと、
前記監視用コンピュータからプログラム実行要求が送られてきたとき、該プログラム実行要求によって実行要求されたアプリケーションプログラムを、その実行状態を常時監視しながら実行し、実行結果を前記監視用コンピュータに返却する評価用サーバコンピュータとを備えたことを特徴とする。
【００１７】
また、本発明に係る第２のアプリケーション障害回避システムは、仕様を満たしているプログラム実行要求であっても、アプリケーションプログラム側のバグなどにより、サーバコンピュータを不安定にする可能性があるプログラム実行要求は他のコンピュータで実行できるようにするため、第１のアプリケーション障害回避システムにおいて、
前記監視用コンピュータが、
前記クライアントコンピュータからのプログラム実行要求が前記仕様条件を満たすものであっても、過去にアプリケーションプログラムを異常終了させたプログラム実行要求と同一仕様のプログラム実行要求もしくは過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求と同一仕様のプログラム実行要求は、前記評価用サーバコンピュータに送信する構成を有することを特徴とする。
【００１８】
より具体的には、本発明に係る第３のアプリケーション障害回避システムは、第１のアプリケーション障害回避システムにおいて、
前記監視用コンピュータが、
プログラム実行要求が満たすべき仕様条件が格納された実行要求仕様記憶部と、
前記クライアントコンピュータからのプログラム実行要求が、前記実行要求仕様記憶部に格納されている仕様条件を満たすか否かを判断し、満たしている場合は、前記プログラム実行要求を前記サーバコンピュータへ送信し、満たしていない場合は、前記プログラム実行要求を前記評価用サーバコンピュータへ送信する実行要求評価手段とを備えたことを特徴とする。
【００１９】
また、本発明に係る第４のアプリケーション障害回避システムは、第３のアプリケーション障害回避システムにおいて、
過去にアプリケーションプログラムを異常終了させたプログラム実行要求の仕様および過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求の仕様が格納された実行エラー要求記憶部を備え、且つ、
前記実行要求仕様記憶部に、実行結果が満たすべき実行結果条件が格納され、前記実行要求評価手段が、前記クライアントコンピュータからのプログラム実行要求が前記実行要求仕様記憶部に格納されている仕様条件を満たしている場合であっても、前記実行エラー要求記憶部に格納されている仕様と合致する仕様のプログラム実行要求は、前記評価用サーバコンピュータに送信する構成を有することを特徴とする。
【００２０】
また、本発明に係る第５のアプリケーション障害回避システムは、上記目的を達成するため、
クライアントコンピュータからのプログラム実行要求が、予め定められている仕様条件を満たしているか否かを判断し、満たしている場合は、前記プログラム実行要求に従ってアプリケーションプログラムを実行し、満たしていない場合は、前記プログラム実行要求を評価用サーバコンピュータに送信するサーバコンピュータと、
前記サーバコンピュータからプログラム実行要求が送られてきたとき、該プログラム実行要求によって実行要求されているアプリケーションプログラムを、その実行状態を常時監視しながら実行し、実行結果を前記サーバコンピュータに返却する評価用サーバコンピュータとを備えたことを特徴とする。
【００２１】
また、本発明に係る第６のアプリケーション障害回避システムは、第５のアプリケーション障害回避システムにおいて、
前記サーバコンピュータが、
前記クライアントコンピュータからのプログラム実行要求が前記仕様条件を満たすものであっても、過去にアプリケーションプログラムを異常終了させたプログラム実行要求と同一仕様のプログラム実行要求もしくは過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求と同一仕様のプログラム実行要求は、前記評価用サーバコンピュータに送信する構成を有することを特徴とする。
【００２２】
【作用】
監視用コンピュータは、クライアントコンピュータから送られてきたプログラム実行要求が予め定められている仕様条件を満たしていない場合は、評価用サーバコンピュータに送付する。従って、仕様条件を満たしていないプログラム実行要求によって実運用のサーバコンピュータが不安定になることを防止できると共に、仕様条件を満たしていないプログラム実行要求についても、その実行結果を要求元のクライアントコンピュータに返信できる。
【００２３】
また、監視用コンピュータは、仕様条件を満たすプログラム実行要求であっても、過去にアプリケーションプログラムを異常終了させたプログラム実行要求と同一仕様のプログラム実行要求もしくは過去にアプリケーションプログラムの実行結果を不正としたプログラム実行要求と同一仕様のプログラム実行要求は、評価用サーバコンピュータに送信する。従って、上記したようなプログラム実行要求（アプリケーションプログラム側のバグや、システム環境などによりサーバコンピュータを不安定にする可能性があるプログラム実行要求）によって実運用のサーバコンピュータが不安定になることを防止できると共に、上記したようなプログラム実行要求についても、その実行結果を要求元のクライアントコンピュータに返信できる。
【００２４】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２５】
【実施例の構成】
図１を参照すると、本発明のアプリケーション障害回避システムの一実施例は、遠隔からアプリケーションプログラムの実行を要求するクライアントコンピュータ１と、プログラム実行要求を解析する監視用コンピュータ２と、要求されたアプリケーションプログラムを実行するサーバコンピュータ３と、プログラムの実行状態を監視しながら要求されたアプリケーションプログラムを実行する評価用サーバコンピュータ４とから構成される。
【００２６】
クライアントコンピュータ１は、クライアントプログラムを動作させるためのクライアントプログラム実行手段１１を含んでいる。
【００２７】
クライアントプログラム実行手段１１は、クライアントプログラムを実行し、他のコンピュータに対するプログラム実行要求を作成し、そのプログラム実行要求を監視用コンピュータ２に送付する。
【００２８】
監視用コンピュータ２は、クライアントコンピュータ１からのプログラム実行要求を受け取る実行要求受取手段２１と、クライアントコンピュータから送付されてきたプログラム実行要求を検証する実行要求評価手段２２と、プログラム実行要求が満たすべき仕様条件および実行結果が満たすべき実行結果条件が格納された実行要求・結果仕様記憶部２３と、実行要求・結果仕様記憶部２３に格納されている仕様条件は満たすが、サーバコンピュータ３においてアプリケーションプログラムを実際に実行した際、異常終了を発生させたプログラム実行要求および実行結果が実行要求・結果仕様記憶部２３に格納されている実行結果条件を満たさないものとなったプログラム実行要求の仕様が格納される実行エラー要求記憶部２４と、サーバコンピュータ３でのアプリケーションプログラムの実行結果を検証する実行結果評価手段２５と、プログラム実行結果を要求元のクライアントプログラムに送付する実行結果送付手段２６とを含んでいる。
【００２９】
実行要求受取手段２１は、クライアントコンピュータ１から送付されてくるプログラム実行要求を受け取り、実行要求評価手段２２に渡す。
【００３０】
実行要求・結果仕様記憶部２３には、サーバコンピュータ３で実行可能なアプリケーションプログラム毎に、そのアプリケーションプログラムに対するプログラム実行要求が満たすべき仕様条件および実行結果が満たすべき実行結果条件が格納されている。プログラム実行要求が満たすべき仕様条件としては、例えば、引数のデータ型や範囲などがあり、また、実行結果が満たすべき実行結果条件としては、戻り値のデータ型や範囲などがある。
【００３１】
実行エラー要求記憶部２４には、実行要求・結果仕様記憶部２３に格納されている仕様条件は満たすが、サーバコンピュータ３においてアプリケーションプログラムを実際に実行した際、異常終了を発生させたプログラム実行要求および実行結果が実行要求・結果仕様記憶部２３に格納されている実行結果条件を満たさないものとなったプログラム実行要求の仕様が格納される。この仕様には、そのプログラム実行要求によって実行されたアプリケーションプログラムのプログラム名も含まれる。これらの情報は、実行結果評価手段２５によって格納される。
【００３２】
実行要求評価手段２２は、実行要求受取手段２１から渡されたプログラム実行要求を解析し、その仕様が実行要求・結果仕様記憶部２３に格納されている仕様条件を満たすか否かを判断する。仕様条件を満たしている場合は、更に、実行エラー要求記憶部２４に格納されているプログラム実行要求の仕様の中に、送付されてきたプログラム実行要求の仕様と一致するものがあるかどうかを調べる。プログラム実行要求が実行要求・結果仕様記憶部２３に格納されている仕様条件を満たしており、且つ、実行エラー要求記憶部２４に格納されている仕様の中に一致するものがない場合には、送付されてきたプログラム実行要求は安全に実行できるものであると判断し、プログラム実行要求をサーバコンピュータ３に送付する。プログラム実行要求が仕様条件を満たしていない場合、もしくは、実行エラー要求記憶部２４に一致する仕様が格納されている場合には、アプリケーションプログラムが正しく実行されない恐れがあると判断し、プログラム実行要求を評価用サーバコンピュータ４に送付する。
【００３３】
実行結果評価手段２５は、サーバコンピュータ３でのプログラム実行結果を受け取り、その実行結果が実行要求・結果仕様記憶部２３に記憶されている実行結果条件を満たすか否かを調べる。実行結果条件を満たしていない場合には、その結果をもたらしたプログラム実行要求の仕様を実行エラー要求記憶部２４に格納する。また、サーバコンピュータ３でのプログラム実行結果がエラー（異常終了）の場合には、その結果をもたらしたプログラム実行要求の仕様を実行エラー要求記憶部２４に格納する。
【００３４】
実行結果送付手段２６は、実行結果評価手段２５で解析されたサーバコンピュータ３でのプログラム実行結果と、評価用サーバコンピュータ４で実行されたアプリケーションプログラムの実行結果をクライアントコンピュータ１へ送付する処理を実行する。
【００３５】
記録媒体Ｋは、ディスク、半導体メモリ、その他の記録媒体であり、監視用コンピュータ２上に、実行要求受取手段２１、実行要求評価手段２２、実行結果評価手段２５、実行結果送付手段２６を実現するためのプログラムが記録されている。このプログラムは、監視用コンピュータ２によって読み取られ、その動作を制御することで、監視用コンピュータ２上に実行要求受取手段２１、実行要求評価手段２２、実行結果評価手段２５、実行結果送付手段２６を実現する。
【００３６】
サーバコンピュータ３は、プログラム実行要求に応じてアプリケーションプログラムを実行するプログラム実行手段３１を含んでいる。
【００３７】
プログラム実行手段３１は、監視用コンピュータ２経由でクライアントコンピュータ１から送付されてきたプログラム実行要求を解析して、要求されたプログラムを実行する。そして、その実行結果を監視用コンピュータ２に送付する。プログラム実行が異常終了した場合には、エラー情報を監視用コンピュータ２に送付する。
【００３８】
評価用サーバコンピュータ４は、アプリケーションプログラムの実行状態（例えば、主記憶装置などのリソースの使用量）を常時監視するプログラム実行監視手段４１と、プログラム実行要求に従ってアプリケーションプログラムを実行するプログラム評価実行手段４２とを含んでいる。
【００３９】
プログラム実行監視手段４１は、監視用コンピュータ２から送付されてきたプログラム実行要求をプログラム評価実行手段４２に渡すと共に、プログラム評価実行手段４２で実行されているアプリケーションプログラムの実行状態を常時監視する。
【００４０】
プログラム評価実行手段４２は、プログラム実行監視手段４１から受け取ったプログラム実行要求に従ってアプリケーションプログラムを実行する。アプリケーションプログラムの実行を終了すると、実行結果をプログラム実行監視手段４１に送付する。また、プログラム評価実行手段４２は、実行しているアプリケーションプログラムの実行状態を取得する機能およびアプリケーションプログラムの実行を強制終了させる機能を持っている。
【００４１】
プログラム評価実行手段４２でのアプリケーションプログラム実行が終了すると、プログラム実行監視手段４１は、その実行結果をプログラム評価実行手段４２から受け取り、監視用コンピュータ２に送付する。また、プログラム実行監視手段４１は、アプリケーションプログラムの実行状態の監視中に異常を検出した場合には、プログラム評価実行手段４２に対してプログラム実行の強制終了を指令する。このとき、プログラム実行監視手段４１はエラー情報を監視用コンピュータ２に送付する。
【００４２】
【実施例の動作の説明】
次に、図１及び図２のフローチャートを参照して本実施例の全体の動作について詳細に説明する。
【００４３】
先ず、クライアントコンピュータ１内のクライアントプログラム実行手段１１が、クライアントプログラムを実行し、或るアプリケーションプログラムＡＰの実行を要求するプログラム実行要求を監視用コンピュータ２に対して送付する（図２のステップＡ１）。
【００４４】
次に、監視用コンピュータ２内の実行要求受取手段２１が、クライアントコンピュータ１から送付されてきたプログラム実行要求を受け取る（ステップＡ２）。
【００４５】
その後、実行要求評価手段２２が、実行要求・結果仕様記憶部２３に格納されているアプリケーションプログラムＡＰに対するプログラム実行要求の仕様条件に基づいて、実行要求受取手段２１が受け取ったプログラム実行要求が仕様条件を満たしているか否かを判断する（ステップＡ３）。
【００４６】
仕様条件を満たしていない場合は、そのプログラム実行要求に従ってアプリケーションプログラムを実行してもエラーとなる確率が高いので、実運用で用いているサーバコンピュータ３ではなく評価用サーバコンピュータ４でアプリケーションプログラムを実行するために、プログラム実行監視手段４１にプログラム実行要求を送付する（ステップＡ１２）。これに対して、仕様条件を満たしている場合は、実行要求評価手段２２は、クライアントコンピュータ１から送られてきたプログラム実行要求の仕様と同一の仕様が実行エラー要求記憶部２４に格納されているか否かを調べる（ステップＡ４）。
【００４７】
そして、同一の仕様が実行エラー要求記憶部２４に格納されている場合には、実行結果がエラーもしくは実行結果が実行結果条件を満たさない可能性があるので、評価用サーバコンピュータ４でアプリケーションプログラムを実行するためにプログラム実行監視手段４１にプログラム実行要求を送付する（ステップＡ１２）。これに対して、同一の仕様が実行エラー要求記憶部２４に存在しない場合には、サーバコンピュータ３でアプリケーションプログラムを実行させるために、プログラム実行要求をプログラム実行手段３１に送付する（ステップＡ５）。
【００４８】
以上の処理により、クライアントコンピュータ１から送られてきたアプリケーションプログラムＡＰに対するプログラム実行要求は、それがエラーを発生させる確率が高いものである場合には、評価用サーバコンピュータ４へ送付され、そうでない場合はサーバコンピュータ３へ送付される。
【００４９】
サーバコンピュータ３内のプログラム実行手段３１は、実行要求評価手段２２からプログラム実行要求が送られてくると、それを解析し、指定されたアプリケーションプログラムＡＰを実行する。そして、実行した結果を、監視用コンピュータ２内の実行結果評価手段２５に送付する（ステップＡ６）。
【００５０】
実行結果評価手段２５は、サーバコンピュータ３から送付されてきたプログラム実行結果が正常終了したものであるかどうかの評価を行う（ステップＡ７）。正常に終了していない場合には、そのアプリケーションプログラムを実行するために送付されてきたプログラム実行要求の仕様を実行エラー要求記憶部２４へ格納し（ステップＡ１０）、その後、エラー情報を実行結果送付手段２６へ送付する（ステップＡ１１）。
【００５１】
これに対して、送付されてきたプログラム実行結果が正常終了したものである場合には、送られてきた実行結果が、実行要求・結果仕様記憶部２３に記憶されているアプリケーションプログラムＡＰについての実行結果条件を満足させているか否かを判断する（ステップＡ８）。
【００５２】
そして、実行結果条件を満たしていない場合には、アプリケーションプログラムＡＰを実行するために送付されてきたプログラム実行要求の仕様を実行エラー要求記憶部２４へ格納し（ステップＡ１０）、その後、エラー情報を実行結果送付手段２６へ送付する（ステップＡ１１）。これに対して、実行結果が仕様を満たしている場合には、実行結果を実行結果送付手段２６へ送付する（ステップＡ９）。
【００５３】
一方、評価用サーバコンピュータ４内のプログラム実行監視手段４１は、実行結果がエラーとなる可能性の高いプログラム実行要求を監視用コンピュータ２から受け取ると、それをプログラム評価実行手段４２に転送すると共に、アプリケーションプログラムの実行状態の監視を開始する。プログラム評価実行手段４２は、プログラム実行監視手段４１からのプログラム実行要求を受け取ると、指定されたアプリケーションプログラムＡＰを実行する（ステップＡ１３）。このとき、プログラム評価実行手段４２は、プログラム実行監視手段４１からの実行状態監視要求に対応できるようにするためにアプリケーションプログラムＡＰの実行状態を常に保持している。
【００５４】
プログラム実行監視手段４１は、監視処理においてアプリケーションプログラムＡＰの実行状態が異常状態になったことを検出した場合には（ステップＡ１４）、アプリケーションプログラムＡＰの実行を強制終了するようプログラム評価実行手段４２に要求する。停止を要求されたプログラム評価実行手段４２は、対象となるアプリケーションプログラムＡＰの実行を強制終了させる（ステップＡ１５）。そして、プログラム実行監視手段４１は、実行時に発生したエラー情報を実行結果送付手段２６に送付する（ステップＡ１６）。
【００５５】
プログラム評価実行手段４２でのプログラムの実行が終了すると、プログラム実行監視手段４１は、プログラムが正常に終了したかどうかを評価する（ステップＡ１７）。プログラムの実行が正常に終了した場合には、プログラムの実行結果を実行結果送付手段２６に送付する（ステップＡ１８）。異常終了した場合には、エラー情報を実行結果送付手段２６に送付する（ステップＡ１６）。
【００５６】
監視用コンピュータ２内の実行結果送付手段２６は、サーバコンピュータ３もしくは評価用サーバコンピュータ４から受け取った実行結果もしくはエラー情報をクライアントコンピュータ１内のクライアントプログラム実行手段１１に送付する（ステップＡ１９）。以上の処理を経て、クライアントプログラムはプログラム実行要求の結果を取得する（ステップＡ２０）。
【００５７】
次に、具体例を挙げて本実施例の動作を説明する。
【００５８】
先ず、図３を参照し、サーバコンピュータ３でアプリケーションプログラムが実行される場合について説明する。
【００５９】
最初に、クライアントコンピュータ１から実行要求受取手段２１に対して、「プログラムＡの関数ｆｏｏ（１，２）の実行要求」が送付され（ステップＡ１）、実行要求評価手段２２は、実行要求受取手段２１経由でプログラム実行要求を受け取る（ステップＡ２）。
【００６０】
実行要求評価手段２２は、プログラム実行要求が実行要求・結果仕様記憶部２３に記憶されている仕様条件を満たしているかどうかを評価する。プログラムＡの関数ｆｏｏに関する仕様は「第一引数は０以上１０以下の数値」「第二引数は０以上の数値」であり、実行要求された値は「第一引数が１」「第二引数が２」であるので、プログラム実行要求は仕様条件を満たしていると評価することになる（ステップＡ３）。次に、送付されてきたプログラム実行要求の仕様と同一の仕様が実行エラー要求記憶部２４に記憶されているかどうかを調べる。ここでは、実行エラー要求記憶部２４にはプログラム実行要求の仕様がひとつも格納されていないので、「一致する仕様はなし」となる（ステップＡ４）。送付されてきたプログラム実行要求が仕様条件を満たしており、且つ実行エラー要求記憶部２４に同一仕様が存在しないので、「プログラムＡの関数ｆｏｏ（１，２）の実行要求」をプログラム実行手段３１に送付する（ステップＡ５）。
【００６１】
プログラム実行手段３１は、プログラム実行要求を受け取り、プログラムＡの関数ｆｏｏ（１，２）を実行する。ここで、プログラムの実行が異常終了したとする。その異常終了した結果（エラー情報）を実行結果評価手段２５に送付する（ステップＡ６）。実行結果評価手段２５は、送られてきた実行結果が正常終了したものであるか異常終了したものであるのかの判断を行う（ステップＡ７）。異常終了したものであるため、実行エラー要求記憶部２４に異常終了したプログラムの実行要求「プログラムＡの関数ｆｏｏ（１，２）の実行要求」の仕様を格納する（ステップＡ１０）。
【００６２】
その後、実行結果評価手段２５は、エラー情報を実行結果送付手段２６へ送付する（ステップＡ１１）。これにより、実行結果送付手段２６はエラー情報をクライアントプログラム実行手段１１に送付し（ステップＡ１９）、クライアントプログラム実行手段１１は実行要求の結果（エラー情報）を受け取る（ステップＡ２０）。
【００６３】
以上のようにして、プログラム実行要求が処理され、実行エラー要求記憶部２４に異常終了したプログラム実行要求の仕様が記憶されるのである。
【００６４】
次に、図４を参照し、実行エラー要求記憶部２４に格納されている仕様と同一仕様のプログラム実行要求が送付されてきた時の動作について説明する。
【００６５】
最初に、クライアントコンピュータ１から実行要求受取手段２１に対して、「プログラムＡの関数ｆｏｏ（１，２）の実行要求」が送付され（ステップＡ１）、実行要求評価手段２２は実行要求受取手段２１経由でプログラム実行要求を受け取る（ステップＡ２）。
【００６６】
実行要求評価手段２２は、プログラム実行要求が実行要求・結果仕様記憶部２３に記憶されている仕様条件を満たしているかどうかを評価する。プログラムＡの関数ｆｏｏに関する仕様は「第一引数は０以上１０以下の数値」「第二引数は０以上の数値」であり、実行要求された値は「第一引数が１」「第二引数が２」であるので、プログラム実行要求は仕様条件を満たしていると評価することになる（ステップＡ３）。次に、送付されてきたプログラム実行要求の仕様と同一仕様が実行エラー要求記憶部２４に格納されているか否かを調べる。実行エラー要求記憶部２４には、「プログラムＡの関数ｆｏｏ（１，２）を実行すると異常終了」の情報が記憶されており、送付されてきたプログラム実行要求の仕様と一致する（ステップＡ４）。送付されてきたプログラム実行要求の仕様と同一仕様が実行エラー要求記憶部２４に存在しているので、「プログラムＡの関数ｆｏｏ（１，２）の実行要求」をプログラム実行監視手段４１に送付する（ステップＡ１２）。
【００６７】
プログラム実行監視手段４１は、受け取ったプログラム実行要求をプログラム評価実行手段４２へ転送する。プログラム評価実行手段４２は、実行要求されたアプリケーションプログラムを実行する（ステップＡ１３）。プログラム実行監視手段４１は、プログラム評価実行手段４２でのプログラムの実行状態を監視する（ステップＡ１４）。ここでは、プログラム実行中にリソース不足などの異常状態は発生せず、アプリケーションプログラムが終了したものとする（ステップＡ１４がｎ）。プログラム実行監視手段４１は、プログラム評価実行手段４２から送付されてきた実行結果を解析し、正常に終了したかどうかを判断する（ステップＡ１７）。ここで異常終了したとすると、エラー情報を実行結果送付手段２６へ送付する（ステップＡ１６）。そして、実行結果送付手段２６はエラー情報をクライアントプログラム実行手段１１に送付し（ステップＡ１９）、クライアントプログラム実行手段１１は実行要求の結果（エラー情報）を受け取る（ステップＡ２０）。
【００６８】
【発明の他の実施例】
図５は本発明に係るアプリケーション障害回避システムの他の実施例のブロック図である。本実施例は、監視用コンピュータ２及びサーバコンピュータ３の代わりにサーバコンピュータ３ａを備えている点が図１に示した実施例と相違している。サーバコンピュータ３ａは、監視用コンピュータ２とサーバコンピュータ３とを一体化したものであり、実行要求受取手段２１、実行要求評価手段２２、実行要求・結果仕様記憶部２３、実行エラー要求記憶部２４、実行結果評価手段２５、実行結果送付手段２６、プログラム実行手段３１及び記録媒体Ｋａを備えている。上記した各手段２１〜２６，３１は、前述した実施例で説明した機能を有しており、また、記録媒体Ｋａには、サーバコンピュータ３ａ上に実行要求受取手段２１、実行要求評価手段２２、実行結果評価手段２５、実行結果送付手段２６、プログラム実行手段３１を実現するためのプログラムが記録されている。
【００６９】
【発明の効果】
第１の効果は、プログラムの実行環境を不安定にさせることなく、外部からのプログラム実行要求を処理できることにある。その結果、分散システムの信頼性を向上させることが可能となる。
【００７０】
分散システムにおいては、不特定多数からプログラム実行を要求される可能性がある。そのような状況においては想定していないプログラム実行要求が送付される場合もあり、そのまま処理するとサーバコンピュータを不安定にさせる可能性がある。本発明では、アプリケーションプログラムを実行する前に実行要求を解析し、規定されている仕様条件に従っているか否かを判断することにより、コンピュータが不安定になる要因を取り除くことができるため、第１の効果を得ることができる。
【００７１】
第２の効果は、規定されている仕様条件に従っていないプログラム実行要求についてもサーバコンピュータを不安定にすることなく、処理を実施できることにある。その結果、分散システムの可用性を向上させることが可能となる。
【００７２】
その理由は、規定されている仕様条件に従っていないプログラム実行要求については、実運用のサーバコンピュータとは異なる評価用サーバコンピュータにおいてアプリケーションプログラムを実行しているためである。
【００７３】
第３の効果は、仕様条件を満たしているのにもかかわらず、システム環境やプログラムバグにより実行結果が実行結果条件を満たさない、もしくは、エラーとなるプログラム実行要求を自動判別し、サーバコンピュータの安定性を確保できることにある。その結果、分散システムの信頼性を向上させることが可能となる。
【００７４】
その理由は、プログラムの実行結果を解析し、異常終了したものや実行結果が実行結果条件を満たしていないものについては、同一の条件でプログラムを再度実行するとコンピュータを不安定にさせる可能性があるので、そのプログラム実行要求の仕様を保存しておき、次回、同一仕様のプログラム実行要求が送付されてきた場合には、実運用のサーバコンピュータとは異なったコンピュータでプログラム実行を実施しているためである。
【図面の簡単な説明】
【図１】本発明の一実施例のブロック図である。
【図２】図１に示した実施例の動作を説明するためのフローチャートである。
【図３】図１に示した実施例の動作を具体例を用いて説明するための図である。
【図４】図１に示した実施例の動作を具体例を用いて説明するための図である。
【図５】本発明の他の実施例のブロック図である。
【図６】従来の技術の問題点を解決するために考えられる分散システムの構成例を示すブロック図である。
【符号の説明】
１…クライアントコンピュータ
１１…クライアントプログラム実行手段
２…監視用コンピュータ
２１…実行要求受取手段
２２…実行要求評価手段
２３…実行要求・結果仕様記憶部
２４…実行エラー要求記憶部
２５…実行結果評価手段
２６…実行結果送付手段
３、３ａ…サーバコンピュータ
３１…プログラム実行手段
４…評価用サーバコンピュータ
４１…プログラム実行監視手段
４２…プログラム評価実行手段
Ｋ、Ｋａ…記録媒体
【図１】
2004295533.tif 000003
【図２】
2004295533.tif 000004
【図３】
2004295533.tif 000005
【図４】
2004295533.tif 000006
【図５】
2004295533.tif 000007
【図６】
2004295533.tif 000008