目次 前 次 PDF


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

Oracle Tuxedo ATMIのコア・コンポーネント
次の項では、Oracle Tuxedo ATMIの構成要素と、Oracle Tuxedoインフラストラクチャについて説明します。
Oracle Tuxedoの重要な用語と概念
次の用語と概念は、Oracle TuxedoシステムとOracle Tuxedoシステム上にビルドするアプリケーションについて理解する上で重要です。
Tuxedoドメイン
Oracle Tuxedoドメイン(Oracle Tuxedoアプリケーションともいう)は、1つのTuxedo構成ファイルによって1つの単位として管理される、Tuxedoシステム、クライアントおよびサーバー・プロセスの集まりです。Tuxedoドメインは、ネットワークで接続された多くのシステム・プロセス、1つ以上のアプリケーション・クライアント・プロセス、1つ以上のアプリケーション・サーバー・プロセス、および1台以上のマシンで構成されます。Oracle Tuxedoドメインは、ATMIサービス、CORBAオブジェクト、またはその両方を提供できます。
注意:
Tuxedoドメインは、Tuxedoアプリケーションと同義です。
Tuxedo構成ファイル
各Oracle Tuxedoドメインは、構成ファイルによって制御され、インストール時の設定に基づくパラメータが定義されています。テキスト形式の構成ファイルはUBBCONFIGと呼ばれますが、そのファイルの内容がファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンスのリファレンス・ページUBBCONFIG(5)で説明されている形式に準拠している場合にかぎり、構成ファイルに任意の名前を付けることができます。
バイナリ形式のUBBCONFIGファイルはTUXCONFIGと呼ばれます。UBBCONFIGファイルと同じように、TUXCONFIGファイルにも任意の名前を付けることができますが、実際の名前は、TUXCONFIG環境変数で指定されたデバイス・ファイル名またはシステム・ファイル名です。
Tuxedoのマスター・マシン
Oracle Tuxedoドメインのマスターマシン(マスター・ノード)は、そのドメインのUBBCONFIGファイルを格納し、UBBCONFIGファイルのRESOURCESセクションでマスター・マシンとして指定されているサーバー・マシンです。Tuxedoドメインの1つ以上のサーバー・マシンの開始、停止および管理はマスター・マシンから行います。
Tuxedoドメインのマスター・マシンには、TUXCONFIGファイルのマスター・コピーも配置されます。TUXCONFIGファイルのコピーは、Tuxedoシステムがマスター・マシンで起動されたときに、Tuxedoドメイン内の他のすべてのサーバー・マシン(非マスター・マシン)に伝播されます。
Tuxedoの掲示板
Oracle Tuxedoシステムでは、TUXCONFIGファイルを使用して、Tuxedoドメインの各サーバー・マシンで掲示板を設定します。Tuxedoサーバー・プロセスは、アクティブになったときに自身のサービスの名前を掲示板で通知します。掲示板の一部の情報はグローバルで、Tuxedoドメイン内のすべてのサーバーでレプリケートされます(特定のサービスを提供するすべてのサーバーの名前と場所など)。それ以外の情報はローカルとなり、ローカル掲示板のみで表示されます(ローカル・サーバーのリクエスト・キューで待機しているクライアント・リクエストの実際の数とタイプなど)。
掲示板は、Tuxedoドメイン内部での位置とネームスペースの透過性を実現します。位置の透過性とは、Tuxedoクライアント・プロセスとサーバー・プロセスがTuxedoドメイン内部のリソース(ATMIサービス、CORBA C++オブジェクト)の位置を認識する必要がないということです。ネームスペースの透過性とは、Tuxedoクライアント・プロセスとサーバー・プロセスが同じ命名規則(およびネームスペース)を使用してTuxedoドメイン内のリソースを検索できるということです。
Oracle Tuxedo ATMIの概要
Oracle Tuxedo ATMIは、アプリケーション設計者がハードウェア・プラットフォーム、データベースおよびオペレーティング・システムを組み合せるATMIアプリケーションを開発するための一連のコア技術です。これは、ハイエンドなオンライン・トランザクション処理(OLTP)システムの特長とメリット(スケーラビリティ、高パフォーマンス、ミッション・クリティカルな信頼性、オープン・スタンダードのサポートなど)をすべて備えています。
Oracle Tuxedo ATMIの基盤となるのは、トランザクション処理(TP)モニターと呼ばれる、定評があり、信頼性の高いトランザクション・プロセッサです。次の図に示すように、トランザクション・プロセッサは3層クライアント/サーバー・アーキテクチャの一例で、トランザクション・プロセッサがフロントエンドのGUIとバックエンドのリソース・マネージャの間のアプリケーション・ロジックをサポートします。リソース・マネージャの例には、SQLデータベース、メッセージ・キュー、レガシー・アプリケーション、その他のバックエンド・サービスがあります。
図2-1 トランザクション・プロセッサを使用する3層クライアント/サーバー・アーキテクチャ
フロントエンドのユーザー・インタフェースとリソース・マネージャ間の直接的な接続に割り込むことによって、トランザクション・プロセッサは、数百、数千、あるいは数万のクライアントと、アプリケーション・プログラムおよびバックエンド・リソースをリンクするすべてのトラフィックを制御します。トランザクション・プロセッサを使用することで、グローバル(分散)トランザクションの正確な実行、ロード・バランシングの実現、およびシステム全体のパフォーマンスの向上が保証されます。さらに重要なのは、トランザクション・プロセッサにより、アプリケーションのサーバー・プロセスがフロントエンドのユーザー・インタフェースとリソース・マネージャから独立するということです。
Oracle Tuxedo ATMIは、サーバー側のアプリケーションとコンポーネントを実行するトランザクション・アプリケーション・サーバーです。アプリケーションのサーバー・プロセスの管理とトランザクションの管理の他にも、Oracle Tuxedo ATMIはクライアント/サーバー通信を管理して、クライアント(およびサーバー)が次のような様々な方法でアプリケーション・サービスを呼び出せるようにします。
リクエスト/レスポンス
通常、リクエスト/レスポンス・トランザクションは人間が関与するので、迅速な反応が要求され、高優先度モードで実行されます。Oracle Tuxedo ATMIは、ATMIリクエスト/レスポンス・トランザクション通信インタフェースを備えています。
会話
通常、会話型トランザクションは人間が関与するので、迅速な反応が要求され、高優先度モードで実行されます。Oracle Tuxedo ATMIは、ATMI会話型トランザクション通信インタフェースを備えています。
キューイング
キュー・トランザクションは、高優先度または低優先度のメッセージとして実行されます。Oracle Tuxedo ATMIは、/Qという独自のリカバリ可能なキューを備えています。
パブリッシュ/サブスクライブ
パブリッシュ/サブスクライブ・トランザクションは、高優先度のメッセージとして実行されます。Oracle Tuxedo ATMIは、EventBrokerというトランザクション・パブリッシュ/サブスクライブ・システムを備えています。
トランザクション通信は、特に強化されたリモート・プロシージャ・コール、会話型ピア・ツー・ピア、キュー、およびパブリッシュ/サブスクライブを使用します。ただし、最も付加価値の高い要素はプログラマに対して透過的です。つまり、トランザクション・クライアント/サーバー通信は、開始トランザクション呼出しと終了トランザクション呼出しで区切られた通常の通信のように見えます。これらの呼出しで起動されるすべてのリソース・マネージャとプロセスが、トランザクションに含まれることにより区別できます。Oracle Tuxedo ATMIのようなトランザクション・プロセッサは、すべての参加者のアクションを編成し、トランザクションの一部として作動するようにします。
Oracle Tuxedo ATMIのアーキテクチャ
Oracle Tuxedo ATMIは、次の主要なコンポーネントで構成されます。
Oracle Tuxedoトランザクション・プロセッサおよびインフラストラクチャ
分散ATMIアプリケーションの実行および管理に必要なコア・サービスを提供します。
Oracle Tuxedo Workstation
ATMIクライアントをインテリジェント・ワークステーションに常駐させ、ネットワーク接続を介してATMIサーバー・アプリケーションと通信できるようにします。
Oracle Tuxedo /Q
メッセージングおよびキュー機能を提供して、ATMIクライアントおよびサーバーがプライベートの専用ローカル接続へのリンクなしでネットワーク通信できるようにします。
Oracle Tuxedo EventBroker
ATMIクライアントとサーバー間のアプリケーションおよびシステム・イベントの分散を仲介するパブリッシュ/サブスクライブ機能を提供します。
Oracle Tuxedo Domains
論理的および物理的に独立したATMIアプリケーションを接続し、その結合がユーザーに1つのアプリケーションとして見えるようにする機能を提供します。
Oracle Tuxedoトランザクション・プロセッサおよびインフラストラクチャ
Oracle Tuxedoインフラストラクチャは、Oracle Tuxedo ATMIおよびOracle Tuxedo CORBAの両方に対応したクライアント/サーバーの基盤アーキテクチャです。ここで説明し、次の図に示すトランザクション・プロセッサとインフラストラクチャにより、Oracle Tuxedo ATMI環境が構成され、分散ATMIアプリケーション用のリクエスト/レスポンスおよび会話型通信インタフェース、トランザクション・サポート、アプリケーション処理および管理サービスが提供されます。
図2-2 Oracle Tuxedo ATMI環境
システム管理インタフェース
Oracle Tuxedo ATMIとOracle Tuxedo CORBAに共通のOracle Tuxedoシステム管理インタフェースでは、ツール(1-32ページの「?$paratext>?」で説明するものなど)とアプリケーション開発ツール(Simple Network Management Protocol (SNMP)エージェントなど)を使用できます。Oracle Tuxedo は、多くのサード・パーティ製ツールによってサポートされるオープンなツール環境を提供します。
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会話型機能を使用すると、プログラマは特に次のことができます。
会話型サーバーとの接続を開く
会話中にトランザクションを開始および終了する
1つの会話を複数のマシンとリソース・マネージャにまたがって実行する
接続失敗の通知を検出して提供する
タスクの完了時に接続を終了する
会話型サーバーは、接続中はリクエスタに独占されます。Oracle Tuxedoシステムは、会話型接続のリクエスト時にサーバーが利用できない場合、新しいコピーを自動的に生成します。
このため、ATMI会話型プログラミング・インタフェースを使用すると、プログラマはアプリケーションの内部にトランザクション境界を定義して、実行される作業を1つの基本単位として処理できます。つまり、1つのOracle Tuxedoトランザクションの内部では、実行される作業は1つの基本作業単位としてコミットまたはロールバックされるため、マシンに障害が発生した場合でもすべてのデータベースの同期が取られます。
ATMIインタフェースのドキュメント
Oracle Tuxedo ATMIインタフェースの詳細は、『Oracle Tuxedo ATMIの紹介』を参照してください。
FMLプログラミング・インタフェース
ATMIインタフェースに加え、Oracle Tuxedo ATMIはフィールド操作言語(FML)プログラミング・ンタフェースをサポートしており、これは、フィールド化バッファと呼ばれるストレージ構造を定義および操作するためのC言語関数のセットです。フィールド化バッファでは、フィールド内に属性と値のペアが格納され、属性はフィールドの識別子、関連付けられる値はフィールドのデータを表します。
FMLとそのフィールド化バッファ概念がアプリケーション設計者によって指定されると、アプリケーション・プログラマは、FMLフィールドおよびバッファの定義と管理の充実した機能を使用できるようになります。(データ・バッファの説明は2-8ページの「?$paratext>?」を参照してください。)この中には、フィールド化バッファと、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コンポーネントのメリットは次のとおりです。
管理上のオーバーヘッドが少なくなります
クライアントとOracle Tuxedoサーバー・マシンを分離し、セキュリティが向上します
CPUサイクルの負荷を軽減し、Oracle Tuxedoサーバー・マシン上のプロセス・コンテキスト切替えが減少します
小規模になります
Workstation通信
Workstationコンポーネントは次のとおりです。
ワークステーション・クライアント
Oracle Tuxedo Workstationクライアント・ソフトウェアがインストールされたマシンで実行されるATMIクライアント・プロセス。
ワークステーション・リスナー(WSL)
Oracle Tuxedoサーバー・マシンで実行され、ワークステーション・クライアントからの接続リクエストを受け付け、同じくサーバー・マシン上で実行されるワークステーション・ハンドラに接続を割り当てるOracle Tuxedoリスニング・プロセス。また、ワークステーション・ハンドラ・プロセスのプールを管理し、負荷の条件に応じてそれらを起動します。
ワークステーション・ハンドラ(WSH)
Oracle Tuxedoサーバー・マシンで実行され、ワークステーション・クライアントとOracle Tuxedoサーバー・アプリケーション間の通信を処理するOracle Tuxedoゲートウェイ・プロセス。WSHプロセスはアプリケーションの管理ドメインに常駐し、ローカルのOracle Tuxedo掲示板にクライアントとして登録されます。
各WSHプロセスでは、複数のワークステーション・クライアントを管理できます。WSHでは、特定のワークステーション・クライアントに関するすべてのリクエストと応答を1つの接続で多重化します。
次の図に、これらのプロセスによってリモートATMIクライアントをOracle Tuxedoサーバー・アプリケーションに接続する仕組みを示します。
図2-3 リモートATMIクライアントの接続
 
 
Workstationのドキュメント
Oracle Tuxedo Workstationコンポーネントのドキュメントの詳細は、次のドキュメントを参照してください。
『Oracle Tuxedo ATMIの紹介』の「Oracle Tuxedoシステムの管理とサーバー・プロセス」
『Oracle Tuxedo ATMIワークステーション・コンポーネントの使用』
『ATMIアプリケーションにおけるセキュリティの使用』の「セキュリティの管理」
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』「UBBCONFIG(5)」「WS_MIB(5)」および「WSL(5)」
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 ATMIの紹介』の「Oracle Tuxedoシステムの管理とサーバー・プロセス」
ATMI /Qコンポーネントの使用
『Oracle Tuxedo ATMI C言語関数リファレンス』「tpenqueue(3c)」および「tpdequeue(3c)」
『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』「APPQ_MIB(5)」「TMQUEUE(5)」「TMQFORWARD(5)」および「UBBCONFIG(5)」
Oracle Tuxedo EventBroker
Oracle Tuxedo EventBrokerは、Oracle Tuxedo ATMIアプリケーション内で実行されるプロセス間のアプリケーション・イベントの非同期ルーティングを可能にする、トランザクション対応、XA準拠のアプリケーション・パブリッシュ/サブスクライブ・システムです。また、システム・イベントを、その受信を望むアプリケーション・プロセスに配布します。
イベントとは、アプリケーション・プログラムまたはOracle Tuxedoシステム内で、管理者、オペレータまたはソフトウェアの興味を引く状態の変化またはその他の事象です。イベントの例には、「株式が指値かそれ以上の値で取り引きされた」や「ネットワーク障害が発生した」などがあります。
イベントのプロデューサとコンシューマ間の調停
イベントのプロデューサをパブリッシャまたはサプライヤと呼び、イベントのコンシューマをサブスクライバと呼びます。EventBrokerは、イベントの配布についてプロデューサとコンシューマを調停します。次の図に、EventBrokerを使用したパブリッシュ/サブスクライブ通信の概略を示します。
図2-5 イベントのサブスクリプション、ポスト、および通知
グローバル・トランザクションでイベントをポストすると、トランザクションが正常に実行された場合、ポストに関係ない作業を含め、すべての作業の完了が保証されます。トランザクション内である作業が失敗した場合は、そのトランザクションで行われたすべての作業がロールバックされます。
EventBrokerのドキュメント
Oracle Tuxedo EventBrokerコンポーネントのドキュメントの詳細は、次のドキュメントを参照してください。
『Oracle Tuxedo ATMIの紹介』の「Oracle Tuxedoシステムの管理とサーバー・プロセス」
『Oracle Tuxedoアプリケーション実行時の管理』の「EventBrokerについて」
『Oracle Tuxedo ATMI C言語関数リファレンス』「tppost(3c)」「tpsubscribe(3c)」および「tpunsubscribe(3c)」
『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』「EVENTS(5)」「EVENT_MIB(5)」「TMSYSEVT(5)」「TMUSREVT(5)」および「UBBCONFIG(5)」
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コンポーネントのドキュメントの詳細は、次のドキュメントを参照してください。
『Oracle Tuxedo ATMIの紹介』「Oracle Tuxedoシステムの管理とサーバー・プロセス」
『Oracle Tuxedo Domainsコンポーネントの使用』
『Oracle Tuxedoのファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』「DMADM(5)」「DMCONFIG(5)」「GWADM(5)」「GWTDOMAIN(5)」および「UBBCONFIG(5)」
 

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved