(57)【要約】【課題】サービスがキャンセル不可状態に遷移した後にＢＰを取り消す、という事象が発生する回数を削減して、システム全体の性能低下を防ぎ、コストを低くすることができる技術を提供する。【解決手段】本ビジネスプロセス管理方法及びシステムでは、サービスのキャンセルコストの期待値と、サービスがキャンセル可能状態を維持するためのコストと、に基づいて、キャンセル要求を受け付ける期限（Ｔｃ）を算出し、その期限の間、サービスがキャンセル処理を提供する。【選択図】図３
2008276641.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のコンピュータ上において業務の一連の流れを示すビジネスプロセスに従い当該業務を実行するためのサービスを呼び出すビジネスプロセス管理方法であって、
前記コンピュータが行う処理において、
前記サービスのキャンセル処理を受け付けるキャンセル可能状態となる第１の期限を設定する第１の処理ステップと、
前記第１の期限を経過するまで、該当ビジネスプロセスが呼び出した該当サービスの処理が更新もしくは参照したデータをロックする第２の処理ステップと、
前記サービスのキャンセル要求を受けた際に前記第１の期限の経過の判断に従って当該サービスのキャンセル処理の実行の可否を判定し、前記第１の期限が経過していない場合に当該サービスのキャンセル処理を実行する第３の処理ステップと、を有すること、を特徴とするビジネスプロセス管理方法。
【請求項２】
請求項１記載のビジネスプロセス管理方法において、
前記第１の処理ステップでは、前記サービスのキャンセルコストの期待値と、前記サービスがキャンセル可能状態を維持するためのコストと、に基づいて、前記ビジネスプロセスの取り消しに関するコストが最小となるような前記第１の期限を設定すること、を特徴とするビジネスプロセス管理方法。
【請求項３】
１つ以上のコンピュータ上において業務の一連の流れを示すビジネスプロセスに従い当該業務を実行するためのサービスを呼び出すビジネスプロセス管理システムであって、
前記サービスのキャンセル処理を受け付けるキャンセル可能状態となる第１の期限を設定し管理する第１の手段と、
前記第１の期限を経過するまで該当ビジネスプロセスが呼び出した該当サービスの処理が更新もしくは参照したデータをロックする第２の手段と、
前記サービスのキャンセル要求を受けた際に前記第１の期限の経過の判断に従って当該サービスのキャンセル処理の実行の可否を判定し、前記第１の期限が経過していない場合に当該サービスのキャンセル処理を実行する第３の手段と、を有すること、を特徴とするビジネスプロセス管理システム。
【請求項４】
請求項３記載のビジネスプロセス管理システムにおいて、
前記第１の手段は、前記サービスのキャンセルコストの期待値と、前記サービスがキャンセル可能状態を維持するためのコストと、に基づいて、前記ビジネスプロセスの取り消しに関するコストが最小となるような前記第１の期限を設定すること、を特徴とするビジネスプロセス管理システム。
【請求項５】
請求項４記載のビジネスプロセス管理システムにおいて、
前記第１の手段は、前記ビジネスプロセスの取り消しに関するコストを、前記サービスのキャンセルコストの期待値と、前記サービスがキャンセル可能状態を維持するためのコストと、の加算値により見積もること、を特徴とするビジネスプロセス管理システム。
【請求項６】
請求項４記載のビジネスプロセス管理システムにおいて、
前記第１の手段は、
前記ビジネスプロセスの進捗状況と、前記ビジネスプロセスの処理フローのアクティビティ遷移確率と、前記サービスの処理成功確率と、に基づいて、前記ビジネスプロセスの処理フロー別の当該ビジネスプロセスの取り消しの発生確率を算出し、
前記ビジネスプロセスの進捗状況と、前記サービスの平均処理時間と、に基づいて、前記ビジネスプロセスの処理フローに記載されている最後のアクティビティの処理の開始及び完了の予定時間を算出し、
前記サービスを提供するサーバまたはその計算機が前記キャンセル処理を実行するのにかかるキャンセル実行コストと、前記キャンセル処理が実行できない場合に前記サービスの効果を取り消すためにかかる運用対処コストと、を用いて、前記サービスのキャンセルコストの期待値を算出すること、を特徴とするビジネスプロセス管理システム。
【請求項７】
請求項３記載のビジネスプロセス管理システムにおいて、
前記第１の手段は、前記ビジネスプロセスの処理を要求したクライアントまたはその計算機ごとに、前記第１の期限を設定または変更すること、を特徴とするビジネスプロセス管理システム。
【請求項８】
請求項３記載のビジネスプロセス管理システムにおいて、
前記第１の手段は、前記ビジネスプロセスの処理の途中で前記第１の期限を再設定する手段を有すること、を特徴とするビジネスプロセス管理システム。
【請求項９】
請求項８記載のビジネスプロセス管理システムにおいて、
前記ビジネスプロセスの進捗状況と、前記サービスの平均処理時間と、に基づいて、前記ビジネスプロセスの処理フローに記載されている最後のアクティビティの処理の開始及び完了の予定時間を算出する手段を有し、
前記第１の期限を再設定する手段は、前記ビジネスプロセスの進捗状況が、前記開始及び完了の予定時間と比較して異なっていた場合に、前記ビジネスプロセスの取り消しに関するコストが最小となるような前記第１の期限を再設定すること、を特徴とするビジネスプロセス管理システム。
【請求項１０】
１つ以上のコンピュータ上において業務の一連の流れを示すビジネスプロセスに従い当該業務を実行するためのサービスを呼び出すビジネスプロセス管理システムであって、
前記ビジネスプロセスを管理する１つ以上の第１のサーバと、前記サービスを提供する１つ以上の第２のサーバと、が通信接続され、
前記第１のサーバは、前記第２のサーバとの通信をもとに、前記サービスのキャンセル処理を受け付けるキャンセル可能状態となる第１の期限を、前記サービスのキャンセルコストの期待値と、前記サービスがキャンセル可能状態を維持するためのコストと、の算出に基づいて、前記ビジネスプロセスの取り消しに関するコストが最小となるように、設定及び管理する処理を行い、
前記第２のサーバは、前記第１の期限を経過するまで、該当ビジネスプロセスが呼び出した該当サービスの処理が更新もしくは参照したデータをロックする処理と、前記第１のサーバから前記サービスのキャンセル要求を受けた際に前記第１の期限の経過の判断に従って当該サービスのキャンセル処理の実行の可否を判定し、前記第１の期限が経過していない場合に当該サービスのキャンセル処理を実行する処理と、を行うこと、を特徴とするビジネスプロセス管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、金融・流通・産業などの企業内もしくは企業間の連携におけるビジネスプロセス管理の技術に関し、特に、サービスのキャンセル処理に関する。
【背景技術】
【０００２】
業務設計者の設計したビジネスプロセス（ＢＰと略す）を管理する方法及びシステムにおいて、障害などによりＢＰを取り消す場合、補償トランザクションを利用することが多い。補償トランザクションとは、ＢＰ実行によって実行されたサービス（ＳＶと略す）の効果を取り消すキャンセル処理を実行することである。例えば、口座管理で１００００円入金した場合、残高から１００００円減額し、入金の履歴も削除する。
【０００３】
上記のような技術に関して、非特許文献１や２に記載されている。
【非特許文献１】WS-Transaction 仕様書、＜ＵＲＬ：http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/ws-transaction.asp＞、2002
【非特許文献２】ＳＯＡ大全、ディルク・クラフツィック著、２００５、日経ＢＰ社
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来、補償トランザクションを利用してＢＰを取り消す場合、或る更新処理がキャンセル可能状態からキャンセル不可状態に遷移した後で、該当する更新処理をキャンセルする場合、運用で対処せざるを得なくなり、コストが膨大になる可能性があった。これに対する解決策案として、ＢＰ管理システムがＢＰ完了を各サービスに通知するまで、サービスがキャンセル可能状態を維持するというものが挙げられる。しかし、この場合、ＢＰ管理サーバの通知をサービスが取得するまで、いつまでもサービスが待機状態となってしまい、他のＢＰの処理が実行できないため、システム全体の性能が低下する恐れがある。
【０００５】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、サービスがキャンセル不可状態に遷移した後にＢＰを取り消す（サービスをキャンセルする）、という事象が発生する回数を削減して、システム全体の性能低下を防ぎ、コストを低くすることができる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。前記目的を達成するために、本発明は、１つ以上のコンピュータ上において業務の一連の流れを示すＢＰに従い当該業務を実行するサービスを呼び出すＢＰ管理の技術であって、以下に示す構成を有することを特徴とする。
【０００７】
本ＢＰ管理方法及びシステムでは、サービスのキャンセルのコストの期待値（第１の期待値：Ｅ１）と、サービスがキャンセル可能状態を維持するためのコスト（第１のコスト：Ｃ１）と、に基づいて、キャンセル要求（サービスのキャンセル処理）を受け付ける第１の期限（キャンセル期限：Ｔｃ）を算出し、その期限（Ｔｃ）の間、サービスがキャンセル処理を提供すること、を特徴とする。
【０００８】
本システムは、例えば、第１の期限（Ｔｃ）を設定し管理する第１の手段と、第１の期限（Ｔｃ）を経過するまで該当する処理が更新もしくは参照したデータをロックする第２の手段と、サービスのキャンセル要求を受けた際に第１の期限（Ｔｃ）の経過の判断に従って当該サービスのキャンセル処理の実行の可否を判定し、第１の期限（Ｔｃ）が経過していない場合に当該サービスのキャンセル処理を実行する第３の手段と、を有する。また、第１の手段では、Ｅ１とＣ１を加算すること等により、ビジネスプロセスの取り消しに関するコストを算出（見積もり）し、それが最小となるように、第１の期限を設定する。
【発明の効果】
【０００９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明によれば、サービスがキャンセル不可状態に遷移した後にＢＰを取り消す、という事象が発生する回数を削減して、システム全体の性能低下を防ぎ、コストを低くすることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００１１】
＜前提技術＞
まず、本発明に対する前提技術及び問題点について、詳しくは以下である。前記補償トランザクションでは、メソッドコールからキャンセルの間に、同じリソースに対する参照や更新処理があった場合に矛盾が生ずる可能性がある、という問題点が発生する。それに関して、図１６に例を示す。
【００１２】
図１６において、商品の注文を受け付けるＢＰである商品注文受付ＢＰ（第１ＢＰ）１０１、注文票を管理するサービスである注文票管理サービス（第１ＳＶ）１０２、顧客の口座から商品購買にかかる費用を引き落とすサービスである口座引落サービス（第２ＳＶ）１０３、及び商品を発注するＢＰである商品発注ＢＰ（第２ＢＰ）１０４を有する。商品注文受付ＢＰ（第１ＢＰ）１０１が、注文票管理サービス（第１ＳＶ）１０２に、注文票を登録し（第１ＳＶ実行）、また、口座引落サービス（第２ＳＶ）１０３に、処理（口座引き落とし）を要求（第２ＳＶ要求）している。一方、別に稼動している商品発注ＢＰ（第２ＢＰ）１０４が、登録された注文票に基づいて商品を発注する場合である。このような前提において問題が発生する場合の処理シーケンス例を示している。以下、Ｓは処理ステップを表す。
【００１３】
この例では、Ｓ１６１で、商品注文受付ＢＰ（第１ＢＰ）１０１は、注文票管理サービス（第１ＳＶ）１０２に、例えば商品を１０個購買するという内容（ｘ＝ｘ＋１０）の注文票を登録する。Ｓ１６２，Ｓ１６３で、商品発注ＢＰ（第２ＢＰ）１０４は、注文票管理サービス（第１ＳＶ）１０２から、その注文票のデータを参照している（商品数参照要求及び結果返答（ｘ＝１０））。
【００１４】
この状況下において、Ｓ１６４，Ｓ１６５で、商品注文受付ＢＰ（第１ＢＰ）１０１から処理要求（口座引き落とし要求）を受けた口座引落サービス（第２ＳＶ）１０３の処理が失敗し（失敗返答）、Ｓ１６６で、商品注文受付ＢＰ（第１ＢＰ）１０１を取り消し（即ち第１ＳＶをキャンセル）したい場合を考える。Ｓ１６６で、商品注文受付ＢＰ（第１ＢＰ）１０１から注文票管理サービス（第１ＳＶ）１０２に、前記１０個の商品の購買をキャンセルするという内容（ｘ＝ｘ−１０）のキャンセル要求（サービスキャンセル処理要求）を発行する。しかし、第１ＳＶ１０２で当該キャンセル処理を実行すると第２ＢＰ１０４で矛盾が発生するため（換言すれば第２ＢＰ１０４実行後のため）、当該キャンセル処理を実行することはできず、Ｓ１６７でキャンセル不可を応答することになる。
【００１５】
上記のような事態が発生した場合、現状（従来）では、運用により対処せざるを得なくなり、ＢＰを取り消すためのコストが膨大となる。ここで、運用での対処とは、サービスの管理者がデータベースを直接修正するといった、システム管理者に閉じた対処や、商品注文の発注者が違約金を支払うといった、業務の観点を含めた対処などである。
【００１６】
上記問題点は、図１６のように複数のＢＰが同じサービスを同時に実行するという状況下でキャンセル処理を実行する場合に発生するものである。ここで、サービスがキャンセル要求を受け付けることができる状態を「キャンセル可能状態」、サービスがキャンセル要求を受け付けることができない状態を「キャンセル不可状態」と称する。例えば、図１６の例では、第１ＢＰ１０１に対する第１ＳＶ１０２にとって、キャンセル可能状態は、第２ＢＰ１０４が実行される前（Ｓ１６３以前）に相当し、キャンセル不可状態は、第２ＢＰ１０４が実行された後（Ｓ１６３以後）に相当する。
【００１７】
上記問題点の解決策案として、キャンセル要求が発生しないことが確認されるまで、別ＢＰによるデータの参照や取消不可能な処理（更新処理）を行わない、というものが挙げられる。例えば、ＢＰがサービスにキャンセル要求が発生しないことを通知するまで、サービスがキャンセル不可状態となる処理を実行しない、などである。この方法は、２フェーズコミットプロトコルと同様の発想である。しかし、この方法では、ＢＰからの通知をサービスが取得するまで、いつまでもサービスが待機状態となってしまい、他ＢＰの処理が実行できないため、システム全体の性能が低下する恐れがある。
【００１８】
＜実施の形態＞
上記を踏まえ、図１〜図１５を用いて、本発明の一実施の形態のＢＰ管理システムを説明する。本実施の形態では、サービスが期限付きのキャンセル処理を提供することで、システム全体の性能低下を防ぎつつ、サービスがキャンセル不可状態に遷移した後にＢＰを取り消す、という事象が発生する回数を削減する。キャンセル処理の期限（Ｔｃ）については、サービスのキャンセルコストの期待値（Ｅ１）とサービスがキャンセル可能状態を維持するためのコスト（Ｃ１）とに基づいて算出する。
【００１９】
＜システム＞
図１において、本実施の形態におけるＢＰ管理システムの全体構成を示している。本ＢＰ管理システムは、ＢＰを管理・制御する第１の計算機（ＢＰ管理サーバ）１と、サービスを提供する第２の計算機（サービス提供サーバ）２とから構成され、これらはネットワーク等の通信手段を介して接続される。尚これは最小構成の場合であり、第１の計算機１や第２の計算機２が複数存在する場合もあり得る。また、図示しないが、ＢＰ管理サーバ１に対しては、ＢＰ処理を要求する上位のクライアント（クライアント計算機）の接続または内蔵が可能である。
【００２０】
ＢＰ管理サーバ１は、ＣＰＵ１０、メインメモリ１１、記憶装置１２、入力装置１３、出力装置１４、及び通信Ｉ/Ｆ（インタフェース）１５等を有し、これらは内部バス等により接続される。ＣＰＵ１０は、記憶装置１２に格納されているプログラムをメインメモリ１１に読み込み、実行することにより、種々の処理を行う。以下、簡単のため、プログラムが行為主体であるかのように説明する。
【００２１】
記憶装置１２は、プログラム（処理部）として、ＢＰ制御部２０１、サービスキャンセルコスト期待値（Ｅ１）算出部２０２、キャンセル期限（Ｔｃ）算出部２０３、キャンセル期限（Ｔｃ）変更部２０４、テーブルとして、ＢＰステータス管理テーブル２０５（Ｔ１１）、キャンセル期限（Ｔｃ）管理テーブル２０６（Ｔ１２）、アクティビティ（ＡＣ）遷移確率管理テーブル２０７（Ｔ１３）、サービス情報管理テーブル２０８（Ｔ１４）、ＢＰ処理フロー別情報管理テーブル２０９（Ｔ１５）、及び、サービスキャンセルコスト期待値（Ｅ１）管理テーブル２１０（Ｔ１６）、を格納している。
【００２２】
ＢＰ制御部２０１は、ＢＰの実行を制御する。サービスキャンセルコスト期待値（Ｅ１）算出部２０２は、サービスの正常処理１回あたりにかかるキャンセルコストの期待値（Ｅ１）を、キャンセル期限（Ｔｃ）別に算出する。キャンセル期限（Ｔｃ）算出部２０３は、サービスキャンセルコストの期待値（Ｅ１）と、サービスがキャンセル可能状態を維持するためのコスト（Ｃ１）とに基づき、発生するコストが最小になることが期待される適切なキャンセル期限（Ｔｃ）を算出する。キャンセル期限（Ｔｃ）変更部２０４は、処理中のＢＰの遅延をトリガーとして、キャンセル期限（Ｔｃ）を変更（再設定）する。
【００２３】
ＢＰステータス管理テーブル２０５（Ｔ１１）は、ＢＰの進捗状況や、サービスとやりとりしたメッセージ等を管理するものであり、一般的なＢＰ管理システムであれば必須なテーブルである。キャンセル期限（Ｔｃ）管理テーブル２０６（Ｔ１２）は、サービスのキャンセル期限（Ｔｃ）を管理する。アクティビティ（ＡＣ）遷移確率管理テーブル２０７（Ｔ１３）は、ＢＰにおける実行中のアクティビティ（ＡＣと略す）が処理完了後にどのＡＣに進むかという確率（ＡＣ遷移確率）を管理する。サービス情報管理テーブル２０８（Ｔ１４）は、サービスに関する情報を管理する。ＢＰ処理フロー別情報管理テーブル２０９（Ｔ１５）は、現在処理中のＡＣの処理が成功した後に実行される可能性のある処理フローに関する情報を管理する。サービスキャンセルコスト期待値（Ｅ１）管理テーブル２１０（Ｔ１６）は、キャンセル期限（Ｔｃ）別に、サービスのキャンセルコスト期待値（Ｅ１）を管理する。
【００２４】
サービス提供サーバ２は、ＣＰＵ２０、メインメモリ２１、記憶装置２２、入力装置２３、出力装置２４、及び通信Ｉ/Ｆ２５等を有し、これらは内部バス等により接続される。ＣＰＵ２０は、記憶装置２２に格納されているプログラムをメインメモリ２１に読み込み、実行することにより、種々の処理を行う。
【００２５】
記憶装置２２は、プログラム（処理部）として、サービス正常処理部２１１、キャンセル処理部２１２、キャンセル可能状態維持コスト（Ｃ１）算出部２１３、キャンセル期限（Ｔｃ）再設定受付部２１４、テーブルとして、業務用管理テーブル２１５（Ｔ２１）、及び、ロック管理テーブル２１６（Ｔ２２）、を格納している。
【００２６】
サービス正常処理部２１１は、ＢＰ管理サーバ１に提供するサービスの正常処理を実行する。キャンセル処理部２１２は、サービスのキャンセル処理を実行する。キャンセル可能状態維持コスト（Ｃ１）算出部２１３は、別ＢＰによるデータの参照や取消不可能な処理（更新処理）を行わないこと（キャンセル可能状態を維持すること）で発生するキャンセル可能状態維持コスト（Ｃ１）を算出する。キャンセル期限（Ｔｃ）再設定受付部２１４は、ＢＰ管理サーバ１からのキャンセル期限（Ｔｃ）の延長（再設定要求）を受け付けてキャンセル期限（Ｔｃ）を再設定する。
【００２７】
業務用管理テーブル２１５（Ｔ２１）は、サービスが正常処理として参照や更新を行うデータを管理する。ロック管理テーブル２１６（Ｔ２２）は、業務用管理テーブル２１５（Ｔ２１）に格納されているデータを参照や更新してもよいかどうかを判断するための情報、ＢＰ管理サーバ１からの呼び出し時のメッセージ等、を管理する。
【００２８】
図２において、ＢＰ管理サーバ１とサービス提供サーバ２における各処理部（機能）及びテーブルの相互の関係を示している。ＢＰ制御部２０１は、キャンセル期限（Ｔｃ）の算出要求を、Ｔｃ算出部２０３に行い、サービスの正常処理の要求を、サービス正常処理部２１１に行い、サービスのキャンセル要求を、キャンセル処理部２１２に行う。Ｔｃ算出部２０３は、サービスキャンセルコスト期待値（Ｅ１）の算出の要求を、Ｅ１算出部２０２に行い、キャンセル可能状態維持コスト（Ｃ１）の算出の要求を、Ｃ１算出部２１３に行う。Ｔｃ変更部２０４は、Ｅ１の算出の要求を、Ｅ１算出部２０２に行い、Ｃ１の算出の要求をＣ１算出部２１３に行い、サービスのキャンセル期限（Ｔｃ）の再設定の要求を、Ｔｃ再設定受付部２１４に行う。
【００２９】
また、ＢＰ制御部２０１及びＴｃ変更部２０４は、それぞれ、ＢＰステータス管理テーブル２０５（Ｔ１１）及びＴｃ管理テーブル２０６（Ｔ１２）を利用する。Ｅ１算出部２０２は、ＡＣ遷移確率管理テーブル２０７（Ｔ１３）、サービス情報管理テーブル２０８（Ｔ１４）、ＢＰ処理フロー別情報管理テーブル２０９（Ｔ１５）、及びＥ１管理テーブル２１０（Ｔ１６）を利用する。また、サービス正常処理部２１１、キャンセル処理部２１２、及びＴｃ再設定受付部２１４は、それぞれ、業務用管理テーブル２１５（Ｔ２１）及びロック管理テーブル２１６（Ｔ２２）を利用する。
【００３０】
本実施の形態において、前記課題を解決するための手段の構成における、第１の処理ステップ及び第１の手段に対応するのは、Ｅ１算出部２０２、Ｔｃ算出部２０３、Ｃ１算出部２１３等である。また、第２、第３の処理ステップ、及び第２、第３の手段に対応するのは、サービス正常処理部２１１、キャンセル処理部２１２等である。
【００３１】
＜ＢＰ処理シーケンス例＞
次に、図３において、本システムにおけるＢＰ及びサービスの処理シーケンス例を示している。図１６と同様に、商品注文受付ＢＰ（第１ＢＰ）１０１、注文票管理サービス（第１ＳＶ）１０２、口座引落サービス（第２ＳＶ）１０３、及び商品発注ＢＰ（第２ＢＰ）１０４を有する。第１ＢＰ１０１が、第１ＳＶ１０２や第２ＳＶ１０３を呼び出して実行（ＳＶ要求及び応答）し、一方、別に稼動している第２ＢＰ１０４が、第１ＳＶ１０２を呼び出して実行する。
【００３２】
Ｓ１０１で、第１ＢＰ１０１は、第１ＳＶ１０２に対し、処理実行する（第１ＳＶ実行）。この際、キャンセル期限（Ｔｃ）が提供、設定される。Ｓ１０２で、別ＢＰである第２ＢＰ１０４は、第１ＳＶ１０２から注文票のデータを参照しようとする（第１ＳＶ要求）。この時、キャンセル期限（Ｔｃ）が経過していないキャンセル可能状態であるので、別ＢＰの処理は受け付けないようにし、Ｓ１０３では、応答の内容が失敗になる。
【００３３】
Ｓ１０４，Ｓ１０５で、第１ＢＰ１０１から処理要求（第２ＳＶ要求）を受けた第２ＳＶ１０３の処理が失敗している。この場合に、第１ＢＰ１０１を取り消し（第１ＳＶ１０２をキャンセル）したい。
【００３４】
ＢＰ取り消しの第１のケースとして、Ｓ１０６で、第１ＢＰ１０１から第１ＳＶ１０２に、キャンセル要求を発行する。この時、キャンセル期限（Ｔｃ）はまだ経過しておらずキャンセル可能状態である。よって、第１ＳＶ１０２のキャンセル処理が実行され、Ｓ１０７で、応答の内容がキャンセル可能になる。
【００３５】
キャンセル期限（Ｔｃ）を経過すると、キャンセル可能状態からキャンセル不可状態に遷移する。Ｓ１０８で、第２ＢＰ１０４から第１ＳＶ１０２に処理要求した場合、この時、キャンセル期限（Ｔｃ）の経過後であるので、別ＢＰの処理を受け付けるようにし、Ｓ１０９で、応答の内容が成功になる。
【００３６】
また、ＢＰ取り消しの第２のケースとして、Ｓ１１０で、第１ＢＰ１０１から第１ＳＶ１０２に、キャンセル要求を発行する。この時、キャンセル期限（Ｔｃ）の経過後でありキャンセル不可状態である。よって、第１ＳＶ１０２のキャンセル処理が実行されず、Ｓ１１１で、応答の内容がキャンセル不可になる。
【００３７】
＜ＢＰ処理フロー＞
次に、図４以下を用いて、本システムにおけるＢＰ処理フロー及び管理テーブル等について説明する。ＢＰ（ＢＰ管理サーバ１）に参加するサービス（サービス提供サーバ２）がキャンセル期限（Ｔｃ）付きのキャンセル処理を提供している場合である。
【００３８】
図４において、ＢＰ管理サーバ１が、サービス提供サーバ２を呼び出して（処理要求して）サービスを実行する場合の処理フローを示している。
【００３９】
Ｓ５０１で、ＢＰ管理サーバ１は、サービスのキャンセル期限（Ｔｃ）の問い合わせを実行する。ＢＰ制御部２０１は、どのＢＰを呼び出すかを選択し、ＢＰのＩＤ（ＢＰ＿ＩＤ）を生成する。本例では、ＢＰ＿ＴというＢＰ名を選択し、ＢＰ＿ＩＤとして“３１”を生成したものとする。次に、ＢＰ制御部２０１は、定義されたＢＰに基づき呼び出すサービスを選択し、Ｔｃ算出部２０３に、該当するサービスのキャンセル期限（Ｔｃ）を問い合わせる。
【００４０】
次に、Ｓ５０２で、ＢＰ管理サーバ１は、キャンセル期限（Ｔｃ）別のＥ１を算出する。Ｔｃ算出部２０３は、キャンセル期限（Ｔｃ）別のサービスキャンセルコストを、Ｅ１算出部２０２に問い合わせる。ここで、サービスキャンセルコスト（及びその期待値）とは、呼び出したサービスの正常処理完了後に、サービスのキャンセルのために発生するコスト（及びその期待値）のことである。Ｅ１算出部２０２は、キャンセル期限（Ｔｃ）別のＥ１を算出し、結果を返答する。
【００４１】
図５において、図４のＳ５０２で、ＢＰ管理サーバ１のＥ１算出部２０２がキャンセル期限（Ｔｃ）別のＥ１を算出する場合の処理フローを示している。Ｓ６０１で、Ｅ１算出部２０２は、ＢＰステータス管理テーブル２０５（Ｔ１１）を参照し、ＢＰの進捗状況を取得する。
【００４２】
本実施の形態では、図６に示すＢＰにおいて、サービスＡを呼び出すアクティビティＰ２を実行するタイミングを例として説明する。図６において、Ｐ１からＰ６は、アクティビティ（ＡＣ）名、サービスＡからサービスＤは、サービス提供サーバ２が提供しているサービス正常処理名称（サービス名）をそれぞれ表す。なお、図６では、アクティビティＰ３で記述されているサービスＢ呼出処理の後、アクティビティＰ４もしくはアクティビティＰ５に分岐するものとする。
【００４３】
次に、Ｓ６０２において、Ｅ１算出部２０２は、ＡＣ遷移確率管理テーブル２０７（Ｔ１３）を参照し、ＡＣ遷移確率を取得する。
【００４４】
図７において、ＡＣ遷移確率管理テーブル２０７（Ｔ１３）を示している。以下、実行中のＡＣのことを呼出元ＡＣ、次に選択されるＡＣのことを呼出先ＡＣと呼ぶ。Ｔ１３は、定義されたＢＰの名称であるＢＰ名８０１、呼出元ＡＣ名８０２、呼出先ＡＣ名８０３、及び、呼出元ＡＣから呼出先ＡＣに遷移する確率であるＡＣ遷移確率８０４、等を管理する。
【００４５】
ＡＣ遷移確率８０４については、これまで実行されたＢＰ結果に基づいて統計的に算出するか、ＢＰ管理サーバ１の管理者が設定する。例えば、図６のＢＰの例であれば、サービスＢを呼び出すアクティビティＰ３からサービスＣを呼び出すアクティビティＰ４に遷移する確率が６０％、サービスＢを呼び出すアクティビティＰ３からサービスＤを呼び出すアクティビティＰ５に遷移する確率が４０％であれば、呼出元アクティビティＰ３かつ呼出先アクティビティＰ４の行のＡＣ遷移確率は６０％、呼出元アクティビティＰ３かつ呼出先アクティビティＰ５の行のＡＣ遷移確率は４０％となる。
【００４６】
次に、Ｓ６０３で、Ｅ１算出部２０２は、サービス情報管理テーブル２０８（Ｔ１４）を参照し、サービスに関する情報を取得する。
【００４７】
図８において、サービス情報管理テーブル２０８（Ｔ１４）を示している。Ｔ１４は、サービスの名称（サービス名）９０１、サービスの平均処理時間９０２、サービスの処理成功確率９０３、ＢＰ取消時に実行されるキャンセル実行コスト９０４、及びＢＰ取消時に実行される運用対処コスト９０５、等を管理する。ここで、キャンセル実行コスト９０４とは、サービスがキャンセル可能状態の下でキャンセル処理を実行した場合にかかるコストを金額に換算したものである。運用対処コスト９０５とは、サービスがキャンセル不可状態の下でサービスの効果を取り消すために運用で対処した場合にかかるコストを金額に換算したものである。これらのコストについては、サービス提供サーバ２の管理者が設定する。また、サービスの平均処理時間９０２と処理成功確率９０３については、これまで収集されたサービスの稼動情報に基づいて統計的に算出するか、ＢＰ管理サーバ１の管理者が設定する。
【００４８】
次に、Ｓ６０４で、Ｅ１算出部２０２は、ＢＰ処理フロー別ＢＰ取り消し確率を算出する。Ｅ１算出部２０２は、現在処理中のＡＣの処理が成功した後、その後に実行される可能性のあるＢＰ処理フローの発生確率を算出する。なお、実行されるＢＰ処理フローの中には、ＡＣの処理が失敗し、ＢＰを取り消す場合のＢＰ処理フローも含む。図６のＢＰの例であれば、サービスＡ呼出後のＢＰ処理フローは、図９に示すＢＰ処理フロー１００１〜１００５の５通りである。このＢＰ処理フローについては、ＢＰ管理サーバ１の管理者が事前に定義しておく。
【００４９】
図９において、図６のＢＰに対応して、ＢＰ処理フロー、ＢＰ処理フローの概要、ＢＰ処理フローの発生確率を示している。例えば、ＢＰ処理フロー１００１は、Ｐ１、Ｐ２、取り消し（Ｐ３）の順であり、概要は、アクティビティＰ３のサービスＢ呼び出し処理が失敗し、ＢＰ取り消し、である。
【００５０】
ＢＰ処理フローの発生確率は、（処理失敗ＡＣ以前のＡＣが成功する確率）×（処理失敗ＡＣにＢＰ処理フローが遷移する確率）×（処理失敗ＡＣが失敗する確率）により算出できる。例えば、ＢＰ処理フロー１００１の発生確率は、１×１×（１−０．９）×１００＝１０％となる。また、ＢＰ処理フロー１００２の発生確率は、（Ｐ４以前の処理フローが成功する確率：０．９）×（Ｐ４に遷移する確率：０．６）×（Ｐ４の処理が失敗する確率：（１−０．８））×１００＝１０．８％となる。同様に、ＢＰ処理フロー１００３の発生確率は０％、ＢＰ処理フロー１００４の発生確率は４３．２％、ＢＰ処理フロー１００５の発生確率は３６％となる。
【００５１】
次に、Ｓ６０５で、Ｅ１算出部２０２は、ＢＰ処理フロー別に、ＢＰ処理フローの発生する可能性が高い時間帯を算出する。時間帯は、ＢＰ処理フローの最後のＡＣの処理が開始される予定時間（処理開始予定時間）から完了する予定時間（処理完了予定時間）までとする。ここで、処理開始予定時間は、サービスの平均処理時間（９０２）の総和により算出される。例えばＢＰ処理フロー１００１であれば、処理開始予定時間は、サービスＡの処理が完了した時間となる。ここでは、サービスＡの処理が完了した状況におけるＥ１を算出するという前提なので、処理開始予定時間は０分となる。一方、処理完了予定時間は、サービスＢが完了する予定時間となるため、（ＢＰ処理フロー開始予定時間：０分）＋（サービスＢ平均処理時間：５分）＝５分となる。またＢＰ処理フロー１００２であれば、処理開始予定時間は、サービスＢの処理が完了した時間となるため、５分となる。処理完了予定時間は、（ＢＰ処理フロー開始予定時間：０分）＋（サービスＣ平均処理時間：１０分）＝１５分となる。同様に、ＢＰ処理フロー１００３であれば、処理開始予定時間は５分、処理完了予定時間は２５分となる。ＢＰ処理フロー１００４であれば、処理開始予定時間は１５分、処理完了予定時間は１５分となる。ＢＰ処理フロー１００５であれば、処理開始予定時間は２５分、処理完了予定時間は２５分となる。
【００５２】
次に、Ｓ６０６で、Ｅ１算出部２０２は、Ｓ６０４とＳ６０５の結果を収集し、ＢＰ処理フロー別情報管理テーブル２０９（Ｔ１５）を生成する。
【００５３】
図１０において、ＢＰ処理フロー別情報管理テーブル２０９（Ｔ１５）を示している。Ｔ１５は、ＢＰ名１１０１、ＢＰ＿ＩＤ１１０２、処理中ＡＣ名１１０３、ＢＰ処理フロー１１０４、（ＢＰ処理フロー）発生確率１１０５、（ＢＰ処理フロー）処理開始予定時間１１０６、（ＢＰ処理フロー）処理完了予定時間１１０７、等を管理する。ＢＰ名１１０１、ＢＰ＿ＩＤ１１０２、処理中ＡＣ名１１０３は、ＢＰ制御部２０１からの問い合わせ時に取得する。ＢＰ処理フロー１１０４、発生確率１１０５は、Ｓ６０４の実行時に取得、算出する。処理開始予定時間１１０６、処理完了予定時間１１０７は、Ｓ６０５の実行時に算出する。
【００５４】
次に、Ｓ６０７で、Ｅ１算出部２０２は、ＢＰ処理フローの発生確率１１０５、処理開始予定時間１１０６、処理完了予定時間１１０７、キャンセル実行コスト９０４、及び運用対処コスト９０５に基づき、キャンセル期限（Ｔｃ）別のＥ１を算出する。Ｅ１は、該当するサービスの正常処理１回あたりにかかるキャンセルコストの期待値である。これは、サービスが提供するキャンセル期限（Ｔｃ）によって変動する。Ｔｃが長いほど、Ｔｃ経過後にＢＰを取り消す確率が減少するため、キャンセルコストの期待値は削減される。
【００５５】
Ｅ１を算出するキャンセル期限（Ｔｃ）の候補は、処理開始予定時間１１０６と処理完了予定時間１１０７に格納されている時間とする。以下、キャンセル期限（Ｔｃ）の候補のことをキャンセル期限（Ｔｃ）候補値と呼ぶ。図６のＢＰの例であれば、Ｔｃ候補値は、０分、５分、１５分、２５分、の４種類となる。
【００５６】
まず、Ｔｃ候補値別に、Ｔｃ経過以前にＢＰを取り消す確率（Ｔｃ前ＢＰ取消確率）と、Ｔｃ経過後にＢＰを取り消す確率（Ｔｃ後ＢＰ取消確率）と、を算出する。これは、Ｔｃ前後に処理を実行するＡＣのＢＰ取消確率の総和となる。図６のＢＰの例であれば、Ｔｃ候補値が０分の場合、全てのＢＰ取消は、Ｔｃ経過後に発生するため、ＢＰ取消が発生するＢＰ処理フロー１００１とＢＰ処理フロー１００２の発生確率１１０５の和である２０．８％が、Ｔｃ後ＢＰ取消確率となる。また、Ｔｃ候補値が５分の場合は、Ｔｃ前にＢＰの取り消しが発生するのは、ＢＰ処理フローの発生する時間帯が０分から５分であるＢＰ処理フロー１００１だけなので、ＢＰ処理フロー１００１の発生確率１１０５である１０％が、Ｔｃ前ＢＰ取消確率となる。一方、Ｔｃ後にＢＰの取り消しが発生するのは、ＢＰ処理フローの発生する時間帯が５分から１５分であるＢＰ処理フロー１００２だけなので、Ｔｃ後ＢＰ取消確率は１０．８％となる。
【００５７】
次に、Ｔｃ候補値別に、Ｅ１を算出する。Ｅ１は、（Ｔｃ前ＢＰ取消確率）×（キャンセル実行コスト）＋（Ｔｃ後ＢＰ取消確率）×（運用対処コスト）、で算出できる。図６のＢＰの例であれば、Ｔｃ候補値が０分の場合、０％×１００円＋２０．８％×１００００円＝２０８０円、となる。また、Ｔｃ候補値が５分の場合、１０％×１００円＋１０．８％×１００００円＝１０９０円、となる。
【００５８】
Ｅ１算出部２０２は、全てのＴｃ候補値について、Ｔｃ前ＢＰ取消確率、Ｔｃ後ＢＰ取消確率、及びＥ１を算出した後、Ｅ１管理テーブル２１０（Ｔ１６）を生成する。
【００５９】
図１１において、Ｅ１管理テーブル２１０（Ｔ１６）を示している。Ｔ１６は、キャンセル期限（Ｔｃ）別に、ＢＰ名１２０１、ＢＰ＿ＩＤ１２０２、Ｅ１を算出するサービス名１２０３、Ｔｃ候補値１２０４、Ｔｃ前ＢＰ取消確率１２０５、Ｔｃ後ＢＰ取消確率１２０６、サービスキャンセルコスト期待値（Ｅ１）１２０７、等を管理する。
【００６０】
次に、Ｓ６０８で、Ｅ１算出部２０２は、Ｔｃ算出部２０３に、Ｓ６０７で生成したＥ１管理テーブル２１０（Ｔ１６）の情報を返答する。
【００６１】
なお、本実施の形態では、Ｓ６０１からＳ６０８の処理を、ＢＰ制御部２０１がサービス正常処理部２１１を呼び出す毎に実行する、という処理フローとしている。これに限らず、Ｓ６０１からＳ６０８の処理の全てもしくは一部を、事前に実行してもよい（例えばサーバ起動時に一度計算してその後はそれを再利用する等）。この場合、リアルタイムに情報を利用できないため、Ｅ１の精度は低下するが、処理性能は向上するため、ＢＰの特性に基づき使い分ければよい。
【００６２】
次に、図４のＳ５０３で、ＢＰ管理サーバ１は、指定された期限（Ｔｃ）別のＣ１を算出する。Ｔｃ算出部２０３は、Ｃ１算出部２１３に、Ｅ１値算出部２０２から返答されたＴｃ候補値のキャンセル可能状態維持コスト（Ｃ１）を問い合わせる。Ｃ１算出部２１３は、算出した結果（Ｃ１）を、Ｔｃ算出部２０３に返答する。
【００６３】
キャンセル可能状態維持コスト（Ｃ１）とは、別ＢＰによるデータの参照や取消不可能な処理（更新処理）を行わないこと（キャンセル可能状態を維持すること）で発生するコストである。例えば、キャンセル可能状態を維持することで、システム全体の性能が低下し、機会損失が発生する（処理できるＢＰ数が減少する）、などである。Ｃ１の算出方法はサービスにより異なる。
【００６４】
Ｃ１としては、例えば、図３のような注文票管理サービス（第１ＳＶ）１０２であれば、商品発注ＢＰ（第２ＢＰ）１０４が注文票を参照する時間が遅延したことで、商品発注が時間外の手続きとなってしまう場合に、時間外手続きにより新たに発生するコストが該当する。また、例えば座席予約サービスであれば、座席予約要求からキャンセル要求の間に他ＢＰにサービスを提供できなかったことによる機会損失が該当する。
【００６５】
次に、Ｓ５０４で、Ｔｃ算出部２０３は、キャンセル期限（Ｔｃ）別のコストが最小となるようなキャンセル期限（Ｔｃ）を設定する。具体的に、そのコストの算出（見積もり）方法の例は、Ｅ１とＣ１を足す、などである。Ｔｃ算出部２０３は、算出、設定した結果（Ｔｃ）を、ＢＰ制御部２０１に返答する。
【００６６】
次に、Ｓ５０５で、ＢＰ制御サーバ１は、サービスの正常処理を実行する。キャンセル期限（Ｔｃ）を取得したＢＰ制御部２０１は、サービス正常処理部２１１を呼び出し、サービスの処理を要求する。処理を要求するメッセージには、ＢＰ制御サーバ１の名称、メッセージＩＤ、ＢＰ＿ＩＤ、キャンセル期限（Ｔｃ）が含まれている。
【００６７】
次に、Ｓ５０６で、サービス正常処理部２１１は、ロック管理テーブル２１６（Ｔ２２）を参照してサービス正常処理を実行してよいかどうかを判断する。さらに、実行してもよければ、ロック管理テーブル２１６（Ｔ２２）にロックの情報を登録し、業務用管理テーブル２１５（Ｔ２１）に格納されているデータを参照もしくは更新する。
【００６８】
図１２において、ロック管理テーブル２１６（Ｔ２２）を示している。Ｔ２２は、サービス正常処理部２１１により登録されるロックの情報として、メッセージを送信したＢＰのＢＰ＿ＩＤ１３０１、サービス正常処理部２１１へのメッセージごとに割り当てられるＩＤであるメッセージＩＤ１３０２、サービス正常処理部２１１が更新する業務データ名１３０３、メッセージに割り当てられる（付与される）キャンセル期限（Ｔｃ）１３０４、等を管理する。
【００６９】
Ｔ２２の情報については、サービス正常処理部２１１が、ＢＰ制御部２０１とやりとりしたメッセージから取得し、該当する情報を書き込む。その後、サービス正常処理部２１１は、業務用管理テーブル２１５（Ｔ２１）に格納されているデータを参照もしくは更新し、処理結果をＢＰ制御部２０１に返答する。
【００７０】
なお、本実施の形態では、ＢＰ管理サーバ１に対するクライアントを考慮しない構成を示している。本構成に加えて更に、ビジネスプロセスの処理を要求したクライアントごとにＴｃを設定または変更する形態も可能である。この場合、例えば、図１２のロック管理テーブル２１６（Ｔ２２）には、クライアントのＩＤと、ＢＰ管理サーバ１のＩＤ（サービスを呼び出したＢＰ管理サーバ１の名称）とを対応付けて格納する。
【００７１】
図１３において、Ｓ５０５，Ｓ５０６に対応して、サービス正常処理及びロック管理テーブル２１６（Ｔ２２）への情報登録処理等の処理フローを示している。サービス正常処理部２１１は、これから更新を行う業務データ名がロック管理テーブル２１６（Ｔ２２）の該当レコード（１３０３）に格納されているかを参照する。即ち、Ｓ１４０１で、業務データ名をキーとして、ロック管理テーブル２１６（Ｔ２２）を検索する。該当業務データが格納されていない場合（Ｓ１４０２−Ｎ）、Ｓ１４０３で、サービス正常処理部２１１は、ロック管理テーブル２１６（Ｔ２２）にロック情報を新たに登録し（新規レコード追加）、処理を継続する。即ち、Ｓ１４０４で、サービス正常処理を実行し、処理結果をＢＰ制御部２０１に返答する。
【００７２】
また、該当業務データが格納されている場合（Ｓ１４０２−Ｙ）、Ｓ１４０５で、サービス正常処理部２１１は、該当レコードのＢＰ＿ＩＤを参照する。ＢＰ＿ＩＤが同じである場合（Ｓ１４０６−Ｙ）、Ｓ１４０７で、サービス正常処理を実行し、処理結果をＢＰ制御部２０１に返答する。ＢＰ＿ＩＤが異なる場合（Ｓ１４０６−Ｎ）、Ｓ１４０８で、サービス正常処理部２１１は、該当レコードのキャンセル期限（Ｔｃ）１３０４を参照する。そして、Ｓ１４０９で、その時点でキャンセル期限（Ｔｃ）が経過しているかどうかを判定する。もしキャンセル期限（Ｔｃ）が経過していなければ（Ｓ１４０９−Ｎ）、サービス正常処理部２１１は、ＢＰ制御部２０１にエラーを返答するか、ロック状態が変更されるまで待機する。一方、キャンセル期限（Ｔｃ）が経過していた場合（Ｓ１４０９−Ｙ）、サービス正常処理部２１１は、該当レコードを削除し、新たにロック情報を登録する（新規レコード追加）。そして、Ｓ１４１１で、サービス正常処理を実行し、処理結果をＢＰ制御部２０１に返答する。
【００７３】
次に、図４のＳ５０７で、ＢＰ制御部２０１は、サービス正常処理部２１１からの返答結果を取得後、ＢＰの進捗状況とメッセージ内容とをＢＰステータス管理テーブル２０５（Ｔ１１）に書き込む。また、設定されたキャンセル期限（Ｔｃ）をＴｃ管理テーブル２０６（Ｔ１２）に書き込む。Ｔｃ管理テーブル２０６（Ｔ１２）は、ＢＰ名、ＢＰ＿ＩＤ、メッセージＩＤ、キャンセル期限（Ｔｃ）等を管理する。
【００７４】
＜キャンセル処理＞
次に、図１４において、ＢＰを取り消すために、ＢＰ管理サーバ１がサービス提供サーバ２にキャンセル処理を要求した場合の処理フローを示している。
【００７５】
Ｓ１５０１で、ＢＰの取り消しを行うために、ＢＰ制御部２０１は、キャンセル処理部２１２を呼び出す。ここで、ＢＰ制御部２０１のメッセージ内容には、ＢＰ管理サーバ１の名称、ＢＰ＿ＩＤ、メッセージＩＤが含まれる。
【００７６】
Ｓ１５０２で、キャンセル処理部２１２は、ロック管理テーブル２１６（Ｔ２２）を参照し、ＢＰ管理サーバ１の名称、ＢＰ＿ＩＤ、及びメッセージＩＤ、が同じレコードを参照する。もし、該当するレコードがあれば（Ｓ１５０３−Ｙ）、Ｓ１５０４に進む。該当するレコードが無ければ（Ｓ１５０３−Ｎ）、Ｓ１５０５に進む。
【００７７】
Ｓ１５０４で、該当レコードがあればサービス状態はキャンセル可能状態なので、キャンセルを実行することができる。そのため、キャンセル処理部２１２は、キャンセル処理を実行し、ロック管理テーブル２１６（Ｔ２２）に格納されている該当レコードを削除する。
【００７８】
Ｓ１５０５で、該当レコードが無ければサービス状態はキャンセル不可状態なので、キャンセルを実行することができない。そのため、キャンセル処理部２１２は、ＢＰ制御部２０１に、キャンセルが実行できないというエラーを返答する。そして、Ｓ１５０６で、ＢＰ制御部２０１は、ＢＰステータス管理テーブル２０５（Ｔ１１）に、キャンセル処理失敗を書き込み、処理を終了する。この場合、ＢＰの取り消しについては運用で対処することとなる。
【００７９】
＜キャンセル期限再設定＞
次に、本実施の形態の構成では、他に呼び出したサービスの処理遅延に伴いＢＰ処理が遅延した場合などに、一度設定したキャンセル期限（Ｔｃ）の再設定を行うことも可能である。図１５に、その場合の処理フローを示している。
【００８０】
図１５において、Ｓ１６０１で、Ｔｃ変更部２０４は、定期的に、ＢＰ処理の進捗を確認する。Ｔｃ変更部２０４は、ＢＰステータス管理テーブル２０５（Ｔ１１）、Ｔｃ管理テーブル２０６（Ｔ１２）、ＢＰ処理フロー別情報管理テーブル２０９（Ｔ１５）を参照し、サービス正常処理要求時に仮定（予測）した処理時間でＢＰ処理（ＢＰ処理フロー）が進んでいるかを確認する。Ｔｃ変更部２０４は、当該処理時間でＢＰ処理が進んでいない場合（換言すれば閾値よりも遅れている場合）、キャンセル期限（Ｔｃ）を再設定する必要があると判断し、Ｔｃ再設定処理に移行する。なお、上記閾値は、ＢＰ管理サーバ１の管理者が設定する。
【００８１】
次に、Ｓ１６０２で、Ｔｃ変更部２０４は、キャンセル期限（Ｔｃ）別のＥ１を、Ｅ１算出部２０２に問い合わせる。Ｅ１算出部２０２は、キャンセル期限（Ｔｃ）別のＥ１を算出し、結果をＴｃ変更部２０４に返答する。Ｅ１の算出方法は、図５と同様である。
【００８２】
次に、Ｓ１６０３で、Ｔｃ変更部２０４は、Ｃ１算出部２１３に、Ｅ１算出部２０２から返答されたキャンセル期限（Ｔｃ）の候補値のＣ１を問い合わせる。Ｃ１算出部２１３は、指定された期限（Ｔｃ）別のＣ１を算出し、結果を返答する。Ｃ１の算出方法は、図４のＳ５０３と同様である。
【００８３】
次に、Ｓ１６０４で、Ｔｃ変更部２０４は、キャンセル期限（Ｔｃ）別のコストを算出し、当該コストが最小となるようなＴｃを設定する。当該コストの算出方法の例は、前述同様である。次に、Ｓ１６０５で、Ｔｃ変更部２０４は、Ｔｃ再設定受付部２１４に、Ｔｃの再設定を要求する。そのメッセージには、Ｔｃを再設定する対象となるメッセージに関する情報である、ＢＰ管理サーバ１の名称、ＢＰ＿ＩＤ、メッセージＩＤを含む。次に、Ｓ１６０６で、Ｔｃ再設定受付部２１４は、ロック管理テーブル２１６（Ｔ２２）を参照し、ＢＰ管理サーバ１の名称、ＢＰ＿ＩＤ、メッセージＩＤ、が同じレコードを参照する。該当レコードがあれば（Ｓ１６０７−Ｙ）、Ｓ１６０８に進む。該当レコードが無ければ（Ｓ１６０７−Ｎ）、Ｓ１６１０に進む。
【００８４】
Ｓ１６０８で、該当レコードがあれば、Ｔｃ再設定受付部２１４は、ロック管理テーブル２１６（Ｔ２２）に格納されているキャンセル期限（Ｔｃ）を変更し、処理成功を返答する。そして、Ｓ１６０９で、Ｔｃ変更部２０４は、Ｔｃ管理テーブル２０６（Ｔ１２）に格納されているキャンセル期限（Ｔｃ）を変更し、処理を完了する。一方、Ｓ１６１０で、該当レコードが無ければ、Ｔｃ再設定受付部２１４は、エラーを返答する。そして、Ｓ１６１１で、Ｔｃ変更部２０４は、ＢＰ管理サーバ１の管理者に警告を通知する。
【００８５】
以上、本実施の形態によれば、以下の効果を有する。本システムでは、サービスキャンセルコスト期待値（Ｅ１）とキャンセル可能状態維持コスト（Ｃ１）とに基づいて算出したキャンセル期限（Ｔｃ）の間、サービスがキャンセル処理を提供する。これにより、システム全体の性能低下を防ぎつつ、サービスがキャンセル不可状態に遷移した後にＢＰを取り消す、という事象が発生する回数を削減すること（ＢＰ処理成功率向上）、が可能となる。また、他に呼び出したサービスの処理遅延に伴いＢＰ処理が遅延した場合など、設定したキャンセル期限（Ｔｃ）の前提条件に変化があった場合に、キャンセル期限（Ｔｃ）の再設定を行うことも可能となる。
【００８６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【００８７】
本発明は、ビジネスプロセス管理システム等の情報処理システムに利用可能である。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施の形態であるＢＰ管理システムの全体の構成（機能ブロック構成）を示す図である。
【図２】本発明の一実施の形態のＢＰ管理システムにおいて、各プログラム（処理部）及びテーブルの相互の関係を示す図である。
【図３】本発明の一実施の形態のＢＰ管理システムにおいて、ＢＰ及びサービスの処理シーケンス例を示す図である。
【図４】本発明の一実施の形態のＢＰ管理システムにおいて、ＢＰ管理サーバがサービス提供サーバを呼び出してサービスを実行する場合の処理フロー図である。
【図５】本発明の一実施の形態のＢＰ管理システムにおいて、ＢＰ管理サーバがキャンセル期限別のサービスキャンセルコスト期待値（Ｅ１）を算出する場合の処理フロー図である。
【図６】本発明の一実施の形態のＢＰ管理システムにおいて、ＢＰ管理サーバが実行するＢＰの例を示す図である。
【図７】本発明の一実施の形態のＢＰ管理システムにおいて、アクティビティ遷移確率管理テーブルの構成例を示す図である。
【図８】本発明の一実施の形態のＢＰ管理システムにおいて、サービス情報管理テーブルの構成例を示す図である。
【図９】本発明の一実施の形態のＢＰ管理システムにおいて、ＢＰ処理フローの例を示す図である。
【図１０】本発明の一実施の形態のＢＰ管理システムにおいて、ＢＰ処理フロー別情報管理テーブルの構成例を示す図である。
【図１１】本発明の一実施の形態のＢＰ管理システムにおいて、サービスキャンセルコスト期待値（Ｅ１）管理テーブルの構成例を示す図である。
【図１２】本発明の一実施の形態のＢＰ管理システムにおいて、ロック管理テーブルの構成例を示す図である。
【図１３】本発明の一実施の形態のＢＰ管理システムにおいて、サービス正常処理及びロック情報更新等の処理フロー図である。
【図１４】本発明の一実施の形態のＢＰ管理システムにおいて、ＢＰを取り消すためにＢＰ管理サーバがサービス提供サーバにキャンセル処理を要求した場合の処理フロー図である。
【図１５】本発明の一実施の形態のＢＰ管理システムにおいて、キャンセル期限の再設定を行う場合の処理フロー図である。
【図１６】前提技術及び問題点に関する処理シーケンス例を示す図である。
【符号の説明】
【００８９】
１…第１の計算機（ＢＰ管理サーバ）、２…第２の計算機（サービス提供サーバ）、１０，２０…ＣＰＵ、１１，２１…メインメモリ、１２，２２…記憶装置、１３，２３…入力装置、１４，２４…出力装置、１５，２５…通信インタフェース、１０１…商品注文受付ＢＰ（第１ＢＰ）、１０２…注文票管理サービス（第１ＳＶ）、１０３…口座引落サービス（第２ＳＶ）、１０４…商品発注ＢＰ（第２ＢＰ）、２０１…ＢＰ制御部、２０２…サービスキャンセルコスト期待値（Ｅ１）算出部、２０３…キャンセル期限（Ｔｃ）算出部、２０４…キャンセル期限（Ｔｃ）変更部、２０５…ＢＰステータス管理テーブル、２０６…キャンセル期限（Ｔｃ）管理テーブル、２０７…アクティビティ（ＡＣ）遷移確率管理テーブル、２０８…サービス情報管理テーブル、２０９…ＢＰ処理フロー別情報管理テーブル、２１０…サービスキャンセルコスト期待値（Ｅ１）管理テーブル、２１１…サービス正常処理部、２１２…キャンセル処理部、２１３…キャンセル可能状態維持コスト（Ｃ１）算出部、２１４…キャンセル期限（Ｔｃ）再設定受付部、２１５…業務用管理テーブル、２１６…ロック管理テーブル。
【図１】
2008276641.tif 000003
【図２】
2008276641.tif 000004
【図３】
2008276641.tif 000005
【図４】
2008276641.tif 000006
【図５】
2008276641.tif 000007
【図６】
2008276641.tif 000008
【図７】
2008276641.tif 000009
【図８】
2008276641.tif 000010
【図９】
2008276641.tif 000011
【図１０】
2008276641.tif 000012
【図１１】
2008276641.tif 000013
【図１２】
2008276641.tif 000014
【図１３】
2008276641.tif 000015
【図１４】
2008276641.tif 000016
【図１５】
2008276641.tif 000017
【図１６】
2008276641.tif 000018