エンタープライズ・サービス・バス (ESB) を使用して、SOA の柔軟性を最大化することができます。
サービス対話の参加者は、直接お互いに接続するのではなく、ESB に接続します。
サービス・リクエスターが ESB に接続すると、ESB は、必要な機能とサービスの品質を提供す
るサービス・プロバイダーにメッセージを使用してその要求を配信する責任を負います。
ESB はリクエスターとプロバイダーの対話を容易にし、プロトコル、対話パターン、またはサービス
機能のミスマッチに対処します。ESB はまた、モニターと管理を使用可能にしたり拡張したりすることができます。
ESB は SOA の中核機能を実装し拡張する、仮想化および管理の機能を提供します。
ESB には、以下のような特徴的な機能があります。
- ロケーションと ID
- 参加者は、その他の参加者のロケーションまたは ID を知る必要がありません。
例えば、要求側は、いくつもある中のどのプロバイダーによって、要求サービスが実行されるのかを知る必要がありません。サービス・プロバイダーを追加または削除しても、混乱は生じません。
- 対話プロトコル
- 参加者は、同じ通信プロトコルまたは対話スタイルを共有する必要がありません。
例えば、SOAP over HTTP として表現された要求は、
Java™ メッセー
ジ・サービス (JMS) を介してのみ SOAP を理解するプロバイダーによってサービスを受ける
ことができます。
- インターフェース
- 要求側とプロバイダーは、共通インターフェースについて一致する必要がありません。
ESB は、要求メッセージと応答メッセージをプロバイダーが期待する形式に変換することによって、違いを調整します。
- 要求側とプロバイダーは、共通インターフェースについて一致する必要がありません。
- ESB は、要求メッセージをプロバイダーが期待する形式に変換することによって、違いを調整します。
- (対話) サービスの品質
- 参加者 (または、システム管理者) は、サービス品質要件を宣言します。これには、要求の許可、メッセージ内容の暗号化と暗号化解除、サービス対話の自動監査、要求の送付方法 (速度またはコストの最適化など) が含まれます。
参加者の間に ESB を介在させることによって、メディエーション と呼ばれる
論理構成を介して、対話を調整することが可能になります。
メディエーションは、要求側とプロバイダーの間でやり取りされるメッセージに対して機能します。例えば、メディエーションを使用して、要求側が求める固有の特性を備えたサービスを検出し
たり、要求側とプロバイダーの間のインターフェースの相違を解決したりすることができます。
複雑な対話の場合は、メディエーションを連続的に続けることもできます。
エンタープライズ・サービス・バスは、メディエーシ
ョンを使用して、要求側とサービスの間で以下のアクションを実行します。
- サービス間のメッセージのルーティング。
エンタープライズ・サービス・バスは、プログラマー
が複雑な接続論理を書いたり保守したりしなくても、サービス、およびサービスによって表さ
れるビジネス機能を接続で
きるようにする、共通コミュニケーション・インフラストラクチャーを提供します。
- 要求側とサービスの間でのトランスポート・プロトコルの変換。
エンタープライズ・サービス・バスは、さまざまな IT
標準を使用する
ビジネス機能を統合するた
めの、一貫性のある標準ベースの方法を提供します。
これによって、通常は通信できない
ビジネス機能の統合が可能
になり、部署内のアプリケーションを接続したり、異なる企業内のアプリケーションをサービス対話に参加
させることができるようになります。
- 要求側とサービスの間でのメッセージ・フォーマットの変換。
エンタープライズ・サービス・バスは、ビジネス機能間に異なる形式の情報があっても、その交換を可能にします。つまりバスは、あるビジネス機能に配信される情報を、そのアプリケーションで要求される形式で配信されるようにします。
- 本質的に異なるソースからのビジネス・イベントの処理。エンタープライズ・サービス・バスは、サービス要求を処理するためのメッセージ交換に加えて、イベント・ベースの対話をサポートします。
図 1. エンタープライズ・サービス・バス.
エンタープライズ・サービス・バスは、サービスの要求側またはプロバイダー
であるアプリケーション間で、メッセージをルーティングしています。
このバスはトランスポート・プロトコルを変換し、要求側とプロバイダーの間でメッセージ・
フォーマットを変換しています。
この図では、それぞれのアプリケーションは、(コネクターの異なる形状で表されている) 異なるプロトコルを使用し、異なるメッセージ・フォーマットを使用します。
エンタープライズ・サービス・バスを使用することによって、コンピューター・システムではなく中核業務に集中することができます。
必要な場合には、(例えば、ビジネス要件の変更に対応したり、追加のサービス能力を追加した
り、新しい機能を追加したりするために) サービスを変更または追加することができます。バスを再構成することによって、バスを使用している既存のサービスやアプリケーションにほとんどあるいはまったく影響を与えることなく、必要な変更を行うことができます。