ビジネスプロセス例外処理生成支援装置およびプログラム
【課題】 例外処理が定義されていない場合にも、ビジネスプロセスを中断させることなく実行可能にする装置およびプログラムを提供する。
【解決手段】 ビジネスプロセス例外処理生成支援装置3は、再利用可能例外処理生成部19と、例外処理定義生成部21と、例外処理実行要求部22とを備えている。再利用可能例外処理生成部19は、過去の実行履歴を解析して発生頻度の高い例外処理の一覧を生成する。例外処理定義生成部21は、生成した一覧から、例外処理が定義されていないビジネスプロセスで実行すべき例外処理を抽出する。例外処理実行要求部22は、抽出した例外処理をビジネスプロセス実行エンジン2に実行させる。
【解決手段】 ビジネスプロセス例外処理生成支援装置3は、再利用可能例外処理生成部19と、例外処理定義生成部21と、例外処理実行要求部22とを備えている。再利用可能例外処理生成部19は、過去の実行履歴を解析して発生頻度の高い例外処理の一覧を生成する。例外処理定義生成部21は、生成した一覧から、例外処理が定義されていないビジネスプロセスで実行すべき例外処理を抽出する。例外処理実行要求部22は、抽出した例外処理をビジネスプロセス実行エンジン2に実行させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビジネスプロセスの例外処理を自動的に生成することが可能な装置およびプログラムに関する。
【背景技術】
【0002】
近年、企業内・企業間を問わずシステム連携やアプリケーション連携を実現するビジネスプロセス実行エンジンが広く利用されている。ビジネスプロセス実行エンジンは、あらかじめシステムやアプリケーションの連携情報を記述したビジネスプロセス(BP)にしたがい、システムやアプリケーションを自動実行する。このようなビジネスプロセス実行エンジンを利用して複数アプリケーションの連携を行うことで実現されるサービスは、ワンストップサービスと呼ばれるものであり、電子政府により各種の行政サービスをウェブサイト上で提供するシステムや、民間における様々な電子商取引システムなどが数多く運用されている。
【0003】
具体例として、図14に示すゴルフ場予約に関するワンストップサービスの例を用い、ビジネスプロセス実行エンジンの使われ方を説明する。
なお、以降「ビジネスプロセス」とは連携して行われるいくつかのシステムやアプリケーションが集まって構成される処理の固まり(処理「そのもの」)のことをいい、「BP」とは上記のようにシステムやアプリケーションの実行順序等を記述した連携情報(処理内容を記述した「ファイル」)のことをいうものとする。
【0004】
図14に示すように、ビジネスプロセス実行エンジン101と3つのビジネスプロセス実行サーバ102−1〜102−3とビジネスプロセス実行要求クライアント(ユーザ端末)105がネットワーク103により接続されている。ビジネスプロセス実行サーバ102−1〜102−3はゴルフ場運営業者と運送業者と金融機関がそれぞれ保有しており、これらのサーバではそれぞれゴルフ場予約システム、配送料金算出システム、決済システムが動いている。また、ビジネスプロセス実行エンジン101は、このゴルフ場予約のワンストップサービスを提供するサービス会社が保有しているサーバであり、ウェブ上にゴルフ場予約をするユーザ向けのポータルサイトを運営しているものである。ビジネスプロセス実行要求クライアント105は、ユーザが上記ポータルサイトにアクセスして所定の予約操作等を行うためのユーザ端末である。
【0005】
ゴルフ場予約をするユーザは、ビジネスプロセス実行要求クライアント105からこのポータルサイトにアクセスし、サイトの指示にしたがって氏名・住所・利用するゴルフ場名・利用日時・クレジットカード番号・ゴルフバッグの配送希望有りの旨などを入力する。ビジネスプロセス実行エンジン101は、BP104の記述内容にしたがい、入力されたこれらのデータを使って以下の処理を自動実行する。これにより、ユーザにとってみればワンストップで目的を達成できるサービスが実現される。
【0006】
ビジネスプロセス実行エンジン101は、BP104の連携順序(1)に記述されているように、まずゴルフ場予約システム(ビジネスプロセス実行サーバ102−1上で稼動している)に対する処理を実行する。ここでは、ビジネスプロセス実行エンジン101は利用希望日時の空き情報の検索をゴルフ場予約システムに要求する。すると同システムが検索を実行し、その結果が同エンジン101に送信される。そして利用可能であれば、同エンジン101はさらにユーザの氏名等のデータを同システムに送信してゴルフ場の予約を要求する。同システムは予約登録を行うとともに、ゴルフ場の住所および利用料金を同エンジン101に送信する。
【0007】
同エンジン101は、次にBP104の連携順序(2)にしたがい、配送料金算出システム(ビジネスプロセス実行サーバ102−2上で稼動している)に対する処理を実行する。同エンジン101は、ユーザの氏名・住所・ゴルフ場の住所を同システムに送信してゴルフバッグ配送の予約を要求する。同システムは、配送予約の登録を行い、またユーザとゴルフ場の住所から配送料金を算出して同エンジン101に送信する。
【0008】
同エンジン101は、さらにBP104の連携順序(3)にしたがい、決済システム(ビジネスプロセス実行サーバ102−3上で稼動している)に対する処理を実行する。同エンジン101は、ユーザの氏名・クレジットカード番号・ゴルフ場利用料金・配送料金を同システムに送信して決済処理を要求する。同システムは決済を行い、結果を同エンジン101に送信する。同エンジン101は、その結果をポータルサイト上に表示し、ゴルフ場の予約が正常に完了したことをユーザに通知する。
このようにビジネスプロセス実行エンジン101は、ワンストップサービスにおいて他のビジネスプロセス実行サーバ上の複数のシステムを統合する処理を実行している。
【0009】
なお、このようなビジネスプロセス実行エンジンの処理内容を記述するためのBPは、BP記述言語(あるいはBP実行言語)と呼ばれる仕様にしたがって記述される。BP記述言語は各種団体によって標準化が進められており、例えば、ebXML(electronic business eXtensible Markup Language)やBPEL(Business Process Execution Language for Web Services)のように様々な記述形式のものが策定されている。
【0010】
ところで、BPに記述されるシステムやアプリケーション(以下、これらを総称して処理と呼ぶ)の連携情報には、ある処理で例外が発生した場合にその例外に対応して実行される処理(例外処理と呼ぶ)が含まれる。図15に示す具体例を参照して説明する。通常は、(1)Application1、(2)System1、(3)Application2、(4)System2の順に処理(正常処理)107−1〜107−4が実行される。ここで、System1には例外処理108〜110が関連付けられている。例外「ExceptionA」が発生した場合、対応する例外処理(108)SystemE1が実行され、続いて例外処理(109)ApplicationE1が実行される。一方、System1において例外「ExceptionB」が発生した場合には、対応する例外処理SystemE3(110)が実行される。しかし、「ExceptionA」「ExceptionB」以外の例外が発生した場合には、当該例外を補償するための例外処理は行われない。また、Application1、Application2、System2には例外処理が関連付けられていないため、どのような例外が発生した場合にもその例外を補償するための例外処理は一切行われない。このように、BPには各処理に対しどのような例外が発生したらいかなる例外処理を行うのか、あるいは行わないのか、といった連携情報がBP記述言語にしたがって記述されている(例えば、特許文献1および非特許文献1参照)。
【特許文献1】特開2002−312166号公報
【非特許文献1】Hector Garcia-Molina, et al., SAGAS, ACM SIGMOD Record, Proceedings of the 1987 ACM SIGMOD International Conference on the Management of Data, Volume 16 Issue 3, December 1987
【発明の開示】
【発明が解決しようとする課題】
【0011】
しかしながら、上述のビジネスプロセス実行エンジンでは、上記説明のとおりBPに記述された内容にしたがって処理が行われることから、ある処理に対する例外処理が全くBP内に記述されていない場合は、当該処理において例外が発生しても一切例外処理を行うことができない。BP内に記述されている以外の(すなわち、記述者が想定していない)例外が発生した場合も同様である。このため、例外が発生してもそれを補償する処理が行われないことになり、ビジネスプロセスの実行が破綻するおそれがある。また、BPの記述者は、各処理で起こりうるすべての例外を想定し、それらの例外に対応する例外処理を完全に記述する必要がある。
【0012】
また、前述のBP記述言語の仕様によれば、ある処理において例外が発生した場合に実行する例外処理を記述(図15のBPを参照)することはできるが、当該例外が発生するまでに実行済みの処理に応じて異なった例外処理を行わせることはできない。すなわち、例えば図16に示すように、処理System1(113)において例外ExceptionAが発生した時に例外処理SystemE1(114)が実行されるというビジネスプロセスの場合、System1の直前の処理(115)がApplication1であるかApplication2であるかによらず、例外ExceptionAが発生すれば必ず例外処理SystemE1(114)が実行される。このように、従来のビジネスプロセス実行エンジンでは、例外ExceptionAが発生した時、直前の処理がApplication1の場合には例外処理SystemE1を実行させ、Application2の場合には例外処理SystemE2を実行させるというような柔軟なビジネスプロセスを構築できないという問題もあった。
【0013】
この発明は上記の点に鑑みてなされたものであり、その目的は、例外処理が定義されていない場合にもビジネスプロセスを中断させることなく実行可能にし、なお且つ、例外発生前の処理内容に応じて例外処理を柔軟に実行することが可能な装置およびプログラムを提供することにある。
【課題を解決するための手段】
【0014】
本発明は上述した課題を解決するためになされたものであり、請求項1に記載した発明は、ビジネスプロセスを実行するビジネスプロセス実行エンジンにおける例外処理の実行を支援するビジネスプロセス例外処理生成支援装置であって、前記ビジネスプロセス実行エンジンによって実行されたビジネスプロセスの実行履歴を取得する実行履歴取得部と、取得した実行履歴から、ビジネスプロセスで発生した例外と該例外に関連する処理の組み合わせを所定の規則にしたがって抽出して、再利用可能な例外処理の一覧テーブルを生成する再利用可能例外処理生成部と、前記一覧テーブルを格納する再利用可能例外処理記憶部と、前記ビジネスプロセス実行エンジンにおけるビジネスプロセスの実行過程において例外が発生し、該例外に対応する例外処理が前記ビジネスプロセス実行エンジンに定義されていない場合に、所定の規則にしたがって前記一覧テーブルから例外処理を抽出する例外処理定義生成部と、該例外に対応する例外処理として前記抽出した例外処理を前記ビジネスプロセス実行エンジンに実行させる例外処理実行要求部と、を具備することを特徴とするビジネスプロセス例外処理生成支援装置である。
【0015】
請求項2に記載した発明は、請求項1に記載のビジネスプロセス例外処理生成支援装置において、前記再利用可能例外処理生成部は、前記ビジネスプロセス実行エンジンから取得した実行履歴において前記例外と該例外に関連する処理の組み合わせの出現回数が所定回数以上の場合に、該組み合わせの抽出を行うことを特徴とする。
【0016】
請求項3に記載した発明は、請求項1または請求項2に記載のビジネスプロセス例外処理生成支援装置において、前記例外処理定義生成部は、対象となるビジネスプロセスで発生した例外と該例外が発生した処理からなる組み合わせが一致し、且つ該処理に先行して行われた少なくとも1つの処理が一致するビジネスプロセスを前記一覧テーブルから選択し、選択したビジネスプロセスの例外処理を該例外に対応する例外処理として抽出することを特徴とする。
【0017】
請求項4に記載した発明は、請求項3に記載のビジネスプロセス例外処理生成支援装置において、前記例外処理定義生成部は、前記一覧テーブルから複数のビジネスプロセスを選択し、該ビジネスプロセスの複数の例外処理からユーザの選択により1つの例外処理を抽出することを特徴とする。
【0018】
請求項5に記載した発明は、ビジネスプロセスを実行するビジネスプロセス実行エンジンにおける例外処理の実行を支援するコンピュータに、前記ビジネスプロセス実行エンジンによって実行されたビジネスプロセスの実行履歴を取得するステップと、取得した実行履歴から、ビジネスプロセスで発生した例外と該例外に関連する処理の組み合わせを所定の規則にしたがって抽出して、再利用可能な例外処理の一覧テーブルを生成するステップと、前記一覧テーブルを格納するステップと、前記ビジネスプロセス実行エンジンにおけるビジネスプロセスの実行過程において例外が発生し、該例外に対応する例外処理が前記ビジネスプロセス実行エンジンに定義されていない場合に、所定の規則にしたがって前記一覧テーブルから例外処理を抽出するステップと、該例外に対応する例外処理として前記抽出した例外処理を前記ビジネスプロセス実行エンジンに実行させるステップと、を実行させるためのビジネスプロセス例外処理生成支援プログラムである。
【発明の効果】
【0019】
この発明によれば、過去の実行履歴を基にして、例外が発生した処理に至るまでに実行された処理を考慮した再利用可能な例外処理の一覧が自動生成され、さらに該一覧を基にして、BPに例外処理が定義されていない処理において実行すべき最適な例外処理が自動生成される。したがって、BP内に例外処理が定義されていない処理が存在していても、自動生成された例外処理が実行されることにより、破綻を来たすことなくビジネスプロセスの実行を完了させることができる。BPの記述者にとっては、仮にすべての例外処理が完全に記述されていなくても破綻が生じないことから、ビジネスプロセス設計の負担が軽減されるというメリットがある。
また、本発明によれば、例外処理が定義されていない処理において例外が発生した場合に、当該処理に至るまでの実行済み処理を過去の実行履歴と比較することによって、実行すべき最適な例外処理を決定する。したがって、図16のようなビジネスプロセスに対しても、先行して行われた処理に応じて異なる例外処理を実行でき、柔軟なビジネスプロセスの実現が可能となる。
【発明を実施するための最良の形態】
【0020】
以下、図面を参照し、この発明の実施の形態について説明する。図1は、この発明の一実施の形態によるビジネスプロセス例外処理生成支援装置3が適用されたワンストップサービスシステム全体の構成を示す機能ブロック図である。
図1に示すように、このシステムは、ビジネスプロセス実行要求クライアント1と、ビジネスプロセス実行エンジン2と、ビジネスプロセス例外処理生成支援装置3がネットワーク4に接続されて構成される。
ビジネスプロセス実行要求クライアント1は、ユーザの操作によりビジネスプロセス実行エンジン2に対してビジネスプロセスの実行を要求するクライアントコンピュータである。
【0021】
ビジネスプロセス実行エンジン2は、ビジネスプロセスの実行に関する処理を行うサーバ装置であり、次の機能部により構成される。
BP定義記憶部11は、BP定義情報が格納されたハードディスクドライブである。ここで、BP定義情報には各処理の実行順序や各処理に対応する例外処理、分岐処理の内容等がBP記述言語にしたがって記述されている。
BP定義管理部12は、BP定義記憶部11に格納されたBP定義情報の管理を行う。具体的には、ビジネスプロセス実行要求クライアント1の要求にしたがってBP定義記憶部11からBP定義情報を読み出してビジネスプロセス実行部13に出力を行い、また更新されたBP定義情報をビジネスプロセス例外処理生成支援装置3から取得してBP定義記憶部11に書き込みを行う。
ビジネスプロセス実行部13は、BP定義情報にしたがって各ビジネスプロセスを実行する。
実行履歴管理部14は、ビジネスプロセス実行部13で実行される各処理を監視し、各処理の実行結果に基づいて実行履歴を作成して実行履歴記憶部15に出力する。また、実行履歴記憶部15から実行履歴を読み出して、これをビジネスプロセス例外処理生成支援装置3に出力する。
実行履歴記憶部15は、実行履歴を格納するハードディスクドライブである。
通信部16は、ネットワーク4に接続されてビジネスプロセス実行要求クライアント1およびビジネスプロセス例外処理生成支援装置3との間でデータの送受信を行うインタフェースである。
【0022】
ビジネスプロセス例外処理生成支援装置3は、例外処理が定義されていないBPにおいて実行されるべき例外処理を、過去の実行履歴を基に生成する装置であり、次の機能部により構成される。
実行履歴取得部18は、例外処理を生成するために必要なデータであるビジネスプロセスの実行履歴を、ビジネスプロセス実行エンジン2から取得する部分である。
再利用可能例外処理生成部19は、実行履歴を解析することにより再利用可能な例外処理の一覧を生成し、再利用可能例外処理記憶部23に出力する。
例外監視部20は、ビジネスプロセス実行エンジン2から実行履歴を取得して所定の部分を抽出し、例外処理定義生成部21へ送る。
例外処理定義生成部21は、例外処理が定義されていないBPで実行されるべき例外処理を生成するための解析・判断を行う部分である。
例外処理実行要求部22は、例外処理定義生成部21で生成された例外処理をビジネスプロセス実行エンジン2に実行させる部分である。
再利用可能例外処理記憶部23は、再利用可能例外処理生成部19で生成された一覧を格納するハードディスクドライブである。
通信部24は、ネットワーク4に接続されてビジネスプロセス実行要求クライアント1およびビジネスプロセス実行エンジン2との間でデータの送受信を行うインタフェースである。
【0023】
次に、上記のビジネスプロセス例外処理生成支援装置3を利用したシステムの動作を図2〜図4に示すフローチャートを参照して説明する。ここで、図2はメインとなる動作を示すものであり、図3および図4はその中のサブステップの動作を説明するものである。
図2のフローチャートに示すように、このシステムは大きく5つのステップに分かれて動作する。
【0024】
(1)ビジネスプロセス実行履歴の生成(ステップS1)
まず、ビジネスプロセス実行エンジン2は常時ビジネスプロセス実行要求クライアント1からの要求を受け付けており、要求は通信部16を経由してBP定義管理部12へ送られる。BP定義管理部12は、要求のあったビジネスプロセスが定義されたBPをBP定義記憶部11から読み出してBP実行部13へ出力する。BP実行部13は、このBPにしたがって順次処理を実行する。
BP実行部13は、各処理の実行が終わるとその実行結果を実行履歴管理部14へ出力する。ここで、出力される実行結果のデータには、ビジネスプロセス名、実行された処理名、正常処理/例外処理の区分、発生した例外名、等の情報が含まれる(図6参照)。実行履歴管理部14は、受け取った実行結果のデータをビジネスプロセス毎にまとめて実行履歴を作成し、実行履歴記憶部15に格納する。こうして、実行履歴は1つのビジネスプロセスが完了する度に更新され、一定の期間にわたって実行された全ビジネスプロセスの全処理内容とその結果が、実行履歴として実行履歴記憶部15に保存されることになる。
【0025】
ここで、以下に実行履歴が作成されるまでの具体例について説明する。
図5は、BP定義記憶部11に格納されているBPのBP定義情報を模式的に示した一例である。この模式図では、ビジネスプロセス1からビジネスプロセス6までの6つのビジネスプロセスに関するBP定義情報が記述されている。例えば、ビジネスプロセス1では、通常は処理A、処理B、処理Cの順に処理(正常処理)が実行されてビジネスプロセスが完了する。また、処理Bには例外(例外名をExceptionAとする)が関連付けられており、処理Bで例外「ExceptionA」が発生した場合には処理Cに進まず、例外処理Eが実行されてビジネスプロセスが完了する。
また、同様にビジネスプロセス2では、処理Bの後、所定の条件にしたがって分岐処理が行われ、分岐に応じて処理K、処理Yまたは処理X、処理Hの順に処理が実行される。また、処理K、処理Xにはそれぞれ例外処理Z、Gが関連付けられている。
【0026】
実際のビジネスプロセスの実行においては、上の説明のようにいくつもある正常処理、例外処理、分岐処理のルートのうち1つのルートだけが実現される。ここでは、ビジネスプロセス1では処理A、B、Eが、ビジネスプロセス2では処理B、K、Zが、それぞれ実際に実行されたとする。他のビジネスプロセスについても同様に、図5において実線の丸で表される処理からなるルートが実現されたとする(なお、実行されなかった処理は点線の丸で示している)。
【0027】
すると、これらのビジネスプロセスが実行されそれぞれの処理が完了することにより、図6に示す実行履歴の一例が作成されることになる。すなわち、ビジネスプロセス1が完了した際に、図6の実行履歴の1行目〜3行目が生成される。ここで、1行目のデータは処理A(正常処理)が実行されたことを示し、2行目のデータは処理B(正常処理)が実行されたが例外「ExceptionA」が発生したことを示し、3行目のデータは発生した例外に応じて例外処理Eが実行されたことを示す。また、その後ビジネスプロセス3(4〜6行目)、ビジネスプロセス6(7〜9行目)、ビジネスプロセス4(10〜14行目)等々が順次実行されることにより、実行履歴の更新(4行目以下の行の追加)が行われる。このようにして、図6の実行履歴が作成される。
【0028】
(2)例外が発生したビジネスプロセスの抽出(ステップS2)
図2のフローチャートに戻って動作の説明を続けると、次に実行履歴管理部14は、実行履歴記憶部15から実行履歴を読み出してビジネスプロセス例外処理生成支援装置3の実行履歴取得部18に出力する。この出力は、実行履歴が更新される度に(すなわち1つのビジネスプロセスが完了する度に)行われる。実行履歴取得部18は、受け取った実行履歴から例外が発生しなかったビジネスプロセスに関する行の部分を削除して実行履歴を更新し、再利用可能例外処理生成部19に出力する。
上記の実行履歴の一例の場合、ビジネスプロセス6については例外が発生することなく処理が完了しているので、このビジネスプロセス6に関する行(7〜9行目)だけが削除されて(他の行はそのまま)実行履歴が更新される。
【0029】
(3)再利用可能な例外処理の抽出(ステップS3)
次に、再利用可能例外処理生成部19は、ステップS2で更新された実行履歴(例外が発生したビジネスプロセスに関する実行履歴のみが記されている)を解析して、再利用可能な例外処理が抽出された一覧テーブルを作成する。この解析作業は以下のサブステップからなる。図3に示すフローチャートを参照してこれらを説明する。
【0030】
(3−1)有向グラフ一覧の作成(ステップS301)
まず、再利用可能例外処理生成部19は、ステップS2で更新された実行履歴を基にして有向グラフ一覧を作成する。ここで有向グラフとは、実際に実行された各ビジネスプロセスについて、実行された各処理を実行順に並べて矢印で結ぶことにより視覚化したものである。有向グラフの表現の方法はどのようなものであっても構わないが、ここでは正常処理を実線丸印、例外処理を点線丸印で表し、例外が発生した処理を示す丸印の右肩に発生した例外名を記すものとする。
【0031】
図7は、図6の実行履歴(ただしステップS2によりビジネスプロセス6に関する7〜9行目は削除されている)から作成される有向グラフ一覧を示したものである。例えば実行履歴の1〜3行目に記されるビジネスプロセス1からは、上段左端の有向グラフが作成される。
なお、実際の再利用可能例外処理生成部19の動作としては、上記のような有向グラフ(視覚的なデータ)を作成するのではなく、例えばビジネスプロセス1について、
[A、B(ExceptionA)、E]
のような形式で表現されるデータを作成することとしてもよい。以下の説明においては、有向グラフを上記のデータの形式に置き換えて説明を行うこととする。
【0032】
(3−2)基本セットの抽出(ステップS302)
次に、再利用可能例外処理生成部19は、ステップS301で作成した各有向グラフについて、例外が発生した処理名、発生した例外名、実行された例外処理名、の3点を一式とするデータ(以下、基本セットと呼ぶ)を抽出する。図7の有向グラフについて例示すると、ビジネスプロセス1の基本セットは
B、ExceptionA、E
となり、ビジネスプロセス3の基本セットは
H、ExceptionC、Z
となり、ビジネスプロセス4の基本セットは
B、ExceptionA、E
となり、ビジネスプロセス5の基本セットは
K、ExceptionB、Z
となり、ビジネスプロセス2の基本セットは
K、ExceptionB、Z
となり、2回目に実行されたビジネスプロセス1の基本セットは
B、ExceptionA、E
となる。なお、以下基本セットを表す時は、括弧内にその要素を列挙して(B、ExceptionA、E)のように記述することにする。
【0033】
(3−3)再利用可能例外処理一覧テーブルの作成(ステップS303)
次に、再利用可能例外処理生成部19は抽出したすべての基本セットを比較して、同一のものがあればその出現回数をカウントし、あらかじめ定めた最低出現回数以上のカウント数となった基本セットに対して、一意の名前(置換処理名)を付与する。ここで、最低出現回数はあらかじめ2回と定められているとする。すると、上記の基本セットについては、基本セット(B、ExceptionA、E)は出現回数が3回であるので置換処理名P1を付与し、基本セット(K、ExceptionB、Z)は出現回数が2回であるので置換処理名P2を付与し、基本セット(H、ExceptionC、Z)は出現回数が1回であるので置換処理名は付与しない。なお、最低出現回数の設定値は2に限定されることはなく、任意の数値に設定することが可能であり、この数値を調整することで発生頻度の高い基本セットのみを抽出できる。
【0034】
再利用可能例外処理生成部19は次に、置換処理名と基本セットと基本セットの出現回数とチェックフラグを一組のデータとする再利用可能例外処理一覧テーブル(以下、一覧テーブルと呼ぶ)を作成する。上記例の場合に作成される一覧テーブルは、図8に示すものとなる。ここで、基本セット(H、ExceptionC、Z)は置換処理名が付与されていないので一覧テーブルには登録されない。また、チェックフラグはこの段階ではすべて「false」に設定される。
【0035】
(3−4)有向グラフ一覧の更新(ステップS304)
次に、再利用可能例外処理生成部19は、各有向グラフにおいて基本セットをステップS303で付与した置換処理名に置き換え、有向グラフ一覧を更新する。図9は、図7の有向グラフ一覧が更新された結果を示したものである。ここで、基本セット(H、ExceptionC、Z)には置換処理名が付与されていないので、更新後の有向グラフ一覧にはこの基本セットを有するビジネスプロセス3の有向グラフは含まれないこととなる。
【0036】
(3−5)正常拡張対と例外拡張対の抽出(ステップS305)
次に、再利用可能例外処理生成部19は、一覧テーブルのチェックフラグ欄が「false」である行の置換処理名をすべて選び出す。上記の具体例においては、この段階ではステップS303でチェックフラグはすべての行が「false」に設定されたので、すべての置換処理名すなわちP1とP2が選び出される。
再利用可能例外処理生成部19は次に、ステップS304で更新した各有向グラフに対して、選び出した置換処理名と当該置換処理の後に実行された例外処理名の対(例外拡張対)、および選び出した置換処理名と当該置換処理の前に実行された正常処理の対(正常拡張対)を抽出する。
【0037】
上記具体例においては、
ビジネスプロセス1の正常拡張対(A、P1)と、
ビジネスプロセス4の正常拡張対(X、P1)と、
ビジネスプロセス4の例外拡張対(P1、F)と、
ビジネスプロセス5の正常拡張対(X、P2)と、
ビジネスプロセス2の正常拡張対(B、P2)と、
2回目に実行されたビジネスプロセス1の正常拡張対(A、P1)の計6つの拡張対が抽出される。なおここで、基本セットの表記と同様にカッコ内に要素を列挙することによって拡張対を記述することとする。
【0038】
(3−6)一覧テーブルへの正常/例外拡張対の登録(ステップS306)
次に、再利用可能例外処理生成部19は、ステップS303においてある一定回数以上出現する基本セットに対して一意の名前を付与する操作を行ったのと同様に、ここではステップS305で抽出した正常拡張対と例外拡張対それぞれの出現する回数があらかじめ定めた最低出現回数以上であれば、その拡張対に対して一意の名前(置換処理名)を付与する。上記具体例では、正常拡張対(A、P1)は2回、その他の拡張対はすべて1回出現している。ここで最低出現回数は2回と定められているとすると、2回出現している正常拡張対(A、P1)についてのみ置換処理名(P3とする)が付与されることになる。なお、最低出現回数の値は、ステップS303とステップS306とで異なっていてもよい。
【0039】
再利用可能例外処理生成部19は次に、付与した置換処理名とそれに対応する正常または例外拡張対とその出現回数とチェックフラグを一組のデータとして一覧テーブルに追加して登録する(ステップS303で基本セットについて行ったのと同様の操作である)。この時、追加されるのが正常拡張対の場合は、さらに当該正常拡張対を構成する正常処理名(正常拡張対が(A、P1)のときは「A」)を「正常処理の順序」の欄の最後部に付加する。また、例外拡張対の場合は、当該例外拡張対を構成する例外処理名を「例外処理の順序」の欄の先頭に付加する。
このステップS306によって更新された一覧テーブルを図10に示す。3行目のデータがこのステップで追加された部分である。
【0040】
(3−7)有向グラフ一覧の再更新(ステップS307)
次に、再利用可能例外処理生成部19は、ステップS304と同様に、各有向グラフの正常拡張対または例外拡張対をステップS306で付与した置換処理名に置き換え、有向グラフ一覧を更新する。上記の具体例においては、正常拡張対(A、P1)だけが置換処理名を付与されているので置き換えが行われ、他の拡張対は有向グラフ一覧からは削除される。
再更新後の有向グラフ一覧を図11に示す。上記具体例の有向グラフは、このステップの結果、置換処理名P3のみから構成されるもの(1回目に実行されたビジネスプロセス1から生成されたものと、2回目に実行されたビジネスプロセス1から生成されたものとの2つある)となる。このように、1つの置換処理名のみの有向グラフになった場合は、一覧テーブルのチェックフラグを「true」に変える。
有向グラフにまだ置換処理名以外の要素が含まれる場合は、ステップS305からの操作をすべての有向グラフの要素数が1つになるまで繰り返す。
【0041】
(3−8)一覧テーブルの保存(ステップS308)
再利用可能例外処理生成部19は、最終的に得られた一覧テーブルを再利用可能例外処理記憶部23に出力し、同記憶部23に一覧テーブルが格納される。上記例における最終的な一覧テーブルを図12に示す。
【0042】
(4)例外処理未記述BPの抽出(ステップS4)
ここでステップS3のサブステップからメインの動作に戻る。再び図2のフローチャートを参照しながら説明する。
BP実行部13は、前述したようにステップS1において、ビジネスプロセス実行要求クライアント1から要求を受け付けたビジネスプロセスの処理を実行している。ステップS4(とステップS5)は、ビジネスプロセスのいずれかに例外が発生し、しかも当該例外に対応する例外処理がBPに定義されていない場合(このようなBPを例外処理未記述BPと呼ぶ)に行われるステップである。
【0043】
このような場合にステップS1で作成される実行履歴の一例を図13に示す。この実行履歴において、ビジネスプロセス12(7〜8行目)が例外処理未記述BPに相当する。なおこの実行履歴に示されるように、例外が発生した処理Bに対しては例外処理が行われず、ビジネスプロセス12の実行は中断されている。
図2のステップS4において、実行履歴管理部14は、例外処理未記述BPにより定義されるビジネスプロセスが実行されてその結果が実行履歴に記録されると、ビジネスプロセス例外処理生成支援装置3の例外監視部20にその実行履歴を出力する。例外監視部20は、実行履歴の最後部(上記例では7〜8行目)に記録されている例外処理未記述BPに相当する実行結果部分を抽出し、例外処理定義生成部21に送る。
【0044】
(5)例外処理の決定と実行(ステップS5)
次に例外処理定義生成部21は、送られた実行結果を用い、図4のフローチャートに示されたサブステップにしたがって例外処理未記述BPに付加されるべき例外処理を生成する。以下、図4を参照して説明する。
【0045】
(5−1)対象有向グラフと有向グラフ群の作成(ステップS501)
例外処理定義生成部21は、例外監視部20から受けた例外処理未記述BPによる実行結果のデータから、実行結果に対応する有向グラフ(この有向グラフを対象有向グラフと呼ぶ)を作成する。上記例(図13)の実行結果からは、対象有向グラフ[A、B(ExceptionA)]が得られる。
また、例外処理定義生成部21は、再利用可能例外処理記憶部23から一覧テーブル(図12)を取得し、テーブル内の例外発生処理名、発生例外名、正常処理名からなる有向グラフを、すべての置換処理名に対して作成する。作成された有向グラフを総称して有向グラフ群と呼ぶ。図12の一覧テーブルからは、[B(ExceptionA)]、[K(ExceptionB)]、[A、B(ExceptionA)]の3つの有向グラフからなる有向グラフ群が得られる。
【0046】
(5−2)例外発生処理の比較(ステップS502)
ステップS501で作成した対象有向グラフと有向グラフ群はともに、ビジネスプロセスを構成する処理のうち例外が発生するまでの処理に着目したものである。したがって両者の有向グラフを比較することにより、過去に実行された複数のビジネスプロセス(有向グラフ群)の中から、例外処理未定義BP(対象有向グラフ)を構成している処理と同一の処理を有するものを選出することができる。このステップS502と次のステップS503により、上記の選出が行われる。
まず例外処理定義生成部21は、対象有向グラフの例外およびその例外が発生した処理の組み合わせと、各有向グラフの例外およびその例外が発生した処理の組み合わせとを比較して、対象有向グラフの組み合わせと同一の組み合わせを有する有向グラフを有向グラフ群から選び出す。上記の例では、対象有向グラフの例外は「ExceptionA」であり、例外が発生した処理は「B」であるから、同じ組み合わせを有する有向グラフ[B(ExceptionA)]と[A、B(ExceptionA)]の2つが選ばれる。
【0047】
(5−3)例外発生処理に先行する正常処理の比較(ステップS503)
次に、例外処理定義生成部21は選ばれた有向グラフと対象有向グラフについて、例外発生処理の1つ前に先行して実行された正常処理を比較し、当該正常処理が対象有向グラフと同一である有向グラフを有向グラフ群から選び出す。
さらに例外処理定義生成部21は、同様にして例外発生処理の2つ前の正常処理が対象有向グラフと同一である有向グラフを有向グラフ群から選び出す。以下、例外発生処理の3つ前、4つ前、と同様の操作を比較される正常処理が一致しなくなるまで繰り返す。この操作の結果、最終的に対象有向グラフと最も近似している(例外発生処理とそれに先行するいくつかの正常処理が同一である)有向グラフが選び出されることになる。
【0048】
なお、この操作により選出される有向グラフが複数存在する場合がある。すなわち、発生した例外と、例外発生処理と、該処理に先行して実行された正常処理が一致し、発生した例外に対応する例外処理のみが異なる場合である。このような場合は、複数の有向グラフを選出結果とする。
このステップの操作を上記の例に当てはめると、ステップS502で選ばれた2つの有向グラフ[B(ExceptionA)]と[A、B(ExceptionA)]の例外発生処理は「B」であり、この「B」の1つ前に先行する正常処理は、前者には無く、後者は「A」である。よって、操作の1段階目では後者の有向グラフ[A、B(ExceptionA)]が選ばれる。次に例外発生処理「B」の2つ前の正常処理は無いので、操作はここで終了する。こうして、上記例では対象有向グラフと最も近似している有向グラフとして[A、B(ExceptionA)]が選出される。
【0049】
(5−4)対応する例外処理の有向グラフの作成(ステップS504)
次に、例外処理定義生成部21は、ステップS503で選出された有向グラフに対応する置換処理が記述されている行を一覧テーブルから取り出し、「例外処理の順序」の欄に書かれた例外処理を表す有向グラフを作成する。ステップS503の選出結果が複数となった場合は、それぞれについて有向グラフを作成する。上記例では、対応する置換処理はP3であり、これから有向グラフ[E]が作成される。
作成された有向グラフが複数の場合は、例外処理定義生成部21はさらに、得られた複数の有向グラフのデータをビジネスプロセス実行要求クライアント1へ送信し、同クライアント1の操作者に選択を促す。操作者が1つの有向グラフを決定すると、例外処理定義生成部21は同クライアント1から当該有向グラフのデータを取得する(ステップS510、ステップS511)。
なお、有向グラフが複数の場合、上記のようにビジネスプロセス実行要求クライアントの操作者に選択させる代わりに、例外処理定義生成部21がランダムに1つの有向グラフを選択してもよい。また、一覧テーブルにおいて出現回数が最も多い有向グラフを選択するようにしてもよい。
【0050】
(5−5)付加すべき例外処理の決定とBP定義情報の作成(ステップS505)
例外処理定義生成部21は、例外処理未記述BPに付加すべき例外処理として、ステップS504またはステップS511で作成された有向グラフに対応する例外処理(上記例では例外処理E)を採用し、当該例外処理を記述するBP定義情報を作成する。以上により、例外処理が定義されていなかったBPにおいて実行すべき処理の内容が確定する。
【0051】
(5−6)付加された例外処理の実行(ステップS506)
例外処理定義生成部21は、上記ステップで作成したBP定義情報を例外処理実行要求部22へ出力し、例外処理実行要求部22は、受け取ったBP定義情報に基づいて例外処理の実行要求をビジネスプロセス実行エンジン2のBP実行部13に出力する。これにより、BP実行部13はステップS4で中断されたビジネスプロセスを続行させる。
【0052】
このように、上記の実施形態によれば、例外処理未記述BPが実行されて対応する例外処理が定義されていない例外が発生した場合に、破綻を来たすことなくビジネスプロセスを続行することが可能となる。すなわち、まずビジネスプロセス例外処理生成支援装置3が過去の実行履歴を解析して、再利用可能な(発生頻度の高い)例外処理の一覧が自動生成される。さらに、ビジネスプロセス例外処理生成支援装置3は、生成した例外処理一覧の中から例外処理未記述BPにおいて実行すべき最適な例外処理を抽出し、抽出された例外処理が実行されることによりビジネスプロセスが中断することなく続行される。
【0053】
また上記実施形態によれば、先行して行われた処理に応じて異なる例外処理を実行することができる。すなわち、ビジネスプロセス例外処理生成支援装置3は、例外が発生した処理に至るまでの先行処理を過去の実行履歴と比較することにより実行すべき例外処理を決定するので、当該先行処理が異なれば抽出される例外処理も異なる。したがって、先行処理に応じて異なる例外処理を実行させることが可能となるのである。
【0054】
以上、この発明の実施の形態を詳細に説明してきたが、この発明を実施するに当たっては、発明の要旨を変更しない範囲内において様々な変形・設計変更が可能である。
例えば、図1のシステム構成に代わる別のシステム構成として、図17に示すような形態を採ることも可能である。すなわち、図1のシステムではビジネスプロセス実行エンジン2がビジネスプロセス実行部13を有しており、同エンジン2(を実装しているコンピュータ)がビジネスプロセスの実行を担当していたが、図17に示すように、同エンジン2はBP定義管理と実行履歴管理の機能だけを有し、ネットワーク4で接続された別のコンピュータであるビジネスプロセス実行サーバ5〜7がビジネスプロセスの実行を担当するようにしてもよい。
【0055】
また逆に、図1や図17のようにビジネスプロセス実行エンジン2とビジネスプロセス例外処理生成支援装置3とビジネスプロセス実行サーバ5〜7が別個のコンピュータとしてネットワーク4に接続されているシステムに代えて、これらが全て同一のコンピュータとして構成されている形態を採ってもよい。
なお図17のシステム構成において、ビジネスプロセス実行エンジン2やビジネスプロセス例外処理生成支援装置3の運用者は、ビジネスプロセス実行サーバ5〜7の運用者と同じであっても異なっていてもよい。すなわち、本発明は企業間のシステム連携にも企業内のシステム連携にも同じように適用することが可能である。
【0056】
また、上記の実施形態では、ビジネスプロセスが実行されている最中に例外処理未記述BPに対して最適な例外処理を抽出する動作について説明を行ったが、BPを記述する場面(ワンストップサービスのシステムを構築する場面)において、本発明にかかるビジネスプロセス例外処理生成支援装置3を動作させ、BP記述者に代わって例外処理の記述を行わせるという使い方をすることもできる。
【産業上の利用可能性】
【0057】
この発明は、ビジネスプロセス実行エンジンを利用してアプリケーション連携を実現する、ワンストップサービスのシステムに用いて好適である。
【図面の簡単な説明】
【0058】
【図1】この発明の一実施の形態によるビジネスプロセス例外処理生成支援装置3が利用されたシステム全体の構成を示す機能ブロック図である。
【図2】ビジネスプロセス例外処理生成支援装置3を利用したシステムのメインの動作を示すフローチャートである。
【図3】図2に示すメインの動作中のサブステップの動作を示すフローチャートである。
【図4】図2に示すメインの動作中のサブステップの動作を示すフローチャートである。
【図5】BP定義情報の一例を模式的に示した図である。
【図6】実行履歴の一例を示したものである。
【図7】図6の実行履歴から作成される有向グラフ一覧を示した図である。
【図8】図7の有向グラフ一覧から作成された再利用可能例外処理一覧テーブルを示したものである。
【図9】図7の有向グラフ一覧の更新結果を示した図である。
【図10】図8の再利用可能例外処理一覧テーブルの更新結果を示した図である。
【図11】図9の有向グラフ一覧が再更新された結果を示した図である。
【図12】最終的な再利用可能例外処理一覧テーブルを示す図である。
【図13】例外処理未記述BPが実行された場合の実行履歴の一例を示したものである。
【図14】ビジネスプロセス実行エンジンが使われた従来のシステムの一例を示す概念図である。
【図15】例外処理が記述されているBPの一例を模式的に示した図である。
【図16】例外処理が記述されているBPの一例を模式的に示した図である。
【図17】この発明の一実施の形態によるビジネスプロセス例外処理生成支援装置3が利用された別のシステム全体の構成を示す機能ブロック図である。
【符号の説明】
【0059】
1…ビジネスプロセス実行要求クライアント 2…ビジネスプロセス実行エンジン 3…ビジネスプロセス例外処理生成支援装置 4…ネットワーク 5〜7…ビジネスプロセス実行サーバ 11…BP定義記憶部 12…BP定義管理部 13…ビジネスプロセス実行部 14…実行履歴管理部 15…実行履歴記憶部 16…通信部 18…実行履歴取得部 19…再利用可能例外処理生成部 20…例外監視部 21…例外処理定義生成部 22…例外処理実行要求部 23…再利用可能例外処理記憶部 24…通信部 101…ビジネスプロセス実行エンジン 102−1〜102−3…ビジネスプロセス実行サーバ 103…ネットワーク 104…BP 105…ビジネスプロセス実行要求クライアント(ユーザ端末) 107−1〜107−4…正常処理 108〜110…例外処理 113…処理 114…例外処理 115…処理
【技術分野】
【0001】
本発明は、ビジネスプロセスの例外処理を自動的に生成することが可能な装置およびプログラムに関する。
【背景技術】
【0002】
近年、企業内・企業間を問わずシステム連携やアプリケーション連携を実現するビジネスプロセス実行エンジンが広く利用されている。ビジネスプロセス実行エンジンは、あらかじめシステムやアプリケーションの連携情報を記述したビジネスプロセス(BP)にしたがい、システムやアプリケーションを自動実行する。このようなビジネスプロセス実行エンジンを利用して複数アプリケーションの連携を行うことで実現されるサービスは、ワンストップサービスと呼ばれるものであり、電子政府により各種の行政サービスをウェブサイト上で提供するシステムや、民間における様々な電子商取引システムなどが数多く運用されている。
【0003】
具体例として、図14に示すゴルフ場予約に関するワンストップサービスの例を用い、ビジネスプロセス実行エンジンの使われ方を説明する。
なお、以降「ビジネスプロセス」とは連携して行われるいくつかのシステムやアプリケーションが集まって構成される処理の固まり(処理「そのもの」)のことをいい、「BP」とは上記のようにシステムやアプリケーションの実行順序等を記述した連携情報(処理内容を記述した「ファイル」)のことをいうものとする。
【0004】
図14に示すように、ビジネスプロセス実行エンジン101と3つのビジネスプロセス実行サーバ102−1〜102−3とビジネスプロセス実行要求クライアント(ユーザ端末)105がネットワーク103により接続されている。ビジネスプロセス実行サーバ102−1〜102−3はゴルフ場運営業者と運送業者と金融機関がそれぞれ保有しており、これらのサーバではそれぞれゴルフ場予約システム、配送料金算出システム、決済システムが動いている。また、ビジネスプロセス実行エンジン101は、このゴルフ場予約のワンストップサービスを提供するサービス会社が保有しているサーバであり、ウェブ上にゴルフ場予約をするユーザ向けのポータルサイトを運営しているものである。ビジネスプロセス実行要求クライアント105は、ユーザが上記ポータルサイトにアクセスして所定の予約操作等を行うためのユーザ端末である。
【0005】
ゴルフ場予約をするユーザは、ビジネスプロセス実行要求クライアント105からこのポータルサイトにアクセスし、サイトの指示にしたがって氏名・住所・利用するゴルフ場名・利用日時・クレジットカード番号・ゴルフバッグの配送希望有りの旨などを入力する。ビジネスプロセス実行エンジン101は、BP104の記述内容にしたがい、入力されたこれらのデータを使って以下の処理を自動実行する。これにより、ユーザにとってみればワンストップで目的を達成できるサービスが実現される。
【0006】
ビジネスプロセス実行エンジン101は、BP104の連携順序(1)に記述されているように、まずゴルフ場予約システム(ビジネスプロセス実行サーバ102−1上で稼動している)に対する処理を実行する。ここでは、ビジネスプロセス実行エンジン101は利用希望日時の空き情報の検索をゴルフ場予約システムに要求する。すると同システムが検索を実行し、その結果が同エンジン101に送信される。そして利用可能であれば、同エンジン101はさらにユーザの氏名等のデータを同システムに送信してゴルフ場の予約を要求する。同システムは予約登録を行うとともに、ゴルフ場の住所および利用料金を同エンジン101に送信する。
【0007】
同エンジン101は、次にBP104の連携順序(2)にしたがい、配送料金算出システム(ビジネスプロセス実行サーバ102−2上で稼動している)に対する処理を実行する。同エンジン101は、ユーザの氏名・住所・ゴルフ場の住所を同システムに送信してゴルフバッグ配送の予約を要求する。同システムは、配送予約の登録を行い、またユーザとゴルフ場の住所から配送料金を算出して同エンジン101に送信する。
【0008】
同エンジン101は、さらにBP104の連携順序(3)にしたがい、決済システム(ビジネスプロセス実行サーバ102−3上で稼動している)に対する処理を実行する。同エンジン101は、ユーザの氏名・クレジットカード番号・ゴルフ場利用料金・配送料金を同システムに送信して決済処理を要求する。同システムは決済を行い、結果を同エンジン101に送信する。同エンジン101は、その結果をポータルサイト上に表示し、ゴルフ場の予約が正常に完了したことをユーザに通知する。
このようにビジネスプロセス実行エンジン101は、ワンストップサービスにおいて他のビジネスプロセス実行サーバ上の複数のシステムを統合する処理を実行している。
【0009】
なお、このようなビジネスプロセス実行エンジンの処理内容を記述するためのBPは、BP記述言語(あるいはBP実行言語)と呼ばれる仕様にしたがって記述される。BP記述言語は各種団体によって標準化が進められており、例えば、ebXML(electronic business eXtensible Markup Language)やBPEL(Business Process Execution Language for Web Services)のように様々な記述形式のものが策定されている。
【0010】
ところで、BPに記述されるシステムやアプリケーション(以下、これらを総称して処理と呼ぶ)の連携情報には、ある処理で例外が発生した場合にその例外に対応して実行される処理(例外処理と呼ぶ)が含まれる。図15に示す具体例を参照して説明する。通常は、(1)Application1、(2)System1、(3)Application2、(4)System2の順に処理(正常処理)107−1〜107−4が実行される。ここで、System1には例外処理108〜110が関連付けられている。例外「ExceptionA」が発生した場合、対応する例外処理(108)SystemE1が実行され、続いて例外処理(109)ApplicationE1が実行される。一方、System1において例外「ExceptionB」が発生した場合には、対応する例外処理SystemE3(110)が実行される。しかし、「ExceptionA」「ExceptionB」以外の例外が発生した場合には、当該例外を補償するための例外処理は行われない。また、Application1、Application2、System2には例外処理が関連付けられていないため、どのような例外が発生した場合にもその例外を補償するための例外処理は一切行われない。このように、BPには各処理に対しどのような例外が発生したらいかなる例外処理を行うのか、あるいは行わないのか、といった連携情報がBP記述言語にしたがって記述されている(例えば、特許文献1および非特許文献1参照)。
【特許文献1】特開2002−312166号公報
【非特許文献1】Hector Garcia-Molina, et al., SAGAS, ACM SIGMOD Record, Proceedings of the 1987 ACM SIGMOD International Conference on the Management of Data, Volume 16 Issue 3, December 1987
【発明の開示】
【発明が解決しようとする課題】
【0011】
しかしながら、上述のビジネスプロセス実行エンジンでは、上記説明のとおりBPに記述された内容にしたがって処理が行われることから、ある処理に対する例外処理が全くBP内に記述されていない場合は、当該処理において例外が発生しても一切例外処理を行うことができない。BP内に記述されている以外の(すなわち、記述者が想定していない)例外が発生した場合も同様である。このため、例外が発生してもそれを補償する処理が行われないことになり、ビジネスプロセスの実行が破綻するおそれがある。また、BPの記述者は、各処理で起こりうるすべての例外を想定し、それらの例外に対応する例外処理を完全に記述する必要がある。
【0012】
また、前述のBP記述言語の仕様によれば、ある処理において例外が発生した場合に実行する例外処理を記述(図15のBPを参照)することはできるが、当該例外が発生するまでに実行済みの処理に応じて異なった例外処理を行わせることはできない。すなわち、例えば図16に示すように、処理System1(113)において例外ExceptionAが発生した時に例外処理SystemE1(114)が実行されるというビジネスプロセスの場合、System1の直前の処理(115)がApplication1であるかApplication2であるかによらず、例外ExceptionAが発生すれば必ず例外処理SystemE1(114)が実行される。このように、従来のビジネスプロセス実行エンジンでは、例外ExceptionAが発生した時、直前の処理がApplication1の場合には例外処理SystemE1を実行させ、Application2の場合には例外処理SystemE2を実行させるというような柔軟なビジネスプロセスを構築できないという問題もあった。
【0013】
この発明は上記の点に鑑みてなされたものであり、その目的は、例外処理が定義されていない場合にもビジネスプロセスを中断させることなく実行可能にし、なお且つ、例外発生前の処理内容に応じて例外処理を柔軟に実行することが可能な装置およびプログラムを提供することにある。
【課題を解決するための手段】
【0014】
本発明は上述した課題を解決するためになされたものであり、請求項1に記載した発明は、ビジネスプロセスを実行するビジネスプロセス実行エンジンにおける例外処理の実行を支援するビジネスプロセス例外処理生成支援装置であって、前記ビジネスプロセス実行エンジンによって実行されたビジネスプロセスの実行履歴を取得する実行履歴取得部と、取得した実行履歴から、ビジネスプロセスで発生した例外と該例外に関連する処理の組み合わせを所定の規則にしたがって抽出して、再利用可能な例外処理の一覧テーブルを生成する再利用可能例外処理生成部と、前記一覧テーブルを格納する再利用可能例外処理記憶部と、前記ビジネスプロセス実行エンジンにおけるビジネスプロセスの実行過程において例外が発生し、該例外に対応する例外処理が前記ビジネスプロセス実行エンジンに定義されていない場合に、所定の規則にしたがって前記一覧テーブルから例外処理を抽出する例外処理定義生成部と、該例外に対応する例外処理として前記抽出した例外処理を前記ビジネスプロセス実行エンジンに実行させる例外処理実行要求部と、を具備することを特徴とするビジネスプロセス例外処理生成支援装置である。
【0015】
請求項2に記載した発明は、請求項1に記載のビジネスプロセス例外処理生成支援装置において、前記再利用可能例外処理生成部は、前記ビジネスプロセス実行エンジンから取得した実行履歴において前記例外と該例外に関連する処理の組み合わせの出現回数が所定回数以上の場合に、該組み合わせの抽出を行うことを特徴とする。
【0016】
請求項3に記載した発明は、請求項1または請求項2に記載のビジネスプロセス例外処理生成支援装置において、前記例外処理定義生成部は、対象となるビジネスプロセスで発生した例外と該例外が発生した処理からなる組み合わせが一致し、且つ該処理に先行して行われた少なくとも1つの処理が一致するビジネスプロセスを前記一覧テーブルから選択し、選択したビジネスプロセスの例外処理を該例外に対応する例外処理として抽出することを特徴とする。
【0017】
請求項4に記載した発明は、請求項3に記載のビジネスプロセス例外処理生成支援装置において、前記例外処理定義生成部は、前記一覧テーブルから複数のビジネスプロセスを選択し、該ビジネスプロセスの複数の例外処理からユーザの選択により1つの例外処理を抽出することを特徴とする。
【0018】
請求項5に記載した発明は、ビジネスプロセスを実行するビジネスプロセス実行エンジンにおける例外処理の実行を支援するコンピュータに、前記ビジネスプロセス実行エンジンによって実行されたビジネスプロセスの実行履歴を取得するステップと、取得した実行履歴から、ビジネスプロセスで発生した例外と該例外に関連する処理の組み合わせを所定の規則にしたがって抽出して、再利用可能な例外処理の一覧テーブルを生成するステップと、前記一覧テーブルを格納するステップと、前記ビジネスプロセス実行エンジンにおけるビジネスプロセスの実行過程において例外が発生し、該例外に対応する例外処理が前記ビジネスプロセス実行エンジンに定義されていない場合に、所定の規則にしたがって前記一覧テーブルから例外処理を抽出するステップと、該例外に対応する例外処理として前記抽出した例外処理を前記ビジネスプロセス実行エンジンに実行させるステップと、を実行させるためのビジネスプロセス例外処理生成支援プログラムである。
【発明の効果】
【0019】
この発明によれば、過去の実行履歴を基にして、例外が発生した処理に至るまでに実行された処理を考慮した再利用可能な例外処理の一覧が自動生成され、さらに該一覧を基にして、BPに例外処理が定義されていない処理において実行すべき最適な例外処理が自動生成される。したがって、BP内に例外処理が定義されていない処理が存在していても、自動生成された例外処理が実行されることにより、破綻を来たすことなくビジネスプロセスの実行を完了させることができる。BPの記述者にとっては、仮にすべての例外処理が完全に記述されていなくても破綻が生じないことから、ビジネスプロセス設計の負担が軽減されるというメリットがある。
また、本発明によれば、例外処理が定義されていない処理において例外が発生した場合に、当該処理に至るまでの実行済み処理を過去の実行履歴と比較することによって、実行すべき最適な例外処理を決定する。したがって、図16のようなビジネスプロセスに対しても、先行して行われた処理に応じて異なる例外処理を実行でき、柔軟なビジネスプロセスの実現が可能となる。
【発明を実施するための最良の形態】
【0020】
以下、図面を参照し、この発明の実施の形態について説明する。図1は、この発明の一実施の形態によるビジネスプロセス例外処理生成支援装置3が適用されたワンストップサービスシステム全体の構成を示す機能ブロック図である。
図1に示すように、このシステムは、ビジネスプロセス実行要求クライアント1と、ビジネスプロセス実行エンジン2と、ビジネスプロセス例外処理生成支援装置3がネットワーク4に接続されて構成される。
ビジネスプロセス実行要求クライアント1は、ユーザの操作によりビジネスプロセス実行エンジン2に対してビジネスプロセスの実行を要求するクライアントコンピュータである。
【0021】
ビジネスプロセス実行エンジン2は、ビジネスプロセスの実行に関する処理を行うサーバ装置であり、次の機能部により構成される。
BP定義記憶部11は、BP定義情報が格納されたハードディスクドライブである。ここで、BP定義情報には各処理の実行順序や各処理に対応する例外処理、分岐処理の内容等がBP記述言語にしたがって記述されている。
BP定義管理部12は、BP定義記憶部11に格納されたBP定義情報の管理を行う。具体的には、ビジネスプロセス実行要求クライアント1の要求にしたがってBP定義記憶部11からBP定義情報を読み出してビジネスプロセス実行部13に出力を行い、また更新されたBP定義情報をビジネスプロセス例外処理生成支援装置3から取得してBP定義記憶部11に書き込みを行う。
ビジネスプロセス実行部13は、BP定義情報にしたがって各ビジネスプロセスを実行する。
実行履歴管理部14は、ビジネスプロセス実行部13で実行される各処理を監視し、各処理の実行結果に基づいて実行履歴を作成して実行履歴記憶部15に出力する。また、実行履歴記憶部15から実行履歴を読み出して、これをビジネスプロセス例外処理生成支援装置3に出力する。
実行履歴記憶部15は、実行履歴を格納するハードディスクドライブである。
通信部16は、ネットワーク4に接続されてビジネスプロセス実行要求クライアント1およびビジネスプロセス例外処理生成支援装置3との間でデータの送受信を行うインタフェースである。
【0022】
ビジネスプロセス例外処理生成支援装置3は、例外処理が定義されていないBPにおいて実行されるべき例外処理を、過去の実行履歴を基に生成する装置であり、次の機能部により構成される。
実行履歴取得部18は、例外処理を生成するために必要なデータであるビジネスプロセスの実行履歴を、ビジネスプロセス実行エンジン2から取得する部分である。
再利用可能例外処理生成部19は、実行履歴を解析することにより再利用可能な例外処理の一覧を生成し、再利用可能例外処理記憶部23に出力する。
例外監視部20は、ビジネスプロセス実行エンジン2から実行履歴を取得して所定の部分を抽出し、例外処理定義生成部21へ送る。
例外処理定義生成部21は、例外処理が定義されていないBPで実行されるべき例外処理を生成するための解析・判断を行う部分である。
例外処理実行要求部22は、例外処理定義生成部21で生成された例外処理をビジネスプロセス実行エンジン2に実行させる部分である。
再利用可能例外処理記憶部23は、再利用可能例外処理生成部19で生成された一覧を格納するハードディスクドライブである。
通信部24は、ネットワーク4に接続されてビジネスプロセス実行要求クライアント1およびビジネスプロセス実行エンジン2との間でデータの送受信を行うインタフェースである。
【0023】
次に、上記のビジネスプロセス例外処理生成支援装置3を利用したシステムの動作を図2〜図4に示すフローチャートを参照して説明する。ここで、図2はメインとなる動作を示すものであり、図3および図4はその中のサブステップの動作を説明するものである。
図2のフローチャートに示すように、このシステムは大きく5つのステップに分かれて動作する。
【0024】
(1)ビジネスプロセス実行履歴の生成(ステップS1)
まず、ビジネスプロセス実行エンジン2は常時ビジネスプロセス実行要求クライアント1からの要求を受け付けており、要求は通信部16を経由してBP定義管理部12へ送られる。BP定義管理部12は、要求のあったビジネスプロセスが定義されたBPをBP定義記憶部11から読み出してBP実行部13へ出力する。BP実行部13は、このBPにしたがって順次処理を実行する。
BP実行部13は、各処理の実行が終わるとその実行結果を実行履歴管理部14へ出力する。ここで、出力される実行結果のデータには、ビジネスプロセス名、実行された処理名、正常処理/例外処理の区分、発生した例外名、等の情報が含まれる(図6参照)。実行履歴管理部14は、受け取った実行結果のデータをビジネスプロセス毎にまとめて実行履歴を作成し、実行履歴記憶部15に格納する。こうして、実行履歴は1つのビジネスプロセスが完了する度に更新され、一定の期間にわたって実行された全ビジネスプロセスの全処理内容とその結果が、実行履歴として実行履歴記憶部15に保存されることになる。
【0025】
ここで、以下に実行履歴が作成されるまでの具体例について説明する。
図5は、BP定義記憶部11に格納されているBPのBP定義情報を模式的に示した一例である。この模式図では、ビジネスプロセス1からビジネスプロセス6までの6つのビジネスプロセスに関するBP定義情報が記述されている。例えば、ビジネスプロセス1では、通常は処理A、処理B、処理Cの順に処理(正常処理)が実行されてビジネスプロセスが完了する。また、処理Bには例外(例外名をExceptionAとする)が関連付けられており、処理Bで例外「ExceptionA」が発生した場合には処理Cに進まず、例外処理Eが実行されてビジネスプロセスが完了する。
また、同様にビジネスプロセス2では、処理Bの後、所定の条件にしたがって分岐処理が行われ、分岐に応じて処理K、処理Yまたは処理X、処理Hの順に処理が実行される。また、処理K、処理Xにはそれぞれ例外処理Z、Gが関連付けられている。
【0026】
実際のビジネスプロセスの実行においては、上の説明のようにいくつもある正常処理、例外処理、分岐処理のルートのうち1つのルートだけが実現される。ここでは、ビジネスプロセス1では処理A、B、Eが、ビジネスプロセス2では処理B、K、Zが、それぞれ実際に実行されたとする。他のビジネスプロセスについても同様に、図5において実線の丸で表される処理からなるルートが実現されたとする(なお、実行されなかった処理は点線の丸で示している)。
【0027】
すると、これらのビジネスプロセスが実行されそれぞれの処理が完了することにより、図6に示す実行履歴の一例が作成されることになる。すなわち、ビジネスプロセス1が完了した際に、図6の実行履歴の1行目〜3行目が生成される。ここで、1行目のデータは処理A(正常処理)が実行されたことを示し、2行目のデータは処理B(正常処理)が実行されたが例外「ExceptionA」が発生したことを示し、3行目のデータは発生した例外に応じて例外処理Eが実行されたことを示す。また、その後ビジネスプロセス3(4〜6行目)、ビジネスプロセス6(7〜9行目)、ビジネスプロセス4(10〜14行目)等々が順次実行されることにより、実行履歴の更新(4行目以下の行の追加)が行われる。このようにして、図6の実行履歴が作成される。
【0028】
(2)例外が発生したビジネスプロセスの抽出(ステップS2)
図2のフローチャートに戻って動作の説明を続けると、次に実行履歴管理部14は、実行履歴記憶部15から実行履歴を読み出してビジネスプロセス例外処理生成支援装置3の実行履歴取得部18に出力する。この出力は、実行履歴が更新される度に(すなわち1つのビジネスプロセスが完了する度に)行われる。実行履歴取得部18は、受け取った実行履歴から例外が発生しなかったビジネスプロセスに関する行の部分を削除して実行履歴を更新し、再利用可能例外処理生成部19に出力する。
上記の実行履歴の一例の場合、ビジネスプロセス6については例外が発生することなく処理が完了しているので、このビジネスプロセス6に関する行(7〜9行目)だけが削除されて(他の行はそのまま)実行履歴が更新される。
【0029】
(3)再利用可能な例外処理の抽出(ステップS3)
次に、再利用可能例外処理生成部19は、ステップS2で更新された実行履歴(例外が発生したビジネスプロセスに関する実行履歴のみが記されている)を解析して、再利用可能な例外処理が抽出された一覧テーブルを作成する。この解析作業は以下のサブステップからなる。図3に示すフローチャートを参照してこれらを説明する。
【0030】
(3−1)有向グラフ一覧の作成(ステップS301)
まず、再利用可能例外処理生成部19は、ステップS2で更新された実行履歴を基にして有向グラフ一覧を作成する。ここで有向グラフとは、実際に実行された各ビジネスプロセスについて、実行された各処理を実行順に並べて矢印で結ぶことにより視覚化したものである。有向グラフの表現の方法はどのようなものであっても構わないが、ここでは正常処理を実線丸印、例外処理を点線丸印で表し、例外が発生した処理を示す丸印の右肩に発生した例外名を記すものとする。
【0031】
図7は、図6の実行履歴(ただしステップS2によりビジネスプロセス6に関する7〜9行目は削除されている)から作成される有向グラフ一覧を示したものである。例えば実行履歴の1〜3行目に記されるビジネスプロセス1からは、上段左端の有向グラフが作成される。
なお、実際の再利用可能例外処理生成部19の動作としては、上記のような有向グラフ(視覚的なデータ)を作成するのではなく、例えばビジネスプロセス1について、
[A、B(ExceptionA)、E]
のような形式で表現されるデータを作成することとしてもよい。以下の説明においては、有向グラフを上記のデータの形式に置き換えて説明を行うこととする。
【0032】
(3−2)基本セットの抽出(ステップS302)
次に、再利用可能例外処理生成部19は、ステップS301で作成した各有向グラフについて、例外が発生した処理名、発生した例外名、実行された例外処理名、の3点を一式とするデータ(以下、基本セットと呼ぶ)を抽出する。図7の有向グラフについて例示すると、ビジネスプロセス1の基本セットは
B、ExceptionA、E
となり、ビジネスプロセス3の基本セットは
H、ExceptionC、Z
となり、ビジネスプロセス4の基本セットは
B、ExceptionA、E
となり、ビジネスプロセス5の基本セットは
K、ExceptionB、Z
となり、ビジネスプロセス2の基本セットは
K、ExceptionB、Z
となり、2回目に実行されたビジネスプロセス1の基本セットは
B、ExceptionA、E
となる。なお、以下基本セットを表す時は、括弧内にその要素を列挙して(B、ExceptionA、E)のように記述することにする。
【0033】
(3−3)再利用可能例外処理一覧テーブルの作成(ステップS303)
次に、再利用可能例外処理生成部19は抽出したすべての基本セットを比較して、同一のものがあればその出現回数をカウントし、あらかじめ定めた最低出現回数以上のカウント数となった基本セットに対して、一意の名前(置換処理名)を付与する。ここで、最低出現回数はあらかじめ2回と定められているとする。すると、上記の基本セットについては、基本セット(B、ExceptionA、E)は出現回数が3回であるので置換処理名P1を付与し、基本セット(K、ExceptionB、Z)は出現回数が2回であるので置換処理名P2を付与し、基本セット(H、ExceptionC、Z)は出現回数が1回であるので置換処理名は付与しない。なお、最低出現回数の設定値は2に限定されることはなく、任意の数値に設定することが可能であり、この数値を調整することで発生頻度の高い基本セットのみを抽出できる。
【0034】
再利用可能例外処理生成部19は次に、置換処理名と基本セットと基本セットの出現回数とチェックフラグを一組のデータとする再利用可能例外処理一覧テーブル(以下、一覧テーブルと呼ぶ)を作成する。上記例の場合に作成される一覧テーブルは、図8に示すものとなる。ここで、基本セット(H、ExceptionC、Z)は置換処理名が付与されていないので一覧テーブルには登録されない。また、チェックフラグはこの段階ではすべて「false」に設定される。
【0035】
(3−4)有向グラフ一覧の更新(ステップS304)
次に、再利用可能例外処理生成部19は、各有向グラフにおいて基本セットをステップS303で付与した置換処理名に置き換え、有向グラフ一覧を更新する。図9は、図7の有向グラフ一覧が更新された結果を示したものである。ここで、基本セット(H、ExceptionC、Z)には置換処理名が付与されていないので、更新後の有向グラフ一覧にはこの基本セットを有するビジネスプロセス3の有向グラフは含まれないこととなる。
【0036】
(3−5)正常拡張対と例外拡張対の抽出(ステップS305)
次に、再利用可能例外処理生成部19は、一覧テーブルのチェックフラグ欄が「false」である行の置換処理名をすべて選び出す。上記の具体例においては、この段階ではステップS303でチェックフラグはすべての行が「false」に設定されたので、すべての置換処理名すなわちP1とP2が選び出される。
再利用可能例外処理生成部19は次に、ステップS304で更新した各有向グラフに対して、選び出した置換処理名と当該置換処理の後に実行された例外処理名の対(例外拡張対)、および選び出した置換処理名と当該置換処理の前に実行された正常処理の対(正常拡張対)を抽出する。
【0037】
上記具体例においては、
ビジネスプロセス1の正常拡張対(A、P1)と、
ビジネスプロセス4の正常拡張対(X、P1)と、
ビジネスプロセス4の例外拡張対(P1、F)と、
ビジネスプロセス5の正常拡張対(X、P2)と、
ビジネスプロセス2の正常拡張対(B、P2)と、
2回目に実行されたビジネスプロセス1の正常拡張対(A、P1)の計6つの拡張対が抽出される。なおここで、基本セットの表記と同様にカッコ内に要素を列挙することによって拡張対を記述することとする。
【0038】
(3−6)一覧テーブルへの正常/例外拡張対の登録(ステップS306)
次に、再利用可能例外処理生成部19は、ステップS303においてある一定回数以上出現する基本セットに対して一意の名前を付与する操作を行ったのと同様に、ここではステップS305で抽出した正常拡張対と例外拡張対それぞれの出現する回数があらかじめ定めた最低出現回数以上であれば、その拡張対に対して一意の名前(置換処理名)を付与する。上記具体例では、正常拡張対(A、P1)は2回、その他の拡張対はすべて1回出現している。ここで最低出現回数は2回と定められているとすると、2回出現している正常拡張対(A、P1)についてのみ置換処理名(P3とする)が付与されることになる。なお、最低出現回数の値は、ステップS303とステップS306とで異なっていてもよい。
【0039】
再利用可能例外処理生成部19は次に、付与した置換処理名とそれに対応する正常または例外拡張対とその出現回数とチェックフラグを一組のデータとして一覧テーブルに追加して登録する(ステップS303で基本セットについて行ったのと同様の操作である)。この時、追加されるのが正常拡張対の場合は、さらに当該正常拡張対を構成する正常処理名(正常拡張対が(A、P1)のときは「A」)を「正常処理の順序」の欄の最後部に付加する。また、例外拡張対の場合は、当該例外拡張対を構成する例外処理名を「例外処理の順序」の欄の先頭に付加する。
このステップS306によって更新された一覧テーブルを図10に示す。3行目のデータがこのステップで追加された部分である。
【0040】
(3−7)有向グラフ一覧の再更新(ステップS307)
次に、再利用可能例外処理生成部19は、ステップS304と同様に、各有向グラフの正常拡張対または例外拡張対をステップS306で付与した置換処理名に置き換え、有向グラフ一覧を更新する。上記の具体例においては、正常拡張対(A、P1)だけが置換処理名を付与されているので置き換えが行われ、他の拡張対は有向グラフ一覧からは削除される。
再更新後の有向グラフ一覧を図11に示す。上記具体例の有向グラフは、このステップの結果、置換処理名P3のみから構成されるもの(1回目に実行されたビジネスプロセス1から生成されたものと、2回目に実行されたビジネスプロセス1から生成されたものとの2つある)となる。このように、1つの置換処理名のみの有向グラフになった場合は、一覧テーブルのチェックフラグを「true」に変える。
有向グラフにまだ置換処理名以外の要素が含まれる場合は、ステップS305からの操作をすべての有向グラフの要素数が1つになるまで繰り返す。
【0041】
(3−8)一覧テーブルの保存(ステップS308)
再利用可能例外処理生成部19は、最終的に得られた一覧テーブルを再利用可能例外処理記憶部23に出力し、同記憶部23に一覧テーブルが格納される。上記例における最終的な一覧テーブルを図12に示す。
【0042】
(4)例外処理未記述BPの抽出(ステップS4)
ここでステップS3のサブステップからメインの動作に戻る。再び図2のフローチャートを参照しながら説明する。
BP実行部13は、前述したようにステップS1において、ビジネスプロセス実行要求クライアント1から要求を受け付けたビジネスプロセスの処理を実行している。ステップS4(とステップS5)は、ビジネスプロセスのいずれかに例外が発生し、しかも当該例外に対応する例外処理がBPに定義されていない場合(このようなBPを例外処理未記述BPと呼ぶ)に行われるステップである。
【0043】
このような場合にステップS1で作成される実行履歴の一例を図13に示す。この実行履歴において、ビジネスプロセス12(7〜8行目)が例外処理未記述BPに相当する。なおこの実行履歴に示されるように、例外が発生した処理Bに対しては例外処理が行われず、ビジネスプロセス12の実行は中断されている。
図2のステップS4において、実行履歴管理部14は、例外処理未記述BPにより定義されるビジネスプロセスが実行されてその結果が実行履歴に記録されると、ビジネスプロセス例外処理生成支援装置3の例外監視部20にその実行履歴を出力する。例外監視部20は、実行履歴の最後部(上記例では7〜8行目)に記録されている例外処理未記述BPに相当する実行結果部分を抽出し、例外処理定義生成部21に送る。
【0044】
(5)例外処理の決定と実行(ステップS5)
次に例外処理定義生成部21は、送られた実行結果を用い、図4のフローチャートに示されたサブステップにしたがって例外処理未記述BPに付加されるべき例外処理を生成する。以下、図4を参照して説明する。
【0045】
(5−1)対象有向グラフと有向グラフ群の作成(ステップS501)
例外処理定義生成部21は、例外監視部20から受けた例外処理未記述BPによる実行結果のデータから、実行結果に対応する有向グラフ(この有向グラフを対象有向グラフと呼ぶ)を作成する。上記例(図13)の実行結果からは、対象有向グラフ[A、B(ExceptionA)]が得られる。
また、例外処理定義生成部21は、再利用可能例外処理記憶部23から一覧テーブル(図12)を取得し、テーブル内の例外発生処理名、発生例外名、正常処理名からなる有向グラフを、すべての置換処理名に対して作成する。作成された有向グラフを総称して有向グラフ群と呼ぶ。図12の一覧テーブルからは、[B(ExceptionA)]、[K(ExceptionB)]、[A、B(ExceptionA)]の3つの有向グラフからなる有向グラフ群が得られる。
【0046】
(5−2)例外発生処理の比較(ステップS502)
ステップS501で作成した対象有向グラフと有向グラフ群はともに、ビジネスプロセスを構成する処理のうち例外が発生するまでの処理に着目したものである。したがって両者の有向グラフを比較することにより、過去に実行された複数のビジネスプロセス(有向グラフ群)の中から、例外処理未定義BP(対象有向グラフ)を構成している処理と同一の処理を有するものを選出することができる。このステップS502と次のステップS503により、上記の選出が行われる。
まず例外処理定義生成部21は、対象有向グラフの例外およびその例外が発生した処理の組み合わせと、各有向グラフの例外およびその例外が発生した処理の組み合わせとを比較して、対象有向グラフの組み合わせと同一の組み合わせを有する有向グラフを有向グラフ群から選び出す。上記の例では、対象有向グラフの例外は「ExceptionA」であり、例外が発生した処理は「B」であるから、同じ組み合わせを有する有向グラフ[B(ExceptionA)]と[A、B(ExceptionA)]の2つが選ばれる。
【0047】
(5−3)例外発生処理に先行する正常処理の比較(ステップS503)
次に、例外処理定義生成部21は選ばれた有向グラフと対象有向グラフについて、例外発生処理の1つ前に先行して実行された正常処理を比較し、当該正常処理が対象有向グラフと同一である有向グラフを有向グラフ群から選び出す。
さらに例外処理定義生成部21は、同様にして例外発生処理の2つ前の正常処理が対象有向グラフと同一である有向グラフを有向グラフ群から選び出す。以下、例外発生処理の3つ前、4つ前、と同様の操作を比較される正常処理が一致しなくなるまで繰り返す。この操作の結果、最終的に対象有向グラフと最も近似している(例外発生処理とそれに先行するいくつかの正常処理が同一である)有向グラフが選び出されることになる。
【0048】
なお、この操作により選出される有向グラフが複数存在する場合がある。すなわち、発生した例外と、例外発生処理と、該処理に先行して実行された正常処理が一致し、発生した例外に対応する例外処理のみが異なる場合である。このような場合は、複数の有向グラフを選出結果とする。
このステップの操作を上記の例に当てはめると、ステップS502で選ばれた2つの有向グラフ[B(ExceptionA)]と[A、B(ExceptionA)]の例外発生処理は「B」であり、この「B」の1つ前に先行する正常処理は、前者には無く、後者は「A」である。よって、操作の1段階目では後者の有向グラフ[A、B(ExceptionA)]が選ばれる。次に例外発生処理「B」の2つ前の正常処理は無いので、操作はここで終了する。こうして、上記例では対象有向グラフと最も近似している有向グラフとして[A、B(ExceptionA)]が選出される。
【0049】
(5−4)対応する例外処理の有向グラフの作成(ステップS504)
次に、例外処理定義生成部21は、ステップS503で選出された有向グラフに対応する置換処理が記述されている行を一覧テーブルから取り出し、「例外処理の順序」の欄に書かれた例外処理を表す有向グラフを作成する。ステップS503の選出結果が複数となった場合は、それぞれについて有向グラフを作成する。上記例では、対応する置換処理はP3であり、これから有向グラフ[E]が作成される。
作成された有向グラフが複数の場合は、例外処理定義生成部21はさらに、得られた複数の有向グラフのデータをビジネスプロセス実行要求クライアント1へ送信し、同クライアント1の操作者に選択を促す。操作者が1つの有向グラフを決定すると、例外処理定義生成部21は同クライアント1から当該有向グラフのデータを取得する(ステップS510、ステップS511)。
なお、有向グラフが複数の場合、上記のようにビジネスプロセス実行要求クライアントの操作者に選択させる代わりに、例外処理定義生成部21がランダムに1つの有向グラフを選択してもよい。また、一覧テーブルにおいて出現回数が最も多い有向グラフを選択するようにしてもよい。
【0050】
(5−5)付加すべき例外処理の決定とBP定義情報の作成(ステップS505)
例外処理定義生成部21は、例外処理未記述BPに付加すべき例外処理として、ステップS504またはステップS511で作成された有向グラフに対応する例外処理(上記例では例外処理E)を採用し、当該例外処理を記述するBP定義情報を作成する。以上により、例外処理が定義されていなかったBPにおいて実行すべき処理の内容が確定する。
【0051】
(5−6)付加された例外処理の実行(ステップS506)
例外処理定義生成部21は、上記ステップで作成したBP定義情報を例外処理実行要求部22へ出力し、例外処理実行要求部22は、受け取ったBP定義情報に基づいて例外処理の実行要求をビジネスプロセス実行エンジン2のBP実行部13に出力する。これにより、BP実行部13はステップS4で中断されたビジネスプロセスを続行させる。
【0052】
このように、上記の実施形態によれば、例外処理未記述BPが実行されて対応する例外処理が定義されていない例外が発生した場合に、破綻を来たすことなくビジネスプロセスを続行することが可能となる。すなわち、まずビジネスプロセス例外処理生成支援装置3が過去の実行履歴を解析して、再利用可能な(発生頻度の高い)例外処理の一覧が自動生成される。さらに、ビジネスプロセス例外処理生成支援装置3は、生成した例外処理一覧の中から例外処理未記述BPにおいて実行すべき最適な例外処理を抽出し、抽出された例外処理が実行されることによりビジネスプロセスが中断することなく続行される。
【0053】
また上記実施形態によれば、先行して行われた処理に応じて異なる例外処理を実行することができる。すなわち、ビジネスプロセス例外処理生成支援装置3は、例外が発生した処理に至るまでの先行処理を過去の実行履歴と比較することにより実行すべき例外処理を決定するので、当該先行処理が異なれば抽出される例外処理も異なる。したがって、先行処理に応じて異なる例外処理を実行させることが可能となるのである。
【0054】
以上、この発明の実施の形態を詳細に説明してきたが、この発明を実施するに当たっては、発明の要旨を変更しない範囲内において様々な変形・設計変更が可能である。
例えば、図1のシステム構成に代わる別のシステム構成として、図17に示すような形態を採ることも可能である。すなわち、図1のシステムではビジネスプロセス実行エンジン2がビジネスプロセス実行部13を有しており、同エンジン2(を実装しているコンピュータ)がビジネスプロセスの実行を担当していたが、図17に示すように、同エンジン2はBP定義管理と実行履歴管理の機能だけを有し、ネットワーク4で接続された別のコンピュータであるビジネスプロセス実行サーバ5〜7がビジネスプロセスの実行を担当するようにしてもよい。
【0055】
また逆に、図1や図17のようにビジネスプロセス実行エンジン2とビジネスプロセス例外処理生成支援装置3とビジネスプロセス実行サーバ5〜7が別個のコンピュータとしてネットワーク4に接続されているシステムに代えて、これらが全て同一のコンピュータとして構成されている形態を採ってもよい。
なお図17のシステム構成において、ビジネスプロセス実行エンジン2やビジネスプロセス例外処理生成支援装置3の運用者は、ビジネスプロセス実行サーバ5〜7の運用者と同じであっても異なっていてもよい。すなわち、本発明は企業間のシステム連携にも企業内のシステム連携にも同じように適用することが可能である。
【0056】
また、上記の実施形態では、ビジネスプロセスが実行されている最中に例外処理未記述BPに対して最適な例外処理を抽出する動作について説明を行ったが、BPを記述する場面(ワンストップサービスのシステムを構築する場面)において、本発明にかかるビジネスプロセス例外処理生成支援装置3を動作させ、BP記述者に代わって例外処理の記述を行わせるという使い方をすることもできる。
【産業上の利用可能性】
【0057】
この発明は、ビジネスプロセス実行エンジンを利用してアプリケーション連携を実現する、ワンストップサービスのシステムに用いて好適である。
【図面の簡単な説明】
【0058】
【図1】この発明の一実施の形態によるビジネスプロセス例外処理生成支援装置3が利用されたシステム全体の構成を示す機能ブロック図である。
【図2】ビジネスプロセス例外処理生成支援装置3を利用したシステムのメインの動作を示すフローチャートである。
【図3】図2に示すメインの動作中のサブステップの動作を示すフローチャートである。
【図4】図2に示すメインの動作中のサブステップの動作を示すフローチャートである。
【図5】BP定義情報の一例を模式的に示した図である。
【図6】実行履歴の一例を示したものである。
【図7】図6の実行履歴から作成される有向グラフ一覧を示した図である。
【図8】図7の有向グラフ一覧から作成された再利用可能例外処理一覧テーブルを示したものである。
【図9】図7の有向グラフ一覧の更新結果を示した図である。
【図10】図8の再利用可能例外処理一覧テーブルの更新結果を示した図である。
【図11】図9の有向グラフ一覧が再更新された結果を示した図である。
【図12】最終的な再利用可能例外処理一覧テーブルを示す図である。
【図13】例外処理未記述BPが実行された場合の実行履歴の一例を示したものである。
【図14】ビジネスプロセス実行エンジンが使われた従来のシステムの一例を示す概念図である。
【図15】例外処理が記述されているBPの一例を模式的に示した図である。
【図16】例外処理が記述されているBPの一例を模式的に示した図である。
【図17】この発明の一実施の形態によるビジネスプロセス例外処理生成支援装置3が利用された別のシステム全体の構成を示す機能ブロック図である。
【符号の説明】
【0059】
1…ビジネスプロセス実行要求クライアント 2…ビジネスプロセス実行エンジン 3…ビジネスプロセス例外処理生成支援装置 4…ネットワーク 5〜7…ビジネスプロセス実行サーバ 11…BP定義記憶部 12…BP定義管理部 13…ビジネスプロセス実行部 14…実行履歴管理部 15…実行履歴記憶部 16…通信部 18…実行履歴取得部 19…再利用可能例外処理生成部 20…例外監視部 21…例外処理定義生成部 22…例外処理実行要求部 23…再利用可能例外処理記憶部 24…通信部 101…ビジネスプロセス実行エンジン 102−1〜102−3…ビジネスプロセス実行サーバ 103…ネットワーク 104…BP 105…ビジネスプロセス実行要求クライアント(ユーザ端末) 107−1〜107−4…正常処理 108〜110…例外処理 113…処理 114…例外処理 115…処理
【特許請求の範囲】
【請求項1】
ビジネスプロセスを実行するビジネスプロセス実行エンジンにおける例外処理の実行を支援するビジネスプロセス例外処理生成支援装置であって、
前記ビジネスプロセス実行エンジンによって実行されたビジネスプロセスの実行履歴を取得する実行履歴取得部と、
取得した実行履歴から、ビジネスプロセスで発生した例外と該例外に関連する処理の組み合わせを所定の規則にしたがって抽出して、再利用可能な例外処理の一覧テーブルを生成する再利用可能例外処理生成部と、
前記一覧テーブルを格納する再利用可能例外処理記憶部と、
前記ビジネスプロセス実行エンジンにおけるビジネスプロセスの実行過程において例外が発生し、該例外に対応する例外処理が前記ビジネスプロセス実行エンジンに定義されていない場合に、所定の規則にしたがって前記一覧テーブルから例外処理を抽出する例外処理定義生成部と、
該例外に対応する例外処理として前記抽出した例外処理を前記ビジネスプロセス実行エンジンに実行させる例外処理実行要求部と、
を具備することを特徴とするビジネスプロセス例外処理生成支援装置。
【請求項2】
前記再利用可能例外処理生成部は、
前記ビジネスプロセス実行エンジンから取得した実行履歴において前記例外と該例外に関連する処理の組み合わせの出現回数が所定回数以上の場合に、該組み合わせの抽出を行うことを特徴とする請求項1に記載のビジネスプロセス例外処理生成支援装置。
【請求項3】
前記例外処理定義生成部は、
対象となるビジネスプロセスで発生した例外と該例外が発生した処理からなる組み合わせが一致し、且つ該処理に先行して行われた少なくとも1つの処理が一致するビジネスプロセスを前記一覧テーブルから選択し、選択したビジネスプロセスの例外処理を該例外に対応する例外処理として抽出することを特徴とする請求項1または請求項2に記載のビジネスプロセス例外処理生成支援装置。
【請求項4】
前記例外処理定義生成部は、
前記一覧テーブルから複数のビジネスプロセスを選択し、該ビジネスプロセスの複数の例外処理からユーザの選択により1つの例外処理を抽出することを特徴とする請求項3に記載のビジネスプロセス例外処理生成支援装置。
【請求項5】
ビジネスプロセスを実行するビジネスプロセス実行エンジンにおける例外処理の実行を支援するコンピュータに、
前記ビジネスプロセス実行エンジンによって実行されたビジネスプロセスの実行履歴を取得するステップと、
取得した実行履歴から、ビジネスプロセスで発生した例外と該例外に関連する処理の組み合わせを所定の規則にしたがって抽出して、再利用可能な例外処理の一覧テーブルを生成するステップと、
前記一覧テーブルを格納するステップと、
前記ビジネスプロセス実行エンジンにおけるビジネスプロセスの実行過程において例外が発生し、該例外に対応する例外処理が前記ビジネスプロセス実行エンジンに定義されていない場合に、所定の規則にしたがって前記一覧テーブルから例外処理を抽出するステップと、
該例外に対応する例外処理として前記抽出した例外処理を前記ビジネスプロセス実行エンジンに実行させるステップと、
を実行させるためのビジネスプロセス例外処理生成支援プログラム。
【請求項1】
ビジネスプロセスを実行するビジネスプロセス実行エンジンにおける例外処理の実行を支援するビジネスプロセス例外処理生成支援装置であって、
前記ビジネスプロセス実行エンジンによって実行されたビジネスプロセスの実行履歴を取得する実行履歴取得部と、
取得した実行履歴から、ビジネスプロセスで発生した例外と該例外に関連する処理の組み合わせを所定の規則にしたがって抽出して、再利用可能な例外処理の一覧テーブルを生成する再利用可能例外処理生成部と、
前記一覧テーブルを格納する再利用可能例外処理記憶部と、
前記ビジネスプロセス実行エンジンにおけるビジネスプロセスの実行過程において例外が発生し、該例外に対応する例外処理が前記ビジネスプロセス実行エンジンに定義されていない場合に、所定の規則にしたがって前記一覧テーブルから例外処理を抽出する例外処理定義生成部と、
該例外に対応する例外処理として前記抽出した例外処理を前記ビジネスプロセス実行エンジンに実行させる例外処理実行要求部と、
を具備することを特徴とするビジネスプロセス例外処理生成支援装置。
【請求項2】
前記再利用可能例外処理生成部は、
前記ビジネスプロセス実行エンジンから取得した実行履歴において前記例外と該例外に関連する処理の組み合わせの出現回数が所定回数以上の場合に、該組み合わせの抽出を行うことを特徴とする請求項1に記載のビジネスプロセス例外処理生成支援装置。
【請求項3】
前記例外処理定義生成部は、
対象となるビジネスプロセスで発生した例外と該例外が発生した処理からなる組み合わせが一致し、且つ該処理に先行して行われた少なくとも1つの処理が一致するビジネスプロセスを前記一覧テーブルから選択し、選択したビジネスプロセスの例外処理を該例外に対応する例外処理として抽出することを特徴とする請求項1または請求項2に記載のビジネスプロセス例外処理生成支援装置。
【請求項4】
前記例外処理定義生成部は、
前記一覧テーブルから複数のビジネスプロセスを選択し、該ビジネスプロセスの複数の例外処理からユーザの選択により1つの例外処理を抽出することを特徴とする請求項3に記載のビジネスプロセス例外処理生成支援装置。
【請求項5】
ビジネスプロセスを実行するビジネスプロセス実行エンジンにおける例外処理の実行を支援するコンピュータに、
前記ビジネスプロセス実行エンジンによって実行されたビジネスプロセスの実行履歴を取得するステップと、
取得した実行履歴から、ビジネスプロセスで発生した例外と該例外に関連する処理の組み合わせを所定の規則にしたがって抽出して、再利用可能な例外処理の一覧テーブルを生成するステップと、
前記一覧テーブルを格納するステップと、
前記ビジネスプロセス実行エンジンにおけるビジネスプロセスの実行過程において例外が発生し、該例外に対応する例外処理が前記ビジネスプロセス実行エンジンに定義されていない場合に、所定の規則にしたがって前記一覧テーブルから例外処理を抽出するステップと、
該例外に対応する例外処理として前記抽出した例外処理を前記ビジネスプロセス実行エンジンに実行させるステップと、
を実行させるためのビジネスプロセス例外処理生成支援プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2006−302032(P2006−302032A)
【公開日】平成18年11月2日(2006.11.2)
【国際特許分類】
【出願番号】特願2005−123953(P2005−123953)
【出願日】平成17年4月21日(2005.4.21)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【公開日】平成18年11月2日(2006.11.2)
【国際特許分類】
【出願日】平成17年4月21日(2005.4.21)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
[ Back to top ]