製品の概要

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

Oracle Tuxedo ATMI のコア コンポーネント

以下の節では、Oracle Tuxedo ATMI の構成要素と Oracle Tuxedo インフラストラクチャについて説明します。

 


Oracle Tuxedo の重要な用語と概念

以下の用語と概念は、Oracle Tuxedo システムと Oracle Tuxedo システム上にビルドするアプリケーションについて理解する上で重要です。

 


Oracle Tuxedo ATMI の概要

Oracle Tuxedo ATMI は、アプリケーション設計者がハードウェア プラットフォーム、データベース、およびオペレーティング システムを組み合わせる ATMI アプリケーションを開発するための一連のコア技術です。Oracle Tuxedo ATMI は、ハイエンドなオンライン トランザクション処理 (OLTP) システムの特長とメリット (スケーラビリティ、高性能、ミッション クリティカルな信頼性、オープン スタンダードのサポートなど) をすべて備えています。

Oracle Tuxedo ATMI の基盤となるのは、トランザクション処理 (TP) モニタと呼ばれる、定評があり、信頼性の高いトランザクション プロセッサです。次の図に示すように、トランザクション プロセッサは 3 層クライアント/サーバ アーキテクチャの一例です。このアーキテクチャでは、トランザクション プロセッサはフロントエンドの GUI とバックエンドのリソース マネージャの間のアプリケーション ロジックをサポートします。リソース マネージャとは、SQL データベース、メッセージ キュー、レガシー アプリケーションなどのバックエンド サービスです。

図 2-1 トランザクション プロセッサを使用する 3 層クライアント/サーバ アーキテクチャ

トランザクション プロセッサを使用する 3 層クライアント/サーバ アーキテクチャ

フロントエンド GUI とリソース マネージャ間の直接的な接続に割り込むことによって、トランザクション プロセッサは、数百、数千、あるいは数万のクライアントとアプリケーション プログラムおよびバックエンド リソースをリンクするすべてのトラフィックを制御します。トランザクション プロセッサを使用することで、グローバル (分散) トランザクションの正確な完了、ロード バランシングの実現、およびシステム全体のパフォーマンスの向上が保証されます。さらに重要なのは、トランザクション プロセッサにより、アプリケーションのサーバ プロセスがフロントエンド GUI とリソース マネージャから独立するということです。

Oracle Tuxedo ATMI は、サーバサイドのアプリケーションとコンポーネントを実行するトランザクション アプリケーション サーバです。アプリケーションのサーバ プロセスの管理とトランザクションの管理のほかにも、Oracle Tuxedo ATMI はクライアント/サーバ通信を管理して、クライアント (およびサーバ) が次のようなさまざまな方法でアプリケーション サービスを呼び出せるようにします。

トランザクション通信では、高度に拡張されたリモート プロシージャ コール、会話型ピア ツー ピア、キュー、およびパブリッシュ アンド サブスクライブが使用されます。しかし、こうした付加価値要素のほとんどはプログラマからは見えません。トランザクションに関与するクライアント/サーバの通信は、開始および終了トランザクション呼び出しで区切られた通常の通信のように見えます。明白な違いは、これらの呼び出しによって呼び出されたすべてのリソース マネージャとプロセスがトランザクションの一部になることです。Oracle Tuxedo ATMI などのトランザクション プロセッサは、すべての参加リソースのアクションを調整し、それらがトランザクションの一部として実行されるようにします。

 


Oracle Tuxedo ATMI のアーキテクチャ

Oracle Tuxedo ATMI は、次の主要な要素で構成されます。

 


Oracle Tuxedo トランザクション プロセッサおよびインフラストラクチャ

Oracle Tuxedo インフラストラクチャは、Oracle Tuxedo ATMI と Oracle Tuxedo CORBA の両方の基礎となるクライアント/サーバ アーキテクチャを提供します。ここで説明し、次の図に示すトランザクション プロセッサとインフラストラクチャは、Oracle Tuxedo ATMI 環境を構成します。Oracle Tuxedo ATMI 環境は、分散 ATMI アプリケーション用の要求/応答および会話型通信インタフェース、トランザクション サポート、アプリケーション処理および管理サービスを提供します。

図 2-2 Oracle Tuxedo ATMI 環境

Oracle Tuxedo ATMI 環境

システム管理インタフェース

Oracle Tuxedo ATMI と Oracle Tuxedo CORBA に共通の Oracle Tuxedo システム管理インタフェースでは、管理ツール (「管理ツール」で説明するものなど) とアプリケーション開発ツール (Simple Network Management Protocol (SNMP) エージェントなど) を使用できます。Oracle Tuxedo は、多くのサード パーティ製ツールによってサポートされるオープンなツール環境を提供します。

Oracle Tuxedo Administration Console と SNMP エージェントは、標準管理コンソールと対話できます。標準管理コンソールでは、Oracle Tuxedo ATMI または CORBA 環境とネットワーク コンフィグレーションを単一のコンソールから管理できます。また、アプリケーション設計者と開発者は、MIB インタフェースからアクセスできる Tuxedo 管理情報ベース (TMIB) の上に独自の管理ツールや、アプリケーション固有のツールまたは市場固有のツールを作成できます。

ATMI プログラミング インタフェース

Oracle Tuxedo ATMI は、一連の C または COBOL 手続きを使用する手続き型のライブラリベース プログラミングを提供する ATMI プログラミング インタフェースをサポートしています。ATMI は、Oracle Tuxedo システムでサポートされるすべての ATMI 環境で機能する、通信、トランザクション、およびデータ バッファ管理のためのインタフェースを提供します。ATMI インタフェースと Oracle Tuxedo システムは、トランザクション処理の X/Open 分散トランザクション処理 (DTP) モデルを実装しています。

Oracle Tuxedo ATMI インタフェースは、要求/応答通信と会話型通信の基盤となります。

要求/応答通信

プログラマは、ATMI 要求/応答機能を使用して、要求側プロセスからの 1 つの要求を送信し、呼び出された要求/応答サーバ プロセスからの応答を取り出します。要求/応答は、単純な種類の対話です。要求/応答中の通信のルールは固定されています。クライアントはサービスを要求し、サーバはそれに応答します。クライアントは要求の一部として複数のメッセージを送信できず、サーバはその応答として複数のメッセージを送信できません。

要求側プロセスは、要求/応答サービスを同期的または非同期的に実行できます。

会話型通信

プログラマは、ATMI 会話型通信を使用して、要求側プロセスと呼び出された会話型サーバ プロセス間の状態保持接続 (メッセージ間でコンテキストが維持される) を確立および管理します。ATMI 会話型機能を使用すると、次のことができます。

会話型サーバは、接続中は要求元に独占されます。Oracle Tuxedo システムは、会話型接続の要求時にサーバが利用できない場合、新しいコピーを作成します。

このため、ATMI 会話型プログラミング インタフェースを使用すると、アプリケーションの内部にトランザクション境界を定義して、実行される作業を 1 つの基本単位として処理できます。つまり、1 つの Oracle Tuxedo トランザクションの内部では、実行される作業は 1 つの基本作業単位としてコミットまたはロールバックされるので、マシンに障害が発生した場合でもすべてのデータベースの同期が取られます。

ATMI インタフェースのマニュアル

Oracle Tuxedo ATMI インタフェースの詳細については、『Oracle Tuxedo システム入門』を参照してください。

FML プログラミング インタフェース

ATMI インタフェースに加え、Oracle Tuxedo ATMI はフィールド操作言語 (FML) プログラミング インタフェースをサポートしています。FML インタフェースは、フィールド化バッファと呼ばれるストレージ構造を定義および操作するための C 言語関数のセットです。フィールド化バッファでは、フィールド内に属性と値のペアが格納されます。属性はフィールドの識別子で、関連付けられる値はフィールドのデータです。

アプリケーション設計者によって FML とそのフィールド化バッファの概念が指定されると、アプリケーション プログラマはさまざまな関数を使用して FML フィールドおよびバッファを定義および管理できます (データ バッファについては、「型付きバッファ」を参照)。たとえば、フィールド化バッファと VIEW と呼ばれる C 構造体または COBOL レコード (そのメンバーはバッファのフィールドに対応) の間でデータを移動するための関数を選択できます。

FML 関数セットは、より多くのフィールドを持つ大規模レコードと共に使用する FML32 という付属関数セットを持っています。

Oracle Tuxedo FML の詳細については、『FML を使用した Tuxedo アプリケーションのプログラミング』を参照してください。

型付きバッファ

Oracle Tuxedo ATMI アプリケーションは、型付きバッファ内のデータを送受信します。オペレーティング システムからメモリを直接割り当てる代わりに、アプリケーションは Oracle Tuxedo システムから型付きバッファを割り当ててデータを格納します。

型付きバッファはアプリケーション プログラマによって定義され、Oracle Tuxedo システムによって認識されるデータ構造です。Oracle Tuxedo システムはアプリケーション データ バッファについて認識しているので、通信中にそれらを最適に操作します。

型付きバッファには、それ自身に関する情報 (メタデータ) が格納されます。アプリケーション プログラマはこの情報を使用することで、アプリケーションのクライアントとサーバが動作するマシンによって使用されるデータ表現形式を知る必要なくデータを転送できます。型付きバッファを使用すると、アプリケーションはマシンの独立性を保持できます。

Oracle Tuxedo リリースによってサポートされている各バッファ型は、初期化、メッセージの送受信、およびデータのエンコードとデコードをプログラマの仲介なしに行うために、自動的に呼び出すことができる独自のルーチン セットを持ちます。このルーチン セットを型付きバッファ スイッチと呼びます。

Oracle Tuxedo には、FML や FML32 など、さまざまな種類の型付きバッファが用意されており、アプリケーション設計者が独自の型付きバッファを定義することもできます。型付きバッファの詳細については、『Oracle Tuxedo システム入門』の「型付きバッファ」を参照してください。

 


Oracle Tuxedo Workstation

Oracle Tuxedo Workstation コンポーネントを使用すると、ATMI クライアントを完全な Oracle Tuxedo サーバサイド インストレーションのないリモート マシン (Oracle Tuxedo 管理サーバと掲示板をサポートしていないマシン) に配置できます。リモート ATMI クライアントと Oracle Tuxedo サーバ アプリケーション間のすべての通信はネットワークを介して実行されます。

Oracle Tuxedo Workstation コンポーネントのメリットは次のとおりです。

Workstation 通信

Workstation コンポーネントには次のソフトウェア プロセスが含まれます。

次の図に、これらのプロセスによってリモート ATMI クライアントを Oracle Tuxedo サーバ アプリケーションに接続する仕組みを示します。

図 2-3 リモート ATMI クライアントの接続

リモート ATMI クライアントの接続

Workstation のマニュアル

Oracle Tuxedo Workstation コンポーネントの詳細については、次のマニュアルを参照してください。

 


Oracle Tuxedo /Q

Oracle Tuxedo /Q は、型付きバッファが組み込まれた、トランザクション対応、XA 準拠のアプリケーション キューイング システムです。/Q は、Oracle Tuxedo ATMI アプリケーション内のクライアントとサーバ間で時間に依存しない通信を実現します。

/Q を使用すると、ATMI アプリケーションは、グローバル トランザクションの中で、クライアントとサーバによって生成されたメッセージを安定したストレージに格納して後で使用することができます。Q 対応のクライアント プロセスまたはサーバ プロセスは、いつメッセージをそのキューから取り出すかを決定します。ただし、オペレーションはトランザクションのスコープの中で行われるので、Oracle Tuxedo システムにより、メッセージが実際に処理されること、またはトランザクション全体がロールバックされることが保証されます。

/Q を Oracle Tuxedo Workstation と一緒に使用すると、ワークステーション クライアントからのメッセージを格納し、取り出すことができます。この組み合わせのインタフェースは、C および COBOL プログラミング言語のどちらでも使用できます。

メッセージの格納と取り出し

時間に依存しないクライアントおよびサーバ プログラムは、メッセージをアプリケーション キューに互いに格納し合う (キューに入れる) ことによって通信を行います。メッセージは、後入れ先出し (LIFO)、先入れ先出し (FIFO)、優先順位、時間ベースの順序など、複数の順序付け方式で取り出す (デキューする) ことができます。複数のクライアントとサーバが同じキューにアクセスすることができます。次の図に、/Q を使用したメッセージ キューイング通信の概略を示します。

図 2-4 キューベースのメッセージング

キューベースのメッセージング

/Q のマニュアル

Oracle Tuxedo /Q コンポーネントの詳細については、次のマニュアルを参照してください。

 


Oracle Tuxedo EventBroker

Oracle Tuxedo EventBroker は、Oracle Tuxedo ATMI アプリケーション内で動作するプロセス間のアプリケーション イベントの非同期ルーティングを可能にする、トランザクション対応、XA 準拠のアプリケーション パブリッシュ アンド サブスクライブ システムです。また、EventBroker は、システム イベントを、その受信を望むアプリケーション プロセスに配布します。

イベントとは、アプリケーション プログラムまたは Oracle Tuxedo システム内で、管理者、オペレータ、またはソフトウェアの興味を引く状態の変化またはその他の事象です。イベントの例には、「株式が指値かそれ以上の値で取り引きされた」や「ネットワーク障害が発生した」などがあります。

イベントのプロデューサとコンシューマ間の調停

イベントのプロデューサをパブリッシャまたはサプライヤといい、イベントのコンシューマをサブスクライバといいます。EventBroker は、イベントの配布についてプロデューサとコンシューマを調停します。次の図に、EventBroker を使用したパブリッシュ アンド サブスクライブ通信の概略を示します。

図 2-5 イベントのサブスクリプション、ポスト、および通知

イベントのサブスクリプション、ポスト、および通知

グローバル トランザクションでイベントをポストすると、トランザクションが正常に実行された場合、ポストに関係ない作業を含め、すべての作業の完了が保証されます。トランザクション内である作業が失敗した場合は、そのトランザクションで行われたすべての作業がロールバックされます。

EventBroker のマニュアル

Oracle Tuxedo EventBroker コンポーネントの詳細については、次のマニュアルを参照してください。

 


Oracle Tuxedo Domains

Oracle Tuxedo Domains コンポーネントは、Oracle Tuxedo システムのクライアント/サーバ モデルを拡張して、TP ドメイン (ビジネス アプリケーション) 間でのトランザクションの相互運用性を実現します。この拡張機能では、リモート ドメインのサービスへのアクセスやリモート ドメインからのサービス要求の受信は、アプリケーション プログラマやエンド ユーザに対して透過的に行われるため、モデルと ATMI インタフェースをそのまま利用できます。Domains コンポーネントは、リモート ドメインへのサービス要求の送信またはリモート ドメインからのサービス要求の受信を処理する高度な非同期、マルチタスク ドメイン ゲートウェイを介してこれを実現します。

Oracle Tuxedo システムには、Oracle Tuxedo アプリケーションが他の Oracle Tuxedo アプリケーションまたは他の TP システムで動作するアプリケーションと通信するための次のタイプのドメイン ゲートウェイが用意されています。

図 2-6 ドメイン ゲートウェイの種類

ドメイン ゲートウェイの種類

注意 : Oracle Tuxedo CORBA アプリケーションも Domains コンポーネントを使用して他の CORBA アプリケーションと相互運用してリソースを共有します。Oracle Tuxedo CORBA アプリケーションには、GWTDOMAIN プロセスで実装される TDomain ゲートウェイ タイプだけを適用できます。

ドメイン間の透過性

Oracle Tuxedo Domains コンフィグレーションでは、管理者はそのコンフィグレーションの中でどのサーバが他のサーバで利用できるかをコンフィグレーションできます。クライアントと参加アプリケーション自身は Domains コンフィグレーションについて知る必要がありません。知る必要があるのは、利用可能なサービスとファクトリ オブジェクト、およびそれらにアクセスする方法だけです。アプリケーションにドメイン情報を組み込んだ場合、コンフィグレーションを変更したときにアプリケーションを作成し直す必要が生じます。

Domains のマニュアル

Oracle Tuxedo Domains コンポーネントの詳細については、次のマニュアルを参照してください。


  ページの先頭       前  次