|
以下の節では、Oracle Tuxedo インフラストラクチャをベースに構築される 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 は、ミッション クリティカルなアプリケーションに依存する企業や組織に、CORBA 準拠のプログラミング モデルのメリットと、Tuxedo トランザクション処理技術の高い性能、堅牢さ、信頼性をもたらします。Oracle Tuxedo は、トランザクション管理、セキュリティ、メッセージ転送、管理と管理容易性、および XA 準拠データベース サポートのために既存の Tuxedo インフラストラクチャを活用します。
Oracle Tuxedo CORBA を使用すると、ORB モデルとオンライン トランザクション処理 (OLTP) 機能を組み合わせて最上級の OTM (Object Transaction Monitor) を作成できます。次の図に示すように、OTM は 3 層クライアント/サーバ アーキテクチャの一例です。このアーキテクチャでは、OTM はフロントエンドの GUI とバックエンドのリソース マネージャの間のアプリケーション ロジックをサポートします。リソース マネージャとは、オブジェクト指向データベース、リレーショナル データベース、メッセージ キュー、レガシー アプリケーションなどのバックエンド サービスです。
フロントエンド GUI とリソース マネージャ間の直接的な接続に割り込むことによって、OTM は、数百、数千、あるいは数万のクライアントと実行時オブジェクトおよびバックエンド リソースをリンクするすべてのトラフィックを制御します。OTM を使用することで、グローバル (分散) トランザクションの正確な完了、ロード バランシングの実現、およびシステム全体のパフォーマンスの向上が保証されます。また、OTM はオブジェクトのプールをあらかじめ起動し、障害耐久性を実現します。さらに重要なのは、OTM により、アプリケーションのサーバ プロセスがフロントエンド GUI とリソース マネージャから独立するということです。
Oracle Tuxedo CORBA は、サーバサイドの分散オブジェクトを実行するオブジェクト アプリケーション サーバです。アプリケーションのサーバ オブジェクトの管理とトランザクションの管理に加え、Oracle Tuxedo CORBA はクライアント/サーバ通信も管理します。
オブジェクト指向のトランザクション通信では、高度に拡張された ORB 呼び出しが使用されます。しかし、こうした付加価値要素のほとんどはプログラマからは見えません。トランザクションに関与するクライアント/サーバの通信は、開始および終了トランザクション呼び出しで区切られた通常の通信のように見えます。明白な違いは、これらの呼び出しによって呼び出されたすべてのリソース マネージャとプロセスがトランザクションの一部になることです。Oracle Tuxedo CORBA などの OTM は、すべての参加リソースのアクションを調整し、それらがトランザクションの一部として実行されるようにします。
Oracle Tuxedo CORBA OTM には、サーバサイド分散オブジェクトを実行するための TP フレームワーク (体系化された環境) が用意されています。TP フレームワークは、オブジェクトと Tuxedo CORBA サービスを適切な時期に適切な順番で呼び出すだけではなく、サーバサイド プログラミング モデルを簡素化します。
Oracle Tuxedo CORBA は、次の主要な要素で構成されます。
分散 CORBA アプリケーションを実行および管理するために必要なサービスを提供します。
Tuxedo CORBA のクライアントおよびサーバ オブジェクトが互いを識別して通信できるようにします。
Tuxedo CORBA クライアントをインテリジェントなワークステーションに常駐させ、ネットワーク接続を介して CORBA サーバ アプリケーションと通信できるようにします。
Tuxedo CORBA クライアントおよびサーバと Tuxedo CORBA 環境の連係動作を支援するためのオブジェクト セットを提供します。
Tuxedo CORBA クライアントへのオブジェクト サービスを提供します。
Oracle Tuxedo インフラストラクチャは、Oracle Tuxedo CORBA と Oracle Tuxedo ATMI の両方の基礎となるクライアント/サーバ アーキテクチャを提供します。ここで説明し、次の図に示す OTM とインフラストラクチャは、Oracle Tuxedo CORBA 環境を構成します。Oracle Tuxedo CORBA 環境は、分散 CORBA アプリケーション用の通信インタフェース、トランザクション サポート、アプリケーション処理サービス、および管理サービスを提供します。
Oracle Tuxedo CORBA と Oracle Tuxedo ATMI に共通の Oracle Tuxedo システム管理インタフェースでは、アプリケーションを開発および管理するためのツールを使用できます。Oracle Tuxedo システム管理インタフェースについては、「システム管理インタフェース」を参照してください。
Oracle Tuxedo CORBA プログラミング インタフェースは、C++ サーバ ORB および C++ クライアント ORB で構成されています。サーバサイドでは、アプリケーション プログラマは CORBA API を直接使用する代わりに、標準 CORBA アプリケーションで必要な機能の多くを自動化する API を使用します。
Oracle Tuxedo CORBA サーバサイド TP フレームワーク コンポーネントとクライアントサイド環境オブジェクトを使用すると、プログラマは最小限のプログラミングでデプロイメント環境を利用できます。TP フレームワーク コンポーネントについては、「Oracle Tuxedo TP フレームワーク」を参照してください。クライアントサイド環境オブジェクトについては、「Oracle Tuxedo CORBA 環境オブジェクト」を参照してください。
アプリケーション プログラマは、OMG インタフェース定義言語 (IDL)、および必要に応じて市販のプログラミング ツールを使用して、CORBA オブジェクト セットとして Tuxedo CORBA アプリケーションを開発します。これらのオブジェクトは、CORBA IIOP (Internet Inter-ORB Protocol) を使用して他のオブジェクトと通信します。次の図に、Oracle Tuxedo CORBA プログラミング環境のアーキテクチャ上の構成要素を示します。
Oracle Tuxedo CORBA は、管理するサーバ プロセスの中のオブジェクトを実行します。Oracle Tuxedo CORBA は、Tuxedo ATMI サービスを実行するサーバ プロセスも管理できます。このため、プログラマはオブジェクトベースとサービスベースのコンポーネントを同じ Tuxedo アプリケーションの中で組み合わせることができます。
注意 : | Tuxedo アプリケーションは、Tuxedo ドメインと同義です。Tuxedo ドメインの定義については、「Oracle Tuxedo の重要な用語と概念」を参照してください。 |
ORB (オブジェクト リクエスト ブローカ) は、クライアントがサーバの場所とネットワーク接続に依存せずにサーバと通信するためのライブラリです。ORB は、オブジェクト バスとも呼ばれます。
プログラマは OMG IDL を通してオブジェクトのインタフェースを定義し、ORB は残りの部分を処理します。ORB は、CORBA クライアントから CORBA サーバ アプリケーションに送信される要求の媒介として機能します。ORB が介在することで、クライアントとサーバではお互いについての情報が必要なくなります。次の図に、ORB、CORBA アプリケーション クライアント、および CORBA サーバ アプリケーションの間の関係を示します。
Oracle Tuxedo CORBA には、C++ サーバ ORB および C++ クライアント ORB が含まれます。ORB にはトランザクション サポートが組み込まれています。つまり、CORBA OTM のベースとなる CORBA オブジェクト トランザクション サービス (OTS) は 2 フェーズ コミット処理用の XA 標準に準拠しています。
C++ サーバ ORB は、Tuxedo CORBA サーバ プロセスに直接リンクされます。その他のクライアント ORB は、CORBA の IIOP プロトコルを通して Oracle Tuxedo CORBA と通信します。
Oracle Tuxedo IIOP リスナ/ハンドラを使用すると、Oracle Tuxedo サーバサイド インストレーションのない (Oracle Tuxedo 管理サーバと掲示板をサポートしていない) リモート マシン上の CORBA クライアントが Oracle Tuxedo CORBA サーバ アプリケーションと対話できるようになります。リモート CORBA クライアントと CORBA サーバ アプリケーション間のすべての通信は、IIOP プロトコルを使用してネットワーク上で実行されます。
リモート CORBA クライアントのメリットは次のとおりです。
IIOP リスナ/ハンドラ通信アーキテクチャには、次のソフトウェア プロセスが含まれます。
Oracle Tuxedo CORBA C++ クライアント ORB ソフトウェアがインストールされているマシン上で実行するクライアント プロセス。
Oracle Tuxedo サーバ マシンで動作する Oracle Tuxedo リスニング プロセスです。CORBA クライアントからの接続要求を受け付け、同じくサーバ マシン上で動作する IIOP ハンドラに接続を割り当てます。また、ハンドラ間でクライアント接続を分散します。さらに、IIOP ハンドラ プロセスのプールを管理し、負荷の条件に応じてそれらを起動します。
Oracle Tuxedo サーバ マシンで動作する Oracle Tuxedo ゲートウェイ プロセスです。CORBA クライアントと Oracle Tuxedo サーバ アプリケーション間の IIOP 通信を処理します。ISH プロセスはアプリケーションの管理ドメインに常駐し、ローカル Oracle Tuxedo 掲示板にクライアントとして登録されます。
各 ISH プロセスは、複数の CORBA クライアントを管理できます。ISH は、特定の CORBA クライアントに関するすべての要求と応答を 1 つの接続で多重化します。
IIOP リスナ/ハンドラの詳細については、次のマニュアルを参照してください。
Oracle Tuxedo CORBA は、クライアントと Tuxedo CORBA 環境の連係動作を支援するためのオブジェクト セットが用意されています。これらのオブジェクトを使用すると、クライアント アプリケーションは Tuxedo CORBA 環境に簡単にログオンし、CORBA オブジェクトを呼び出し、トランザクションを開始および終了できるようになります。サーバサイド TP フレームワーク コンポーネントと同様、これらのオブジェクトも Tuxedo CORBA サービスと対話します。
次に、これらのオブジェクトがアプリケーション クライアントのために行う処理について説明します。
Bootstrap オブジェクトは、Tuxedo CORBA アプリケーション内の Tuxedo CORBA オブジェクトの参照を提供します。異なる Bootstrap オブジェクトを使用することで、アプリケーション クライアントは複数の Oracle Tuxedo CORBA アプリケーションに接続できます。
起動後のクライアント アプリケーションで最初に行われることの 1 つは、IIOP リスナのホストとポート番号を指定して Bootstrap オブジェクトを作成することです。アプリケーション クライアントが IIOP リスナにアクセスすると、リスナはアプリケーション クライアントに IIOP ハンドラを割り当て、Boostrap オブジェクトはその IIOP ハンドラとの通信リンクを作成します。
Bootstrap オブジェクトは、TransactionCurrent、SecurityCurrent、InterfaceRepository、FactoryFinder など、アプリケーション クライアントが使用する既知のオブジェクトの参照を提供します。
CORBA OTS TransactionCurrent オブジェクトは、トランザクション コーディネータを使用してトランザクション境界を判定します。
SecurityCurrent オブジェクトは、セキュリティ サービスからアプリケーション クライアントのセキュリティ資格を取得します。SecurityCurrent オブジェクトはその資格を IIOP ハンドラに登録し、IIOP ハンドラはその資格を使用して呼び出しを許可または拒否します。
Oracle Tuxedo CORBA では、C++ プログラミング環境および Java プログラミング環境の環境オブジェクトが提供されます。リリース 8.0 では、Oracle Tuxedo CORBA は、初期オブジェクト参照を取得するための、サード パーティ クライアント ORB による OMG CORBA Interoperable Naming Service (INS) の使用もサポートしています。
各環境オブジェクトは、アプリケーション クライアントへのオブジェクト サービスを提供します。アプリケーション クライアントは、特定の Oracle Tuxedo サーバ アプリケーションのサービスにアクセスするブートストラップ プロセスを通じて環境オブジェクトにアクセスします。Oracle クライアント ORB は Oracle Bootstrap オブジェクト メカニズムを使用し、サード パーティ クライアント ORB は CORBA INS メカニズムを使用します。Oracle Tuxedo アプリケーションのブートストラップの詳細については、『Tuxedo CORBA プログラミング リファレンス』を参照してください。
Oracle Tuxedo CORBA 環境オブジェクトは、次のサービスを提供します。
オブジェクト ライフ サイクル サービスは、FactoryFinder 環境オブジェクトを通じて提供されます。FactoryFinder オブジェクトは、ファクトリを見つけるために使用できる CORBA オブジェクトです。ファクトリでは、CORBA オブジェクトのオブジェクト参照を作成できます。ファクトリと FactoryFinder オブジェクトは、CORBA サービスのライフ サイクル サービスの実装です。Oracle Tuxedo CORBA アプリケーションでは、オブジェクト ライフ サイクル サービスを使用してオブジェクト参照を検索します。
セキュリティ サービスには、SecurityCurrent 環境オブジェクトまたは PrincipalAuthenticator オブジェクトを通じてアクセスします。SecurityCurrent オブジェクトと PrincipalAuthenticator オブジェクトは、Oracle Tuxedo サーバ アプリケーションにアクセスしようとするアプリケーション クライアントを認証するために使用します。Oracle Tuxedo ソフトウェアでは、CORBA サービスのセキュリティ サービスの実装が提供されます。
トランザクション サービスには、TransactionCurrent 環境オブジェクトまたは TransactionFactory オブジェクトを通じてアクセスします。TransactionCurrent オブジェクトと TransactionFactory オブジェクトを使用すると、アプリケーション クライアントはトランザクションの境界を判定 (トランザクションを開始、中断、再開、およびコミット) できます。Oracle Tuxedo ソフトウェアでは、CORBA サービスのオブジェクト トランザクション サービス (OTS) の実装が提供されます。
インタフェース リポジトリ サービスには、InterfaceRepository オブジェクトを通じてアクセスします。InterfaceRepository オブジェクトは、利用可能なすべての CORBA インタフェースのインタフェース定義と CORBA インタフェースのオブジェクト参照を作成するファクトリが格納される CORBA オブジェクトです。InterfaceRepository オブジェクトは、動的起動インタフェース (DII: Dynamic Invocation Interface) を使用するアプリケーション クライアントで使用します。
次の図に示す TP フレームワーク コンポーネントでは、高水準のパフォーマンスを実現しながら、CORBA インタフェースの複雑さを隠蔽するプログラミング モデルが提供されます。
TP フレームワークの API では、標準 CORBA アプリケーションで必要なさまざまな機能を実行するルーチンが提供されます。アプリケーション プログラマのすることは、CORBA アプリケーションのビジネス ロジックを記述し、TP フレームワークのデフォルトのアクションをオーバーライドすることだけです。
TP フレームワークと環境オブジェクトにより、デプロイメントが容易になります。次の図に、Oracle Tuxedo CORBA デプロイメント環境を示します。