PR

ESBを必要とするシーン

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

サービスのトランスポートを抽象化する場合

   ESBはサービス本体が実装しているトランスポート(SOAP/JMS/IIOP)に関わらず、他のトランスポートを利用して呼び出すこともでき る。そのためサービスを抽象化して、トランスポートに関係なくサービスを利用したい場合は、ESBを利用したほうがよい。


サービスの組み合わせをメディエーションする場合

   第1回で解説した疎結合のレベル3を実現するためには、粒度の細かいサービスを組み合わせて、粒度の大きなサービスを提供する必要がある。この場合は後で説明するESBのメディエーション機能を利用すると便利であるため、ESBを利用するとよい。

   またESBは、メッセージの粒度を大きくして処理するため、メッセージ全体をPOJOにマッピングするのではなく、必要に応じてメッセージの一部をPOJOにマッピングするといった特徴がある。

   このことは必ずしもSOAがESBを必要としていることを示しているのではなく、サービスの粒度を大きくして疎結合にするためにはESBが適していることを示している。

ESBが持つ機能

   WebサービスとESBの違いを解説してきたが、ESBのプロダクトは表2に関するすべての機能を持っているとは限らない。そこで、ESBのプロダクトが一般的に持っている機能を以降より解説する。

サービス実行

   これは、リクエストがエンドポイントに到達した際にマッピングされたサービスを実行する機能である。このサービスは、リクエストやエンドポイントに依存しないように作成され、マッピングや形式の変換(ESBの独自形式)などはESB側が行う。



サービス実行の流れ
図2:サービス実行の流れ

   なおこのサービスは、ESB固有のAPIやインターフェースなどを利用して実装されるが、AOPやアノテーション技術を組み合わせて、POJOをサービスの実装とするESBプロダクトも存在している。

   また、サービスとエンドポイントの間にサービスの実行用のコンテナ(サービスエンジンとも呼ばれる)を動的に挟み込むことで、サービスの呼び出しの 前後に機能を追加することができるようになる。このことでWebサービスセキュリティの呼び出しなどが宣言的に行えるようになる。

複数のトランスポートサポート

   サービスの予期しているトランスポート以外のトランスポートを呼び出すことができる機能が、複数のトランスポートサポートである。ここでいうトラン スポートとは、サービスの呼び出しを行うプロトコルのことを意味しており、SOAP/JMS/IIOPなどにあたる。

   一般的なWebサービスエンジンは、SOAPによる呼び出ししかサポートしておらず、Webサービスを受けるクライアントが他のシステムとJMSでやり取りしていても、このサービスを呼び出すためにはSOAPで呼び出さなければならないのとは対照的である。

   なお、SCA(Service Component Architecture)のEntryPointやJBIのBC(Binding Component)はこのトランスポートサポートを実現している。

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

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

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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