bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo アプリケーションの設定

 Previous Next Contents View as PDF  

BEA Tuxedo CORBA リモート・クライアント・アプリケーションの管理

この章では、標準のインターネット ORB 間プロトコル (IIOP: Internet Inter-ORB Protocol) を使用して BEA Tuxedo CORBA のリモート・クライアント・アプリケーションから CORBA オブジェクトへの接続を設定する方法について説明します。この章は、BEA Tuxedo CORBA サーバにのみ適用されます。

ここでは、次の内容について説明します。

 


CORBA オブジェクト関連の用語

以下は、この章で使用する用語の一覧です。

DLL

ダイナミック・リンク・ライブラリ (DLL: Dynamic Link Library)。ロード・モジュールにグループ化された関数の集合。Windows アプリケーションでは、実行時に実行形式プログラムに動的にリンクされます。

IIOP

インターネット ORB 間プロトコル (IIOP: Internet Inter-ORB Protocol)。TCP/IP 準拠の通信プロトコルで、共通のバックボーン・プロトコルとして CORBA 定義のメッセージ送受信をサポートします。

ISH

IIOP サーバ・ハンドラ (ISH: IIOP Server Handler)。アプリケーション・サイト上で実行されるクライアント・プロセス。リモート・クライアントの代理として機能します。

ISL

IIOP サーバ・リスナ (ISL: IIOP Server Listener)。アプリケーション・サイト上で実行されるサーバ・プロセス。リモート・クライアントの接続要求をリッスンします。

サーバ

BEA Tuxedo ドメインのマシンで管理されるサーバ。BEA Tuxedo CORBA サーバは、BEA Tuxedo CORBA の buildobjserver コマンドを使用して作成されます。CORBA サーバは、セキュリティ、トランザクション、オブジェクトの状態管理など、BEA Tuxedo の機能をインプリメントします。サーバは、BEA Tuxedo ドメイン内外の任意のサーバを呼び出すことができます。

ネイティブ・クライアント

BEA Tuxedo ドメイン内のクライアント。CORBA ORB を使用して、BEA Tuxedo ドメイン内外のオブジェクトを呼び出します。ネイティブ・クライアントのホストには、BEA Tuxedo の管理コンポーネントとインフラストラクチャ・コンポーネントがあります。たとえば、tmadmin、FactoryFinder、ISL/ISH などです。ネイティブ・クライアントは、環境オブジェクトを使用して CORBA オブジェクトにアクセスします。ネイティブ C++ クライアントは buildobjclient コマンドを使用して作成し、ネイティブ Java クライアントはサード・パーティ ORB 提供のツールを使用して作成します。

リモート・クライアント

BEA Tuxedo ドメイン外のクライアント。リモート・クライアントは、CORBA ORB を使用して、BEA Tuxedo ドメイン内外のオブジェクトを呼び出すことができます。リモート・クライアントのホストには、tmadmin、FactoryFinder、ISL/ISH など、BEA Tuxedo の管理コンポーネントやインフラストラクチャ・コンポーネントはなく、リモート・クライアントがオブジェクトを呼び出すためのサポート・ソフトウェア (CORBA ORB)があります。リモート・クライアントは、環境オブジェクトを使用して CORBA オブジェクトにアクセスします。リモート C++ クライアントは buildobjclient コマンドを使用して作成し、リモート Java クライアントはサード・パーティ ORB 提供のツールを使用して作成します。

ネイティブ共同クライアント/サーバ

(1) ビジネス上の処理のスタータとなるコードを実行し、(2) オブジェクトを呼び出すためのメソッド・コードを実行する、という 2 つの目的を持つプロセス。共同クライアント/サーバは、BEA Tuxedo ドメイン内にあります。ネイティブ・ジョイント C++ クライアント/サーバは、buildobjclient コマンドを使用して作成します。Java ネイティブ共同クライアント/サーバはサポートされていません。

注記 ネイティブ共同クライアント/サーバのサーバ・ロールは、通常のサーバと比べて大幅に弱くなります。tmadmin、FactoryFinder、ISL/ISH などの BEA Tuxedo CORBA の管理コンポーネントやインフラストラクチャ・コンポーネントはなく (BEA Tuxedo のスケーラビリティと信頼性に関する属性もなし)、BEA Tuxedo の TP Framework も使用しないため、クライアントと ORB 間でより直接的なインタラクションが必要になります。

リモート共同クライアント/サーバ

(1) ビジネス上の処理のスタータとなるコードを実行し、(2) オブジェクトを呼び出すためのメソッド・コードを実行する、という 2 つの目的を持つプロセス。共同クライアント/サーバは、BEA Tuxedo ドメイン外にあります。共同クライアント/サーバは BEA Tuxedo TP Framework を使用しないので、クライアントと ORB 間でより直接的なインタラクションが必要です。リモート・ジョイント C++ クライアント/サーバは buildobjclient コマンドを使用して作成し、リモート Java クライアント/サーバはサード・パーティ ORB 提供のツールを使用して作成します。

注記 共同クライアント/サーバは、サーバ・ロールの一部としてクライアントの役割を果たすサーバとは異なります。サーバが呼び出し処理を完了すると、休止状態に戻ります。共同クライアント/サーバは常にアクティブ・モードで動作し、サーバ・ロールとは関連のないコードを実行します。このためサーバ・ロールによって一時的にアクティブなクライアント・ロールが中断されますが、クライアント・ロールは常に再開されます。

注記 リモート共同クライアント/サーバのサーバ・ロールは、通常のサーバと比べて大幅に弱くなります。クライアントにもサーバにも、tmadmin、FactoryFinder、ISL/ISH など、BEA Tuxedo の管理コンポーネントやインフラストラクチャ・コンポーネントはありません (BEA Tuxedo のスケーラビリティや信頼性に関する属性もなし)。

BEA Tuxedo CORBA オブジェクト

TP Framework を使用してインプリメントされ、セキュリティ、トランザクション、およびオブジェクトの状態管理をインプリメントする CORBA オブジェクト。CORBA オブジェクトは、BEA Tuxedo CORBA サーバでインプリメントされます。つまり、これらのオブジェクトは BEA Tuxedo ドメインの一部であり、BEA Tuxedo インフラストラクチャを使用します。

コールバック・オブジェクト

ターゲット オブジェクトでのクライアントの呼び出しで、パラメータとして提供される CORBA オブジェクト。ターゲット・オブジェクトは、そのターゲット・オブジェクトの実行時、または後で (ターゲット オブジェクトの呼び出しが完了した後でも可) コールバック・オブジェクトを呼び出すことができます。コールバック・オブジェクトは、BEA Tuxedo ドメイン内外のどちらにも配置できます。

 


CORBA リモート・クライアントの概要

この節での「リモート・クライアント」は、BEA Tuxedo CORBA サーバ・ソフトウェアがフル・インストールされていないシステムに配置された CORBA クライアント・アプリケーションを意味します。つまり、管理サーバやアプリケーション・サーバが実行されず、掲示板もないことを意味します。クライアントとアプリケーション間の通信は、すべてネットワーク経由で行われます。

クライアントのタイプは以下のとおりです。

クライアント・プロセスは、UNIX または Microsoft Windows 上で実行できます。また、クライアントは CORBA ORB インターフェイスにアクセスすることができます。ユーザは、呼び出しが背後のネットワークでどのように処理されているかを意識する必要はありません。クライアント・プロセスはシステムに登録され、ネイティブ・クライアントと同じ状態になります。

クライアントには以下の特徴があります。

注記 クライアント・プロセスは、ISH を通してネイティブ・ドメインと通信します。

CORBA リモート・クライアントが接続されたアプリケーションの例

図12-1 は、リモート・クライアントが接続されたアプリケーションの例です。リモート・クライアントから CORBA サーバ・アプリケーションへのアクセス要求は、ネットワーク経由で ISH に送信されます。このプロセスがアプリケーション・サーバに要求を送信し、その応答をリモート・クライアントに返します。

図 12-1 リモート・クライアントが接続された銀行業務アプリケーション


 

リモート・クライアントからアプリケーションへの接続方法

クライアントは、既知のネットワーク・アドレスを使用して IIOP リスナ/ハンドラで ISL プロセスに接続します。この接続は、クライアントが Bootstrap オブジェクトのコンストラクタを呼び出すと開始されます。ISL プロセスは、オペレーティング・システム固有の機能を使用して、選択された ISH プロセスに直接接続を渡します。クライアント・アプリケーション側から見ると、接続は 1 つだけです。クライアント・アプリケーションは、現在 ISH プロセスに接続されていることを認識せず、また、認識する必要もありません。

 


CORBA リモート・クライアントの環境変数を設定する

CORBA C++ クライアントでは、以下に示す環境変数を使用してシステムに情報を渡すことができます。

 


CORBA リモート・クライアントの最大数を設定する

アプリケーションにリモート・クライアントを参加させるには、 UBBCONFIG ファイルの MACHINES セクションで MAXWSCLIENTS パラメータを指定する必要があります。

MAXWSCLIENTS に指定された値は、BEA Tuxedo システムの起動時に通知され、リモート・クライアント用に確保するアクセサ・スロットの数が決まります。ネイティブ・クライアントの場合、各アクセサ・スロットに必要なセマフォは 1 つです。一方、ISH プロセス (リモート・クライアントの代わりにネイティブ・プラットフォーム上で実行するプロセス) は、リモート・クライアントのアクセスを単一のアクセサ・スロットに多重化するので、必要なセマフォは 1 つだけです。この点も、リモート機能の別の利点の 1 つです。多くのクライアントをネイティブ・プラットフォームからリモート・システムに移動することによって、アプリケーションで使用する IPC 資源を減らすことができます。

MAXWSCLIENTS は、MAXACCESSERS に指定された数のうち、指定された数のアクセサ・スロットを使用します。MAXWSCLIENTS の設定時には、ネイティブ・クライアントとサーバを収容するために必要な数のスロットを残しておく必要があります。MAXWSCLIENTSMAXACCESSERS より大きい値を指定しないでください。次の表は、MAXWSCLIENTS パラメータの説明です。

パラメータ

説明

MAXWSCLIENTS

マシンに接続するリモート・クライアントの最大数を指定します。

デフォルト値は 0 です。この値を指定しないと、リモート・クライアントから指定されたマシンに接続できません。

構文は MAXWSCLIENTS=numberです。


 

 


CORBA リモート・クライアントのリスナを設定する

リモート・クライアントは、1 つの ISL プロセスと、1 つ以上の ISH プロセスのサービスを介してアプリケーションにアクセスします。ISL は、BEA Tuxedo システム側で提供されるサーバとして、1 つのエントリで指定されます。ISL は複数のリモート・クライアントを扱うことができます。これらのリモート・クライアントは 唯一の通信ポイントである ISL を経由して特定のネットワーク・アドレス (ISL コマンド行で指定) のアプリケーションに接続します。リスナは、1 つまたは複数のリモート・ハンドラ・プロセスをスケジューリングします。ISH プロセスは、アプリケーションの管理ドメインで、リモート・システム上のリモート・クライアントの代理として機能します。ISH は多重化スキーマによって、複数のワークステーション・クライアントを同時にサポートします。

リモート・クライアントをアプリケーションに参加させるには、UBBCONFIG ファイルの SERVERS セクションで ISL プロセスをリストする必要があります。この場合、サーバのリストと同じ構文を使用します。

CLOPT パラメータの形式

以下の ISL コマンド行オプション (CLOPT) を使用して、リモート・クライアントの ISL プロセスに情報を渡します。CLOPT パラメータの形式は、次のとおりです。

ISL SRVGRP=モidentifierモ
SRVID="number"
CLOPT="[ -A ] [ servopts options ] -- -n netaddr
[ -C {detect|warn|none} ]
[ -d device ]
[ -K {client|handler|both|none} ]
[ -m minh ]
[ -M maxh ]
[ -T client-timeout]
[ -x mpx-factor ]
[ -H external-netaddr"
CLOPT コマンド行オプションの詳細については、『BEA Tuxedo コマンド・リファレンス』 の ISL コマンドを参照してください。

 


CORBA リモート・クライアントをサポートするようにコンフィギュレーション・ファイルを変更する

リスト0-1 は、リモート・クライアントをサポートするUBBCONFIG ファイルの例です。以下の特徴があります。

コード リスト0-1 UBBCONFIG ファイルの設定例

*MACHINES
SITE1
...
MAXWSCLIENTS=150
...
SITE2
...
MAXWSCLIENTS=0
...
*SERVERS
...
ISL SRVGRP=”BANKB1" SRVID=500 RESTART=Y
CLOPT=”-A -- -n //TRIXIE:2500 -d /dev/tcp
-m 5 -M 30 -x 5"
..

 


リモート共同クライアント/サーバのアウトバウンド IIOP を設定する

アウトバウンド IIOP のサポートにより、ネイティブ・クライアントと、ネイティブ・クライアントとして機能するサーバは、BEA Tuxedo ドメイン外のリモート・オブジェクト・リファレンスを呼び出すことができます。つまり、コールバックに登録されているリモート・クライアントを呼び出して、リモート・サーバ内のオブジェクトにアクセスすることができます。

アウトバウンド IIOP サポート・コンポーネントと直接通信できるのは管理者だけです。管理者は、適切な起動パラメータを使用して ISL を起動し、接続が確立されていないクライアントのオブジェクトに対して、アウトバウンド IIOP を実行できるようにします。また、管理者は、起動する ISL の数や各種起動パラメータを調整し、システムの負荷状況に応じた最適な設定を行う必要もあります。

デフォルトのパラメータを使用して ISL を起動することも可能です。ただし、BEA Tuxedo ISL のデフォルトの起動パラメータでは、IIOP のアウトバウンドを有効にできません。

注記 アウトバウンド IIOP は、トランザクションおよびセキュリティ機能ではサポートされていません。

機能説明

クライアント・コールバックをサポートするには、アウトバウンド IIOP のサポートが必要です。BEA WebLogic Enterprise のバージョン 4.0 および 4.1 では、ISL/ISH はインバウンドのハーフ・ゲートウェイでしたが、アウトバウンド IIOP のサポートにより、ISL/ISH にアウトバウンドのハーフ・ゲートウェイが追加されています (図12-2 を参照してください)。

ネイティブ・サーバおよびリモート共同クライアント/サーバ・アプリケーションでサポートされる GIOP のバージョンによって、以下に示す 3 種類のアウトバウンド IIOP 接続を使用できます。

双方向およびデュアル・ペア接続のアウトバウンド IIOP では、ISH に接続された共同クライアント/サーバに存在するオブジェクト・リファレンスへのアウトバウンド IIOP 接続が可能です。非対称のアウトバウンド IIOP では、ISH に接続された共同クライアント/サーバに存在しないオブジェクト・リファレンスへのアウトバウンド IIOP 接続が可能です。また、現在 ISH に接続されているクライアント上のオブジェクト・リファレンスだけでなく、任意のオブジェクト・リファレンスを BEA Tuxedo CORBA クライアントによって呼び出すことができます。

以下の節では、それぞれのアウトバウンド IIOP について詳しく説明します。

図 12-2 サポートされる共同クライアント/サーバ IIOP 接続


 

双方向のアウトバウンド IIOP

双方向のアウトバウンド IIOP では、以下の操作が実行されます (図12-3 参照)。

  1. クライアントはオブジェクト・リファレンスを作成し、BEA Tuxedo CORBA サーバを呼び出します。クライアント ORB は、サービス・コンテキストを使用して、その接続が双方向であることを認識します。このサービス・コンテキストは、メッセージと共に BEA Tuxedo CORBA サーバに送信されます。

  2. オブジェクト・リファレンスのアンマーシャリングで、BEA Tuxedo CORBA サーバはサービス・コンテキストのホスト/ポートをオブジェクト・リファレンスのホスト/ポートと比較します。これらが一致すると、ORB によって ISH へのルーティングに必要な ISH クライアント情報が追加されます。このクライアント情報は、オブジェクト・リファレンスが BEA Tuxedo CORBA サーバに渡される場合、常にオブジェクト・リファレンスと共に送信されます。

  3. 適切な時点で、BEA Tuxedo CORBA サーバまたはネイティブ・クライアントがオブジェクト・リファレンスを呼び出します。クライアント情報が指定されている場合、ルーティング・コードによって適切な ISH が呼び出されます。

  4. ISH は、同じクライアント接続を使用して要求をクライアントに送信します。

  5. クライアントはメソッドを実行し、クライアント接続を使用して ISH に応答を返します。

  6. ISH は、応答を受信して BEA Tuxedo CORBA サーバに転送します。

    図 12-3 双方向接続


     

非対称のアウトバウンド IIOP

非対称のアウトバウンド IIOP では、以下の操作が実行されます (図12-4 参照)。

  1. サーバは、ソースからオブジェクト・リファレンスを取得します。ネーミング・サービスや string_to_object を取得したり、クライアントを介して取得することもできますが、クライアント自体に存在するものは対象外です。ISH に接続されたクライアントにはオブジェクト・リファレンスが存在しないため、双方向接続を使用して送信時呼び出しを行うことはできません。BEA Tuxedo CORBA サーバがオブジェクト・リファレンスを呼び出します。

  2. 最初の呼び出しで、ルーティング・コードによって ISL のサービスが呼び出され、ホスト/ポートに渡されます。

  3. ISL はアウトバウンド呼び出しを処理する ISH を選択し、ISH 情報を BEA Tuxedo CORBA サーバに返します。

  4. BEA Tuxedo CORBA サーバは ISH を呼び出します。

  5. ISH は、クライアントに対して要求を送信するときに使用する送信時接続を決定します。接続が確立されていない場合、ISH はホスト/ポートへの接続を作成します。

  6. クライアントがメソッドを実行し、ISH に応答を返します。

  7. ISH は、応答を受信して BEA Tuxedo CORBA サーバに転送します。

    図 12-4 非対称のアウトバウンド IIOP


     

デュアル・ペア接続によるアウトバウンド IIOP

デュアル・ペア接続によるアウトバウンド IIOP では、以下の操作が実行されます (図12-5 参照)。

  1. クライアントは、オブジェクト・リファレンスを作成し、Bootstrap 関数 (register_callback_port) を呼び出して、オブジェクト・リファレンスを渡します。

  2. ISH が IOR からホスト/ポートを取得し、クライアント・コンテキストに保存します。

  3. クライアントは BEA Tuxedo CORBA サーバを呼び出してオブジェクト・リファレンスを渡します。register_callback_port 呼び出しによって、ISH がホスト/ポートを含むサービス・コンテキストを作成します。このサービス・コンテキストは、メッセージと共に BEA Tuxedo CORBA サーバに送信されます。

  4. オブジェクト・リファレンスのアンマーシャリングで、BEA Tuxedo CORBA サーバはサービス・コンテキストのホスト/ポートをオブジェクト・リファレンスのホスト/ポートと比較します。これらが一致すると、ORB によって ISH クライアント情報がオブジェクト・リファレンスに追加されます。このクライアント情報は、オブジェクト・リファレンスが BEA Tuxedo CORBA サーバに渡される場合、常にオブジェクト・リファレンスと共に送信されます。

  5. 適切な時点で、BEA Tuxedo CORBA サーバまたはネイティブ・クライアントがオブジェクト・リファレンスを呼び出します。ルーティング・コードによって適切な ISH が呼び出され、クライアント情報が渡されます。

  6. ISH は、クライアントに対する 2 番目の接続を作成します。ISH は、この 2 番目の接続を使用してクライアントに要求を送信します。

  7. クライアントがメソッドを実行し、最初のクライアント接続を使用して ISH に応答を返します。

  8. ISH は、応答を受信して BEA Tuxedo CORBA サーバに転送します。クライアントは ISH との最初の接続と 2 番目の接続を切断します。

    図 12-5 デュアル・ペア接続によるアウトバウンド IIOP


     

ルーティング・コードによる ISL の検出

ISL の検出手順は以下のとおりです。

  1. 各 ISL でサービスが宣言されます。

  2. ルーティング・コードによってサービス名が呼び出されます。

    注記 ISL の検出には通常の BEA Tuxedo ルーティングが使用されます。

  3. 同じマシン上でアイドル状態の ISL が使用可能な場合は、その ISL が常に選択されます。アイドルの ISL が使用できない場合、NETLOAD は通常ローカル ISL が選択されていることを確認します。

    注記 ローカル・マシン以外のマシンで ISL が呼び出される場合もあります。

 


ISL コマンドを使用してアウトバウンド IIOP のサポートを設定する

ネイティブな C++ または Java クライアント、ネイティブ・クライアントとして動作するサーバからリモート・オブジェクト・リファレンスを呼び出す場合は、アウトバウンド IIOP サポートを使用します。ルーティング・コードでは、オブジェクト・リファレンスのソースが BEA Tuxedo CORBA ORB 以外、またはリモートの BEA Tuxedo CORBA 共同クライアント/サーバであることが認識されます。

オブジェクト・リファレンスの種類

リモート・オブジェクト・リファレンスには、次の 2 つの種類があります。

どちらのオブジェクト・リファレンスも、ルーティング・コードで検出され、アウトバウンド IIOP サポートに送信された後、処理されます。

ユーザ・インターフェイス

アウトバウンド IIOP サポートのユーザ・インターフェイスは、コマンド行インターフェイスであり、これを使用して ISL プロセスを起動します。BEA Tuxedo ソフトウェアの今回のリリースでは、アウトバウンド IIOP 処理を設定するための新しいコマンド行オプションが追加されています。これらのオプションを使用すると、ISH に接続されていないクライアントに存在するオブジェクト・リファレンスへの非対称の IIOP 接続がサポートされます。

以下の ISL コマンド構文は、アウトバウンド IIOP をサポートする新しいオプションを示しています。

ISL SRVGRP="identifier"

SRVID="number"

CLOPT="[ -A ] [ servopts options ] -- -n netaddr
[ -C {detect|warn|none} ]
[ -d device ]
[ -K {client|handler|both|none} ]
[ -m minh ]
[ -M maxh ]
[ -T Client-timeout]
[ -x mpx-factor ]
[-H external-netaddr]
#NEW options for outbound IIOP
[-O]
[-o outbound-max-connections]
[-s Server-timeout]
[-u out-mpx-users] "

CLOPT コマンド行オプションの詳細については、『BEA Tuxedo コマンド・リファレンス』の ISL コマンドを参照してください。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy