BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   BEA Tuxedo システム入門   |   先頭へ   |   前へ   |   次へ   |   目次

 


データ依存型ルーティング

BEA Tuxedo システムでは、データ依存型ルーティングと呼ばれる操作を使用して、クライアントが同じサービスへの要求をそのサービスの複数のコピーに対して送信できるようにします。サービスのどのコピーが最終的に要求を受け入れて処理するのかは、要求メッセージのデータによって決まります。管理者がアプリケーションにデータ依存型ルーティングを設定すると、クライアントの要求は要求内のデータに基づいて自動的にサーバにルーティングされます。

百科事典の第 1 巻に「A」で始まる項目が複数含まれているように、アプリケーションに同じサービスのコピーが複数含まれている場合、各コピーに対して一意な目的が割り当てられます。そのサービスのすべてのコピーのリストと、各コピーの目的に関する情報の識別文字列は、BEA Tuxedo の掲示板のルーティング・テーブルに保持されています。システムがクライアントの要求を受信すると、要求メッセージ内の識別文字列を読み取り、その文字列を掲示板のルーティング・テーブルで検索します。文字列が合致すると、クライアントの要求を転送する適切なサーバが識別されます。

注記 掲示板のルーティング・テーブルは、必要に応じて変更できます。

データ依存型ルーティング

データ依存型ルーティングは、クライアントが次のものにサービスを要求した場合に有用です。

水平分離型データベースとは、セグメントに分割された情報リポジトリです。各セグメントには、異なるカテゴリの情報が格納されます。これは、各本棚に異なるカテゴリ (伝記、フィクションなど) の本が収納されている図書館に似ています。

ルール・ベース・サーバとは、サービス要求をサービス・ルーチンに転送する前に、サービス要求が特定のアプリケーション固有の条件を満たしているかどうかを判定するサーバです。ルール・ベース・サーバは、ほとんど同じ複数の要求に対して、ビジネス上の理由で多少異なる処理を行う場合に使用すると有用です。

分散アプリケーションは、ネットワークを通して接続された複数のマシン上の 1 つ以上のサーバと通信する 1 つ以上のローカルまたはリモートのクライアントから構成されます。クライアント (またはクライアントとして動作するサーバ) は、特定のサービスに対する要求を発行します。要求のアドレスは、その要求を実行できるサーバを識別するデータ (要求と同じバッファで転送されるデータ) によって決定されます。要求を実行できるサーバが複数存在する場合もあります。BEA Tuxedo システムでは、掲示板のルーティング条件とデータが照合されて、要求を受け取るサーバが決定されます。

水平分離型データベースでのデータ依存型ルーティングの例

銀行取引アプリケーションで、2 つのクライアントが口座 3 と口座 17 という 2 つの口座の現在の残高を照会する要求を発行したとします。アプリケーションでデータ依存型ルーティングが使用されている場合、BEA Tuxedo システムでは次の処理が行われます。

  1. 2 つのサービス要求で指定された口座番号 (3 と 17) を取得します。

  2. どのサーバがどのデータ範囲の処理を行うかを示す、BEA Tuxedo の掲示板のルー ティング・テーブルを調べます。この例では、口座 1 〜 10 に対するすべての要求 をサーバ 1 が処理し、口座 11 〜 20 に対するすべての要求をサーバ 2 が処理して います。

  3. それぞれの要求を該当するサーバに送信します。つまり、口座 3 への要求をサー バ 1 に転送し、口座 17 への要求をサーバ 2 に転送します。

次の図は、このプロセスを示しています。

水平分離型データベースでのデータ依存型ルーティング


 

ルール・ベース・サーバでのデータ依存型ルーティングの例

次の規則を持つ銀行取引アプリケーションがあるとします。

2 つのクライアントが1 万円と 8 万円の引き出しを要求したとします。引き出しの規則でデータ依存型ルーティングが有効になっている場合、BEA Tuxedo では次のような処理が行われます

  1. 2 つのサービス要求で指定された引き出し額 (1 万円と 8 万円) を取得します。

  2. BEA Tuxedo の掲示板のルーティング・テーブルで、要求された額をどのサーバが 処理するのかを確認します。この例では、5 万円までのすべての引き出し要求を サーバ 1 が処理し、5 万円を超えるすべての引き出し要求をサーバ 2 が処理して います。

  3. それぞれの要求を該当するサーバに送信します。つまり、1 万円の要求をサーバ 1 に転送し、8 万円の要求をサーバ 2 に転送します。

次の図は、このプロセスを示しています。

ルール・ベース・サーバでのデータ依存型ルーティング


 

分散アプリケーションでのデータ依存型ルーティングの例

次の図は、クライアントの要求がサーバにルーティングされる方法を示しています。この例では、bankapp という銀行取引アプリケーションでデータ依存型ルーティングが使用されています。bankapp には、3 つのサーバ・グループ (BANK1BANK2BANK3) と 2 つのルーティング条件 (Account IDBranch ID) があります。WITHDRAWDEPOSIT、および INQUIRY の 3 つのサービスは、Account_ID フィールドを使用してルーティングされます。サービス OPEN および CLOSE は、Branch_ID フィールドを使用してルーティングされます。

ルーティング条件を使用した銀行取引のサンプル・アプリケーション


 

前の図では、要求は次の表に示すようにルーティングされます。

引き出し、預け入れ、照会、開設/閉鎖を行う口座

ルーティング先

支店番号 1〜4 の口座番号 10000〜49999

銀行 1

支店番号 5〜7 の口座番号 50000〜79999

銀行 2

支店番号 8〜10 の口座番号 80000〜109999

銀行 3


 

 

先頭へ戻る 前のトピックへ 次のトピックへ