注: | Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBはTuxedo 8.1で非推奨になり、サポートされなくなりました。Oracle Tuxedo CORBA JavaクライアントおよびOracle Tuxedo CORBA JavaクライアントORBのテキスト参照、関連するコード・サンプルはすべて、サード・パーティのJava ORBライブラリの実装/実行の支援と、プログラマによる参照のみに使用する必要があります。 |
注: | サード・パーティのCORBA Java ORBのテクニカル・サポートは、各ベンダーによって提供されます。Oracle Tuxedoでは、サード・パーティのCORBA Java ORBに関する技術的なサポートまたはドキュメントは提供していません。 |
Oracle Tuxedoでは、分散オブジェクトの開発と管理を容易にする堅牢なCORBAプログラミング環境が提供されます。以下の項では、プログラミング環境の機能について説明します。
Oracle Tuxedo CORBAプログラミング環境では、CORBAオブジェクトの開発を容易にする次のようなインタフェース定義言語(IDL)コンパイラが提供されます。
IDLコンパイラを使用する方法については、「Oracle Tuxedo CORBAアプリケーションの開発」を参照してください。idl
コマンドの説明については、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoコマンド・リファレンス』を参照してください。
表2-1は、Oracle Tuxedo CORBAプログラミング環境でCORBAアプリケーションの開発とインタフェース・リポジトリの管理のために用意されているコマンドのリストです。
開発コマンドを使用してクライアント・アプリケーションおよびサーバー・アプリケーションを開発する方法については、「Oracle Tuxedo CORBAアプリケーションの開発」を参照してください。
開発コマンドの説明については、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoコマンド・リファレンス』を参照してください。
Oracle Tuxedo CORBAのプログラミング環境では、CORBAアプリケーションを管理するための完全なツール・セットが提供されています。Oracle Tuxedo CORBAアプリケーションの管理を、コマンド、グラフィカル・ユーザー・インタフェース、またはスクリプト内に管理ユーティリティを含めることによって実行することができます。
表2-2のリストにあるコマンドを使用すると、CORBAアプリケーションの管理タスクを実行できます。
管理コンソールは、インターネット・ブラウザにダウンロードでき、Oracle Tuxedo CORBAアプリケーションのリモート管理に使用するJavaベースのアプレットです。管理コンソールでは、システム・イベントのモニタリング、システム・リソースの管理、管理オブジェクトの作成と構成、システム統計の表示といった管理タスクを実行できます。図2-1は、管理コンソールのメイン・ウィンドウです。
また、AdminAPIというユーティリティ・セットも利用できます。AdminAPIを使用すると、Oracle Tuxedo製品の管理情報ベース(MIB)のシステム設定を直接アクセスおよび操作できます。AdminAPIの利点は、ログ・ファイルのモニタリングやアプリケーションの動的な再構成などの管理タスクを自動化し、人が行う作業を減らせることです。
管理コマンドについては、Oracle Tuxedoオンライン・ドキュメントの『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』を参照してください。
管理コンソールおよびそのしくみの説明については、管理コンソールのグラフィカル・ユーザー・インタフェース(GUI)に統合されているオンライン・ヘルプを参照してください。
AdminAPIについては、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoアプリケーションの設定』を参照してください。
Oracle Tuxedo製品には、Oracle TuxedoドメインのCORBAクライアント・アプリケーションにオブジェクト・サービスを提供する環境オブジェクトのセットがあります。環境オブジェクトには、特定のOracle Tuxedoドメインのサービスにアクセスするブートストラップ・プロセスを通じてアクセスします。
Oracle Tuxedo CORBAでは、次のサービスが提供されます。
オブジェクト・ライフ・サイクル・サービスは、FactoryFinder環境オブジェクトを通じて提供されます。FactoryFinderオブジェクトは、ファクトリを見つけるために使用できるCORBAオブジェクトで、ファクトリでは、CORBAオブジェクトのオブジェクト参照を作成できます。ファクトリとFactoryFinderオブジェクトは、CORBAサービスのライフ・サイクル・サービスの実装です。Oracle Tuxedo CORBAアプリケーションでは、オブジェクト・ライフ・サイクル・サービスを使用してオブジェクト参照を検索します。
オブジェクト・ライフ・サイクル・サービスの使い方については、「Oracle Tuxedo CORBAのクライアント・アプリケーションとサーバー・アプリケーションのやり取り」を参照してください。
セキュリティ・サービスには、SecurityCurrent環境オブジェクトまたはPrincipalAuthenticatorオブジェクトを通じてアクセスします。SecurityCurrentオブジェクトとPrincipalAuthenticatorオブジェクトは、適切なセキュリティを備えるOracle Tuxedoドメインにアクセスするクライアント・アプリケーションを認証するために使用します。Oracle Tuxedoソフトウェアでは、CORBAサービスのセキュリティ・サービスの実装が提供されます。
セキュリティの使用については、Oracle Tuxedoオンライン・ドキュメントの『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。
トランザクション・サービスには、TransactionCurrent環境オブジェクトまたはTransactionFactoryオブジェクトを通じてアクセスします。TransactionCurrentオブジェクトおよびTransactionFactoryオブジェクトを使用すると、クライアント・アプリケーションがトランザクションに参加できます。Oracle Tuxedoソフトウェアでは、CORBAサービスのオブジェクト・トランザクション・サービス(OTS)の実装が提供されます。
トランザクションの使用方法については、Oracle Tuxedoオンライン・ドキュメントの『CORBAトランザクションの使用』を参照してください。
インタフェース・リポジトリ・サービスには、InterfaceRepositoryオブジェクトを通じてアクセスします。InterfaceRepositoryオブジェクトは、利用可能なすべてのCORBAインタフェースのインタフェース定義とCORBAインタフェースのオブジェクト参照を作成するファクトリが格納されるCORBAオブジェクトです。InterfaceRepositoryオブジェクトは、DIIを使用するクライアント・アプリケーションで使用します。
DIIの使い方については、『CORBAクライアント・アプリケーションの作成』を参照してください。
Oracle Tuxedo CORBAでは、次のプログラミング環境の環境オブジェクトが提供されます。
Oracle Tuxedo CORBAでは、初期オブジェクト参照を取得するための、サード・パーティ・クライアントによるOMG CORBA Interoperable Naming Service (INS)の使用もサポートされています。
この項では、Oracle Tuxedo CORBAプログラミング環境の次の構成要素について説明します。
図2-2は、Oracle Tuxedo CORBAアプリケーションの構成要素を示しています。
ドメインとは、オブジェクトやサービスを管理エンティティとしてグループ化する方法の1つです。Oracle Tuxedoドメインには、1つ以上のIIOPリスナーおよびハンドラが存在し、名前によって識別されます。1つのクライアント・アプリケーションは、異なるBootstrapオブジェクトを使用して複数のOracle Tuxedoドメインに接続できます。
クライアント・アプリケーションとOracle Tuxedoドメインの通信は、そのドメインをブートストラップ処理することで確立されます。ブートストラップ処理のメカニズムには、OracleのメカニズムとOMGが規定したCORBA Interoperable Naming Service (INS)のメカニズムがあります。Oracle CORBAクライアント・ソフトウェアを使用する場合は、Oracleのメカニズムを使用します。別のベンダーのクライアントORBを使用する場合は、CORBA INSメカニズムを使用します。Oracle Tuxedoドメインのブートストラップ処理の詳細は、Oracle Tuxedoオンライン・ドキュメントの『CORBAプログラミング・リファレンス』を参照してください。
起動後のクライアント・アプリケーションで最初に行われることの1つは、Bootstrapオブジェクトの作成です。その際には、次のいずれかのURLアドレス形式でIIOPリスナー/ハンドラのホストとポートを指定します。
Bootstrap URLアドレス形式の詳細は、Oracle Tuxedoオンライン・ドキュメントの『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。
次に、クライアント・アプリケーションではBootstrapオブジェクトまたはINSブートストラップ処理メカニズムを使用してOracle Tuxedoドメインにあるオブジェクトのリファレンスを取得します。Bootstrapオブジェクトがインスタンス化されると、CORBAサービスを提供するOracle Tuxedoドメイン内のオブジェクトのリファレンスを取得するために、resolve_initial_references()
メソッドがクライアント・アプリケーションによって呼び出されます(引数としてstring id
が渡されます)。
図2-3は、BootstrapオブジェクトまたはINSメカニズムがOracle Tuxedoドメインでどのように機能するのかを示しています。
IIOPリスナー/ハンドラは、IIOPを使用して送信されたCORBAクライアントのリクエストを受信し、そのリクエストを適切なCORBAサーバー・アプリケーションに転送するプロセスです。IIOPリスナー/ハンドラは、通信のコンセントレータとして機能し、重要なスケーラビリティ機能を実現します。IIOPリスナー/ハンドラを使用すると、CORBAサーバー・アプリケーションでクライアント接続を管理する必要がなくなります。IIOPリスナー/ハンドラの構成については、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoアプリケーションの設定』および『Oracle Tuxedoコマンド・リファレンス』のISLコマンドの説明を参照してください。
ORBは、CORBAクライアント・アプリケーションからCORBAサーバー・アプリケーションに送信されるリクエストの媒介として機能します。ORBが介在することで、それらのアプリケーションではお互いについての情報が必要なくなります。ORBは、リクエストを満たすことができる実装を見つけたり、リクエストを受信するオブジェクトの実装を準備したり、リクエストを構成するデータを伝達したりするために必要なすべてのメカニズムについて責任を持ちます。Oracle Tuxedo CORBA製品にはC++のクライアント/サーバーORBが含まれています。
図2-4は、ORB、CORBAクライアント・アプリケーション、およびCORBAサーバー・アプリケーションの間の関係を示しています。
クライアント・アプリケーションからIIOPを使用してOracle Tuxedoドメインにリクエストが送信されると、ORBでは次の機能が実行されます。
TPフレームワークでは、高水準のパフォーマンスを実現しながら、CORBAインタフェースの複雑さを隠蔽するプログラミング・モデルが提供されます。TPフレームワークではCORBAアプリケーションの迅速な構築がサポートされており、デザイン・パターンに従って適切なTPアプリケーションをビルドすることが容易になっています。
TPフレームワークはポータブル・オブジェクト・アダプタ(POA)およびCORBAアプリケーションとやり取りするので、アプリケーションではPOAを直接呼び出す必要がありません。また、TPフレームワークではトランザクションと状態の管理がOracle Tuxedo CORBAアプリケーションに統合されます。
アプリケーション・プログラマは、標準のCORBAアプリケーションで必要な機能の多くを自動化するアプリケーション・プログラミング・インタフェース(API)を使用します。アプリケーション・プログラマのすることは、CORBAアプリケーションのビジネス・ロジックを記述し、TPフレームワークのデフォルトのアクションをオーバーライドすることだけです。
TPフレームワークのAPIでは、CORBAアプリケーションで必要な次の機能を実行するルーチンが提供されます。
TPフレームワークを利用すると、クライアントのリクエストが調和のとれた予測可能な方法で実行されます。TPフレームワークでは、Oracle Tuxedoアプリケーションで利用可能なオブジェクトとサービスが適切なときに的確な順序で呼び出されます。また、TPフレームワークではオブジェクトによるシステム・リソースの再利用が最大限に行われます。図2-5は、TPフレームワークを示しています。
TPフレームワークは単一のオブジェクトではなく、CORBAアプリケーションのデータとビジネス・ロジックを格納および実装するCORBAオブジェクトを管理するためにまとまって機能するオブジェクトの集合です。
TPフレームワークのオブジェクトの1つにServerオブジェクトがあります。Serverオブジェクトは、サーバー・アプリケーションの初期化や解放といったタスクを実行する操作を実装するユーザーの記述によるプログラミング・エンティティです。サーバー・アプリケーションの場合、TPフレームワークではクライアントのリクエストを満たすために必要なCORBAオブジェクトがインスタンス化されます。
サーバー・アプリケーションで現時点でアクティブではなく、メモリーに存在しないオブジェクトを必要とするクライアントのリクエストが届くと、TPフレームワークではそのオブジェクトをインスタンス化するために必要なすべての操作が調整されます。この調整には、ORBや、クライアントのリクエストを適切なオブジェクト実装コードに渡すためのPOAとの調整も含まれます。
Oracle Tuxedo CORBAのクライアント・アプリケーションとサーバー・アプリケーションのやり取りは次のように行われます。
システム管理者が、Oracle Tuxedoドメイン内のマシンでtmboot
コマンドを入力してOracle Tuxedo CORBAサーバー・アプリケーションを起動します。TPフレームワークでは、Server
オブジェクトのinitialize()
操作を呼び出してサーバー・アプリケーションが初期化されます。
初期化プロセスで、Serverオブジェクトでは次のことが行われます。
初期化時に、CORBAクライアント・アプリケーションではOracle Tuxedoドメインにあるオブジェクトの初期リファレンスを取得します。
Bootstrapオブジェクトからは、Oracle TuxedoドメインのFactoryFinder、SecurityCurrent、TransactionCurrent、NameService、およびInterfaceRepositoryの各オブジェクトのリファレンスが返されます。
Oracle Tuxedoドメインにセキュリティ・モデルが採用されている場合、CORBAクライアント・アプリケーションは、CORBAサーバー・アプリケーションで操作を起動する前にOracle Tuxedoドメインに自らを認証する必要があります。Oracle Tuxedoドメインで自らを認証するために、CORBAクライアント・アプリケーションは次のステップを実行します。
注: | 証明書に基づく認証の方法については、Oracle Tuxedoオンライン・ドキュメントの『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。 |
CORBAクライアント・アプリケーションでは、以下のことを実行する必要があります。
たとえば、クライアント・アプリケーションではSimpleFactoryオブジェクトのリファレンスが必要です。次の図で示されているように、このファクトリのリファレンスはFactoryFinderオブジェクトから取得します。
Simple
オブジェクトのリファレンスを取得します。 SimpleFactoryオブジェクトがアクティブでない場合は、次の図で示されているように、TPフレームワークがServerオブジェクトのServer::create_servant
メソッドを呼び出してSimpleFactoryオブジェクトをインスタンス化します。
activate_object()
操作とfind_simple()
操作を呼び出してSimpleオブジェクトのリファレンスを取得します。 SimpleFactoryオブジェクトからクライアント・アプリケーションにSimple
オブジェクトのオブジェクト参照が返されます。
注: | TPフレームワークはデフォルトでオブジェクトをアクティブにするので、Simpappサンプル・アプリケーションではSimpleFactoryオブジェクトでactivate_object() 操作を明示的には使用しません。 |
ファクトリからクライアント・アプリケーションに返されたCORBAオブジェクトのリファレンスを使用して、クライアント・アプリケーションからオブジェクトの操作を呼び出します。たとえば、現時点でSimpleオブジェクトのオブジェクト参照があるので、クライアント・アプリケーションではSimpleオブジェクトのto_upper()
操作を呼び出すことができます。クライアントのリクエストで必要なSimpleオブジェクトのインスタンスは、次の図のように作成されます。