(57)【要約】  【課題】複数のサービスを構成する一部のプログラムの処理負荷が高くなった場合に、全てのサービスの停止につながるプログラムを極力停止させることなく、当該一部のプログラムの性能の悪化を回復することができるアプリケーションサーバ１０を提供する。  【解決手段】本発明のアプリケーションサーバ１０は、プログラムの実行性能が悪化した場合の対処処理として、他の１つのプログラムから出力されたデータを入力として処理を行うプログラムについては、当該プログラムの実行を停止する対処処理を設定し、異なるサービスに必要な処理を行う他の複数のプログラムから出力されたデータを入力として処理を行うプログラムについては、当該プログラムにデータを供給する他の複数のプログラムの中で、所定条件を満たすプログラムを停止させるか、あるいは、当該プログラムに設定されている対処処理を実行する旨の対処処理を設定する。【選択図】図１
2008158617.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なるサービスを提供し、それぞれのサービスが複数のプログラムによる処理によって実現されるアプリケーションサーバであって、
１つ以上のサービスに必要な処理を行うプログラムを実行する複数のプログラム実行部と、
前記複数のプログラム実行部のそれぞれを識別するプログラムＩＤ毎に、当該プログラム実行部によって行われる処理に要求される性能を示す性能基準を格納する性能基準格納部と、
それぞれのサービスを識別するサービスＩＤ毎に、当該サービスに必要な処理を行う複数のプログラム実行部のプログラムＩＤを、当該複数のプログラム実行部のそれぞれによって用いられるデータの流れを示す情報と共に格納するデータフロー情報格納部と、
それぞれの前記プログラム実行部の性能が対応する前記性能基準に違反した場合の対処処理を、当該プログラム実行部のプログラムＩＤに対応付けて格納する対処処理格納部と、
前記複数のプログラム実行部のそれぞれの実行状況を監視し、いずれかの前記プログラム実行部の実行状況が、前記性能基準格納部に格納されている、対応する性能基準に違反した場合に、当該プログラム実行部のプログラムＩＤを出力する性能監視部と、
前記性能監視部からプログラムＩＤが出力された場合に、前記対処処理格納部を参照して、当該プログラムＩＤに対応する対処処理を実行する性能回復部と
を備え、
前記対処処理格納部には、
他の１つのプログラム実行部から出力されたデータを入力として処理を行うプログラム実行部の性能違反に対しては、当該プログラム実行部のプログラムＩＤに対応付けて、当該プログラム実行部を停止させる旨の対処処理が格納され、
異なるサービスに必要な処理を行う他の複数のプログラム実行部から出力されたデータを入力として処理を行うプログラム実行部の性能違反に対しては、当該プログラム実行部のプログラムＩＤに対応付けて、当該他の複数のプログラム実行部の中で予め定められた条件を満たすプログラム実行部を停止させる旨の対処処理が格納され、
前記性能回復部は、
前記性能監視部からプログラムＩＤが出力された場合に、前記対処処理格納部を参照して、
当該プログラムＩＤに、対応するプログラム実行部を停止させる旨の対処処理が対応付けられているならば、当該プログラムＩＤに対応するプログラム実行部を停止させ、
当該プログラムＩＤに、データを供給する他のプログラム実行部の中で前記条件を満たすプログラム実行部を停止させる旨の対処処理が対応付けられているならば、前記データフロー情報格納部を参照して、前記性能監視部から出力されたプログラムＩＤに対応するプログラム実行部へデータを供給する他のプログラム実行部を特定し、特定した他のプログラム実行部の中で前記条件を満たすプログラム実行部を特定し、特定したプログラム実行部を停止させること
を特徴とするアプリケーションサーバ。
【請求項２】
複数の異なるサービスを提供し、それぞれのサービスが複数のプログラムによる処理によって実現されるアプリケーションサーバであって、
１つ以上のサービスに必要な処理を行うプログラムを実行する複数のプログラム実行部と、
前記複数のプログラム実行部のそれぞれを識別するプログラムＩＤ毎に、当該プログラム実行部によって行われる処理に要求される性能を示す性能基準を格納する性能基準格納部と、
それぞれのサービスを識別するサービスＩＤ毎に、当該サービスに必要な処理を行う複数のプログラム実行部のプログラムＩＤを、当該複数のプログラム実行部のそれぞれによって用いられるデータの流れを示す情報と共に格納するデータフロー情報格納部と、
それぞれの前記プログラム実行部の性能が対応する前記性能基準に違反した場合の対処処理を、当該プログラム実行部のプログラムＩＤに対応付けて格納する対処処理格納部と、
前記複数のプログラム実行部のそれぞれの実行状況を監視し、いずれかの前記プログラム実行部の実行状況が、前記性能基準格納部に格納されている、対応する性能基準に違反した場合に、当該プログラム実行部のプログラムＩＤを出力する性能監視部と、
前記性能監視部からプログラムＩＤが出力された場合に、前記対処処理格納部を参照して、当該プログラムＩＤに対応する対処処理を実行する性能回復部と
を備え、
前記対処処理格納部には、
他の１つのプログラム実行部から出力されたデータを入力として処理を行うプログラム実行部の性能違反に対しては、当該プログラム実行部のプログラムＩＤに対応付けて、当該プログラム実行部を停止させる旨の対処処理が格納され、
異なるサービスに必要な処理を行う他の複数のプログラム実行部から出力されたデータを入力として処理を行うプログラム実行部の性能違反に対しては、当該プログラム実行部のプログラムＩＤに対応付けて、当該他の複数のプログラム実行部の中で予め定められた条件を満たすプログラム実行部のプログラムＩＤに対応する対処処理を実行する旨の対処処理が格納され、
前記性能回復部は、
前記性能監視部からプログラムＩＤが出力された場合に、前記対処処理格納部を参照して、
当該プログラムＩＤに、対応するプログラム実行部を停止させる旨の対処処理が対応付けられているならば、当該プログラムＩＤに対応するプログラム実行部を停止させ、
当該プログラムＩＤに、データを供給する他のプログラム実行部の中で前記条件を満たすプログラム実行部のプログラムＩＤに対応する対処処理を実行する旨の対処処理が対応付けられているならば、前記データフロー情報格納部を参照して、前記性能監視部から出力されたプログラムＩＤに対応するプログラム実行部へデータを供給する他のプログラム実行部を特定し、特定した他のプログラム実行部の中で前記条件を満たすプログラム実行部のプログラムＩＤを特定し、特定したプログラムＩＤに対応付けられている対処処理を実行すること
を特徴とするアプリケーションサーバ。
【請求項３】
請求項１または２に記載のアプリケーションサーバであって、
前記条件は、対象となるプログラム実行部に対するアクセス頻度が最も高いことであることを特徴とするアプリケーションサーバ。
【請求項４】
請求項１または２に記載のアプリケーションサーバであって、
前記条件は、負荷が最も高いことであることを特徴とするアプリケーションサーバ。
【請求項５】
複数の異なるサービスを提供し、それぞれのサービスが複数のプログラムによる処理によって実現されるアプリケーションサーバにおける性能回復方法であって、
前記アプリケーションサーバは、
１つ以上のサービスに必要な処理を行うプログラムを実行する複数のプログラム実行ステップと、
前記複数のプログラムのそれぞれの実行状況を監視し、いずれかの前記プログラムの実行状況が、前記複数のプログラムのそれぞれを識別するプログラムＩＤ毎に、当該プログラムによって行われる処理に要求される性能を示す性能基準を格納する性能基準格納部に格納されている、対応する性能基準に違反した場合に、当該プログラムのプログラムＩＤを出力する性能監視ステップと、
前記性能監視ステップにおいてプログラムＩＤが出力された場合に、それぞれの前記プログラムの性能が対応する前記性能基準に違反した場合の対処処理を、当該プログラムのプログラムＩＤに対応付けて格納する対処処理格納部を参照して、当該プログラムＩＤに対応する対処処理を実行する性能回復ステップと
を実行し、
前記対処処理格納部には、
他の１つのプログラム実行部から出力されたデータを入力として処理を行うプログラムの性能違反に対しては、当該プログラムのプログラムＩＤに対応付けて、当該プログラムを停止させる旨の対処処理が格納され、
異なるサービスに必要な処理を行う他の複数のプログラムから出力されたデータを入力として処理を行うプログラムの性能違反に対しては、当該プログラムのプログラムＩＤに対応付けて、当該他の複数のプログラムの中で予め定められた条件を満たすプログラムを停止させる旨の対処処理が格納され、
前記アプリケーションサーバは、前記性能回復ステップにおいて、
前記性能監視ステップにおいてプログラムＩＤが出力された場合に、前記対処処理格納部を参照して、
当該プログラムＩＤに、対応するプログラムを停止させる旨の対処処理が対応付けられているならば、当該プログラムＩＤに対応するプログラムを停止させ、
当該プログラムＩＤに、データを供給する他のプログラム実行部の中で前記条件を満たすプログラムを停止させる旨の対処処理が対応付けられているならば、それぞれのサービスを識別するサービスＩＤ毎に、当該サービスに必要な処理を行う複数のプログラムのプログラムＩＤを、当該複数のプログラムのそれぞれによって用いられるデータの流れを示す情報と共に格納するデータフロー情報格納部を参照して、前記性能監視ステップにおいて出力されたプログラムＩＤに対応するプログラムへデータを供給する他のプログラムを特定し、特定した他のプログラムの中で前記条件を満たすプログラムを特定し、特定したプログラムを停止させること
を特徴とする性能回復方法。
【請求項６】
複数の異なるサービスを提供し、それぞれのサービスが複数のプログラムによる処理によって実現されるアプリケーションサーバにおける性能回復方法であって、
前記アプリケーションサーバは、
１つ以上のサービスに必要な処理を行うプログラムを実行する複数のプログラム実行ステップと、
前記複数のプログラムのそれぞれの実行状況を監視し、いずれかの前記プログラムの実行状況が、前記複数のプログラムのそれぞれを識別するプログラムＩＤ毎に、当該プログラムによって行われる処理に要求される性能を示す性能基準を格納する性能基準格納部に格納されている、対応する性能基準に違反した場合に、当該プログラムのプログラムＩＤを出力する性能監視ステップと、
前記性能監視ステップにおいてプログラムＩＤが出力された場合に、それぞれの前記プログラムの性能が対応する前記性能基準に違反した場合の対処処理を、当該プログラムのプログラムＩＤに対応付けて格納する対処処理格納部を参照して、当該プログラムＩＤに対応する対処処理を実行する性能回復ステップと
を実行し、
前記対処処理格納部には、
他の１つのプログラム実行部から出力されたデータを入力として処理を行うプログラムの性能違反に対しては、当該プログラムのプログラムＩＤに対応付けて、当該プログラムを停止させる旨の対処処理が格納され、
異なるサービスに必要な処理を行う他の複数のプログラムから出力されたデータを入力として処理を行うプログラムの性能違反に対しては、当該プログラムのプログラムＩＤに対応付けて、当該他の複数のプログラムの中で予め定められた条件を満たすプログラムのプログラムＩＤに対応する対処処理を実行する旨の対処処理が格納され、
前記アプリケーションサーバは、前記性能回復ステップにおいて、
前記性能監視ステップにおいてプログラムＩＤが出力された場合に、前記対処処理格納部を参照して、
当該プログラムＩＤに、対応するプログラムを停止させる旨の対処処理が対応付けられているならば、当該プログラムＩＤに対応するプログラムを停止させ、
当該プログラムＩＤに、データを供給する他のプログラム実行部の中で前記条件を満たすプログラムのプログラムＩＤに対応する対処処理を実行する旨の対処処理が対応付けられているならば、それぞれのサービスを識別するサービスＩＤ毎に、当該サービスに必要な処理を行う複数のプログラムのプログラムＩＤを、当該複数のプログラムのそれぞれによって用いられるデータの流れを示す情報と共に格納するデータフロー情報格納部を参照して、前記性能監視ステップにおいて出力されたプログラムＩＤに対応するプログラムへデータを供給する他のプログラムを特定し、特定した他のプログラムの中で前記条件を満たすプログラムのプログラムＩＤを特定し、特定したプログラムＩＤに対応付けられている対処処理を実行すること
を特徴とする性能回復方法。
【請求項７】
請求項５または６に記載の性能回復方法であって、
前記条件は、対象となるプログラムに対するアクセス頻度が最も高いことであることを特徴とする性能回復方法。
【請求項８】
請求項５または６に記載の性能回復方法であって、
前記条件は、負荷が最も高いことであることを特徴とする性能回復方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の異なるサービスを提供し、それぞれのサービスが複数のプログラムによる処理によって実現されるアプリケーションサーバおよびその性能管理技術に関する。
【背景技術】
【０００２】
特許文献１には、１つ以上のアプリケーションプログラムを実行することによりサービスを提供するシステムにおいて、それぞれのアプリケーションプログラムを実行するコンピュータシステムの障害を監視し、当該コンピュータシステムの障害を検出した場合に、アプリケーションプログラム毎に予め設定されている解析手順に従って障害の状況を解析し、解析結果に応じて、予め設定されている回復手順を実行することによりシステムの障害を除去する技術が開示されている。
【０００３】
当該特許文献１には、障害原因の例として、古いバージョンのドライバソフトウェアの使用が開示されており、当該障害の回復手順の例として、障害の発生しているコンピュータシステムを停止し、ドライバソフトウェアを更新する旨が開示されている。
【０００４】
【特許文献１】特開平１０−３２６２０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、プログラムの障害には、当該プログラムを実行するハードウェアの不具合の他に、当該ハードウェアの処理負荷が高くなることによって正しく動作できない状態も含まれる。処理負荷が高くなった場合には、その負荷が高くなった原因を解消すれば、正常な動作を回復できる場合が多い。例えば、外部からのリクエストを一時的に拒否することにより、処理負荷を下げ、処理負荷が十分下がった段階で、再び外部からのリクエストを受け入れることにより、正常な動作を回復する。
【０００６】
また、協調動作する複数のプログラムによって提供されるサービスがいくつかある場合、サービスを構成するプログラムの中には、停止するとシステムが提供する全てのサービスが停止するもの（比較的重要度の高いプログラム）と、停止しても、停止したプログラムの処理を必要とするサービスは提供できなくなるものの、その他のプログラムによって、他のサービスを提供し続けることができるもの（比較的重要度の低いプログラム）とがある。
【０００７】
障害の内容が、比較的重要度の高いプログラムの処理負荷が高くなったことである場合、当該プログラムを停止すると、システムが提供する全てのサービスが停止してしまう。
【０００８】
本発明は上記事情を鑑みてなされたものであり、本発明の目的は、一部のプログラムの処理負荷が高くなった場合に、全てのサービスの停止につながるプログラムを極力停止させることなく、当該一部のプログラムの性能の悪化を回復できるようにすることにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、プログラムの実行性能が悪化した場合の対処処理として、他の１つのプログラムから出力されたデータを入力として処理を行うプログラムについては、当該プログラムの実行を停止する対処処理を設定し、異なるサービスに必要な処理を行う他の複数のプログラムから出力されたデータを入力として処理を行うプログラムについては、当該プログラムにデータを供給する他の複数のプログラムの中で、所定条件を満たすプログラムを停止させる旨の対処処理、あるいは、当該所定条件を満たすプログラムに設定されている対処処理を実行する旨の対処処理を設定する。
【００１０】
例えば、本発明の第１の態様は、複数の異なるサービスを提供し、それぞれのサービスが複数のプログラムによる処理によって実現されるアプリケーションサーバであって、
１つ以上のサービスに必要な処理を行うプログラムを実行する複数のプログラム実行部と、複数のプログラム実行部のそれぞれを識別するプログラムＩＤ毎に、当該プログラム実行部によって行われる処理に要求される性能を示す性能基準を格納する性能基準格納部と、それぞれのサービスを識別するサービスＩＤ毎に、当該サービスに必要な処理を行う複数のプログラム実行部のプログラムＩＤを、当該複数のプログラム実行部のそれぞれによって用いられるデータの流れを示す情報と共に格納するデータフロー情報格納部と、それぞれのプログラム実行部の性能が対応する性能基準に違反した場合の対処処理を、当該プログラム実行部のプログラムＩＤに対応付けて格納する対処処理格納部と、複数のプログラム実行部のそれぞれの実行状況を監視し、いずれかのプログラム実行部の実行状況が、性能基準格納部に格納されている、対応する性能基準に違反した場合に、当該プログラム実行部のプログラムＩＤを出力する性能監視部と、性能監視部からプログラムＩＤが出力された場合に、対処処理格納部を参照して、当該プログラムＩＤに対応する対処処理を実行する性能回復部とを備え、対処処理格納部には、他の１つのプログラム実行部から出力されたデータを入力として処理を行うプログラム実行部の性能違反に対しては、当該プログラム実行部のプログラムＩＤに対応付けて、当該プログラム実行部を停止させる旨の対処処理が格納され、異なるサービスに必要な処理を行う他の複数のプログラム実行部から出力されたデータを入力として処理を行うプログラム実行部の性能違反に対しては、当該プログラム実行部のプログラムＩＤに対応付けて、当該他の複数のプログラム実行部の中で予め定められた条件を満たすプログラム実行部を停止させる旨の対処処理が格納され、性能回復部は、性能監視部からプログラムＩＤが出力された場合に、対処処理格納部を参照して、当該プログラムＩＤに、対応するプログラム実行部を停止させる旨の対処処理が対応付けられているならば、当該プログラムＩＤに対応するプログラム実行部を停止させ、当該プログラムＩＤに、データを供給する他のプログラム実行部の中で条件を満たすプログラム実行部を停止させる旨の対処処理が対応付けられているならば、データフロー情報格納部を参照して、性能監視部から出力されたプログラムＩＤに対応するプログラム実行部へデータを供給する他のプログラム実行部を特定し、特定した他のプログラム実行部の中で条件を満たすプログラム実行部を特定し、特定したプログラム実行部を停止させることを特徴とするアプリケーションサーバを提供する。
【００１１】
また、本発明の第２の態様は、複数の異なるサービスを提供し、それぞれのサービスが複数のプログラムによる処理によって実現されるアプリケーションサーバであって、１つ以上のサービスに必要な処理を行うプログラムを実行する複数のプログラム実行部と、複数のプログラム実行部のそれぞれを識別するプログラムＩＤ毎に、当該プログラム実行部によって行われる処理に要求される性能を示す性能基準を格納する性能基準格納部と、それぞれのサービスを識別するサービスＩＤ毎に、当該サービスに必要な処理を行う複数のプログラム実行部のプログラムＩＤを、当該複数のプログラム実行部のそれぞれによって用いられるデータの流れを示す情報と共に格納するデータフロー情報格納部と、それぞれのプログラム実行部の性能が対応する性能基準に違反した場合の対処処理を、当該プログラム実行部のプログラムＩＤに対応付けて格納する対処処理格納部と、複数のプログラム実行部のそれぞれの実行状況を監視し、いずれかのプログラム実行部の実行状況が、性能基準格納部に格納されている、対応する性能基準に違反した場合に、当該プログラム実行部のプログラムＩＤを出力する性能監視部と、性能監視部からプログラムＩＤが出力された場合に、対処処理格納部を参照して、当該プログラムＩＤに対応する対処処理を実行する性能回復部とを備え、対処処理格納部には、他の１つのプログラム実行部から出力されたデータを入力として処理を行うプログラム実行部の性能違反に対しては、当該プログラム実行部のプログラムＩＤに対応付けて、当該プログラム実行部を停止させる旨の対処処理が格納され、異なるサービスに必要な処理を行う他の複数のプログラム実行部から出力されたデータを入力として処理を行うプログラム実行部の性能違反に対しては、当該プログラム実行部のプログラムＩＤに対応付けて、当該他の複数のプログラム実行部の中で予め定められた条件を満たすプログラム実行部のプログラムＩＤに対応する対処処理を実行する旨の対処処理が格納され、性能回復部は、性能監視部からプログラムＩＤが出力された場合に、対処処理格納部を参照して、当該プログラムＩＤに、対応するプログラム実行部を停止させる旨の対処処理が対応付けられているならば、当該プログラムＩＤに対応するプログラム実行部を停止させ、当該プログラムＩＤに、データを供給する他のプログラム実行部の中で条件を満たすプログラム実行部のプログラムＩＤに対応する対処処理を実行する旨の対処処理が対応付けられているならば、データフロー情報格納部を参照して、性能監視部から出力されたプログラムＩＤに対応するプログラム実行部へデータを供給する他のプログラム実行部を特定し、特定した他のプログラム実行部の中で条件を満たすプログラム実行部のプログラムＩＤを特定し、特定したプログラムＩＤに対応付けられている対処処理を実行することを特徴とするアプリケーションサーバを提供する。
【００１２】
また、本発明の第３の態様は、複数の異なるサービスを提供し、それぞれのサービスが複数のプログラムによる処理によって実現されるアプリケーションサーバにおける性能回復方法であって、アプリケーションサーバは、１つ以上のサービスに必要な処理を行うプログラムを実行する複数のプログラム実行ステップと、複数のプログラムのそれぞれの実行状況を監視し、いずれかのプログラムの実行状況が、複数のプログラムのそれぞれを識別するプログラムＩＤ毎に、当該プログラムによって行われる処理に要求される性能を示す性能基準を格納する性能基準格納部に格納されている、対応する性能基準に違反した場合に、当該プログラムのプログラムＩＤを出力する性能監視ステップと、性能監視ステップにおいてプログラムＩＤが出力された場合に、それぞれのプログラムの性能が対応する性能基準に違反した場合の対処処理を、当該プログラムのプログラムＩＤに対応付けて格納する対処処理格納部を参照して、当該プログラムＩＤに対応する対処処理を実行する性能回復ステップとを実行し、対処処理格納部には、他の１つのプログラム実行部から出力されたデータを入力として処理を行うプログラムの性能違反に対しては、当該プログラムのプログラムＩＤに対応付けて、当該プログラムを停止させる旨の対処処理が格納され、異なるサービスに必要な処理を行う他の複数のプログラムから出力されたデータを入力として処理を行うプログラムの性能違反に対しては、当該プログラムのプログラムＩＤに対応付けて、当該他の複数のプログラムの中で予め定められた条件を満たすプログラムを停止させる旨の対処処理が格納され、アプリケーションサーバは、性能回復ステップにおいて、性能監視ステップにおいてプログラムＩＤが出力された場合に、対処処理格納部を参照して、当該プログラムＩＤに、対応するプログラムを停止させる旨の対処処理が対応付けられているならば、当該プログラムＩＤに対応するプログラムを停止させ、当該プログラムＩＤに、データを供給する他のプログラム実行部の中で条件を満たすプログラムを停止させる旨の対処処理が対応付けられているならば、それぞれのサービスを識別するサービスＩＤ毎に、当該サービスに必要な処理を行う複数のプログラムのプログラムＩＤを、当該複数のプログラムのそれぞれによって用いられるデータの流れを示す情報と共に格納するデータフロー情報格納部を参照して、性能監視ステップにおいて出力されたプログラムＩＤに対応するプログラムへデータを供給する他のプログラムを特定し、特定した他のプログラムの中で条件を満たすプログラムを特定し、特定したプログラムを停止させることを特徴とする性能回復方法を提供する。
【００１３】
また、本発明の第４の態様は、複数の異なるサービスを提供し、それぞれのサービスが複数のプログラムによる処理によって実現されるアプリケーションサーバにおける性能回復方法であって、アプリケーションサーバは、１つ以上のサービスに必要な処理を行うプログラムを実行する複数のプログラム実行ステップと、複数のプログラムのそれぞれの実行状況を監視し、いずれかのプログラムの実行状況が、複数のプログラムのそれぞれを識別するプログラムＩＤ毎に、当該プログラムによって行われる処理に要求される性能を示す性能基準を格納する性能基準格納部に格納されている、対応する性能基準に違反した場合に、当該プログラムのプログラムＩＤを出力する性能監視ステップと、性能監視ステップにおいてプログラムＩＤが出力された場合に、それぞれのプログラムの性能が対応する性能基準に違反した場合の対処処理を、当該プログラムのプログラムＩＤに対応付けて格納する対処処理格納部を参照して、当該プログラムＩＤに対応する対処処理を実行する性能回復ステップとを実行し、対処処理格納部には、他の１つのプログラム実行部から出力されたデータを入力として処理を行うプログラムの性能違反に対しては、当該プログラムのプログラムＩＤに対応付けて、当該プログラムを停止させる旨の対処処理が格納され、異なるサービスに必要な処理を行う他の複数のプログラムから出力されたデータを入力として処理を行うプログラムの性能違反に対しては、当該プログラムのプログラムＩＤに対応付けて、当該他の複数のプログラムの中で予め定められた条件を満たすプログラムのプログラムＩＤに対応する対処処理を実行する旨の対処処理が格納され、アプリケーションサーバは、性能回復ステップにおいて、性能監視ステップにおいてプログラムＩＤが出力された場合に、対処処理格納部を参照して、当該プログラムＩＤに、対応するプログラムを停止させる旨の対処処理が対応付けられているならば、当該プログラムＩＤに対応するプログラムを停止させ、当該プログラムＩＤに、データを供給する他のプログラム実行部の中で条件を満たすプログラムのプログラムＩＤに対応する対処処理を実行する旨の対処処理が対応付けられているならば、それぞれのサービスを識別するサービスＩＤ毎に、当該サービスに必要な処理を行う複数のプログラムのプログラムＩＤを、当該複数のプログラムのそれぞれによって用いられるデータの流れを示す情報と共に格納するデータフロー情報格納部を参照して、性能監視ステップにおいて出力されたプログラムＩＤに対応するプログラムへデータを供給する他のプログラムを特定し、特定した他のプログラムの中で条件を満たすプログラムのプログラムＩＤを特定し、特定したプログラムＩＤに対応付けられている対処処理を実行することを特徴とする性能回復方法を提供する。
【発明の効果】
【００１４】
本発明によれば、一部のプログラムの処理負荷が高くなった場合に、全てのサービスの停止につながるプログラムを極力停止させることなく、当該一部のプログラムの性能の悪化を回復することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を、図面を用いて詳細に説明する。
【００１６】
図１は、本発明の一実施形態に係るアプリケーションサーバ１０の構成の一例を示すブロック図である。アプリケーションサーバ１０は、クライアントのコンピュータからネットワーク１９を介して受信したリクエストに応じて、様々なサービスを提供する。それぞれのサービスは、アプリケーションサーバ１０が実行する複数のプログラムによって実現される。本実施形態において、アプリケーションサーバ１０は、書籍の貸出および返却のサービスを提供する。
【００１７】
図２は、本実施形態におけるサービスとプログラムとの関係の一例を示す概念図である。本実施形態のアプリケーションサーバ１０は、書籍貸出サービス２０および書籍返却サービス２８を実現する。書籍貸出サービス２０は、検索条件設定プログラム２１、書籍検索プログラム２２、台帳参照プログラム２３、および貸出処理プログラム２４がアプリケーションサーバ１０によって実行されることにより実現される。
【００１８】
検索条件設定プログラム２１は、会員のコンピュータからの貸出リクエストを受信し、受信した貸出リクエストに含まれるデータから、貸出対象の書籍名および当該書籍の著者名等を含む書籍の検索条件を生成し、生成した検索条件を書籍検索プログラム２２に供給する。
【００１９】
書籍検索プログラム２２は、検索条件設定プログラム２１から供給された検索条件をキーとして、貸出対象となる書籍を書籍データベース内で検索する。そして、書籍検索プログラム２２は、当該検索条件に該当する書籍を特定するための情報である書籍ＩＤを取得して、台帳参照プログラム２３に供給する。
【００２０】
台帳参照プログラム２３は、書籍検索プログラム２２から供給された書籍ＩＤをキーとして、貸出台帳が格納されているデータベース内を検索し、該当する書籍が貸出中か否かを判定する。該当する書籍が貸出中でない場合、台帳参照プログラム２３は、書籍ＩＤを貸出処理プログラム２４に供給する。
【００２１】
貸出処理プログラム２４は、台帳参照プログラム２３から供給された書籍ＩＤおよび会員ＩＤを貸出日および返却予定日に対応付けて貸出台帳に登録する等の貸出処理を実行する。
【００２２】
また、書籍返却サービス２８は、返却書籍指定プログラム２５、会員情報設定プログラム２６、台帳参照プログラム２３、および返却処理プログラム２７がアプリケーションサーバ１０によって実行されることにより実現される。
【００２３】
返却書籍指定プログラム２５は、会員のコンピュータからの返却リクエストおよびログイン情報を受信し、受信した返却リクエストに含まれるデータから、返却対象の書籍の書籍ＩＤを抽出し、抽出した書籍ＩＤをログイン情報と共に返却処理プログラム２７に供給する。
【００２４】
会員情報設定プログラム２６は、会員のコンピュータからのログイン情報を基に、ログイン中の会員を特定するための情報である会員ＩＤを取得し、取得した会員ＩＤを書籍ＩＤと共に台帳参照プログラム２３に供給する。
【００２５】
台帳参照プログラム２３は、さらに、会員情報設定プログラム２６から供給された会員ＩＤをキーとして、貸出台帳が格納されているデータベース内を検索し、対応する会員ＩＤの貸出状況を取得して、書籍ＩＤと共に返却処理プログラム２７に供給する。
【００２６】
返却処理プログラム２７は、台帳参照プログラム２３から供給された貸出状況の中に書籍ＩＤが含まれていれば（すなわち未返却であれば）、該当する会員ＩＤに対応付けられて貸出台帳に記録されている当該書籍ＩＤを削除する等の返却処理を実行する。
【００２７】
検索条件設定プログラム２１、書籍検索プログラム２２、および貸出処理プログラム２４は、それぞれ、書籍貸出サービス２０の機能の一部を実現する。返却書籍指定プログラム２５、会員情報設定プログラム２６、および返却処理プログラム２７は、それぞれ、書籍返却サービス２８の機能の一部を実現する。台帳参照プログラム２３は、書籍貸出サービス２０の機能の一部、および、書籍返却サービス２８の機能の一部を実現する。
【００２８】
書籍貸出サービス２０では、検索条件設定プログラム２１、書籍検索プログラム２２、台帳参照プログラム２３、および貸出処理プログラム２４の順に処理データが流れる。また、書籍返却サービス２８では、返却書籍指定プログラム２５、会員情報設定プログラム２６、台帳参照プログラム２３、および返却処理プログラム２７の順に処理データが流れる。
【００２９】
ここで、台帳参照プログラム２３は、書籍検索プログラム２２から供給されたデータを基に、貸出処理プログラム２４の処理に必要なデータを生成して貸出処理プログラム２４に供給することができ、会員情報設定プログラム２６から供給されたデータを基に、返却処理プログラム２７の処理に必要なデータを生成して返却処理プログラム２７に供給することができる。
【００３０】
そのため、書籍検索プログラム２２からデータが供給されなくても、会員情報設定プログラム２６からデータが供給されていれば、返却処理プログラム２７の処理に必要なデータを生成して返却処理プログラム２７に供給することができ、会員情報設定プログラム２６からデータが供給されなくても、書籍検索プログラム２２からデータが供給されていれば、貸出処理プログラム２４の処理に必要なデータを生成して貸出処理プログラム２４に供給することができる。
【００３１】
図１に戻って説明を続ける。アプリケーションサーバ１０は、複数のプログラム実行部１１、性能回復部１２、性能監視部１３、対処処理格納部１４、データフロー情報格納部１５、および性能基準格納部１６を備える。複数のプログラム実行部１１のそれぞれは、図２で説明したいずれかのプログラムを実行する。
【００３２】
性能基準格納部１６は、例えば図３に示すように、それぞれのプログラムおよび当該プログラムを実行するプログラム実行部１１を識別するプログラムＩＤ１６０毎に、当該プログラムのプログラム名１６１、リクエストを受けてから結果を出力するまでに当該プログラムに許される所要時間である実行所要時間１６２、および、リクエストを受けてから結果を出力するまでに当該プログラムに許されるＣＰＵの占有時間の累積値であるＣＰＵ時間１６３を格納する。
【００３３】
なお、これらの許容値は、それぞれのプログラムにおいて満たされるべき性能基準の一例であり、性能基準格納部１６は、プログラムの実行において監視すべき他のパラメータ（ＣＰＵ使用率、メモリ使用率、およびディスク使用率等）についての許容値を格納してもよい。
【００３４】
性能監視部１３は、それぞれのプログラム実行部１１の実行状況を監視し、いずれかのプログラム実行部１１の実行状況が、性能基準格納部１６に格納されている、対応する性能基準に違反した場合（本実施形態では、性能基準が示す許容値を上回った場合）に、当該プログラム実行部１１のプログラムＩＤを、それぞれのプログラム実行部１１の稼動状況と共に性能回復部１２へ出力する。
【００３５】
データフロー情報格納部１５は、例えば図４に示すように、それぞれのサービスを識別するサービスＩＤ１５０毎に、当該サービスのサービス名１５１、ならびに、当該サービスに必要な処理を行う複数のプログラムのプログラムＩＤおよび当該複数のプログラムのそれぞれによって用いられるデータの流れを示す情報を含むデータフロー情報１５２を格納する。
【００３６】
図４に示す例では、データフロー情報格納部１５は、データフロー情報１５２内のデータの流れを示す情報として、それぞれのプログラムＩＤを矢印で結ぶ。他の例として、データフロー情報格納部１５は、データの流れを示す情報として、データの流れに従ってそれぞれのプログラムＩＤを順番に格納するようにしてもよく、それぞれのプログラムＩＤに順番を示す数値を対応付けてもよい。
【００３７】
図４に示したデータフロー情報格納部１５内のデータの例は、図２で説明したプログラム構成に対応している。例えば、書籍貸出サービスにおいて、データフロー情報１５２には、プログラムＩＤが「１」である検索条件設定プログラム２１からのデータがプログラムＩＤが「２」である書籍検索プログラム２２に供給され、書籍検索プログラム２２からのデータがプログラムＩＤが「３」である台帳参照プログラム２３に供給され、台帳参照プログラム２３からのデータがプログラムＩＤが「４」である貸出処理プログラム２４に供給される旨が格納されている。
【００３８】
同様に、書籍返却サービスにおいて、データフロー情報１５２には、プログラムＩＤが「５」である返却書籍指定プログラム２５からのデータがプログラムＩＤが「６」である会員情報設定プログラム２６に供給され、会員情報設定プログラム２６からのデータが台帳参照プログラム２３に供給され、台帳参照プログラム２３からのデータがプログラムＩＤが「７」である返却処理プログラム２７に供給される旨が格納されている。
【００３９】
データフロー情報格納部１５を参照することにより、性能回復部１２は、任意のプログラムＩＤのプログラム実行部１１にデータを供給している他のプログラム実行部１１のプログラムＩＤを特定することができる。
【００４０】
なお、本実施形態において、それぞれのサービスには、１つのデータパスしか存在しないが、他の形態として、それぞれのサービスに複数のデータパスが存在する場合、対処処理格納部１４には、同一のサービスＩＤに対応付けられて、それぞれのデータパス毎に複数のデータフロー情報が格納される。
【００４１】
対処処理格納部１４は、例えば図５に示すように、プログラムＩＤ１４０毎に、当該プログラムＩＤ１４０で特定されるプログラム実行部１１の性能の悪化を解消するための対処処理１４１を格納する。本実施形態において、対処処理格納部１４は、他の１つのプログラム実行部１１から出力されたデータを入力として処理を行うプログラム実行部１１（図２の例では、検索条件設定プログラム２１、書籍検索プログラム２２、貸出処理プログラム２４、返却書籍指定プログラム２５、会員情報設定プログラム２６、および返却処理プログラム２７）に対しては、当該プログラム実行部１１のプログラムＩＤに対応付けて、当該プログラム実行部１１を停止させる旨の対処処理を格納する。
【００４２】
また、対処処理格納部１４は、異なるサービスに必要な処理を行う他の複数のプログラム実行部１１から出力されたデータを入力として処理を行うプログラム実行部１１（図２の例では、台帳参照プログラム２３）に対しては、当該プログラム実行部１１のプログラムＩＤに対応付けて、当該他の複数のプログラム実行部１１の中で予め定められた条件を満たすプログラム実行部１１を停止させる旨の対処処理を格納する。
【００４３】
本実施形態において、予め定められた条件とは、対象となるプログラム実行部１１に対するアクセス頻度が最も高いことである。また、他の例として、負荷が最も高いことを条件として予め定められてもよい。
【００４４】
なお、プログラム実行部１１を停止させる対処処理とは、例えば所定期間リクエストを拒否し、処理中のリクエストについては処理を続行することである。これにより、当該対処処理を適用されたプログラム実行部１１の処理負荷が下がり、性能の悪化が解消される。また、停止に代えてアクセス数の制限等が対処処理とされてもよい。
【００４５】
性能回復部１２は、性能監視部１３からプログラムＩＤが出力された場合に、対処処理格納部１４を参照して、当該プログラムＩＤに対応する対処処理を取得する。取得した対処処理が、性能監視部１３から受信したプログラムＩＤに対応するプログラム実行部１１を停止させる旨である場合、性能回復部１２は、該当するプログラム実行部１１を停止させる。
【００４６】
一方、取得した対処処理が、性能監視部１３から出力されたプログラムＩＤにデータを供給する他のプログラム実行部１１の中で予め定められた条件を満たすプログラム実行部１１を停止させる旨である場合、性能回復部１２は、データフロー情報格納部１５を参照して、当該プログラムＩＤに対応するプログラム実行部１１にデータを供給する他のプログラム実行部１１を特定する。
【００４７】
そして、性能回復部１２は、性能監視部１３から出力されたそれぞれのプログラム実行部１１の稼動状況を基に、特定した他のプログラム実行部１１の中で予め定められた条件を満たすプログラム実行部１１を特定し、特定したプログラム実行部１１を停止させる。
【００４８】
なお、対処処理格納部１４によって停止させられたプログラム実行部１１は、所定時間が経過した後、あるいは、所定の性能に回復した後に、再び動作を開始する。
【００４９】
図６は、アプリケーションサーバ１０によって実行される性能監視処理の一例を示すフローチャートである。例えば電源投入等の所定のタイミングでアプリケーションサーバ１０は、本フローチャートに示す性能監視処理を開始する。
【００５０】
まず、性能監視部１３は、それぞれのプログラム実行部１１の性能情報およびプログラムＩＤを含む稼動状況を収集する（Ｓ１００）。そして、性能監視部１３は、それぞれのプログラム実行部１１の性能基準を性能基準格納部１６から取得し（Ｓ１０１）、性能基準に違反している性能情報があるか否かをそれぞれのプログラム実行部１１毎に判定する（Ｓ１０２）。
【００５１】
性能基準に違反している性能情報がない場合（Ｓ１０２：Ｎｏ）、性能監視部１３は、再びステップＳ１００に示した処理を実行する。性能基準に違反している性能情報がある場合（Ｓ１０２：Ｙｅｓ）、性能監視部１３は、性能基準に違反している性能情報を含む稼動状況を出力したプログラム実行部１１のプログラムＩＤを、ステップＳ１００において収集したそれぞれのプログラム実行部１１の稼動状況と共に性能回復部１２へ出力し、再びステップＳ１００に示した処理を実行する。
【００５２】
図７は、アプリケーションサーバ１０によって実行される性能回復処理の一例を示すフローチャートである。例えば電源投入等の所定のタイミングでアプリケーションサーバ１０は、本フローチャートに示す性能回復処理を開始する。
【００５３】
まず、性能回復部１２は、性能監視部１３からプログラムＩＤが出力されたか否かを判定する（Ｓ２００）。性能監視部１３からプログラムＩＤが出力されていない場合（Ｓ２００：Ｎｏ）、性能回復部１２は、性能監視部１３からプログラムＩＤが出力されるまでステップＳ２００を繰り返す。
【００５４】
性能監視部１３からプログラムＩＤが出力された場合（Ｓ２００：Ｙｅｓ）、性能回復部１２は、出力されたプログラムＩＤに対応する対処処理を対処処理格納部１４から取得し（Ｓ２０１）、取得した対処処理が他のプログラム実行部１１を停止する旨を示すか否かを判定する（Ｓ２０２）。
【００５５】
取得した対処処理が他のプログラム実行部１１を停止する旨を示すものではない場合（Ｓ２０２：Ｎｏ）、性能回復部１２は、取得した対処処理に従って、性能監視部１３から出力されたプログラムＩＤに対応するプログラム実行部１１を停止させ（Ｓ２０５）、再びステップＳ２００に示した処理を実行する。
【００５６】
取得した対処処理が他のプログラム実行部１１を停止する旨を示す場合（Ｓ２０２：Ｙｅｓ）、性能回復部１２は、取得した対処処理に従って、データ供給元の上流のプログラム実行部１１のプログラムＩＤをデータフロー情報格納部１５から取得して、上流のプログラム実行部１１を特定する（Ｓ２０３）。
【００５７】
そして、性能回復部１２は、性能監視部１３から出力されたそれぞれのプログラム実行部１１の稼動状況を基に、ステップＳ２０３で特定したプログラム実行部１１の中で、所定条件を満たす（本例ではアクセス頻度が最も高い）プログラム実行部１１を停止させ（Ｓ２０４）、再びステップＳ２００に示した処理を実行する。
【００５８】
図８は、アプリケーションサーバ１０の機能を実現するコンピュータ３０のハードウェア構成の一例を示す図である。コンピュータ３０は、ＣＰＵ（Central Processing Unit）３１、ＲＡＭ（Random Access Memory）３２、ＲＯＭ（Read Only Memory）３３、ＨＤＤ（Hard Disk Drive）３４、通信インターフェイス（Ｉ／Ｆ）３５、入出力インターフェイス（Ｉ／Ｆ）３６、およびメディアインターフェイス（Ｉ／Ｆ）３７を備える。
【００５９】
ＣＰＵ３１は、ＲＯＭ３３またはＨＤＤ３４に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ３３は、コンピュータ３０の起動時にＣＰＵ３１が実行するブートプログラムや、コンピュータ３０のハードウェアに依存するプログラム等を格納する。
【００６０】
ＨＤＤ３４は、ＣＰＵ３１が実行するプログラムおよびＣＰＵ３１が使用するデータ等を格納する。通信インターフェイス３５は、ネットワーク１９を介してクライアントのコンピュータ等からデータを受信してＣＰＵ３１へ送ると共に、ＣＰＵ３１が生成したデータを、ネットワーク１９を介してクライアントのコンピュータ等へ送信する。
【００６１】
ＣＰＵ３１は、入出力インターフェイス３６を介して、キーボード、マウス、およびＬＣＤ（Liquid Crystal Display）等の入出力装置を制御する。ＣＰＵ３１は、入出力インターフェイス３６を介して、キーボードやマウス等からデータを取得する。また、ＣＰＵ３１は、生成したデータを、入出力インターフェイス３６を介してＬＣＤ等へ出力する。
【００６２】
メディアインターフェイス３７は、記録媒体３８に格納されたプログラムまたはデータを読み取り、ＲＡＭ３２に提供する。ＲＡＭ３２を介してＣＰＵ３１に提供されるプログラムは、記録媒体３８に格納されている。当該プログラムは、記録媒体３８から読み出されて、ＲＡＭ３２を介してコンピュータ３０にインストールされ、ＣＰＵ３１によって実行される。
【００６３】
ＨＤＤ３４には、対処処理格納部１４、データフロー情報格納部１５、および性能基準格納部１６内の各データが格納される。コンピュータ３０にインストールされて実行されるプログラムは、コンピュータ３０を、複数のプログラム実行部１１、性能回復部１２、性能監視部１３、対処処理格納部１４、データフロー情報格納部１５、および性能基準格納部１６として機能させる。
【００６４】
記録媒体３８は、例えばＤＶＤ、ＰＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。コンピュータ３０は、これらのプログラムを、記録媒体３８から読み取って実行するが、他の例として、他の装置から、通信媒体を介して、これらのプログラムを取得してもよい。通信媒体とは、ネットワーク１９、または、当該ネットワーク１９を伝搬するディジタル信号または搬送波を指す。
【００６５】
なお、本実施形態において、アプリケーションサーバ１０は、１台のコンピュータ３０によって実現されるが、他の例として、アプリケーションサーバ１０は、複数のコンピュータ３０によって実現されていてもよい。
【００６６】
以上、本発明の実施の形態について説明した。
【００６７】
上記説明から明らかなように、本発明のアプリケーションサーバ１０によれば、一部のプログラムの処理負荷が高くなった場合に、全てのサービスの停止につながるプログラムを極力停止させることなく、当該一部のプログラムの性能の悪化を回復することができる。
【００６８】
なお、本発明は、上記した実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【００６９】
例えば、他の形態として、対処処理格納部１４は、他の１つのプログラム実行部１１から出力されたデータを入力として処理を行うプログラム実行部１１の性能違反に対しては、当該プログラム実行部１１のプログラムＩＤに対応付けて、当該プログラム実行部１１を停止させる旨の対処処理を格納し、異なるサービスに必要な処理を行う他の複数のプログラム実行部１１から出力されたデータを入力として処理を行うプログラム実行部１１の性能違反に対しては、当該プログラム実行部１１のプログラムＩＤに対応付けて、当該他の複数のプログラム実行部１１の中で予め定められた条件を満たすプログラム実行部１１のプログラムＩＤに対応する対処処理を実行する旨の対処処理を格納していてもよい。
【００７０】
このような形態における性能回復処理のフローチャートを図９に示す。なお、以下に説明する点を除き、図９において、図７と同じ符号を付した処理は、図７における処理と同一または同様であるため説明を省略する。
【００７１】
ステップＳ２０６において、性能回復部１２は、性能監視部１３から出力されたそれぞれのプログラム実行部１１の稼動状況を基に、ステップＳ２０３で特定したプログラム実行部１１の中で、所定条件を満たす（本例ではアクセス頻度が最も高い）プログラム実行部１１を特定する（Ｓ２０６）。そして、性能回復部１２は、ステップＳ２０６で特定したプログラム実行部１１のプログラムＩＤに対応する対処処理を対処処理格納部１４から取得し（Ｓ２０７）、再びステップＳ２０２に示した処理を実行する。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態に係るアプリケーションサーバ１０の構成の一例を示すブロック図である。
【図２】本実施形態におけるサービスとプログラムとの関係の一例を示す概念図である。
【図３】性能基準格納部１６に格納されるデータ構造の一例を示す図である。
【図４】データフロー情報格納部１５に格納されるデータ構造の一例を示す図である。
【図５】対処処理格納部１４に格納されるデータ構造の一例を示す図である。
【図６】アプリケーションサーバ１０によって実行される性能監視処理の一例を示すフローチャートである。
【図７】アプリケーションサーバ１０によって実行される性能回復処理の一例を示すフローチャートである。
【図８】アプリケーションサーバ１０の機能を実現するコンピュータ３０のハードウェア構成の一例を示す図である。
【図９】アプリケーションサーバ１０によって実行される性能回復処理の他の例を示すフローチャートである。
【符号の説明】
【００７３】
１０・・・アプリケーションサーバ、１１・・・プログラム実行部、１２・・・性能回復部、１３・・・性能監視部、１４・・・対処処理格納部、１４０・・・プログラムＩＤ、１４１・・・対処処理、１５・・・データフロー情報格納部、１５０・・・サービスＩＤ、１５１・・・サービス名、１５２・・・データフロー情報、１６・・・性能基準格納部、１６０・・・プログラムＩＤ、１６１・・・プログラム名、１６２・・・実行所要時間、１６３・・・ＣＰＵ時間、１９・・・ネットワーク、２０・・・書籍貸出サービス、２１・・・検索条件設定プログラム、２２・・・書籍検索プログラム、２３・・・台帳参照プログラム、２４・・・貸出処理プログラム、２５・・・返却書籍指定プログラム、２６・・・会員情報設定プログラム、２７・・・返却処理プログラム、２８・・・書籍返却サービス、３０・・・コンピュータ、３１・・・ＣＰＵ、３２・・・ＲＡＭ、３３・・・ＲＯＭ、３４・・・ＨＤＤ、３５・・・通信インターフェイス、３６・・・入出力インターフェイス、３７・・・メディアインターフェイス、３８・・・記録媒体
【図１】
2008158617.tif 000003
【図２】
2008158617.tif 000004
【図３】
2008158617.tif 000005
【図４】
2008158617.tif 000006
【図５】
2008158617.tif 000007
【図６】
2008158617.tif 000008
【図７】
2008158617.tif 000009
【図８】
2008158617.tif 000010
【図９】
2008158617.tif 000011