エンタープライズ・サービス・バス
エンタープライズ・サービス・バス(英: 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 であるという者もいる[1]。いずれにしても、以下のようなESBの中心となる機能は共通で認識されている。
カテゴリ | 機能 |
---|---|
呼び出し | 同期および非同期の転送プロトコルをサポート |
ルーティング | アドレス指定可能性、コンテンツベースのルーティング |
調停 | アダプター、プロトコル変換、データ変換/翻訳 |
複合イベント処理 | イベント翻訳、相関、パターンマッチング、出版-購読 |
その他サービス品質 | セキュリティ(暗号と認証)、高信頼なデータ転送、トランザクション |
管理 | モニタリング、監査、ロギング、計測、など |
さらに、ESBは以下の特徴を備えることが多い。
- プロセス編成、ビジネスプロセス定義機能(別製品で提供されることもある)。
- 大規模な実装のための部品であり、異機種混合のシステムを SOA(サービス指向アーキテクチャ)によって管理可能にする。ただし、ESB MuleのようなオープンソースのESBは、中小規模のための部品である。
- オペレーティングシステムやプログラミング言語に依存しない。例えば、Javaと.NETのアプリケーションの相互運用を可能にする。
- XMLを通信言語として使用。
- Webサービス標準規格をサポート。
- 各種メッセージ交換パターン(MEP)をサポート(同期、非同期、send-and-forget、出版-購読など)
- 標準ベースのアダプター(J2EE Connector ArchitectureやSAPなど)で既存システムとの統合をサポート
- コンポーネント指向設計によるモジュラー・アーキテクチャ
- データ形式の変換のために、変換サービス(XSLTやXQuery)を備え、メッセージの送信側アプリケーションと受信側アプリケーションで必要な形式が異なる場合にも対応。
- メッセージ送受信のためのスキーマに対する妥当性検証
- 中核のない構成の場合、メッセージを状況によってルーティングしたり変換したりする。
- SLA(サービス水準合意)に従って、メッセージ遅延などをモニタリングする。
- ユーザーの優先順位付けに従ってサービスをクラス分けする。
- アプリケーションが一時的に動作できない場合、メッセージをキューに保持する。
主な利点と欠点
[編集]利点
[編集]- 既存のシステムを素早く安価に利用できる。
- 柔軟性の向上。要求仕様が変わっても容易に対応可能。
- 標準仕様に基づいている。
- 企業内の一部門から始めて全体に適用できるスケーラビリティ。
- 中核となるサーバなどが不要。
- システムを停止させずに機器追加などが可能。
欠点
[編集]- エンタープライズメッセージモデルは一般に強制的である。
- ESB の価値を高めるには、多数の異なるシステムがメッセージ標準によって協調動作する必要がある。
- ベンダーによっては、実装のためにさらなるハードウェア投資が必要。
- ESBを構成するための新たな技能を必要とする。
- 従来のメッセージ指向システムに比較すると、変換(翻訳)層が新たに追加されている。
導入する場合の注意点
[編集]主な製品
[編集]- 有償ソフトウェア
- 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 (日本電気)
関連項目
[編集]- 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