(57)【要約】【課題】より忠実にメッセージの振る舞いを再現できる分散ワークフローシミュレーションシステムを提供する。【解決手段】サービス処理時間予測式生成手段４０２は、他のサービスとサーバマシン１００を共有するサービスについて、サービス内の滞在メッセージ数及びサーバマシン１００を共有する他のサービス内の滞在メッセージ数と、サービス処理時間とに基づいて、サービス処理時間予測式を生成する。ワークフロー遅延予測式生成手段４０３は、ワークフロー実行装置２００内の滞在メッセージ数と、ワークフロー遅延時間とに基づいて、ワークフロー遅延時間予測式を生成する。シミュレート手段５０１は、サービス処理時間予測式及びワークフロー遅延時間予測式を用いてそれぞれサービス処理時間及びワークフロー遅延時間を計算し、業務システム内のメッセージの振る舞いを再現する。【選択図】図１
2008203934.tif 000002
【特許請求の範囲】
【請求項１】
メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムをシミュレーションする分散ワークフローシミュレーションシステムにおいて、
前記サービス内の滞在メッセージ数及び前記サービスのメッセージ処理時間を取得し、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成するサービス処理時間予測式生成手段と、
前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式とに基づいて、シミュレーションモデルを生成するシミュレーションモデル生成手段と、
前記シミュレーションモデルに基づいて、前記業務システム内のメッセージの振る舞いを逐次的に再現するシミュレート手段と、
前記他のサービスとサーバマシンを共有するサービスについて、前記シミュレート手段にて再現された当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出するサービス処理時間計算手段とを備えることを特徴とする分散ワークフローシミュレーションシステム。
【請求項２】
前記サービス処理時間予測式生成手段は、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成し、前記サービス処理時間計算手段は、前記シミュレート手段にて再現された前記サービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出する、請求項１に記載の分散ワークフローシミュレーションシステム。
【請求項３】
前記サービス処理時間予測式生成手段は、前記サービスを入出力するメッセージについての測定情報を記憶するメッセージログ記憶装置を参照して、前記サービス内の滞在メッセージ数と、前記メッセージの処理時間とを取得する、請求項１に記載の分散ワークフローシミュレーションシステム。
【請求項４】
前記サービス処理時間計算手段は、前記サービス処理時間の計算後、前記サービス内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて、前記サービス処理時間を再計算する、請求項１に記載の分散ワークローシミュレーションシステム。
【請求項５】
前記サービス処理時間予測式生成手段は、サービス処理時間の確率分布を推定する、請求項１に記載の分散ワークフローシミュレーションシステム。
【請求項６】
前記サービス処理時間計算手段は、前記算出したサービス処理時間と、前記サービス処理時間の確率分布とに基づいて、変動を考慮したサービス処理時間を算出する、請求項５に記載の分散ワークフローシミュレーションシステム。
【請求項７】
前記ワークフロー実行装置内の滞在メッセージ数及び前記ワークフロー実行装置による前記メッセージの遅延時間を取得し、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化してワークフロー遅延時間予測式を生成する遅延時間予測式生成手段と、
前記シミュレート手段にて再現された前記ワークフロー実行装置の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて前記ワークフロー実行装置による前記メッセージの遅延時間を算出するワークフロー遅延時間計算手段とを更に備える、請求項１に記載の分散ワークフローシミュレーションシステム。
【請求項８】
前記シミュレーションモデル生成手段は、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式及び前記ワークフロー遅延時間予測式とに基づいて、シミュレーションモデルを生成する、請求項７に記載の分散ワークフローシミュレーションシステム。
【請求項９】
前記遅延時間予測式生成手段は、前記ワークフロー実行装置を入出力するメッセージについての測定情報を記憶するメッセージログ記憶装置を参照して、前記ワークフロー実行装置の滞在メッセージ数と、前記メッセージの遅延時間とを取得する、請求項７に記載の分散ワークフローシミュレーションシステム。
【請求項１０】
前記ワークフロー遅延時間計算手段は、前記メッセージの遅延時間計算後、前記ワークフロー実行装置内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて、前記メッセージの遅延時間を再計算する、請求項７に記載の分散ワークフローシミュレーションシステム。
【請求項１１】
前記シミュレート手段は、前記算出されたサービス処理時間及びメッセージの遅延時間に基づいて、前記業務システム内のメッセージの振る舞いを再現する、請求項７に記載の分散ワークフローシミュレーションシステム。
【請求項１２】
メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムを管理する業務システム管理装置であって、
前記サービス内の滞在メッセージ数及び前記サービスのメッセージ処理時間を取得し、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成するサービス処理時間予測式生成手段と、
前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式とに基づいて、シミュレーションモデルを生成するシミュレーションモデル生成手段とを備えることを特徴とする業務システム管理装置。
【請求項１３】
前記サービス処理時間予測式生成手段は、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成する、請求項１２に記載の業務システム管理装置。
【請求項１４】
前記ワークフロー実行装置内の滞在メッセージ数及び前記ワークフロー実行装置による前記メッセージの遅延時間を取得し、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化してワークフロー遅延時間予測式を生成する遅延時間予測式生成手段を更に備える、請求項１２に記載の業務システム管理装置。
【請求項１５】
前記シミュレーションモデル生成手段は、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式及び前記ワークフロー遅延時間予測式とに基づいて、シミュレーションモデルを生成する、請求項１４に記載の業務システム管理装置。
【請求項１６】
メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムのシミュレーションを行うシミュレーション装置であって、
他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化することで生成されたサービス処理時間予測式と、前記業務システム内のメッセージの配送経路を定義するワークフロー定義とに基づいて生成されたシミュレーションモデルに基づいて、前記業務システム内のメッセージの振る舞いを逐次的に再現するシミュレート手段と、
前記他のサービスとサーバマシンを共有するサービスについて、前記シミュレート手段にて再現された当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出するサービス処理時間計算手段とを備えたことを特徴とする分散ワークフローシミュレーション装置。
【請求項１７】
前記サービス処理時間予測式は、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化することで生成されており、前記サービス処理時間計算手段は、前記シミュレート手段にて再現された前記サービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出する、請求項１６に記載の分散ワークフローシミュレーション装置。
【請求項１８】
前記サービス処理時間計算手段は、前記サービス処理時間の計算後、前記サービス内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて、前記サービス処理時間を再計算する、請求項１６に記載の分散ワークローシミュレーション装置。
【請求項１９】
前記サービス処理時間計算手段は、前記算出したサービス処理時間と、推定されたサービス処理時間の確率分布とに基づいて、変動を考慮したサービス処理時間を算出する、請求項１６に記載の分散ワークフローシミュレーション装置。
【請求項２０】
前記シミュレーションモデルが、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化することで生成されたワークフロー遅延時間予測式と、前記ワークフロー遅延時間予測式と、前記ワークフロー定義とに基づいて生成されており、
前記シミュレート手段にて再現された前記ワークフロー実行装置の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて前記ワークフロー実行装置による前記メッセージの遅延時間を算出するワークフロー遅延時間計算手段を更に備える、請求項１６に記載の分散ワークフローシミュレーション装置。
【請求項２１】
前記ワークフロー遅延時間計算手段は、前記メッセージの遅延時間計算後、前記ワークフロー実行装置内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて、前記メッセージの遅延時間を再計算する、請求項２０に記載の分散ワークフローシミュレーション装置。
【請求項２２】
コンピュータを用いて、メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムをシミュレーションする分散ワークフローシミュレーションシステムにおいて、
前記コンピュータが、前記サービス内の滞在メッセージ数及び前記サービスのメッセージ処理時間を取得し、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成するステップと、
前記コンピュータが、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式とに基づいて、シミュレーションモデルを生成するステップと、
前記コンピュータが、前記シミュレーションモデルに基づいて、前記業務システム内のメッセージの振る舞いを逐次的に再現するステップと、
前記コンピュータが、前記他のサービスとサーバマシンを共有するサービスについて、前記メッセージ振る舞いの再現にて再現された当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出するステップとを有することを特徴とする分散ワークフローシミュレーション方法。
【請求項２３】
前記コンピュータが、１つのサーバマシンにて１つのサービスが実行される場合について、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成するステップと、
前記コンピュータが、１つのサーバマシンにて１つのサービスが実行される場合について、前記メッセージ振る舞いの再現にて再現された前記サービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出するステップとを更に有する、請求項２２に記載の分散ワークフローシミュレーション方法。
【請求項２４】
前記サービス内の滞在メッセージ数及び前記メッセージの処理時間を取得するステップでは、前記コンピュータは、前記サービスを入出力するメッセージについての測定情報を記憶するメッセージログ記憶装置を参照して、前記サービス内の滞在メッセージ数と、前記メッセージの処理時間とを取得する、請求項２２に記載の分散ワークフローシミュレーション方法。
【請求項２５】
前記コンピュータは、前記サービス処理時間の計算後、前記サービス内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて、前記サービス処理時間を再計算する、請求項２２に記載の分散ワークローシミュレーション方法。
【請求項２６】
前記コンピュータが、サービス処理時間の確率分布を推定するステップを更に有する、請求項２２に記載の分散ワークフローシミュレーション方法。
【請求項２７】
前記サービス処理時間を算出するステップでは、前記コンピュータは、前記算出したサービス処理時間と、前記サービス処理時間の確率分布とに基づいて、変動を考慮したサービス処理時間を算出する、請求項２６に記載の分散ワークフローシミュレーション方法。
【請求項２８】
前記コンピュータが、前記ワークフロー実行装置内の滞在メッセージ数及び前記ワークフロー実行装置による前記メッセージの遅延時間を取得し、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化してワークフロー遅延時間予測式を生成するステップと、
前記コンピュータが、前記メッセージ振る舞いの再現にて再現された前記ワークフロー実行装置の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて前記ワークフロー実行装置による前記メッセージの遅延時間を算出するステップとを更に有する、請求項２２に記載の分散ワークフローシミュレーション方法。
【請求項２９】
前記シミュレーションモデルを生成するステップでは、前記コンピュータは、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式及び前記ワークフロー遅延時間予測式とに基づいて、ワークフロー遅延に関するシミュレーションモデルを生成する、請求項２８に記載の分散ワークフローシミュレーション方法。
【請求項３０】
前記ワークフロー実行装置の滞在メッセージ数及び前記メッセージの遅延時間を取得するステップでは、前記コンピュータは、前記ワークフロー実行装置を入出力するメッセージについての測定情報を記憶するメッセージログ記憶装置を参照して、前記ワークフロー実行装置の滞在メッセージ数と、前記メッセージの遅延時間とを取得する、請求項２８に記載の分散ワークフローシミュレーション方法。
【請求項３１】
前記コンピュータは、前記メッセージの遅延時間計算後、前記ワークフロー実行装置内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて、前記メッセージの遅延時間を再計算する、請求項２８に記載の分散ワークフローシミュレーション方法。
【請求項３２】
前記メッセージの振る舞いを再現するステップでは、前記コンピュータは、前記算出されたサービス処理時間及びメッセージの遅延時間に基づいて、前記業務システム内のメッセージの振る舞いを再現する、請求項２８に記載の分散ワークフローシミュレーション方法。
【請求項３３】
コンピュータに、メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムを管理する処理を実行させるプログラムであって、前記コンピュータに、
前記サービス内の滞在メッセージ数及び前記サービスのメッセージ処理時間を取得し、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成する処理と、
前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式とに基づいて、シミュレーションモデルを生成する処理とを実行させることを特徴とするプログラム。
【請求項３４】
前記サービス処理時間予測式を生成する処理では、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成する、請求項３３に記載のプログラム。
【請求項３５】
前記コンピュータに、前記ワークフロー実行装置内の滞在メッセージ数及び前記ワークフロー実行装置による前記メッセージの遅延時間を取得し、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化してワークフロー遅延時間予測式を生成する処理を更に実行させる、請求項３３に記載のプログラム。
【請求項３６】
前記シミュレーションモデルを生成する処理では、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式及び前記ワークフロー遅延時間予測式とに基づいて、シミュレーションモデルを生成する、請求項３５に記載のプログラム。
【請求項３７】
コンピュータに、メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムのシミュレーションを行う処理を実行させるプログラムであって、前記コンピュータに、
他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化することで生成されたサービス処理時間予測式と、前記業務システム内のメッセージの配送経路を定義するワークフロー定義とに基づいて生成されたシミュレーションモデルに基づいて、前記業務システム内のメッセージの振る舞いを逐次的に再現する処理と、
前記他のサービスとサーバマシンを共有するサービスについて、前記メッセージの振る舞いを再現する処理にて再現された当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出する処理とを実行させることを特徴とするプログラム。
【請求項３８】
前記サービス処理時間予測式は、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化することで生成されており、前記サービス処理時間を算出する処理では、前記メッセージの振る舞いを再現する処理にて再現された前記サービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出する、請求項３７に記載のプログラム。
【請求項３９】
前記サービス処理時間を計算する処理では、前記サービス処理時間の計算後、前記サービス内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて、前記サービス処理時間を再計算する、請求項３７に記載のプログラム。
【請求項４０】
前記サービス処理時間を計算する処理では、前記算出したサービス処理時間と、推定されたサービス処理時間の確率分布とに基づいて、変動を考慮したサービス処理時間を算出する、請求項３７に記載のプログラム。
【請求項４１】
前記シミュレーションモデルが、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化することで生成されたワークフロー遅延時間予測式と、前記ワークフロー遅延時間予測式と、前記ワークフロー定義とに基づいて生成されており、
前記コンピュータに、前記メッセージの振る舞いを再現する処理にて再現された前記ワークフロー実行装置の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて前記ワークフロー実行装置による前記メッセージの遅延時間を算出する処理を更に実行させる、請求項３７に記載のプログラム。
【請求項４２】
前記ワークフロー遅延時間を計算する処理では、前記メッセージの遅延時間計算後、前記ワークフロー実行装置内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて、前記メッセージの遅延時間を再計算する、請求項４１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ワークフローシミュレーションシステム、方法、及び、プログラムに関し、更に詳しくは、業務処理の流れをワークフロー実行装置にて行う分散ワークフローシステムのシミュレーションを行う分散ワークフローシミュレーションシステム、方法、及び、プログラムに関する。
【背景技術】
【０００２】
業務システムとして、業務処理の流れを複数のワークフロー実行装置にて行う分散ワークフローシステムがある。ビジネスにおける業務システムの利用状況は常に変化するが、業務システムは、常に高いパフォーマンスに保つことが要求される。業務システムにおいて、不測の事態を避け、高いパフォーマンスに保つためには、今後の利用状況におけるパフォーマンスを正しく予測し、その予測に基づいて、業務システムを制御・再構築する必要がある。このため、精度の高いパフォーマンス予測が求められている。
【０００３】
分散ワークフローシステムにおいて、業務内の部分的な処理、例えば課金処理、発注処理は、サーバマシン上で動作する「サービス」によって提供される。ワークフロー実行装置は、業務処理の流れに従ってサービスを連携させ、業務全体を実現する。複数の分散したワークフロー実行装置が連携して、１つの業務を実現することもある。ワークフロー実行装置とサーバマシン（サービス）とは、それぞれネットワークに接続され、互いにアクセス可能である。図１５に業務システムの一例を示す。同図に示すように、１つのサーバマシン上で、複数のサービスが動作することもある。サービスとワークフロー実行装置との間の通信はメッセージで行われ、サービス及びワークフロー実行装置は、メッセージの並列処理を行う。
【０００４】
従来のワークフローシミュレーションシステムの一例としては、特許文献１に記載のものがある。図１６は、特許文献１に記載の分散ワークフローシミュレーションシステムの構成を示している。従来の分散ワークフローシミュレーションシステム２０は、ネットワークシミュレーションモデル作成手段２１と、ビジネスプロセスに関するダイアグラム作成２２と、トラヒックファンデーションモデル作成手段２３と、データベース装置２４と、ビジネスプロセストラヒックモデル作成手段２５と、ネットワークシミュレーションシステム実行手段２６とを備える。
【０００５】
上記構成を有する従来の分散ワークフローシミュレーションシステムは、以下のように動作する。すなわち、トラヒックファンデーションモデル作成手段２３は、業務処理のオブジェクトに対応するノード装置の相互間の作用をダイアグラムとして作成する。ビジネスプロセストラヒックモデル作成手段２５は、トラヒックファンデーションモデル作成手段２３で作成されたダイアグラムの各リンク上にトラヒック情報を対応させ、ビジネスプロセスにおけるトラヒック情報を含めたネットワークを作成する。ビジネスプロセストラヒックモデル作成手段２５により作成されたネットワークに、ネットワークシステム上で発生するトラヒック情報を設定し、ネットワークシミュレーションシステム実行手段２６により、これをシミュレーションする。特許文献１では、分散ワークフローシステム上を流れるトラヒック全体をモデル化することにより、高精度な分散ワークフローシミュレーションを実現できるとしている。
【０００６】
【特許文献１】特開２００３−１７８１０３号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ここで、シミュレーション手法としては、ワークロー内のメッセージの流れをPetri Netのようなモデルで抽象化し、このモデルを用いてメッセージの振る舞いを推測して、パフォーマンスの予測を行う手法がある。図１７に、シミュレーションモデルの具体例を示す。図１７において、矩形で表した部分はトランジションと呼ばれ、サービスを示している。また、円形で表した部分はプレースと呼ばれ、サービス内の滞在メッセージを入力経路ごとに示している。プレース内の黒丸は、メッセージを示す。
【０００８】
サービスでの処理時間について考えると、サービスは並列処理を行うため、サービス内の滞在メッセージ数が増えると、その分サーバマシンの処理能力を共有することになり、処理時間の延長が発生する。サーバマシンにおいて、滞在メッセージ数と処理時間とには相関があり、シミュレーション時に、滞在メッセージ数を実際の動作に忠実に再現することにより、精度の高いパフォーマンス予測が想定される。しかし、従来技術では、サービスでのメッセージ処理が重なるタイミングを考慮していないため、滞在メッセージ数の変化による処理時間の変化を考慮しておらず、予測精度が落ちるという問題がある。
【０００９】
また、サービスの処理に際しては、滞在メッセージ数が同じ場合であっても、処理時間は一定とはならず、ある程度の変動幅をもって変動が生じる。しかし、従来技術では、サービス処理時間の平均値を考慮するのみで、サービス処理時間のゆらぎを考慮していないため、サービス処理時間の予測精度は低い。また、サービスにメッセージが到着するたびに滞在メッセージ数が変化するため、予測精度を上げるためには、全滞在メッセージの処理時間とそのゆらぎとを計算する必要があるが、従来技術では、その点も考慮されていない。
【００１０】
業務システムでは、ユーザからのメッセージに対し、ワークフロー実行装置内でメッセージの解析、宛先判定、経路制御といった処理を行い、その後、ワークフロー実行装置からサービスにメッセージが送られる。このとき、ワークフロー実行装置では、メッセージ解析等によって、遅延が発生する。ワークフロー実行装置はメッセージを並列処理するため、ワークフロー実行装置での遅延時間は、ワークフロー実行装置の滞在メッセージ数に比例すると考えられる。しかし、従来技術ではこの遅延時間の変化を想定しておらず、ワークフロー実行装置での遅延時間変化により、予測精度が落ちるという問題がある。
【００１１】
業務システムでは、複数のサービスを、同一サーバマシン上で動作させることがあり、その場合には、複数のサービスがサーバマシンの処理能力を共有するため、あるサービスについて、滞在メッセージ数が少ない場合でも、共有するサービスでの滞在メッセージ数が多いときには、それによって、処理時間の延長が発生する。しかし、従来技術では、サービスの処理時間を、そのサービスについての滞在メッセージ数に基づいて予測しており、サーバマシン共有の影響を処理時間予測に加えていない。従って、同一サーバマシンが複数のサービスを提供する場合には、サービス処理時間の予測精度が落ちるという問題がある。
【００１２】
本発明は、上記従来技術の問題点を解消し、リソース共有の影響を考慮したシミュレーションを実現できる分散ワークフローシミュレーションシステム、方法、及び、プログラムを提供する。
【００１３】
本発明の別の目的は、サービスでのメッセージ処理が重なるタイミングというワークフローの振る舞いを再現できる分散ワークフローシミュレーションシステム、方法、及び、プログラムを提供することである。
【００１４】
また、本発明の別の目的は、ワークフロー実行装置での遅延時間の変動の影響を考慮したシミュレーションを実現できる分散ワークフローシミュレーションシステム、方法、及び、プログラムを提供することである。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明の分散ワークフローシミュレーションシステムは、メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムをシミュレーションする分散ワークフローシミュレーションシステムにおいて、前記サービス内の滞在メッセージ数及び前記サービスのメッセージ処理時間を取得し、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成するサービス処理時間予測式生成手段と、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式とに基づいて、シミュレーションモデルを生成するシミュレーションモデル生成手段と、前記シミュレーションモデルに基づいて、前記業務システム内のメッセージの振る舞いを逐次的に再現するシミュレート手段と、前記他のサービスとサーバマシンを共有するサービスについて、前記シミュレート手段にて再現された当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出するサービス処理時間計算手段とを備えることを特徴とする。
【００１６】
本発明の分散ワークフローシミュレーションシステムでは、サーバにて複数のサービスが実行されているときには、業務システムから収集したサービス内の滞在メッセージ数と、そのサービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、サービス処理時間とに基づいて、サービス処理時間予測式を生成し、ワークフロー定義とサービス処理時間予測式とに基づいて、シミュレーションモデルを生成して、業務システム内のメッセージの振る舞いをシミュレートする。その際、他のサービスとサーバマシンを共有するサービスについては、生成したサービス処理時間予測式と、シミュレーションにおけるサービス内の滞在メッセージ数、及び、そのサービスとサーバマシンを共有するサービス内の滞在メッセージ数とに基づいて、サービス処理時間を計算する。サーバマシンが複数のサービスを実行する場合には、一のサービスにおけるサービス処理時間は、サーバマシン（リソース）を共有する他のサービスでの処理の影響を受けるため、そのサービス内の滞在メッセージ数だけでは求まらない。本発明では、サービス内の滞在メッセージ数と、サーバマシンを共有する他のサービス内の滞在メッセージ数と、サービス処理時間との関係からサービス処理時間予測式を生成し、これに用いてサービス処理時間を算出するため、シミュレーションにおいて、実際のサービス処理時間に近い形でサービス処理時間を求めることができる。従って、シミュレーションの精度を上げ、サービス処理時間を精度よく予測することができる。
【００１７】
本発明の分散ワークフローシミュレーションシステムでは、前記サービス処理時間予測式生成手段は、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成し、前記サービス処理時間計算手段は、前記シミュレート手段にて再現された前記サービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出する構成を採用することができる。１つのサーバマシンにて１つのサービスが実行されている場合については、そのサービス内の滞在メッセージ数と、サービス処理時間との関係からサービス処理時間予測式を求め、これを用いてシミュレーションを行うことで、サービス処理時間を算出すればよい。
【００１８】
本発明の分散ワークフローシミュレーションシステムでは、前記サービス処理時間予測式生成手段は、前記サービスを入出力するメッセージについての測定情報を記憶するメッセージログ記憶装置を参照して、前記サービス内の滞在メッセージ数と、前記メッセージの処理時間とを取得する構成を採用できる。測定情報としては、例えば、メッセージＩＤや業務ＩＤ、関連メッセージＩＤなどを含むタイムスタンプ付きのメッセージログなどが考えられる。
【００１９】
本発明の分散ワークフローシミュレーションシステムでは、前記サービス処理時間計算手段は、前記サービス処理時間の計算後、前記サービス内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて、前記サービス処理時間を再計算する構成を採用できる。この場合、サービス内での滞在メッセージ数の変化に合わせて、サービス処理時間を再計算することで、シミュレーションにおいて、より実際に近い形でサービス処理時間を計算することができ、メッセージの振る舞いをより忠実に再現できる。
【００２０】
本発明の分散ワークフローシミュレーションシステムでは、前記サービス処理時間予測式生成手段は、サービス処理時間の確率分布を推定する構成を採用できる。この場合、前記サービス処理時間計算手段は、前記算出したサービス処理時間と、前記サービス処理時間の確率分布とに基づいて、変動を考慮したサービス処理時間を算出する構成を採用できる。実際の業務システムでは、サービス内の滞在メッセージ数からサービス処理時間が一意に定まるのではなく、滞在メッセージ数が同じでも、サービス処理時間にはゆらぎが生じることが多い。そこで、サービス処理時間予測式で得られるサービス処理時間に対して、実際のサービス処理時間がどのような確率分布で分布するかを推定しておき、これを用いて、サービス処理時間予測式を用いて得られたサービス処理時間に変動を加える。このようにすることで、シミュレーションにおいて、より実際に近い形でサービス処理時間を計算することができ、メッセージの振る舞いをより忠実に再現できる。
【００２１】
本発明の分散ワークフローシミュレーションシステムは、前記ワークフロー実行装置内の滞在メッセージ数及び前記ワークフロー実行装置による前記メッセージの遅延時間を取得し、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化してワークフロー遅延時間予測式を生成する遅延時間予測式生成手段と、前記シミュレート手段にて再現された前記ワークフロー実行装置の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて前記ワークフロー実行装置による前記メッセージの遅延時間を算出するワークフロー遅延時間計算手段とを更に備える構成を採用できる。ワークフロー実行装置にて、メッセージの配送制御を行う場合、メッセージがワークフロー実行装置に入力されてから、メッセージの配送先を決定し、次のサービス又はワークフロー実行装置にメッセージが出力されるまでの遅延時間は、ワークフロー実行装置内の滞在メッセージ数に応じて変化すると考えられる。そこで、ワークフロー実行装置内の滞在メッセージ数と、ワークフロー実行装置による遅延時間との関係から、ワークフロー遅延時間予測式を生成し、シミュレーションにおいて、ワークフロー遅延時間予測式を用いて、ワークフロー実行装置による遅延時間の影響を計算する。このようにすることで、より実際に近い形で、メッセージの振る舞いを再現することができ、シミュレーションの精度を上げることができる。
【００２２】
本発明の分散ワークフローシミュレーションシステムでは、前記シミュレーションモデル生成手段は、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式及び前記ワークフロー遅延時間予測式とに基づいて、シミュレーションモデルを生成する構成を採用できる。シミュレーションにおいて、サービス処理時間予測式を用いてサービス処理時間を算出し、ワークフロー遅延時間予測式を用いてワークフローの遅延時間を算出することで、メッセージの振る舞いをより実際に近い形で再現できる。
【００２３】
本発明の分散ワークフローシミュレーションシステムでは、前記遅延時間予測式生成手段は、前記ワークフロー実行装置を入出力するメッセージについての測定情報を記憶するメッセージログ記憶装置を参照して、前記ワークフロー実行装置の滞在メッセージ数と、前記メッセージの遅延時間とを取得する構成を採用できる。
【００２４】
本発明の分散ワークフローシミュレーションシステムでは、前記ワークフロー遅延時間計算手段は、前記メッセージの遅延時間計算後、前記ワークフロー実行装置内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて、前記メッセージの遅延時間を再計算する構成を採用できる。この場合、ワークフロー実行装置内での滞在メッセージ数の変化に合わせて、ワークフロー遅延時間を再計算することで、シミュレーションにおいて、より実際に近い形でワークフロー遅延時間を計算することができ、メッセージの振る舞いをより忠実に再現できる。
【００２５】
本発明の分散ワークフローシミュレーションシステムでは、前記シミュレート手段は、前記算出されたサービス処理時間及びメッセージの遅延時間に基づいて、前記業務システム内のメッセージの振る舞いを再現する構成を採用できる。
【００２６】
本発明の業務システム管理装置は、メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムを管理する業務システム管理装置であって、前記サービス内の滞在メッセージ数及び前記サービスのメッセージ処理時間を取得し、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成するサービス処理時間予測式生成手段と、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式とに基づいて、シミュレーションモデルを生成するシミュレーションモデル生成手段とを備えることを特徴とする。
【００２７】
本発明の業務システム管理装置では、前記サービス処理時間予測式生成手段は、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成する構成を採用できる。
【００２８】
本発明の業務システム管理装置は、前記ワークフロー実行装置内の滞在メッセージ数及び前記ワークフロー実行装置による前記メッセージの遅延時間を取得し、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化してワークフロー遅延時間予測式を生成する遅延時間予測式生成手段を更に備える構成を採用できる。
【００２９】
本発明の業務システム管理装置では、前記シミュレーションモデル生成手段は、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式及び前記ワークフロー遅延時間予測式とに基づいて、シミュレーションモデルを生成する構成を採用できる。
【００３０】
本発明のシミュレーション装置は、メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムのシミュレーションを行うシミュレーション装置であって、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化することで生成されたサービス処理時間予測式と、前記業務システム内のメッセージの配送経路を定義するワークフロー定義とに基づいて生成されたシミュレーションモデルに基づいて、前記業務システム内のメッセージの振る舞いを逐次的に再現するシミュレート手段と、前記他のサービスとサーバマシンを共有するサービスについて、前記シミュレート手段にて再現された当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出するサービス処理時間計算手段とを備えたことを特徴とする。
【００３１】
本発明のシミュレーション装置では、前記サービス処理時間予測式は、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化することで生成されており、前記サービス処理時間計算手段は、前記シミュレート手段にて再現された前記サービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出する構成を採用できる。
【００３２】
本発明のシミュレーション装置では、前記サービス処理時間計算手段は、前記サービス処理時間の計算後、前記サービス内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて、前記サービス処理時間を再計算する構成を採用できる。
【００３３】
本発明のシミュレーション装置では、前記サービス処理時間計算手段は、前記算出したサービス処理時間と、推定されたサービス処理時間の確率分布とに基づいて、変動を考慮したサービス処理時間を算出する構成を採用できる。
【００３４】
本発明のシミュレーション装置では、前記シミュレーションモデルが、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化することで生成されたワークフロー遅延時間予測式と、前記ワークフロー遅延時間予測式と、前記ワークフロー定義とに基づいて生成されており、前記シミュレート手段にて再現された前記ワークフロー実行装置の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて前記ワークフロー実行装置による前記メッセージの遅延時間を算出するワークフロー遅延時間計算手段を更に備える構成を採用できる。
【００３５】
本発明のシミュレーション装置では、前記ワークフロー遅延時間計算手段は、前記メッセージの遅延時間計算後、前記ワークフロー実行装置内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて、前記メッセージの遅延時間を再計算する構成を採用できる。
【００３６】
本発明の分散ワークフローシミュレーション方法は、コンピュータを用いて、メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムをシミュレーションする分散ワークフローシミュレーション方法において、前記コンピュータが、前記サービス内の滞在メッセージ数及び前記サービスのメッセージ処理時間を取得し、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成するステップと、前記コンピュータが、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式とに基づいて、シミュレーションモデルを生成するステップと、前記コンピュータが、前記シミュレーションモデルに基づいて、前記業務システム内のメッセージの振る舞いを逐次的に再現するステップと、前記コンピュータが、前記他のサービスとサーバマシンを共有するサービスについて、前記メッセージ振る舞いの再現にて再現された当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出するステップとを有することを特徴とする。
【００３７】
本発明の分散ワークフローシミュレーション方法は、前記コンピュータが、１つのサーバマシンにて１つのサービスが実行される場合について、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成するステップと、前記コンピュータが、１つのサーバマシンにて１つのサービスが実行される場合について、前記メッセージ振る舞いの再現にて再現された前記サービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出するステップとを更に有する構成を採用できる。
【００３８】
本発明の分散ワークフローシミュレーション方法は、前記サービス内の滞在メッセージ数及び前記メッセージの処理時間を取得するステップでは、前記コンピュータは、前記サービスを入出力するメッセージについての測定情報を記憶するメッセージログ記憶装置を参照して、前記サービス内の滞在メッセージ数と、前記メッセージの処理時間とを取得する構成を採用できる。
【００３９】
本発明の分散ワークフローシミュレーション方法では、前記コンピュータは、前記サービス処理時間の計算後、前記サービス内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて、前記サービス処理時間を再計算する構成を採用できる。
【００４０】
本発明の分散ワークフローシミュレーション方法は、前記コンピュータが、サービス処理時間の確率分布を推定するステップを更に有する構成を採用できる。
【００４１】
本発明の分散ワークフローシミュレーション方法は、前記サービス処理時間を算出するステップでは、前記コンピュータは、前記算出したサービス処理時間と、前記サービス処理時間の確率分布とに基づいて、変動を考慮したサービス処理時間を算出する構成を採用できる。
【００４２】
本発明の分散ワークフローシミュレーション方法は、前記コンピュータが、前記ワークフロー実行装置内の滞在メッセージ数及び前記ワークフロー実行装置による前記メッセージの遅延時間を取得し、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化してワークフロー遅延時間予測式を生成するステップと、前記コンピュータが、前記メッセージ振る舞いの再現にて再現された前記ワークフロー実行装置の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて前記ワークフロー実行装置による前記メッセージの遅延時間を算出するステップとを更に有する構成を採用できる。
【００４３】
本発明の分散ワークフローシミュレーション方法は、前記シミュレーションモデルを生成するステップでは、前記コンピュータは、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式及び前記ワークフロー遅延時間予測式とに基づいて、ワークフロー遅延に関するシミュレーションモデルを生成する構成を採用できる。
【００４４】
本発明の分散ワークフローシミュレーション方法は、前記ワークフロー実行装置の滞在メッセージ数及び前記メッセージの遅延時間を取得するステップでは、前記コンピュータは、前記ワークフロー実行装置を入出力するメッセージについての測定情報を記憶するメッセージログ記憶装置を参照して、前記ワークフロー実行装置の滞在メッセージ数と、前記メッセージの遅延時間とを取得する構成を採用できる。
【００４５】
本発明の分散ワークフローシミュレーション方法では、前記コンピュータは、前記メッセージの遅延時間計算後、前記ワークフロー実行装置内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて、前記メッセージの遅延時間を再計算する構成を採用できる。
【００４６】
本発明の分散ワークフローシミュレーション方法は、前記メッセージの振る舞いを再現するステップでは、前記コンピュータは、前記算出されたサービス処理時間及びメッセージの遅延時間に基づいて、前記業務システム内のメッセージの振る舞いを再現する構成を採用できる。
【００４７】
本発明のプログラムは、コンピュータに、メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムを管理する処理を実行させるプログラムであって、前記コンピュータに、前記サービス内の滞在メッセージ数及び前記サービスのメッセージ処理時間を取得し、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成する処理と、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式とに基づいて、シミュレーションモデルを生成する処理とを実行させることを特徴とする。
【００４８】
本発明のプログラムは、前記サービス処理時間予測式を生成する処理では、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化してサービス処理時間予測式を生成する構成を採用できる。
【００４９】
本発明のプログラムは、前記コンピュータに、前記ワークフロー実行装置内の滞在メッセージ数及び前記ワークフロー実行装置による前記メッセージの遅延時間を取得し、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化してワークフロー遅延時間予測式を生成する処理を更に実行させる構成を採用できる。
【００５０】
本発明のプログラムは、前記シミュレーションモデルを生成する処理では、前記業務システム内のメッセージの配送経路を定義するワークフロー定義と、前記サービス処理時間予測式及び前記ワークフロー遅延時間予測式とに基づいて、シミュレーションモデルを生成する構成を採用できる。
【００５１】
本発明のプログラムは、コンピュータに、メッセージの配送制御を行うワークフロー実行装置と、受信メッセージに従って少なくとも１つのサービスを実行するサーバマシンとを備えた業務システムのシミュレーションを行う処理を実行させるプログラムであって、前記コンピュータに、他のサービスと前記サーバマシンを共有するサービスについて、当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、当該サービスにおけるメッセージの処理時間との関係を定式化することで生成されたサービス処理時間予測式と、前記業務システム内のメッセージの配送経路を定義するワークフロー定義とに基づいて生成されたシミュレーションモデルに基づいて、前記業務システム内のメッセージの振る舞いを逐次的に再現する処理と、前記他のサービスとサーバマシンを共有するサービスについて、前記メッセージの振る舞いを再現する処理にて再現された当該サービス内の滞在メッセージ数と、当該サービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出する処理とを実行させることを特徴とする。
【００５２】
本発明のプログラムでは、前記サービス処理時間予測式は、１つのサーバマシンにて１つのサービスが実行される場合については、前記サービス内の滞在メッセージ数と、前記サービスにおけるメッセージの処理時間との関係を定式化することで生成されており、前記サービス処理時間を算出する処理では、前記メッセージの振る舞いを再現する処理にて再現された前記サービス内の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて前記サービス処理時間を算出する構成を採用できる。
【００５３】
本発明のプログラムは、前記サービス処理時間を計算する処理では、前記サービス処理時間の計算後、前記サービス内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記サービス処理時間予測式とに基づいて、前記サービス処理時間を再計算する構成を採用できる。
【００５４】
本発明のプログラムは、前記サービス処理時間を計算する処理では、前記算出したサービス処理時間と、推定されたサービス処理時間の確率分布とに基づいて、変動を考慮したサービス処理時間を算出する構成を採用できる。
【００５５】
本発明のプログラムでは、前記シミュレーションモデルが、前記ワークフロー実行装置内の滞在メッセージ数と、前記ワークフロー実行装置による前記メッセージの遅延時間との関係を定式化することで生成されたワークフロー遅延時間予測式と、前記ワークフロー遅延時間予測式と、前記ワークフロー定義とに基づいて生成されており、前記コンピュータに、前記メッセージの振る舞いを再現する処理にて再現された前記ワークフロー実行装置の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて前記ワークフロー実行装置による前記メッセージの遅延時間を算出する処理を更に実行させる構成を採用できる。
【００５６】
本発明のプログラムは、前記ワークフロー遅延時間を計算する処理では、前記メッセージの遅延時間計算後、前記ワークフロー実行装置内の滞在メッセージ数が変化したときには、該変化後の滞在メッセージ数と、前記ワークフロー遅延時間予測式とに基づいて、前記メッセージの遅延時間を再計算する構成を採用できる。
【発明の効果】
【００５７】
本発明の分散ワークフローシミュレーションシステム、方法、及び、プログラムでは、他のサービスとサーバマシンを共有するサービスについて、業務システムから収集したサービス内の滞在メッセージ数と、そのサービスとサーバマシンを共有する他のサービス内の滞在メッセージ数と、サービス処理時間とに基づいて、サービス処理時間予測式を生成する。また、ワークフロー定義とサービス処理時間予測式とに基づいて、シミュレーションモデルを生成して、業務システム内のメッセージの振る舞いをシミュレートする。シミュレーションにおいて、他のサービスとサーバマシンを共有するサービスについて、生成したサービス処理時間予測式と、シミュレーションにおけるサービス内の滞在メッセージ数、及び、そのサービスとサーバマシンを共有するサービス内の滞在メッセージ数とに基づいて、サービス処理時間を計算することで、実際のサービス処理時間に近い形でサービス処理時間を求めることができ、サービス処理時間を精度よく予測することができる。
【発明を実施するための最良の形態】
【００５８】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の一実施形態の分散ワークフローシミュレーションシステムの構成を示している。分散ワークフローシミュレーションシステム１０は、サーバマシン１００と、ワークフロー実行装置２００と、業務システム管理装置４００と、シミュレーション装置５００とを有する。サーバマシン１００及びワークフロー実行装置２００は、分散ワークフローシステム（業務システム）を構成する。図２は、分散ワークフローシミュレーションシステムを構成する各装置の接続状況を示している。図２に示すように、各装置は、ネットワーク７００に接続されており、ネットワーク７００を介して相互に通信可能である。
【００５９】
サーバマシン１００は、サービスを実行するためのハードウェア設備を提供する。ワークフロー実行装置２００は、メッセージの配送制御を行う。業務システム管理装置４００は、サーバマシン１００及びワークフロー実行装置２００でのメッセージ処理状況に基づいて、業務システムの動作状況を反映させたシミュレーションモデルを生成する。シミュレーション装置５００は、業務システム管理装置４００が生成したシミュレーションモデルを用いてシミュレーションを行い、業務システムのパフォーマンスを再現した結果を出力する。
【００６０】
図１を参照すると、サーバマシン１００は、サービス提供手段１０１と、サービス監視手段１０２とを備える。サービス提供手段１０１は、受信メッセージに応じてサービスの処理を行い、応答メッセージを返す。この処理は、並列に行われる。サービス監視手段１０２は、サービス提供手段１０１を監視し、サービス提供手段１０１でのメッセージ処理状況に基づいて、タイムスタンプ付きのメッセージログやエラーログなどのサービスの測定情報を取得する。サービス監視手段１０２が取得した測定情報は、メッセージログ記憶装置３０２に格納される。また、サービス監視手段１０２は、サービスとサーバマシンとの対応を示す情報を、サーバマシン・サービス対応情報記憶装置３０３に格納する。
【００６１】
ワークフロー実行装置２００は、ワークフロー実行手段２０１と、ワークフロー監視手段２０２とを有する。ワークフロー実行手段２０１は、受信メッセージに応じて、ワークフロー定義記憶装置３０１に格納されたワークフロー定義に沿ったメッセージの配送経路制御を行う。ワークフロー監視手段２０２は、ワークフロー実行手段２０１を監視し、ワークフロー実行手段２０１でのメッセージの処理状況に基づいて、タイムスタンプ付きのメッセージログやエラーログなどの測定情報を取得する。ワークフロー監視手段２０２が取得した測定情報は、メッセージログ記憶装置３０２に格納される。
【００６２】
業務システム管理装置４００は、メッセージログ回収手段４０１と、サービス処理時間予測式生成手段４０２と、ワークフロー遅延予測式生成手段４０３と、シミュレーションモデル生成手段４０４とを有する。メッセージログ回収手段４０１は、管理対象となる業務システム内のメッセージログ記憶装置３０２から、サーバマシン１００でのサービス処理に関する測定情報、及び、ワークフロー実行装置２００でのワークフロー処理に関する測定情報（メッセージログ）を収集する。
【００６３】
サービス処理時間予測式生成手段４０２は、サービス処理に関する測定情報に基づいて、サービス内の滞在メッセージ数と、メッセージ処理時間と割り出し、これらの関係を定式化して、サービス処理時間予測式を生成する。また、サービス処理時間予測式生成手段４０２は、サービス処理時間についての確率分布を推定する。より詳細には、例えば、サービス処理時間予測式にて得られるサービス処理時間に対して、実際のサンプル点であるサービス処理時間が、どのような分布に従って存在しているかを推定する。
【００６４】
サービス処理時間予測式生成手段４０２は、処理時間予測式の生成に際しては、サーバマシン・サービス対応情報記憶装置３０３を参照し、サービスとサーバマシンとの対応関係を確認する。１台のサーバマシン１００にて１つのサービスが動作しているときには、そのサービス内のメッセージ滞在数とサービス処理時間とにより、サービス処理時間予測式を生成する。１台のサーバマシン１００にて複数のサービスが動作している場合には、パラメータとして、サーバマシン（リソース）を供給する他のサービス内の滞在メッセージ数を加えて、サービス内の滞在メッセージ数と、リソースを要求する他のサービス内の滞在メッセージ数と、サービス処理時間とに基づいて、サービス処理時間予測式を生成する。
【００６５】
ワークフロー遅延予測式生成手段４０３は、ワークフローに関する測定情報に基づいて、ワークフロー実行装置内の滞在メッセージ数と、メッセージ処理時間（遅延時間）とを割り出し、これらの関係を定式化し、ワークフロー実行装置２００における遅延時間の予測式を生成する。シミュレーションモデル生成手段４０４は、サービス処理時間予測式生成手段４０２が生成したサービス処理時間予測式と、ワークフロー遅延予測式生成手段４０３が生成したワークフロー遅延時間予測式と、ワークフロー定義記憶装置３０１内のワークフロー定義とを統合し、シミュレーションモデルを構築する。構築されたシミュレーションモデルは、シミュレーションモデル記憶装置３０４に格納される。
【００６６】
シミュレーション装置５００は、シミュレート手段５０１と、ワークフロー遅延計算手段５０２と、サービス処理時間計算手段５１０とを有する。シミュレート手段５０１は、シミュレーションモデル記憶装置３０４からシミュレーションモデルを取り出し、これと、入力装置／プロパティ６０１からのシミュレーション設定とに基づいて、業務システムでのメッセージの振る舞いを逐次的に再現する。シミュレーション設定は、例えば、シミュレーション時のメッセージ到着頻度設定やメッセージ総数設定などを含む。
【００６７】
シミュレート手段５０１は、ワークフロー遅延計算手段５０２を用いてワークフローによる遅延時間を計算し、サービス処理時間計算手段５１０を用いて、サービスでの処理時間を計算する。ワークフロー遅延計算手段５０２は、シミュレータでのワークフロー実行装置内のメッセージ数を入力とし、ワークフロー実行装置とサービスとの相互間、又は、２つのワークフロー実行装置の相互間での遅延時間を計算する。サービス処理時間計算手段５１０は、シミュレータでのサービス内の滞在メッセージ数を入力とし、サービスでの処理時間を計算する。
【００６８】
サービス処理時間計算手段５１０は、サービス処理時間分散計算手段５１１及びサーバマシン共有サービス処理時間計算手段５１２を有する。サービス処理時間計算手段５１１は、サービス処理時間予測式により、サービスでの平均的な処理時間を計算する。このとき、１つのサーバマシンにて複数のサービスが実行されているときには、サーバマシン共有サービス処理時間計算手段５１２にて、リソースを共有している他のサービスの滞在メッセージ数も用いて、サービスでの平均予測時間を計算する。
【００６９】
サービス処理時間分散計算手段５１１は、サービス処理時間の確率分布を用いて、サービス処理時間予測式を用いて算出された平均的なサービス処理予測時間に対して、変動を与える。サービス処理時間予測式を用いて計算された平均予測処理時間とその変動とにより、シミュレーションでのメッセージのサービス処理時間が決定する。シミュレーション時に、サービス処理待機時間内にサービス内の滞在メッセージ数が変化することがあり得る。その場合には、平均予測処理時間の計算とその変動の計算とを再度行い、シミュレート手段５０１に、再計算されたサービス処理時間を設定する。
【００７０】
ワークフロー遅延計算手段５０２によって計算されたワークフロー遅延時間、及び、サービス処理時間計算手段５１０にて計算された変動を考慮したサービス処理時間は、シミュレート手段５０１がメッセージの振る舞いを逐次的に再現する際に用いられる。シミュレート手段５０１によるシミュレーションの結果は、出力装置／ＧＵＩ６０２に出力される。また、シミュレート結果記憶装置３０５に格納される。
【００７１】
ワークフロー遅延予測式の導出について説明する。図３は、ワークフロー遅延予測式の生成の動作手順を示している。ワークフロー監視手段２０２は、ワークフロー実行手段２０１から、タイムスタンプ付きのメッセージログやエラーログなどの測定情報を取得し、メッセージログ記憶装置３０２に格納する。業務システム管理装置４００のメッセージログ回収手段４０１は、メッセージログ記憶装置３０２から、ワークフローに関するメッセージログを取り出し、ワークフロー遅延予測式生成手段４０３に渡す。
【００７２】
ワークフロー遅延予測式生成手段４０３は、ワークフロー定義記憶装置３０１からワークフロー定義を取り出し、ワークフローを、部分ワークフローに分解する（ステップＡ１）。ワークフローは、（１）メッセージ受信からサービスの呼び出しまで、（２）サービス呼び出しから次のサービス呼び出しまで、（３）サービス呼び出しからメッセージ出力までの３つに分類することができる。分解された各部分ワークフローは、これら３つの分類の何れかに属する。
【００７３】
同一ワークフロー実行装置２００内の全滞在メッセージ数は、そのワークフロー実行装置２００にて実行される各種部分ワークフローでの遅延時間に影響する。ワークフロー遅延予測式生成手段４０３は、ワークフローを通過したメッセージのログことに、（ｉ）各部分ワークフローでの遅延時間、（ｉｉ）その時間範囲でのワークフロー実行装置２００内の平均滞在メッセージ数の組を算出する（ステップＡ２）。この処理は、全てのメッセージに対して行う。平均滞在メッセージ数の算出では、例えば、メッセージがワークフロー実行装置２００に受信されてから、他のワークフロー実行装置２００に出力されるまでの間の時間が６０秒であったとすれば、その６０秒間でのワークフロー実行装置２００の全滞在メッセージ数を１秒間隔で計測し、その総和を６０秒で割った値を、平均滞在メッセージ数とする。
【００７４】
ワークフロー遅延予測式生成手段４０３は、部分ワークフローごとに、上記（ｉ）、（ｉｉ）の組の集合を元に、各部分ワークフローでの遅延時間とワークフロー内の滞在メッセージ数との関係を、例えば回帰分析を用いて定式化し、ワークフロー遅延予測式を生成する（ステップＡ３）。具体的には、Ｄを部分ワークフロー遅延時間、Ｍを滞在メッセージ数、α、βを定式化による係数及び定数として、
Ｄ＝αＭ＋β
に定式化し、これをワークフロー遅延時間予測式とする。定式化の手法としては、ニューラルネットなどを用いることもできる。この予測式により、ワークフロー内の滞在メッセージ数から、各部分ワークフローでの遅延時間を算出できるようになる。ワークフロー遅延予測式生成手段４０３は、ワークフロー遅延予測式を生成すると、生成したワークフロー遅延予測式の集合を、シミュレーションモデル生成手段４０４に渡す（ステップＡ４）。
【００７５】
次に、サービス処理時間予測式の導出について説明する。図４は、サービス処理時間予測式の生成の手順を示している。サービス監視手段１０２は、サービス提供手段１０１から、タイムスタンプ付きのメッセージログやエラーログなどの測定情報を取得し、メッセージログ記憶装置３０２に格納する。業務システム管理装置４００のメッセージログ回収手段４０１は、メッセージログ記憶装置３０２から、サービスについてのメッセージログを取り出し、サービス処理時間予測式生成手段４０２に渡す。
【００７６】
サービス処理時間予測式生成手段４０２は、サービス処理時間予測式生成の処理を開始する（ステップＢ１）。この処理では、まず、サービスのメッセージログごとに、（ｐ）サービスでの処理時間、（ｑ）その時間範囲でのサービス内の平均滞在メッセージ数の組を算出する（ステップＢ２）。次いで、サーバマシン・サービス対応情報記憶装置３０３を参照して、サーバマシンとサービスとの対応関係を調べ、サービスが他のサービスとサーバマシン１００を共用しているか否かを判定する（ステップＢ３）。他のサービスと共有しているときには、上記（ｑ）と同様に、共有しているサービス内の平均滞在メッセージ数を算出する（ステップＢ４）。
【００７７】
サービス処理時間予測式生成手段４０２は、ステップＢ２で算出したサービスでの処理時間とサービス内の平均滞在メッセージ数との組を元に、サービスでの処理とサービス内の滞在メッセージ数との関係を、例えば回帰分析を用いて定式化し、サービス処理時間予測式を生成する（ステップＢ５）。ステップＢ５では、具体的には、Ｔをサービス処理時間、Ｍを滞在メッセージ数、γ，δを定式化による係数及び定数として、
Ｔ＝γＭ＋δ
に定式化し、これを、サービス処理時間予測式とする。
【００７８】
また、ステップＢ５では、リソースを共有する他のサービスがある場合には、サービス内の平均滞在メッセージ数に、ステップＢ４で算出した、リソースを共有する他のサービスの平均滞在メッセージ数を加えて、サービスでの処理と滞在メッセージ数との関係を、例えば重回帰分析を用いて定式化する。具体的には、１つのサーバマシン１００にて、サービス１とサービス２との２つのサービスが動作しているときには、Ｍ１をサービス１での滞在メッセージ数、Ｍ２をサービス２での滞在メッセージ数として、
Ｔ＝γ１Ｍ１＋γ１Ｍ１＋δ
に定式化し、これをサービス処理時間予測式とする。
【００７９】
サービス処理時間予測式生成手段４０２は、サービスでの処理とサービス内の滞在メッセージ数との関係の定式化に際して、サービス処理時間の確率分布を求める（ステップＢ６）。この確率分布の推定では、例えば、サービス処理時間予測式を用いて求めたサービス処理時間に対して、各サンプル点がどの程度ずれているかを求め、そのヒストグラムをとり、分布が、正規分布に近似した分布であるか、ポアソン分布に近似した分布であるかなどを調べる。ステップＢ２からステップＢ６までにより、一のサービスについて、処理時間予測式が得られる。この処理を、サービスごとに行い（ステップＢ７）、各サービスについて処理時間予測式を生成する。サービス処理時間予測式生成手段４０２は、生成した各サービスのサービス処理時間予測式の集合を、シミュレーションモデル生成手段４０４に渡す（ステップＢ８）。
【００８０】
シミュレーションモデル生成手段４０４は、ワークフロー定義記憶装置３０１よりワークフロー定義を取り出し、業務システム内のワークフロー定義と、ワークフロー遅延予測式及びサービス処理時間予測式とを組み合わせて、シミュレーションモデルを構成する。シミュレーションモデルの例を、図５に示す。シミュレーションモデルの構成では、ワークフロー定義より業務システム内に存在するサービスを判別し、そのサービスに対応するサービス処理時間予測式をシミュレーションモデルに埋め込む。また、ワークフロー定義より業務システムのメッセージ経路を判別し、その経路に対応するワークフロー実行装置２００の部分ワークフロー遅延の遅延時間予測式をシミュレーションモデルに埋め込む。
【００８１】
続いて、シミュレーションでのワークフロー遅延時間の算出について説明する。シミュレート手段５０１は、シミュレーションモデル記憶装置３０４からシミュレーションモデルを取り出し、このシミュレーションモデルと、入力装置／プロパティ６０１から入力された、シミュレーション時のメッセージ到着頻度設定・メッセージ総数設定などのシミュレーション設定とに基づいて、業務システムでのメッセージの振る舞いを逐次的に再現する。このメッセージ振る舞いの再現により、ワークフロー内の滞在メッセージ数、及び、各サービス内の滞在メッセージ数が求まる。
【００８２】
図６に、ワークフロー遅延時間算出の手順を示す。シミュレート手段５０１は、シミュレーションにおいて、ワークフローにメッセージが到着した際に、或いは、一定時間間隔ごとに、ワークフロー内のメッセージの滞在数の判定処理を行う（ステップＣ１）。この処理では、シミュレート手段５０１は、ワークフロー内のメッセージの滞在数に変化があるか否かを判断する（ステップＣ２）。滞在メッセージ数に変化があるときには、ワークフロー遅延計算手段５０２により、新たな滞在メッセージ数と部分ワークフロー遅延予測値とに基づいて、部分ワークフローごとの遅延時間を再計算する（ステップＣ３）。ワークフロー遅延計算手段５０２で、再計算された部分ワークフローごとの遅延時間は、シミュレート手段５０１に設定され、シミュレーションに用いられる（ステップＣ４）。
【００８３】
シミュレート手段５０１は、ワークフローにメッセージが到着した際、或いは、一定時間間隔ごとに、ループを回し（ステップＣ５）、滞在メッセージ数の変化があったときには、それに応じた遅延時間計算を行う。このようにすることで、シミュレーションにおけるワークフロー実行装置の遅延時間は、ワークフロー内の滞在メッセージ数の変化に応じて変化することになる。シミュレート手段５０１は、シミュレーションにおいて、ワークフロー実行装置にメッセージが入力されるたびに、設定された遅延時間だけメッセージを遅延して、次段のサーバマシン又はワークフロー実行装置に渡すことで、メッセージの振る舞いを再現する。
【００８４】
図７に、サービス処理時間算出の手順を示す。シミュレート手段５０１は、シミュレーションにおいて、サービスにメッセージが到着した際、又は、サービス内の滞在メッセージの処理が終わった際に、サービス内のメッセージの滞在数の判定処理を行う（ステップＤ１）。シミュレート手段５０１は、サービス内の滞在メッセージ数に変化があるか否かを判断する（ステップＤ２）。変化がある場合には、サービスが他のサービスとサーバマシン１００を共有しているか否かを判定する（ステップＤ３）。当該サービスが、他のサービスとサーバマシン１００を共用していないときには、サービス処理時間計算手段５１０により、変化後の滞在メッセージ数とサービス処理時間予測式とに基づいて、サービスの平均処理時間を再計算する（ステップＤ６）。
【００８５】
サービスが、他のサービスとサーバマシンを共用している場合は、共用している他のサービスにも滞在メッセージ数の変化を通知し、他のサービスについても、処理時間の変更を実施させる（ステップＤ４）。また、共用している他のサービス内の滞在メッセージ数を取得する（ステップＤ５）。その後、ステップＤ６に移行し、サーバマシン共有サービス処理時間計算手段５１２を用いて、サービス内の滞在メッセージ数と、リソースを要求している他のサービス内の滞在メッセージ数と、サービス処理時間とに基づいて、サービス平均処理時間を再計算する。
【００８６】
ステップＤ６で計算されたサービス処理時間は、処理時間の変動を考慮しない場合のサービス処理時間の平均的な値である。サービス処理時間計算手段５１０は、サービス平均処理時間を再計算すると、サービス処理時間分散計算手段５１１により、サービス処理時間予測式生成手段４０２が求めたサービス処理時間の確率分布を用いて、変動を考慮したサービスの処理時間計算を行う（ステップＤ７）。サービス処理時間分散計算手段５１１で計算された変動を考慮したサービス処理時間は、シミュレート手段５０１に設定され、シミュレーションに用いられる（ステップＤ８）。
【００８７】
シミュレート手段５０１は、ワークフローにメッセージが到着した際、或いは、サービス内の滞在メッセージの処理が終わるごとに、ループを回し（ステップＤ９）、滞在メッセージ数の変化があったときには、それに応じた処理時間計算を行う。このようにすることで、シミュレーションにより計算されたサービス処理時間は、サービス内、又は、サービス及び当該サービスとサーバマシンを供給するサービス内の滞在メッセージ数の変化に応じて変化する。シミュレート手段５０１は、シミュレーションにおいて、ワークフロー実行装置にメッセージが入力されるたびに、設定された遅延時間だけメッセージを遅延して、次段のサーバマシン又はワークフロー実行装置に渡すことで、メッセージの振る舞いを再現する。
【００８８】
シミュレート手段５０１は、メッセージ滞在中に、ワークフロー遅延時間又はサービス処理時間（メッセージ滞在時間）が変化したときには、メッセージが入力されてから、算出されたメッセージ滞在時間が変化するまでの時間と、変化前のメッセージ滞在時間との関係から、処理がどの程度進行しているかを計算し、変化後のメッセージ滞在時間と処理の残りの割合とから残りのメッセージ滞在時間を計算する。例えば、当初メッセージ滞在時間が「２０秒」と計算され、メッセージ入力から１０秒後に滞在メッセージ数の増加に伴ってメッセージ滞在時間が「３０秒」に変更されたときには、１０秒／２０秒＝５０％だけ処理が進行していると判断する。この場合、シミュレーションでは、残りのメッセージ滞在時間を、変化後のメッセージ滞在時間３０秒×５０％＝１５秒とする。
【００８９】
以下、具体的な実施例を用いて説明する。図８は、業務システムの構成を示している。この業務システムは、サプライチェーンの業務システムであり、小売サービス（Retailer）、卸サービス（WarehouseA、B）、製造サービス（Manufacture1,2）から構成されている。図９に、図８の業務システムを実現する装置構成を示す。この例では、業務システムは、２台のワークフロー実行装置（２００Ａ、２００Ｂ）と、４台のサーバマシン（１００Ａ〜１００Ｄ）とで構成されている。サービス間は、ＳＯＡＰ等のプロトコルを利用してＸＭＬ形式のメッセージを送受信するものとし、サービス及びワークフロー実行装置は、メッセージの並列処理を行えるものとする。
【００９０】
ワークフロー実行装置２００Ａは、業務システム利用者からのメッセージを受け取り、これをサーバマシン１００Ａに渡す。サーバマシン１００Ａは、Retailerサービスに対応するサービス提供手段１０１Ａにて処理を行った後、処理結果をワークフロー実行装置２００Ａに返す。ワークフロー実行装置２００Ａは、サーバマシン１００Ａでの処理結果を、サーバマシン１００Ｂと、ワークフロー実行装置２００Ｂとに渡す。サーバマシン１００Ｂは、WarehouseAサービスに対応するサービス提供手段１０１Ｂにて処理を行った後に、処理結果をワークフロー実行装置２００Ａに返す。ワークフロー実行装置２００Ａは、サーバマシン１００Ｂでの処理結果を、ワークフロー実行装置２００Ｂに渡す。
【００９１】
ワークフロー実行装置２００Ｂは、ワークフロー実行装置２００Ａから受け取ったサーバマシン１００Ａでの処理結果を、サーバマシン１００Ｃに渡す。サーバマシン１００Ｃは、WarehouseBサービスに対応したサービス提供手段１０１Ｃにて処理を行った後、処理結果をワークフロー実行装置２００Ｂに返す。ワークフロー実行装置２００Ｂは、サーバマシン１００Ｃから返却された処理結果、及び、ワークフロー実行装置２００Ａから受け取ったサーバマシン１００Ｂでの処理結果を、サーバマシン１００Ｄに渡す。サーバマシン１００Ｄは、Manufacture1に対応したサービス提供手段１０１Ｄと、Manufacture2に対応したサービス提供手段１０１Ｅとで処理を行い、その処理結果をワークフロー実行装置２００Ｂに返す。ワークフロー実行装置２００Ｂが、サーバマシン１００Ｄから受け取った処理結果を出力することで、ワークフローが終了する。
【００９２】
ワークフロー実行装置２００Ａのワークフロー監視手段２０２（図１）は、ワークフロー実行手段２０１より測定情報を取得し、メッセージログ記憶装置３０２に格納する。ワークフロー実行装置２００Ｂについても同様に、ワークフロー監視手段２０２は、ワークフロー実行手段２０１より測定情報を取得し、メッセージログ記憶装置３０２に記憶する。図１０に、測定情報の具体例を示す。この例では、測定情報は、メッセージＩＤ、送信元ＵＲＬ、送信先ＵＲＬ、関連メッセージＩＤ、Request/Responseフラグ、業務ＩＤ、タイムスタンプを含んでいる。
【００９３】
業務システム管理装置４００内のワークフロー遅延予測式生成手段４０３は、ワークフロー定義記憶装置３０１よりワークフロー定義を取り出し、ワークフローを部分ワークフローに分解する。例えば、ワークフロー実行装置２００Ａが担当するワークフローについては、ワークフローを、（１）メッセージ入力からRetailerサービス呼び出しまで、（２）Retailerサービス応答からWarehouseAサービス呼び出しまで、（３）WarehouseAサービス応答からワークフロー実行装置２００Ｂへのメッセージ出力まで、という３つの部分ワークフローに分解する。
【００９４】
ワークフロー遅延予測式生成手段４０３は、メッセージログ記憶装置３０２を参照して、部分ワークフローごとに、部分ワークフローの遅延時間と、その遅延時間範囲でのワークフロー実行装置内の平均滞在メッセージ数を算出する。この遅延時間の算出では、メッセージログ記憶装置３０２に記憶された測定情報（図１０）を参照して、各ワークフロー実行装置２００を出入りするメッセージを追跡し、入力メッセージに対応するメッセージが出力されるまでの時間を算出する。また、平均滞在メッセージ数の算出では、メッセージが入力されてから出力されるまでの間の各ワークフロー実行装置２００内の滞在メッセージを調べ、その平均値を算出する。
【００９５】
図１１に、算出された部分ワークフロー遅延時間と平均滞在メッセージ数との組を示す。ワークフロー遅延予測式生成手段４０３は、算出された部分ワークフロー遅延時間と平均滞在メッセージ数との組をサンプル値として用い、部分ワークフロー遅延時間と平均滞在メッセージ数との関係を、回帰分析によって定式化する。この定式化により、ワークフロー実行装置２００でのメッセージ滞在メッセージ数をパラメータとして、部分ワークフローの遅延時間を推定するワークフロー遅延予測式が得られる。
【００９６】
一方、各サーバマシン１００のサービス監視手段１０２（図１）は、サービス提供手段１０１より測定情報（図１０）を取得し、メッセージログ記憶装置３０２に格納する。業務システム管理装置４００内のサービス処理時間予測式生成手段４０２は、メッセージログ記憶装置３０２を参照して、各サービスについて、処理時間と、その処理時間範囲での平均滞在メッセージ数を算出する。この処理時間の算出では、メッセージログ記憶装置３０２に記憶された測定情報を参照して、サーバマシン１００を出入りするメッセージを追跡し、各サービスについて、入力メッセージに対応するメッセージが出力されるまでの時間を算出する。また、平均滞在メッセージ数の算出では、メッセージが入力されてから出力されるまでの間のサービス内の滞在メッセージを調べ、その平均値を算出する。
【００９７】
図１２に、算出されたサービス処理時間と平均滞在メッセージ数との組を示す。サービス処理時間予測式生成手段４０２は、算出されたサービス処理時間と平均滞在メッセージ数との組をサンプルとして用い、サービス処理時間と平均滞在メッセージ数との関係を、回帰分析によって定式化する。この定式化により、サービス内の滞在メッセージ数をパラメータとして、サービス処理時間を推定するサービス処理時間予測式が得られる。また、サービス処理時間予測式生成手段４０２は、サービス処理時間集合にベイズ推定などを適用し、サービス処理時間の確率分布を推定する。
【００９８】
サーバマシン１００Ｄについては、同一サーバマシンにてManufacture1とManufacture2との２つのサービスを行っているので、これらサービスについては、自身のサービス内の平均滞在メッセージ数だけでなく、サーバマシンを共有する他のサービス内の平均滞在メッセージ数を加えて、サービス処理時間予測式を生成する。具体的には、Manufacture1についてのサービス処理時間予測式を生成する際には、図１３に示すように、Manufacture1（サービスＩＤ：ＷＳ４）のサービス処理時間と、Manufacture1の平均滞在メッセージ数との組に、Manufacture2（サービスＩＤ：ＷＳ５）の平均滞在メッセージ数を加える。そして、これをサンプルとして用い、サービス処理時間と平均滞在メッセージ数との関係を、重回帰分析によって定式化する。この定式化により、Manufacture1の平均滞在メッセージ数、及び、Manufacture2の平均滞在メッセージ数の２つをパラメータとして、Manufacture1のサービス処理時間を推定するサービス処理時間予測式が得られる。
【００９９】
図１４に、シミュレータ内での業務システム構成を示す。同図において、矩形はトランジションと呼ばれサービスを示し、円形はプレースと呼ばれサービス内の滞在メッセージ数を入力経路ごとに示す。ワークフロー実行手段２０１（図１）による遅延は、ワークフロー実行手段２０１がメッセージを受け取ってから、プレースにメッセージ（図１７における黒丸に相当）を入力するまでに要する時間として表すことができる。また、サービス処理時間は、トランジションにおける処理時間として表すことができる。シミュレーション時にサービス提供手段１０１にいるメッセージは、ワークフローエンジン範囲内のプレース（円形）に把握できる。
【０１００】
例えば、シミュレータ内時間において１分周期でワークフロー内平均滞在メッセージ数を計算することにより、ワークフロー内の部分ワークフローの遅延時間を推測することができる。ワークフロー実行装置２００Ａが担当する、業務システム利用者によるメッセージ入力からRetailerサービス呼び出しまでの部分ワークフローでの遅延時間予測式が、
Ｄ＝０．８Ｍ＋２．４
であったとする。この場合、ワークフロー実行装置２００Ａの平均滞在メッセージ数が「２」であれば、その部分ワークフローでの遅延時間は、４秒と算出される。
【０１０１】
上記では、遅延時間は１分周期で更新されることになるが、周期の代わりに、ワークフローに対するメッセージ入力／出力をイベントとしてワークフロー内滞在メッセージ数を計算し、遅延時間を算出することもできる。シミュレート手段５０１は、算出された遅延時間に従って、メッセージがワークフロー実行装置に入力されるたびに、上記で算出された遅延時間だけメッセージを遅延して、次段のサービス、又は、ワークフロー実行装置へメッセージを受け渡すことで、業務システム内でのメッセージの振る舞いを再現する。
【０１０２】
サービス処理時間の計算では、サービスにメッセージが到着するたびに、滞在メッセージ数を計算し、サーバマシンでの処理時間を推測する。このサービス処理時間の推測では、まず、サービスの平均的な処理時間計算を行う。例えば、サーバマシン１００Ｄについて、Manufacture1サービスでの処理時間予測式が、
Ｔ＝７．２×Ｍ１＋１．３×Ｍ２＋８．４
であったとする。Manufacture1サービスの平均滞在メッセージ数Ｍ１が「２」で、Manufacture2サービスの平均滞在メッセージ数Ｍ２が「１」であれば、Manufacture１サービスのサービス平均処理時間は、２４．１秒と算出される。次いで、算出したサービス平均処理時間と、サービス処理時間予測式生成手段４０２にて推測した確率分布を用いて、変動を考慮したサービス処理時間を求める。
【０１０３】
変動を考慮したサービス処理時間の計算は、具体的には、Ｔ’を変動を考慮した処理時間、Ｒを確率分布に基づく乱数（０≦ｘ≦１）、Ｋを標準偏差、Ｔを算出されたサービス平均処理時間として、下記式により行う。
Ｔ’＝（Ｒ−０．５）×２×Ｋ＋Ｔ
上記式における確率分布に基づく乱数Ｒは、例えば確率分布が正規分布のときに対応した乱数発生関数、ポアソン分布のときに対応した乱数発生関数などを用意しておき、サービス処理時間の確率分布がどのタイプの分布を判断して使用する乱数発生関数を選択し、選択した乱数発生関数にて発生させる。シミュレート手段５０１は、このように算出された変動を考慮したサービス処理時間に従って、業務システム内でのメッセージの振る舞いを再現する。
【０１０４】
本実施形態では、１台のサーバマシン１００が複数のサービスを実行する場合には、サーバマシン１００を共有する他のサービスでの滞在メッセージ数を含めて、サービス内の滞在メッセージ数とサービス処理時間との関係を定式化してサービス処理時間予測式を生成し、シミュレーションにおいて、そのように生成したサービス処理時間予測式を用いてサービス処理時間を求め、ワークフローの処理時間を予測する。このため、リソースを共有するサービスがある場合でも、ワークフロー処理時間の予測精度が落ちない。また、本実施形態では、ワークフロー実行装置２００による影響を定式化して遅延時間予測式を生成し、シミュレーションにおいて、生成した遅延時間予測式を用いてワークフロー実行装置２００による遅延時間を予測する。このため、業務システム内にワークフロー実行装置２００が存在する場合でも、ワークフロー処理時間の予測精度が落ちない。
【０１０５】
本実施形態では、シミュレーションにおいて、サーバマシン及びワークフロー実行装置内の滞在メッセージ数の変化を検出して、メッセージ振る舞いの再現に用いるサービス処理時間及びワークフロー遅延時間の再計算を行う。このようにすることで、ワークフロー内でのメッセージの振る舞いを実際の動作状況に近い形で再現でき、実際の動作状況を忠実に再現することができる。従って、サービス処理時間及びワークフロー遅延時間の予測精度を上げることができる。また、サービス処理時間についての確率分布を求め、これを考慮して、サービス処理時間予測式を用いて計算したサービス処理時間に変動を加える。これにより、より実際に近い形で、ワークフロー処理時間を予測することができる。
【０１０６】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の分散ワークフローシミュレーションシステム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の一実施形態の分散ワークフローシミュレーションシステムを示すブロック図。
【図２】分散ワークフローシミュレーションシステムを構成する各装置の接続状況を示すブロック図。
【図３】ワークフロー遅延予測式の生成の動作手順を示すフローチャート。
【図４】サービス処理時間予測式の生成の手順を示すフローチャート。
【図５】シミュレーションモデルの具体例を示す図。
【図６】ワークフロー遅延時間算出の手順を示すフローチャート。
【図７】サービス処理時間算出の手順を示すフローチャート。
【図８】実施例の業務システムの構成を示すブロック図。
【図９】実施例の業務システムを実現する装置構成を示すブロック図。
【図１０】測定情報の具体例を示す図。
【図１１】部分ワークフロー遅延時間と平均滞在メッセージ数との組を示す図。
【図１２】サービス処理時間と平均滞在メッセージ数との組を示す図。
【図１３】他のサービスとサーバマシンを共有するサービスについてのサービス処理時間と平均滞在メッセージ数との組を示す図。
【図１４】シミュレータ内での業務システムを示すモデル図。
【図１５】業務システムの一例を示すブロック図。
【図１６】特許文献１に記載の分散ワークフローシミュレーションシステムを示すブロック図。
【図１７】シミュレーションモデルの具体例を示すモデル図。
【符号の説明】
【０１０８】
１０：分散ワークフローシミュレーションシステム
１００：サーバマシン
１０１：サービス提供手段
１０２：サービス監視手段
２００：ワークフロー実行装置
２０１：ワークフロー実行手段
２０２：ワークフロー監視手段
３０１：ワークフロー定義記憶装置
３０２：メッセージログ記憶装置
３０３：サーバマシン・サービス対応情報記憶装置
３０４：シミュレーションモデル記憶装置
３０５：シミュレート結果記憶装置
４００：業務システム管理装置
４０１：メッセージログ回収手段
４０２：サービス処理時間予測式生成手段
４０３：ワークフロー遅延予測式生成手段
４０４：シミュレーションモデル生成手段
５００：シミュレーション装置
５０１：シミュレート手段
５０２：ワークフロー遅延計算手段
５１０：サービス処理時間計算手段
５１１：サービス処理時間分散計算手段
５１２：サーバマシン共有サービス処理時間計算手段
６０１：入力装置／プロパティ
６０２：出力装置／ＧＵＩ
７００：ネットワーク
【図１】
2008203934.tif 000003
【図２】
2008203934.tif 000004
【図３】
2008203934.tif 000005
【図４】
2008203934.tif 000006
【図５】
2008203934.tif 000007
【図６】
2008203934.tif 000008
【図７】
2008203934.tif 000009
【図８】
2008203934.tif 000010
【図９】
2008203934.tif 000011
【図１０】
2008203934.tif 000012
【図１１】
2008203934.tif 000013
【図１２】
2008203934.tif 000014
【図１３】
2008203934.tif 000015
【図１４】
2008203934.tif 000016
【図１５】
2008203934.tif 000017
【図１６】
2008203934.tif 000018
【図１７】
2008203934.tif 000019