エンタープライズ・サービス・バス

エンタープライズ・サービス・バス（）は、一般に標準に基づくミドルウェアインフラストラクチャー製品で実装されるソフトウェアアーキテクチャの構成要素であり、上位のより複雑なアーキテクチャの基盤となるサービスを提供するイベント駆動型で標準ベースのメッセージングエンジン（バス）である。

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は以下の特徴を備えることが多い。
 プロセス編成、ビジネスプロセス定義機能（別製品で提供されることもある）。
 大規模な実装のための部品であり、異機種混合のシステムを SOA（サービス指向アーキテクチャ）によって管理可能にする。ただし、ESB MuleのようなオープンソースのESBは、中小規模のための部品である。
 オペレーティングシステムやプログラミング言語に依存しない。例えば、Javaと.NETのアプリケーションの相互運用を可能にする。
 XMLを通信言語として使用。
 Webサービス標準規格をサポート。
 各種メッセージ交換パターン(MEP)をサポート（同期、非同期、send-and-forget、出版-購読など）
 標準ベースのアダプター（J2EE Connector ArchitectureやSAPなど）で既存システムとの統合をサポート
 コンポーネント指向設計によるモジュラー・アーキテクチャ
 データ形式の変換のために、変換サービス（XSLTやXQuery）を備え、メッセージの送信側アプリケーションと受信側アプリケーションで必要な形式が異なる場合にも対応。
 メッセージ送受信のためのスキーマに対する妥当性検証
 中核のない構成の場合、メッセージを状況によってルーティングしたり変換したりする。
 SLA（サービス水準合意）に従って、メッセージ遅延などをモニタリングする。
 ユーザーの優先順位付けに従ってサービスをクラス分けする。
 アプリケーションが一時的に動作できない場合、メッセージをキューに保持する。

主な利点と欠点

利点 
 既存のシステムを素早く安価に利用できる。
 柔軟性の向上。要求仕様が変わっても容易に対応可能。
 標準仕様に基づいている。
 企業内の一部門から始めて全体に適用できるスケーラビリティ。
 中核となるサーバなどが不要。
 システムを停止させずに機器追加などが可能。

欠点 
 エンタープライズメッセージモデルは一般に強制的である。
 ESB の価値を高めるには、多数の異なるシステムがメッセージ標準によって協調動作する必要がある。
 ベンダーによっては、実装のためにさらなるハードウェア投資が必要。
 ESBを構成するための新たな技能を必要とする。
 従来のメッセージ指向システムに比較すると、変換（翻訳）層が新たに追加されている。

導入する場合の注意点 
 将来計画なしでメッセージのバージョンを重ねていくと、システム間の結合度が強まってしまう。
 効果的に実装するには、ITILなどのITガバナンスモデルで企業戦略を明確化していなければならない。

主な製品 

 有償ソフトウェア
 ActiveMatrix ESB（TIBCO Software）
 ASTERIA WARP（インフォテリア）
 DataSpider Servista（アプレッソ）
 Fiorano ESB（フィオラノ ソフトウェア）
IBM Integration Bus（日本アイ・ビー・エム）
IBM WebSphere ESB（日本アイ・ビー・エム）
InterSystems Ensemble
Information_Builders iWay Service Manager
Microsoft Azure Service Bus （日本マイクロソフト）
Microsoft BizTalk Server （日本マイクロソフト）
Mule ESB （MuleSoft）
 OpenText AppWorks (オープンテキスト)
Oracle Enterprise Service Bus （日本オラクル）
Progress Software Sonic ESB （Trilogyにより買収）
SAP Process Integration
 Talend Open Studio for ESB（Talend株式会社）
 Talend Enterprise ESB（Talend株式会社）
 Talend Platform for Data Services（Talend株式会社）
Sonic ESB （Aurea）
webMethods enterprise service bus （Software AGにより買収）
 WebOTX ESB (日本電気）

オープンソースソフトウェア
Apache Camel
 Apache ServiceMix
 Apache Synapse
Fuse ESB (レッドハット）
JBoss ESB
NetKernel
Open ESB
Petals ESB
Spring Integration
UltraESB
WSO2 ESB

関連項目 
 Java Business Integration(JBI)
 イベント駆動型プログラミング
 サービス指向アーキテクチャ (SOA)
 ビジネスプロセス管理 (BPM)
 企業アプリケーション統合 (EAI)
 メッセージ指向ミドルウェア (MOM)
 クラウドインテグレーション (iPaaS)

参考文献 

 Dave Chappell, "Enterprise Service Bus" (O’Reilly: June 2004, ISBN 0-596-00675-6)
 渡邉了介（訳）『エンタープライズサービスバス — ESBとSOAによる次世代アプリケーション統合』、オライリー・ジャパン、2005年2月、ISBN 4-87311-220-6

外部リンク 
 Apache Camel Apache
 日本Apache Camelユーザ会 Sourceforge.jp
 アプリケーション統合 日本IBM
 SOAを支えるESBの重要性とは ZDNet Japan

ソフトウェアアーキテクチャ
メッセージ指向ミドルウェア
企業アプリケーション統合