ESBを必要とするシーン

はじめに   前回は、疎結合を実現するための技術要素について説明した。今回は、その技術要素を実現するESB(Enterprise Service Bus)について説明する。ESBとは   ESBを最初に提唱したガートナ社は、「ESBとはWebサービスおよび他の標準仕様に基づいて書かれた標準コンポー

高安 厚思

2006年7月24日 20:00

はじめに

   前回は、疎結合を実現するための技術要素について説明した。今回は、その技術要素を実現するESB(Enterprise Service Bus)について説明する。


ESBとは

   ESBを最初に提唱したガートナ社は、「ESBとはWebサービスおよび他の標準仕様に基づいて書かれた標準コンポーネントをお互いにリンクするこ とができる標準技術に基づいたバス」と定義している。つまりは標準仕様に基づく、概念/アーキテクチャ/パターンということである。

   しかし、この定義に基づいてシステムを構成するためには、複数の高度な技術を統合させる必要があり、実現は難しかった。そこで、ESBベンダは「標準仕様に基づいたバス」をミドルウェアとして実装し、プロダクトとして提供している。

   このようにESBには2つの側面があるため、混乱を招いていると考えられる。そこで、次項からは、プロダクトとしてのESBについて取り上げ、具体的なプロダクトを想定せず、共通と思われる部分を説明していく。

ESBの必要性

   まずは、なぜESBが必要かということを説明する。読者の中にはApache AxisのようなWebサービスコンテナがあればESBなんて必要ないと思っている人もいるだろう。それはそれで一理あるが、状況によっては異なるのではないかと筆者は考えている。

   そこで実際にWebサービスとESBを比較してみた。それをまとめたのが次の表1になる。



性質WebサービスESB
トランスポートSOAPのみ複数のトランスポートをサポート
ルーティングSOAPによるルーティングメッセージレベルルーティング
メッセージの
粒度
関数を呼び出すの必要な粒度複数の関数を呼び出せる粒度
位置透過性WSDLのエンドポイントだけが有効あり
表1:WebサービスとESBの違い

   表1の違いと一般的性質から、次のような状況ではESBを利用する必要があるといえる。


  • サービス数の増加に対応する場合
  • サービスのトランスポートと違うトランスポートで呼び出したい場合
  • サービスの組み合わせをメディエーション(注1)する場合
  • サービスに関する位置透過性を必要としている場合
表2:ESBを利用する必要がある場合

※注1: 複数のサービスを集中管理し、1つにとりまとめること

   では、表2の状況を個別に詳しく解説していく。WebサービスとESBの違いを理解することによって、ESBを利用すべきシーンが理解できるかと思う。

サービス数の増加に対応する場合

   図1の左の状況をみれば、サービスが増加するとその組み合わせが指数的に増えていくことは想像に難くないだろう。このような煩雑さを解消するために は、中間に一層もうけて、組み合わせの数を減少させる必要がある(図1の右側)。このような中間の層は接続の確立や情報の変換を行っており、これこそが ESBである。



サービスが多くなる場合の比較
図1:サービスが多くなる場合の比較

   このように、ESBはエンドポイント(注2)とWSDLの管理をして、中間層の役割を果たしている。



※注2: サービスの呼び出し先をあらわしており、SOAP/HTTPではURI、JMSではデステネーション(キュー名/トピック名)であらわされる。

人気記事トップ10

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

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30