(57)【要約】【課題】ＣＰＵ時間を有効に活用できるようにし、ビジネスプロセスの実行時間を短縮できるようにしたビジネスプロセス実行方法を提供する。【解決手段】実行済みのビジネスプロセス履歴情報を統計的に分析し、その分析結果に基いて待機状態にあるビジネスプロセスインスタンスの中で次に実行状態に遷移する可能性の高いビジネスプロセスを予測して、ビジネスプロセスインスタンスが将来実行すべきアクティビティを予め実行しておく。【選択図】図１
2010198324.tif 000002
【特許請求の範囲】
【請求項１】
実行済みのビジネスプロセス履歴情報を統計的に分析し、その分析結果に基いて待機状態にあるビジネスプロセスインスタンスの中で次に実行状態に遷移する可能性の高いビジネスプロセスを予測して、ビジネスプロセスインスタンスが将来実行すべきアクティビティを予め実行しておくことを特徴とするビジネスプロセス実行方法。
【請求項２】
前記予測は、さらにビジネスプロセス定義内の条件分岐アクティビティの分岐予測を行うことを特徴とする請求項１に記載のビジネスプロセス実行方法。
【請求項３】
実行済みのビジネスプロセス履歴情報を統計的に分析する分析手段と、
分析結果に基いて待機状態にあるビジネスプロセスインスタンスの中で次に実行状態に遷移する可能性の高いビジネスプロセスを予測する予測手段と、
予測されたビジネスプロセスをビジネスプロセスインスタンスが予め実行しておく実行手段と、
を有することを特徴とするビジネスプロセス実行システム。
【請求項４】
前記予測手段は、さらにビジネスプロセス定義内の条件分岐アクティビティの分岐予測を行うことを特徴とする請求項３に記載のビジネスプロセス実行システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジネスプロセス実行方法及びその実行システムに係り、特に、実行済みのビジネスプロセス履歴を統計的に分析することで、現在実行途中のビジネスプロセスの将来の振舞いを予測し、その予測を基に、ビジネスプロセスを事前実行することでＣＰＵ時間を有効に活用できるようにし、ビジネスプロセスの実行時間を短縮できるようにしたものに関する。
【背景技術】
【０００２】
近年、企業情報システムが激しく変化する経営環境の中で、企業の業務は常に変化に対応して行く必要がある。フレキシブルで変化に強い情報システムを構築するためには、社内の各システムを部品として組み合わせる再利用可能な構成に変化させる必要がある。このための新しい構築手法としては、企業情報システムを標準化されたインタフェースで結合するサービス指向アーキテクチャ(ＳＯＡ)が注目されている。さらに、これらの個々のサービスを複数組み合わせて「ビジネスプロセス」として定義するためのビジネスプロセス記述言語も登場している。ビジネスプロセス定義言語の一例は、標準化団体ＯＡＳＩＳが策定したＷＳ−ＢＰＥＬが挙げられる。
【０００３】
また、近年、ビジネスプロセスを実行し、その進捗状況や外部のシステムと送受信したデータを運用者に提供することで企業のビジネスプロセス管理を支援するソフトウェアが登場している。これらのソフトウェアでは、一般に、予めユーザがこのシステムで実行・管理したいビジネスプロセスが定義・登録されている。プロセス開始のトリガーとなる情報、すなわち、どのようなメッセージを受信したらどのビジネスプロセス定義のインスタンスを生成し、実行するかの情報も、予めユーザによって登録されている。
【０００４】
さらに、特許文献１〜特許文献６には、ビジネスプロセス処理方法、ビジネスプロセスシステム、そのプログラム等のビジネスプロセスに関する内容が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２５８８２３号公報
【特許文献２】特開２００８−１１２３１１号公報
【特許文献３】特開２００６−２２８０１９号公報
【特許文献４】特開２００３−２２８６４７号公報
【特許文献５】特開２００３−３０３１０７号公報
【特許文献６】特開平９−２２２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、関連するビジネスプロセスを実行するシステムにおいては、ユーザが予め定義したビジネスプロセス定義を逐次実行するのみであったため、ビジネスプロセスを実行する役割を担うビジネスプロセス実行システムは、プロセスインスタンスが、例えば外部サービスからのメッセージを待っている待機状態では実行するアクティビティがないので、ＣＰＵはほとんど利用されない状態に置かれている。
すなわち、関連するビジネスプロセスを実行するシステムのソフトウェアでは、外部からのメッセージを実際に受信すると、対応するビジネスプロセスのインスタンス(プロセスインスタンス)を生成し、プロセス定義に従ってアクティビティが逐次実行される。また一般に、ビジネスプロセス定義内には、外部サービスからのメッセージ受信待ちやタイマーによる特定時刻の到達待ちを意味する待機状態が存在する。このため、ビジネスプロセスを実行する役割を担う実行エンジンは、インスタンスが、例えば特定時間への到達を待っている待機状態では、実行するアクティビティが存在しないので、ＣＰＵはほとんど利用されない状態に置かれている。
【０００７】
また、関連するビジネスプロセスを実行するシステムにおいては、一時的に実行状態のアクティビティが多くなるとＣＰＵ時間もそれだけ多く必要になり、ＣＰＵ時間が効率的に活用できているとは言えなかった。このような動作は、実行状態のビジネスプロセスインスタンスが多い過負荷状態においてはスループットが出ないという問題を引き起こす原因となることもあった。
すなわち、関連するビジネスプロセスを実行するシステムにおいては、一時的に実行状態のビジネスプロセスインスタンスが多い過負荷状態になると、実際には実行状態であるにも拘わらず、ビジネスプロセスインスタンスを実行できずにスループットが出ないという問題を引き起こす原因となることもあった。このことは、ビジネスプロセス実行システムを一種の「さまざまな「ビジネスプロセス定義」という命令を実行するプロセッサ」とみなせば、ＣＰＵ時間を有効、かつ、効率的に活用できていないとも言える。
【０００８】
また、上述の特許文献には、ビジネスプロセスに関する内容が開示されているが、本発明に係るＣＰＵ時間を有効に活用できるようにし、ビジネスプロセスの実行時間を短縮できるようにした、ビジネスプロセス実行方法又はその実行システムは開示されていない。なお、特許文献４では、ビジネスプロセスの実行履歴を活用するということを開示しているが、その目的をビジネスプロセス定義自体の最適化においており、ビジネスプロセス実行時に効果が得られるという本発明を開示したものではない。
さらに、特許文献６では、処理能力に余裕がある場合に特定の処理(波形データの算出)を行っている。ここでは、請求項目６及び段落００３８に記載があるように、事前実行の処理結果は必ず利用されるものであり、本発明が行っている「予測」を意味する事前実行とは目的と効果が異なっている。また、構成の観点からも、この技術文献６は「音楽データ」のみが補助記憶装置に存在する構成と考えられる。つまり、この技術文献６は 事前実行に利用できる情報は、予め存在する音楽データのみであり、これは増加することはない。もちろん、利用者が異なる楽曲を保存することはあるだろうが、特定の楽曲の再生中の事前実行には利用されない。これと比較して本発明では、自身(ビジネスプロセス実行システム)が実行・記録したビジネスプロセス実行履歴を、事前実行の演算に利用するようにしている。
【０００９】
上記特許文献の発明のようなＣＰＵの投機的実行の分野では、投機実行の対象がＣＰＵの命令処理であるという特性から、どのようなルールに基づいて予測を行うかをユーザ(利用者)が定義することができないか、または非常に困難である。しかしながら、本発明はＣＰＵの処理命令とは異なり、ビジネスプロセスというユーザ自身が定義したものを実行するプロセッサ(ビジネスプロセス実行システム)を対象にしている。このため、予測に利用する統計情報をユーザ自身が定義できる点に大きな相違点を有している。さらに、分岐予測はＣＰＵの投機実行にもあるが、待機状態から実行状態へ遷移するビジネスプロセスインスタンス(命令)を予測して投機実行(実行状態に遷移させて実行)するというアイデアは本発明にのみ適用できるものである点も、ＣＰＵの投機実行と異なっている。
【００１０】
そこで、本発明は、上記欠点を解決するためになされたものであって、その目的は、ＣＰＵ時間を有効に活用できるようにし、ビジネスプロセスの実行時間を短縮できるようにしたビジネスプロセス実行方法及びその実行システムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明に係るビジネスプロセス実行方法は、上記目的を達成するために、実行済みのビジネスプロセス履歴情報を統計的に分析し、その分析結果に基いて待機状態にあるビジネスプロセスインスタンスの中で次に実行状態に遷移する可能性の高いビジネスプロセスを予測して、ビジネスプロセスインスタンスが将来実行すべきアクティビティを予め実行しておくことを特徴としている。
【００１２】
また、本発明に係るビジネスプロセス実行システムは、上記目的を達成するために、実行済みのビジネスプロセス履歴情報を統計的に分析する分析手段と、分析結果に基いて待機状態にあるビジネスプロセスインスタンスの中で次に実行状態に遷移する可能性の高いビジネスプロセスを予測する予測手段と、予測されたビジネスプロセスをビジネスプロセスインスタンスが予め実行しておく実行手段とを有することを特徴としている。
【発明の効果】
【００１３】
本発明に係るビジネスプロセスにおいては、実行済みのビジネスプロセス履歴を統計的に分析することで、現在実行途中のビジネスプロセスの将来の振舞いを予測し、その予測を基に、ビジネスプロセスを事前実行するようにしているので、ＣＰＵ時間を有効に活用でき、ビジネスプロセスの実行時間を短縮することができる。
すなわち、本発明に係るビジネスプロセスにおいては、待機状態から実行状態に遷移するビジネスプロセスインスタンスを予測し、ＣＰＵの空き時間に予め実行できるので、また、ビジネスプロセス定義内の条件分岐も過去の実行情報から分岐先を予測して事前に実行できるので、ＣＰＵ時間を有効に活用でき、ビジネスプロセスの実行時間を短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施の形態に係るビジネスプロセス実行システムの概略構成を示すブロック図である。
【図２】ビジネスプロセスインスタンスの状態遷移図である。
【図３】状態遷移予測機能の動作を説明するためのフローチャートである。
【図４】条件分岐用のアクティビティを含むビジネスプロセス定義が事前実行される流れを示すブロック図である。
【図５】条件分岐予測機能の動作を説明するためのフローチャートである。
【図６】予測情報定義情報及び予測方法取得機能の動作を説明するためのフローチャートである。
【図７】分岐予測を行う方法の一例の動作を説明するためのフローチャートである。
【図８】本発明によるビジネスプロセスの事前実行例を説明するブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態を図面に基いて説明する。図１は、本発明の一実施の形態に係るビジネスプロセス実行システムの概略構成を示すブロック    図であって、図中、１００はそのシステム全体を示している。なを、図中、「ＢＰ」はビジネスプロセスを意味している。
【００１６】
このビジネスプロセス実行システム１００は、それぞれ計算機上に配置された、ビジネスプロセスの定義情報が格納されたＢＰ定義情報リポジトリ２００と、実際にビジネスプロセスを実行する機能を担うプログラムであるＢＰ実行エンジン３００と、後述のＢＰ実行履歴情報格納部に記録されている情報を統計的に分析し、待機状態にあるビジネスプロセスインスタンスの将来の動作を予測する予測エンジン４００と、実行したビジネスプロセス情報及び実行しているビジネスプロセス情報を格納するＢＰ実行履歴情報格納部５００とから構成される。
【００１７】
上記ＢＰ定義情報リポジトリ２００には、予めユーザが定義・登録したビジネスプロセスの情報、換言すると、そのビジネスプロセス定義が実行される前にユーザが定義・登録したビジネスプロセスの情報が格納されている。
この情報は、ビジネスプロセスのアクティビティの構造を持つＢＰ構造情報２０１と、ビジネスプロセスが外部のサービスと電文の送受信をするのに必要な宛先(一般にはＵＲＩなど)情報や送受信する電文のフォーマットに関する情報のＢＰ送受信情報２０２と、後述する予測エンジンが予測の際に利用する予測方法定義情報２０３とから構成されている。なお、この予測方法定義情報２０３は、本発明を特徴付ける一つである。
【００１８】
上記ＢＰ実行エンジン３００は、外部のサービスと電文の送受信を行う電文送受信部３０１と、実行状態のビジネスプロセスインスタンスのアクティビティを実行するＢＰインスタンス実行部３０２と、予測エンジン４００内の状態遷移予測機能の結果を基に後述する非実行状態ＢＰインスタンス管理部から待機状態のＢＰインスタンスを実行状態に遷移させＢＰインスタンス実行部３０２に転送するＢＰインスタンス活性化機能３０３と、実行可能状態及び待機状態の非実行状態のビジネスプロセスインスタンスの状態を管理する非実行状態ＢＰインスタンス管理部３０４とから構成される。 
【００１９】
上記予測エンジン４００は、ＢＰインスタンス活性化機能３０３からの予測要求に対して、ＢＰ実行履歴情報格納部５００の情報を分析し、次に待機状態から実行状態に遷移する可能性が高いＢＰインスタンスを選定する状態遷移予測機能４０１と、ＢＰ定義内の条件分岐の分岐予測を行う条件分岐予測機能４０２と、ＢＰ定義情報リポジトリ２００内の予測方法定義情報２０３にアクセスする予測方法取得機能４０３とを有している。なお、これら各機能４０１，４０２，４０３ は、本発明を特徴付けるものである。
【００２０】
上記ＢＰ実行履歴情報格納部５００には、ビジネスプロセスインスタンスが外部のサービスと送受信した送受信電文情報５０１と、ビジネスプロセスインスタンスがアクティビティをどのように遷移したか、各アクティビティの開始・終了時刻又は終了状態(正常終了なのか異常終了なのかの状態)を意味するアクティビティ実行履歴５０２と、ビジネスプロセスインスタンスの開始・終了時刻や終了状態などのインスタンス実行履歴５０３とが格納されている。これら情報は、ＢＰ実行エンジン３００内のＢＰインスタンス実行部３０２により記録される。 
なお、本発明の特徴を成す予測エンジン４００に関しては、後に、それぞれ図３及び図５を用いて状態遷移予測機能４０１及び条件分岐予測機能４０２を説明する。また、予測情報定義情報２０３及び予測方法取得機能４０３に関しては、図６を用いて説明する。
【００２１】
以下、上記構成からなるビジネスプロセス実行システム１００の動作について詳細に説明する。
図２には、ビジネスプロセスインスタンスの状態遷移図が示されている。この図２では、ＢＰインスタンス実行部３０２には４つの実行状態のＢＰインスタンスが図示されているが、図面を簡略化するために、便宜上、状態遷移に関しては、４つの実行状態のうち左側上部に位置する１つのみに記されている。
【００２２】
先ず、本発明の特徴をより理解し易いようにするために、図２を参照して、関連するビジネスプロセス実行システムについて説明する。
関連するビジネスプロセス実行システムでは、待機状態にあるビジネスプロセスインスタンスは実行可能状態を経て実行状態に遷移するまでは処理を行わないため、ＣＰＵ時間が消費されることはない(なお、現実にはゼロではないが、実行状態にあるＢＰインスタンスにかかるＣＰＵ時間と比較して一般に極わずかである)。つまり、処理対象のビジネスプロセスインスタンス数(非実行状態ＢＰインスタンス管理部３０４とＢＰインスタンス実行部３０２にあるビジネスプロセスの総数)が一定の状態において、その多くが待機状態にあるとＣＰＵ時間にゆとりがあるが、逆にその多くが実行状態に遷移すると、途端にＣＰＵ時間が枯渇してしまうなどの問題が起こり得る性質を有している。
そして、待機状態にあるビジネスプロセスインスタンスが実行状態に遷るには、待機しているイベントの発生が必要不可欠で(図２中の丸印「２」の遷移参照)、このイベントの発生タイミングは、関連するビジネスプロセス実行システムではコントロールできないものであった。
【００２３】
次に、図３のフローチャートを用いて、本発明の状態遷移予測機能４０１を利用したＢＰインスタンス実行部３０２の動作の流れを詳説する。
初期状態（ステップ１００（以下、ステップを「Ｓ」とする。））においては、実行対象のＢＰインスタンスが存在しない状態を意味している。外部からのメッセージ受信や特定の時間によってＢＰインスタンスを生成して実行すると（Ｓ１０１）、ＢＰインスタンス実行部３０２では、定期的に自身の処理能力(ＣＰＵ時間)に余裕があるか（実行状態のＢＰインスタンスの処理でＣＰＵ時間が占有されていないか）否かのチェックを行う(Ｓ１０２)。もし、処理能力に余裕がない（実行状態のＢＰインスタンスの処理でＣＰＵ時間が占有されている）と判定した場合は、実行状態のＢＰインスタンスを実行するため、上記Ｓ１０１に戻り、引き続き実行状態のＢＰインスタンスの処理を継続する。
上記Ｓ１０２において、処理能力に余裕があり、すなわち、ＢＰインスタンス実行部３０２が現在以上のＢＰインスタンスの処理が可能であると判定した場合には、ＢＰインスタンス活性化機能３０３に対してＢＰインスタンスの取得を依頼する（Ｓ１０３)。
【００２４】
ＢＰインスタンス実行部３０２から依頼を受けたＢＰインスタンス活性化機能３０３では、先ず、非実行状態ＢＰインスタンス管理部３０４に対して実行可能状態のＢＰインスタンスが存在するか否かの確認を行う（Ｓ１０４）。存在する場合は、ＢＰインスタンス活性化機能３０３は、実行可能状態のＢＰインスタンスをＢＰインスタンス実行部３０２に転送する(Ｓ１０５)。この時点で、該当のＢＰインスタンスは実行状態に遷移しており、この遷移は、図２の丸印「１」に示す遷移に該当している。ＢＰインスタンス実行部３０２は、処理対象(実行状態)のＢＰインスタンス数が１つ増えた状態でＳ１０１の処理に戻ることになる。なお、最初に待機状態ではなく実行可能状態のＢＰインスタンスを確認する理由は、予測が不要、すなわち間違いなく実行すべき対象のＢＰインスタンスであることが明白であるからである。
【００２５】
上記Ｓ１０４の判断において、実行可能状態のＢＰインスタンスがないと判定されると、ＢＰインスタンス活性化機能３０３では、待機状態のＢＰインスタンスが存在するか否かの確認を行う(Ｓ１０６)。存在しない場合は、ＢＰインスタンス実行部３０２は、処理の対象に加えるべきＢＰインスタンスを不在と判定し、Ｓ１０１の処理に戻って引き続きＢＰインスタンスの実行を行う。
【００２６】
上記Ｓ１０６の判断において、待機状態のＢＰインスタンスが存在する場合、ＢＰインスタンス活性化機能３０３は、予測エンジン４００の状態遷移予測機能４０１に、実行状態に遷移させるべきＢＰインスタンスの予測を依頼する (Ｓ１０７)。そして、予測エンジン４００からの予測結果を受信したＢＰインスタンス活性化機能３０３は(Ｓ１０８)、待機状態のＢＰインスタンスをＢＰインスタンス実行部３０２に転送する (Ｓ１０９)。
この転送は、図２中の丸印「３」の遷移に相当していて、ＢＰインスタンス実行部３０２は、処理対象(実行状態)のＢＰインスタンス数が１つ増えた状態でＳ１０１の処理に戻る。なお、これ以降のＢＰインスタンス実行部３０２におけるこのインスタンスに対する処理は事前実行であり、予測が外れた場合にはロールバックなどの処理が必要になる可能性もあるため、Ｓ１０９の前にチェックポイント(ロールバックする地点)などを設けておく実装も考えられる。 
また、このフローチャートにおいては、便宜上、ＢＰインスタンスの処理が完了するステップを示していないが、実際には任意のタイミングでＢＰインスタンスの処理は完了し、ＢＰインスタンス実行部３０２から消滅することになる。 
【００２７】
次に、図４のブロック図と図５のフローチャートを参照して、条件分岐用のアクティビティを含むビジネスプロセス定義が事前実行される流れを説明する。 
ビジネスプロセス記述言語では、個々のサービスの呼び出しや送受信メッセージの編集処理の選択実行、あるいは待機状態にあるプロセスインスタンスの時間・イベントによる再開など、豊富な制御機能により、複雑なビジネスプロセスも定義可能であることが多い。ここでは、ビジネスプロセス定義を構成する最小の論理単位をアクティビティと呼んでいる。
【００２８】
一般に、アクティビティは、ビジネスプロセスインスタンスの状態遷移の観点から２つのクラスに大別することが可能である。その１つは、実行状態のビジネスプロセスインスタンスの状態を変えないアクティビティで、これを「基本アクティビティ」と呼ぶことにすると、図４中の「Ｓｔａｒｔ」、「Ａ」、「Ｂ１」、「Ｂ２」、「Ｃ」、「Ｄ」、「Ｅｎｄ」がこれに該当している。基本アクティビティの分かりやすい例としては、外部から受信した電文の内容を変換するアクティビティなどが挙げられる。この場合、このアクティビティの実行前も実行後も、ビジネスプロセスインスタンスの状態は実行状態のままである。
【００２９】
２つめのクラスは、外部からのメッセージ受信や特定時刻の到達を待つためにビジネスプロセスインスタンスを実行状態から待機状態へと遷移させる「待機アクティビティ」である。図４中の「ｗａｉｔ」がこれに該当している。最後に、これら２つとは別に、「構造アクティビティ」が存在している。これは、ビジネスプロセスのフローを制御するアクティビティであり、例えば、電文内容によって条件分岐を実行し、次に実行するアクティビティを決定するなどの役割を担う。図４中の「ｉｆ」がこれに該当している。 以上の説明から明らかなように、図４中の１つの四角形はＢＰ定義を構成するアクティビティであり、四角形内の文字は便宜的なアクティビティ名称を示している。
【００３０】
図５のフローチャートは、本発明のＢＰ実行システムが図４のＢＰ定義のインスタンスを処理する流れを示している。
先ず、インスタンス生成前の状態として開始状態にある（Ｓ２００）。この後、外部からのメッセージ受信などをトリガーに、ＢＰインスタンス実行部３０２がインスタンスを生成、実行する(Ｓ２０１)。そして、ＢＰインスタンス実行部３０２が「Ａ」を実行すると(Ｓ２０２)、次のアクティビティが「ｗａｉｔ」であるため、ＢＰインスタンス実行部３０２は、ＢＰインスタンス活性化機能３０３に対してインスタンスを非実行状態管理部３０４に転送するように依頼する(Ｓ２０３)。この後、図３を用いて説明で述べた動作(状態遷移予測機能４０１の働き)が作用したと仮定すると、ＢＰインスタンス活性化機能３０３がインスタンスをＢＰインスタンス実行部３０２に転送する(Ｓ２０４)。
【００３１】
ＢＰインスタンス実行部３０２では、次に実行すべきアクティビティが「ｉｆ」となっているので、ＢＰインスタンス実行部３０２が予測エンジン４００の条件分岐予測機能４０２に予測を依頼する(Ｓ２０５)。条件分岐予測機能４０２の結果(分岐先の予測)を受け、ＢＰインスタンス実行部３０２が「Ｂ１」と「Ｂ２」、もしくは「Ｃ」を実行し(Ｓ２０６)、最後に、ＢＰインスタンス実行部３０２が「Ｄ」と「Ｅｎｄ」を実行する。
【００３２】
この図５のフローチャートにおいて、Ｓ２０４以降の処理(ｉｆ／Ｂ１／Ｂ２／Ｃ／Ｄ／Ｅｎｄ、の各アクティビティの処理)は事前実行である。このため、予測が外れた場合に備えてロールバックなどの処理が必要になる可能性もあるため、Ｓ２０３の前にチェックポイント(ロールバックする地点)などを設けておくようにしてもよい。
【００３３】
最後に、本発明における予測エンジン４００について説明する。予測エンジン４００が行う状態遷移予測（４０１）と条件分岐予測（４０２）は、判別分析などの統計的手法を利用することで可能である。その方法は多岐に渡るが、本発明はどのような統計的手法を利用するかを限定しない。統計に利用する情報は、ＢＰ実行履歴情報格納部５００の送受信電文情報５０１、アクティビティ実行履歴５０２、インスタンス実行履歴５０３内の情報(以下、これらを「特徴量」と呼んでいる。)から、利用者が自由にカスタマイズすることができる。
【００３４】
先ず、図６を用いて、利用者が予測方法をカスタマイズするときの予測エンジン４００内の予測方法取得機能４０３の対話フローを説明する。 
最初に、利用者によってＢＰ実行システム３０２に対して特定のＢＰ定義（ (Ａ)とする）の予測方法の設定が要求される(Ｓ４００)。ＢＰ定義(Ａ)に対する未設定の特徴量候補が存在するかを判定し(Ｓ４０１)、存在するときは、利用者に対して予測エンジン内の予測方法取得機能４０３により特徴量候補ＰａｒａｍＮを利用者に提示する(Ｓ４０２)。特徴量候補ＰａｒａｍＮが提示された利用者は、該当の特徴量(ＰａｒａｍＮ)に対する重要度(予測に際してどの程度ＰａｒａｍＮを重要視するか)を設定する(Ｓ４０３)。全ての特徴量候補に対して上述のＳ４０２、Ｓ４０３のフローを実施し終えると、予測方法取得機能４０３は、ＢＰ定義情報リポジトリ２００内の予測方法定義情報２０３に設定を格納する(Ｓ４０４)。
この機能により、例えば、条件分岐の予測に、インスタンスの開始時刻よりも外部サービスから受信した電文の内容を重視したいのであれば、利用者はそのように重み付けを設定する(カスタマイズする)ことができる。
【００３５】
次に、図７を用いて、ＢＰ実行履歴情報格納部５００の情報を基に、分岐予測を行う方法の一例について説明する。
先ず、現在処理対象としているＢＰインスタンス(インスタンスＸとする)の状態から特徴量が抽出される(Ｓ３０１)。次に、予測エンジン４００内の条件分岐予測機能４０２では、ＢＰ実行履歴情報格納部５００から、以前に同じＢＰ定義を実行した各インスタンス(インスタンスＡ、インスタンスＢ、インスタンスＣ・・・とする)の該当条件分岐前の特徴量を算出する(Ｓ３０２)。この特徴量はＳ３０１で抽出した特徴量と同じものが利用される。次に、条件分岐予測機能４０２では、上述のＳ３０１とＳ３０２で抽出した各インスタンスの間での類似度を算出する(Ｓ３０３)。この計算では、図６を用いて説明した重要度を考慮して行われる。
【００３６】
具体的には、判別分析を例にすれば、特徴量空間上に各インスタンスを写像し、インスタンスＸの座標とのユークリッド距離の逆数をもって類似度とする方法が考えられるが、各軸は、重要度に応じて歪められる。この類似度が最も大きい(距離が小さい)インスタンス(ここでは、インスタンスＡであったとする。)を、インスタンスＸの条件分岐の予測対象とされる(Ｓ３０４)。最後に、インスタンスAの条件分岐結果がインスタンスＸの条件分岐結果と判定される(Ｓ３０５)。 
【００３７】
図８を用いて、本発明によるビジネスプロセスの事前実行の例を説明する。 ここには、便宜的なビジネスプロセス定義の例が示されていて、購買部の要員が発注文書を作成し、これが正式な発注データとなって社内のデータベースに保存されるまでのビジネスプロセスを示している。
各アクティビティを順に説明すると、先ず、最初の「ｒｅｃｅｉｖｅ」では、購買部の要員によって発注文書を作成する。この時点で、ＢＰインスタンスが生成されるが、次のアクティビティがこの文書に対する承認(管理職などが行うと仮定する)待ちとなっているため、ＢＰインスタンスは待機状態「ｗａｉｔ」へと遷移する。ここで本発明における事前実行の機能が動作し、この待機状態「ｗａｉｔ」のＢＰインスタンスが実行状態に遷移し、以降のアクティビティを事前実行する。すなわち、事前実行されるアクティビティは、発注文書妥当性検査「ｖａｌｉｄａｔｉｏｎ」を行い、次いで、実際に発注するための文書構造への変換「ｏｕｔｂｏｕｎｄ  ｍａｐ」を行う。そして、変換後の発注文書はデータベースに保存「ｓｔｏｒｅ  ｄｂ」される。このように、このＢＰ定義の例では、承認者の承認を待つことなく、上述の３つのアクティビティ「ｖａｌｉｄａｔｉｏｎ」、「ｏｕｔｂｏｕｎｄ  ｍａｐ」、「ｓｔｏｒｅ  ｄｂ」を事前実行する例が示されている。
【００３８】
上記構成からなるビジネスプロセス実行システム１００は、実行済みのビジネスプロセス履歴情報を統計的に分析し、待機状態にあるビジネスプロセスインスタンスの中で次に実行状態に遷移する可能性の高いビジネスプロセスを予測する。また、現在実行しているビジネスプロセスがどのようなアクティビティの遷移を辿るか、つまり、ビジネスプロセス定義内の条件分岐アクティビティの分岐予測を行い、これらの予測を基にビジネスプロセスインスタンスが将来実行すべきアクティビティを予め実行する。したがって、この予測が当った場合には、待機状態から実行状態への遷移以降のアクティビティの実行結果をそのまま利用することができる。これにより、ビジネスプロセスインスタンスの実行にかかる時間を短縮することが可能となる。もし予測が外れたことが判明した場合は、アクティビティ処理結果は全て廃棄されてしまうが、このように、先に実行しなければビジネスプロセス実行エンジンは特定時間到達などによる実行状態への遷移や分岐命令を実際に判定するまで何もしないため、ＢＰ実行エンジン３００はＣＰＵ時間を浪費していることにはならないという特長を有している。
【００３９】
以上、本発明の一実施の形態について図面を参照して詳説したが、具体的な構成は、上記実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において設計変更等が可能である。
例えば、図１に示したＢＰ実行システム１００は、ＢＰ定義情報リポジトリ２００、ＢＰ実行エンジン３００、予測エンジン４００、ＢＰ実行履歴情報格納部５００をそれぞれ別の計算機上にもっていてもよい。また、例えばＢＰ定義情報リポジトリ２００とＢＰ実行エンジン３００が同じ計算機で予測エンジン４００が別の計算機という構成でもよく、どのように配置しても本発明は正しく機能することができる。
また、図６では、予測方法取得機能４０３において、予測に利用する履歴情報(特徴量)の候補をＢＰ実行システム１００がユーザに提示し、各特徴量の重要度のみを利用者が決定する構成をとっているが、統計数学に精通した利用者がいることを想定して、これらの特徴量を利用してどのように予測を行うかの計算自体を利用者が設定可能にするようにしてもよい。つまり、図７の説明では、判別分析を例にしたが、この統計的手法さえも、利用者が自由に設定することができる。
【００４０】
なお、上述のビジネスプロセス実行システムは内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００４１】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００４２】
１００……ＰＢ実行システム、２００……ＰＢ定義情報リポジトリ、２０１……ＰＢ構造情報、２０２……ＰＢ受信情報、２０３……予測方法定義情報、３００……ＰＢ実行エンジン、３０１……電文送受信部、３０２……ＰＢインスタンス実行部、３０３……ＰＢインスタンス活性化機能、３０４……非実行状態ＰＢインスタンス管理部、４００……予測エンジン、４０１……状態遷移予測機能、４０２……条件分岐予測機能、４０３……予測方法取得機能、５００……ＰＢ実行履歴情報格納部、５０１……送受信電文情報、５０２……アクティビティ実行履歴、５０３……インスタンス実行履歴
【図１】
2010198324.tif 000003
【図２】
2010198324.tif 000004
【図３】
2010198324.tif 000005
【図４】
2010198324.tif 000006
【図５】
2010198324.tif 000007
【図６】
2010198324.tif 000008
【図７】
2010198324.tif 000009
【図８】
2010198324.tif 000010