(57)【要約】【課題】  管理対象となるビジネスプロセス処理システムの振舞いを把握しやすくする。【解決手段】  複数のアプリケーションサービス提供装置１００に対応する複数のアプリケーションサービス監視装置１０１は、それぞれアプリケーションサービス提供装置１００の入力メッセージおよび出力メッセージを収集し、メッセージログを作成する。メッセージログ収集手段１０６は、メッセージログを収集し、メッセージシーケンス導出手段１０７は、メッセージログに基づいて、メッセージの連なりであるメッセージシーケンスを特定する。シーケンスタイプ導出手段１０８は、各メッセージシーケンスを、シーケンスタイプ毎に分類し、シーケンスタイプログおよびシーケンスタイプ構造をシーケンスタイプ記憶装置１１３に記憶させる。【選択図】  図３
2006338413.tif 000002
【特許請求の範囲】
【請求項１】
メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムを管理する分散アプリケーションサービス管理システムであって、
装置に受信されたメッセージの情報を含むメッセージログを収集するメッセージログ収集手段と、
メッセージログに含まれる個々のメッセージの情報に基づいて、装置に受信されて装置に処理を実行させたメッセージおよび当該処理の終了に伴い送信されたメッセージの連なりを順次特定することにより、一連のメッセージ連なりであるメッセージシーケンスを導出するメッセージシーケンス導出手段と、
各メッセージシーケンスに含まれる個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプを導出し、前記メッセージシーケンス導出手段によって導出されたメッセージシーケンスをシーケンスタイプ毎に分類するシーケンスタイプ導出手段とを備えた
ことを特徴とする分散アプリケーションサービス管理システム。
【請求項２】
メッセージログ収集手段は、装置に受信されたメッセージの情報と当該メッセージの受信時刻情報と当該メッセージの受信により開始された処理の終了に伴い新たに送信されたメッセージの送信時刻情報とを含むメッセージログを収集し、
各メッセージの受信時刻情報および新たに送信されたメッセージの送信時刻情報に基づいて、装置が個々のメッセージを処理した期間における当該装置が処理を行ったメッセージの多寡を示すメッセージ多重度をメッセージ毎に算出するメッセージ多重度算出手段と、
前記メッセージ多重度算出手段によって算出されたメッセージに基づいて、メッセージ多重度に応じた装置の処理時間を求めるための処理時間計算式を導出する処理時間計算式導出手段とを備えた
請求項１に記載の分散アプリケーションサービス管理システム。
【請求項３】
シーケンスタイプ導出手段は、各シーケンスタイプの情報として、シーケンスタイプ毎に、当該シーケンスタイプに分類されるメッセージシーケンスに含まれる各メッセージが受信される各装置および入力インタフェースの情報と、前記各メッセージの送信元、送信先、および送信されるメッセージの数と当該数のメッセージが送信される確率との関係を示す確率分布関数を含む経路情報とを有する情報を生成し、
処理時間計算式導出手段は、前記シーケンスタイプ導出手段が生成した各シーケンスタイプの情報の経路情報に、導出した処理時間計算式を追加する
請求項２に記載の分散アプリケーションサービス管理システム。
【請求項４】
各シーケンスタイプの情報に基づいて、各シーケンスタイプの情報に含まれる各装置および入力インタフェースの情報を重複しないように収集するとともに、各シーケンスタイプの情報毎に経路情報を収集し、収集した情報をまとめることにより、管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定可能な情報である動作モデルを生成する動作モデル導出手段を備えた
請求項３に記載の分散アプリケーション管理システム。
【請求項５】
管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定するシミュレーション装置を備え、
前記シミュレーション装置は、
各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定する間隔設定手段と、
前記間隔設定手段が設定したシーケンスタイプ毎の間隔および動作モデル導出手段によって生成された動作モデルとに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算する模擬実行手段とを有する
請求項４に記載の分散アプリケーション管理システム。
【請求項６】
シミュレーション装置は、
模擬実行手段が計算したメッセージの模擬的な送受信時刻に基づいて各装置におけるメッセージの平均到着頻度および各メッセージの処理時間を算出し、平均到着頻度が一定あるいは平均到着頻度の変化が所定の範囲内であるにも関わらず、メッセージの処理時間が所定値以上増加している場合に、処理時間が所定値以上増加していることを示す情報を出力する負荷状態判定手段を有する
請求項５に記載の分散アプリケーション管理システム。
【請求項７】
メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定するシミュレーション装置であって、
各メッセージが受信される各装置および入力インタフェースの情報を含み、さらに、実際に個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプ毎に、各メッセージの送信元、送信先、送信されるメッセージの数と当該数のメッセージが送信される確率との関係を示す確率分布関数、および装置の処理時間を求めるための処理時間計算式を有する経路情報を含む情報であって、管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定可能な情報である動作モデルを読み込む動作モデル収集手段と、
各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定する間隔設定手段と、
動作モデルと前記間隔設定手段が設定したシーケンスタイプ毎の間隔とに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算する模擬実行手段とを備えた
ことを特徴とするシミュレーション装置。
【請求項８】
模擬実行手段が計算したメッセージの模擬的な送受信時刻に基づいて各装置におけるメッセージの平均到着頻度および各メッセージの処理時間を算出し、平均到着頻度が一定あるいは平均到着頻度の変化が所定の範囲内であるにも関わらず、メッセージの処理時間が所定値以上増加している場合に、処理時間が所定値以上増加していることを示す情報を出力する負荷状態判定手段を備えた
請求項７に記載のシミュレーション装置。
【請求項９】
メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムを管理する分散アプリケーションサービス管理方法であって、
メッセージログ収集手段が、装置に受信されたメッセージの情報を含むメッセージログを収集し、
メッセージシーケンス導出手段が、メッセージログに含まれる個々のメッセージの情報に基づいて、装置に受信されて装置に処理を実行させたメッセージおよび当該処理の終了に伴い送信されたメッセージの連なりを順次特定することにより、一連のメッセージ連なりであるメッセージシーケンスを導出し、
シーケンスタイプ導出手段が、各メッセージシーケンスに含まれる個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプを導出し、前記メッセージシーケンス導出手段によって導出されたメッセージシーケンスをシーケンスタイプ毎に分類する
ことを特徴とする分散アプリケーションサービス管理方法。
【請求項１０】
メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムを管理するコンピュータに搭載される分散アプリケーションサービス管理プログラムであって、
前記コンピュータに、
装置に受信されたメッセージの情報を含むメッセージログを収集する処理、
メッセージログに含まれる個々のメッセージの情報に基づいて、装置に受信されて装置に処理を実行させたメッセージおよび当該処理の終了に伴い送信されたメッセージの連なりを順次特定することにより、一連のメッセージ連なりであるメッセージシーケンスを導出する処理、および
各メッセージシーケンスに含まれる個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプを導出し、導出されたメッセージシーケンスをシーケンスタイプ毎に分類する処理
を実行させるための分散アプリケーションサービス管理プログラム。
【請求項１１】
メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定するシミュレーション方法であって、
動作モデル収集手段が、各メッセージが受信される各装置および入力インタフェースの情報を含み、さらに、実際に個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプ毎に、各メッセージの送信元、送信先、送信されるメッセージの数と当該数のメッセージが送信される確率との関係を示す確率分布関数、および装置の処理時間を求めるための処理時間計算式を有する経路情報を含む情報であって、管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定可能な情報である動作モデルを読み込み、
間隔設定手段が、各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定し、
模擬実行手段が、動作モデルと前記間隔設定手段が設定したシーケンスタイプ毎の間隔とに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算する
ことを特徴とするシミュレーション方法。
【請求項１２】
メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定するコンピュータに搭載されるシミュレーションプログラムであって、
前記コンピュータに、
各メッセージが受信される各装置および入力インタフェースの情報を含み、さらに、実際に個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプ毎に、各メッセージの送信元、送信先、送信されるメッセージの数と当該数のメッセージが送信される確率との関係を示す確率分布関数、および装置の処理時間を求めるための処理時間計算式を有する経路情報を含む情報であって、管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定可能な情報である動作モデルを読み込む処理、
各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定する処理、および
動作モデルと設定されたシーケンスタイプ毎の間隔とに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算する処理
を実行させるためのシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散アプリケーションサービス管理システム、分散アプリケーションサービス管理方法、分散アプリケーションサービス管理用プログラム、および分散アプリケーションサービス管理システムに適用されるシミュレーション装置、シミュレーション方法、シミュレーションプログラムに関する。
【背景技術】
【０００２】
従来の分散アプリケーションサービス管理システムの一例が、特許文献１に記載されている。図４５は、特許文献１に記載されたシステムを示すブロック図である。図４５に示すように、特許文献１に記載された分散アプリケーションサービス管理システムは、主にイベント使用プロセスと２６ａ〜２６ｎと、イベント提供プロセス２４ａ〜２４ｎと、イベント管理システム２２とを含んでいる。特許文献１に記載された分散アプリケーションサービス管理システムは次のように動作する。イベント管理システム２２はイベント提供プロセス２４ａ〜２４ｎへの非同期アクセスを実現するためのイベント・チャネルの役割を果たす。イベント使用プロセス２６ａ〜２６ｎはイベント管理システム２２のイベント・チャネルに接続することにより、非同期アクセスを行う。また、イベント管理システム２２にイベント管理サービスを組み込むことにより、分散アプリケーションサービス管理を行う。
【０００３】
また、生産管理など他の技術分野においても同様の管理手法が用いられており、その一例が特許文献２に記載されている。図４６は、特許文献２に記載されたシステムを示す。図４６に示すように、特許文献２に記載されたシステムは、計測操作処理部１３と、プラントコントローラ２とを備える。計測操作処理部１３は、プラントコントローラ２よりプラント設備の運転状況の計測値を収集し、プラントコントローラ２は、その計測値に基づいてプラント設備を制御する。また、計測操作処理部１３は、プラント運転員により計測設定値を設定され、プラントコントローラ２は、計測設定値を格納する。計測値の出力が停止した場合、プラントコントローラ２は、計測設定値を計測値として収集記録を行い、また、計測設定値を運転制御に用いる。
【０００４】
なお、特許文献３には、トランザクション処理システムにおいて、ＣＰＵが過負荷になっているか否かを判定する技術が記載されている。
【０００５】
ビジネスプロセス処理システムは複数のアプリケーションサービスによって構築され、アプリケーションサービスはメッセージを送受信することによって、ビジネスプロセス処理を進める。ここで、複数のアプリケーションサービスを経由する際のメッセージの連なりをメッセージシーケンスと呼称する。ビジネスプロセス処理システム上では、一連の物品受注や、配送処理など複数種のビジネスプロセスの複数のメッセージシーケンスが処理され、メッセージシーケンスが複数のアプリケーションサービスを経由することによってビジネスプロセスを実行する。アプリケーションサービスにおいては、入力されたメッセージが複数の出力メッセージとなったり、またはその逆といったメッセージの分岐・集約があるため、メッセージシーケンスは分岐・集約を含むように構成される。なお、メッセージを用いるオブジェクト指向分散システムが特許文献４に記載されている。また、メッセージシーケンスを扱うシステムが、例えば、特許文献５に記載されている。ただし、特許文献５に記載されたシステムでは、サーバとクライアント間のメッセージシーケンスを扱う。
【０００６】
また、ビジネスプロセスのメッセージシーケンスは非同期に処理されている。非同期処理を行う例は、例えば、特許文献６に記載されている。
【０００７】
また、非特許文献１には、乱数生成アルゴリズムの一種である「メルセンヌ  ツイスター法」が紹介されている。
【０００８】
【特許文献１】特開平９−６２５２４号公報（段落００２６−００３０、図３）
【特許文献２】特開平８−３０３２０号公報（段落００２５−００３３、図１）
【特許文献３】特開平９−１３８７７６号公報（段落００３０）
【特許文献４】特開平１０−７４１４６号公報（段落００２４）
【特許文献５】特開平１１−２５１６５号公報（段落００１７）
【特許文献６】特開２００２−３２４０５５号公報（段落００５５）
【非特許文献１】“Mersenne Twister Home Page”、［online］、［平成１７年５月１２日検索］、インターネット、＜ＵＲＬ：http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００９】
複数の独立したアプリケーションサービスを束ねたビジネスプロセス処理システム（分散アプリケーションシステム）を管理する場合、その管理対象となるビジネスプロセス処理システムの振舞いを把握しやすくすることが好ましい。
【００１０】
また、メッセージの連なりが互いに及ぼしあう影響を定量的に評価できることが好ましい。具体的には、アプリケーションサービスが大量のメッセージを同時並行処理する環境において、各アプリケーションサービスにおける処理時間を定量的に評価できる（処理時間を計算できる）ようにすることが好ましい。
【００１１】
また、メッセージシーケンスの到着間隔が変化した場合において、その変化が管理対象の分散アプリケーションシステムにどのような影響を及ぼすのかを予測できるようにすることが好ましい。
【００１２】
また、ビジネスプロセス処理システム動作時の性能を保証する負荷範囲を見積もれることが好ましい。
【００１３】
そこで、本発明は、管理対象となるビジネスプロセス処理システム（分散アプリケーションシステム）の振舞いを把握しやすくすることを目的とする。また、各アプリケーションサービス（分散アプリケーションシステムに含まれる装置）における処理時間を計算できるようにすることを目的とする。また、メッセージシーケンスの到着間隔が変化した場合において、その変化が管理対象の分散アプリケーションシステムにどのような影響を及ぼすのかを予測できるようにすることを目的とする。また、ビジネスプロセス処理システム動作時の性能を保証する負荷範囲を見積もれるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
本発明による分散アプリケーションサービス管理システムは、メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムを管理する分散アプリケーションサービス管理システムであって、装置に受信されたメッセージの情報を含むメッセージログを収集するメッセージログ収集手段と、メッセージログに含まれる個々のメッセージの情報に基づいて、装置に受信されて装置に処理を実行させたメッセージおよび当該処理の終了に伴い送信されたメッセージの連なりを順次特定することにより、一連のメッセージ連なりであるメッセージシーケンスを導出するメッセージシーケンス導出手段と、各メッセージシーケンスに含まれる個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプを導出し、メッセージシーケンス導出手段によって導出されたメッセージシーケンスをシーケンスタイプ毎に分類するシーケンスタイプ導出手段とを備えたことを特徴とする。
【００１５】
そのような構成によれば、シーケンスタイプ導出手段が、メッセージシーケンス導出手段によって導出されたメッセージシーケンスをシーケンスタイプ毎に分類する。従って、オペレータは、各シーケンスタイプに分類されるメッセージシーケンスを参照することができ、その結果、管理対象となる分散アプリケーションシステムの振舞いを把握しやすくなる。
【００１６】
メッセージログ収集手段が、装置に受信されたメッセージの情報と当該メッセージの受信時刻情報と当該メッセージの受信により開始された処理の終了に伴い新たに送信されたメッセージの送信時刻情報とを含むメッセージログを収集し、各メッセージの受信時刻情報および新たに送信されたメッセージの送信時刻情報に基づいて、装置が個々のメッセージを処理した期間における当該装置が処理を行ったメッセージの多寡を示すメッセージ多重度をメッセージ毎に算出するメッセージ多重度算出手段と、メッセージ多重度算出手段によって算出されたメッセージに基づいて、メッセージ多重度に応じた装置の処理時間を求めるための処理時間計算式を導出する処理時間計算式導出手段とを備えた構成であってもよい。
【００１７】
そのような構成によれば、処理時間計算式導出手段が、メッセージ多重度算出手段によって算出されたメッセージに基づいて、メッセージ多重度に応じた装置の処理時間を求めるための処理時間計算式を導出する。従って、分散アプリケーションシステムに含まれる装置における処理時間を計算できるようになる。
【００１８】
また、シーケンスタイプ導出手段が、各シーケンスタイプの情報として、シーケンスタイプ毎に、当該シーケンスタイプに分類されるメッセージシーケンスに含まれる各メッセージが受信される各装置および入力インタフェースの情報と、その各メッセージの送信元、送信先、および送信されるメッセージの数と当該数のメッセージが送信される確率との関係を示す確率分布関数を含む経路情報とを有する情報を生成し、処理時間計算式導出手段が、シーケンスタイプ導出手段が生成した各シーケンスタイプの情報の経路情報に、導出した処理時間計算式を追加する構成であってもよい。この場合にも、各シーケンスタイプの情報に追加された処理時間計算式により、分散アプリケーションシステムに含まれる装置における処理時間を計算できるようになる。
【００１９】
各シーケンスタイプの情報に基づいて、各シーケンスタイプの情報に含まれる各装置および入力インタフェースの情報を重複しないように収集するとともに、各シーケンスタイプの情報毎に経路情報を収集し、収集した情報をまとめることにより、管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定可能な情報である動作モデルを生成する動作モデル導出手段を備えた構成であってもよい。
【００２０】
管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定するシミュレーション装置を備え、シミュレーション装置が、各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定する間隔設定手段と、間隔設定手段が設定したシーケンスタイプ毎の間隔および動作モデル導出手段によって生成された動作モデルとに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算する模擬実行手段とを有する構成であってもよい。
【００２１】
そのような構成によれば、間隔設定手段が、各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定し、模擬実行手段が、間隔設定手段が設定したシーケンスタイプ毎の間隔および動作モデル導出手段によって生成された動作モデルとに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算するので、処理順序が一番最初の装置にメッセージの到着間隔が変化した場合において、その変化が管理対象の分散アプリケーションシステムにどのような影響を及ぼすのかを予測できる。
【００２２】
シミュレーション装置が、模擬実行手段が計算したメッセージの模擬的な送受信時刻に基づいて各装置におけるメッセージの平均到着頻度および各メッセージの処理時間を算出し、平均到着頻度が一定あるいは平均到着頻度の変化が所定の範囲内であるにも関わらず、メッセージの処理時間が所定値以上増加している場合に、処理時間が所定値以上増加していることを示す情報を出力する負荷状態判定手段を有する構成であってもよい。
【００２３】
そのような構成によれば、負荷状態判定手段が、平均到着頻度が一定あるいは平均到着頻度の変化が所定の範囲内であるにも関わらず、メッセージの処理時間が所定値以上増加している場合に、処理時間が所定値以上増加していることを示す情報を出力するので、オペレータは、出力された情報を参照して、動作時の性能を保証する負荷範囲を見積もることができる。
【００２４】
また、本発明によるシミュレーション装置は、メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定するシミュレーション装置であって、各メッセージが受信される各装置および入力インタフェースの情報を含み、さらに、実際に個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプ毎に、各メッセージの送信元、送信先、送信されるメッセージの数と当該数のメッセージが送信される確率との関係を示す確率分布関数、および装置の処理時間を求めるための処理時間計算式を有する経路情報を含む情報であって、管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定可能な情報である動作モデルを読み込む動作モデル収集手段と、各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定する間隔設定手段と、動作モデルと間隔設定手段が設定したシーケンスタイプ毎の間隔とに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算する模擬実行手段とを備えたことを特徴とする。
【００２５】
そのような構成によれば、間隔設定手段が、各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定し、模擬実行手段が、動作モデルと間隔設定手段が設定したシーケンスタイプ毎の間隔とに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算するので、処理順序が一番最初の装置にメッセージの到着間隔が変化した場合において、その変化が管理対象の分散アプリケーションシステムにどのような影響を及ぼすのかを予測できる。
【００２６】
模擬実行手段が計算したメッセージの模擬的な送受信時刻に基づいて各装置におけるメッセージの平均到着頻度および各メッセージの処理時間を算出し、平均到着頻度が一定あるいは平均到着頻度の変化が所定の範囲内であるにも関わらず、メッセージの処理時間が所定値以上増加している場合に、処理時間が所定値以上増加していることを示す情報を出力する負荷状態判定手段を備えた構成であってもよい。
【００２７】
そのような構成によれば、負荷状態判定手段が、平均到着頻度が一定あるいは平均到着頻度の変化が所定の範囲内であるにも関わらず、メッセージの処理時間が所定値以上増加している場合に、処理時間が所定値以上増加していることを示す情報を出力するので、オペレータは、出力された情報を参照して、動作時の性能を保証する負荷範囲を見積もることができる。
【００２８】
また、本発明による分散アプリケーションサービス管理方法は、メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムを管理する分散アプリケーションサービス管理方法であって、メッセージログ収集手段が、装置に受信されたメッセージの情報を含むメッセージログを収集し、メッセージシーケンス導出手段が、メッセージログに含まれる個々のメッセージの情報に基づいて、装置に受信されて装置に処理を実行させたメッセージおよび当該処理の終了に伴い送信されたメッセージの連なりを順次特定することにより、一連のメッセージ連なりであるメッセージシーケンスを導出し、シーケンスタイプ導出手段が、各メッセージシーケンスに含まれる個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプを導出し、メッセージシーケンス導出手段によって導出されたメッセージシーケンスをシーケンスタイプ毎に分類することを特徴とする。
【００２９】
そのような方法によれば、シーケンスタイプ導出手段が、メッセージシーケンスをシーケンスタイプ毎に分類する。従って、オペレータは、各シーケンスタイプに分類されるメッセージシーケンスを参照することができ、その結果、管理対象となる分散アプリケーションシステムの振舞いを把握しやすくなる。
【００３０】
また、本発明による分散アプリケーションサービス管理プログラムは、メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムを管理するコンピュータに搭載される分散アプリケーションサービス管理プログラムであって、コンピュータに、装置に受信されたメッセージの情報を含むメッセージログを収集する処理、メッセージログに含まれる個々のメッセージの情報に基づいて、装置に受信されて装置に処理を実行させたメッセージおよび当該処理の終了に伴い送信されたメッセージの連なりを順次特定することにより、一連のメッセージ連なりであるメッセージシーケンスを導出する処理、および各メッセージシーケンスに含まれる個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプを導出し、導出されたメッセージシーケンスをシーケンスタイプ毎に分類する処理を実行させることを特徴とする。
【００３１】
そのようなプログラムによれば、メッセージシーケンスをシーケンスタイプ毎に分類する処理をコンピュータに実行させる。従って、オペレータは、各シーケンスタイプに分類されるメッセージシーケンスを参照することができ、その結果、管理対象となる分散アプリケーションシステムの振舞いを把握しやすくなる。
【００３２】
また、本発明によるシミュレーション方法は、メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定するシミュレーション方法であって、動作モデル収集手段が、各メッセージが受信される各装置および入力インタフェースの情報を含み、さらに、実際に個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプ毎に、各メッセージの送信元、送信先、送信されるメッセージの数と当該数のメッセージが送信される確率との関係を示す確率分布関数、および装置の処理時間を求めるための処理時間計算式を有する経路情報を含む情報であって、管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定可能な情報である動作モデルを読み込み、間隔設定手段が、各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定し、模擬実行手段が、動作モデルと間隔設定手段が設定したシーケンスタイプ毎の間隔とに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算することを特徴とする。
【００３３】
そのような方法によれば、間隔設定手段が、各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定し、模擬実行手段が、動作モデルと間隔設定手段が設定したシーケンスタイプ毎の間隔とに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算するので、処理順序が一番最初の装置にメッセージの到着間隔が変化した場合において、その変化が管理対象の分散アプリケーションシステムにどのような影響を及ぼすのかを予測できる。
【００３４】
また、本発明によるシミュレーションプログラムは、メッセージの入力インタフェースからメッセージを受信することにより個別の処理を実行する複数の装置を含む分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定するコンピュータに搭載されるシミュレーションプログラムであって、コンピュータに、各メッセージが受信される各装置および入力インタフェースの情報を含み、さらに、実際に個々のメッセージが受信された各装置の入力インタフェースの連なりであるシーケンスタイプ毎に、各メッセージの送信元、送信先、送信されるメッセージの数と当該数のメッセージが送信される確率との関係を示す確率分布関数、および装置の処理時間を求めるための処理時間計算式を有する経路情報を含む情報であって、管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に特定可能な情報である動作モデルを読み込む処理、各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定する処理、および動作モデルと設定されたシーケンスタイプ毎の間隔とに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算する処理を実行させることを特徴とする。
【００３５】
そのようなプログラムによれば、各シーケンスタイプ毎に、処理順序が一番最初の装置にメッセージが到着する期間の間隔を設定する処理、および動作モデルと設定されたシーケンスタイプ毎の間隔とに基づいて、管理対象となる分散アプリケーションシステムに含まれる各装置におけるメッセージの模擬的な送受信時刻を計算する処理をコンピュータに実行させる。従って、処理順序が一番最初の装置にメッセージの到着間隔が変化した場合において、その変化が管理対象の分散アプリケーションシステムにどのような影響を及ぼすのかを予測できる。
【発明の効果】
【００３６】
本発明によれば、オペレータは、各シーケンスタイプに分類されるメッセージシーケンスを参照することができ、その結果、管理対象となる分散アプリケーションシステムの振舞いを把握しやすくなる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明を実施するための最良の形態を図面を参照して説明する。
図１は、本発明による分散アプリケーション管理システムと、管理対象となる分散アプリケーションシステムに含まれるアプリケーションサービス提供装置との関係を示すブロック図である。本実施の形態における分散アプリケーション管理システムは、図１に示すアプリケーションサービス管理装置１０５を含む。さらに、本実施の形態における分散アプリケーション管理システムに、動作モデル記憶装置１１５と、メッセージログ記憶装置１０４とを含めてもよい。
【００３８】
各アプリケーションサービス提供装置１００は、分散アプリケーションシステムに含まれ、それぞれ個別のアプリケーションサービス処理を行う。１つのアプリケーションサービス提供装置１００は、実行した処理に応じて、他のアプリケーションサービス提供装置１００にメッセージを出力し、他のアプリケーションサービス提供装置に処理を実行させる。個々のアプリケーションサービス提供装置１００が、それぞれ順次アプリケーションサービス処理を実行することで、一連のビジネスプロセス処理が完了する。例えば、あるアプリケーションサービス提供装置１００が、顧客からの注文発注を受ける処理を行い、次のアプリケーションサービス提供装置１００にメッセージを送信する。メッセージを受けたアプリケーションサービス提供装置１００は、顧客の支払い能力の確認処理を行い、次のアプリケーションサービス提供装置１００にメッセージを送信する。このような処理を繰り返し、例えば、発注を受けてから商品発送するまでの一連のビジネスプロセス処理を行う。
【００３９】
また、アプリケーションサービス提供装置１００には、メッセージの入力インタフェース（具体的にはＡＰＩ（Application Programming Interface ））が１つあるいは複数定められ、メッセージおよびメッセージの入力インタフェース（以下、単にインタフェースと記す。）に応じた処理を行う。
【００４０】
各アプリケーションサービス監視装置１０１は、自身が監視対象とするアプリケーションサービス提供装置１００の入出力をモニタリングし、メッセージログを収集してメッセージログ記憶装置１０４に記憶させる。各メッセージログ記憶装置１０４は、メッセージログを記憶する。
【００４１】
アプリケーションサービス監視装置１０１は、アプリケーションサービス提供装置１００に入力されるメッセージ本文と、そのメッセージの入力時刻の情報、およびそのメッセージ処理後に新たに送信されるメッセージの送信時刻をメッセージログとして収集する。そして、それらの情報を含むメッセージログをメッセージログ記憶装置１０４に記憶させる。
【００４２】
アプリケーションサービス管理装置１０５は、各メッセージログ記憶装置１０４からメッセージログを収集し、後述する各種処理（メッセージシーケンスの構築、各メッセージシーケンスのシーケンスタイプの導出、シーケンス処理時間計算式の導出、動作モデルの導出等）を実行する。動作モデルとは、非同期な並列動作システムを記述した構造式であり、動作モデル実行環境にて模擬実行させることができる構造式である。また、動作モデルは、管理対象となる分散アプリケーションシステムにおけるメッセージの送受信タイミングを模擬的に再現可能な情報である。
【００４３】
動作モデル記憶装置１１５は、アプリケーションサービス管理装置１０５によって作成された動作モデルを記憶する。
【００４４】
図２は、アプリケーションサービス提供装置１００、アプリケーションサービス監視装置１０１、メッセージログ記憶装置１０４、アプリケーションサービス管理装置１０５の接続状態を示す説明図である。これらの各装置は、図２に示すように通信ネットワーク１を介して接続される。各アプリケーションサービス提供装置１００は、通信ネットワーク１を介してメッセージを送受信する。また、各アプリケーションサービス監視装置１０１は、通信ネットワーク１を介してメッセージを収集し、メッセージログを各メッセージログ記憶装置１０４に記憶させる。アプリケーションサービス管理装置１０５は、通信ネットワーク１を介して、各メッセージログ記憶装置１０４からそれぞれメッセージログの集合を読み込む。
【００４５】
なお、対応するアプリケーションサービス提供装置１００とアプリケーションサービス監視装置１０１は、図１、図２に示すように別個の装置（計算機）として設けてもよい。あるいは、対応するアプリケーションサービス提供装置１００とアプリケーションサービス監視装置１０１とを同一の装置として設けてもよい。また、図１、図２では、各アプリケーションサービス提供装置１００と各アプリケーションサービス監視装置１０１とが１対１に対応する場合を示したが、ｎ対１に対応するように設けられていてもよい。すなわち、ｎ台のアプリケーションサービス提供装置１００に対して１台のアプリケーションサービス監視装置１０１を対応させ、１台のアプリケーションサービス監視装置１０１が、ｎ台のアプリケーションサービス提供装置１００からメッセージを収集する構成であってもよい。
【００４６】
図３は、アプリケーションサービス監視装置１０１およびアプリケーションサービス管理装置１０５の構成例を示すブロック図である。
【００４７】
図３に示すように、アプリケーションサービス監視装置１０１は、メッセージログ取得手段１０２とメッセージログ蓄積手段１０３とを備える。メッセージログ取得手段１０２は、アプリケーションサービス提供装置１００の入力メッセージおよび出力メッセージに基づいてメッセージログを生成する。メッセージログ取得手段１０２は、例えば、アプリケーションサービス提供装置１００に直接アクセスして取得した情報に基づいてメッセージログを生成する。あるいは、アプリケーションサービス提供装置１００がアプリケーションサービス監視装置１０１にメッセージログを配信する態様で、メッセージログ取得手段１０２がメッセージログを収集してもよい。メッセージログ蓄積手段１０３は、メッセージログをメッセージログ記憶装置１０４に格納する。
【００４８】
アプリケーションサービス管理装置１０５は、メッセージログ収集手段１０６と、メッセージシーケンス導出手段１０７と、シーケンスタイプ導出手段１０８と、シーケンス処理時間計算式導出手段１０９と、動作モデル導出手段１１０とを備える。また、アプリケーションサービス管理装置１０５には、ビジネスプロセス記憶装置１１１と、メッセージシーケンス記憶装置１１２と、シーケンスタイプ記憶装置１１３と、シーケンスタイプ構造記憶装置１１４とが接続される。アプリケーションサービス管理装置１０５が、ビジネスプロセス記憶装置１１１と、メッセージシーケンス記憶装置１１２と、シーケンスタイプ記憶装置１１３と、シーケンスタイプ構造記憶装置１１４とを備える構成であってもよい。
【００４９】
アプリケーションサービス管理装置１０５とアプリケーションサービス監視装置１０１とは１対ｎの対応を持つ。すなわち、１台のアプリケーションサービス管理装置１０５は、ｎ台の各アプリケーションサービス監視装置１０１がそれぞれメッセージログ記憶装置１０４に記憶させたメッセージログを読み込んで処理を実行する。また、アプリケーションサービス管理装置１０５とアプリケーションサービス監視装置１０１は、図示するように別個の装置（計算機）として設けられてもよいし、あるいは、同一の装置としても設けられていてもよい。
【００５０】
ビジネスプロセス記憶装置１１１は、管理対象となる分散アプリケーションシステム（ビジネスプロセス処理システム）の構造情報を記憶する。具体的には、管理対象となるシステムにどのようなサービスが含まれていて、どのサービスからどのサービスに対してメッセージが流されるのかを示す情報を記憶する。換言すれば、ビジネスプロセス記憶装置１１１は、管理対象となるシステムにどのようなアプリケーションサービス提供装置１００が含まれていて、どのアプリケーションサービス提供装置からどのアプリケーションサービス提供装置にメッセージが送られるのかを示す情報を記憶する。なお、ビジネスプロセス記憶装置１１１は、あるアプリケーションサービス提供装置から送られたメッセージが、他のアプリケーションサービス提供装置のどのインタフェースに入力されるかという情報までは記憶していなくてもよい。なお、各アプリケーションサービス監視装置１０１は、ビジネスプロセス記憶装置１１１が記憶する構造情報に適合するように設置される。
【００５１】
また、ビジネスプロセス記憶装置１１１は、１つのビジネスプロセス処理（ビジネスプロセス処理システム）に関する構造情報（どのようなアプリケーションサービス提供装置１００が含まれていて、どのアプリケーションサービス提供装置からどのアプリケーションサービス提供装置にメッセージが送られるのかを示す情報）だけでなく、複数のビジネスプロセス処理（ビジネスプロセス処理システム）に関する構造情報を記憶していてもよい。
【００５２】
メッセージログ収集手段１０６は、複数のメッセージログ記憶装置１０６からメッセージログを収集し、収集したメッセージログをメッセージシーケンス導出手段１０７へ渡す。
【００５３】
メッセージシーケンス導出手段１０７は、ビジネスプロセス記憶装置１１１から取り出したビジネスプロセス情報を元にメッセージログを組み合わせてメッセージシーケンスを生成し、そのメッセージシーケンスをメッセージシーケンス記憶装置１１２に格納する。メッセージシーケンス導出手段１０７が、メッセージシーケンスを生成（導出）する処理については後述する。図４は、メッセージシーケンスの例を示す説明図である。図４に示すＷＳｐ，ＷＳｑ，ＷＳｒ，ＷＳｓは、それぞれアプリケーションサービス提供装置を表している。そして、アプリケーションサービス提供装置ＷＳｐが、メッセージｉに基づいて処理を行い、メッセージｊ，ｋ，ｌを出力し、アプリケーションサービス提供装置ＷＳｑが、メッセージｊ，ｋ，ｌに基づいて処理を行い、メッセージｍをアプリケーションサービス提供装置ＷＳｓ出力している状況を示す。あるメッセージに基づく処理後に複数のメッセージがアプリケーションサービス提供装置から出力されることを「分岐」と呼ぶ。また、複数メッセージに基づく処理後に、その複数のメッセージより少ないメッセージ（例えば１つのメッセージ）がアプリケーションサービス提供装置から出力されることを「集約」と呼ぶ。図４に示す例では、メッセージｉがメッセージｊ，ｋ，ｌに分岐し、メッセージｊ，ｋ，ｌがメッセージｍに集約している。メッセージシーケンスとは、複数のアプリケーションサービス（具体的には、アプリケーションサービス提供装置）を経由する際のメッセージの連なりを意味する。図４に示す例では、メッセージｉ，ｊ，ｍという連なり、メッセージｉ，ｋ，ｍという連なり、およびメッセージｉ，ｌ，ｍという連なりが、それぞれメッセージシーケンスに該当する。メッセージシーケンス導出手段１０７は、このようなメッセージシーケンスを導出する。
【００５４】
メッセージシーケンス記憶装置１１２は、メッセージシーケンス導出手段１０７によって導出されたメッセージシーケンスを記憶する。
【００５５】
シーケンスタイプ導出手段１０８は、メッセージシーケンス記憶装置１１２からメッセージシーケンスを読み出し、メッセージシーケンスが経由したアプリケーションサービス提供装置のインタフェースの経路を基にメッセージシーケンスを分類することによりシーケンスタイプを導出する。そして、導出したシーケンスタイプをシーケンスタイプ記憶装置１１３に格納する。
【００５６】
シーケンスタイプ記憶装置１１３は、シーケンスタイプ導出手段１０８によって導出された各種シーケンスタイプの情報（シーケンスタイプ構造）を記憶する。
【００５７】
シーケンス処理時間計算式導出手段１０９は、シーケンスタイプ記憶装置１１３からシーケンスタイプ構造を読み出し、各メッセージシーケンスのメッセージ多重度を基にメッセージシーケンス通過時のメッセージシーケンスの推定処理時間（メッセージシーケンスの処理時間）を算出するシーケンス処理時間計算式を導出する。そして、シーケンス処理時間計算式導出手段１０９は、その処理時間計算式をシーケンスタイプ構造に加え、シーケンスタイプ構造記憶装置１１４に格納する。なお、多重度や、シーケンス処理時間計算式の導出処理については後述する。
【００５８】
シーケンスタイプ構造記憶装置１１４は、シーケンス処理時間計算式が追加されたシーケンスタイプ構造を記憶する。なお、シーケンスタイプ記憶装置１１３が記憶するシーケンス構造には、シーケンス処理時間計算式が含まれていない。この点でシーケンスタイプ構造記憶装置１１４およびシーケンスタイプ記憶装置１１３が記憶するシーケンスタイプ構造は異なる。
【００５９】
動作モデル導出手段１１０は、シーケンスタイプ構造記憶装置１１４からシーケンスタイプ構造を読み出し、シーケンスタイプ構造を組み合わせることによりビジネスプロセス処理システムの振る舞いを示す動作モデルを導出し、動作モデル記憶装置１１５に格納する。
【００６０】
メッセージログ収集手段１０６、メッセージシーケンス導出手段１０７、シーケンスタイプ導出手段１０８、シーケンス処理時間計算式導出手段１０９、および動作モデル導出手段１１０は、例えば、プログラムに従って動作するＣＰＵによって実現される。また、メッセージログ収集手段１０６、メッセージシーケンス導出手段、シーケンスタイプ導出手段１０８、シーケンス処理時間計算式導出手段１０９、および動作モデル導出手段１１０の全部または一部を、同一のＣＰＵによって実現してもよい。例えば、メッセージログ収集手段１０６およびメッセージシーケンス導出手段１０７を同一のＣＰＵで実現してもよい。さらに、そのＣＰＵと同一のＣＰＵで、シーケンスタイプ導出手段１０８を実現してもよい。さらに、そのＣＰＵと同一のＣＰＵで、シーケンス処理時間計算式導出手段１０９を実現してもよい。さらに、そのＣＰＵと同一のＣＰＵで、動作モデル導出手段１１０を実現してもよい。
【００６１】
また、本実施の形態における分散アプリケーション管理システムは、図５に示すビジネスプロセスシミュレート装置１１６も含む。図５は、分散アプリケーション管理システムに含まれるビジネスプロセスシミュレート装置の構成例を示すブロック図である。図５では、アプリケーションサービス管理装置１０５とビジネスプロセスシミュレート装置とを１台ずつ示しているが、ビジネスプロセスシミュレート装置１１６とアプリケーションサービス管理装置１０５はｎ対ｍの対応を持つ。すなわち、ビジネスプロセスシミュレート装置１１６およびアプリケーションサービス管理装置１０５は、それぞれ複数台設けられていてもよく、ビジネスプロセスシミュレート装置１１６およびアプリケーションサービス管理装置１０５の台数は異なっていてもよい。また、ビジネスプロセスシミュレート装置１１６とアプリケーションサービス管理装置１０５とを同一の装置（計算機）として設けてもよい。
【００６２】
ビジネスプロセスシミュレート装置１１６は、動作モデル読み出し手段１１７と、パラメータ設定手段１１８と、動作モデル実行手段１１９と、シミュレート結果取得手段１２０とを備える。また、ビジネスプロセスシミュレート装置１１６には、動作モデル記憶装置１１５と、シミュレート結果記憶装置１２２と、入力装置１２４と、出力装置１２３とが接続されている。ビジネスプロセスシミュレート装置１１６が、動作モデル記憶装置１１５と、シミュレート結果記憶装置１２２と、入力装置１２４と、出力装置１２３とを備える構成であってもよい。
【００６３】
動作モデル読み出し手段１１７は、模擬実行させる動作モデルを動作モデル記憶装置１１５から読み出す。
【００６４】
入力装置１２４は、例えば、キーボードやマウスによって実現される。入力装置１２４には、オペレータによって模擬的に定められたメッセージシーケンス到着間隔がシーケンスタイプ毎に入力される。
【００６５】
パラメータ設定手段１１８は、入力されたメッセージシーケンス到着間隔を入力装置１２４からシーケンスタイプ毎に受け取り、動作モデル読み出し手段１１７が読み出した動作モデルと共に動作モデル実行手段１１９に渡す。
【００６６】
動作モデル実行手段１１９は、各シーケンスタイプ毎に入力された到着間隔でメッセージシーケンスが到着するという状況のもとでのビジネスプロセス動作を、動作モデルに基づいて模擬実行する。具体的には、各アプリケーションサービス提供装置１００に各シーケンスタイプのメッセージシーケンスに属するメッセージが入力された場合の各メッセージに対する処理の処理開始時刻（メッセージ受信時刻）および処理終了時刻（新メッセージ送信時刻）を算出する。
【００６７】
シミュレート結果取得手段１２０は、動作モデル実行手段１１９が出力する模擬実行結果を受け取り、その模擬実行結果をシミュレート結果記憶装置１２２に記憶させ、出力装置１２３に出力（例えば、表示出力）する。出力装置１２３は、例えば、ディスプレイ装置等によって実現される。また、シミュレート結果取得手段１２０は、各シーケンスタイプのインタフェース毎の到着間隔の変化、各シーケンスタイプのインタフェース毎の処理時間の変化、各シーケンスタイプの全体処理時間の変化などのビジネスプロセスのシミュレート状況を計測してもよい。シミュレート結果取得手段１２０は、この計測結果をシミュレート結果記憶装置１２２に記憶させ、出力装置１２３に出力してもよい。
【００６８】
図６は、ビジネスプロセスシミュレート装置の他の構成例を示すブロック図である。動作モデル読み出し手段１１７、パラメータ設定手段１１８、動作モデル実行手段１１９の動作は、図５に示す構成の場合と同様である。シミュレート結果取得手段１２０は、動作モデル実行手段１１９が出力した情報を、過負荷判定手段１２１に出力する。過負荷判定手段１２１は、シーケンス処理時間計算式毎にビジネスプロセス処理システムの診断を行う。具体的には、動作モデル実行手段１１９による模擬的なビジネスプロセス動作におけるメッセージシーケンスの平均到着頻度およびその模擬的な動作時間として計算された処理時間に基づいて、管理対象システムが、安定に動作するか、あるいは過負荷状態になるかの判断材料となる情報を生成する。過負荷判定手段１２１は、この情報をシミュレート結果記憶装置１２２に記憶させ、また、出力装置１２３に出力（例えば表示出力）し、オペレータに管理対象システムが安定に動作するか過負荷状態になるかの判断を促す。なお、過負荷状態は、過負荷状態とは大量のメッセージシーケンス処理によって処理性能、特性が急激に悪化する状態である。過負荷判定手段１２１の動作については、後述する。
【００６９】
図５または図６に示すビジネスプロセスシミュレート装置において、動作モデル読み出し手段１１７、パラメータ設定手段１１８、動作モデル実行手段１１９、シミュレート結果取得手段１２０、過負荷判定手段１２１は、例えば、プログラムに従って動作するＣＰＵによって実現される。また、動作モデル読み出し手段１１７、パラメータ設定手段１１８、動作モデル実行手段１１９、シミュレート結果取得手段１２０、過負荷判定手段１２１の全部または一部を、同一のＣＰＵによって実現してもよい。例えば、動作モデル読み出し手段１１７およびパラメータ設定手段１１８を同一のＣＰＵによって実現してもよい。さらに、そのＣＰＵと同一のＣＰＵで、動作モデル実行手段１１９を実現してもよい。さらに、そのＣＰＵと同一のＣＰＵで、シミュレート結果取得手段１２０を実現してもよい。さらに、そのＣＰＵと同一のＣＰＵで、過負荷判定手段１２１を実現してもよい。
【００７０】
次に、本実施の形態による分散アプリケーション管理システムの動作について詳細に説明する。
【００７１】
まず、アプリケーションサービス提供装置１００間で送受信されるメッセージについて説明する。既に説明したように、１つのアプリケーションサービス提供装置１００は、実行した処理に応じて、他のアプリケーションサービス提供装置１００にメッセージを出力し、他のアプリケーションサービス提供装置に処理を実行させる。そして、個々のアプリケーションサービス提供装置１００が、それぞれ順次アプリケーションサービス処理を実行することで、一連のビジネスプロセス処理が完了する。図７は、アプリケーションサービス提供装置１００間で送受信されるメッセージのデータ構造の例を示す説明図である。本例に示すメッセージのデータ構造は、ヘッダとボディとがエンベロープに収められたデータ構造になっている。メッセージのヘッダには、メッセージ送信元アプリケーションサービスのＩＤ、メッセージ送信先アプリケーションサービスのＩＤ、関連メッセージのＩＤ、および、そのメッセージ自身のＩＤが含まれる。なお、個々のアプリケーションサービスは、各アプリケーションサービス提供装置１００によって実行される。よって、アプリケーションサービスのＩＤとは、アプリケーションサービス提供装置１００のＩＤであるということもできる。また、メッセージのボディには、利用するアプリケーションサービス提供装置１００のインタフェース（すなわち、そのメッセージが入力されるアプリケーションサービス提供装置１００のインタフェース）、インタフェースへのパラメータを持つメッセージ内容が含まれる。
【００７２】
また、「関連メッセージ」とは、アプリケーションサービス提供装置１００が出力メッセージを生成する原因となった１つ前のサービス（アプリケーションサービス提供装置１００）から送信された受信メッセージを意味する。
【００７３】
アプリケーションサービス監視装置１０１のメッセージログ取得手段１０２（図３参照。）は、そのアプリケーションサービス監視装置１０１に対応するアプリケーションサービス提供装置１００からメッセージと、そのメッセージが送信先アプリケーションサービス提供装置１００に到着した時刻の情報と、そのアプリケーションサービス提供装置１００が次のアプリケーションサービス提供装置１００に向けて新たなメッセージを送信した時刻の情報の情報とを取得する。そして、メッセージログ取得手段１０２は、取得した情報に基づいてメッセージログを生成する。
【００７４】
図８は、メッセージログのデータ構造の例を示す説明図である。図８に例示するように、メッセージログは、例えば、メッセージログ取得手段１０２が収集したメッセージ自身のＩＤ（メッセージＩＤ）と、送信元アプリケーションサービスＩＤ（すなわち、そのメッセージの送信元アプリケーションサービスのＩＤ）と、アプリケーションサービスＩＤ（メッセージログ取得手段１０２が収集したメッセージを受信したアプリケーションサービスのＩＤ）と、関連メッセージＩＤと、利用インタフェースと、メッセージ内容と、メッセージの受信時刻と、新メッセージの送信時刻とを含む。図８に示す例では、時刻を「時、分、秒」で表すようにしているが、他の単位で時刻を表してもよい。例えば、「ミリ秒」等で時刻を表すようにしてもよい。他の図面等でも同様である。なお、利用インタフェースは、メッセージログ取得手段１０２が収集したメッセージを受信したアプリケーションサービスのインタフェースである。メッセージログ取得手段１０２が、取得した情報（メッセージ、そのメッセージの受信時刻、新メッセージの送信時刻）に基づいて、図８に例示するデータ構造のメッセージログを生成すると、メッセージログ蓄積手段１０３は、そのメッセージログを、対応するメッセージログ記憶装置１０４に記憶させる。メッセージログ取得手段１０２は、アプリケーションサービス提供手段１００が受信するメッセージ毎にメッセージログを生成（あるいは収集）し、メッセージログ蓄積手段１０３は、各メッセージに応じたメッセージログをメッセージログ記憶装置１０４に記憶させる。従って、メッセージログ記憶装置１０４は、対応するアプリケーションサービス１００が受信する各メッセージそれぞれに応じた各メッセージログを記憶する。よって、個々のメッセージログ記憶装置１０４は、メッセージログの集合（メッセージログ集合）を記憶する。
【００７５】
なお、あるメッセージが複数のメッセージから集約されている場合、メッセージログ取得手段１０２は、集約されたメッセージのメッセージログを、その複数のメッセージ数だけ作成する。このとき、関連メッセージの情報は、それぞれ異なるが、他の情報は同一になるように集約されたメッセージのメッセージログを作成する。
【００７６】
アプリケーションサービス管理装置１０５のメッセージログ収集手段１０６（図３参照。）は、複数のメッセージログ記憶装置１０４からメッセージログ集合を読み出す。よって、メッセージログ収集手段１０６は、メッセージログ集合の集合を収集する。メッセージログ収集手段１０６がメッセージログ集合の集合を収集すると、メッセージシーケンス導出手段１０７が、メッセージシーケンスを導出する。
【００７７】
図９は、メッセージシーケンス導出処理を示すフローチャートである。メッセージシーケンス導出手段１０７は、まず、ビジネスプロセス記憶装置１１１よりビジネスプロセス処理システムの構造情報を読み出す。既に説明したように、ビジネスプロセス記憶装置１１１は、複数のビジネスプロセス処理システムに関する構造情報を記憶していてもよい。メッセージシーケンス導出手段１０７は、アプリケーションサービス管理装置１０５が管理対象としているビジネスプロセス処理システムの構造情報を読み出す。そして、メッセージシーケンス導出手段１０７は、その構造情報に基づいて、メッセージシーケンス導出に用いるメッセージが送受信されるアプリケーションサービスの範囲（アプリケーションサービス提供装置１００の範囲）を定める（ステップＡ１）。換言すれば、管理対象となるビジネスプロセス処理システムに属するアプリケーションサービス提供装置１００の範囲を定める。なお、アプリケーションサービス管理装置１０５が管理対象としているビジネスプロセス処理システムが複数存在する場合には、そのうちの１つに対応する構造情報を選択して読み出す。
【００７８】
続いて、メッセージシーケンス導出手段１０７は、メッセージログ収集手段１０６が収集しているメッセージログ集合の集合の中から、ステップＡ１で定めた範囲内のアプリケーションサービス提供装置１００で入力や出力されたメッセージに応じたメッセージログをメッセージログ収集手段１０６から受け取る（ステップＡ２）。このとき、メッセージログ１０６は、収集したメッセージログ集合の集合全体のうち、メッセージシーケンス導出手段１０７が指定した範囲内のアプリケーションサービス提供装置１００で入力や出力されたメッセージに応じたメッセージログを、メッセージシーケンス導出手段１０７に渡せばよい。
【００７９】
次に、メッセージシーケンス導出手段１０７は、ステップＡ２で受け取ったメッセージログの中から、関連メッセージＩＤとして空の情報を有する（すなわち、関連メッセージＩＤが記述されていない）メッセージログを１つ特定する（ステップＡ３）。メッセージログが関連メッセージＩＤとして空の情報を有するということは、そのメッセージログが一番最初のアプリケーションサービス１００に入力されたメッセージに対応するものであることを意味する。すなわち、そのメッセージログは、メッセージシーケンスにおける起点となるメッセージに対応するメッセージログであることを意味する。さらに、メッセージシーケンス導出手段１０７は、ステップＡ３で特定したメッセージログのメッセージＩＤを関連メッセージとして有するメッセージログを特定する（ステップＡ４）。ステップＡ４で特定されるメッセージログは、起点から数えて２番目のメッセージ（起点となるメッセージに基づく処理の結果出力されたメッセージ）に対応する。ステップＡ４の後、メッセージシーケンス導出手段１０７は、新規にメッセージシーケンスＩＤを割り当て、ステップＡ３，Ａ４で特定した各メッセージログ（起点および２番目のメッセージに対応する各メッセージログ）にそのメッセージシーケンスＩＤを付加する（ステップＡ５）。
【００８０】
続いて、メッセージシーケンス導出手段１０７は、メッセージシーケンスＩＤが付加されたメッセージログのメッセージＩＤを関連メッセージＩＤとして有するメッセージログを特定する（ステップＡ６）。そして、メッセージシーケンス導出手段１０７は、ステップＡ６で特定したメッセージログに、そのメッセージログを特定するためにメッセージＩＤを参照したメッセージのメッセージシーケンスＩＤを付加する（ステップＡ７）。メッセージシーケンス導出手段１０７は、ステップＡ６，Ａ７の処理（メッセージログ特定ループ）を、ステップＡ６でメッセージログの特定ができなくなるまで繰り返す。ステップＡ６，Ａ７の処理を繰り返すことにより、３番目以降の各メッセージに対応するメッセージログを特定し、そのメッセージログにメッセージシーケンスＩＤを付加することになる。
【００８１】
以上の処理によって、メッセージシーケンスを構成する各メッセージログに共通のメッセージシーケンスＩＤを付加する。従って、複数のメッセージログに共通のメッセージシーケンスＩＤが付加されていれば、その複数のメッセージログは、同一のメッセージシーケンスを構成していることになる。また、以上の処理の後において、関連メッセージＩＤとして空の情報を有するメッセージログであって、メッセージシーケンスＩＤが付加されていないメッセージログが存在するならば、ステップＡ３以降の処理（メッセージシーケンス導出ループ）を繰り返す。
【００８２】
続いて、メッセージシーケンス導出手段１０７は、メッセージシーケンスＩＤを付加したメッセージログの集合をメッセージシーケンス集合としてメッセージシーケンス記憶手段１１２に記憶させる。メッセージシーケンスＩＤが付加されたメッセージログのデータ構造は、図１０に示すように、メッセージログのデータ構造にメッセージシーケンスＩＤが追加されたデータ構造になる。
【００８３】
図４に示すようにメッセージシーケンスが分岐する場合がある。この場合であっても、分岐するメッセージシーケンスにそれぞれ個別にメッセージシーケンスＩＤを付加することができる。例えば、メッセージが分岐して、同一の関連メッセージＩＤを有するメッセージログが複数存在していることが、ステップＡ４やステップＡ９で明らかになった場合、メッセージシーケンス導出手段１０７は、分岐による入力メッセージに対する増加メッセージ数分だけ、ステップＡ３で特定したメッセージログのコピーを生成しておけばよい（このメッセージログのコピーは、メッセージシーケンスＩＤが付加されていない状態とする。）。そして、ステップＡ４やＡ９では、同一の関連メッセージＩＤを有するメッセージログのうち１つのみを特定すればよい。そのような処理により、メッセージシーケンスが分岐しても、同一のメッセージログを起点として途中のアプリケーションサービスで分岐するメッセージログに対して別個のメッセージシーケンスＩＤを付加することができる。例えば、図４に示す例において、メッセージｉ，ｊと連なるメッセージシーケンス、メッセージｉ，ｋと連なるメッセージシーケンス、メッセージｉ，ｌと連なるメッセージシーケンスに対し、それぞれ別個のメッセージシーケンスＩＤを付加することができる。
【００８４】
同様に、メッセージシーケンスが集約する場合であっても、集約される各メッセージシーケンスに対して異なるメッセージシーケンスＩＤが付加される。既に説明したように、あるメッセージが複数のメッセージから集約されている場合、メッセージログ取得手段１０２は、関連メッセージの情報がそれぞれ異なるが他の情報は同一になるようにして、集約されたメッセージのメッセージログを複数作成する。従って、ステップＡ６では、集約される各メッセージのメッセージログ毎にそれぞれ個別に集約後のメッセージログを特定して、集約後の各メッセージログ（関連メッセージＩＤのみが異なる各メッセージログ）それぞれに対して、異なるメッセージシーケンスＩＤを付加することができる。以上のような処理によって、図４に例示するような、メッセージｉ，ｊ，ｍと連なるメッセージシーケンス、メッセージｉ，ｋ，ｍと連なるメッセージシーケンス、およびメッセージｉ，ｌ，ｍと連なるメッセージシーケンスそれぞれに異なるメッセージシーケンスＩＤを付加することができる。
【００８５】
メッセージシーケンス導出手段１０７が、メッセージシーケンスＩＤを付加したメッセージログの集合をメッセージシーケンス集合としてメッセージシーケンス記憶手段１１２に記憶させた後、シーケンスタイプ導出手段１０８は、メッセージシーケンスを分類する処理を実行する。
【００８６】
図１１は、シーケンスタイプ導出手段１０８によるメッセージシーケンスの分類処理を示すフローチャートである。シーケンスタイプ導出手段１０８は、メッセージシーケンス記憶装置１１２からメッセージシーケンス集合を読み出す（ステップＢ１）。
【００８７】
メッセージは、メッセージのインタフェースによりアプリケーションサービス提供装置１００に入力される。従って、図１２に示すように、メッセージシーケンスは、メッセージが入力されたアプリケーションサービス提供装置１００のインタフェースを経由する。シーケンスタイプ導出手段１０８は、メッセージシーケンスが経由するアプリケーションサービス提供装置１００のインタフェースの組み合わせ（連なり）を導出し、その組み合わせ毎にメッセージシーケンスを分類する。そして、シーケンスタイプ導出手段１０８は、分類（シーケンスタイプ）毎にメッセージシーケンスの部分集合を作成する（ステップＢ２）。なお、メッセージシーケンスが同一のアプリケーションサービス提供装置１００を経由していても、メッセージが入力されるインタフェースが異なっていれば、シーケンスタイプ導出手段１０８は、シーケンスタイプが異なるものとして分類する。
【００８８】
ステップＢ２に続いて、シーケンスタイプ導出手段１０８は、１つのシーケンスタイプを選択し、そのシーケンスタイプのメッセージシーケンスを取得する。そして、シーケンスタイプ導出手段１０８は、そのシーケンスタイプのメッセージシーケンスの経路情報（シーケンスタイプ構造）を記述する（ステップＢ３）。図１３は、シーケンスタイプ構造のデータ構造の例を示す説明図である。シーケンスタイプ構造は、１つのシーケンスタイプに属するメッセージシーケンスが経由する各アプリケーションサービスの情報を含む。具体的には、アプリケーションサービスの情報として、例えば、アプリケーションサービスＩＤ、アプリケーションサービス名、メッセージが入力されるインタフェースのＩＤ（インタフェースＩＤ）、およびそのインタフェース名を含む。また、シーケンスタイプ構造は、経路情報として、そのシーケンスタイプに属するメッセージシーケンスを構成する各メッセージの送信元および送信先の情報を含む。シーケンスタイプ導出手段１０８は、ステップＢ３において、選択したシーケンスタイプのシーケンスタイプ構造を、図１３に例示するようなデータ構造に従って生成する。
【００８９】
図４で示したように、メッセージシーケンス内ではメッセージの分岐や集約がありうる。シーケンスタイプ導出手段１０８は、選択したメッセージシーケンスが経由している各インタフェース毎に、分岐・集約確率分布関数Φ（ｘ）を導出する（ステップＢ４）。分岐・集約確率分布関数は、あるアプリケーションサービスのインタフェースにメッセージが入力されて処理が行われた場合における分岐または集約により出力されるメッセージ数と、その数のメッセージが出力される確率との関係を表す関数である。シーケンスタイプ導出手段１０８は、例えば、予め記憶装置（図示せず。）に、ステップＢ４で導出される候補となる複数種類の分岐・集約確率分布関数を記憶しておく。このとき、正規分布、指数分布、ポアソン分布等の各種分布に応じた分布関数を分岐・集約確率分布関数として予め記憶しておけばよい。シーケンスタイプ導出手段１０８は、選択したメッセージシーケンスが経由している各インタフェース毎に、入力されたメッセージに基づく処理後の出力メッセージ数の分布が正規分布、指数分布、ポアソン分布等の各種分布のいずれに該当するのかを判定する。そして、判定した分布に応じた分布関数（分岐・集約確率分布関数Φ（ｘ））を予め記憶していた関数の中から選択することにより、分岐・集約確率分布関数Φ（ｘ）を導出する。なお、シーケンスタイプ導出手段１０８は、他の方法で分岐・集約確率分布関数Φ（ｘ）を導出してもよい。ステップＢ４において、シーケンスタイプ導出手段１０８は、図１４に示すように、メッセージシーケンスが経由している各インタフェース毎に分岐・集約確率分布関数を導出する。
【００９０】
また、シーケンスタイプ導出手段１０８は、ステップＢ４において、導出した分岐・集約確率分布関数の情報をシーケンスタイプ構造に追加する。分岐・集約確率分布関数の情報は、図１５に示すように、メッセージシーケンスを構成する各メッセージの送信元および送信先とともに経路情報として含める。
【００９１】
シーケンスタイプ導出手段１０８は、全ての分類に対してステップＢ３，Ｂ４の処理を完了するまで、各シーケンスタイプを選択してステップＢ３，Ｂ４の処理（シーケンスタイプ構造作成ループ）を繰り返す。すなわち、シーケンスタイプ毎に、ステップＢ３，Ｂ４の処理を繰り返し、分岐・集約確率分布関数が追加されたシーケンスタイプ構造をシーケンスタイプ毎に作成する。シーケンスタイプ導出手段１０８は、全ての分類に対してステップＢ３，Ｂ４の処理を完了したならば、インタフェース毎に導出した分岐・集約確率分布関数を追加したシーケンスタイプ構造をシーケンスタイプ記憶装置１１３に記憶させる（ステップＢ５）。さらに、シーケンスタイプ導出手段１０８は、ステップＢ５において、シーケンスタイプログを生成して、シーケンスタイプログもシーケンスタイプ記憶装置１１３に記憶させる。図１６は、シーケンスタイプログのデータ構造の例を示す説明図である。図１６に示すように、シーケンスタイプログのデータ構造は、図１０に示すテーブル（メッセージシーケンスＩＤが付加されたメッセージログのデータ構造）にシーケンスタイプの識別子（シーケンスタイプＩＤ）を追加したデータ構造になる。すなわち、シーケンスタイプログには、メッセージＩＤ、送信元アプリケーションサービスＩＤ、アプリケーションサービスＩＤ、関連メッセージＩＤ、利用インタフェース、メッセージ内容、受信時刻、新メッセージ送信時刻、メッセージシーケンスＩＤ、およびシーケンスタイプＩＤが含まれる。
【００９２】
シーケンスタイプ導出手段１０８が、シーケンスタイプ構造とシーケンスタイプログをシーケンスタイプ記憶装置１１３に記憶させた後、シーケンス処理時間計算式導出手段１０９は、アプリケーションサービスの処理時間の計算式（シーケンス処理時間計算式）を導出する。シーケンス処理時間計算式導出手段１０９は、各シーケンスタイプにおけるサービス（アプリケーションサービス提供装置１００）のインタフェース毎にシーケンス処理時間計算式を導出する。
【００９３】
図１７は、シーケンス処理時間計算式の導出処理を示すフローチャートである。シーケンス処理時間計算式導出手段１０９は、シーケンスタイプ記憶装置１１３よりシーケンスタイプログとシーケンスタイプ構造を読み出す（ステップＣ１）。そして、各シーケンスタイプのメッセージシーケンスがアプリケーションサービス（アプリケーションサービス提供装置１００）にて処理される際の処理時間とメッセージ多重度の組を算出する（ステップＣ２）。このとき、シーケンス処理時間計算式導出手段１０９は、シーケンスタイプログに記述された受信時刻、新メッセージの送信時刻をそれぞれ処理開始時刻、処理終了時刻とみなし、両時刻の差をアプリケーションサービスの処理時間として算出すればよい。また、シーケンス処理時間計算式導出手段１０９は、各メッセージシーケンスが経由したアプリケーションサービス毎に処理時間を算出する。また、シーケンス処理時間計算式導出手段１０９は、ステップＣ２において、メッセージシーケンスに属するメッセージ毎、かつ、メッセージタイプ毎にメッセージ多重度を計算する。メッセージ多重度は、アプリケーションサービス（アプリケーションサービス提供装置）が個々のメッセージを処理した期間におけるそのアプリケーションサービス提供装置が処理を行ったメッセージの多寡を示す指標である。メッセージ多重度は、シーケンスタイプ毎に算出するので、あるメッセージ（Ｍｓａとする。）を選択して、Ｍｓａに関するメッセージ多重度を求める場合、Ｍｓａを含むメッセージシーケンスのシーケンスタイプについてメッセージ多重度を算出し、また、他のシーケンスタイプに属するメッセージシーケンスのメッセージがＭｓａと同一アプリケーションサービスで処理されていたなら、そのシーケンスタイプについてのメッセージ多重度も算出する。
【００９４】
以下に、メッセージ多重度の算出方法を説明する。シーケンス処理時間計算式導出手段１０９は、メッセージ多重度算出時に、まず、シーケンスタイプログからメッセージシーケンスを１つ取り出す。次に、シーケンス処理時間計算式導出手段１０９は、そのメッセージシーケンス内のメッセージを１つ選択する。シーケンス処理時間計算式導出手段１０９は、各メッセージの処理開始時刻（受信時刻）および処理終了時刻（新メッセージ送信時刻）を参照し、選択したメッセージを処理したアプリケーションサービスにおいて、選択したメッセージと重複した期間に処理中だったメッセージシーケンスを特定する。ここで、同一のメッセージタイプに属するメッセージシーケンスであって、同一アプリケーションサービスで同一の期間に処理されたメッセージの数を多重数と記すことにする。シーケンス処理時間計算式導出手段１０９は、各多重数毎に、以下の式の値を計算する。
【００９５】
（「多重数ｎの期間」／「取り出したメッセージシーケンスの処理時間」）×「メッセージシーケンスの多重数ｎ」
【００９６】
ここで、「取り出したメッセージシーケンスの処理時間」とは、具体的には、そのメッセージシーケンスから選択したメッセージの処理時間である。シーケンス処理時間計算式導出手段１０９は、各多重数毎に上記の式の値を計算し、その和を、選択したメッセージのメッセージ多重度とする。また、他のシーケンスタイプに属するメッセージシーケンスのメッセージが選択したと同一アプリケーションサービスで処理されていたなら、そのシーケンスタイプについてのメッセージ多重度も同様に算出する。以上のメッセージ多重度算出処理を、各メッセージシーケンスの各メッセージ毎に行う。
【００９７】
図１８は、メッセージ多重度の計算例を示す説明図である。図１８に示すように、アプリケーションサービス（アプリケーションサービス提供装置）ＷＳｐを、メッセージシーケンスＭＳａ，ＭＳｂ，ＭＳｚが経由しているものとする。そして、メッセージシーケンスＭＳａ，ＭＳｂは同じシーケンスタイプＳＴ１に属し、メッセージシーケンスＭＳｚはＳＴ１とは異なるシーケンスタイプＳＴ２に属しているものとする。図１８では、シーケンス処理時間計算式導出手段１０９がメッセージシーケンスＭＳａを取り出した場合の例を示している。シーケンス処理時間計算式導出手段１０９が、メッセージシーケンスＭＳａから、アプリケーションサービスＷＳｐで処理されるメッセージを選択したとする。この選択したメッセージの処理開始時刻、処理終了時刻をそれぞれａ，ｄとする。また、アプリケーションサービスＷＳｐで処理されるメッセージシーケンスＭＳｂ内のメッセージの処理開始時刻をｂとする。アプリケーションサービスＷＳｐで処理されるメッセージシーケンスＭＳｚ内の処理終了時刻をｃとする。この時刻を早い順に並べると、図１８に示すように、ａ，ｂ，ｃ，ｄの順になる。
【００９８】
シーケンス処理時間計算式導出手段１０９は、選択したメッセージに着目して、メッセージを処理したアプリケーションサービスにおいて、選択したメッセージと重複した期間に処理中だったメッセージシーケンスを特定する。まず、シーケンスタイプＳＴ１に属するメッセージシーケンスＭＳｂを特定し、シーケンスタイプＳＴ１についてメッセージ多重度を算出する。シーケンス処理時間計算式導出手段１０９は、選択したメッセージの処理時間（時刻ｄと時刻ａとの差、すなわち、ｄ−ａ）における多重数として、「１」，「２」を算出する。多重数１の期間は「ｂ−ａ」であり、多重数２の期間は「ｄ−ｂ」である。なおここでは、シーケンスタイプＳＴ１についてメッセージ多重度を算出しているので、シーケンス処理時間計算式導出手段１０９は、ＭＳｚを多重数としてカウントしない。シーケンス処理時間計算式導出手段１０９は、多重数１，２それぞれについて、以下の式の値を計算し、その和を多重度とする。
【００９９】
（「多重数ｎの期間」／「ＭＳａの処理時間」）×「メッセージシーケンスの多重数ｎ」
【０１００】
よって、選択したメッセージのシーケンスタイプＳＴ１に関するメッセージ多重度は、（（ｂ−ａ）／（ｄ−ａ））×１＋（（ｄ−ｂ）／（ｄ−ａ））×２となる。
【０１０１】
同様に、選択したメッセージのシーケンスタイプＳＴ２に関するメッセージ多重度は、（（ｃ−ａ）／（ｄ−ａ））×１となる。なお、シーケンスタイプＳＴ２に関するメッセージ多重度を算出する場合には、シーケンス処理時間計算式導出手段１０９は、ＭＳａ，ＭＳｂを多重数としてカウントしない。
【０１０２】
ステップＣ２のループ処理（メッセージ多重度算出ループ）は、各メッセージシーケンスの各メッセージ毎のメッセージ多重度の算出が完了するまで繰り返す。各メッセージシーケンスの各メッセージ毎にメッセージ多重度を算出したならば（メッセージ多重度算出ループが完了したならば）、シーケンス処理時間計算式導出手段１０９は、多重度テーブルに、メッセージＩＤ、シーケンスＩＤ（メッセージシーケンスＩＤ）、アプリケーションサービスＩＤ、利用インタフェース、処理時間、メッセージ多重度を格納する（ステップＣ３）。多重度テーブルは、処理時間とメッセージ多重度との対応を示す。図１９は、多重度テーブルの構造の例を示す説明図である。図１９に示すように、多重度テーブルには、上記のメッセージＩＤ等の各情報が格納される。シーケンス処理時間計算式導出手段１０９は、メッセージ多重度等を多重度テーブルに格納する処理を、個々のメッセージシーケンス内の全てのメッセージに対して行い、全てのメッセージシーケンスに対して繰り返す。
【０１０３】
メッセージ多重度等を多重度テーブルに格納する処理（ステップＣ３）の後、シーケンス処理時間計算式導出手段１０９は、シーケンス処理時間計算式を導出し（ステップＣ４）、導出したシーケンス処理時間計算式をシーケンスタイプ構造に追加する（ステップＣ５）処理を行う。ステップＣ５において、シーケンス処理時間計算式導出手段１０９は、図２０に示すように、メッセージシーケンスを構成する各メッセージの送信元および送信先や分岐・集約確率分布関数とともにシーケンス処理時間計算式を経路情報として追加する。時間計算式導出手段１０９は、シーケンス処理時間計算式導出（ステップＣ４）およびシーケンスタイプ構造への追加（ステップＣ５）の処理（シーケンス処理時間計算式導出ループ）を、各メッセージシーケンスが経由している各インタフェース毎に繰り返し行う。
【０１０４】
以下、シーケンス処理時間計算式について説明する。入力されたメッセージの処理時間（Ｆと表すことにする。）と、メッセージ多重度（λと表すことにする。）との間には正の相関関係がある。従って、Ｆ＝ｆ（λ）という関係を定義することにより、メッセージ多重度λを基に処理時間Ｆを算出することができる。Ｆ＝ｆ（λ）という関係式は、多重度テーブルの情報に対して、統計的手法の重回帰分析を適用することにより導出することができる。重回帰分析は、ある変数（目的変数）と、目的変数に影響する変数（説明変数）の間の関係式を求めるための分析手法である。重回帰分析による関係式の導出は公知であるので、公知の重回帰分析による関係式の導出方法に従って、Ｆ＝ｆ（λ）を導出すればよい。本例では、処理時間Ｆが目的変数に相当し、メッセージ多重度λが説明変数に相当する。
【０１０５】
重回帰分析により、例えば、シーケンスタイプＳＴ１のメッセージシーケンスがアプリケーションサービスＷＳ２にて処理される際の処理時間（ＦＷＳ２＿ｓ１とする。）を以下のようなシーケンス処理時間計算式として導出することができる。
【０１０６】
ＦＷＳ２＿ｓ１＝ｆＷＳ２＿ｓ１（λｓ１，λｓ２，λｓ３）＝Ｄλｓ１＋Ｅλｓ２＋Ｆλｓ３＋ｐ
【０１０７】
ただし、上記式において、λｓ１，λｓ２，λｓ３は、シーケンスタイプ毎のメッセージ多重度である。また、上記式におけるＤ，Ｅ，Ｆ，ｐは、統計的手法によって導出された係数と定数である。
【０１０８】
なお、以上の説明では、統計的手法として重回帰分析を適用してメッセージ多重度λから処理時間Ｆを求めるシーケンス処理時間計算式を導出するものとして説明した。メッセージ多重度λから処理時間Ｆを求めるシーケンス処理時間計算式を導出する方法は、重回帰分析を適用する方法に限定されず、他の方法で導出してもよい。例えば、ニューラルネットワークを適用してシーケンス処理時間計算式を導出してもよい。ニューラルネットワークを適用して関係式を求める方法も公知である。
【０１０９】
時間計算式導出手段１０９は、各メッセージシーケンスが経由している各インタフェース毎にステップＣ４，Ｃ５を繰り返し、シーケンス処理時間計算式導出およびシーケンスタイプ構造への追加を完了したならば、シーケンス処理時間計算式導出が追加されたシーケンスタイプ構造をシーケンスタイプ構造記憶装置１１４に記憶させる（ステップＣ６）。
【０１１０】
続いて、動作モデル導出手段１１０が、動作モデル導出処理を実行する。図２１は、動作モデル導出処理を示すフローチャートである。動作モデルを導出する際、動作モデル導出手段１１０は、シーケンスタイプ構造記憶装置１１４から、ステップＣ６で記憶されたシーケンスタイプ構造の集合を読み出す（ステップＤ１）。
【０１１１】
次に、動作モデル導出手段１１０は、ステップＤ１で読み出した各シーケンスタイプ構造の情報に基づいて、動作モデルを導出する（ステップＤ２）。図２２は、動作モデルのデータ構造の例を示す説明図である。動作モデルは、シーケンスタイプ構造と同様に、例えば、アプリケーションサービスＩＤ、アプリケーションサービス名、インタフェースＩＤ、インタフェース名を含むアプリケーションサービス情報を含む。また、動作モデルは、各シーケンスタイプ毎の経路情報の集合を含む。この経路情報は、送信元、送信先、分岐・集約確率分布関数を含む。動作モデルは、初期状態では、具体的なアプリケーションサービス情報や各シーケンスタイプ毎の経路情報の集合を有していない。動作モデル導出手段１１０は、読み出した各シーケンスタイプ構造をそれぞれ選択し、選択したシーケンスタイプ構造に含まれる各アプリケーションサービス情報（アプリケーションサービスＩＤ、アプリケーションサービス名、インタフェースＩＤ、インタフェース名）を動作モデルに追加し、選択したシーケンスタイプ構造に含まれる経路情報の集合を動作モデルに追加する処理（ステップＤ２）を繰り返し、動作モデルを導出する。動作モデル導出手段１１０は、全てのシーケンスタイプ構造について動作モデルへの情報追加が完了したならばステップＤ２の繰り返し処理（動作モデル作成ループ）を終了する。ただし、選択したシーケンスタイプ構造に含まれるアプリケーションサービス情報が、既に動作モデルに追加されている場合には、そのアプリケーションサービス情報の追加は行わない。従って、動作モデル内に、同一のアプリケーション情報が重複して記述されることはない。
【０１１２】
各シーケンスタイプ構造に含まれる情報に基づいて動作モデルを作成した後、動作モデル導出手段１１０は、動作モデルを動作モデル記憶装置１１５に記憶させる（ステップＤ３）。
【０１１３】
図２３は、動作モデルをグラフとして示した模式図である。図２３に例示したグラフでは、アプリケーションサービス（アプリケーションサービス提供装置１００）を矩形で示し、アプリケーションサービスのインタフェースを丸で示している。また、矩形と丸を経由する曲線はシーケンスタイプの経路を示している。
【０１１４】
次に、ビジネスプロセスシミュレート装置の動作について説明する。図２４は、ビジネスプロセスシミュレート装置の動作を示すフローチャートである。ビジネスプロセスシミュレート装置１１６の動作モデル読み出し手段１１７（図５参照。）は、動作モデル記憶装置１１５から動作モデルを読み出し、パラメータ設定手段１１８に渡す（ステップＥ１）。パラメータ設定手段１１８は、入力装置１２４を介してメッセージシーケンス到着間隔を入力される（ステップＥ２）。ステップＥ２において、パラメータ設定手段１１８は、シーケンスタイプ毎にメッセージシーケンス到着間隔を入力される。すなわち、各シーケンスタイプ毎のメッセージシーケンス到着間隔の入力が完了するまで、ステップＥ２のループ（到着間隔設定ループ）が繰り返される。ここで、メッセージシーケンス到着時間間隔は、メッセージシーケンスに含まれるメッセージのうち、最初のメッセージが、そのメッセージを処理するアプリケーションサービス提供装置１００に仮想的に到着するものと仮定した場合における到着間隔の設定値である。また、ステップＥ２において、パラメータ設定手段１１８は、入力されたメッセージシーケンス到着時間間隔と動作モデル読み出し手段１１７から渡された動作モデルとを動作モデル実行手段１１９に渡す。
【０１１５】
動作モデル実行手段１１９は、動作モデルおよび各シーケンスタイプ毎のメッセージシーケンス到着時間間隔とに基づいて、管理対象システムのビジネスプロセス動作を模擬実行する（ステップＥ３）。既に説明したように、この模擬実行では、各アプリケーションサービス提供装置１００に各シーケンスタイプのメッセージシーケンスに属するメッセージが入力された場合の各メッセージに対する処理開始時刻（メッセージ受信時刻）および処理終了時刻（新メッセージ送信時刻）を模擬的に算出する。
【０１１６】
図２５は、ビジネスプロセス動作の模擬実行処理（ステップＥ３の処理）の詳細を示すフローチャートである。動作モデル実行手段１１９は、模擬的な動作として、各アプリケーションサービス提供装置にメッセージが入力されたと判定した場合に、ステップＥ４以降の処理を実行し、そのメッセージが入力された時刻（模擬的な受信時刻）およびそのメッセージに応じた処理の終了時刻（模擬的な新メッセージ受信時刻）を算出する。例えば、模擬実行処理開始後に、最初のメッセージが、そのメッセージを処理する最上流のアプリケーションサービス提供装置１００に仮想的に到着したと判定した場合、模擬的にそのメッセージの受信時刻を定め、ステップＥ４以降の処理を実行してそのメッセージに応じた処理の終了時刻（新メッセージ送信時刻）を計算する。そして、その新メッセージ送信時刻に新メッセージが次のアプリケーションサービス提供装置１００に到着した（受信された）と判定し、ステップＥ４以降の処理を実行してそのメッセージに応じた処理の終了時刻（次の新メッセージ送信時刻）を計算する。この処理を繰り返し、各メッセージの処理開始時刻および処理終了時刻をそれぞれ計算する。また、最上流のアプリケーションサービス提供装置１００では、各シーケンスタイプのメッセージシーケンス到着時間間隔毎に、各シーケンスタイプに属するメッセージシーケンスの最初のメッセージが到着するものとして、新たにメッセージが到着したと判定した場合に、ステップＥ４以降の処理を行う。この場合にも、新メッセージ送信時刻に、次のアプリケーションサービス提供装置１００に新メッセージが入力されたと判定し、その新メッセージに応じた処理開始時刻や処理終了時刻を定めていくことを繰り返す。
【０１１７】
メッセージシーケンス到着時間間隔毎に最上流のアプリケーションサービス提供装置１００にメッセージが受信されたと判定し、そのメッセージについて動作モデル実行手段１１９は、ステップＥ４以降の処理を実行する。また、このとき、既に下流（処理順序が後）のプリケーションサービス提供装置１００にもメッセージが到着していると判定して、そのメッセージについてもステップＥ４以降の処理を実行する。従って、動作モデル実行手段１１９は、ステップＥ４以降の処理を並列に実行することになる。
【０１１８】
以下、あるメッセージがアプリケーションサービス提供装置１００に到着したと判定される場合における動作モデル実行手段１１９の処理を図２５を参照して説明する。動作モデル実行手段１１９は、あるアプリケーションサービス提供装置１００が新メッセージを送信する新メッセージ送信時刻を算出した場合、その新メッセージ送信時刻を受信時刻として、そのメッセージが次のアプリケーションサービス提供装置１００に到着したと判定する（ステップＥ４）。なお、最上流のアプリケーションサービス提供装置１００に関しては、最初に定めたメッセージ受信時刻以降メッセージシーケンス到着時間間隔毎に、メッセージが到着したと判定する（ステップＥ４）。既に述べたように、動作モデル実行手段１１９は、これらのステップＥ４以降の処理をそれぞれ並列に実行する。
【０１１９】
メッセージがアプリケーションサービス提供装置１００に到着した（受信された）と判定した後（ステップＥ４の後）、動作モデル実行手段１１９は、パラメータ設定手段１１８から渡された動作モデルの中から、到着したと判定したメッセージが入力されるアプリケーションサービスに対応するシーケンス処理時間計算式を抽出する（ステップＥ５）。このとき、そのメッセージを含むメッセージシーケンスのシーケンスタイプとして記述された経路情報の集合（図２２参照。）の中から、そのメッセージが入力されるアプリケーションサービスに対応するシーケンス処理時間計算式を抽出すればよい。
【０１２０】
次に、動作モデル実行手段１１９は、ステップＥ４においてアプリケーションサービス提供装置に到着したと判定されたメッセージの処理開始時刻に、そのアプリケーションサービス提供装置によって処理中であると判断されるメッセージシーケンスの数をシーケンスタイプ毎にカウントし、そのカウント値を各シーケンスタイプのメッセージ多重度とする（ステップＥ６）。このとき、新たに到着したと判定されたメッセージもカウント対象に含める。
【０１２１】
次に、動作モデル実行手段１１９は、ステップＥ６で求めた多重度が不変であるものとして、ステップＥ４においてアプリケーションサービス提供装置に到着したと判定されたメッセージに応じた処理の処理時間を算出する（ステップＥ７）。この処理時間は、ステップＥ５で抽出したシーケンス処理時間計算式に、ステップＥ６で求めたメッセージ多重度を代入することによって算出すればよい。ステップＥ７で求めた処理時間を、処理時間初期値と記すことにする。図２６は、処理時間初期値を示す説明図である。図２６に示すように、ステップＥ４において到着したと判定されたメッセージＭ０（シーケンスタイプＳＴ０に属するものとする。）の処理開始時刻ｔ０において、シーケンスタイプＳＴ１のメッセージシーケンスのメッセージＭ１が処理中であったとする。メッセージＭ１の処理開始時刻は、メッセージＭ０の処理開始時刻よりも早い時刻として算出されているとする。また、メッセージＭ１の処理終了時刻は、メッセージＭ０の処理時間初期値における処理終了時刻よりも早い時刻として算出されているものとする。この場合、動作モデル実行手段１１９は、ステップＥ６でシーケンスタイプＳＴ０，ＳＴ１の多重度がそれぞれ１であると判定する。そして、動作モデル実行手段１１９は、ステップＥ７で、この多重度が変化しないことを前提にして（Ｍ０の処理終了時までＭ１の処理が続くものとして）メッセージＭ０の処理時間を算出する。しかし、実際には、例えば、図２６に示す時刻ｔ１でＭ１の処理は終了し、Ｍ０の処理はステップＥ７で求めた処理時間とは異なることになる。そして、後述するステップＥ８〜Ｅ１１でＭ０の処理時間を算出し直す処理を繰り返す。そこで、ステップＥ７で求めた処理時間を、便宜的に処理時間初期値と記す。
【０１２２】
動作モデル実行手段１１９は、処理時間初期値の期間内で、他のメッセージシーケンスの処理が開始されたり、他のメッセージシーケンスの処理が終了して、各シーケンスタイプの多重度が変化したかを判定する（ステップＥ８）。動作モデル実行手段１１９は、メッセージがアプリケーションサービス提供装置に到着したと判定する度に、ステップＥ４以降の処理を並列に実行する。よって、並列に実行している他のメッセージに関する処理の進行状況を確認することにより、新たなメッセージの処理が開始され多重度が増加したのか、他のメッセージの終了時刻が確定し多重度が減少したのかを確認することができる。
【０１２３】
多重度の変化があった場合、動作モデル実行手段１１９は、ステップＥ４においてアプリケーションサービス提供装置に到着したと判定されたメッセージの処理開始時刻（図２６の例では時刻ｔ０）から、多重度が変化した時刻までの経過時間を求める（ステップＥ９）。続いて、動作モデル実行手段１１９は、変化後の多重度が不変であると仮定して、再度、メッセージの処理時間を算出する（ステップＥ１０）。この処理時間は、ステップＥ５で抽出したシーケンス処理時間計算式に、変化後のメッセージ多重度を代入することによって算出すればよい。
【０１２４】
続いて、動作モデル実行手段１１９は、部分処理時間を計算する（ステップＥ１１）。部分処理時間は、多重度が変更した時刻（模擬動作における時刻）からメッセージの処理終了時刻までの時間である。図２６に示す例において、例えば、メッセージの処理開始時刻ｔ０から多重度変化時刻ｔ１までの時間が処理時間初期値の７０％であったとする。すると、多重度変化時刻までに処理の７０％が完了しているとみなすことができる。よって、部分処理時間は、ステップＥ１０で再計算した時間の３０％であるとみなすことができる。よって、部分処理時間の算出式は、以下のように一般化することができる。
【０１２５】
「部分処理時間」＝「再計算した処理時間」×（１−（「既に経過した時間」／「元の処理時間」））
【０１２６】
部分処理時間を計算したならば、動作モデル実行手段１１９は、部分処理時間が経過する間に多重度が変化するか否かを判定する（ステップＥ８）。
【０１２７】
部分処理時間が経過する間に、再度、多重度が変化するならば、動作モデル実行手段１１９は、ステップＥ９以降の処理を繰り返す。すなわち、アプリケーションサービス提供装置に到着したと判定されたメッセージの処理開始時刻（図２６の例では時刻ｔ０）から、その多重度変化時刻までの経過時間を求め（ステップＥ９）、変化後の多重度が不変であると仮定して、メッセージの処理時間を再度算出する（ステップＥ１０）。そして、上記の「部分処理時間」の算出式を用いて、部分処理時間を算出する（ステップＥ１１）。
【０１２８】
なお、上記の「部分処理時間」の算出式における「再計算した処理時間」は、ステップＥ１０で求めた処理時間であり、「既に経過した時間」は、ステップＥ９で求めた経過時間である。また、最初にステップＥ１１に移行した場合には、「部分処理時間」の算出式における「元の処理時間」として、処理時間初期値を用いる。ステップＥ１１への移行が２回目以降である場合には、前回のループのステップＥ１０で再計算した処理時間を「元の処理時間」とすればよい。また、ステップＥ１１への移行が２回目以降である場合には、「既に経過した時間」は、以下のように計算すればよい。
【０１２９】
「既に経過した時間」＝「前回のループのステップＥ１０で再計算した処理時間」−「前回のループのステップＥ１１で計算した部分処理時間」＋「前回の多重度変化時刻から新たな多重度変化時刻までの時間」
【０１３０】
ここで、「前回のループのステップＥ１０で再計算した処理時間」−「前回のループのステップＥ１１で計算した部分処理時間」は、処理開始時刻から前回の多重度変化時刻（模擬動作上の時刻）までの経過時間を意味する。その経過時間に、「前回の多重度変化時刻から新たな多重度変化時刻までの時間」を加算することによって、処理開始時刻から新たな多重度変化時刻までの経過時間、すなわち「既に経過した時間」を求めることができる。例えば、「前回のループのステップＥ１０で再計算した処理時間」が２０秒であり、前回のループのステップＥ１１で計算した部分処理時間」が８秒であったとする。この場合、２０秒−８秒＝１２秒が、処理開始時刻から前回の多重度変化時刻までの時間である。また、「前回の多重度変化時刻から新たな多重度変化時刻までの時間」が４秒であったとすると、処理開始時刻から新たな多重度変化時刻までの時間（すなわち、「既に経過した時間」）は、１２秒＋４秒＝１６秒となる。よって、全体の“１６／２０（この２０は、前回のループのステップＥ１０で再計算した処理時間である）”だけ、処理が進んだことになる。従って、本例では、「再計算した処理時間」に（１−１６／２０）を乗じることによって、部分処理時間を算出できる。例えば、「再計算した処理時間」が３０秒であるとすると、部分処理時間は、３０×（１−１６／２０）＝６秒と算出することができる。
【０１３１】
部分処理時間が経過するまでの間に多重度が変化しなければ、動作モデル実行手段１１９は、ステップＥ８以降のループ（処理時間算出ループ）を終了し、部分処理時間の終了時刻を、ステップＥ４においてアプリケーションサービス提供装置に到着したと判定されたメッセージの処理終了時刻（新メッセージ送信時刻）とする。
【０１３２】
また、ステップＥ１０で再計算した処理時間が、ステップＥ９で計算した経過時間よりも短い場合が生じ得る。この場合、動作モデル実行手段１１９は、直前の多重度変化時刻を処理終了時刻（新メッセージ送信時刻）とする。
【０１３３】
ステップＥ４においてアプリケーションサービス提供装置に到着したと判定されたメッセージの処理終了時刻が確定した後、動作モデル実行手段１１９は、処理終了時に分岐または集約によって送信されるメッセージ（新メッセージ）数を計算する（ステップＥ１２）。ステップＥ１２において、動作モデル実行手段１１９は、まず、ステップＥ４においてアプリケーションサービス提供装置に到着したと判定されたメッセージのシーケンスタイプを判定し、動作モデルから、そのシーケンスタイプに対応した分岐・集約確率分布関数（Φｗｓ１＿ｓ１（ｘ）とする。）を読み出す。分岐・集約確率分布関数Φｗｓ１＿ｓ１（ｘ）において、ｘは、分岐・集約数（分岐または集約により出力されるメッセージ数）を表す変数である。また、Φｗｓ１＿ｓ１（ｘ）は、ｘだけメッセージが出力される確率を表す。以下の説明では、Φｗｓ１＿ｓ１（ｘ）が、１−ｅ−ｘという指数関数である場合を例に説明する。すなわち、Φｗｓ１＿ｓ１（ｘ）＝１−ｅ−ｘ＝ｕであるものとして説明する。
【０１３４】
動作モデル実行手段１１９は、Φｗｓ１＿ｓ１（ｘ）を読み出したならば、Φｗｓ１＿ｓ１（ｘ）＝１−ｅ−ｘ＝ｕの逆関数を導出する。本例では、分岐・集約確率分布関数Φｗｓ１＿ｓ１（ｘ）の逆関数は、ｘ＝−ｌｏｇ（１−ｕ）である。ここで、“ｕ”も“１−ｕ”も一様乱数であるため、ｘ＝−ｌｏｇ（ｕ）とする。
【０１３５】
動作モデル実行手段１１９は、例えば、非特許文献１に記載されている“メルセンヌ  ツイスター（Mersenne Twister）法”等を用いた乱数発生器（図示せず。）により、乱数を発生させる。動作モデル実行手段１１９は、その乱数をｘ＝−ｌｏｇ（ｕ）におけるｕに代入してｘを計算し、このｘに基づいて分岐・集約数を求める。
【０１３６】
ｘの値が１以上の場合、動作モデル実行手段１１９は、小数点以下を切り上げて整数とし、その整数だけメッセージを出力したものとする。切り上げた整数が２以上であれば、メッセージが分岐したことになる。
【０１３７】
ｘの値が１未満の場合、１つのメッセージが出力される確率がｘであるとして、動作モデル実行手段１１９は、１つのメッセージが出力されることになるか否かを判定する。例えば、動作モデル実行手段１１９は、乱数発生器（図示せず。）を用いて０以上１未満の乱数ａを発生させる。そして、ｘ≧ａならば１つのメッセージが出力されると判定する。ｘ＜ａならばメッセージが出力されないと判定する。実際の分散アプリケーションシステムにおいてメッセージが収束する場合、複数のメッセージが入力されて、その数よりも少ないメッセージ数が出力される。しかし、動作モデル実行手段１１９による模擬動作では、アプリケーションサービスに到着したと判定された個々のメッセージについてそれぞれステップＥ４以降の動作を行う。そのため、個々のメッセージそれぞれが、１つのメッセージを出力するか、あるいはメッセージを出力しないかを確率的に判定することにより、メッセージ数の減少（すなわち集約）を模擬している。
【０１３８】
ステップＥ１２で１つ以上のメッセージが出力されると判定した場合、ステップＥ１３に移行する。ステップＥ１３では、新たに出力されると判定されたメッセージの数だけ、新規にステップＥ４以降の動作を開始する。そして、動作モデル実行手段１１９は、模擬実行ログをシミュレート結果取得手段１２０（図５参照。）に渡す。シミュレート結果取得手段１２０は、模擬実行ログをシミュレート結果記憶装置１２２に記憶させるとともに、出力装置１２３に模擬実行ログを出力させる。
【０１３９】
ステップＥ１２でメッセージが出力されないと判定した場合、動作モデル実行手段１１９は、ステップＥ１３に移行せず、ステップＥ１４に移行する。すなわち、メッセージ出力がないので新規にステップＥ４以降の動作を開始せず、模擬実行ログをシミュレート結果取得手段１２０に渡す。シミュレート結果取得手段１２０は、模擬実行ログをシミュレート結果記憶装置１２２に記憶させるとともに、出力装置１２３に模擬実行ログを出力させる。
【０１４０】
図２７は、模擬実行ログのデータ構造の例を示す説明図である。図２７に示すように、模擬実行ログには、メッセージシーケンスＩＤ、シーケンスタイプＩＤ、送信元アプリケーションサービスＩＤ、アプリケーションサービスＩＤ、利用インタフェース、受信時刻、新メッセージ送信時刻が含まれる。オペレータは、出力された模擬実行ログによって、シミュレーションによるビジネスプロセス処理システムの振る舞いを観測することができる。
【０１４１】
また、ステップＥ２で入力するメッセージシーケンス到着間隔を変更して、再度模擬動作を実行させることにより、メッセージシーケンス到着間隔変更後の動作状態も観測することができる。よって、実際のビジネスプロセス処理システムにおいてメッセージシーケンス到着間隔が変更された場合の動作状態を予測することができる。また、メッセージシーケンス到着間隔を一定の定めたまま模擬動作を実行するのではなく、メッセージシーケンス到着間隔を確率分布などによって変化させたり、メッセージシーケンス到着間隔が突発的に変化するようなメッセージシーケンス到着間隔の設定をパラメータ設定手段１１８が行ってもよい。
【０１４２】
また、ビジネスプロセスシミュレート装置１１６が、図６に示す構成の様に過負荷判定手段１２１を備えた構成である場合、過負荷判定手段１２１によってシーケンス処理時間計算式毎にビジネスプロセス処理システムの診断情報（安定状態または過負荷状態の判断材料となる情報）をオペレータに提供することができる。以下、過負荷判定手段１２１がこのような情報をオペレータに提供する動作について説明する。
【０１４３】
図２８は、過負荷判定手段１２１の動作を示すフローチャートである。シミュレート結果取得手段１２０は、動作モデル実行手段１１９から模擬実行ログを渡されると、その模擬実行ログを過負荷判定手段１２１に渡す。過負荷判定手段１２１は、模擬実行ログが入力される度に、模擬実行ログを、各シーケンスタイプのシーケンス処理時間計算式毎に分類した上で、図２８に示すステップＦ１〜Ｆ３（またはステップＦ１〜Ｆ４）の処理を実行する。シーケンス処理時間計算式は、各シーケンスタイプにおける各サービスのインタフェース毎に導出されているので、共通のシーケンスタイプＩＤ、アプリケーションサービスＩＤ、インタフェースＩＤを有する模擬実行ログ毎に分類した上で、ステップＦ１〜Ｆ３（またはステップＦ１〜Ｆ４）の処理を実行すればよい。
【０１４４】
過負荷判定処理手段１２１は、動作モデル実行手段１１９からシミュレート結果取得手段１２０を介して模擬実行ログを受け取ると、受信時刻および新メッセージ送信時刻の差を算出することにより、模擬的に求められたメッセージの処理時間を算出する（ステップＦ１）。また、過負荷判定処理手段１２１は、例えば、同一のシーケンス処理時間計算式に対応する取得済みの模擬実行ログおよび新たに取得した模擬実行ログの受信時刻の情報から、アプリケーションサービスに対するメッセージシーケンスの平均到着頻度を求める（ステップＦ２）。そして、過負荷判定処理手段１２１は、これまでの平均到着頻度が一定（あるいは、これまでの平均到着頻度の変化が所定の範囲内）であって、処理時間が所定値以上増加しているか否かを判定する（ステップＦ３）。これまでの平均到着頻度が一定（あるいは、これまでの平均到着頻度の変化が所定の範囲内）であって、処理時間が所定値以上増加しているならば、過負荷判定手段１２１は、入力された模擬実行ログに対応する過負荷判定フラグをオンに設定する。過負荷判定フラグは、オンが連続的に設定されることにより過負荷状態であることを示すフラグである。過負荷判定フラグをオンに設定した後、次の模擬実行ログが入力されたときに、ステップＦ１以降の処理（過負荷判定ループ）を繰り返す。これまでの平均到着頻度が一定（あるいは、これまでの平均到着頻度の変化が所定の範囲内）であって、処理時間が所定値以上増加していないならば、次の模擬実行ログが入力されたときに、ステップＦ１以降の処理（過負荷判定ループ）を繰り返す。
【０１４５】
図２９は、処理時間の増加を示す説明図である。例えばアプリケーションサービスＷＳ１において、時刻ｔ０に処理を開始したメッセージシーケンスｍｓ０(シーケンスタイプｓ０に属する)の処理時間がＦｗｓ０＿ｍｓ０であるとする。また、時刻ｔ１に処理を開始したメッセージシーケンスｍｓ１(シーケンスタイプｓ１に属する)の処理時間がＦｗｓ１＿ｍｓ１であるとする。ｔ０−ｔ１間の平均到着頻度がδｓ１＿ｗｓ１で一定の場合において、図２９に示すように、処理時間がＦｗｓ０＿ｍｓ０からＦｗｓ１＿ｍｓ１まで増加したとする。平均到着頻度が一定であるにも関わらず、時間経過とともに処理時間が増加しているので、このような場合、過負荷判定手段１２１は、過負荷判定フラグをオンに設定する。
【０１４６】
動作モデル実行手段１１９からの模擬実行ログの入力がなくなったならば、過負荷判定手段１２１は、過負荷判定ループを終了し、過負荷判定ログをシミュレート結果記憶装置１２２に記憶させる（ステップＦ５）。あるいは、過負荷判定手段１２１は、過負荷判定ログを出力装置１２３に出力（例えば表示出力）してもよい。
【０１４７】
図３０は、過負荷判定ログのデータ構造の例を示す説明図である。過負荷判定ログは、例えば、図３０に示すように、メッセージシーケンスＩＤ、シーケンスタイプＩＤ、アプリケーションサービスＩＤ、利用インタフェース、受信時刻、新メッセージ送信時刻、平均到着頻度、過負荷判定の情報等を含む。「過負荷判定」の情報は、例えば、過負荷判定フラグがオン（TRUE）になっているか否かを示す情報である。なお、過負荷判定ログは、例えば、ステップＦ１から始まるループ処理を行いながら作成すればよい。
【０１４８】
オペレータは、シミュレート結果記憶装置１２２に記憶された過負荷判定ログまたは出力装置１２３に表示された過負荷判定ログを参照して、アプリケーションサービス提供装置が過負荷状態になるか否かを判断することができる。オペレータは、過負荷判定フラグが連続的にオンになっているならば過負荷状態であると判断すればよい。また、過負荷フラグが単発的にオンになっている場合には安定状態と判断していよい。過負荷フラグがオンになっていなければ安定状態を示している。
【０１４９】
ビジネスプロセスシミュレート装置１１６が過負荷判定手段１２１を備えた構成において、シミュレート結果取得手段１２０は、模擬実行ログをシミュレート結果記憶装置１２２に記憶させるとともに、出力装置１２３に模擬実行ログを出力させてもよい。
【０１５０】
本発明によれば、シーケンスタイプ導出手段１０８が、メッセージシーケンス導出手段１０７によって導出されたメッセージシーケンスをシーケンスタイプ毎に分類する。従って、オペレータは、各シーケンスタイプに分類されるメッセージシーケンスを参照することができ、その結果、管理対象となる分散アプリケーションシステムの振舞いを把握しやすくなる。
【０１５１】
また、シーケンス処理時間計算式導出手段１０９が、シーケンス処理時間計算式を導出する。従って、管理対象システムに含まれるアプリケーションサービス提供装置１００における処理時間を計算できるようになる。
【０１５２】
また、パラメータ設定手段１１８が、各シーケンスタイプ毎に、メッセージシーケンス到着間隔を設定し、動作モデル実行手段１１９が、設定されたメッセージシーケンス到着間隔および動作モデルに基づいて、メッセージの模擬的な送受信時間を計算する。従って、到着間隔が変化した場合において、その変化が管理対象の分散アプリケーションシステムにどのような影響を及ぼすのかを予測できる。
【０１５３】
また、過負荷判定手段１２１は、平均到着頻度が一定、あるいは、平均到着頻度の変化が所定の範囲内であって、処理時間が所定値以上増加している場合に、過負荷判定フラグをオン（TRUE）とし、その情報を出力する。オペレータは、出力された情報を参照して、動作時の性能を保証する負荷範囲を見積もることができる。
【０１５４】
なお、本実施の形態の変形例として、ビジネスプロセスシミュレート装置１１６を備えない構成であってもよい。そのような構成であっても、動作モデルを導出することができる。また、アプリケーションサービス管理装置１１０が、動作モデル導出手段１１０を備えない構成であてもよい。そのような構成であっても、シーケンス処理時間計算式を導出することができる。また、アプリケーションサービス管理装置１１０が、動作モデル導出手段１１０およびシーケンス処理時間計算式導出１０９を備えない構成であってもよい。そのような構成であっても、シーケンスタイプを導出することができる。
【０１５５】
なお、特許請求の範囲に記載のメッセージ多重度算出手段、処理時間計算式導出手段は、シーケンス処理時間計算式導出手段１０９によって実現される。模擬実行手段は、動作モデル実行手段１１９によって実現される。負荷状態判定手段は、過負荷判定手段１２１によって実現される。
【実施例１】
【０１５６】
以下、本発明の実施例を示す。本実施例では、電子書籍オンラインショップでの受注・発送業務を行うビジネスプロセス処理システムを例にして説明する。また、ビジネスプロセス処理システムに含まれる各アプリケーションサービス提供装置は、ＳＯＡＰ（Simple Object Access Protocol ）等のプロトコルを利用してＸＭＬ形式のメッセージを送受信するものとする。
【０１５７】
図３１は、本発明の分散アプリケーションサービス管理システムが管理対象とするビジネスプロセス処理システムの例を示す説明図である。図３１に例示するビジネスプロセス処理システムは、５つのアプリケーションサービス提供装置１００を備えていて、各アプリケーションサービス提供装置をＷＳ１〜ＷＳ５と表すことにする。また、ＷＳ１〜ＷＳ５に対応する各アプリケーションサービス監視装置１０１をそれぞれ、Observer1 〜Observer5 として図示している。メッセージログ収集手段１０６（図３参照。）は、Observer1 〜Observer5 およびメッセージログ記憶装置１０４（図３１において図示せず。）を介して、５台のアプリケーションサービス提供装置ＷＳ１〜ＷＳ５のメッセージログを収集する。
【０１５８】
各アプリケーションサービス提供装置が提供するサービスの名称と、各アプリケーションサービス提供装置のインタフェース名を以下に示す。
【０１５９】
・受注サービス（ＷＳ１）：顧客からの商品発注を受け取る
・setCashOrder  現金発注用インタフェース
・setCreditOrder クレジット発注用インタフェース
・資格審査サービス（ＷＳ２）：注文内容の確認を行う
・qualify 決済能力確認用インタフェース
・口座管理サービス（ＷＳ３）：発注の振込みを管理する
・transferCheck 振込み確認用インタフェース
・クレジット決済サービス（ＷＳ４）：クレジット決済を管理する
・lumpSum  一括払い用インタフェース
・divided  分割払い用インタフェース
・revolving  リボルビング払い用インタフェース
・発送サービス（ＷＳ５）：  商品の発送を管理する
・shipping  商品発送用インタフェース
【０１６０】
このビジネスプロセス処理システムは以下のように動作する。ＷＳ１はビジネスプロセス処理システムの利用者から、商品情報、利用者情報、決済情報、発送先情報を持つ電子書籍発注メッセージを受け取り、商品の在庫数などを確認する。ＷＳ２は、ＷＳ１より注文ＩＤ、商品情報、利用者情報、決済情報、発送先情報を持つメッセージを受け取り利用者情報、決済情報を基に利用者の支払能力を確認する。ＷＳ３は、ＷＳ２より注文ＩＤ、商品情報、利用者情報、決済情報、発送先情報、支払保証情報を持つメッセージを受け取り、口座への入金を確認する。ＷＳ４は、ＷＳ２より注文ＩＤ、商品情報、利用者情報、決済情報、発送先情報、支払保証情報を持つメッセージを受け取り、クレジットの決済処理を行う。ＷＳ５は、ＷＳ３またはＷＳ４より注文ＩＤ、商品情報、利用者情報、決済情報、発送先情報、支払保証情報、決済証明情報を持つメッセージを受け取り、電子書籍をダウンロードするためのURLや認証用パスワードを持つメッセージを作成し、利用者に対して発送する。経路は、ＷＳ２からＷＳ３およびＷＳ４に分岐し、ＷＳ４およびＷＳ３からＷＳ５に集約する。
【０１６１】
各アプリケーションサービス提供装置１００（図３１に示す例ではＷＳ１〜ＷＳ５）はメッセージによって通信を行う。図３２に、ＷＳ１からＷＳ２へのメッセージの例を示す。アプリケーションサービス監視装置１０１のメッセージログ取得手段１０２は、図３２に例示するメッセージ、ＷＳ２がこのメッセージを受信した時刻（受信時刻）、およびＷＳ２がＷＳ３に向けた新たなメッセージを送信した時刻（新メッセージ送信時刻）の情報を取得し、メッセージログを作成する。図３３に、ＷＳ２におけるメッセージログの例を示す。メッセージログ取得手段１０２は、メッセージに含まれるメッセージＩＤ、送信元アプリケーションサービスＩＤ、アプリケーションサービスＩＤ、関連メッセージＩＤ、利用インタフェース、メッセージ内容に、受信時刻、新メッセージ送信時刻の情報を付加して図３３に例示するメッセージログを作成する。なお、図３３に示すメッセージログのデータ構造は、図８に示すデータ構造と同じである。図３１に示すビジネスプロセス処理システムの例では、各Observer1 〜Observer5 が、５つのアプリケーションサービス提供装置１００ごとに図３３に示すようなメッセージログを作成する。そして、各Observer（アプリケーションサービス監視装置１０１）のメッセージログ蓄積手段１０３がメッセージログ記憶装置１０４（図３１において図示せず。図３参照。）にメッセージログを記憶させる。アプリケーションサービス管理装置１０５のメッセージシーケンス収集手段１０６（図３参照。）は、各メッセージログ記憶装置１０４からメッセージログを収集する。
【０１６２】
メッセージシーケンス導出手段１０７（図３参照。）は、ＷＳ１のメッセージログのメッセージＩＤとＷＳ２のメッセージログの関連メッセージＩＤを基に結合することによりＷＳ１からＷＳ２までのメッセージシーケンスを作成し、図３４に示すメッセージシーケンス集合を作成する。この動作は、ステップＡ３〜Ａ５の動作である。例えば、メッセージＩＤ“ＭＳＧ＿ＷＳ２＿１”のメッセージの関連メッセージＩＤが“ＭＳＧ＿ＷＳ１＿１”であるので、メッセージＩＤ“ＭＳＧ＿ＷＳ１＿１”，“ＭＳＧ＿ＷＳ２＿１”に同一のメッセージシーケンスＩＤ“ＳＱ＿００１”が付加されている（図３４参照）。なお、本例における関連メッセージはＷＳ２への入力メッセージを生成する元となったＷＳ１への入力メッセージである。続いて、メッセージシーケンス集合内のＷＳ２のメッセージＩＤとＷＳ３のメッセージログの関連メッセージＩＤを結合することにより、ＷＳ１からＷＳ３までのメッセージシーケンスを構築する。具体的には、ＷＳ２のメッセージＩＤを関連メッセージＩＤとするＷＳ３のメッセージログに、ＷＳ２のメッセージログに付加済みのメッセージシーケンスＩＤを付加する。同様に、ＷＳ２のメッセージＩＤとＷＳ４の関連メッセージＩＤ, ＷＳ３のメッセージＩＤとＷＳ５の関連メッセージＩＤ，ＷＳ４のメッセージＩＤとＷＳ５の関連メッセージＩＤをそれぞれ結合することにより、ビジネスプロセス処理システム全体のメッセージシーケンスを構築する。この結合順序はビジネスプロセス処理システムの構成順序である。本例においては、１００個のメッセージシーケンスが導出されたとする。メッセージシーケンス導出手段１０７は、図３４に例示するメッセージシーケンス集合を、メッセージシーケンス記憶手段１１２に記憶させる。
【０１６３】
シーケンスタイプ導出手段１０８は、メッセージシーケンス記憶手段１１２からメッセージシーケンス集合を読み出し、メッセージシーケンスの経由したインタフェースの経路を基にメッセージシーケンスを分類する。本例では、導出された１００個のメッセージシーケンスが、以下の３種類のシーケンスタイプのいずれかに属していたとする。
【０１６４】
・setCashOrder(ＷＳ１)→ qualify(ＷＳ２)→ transferCheck(ＷＳ３)→ shipping(ＷＳ５)
・setCreditOrder(ＷＳ１)→ qualify(ＷＳ２)→ lumpSum(ＷＳ４) →shipping(ＷＳ５)
・setCreditOrder(ＷＳ１)→ qualify(ＷＳ２)→ divided(ＷＳ４) →shipping(ＷＳ５)
【０１６５】
この３種類の経路（シーケンスタイプ）をそれぞれシーケンスタイプ１、シーケンスタイプ２、シーケンスタイプ３とする。シーケンスタイプ導出手段１０８が、１００個のメッセージシーケンスを分類した結果、シーケンスタイプ１，２，３に適合するメッセージシーケンスの数がそれぞれ３０個、４０個、３０個であったとする。
【０１６６】
ここでシーケンスタイプ３に適合するメッセージシーケンスについて、ＷＳ１への入力メッセージ数とＷＳ２への入力メッセージ数が、１対ｎの関係になり、また、ＷＳ５への入力メッセージ数とＷＳ５からの出力メッセージ数が、ｍ対１の関係になっているとする。これは、１つの発注メッセージ内に複数の発注情報が含まれていて、発注情報を別々に処理した後ＷＳ５にて１つの結果メッセージにまとめて送信するためにメッセージの分岐・集約が発生していることを意味する。
【０１６７】
また、シーケンスタイプ導出手段１０８は、シーケンスタイプ１に属する３０個のメッセージシーケンスについて、関連メッセージＩＤとメッセージＩＤの関連を基にＷＳ２への分岐・集約確率分布関数、ＷＳ３への分岐・集約確率分布関数を導出する。シーケンスタイプ導出手段１０８は、分岐・集約確率分布関数とそのインタフェースの経路を基に図３５に示すような、分岐・集約確率分布関数が追加されたシーケンスタイプ構造を作成する。図３５に例示するシーケンスタイプ構造では、link要素が経路を示し、dist要素が分岐・集約確率分布関数を示す。ここでは、シーケンスタイプ１に関する分岐・集約確率分布関数の導出を例にして説明したが、シーケンスタイプ導出手段１０８は、各シーケンスタイプ毎に、図３５と同様の分岐・集約確率分布関数が追加されたシーケンスタイプ構造を作成する。シーケンスタイプ導出手段１０８は、シーケンスタイプ毎に生成したシーケンスタイプ構造をシーケンスタイプ記憶装置１１３に記憶させる。
【０１６８】
また、シーケンスタイプ導出手段１０８は、図３４に例示するメッセージシーケンス集合にシーケンスタイプのＩＤ（シーケンスタイプＩＤ）を追加したシーケンスタイプログを作成する。図３６にシーケンスタイプログの例を示す。同一のメッセージシーケンスＩＤが付加されたデータの集合が、個々のメッセージシーケンスを示す。シーケンスタイプ導出手段１０８は、その個々のメッセージシーケンスのデータそれぞれに、メッセージシーケンスが分類されるシーケンスタイプのＩＤを追加する。シーケンスタイプ導出手段１０８は、シーケンスタイプログもシーケンスタイプ構造とともにシーケンスタイプ記憶装置１１３に記憶させる。
【０１６９】
続いて、シーケンス処理時間計算式導出手段１０９は、シーケンスタイプ構造およびシーケンスタイプログをシーケンスタイプ記憶装置１１３から読み出す。シーケンス処理時間計算式導出手段１０９は、シーケンスタイプログの受信時刻と新メッセージ送信時刻をそれぞれメッセージ処理の開始時間・終了時間とみなし、その処理時間と重複するメッセージを特定する。シーケンス処理時間計算式導出手段１０９は、その重複の度合いと重複数を基に、シーケンスタイプごとにメッセージ多重度を算出する。図３７は、シーケンスタイプ記憶装置１１３から読み出したシーケンスタイプログの一部を示す。また、図３８は、図３７に例示するシーケンスタイプログが示す各メッセージシーケンスのＷＳ２における処理時間の重複状況を示す説明図である。図３７および図３８に示すように、メッセージシーケンスＩＤ“ＳＱ＿００１”のメッセージ“ＭＳＧ＿ＷＳ２＿１”が資格審査サービス（ＷＳ２）のqualify インタフェースから入力され、そのメッセージの処理が行われている間に、メッセージＩＤが“ＭＳＧ＿ＷＳ２＿５”，“ＭＳＧ＿ＷＳ２＿４３”，“ＭＳＧ＿ＷＳ２＿５１”の各メッセージの処理もＷＳ２で行われるとする。また、メッセージシーケンスＳＱ＿００１，ＳＱ＿００４は、シーケンスタイプＳＴ＿００１に属し、メッセージシーケンスＳＱ＿０１７，ＳＱ＿０１９は、シーケンスタイプＳＴ＿００３に属するものとする。
【０１７０】
シーケンス処理時間計算式導出手段１０９は、シーケンスタイプ毎にメッセージ多重度を計算する。メッセージシーケンスＳＴ＿００１，ＳＴ＿００３それぞれに関し、各多重数毎に、（「多重数ｎの期間」／「取り出したメッセージシーケンスの処理時間」）×「メッセージシーケンスの多重数ｎ」を計算し、その和をメッセージ多重度とする。
【０１７１】
具体的には、シーケンス処理時間計算式導出手段１０９は、メッセージシーケンスＳＴ＿００１のメッセージ多重度を、以下のように１．８６４と算出する。
【０１７２】
【数１】
2006338413.tif 000003
【０１７３】
また、シーケンス処理時間計算式導出手段１０９は、メッセージシーケンスＳＴ＿００３のメッセージ多重度を、以下のように１．１３６と算出する。
【０１７４】
【数２】
2006338413.tif 000004
【０１７５】
本例では、シーケンスタイプは３種類あるので、シーケンス処理時間計算式導出手段１０９は、各メッセージＩＤに対応させて３種類のメッセージ多重度を計算し、３種類のメッセージ多重度と処理時間の情報を含む多重度テーブルを作成する。図３９に、多重度テーブルの具体例を示す。
【０１７６】
シーケンス処理時間計算式導出手段１０９は、各シーケンスタイプの多重度を算出した後、例えば重回帰分析（ニューラルネットワークでもよい）を適用することにより、メッセージ多重度と処理時間との関係を示すシーケンス処理時間計算式を導出する。
【０１７７】
本例では、シーケンス処理時間計算式導出手段１０９が、ＷＳ２における各シーケンスタイプのシーケンス処理時間計算式として、以下の各式を導出したとする。ただし、ＷＳ２におけるシーケンスタイプ１のシーケンス処理時間計算式をＦＷＳ２＿Ｓ１とする。同様に、ＷＳ２におけるシーケンスタイプ２のシーケンス処理時間計算式をＦＷＳ２＿Ｓ２とし、ＷＳ２におけるシーケンスタイプ３のシーケンス処理時間計算式をＦＷＳ２＿Ｓ３とする。
【０１７８】
ＦＷＳ２＿Ｓ１＝ｆＷＳ２＿Ｓ１（λＳ１，λＳ２，λＳ３）＝１．３λＳ１＋０．４λＳ２＋０．６λＳ３
【０１７９】
ＦＷＳ２＿Ｓ２＝ｆＷＳ２＿Ｓ２（λＳ１，λＳ２，λＳ３）＝０．２λＳ１＋１．４λＳ２＋０．１λＳ３
【０１８０】
ＦＷＳ２＿Ｓ３＝ｆＷＳ２＿Ｓ３（λＳ１，λＳ２，λＳ３）＝０．７λＳ１＋０．１λＳ２＋１．６λＳ３
【０１８１】
なお、上記の格式において、λＳ１，λＳ２，λＳ３は、それぞれシーケンスタイプ１，２，３のメッセージ多重度である。
【０１８２】
シーケンス処理時間計算式導出手段１０９は、このように各シーケンスタイプが経由する各インタフェース毎にシーケンス処理時間計算式を全て導出し、シーケンスタイプ構造に追加する。図４０は、シーケンス処理時間計算式が追加されたシーケンスタイプ構造の例を示す説明図である。本例では、シーケンスタイプが３種類存在するので、シーケンス処理時間計算式導出手段１０９は、図４０に示すシーケンスタイプ構造と同様のシーケンスタイプ構造を３種類作成し、各シーケンスタイプ構造をシーケンスタイプ構造記憶装置１１４に記憶させる。
【０１８３】
動作モデル導出手段１１０は、シーケンスタイプ構造記憶装置１１４からシーケンスタイプ構造を読み出し、シーケンスタイプ構造を組み合わせることにより動作モデルを作成する。動作モデル導出手段１１０は、インタフェースに関する情報が重複しないように、各シーケンスタイプ構造に含まれる各アプリケーションサービス情報（アプリケーションサービスＩＤ、アプリケーションサービス名、インタフェースＩＤ、インタフェース名）を動作モデルに含める。また、各シーケンスタイプそれぞれについて、メッセージシーケンスが経由するインタフェース毎の経路情報（送信元、送信先、分岐・集約確率分布関数、シーケンス処理時間計算式）を動作モデルに含める。図４１は、このようにして作成された動作モデルの具体例を示す。また、動作モデルをグラフとして模式的に示すと、例えば、図４２に示すような模式図で表すことができる。動作モデル導出手段１１０は、作成した動作モデルを動作モデル記憶装置１１５に記憶させる。
【０１８４】
ビジネスプロセスシミュレート装置１１６は、動作モデルに基づいて、実際のビジネスプロセス処理の模擬実行を行なう。まず、ビジネスプロセスシミュレート装置１１６の動作モデル読み出し手段１１７（図５参照。）は、動作モデル記憶装置１１５から動作モデルを読み出す。そして、パラメータ設定手段１１８（図５参照。）は、入力装置１２４を介して、シーケンスタイプ毎に、メッセージシーケンス到着間隔を入力される。例えば、シーケンスタイプ１，２，３それぞれのメッセージシーケンス到着間隔が、１０秒、１１秒、１２秒等のように入力される。動作モデル実行手段１１９は、動作モデルおよび入力された各メッセージシーケンス到着間隔に基づいて実際の処理の模擬実行を行う。
【０１８５】
動作モデル実行手段１１９は、アプリケーションサービス提供装置１００にメッセージが受信されたと判定した場合、そのメッセージのシーケンスタイプのシーケンス処理時間計算式であって、そのメッセージが入力されるインタフェースに応じたシーケンス処理時間計算式を動作モデルから抽出する。また、そのメッセージの処理開始時におけるそのサービスで処理中のメッセージ数をシーケンスタイプ毎にカウントすることにより、各シーケンスタイプのメッセージ多重度を求める。
【０１８６】
続いて、動作モデル実行手段１１９は、メッセージ多重度をシーケンス処理時間計算式に代入することにより、模擬的にアプリケーションサービス提供装置１００に受信されたものとしたメッセージの処理時間初期値を計算する。例えば、ＷＳ２にメッセージが到着し、そのメッセージの処理開始時に、シーケンスタイプ１のメッセージシーケンスのメッセージが２つ、シーケンスタイプ２のメッセージシーケンスのメッセージが３つ、シーケンスタイプ３のメッセージシーケンスのメッセージが４つ処理されているとカウントしたとする。すなわち、各シーケンスタイプ１，２，３の多重度λＳ１，λＳ２，λＳ３を、それぞれ２，３，４として決定する。すると、新たに到着したと判定されたメッセージの処理時間は、以下の式のように求められる。
【０１８７】
ＦＷＳ２＿Ｓ１＝ｆＷＳ２＿Ｓ１（λＳ１，λＳ２，λＳ３）＝１．３×２＋０．４×３＋０．６×４＝６．２秒
【０１８８】
なお、本例では新たに到着したメッセージを含むメッセージシーケンスは、シーケンスタイプ１であるものとし、上記のＦＷＳ２＿Ｓ１により処理時間（ここでは処理時間初期値）を算出している。
【０１８９】
また、このとき、ＷＳ２に新たに到着したと判定されたメッセージの処理開始から３秒後に、シーケンスタイプ３のメッセージシーケンスの１つの処理が完了したとする。すなわち、処理開始から３秒後に多重度が変化したとする。この場合、動作モデル実行手段１１９は、処理開始から「既に経過した時間」は３秒であると判定する。そして、処理時間を再計算する。ここではシーケンスタイプ３の処理が１つ完了するので、シーケンスタイプ３の多重度が４から１減少して３になる。よって、動作モデル実行手段１１９は、以下の式のように、処理時間を再計算する。
【０１９０】
ＦＷＳ２＿Ｓ１＝１．３×２＋０．４×３＋０．６×３＝５．６秒
【０１９１】
さらに、動作モデル実行手段１１９は、部分処理時間（多重度変化時から処理終了時までの時間）を計算する。既に説明したように、この時間は以下の式により求められる。
【０１９２】
「部分処理時間」＝「再計算した処理時間」×（１−（「既に経過した時間」／「元の処理時間」））
【０１９３】
本例では、「再計算した処理時間」は５．６秒であり、「既に経過した時間」は３秒である。また、「元の処理時間」は、６．２秒である。よって、部分処理時間は、５．６×（１−（３／６．２））＝２．８９秒である。従って、処理開始から処理終了までの時間は３秒（既に経過した時間）＋２．８９秒＝５．８９秒となり、処理終了時刻（新メッセージ送信時刻）を確定することができる。
【０１９４】
また、部分処理時間内にメッセージシーケンス数（メッセージ多重度）が再度変化するならば、「前回再計算した処理時間」を「元の処理時間」とし、「前回再計算した処理時間」−「前回計算した部分処理時間」＋「前回の多重度変化時刻から新たな多重度変化時刻までの時間」を「既に経過した時間」として、同様の処理を繰り返せばよい。
【０１９５】
また、動作モデル実行手段１１９は、分岐または集約により次のアプリケーションサービスのインタフェースtransferCheck(ＷＳ３)に入力されるメッセージ数を計算する。
【０１９６】
そして、動作モデル実行手段１１９は、ＷＳ２における処理終了時刻に次のアプリケーションサービスのインタフェースtransferCheck(ＷＳ３)に新メッセージが入力されたと判定し、ＷＳ３に入力されたと判定した各メッセージについて、同様の処理を行う。
【０１９７】
動作モデル実行手段１１９は、このような処理を繰り返すことにより、ビジネスプロセス処理システムの模擬実行を行う。このとき、動作モデル実行手段１１９は、模擬実行を行いながら、模擬実行ログをシミュレート結果取得手段１２０（図５参照。）に出力する。シミュレート結果取得手段１２０は、模擬実行ログをシミュレート結果記憶装置１２２に記憶させ、出力装置１２３に出力（例えば表示出力）する。図４３に、模擬実行ログの例を示す。全てのアプリケーションサービスについて同様に模擬実行を行い、模擬実行ログを表示することで、オペレータは、模擬実行時の振る舞いを把握することができる。
【０１９８】
さらに、メッセージシーケンス到着間隔を変えることにより、到着間隔変更後の動作状態を予測することができる。さらにメッセージシーケンス到着間隔を確率分布などによって変更することにより、メッセージシーケンス到着間隔が突発的に変化する時の動作状態や、定常的であまり変化しない時の動作状態を計算することができる。
【０１９９】
また、ビジネスプロセスシミュレート装置１１６が、図６に示す構成の様に過負荷判定手段１２１を備えた構成であり、ビジネスプロセス処理システムの安定性を診断する場合の処理の具体例にについて説明する。過負荷判定手段１２１は、例えばメッセージシーケンスを処理する毎に（換言すれば、１つのメッセージの模擬実行に応じた模擬実行ログがシミュレート結果取得手段１２０を介して入力される毎に）、アプリケーションサービスにおけるメッセージシーケンスの処理時間および平均到着頻度を求める。
【０２００】
例えば、アプリケーションサービスＷＳ２にてメッセージシーケンスＳＱ＿００１の処理開始時刻が「00時05分43秒」であり、処理終了時刻が「00時05分54.1秒」であり、処理時間を１０．１秒と算出したとする。また、メッセージシーケンスＳＱ＿００１到着時におけるアプリケーションサービスＷＳ２へのメッセージシーケンス平均到着頻度が５．０（メッセージシーケンス数／秒）であったとする。
【０２０１】
同様に、アプリケーションサービスＷＳ２にてメッセージシーケンスＳＱ＿００２の処理開始時刻が「00時07分15秒」であり、処理終了時刻が「00時07分31.1秒」であり、処理時間を１６．１秒と算出したとする。また、メッセージシーケンスＳＱ＿００２到着時におけるアプリケーションサービスＷＳ２へのメッセージシーケンス平均到着頻度が５．０（メッセージシーケンス数／秒）であったとする。
【０２０２】
上記の例では、処理時間が６秒（＝１６．１−１０．１）増加している。
【０２０３】
過負荷判定処理手段１２１は、平均到着頻度が一定であり、増加した処理時間（本例では６秒）が所定値以上であるか否かを判定する。ここでは、処理時間の増加分の６秒は、所定値以上であるものとする。すると、メッセージシーケンスＳＱ＿００２に対応する過負荷判定フラグをオン（TRUE）とする。
【０２０４】
過負荷判定処理手段１２１は、例えば、メッセージシーケンスＩＤ、シーケンスタイプＩＤ、アプリケーションサービスＩＤ、利用インタフェース、受信時刻、新メッセージ送信時刻、平均到着頻度、過負荷判定の情報を含む過負荷判定ログを作成し、出力装置１２３に出力（例えば表示出力）する。図４４に、このような過負荷判定ログの例を示す。過負荷判定処理手段１２１は、過負荷判定ログをシミュレート結果記憶装置１２２に記憶させてもよい。
【０２０５】
オペレータは、単発的に処理時間が増加することもありうるが、平均到着頻度がほぼ同じなのにもかかわらず時間経過に従って処理時間が増大し続ける場合はそのアプリケーションサービスが過負荷状態に陥っていると判定することができる。すなわち、図４４に例示する過負荷判定ログが表示され、過負荷判定として、“TRUE”が連続して出力されている場合には、過負荷状態と判断することができる。また、“TRUE”が単発的に表示されている場合には、単発的な処理時間の増加が生じただけで過負荷状態にはなっていないと判断することができる。“TRUE”が表示されていなければ安定状態であると判断することができる。
【産業上の利用可能性】
【０２０６】
本発明は、メッセージを用いた分散アプリケーションサービスシステムの管理、分析、シミュレーションといった用途に適用できる。また、ORB／RPC／メッセージングサービスといった異なる分散API仕様が混在した分散アプリケーションサービスシステムの管理・分析・シミュレーション用途にも適用可能である。
【図面の簡単な説明】
【０２０７】
【図１】本発明による分散アプリケーション管理システムと、管理対象となる分散アプリケーションシステムに含まれるアプリケーションサービス提供装置との関係を示すブロック図である。
【図２】アプリケーションサービス提供装置、アプリケーションサービス監視装置、メッセージログ記憶装置、アプリケーションサービス管理装置の接続状態を示す説明図である。
【図３】アプリケーションサービス監視装置およびアプリケーションサービス管理装置の構成例を示すブロック図である。
【図４】メッセージシーケンスの例を示す説明図である。
【図５】ビジネスプロセスシミュレート装置の構成例を示すブロック図である。
【図６】ビジネスプロセスシミュレート装置の他の構成例を示すブロック図である。
【図７】メッセージのデータ構造の例を示す説明図である。
【図８】メッセージログのデータ構造の例を示す説明図である。
【図９】メッセージシーケンス導出処理を示すフローチャートである。
【図１０】メッセージシーケンスＩＤが付加されたメッセージログのデータ構造の例を示す説明図である。
【図１１】シーケンスタイプ導出手段によるメッセージシーケンスの分類処理を示すフローチャートである。
【図１２】メッセージシーケンスがアプリケーションサービス提供装置のインタフェースを経由する状況を示す説明図である。
【図１３】シーケンスタイプ構造のデータ構造の例を示す説明図である。
【図１４】各インタフェース毎に分岐・集約確率分布関数が導出されることを示す説明図である。
【図１５】分岐・集約確率分布関数が追加されたシーケンスタイプ構造を示す説明図である。
【図１６】シーケンスタイプログのデータ構造の例を示す説明図である。
【図１７】シーケンス処理時間計算式の導出処理を示すフローチャートである。
【図１８】メッセージ多重度の計算例を示す説明図である。
【図１９】多重度テーブルの構造の例を示す説明図である。
【図２０】シーケンス処理時間計算式が追加されたシーケンスタイプ構造を示す説明図である。
【図２１】動作モデル導出処理を示すフローチャートである。
【図２２】動作モデルのデータ構造の例を示す説明図である。
【図２３】動作モデルをグラフとして示した模式図である。
【図２４】ビジネスプロセスシミュレート装置の動作を示すフローチャートである。
【図２５】模擬実行処理を示すフローチャートである。
【図２６】処理時間初期値を示す説明図である。
【図２７】模擬実行ログのデータ構造の例を示す説明図である。
【図２８】過負荷判定手段の動作を示すフローチャートである。
【図２９】処理時間の増加を示す説明図である。
【図３０】過負荷判定ログのデータ構造の例を示す説明図である。
【図３１】本発明の分散アプリケーションサービス管理システムが管理対象とするビジネスプロセス処理システムの例を示す説明図である。
【図３２】メッセージの例を示す説明図である。
【図３３】メッセージログの例を示す説明図である。
【図３４】メッセージシーケンス集合の例を示す説明図である。
【図３５】分岐・集約確率分布関数が追加されたシーケンスタイプ構造の例を示す説明図である。
【図３６】シーケンスタイプログの例を示す説明図である。
【図３７】シーケンスタイプログの例を示す説明図である。
【図３８】処理時間の重複状況を示す説明図である。
【図３９】多重度テーブルの例を示す説明図である。
【図４０】シーケンス処理時間計算式が追加されたシーケンスタイプ構造の例を示す説明図である。
【図４１】動作モデルの例を示す説明図である。
【図４２】動作モデルを模式的に表した模式図である。
【図４３】模擬実行ログの例を示す説明図である。
【図４４】過負荷判定ログの例を示す説明図である。
【図４５】特許文献１に記載されたシステムを示すブロック図である。
【図４６】特許文献２に記載されたシステムを示すブロック図である。
【符号の説明】
【０２０８】
１００  アプリケーションサービス提供装置
１０１  アプリケーションサービス監視装置
１０２  メッセージログ取得手段
１０３  メッセージログ蓄積手段
１０４  メッセージログ記憶装置
１０５  アプリケーションサービス管理装置
１０６  メッセージログ収集手段
１０７  メッセージシーケンス導出手段
１０８  シーケンスタイプ導出手段
１０９  シーケンス処理時間計算式導出手段
１１０  動作モデル導出手段
１１１  ビジネスプロセス記憶装置
１１２  メッセージシーケンス記憶装置
１１３  シーケンスタイプ記憶装置
１１４  シーケンスタイプ構造記憶装置
１１５  動作モデル記憶装置
１１６  ビジネスプロセスシミュレート装置
１１７  動作モデル読み出し手段
１１８  パラメータ設定手段
１１９  動作モデル実行手段
１２０  シミュレート結果取得手段
１２１  過負荷判定手段
１２２  シミュレート結果記憶装置
１２３  出力装置
１２４  入力装置
【図１】
2006338413.tif 000005
【図２】
2006338413.tif 000006
【図３】
2006338413.tif 000007
【図４】
2006338413.tif 000008
【図５】
2006338413.tif 000009
【図６】
2006338413.tif 000010
【図７】
2006338413.tif 000011
【図８】
2006338413.tif 000012
【図９】
2006338413.tif 000013
【図１０】
2006338413.tif 000014
【図１１】
2006338413.tif 000015
【図１２】
2006338413.tif 000016
【図１３】
2006338413.tif 000017
【図１４】
2006338413.tif 000018
【図１５】
2006338413.tif 000019
【図１６】
2006338413.tif 000020
【図１７】
2006338413.tif 000021
【図１８】
2006338413.tif 000022
【図１９】
2006338413.tif 000023
【図２０】
2006338413.tif 000024
【図２１】
2006338413.tif 000025
【図２２】
2006338413.tif 000026
【図２３】
2006338413.tif 000027
【図２４】
2006338413.tif 000028
【図２５】
2006338413.tif 000029
【図２６】
2006338413.tif 000030
【図２７】
2006338413.tif 000031
【図２８】
2006338413.tif 000032
【図２９】
2006338413.tif 000033
【図３０】
2006338413.tif 000034
【図３１】
2006338413.tif 000035
【図３２】
2006338413.tif 000036
【図３３】
2006338413.tif 000037
【図３４】
2006338413.tif 000038
【図３５】
2006338413.tif 000039
【図３６】
2006338413.tif 000040
【図３７】
2006338413.tif 000041
【図３８】
2006338413.tif 000042
【図３９】
2006338413.tif 000043
【図４０】
2006338413.tif 000044
【図４１】
2006338413.tif 000045
【図４２】
2006338413.tif 000046
【図４３】
2006338413.tif 000047
【図４４】
2006338413.tif 000048
【図４５】
2006338413.tif 000049
【図４６】
2006338413.tif 000050