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

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

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の実装も定まっていない(中核となるサーバを持つ場合もあるし、持たない構成もある)。例えば、SOAPWS-Addressing を組合わせたものが ESB であるという者もいる[1]。いずれにしても、以下のようなESBの中心となる機能は共通で認識されている。

カテゴリ 機能
呼び出し 同期および非同期の転送プロトコルをサポート
ルーティング アドレス指定可能性、コンテンツベースのルーティング
調停 アダプター、プロトコル変換、データ変換/翻訳
複合イベント処理 イベント翻訳、相関、パターンマッチング、出版-購読
その他サービス品質 セキュリティ(暗号と認証)、高信頼なデータ転送、トランザクション
管理 モニタリング、監査、ロギング、計測、など

さらに、ESBは以下の特徴を備えることが多い

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

主な利点と欠点 編集

利点 編集

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

欠点 編集

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

導入する場合の注意点 編集

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

主な製品 編集

関連項目 編集

参考文献 編集

外部リンク 編集