ESBの役割

2006年8月7日(月)
高安 厚思

最後に

   第2〜3回で説明した疎結合のレベルを高めるための指針が、ESBの機能によって実現できることを説明してきた。今一度、ここでまとめておこう。


RPC指向よりもメッセージ指向に
ESBのサービスは単純な関数としてサービスをとらえるのではなく、メディエータとしてサービスをとらえるべ きだ。そのためESBのサービスに入力されるメッセージは、関数の引数ではなく粒度の大きい意味のある単位で考える。そのため、RPC指向よりもメッセー ジ指向になる。
 
同期よりも非同期
ESBが複数のトランスポートをサポートしているために、SOAPやJMSといった同期・非同期にかかわらずにサービスを呼び出すことができる。そのため、同期よりも非同期にすることが可能だ。
 
ヘテロジニアス環境で実現する
Webサービスへの接続、外部アダプタの利用によりヘテロジニアスな環境で実現することが可能だ。ただし、Webサービスの呼び出しに関しては標準仕様のバージョンなどにより接続ができない場合があるので、WS-IのBasicプロファイルに対応させるなど工夫が必要だ。
 
結合要素間の技術は変更可能にせよ
複数トランスポートサポートと外部アダプタなどによって、結合要素間の技術を変更可能とすることができる。第 2回の例として説明したEJBとメッセージキューシステムを統合する場合は、JMSのAPIを利用してEJBもメッセージキューシステムも統合することが 可能となる。
表2:疎結合のレベルを高めるための指針

ESBの位置づけ

   ESBを語る上で、よく聞くのが「BPELとの違いと何か」ということである。そこで、ESBとBPELサーバ(エンジン)との違いを明確にするこ とで、ESBの位置づけを明確にしていく。また、ESBを提供しているベンダーによってこの2つの使い分けが異なっているため、SOAを導くシステムのイ メージに混乱が生じているともいえる。

   両者の違いを考える上では2つの立場がある。1つはESBをミドルウェアの中心としてメディエーションをうまく利用するという立場で、もう1つは BPELサーバをミドルウェアの中心としてメディエーションはBPELとして記述する。ESBは位置透過性やルーティングといった役割だけを持つという立 場だ。どちらが正しいというわけではない。各プロダクトの特徴をうまく利用することが大事なのである。

   本連載ではESBを中心としてとらえ、次の場合にBPELを利用するという方針にしていく。

  • サービス間に距離がある場合(組織そのものやネットワークが異なる場合)
  • メディエータの内部に複雑なビジネスロジックを用いる場合
  • メディエータの中から非同期呼び出しをする場合
表3:BPELを利用する場合

   次回以降でBPELの詳細について説明する。

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

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

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

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

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

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