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

Tuxedo CORBA アプリケーション入門

 Previous Next Contents Index View as PDF  

BEA Tuxedo CORBA プログラミング環境

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

 


BEA Tuxedo CORBA のプログラミング機能の概要

BEA Tuxedo では、分散オブジェクトの開発と管理を容易にする堅牢な CORBA プログラミング環境が提供されます。以下の節では、プログラミング環境の機能について説明します。

IDL コンパイラ

BEA Tuxedo CORBA プログラミング環境では、CORBA オブジェクトの開発を容易にする次のようなインターフェイス定義言語 (IDL) コンパイラが提供されます。

注記 m3idltojava コンパイラは、このリリースでは使用しないでください。BEA 社では、idltojava コンパイラを使用して CORBA Java クライアントおよび CORBA Java 共同クライアント/サーバのクライアント・スタブを生成することをお勧めします。

IDL コンパイラの使い方については、BEA Tuxedo CORBA アプリケーションの開発を参照してください。idl の説明については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo コマンド・リファレンス』を参照してください。

idltojava コマンドの使い方については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo コマンド・リファレンス』および『BEA Tuxedo CORBA idltojava コンパイラ』を参照してください。

開発コマンド

表 2-1 は、BEA Tuxedo CORBA プログラミング環境で CORBA アプリケーションの開発とインターフェイス・リポジトリの管理のために用意されているコマンドのリストです。

表 2-1 BEA Tuxedo CORBA の開発コマンド

開発
コマンド

説明

buildobjclient

C++ クライアント・アプリケーションを作成します。

buildobjserver

C++ サーバ・アプリケーションを作成します。

genicf

インプリメンテーション・コンフィギュレーションファイル (ICF) を生成します。ICF ファイルでは、C++ サーバ・アプリケーションの活性化とトランザクションの方針を定義します。

id12ir

インターフェイス・リポジトリを作成して、インターフェイス定義をロードします。

ir2idl

インターフェイス・リポジトリの内容を表示します。

irdel

インターフェイス・リポジトリから指定されたオブジェクトを削除します。


 

開発コマンドを使用してクライアント・アプリケーションおよびサーバ・アプリケーションを開発する方法については、BEA Tuxedo CORBA アプリケーションの開発を参照してください。

開発コマンドの説明については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo コマンド・リファレンス』を参照してください。

管理ツール

BEA Tuxedo CORBA のプログラミング環境では、CORBA アプリケーションを管理するためのツール一式が提供されます。BEA Tuxedo CORBA アプリケーションは、コマンドまたはグラフィカル・ユーザ・インターフェイスを使用するか、スクリプトで管理ユーティリティを使用することで管理できます。

表 2-2 のリストにあるコマンドを使用すると、CORBA アプリケーションの管理タスクを実行できます。

表 2-2 管理コマンド

管理

コマンド

説明

tmadmin

現在のコンフィギュレーション・パラメータの情報を表示します。

tmboot

指定されたコンフィギュレーション・ファイルで参照される BEA Tuxedo CORBA アプリケーションをアクティブにします。使用するオプションによって、アプリケーション全体またはその一部が起動します。

tmconfig

BEA Tuxedo CORBA アプリケーションのコンフィギュレーション情報を動的に更新および取得します。

tmloadcf

コンフィギュレーション・ファイルを解析し、バイナリ形式のコンフィギュレーション・ファイルをロードします。

tmshutdown

指定されたサーバ・アプリケーションをシャットダウンするか、コンフィギュレーション・ファイルからインターフェイスを削除します。

tmunloadcf

コンフィギュレーション・ファイルをアンロードします。


 

Administration Console は、インターネット・ブラウザにダウンロードでき、BEA Tuxedo CORBA アプリケーションのリモート管理に使用する Java ベースのアプレットです。Administration Console では、システム・イベントの監視、システム・リソースの管理、管理オブジェクトの作成とコンフィギュレーション、システム統計の表示といった管理タスクを実行できます。図2-1 は、Administration Console のメイン・ウィンドウです。

図 2-1 Administration Console のメイン・ウィンドウ


 


 


 

また、AdminAPI というユーティリティ・セットも利用できます。AdminAPI を使用すると、BEA Tuxedo 製品の管理情報ベース (MIB) のシステム設定を直接アクセスおよび操作できます。AdminAPI の利点は、ログ・ファイルの監視やアプリケーションの動的な再コンフィギュレーションなどの管理タスクを自動化し、人が行う作業を減らせることです。

管理コマンドについては、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo のファイル形式とデータ記述方法』を参照してください。

Administration Console およびそのしくみの説明については、Administration Console のグラフィカル・ユーザ・インターフェイス (GUI) に統合されているオンライン・ヘルプを参照してください。

AdminAPI については、BEA Tuxedo オンライン・マニュアルの 『BEA Tuxedo アプリケーションの設定』を参照してください。

ActiveX Application Builder

ActiveX Application Builder は、クライアント開発ツール (Visual Basic など) と共に使用する開発ツールであり、ActiveX クライアント・アプリケーションがやり取りする BEA Tuxedo ドメイン内の CORBA インターフェイスを選択するために使用します。また、ActiveX Application Builder では、CORBA インターフェイスのオートメーション・バインディングを作成したり、CORBA オブジェクトの ActiveX ビューをクライアント・マシンにデプロイするパッケージを作成したりすることもできます。

図2-2 は、ActiveX Application Builder のメイン・ウィンドウです。

図 2-2 ActiveX Application Builder のメイン・ウィンドウ


 

ActiveX Application Builder およびそのしくみの説明については、ActiveX Application Builder のグラフィカル・ユーザ・インターフェイス (GUI) に統合されているオンライン・ヘルプを参照してください。ActiveX クライアント・アプリケーションの作成については、BEA Tuxedo オンライン・マニュアルの 『BEA Tuxedo CORBA ActiveX』を参照してください。

 


BEA Tuxedo CORBA オブジェクト・サービス

BEA Tuxedo 製品には、BEA Tuxedo ドメインの CORBA クライアント・アプリケーションにオブジェクト・サービスを提供する環境オブジェクトのセットがあります。環境オブジェクトには、特定の BEA Tuxedo ドメインのサービスにアクセスするブートストラップ・プロセスを通じてアクセスします。

BEA Tuxedo CORBA では、次のサービスが提供されます。

BEA Tuxedo CORBA では、次のプログラミング環境の環境オブジェクトが提供されます。

BEA Tuxedo CORBA では、初期オブジェクト・リファレンスを取得するための、サード・パーティ・クライアントによる OMG CORBA インターオペラブル・ネーミング・サービス (INS) の使用もサポートされています。

 


BEA Tuxedo CORBA の構成要素

この節では、BEA Tuxedo CORBA プログラミング環境の次の構成要素について説明します。

図2-3 は、BEA Tuxedo CORBA アプリケーションの構成要素を示しています。

図 2-3 BEA Tuxedo CORBA アプリケーションの構成要素


 


 


 


 


 


 


 


 


 


 


 

BEA Tuxedo ドメインのブートストラップ処理

ドメインとは、オブジェクトとサービスを管理エンティティとして 1 つのグループにまとめる手段のことです。BEA Tuxedo ドメインは、少なくとも 1 つの IIOP リスナ/ハンドラを持ち、名前で識別されます。1 つのクライアント・アプリケーションから、複数の Bootstrap オブジェクトを使用して複数の BEA Tuxedo ドメインに接続できます。

クライアント・アプリケーションと BEA Tuxedo ドメインの通信は、そのドメインをブートストラップ処理することで確立されます。ブートストラップ処理のメカニズムには、BEA 社のメカニズムと OMG が規定した CORBA インターオペラブル・ネーミング・サービス (INS) のメカニズムがあります。BEA CORBA クライアント・ソフトウェアを使用する場合は、BEA 社のメカニズムを使用します。別のベンダのクライアント ORB を使用する場合は、CORBA INS メカニズムを使用します。BEA Tuxedo ドメインのブートストラップ処理の詳細については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA プログラミング・リファレンス』を参照してください。

起動後のクライアント・アプリケーションで最初に行われることの 1 つは、Bootstrap オブジェクトの作成です。その際には、次のいずれかの URL アドレス形式で IIOP リスナ/ハンドラのホストとポートを指定します。

Bootstrap URL アドレス形式の詳細については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。

次に、クライアント・アプリケーションでは Bootstrap オブジェクトまたは INS ブートストラップ処理メカニズムを使用して BEA Tuxedo ドメインにあるオブジェクトのリファレンスを取得します。Bootstrap オブジェクトがインスタンス化されると、CORBA サービスを提供する BEA Tuxedo ドメイン内のオブジェクトのリファレンスを取得するために、resolve_initial_references() メソッドがクライアント・アプリケーションによって呼び出されます (引数として string id が渡される)。

図2-2 は、Bootstrap オブジェクトまたは INS メカニズムが BEA Tuxedo ドメインでどのように機能するのかを示しています。

図 2-4 Bootstrap オブジェクトまたは INS のしくみ


 

IIOP リスナ/ハンドラ

IIOP リスナ/ハンドラは、IIOP を使用して送信された CORBA クライアントの要求を受信し、その要求を適切な CORBA サーバ・アプリケーションに転送するプロセスです。IIOP リスナ/ハンドラは、通信のコンセントレータとして機能し、必要不可欠なスケーラビリティ機能を実現します。IIOP リスナ/ハンドラを使用すると、CORBA サーバ・アプリケーションでクライアント接続を管理する必要がなくなります。IIOP リスナ/ハンドラのコンフィギュレーションについては、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo アプリケーションの設定』および『BEA Tuxedo コマンド・リファレンス』の ISL コマンドの説明を参照してください。

ORB

ORB は、CORBA クライアント・アプリケーションから CORBA サーバ・アプリケーションに送信される要求の媒介として機能します。ORB が介在することで、それらのアプリケーションではお互いについての情報が必要なくなります。ORB は、要求を満たすことができるインプリメンテーションを見つけたり、要求を受信するオブジェクトのインプリメンテーションを準備したり、要求を構成するデータを伝達したりするために必要なすべてのメカニズムについて責任を持ちます。BEA Tuxedo CORBA 製品では、C++ のクライアント/サーバ ORB と BEA バージョンの Java IDL クライアント ORB (Sun Microsystems の JDK 付属) が提供されます。

図2-5 は、ORB、CORBA クライアント・アプリケーション、および CORBA サーバ・アプリケーションの間の関係を示しています。

図 2-5 CORBA クライアント/サーバ環境の ORB


 


 

クライアント・アプリケーションから IIOP を使用して BEA Tuxedo ドメインに要求が送信されると、ORB では次の機能が実行されます。

TP フレームワーク

TP フレームワークでは、高水準の性能を実現しながら、CORBA インターフェイスの複雑さを隠蔽するプログラミング・モデルが提供されます。TP フレームワークでは CORBA アプリケーションの迅速な構築がサポートされており、デザイン・パターンに従って適切な TP アプリケーションをビルドすることが容易になっています。

TP フレームワークはポータブル・オブジェクト・アダプタ (POA) および CORBA アプリケーションとやり取りするので、アプリケーションでは POA を直接呼び出す必要がありません。また、TP フレームワークではトランザクションと状態の管理が BEA Tuxedo CORBA アプリケーションに統合されます。

アプリケーション・プログラマは、標準の CORBA アプリケーションで必要な機能の多くを自動化するアプリケーション・プログラミング・インターフェイス (API) を使用します。アプリケーション・プログラマのすることは、CORBA アプリケーションのビジネス・ロジックを記述し、TP フレームワークのデフォルトのアクションを上書きすることだけです。

TP フレームワークの API では、CORBA アプリケーションで必要な次の機能を実行するルーチンが提供されます。

TP フレームワークを利用すると、クライアントの要求が調和のとれた予測可能な方法で実行されます。TP フレームワークでは、BEA Tuxedo アプリケーションで利用可能なオブジェクトとサービスが適切なときに的確な順序で呼び出されます。また、TP フレームワークではオブジェクトによるシステム・リソースの再利用が最大限に行われます。図2-6 は、TP フレームワークを示しています。

図 2-6 TP フレームワーク


 


 

TP フレームワークは単一のオブジェクトではなく、CORBA アプリケーションのデータとビジネス・ロジックを格納およびインプリメントする CORBA オブジェクトを管理するためにまとまって機能するオブジェクトの集合です。

TP フレームワークのオブジェクトの 1 つに Server オブジェクトがあります。Server オブジェクトは、サーバ・アプリケーションの初期化や解放といったタスクを実行するオペレーションをインプリメントするユーザの記述によるプログラミング・エンティティです。サーバ・アプリケーションの場合、TP フレームワークではクライアントの要求を満たすために必要な CORBA オブジェクトがインスタンス化されます。

サーバ・アプリケーションで現時点でアクティブではなく、メモリに存在しないオブジェクトを必要とするクライアントの要求が届くと、TP フレームワークではそのオブジェクトをインスタンス化するために必要なすべてのオペレーションが調整されます。この調整には、ORB や、クライアントの要求を適切なオブジェクト・インプリメンテーション・コードに渡すための POA との調整も含まれます。

 


BEA Tuxedo CORBA のクライアント・アプリケーションとサーバ・アプリケーションのやり取り

BEA Tuxedo CORBA のクライアント・アプリケーションとサーバ・アプリケーションのやり取りは次のように行われます。

  1. CORBA サーバ・アプリケーションが初期化されます。

  2. CORBA クライアント・アプリケーションが初期化されます。

  3. BEA Tuxedo ドメインで CORBA クライアント・アプリケーションが認証されます。

  4. ビジネス・ロジックを実行するために必要な CORBA オブジェクトのリファレンスが CORBA クライアント・アプリケーションで取得されます。

  5. CORBA オブジェクトのオペレーションが CORBA クライアント・アプリケーションによって呼び出されます。

以降の節では、各ステップを詳しく説明します。

ステップ 1: CORBA サーバ・アプリケーションの初期化

システム管理者が、BEA Tuxedo ドメイン内のマシンで tmboot コマンドを入力して BEA Tuxedo CORBA サーバ・アプリケーションを起動します。TP フレームワークでは、Server オブジェクトの initialize() オペレーションを呼び出してサーバ・アプリケーションが初期化されます。


 

初期化プロセスで、Server オブジェクトでは次のことが行われます。

  1. Bootstrap オブジェクトまたは INS を使用して FactoryFinder オブジェクトのリファレンスを取得します。

  2. 通常は、FactoryFinder オブジェクトにファクトリを登録します。

  3. 必要に応じて ORB のオブジェクト・リファレンスを取得します。

  4. プロセス全体の初期化を実行します。

ステップ 2: CORBA クライアント・アプリケーションの初期化

初期化時に、CORBA クライアント・アプリケーションでは BEA Tuxedo ドメインにあるオブジェクトの初期リファレンスを取得します。


 


 

Bootstrap オブジェクトからは、BEA Tuxedo ドメインの FactoryFinder、SecurityCurrent、TransactionCurrent、NameService、および InterfaceRepository の各オブジェクトのリファレンスが返されます。

ステップ 3: BEA Tuxedo ドメインでの CORBA クライアント・アプリケーションの認証

BEA Tuxedo ドメインでセキュリティ・モデルが設定されている場合、BEA Tuxedo ドメインで認証を受けないと CORBA クライアント・アプリケーションでは CORBA サーバ・アプリケーションのオペレーションを呼び出すことができません。BEA Tuxedo ドメインでの認証のために、CORBA クライアント・アプリケーションでは次のことが行われます。

  1. Bootstrap オブジェクトを使用して FactoryFinder オブジェクトのリファレンスを取得します。

  2. PrincipalAuthenticator オブジェクトの logon() オペレーションを呼び出します。PrincipalAuthenticator オブジェクトは、SecurityCurrent オブジェクトから取り出します。

注記 証明書に基づく認証の方法については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。

ステップ 4: CORBA クライアント・アプリケーションによる、ビジネス・ロジックの実行に必要な CORBA オブジェクトのリファレンスの取得

CORBA クライアント・アプリケーションでは、以下のことを実行する必要があります。

  1. 必要なオブジェクトのファクトリのリファレンスを取得します。

    たとえば、クライアント・アプリケーションでは SimpleFactory オブジェクトのリファレンスが必要です。次の図で示されているように、このファクトリのリファレンスは FactoryFinder オブジェクトから取得します。


     

  2. SimpleFactory オブジェクトを呼び出して、Simple オブジェクトのリファレンスを取得します。

    SimpleFactory オブジェクトがアクティブでない場合は、次の図で示されているように、TP フレームワークが Server オブジェクトの Server::create_servant メソッドを呼び出して SimpleFactory オブジェクトをインスタンス化します。


     


     

  3. TP フレームワークでは、次の図で示されているように、SimpleFactory オブジェクトの activate_object() オペレーションと find_simple() オペレーションを呼び出して Simple オブジェクトのリファレンスを取得します。


     


     


     

SimpleFactory オブジェクトからクライアント・アプリケーションに Simple オブジェクトのオブジェクト・リファレンスが返されます。

注記 TP フレームワークはデフォルトでオブジェクトをアクティブにするので、Simpapp サンプル・アプリケーションでは SimpleFactory オブジェクトで activate_object() オペレーションを明示的には使用しません。

ステップ 5: CORBA クライアント・アプリケーションによる、CORBA オブジェクトのオペレーションの呼び出し

ファクトリからクライアント・アプリケーションに返された CORBA オブジェクトのリファレンスを使用して、クライアント・アプリケーションからオブジェクトのオペレーションを呼び出します。たとえば、現時点で Simple オブジェクトのオブジェクト・リファレンスがあるので、クライアント・アプリケーションでは Simple オブジェクトの to_upper() オペレーションを呼び出すことができます。クライアントの要求で必要な Simple オブジェクトのインスタンスは、次の図のように作成されます。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy