![]() ![]() ![]() ![]() ![]() ![]() ![]() |
次の項では、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は、ミッションクリティカルなアプリケーションに依存する企業や組織に、Tuxedoトランザクション処理テクノロジの機能、堅牢製、実証済の信頼性を組み合せたCORBA準拠のプログラミング・モデルの利点を提供します。Oracle Tuxedo CORBAは、既存のTuxedoインフラストラクチャを活用して、トランザクション管理、セキュリティ、メッセージ・トランスポート、管理と管理性、およびXA準拠のデータベース・サポートを実現します。
Oracle Tuxedo CORBAでは、ORBモデルとオンライン・トランザクション処理(OLTP)機能を組み合せて、最高品質のオブジェクト・トランザクション・モニター(OTM)を構築します。次の図に示すように、OTMは3層のクライアント/サーバー・アークテクチャの一例で、OTMは、フロントエンドのGUIとバックエンドのリソース・マネージャ間のアプリケーション・ロジックをサポートします。リソース・マネージャの例には、オブジェクト志向データベース、リレーショナル・データベース、メッセージ・キュー、レガシー・アプリケーション、その他のバックエンド・サービスがあります。
OTMは、フロントエンドのユーザー・インタフェースとリソース・マネージャ間の直接的な接続に割り込むことで、数百、数千、あるいは数万のクライアントとランタイム・オブジェクトおよびバックエンド・リソースをリンクするすべてのトラフィックを制御します。OTMにより、グローバル(分散)トランザクションの正確な実行、ロード・バランシングの実現、およびシステム全体のパフォーマンスの向上が保証されます。OTMでは、オブジェクトのプールを事前起動するため、フォルト・トレランスも実現します。さらに重要な点は、OTMにより、アプリケーションのサーバー・プロセスがフロントエンドのユーザー・インタフェースとすべてのリソース・マネージャから独立することです。
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環境が構成され、分散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インターネットORB間プロトコル(IIOP)を使用して他のオブジェクトと通信します。次の図は、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サーバー・アプリケーションに送信されるリクエストの媒介として機能するため、クライアントとサーバーでは相互に関する情報が不要になります。次の図は、CORBAアプリケーション・クライアントであるORBと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プロトコルを使用してネットワーク経由で実行されます。
IIOPリスナー/ハンドラ通信アーキテクチャには、次のソフトウェア・プロセスが含まれます。
Oracle Tuxedo CORBA C++クライアントORBソフトウェアがインストールされたマシンで実行されるクライアント・プロセス。
Oracle Tuxedoサーバー・マシンで実行され、CORBAクライアントからの接続リクエストを受け付け、同じくサーバー・マシンで実行されるIIOPハンドラに接続を割り当てるOracle Tuxedoリスニング・プロセス。ハンドラ間でのクライアント接続を分散します。また、IIOPリスナーでは、IIOPハンドラ・プロセスのプールを管理し、負荷の条件に応じてそれらを起動します。
Oracle Tuxedoサーバー・マシンで実行され、CORBAクライアントとOracle Tuxedoサーバー・アプリケーション間のIIOP通信を処理するOracle Tuxedoゲートウェイ・プロセス。ISHプロセスはアプリケーションの管理ドメインに常駐し、ローカルのOracle Tuxedo掲示板にクライアントとして登録されます。
各ISHプロセスでは、複数のCORBAクライアントを管理できます。ISHでは、特定のCORBAクライアントに関するすべてのリクエストと応答を1つの接続で多重化します。
IIOPリスナー/ハンドラの詳細は、次のドキュメントを参照してください。
Oracle Tuxedo CORBAでは、クライアントがTuxedo CORBA環境で作動するために役立つ一連のオブジェクトが提供されます。このようなオブジェクトを使用すると、クライアント・アプリケーションが、Tuxedo CORBA環境へのログオン、CORBAオブジェクトの呼出し、およびトランザクションの開始と停止を容易にできるようになります。サーバー側のTP Frameworkコンポーネントのように、これらのオブジェクトはTuxedo CORBAサービスと相互作用します。
これらのオブジェクトがアプリケーション・クライアントに対して実行する処理は次のとおりです。
Bootstrapオブジェクトでは、Tuxedo CORBAアプリケーションのTuxedo CORBAオブジェクトの参照が提供されます。アプリケーション・クライアントでは、異なるBootstrapオブジェクトを使用することで、複数のOracle Tuxedo CORBAアプリケーションに接続できます。
起動後にアプリケーション・クライアントが最初に実行する処理の1つは、IIOPリスナーのホストとポート番号を指定して、Bootstrapオブジェクトを作成することです。アプリケーション・クライアントがIIOPリスナーにアクセスすると、リスナーはIIOPハンドラをアプリケーション・クライアントに割り当て、割り当てられたIIOPハンドラとの通信リンクをBoostrapオブジェクトが確立します。
Bootstrapオブジェクトでは、TransactionCurrent、SecurityCurrent、InterfaceRepository、FactoryFinderなど、アプリケーション・クライアントが使用する既知のオブジェクトの参照も提供されます。
CORBA OTS TransactionCurrentオブジェクトでは、トランザクション・コーディネータを使用してトランザクションの境界を調整します。
SecurityCurrentオブジェクトでは、セキュリティ・サービスからアプリケーション・クライアントの資格証明を取得します。SecurityCurrentオブジェクトでは、その資格証明をIIOPハンドラに登録し、その資格証明を使用して起動を許可または拒否します。
Oracle Tuxedo CORBAは、C++プログラミング環境およびJavaプログラミング環境のための環境オブジェクトです。リリース8.0の時点で、Oracle Tuxedo CORBAは、初期オブジェクト参照を取得するために、サード・パーティ・クライアントORBによるOMG CORBAインターオペラブル・ネーミング・サービス(INS)の使用もサポートしています。
各環境オブジェクトには、アプリケーション・クライアントへのオブジェクト・サービスが用意されています。アプリケーション・クライアントは、特定のOracle Tuxedoサーバー・アプリケーションのサービスにアクセスするブートストラップ・プロセスを通じて、環境オブジェクトにアクセスします。OracleクライアントのORBでは、Oracle Bootstrapオブジェクト・メカニズムを使用し、サード・パーティ・クライアントのORBでは、CORBA INSメカニズムを使用します。Oracle Tuxedoアプリケーションのブートストラップの詳細は、『Oracle 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)を使用するアプリケーション・クライアントで使用します。
TPフレームワーク・コンポーネントは、次の図に示すように、複雑なCORBAインタフェースをアプリケーションのプログラマに意識させることなく、高水準のパフォーマンスを達成できるプログラミング・モデルです。
TPフレームワークAPIでは、標準のCORBAアプリケーションで必要な多くの機能を実行するルーチンが提供されます。アプリケーション・プログラマのすることは、CORBAアプリケーションのビジネス・ロジックを記述し、TPフレームワークのデフォルトのアクションをオーバーライドすることだけです。
TPフレームワークおよび環境オブジェクトにより、開発が簡単になります。次の図は、Oracle Tuxedo CORBA開発環境を示しています。
![]() ![]() ![]() |