TOPプロジェクト管理> コンペンセーション(補償ロジック)の設計
実践!BPI
実践!ビジネス・プロセス・インテグレーション

第2回:ビジネスフローの設計
著者:日本アイ・ビー・エム  小倉 弘敬、佐藤 泉、津田 佳一
2005/12/28
前のページ  1  2  3  4
コンペンセーション(補償ロジック)の設計

   コンペンセーションとはビジネスプロセス中の"Invoke"アクティビティやスコープに対して定義できる取り消し処理のことである。複数のシステムと連携を行うビジネスプロセスでは、プロセスのすべての処理を単一のUOWに含めることが困難である。そのような場合に、既に実行されてしまったトランザクションの取り消しを行う手段がコンペンセーションである。コンペンセーションについては「第3回:ビジネスプロセスを意味のあるプロセスに」も参照していただきたい。

   O社のネット注文システムでは、顧客からの注文が受け付けられてから在庫の引き当てに失敗した場合、注文情報管理システムから注文情報を削除して顧客にお詫びのメールを送信するという要件がある。

   コンペンセーションを使ってこれを実装することを考えよう。プロセスの仕様は図8の通りである。

コンペンセーションロジックの仕様
図8:コンペンセーションロジックの仕様

   ここでは、「在庫の確認と更新」処理に対してFaultのCatchを定義してエラーの処理を行わせている。エラー処理ロジックの中では前のステップのアクティビティである「注文情報の入力」の"Invoke"に対して定義された補償ロジックを呼び出している。これにより、在庫の引き当てに失敗した場合に自動的に「注文情報の入力」処理で行われた処理を取り消して顧客にお詫びのメールを出すことができる。

   上記の処理を"Invoke"アクティビティに対して定義した場合WSBPELの内容は図9、10のようになる。

エラー処理ロジック内でのコンペンセーションの呼び出し
図9:エラー処理ロジック内でのコンペンセーションの呼び出し

"Invoke"に対するコンペンセーションの定義
図10:"Invoke"に対するコンペンセーションの定義

   WIDのビジネスプロセスエディタを使用した場合、正常系のフローと同様にGUIのエディタ上でコンペンセーションのロジックが記述できる。また、その記述に基づいたWSBPELは内部で自動的に生成される。

   以上見てきたような流れでビジネスプロセスの仕様を定義し、WSBPELの仕様に基づいたXML形式のファイルを作成していくことが、ビジネスプロセスの実装作業となる。


終わりに

   今回はO社のネット注文システムを例にWSBPELを記述していく流れを見た。次回はこのようにして作成したビジネスプロセスに対して変更を行う際の柔軟性について説明していく。

前のページ  1  2  3  4


日本アイ・ビー・エム株式会社 小倉 弘敬
著者プロフィール
日本アイ・ビー・エム株式会社  小倉 弘敬
日本アイ・ビー・エムソリューション開発 インテグレーション所属
ソフトウェア・エバンジェリスト。担当分野は、ビジネス・プロセス・インテグレーション(BPI:Business Process Integration)。WebSphere Business Integration(WBI)ソリューションセンターで、BPIソリューションの開発/提供に従事する。


日本アイ・ビー・エム株式会社 佐藤 泉
著者プロフィール
日本アイ・ビー・エム株式会社  佐藤 泉
入社以来、ワークフロー、ビジネスプロセスエンジン、ビジネスプロセスモニターなどのソフトウェア製品の開発やそれらの製品をベースとしたソリューションの提案活動に従事。
特に、SOAに則ったBPI(Business Process Integration)やBIO(Business Innovation and Optimization)を得意分野とする。


日本アイ・ビー・エム株式会社 津田 佳一
著者プロフィール
日本アイ・ビー・エム株式会社  津田 佳一
日本アイ・ビー・エム ソリューション開発 インテグレーション所属
BPIソリューションの開発/提供に従事する。


INDEX
第2回:ビジネスフローの設計
  はじめに
  WSBPELの記述
  サービス呼び出し(Invoke)方式
コンペンセーション(補償ロジック)の設計