柔軟性の高いシステムを目指すSOA/ESB 4

ESBの役割

ESBの処理パターン   前回はWebサービスとESBの違いを解説し、ESBは粒度の大きなサービスを提供する際にメディエーションとして利用されると説明してきた。この ようなサービスは複数のステップから構成されていることが多く、これらのステップを分類した言葉として「VETRO」がある。

高安 厚思

2006年8月7日 20:00

ESBの処理パターン

   前回はWebサービスとESBの違いを解説し、ESBは粒度の大きなサービスを提供する際にメディエーションとして利用されると説明してきた。この ようなサービスは複数のステップから構成されていることが多く、これらのステップを分類した言葉として「VETRO」がある。

   VETROとは表1であげる項目の頭文字であり、メディエーションのステップの典型的な処理を示している。


項目 説明
Validate メッセージの検証
Enrich メッセージに情報を付加
Transform メッセージの変換
Route ルーティング
Operate 処理
表1:VETROの構成要素

   まずは、これらの構成要素を説明する。

Validation(検証)

   Validationステップは、入力されたメッセージが正しい形式のXML文書になっており、該当するXMLスキーマあるいはWSDL文書に準拠しているかを確認することである。

Enrich

   入力されたメッセージにデータを追加し、サービスの前提条件を満たす処理をEnrichと呼ぶ。

   例えば、ユーザ情報が前提条件となるサービスを呼び出す場合を考えてみよう。このサービスを呼び出す度にクライアントはユーザ情報を検索して格納しなければならないとすると、サービスの利便性は高くない。

   そこでEnrichの処理パターンを利用して、メッセージの中にユーザIDを含めて、EnrichをおこなうサービスがユーザIDからDBを検索し て、ユーザ情報を取り出してメッセージに追加し、後続のサービスを呼び出すとすれば、前提条件を少なくすることができ、再利用の可能性をあげることができ る。

コラム


EnrichはESB固有だけではない

   EnrichはESB固有の処理ではなく、エンタープライズインテグレーションに欠かせない方法である。グレーゴル・ホペのエンタープライズインテグレーションパターンにもEnrichは紹介されている。

Transform

   Transformステップは、メッセージフォーマットの変換をおこなうステップである。

   SOAで求められるサービスの粒度では複数のOperationが呼び出されることが多く、入力されたメッセージフォーマットがOperation のメッセージフォーマットであることは少ない。そのため、このステップでは入力メッセージの一部を取り出してOperationのメッセージとし、 Operationが呼び出された後の出力メッセージを取り出して入力メッセージの一部とするなどの処理を行う。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る