|
|
CORBA アプリケーションの分散
ここでは、次の内容について説明します。
このトピックでは、CORBA アプリケーションを例に、BEA Tuxedo CORBA 環境でのアプリケーションの分散方法を説明します。
アプリケーションを分散する理由
ここでは、次の内容について説明します。
アプリケーションの分散について
アプリケーションを分散すると、アプリケーションのある部分を選択して論理的にグループ化し、そのグループを実行する場所を選択できます。アプリケーションの分散は、UBBCONFIG
ファイルの GROUPS
セクションに複数のエントリを作成し、アプリケーションの資源またはタスクをグループ間に分割することによって行います。サーバのグループを作成することにより、非常に大規模なアプリケーションをコンポーネント・ビジネス・アプリケーションに分割し、これらの各論理コンポーネントを管理可能なサイズで最適な場所に配置できます。
分散アプリケーションの利点
分散アプリケーションの利点には、以下のようなものがあります。
BEA Tuxedo CORBA システムでは、ファクトリ・ベース・ルーティングを使用し、複数のサーバ・グループ、および必要であれば複数のマシンにわたって、特定の CORBA インターフェイスの処理を分散できます。この機能を使うと処理負荷が分散できるので、同時実行されるリソース集中型のアプリケーションが、利用可能な CPU、メモリ、ディスク I/O、およびネットワーク資源をめぐって競合した場合に発生する、処理上のボトルネックを回避できます。ファクトリ・ベース・ルーティングの使用例については、ファクトリ・ベース・ルーティングによるスケーリングを参照してください。
BEA Tuxedo CORBA のスケーラビリティの特長の詳細については、BEA Tuxedo CORBA アプリケーションのスケーリングを参照してください。
アプリケーション分散の特性
分散アプリケーションには、次の特性があります。
データ依存型ルーティングの使用 (BEA Tuxedo ATMI サーバのみ)
ここでは、次の内容について説明します。
注記 このトピックは、BEA Tuxedo にのみ適用されます。
データ依存型ルーティングについて
データ依存型ルーティングは、サービス要求が、送信されたバッファ内のデータ値に基づき、クライアント (またはクライアントとして動作しているサーバ) によって、特定グループ内のサーバにルーティングされるメカニズムです。サービス呼び出しの内部コードにおいて、BEA Tuxedo はデータ・フィールドと掲示板共用メモリ内で探し出したルーティング基準を比較して、送信先となるサーバを選択します。
所定のどのサービスについても、UBBCONFIG
ファイルの SERVICES
セクションでルーティング基準識別子を指定できます。ルーティング基準識別子 (特にサーバ・グループに対するデータ範囲のマッピング) は、ROUTING
セクションで指定します。
データ依存型ルーティングの特性
データ依存型ルーティングの特性は次のとおりです。
UBBCONFIG
ファイルの SERVICES
セクションで指定されます。UBBCONFIG
ファイルの UBBCONFIG
セクションで定義されます。分散アプリケーションの例
表 3-1 は、クライアント要求がサーバにルーティングされるしくみを説明します。この例では、bankapp
と呼ばれる銀行取引アプリケーションでデータ依存型ルーティングが使用されています。bankapp
には、3 つのグループ (BANKB1
、BANKB2
、および BANKB3
) と、2 つのルーティング基準 (Account_ID
および Branch_ID
) があります。サービス WITHDRAW
、DEPOSIT
、および INQUIRY
は、Account_ID
フィールドを使用してルーティングされます。サービス OPEN
および CLOSE
は、Branch_ID
フィールドを使用してルーティングされます。
分散アプリケーションにおける UBBCONFIG セクションの例
リスト 3-1 は、BEA Tuxedo システムでデータ依存型ルーティングを実現するためのコンフィギュレーション・ファイルにおける、GROUPS
、SERVICES
、および ROUTING
の各セクションを含む UBBCONFIG
ファイルの例を示します。
リスト 3-1 UBBCONFIG ファイルの例
*GROUPS
BANKB1 GRPNO=1
BANKB2 GRPNO=2
BANKB3 GRPNO=3
#
*SERVICES
WITHDRAW ROUTING=ACCOUNT_ID
DEPOSIT ROUTING=ACCOUNT_ID
INQUIRY ROUTING=ACCOUNT_ID
OPEN_ACCT ROUTING=BRANCH_ID
CLOSE_ACCT ROUTING=BRANCH_ID
#
*ROUTING
ACCOUNT_ID FIELD=ACCOUNT_ID BUFTYPE="FML"
RANGES="MIN - 9999:*,
10000-49999:BANKB1,
50000-79999:BANKB2,
80000-109999:BANKB3,
*:*"
BRANCH_ID FIELD=BRANCH_ID BUFTYPE="FML"
RANGES="MIN - 0:*,
1-4:BANKB1,
5-7:BANKB2,
8-10:BANKB3,
*:*"
UBBCONFIG ファイルのコンフィギュレーション
ここでは、次の内容について説明します。
UBBCONFIG
ファイルの詳細については、『BEA Tuxedo アプリケーションの設定』の「コンフィギュレーション ファイルの作成」を参照してください。
分散アプリケーションにおける UBBCONFIG ファイルについて
UBBCONFIG
ファイルには、以下のようなデータ依存型ルーティング (BEA Tuxedo) またはファクトリ・ベース・ルーティング (BEA Tuxedo CORBA) の説明が含まれます。
GROUPS
セクションには、システムを分散するために必要な数のサーバ・グループが挿入されます。これにより、システムは要求を特定グループのサーバにルーティングできるようになります。これらのグループは、すべて同じサイトに設定することも (SHM
モード)、ネットワーク化がなされている場合に複数のサイトに分散することも (MP
モード) できます。SERVICES
セクションに、ROUTING
パラメータを使用する各サービスのルーティング基準がリストされている必要があります。注記 サービスに複数のエントリがあり、それぞれが異なった SRVGRP
パラメータを備えている場合、すべてのエントリで、サービスに対する一貫性を確保するために、ROUTING
の設定を同じにしなければなりません。1 つのサービスは、1 つのフィールドにしかルーティングできず、このフィールドは、同じサービスでは同じものにする必要があります。
INTERFACES
セクションに、FACTORYROUTING
パラメータを使用する各 CORBA インターフェイスのルーティング基準名がリストされている必要があります。このパラメータは、ROUTING
セクションで定義されたルーティング基準名に設定されます。ROUTING
セクションを追加して、システムが要求を特定グループのサーバに送信できるように、データ範囲とグループ間のマッピングを示します。ROUTING
セクションの各項目には、INTERFACES
セクションで使用される識別子 (BEA Tuxedo ATMI の場合) または SERVICES
セクションで使用される識別子 (BEA Tuxedo の場合) が含まれます。GROUPS セクションの変更
GROUPS
セクションのパラメータは、分散トランザクション処理に関する次の 2 つの重要な側面をインプリメントします。
LMID
およびリソース・マネージャの特定のインスタンスに関連付けられます。LMID
を関連付けることにより、サーバ・グループを代替マシンに移行できます (ただし、MIGRATE
オプションが指定されている場合)。表 3-2 では、GROUPS
セクションのパラメータを説明します。
SERVICES セクションの変更
SERVICES
セクションのパラメータは、アプリケーション・サービスの処理方法を制御します。このセクションのエントリの行は、識別子名によってサービスと関連付けられます。SRVGRP
パラメータは、1 つのサービスを複数のサーバにリンクするために用意されています。このパラメータは、サービスのインスタンスを示すパラメータを特定のサーバ・グループに関連付けます。
変更するパラメータ
SERVICES
セクションには、特に BEA Tuxedo ATMI サービスを使用する BEA Tuxedo CORBA アプリケーションの分散トランザクション処理 (DTP) に関連付けられるパラメータが 2 つあります。AUTOTRAN
および TRANTIME
です。
表 3-4 では、SERVICES
セクションのパラメータを説明します。
SERVICES セクションの例
リスト 3-2 では、SERVICES
セクションの例を示します。
リスト 3-2 Production サンプルの SERVICES セクション
*SERVICES
# Tuxedo Teller アプリケーション・サービスを公開する
#
DEBIT
AUTOTRAN=Y
CREDIT
AUTOTRAN=Y
CURRBALANCE
AUTOTRAN=Y
INTERFACES セクションの変更
INTERFACES
セクションのパラメータは、アプリケーション・インターフェイスの処理方法を制御します。このセクションのエントリの行は、識別子名によってインターフェイスと関連付けられます。SRVGRP
パラメータは、1 つのインターフェイスを複数のサーバにリンクするために用意されています。このパラメータは、インターフェイスのインスタンスを示すパラメータを特定のサーバ・グループに関連付けます。
変更するパラメータ
INTERFACES
セクションには、特に分散トランザクション処理 (DTP) に関連付けられるパラメータが 3 つあります。FACTORYROUTING
、AUTOTRAN
、および TRANTIME
です。
表 3-4 では、INTERFACES
セクションのパラメータを説明します。
INTERFACES セクションの例
リスト 3-2 では、INTERFACES
セクションの例を示します。
リスト 3-3 INTERFACES セクションの例
*INTERFACES
"IDL:beasys.com/UniversityP/Registrar:1.0"
FACTORYROUTING = STU_ID
AUTOTRAN=Y
TRANTIME=50
"IDL:beasys.com/BillingP/Teller:1.0"
FACTORYROUTING = ACT_NUM
AUTOTRAN=Y
ROUTING セクションの作成
BEA Tuxedo のデータ依存型ルーティングまたは BEA Tuxedo CORBA のファクトリ・ベース・ルーティングをサポートする ROUTING
パラメータについては、『BEA Tuxedo アプリケーションの設定』の「コンフィギュレーション ファイルの作成」を参照してください。
リスト 3-4 は、Production サンプル・アプリケーションでファクトリ・ベース・ルーティングに使用される UBBCONFIG
ファイルの ROUTING
セクションを示します。
リスト 3-4 Production サンプルの ROUTING セクション
*ROUTING
STU_ID
FIELD = "student_id"
TYPE = FACTORY
FIELDTYPE = LONG
RANGES = "100001-100005:ORA_GRP1,100006-100010:ORA_GRP2"
ACT_NUM
FIELD = "account_number"
TYPE = FACTORY
FIELDTYPE = LONG
RANGES = "200010-200014:APP_GRP1,200015-200019:APP_GRP2"
factory_finder.ini のコンフィギュレーション (CORBA アプリケーションのみ)
CORBA アプリケーションの場合、複数ドメインにわたってファクトリ・ベース・ルーティングをコンフィギュレーションするには、現在の (ローカル) ドメインで使用されているが、別の (リモート) ドメインに存在するファクトリ・オブジェクトを識別するために、factory_finder.ini
ファイルをコンフィギュレーションする必要があります。詳細については、『BEA Tuxedo Domains コンポーネント』の「複数の CORBA ドメインを設定する」を参照してください。
ルーティングをサポートするためのドメイン・ゲートウェイ・コンフィギュレーション・ファイルの変更
ここでは、次の内容について説明します。
この節は BEA Tuxedo のみを対象とし、ルーティングをサポートするためにドメイン・ゲートウェイ・コンフィギュレーションを変更する方法と、この処理が必要である理由を説明します。ドメイン・ゲートウェイ・コンフィギュレーション・ファイルの詳細については、『BEA Tuxedo Domains コンポーネント』の「複数の CORBA ドメインを設定する」を参照してください。
ドメイン・ゲートウェイ・コンフィギュレーション・ファイルについて
ドメイン・ゲートウェイ・コンフィギュレーションに関する情報は、バイナリ形式の BDMCONFIG
ファイルに格納されています。DMCONFIG
ファイル (ASCII) は、任意のテキスト・エディタで作成および編集できます。コンパイル済みの BDMCONFIG
ファイルは、実行中のシステムで dmadmin(1)
コマンドを使用して更新できます。
Domains 機能を必要とする各 BEA Tuxedo アプリケーションには、BDMCONFIG
ファイルを 1 つ作成する必要があります。BDMCONFIG
ファイルへのアクセスは、Domains 管理サーバである DMADM
(5) から行います。ゲートウェイ・グループが起動されると、ゲートウェイ管理サーバである GWADM
(5) は、そのグループに必要なコンフィギュレーションのコピーを DMADM
サーバに要求します。また、GWADM
サーバと DMADM
サーバは、コンフィギュレーションにおける実行時の変更が、対応するドメイン・ゲートウェイ・グループに反映されるようにします。
注記 DMCONFIG
ファイルの変更の詳細については、『BEA Tuxedo Domains コンポーネント』の「複数の CORBA ドメインを設定する」を参照してください。
DMCONFIG ファイルの DM_ROUTING セクションのパラメータ (BEA Tuxedo ATMI のみ)
DM_ROUTING
セクションでは、型付きバッファである FML
、VIEW
、X_C_TYPE
、および X_COMMON
を使用したサービス要求のデータ依存型ルーティングに関する情報を提供します。DM_ROUTING
セクション内にある各行の形式は、CRITERION_NAME
です。ここで、CRITERION_NAME
は SERVICES セクションで指定されたルーティング・エントリの名前 (識別子名) です。CRITERION_NAME
エントリの長さは 15 文字以下です。
指定するパラメータ
表 3-5 では、DM_ROUTING
セクションのパラメータを説明します。
ルーティング・フィールドの説明
ルーティング・フィールドには、FML
または VIEW
でサポートされている任意のデータ型を指定できます。数値のルーティング・フィールドには、数値による範囲値、文字列のルーティング・フィールドには文字列による範囲値を指定します。
文字列、carray、および文字フィールド型の文字列の範囲値は、1 組の一重引用符で囲みます。前に符号を付けることはできません。short 型および long 型の整数値は数値の文字列であり、オプションで先頭に正の符号 (+
) または負の符号 (-
) を指定できます。浮動小数点数は、C コンパイラまたは atof()
で受け付けられる形式です。つまり、符号 (オプション)、数字の文字列 (オプションで小数点を追加)、e
または E
(オプション)、符号または空白文字 (オプション)、整数という形式で指定します。
フィールド値が範囲と一致するときに、関連する RDOM
値には、要求がルーティングされるリモート・ドメインを指定します。RDOM
値に *
を指定すると、ゲートウェイ・グループが認識する任意のリモート・ドメインに要求が送信されることを示します。range/RDOM
の組み合わせでは、範囲と RDOM
はコロン (:
) で区切られます。
ルーティングを使用した 5 サイトのドメイン・コンフィギュレーションの例
リスト 3-5 は、5 サイトのドメイン・コンフィギュレーションを定義するコンフィギュレーション・ファイルを示します。Central Bank Branch と通信する、4 つの銀行支店ドメインがあります。銀行支店のうち、3 つがほかの BEA Tuxedo システム・ドメイン内で実行されています。残りの支店は、別の TP ドメインの制御下で実行されており、そのドメインとの通信には OSI-TP が使用されています。この例では、Central Bank から見た BEA Tuxedo のドメイン・ゲートウェイ・コンフィギュレーション・ファイルを示しています。DM_TDOMAIN
セクションは、b01
をミラーリングしたゲートウェイを例示しています。
リスト 3-5 5 サイトののドメイン・コンフィギュレーションのための DMCONFIG ファイル
# Central Bank 用の BEA Tuxedo ドメイン・コンフィギュレーション・ファイル
#
#
*DM_LOCAL_DOMAINS
# <local domain name> <Gateway Group name> <domain type> <domain id> <log device>
# [<audit log>] [<blocktime>]
# [<log name>] [<log offset>] [<log size>]
# [<maxrdom>] [<maxrdtran>] [<maxtran>]
# [<maxdatalen>] [<security>]
# [<tuxconfig>] [<tuxoffset>]
#
#
DEFAULT: SECURITY = NONE
c01 GWGRP = bankg1
TYPE = TDOMAIN
DOMAINID = "BA.CENTRAL01"
DMTLOGDEV = "/usr/apps/bank/DMTLOG"
DMTLOGNAME = "DMTLG_C01"
c02 GWGRP = bankg2
TYPE = OSITP
DOMAINID = "BA.CENTRAL01"
DMTLOGDEV = "/usr/apps/bank/DMTLOG"
DMTLOGNAME = "DMTLG_C02"
NWDEVICE = "OSITP"
URCH = "ABCD"
#
*DM_REMOTE_DOMAINS
#<remote domain name> <domain type> <domain id>
#
b01 TYPE = TDOMAIN
DOMAINID = "BA.BANK01"
b02 TYPE = TDOMAIN
DOMAINID = "BA.BANK02"
b03 TYPE = TDOMAIN
DOMAINID = "BA.BANK03"
b04 TYPE = OSITP
DOMAINID = "BA.BANK04"
URCH = "ABCD"
#
*DM_TDOMAIN
#
# <local or remote domainname> <network address> [nwdevice]
#
# Local network addresses
c01 NWADDR = "//newyork.acme.com:65432" NWDEVICE ="/dev/tcp"
c02 NWADDR = "//192.76.7.47:65433" NWDEVICE ="/dev/tcp"
# Remote network addresses: second b01 specifies a mirrored gateway
b01 NWADDR = "//192.11.109.5:1025" NWDEVICE = "/dev/tcp"
b01 NWADDR = "//194.12.110.5:1025" NWDEVICE = "/dev/tcp"
b02 NWADDR = "//dallas.acme.com:65432" NWDEVICE = "/dev/tcp"
b03 NWADDR = "//192.11.109.156:4244" NWDEVICE = "/dev/tcp"
#
*DM_OSITP
#
#<local or remote domain name> <apt> <aeq>
# [<aet>] [<acn>] [<apid>] [<aeid>]
# [<profile>]
#
c02 APT = "BA.CENTRAL01"
AEQ = "TUXEDO.R.4.2.1"
AET = "{1.3.15.0.3},{1}"
ACN = "XATMI"
b04 APT = "BA.BANK04"
AEQ = "TUXEDO.R.4.2.1"
AET = "{1.3.15.0.4},{1}"
ACN = "XATMI"
*DM_LOCAL_SERVICES
#<service_name> [<Local Domain name>] [<access control>] [<exported svcname>]
# [<inbuftype>] [<outbuftype>]
#
open_act ACL = branch
close_act ACL = branch
credit
debit
balance
loan LDOM = c02 ACL = loans
*DM_REMOTE_SERVICES
#<service_name> [<Remote domain name>] [<local domain name>]
# [<remote svcname>] [<routing>] [<conv>]
# [<trantime>] [<inbuftype>] [<outbuftype>]
#
tlr_add LDOM = c01 ROUTING = ACCOUNT
tlr_bal LDOM = c01 ROUTING = ACCOUNT
tlr_add RDOM = b04 LDOM = c02 RNAME ="TPSU002"
tlr_bal RDOM = b04 LDOM = c02 RNAME ="TPSU003"
*DM_ROUTING
# <routing criteria> <field> <typed buffer> <ranges>
#
ACCOUNT FIELD = branchid BUFTYPE ="VIEW:account"
RANGES ="MIN - 1000:b01, 1001-3000:b02, *:b03"
*DM_ACCESS_CONTROL
#<acl name> <Remote domain list>
#
branch ACLIST = b01, b02, b03
loans ACLIST = b04
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|