Webサービスにおけるビジネス・プロセスとトランザクションの自動化

BPELWS、WS-Coordination、およびWS-Transactionの紹介

新しいBusiness Process Execution Language for Web Services、WS-Transaction、およびWS-Coordination仕様によって提供される包括的なビジネス・プロセス自動化フレームワークを使用すれば、企業はWebサービス・アーキテクチャーの能力や利点を活用したビジネス・トランザクションの作成と自動化を行えます。この記事では、この新しい3つの仕様が提供するものについて、管理職向けの高水準な概説を行います。

James Snell (jasnell@us.ibm.com), Software Engineer, Emerging Technologies, IBM

James Snellは、IBMのEmerging Technologies Toolkitチームの一員です。過去2年間は、新興のWebサービス技術や標準などに焦点を当てており、またAtom 1.0仕様にも貢献しました。新興技術に焦点を当てたウェブログ、http://www.ibm.com/developerworks/blogs/page/jasnellを維持管理しています。


developerWorks 貢献著者レベル

2002年 8月 01日

企業内での動的なe-businessの役割は、技術および企業領域におけるビジネスおよびアプリケーション・プロセスの統合を単純化することです。比較的最近登場したSOAP、WSDL、およびUDDIなどのWebサービス・テクノロジーにより、分散アプリケーションが互いに接続して共同作業する方法に関する考え方はますます進化し、より動的な経済環境が生み出されました。

Webサービスのコアとなるこれらの仕様 (SOAP、WSDL、UDDIなど) はいずれも、それら単独で個々のWebサービスを接続して信頼および依存できるビジネス・ソリューションを作成する方法を記述するメカニズムを提供するわけではありません。テクノロジー業界は、Webサービスでこのような接続を記述できるようにビジネス・プロセスを定義してインプリメントする方法について、標準化された単一の視点をまだ生み出していません。お客様の心配や必要に応えるため、IBMは再びMicrosoftその他とチームを組み、Business Process Execution Language for Web Servicesを開発して提案しました。この新しい仕様は、IBM Web Services Flow Language (WSFL) およびMicrosoft XLANG文法でなされていた個別の努力を置き換え、付加的な機能とより大きな柔軟性を提供します。

Business Process Execution Language for Web Services (略してBPEL4WSまたはBPEL) は、XMLベースのワークフロー定義言語であり、企業はこれを使用すれば、Webサービスの利用と提供の両方を行える洗練されたビジネス・プロセスを記述できます。この記事では、BPELの根本原理に加え、同様にIBMとMicrosoftによって共同開発された2つの重要で補足的な仕様であるWS-CoordinationおよびWS-Transactionを紹介します。これらの仕様は、短期間および長期間実行されるビジネス・アクティビティーの信頼できる結果を調整する方法を扱います。この問題は、分散ビジネス・プロセスのインプリメンテーションを成功させる上で中心をなします。

BPEL、WS-Transaction、およびWS-Coordination仕様の機能と利点を示すため、実世界のビジネス・シナリオへのこれらのテクノロジーの適用例を考えます。

課題

架空の旅行会社であるAcme Travel Serviceは、顧客がWebベースのアプリケーションを介して旅行の計画と予約を行えるようにすることに決定しました。このアプリケーションの一部として、Acmeは、ビジネス・パートナーと顧客がWebサービス・インターフェースを介して同社のサービスにプログラムによるアクセスができるようにすれば (それにより、顧客やパートナーがAcme Travelのサービスを自社のビジネス旅行プロセスにゆるやかに統合できるようにすれば)、戦略上の重大な利点を獲得でき、ビジネスを合理化するのに役立つことに気付きました。

Acme Travelは、Webサービスの開発とデプロイメントにより、以下の3つの鍵となる目標を達成しようとしています。

  1. 顧客がAcme Travelエージェントに旅行日程を送信できるようにする。
  2. 顧客の日程に適した航空便、ホテル、および自動車の予約を自動的に行う。
  3. 日程の処理が完了した時点で、すべての予約内容の確認を自動的に顧客に戻す。

しかし、Acme Travelは、このソリューションが機能するには、同社の日程処理ワークフローを取引先の航空便、ホテル、およびレンタカー会社の日程処理ワークフローに統合する手段が必要であることに気付きました。この事実により、以下のいくつかの別個の課題が浮き彫りになりました。

  • Acme Travelは、外部化したい顧客向けのWebサービスを、ビジネス・パートナーと統合させ自動化したいビジネス・プロセスに接続する手段が必要である。
  • 各パートナーは、Acme Travelが同社のビジネス・プロセスをそのパートナーの予約システムに直接統合できるようにする手段を外部化する必要がある。
  • Acme Travelは、プロセス全体の信頼性と信用性を保証できなければならない。
  • Acme Travelは、顧客の日程が満足のいくように処理されることを適切に保証するため、個々のパートナーのアクティビティーを調整できなければならない。

Acme Travelがインプリメントしようとしている基本的なプロセスを 図1 に示します。

図1: 予約プロセス・フロー
予約プロセス・フロー
  1. Acme Travelは、顧客のKarlaから日程を受け取ります。
  2. プロセスは、日程に誤りがないかどうかを調べてから、行うべき予約を判別し、適切な航空便、ホテル、およびレンタカー会社に同時要求を送って適切な予約を行います。
  3. 3つの予約タスクのいずれかが失敗すると、"compensate (補正)" アクティビティーが実行されて日程は取り消され、その問題についてKarlaに通知されます。
  4. Acme Travelは、3つの予約要求が確認されるのを待機します。
  5. 確認を受け取ったら、Acme Travelはプロセスが正常に完了したことをKarlaに通知し、予約確認番号と最終的な日程の詳細を送ります。
  6. Karlaは、要求した日程の成功または失敗について通知を受けたら、別の旅行要求を送信できます。

プロセス自体はそれほど驚くようなものでなく、複雑でもありません。しかし、課題となるのは、このようなプロセスの定義ではなく、インプリメンテーションです。これは、複数の独立したビジネス・パートナーが存在し、それぞれがプロセスの自社部分を互換性のない恐れのあるテクノロジーで異なるビジネス要件によってインプリメントする場合は特にそうです。しかし、BPEL、WS-Coordination、およびWS-Transactionを適用すれば、この課題の解決策は明確になります。

解決策

IBMとMicrosoftによって公開されたBusiness Process Execution Language、Web Services Coordination、およびWeb Services Transaction仕様は、以下のことを行う手段を提供することにより、Acme Travelが目標を達成するためのメカニズムを提供します。

  • 航空便、ホテル、およびレンタカー関係のパートナーの予約サービスを自社のビジネス・プロセスに統合する方法を定義する
  • ビジネス・プロセスの特定のアクティビティーをWebサービスとして公に外部化する方法を定義する (たとえば、顧客の旅程の入力を待つアクティビティー)
  • 全体的なビジネス・トランザクション内で複数のWebサービスのアクティビティーを調整する
  • プロセス・フロー自体から導出されたデータ (顧客が使用したい航空便やレンタカー会社など) に基づき、実行時に複数のプロバイダーのサービスに動的にリンクする

この解決策では、Acme Travelの取引先の航空便、ホテル、およびレンタカー会社が自社の予約システムをWebサービスとして外部化していることを想定しています。

ステップ1: ビジネス・プロセスの定義
Acme Travelの最初のステップは、インプリメントするビジネス・プロセスを定義して文書化することです。Business Process Execution Languageが備えているXML文法を使用すれば、Acme Travelは計画予約プロセスの抽象記述を作成できます。

BPELと他のWebサービス・ベースのプロセス調整仕様の主な違いの1つは、BPEL文書が、ビジネス・プロセス・エンジンで解釈して記述されているプロセスをインプリメントすることができる、実行可能スクリプトであるということです。プロセスの各ステップは単一のビジネス・アクティビティーに対応します。各アクティビティーは、Acme Travelまたはいずれかのビジネス・パートナーによって提供されたWebサービスとの対話としてインプリメントされます。このスクリプトのいくつかの部分は、情報がプロセスに流れ込んでさまざまなアクション (たとえば、顧客からの計画の受け取りや、顧客への予約完了の通知) を引き起こすことができるように、外部化する必要があります。スクリプトのこれらの部分はWebサービスとして外部化されます。これらのすべての処理を引き起こすためのリソースは、BPELを理解できるビジネス・プロセス実行エンジンによって提供されます。Acme Travelのデベロッパーが行わなければならないのは、プロセスを定義し、各アクティビティーのビジネス・ロジックを提供し、プロセスと対話するビジネス・パートナーや顧客のWebサービスを見付ける方法をエンジンに伝えることだけです。

ステップ2: 調整(coordination)とトランザクション
ビジネス・プロセスが定義され、ビジネス・パートナーとの接続が定義されたら、次のステップは、信頼できる結果を生成できるようにAcme Travelビジネス・プロセスに関係するすべてのアクティビティーを調整するメカニズムを提供することです。いくつかの別個のタスクを正常に完了する必要があり、そのうちのいくつかは同時に実行する必要があります。Acme Travelはすべてのタスクが全体として成功するか失敗することを保証する必要があります。

長時間に渡り実行される分散トランザクションは、常に解決が難しい問題でした。基本的な技術上の質問以外にも、互換性を持っていない恐れのあるソフトウェア・インフラストラクチャーを実行するさまざまなビジネス・パートナーが実行する一群のビジネス・タスクによって引き起こされる継続時間の延長や通信の待ち時間により、複雑な要件が発生します。Acme Travelが行いたいと思っているプロセスのようなトランザクションは、タスク単位で制御しなければならず、個々のアクティビティーがプロセス全体に関係するときにその結果をインフラストラクチャーでモニターして管理する必要があります。従来のトランザクションおよび調整フレームワークは、個々のビジネス・タスクを管理するのに最も適しています。

もう1つの課題は、既存の独自のトランザクション・サービス・インプリメンテーションを互いに直接接続することです。このような製品のほとんどは、"out-of-the-box (箱から出しただけ)" では共同で機能しません。Webサービスは、多様なプラットフォームを統合できる共通のフレームワークを提供することにより、これらの製品の間に橋を築くのに役立ちます。

WS-CoordinationおよびWS-Transaction仕様は、長時間に渡り実行される自動化されたビジネス・トランザクションの信頼性を向上させるWebサービス・ベースのアプローチを拡張および相互運用可能な仕方で提供することにより、BPELを補完します。

これが機能する仕方は単純です。Acme Travelビジネス・プロセスには、共通のソリューションを提供するために共同で機能するいくつかのWebサービスが関係しています。プロセスが成功するには、各サービスが自身のアクティビティーを調整できなければなりません。調整は、各Webサービスに少量の共通情報を共用させ、その情報を使って個々のアクティビティーをプロセス全体にリンクさせることによって行われます。WS-Coordination仕様は、共用される"調整コンテキスト(coordination context)" からこれらのサービスが機能できるフレームワークを定義しています。このコンテキストには、さまざまなアクティビティーをリンクするために必要な情報が含まれています。

一方、WS-Transactionは、調整されている個々のアクティビティーの成功または失敗をAcme Travelがモニターするためのフレームワークを提供します。これにより、Acme Travelは予約プロセスをモニターし、途中で何かがうまくいかなくなった場合に確実にプロセスを取り消すことができます。ここで、"確実に" とは、計画のある部分を処理できなかったときには計画全体が処理されず、計画のある部分がすでに処理済みであるとき (たとえば、航空券がすでに予約済みであるとき) には実行済みの作業を補正して取り消せることを意味します。WS-TransactionはWebサービスに基づいているので、ベンダー固有のトランザクション管理アプリケーションにまたがってトランザクション・サポートを相互運用できます。

利点
この記事で提案されているビジネス・プロセス、調整、およびトランザクション管理モデルは、お客様が次のようないくつかの鍵となる利点に気付くのに役立ちます。

  • Webサービス・アーキテクチャーの最上部に構築される。Webサービスを使用すれば、互換性を持たない恐れのあるさまざまな実行時プラットフォームで実行されているアプリケーションが、柔軟で動的な仕方で相互に統合および対話できます。BPEL、WS-Coordination、およびWS-Transactionを使用すれば、この基礎が拡張され、企業は統合プロセスを合理化してより柔軟なビジネス・プロセスをインプリメントできます。
  • 拡張可能。BPEL、WS-Coordination、およびWS-Transactionは、コアとなる部分において、ビジネス・プロセスをインプリメントする一般的なフレームワークを提供していますが、企業がビジネス要件に合わせて詳細な部分を拡張したりカスタマイズしたりする余地を多く残しています。このため、ビジネス要件の進化とともにツールも進化できるので、必要が変化するときに長期的な開発コストを節約できます。
  • 柔軟。BPEL、WS-Coordination、およびWS-Transactionによってもたらされたフレームワークは、広範囲なトランザクション型および非トランザクション型のビジネス・プロセスをサポートしています。
  • 持続性と信頼性のある処理が可能。WS-Transaction仕様は、大規模なプロセスで完了しなければならない個々のタスクの信頼性をモニターする手段を備えています。一方、BPEL仕様は、失敗したタスクを補正する方法を定義する手段を備えています。

BPEL、WS-Coordination、およびWS-Transactionにより、Acme Travelはビジネス・レベルにおいて、それぞれが利用することにした特定の開発または実行時プラットフォームに関係なく、自社のビジネス・アクティビティーをパートナーや顧客のビジネス・アクティビティーと容易に統合できるような仕方で、すべての目標を達成できます。これにより、Acme Travelとそのパートナーは、本当に重要なこと (ビジネス・ソリューション) に焦点を合わせることができます。

この記事では、いくつかの非常に単純な例により、3つの仕様が提供できるものの概念を示しました。現実のビジネス・ライフでは、より多くの詳細やオプションがあり、調整トランザクション内にビジネス・プロセスや他の調整トランザクションがネストされている場合もあります。BPEL、WS-Coordination、およびWS-Transactionは、Webサービス標準のスタック上に構築されかつ残りの標準を補うような一貫性のある仕方で、これらのすべてのレベルの複雑さを扱うように設計されています。


要約

IBMは、お客様、パートナー、標準化団体、および業界一般と協力してこのアーキテクチャーをさらに開発することを決意しています。この作業が続くとともに、動的なe-businessのためのIBM Web Services ToolKitと、IBM Business Process Execution Language for Web Services Java Runtime (両方ともIBM alphaWorks から入手できます) を始めとする、テクノロジー・プレビューがリリースされる予定です。これらのテクノロジーにより、デベロッパーは、新しい仕様にすぐに触れることができます。

参考文献

BPEL、WS-Transaction、およびWS-Coordinationについてさらに学ぶには、以下の場所にアクセスしてください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=SOA and web services
ArticleID=241881
ArticleTitle=Webサービスにおけるビジネス・プロセスとトランザクションの自動化
publish-date=08012002