ESB Mule
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/18 14:42 UTC 版)
システム構成
ESB Muleは特にシステム構成の制限を設けていないため、以下のようなシステム構成が可能である:
- 性能、セキュリティを重視する場合は、各アプリケーション・サーバにESB Muleをセットアップして通信定義をするピア・ツ・ピア構成にすることもできる:
- 通信設定をリポジトリや共有サーバに置く構成も可能:
- 他ESBのように、集中サーバ構成の構成も可能:
アーキテクチャ
ESB Muleのアーキテクチャは以下の3項目を特徴としている:
- ESB MuleはGregor Hohpe著「エンタープライズ統合パターン」で定義されている基本パターンに基づいて設計されている。
- SEDAを利用している。
- 内部コンポーネントの生成に、外部DIコンテナを使うことができる。
開発者のRoss Masonはイギリスの証券システム用の開発を行っていて、システム連携に類似したプログラムを開発していることに気が付いた。Gregor Hohpe著「エンタープライズ統合パターン」を参照して、繰り返して開発を行って来た、プログラムを整理して、ESB Muleのアーキテクチャを考えた。
アプリケーション連携を行うプログラムは以下の部品に分別できる:
- アプリケーションのアドレスを特定する受信エンドポイント
- データを受け取る受信レシーバー
- 特定のレシーバーと特定のトランスフォーマーを対応付ける受信コネクタ
- データ形式を変換する受信トランスフォーマー
- データのルーティング制御するルータ
- データにビジネス処理を行うUMOコンポーネント
- ビジネス処理を行った後のデータの形式を、送信先用のデータ形式に変換する送信トランスフォーマー
- 特定の送信トランスフォーマーと特性のディスパッチャを対応付ける送信コネクタ
- データを送信するディスパッチャ
- 送信先のアプリケーション用にアドレスを指定する送信エンドポイント
このように通信処理を分裂することにより、各部品の入れ替えを疎結合に行えるようにする。例えば、ローカル・ファイル・システムからファイルを読み込み、ファイルに書き出す処理を、メールを送信するように設定を変換することができる。
なお、レシーバー、コネクタ、トランスフォーマー及びディスパッチャー、コネクタ、トランスフォーマーの集まりをプロバイダ又はアダプタと言う。例えばSAPやSalesforceと接続するためにはアプリケーションのAPI、データ形式、通信プロトコルが決められているために、SAPアダプタ及びSalesforceアダプタが提供されている。しかし、Oracleデータベースに接続する場合は、JDBCでAPIとプロトコルが定められているが、データ型は不明なために汎用的なOracle用アダプタはなく、開発者がトランスフォーマーを作成する必要がある。
これらのESB MuleのコンポーネントはPOJOである。ESB MuleはPOJOの管理を行うが、生成はSpring Frameworkのような外部DIコンテナを使うこともできる。この場合は、Spring Frameworkの設定でESB Muleの設定も行うことができる。
競合製品
オープンソースSOAソリューションとしては、元米IBM研究所で多くのWS-*仕様を作成したメンバーが設立したwso2が主な競合相手である。相互の社長のブログにも言い争いが書き込まれている。
- ESB Muleのページへのリンク