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

ESBエンタープライズ・サービス・バス（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は以下の特徴を備えることが多い。- プロセス編成、ビジネスプロセス定義機能（別製品で提供されることもある）。- 大規模な実装のための部品であり、異機種混合のシステムを 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