|
|
BEA Tuxedo CORBA プログラミング環境
ここでは、次の内容について説明します。
BEA Tuxedo CORBA のプログラミング機能の概要
BEA Tuxedo では、分散オブジェクトの開発と管理を容易にする堅牢な CORBA プログラミング環境が提供されます。以下の節では、プログラミング環境の機能について説明します。
IDL コンパイラ
BEA Tuxedo CORBA プログラミング環境では、CORBA オブジェクトの開発を容易にする次のようなインターフェイス定義言語 (IDL) コンパイラが提供されます。
idl
− OMG IDL ファイルをコンパイルし、C++ でインプリメントされるインターフェイス定義で必要なクライアント・スタブ・ファイルとサーバ・スケルトン・ファイルを生成します。idltojava
− Java クライアントをビルドするためのコンパイラです。OMG で定義されている IDL と Java のマッピングに基づいて IDL ファイルを Java ソース・コードにコンパイルします。この idltojava
コンパイラは、Sun Microsystems 提供のオリジナルのコンパイラをいくつかの点で拡張したものです。BEA Tuxedo 独自の修正点は次のとおりです。#pragma ID
name Repository_id
が追加されています。#pragma version
name m.n
が追加されています。#pragma
接頭辞が拡張されて、内部スコープを扱えるようになりました。空白の接頭辞が戻されます。注記 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 アプリケーションの開発とインターフェイス・リポジトリの管理のために用意されているコマンドのリストです。
開発コマンドを使用してクライアント・アプリケーションおよびサーバ・アプリケーションを開発する方法については、BEA Tuxedo CORBA アプリケーションの開発を参照してください。
開発コマンドの説明については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo コマンド・リファレンス』を参照してください。
管理ツール
BEA Tuxedo CORBA のプログラミング環境では、CORBA アプリケーションを管理するためのツール一式が提供されます。BEA Tuxedo CORBA アプリケーションは、コマンドまたはグラフィカル・ユーザ・インターフェイスを使用するか、スクリプトで管理ユーティリティを使用することで管理できます。
表 2-2 のリストにあるコマンドを使用すると、CORBA アプリケーションの管理タスクを実行できます。
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 では、次のサービスが提供されます。
オブジェクト・ライフ・サイクル・サービスは、FactoryFinder 環境オブジェクトを通じて提供されます。FactoryFinder オブジェクトは、ファクトリを見つけるために使用できる CORBA オブジェクトです。ファクトリでは、CORBA オブジェクトのオブジェクト・リファレンスを作成できます。ファクトリと FactoryFinder オブジェクトは、CORBA サービスのライフ・サイクル・サービスのインプリメンテーションです。BEA Tuxedo CORBA アプリケーションでは、オブジェクト・ライフ・サイクル・サービスを使用してオブジェクト・リファレンスを検索します。
オブジェクト・ライフ・サイクル・サービスの使い方については、BEA Tuxedo CORBA のクライアント・アプリケーションとサーバ・アプリケーションのやり取りを参照してください。
セキュリティ・サービスには、SecurityCurrent 環境オブジェクトまたは PrincipalAuthenticator オブジェクトを通じてアクセスします。SecurityCurrent オブジェクトと PrincipalAuthenticator オブジェクトは、適切なセキュリティを備える BEA Tuxedo ドメインにアクセスするクライアント・アプリケーションを認証するために使用します。BEA Tuxedo ソフトウェアでは、CORBA サービスのセキュリティ・サービスのインプリメンテーションが提供されます。
セキュリティの使い方については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
トランザクション・サービスには、TransactionCurrent 環境オブジェクトまたは TransactionFactory オブジェクトを通じてアクセスします。TransactionCurrent オブジェクトおよび TransactionFactory オブジェクトを使用すると、クライアント・アプリケーションがトランザクションに参加できます。BEA Tuxedo ソフトウェアでは、CORBA
サービスのオブジェクト・トランザクション・サービス (OTS) のインプリメンテーションが提供されます。
トランザクションの使い方については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA トランザクション』を参照してください。
インターフェイス・リポジトリ・サービスには、InterfaceRepository オブジェクトを通じてアクセスします。InterfaceRepository オブジェクトは、利用可能なすべての CORBA インターフェイスのインターフェイス定義と CORBA インターフェイスのオブジェクト・リファレンスを作成するファクトリが格納される CORBA オブジェクトです。InterfaceRepository オブジェクトは、DII を使用するクライアント・アプリケーションで使用します。
DII の使い方については、『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 リスナ/ハンドラのホストとポートを指定します。
//host:port
corbaloc://host:port
corbalocs://host:port
Bootstrap URL アドレス形式の詳細については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
次に、クライアント・アプリケーションでは Bootstrap オブジェクトまたは INS ブートストラップ処理メカニズムを使用して BEA Tuxedo ドメインにあるオブジェクトのリファレンスを取得します。Bootstrap オブジェクトがインスタンス化されると、CORBA サービスを提供する BEA Tuxedo ドメイン内のオブジェクトのリファレンスを取得するために、resolve_initial_references()
メソッドがクライアント・アプリケーションによって呼び出されます (引数として string id
が渡される)。
図 2-4 は、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 サーバ・アプリケーションの初期化
システム管理者が、BEA Tuxedo ドメイン内のマシンで tmboot
コマンドを入力して BEA Tuxedo CORBA サーバ・アプリケーションを起動します。TP フレームワークでは、Server
オブジェクトの initialize()
オペレーションを呼び出してサーバ・アプリケーションが初期化されます。
初期化プロセスで、Server オブジェクトでは次のことが行われます。
ステップ 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 クライアント・アプリケーションでは次のことが行われます。
logon()
オペレーションを呼び出しま
す。PrincipalAuthenticator オブジェクトは、SecurityCurrent オブジェクトか
ら取り出します。
注記 証明書に基づく認証の方法については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
ステップ 4: CORBA クライアント・アプリケーションによる、ビジネス・ロジックの実行に必要な CORBA オブジェクトのリファレンスの取得
CORBA クライアント・アプリケーションでは、以下のことを実行する必要があります。
たとえば、クライアント・アプリケーションでは SimpleFactory オブジェクトのリファレンスが必要です。次の図で示されているように、このファクトリのリファレンスは FactoryFinder オブジェクトから取得します。
Simple
オブジェクトのリファレ
ンスを取得します。
SimpleFactory オブジェクトがアクティブでない場合は、次の図で示されているように、TP フレームワークが Server オブジェクトの Server::create_servant
メソッドを呼び出して SimpleFactory オブジェクトをインスタンス化します。
activate_object()
オペレーションと find_simple()
オペレー
ションを呼び出して Simple オブジェクトのリファレンスを取得します。
SimpleFactory オブジェクトからクライアント・アプリケーションに Simple
オブジェクトのオブジェクト・リファレンスが返されます。
注記 TP フレームワークはデフォルトでオブジェクトをアクティブにするので、Simpapp サンプル・アプリケーションでは SimpleFactory オブジェクトで activate_object()
オペレーションを明示的には使用しません。
ステップ 5: CORBA クライアント・アプリケーションによる、CORBA オブジェクトのオペレーションの呼び出し
ファクトリからクライアント・アプリケーションに返された CORBA オブジェクトのリファレンスを使用して、クライアント・アプリケーションからオブジェクトのオペレーションを呼び出します。たとえば、現時点で Simple オブジェクトのオブジェクト・リファレンスがあるので、クライアント・アプリケーションでは Simple オブジェクトの to_upper()
オペレーションを呼び出すことができます。クライアントの要求で必要な Simple オブジェクトのインスタンスは、次の図のように作成されます。
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|