TOP業務システム> 実行基盤としてのESB
SOA/ESB
SOA/ESBの真の姿とは

第5回:アプリケーションの連携方式

著者:Fiorano Software  青島 茂   2007/10/26
1   2  3  次のページ
実行基盤としてのESB

   本連載ではこれまでESBが備えるべきもっとも基本的な機能として1対1のアプリケーション連携を例に、「コネクティビティ(プロトコル変換)」と「データ変換」の機能について解説してきました。

   今回と次回にわたって、現実のSOAが直面する複数のアプリケーションの連携、いわゆるビジネスプロセスの実行基盤としてのESBについて解説します。

1対1の連携におけるフロー制御

   複数のアプリケーションが連携するビジネスプロセスについて解説する前に、前回までに取り上げられなかったESBのルーティング機能を紹介します。

   ルーティング機能とは、データの送信先をESB内で制御する機能で、ほとんどのESB製品がこの機能を備えています。ルーティング機能は次の2つに大別できます。

  • ルーティング(データ内容によって、データの送信先を選択、変更)
  • ディストリビューション(複数のアプリケーションに同一のメッセージを分配)

表1:ルーティング機能

   部品の発注書を取引先である供給業者に送信するアプリケーション連携を例に、詳しく説明します。

   ここでは、発注元の部品発注アプリケーションと、部品供給業者(サプライヤーA社およびB社)のそれぞれの受注アプリケーションがESBを介して連携しているものとします。

   図1は、この例におけるルーティング機能を示しています。発注元のアプリケーションは、発注書をESBに送信します。ESBでは発注書内に記載されている部品名によって、部品AであればサプライヤーAに、部品BであればサプライヤーBに発注書を送信します。図中にあるCBRとは、Contents Based Routingの略でデータ内容によってルート先を変更することを意味しています。

コンテンツベースルーティング
図1:コンテンツベースルーティング

   この方式の利点は、発注アプリケーションにとって相手(サプライヤー)が完全にトランスペアレントである(サプライヤーを意識しなくてよい)点です。

   サプライヤーの受注アプリケーションの場所やプロトコルのみならず、どの部品がどのサプライヤーによって供給されるかも発注元のアプリケーションは関知しません。これらはすべてESB内で定義され、それに従って処理されているからです。

   ビジネスの世界では、特定部品の供給業者を変更したり、新たなサプライヤーとの取り引きを開始するなどといったことが頻繁に起こります。この方式ではサプライヤーの登録やルーティングをESB内に閉じているため、サプライヤーの変更や追加が発生しても、発注側のアプリケーションに影響を与えません。

   一方、新たに参加するサプライヤーの受注アプリケーションも発注アプリケーションのプロトコルやデータ構造を気にすることなく、ESBに接続するだけで発注書を受けとることができます。また、発注元が送信する発注書のフォーマットやデータ値が、サプライヤー側が期待する(受信可能な)データ構造と異なる場合でも、ESBのデータ変換機能によってその違いを吸収することができるのです。

   しかしながら、データ変換には一筋縄ではいかないやっかいな問題も存在することに注意してください。詳細については、本連載の「第3回:ESBにおけるデータ変換(前編)」と「第4回:ESBにおけるデータ変換(後編)」をお読みください。

   次の図2はディストリビューションの例を示しています。ルーティングとの違いは、同一のデータがすべてのサプライヤーに配信される点です。例えば、複数のサプライヤーから部品の見積もり金額を提出してもらうような場合に、このディストリビューション方式によって同一の見積り依頼データをすべてのサプライヤーに送信します。

ディストリビューション
図2:ディストリビューション

1   2  3  次のページ


Fiorano Software, Inc. 日本オフィス ジャパン オペレーション マネージャ 青島 茂
著者プロフィール
Fiorano Software, Inc.
日本オフィス ジャパン オペレーション マネージャ
青島 茂
SOA/ESBの分野に2003年1月からたずさわる。2005年3月にFiorano Softwareの日本オフィスを開設し、現在SOA/ESB製品の国内市場への普及に専心している。


INDEX
第5回:アプリケーションの連携方式
実行基盤としてのESB
  ESBによるメディエーション機能
  ビジネスプロセスの形態