PR

 ESBの具体的なイメージを図2に示した。受注管理,在庫管理,配送管理など,連携させたいシステムを,すべてESBと直に接続する。ほかのシステムとのメッセージのやり取りは必ずESBを通す。つまりESBは,連携させるシステム間のメッセージのやり取りを一手に担う通り道になる。

図2●ESBの基本機能とシステム連携の例
図2●ESBの基本機能とシステム連携の例 [画像のクリックで拡大表示]

 ESBに接続された各システム(正確にはシステムの単一の機能もしくはそれらを組み合わせた「サービス」だが,分かりやすさを優先してここでは「システム」と表す)が別のシステムへのメッセージ送信をESBに依頼する際,送り先のシステムの物理的な場所まで指定する必要はない。ESBによって,各システムの場所を一元的に管理しているからだ。そのための情報の格納庫を「リポジトリ」と呼ぶ。

 ESBでは,各システムが利用可能なプロトコルやデータ形式をリポジトリで管理している。その情報に基づいて,仲介するメッセージを送り先のシステムが解釈可能な形式に変換する。

EAIツールが抱える二つの問題

 これら「リポジトリ」「変換」「ルーティング」という三つの機能を見ると,「従来のEAI(Enterprise Application Integration)ツールと何が違うのか」と思うかもしれない。従来のEAIツールも,これら三つの機能を備えているので,その疑問はもっともである。

 しかし,従来のEAIツールでSOAの考えに基づくシステムを構築すると,以下の二つの大きな問題に直面する。

(1)システム同士をつなぐのに必要な大半の機能を,1台のサーバー機で集中処理する仕組みなので,そのサーバー機が性能上のボトルネックになりやすい

(2)ツール・ベンダーごとに独自仕様を採用しているので,接続するにはその仕様に合った専用ソフトが必要になるほか,他ベンダーのツールとの互換性がない

以下,「処理性能のボトルネック」と「ベンダーの独自仕様」という二つの問題を,ESBではどのように解決しているのか見ていこう。