(57)【特許請求の範囲】
【請求項１】
条件分岐と手続を含むワークフローを受信した場合、受信した該ワークフローに含まれる条件分岐に対して定義された分類情報毎に算出された、実行済みの条件分岐において条件が満たされた確率を示す分岐確率情報を格納する記憶部から、該受信したワークフローに含まれる条件分岐の分類に対応する該分岐確率情報を取得し、
ワークフローに含まれる手続きにて提供されるサービスに対してかかるコストを示すコスト情報と、該サービスの可用性を示す可用性情報を格納する記憶部から、受信した前記ワークフローに含まれる手続きに対応する前記コスト情報及び前記可用性情報を取得し、
取得した該分岐確率情報に基づいて、前記受信したワークフローに含まれる手続きの実行確率を算出し、
前記受信したワークフローに含まれる前記手続きの代替手続きを記述した代替情報を取得し、
取得した前記分岐確率情報、前記可用性情報、及び前記代替情報を用いて、前記代替手続きの実行確率を算出し、
算出した前記手続きの実行確率、算出した前記代替手続きの実行確率、取得した前記コスト情報、及び取得した前記可用性情報を用いて、前記受信したワークフローが正常終了または異常終了する確率と、前記受信したワークフローの実行によりかかるコストとを算出する
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項２】
前記分類情報は、条件分岐の条件を満たすか否かの判定のために用いられる情報を入力するユーザの識別情報に対応した分類情報である
ことを特徴とする請求項１に記載の情報処理方法。
【請求項３】
コンピュータに、
条件分岐と手続を含むワークフローを受信した場合、受信した該ワークフローに含まれる条件分岐に対して定義された分類情報毎に算出された、実行済みの条件分岐において条件が満たされた確率を示す分岐確率情報を格納する記憶部から、該受信したワークフローに含まれる条件分岐の分類に対応する該分岐確率情報を取得し、
ワークフローに含まれる手続きにて提供されるサービスに対してかかるコストを示すコスト情報と、該サービスの可用性を示す可用性情報を格納する記憶部から、受信した前記ワークフローに含まれる手続きに対応する前記コスト情報及び前記可用性情報を取得し、
取得した該分岐確率情報に基づいて、前記受信したワークフローに含まれる手続きの実行確率を算出し、
前記受信したワークフローに含まれる前記手続きの代替手続きを記述した代替情報を取得し、
取得した前記分岐確率情報、前記可用性情報、及び前記代替情報を用いて、前記代替手続きの実行確率を算出し、
算出した前記手続きの実行確率、算出した前記代替手続きの実行確率、取得した前記コスト情報、及び取得した前記可用性情報を用いて、前記受信したワークフローが正常終了または異常終了する確率と、前記受信したワークフローの実行によりかかるコストとを算出する
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
近年クラウドサービスにより、E-mail（Electronic Mail）やスプレッドシートなど様々なサービスが提供されている。このような様々なクラウドサービスをワークフローエンジンで組み合わせることにより、クラウドサービスを用いたビジネスプロセスを短期間で安価に組み立てることが可能になる。
【０００３】
ワークフローエンジンは、ワークフローに従って担当者やシステムに対して作業を割り当て、タスクを順次実行するソフトウェアである。
【０００４】
ワークフローは、業務の一連の処理手続きを定義した情報である。この一連の処理手続きには、各処理の内容と、一連の処理の実行順や流れを示す情報とが含まれる。
【０００５】
ワークフローに定義される処理の内容には、Software as a Service（ＳａａＳ）等のクラウドサービスを利用して行うものが含まれる。このようなクラウドサービスにより提供されるサービスには、E-mailやスプレッドシートなど様々なサービスがある。
【０００６】
一方、例えばE-mailやスプレッドシート等は、それぞれ同様の機能を提供するクラウドサービスが、例えば複数のベンダにより提供されている。よってワークフローの設計において、例えば、クラウドサービスを利用して行う処理については、利用可能な複数の同種のクラウドサービスのうちから、１つが選定されることとなる。ビジネスプロセスを適切に設計するためのクラウドサービスの選定の指標としては、選定対象のクラウドサービスのコストと可用性が考えられる。
【０００７】
クラウドサービスの選定時には、コストと可用性の見積もりが重要となる。仮に設計時にコストや可用性の見積もりを行わずにクラウドサービスの選定を行った場合、そのワークフローが実行された後でコスト超過や低可用性などの問題が顕在化する可能性がある。この場合、ワークフローの再設計や修正が発生するため、コストと時間の無駄が発生する。
【０００８】
ワークフローでは、可用性向上のために類似の機能を持つ複数のクラウドサービスを併用する場合もある。この場合、クラウドサービスを併用することにより、どれだけ可用性が向上し、追加コストが発生するのかを見積もることも重要となる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開第２０１３／０３１１２９号
【特許文献２】国際公開第２０１１／０１８８２７号
【非特許文献】
【００１０】
【非特許文献１】Luke Herbert and Robin Sharp, “Using stochastic model checking to provision complex business services,” In Proceedings of 14th International IEEE Symposium on High-Assurance Systems Engineering (HASE'12), pp. 98-105, IEEE, 2012.
【非特許文献２】Luke Herbert and Robin Sharp, “Precise Quantitative Analysis of Probabilistic Business Process Model and Notation Workflows,” Journal of Computing and Information Science in Engineering, Vol.13, 2013.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、設計時におけるワークフローのコストと可用性の事前の見積もりは難しい。これは、ワークフローの構造は条件分岐や処理フローの合流など、複雑な構造を持つため、その構造図を見ただけでは各クラウドサービスが何回呼び出されるかを特定するのが困難だからである。
【００１２】
そこで、１つの側面では、本発明は、新たなワークフローの作成に際しての検討材料を提供するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
一態様による情報処理方法は、条件分岐と手続を含むワークフローを受信した場合、受信したワークフローに含まれる条件分岐に対して定義された分類情報毎に算出された、実行済みの条件分岐において条件が満たされた確率を示す分岐確率情報を格納する記憶部から、受信したワークフローに含まれる条件分岐の分類に対応する分岐確率情報を取得し、ワークフローに含まれる手続きにて提供されるサービスに対してかかるコストを示すコスト情報と、サービスの可用性を示す可用性情報を格納する記憶部から、受信したワークフローに含まれる手続きに対応するコスト情報及び可用性情報を取得し、取得した分岐確率情報に基づいて、受信したワークフローに含まれる手続きの実行確率を算出し、受信したワークフローに含まれる手続きの代替手続きを記述した代替情報を取得し、取得した分岐確率情報、可用性情報、及び代替情報を用いて、代替手続きの実行確率を算出し、算出した手続きの実行確率、算出した代替手続きの実行確率、取得したコスト情報、及び取得した可用性情報を用いて、受信したワークフローが正常終了または異常終了する確率と、受信したワークフローの実行によりかかるコストとを算出する。
【発明の効果】
【００１４】
一側面によれば、新たなワークフローの作成に際しての検討材料を提供するための技術を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】ワークフローの一例を示す。
【図２】ワークフローにおけるサービスの代替処理の説明図である。
【図３】実施形態に係るワークフローの可用性とコストの算出の流れを示す。
【図４】実施形態に係る情報処理装置の機能を図解したブロック図である。
【図５】実施形態に係る情報処理装置の構成の一例を示す。
【図６】実施形態に係る算出処理の全体の流れの説明図である。
【図７】推定部の構成の一例を示す。
【図８】分類情報の一例を示す。
【図９】代替サービス情報の一例を示す。
【図１０】傾向情報の一例を示す。
【図１１】可用性情報の一例を示す。
【図１２】コスト情報の一例を示す。
【図１３】実施形態に係るワークフローの一例を示す。
【図１４】確率モデルの一例を示す。
【図１５】利用確率モデルの一例を示す。
【図１６】確率モデル検査ツールを用いた平均コストと平均可用性の算出の一例を示す。
【図１７】実施形態に係る収集部の情報格納処理の詳細を図解したフローチャートの一例である。
【図１８】実施形態に係る情報処理装置の平均コストと平均可用性の算出処理の詳細を図解したフローチャートの一例である。
【図１９】実施形態に係る情報処理装置のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００１６】
先ず、実施形態に係るワークフローについて説明する。図１は、ワークフローの一例を示す。図１に示すワークフローは休暇申請に関する処理手続きを定義したものである。
【００１７】
図１のワークフローにおいて、複数のノード（Ｎ１〜Ｎ８）がリンク（有向線）で結合されている。ノードは、ワークフローにおいて実行される処理の単位である。また、ノード間を結合するリンクによりノードの実行順序が示される。各ノードは、それぞれ処理対象者を示す情報に対応付けられてもよい。処理対象者は、対応するノードの処理の実行や確認などを行うユーザであり、図１においては、「従業員」、「管理職」として示されている。
【００１８】
処理対象者は、例えばウェブインターフェースを介して、対応するノードの処理で用いられる情報を入力し、また、対応するノードの処理で出力された情報を参照する。尚、処理対象者は、対応する各ノードにおいて何も行わなくてもよい場合もある。
【００１９】
各ノードで実行される処理では、他のシステムによって提供されるサービスが利用されてもよい。他のシステムによって提供されるサービスには、例えばクラウドサービス等がある。このような他のシステムによって提供されるサービス（以下、クラウドサービスとして説明する）を呼び出して利用するノードを、以下の説明では呼び出しノードと記す。具体的には、図１のＮ５、Ｎ６、Ｎ７が呼び出しノードに該当する。Ｎ５、Ｎ６では、ＳａａＳクラウドＡのサービスの呼び出しが行われ、Ｎ７では、ＳａａＳクラウドＢのサービスの呼び出しが行われている。尚、ワークフローのノードの処理を実行する情報処理装置と他のシステムとは通信ネットワークなどを介して接続される。
【００２０】
ワークフローに含まれるノードの中には、処理対象者からの入力を受け付け、入力された情報に基づいて、以降に実行する一連の処理を決定するノードがある。このようなノードを、以下の説明では判断ノードと記す。判断ノードでは、予め分岐の判定で用いる条件（以下、分岐条件と記す）が定義される。そして判断ノードの実行においては、判断ノードの処理対象者から分岐条件に対応する情報（以下、判定入力情報と記す）の入力が受け付けられ、判定入力情報が分岐条件を満たすか否かに応じて、その後に実行する一連の処理が決定される。具体的には、図１のノードＮ４が判断ノードに該当する。Ｎ４では、管理職から判定入力情報の入力が受け付けられ、入力された判定入力情報が分岐条件を満たすか否かに応じて、Ｎ５とＮ６のうちのいずれかのノードに処理が分岐して遷移する。
【００２１】
図１のワークフローにおいて、Ｎ１は処理の開始を示すノードである。Ｎ２は、従業員が休暇申請を作成する処理を示すノードである。Ｎ３は、管理職が休暇申請を確認する処理を示すノードである。Ｎ４は、管理職が休暇申請を承認するか否かを判断する処理を示すノードであって、判断結果に応じて後方のＮ５とＮ６のどちらのノードに処理を進めるかを決定するノードである。Ｎ５は、休暇申請が却下されたことを示すメールが送信される処理を示すノードである。Ｎ６は、休暇申請が承認されたことを示すメールが送信される処理を示すノードである。Ｎ５及びＮ６では、ＳａａＳクラウドＡにより提供されるE-mailサービスが呼び出され利用される。Ｎ７は、休暇申請が承認されたことを示すデータが記録される処理を示すノードである。Ｎ７では、ＳａａＳクラウドＢにより提供されるスプレッドシートサービスが呼び出され利用される。Ｎ８は処理の終了を示すノードである。
【００２２】
ワークフローは、Business Process Modeling Notation（ＢＰＭＮ）やBusiness Process Execution Language（ＢＰＥＬ）等の形式で表現されてもよい。
【００２３】
ワークフローの各ノードは、そのノードの処理を示す情報と処理対象者の識別情報とを含んでもよい。各リンクは、２つのノードの識別情報とそれらの実行順序を示す情報を含んでもよい。分岐ノードは、各ノードが有する情報に加えて、分岐条件を示す情報を含んでもよい。呼び出しノードは、各ノードが有する情報に加えて、そのノードで呼び出すサービスの識別情報を含んでもよい。
【００２４】
ワークフローの各ノードで定義された一連の処理手続きは、ワークフローエンジンによって、ノード間のリンク、及び判断ノードにおける決定の結果に応じた順序で実行される。
【００２５】
ノードで利用されるクラウドサービスにおいては、そのサービスが利用された回数または利用されたデータ量などに応じて料金の支払が発生する。また、クラウドサービスでは、サービスの利用が不能となる場合があり、クラウドサービスの可用性は１００％ではない場合がある。ただしクラウドサービスの可用性は、利用者側で向上させることはできない。
【００２６】
ワークフローにおいてクラウドサービスを利用する場合、ワークフロー全体の可用性はクラウドサービスの可用性の影響を受ける。クラウドサービスの可用性は利用者側で向上させることはできないが、クラウドサービスの利用が不可能となることに備えて、代替サービスを利用できるようにワークフローを定義することで、ワークフロー自体の可用性を向上させることができる。
【００２７】
図２は、ワークフローにおけるサービスの代替処理の説明図である。図２（Ａ）には、E-mailを送信する処理を示すノードＮ１１が示されている。Ｎ１１では、E-mailのサービスを提供するE-mailサービスＥ１が利用されている。図２（Ｂ）では、E-mailサービスＥ１が利用不能である場合に、E-mailサービスＥ２を利用して、E-mailの送信処理が行われることが示されている。すなわち、図２（Ｂ）のＮ１０のノードにおいて、E-mailサービスＥ１が利用可能であるか否かの判定が行われ、利用可能であると判定された場合にノードＮ１１が実行され、利用不能であると判定された場合にノードＮ１２が実行される。ノードＮ１２では、E-mailサービスを提供するE-mailサービスＥ２が利用される。このように、サービスの代替処理をワークフローで定義することにより、ワークフロー全体の可用性を向上させることができる。
【００２８】
次に、実施形態におけるワークフロー全体の可用性とコストの算出について説明する。実施形態においては、過去に実行されたワークフローにおいて処理対象者が示した判断傾向を示す情報に基づいて、見積もり対象のワークフローの判断ノードにおける分岐確率の予測が行われる。この予測結果と、クラウドサービスの可用性及びコストを示す情報を用いて、見積もり対象のワークフロー全体の可用性とコストが算出される。
【００２９】
図３は、実施形態に係るワークフローの可用性とコストの算出の流れを示す。図３においては、先ず、過去に実行されたワークフローの実行ログに基づいて、判断ノードにおける分岐の条件となる事項の処理対象者の判断傾向が算出される。判断傾向は、例えば、承認処理を行う管理職の判断(承認/却下)の傾向である。次に、算出された判断傾向に基づいて、見積もり対象のワークフロー定義に含まれる判断ノードにおいて分岐が行われる確率が推定される。分岐が行われる確率は、判断ノード以降の分岐された各ノードが実行される確率であるともいえる。
【００３０】
推定された確率、及び、サービスのコストを示すコスト情報から、ワークフローが実行された際に平均してかかるコストの推定値（以下、平均コストと記す）が算出される。平均コストは、ワークフローに含まれる各ノードで発生するコストとそのノードに処理が遷移する確率の積の総和である。ノードで発生するコストは、例えば、サービスが利用可能か否かに関わらず、サービスにアクセスした時点で発生するものとしてもよいし、サービスが正常に利用された後に発生するものとしてもよい。
【００３１】
また、推定された確率、及び、サービスの可用性を示す可用性情報から、ワークフロー全体の可用性の推定値（以下、平均可用性と記す）が算出される。平均可用性は、ワークフローにおいて、最終的に処理が正常に完了する状態への遷移確率の総和である。ただし、ワークフローが正常に完了する状態へ遷移しないことの要因は、ワークフローで呼び出されるサービスが利用不能であることによるものであるとする。
【００３２】
次に、実施形態に係る情報処理装置の機能について説明する。図４は、実施形態に係る情報処理装置の機能を図解したブロック図である。図４において情報処理装置１は、記憶部２、取得部３、及び算出部４を含む。
【００３３】
記憶部２は、受信したワークフローに含まれる条件分岐に対して定義された分類情報毎に算出された、実行済みの条件分岐（判断ノード）において条件（分岐条件）が満たされた確率を示す分岐確率情報５を格納する。また、記憶部２は、ワークフローに含まれる手続きにて提供されるサービスに対してかかるコストを示すコスト情報６と、サービスの可用性を示す可用性情報７を格納する。
【００３４】
取得部３は、条件分岐と手続を含むワークフローを受信した場合、記憶部２から、受信したワークフローに含まれる条件分岐の分類に対応する分岐確率情報５を取得する。また、取得部３は、受信したワークフローに含まれる手続きに対応するコスト情報６及び可用性情報７を取得する。
【００３５】
算出部４は、取得部３により取得された分岐確率情報５に基づいて、受信したワークフローに含まれる手続きの実行確率を算出する。そして算出部４は、算出した手続きの実行確率、取得部３により取得されたコスト情報６及び可用性情報７を用いて、受信したワークフローが正常終了または異常終了する確率と、受信したワークフローの実行によりかかるコストとを算出する。
【００３６】
また、取得部３は、受信したワークフローに含まれる手続きの代替手続きを記述した代替情報を取得する。
【００３７】
また、算出部４は、分岐確率情報５、可用性情報７、及び代替情報を用いて、代替手続きの実行確率を算出する。そして算出部４は、手続きの実行確率、代替手続きの実行確率、コスト情報６、及び可用性情報７を用いて、受信したワークフローが正常終了する確率または異常終了する確率と、受信したワークフローの実行によりかかるコストとを算出する。
【００３８】
また、分類情報は、条件分岐の条件を満たすか否かの判定のために用いられる情報を入力するユーザの識別情報に対応した分類情報である。
【００３９】
実施形態の情報処理装置１は、他のワークフローの利用状況を利用して新たなワークフローの実行先を検討するための情報を取得できる。すなわち、未実行のワークフロー全体のコストと可用性の推定値を算出することができる。
【００４０】
１つのワークフロー内で複数のクラウドサービスを呼び出している場合、それらのサービスの間の呼び出し順序を正しく認識しておかなければ、それぞれのサービスがそのワークフロー全体の可用性に与える影響を正しく把握することができない。例えば、ワークフローにおいてサービスＡ(可用性80%)とサービスＢ(可用性95%)が直列に呼び出されている場合、サービスＢをサービスＣ(可用性99%)に置き換えたとしても、ワークフロー全体の可用性を80%以上に上げることはできない。これに対して実施形態の情報処理装置１は、ワークフローにおけるノードへの遷移確率と、ノードから呼び出されるサービスの可用性とに基づいて、ワークフロー全体の可用性を算出する。よって、ワークフロー全体の可用性の算出の精度を向上させることができる。
【００４１】
また、実施形態においては、条件分岐に定義された分類毎に条件分岐において過去に入力された情報の傾向を取得して、ワークフロー全体の可用性とコストの推定値を算出している。これにより、未実行のワークフロー全体のコストと可用性の推定値の算出精度を向上させることができる。
【００４２】
また、実施形態の情報処理装置１は、コストと可用性の推定値をまとめて算出する。ワークフロー全体の可用性を上げるには高いコストをかければ可能であるが、コストを抑えれば可用性も低くなる傾向にある。ワークフローの設計においては、コストと可用性の両方を考慮して行うことが重要となる。実施形態では、コストと可用性の推定値をまとめて提示できるので、新たなワークフローの実行先を検討するための、より有用な情報を提供することができる。
【００４３】
また、実施形態においては、ワークフローにおいて使用するサービスや代替サービスを様々な組合せで定義することで、使用するサービスを変更した際や、他のサービスをバックアップとして試用する際のコストや可用性の変化を算出することができる。
【００４４】
また、実施形態においては、条件分岐の分類として、ユーザの識別情報を用いることができる。このような分類毎に算出された分岐確率情報を用いて、可用性とコストの推定値を算出することにより、算出の精度を向上させることができる。
【００４５】
図５は、実施形態に係る情報処理装置の構成の一例を示す。図５において、情報処理装置３０は、実行部３１、収集部３２、記憶部３３、及び推定部３４を含む。
【００４６】
情報処理装置３０は、図４の情報処理装置１の一例である。記憶部３３は、図４の記憶部２の一例である。推定部３４は、図４の取得部３及び算出部４の一例である。
【００４７】
実行部３１は、ワークフロー５１（５１ａ）を取得し、取得したワークフロー５１ａの処理を順次実行する。実行部３１は、具体的には例えば、ワークフローエンジンである。尚、実行部３１は、情報処理装置３０と通信ネットワークなどを介して接続される他の情報処理装置に含まれる構成としてもよいし、複数の他の情報処理装置により実現されてもよい。
【００４８】
ワークフロー５１には分類情報６１と代替サービス情報６２が含まれる。
分類情報６１は、ワークフロー５１に含まれる判断ノードの分類を示す情報である。具体的には例えば分類情報６１は、ワークフロー５１のカテゴリもしくは判断ノードの処理対象者の識別情報、またはこれらの組合せ等で示される。
【００４９】
代替サービス情報６２は、ノードにおいて呼び出されるサービスが利用不能であった場合に、代替サービスとして呼び出されるサービスを示す情報である。具体的には例えば代替サービス情報６２は、サービスの識別情報と、そのサービスが利用不能である場合に次に呼び出される代替サービスの識別情報とを含む。代替サービス情報６２は代替情報の一例である。
【００５０】
尚、分類情報６１及び代替サービス情報６２はワークフロー５１とは別の独立した情報としてもよい。
【００５１】
収集部３２は、実行部３１により実行されたワークフロー５１のログを採取する。そして収集部３２は、採取したログに基づいて、判断ノードの分類毎に、判断ノードで入力された判定入力情報の割合を算出して、傾向情報４１として記憶部３３に格納する。
【００５２】
記憶部３３は、傾向情報４１、可用性情報４２、及びコスト情報４３を記憶する。傾向情報４１は、図４の分岐確率情報５の一例である。可用性情報４２は、図４の可用性情報７の一例である。コスト情報４３は、図４のコスト情報６の一例である。
【００５３】
傾向情報４１は、過去に実行されたワークフロー５１の判断ノードにおいて、処理対象者が入力した判定入力情報の傾向を示す情報である。具体的には傾向情報４１は、判断ノードの分類毎の、判断ノードで入力された判定入力情報の割合である。傾向情報４１は、収集部３２により取得され、記憶部３３に格納または更新される。傾向情報４１の詳細及び判断ノードの分類については、後ほど図１０を参照して説明する。
【００５４】
可用性情報４２は、ワークフロー５１で利用される各サービスの可用性を示す情報である。可用性情報４２は、収集部３２により取得され、記憶部３３に格納または更新される。可用性情報４２の詳細は後ほど図１１を参照して説明する。
【００５５】
コスト情報４３は、ワークフロー５１で利用される各サービスのコストを示す情報である。コスト情報４３は、収集部３２により取得され、記憶部３３に格納または更新される。コスト情報４３の詳細は後ほど図１２を参照して説明する。
【００５６】
推定部３４は、見積もり対象のワークフロー５１（５１ｂ）を取得し、傾向情報４１、可用性情報４２、コスト情報４３に基づいて、平均可用性情報５２及び平均コスト情報５３を算出して出力する。推定部３４の処理の詳細については、後ほど図７を参照して説明する。
【００５７】
次に、実施形態に係る情報処理システムの構成の一例を説明する。図６は、実施形態に係る算出処理の全体の流れの説明図である。
【００５８】
図６において、作成者はワークフロー５１を作成する。作成されたワークフロー５１は実行部３１に入力される。
【００５９】
実行部３１は、作成者により作成されたワークフロー５１を取得し、取得したワークフロー５１に従って、ワークフロー５１に定義されたノードの処理を順次実行する。実行部３１は、ノードの処理において処理対象者から入力を受け付けることもある。特に判断ノードの実行においては、実行部３１は、判断ノードの処理対象者から判定入力情報を取得する。処理対象者からの判定入力情報の取得形式は種々のものでもよく、例えば実行部３１は、処理対象者に対して判定入力情報の選択肢を提示し、処理対象者により選択肢の中から選択された情報を取得する形式としてもよい。また実行部３１は、ノードの処理においてクラウドサービスを利用することもある。
【００６０】
収集部３２は、実行部３１により実行されたワークフロー５１の実行ログを採取して記録する。また収集部３２は、判断ノードが実行された場合に、その判断ノードで入力された判定入力情報を取得する。次に収集部３２は、ワークフロー５１に含まれる分類情報６１または所定の規則に基づいて判断ノードを分類する。そして収集部３２は、判断ノードの分類に基づいて、判断ノードで入力された判定入力情報に関する情報を傾向情報として記憶部３３に格納する。
【００６１】
判断ノードの分類の基準は、例えば、判断ノードが含まれるワークフロー５１の分類や、判断ノードの処理対象者の分類に応じたものであってもよい。ワークフロー５１の分類は、例えば、ワークフロー５１の目的に応じたものであってもよい。処理対象者の分類は、例えば、処理対象者の役職に応じたものであってもよい。
【００６２】
クラウドサービスを提供するクラウドプロバイダは、各クラウドサービスの利用料（コスト情報４３）を利用者に対して公開する。クラウドサービスの利用料の課金形式は、１回利用される毎に課金される形式や、所定の時間または容量を利用するたびに課金される形式など様々なものがある。情報処理装置３０は、クラウドサービスプロバイダからコスト情報４３を取得して、記憶部３３に格納してもよい。
【００６３】
クラウドモニタリングサービスは、クラウドプロバイダから提供されるクラウドサービスの稼働状況を監視して、クラウドサービスの可用性を示す可用性情報４２を記録し、その情報をクラウドサービスの利用者に提供する。クラウドモニタリングサービスは、クラウドプロバイダとは独立した第３者的な立場のサービスであってもよい。またクラウドモニタリングサービスの機能は、情報処理装置３０のＣＰＵにより提供されてもよい。情報処理装置３０は、クラウドモニタリングサービスから可用性情報４２を取得して、記憶部３３に格納してもよい。
【００６４】
推定部３４は、ワークフロー５１、傾向情報４１、可用性情報４２、及びコスト情報４３を用いて、ワークフロー５１の平均可用性と平均コストの推定値を算出して出力する。
【００６５】
次に、推定部３４の詳細について説明する。図７は、推定部３４の構成の一例を示す。
図７において推定部３４は、ワークフロー５１、傾向情報４１、代替サービス情報６２、可用性情報４２、及びコスト情報４３を入力として受け付け、ワークフロー５１の平均可用性と平均コストの推定値を算出して出力する。推定部３４は、確率モデル生成部７１、利用確率モデル生成部７２、及び算出部７３を含む。尚、図７の例においては、ワークフロー５１と代替サービス情報６２を区別して記すが、代替サービス情報６２はワークフロー５１に含まれてもよい。
【００６６】
確率モデル生成部７１は、ワークフロー５１、及び傾向情報４１に基づいて、確率モデル８１を生成する。確率モデル８１は、ワークフロー５１に含まれる各判断ノードで分岐条件が満たされる確率の推定値を示す情報が、ワークフロー５１に付加された情報である。すなわち、確率モデル８１は、ワークフロー５１の各ノードを示す情報、各リンクを示す情報、及び、各判断ノードで分岐条件が満たされる確率の推定値を含む。尚、各判断ノードで分岐条件が満たされる確率は、言い換えると、各判断ノードにおいて処理が分岐する確率である。尚、確率モデル８１は、確率的Markov Decision Process (MDP)などの状態遷移でモデル化したものを用いてもよい。確率モデル８１の具体例は、後ほど図１４を参照して説明する。
【００６７】
確率モデル生成部７１は、確率モデル８１を生成すると、確率モデル８１を利用確率モデル生成部７２に出力する。
【００６８】
利用確率モデル生成部７２は、確率モデル８１、代替サービス情報６２、可用性情報４２、及びコスト情報４３に基づいて、利用確率モデル８２を生成する。利用確率モデル８２は、ワークフロー５１に含まれる呼び出しノードにおいて呼び出されるサービスの代替情報、各サービスの可用性を示す情報、及び、各サービスのコストを示す情報が、確率モデル８１に付加された情報である。すなわち利用確率モデル８２は、各ノードを示す情報、各リンクを示す情報、各判断ノードで分岐条件を満たす確率の推定値、各呼び出しノードで呼び出されるサービスの代替サービスの識別情報を含む。さらに利用確率モデル８２は、各呼び出しノードで呼び出されるサービスの可用性情報、及び各呼び出しノードで呼び出されるサービスのコスト情報を含む。尚、利用確率モデル８２は、各判断ノードで分岐条件を満たす確率の推定値、及び、各呼び出しノードで呼び出されるサービスの可用性情報を含むことから、利用確率モデル８２は、各ノードへの遷移確率を示す情報を含んでいるといえる。利用確率モデル８２の具体例については、後ほど図１５を参照して説明する。そして利用確率モデル生成部７２は、生成した利用確率モデル８２を算出部７３に出力する。
【００６９】
算出部７３は、利用確率モデル８２に基づいて、平均可用性と平均コストを算出して出力する。
【００７０】
平均可用性の算出において、算出部７３は、利用確率モデル８２の開始ノードから正常終了ノードに至る各経路の遷移確率を算出し、算出した各経路の遷移確率の総和を平均可用性として算出する。図７の利用確率モデル８２において平均可用性は、利用確率モデル８２の開始ノードから最終的に処理が正常に完了するノード（N23）への遷移確率の総和である。
【００７１】
経路１の遷移確率は、「0.7×0.98=0.686」である。経路２の遷移確率は、「0.3×0.99=0.397」である。経路３の遷移確率は、「0.3×0.01×0.995=0.002985」である。よって、平均可用性は、「0.686+0.397+0.002985= 0.985985」である。
【００７２】
平均コストの算出において、算出部７３は、利用確率モデル８２における各呼び出しノード（N21、N22、N25）で発生するコストとそのコストが発生する確率との積の総和を算出する。
【００７３】
サービスのコストは、サービスが利用可能か否かに関わらずサービスの呼び出しを試みた段階で発生するとして算出する場合と、サービスが利用できた場合にコストが発生するとして算出する場合とが考えられる。
【００７４】
先ず、サービスが利用可能か否かに関わらずサービスの呼び出しを試みた段階でコストが発生するものとした場合について説明する。この場合、呼び出しノードに遷移した段階でコストが発生するため、各サービスのコストが発生する確率は、そのサービスを呼び出す呼び出しノードへの遷移確率と同じになる。従って、算出部７３は平均コストの算出において、利用確率モデル８２における各呼び出しノード（N21、N22、N25）で発生するコストと、対応する各呼び出しノードへの遷移確率との積の総和を算出する。
【００７５】
図７の利用確率モデル８２においては、N21で呼び出されるサービスのコストは「$1」であり、N21への遷移確率は「0.7」である。N22で呼び出されるサービスのコストは「$2」であり、N22への遷移確率は「0.3」である。N25で呼び出されるサービスのコストは「$3」であり、N25への遷移確率は「0.3×0.01」である。よって、平均コストは、「1×0.7+2×0.3+3×0.3×0.01=1.309」、すなわち「$1.309」である。
【００７６】
次に、サービスが利用できた場合にコストが発生するものとした場合について説明する。この場合は、各サービスのコストが発生する確率は、各サービスの呼び出しノードへの遷移確率と各サービスの可用性の積となる。従って、算出部７３は平均コストの算出において、利用確率モデル８２における各呼び出しノード（N21、N22、N25）で発生するコストと、対応する各呼び出しノードへの遷移確率と、対応する各サービスの可用性の値との積の総和を算出する。
【００７７】
図７の利用確率モデル８２においては、N21で呼び出されるサービスのコストと可用性は、それぞれ「$1」、「0.98」であり、N21への遷移確率は「0.7」である。N22で呼び出されるサービスのコストと可用性は、それぞれ「$2」、「0.99」であり、N22への遷移確率は「0.3」である。N25で呼び出されるサービスのコストと可用性は、それぞれ「$3」、「0.995」であり、N25への遷移確率は「0.3×0.01」である。よって、平均コストは、「1×0.7×0.98+2×0.3×0.99+3×0.3×0.01×0.995=1.288955」、すなわち「$1.288955」である。
【００７８】
次に、ワークフロー５１に含まれる分類情報６１について説明する。分類情報６１は、ワークフロー５１に含まれる判断ノードの分類を示す情報である。図８は、分類情報６１の一例を示す。
【００７９】
図８において、分類情報６１は、「対象ワークフロー」、「ワークフローカテゴリ」、「判断ノード」、「承認者」のデータ項目を対応付けた情報である。
【００８０】
「対象ワークフロー」は、見積もり対象のワークフロー５１の識別情報である。「ワークフローカテゴリ」は、見積もり対象のワークフロー５１が属するグループの識別情報である。「判断ノード」は、見積もり対象のワークフロー５１に含まれる判断ノードの識別情報である。「承認者」は、「判断ノード」で示されるノードの処理対象者の識別情報である。尚、「承認者」は、処理対象者が属するグループの識別情報としてもよい。また、実施形態では、判断ノードの分類を示す情報は、「ワークフローカテゴリ」と「承認者」の組合せにより示される情報とする。「ワークフローカテゴリ」と「承認者」の組合せにより示される分類毎に算出された分岐確率情報を用いることにより、可用性とコストの推定値の算出の精度を向上させることができる。
【００８１】
次に、ワークフロー５１に含まれる代替サービス情報６２について説明する。代替サービス情報６２は、呼び出しノードにおいて呼び出されるサービスの識別情報と、そのサービスが利用不能である場合に、代替して呼び出されるサービスの識別情報とを対応付けた情報である。図９は、代替サービス情報６２の一例を示す。
【００８２】
図９において、代替サービス情報６２は、「サービスＩＤ」と「代替サービスＩＤ」のデータ項目を対応付けた情報である。
【００８３】
「サービスＩＤ」は、呼び出しノードにおいて呼び出されるサービスの識別情報である。「代替サービスＩＤ」は、「サービスＩＤ」で示されるサービスが利用不能である場合に、代替して呼び出されるサービスの識別情報である。尚、「サービスＩＤ」で示されるサービスと「代替サービスＩＤ」で示されるサービスとは、同種の機能またはサービスを提供するものであってもよい。
【００８４】
図９の例では、識別情報が「ｅ１」のサービスが利用不能である場合に、識別情報が「ｅ３」のサービスが呼び出されることを示している。
【００８５】
尚、実施形態では、サービス毎に代替サービスを定義するものとしたが、呼び出しノード毎に代替サービスを定義してもよい。この場合、代替サービス情報６２は、呼び出しノードの識別情報と、その呼び出しノードで呼び出されるサービスが利用不能である場合に、代替して呼び出されるサービスの識別情報とを対応付けた情報としてもよい。
【００８６】
次に、傾向情報４１について説明する。傾向情報４１は、判断ノードの分類を示す情報と、判定入力情報と、対応する判定入力情報が入力された割合とを対応付けて記憶する。図１０は、傾向情報４１の一例を示す。
【００８７】
図１０において、傾向情報４１は、「承認者」、「ワークフローカテゴリ」、「判断」、「入力回数」、「総数」、及び「割合」のデータ項目を対応付けて記憶する。「承認者」は、処理対象者の識別情報である。「承認者」は、処理対象者が属するグループの識別情報としてもよい。「ワークフローカテゴリ」は、ワークフロー５１が属するグループの識別情報である。「判断」は、判定入力情報を示す。「入力回数」は、「ワークフローカテゴリ」で示されるグループに属するワークフロー５１の判断ノードにおいて、「承認者」で示される処理対象者が、「判断」で示される判定入力情報を入力した回数を示す。「総数」は、「ワークフローカテゴリ」で示されるグループに属するワークフロー５１の判断ノードにおいて、「承認者」で示される処理対象者が、判定入力情報を入力した総回数を示す。「割合」は、「ワークフローカテゴリ」で示されるグループに属するワークフロー５１の判断ノードにおいて、「承認者」で示される処理対象者が、「判断」で示される判定入力情報を入力した割合を示す。尚、「割合」は、対応するレコードの「入力回数」を「総数」で割った値である。また、「割合」は、言い換えると、「ワークフローカテゴリ」で示されるグループに属するワークフロー５１の判断ノードにおいて、分岐条件が満たされた確率であるともいえる。
【００８８】
図１０の例においては、例えば、「契約関連」のワークフロー５１の判断ノードにおいて、「Executive (役員)」が判断入力情報「Ｙｅｓ」を入力した割合が「0.95」であり、「Ｎｏ」を入力した割合が「0.05」であることが示されている。
【００８９】
次に、可用性情報４２について説明する。可用性情報４２は、ワークフロー５１において利用されるサービスの識別情報と、そのサービスの可用性を示す情報を対応付けて記憶する。
【００９０】
図１１は、可用性情報４２の一例を示す。図１１において、可用性情報４２は、「ＩＤ」、「サービス」、及び「可用性」のデータ項目を対応付けて記憶する。
【００９１】
「ＩＤ」は、サービスを一意に識別するための識別情報である。この識別情報は、例えば、提供するサービスの内容やサービスを提供するプロバイダに応じて、一意に定められる。「サービス」は、サービスが提供する内容を示す情報である。「可用性」は、サービスの可用性を示す情報である。尚、可用性情報４２に「サービス」のデータ項目は含まれなくてもよい。
【００９２】
図１１の例においては、例えば、「E-mail」のサービスを提供する識別情報が「e1」であるサービスの可用性が「0.995」であることが示されている。
【００９３】
次に、コスト情報４３について説明する。コスト情報４３は、ワークフロー５１において利用されるサービスの識別情報と、そのサービスのコストを示す情報を対応付けて記憶する。
【００９４】
図１２は、コスト情報４３の一例を示す。図１２において、コスト情報４３は、「ＩＤ」、「サービス」、及び「コスト」のデータ項目を対応付けて記憶する。
【００９５】
「ＩＤ」は、サービスを一意に識別するための識別情報である。「サービス」は、「ＩＤ」で示されるサービスが提供するサービスの内容を示す情報である。「コスト」は、「ＩＤ」で示されるサービスのコストを示す情報である。尚、コスト情報４３に「サービス」のデータ項目は含まれなくてもよい。また、図１２の「ＩＤ」と「サービス」は、図１１の「ＩＤ」と「サービス」にそれぞれ対応してもよい。
【００９６】
図１２の例においては、「コスト」は、サービス１回当たりに発生するコストが示されている。例えば、「E-mail」のサービスを提供する識別情報が「e1」であるサービスの１回当たりの利用コストが「1」であることが示されている。
【００９７】
次に、ワークフロー５１の平均可用性と平均コストが算出される例を、図１３に示すワークフロー５１を例に詳細に説明する。尚、この説明では、傾向情報４１、可用性情報４２、及びコスト情報４３は、それぞれ、図１０、図１１、図１２で示したものとする。また、ワークフロー５１に含まれる分類情報６１、代替サービス情報６２は、それぞれ、図８、図９で示したものとする。
【００９８】
図１３に示すワークフロー５１は、休暇申請のワークフローである。ワークフロー５１には、具体的には以下の処理が定義されている。すなわち、ワークフロー５１が開始される（ｎ１）と、従業員はメールで休暇申請を管理職に提出する（ｎ２）。次に管理職は、申請の内容を確認し（ｎ３）、承認または却下を決定する（ｎ４）。承認された場合（ｎ４でＹｅｓ）、管理職は承認のサインを行う（ｎ５）。そして管理職は、申請の結果を確認する（ｎ６）。次に承認のサインがあるか否かが判定され（ｎ７）、承認のサインがない場合（ｎ７でＮｏ）、申請が却下された旨の結果がメールで申請者（従業員）に通知される（ｎ８）。一方、承認のサインがある場合（ｎ７でＹｅｓ）、申請が承認された旨の結果がメールで申請者（従業員）に通知され（ｎ９）、休暇の情報がスプレッドシートに記録される（ｎ１０）。そしてワークフロー５１が終了する（ｎ１１）。
【００９９】
ワークフロー５１において、判断ノードはｎ４である。判断ノードｎ４の分岐条件は、判定入力情報が「承認」を示すことである。判断ノードｎ４では、判定入力情報として、管理職から承認か却下かを示す情報を取得する。そして、判定入力情報が分岐条件を満たすか否かの判定が行われる。
【０１００】
図１３の例では、判断ノードｎ４の分類は、ワークフロー５１のカテゴリと、ｎ４の処理対象者とによって分類される。図８に示すように、図１３のワークフロー５１のカテゴリは「就業関連」であり、ｎ４の処理対象者は「管理職」である。
【０１０１】
またワークフロー５１において、呼び出しノードは、ｎ２、ｎ８、ｎ９、ｎ１０である。ワークフロー５１のｎ２、ｎ８、ｎ９ではメールサービスｅ１が使用される。またｎ１０ではスプレッドシートサービスｅ２が使用される。
【０１０２】
尚、変数ｆ１は、ｎ５で休暇申請が承認されたことを記憶するフラグである。
このような図１３のワークフロー５１を見積もり対象とした場合に、算出部７３が平均可用性情報５２と平均コスト情報５３を算出する処理の詳細を、図１４〜図１６を参照して説明する。
【０１０３】
先ず、算出部７３の確率モデル生成部７１は、図１３で示すワークフロー５１を取得すると、ワークフロー５１と傾向情報４１とに基づいて、確率モデル８１を生成する。
【０１０４】
確率モデル８１の生成において、先ず、確率モデル生成部７１は、見積もり対象ワークフロー５１と傾向情報４１を取得する。次に確率モデル生成部７１は、ワークフロー５１に含まれる判断ノードｎ４を抽出し、抽出した判断ノードｎ４の分類を特定する。判断ノードｎ４の分類は、ワークフロー５１のカテゴリと処理対象者の情報がそれぞれ、「就業関連」、「管理職」であることにより示される。
【０１０５】
次に確率モデル生成部７１は、傾向情報４１から、特定した分類と同じ分類の判断ノードにおいて、入力された判定入力情報の割合を示す情報を取得する。すなわち、確率モデル生成部７１は、図１０の傾向情報４１において、「ワークフローカテゴリ」が「就業関連」であって、「承認者」が「管理職」であるレコードを抽出する。そして、「判断」が「Ｙｅｓ」、「Ｎｏ」の「割合」がそれぞれ「0.95」、「0.05」であることを示す情報を取得する。
【０１０６】
そして確率モデル生成部７１は、取得した判定入力情報の割合の情報を、判断ノードで分岐条件が満たされる確率の推定値としてワークフロー５１に付加して、確率モデル８１を生成する。
【０１０７】
図１４は、確率モデル８１の一例を示す。図１４において、確率モデル８１は、ワークフロー５１の状態を（「ワークフローの各ノード」、「その状態において成立しているフラグ」）の対で表現する。すなわち例えば、ノードｎ２の状態では、成立しているフラグはないので、ノードｎ２は（ｎ２、φ）で表現され、ノードｎ５の状態では、フラグｆ１が成立しているので、ノードｎ５は（ｎ５、｛ｆ１｝）で表現される。
【０１０８】
また、確率モデル８１におけるワークフロー５１の状態遷移は、各ノード間のリンク（順序関係）と、判断ノードにおいて分岐条件が満たされる確率の推定値とで表現される。図１４の確率モデル８１において、判断ノードｎ４において分岐条件が満たされる確率の推定値は「0.95」であることが表現されている。
【０１０９】
そして確率モデル生成部７１は、生成した確率モデル８１を利用確率モデル生成部７２に出力する。
【０１１０】
利用確率モデル生成部７２は、確率モデル８１と、代替サービス情報６２と、可用性情報４２と、コスト情報４３とを用いて、利用確率モデル８２を生成する。図１５は、利用確率モデル８２の一例を示す。
【０１１１】
利用確率モデル８２の生成において、先ず、利用確率モデル生成部７２は、確率モデル８１と、代替サービス情報６２とを取得する。次に利用確率モデル生成部７２は、代替サービス情報６２に基づいて、確率モデル８１のノードのうち、代替サービスに対応する呼び出しノードを特定する。
【０１１２】
図１４の例では、代替サービスｅ３に対応する呼び出しノードは、サービスｅ１を利用するノード、すなわち、ノードｎ２、ｎ８、ｎ９である。
【０１１３】
次に利用確率モデル生成部７２は、特定した呼び出しノードｎ２、ｎ８、ｎ９の代替サービスｅ３を呼び出すノードを確率モデル８１に追加する。
【０１１４】
図１４の例では、ノードｎ２、ｎ８、ｎ９のそれぞれについて、サービスｅ１が利用不可能である場合に、サービスｅ３を呼び出すノードｎ’２、ｎ’８、ｎ’９を追加する。
【０１１５】
次に利用確率モデル生成部７２は、可用性情報４２に基づいて、各呼び出しノードで呼び出されるサービスの可用性の情報を確率モデル８１に付加する。
【０１１６】
図１１の可用性情報４２においては、サービスｅ１、ｅ２、ｅ３の可用性はそれぞれ、「0.995」、「0.999」、「0.998」と示されている。また、図１５の利用確率モデル８２では、サービスｅ１を利用するノードｎ２、ｎ８、ｎ９は、それぞれ、サービスｅ１の利用が可能である場合に、ｎ３、ｎ１１、ｎ１０に遷移する。よって、利用確率モデル８２において、ノードｎ２とノードｎ３、ノードｎ８とノードｎ１１、ノードｎ９とノードｎ１０の間のリンクに、遷移確率として、それぞれ、「0.995」が示されている。一方、ノードｎ２、ｎ８、ｎ９は、それぞれ、サービスｅ１の利用が不能である場合に、ｎ’２、ｎ’８、ｎ’９に遷移する。よって、利用確率モデル８２において、ノードｎ２とノードｎ’２、ノードｎ８とノードｎ’８、ノードｎ９とノードｎ’９の間のリンクに、遷移確率として、それぞれ、「0.005」が示されている。代替サービスのない呼び出しノードｎ１０、ｎ’２、ｎ’８、ｎ’９では、サービスが利用可能である場合には、それぞれ、ノードｎ１１、ｎ３、ｎ１１、ｎ１０に遷移する。よって、利用確率モデル８２において、ノードｎ１０とノードｎ１１の間のリンクに、遷移確率として「0.999」が示されている。また、ノードｎ’２とｎ３、ｎ’８とｎ１１、ｎ’９とｎ１０の間のリンクに、遷移確率として、それぞれ、「0.998」が示されている。一方、サービスが利用不能である場合には、ノードｎ１０、ｎ’２、ｎ’８、ｎ’９は、ノードＦａｉｌに遷移し、ワークフロー５１は異常終了する。よって、利用確率モデル８２において、ノードｎ１０とＦａｉｌノードの間のリンクに、遷移確率として「0.001」が示されている。また、ノードｎ’２とＦａｉｌノード、ｎ’８とＦａｉｌノード、ｎ’９とＦａｉｌノードの間のリンクに、遷移確率として、それぞれ、「0.002」が示されている。
【０１１７】
次に利用確率モデル生成部７２は、コスト情報４３に基づいて、各呼び出しノードで呼び出されるサービスのコストの情報を確率モデル８１に付加する。
【０１１８】
図１２のコスト情報４３においては、サービスｅ１、ｅ２、ｅ３の可用性はそれぞれ、「1」、「2」、「3」と示されている。この場合、図１５の利用確率モデル８２では、サービスｅ１を利用するノードｎ２、ｎ８、ｎ９のコストが「1」であることが示されている。また、サービスｅ２を利用するノードｎ１０のコストが「2」であることが示されている。また、サービスｅ３を利用するノードｎ１０のコストが「3」であることが示されている。
【０１１９】
以上のようにして、利用確率モデル生成部７２は、利用確率モデル８２を生成する。利用確率モデル８２を生成すると、利用確率モデル生成部７２は、利用確率モデル８２を算出部７３に出力する。
【０１２０】
算出部７３は、利用確率モデル８２に基づいて、平均コストと平均可用性を算出する。算出の方法は、図７において説明したものである。算出部７３は、例えば、ＰＲＩＳＭ等の利用確率モデル検査ツールや、シミュレータを用いて平均コストと平均可用性を算出してもよい。
【０１２１】
図１６は、確率モデル検査ツールを用いた平均コストと平均可用性の算出の一例を示す。図１６（Ａ）は、図１５の利用確率モデル８２を確率モデル検査ツールの入力形式に変更したものである。図１６（Ｂ）は、確率モデル検査ツールに対して入力として与えるパラメータの例である。図１６（Ｃ）は、確率モデル検査ツールにより算出された平均コストと平均可用性の値である。
【０１２２】
次に、実施形態に係る収集部３２の情報格納処理の動作フローについて説明する。図１７は、実施形態に係る収集部３２の情報格納処理の詳細を図解したフローチャートの一例である。
【０１２３】
図１７において、収集部３２は可用性情報を取得して記憶部３３に格納する（Ｓ１０１）。収集部３２は、例えばクラウドモニタリングサービスから可用性情報を取得してもよい。次に収集部３２は、コスト情報を取得して記憶部３３に格納する（Ｓ１０２）。収集部３２は、例えばクラウドサービスプロバイダからコスト情報を取得してもよい。
【０１２４】
Ｓ１０３〜Ｓ１０５は、傾向情報の格納処理に関するものである。尚、Ｓ１０１、Ｓ１０２、Ｓ１０３〜Ｓ１０５の実行順序は入れ替わってもよいし、実行のタイミングはそれぞれ独立して所定の時間に行われてもよい。
【０１２５】
実行部３１はワークフロー５１を実行する（Ｓ１０３）。次に収集部３２は、Ｓ１０３で実行されたワークフロー５１の実行ログを収集する（Ｓ１０４）。そして収集部３２は、収集した実行ログに基づいて傾向情報４１を更新する（Ｓ１０５）。すなわち収集部３２は、先ず、Ｓ１０４で収集した実行ログに基づいて、Ｓ１０３で実行されたワークフロー５１に含まれる各判断ノードを抽出し、抽出した判断ノードにおいて入力された判定入力情報を特定する。次に収集部３２は、傾向情報４１から、抽出した判断ノードと同じ分類を示すレコードのセットを抽出し、特定した判定入力情報に応じて、抽出したレコードのセットの「入力回数」、「総数」、及び「割合」を更新する。そして処理は終了する。
【０１２６】
次に、実施形態に係る情報処理装置３０の平均コストと平均可用性の算出処理の動作フローについて説明する。図１８は、実施形態に係る情報処理装置３０の平均コストと平均可用性の算出処理の詳細を図解したフローチャートの一例である。
【０１２７】
図１８において、先ず、確率モデル生成部７１は、ワークフロー５１と傾向情報４１を用いて、確率モデル８１を生成する（Ｓ２０１）。すなわち、確率モデル生成部７１は、傾向情報４１から、ワークフロー５１の判断ノードのそれぞれについて、各判断ノードと同じ分類に属する判断ノードにおいて過去に入力された判定入力情報の入力傾向を示す情報を取得する。入力傾向を示す情報は、具体的には、図１０において、判断ノードと同じ分類に属するレコードの「割合」の情報である。そして確率モデル生成部７１は、取得した入力傾向を示す情報を、ワークフロー５１の各判断ノードにおいて分岐条件が満たされる確率として付加する。具体的には例えば、確率モデル生成部７１は、ワークフロー５１の各判断ノードに、取得した各判断ノードの入力傾向を示す情報を分岐条件が満たされる確率として対応付ける。
【０１２８】
次に利用確率モデル生成部７２は、確率モデル８１及び可用性情報４２に基づいて、確率モデル８１で呼び出される各サービスの可用性を示す情報を、確率モデル８１に付加する（Ｓ２０２）。具体的には例えば、利用確率モデル生成部７２は、確率モデル８１で呼び出される各サービスと、取得した各サービスの可用性を示す情報を対応付けて確率モデル８１を更新する。
【０１２９】
次に利用確率モデル生成部７２は、代替サービス情報６２において、代替サービスが存在するか否かを判定する（Ｓ２０３）。代替サービスが存在しないと判定した場合（Ｓ２０３でＮｏ）、利用確率モデル生成部７２は、処理をＳ２０５に遷移させる。一方、代替サービスが存在すると判定した場合（Ｓ２０３でＹｅｓ）、利用確率モデル生成部７２は、代替サービスの情報を、Ｓ２０２の確率モデル８１に付加する（Ｓ２０４）。具体的には例えば、利用確率モデル生成部７２は、Ｓ２０２の確率モデル８１の各呼び出しノードで呼び出されるサービスと、取得した各サービスの代替サービスを示す情報を対応付けて確率モデル８１を更新する。
【０１３０】
次に利用確率モデル生成部７２は、コスト情報４３を、Ｓ２０４の確率モデル８１に付加し、利用確率モデル８２を生成する（Ｓ２０５）。具体的には例えば、利用確率モデル生成部７２は、Ｓ２０４の確率モデル８１で呼び出される各サービスと、取得した各サービスのコストを示す情報を対応付けて確率モデル８１を更新し、利用確率モデル８２を生成する。
【０１３１】
次に算出部７３は、利用確率モデル８２を用いて、ワークフロー５１の平均可用性と平均コストを算出する（Ｓ２０６）。そして処理は終了する。
【０１３２】
次に、実施形態に係る情報処理装置３０のハードウェア構成の一例を説明する。図１９は、実施形態に係る情報処理装置３０のハードウェア構成の一例を示す。
【０１３３】
図１９において、情報処理装置３０は、Central Processing Unit（ＣＰＵ）９１、メモリ９２、記憶装置９３、読取装置９４、入出力装置９５、及び通信インターフェース９６を含む。ＣＰＵ９１、メモリ９２、記憶装置９３、読取装置９４、入出力装置９５、及び通信インターフェース９６はバスを介して接続される。
【０１３４】
ＣＰＵ９１は、メモリ９２を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、実行部３１、収集部３２、及び推定部３４の一部または全部の機能を提供する。尚、実行部３１の機能は、情報処理装置３０に通信ネットワークなどを介して接続される１以上の他の情報処理装置のＣＰＵにより提供されてもよい。
【０１３５】
メモリ９２は、例えば半導体メモリであり、Random Access Memory（ＲＡＭ）領域およびRead Only Memory（ＲＯＭ）領域を含んで構成される。メモリ９２は記憶部３３の一部または全部の機能を提供する。記憶装置９３は、例えばハードディスクである。なお、記憶装置９３は、フラッシュメモリ等の半導体メモリであってもよい。また、記憶装置９３は、外部記録装置であってもよい。記憶装置９３は、記憶部３３の機能を提供してもよい。
【０１３６】
読取装置９４は、ＣＰＵ９１の指示に従って着脱可能記憶媒体９９にアクセスする。着脱可能記憶媒体９９は、たとえば、半導体デバイス（ＵＳＢメモリ等）、磁気的作用により情報が入出力される媒体（磁気ディスク等）、光学的作用により情報が入出力される媒体（ＣＤ−ＲＯＭ、ＤＶＤ等）などにより実現される。尚、読取装置９４は情報処理装置３０に含まれなくてもよい。
【０１３７】
入出力装置９５は、ワークフロー５１の入力を受け付け、また、ＣＰＵ９１により算出された平均可用性及び平均コスト情報５３を出力する。
【０１３８】
通信インターフェース９６は、ＣＰＵ９１の指示に従ってネットワークを介して、他の情報処理装置と通信する。
【０１３９】
実施形態のプログラムは、例えば、下記の形態で情報処理装置３０に提供される。
（１）記憶装置９３に予めインストールされている。
（２）着脱可能記憶媒体９９により提供される。
（３）プログラムサーバ（図示せず）から通信インターフェース９６を介して提供される。
【０１４０】
さらに、実施形態の情報処理装置３０の一部は、ハードウェアで実現してもよい。或いは、実施形態の情報処理装置３０は、ソフトウェアおよびハードウェアの組み合わせで実現してもよい。
【０１４１】
尚、実施形態では、コスト情報４３は、サービス１回当たりの利用コストを示すものとしたが、サービスの利用時間やデータの使用量に応じて変化するコストの算出式等を示すものとしてもよい。その場合、見積もり対象のワークフロー５１の呼び出しノードには、呼び出しノードで利用されるサービスの識別情報と、そのサービスの利用時間またはデータの利用量などの情報を付加してもよい。そしてこれらの情報を用いて、サービスの利用時間やデータの使用量に応じたサービスの平均コストを算出してもよい。
【０１４２】
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１４３】
１      情報処理装置
２      記憶部
３      取得部
４      算出部
５      分岐確率情報
６      コスト情報
７      可用性情報
３０    情報処理装置
３１    実行部
３２    収集部
３３    記憶部
３４    推定部
４１    傾向情報
４２    可用性情報
４３    コスト情報
５１    ワークフロー
５２    平均可用性情報
５３    平均コスト情報
６１    分類情報
６２    代替サービス情報
７１    確率モデル生成部
７２    利用確率モデル生成部
７３    算出部
８１    確率モデル
８２    利用確率モデル
９１    ＣＰＵ
９２    メモリ
９３    記憶装置
９４    読取装置
９５    入出力装置
９６    通信インターフェース
９９    着脱可能記憶媒体
【図１】
0006447054.tif 000002
【図２】
0006447054.tif 000003
【図３】
0006447054.tif 000004
【図４】
0006447054.tif 000005
【図５】
0006447054.tif 000006
【図６】
0006447054.tif 000007
【図７】
0006447054.tif 000008
【図８】
0006447054.tif 000009
【図９】
0006447054.tif 000010
【図１０】
0006447054.tif 000011
【図１１】
0006447054.tif 000012
【図１２】
0006447054.tif 000013
【図１３】
0006447054.tif 000014
【図１４】
0006447054.tif 000015
【図１５】
0006447054.tif 000016
【図１６】
0006447054.tif 000017
【図１７】
0006447054.tif 000018
【図１８】
0006447054.tif 000019
【図１９】
0006447054.tif 000020