
エンタープライズ・サービス・バス(英: Enterprise service bus, ESB)は、一般に標準に基づくミドルウェアインフラストラクチャー製品で実装されるソフトウェアアーキテクチャの構成要素であり、上位のより複雑なアーキテクチャの基盤となるサービスを提供するイベント駆動型で標準ベースのメッセージングエンジン(バス)である。
ESB は一般に Enterprise Messaging System の実装の上の抽象化層を提供し、コードを書かずにメッセージングの利点を活用できるようにする。一方、以前からあるエンタープライズアプリケーション統合 (EAI) はハブ・アンド・スポーク型アーキテクチャによるモノリシックな構成であり、ESB ではその構成要素を機能単位に分割し、必要に応じて協調動作するよう分散配置される。
ESB 自体はサービス指向アーキテクチャ (SOA) の実装ではないが、SOA 実装のための機能を提供する。ESB は必ずしも Webサービスに基づいてはいない。例えば、ESB Muleは従来のシステムとの連携を容易に行えるようにするためにFTP, SMTP, POP3, RESTなどの非Webサービス技術にも対応している。ESB は標準ベースで柔軟であり、各種転送媒体をサポートしている。呼び出されるサービスと転送媒体の結合度を弱めるのは、SOA の特徴ではなく、ESB の特徴である。
ESB 製品の多くは SOA での利用を第一に考えられており、それにより利用が広がりを見せている(BPELなど)。
エンタープライズサービスバスは一連の機能を総称する便利な用語であり、その実装は様々である。ESB が実体のある製品なのか、アーキテクチャ的なスタイルなのかは議論となっており、ESBの実装も定まっていない(中核となるサーバを持つ場合もあるし、持たない構成もある)。例えば、SOAP と WS-Addressing を組合わせたものが ESB であるという者もいる。いずれにしても、以下のようなESBの中心となる機能は共通で認識されている。
| カテゴリ | 機能 |
|---|---|
| 呼び出し | 同期および非同期の転送プロトコルをサポート |
| ルーティング | アドレス指定可能性、コンテンツベースのルーティング |
| 調停 | アダプター、プロトコル変換、データ変換/翻訳 |
| 複合イベント処理 | イベント翻訳、相関、パターンマッチング、出版-購読 |
| その他サービス品質 | セキュリティ(暗号と認証)、高信頼なデータ転送、トランザクション |
| 管理 | モニタリング、監査、ロギング、計測、など |
さらに、ESBは以下の特徴を備えることが多い。