(57)【特許請求の範囲】
【請求項１】
要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第１の処理を実行してから前記複数種類の処理のうちの第２の処理を実行するまでの予測時間および前記第１の処理を実行した後に前記第２の処理を実行する確率を算出し、
前記第１の処理の実行に併せて前記第１の処理を識別する識別子の通知を行なうことを規定した通知コードを前記ソースコードに追加し、
前記識別子に、算出した前記予測時間及び前記確率を関連付けて記憶手段に記憶し、
前記通知コードを追加したソースコードに基づいて行われた前記識別子の通知の取得によって前記第１の処理が実行されたことを検知し、
前記第１の処理が実行されたことを検知した場合に、前記通知に含まれる前記識別子と同一の識別子に関連付けられて前記記憶手段に記憶した前記予測時間と前記確率を読み出し、
前記第２の処理が、読み出した前記予測時間後に、読み出した前記確率で実行されることを予測すること
をコンピュータに実行させることを特徴とする予測プログラム。
【請求項２】
前記コンピュータに、
前記ソースコードを、前記ソースコードに基づく処理を行なう処理装置から取得し、
取得したソースコードに基づいて、前記予測時間を算出すること
を実行させることを特徴とする請求項１に記載の予測プログラム。
【請求項３】
前記コンピュータに、
前記第２の処理が実行されることの予測結果に応じて、前記ソースコードに基づいて処理を実行可能であり、待機中である処理装置に、稼動指示を出力すること
を実行させることを特徴とする請求項１又は請求項２に記載の予測プログラム。
【請求項４】
前記コンピュータに、
前記第２の処理が実行されることの予測結果に応じて、前記ソースコードに基づいて処理を実行可能であり、稼働中である処理装置に、待機指示を出力すること
を実行させることを特徴とする請求項１〜請求項３のいずれかに記載の予測プログラム。
【請求項５】
前記コンピュータに、
前記通知を複数取得した場合に、通知を取得してから前記予測時間経過した時刻が所定の時刻範囲に含まれる通知のそれぞれについて、それぞれの通知に含まれる前記識別子に関連付けて前記記憶手段に記憶した確率を読み出し、
読み出した確率を合算した確率で、前記所定の時刻範囲に前記第２の処理が実行されることを予測すること
を実行させることを特徴とする請求項１〜請求項４に記載の予測プログラム。
【請求項６】
前記コンピュータに、
前記複数種類の処理のそれぞれを識別する識別子の通知を、それぞれの処理の実行に併せて行なうことを規定したコードを前記ソースコードに追加し、
前記複数種類の処理のそれぞれについて、それぞれの処理を実行してから前記第２の処理を実行するまでの予測時間と、それぞれの処理を実行した後に前記第２の処理を実行する確率とを算出し、
算出したそれぞれの処理についての予測時間及び確率を、それぞれの処理を識別する識別子に関連付けて記憶手段に記憶すること
を実行させることを特徴とする請求項１〜請求項５に記載の予測プログラム。
【請求項７】
前記通知は、さらに、前記通知に含まれる識別子が識別する処理を要求したアクセスを識別するアクセス識別子を含み、
前記コンピュータに、
前記通知に含まれるアクセス識別子に、前記通知に含まれる識別子と、前記通知に含まれる識別子に関連付けて前記記憶手段に記憶した前記予測時間及び前記確率とを関連付けて第２の記憶手段に記憶し、
前記第２の記憶手段に記憶した予測時間及び確率に、同じアクセス識別子に関連付けられた予測時間及び確率が複数存在する場合は、最後に取得した通知に含まれるアクセス識別子に関連付けられた予測時間及び確率に、複数存在する予測時間及び確率を集約し、
前記第２の記憶手段に記憶した前記予測時間及び前記確率に基づいて、前記第２の処理が実行されることを予測すること
を実行させることを特徴とする請求項１〜請求項６のいずれかに記載の予測プログラム。
【請求項８】
前記コンピュータに、
前記第２の記憶手段に記憶した予測時間及び確率に、同じアクセス識別子に関連付けられた予測時間及び確率が複数存在する場合に、同じ識別子に関連付けられた予測時間同士の差と、同じ識別子に関連付けられた前記確率のうち先に取得した通知に含まれる確率とを第３の記憶手段に記憶し、
前記第３の記憶手段に記憶した前記時間値同士の差に基づいて、前記複数種類の処理のそれぞれについて、それぞれの処理が実行されてから前記複数種類の処理のうちの他の処理が実行されるまでの時間の平均を算出し、
前記第３の記憶手段に記憶した確率に基づいて、前記複数種類の処理のそれぞれについて、それぞれの処理が実行された後に前記複数種類の処理のうちの他の処理が実行される遷移確率を算出し、
前記時間値を、算出した前記平均に更新し、前記確率を、算出した前記遷移確率に更新すること
を実行させることを特徴とする請求項７に記載の予測プログラム。
【請求項９】
前記予測時間を、前記第１の処理を実行してから前記第２の処理を実行するまでの間に実行する処理の数に応じて算出すること
を特徴とする請求項１〜請求項８のいずれかに記載の予測プログラム。
【請求項１０】
前記予測時間を、前記ソースコードの作成に関する設計情報に基づいて前記予測時間を算出すること
を特徴とする請求項１〜８のいずれかに記載の予測プログラム。
【請求項１１】
前記確率を、前記第１の処理を実行してから前記第２の処理を実行するまでの間に実行する処理の数と、前記第１の処理を実行してから前記第２の処理を実行するまでの間に実行する処理のそれぞれについて前記ソースコードに規定された分岐の数に応じて算出すること
を特徴とする請求項１〜請求項１０のいずれかに記載の予測プログラム。
【請求項１２】
要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第１の処理を実行してから前記複数種類の処理のうちの第２の処理を実行するまでの予測時間および前記第１の処理を実行した後に前記第２の処理を実行する確率を算出し、
前記第１の処理の実行に併せて前記第１の処理を識別する識別子の通知を行なうことを規定した通知コードを前記ソースコードに追加し、
前記識別子に、算出した前記予測時間及び前記確率を関連付けて記憶手段に記憶し、
前記通知コードを追加したソースコードに基づいて行われた前記識別子の通知の取得によって前記第１の処理が実行されたことを検知し、
前記第１の処理が実行されたことを検知した場合に、前記通知に含まれる前記識別子と同一の識別子に関連付けられて前記記憶手段に記憶した前記予測時間と前記確率を読み出し、
前記第２の処理が、読み出した前記予測時間後に、読み出した前記確率で実行されることを予測すること
を含むことを特徴とする予測方法。
【請求項１３】
要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第１の処理を実行してから前記複数種類の処理のうちの第２の処理を実行するまでの予測時間および前記第１の処理を実行した後に前記第２の処理を実行する確率を算出する算出手段と、
前記第１の処理の実行に併せて前記第１の処理を識別する識別子の通知を行なうことを規定した通知コードを前記ソースコードに追加する追加手段と、
前記識別子に、算出した前記予測時間及び前記確率を関連付けて記憶する記憶手段と、
前記通知コードを追加したソースコードに基づいて行われた前記識別子の通知の取得によって前記第１の処理が実行されたことを検知する検知手段と、
前記第１の処理が実行されたことを検知した場合に、前記通知に含まれる前記識別子と同一の識別子に関連付けられて前記記憶手段に記憶した前記予測時間と前記確率を読み出す読み出し手段と、
前記第２の処理が、読み出した前記予測時間後に、読み出した前記確率で実行されることを予測する予測手段と
を含むことを特徴とする予測装置。
【請求項１４】
稼働中の第１の装置及び待機中の第２の装置、並びに前記第１の装置及び前記第２の装置と通信可能な第３の装置からなる予測システムであって、
前記第３の装置は、
前記第１の装置上で要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第１の処理を実行してから前記複数種類の処理のうちの第２の処理を実行するまでの予測時間および前記第１の処理を実行した後に前記第２の処理を実行する確率を算出する算出手段と、
前記第１の処理の実行に併せて前記第１の処理を識別する識別子の通知を行なうことを規定した通知コードを前記ソースコードに追加する追加手段と、
前記識別子に、算出した前記予測時間及び前記確率を関連付けて記憶する記憶手段と、
前記通知コードを追加したソースコードに基づいて行われた前記識別子の通知の取得によって前記第１の処理が実行されたことを検知する検知手段と、
前記第１の処理が実行されたことを検知した場合に、前記通知に含まれる前記識別子と同一の識別子に関連付けられて前記記憶手段に記憶した前記予測時間と前記確率を読み出す読み出し手段と、
前記第２の処理が、読み出した前記予測時間後に、読み出した前記確率で実行されることを予測する予測手段と
前記予測手段の予測結果に応じて、前記第２の装置に稼動指示を出力する出力手段と
を含むことを特徴とする予測システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理装置を含むシステムにおいて、複数の処理装置に要求される処理量の予測を行なう装置、方法及びプログラムに関する。
【背景技術】
【０００２】
複数の処理装置を含むシステムに対して要求される処理量が、システム内で稼働中の処理装置によって処理可能な処理量よりも少なく、稼働中の処理装置のうちの一部を除いても要求された処理を実行可能な場合は、その一部の処理装置を稼動状態にしておくために過分に電力や、CPUやメモリといったマシンリソースを消費してしまう。また、複数の処理装置のうちの一部を待機状態とした場合には、要求される処理量が増加することにより、要求される処理量が稼働中の処理装置の処理能力を超えてしまうことも考えられる。
【０００３】
例えば、特許文献１には、コンピュータシステムの稼動状態に関する情報を収集し、収集された情報間の相関関係を示す相関情報を記録し、前記相関情報を参照して、前記収集された情報から、前記コンピュータシステムで実行されるサービスに生じた障害を検出し、前記検出された障害を回復するための処理を生成し、相関情報を参照して、生成された処理の実行によって前記コンピュータシステムに与えられる効果及び影響を判定し、前記効果及び影響が判定された処理の実行の要否、実行順序及び実行時刻を決定する技術が開示されている。
【０００４】
また、例えば特許文献２には、クライアント端末からの要求のうち、アプリケーションサーバからの応答時間が規定時間を超え、クライアント端末で受け付けられなくなるような、アプリケーションサーバでのデータベースの検索処理が発生した場合、エラーとなる要求の処理をすることなくエラー応答をするアプリケーションサーバの処理方法が開示されている。
【０００５】
また、例えば特許文献３には、一定時間間隔毎に、バッファプール管理テーブルより、基本確保バッファ数、現在のバッファ数、イメージ保有バッファ数といった、バッファプール毎の負荷情報を取得し、取得した負荷情報をもとに欠くバッファプールに必要とされているバッファの最低数を決定し、データの出力が行なわれていないタイミングで、各バッファプールに対してバッファを追加あるいは削除することが開示されている。
【０００６】
また、例えば特許文献４には、ログファイルを通してユーザーによるパーソナルコンピュータの使用量を測定し、コンピュータ使用傾向を予測することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−９８４２号公報
【特許文献２】特開２００１−３２５２２３号公報
【特許文献３】特開２０００−５７０２７号公報
【特許文献４】特表平１０−５１０６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、システムに要求される処理量が増加した際に、待機状態にある処理装置を稼動状態にさせたとしても、処理装置が稼動状態になるために時間を要するため、システムに要求された処理量がシステム内の稼働中の処理装置群の処理能力を超えたことが明らかになったとしても、その時点においてその状態を改善することができなかった。
【０００９】
本発明は、システムに要求された処理量が、システム内の稼働中の処理装置群の処理能力を超過することの予測を目的とする。
【課題を解決するための手段】
【００１０】
第１の案として、要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第１の処理を実行してから前記複数種類の処理のうちの第２の処理を実行するまでの予測時間を算出し、前記第１の処理が実行されたことを検知した場合に、算出した前記予測時間に示される時間後に前記第２の処理が実行されることを予測することをコンピュータに実行させることを特徴とする予測プログラムを用いる。
【００１１】
第２の案として、要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第１の処理を実行してから前記複数種類の処理のうちの第２の処理を実行するまでの予測時間を算出し、前記第１の処理が実行されたことを検知した場合に、算出した前記予測時間に示される時間後に前記第２の処理が実行されることを予測することを含むことを特徴とする予測方法を用いる。
【００１２】
第３の案として、要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第１の処理を実行してから前記複数種類の処理のうちの第２の処理を実行するまでの予測時間を算出する算出手段と、前記第１の処理が実行されたことを検知した場合に、算出した前記予測時間に示される時間後に前記第２の処理が実行されることを予測する予測手段とを含むことを特徴とする予測装置を用いる。
【００１３】
第４の案として、稼働中の第１の装置及び待機中の第２の装置、並びに前記第１の装置及び前記第２の装置と通信可能な第３の装置であって、要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第１の処理を実行してから前記複数種類の処理のうちの第２の処理を実行するまでの予測時間を算出する算出手段と、前記第１の処理が実行されたことを検知した場合に、算出した前記予測時間に示される時間後に前記第２の処理が実行されることを予測する予測手段と前記予測手段の予測結果に応じて、前記第２の装置に稼動指示を出力する出力手段とを含むことを特徴とする予測システムを用いる。
【発明の効果】
【００１４】
本発明は、システムに要求された処理量が、システム内の稼働中の処理装置群の処理能力を超過することを予測する。
【図面の簡単な説明】
【００１５】
【図１】第一の実施形態における装置の配置例を示す。
【図２】第一の実施形態において行なわれる処理の例を示す。
【図３】処理装置群２ａ〜２ｅで実行されるプログラムの状態遷移の例のモデル図を示す            。
【図４】管理装置１についての機能ブロックを示す。
【図５】解析手段１２についての機能ブロックを示す。
【図６】記憶手段１２２に記憶されるテーブルＢ１を示す。
【図７】記憶手段１２２に記憶されるテーブルＢ２を示す。
【図８】記憶手段１３に記憶されるテーブルＢ３を示す。
【図９】記憶手段１３に記憶されるテーブルＢ４を示す。
【図１０】指示手段１４についての機能ブロックを示す。
【図１１】記憶手段１４２に記憶するテーブルＢ５を示す。
【図１２】記憶手段１４２に記憶するテーブルＢ６を示す。
【図１３】記憶手段１４２に記憶するテーブルＢ７を示す。
【図１４】管理装置１の装置構成図を示す。
【図１５】記憶手段１３に記憶するテーブルＢ８を示す。
【図１６】解析手段１２によって行なわれる処理のフローを示す。
【図１７】解析手段１２によって行なわれる処理のフローを示す。
【図１８】解析手段１２によって行なわれる処理のフローを示す。
【図１９】解析手段１２によって行なわれる処理のフローを示す。
【図２０】指示手段１４によって行なわれる処理のフローを示す。
【図２１】指示手段１４によって行なわれる処理のフローを示す。
【図２２】指示手段１４によって行なわれる処理のフローを示す。
【図２３】指示手段１４によって行なわれる処理のフローを示す。
【図２４】処理量予測の例を示す。
【図２５】第２の実施形態における指示手段の機能ブロックを示す。
【図２６】記憶手段１４２に記憶されるテーブルＢ１０を示す。
【図２７】指示手段１４によって行なわれる処理のフローを示す。
【発明を実施するための形態】
【００１６】
以下、図面を参照しつつ本発明の実施形態について説明する。
［第１の実施形態］
まず、本実施形態のシステムの概容を説明する。
【００１７】
図１は、本実施形態の装置の配置例を示す。１は管理装置を示し、２ａ〜２ｅのそれぞれは処理装置を示し、３ａ〜３ｅのそれぞれは記憶装置を示し、４は負荷分散装置を示し、５、６はネットワークを示し、７は端末装置を示す。
【００１８】
管理装置１は、ネットワーク５を介した通信により、処理装置２ａ〜２ｅから取得した情報に基づいて、処理装置２ａ〜２ｅ及び記憶装置３ａ〜３ｅのそれぞれに指示を送信可能なコンピュータである。もしくは、管理装置１の機能を処理装置２ａ〜２ｅのいずれかが備えても良い。
【００１９】
処理装置２ａ〜２ｅのそれぞれは、端末装置７に要求された処理を実行するサーバとしての役割を果たしうるコンピュータである。例えば、処理装置２ａ〜２ｅが果たす役割として、端末装置７からのアクセスに応じてＷｅｂアプリケーションを提供する役割などが考えられる。図１では、例として、稼働中の処理装置２ａ〜２ｃを実線で示し、待機中の処理装置２ｄ，２ｅを点線で示している。また、図１においては、５台の処理装置を例示しているが、台数をこれに制限するものでない。
【００２０】
稼働中の処理装置とは、端末装置７からの要求に応じた処理を実行可能な状態にある処理装置であり、待機中の処理装置とは、端末装置７からの要求に応じた処理を実行可能な状態に移行するまでに時間を要する状態にある処理装置である。待機中の処理装置は、例えば、スタンバイ状態にある処理装置、停止している処理装置などである。スタンバイ状態は、運用上の定義によるが、例えば、主電源がＯＮであり、且つ部分的に給電を停止した状態などのことであり、運用上スタンバイ状態を複数種類定義しても良い。
【００２１】
記憶装置３ａ〜３ｅのそれぞれは、例えば、ＨＨＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などを含む記憶装置である。また、処理装置２ａ〜２ｅと同様に、例として、稼働中の記憶装置３ａ〜３ｃを実線で示し、待機中の記憶装置３ｄ，３ｅを点線で示している。
【００２２】
負荷分散装置４は、稼動中の処理装置２ａ〜２ｃのいずれかに端末装置７からの処理の要求の振り分け処理を行なう装置である。
【００２３】
端末装置７は、処理装置２ａ〜２ｅに処理の要求を送信するクライアント側の装置を例示したものである。端末装置７はコンピュータなどであって良い。また、図示しないが、端末装置７は、無線によってネットワーク６に接続可能な携帯電話又は携帯型情報端末（ＰＤＡ）でも良い。端末装置７の台数は、図１に示す台数に限るものでない。
【００２４】
本実施形態における管理装置１の処理を説明する前に、図２、図３を用いて、本実施形態のシステムによって行なわれる処理の概容を説明する。
【００２５】
図２は、本実施形態のシステムを用いて行なわれる処理の一例を示す。図２のＡ１〜Ａ９は、端末装置７、処理装置２ａ及び記憶装置３ａのそれぞれにおいて行われる処理を時系列に示している。
【００２６】
Ａ１は、ユーザにより端末装置７が、記憶装置３ａに格納されたデータの参照要求（例えば、Ｗｅｂページの取得要求など）の指示を入力されることを示す。Ａ２は、端末装置７が参照要求を含むデータを処理装置２ａ〜２ｅに送信することを示す。
【００２７】
Ａ３は、Ａ２で端末装置７が送信し、負荷分散装置４により振り分けられたデータを処理装置２ａが受信することを示す。Ａ４は、処理装置２ａが受信したデータに応じて、記憶装置３ａに読み出し要求を含むデータを送信することを示す。
【００２８】
Ａ５は、記憶装置３ａが、Ａ４において処理装置２ａが送信した読み出し要求を含むデータを受信することを示す。Ａ６は、記憶装置３ａが、受信したデータに含まれる読み出し要求に応じて読み出したデータを処理装置２ａに送信することを示す。
【００２９】
Ａ７は、処理装置２ａが、記憶装置３ａがＡ６で送信したデータを受信することを示す。Ａ８は、処理装置２ａが、Ａ７で受信したデータを端末装置７に送信することを示す。
【００３０】
Ａ９は、端末装置７が、処理装置２ａがＡ８で送信したデータを受信することを示す。例えばＡ１での入力がＷｅｂページの取得要求であった場合には、端末装置７は、Ａ９で受信したデータに基づいて、画面の表示を切り替えるなどの処理を行なう。
【００３１】
図２に示す処理はあくまで一例であるが、処理装置２ｂ〜２ｅも処理装置２ａと同様の処理を実行可能であり、記憶装置３ｂ〜３ｅも記憶装置３ａと同様の処理を実行可能である。
【００３２】
図２において、記憶装置３ａは、Ａ５〜Ａ６の期間で読出し要求によって要求されたデータの読み出し処理を行なう。この読み出し処理にかかる時間は、読み出し要求の内容に応じて異なる。例えば、記憶装置３ａが、記憶装置３ａに格納している１つのテーブルを参照してデータ読み出すよりも、１つのデータテーブルを参照して読み出したデータに基づいて、さらに別のテーブルを参照してデータを読み出す（ＳＱＬ文においては、ｊｏｉｎなどを含む処理）の方が、読出し処理に時間がかかると考えられる。従って、処理装置２ａが送信する読出し要求の内容によっては、時間がかかる読み出し処理であるかを予想可能である。以下において、特に時間がかかる読み出し処理を「重い処理」と呼ぶ。
【００３３】
図２において、処理装置２ａは、Ａ３〜Ａ８の期間で、端末装置７からの参照要求に応じた処理を行なう。この処理は、端末装置７から参照要求を含むデータを受信すること（Ａ３）を契機として実行される。以下において、このような処理装置が実行する処理の契機をイベント（Ｅ）と呼ぶ。
【００３４】
さらに、処理装置２ａにイベント（Ｅ）を発生させた端末装置７がどのデータを取得しているか（イベント（Ｅ）が端末装置７からのＷｅｂページの参照要求であれば、どのＷｅｂページを表示しているか）を状態（Ｓ）と呼ぶ。即ち、図２において処理装置２ａのイベント（Ｅ）に応じた一連の処理（Ａ３〜Ａ８）は、イベント（Ｅ）を発生させた端末装置７の状態（Ｓ）を遷移させる処理であるといえる。つまり、処理装置２ａに一連の処理（Ａ３〜Ａ８）を実行させるプログラムは、イベント（Ｅ）に応じて状態（Ｓ）を遷移される処理が規定されたものであり、そのプログラムを解析すれば、イベント（Ｅ）に応じたプログラムの処理によって遷移する前の状態（Ｓｂ）を示す情報と後の状態（Ｓａ）を示す情報を取得できる。
【００３５】
処理装置２ａ〜２ｅが構造化されたＷｅｂページ群を提供するプログラムを実行する処理装置群であるとした場合、イベント（Ｅ）は例えばＷｅｂページ間のリンクによるジャンプの指示などであり、状態（Ｓ）は端末装置７にＷｅｂページのデータを送信することによって遷移する。この場合、イベント（Ｅ）と遷移前の状態（Ｓｂ）及び遷移後の状態との関係は、Ｗｅｂページ群の構成に基づいて決まっている。また、Ｗｅｂページ中の入力フォームへの文字入力をイベント（Ｅ）として、その文字入力前後の状態を、遷移前の状態（Ｓｂ）と遷移後の状態（Ｓａ）としても良い。このイベント（Ｅ）と遷移前の状態（Ｓｂ）及び遷移後の状態との関係については、図３を用いて説明する。
【００３６】
図３は、処理装置２ａ〜２ｅが実行するプログラムに規定された状態遷移の例をモデル化した図である。Ｓ１〜Ｓ７のそれぞれは状態を示し、Ｅ１〜Ｅ７のそれぞれはイベントを示す。
【００３７】
図３は、各イベント（Ｅ１〜Ｅ７）の矢印は、各イベントの発生による状態の遷移を表している。例えば、図３のイベント（Ｅ１）の矢印は、状態（Ｓ１）であるときに、イベント（Ｅ１）が発生することにより、処理装置２ａ〜２ｅのいずれかでイベント（Ｅ１）に応じた処理Ａ３〜Ａ８が行なわれて状態（Ｓ２）に遷移することを示している。
【００３８】
イベント（Ｅ）は、処理装置２ａ〜２ｅのいずれかが、端末装置７からＷｅｂページの取得要求を含むデータを受信することだけでなく、例えばユーザが所定のＷｅｂページにおいてデータ入力し、入力したデータを受信することであっても良い。その場合は、所定のページにおいてデータ入力されたことも状態（Ｓ）として定義される。他にもＷｅｂページの取得から所定時間経過したことをイベント（Ｅ）としても良いし、セッションの接続要求、切断要求などをイベント（Ｅ）としても良い。
【００３９】
次に、本実施形態における管理装置１の処理について説明する。
［管理装置１の構成］
図４に管理装置１の機能ブロック構成を示す。１１は通信手段を示し、１２は解析手段を示し、１３は記憶手段を示し、１４は指示手段を示す。
【００４０】
通信手段１１は、ネットワーク６を介して処理装置２ａ〜２ｅとデータを送受信する処理を行なう。また、通信手段１１は、処理装置２ａ〜２ｅに加えて記憶装置３ａ〜３ｅともデータを送受信する処理を行なうようにしても良い。
【００４１】
データの送受信として、例えば、処理装置２ａ〜２ｅで実行されるプログラムのソースコード（Ｃ１）の受信、ソースコード（Ｃ１）に解析手段１２がコードを追加して作成したソースコード（Ｃ２）の送信、処理装置２ａ〜２ｅからのイベント通知の受信、指示手段１４から処理装置２ａ〜２ｅのいずれかへの指示の送信などを行なう。
【００４２】
解析手段１２は、通信手段１１が受信したソースコード（Ｃ１）に、ソースコード（Ｃ１）を実行する処理装置が、処理装置に発生したイベントに応じてどういった処理を実行することが規定されているかを解析する。また、解析手段１２は、ソースコード（Ｃ１）に、イベント（Ｅｉ）が発生した場合に、発生したイベント（Ｅｉ）を識別するデータ（イベントＩＤ）と、イベントが発生させたクライアントを識別するデータ（例えば、セッションＩＤ）とをイベント通知として管理装置１に送信させることを規定したコードを追加したソースコード（Ｃ２）を生成する。さらに、解析手段１２は、ソースコード（Ｃ１）を解析した結果に基づいて、１〜ｍ（ソースコード（Ｃ１）に規定されたイベントの総数をｍとする）の範囲内の整数ｉ，ｊについて、イベント（Ｅｉ）が発生した後に他のイベント（Ｅｊ）が発生するまでの時間（Ｔｉｊ）と発生する確率（Ｐｉｊ）とを見積もり、記憶手段１３に記憶させる。解析手段１２の具体的な処理については、図５を用いて後述する。
【００４３】
時間（Ｔｉｊ）、確率（Ｐｉｊ）は、ソースコード（Ｃ１）でなく、例えばソースコード（Ｃ１）の作成に用いた画面遷移図などの設計情報に基づいて見積もられても良い。ソースコード（Ｃ１）又は設計情報のいずれに基づくにしても、処理装置は、処理装置で実行するプログラムを更新する際に、更新されたプログラムに対応するソースコード又は設計情報を保持しておく。
【００４４】
記憶手段１３は、解析手段１２によって求められた時間（Ｔｉｊ）と確率（Ｐｉｊ）とを記憶する。また、指示手段１４の読出し要求に応じて、時間（Ｔｉｊ）又は確率（Ｐｉｊ）を読み出す。
【００４５】
指示手段１４は、通信手段１１が受信したイベント通知と記憶手段１３に記憶した時間（Ｔｉｊ）及び確率（Ｐｉｊ）とに基づき、所定のイベントの発生タイミングを予測し、さらに、予測したタイミングで発生するイベントの処理に必要な台数の処理装置が稼動していない場合に、待機中の処理装置２ｄ、２ｅに、稼動に必要な時間を見込んで通信手段１１に稼動指示を送信させる。もしくは、稼働中の処理装置の一部を停止させても予測されるイベントの処理を充分に実行可能である場合に、通信手段１１に一部の処理装置にスタンバイ状態への移行又は停止の指示を送信させる。具体的には図１０を用いて後述する。
【００４６】
図４に示す管理装置１を用いることで、処理装置２ａ〜２ｅが実行するプログラムと処理装置２ａ〜２ｅに対して行なわれているアクセスの状況とに基づいて、処理装置２ａ〜２ｅの処理負荷を事前に予測し、予測した処理負荷に応じて必要な台数の処理装置を、処理装置の起動時間を見込んで起動させることができる。
［解析手段１２の構成］
図５は、解析手段１２についての機能ブロックを示す。１２１は制御手段を示し、１２２は記憶手段を示し、１２３は抽出手段を示し、１２４は生成手段を示し、１２５は算出手段を示す。
【００４７】
制御手段１２１は、記憶手段１３に格納されたテーブルＢ８（図１５参照）に基づき稼働中の処理装置を判定し、稼働中の処理装置からプログラムのソースコード（Ｃ１）を取得する処理、記憶手段１２２にデータの書込み・読出し処理、処理装置２ａ〜２ｅへのソースコード（Ｃ２）の送信を通信手段１１に指示する処理などを行なう。
【００４８】
テーブルＢ８は、図１５に示すように、処理装置ごとにレコードを有し、処理装置のアドレス、処理装置の稼動状態などの情報を格納するフィールドを有している。このテーブルＢ８に含まれる情報は、管理者によって設定されても良いし、管理装置１が処理装置を自動検出して追加設定しても良い。また、管理装置１が、テーブルＢ８のテーブルの各レコードに登録された処理装置に対し、定期的に稼動状態の問い合わせを行ない、更新することとしても良い。
【００４９】
抽出手段１２３は、制御手段１２１が記憶手段１２２から読み出したソースコード（Ｃ１）から、イベント発生を検知する旨を規定したコードと、そのコードにより検知されるイベントが発生した後に実行する処理の内容を規定したコードを抽出する。
【００５０】
抽出手段１２３は、抽出したコードにより検知するイベントのイベントＩＤを生成し、さらに、そのイベントに応じて実行される処理によって遷移する前の状態（遷移前状態：Ｓｂ）を示すデータと、遷移した後の状態（遷移後状態：Ｓａ）を示すデータとを抽出する。
【００５１】
制御手段１２１は、イベントＩＤと、遷移前状態（Ｓｂ）を示すデータと、遷移後状態（Ｓａ）を示すデータとを含むレコードを記憶手段１２２に記憶されているテーブルＢ１に追加する。例えば、イベントの発生が端末装置７からのＷｅｂページの取得要求である場合、遷移前状態（Ｓｂ）を示すデータは、取得要求を受信する前に提供していたＷｅｂページのアドレスなどが考えられ、遷移後状態（Ｓａ）を示すデータは取得要求に応じて提供するＷｅｂページのアドレスなどが考えられる。
【００５２】
生成手段１２４は、抽出手段１２３が抽出したコードと抽出手段１２３が生成したイベントＩＤとに基づいて、抽出したコードが実行された場合にイベントＩＤとセッションＩＤとを管理装置１に通知する処理を規定したコードを生成する。セッションＩＤは、イベントを発生させたアクセスを含むセッションを他のセッションと識別する情報である。セッションＩＤでなくとも、処理装置にアクセスしているアクセス元を識別可能なデータを用いれば良い。例えば、セッションＩＤの代わりに処理装置２ａ〜２ｅが提供するＷｅｂサイトへのログインＩＤなどを用いても良い。生成したコードは、制御手段１２１によって記憶手段１２２に記憶したソースコード（Ｃ１）に追加される。
【００５３】
記憶手段１２２は、イベントＩＤ毎に、イベントＩＤと、遷移前状態（Ｓｂ）と遷移後状態（Ｓａ）を示すデータとを含むレコードを有するテーブルＢ１を記憶する。また、記憶手段１２２は、算出手段１２５の処理で用いる設定データを記憶しておく。設定データは、例えば、ソースコード（Ｃ１）に規定された各状態がどれくらいの時間継続するかを示す値を予め定めたものなどを含む。
【００５４】
算出手段１２５は、記憶手段１２２に記憶されたテーブルＢ１と設定データとに基づいて、１〜ｎの整数ｉ，ｊのそれぞれについて、イベント（Ｅｉ）が発生してからイベント（Ｅｊ）が発生するまでの時間（Ｔｉｊ）と、イベント（Ｅｉ）が発生した後にイベント（Ｅｊ）が発生する確率（Ｐｉｊ）を算出する。制御手段１２１は、算出手段１２５が算出した時間（Ｔｉｊ）と確率（Ｐｉｊ）を、記憶手段１３に記憶させる。
【００５５】
算出手段１２５が時間（Ｔｉｊ）と確率（Ｐｉｊ）とを算出する処理について、ソースコード（Ｃ１）に図３に示すような状態（Ｓ）とイベント（Ｅ）との関係が規定されていた場合を例として説明する。
【００５６】
図６は、記憶手段１２２に記憶されるイベントＩＤと状態（Ｓｂ）と状態（Ｓａ）を示すデータとを関連付けたテーブルＢ１を示したものである。図６のテーブルＢ１は、図３に示されたイベント（Ｅ１〜Ｅ７）のそれぞれについてレコードを有し、イベントＩＤがＥ１〜Ｅ７のレコードはそれぞれ遷移前状態（Ｓｂ）と遷移後状態（Ｓａ）を含む。
【００５７】
算出手段１２５は、制御手段１２１が記憶手段１２２から読み出したテーブルＢ１に含まれるデータから、プログラムに規定された状態を抽出する。算出手段１２５は、抽出した状態（Ｓ１〜Ｓ７）のそれぞれについて、保持時間（Ｔｉ）を設定する。保持時間（Ｔｉ）は、状態（Ｓｉ）に遷移した場合に、状態（Ｓｉ）に遷移してから別の状態に遷移するまでの時間を示す指標である。この保持時間（Ｔｉ）は、記憶手段１２２に格納した設定データに基づいて定める。本実施形態においては、各状態（Ｓｉ）についての保持時間（Ｔｉ）に同一の値を設定する。なお後述するが、第２の実施形態、第３の実施形態においては、イベント通知の統計に基づいて保持時間（Ｔｉ）を更新する処理を行なう。
【００５８】
また、算出手段１２５は、プログラムに規定されたイベント（Ｅ１〜Ｅ７）のそれぞれについて、遷移前状態（Ｓｂ）に至った場合にイベント（Ｅｉ）が発生する確率（Ｐｉ）を設定する。この確率（Ｐｉ）の設定は、遷移前状態（Ｓｂ）が同一であるイベントの数（分岐数）に応じて設定すれば良い。例えば、遷移前状態（Ｓｂ）が状態（Ｓ１）であるイベントの数は、イベント（Ｅ１）とイベント（Ｅ２）の２つである（状態（Ｓ１）の分岐が２つである）ことから（図６参照）、確率（Ｐ１）と確率（Ｐ２）をそれぞれ０．５と設定することなどが考えられる。また、確率（Ｐｉ）についても保持時間（Ｔｉ）と同様に、第２の実施形態、第３の実施形態では、イベント通知の統計に基づいて確率（Ｐｉ）を更新する。
【００５９】
制御手段１２１は算出手段１２５が算出した保持時間（Ｔｉ）と確率（Ｐｉ）とに基づいて、記憶手段１２２に記憶した図６のテーブルＢ１に、各イベント（Ｅ１〜Ｅ７）に対応する確率（Ｐｉ）と、各イベント（Ｅ１〜Ｅ７）の遷移前状態（Ｓｂ）に対応する保持時間（Ｔｉ）とを追加する。図７に保持時間（Ｔｉ）と確率（Ｐｉ）とを追加した図７のテーブルＢ２を示す。
【００６０】
さらに、算出手段１２５は、図７に示したテーブルＢ２に基づいて、制御手段１２１に指定されたイベント（Ｅｉ）から制御手段１２１に指定されたイベント（Ｅｊ）への遷移についての時間（Ｔｉｊ）と確率（Ｐｉｊ）とを算出する。
【００６１】
まず、算出手段１２５は、制御手段１２１が記憶手段１２２から読み出したテーブルＢ２の情報に基づいて、イベント（Ｅｉ）からイベント（Ｅｊ）に至るまでに経過するルートを特定する。例えば、イベント（Ｅ６）からイベント（Ｅ３）に至るには、「イベント（Ｅ６）→状態（Ｓ６）→イベント（Ｅ７）→状態（Ｓ１）→イベント（Ｅ１）→（状態Ｓ２）→イベント（Ｅ３）」といったルートを経過する。この特定方法については、図２０に示すフローを用いて後述する。
【００６２】
次に、制御手段１２１は、特定したルートについて、イベント（Ｅｉ）が発生した後に発生するイベント（Ｅｋ）（イベント（Ｅｊ）を含む）のそれぞれについて、テーブルＢ２にイベント（Ｅｋ）と対応付けて記憶した保持時間（Ｔｋ）と確率（Ｐｋ）とを読み出す。算出手段１２５は、制御手段１２１が読み出した保持時間（Ｅｋ）の合計を算出して、イベント（Ｅｉ）からイベント（Ｅｊ）に遷移する時間（Ｔｉｊ）とする。さらに、算出手段１２５は、制御手段１２１が読み出した確率（Ｐｋ）の積を算出し、イベント（Ｅｉ）からイベント（Ｅｊ）に遷移する確率（Ｐｉｊ）とする。例えば、イベント（Ｅ６）からイベント（Ｅ３）に遷移する時間（Ｔ６３）はＴ６＋Ｔ１＋Ｔ２で表され、確率（Ｐ６３）はＰ７×Ｐ１×Ｐ３で表される。
【００６３】
上述の通り、算出手段１２５が算出した時間（Ｔｉｊ）と確率（Ｐｉｊ）は、制御手段１２１によって記憶手段１３に書き込まれる。記憶手段１３は、時間（Ｔｉｊ）をと確率（Ｐｉｊ）とをそれぞれ図８，図９に示すデータ形式で記憶する。図８に示すテーブルをテーブルＢ３、図９に示すテーブルをテーブルＢ４とする。
【００６４】
上記の説明の通り、解析手段１２は、通信手段１１が受信したソースコード（Ｃ１）に基づいて、ソースコード（Ｃ１）にイベント通知を管理装置１に送信するコードを追加したソースコード（Ｃ２）を生成し、ソースコード（Ｃ１）に規定されたイベント間の遷移についての予測時間（Ｔｉｊ）と確率（Ｐｉｊ）とを算出して記憶手段１３に記憶させる。
［指示手段１４の構成］
図１０は、指示手段１４の機能ブロック構成を示す。図１０において、１４１は制御手段を示し、１４２は記憶手段を示し、１４３は生成手段を示し、１４４は算出手段を示し、１４５は集計手段を示し、１４６は判定手段を示し、１４７は生成手段を示す。
【００６５】
指示手段１４は、所定のイベント（Ｅｊ）が発生するタイミングを予測し、予測に応じて処理装置に稼動指示を出力させる処理を行なう。先述した「重い処理」を発生させるイベントを所定のイベント（Ｅｊ）とすると、「重い処理」が発生するタイミングを予測できる。また、イベント（Ｅｊ）のみでなく、イベント（Ｅｊ）、イベント（Ｅｋ）など複数のイベントについても、同様の処理を行なうことで、それぞれのイベントの発生タイミング、発生確率を予想できる。複数のイベントの発生タイミング、発生確率を合算することで、単一の処理に限定せずに処理負荷を予想することが出来る。
【００６６】
制御手段１４１は、通信手段１１が受信したイベント通知に含まれるイベントＩＤ（Ｅｉ）に基づいて、そのイベント（Ｅｉ）からイベント（Ｅｊ）までの時間（Ｔｉｊ）と、イベント（Ｅｉ）からイベント（Ｅｊ）に至る確率（Ｐｉｊ）とを記憶手段１３から読み出し、通信手段１１が受信したイベント通知に含まれるセッションＩＤ（Ｚｉ）、イベント通知を受信した時刻（Ｈｉ）と関連付けて記憶手段１４２に記憶する。これらは、図１１に示すテーブルＢ５の形式で記憶手段１４２に記憶される。
【００６７】
記憶手段１４２に記憶する際に、同じセッションＩＤ（Ｚｉ）についてのデータが記憶されていた場合には、記憶手段１４２に記憶されていたセッションＩＤ（Ｚｉ）についてのデータを、予測時間（Ｔｉｊ）、確率（Ｐｉｊ）及び時刻（Ｈｉ）に更新するようにしても良い。また、イベント通知がセッションの切断を示す場合には、イベント通知に含まれるセッションＩＤについてのデータを記憶手段１４２から消去するようにしても良い。もしくは、記憶手段１４２に記憶されるテーブルＢ５の各レコードにフラグを設けておき、各レコードを有効とするか否かをフラグのＯＮ／ＯＦＦにより制御するように構成しても良い。例えば、同じセッションＩＤ（Ｚｉ）についてのデータを受信した場合に、既に格納してあったレコードのフラグをＯＦＦにする制御を行っても良いし、セッションの切断を示すデータを受信した場合に、そのセッションＩＤを含むレコードのフラグをＯＦＦにする制御を行っても良い。
【００６８】
図１１に示すテーブルＢ５について説明する。図１１に示すテーブルＢ５は、セッションＩＤ（Ｚｋ）、確率（Ｐｉｊ）、時間（Ｔｉｊ）、受信時刻（Ｈｋ）、時間範囲ＩＤ（Ｒｓ）及びフラグについてのフィールドを設けている。それぞれのレコードは、セッションＩＤ（Ｚｋ）で識別されるセッション（Ｚｋ）についてのデータが格納されている。それぞれのレコードは、最新のイベント通知に基づいて、確率（Ｐｉｊ）、時間（Ｔｉｊ）、受信時刻（Ｈｋ）及びフラグが設定される。
【００６９】
ちなみにテーブルＢ５の時間範囲ＩＤ（Ｒｓ）のフィールドには、時間（Ｔｉｊ）と受信時刻（Ｈｋ）とに基づいて図１２のテーブルＢ６に示す情報のうちのいずれかが格納される。この時間範囲（Ｒｓ）の選択は、生成手段１４３と算出手段１４４とにより行われる。このテーブルＢ６は、記憶手段１４２に予め記憶しておく。
【００７０】
例えば、スタンバイ状態にある処理装置が稼働状態になるまでに要する時間が３０秒であるとした場合に時間範囲を図１２のテーブルＢ６のように区切ることが考えられる。その場合、管理装置１が行なう指示を、時間範囲（Ｒ３）に予想される処理量が多い場合にはスタンバイ状態の処理装置を稼動させる指示とし、時間範囲（Ｒ３）に予想される処理量が少なく、時間範囲（Ｒ４）が多い場合には、３０秒待機させてから稼動指示をスタンバイ状態にある処理装置を稼動させる指示とすることなどが考えられる。
【００７１】
生成手段１４３は、所定時間経過するたびに所定時間経過した旨を示すデータを制御手段１４１に出力する。制御手段１４１は、生成手段１４３から取得したデータに基づいて集計処理を開始する。集計処理を開始した時刻を時刻（Ｈ０）とする。
【００７２】
算出手段１４４は、記憶手段１４２に記憶されたテーブルＢ５の各レコードについて、時刻（Ｈ０）と受信時刻（Ｈｋ）との差（Ｈ０−Ｈｋ）を算出し、さらに、予測時間（Ｔｉｊ）と算出した差との差（Ｔｉｊ−（Ｈ０−Ｈｋ））を算出する。制御手段１４１は、それぞれのレコードについて算出した差（Ｔｉｊ−（Ｈ０−Ｈｋ））を含む時間範囲を示す時間範囲ＩＤ（Ｒｓ）をテーブルＢ６から読み出し、時間範囲ＩＤフィールドに格納する。
【００７３】
集計手段１４５は、テーブルＢ５を参照し、Ｒ１〜Ｒ５までの時間範囲ＩＤ（Ｒｓ）ごとに、時間範囲ＩＤ（Ｒｓ）が一致するレコードについて確率（Ｐｉｊ）を読み出し、読み出した確率（Ｐｉｊ）の合計（Ｐｓｕｍｓ）を算出する。
【００７４】
例として、図１１に示したテーブルＢ５について、集計手段１４５が処理を行なった場合を説明する。まず、テーブルＢ５の時間範囲ＩＤについてのフィールドを参照し、時間範囲ＩＤがＲ１であるレコードを抽出する。図１１に示したテーブルＢ５の場合、まずセッションＩＤがＺ１であるレコードが抽出される。次に、セッションＩＤがＺ１のレコードの確率のフィールドからＰ５ｊを示すデータが読み出される。図１１に示す限りでは、時間範囲ＩＤがＲ１であるレコードは、セッションＩＤがＺ１であるレコードのみであるので、読み出した確率（Ｐｉｊ）の合計値（Ｐｓｕｍ１）は、Ｐ５ｊとなる。
【００７５】
次に、集計手段１４５はテーブルＢ５で時間範囲ＩＤがＲ２であるレコードについての確率（Ｐｉｊ）の合計値（Ｐｓｕｍ２）を算出する。その場合、時間範囲ＩＤがＲ２であるレコードとして、セッションＩＤがＺ３のレコードとＺ５のレコードが該当し、セッションＩＤがＺ３のレコードから確率（Ｐ１ｊ）を読出し、セッションＩＤがＺ５のレコードから確率（Ｐ３ｊ）を読み出す。図１１に示す限りでは、読み出した確率（Ｐｉｊ）の合計値（Ｐｓｕｍ）はＰ１ｊ＋Ｐ３ｊとなる。Ｒ３〜Ｒ５についても同様に処理する。算出した合計値（Ｐｓｕｍｓ）は、それぞれ対応する時間範囲ＩＤ（Ｒｓ）と対応付けて、図１３に示すテーブルＢ７の形式で記憶手段１４２に記憶される。
【００７６】
判定手段１４６は、記憶手段１４２に記憶されたテーブルＢ７を参照し、各時間範囲（Ｒｓ）についての合計値（Ｐｓｕｍｓ）が、稼働中の処理装置の処理能力を超えるかを判定する。判定手段１４６は、処理能力を超えると判定した場合、処理能力を超える時間範囲についての時間範囲ＩＤ（Ｒｓ）を読み出す。このとき、所定のイベント（Ｅｊ）を複数設定していた場合には、それぞれについての合計値（Ｐｓｕｍｓ）を合算して判定する。
【００７７】
生成手段１４７は、判定手段１４６が読み出した時間範囲ＩＤ（Ｒｓ）に基づいて、処理装置２ａ〜２ｅに稼動を指示するデータを生成する。
【００７８】
例えば、それぞれの処理装置２ａ〜２ｅの起動に起動指示を生成してから３０秒かかるとして、時間範囲Ｒ１，Ｒ２において処理能力を超えると判断された場合には、処理能力が足りない事態になりうるので、生成手段１４７は、稼動していない処理装置に対しての稼動指示を生成する。また、時間範囲Ｒ３において処理能力を超えると判断された場合には、時刻（Ｈ０）から３０秒経過後に、稼働中の処理装置の処理能力が不足することが予測されるので、生成手段１４７は、稼動していない処理装置に対しての稼動指示を生成する。
【００７９】
時間範囲Ｒ４又はＲ５において処理能力を超えると判断された場合には、時刻（Ｈ０）から６０秒又は９０秒経過してから稼動中の処理装置の処理能力が不足することが予想される。そのため、生成手段１４７は、時間範囲Ｒ４において処理能力を超えると判断された場合には、３０秒経過してから稼動していない処理装置に対しての稼動指示を生成し、時間範囲Ｒ５において処理能力を超えると判断された場合には、６０秒経過してから稼動していない処理装置に対しての稼動指示を生成する。
【００８０】
制御手段１４１は、生成手段１４７が生成した稼動指示を通信手段に送信させる処理を行なう。
【００８１】
指示手段１４が上述の処理を行なうことにより、管理装置１は、時刻（Ｈ０）の時点で処理装置２ａ〜２ｅに対して行なわれているアクセスに基づいて時刻（Ｈ０）から所定時間経過後の処理負荷を予測し、処理装置の起動時間を見込んで処理装置を追加稼動させることができる。
また、例えば、上述の管理装置１の処理は確率を用いずに実行されても良い。その場合は、イベント通知の受信時刻から時間値経過した時点で、所定の処理が実行されることとすれば良い。確率を用いて予測を行うことにより、イベント通知の後に必ず実行されるわけでないことを考慮できるため、処理量を過分に予測することを低減する効果が得られる。
【００８２】
図１４は、管理装置１の装置構成の一例を示す。１ａはプロセッサを示し、１ｂはメモリを示し、１ｃは通信インターフェースを示し、１ｄは記憶装置を示し、１ｅはバスを示す。
【００８３】
プロセッサ１としてＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などを含み、メモリ１ｂとしてＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを含み、通信インターフェースとしてＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）などを含み、記憶装置１ｄとしてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＣＤやＤＶＤなどのディスクについてのディスクドライブなどを含む。
【００８４】
プロセッサ１ａは、管理装置１全体の制御を行なう。メモリ１ｂに一時的に格納されたプログラムを読み出し、読み出したプログラムに従って演算処理を行なう。メモリ１ｂは、ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）やアプリケーションプログラムの少なくとも一部を一時的に格納し、プロセッサ１ａが処理に用いるデータを格納する。通信インターフェース１ｃは、他の装置との通信処理を行なう。記憶装置１ｄは、ＯＳやアプリケーションプログラムを格納し、プロセッサの制御に応じてデータを記憶する。
【００８５】
図４、図５、図１０に示した機能ブロックの処理は、それぞれ図１４に示す装置構成によっても実現可能である。
【００８６】
通信手段１１の処理は、通信インターフェース１ｃがプロセッサ１ａの制御に応じた処理を行なうことで実現される。
【００８７】
解析手段１２に含まれる各機能ブロックの処理は、以下のように実現される。
【００８８】
制御手段１２１の処理は、プロセッサ１ａが、メモリ１ｂ又は記憶装置１ｄに記憶されたデータについて、メモリ１ｂから読み出したプログラムに従って、読み出し・書込みの制御を行なうことにより実現される。記憶手段１２２の処理は、メモリ１ｂ又は記憶装置１ｄがプロセッサ１ａの制御に応じてデータを書込み・読出しを行なうことにより実現される。抽出手段１２３の処理は、プロセッサ１ａが、メモリ１ｂ又は記憶装置１ｄから読み出したデータに、メモリ１ｂ又は記憶装置１ｄから読み出したプログラムに応じた処理を行なうことにより実現される。生成手段１２４の処理は、プロセッサ１ａがメモリ１ｂ又は記憶装置１ｄからデータを読み出すことにより実現される。算出手段１２５の処理は、プロセッサ１ａがメモリ１ｂ又は記憶装置１ｄから読み出したデータ（イベントＩＤなど）に応じてメモリ１ｂ又は記憶装置１ｄからデータ（設定データなど）を読み出し、読み出したデータにプログラムに応じた演算処理を行なうことにより実現される。
【００８９】
記憶手段１３の処理は、記憶装置１ｄ又はメモリ１ｂがプロセッサの指示に応じてデータを書込み・読出しを行なうことにより実現される。
【００９０】
指示手段１４に含まれる各機能ブロックの処理は、以下のように実現される。
【００９１】
制御手段１４１の処理は、プロセッサ１ａが、メモリ１ｂ又は記憶装置１ｄに記憶されたデータについて、メモリ１ｂから読み出したプログラムに従った処理を行なうことにより実現される。記憶手段１４２の処理は、メモリ１ｂ又は記憶装置１ｄが、プロセッサ１ａの指示に応じてデータを記憶することにより実現される。生成手段１４３の処理は、プロセッサ１ａが、プロセッサ１ａに含まれるクロックに基づいて所定時間を判断することにより実現される。算出手段１４４の処理は、プロセッサ１ａが、メモリ１ｂ又は記憶装置１ｄからデータを読み出し、読み出したデータにプログラムに従った演算処理を行なうことにより実現される。集計手段１４５の処理は、プロセッサ１ａが、メモリ１ｂ又は記憶装置１ｄからデータを読み出し、読み出したデータにプログラムに従った演算処理を行なうことにより実現される。判定手段１４６の処理は、プロセッサ１ａが、メモリ１ｂ又は記憶装置１ｄからデータを読み出し、読み出したデータに基づいてメモリ１ｂ又は記憶装置１ｄからさらにデータを読み出すことにより実現される。生成手段１４７の処理は、メモリ１ｂ又は記憶装置１ｄから読み出したデータと、プロセッサ１ａに含まれるクロックに基づいた時刻情報とに基づいてデータを生成することにより実現される。
［管理装置１の処理］
図１６は、ソースコード（Ｃ１）を解析し、イベント発生を通知する処理を規定したコードを追加する処理のフローを示す。
【００９２】
管理装置１に開始指示が入力される（Ｓ１０１）と、制御手段１２１が、通信手段１１にソースコード（Ｃ１）の取得要求を処理装置２ａ〜２ｅのいずれかに送信させる（Ｓ１０２）。通信手段１１がソースコード（Ｃ１）を受信すると、制御手段１２１は受信したソースコード（Ｃ１）を記憶手段１２２に格納する（Ｓ１０３）。
【００９３】
まず、制御手段１２１は、ソースコード（Ｃ１）からコードを読み出す単位を指定する番号ｉを０に設定する（Ｓ１０４）。このコードを読み出す単位は、ソースコード（Ｃ１）の１行ごとでも良いし、ソースコード（Ｃ１）に規定されたルーチン単位でも良い。次に、制御手段１２１は、番号ｉに１加えて（Ｓ１０５）、その番号ｉに指定される読み出し単位に、読み出すべきコードがあるかを確認する（Ｓ１０６）。読み出すコードがない場合（Ｓ１０６：ＮＯ）は、確率値（Ｐｉｊ）と時間値（Ｔｉｊ）を算出する処理が実行される（Ｓ１１３）。読み出すコードがある場合（Ｓ１０６：ＹＥＳ）は、制御手段１２１は、記憶手段１２２から番号ｉで指定されるコードを読み出す（Ｓ１０７）。
【００９４】
抽出手段１２３は、制御手段１２１が読み出したコードがイベントの発生を検知するコードであるかを判断する（Ｓ１０８）。このＳ１０８は、読み出したコードが外部アクセスに応じて処理を行なうことが規定されたコードであるかどうかによって判断される。読み出したコードがイベントを検知するコードでない場合（Ｓ１０８：ＮＯ）は、Ｓ１０５の処理が実行される。
【００９５】
読み出したコードがイベントを検知するコードである場合（Ｓ１０８：ＹＥＳ）に、抽出手段１２３は、検知されるイベントを他のイベントと識別可能なイベントＩＤを生成する（Ｓ１０９）。Ｓ１０９後に、制御手段１２１は、抽出したイベントに関してソースコード（Ｃ１）を解析するフローを実行する（Ｓ１１０）。
【００９６】
次に、生成手段１２４は、イベントを検知するコードが実行された場合にそのイベントを示すイベントＩＤを管理装置１に通知させるコードを生成する（Ｓ１１１）。制御手段１２１は、生成手段１２４が生成したコードを、記憶手段１２２に格納されているソースコード（Ｃ１）に追加する処理を行なう（Ｓ１１２）。Ｓ１１２の実行後、Ｓ１０５に戻る。
【００９７】
図１７に、Ｓ１０８で抽出したイベントに関してソースコード（Ｃ１）を解析するフローを示す。
【００９８】
Ｓ１１０が実行される（Ｓ２０１）と、制御手段１２１は、Ｓ１０９で生成したイベントＩＤに示されるイベントを検知した後に実行される処理を規定したコードを、記憶手段１２２に格納したソースコード（Ｃ１）から読み出す（Ｓ２０２）。
【００９９】
制御手段１２１は、Ｓ２０２で読み出したコードから、イベント発生後に実行される処理によって遷移する前の状態（Ｓｂ）及び遷移した後の状態（Ｓａ）のそれぞれを示す情報を抽出する（Ｓ２０３）。さらに制御手段１２１は、Ｓ２０３で抽出した遷移前状態（Ｓｂ）及び遷移後状態（Ｓａ）を示す情報と、イベントＩＤとを含むレコードを記憶手段１２２のテーブルＢ１に追加する（Ｓ２０４）。Ｓ２０４が実行されると、コードの解析フローは終了となりＳ１１１が実行される（Ｓ２０５）。
【０１００】
図１８、図１９に確率値（Ｐｉｊ）と時間値（Ｔｉｊ）を算出するフローを示す。
【０１０１】
Ｓ１１３が実行される（Ｓ３０１）と、算出手段１２５は、Ｓ２０３で抽出された遷移前状態（Ｓｂ）と遷移後状態（Ｓａ）のうちの全種類の状態（Ｓｉ：ｉ＝１〜ｎ）に対して保持時間（Ｔｉ）を設定する（Ｓ３０２）。抽出された状態の数が全部でｎであるとした場合、１〜ｎまでの各整数ｉに対応する状態（Ｓｉ）について保持時間（Ｔｉ）を設定する。この保持時間（Ｔｉ）は、前述の通り、状態（Ｓｉ）に遷移してから、別の状態（Ｓ）に遷移するまでの時間を示す。
【０１０２】
Ｓ３０２が実行されると、制御手段１２１は、記憶手段１２２に格納されたテーブルＢ１の各レコードに、遷移前状態（Ｓｂ）に対応する保持時間（Ｔｉ）を追加する（Ｓ３０３）。
【０１０３】
また、算出手段１２５は、Ｓ２０３で抽出された状態（Ｓｉ）のそれぞれについて、それぞれの状態（Ｓｉ）が記憶手段１２２に格納されたテーブルＢ１に遷移前状態（Ｓｂ）とされている数に応じて、確率（Ｐｉ）を設定する（Ｓ３０４）。Ｓ３０４で設定する確率（Ｐｉ）は、管理者の指示に応じて重み付けされたものでも良い。
【０１０４】
Ｓ３０４が実行されると、制御手段１２１は、記憶手段１２２に格納されたテーブルＢ２の各レコードに、遷移前状態（Ｓｂ）に対応する確率（Ｐｉ）を追加する（Ｓ３０５）。テーブルＢ１に、Ｓ３０３、Ｓ３０５で保持時間（Ｔｉ）、確率（Ｐｉ）を追加したテーブルが、図７に示すテーブルＢ２である。このＳ３０２及びＳ３０３と、Ｓ３０４及びＳ３０５とは順番を入れ替えても構わない。
【０１０５】
Ｓ３０５が実行されると、イベント間（イベント（Ｅｉ）〜イベント（Ｅｊ））の時間値（Ｔｉｊ）及び確率値（Ｐｉｊ）を算出するフローが実行される（Ｓ３０６，Ｓ４０１）。抽出されたイベントの数（テーブルＢ１、テーブルＢ２のレコードの数）が全部でｍであるとした場合、解析手段１２は、１〜ｍの整数ｉ，ｊについて、イベントＥｉが発生してからイベントＥｊが発生するまでの時間を予測した時間値（Ｔｉｊ）と、イベント（Ｅｉ）が発生して後にイベント（Ｅｊ）が発生する確率を予想した確率値（Ｐｉｊ）を算出する。
【０１０６】
制御手段１２１は、イベント（Ｅｉ）を示す番号ｉを０に設定し（Ｓ４０２）、番号ｉに１を加える（Ｓ４０３）。番号ｉがｍ以下であるかを判断し（Ｓ４０４）、番号ｉがよりも大きい場合（Ｓ４０４：ＮＯ）、このフローは終了となる（Ｓ４１３）。
【０１０７】
番号ｉがｍ以下である場合（Ｓ４０４：ＹＥＳ）、制御手段１２１は、番号ｊを０に設定し（Ｓ４０５）、番号ｊに１を加える（Ｓ４０６）。制御手段１２１は、番号ｊがｍ以下であるかを判断し（Ｓ４０７）、番号ｊがｍよりも大きい場合（Ｓ４０７：ＮＯ）、Ｓ４０３の処理が実行される。
【０１０８】
番号ｊがｍ以下である場合（Ｓ４０７：ＹＥＳ）、制御手段１２１は、番号ｉと番号ｊが異なるか判断する（Ｓ４０８）。番号ｉと番号ｊが同じである場合（Ｓ４０８：ＮＯ）、Ｓ４０６の処理が実行される。
【０１０９】
番号ｉと番号ｊが異なる場合（Ｓ４０８：ＹＥＳ）、イベント（Ｅｉ）が発生してからイベント（Ｅｊ）が発生するまでに、発生するイベント（Ｅ）を抽出するフローを実行させる（Ｓ４０９）。イベント（Ｅｉ）が発生してからイベント（Ｅｊ）が発生するまでに発生するイベントのパターンが複数ある場合は、それぞれのパターンについて経過するイベントを抽出する。抽出されたイベントのパターンそれぞれをルート情報とする。
【０１１０】
制御手段１２１は、Ｓ４０９で抽出したルート情報のそれぞれについて、イベント（Ｅｉ）からイベント（Ｅｊ）に至るまでに経過するイベント（Ｅ）のそれぞれに対応する保持時間（Ｔ）を読み出し、算出手段１２５は、読み出した保持時間（Ｔ）の総和をＳ４０９で抽出したルート情報ごとに算出し、それぞれのルート情報についての総和の平均をＴｉｊとする（Ｓ４１０）。
【０１１１】
また、制御手段１２１は、Ｓ４０９で抽出したルート情報のそれぞれについてイベント（Ｅｉ）からイベント（Ｅｊ）に至るまでに経過するイベント（Ｅ）のそれぞれに対応する確率（Ｐ）をテーブルＢ１から読み出し、算出手段１２５は、読み出した確率の総乗をルート情報ごとに算出し、それぞれのルート情報についての総乗の和をＰｉｊとする（Ｓ４１１）。Ｓ４１０とＳ４１１は順序を入れ替えて実行しても構わない。
【０１１２】
制御手段１２１は、Ｓ４１０で算出した時間値Ｔｉｊを記憶手段１３のテーブルＢ４に格納し、Ｓ４１１で算出した確率値Ｐｉｊを記憶手段１３のテーブルＢ３に格納する（Ｓ４１２）。Ｓ４１２のフローが実行されると、Ｓ４０６のフローに戻る。
【０１１３】
図２０に、イベント（Ｅｉ）が発生してからイベント（Ｅｊ）が発生するまでに、経過するイベント（Ｅ）を抽出するフローを示す。
【０１１４】
Ｓ４０９が実行される（Ｓ５０１）と、制御手段１２１は、イベントＩＤ（Ｅｉ）を、イベント（Ｅｉ）〜イベントＩＤ（Ｅｊ）間のルート情報の第１の経過ポイントとして、記憶手段１２２に格納する（Ｓ５０３）。
【０１１５】
さらに、制御手段１２１は、記憶手段１２２のテーブルＢ１のイベント（Ｅｊ）を含むレコードに格納された遷移前状態（Ｓｂ）を示す情報を取得し、この情報を（Ｓｙ）とする（Ｓ５０４）。
【０１１６】
次に、制御手段１２１は、記憶手段１２２に格納されたルート情報で確定していないものがあるかを判断する（Ｓ５０５）。Ｓ５０５で確定していないルート情報がないと判断した場合（Ｓ５０５：ＮＯ）、このフローは終了される（Ｓ５１３）。
【０１１７】
Ｓ５０５で確定していないルート情報がある場合（Ｓ５０５：ＹＥＳ）、制御手段１２１は、確定していないルート情報のいずれかを選択し、選択したルート情報のうち、末尾の経過ポイントを示すイベントＩＤを読み出す（Ｓ５０６）。読み出したイベントＩＤを（Ｅｘ）とする。
【０１１８】
制御手段１２１は、記憶手段１２２のテーブルＢ１において、Ｓ５０６で読み出したイベントＩＤ（Ｅｘ）と同一のレコードに含まれる遷移後状態（Ｓａ）を示す情報を読み出し、読み出した情報を（Ｓｘ）とする（Ｓ５０７）。
【０１１９】
次に、制御手段１２１は、Ｓ５０７で読み出した情報（Ｓｘ）と、Ｓ５０４で取得した情報（Ｓｙ）が異なるかどうかを判断する（Ｓ５０８）。情報（Ｓｘ）と情報（Ｓｙ）が同じであるとした場合（Ｓ５０８：ＮＯ）、イベント（Ｅｊ）をルート情報に追加する（Ｓ５１１）。このルート情報は、イベント（Ｅｉ）からイベント（Ｅｊ）に至るまでに発生するイベントを列挙できたとして、そのルート情報を確定する（Ｓ５１２）。Ｓ５１２が実行されると、Ｓ５０５の処理が再度実行される。
【０１２０】
情報（Ｓｘ）と情報（Ｓｙ）が異なる場合（Ｓ５０８：ＹＥＳ）、制御手段１２１は、記憶手段１２２に格納されたテーブルＢ１を参照し、情報（Ｓｘ）と同じ情報を遷移前状態（Ｓｂ）とするレコードのイベントＩＤを抽出する（Ｓ５０９）。
【０１２１】
抽出したイベントＩＤ（Ｅ）を、Ｓ５０５で選択したルート情報の末尾に追加する（Ｓ５１０）。制御手段１２１は、Ｓ５０９で抽出したイベントＩＤが複数ある場合、Ｓ５０５で選択したルート情報を複製し、それぞれのルート情報の末尾に抽出したイベントＩＤのそれぞれを追加する。
【０１２２】
図２１に、指示手段１４の処理を実行させるフローを示す。フローが開始すると、制御手段１４１は、所定時間経過したか（Ｓ６０２）と、通知データを受信したか（Ｓ６０３）の判定を行なう。制御手段１４１は、所定時間経過したことを検知した場合（Ｓ６０２：ＹＥＳ）は、所定時間を計測する計測タイマをクリアし、再度所定時間の計測を開始する（Ｓ６０５）。Ｓ６０５の処理の後、統計・指示フロー（図２３を用いて後述する）が開始される（Ｓ６０６）。
【０１２３】
制御手段１４１は、通知テータの受信を検知した場合（Ｓ６０３：ＹＥＳ）、蓄積フロー（図２２を用いて後述する）を開始する（Ｓ６０４）。
【０１２４】
図２２に、処理装置２ａ〜２ｅから受信する通知データを蓄積するフローを示す。
【０１２５】
Ｓ６０４が実行される（Ｓ７０１）と、制御手段１４１は、受信時刻（Ｈｋ）を取得する（Ｓ７０２）。また、制御手段１４１は、通信手段１１が受信したデータから、イベントＩＤ及びセッションＩＤを取得する（Ｓ７０３）。さらに制御手段１４１は、記憶手段１３に格納されたテーブルＢ３及びテーブルＢ４を参照し、取得したイベントＩＤ（Ｅｉ）に対応する時間値（Ｔｉｊ）及び確率値（Ｐｉｊ）を読み出す（Ｓ７０４）。
【０１２６】
Ｓ７０４が実行されると、制御手段１４１は、記憶手段１４２に格納されたテーブルＢ５を参照し、Ｓ７０３で取得したセッションＩＤを含むレコードが存在するかを判断する（Ｓ７０５）。テーブルＢ５に、Ｓ７０３で取得したセッションＩＤを含むレコードが存在しない場合（Ｓ７０５：ＮＯ）、Ｓ７０４で取得した時間値（Ｔｉｊ）及び確率値（Ｐｉｊ）、並びにＳ７０３で取得したセッションＩＤ及びイベントＩＤを含むレコードを、テーブルＢ５に追加する（Ｓ７０８）。Ｓ７０８の処理が実行されると、Ｓ６０２の処理が実行される。
【０１２７】
テーブルＢ５に、Ｓ７０３で取得したセッションＩＤを含むレコードが存在する場合（Ｓ７０５：ＮＯ）、取得したセッションＩＤを含むレコードを、Ｓ７０４で取得した時間値（Ｔｉｊ）及び確率値（Ｐｉｊ）、並びにＳ７０３で取得したイベントＩＤを含むレコードに更新する（Ｓ７０６）。Ｓ７０６の処理が実行されると、Ｓ６０２の処理が実行される。
【０１２８】
Ｓ７０５、Ｓ７０６、Ｓ７０７の処理は、付加的なフローであり、これにより統計の精度の向上を図ることができる。
【０１２９】
Ｓ６０６が実行される（Ｓ８０１）と、制御手段１４１は、その時点における時刻（Ｈ０）を示す情報を取得する（Ｓ８０２）。また、記憶手段１４２に格納されるテーブルＢ５のレコードの数は、時刻（Ｈ０）においてｓであるとする。
【０１３０】
次に、制御手段１４１は、記憶手段１４２のテーブルＢ５のそれぞれのレコードについて（１〜ｓの整数ｒについて）、時間値（Ｔｉｊ）と受信時刻（Ｈｋ）を読み出す（Ｓ８０６）。算出手段１４４は、制御手段１４１が読み出した時間値（Ｔｉｊ）と、受信時刻（Ｈｋ）と、時刻（Ｈ０）とに基づいて、Ｕｒ＝Ｔｉｊ−（Ｈ０−Ｈｋ）という数式を満たす時間値（Ｕｒ）に相当する値を算出する（Ｓ８０７）。
【０１３１】
制御手段１４１は、記憶手段１４２に格納されたテーブルＢ６に示す時間範囲を参照して、算出した時間値（Ｕｓ）を含む時間範囲の時間範囲ＩＤ（Ｒ）を読み出す（Ｓ８０８）。制御手段１４１は、読み出した時間範囲（Ｒ）をテーブルＢ５の各レコードに格納する（Ｓ８０９）。Ｓ８０４からＳ８０９までのフローが１〜ｓの整数ｒについて繰り返し実行される。
【０１３２】
次に、制御手段１４２は、記憶手段１４２に格納されたテーブルＢ５の各レコードについて（１〜ｓの整数ｒについて）、確率値（Ｐｉｊ）と時間範囲（Ｒｑ）を読み出す（Ｓ８１３）。集計手段１４５は、制御手段１４１が読み出した時間範囲（Ｒｑ）に対応する統計値（Ｐｓｕｍｑ）に、制御手段１４１が読み出した確率値（Ｐｉｊ）を加える処理を行なう（ＳＰｓｕｍｑ）。Ｓ８１１からＳ８１４までのフローが、１〜ｓの整数ｒについて繰り返し実行される。
【０１３３】
次に、整数ｒを再度０とし（Ｓ８１０）、整数ｒに１を加え（Ｓ８１１）、整数ｒと整数ｓとの大小を比較し（Ｓ８１２）、整数ｒが整数ｓよりも大きい場合（Ｓ８１２：ＮＯ）は、Ｓ８１５の処理が実行される。
【０１３４】
整数ｒが整数ｓ以下の数である場合（Ｓ８１２：ＹＥＳ）は、制御手段１２１が、記憶手段１４２に格納されたテーブルＢ５のｒ番目のレコードから、確率値（Ｐｉｊ）と時間範囲ＩＤ（Ｒｑ）を読み出す（Ｓ８１３）。読み出した時間範囲ＩＤ（Ｒｑ）に対応する合計値（Ｐｓｕｍｑ）に読み出した確率値（Ｐｉｊ）を加算する（Ｓ８１４）。
【０１３５】
次に、判定手段１４６は、１〜ｐの整数ｑについての合計値（Ｐｓｕｍｑ）と、処理装置２ａ〜２ｅの稼働状況とに応じて、処理装置２ａ〜２ｅへの指示内容を決定し（Ｓ８１５）、生成手段１４７は、判定手段１４６が決定した指示内容に応じて、処理装置に送信する指示データを生成する（Ｓ８１６）。Ｓ８１６が実行されると、Ｓ６０２の処理が実行される（Ｓ８１７）。
【０１３６】
Ｓ８１５で判定手段１４６が実行する判断の例を、図２４を用いて説明する。図２４において、１台の処理装置で処理可能な処理量をＭとする。
【０１３７】
例えば、処理装置２ａ〜２ｅのうち、時刻（Ｈ０）の時点で２台の処理装置が稼働中であり、２台の処理装置が稼動状態になるまでに３０秒かかるスタンバイ状態であり、１台の処理装置が稼動状態になるまでに６０秒かかる休止状態であるとする。
【０１３８】
その場合、図２３に示す統計・指示フローによって算出した合計値（Ｐｓｕｍ）が図２４に示す通りだとすると、例えば、３０〜６０秒後に３台以上の処理装置が必要とされることが予想されるため、スタンバイ状態の２台の処理装置への稼動指示を生成するなどの対応が考えられる。さらに、６０から９０秒後に４台以上の処理装置が必要とされることが見込まれるため、スタンバイ状態の処理装置への稼動指示とほぼ同じタイミングで休止状態の処理装置への稼動指示を生成するなどの対応が考えられる。
【０１３９】
上述の合計値（Ｐｓｕｍ）に基づく判断の説明はあくまで例示であり、処理量の見込みに応じて他の判断を行いうる。
【０１４０】
上述の第１の実施形態によれば、処理装置が実行するソースコード（Ｃ１）に規定された内容と、処理装置から受信するイベント通知とに基づいて、処理量を見込むことができる。
［第２の実施形態］
第２の実施形態では、テスト運用期間を設け、テスト運用期間に管理装置１が受信したイベント通知を集計した結果に基づいて、イベント間の時間値（Ｔｉｊ）と確率（Ｐｉｊ）とを定める。
【０１４１】
第２の実施形態の解析手段１２と記憶手段１３とのそれぞれは、第１の実施形態と同様の機能ブロックであれば良い。
【０１４２】
図２５に、第２の実施形態における指示手段１４の機能ブロックを示す。第２の実施形態における指示手段１４は、第１の実施形態の指示手段１４に、集計手段１４８を加えた構成である。集計手段１４８は、イベント通知を集計し、集計結果に基づいてテーブルＢ２を作成し、記憶手段１２２に格納する。イベント通知の集計処理を図２６に示すテーブルＢ１０と、図２７に示すフローを用いて説明する。
【０１４３】
記憶手段１４２は、図２６に示すテーブルＢ１０をさらに格納する。テーブルＢ１０は、イベントＩＤ（Ｅｉ）毎にレコードを有し、イベントＩＤ、遷移前状態（Ｓｂ）、遷移後状態（Ｓａ）、該当回数、発生回数、時間累積値、平均時間、平均確率のフィールドを有する。図２５のテーブルＢ１０の該当回数、発生回数、時間累積値、平均時間、平均確率のフィールドに格納されている値は、テスト期間におけるイベント通知の集計結果の例である。
【０１４４】
イベントＩＤ、遷移前状態（Ｓｂ）、遷移後状態（Ｓａ）のフィールドについては、図７のＢ２と同じ内容の情報を格納する。該当回数は、テスト期間内に、同じレコードに格納されている遷移前状態（Ｓｂ）に至った回数を示す。発生回数は、テスト期間内に、同じレコードに格納されているイベントＩＤが示すイベントが発生した回数を示す。時間累積値は、各イベントが発生するまでに、そのイベントに対応する遷移前状態（Ｓｂ）が保持された時間をイベント発生のたびに累積した値を示す。
【０１４５】
時間累積値をイベント発生回数で割った値を平均時間とし、イベントが発生するまでに遷移前状態（Ｓｂ）が保持された期間の平均を示す指標として用いる。さらに、イベント発生回数をＳｂ該当回数で割った値を平均確率とし、遷移前状態（Ｓｂ）からイベントが発生する確率として用いる。
【０１４６】
図２７は、図２６に示すテーブルＢ１０に基づいて平均時間と平均確率を算出するフローを示す。平均時間と平均確率は、図２２のフローでＳ７０５の処理とＳ７０６の処理との間に図２７に示すフローを実行することにより、算出される。
【０１４７】
まず、テスト運用を開始する前に、テーブルＢ１０のイベントＩＤ、遷移前状態（Ｓｂ）、遷移後状態（Ｓａ）のフィールドに、テーブルＢ２の情報をコピーしておく。さらに、各レコードの該当回数のフィールドに１を格納しておく。
【０１４８】
Ｓ７０５でＹＥＳと判定された場合（Ｓ９０１）、制御手段１４１は、イベント通知に含まれるセッションＩＤと同じセッションＩＤを含むレコードをテーブルＢ５から読出し、読み出したテーブルから受信時刻（Ｈｋ）を抽出する（Ｓ９０２）。
【０１４９】
次に、集計手段１４８は、イベント通知に含まれる受信時刻と、Ｓ９０２で抽出した受信時刻（Ｈｋ）との差を算出する（Ｓ９０３）。集計手段１４８は、Ｓ９０３で算出した差を、テーブルＢ１０に含まれるレコードであって、イベント通知と同じＩＤを含むレコードの累積時間値に加算する（Ｓ９０４）。
【０１５０】
さらに、集計手段１４８は、テーブルＢ１０のレコードのうち、イベント通知とイベントＩＤが一致するレコード（Ｓ９０４で更新したレコード）の発生回数フィールドに１加算する（Ｓ９０５）。Ｓ９０５の処理後、集計手段１４８は、イベント通知とイベントＩＤが一致するレコードの発生回数を、そのレコードの該当回数で割り算し、算出した値を平均確率フィールドに格納する（Ｓ９０６）。さらに、集計手段１４８は、そのレコードの累積時間値を発生回数で割り算し、算出した値を平均時間のフィールドに格納する（Ｓ９０７）。
【０１５１】
集計手段１４８は、Ｓ９０４〜Ｓ９０７で値を更新したレコードの遷移後状態（Ｓａ）を読み出し、読み出した状態を遷移前状態（Ｓｂ）として含むレコードをテーブルＢ１０から読み出す。集計手段１４８は、読み出したレコードのそれぞれの該当回数フィールドの値に１ずつ加算する（Ｓ９０８）。Ｓ９０８の処理後、Ｓ７０６の処理が実行される（Ｓ９０９）。
【０１５２】
管理装置１がテスト運用期間中に上述のフローを実行した後、集計手段１４８は、テーブルＢ１０の各レコードに格納した平均時間をテーブルＢ２の保持時間（Ｔｉ）に格納し、テーブルＢ１０の各レコードに格納した平均確率をテーブルＢ２の確率（Ｐｉ）に格納する。その後は、解析手段１２が、テーブルＢ２に格納した保持時間（Ｔｉ）と確率（Ｐｉ）とに基づいて、第１の実施形態と同様の手順で時間値（Ｔｉｊ）と確率値（Ｐｉｊ）を算出する。
【０１５３】
第２の実施形態のように、プログラムを解析した結果のみでなく、運用時のイベント通知の統計を利用することで、処理装置群にアクセスするクライアントの傾向を、処理量の予測に反映させることが出来る。
【０１５４】
この集計手段１４８が行う処理は、図１４に示す装置によって実現可能である。プロセッサ１ａが、メモリ１ｂ又は記憶装置１ｄにテーブルＢ２、テーブルＢ５、テーブルＢ１０を格納し、テーブルＢ２、テーブルＢ５、テーブルＢ１０に格納された情報を読み出し、読み出した情報にプログラムに従った演算を行い、テーブルＢ２、テーブルＢ１０に情報を格納するなどにより集計手段１４８が行なう処理を実現する。
【０１５５】
また、予めイベント間の時間値（Ｔｉｊ）と確率値（Ｐｉｊ）とを設定して運用し、運用中に受信したイベント通知の集計結果に基づいて時間値（Ｔｉｊ）と確率値（Ｐｉｊ）とが更新されるようにしても良い。実施形態を運用する期間中にイベント間の時間と確率とが変化する場合も、時間値（Ｔｉｊ）と確率値（Ｐｉｊ）を更新することで、見積もりの精度向上が見込まれる。
【０１５６】
本発明の実施は、上述の実施形態のみにかぎらず、その他の実施形態をとりうる。
【符号の説明】
【０１５７】
１            管理装置
２ａ〜２ｅ    処理装置
３ａ〜３ｅ    記憶装置
４            負荷分散装置
５，６  ネットワーク
７            端末装置
１１    通信手段
１２    解析手段
１３    記憶手段
１４    指示手段
１２１  制御手段
１２２  記憶手段
１２３  抽出手段
１２４  生成手段
１２５  算出手段
１４１  制御手段
１４２  記憶手段
１４３  生成手段
１４４  算出手段
１４５  集計手段
１４６  判定手段
１４７  生成手段
１ａ    プロセッサ
１ｂ    メモリ
１ｃ    通信インターフェース
１ｄ    記憶装置
１ｅ    バス
１４８  集計手段
【図１】
0005565181.tif 000002
【図２】
0005565181.tif 000003
【図３】
0005565181.tif 000004
【図４】
0005565181.tif 000005
【図５】
0005565181.tif 000006
【図６】
0005565181.tif 000007
【図７】
0005565181.tif 000008
【図８】
0005565181.tif 000009
【図９】
0005565181.tif 000010
【図１０】
0005565181.tif 000011
【図１１】
0005565181.tif 000012
【図１２】
0005565181.tif 000013
【図１３】
0005565181.tif 000014
【図１４】
0005565181.tif 000015
【図１５】
0005565181.tif 000016
【図１６】
0005565181.tif 000017
【図１７】
0005565181.tif 000018
【図１８】
0005565181.tif 000019
【図１９】
0005565181.tif 000020
【図２０】
0005565181.tif 000021
【図２１】
0005565181.tif 000022
【図２２】
0005565181.tif 000023
【図２３】
0005565181.tif 000024
【図２４】
0005565181.tif 000025
【図２５】
0005565181.tif 000026
【図２６】
0005565181.tif 000027
【図２７】
0005565181.tif 000028