BPEL

BPELとは、ネットワーク上で複数のアプリケーションの機能を順に呼び出してタスクを実行する手順を一連のビジネスプロセスとして記述するための言語. Business Process Execution Language.

BPELの概要
BPELとは、ネットワーク上の複数のアプリケーションの機能を自動的に順々に利用してタスクを処理し実行していくプロセスを記述するための言語であり、その役割は の二つである. BPELで記述されるビジネスプロセスは「BPELプロセス」または「BPELフロー」と呼ばれる.
 * 抽象プロセスの記述
 * 実行エンジンへの実装

BPELで記述されたプロセスでは自動的にアクティビティが処理され、一連のフローをあたかも1つのサービスとして呼び出せる形になっている. このような、サービスを「コンポジットアプリケーション（Composite Application）」と呼ぶ. また、アプリケーションの機能をネットワーク経由で利用できるようにしたものを「webサービス」と言い、www（World Wide Web）関連の技術が利用されている. webサービスは、命令を送信すれば、webを通じて自動的に期待するアクションを返してくれる. BPELは、このWebサービスを利用してプロセスを実行していくための言語である.

XMLベース
BPELは、XML（Extended Markup Language）に基づいている言語である. ネットワークを利用してアプリケーションの機能を利用するので、XMLベースになっている.

webサービスの利用
BPELでビジネスプロセスを定義する際は、 といったアクティビティを組み合わせ、「リクエストメッセージをreceiveすることで実行が開始され、実行結果をreplyすることで終了する」というプロセスを作成するのが基本となる. これらは、webサービスを利用して自動的に実行される.
 * invoke（アプリケーションの機能を呼び出す）
 * receive（要求を受信する）
 * reply（結果を返信する）

BPMN・BPEL・XPDLの比較
BPELは、ビジネスプロセスのグラフィカルな表現方法の定義や特定の設計手法を提供するものではない. ビジネスプロセスのグラフィカルな表現方法を規定するのは、BPMNである. frame|raight|BPMN・BPEL・XPDLイメージ

BPELは、Webサービスを使ったプロセスをデザインするための実行言語であって、アプリケーションを統合しプロセスを自動的に実行するのに向いている. BPELで書かれたデータの形式は、テキストファイルになる. それに対して、BPMNはビジネスプロセス図の描写法を規定するものであり、ビジネスプロセスをグラフィカルに表現するのに向いている. BPMNに従って書かれたデータは、画像ファイルになる. XPDLはBPMNで表記されたビジネスプロセス図をテキスト化し保存するための言語である.

BPMNからBPELへの変換
BPMNではBPELへのマッピングが示されているが、すべてがBPMNからBPELへの変換できるわけではなく、多くは複雑化したり変換できなかったりする.

変換例
ある業務の一部分において、条件によって次に行う作業が異なり、「Xが10以上」なら「A」というタスクを行い「Xが10未満」ならBを行うとする.

BPEL
このような業務をBPEL記述すると以下のようになる. 後半部分のswitch以降が、下図の色付け部分を表す.

 ・　　　　　　　　　　　　　　　・      ・　　　　　　　　　　　　　　　・         　 =10  　　　　　　　　　　　　　　　・　　　　　　　　　　　　　　　・

BPMN
BPEL01.png|frame|right|BPMNによるプロセス図 このような業務をBPMNに従ってプロセス図として表記すると右図のようになる. 色付けされたところが分岐個所である.

BPEL4WS 1.0
2002年にIBM、BEA、Microsoftが、IBMが仕様開発を行っていたWSFLとMicrosoftが開発していたXLANGを基に合同提案. BPEL4WSは、Business Process Execution Language for Web Servicesの略.

BPEL4WS 1.1
2003年にIBM、BEA、Microsoft、SAP、Siebelが標準化団体OASISに提出.

WS-BPEL 2.0
2007年にOASISによって発表. WS-BPELは、Web Service Business Process Execution Languageの略.

WS-BPEL Extension for People1.0（WS-BPEL4People）
2007年にOracle、IBM、BEA、SAP、Adobe、Active Endpointsの6社によって発表されたWS-BPELの拡張版. 複数のアプリケーションを順に利用して実行するビジネスプロセスの記述に向いているWS-BPELに対して、レビュー、認証、データ入力などヒューマンタスクを管理するワークフローの記述向け.

frame|center|BPEL 沿革

BPELとSOAの関係
SOAとは、Service-Oriented Architectureの略で、ビジネスの構成単位に合わせて構築・整理されたソフトウェア部品や機能をネットワークで相互に連携させることによりシステムを構築しようとするシステムアーキテクチャのことである. SOAによりサービス化されたアプリケーションがそろえば、それらを組み合わせたビジネスプロセスが構築される. そのようなビジネスプロセスの定義を行うのが、BPELである. そして、「各アプリケーションをどのように結び付けるか」という問題を扱っているのが、ESBに基づく.

BPELのタグ
BPELの基本的なタグ定義は次の通り.
 * 1) Webサービスの呼び出し
 * 2) 待機状態（リクエストの受信）
 * 3) 同期オペレーションのレスポンスの生成
 * 4) データ操作
 * 5) 失敗、例外を示す
 * 6) 明示的な一定時間の待機状態
 * 7) プロセス全体の停止
 * 8) アクティビティの連続したセットを表す
 * 9) 並列に呼び出されるアクティビティのセットを表す
 * 10) ブランチのCase-switch表現（条件分岐）
 * 11) ループの定義を表す
 * 12) いくつかのアクティビティから選択することを表す

関連記事

 * OASIS
 * BPMN
 * ビジネスプロセス
 * ワークフロー
 * アクティビティ
 * WS-BPEL Extension for People
 * jBPM

参考

 * WS-BPEL 2.0 specification (OASIS standard)
 * OASIS WSBPEL TC Webpage