製品概要

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

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

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

 


Oracle Tuxedoの重要な用語と概念

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

 


Oracle Tuxedo ATMIの概要

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

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

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

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

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

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環境が構成され、分散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管理コンソールと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)モデルを実装しています。

The Oracle Tuxedo ATMIインタフェースは、リクエスト/レスポンス通信と会話型通信の基盤となります。

リクエスト/レスポンス通信

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

リクエスト側プロセスは、リクエスト/レスポンス・サービスを同期的または非同期的に実行できます。

会話型通信

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

会話型サーバーは、接続中はリクエスタに独占されます。Oracle Tuxedoシステムは、会話型接続のリクエスト時にサーバーが利用できない場合、新しいコピーを自動的に生成します。

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

ATMIインタフェースのドキュメント

Oracle Tuxedo ATMIインタフェースの詳細は、『Oracle Tuxedo ATMIの紹介』を参照してください。

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

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

FMLとそのフィールド化バッファ概念がアプリケーション設計者によって指定されると、アプリケーション・プログラマは、FMLフィールドおよびバッファの定義と管理の充実した機能を使用できるようになります。(データ・バッファの説明は「型付きバッファ」を参照してください。)この中には、フィールド化バッファと、Cの構造体またはCOBOLのレコード(VIEWとして参照される)の間でデータを移動する機能も含まれます(構造体やレコードのメンバーはバッファのフィールドに相当します)。

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

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

型付きバッファ

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

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

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

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

Oracle Tuxedoには、FMLやFML32など、様々な種類の型付きバッファが用意されており、アプリケーション設計者が独自の型付きバッファを定義できます。型付きバッファの詳細は、『Oracle Tuxedo ATMIの紹介』型付きバッファに関する項を参照してください。

 


Oracle Tuxedo Workstation

Oracle Tuxedo Workstationコンポーネントでは、Oracle Tuxedoのサーバー側の機能がフル・インストールされていないリモート・マシン(Oracle Tuxedo管理サーバーも掲示板もサポートしないマシン)にATMIクライアントを配置できます。リモート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準拠のアプリケーション・パブリッシュ/サブスクライブ・システムです。また、システム・イベントを、その受信を望むアプリケーション・プロセスに配布します。

イベントとは、アプリケーション・プログラムまたは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コンポーネントのドキュメントの詳細は、次のドキュメントを参照してください。


  先頭に戻る       前  次