Oracle Tuxedo CORBAアプリケーション・スタート・ガイド

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを入手 - 新規ウィンドウ
コンテンツはここから始まります

Oracle Tuxedo CORBAのプログラミング環境

このトピックには次の項が含まれます:

注: 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プログラミング環境が提供されます。以下の項では、プログラミング環境の機能について説明します。

IDLコンパイラ

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

IDLコンパイラを使用する方法については、「Oracle Tuxedo CORBAアプリケーションの開発」を参照してください。idlコマンドの説明については、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoコマンド・リファレンス』を参照してください。

開発コマンド

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

表2-1 Oracle Tuxedo CORBAの開発コマンド
開発
コマンド
説明
buildobjclient
C++クライアント・アプリケーションを作成します。
buildobjserver
C++サーバー・アプリケーションを作成します。
genicf
実装構成ファイル(ICF)を生成します。ICFファイルでは、C++サーバー・アプリケーションのアクティブ化とトランザクションのポリシーを定義します。
id12ir
インタフェース・リポジトリを作成して、インタフェース定義をロードします。
ir2idl
インタフェース・リポジトリの内容を表示します。
irdel
インタフェース・リポジトリから指定されたオブジェクトを削除します。

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

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

管理ツール

Oracle Tuxedo CORBAのプログラミング環境では、CORBAアプリケーションを管理するための完全なツール・セットが提供されています。Oracle Tuxedo CORBAアプリケーションの管理を、コマンド、グラフィカル・ユーザー・インタフェース、またはスクリプト内に管理ユーティリティを含めることによって実行することができます。

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

表2-2 管理コマンド
管理
コマンド
説明
tmadmin
現在の構成パラメータの情報を表示します。
tmboot
指定された構成ファイルで参照されるOracle Tuxedo CORBAアプリケーションをアクティブにします。使用するオプションによって、アプリケーション全体またはその一部が起動します。
tmconfig
Oracle Tuxedo CORBAアプリケーションの構成情報を動的に更新および取得します。
tmloadcf
構成ファイルを解析し、バイナリ形式の構成ファイルをロードします。
tmshutdown
指定されたサーバー・アプリケーションを停止するか、構成ファイルからインタフェースを削除します。
tmunloadcf
構成ファイルをアンロードします。

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

図2-1 管理コンソールのメイン・ウィンドウ

管理コンソールのメイン・ウィンドウ

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

管理コマンドについては、Oracle Tuxedoオンライン・ドキュメントの『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』を参照してください。

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

AdminAPIについては、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoアプリケーションの設定』を参照してください。

 


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

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

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

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

Oracle Tuxedo CORBAでは、初期オブジェクト参照を取得するための、サード・パーティ・クライアントによるOMG CORBA Interoperable Naming Service (INS)の使用もサポートされています。

 


Oracle Tuxedo CORBAの構成要素

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

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

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

Oracle Tuxedo CORBAアプリケーションの構成要素

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

ドメインとは、オブジェクトやサービスを管理エンティティとしてグループ化する方法の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ドメインでどのように機能するのかを示しています。

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

BootstrapオブジェクトまたはINSのしくみ

IIOPリスナー/ハンドラ

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

ORB

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

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

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

CORBAクライアント/サーバー環境のORB

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

TPフレームワーク

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フレームワークを示しています。

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

TPフレームワーク

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

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

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

 


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

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

  1. CORBAサーバー・アプリケーションが初期化されます。
  2. CORBAクライアント・アプリケーションが初期化されます。
  3. Oracle TuxedoドメインでCORBAクライアント・アプリケーションが認証されます。
  4. ビジネス・ロジックを実行するために必要なCORBAオブジェクトのリファレンスがCORBAクライアント・アプリケーションで取得されます。
  5. CORBAオブジェクトの操作がCORBAクライアント・アプリケーションによって呼び出されます。

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

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

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

TPフレームワーク

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

  1. BootstrapオブジェクトまたはINSを使用してFactoryFinderオブジェクトのリファレンスを取得します。
  2. 通常は、FactoryFinderオブジェクトにファクトリを登録します。
  3. 必要に応じてORBのオブジェクト参照を取得します。
  4. プロセス全体の初期化を実行します。

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

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

TPフレームワーク

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

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

Oracle Tuxedoドメインにセキュリティ・モデルが採用されている場合、CORBAクライアント・アプリケーションは、CORBAサーバー・アプリケーションで操作を起動する前にOracle Tuxedoドメインに自らを認証する必要があります。Oracle Tuxedoドメインで自らを認証するために、CORBAクライアント・アプリケーションは次のステップを実行します。

  1. Bootstrapオブジェクトを使用してSecurityCurrentオブジェクトのリファレンスを取得します。
  2. PrincipalAuthenticatorオブジェクトのlogon()操作を呼び出します。PrincipalAuthenticatorオブジェクトは、SecurityCurrentオブジェクトから取り出します。
注: 証明書に基づく認証の方法については、Oracle Tuxedoオンライン・ドキュメントの『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。

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

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

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

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


    TPフレームワーク

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

  6. TPフレームワーク

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

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

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

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

TPフレームワーク


  先頭に戻る       前  次