ESBとBPELサーバの連携

2006年9月13日(水)
高安 厚思

BPELサーバ

   BPELは実行時には、BPELエンジン上にデプロイされたBPELで記述したファイルが実行される。BPELで作成したプロセスは、一般に receiveアクティビティからはじまる。このアクティビティにメッセージが到着して、プロセスがスタートする。この実行時にBPELを制御するのが BPELサーバ(BPELエンジン)だ。BPELサーバの構造を抽象的に記述すると図3のようになる。


BPELサーバの構造
図3:BPELサーバの構造
(画像をクリックすると別ウィンドウに拡大図を表示します)

   BPELサーバは次の4つの機能から構成されている。

  1. 外部インターフェース
  2. プロセス実行管理
  3. BPELファイル管理
  4. 名前空間・WSDL管理
表3:BPELサーバの4つの機能

   外部インターフェースは、外部との関係で説明した外部からの呼び出し、外部の呼び出しを制御する機能だ。これらの機能はESBなどの他のミドルウェアで実装する場合もあるだろう。

   プロセスの実行管理は、BPELサーバにおける主要な機能だ。外部からの呼び出しに伴い、対象となるBPELファイルを選択し、BPELファイルか らプロセスのインスタンスを生成し、BPELの通りにアクティビティを実行する。そしてこれらの実行状態を内部のデータベースに格納する。

   BPELファイル管理は、BPELエンジンで実行するBPELファイルを管理する。BPELサービスをBPELエンジンにデプロイした時にファイルの管理をおこなう機能だ。

   名前空間・WSDL管理は、BPELと関係付けられるWSDLの名前空間とWSDLファイルを管理する機能だ。WSDLファイルを必要とする場合はBPELファイルと一緒にデプロイする必要がある。

BPELとESBの使い分け

   メディエーションという意味では、ESBとBPELは重なる領域がある。これらの使い分けはシステムアーキテクチャ決定の場面で重要な役割をはたす だろう。しかし、その決定を定式化できるわけではなく、ソリューションのパターンとして理解し、プロジェクトの状況・ミドルウェアの性質に応じてパターン を使い分ければよい。次から解説する3つの点に考慮すると考えやすいだろう。

ESBが複数ある場合(組織そのものやネットワークが異なる場合)

   組織やネットワークが異なる場合はESBが複数存在する場合が多い。この場合にESBが単一であるとすればシステム全体がバス型ではなく、ハブ型の統合になっており、SOA的なシステムから遠ざかっていることになる。

   そのため、ESBが複数あるシステム構成になることはまれではない。このような場合、ESB間をサービスの呼び出しによって統合することも可能だが ESBのサービス自体が順序に依存する場合もありそのような場合は呼び出したという状態を管理する必要があろう。その意味で、ESBが複数ある場合は BPELを利用することになる。

株式会社オープンストリーム テクニカルコンピテンシーユニット 主管システムズアーキテクト

横浜国立大学経営学部卒。銀行系シンクタンクでオブジェクト指向技術の研究に携わった後、大手SIerにて アーキテクチャ構築、プロセス研究に携わった。現在株式会社オープンストリームにてSOAを中心とする研究開発およびアーキテクチャ構築に従事。最近は XMLのダイナミックさに魅了されている。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています