GoTheDistance

ござ先輩と言われています。(株) クオリティスタートという会社をやっています。

BPELとXPDLの違いについて

面白いPOSTがあったのでご紹介。BPELとXPDLってどう違うんですか?という問いに答えるものです。これが一番わかりやすい説明だと思います。

BPELの性質

BPEL is an "execution language" designed to provide a definition of web services orchestration, specifically the underlying sequence of interactions, the flow of data from pointtopoint. For this reason, it is best suited for straightthrough processing or dataflows visavis application integration.

BPELという言語は、Webサービスの編成をデザインするための実行言語であって、シーケンシャルなデータフローやアプリ統合に向いていると書いてあります。

XPDLの性質

The goal of XPDL is to store and exchange the process diagram, to allow one tool to model a process diagram, and another to read the diagram and edit, another to "run" the process model on an XPDLcompliant BPM engine, and so on. For this reason, XPDL is not an executable programming language like BPEL, but specifically a process design format that literally represents the "drawing" of the process definition.

XPDLはプロセスダイアグラム(業務フローみたいなヤツ)を、保存し交換するためのものであると書いてあります。実際にプロセスをモデリングして、他の人間が読み込んで編集して、そして実際にプロセスを動かしてBPMSで動かすなど・・・。正に文字通りプロセスの定義を「描き表す」ことに特化しているんですと書いてあります。

つまり、BPELが純粋にシステムにとっての実行言語なのに対し、XPDLは対象プロセスをそのまま表現する包括的な実行言語である、ということが言えます。

オレ専用BPEL

very few vendors are using BPEL as an execution language; they're using it as an interchange format, which is causing a lot of confusion about what format to use (XPDL or BPEL) to move process maps between a modelling and execution environment.

が、実際にBPELを実行言語として使っているベンダーはほとんどなく、実際にはモデリング言語と実行言語の橋渡しのフォーマットに使っている。そして、これが多くの混乱をモデリングと実行環境との間で引き起こしているのであるとあります。

どういうことかと言うと、結局XPDLで定義した広範なプロセス定義がBPELで100%カバーできないので、ベンダー独自のコードが入ったりします。OracleBPELIBMBPEL、BEA用BPEL、そんなBPELが出来ちゃいます。当然ながら、そういったBPELの相互互換性が最悪です。

また、TIBCO社の製品のようにXPDLをそのまま実行環境へ繋げているBPMSもあります。

BPELが頑張ってXPDLのような仕事が出来ればいいだろ!っていうのは厳しいんですね。BPELが理解できるのはWebサービスだけですから…。つまり、Webサービスをどのように実行できるかは定義できるけれど、Webサービスを叩かない部分や、業務ルールなどはBPELで定義する事ができないということです。この辺りの整理をすることは結構重要なことではないかと、個人的に感じています。

当然それに目をつけて、このあたりにビジネスチャンスを見出している会社もあります。

Tool Does Matter?

In many cases, the choice of XPDL or BPEL is dictated by what's supported by the tools that you use for processes modelling; those tools intended to model processes of web services orchestrations are more likely to support BPEL, whereas those targetted at the "BPM suites" market are more likely to use XPDL.

多くの場合BPELかXPDLなのかという議論はプロセスモデリングを行うツールが何をサポートするのかによって決定される。使っているツールがWebサービス編成のモデリングを行うBPEL寄りなツールなのか、所謂「BPM Suite」な製品に代表される、XPDL寄りなツールなのかということです。

逆に言うと、どのツールを選定するかによってBPMプロジェクトの進め方がガラっと変わってしまうということが言えます。ここまでTool-Orientedなプロジェクトの進め方があるか、と。Tool does Matterか、と。

だから、BPMで実行基盤を作るというのはすごい難しい話になるんです。ツールによってやり方が変わってしまうような未成熟な世界ですから、もうかなり泥臭い話になる。

世間様を見渡せばBPM事例というのは色々あるんだけれども、「私たちは業務可視化ツールにはコレを使ってAS-ISとTOBE整理して、こういうITインフラを用いてBPMSをこう導入してBPMを実行しましたよ」という核心に触れている事例が1件もありません。*1

ARISやiGrapixや何だかんだで「業務プロセスをこう可視化したんです」 まではみんな一緒で、まぁあとはToBeから逆算してこういう機能をシステムに搭載すればいいよねって感じで頑張りましたってのがほとんどなのも、頷ける話です。

*1:あったら教えてください。

SQLを学習できるWebサービスを作りました。