bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > COBOL を使用した Tuxedo アプリケーションのプログラミング > BEA Tuxedo プログラミングの概要 |
COBOL を使用した Tuxedo アプリケーションのプログラミング
|
BEA Tuxedo プログラミングの概要
ここでは、次の内容について説明します。
BEA Tuxedo 分散アプリケーションのプログラミング
分散アプリケーションは、複数のハードウェア・システム上にあるソフトウェア・モジュールから構成され、これらのモジュールが互いに通信してアプリケーションのタスクが実行されます。たとえば、次の図に示すリモート・オンライン銀行業務システムの分散アプリケーションは、顧客のホーム・コンピュータで実行されるソフトウェア・モジュールと、すべての口座レコードを管理する銀行のコンピュータ・システムから構成されています。
図 1-1 分散アプリケーションの例 - オンライン銀行業務システム
たとえば、ログオンしてメニューからオプションを選択するだけで、残高を照会できます。この処理では、ローカル・ソフトウェア・モジュールが特別なアプリケーション・プログラミング・インターフェイス (API) ルーチンを使用して、リモート・ソフトウェア・モジュールと通信しています。 BEA Tuxedo 分散アプリケーション・プログラミング環境では、分散ソフトウェア・モジュール間で安全かつ信頼性の高い通信を行うために必要な API ルーチンが提供されています。BEA Tuxedo API は、アプリケーション・トランザクション・モニタ・インターフェイス (ATMI) と呼ばれます。 ATMI を使用すると、以下の操作を行うことができます。
コミュニケーション・パラダイム
次の表は、アプリケーション開発者が利用できる BEA Tuxedo のコミュニケーション・パラダイムを示しています。
表 1-1 コミュニケーション・パラダイム
BEA Tuxedo クライアント
BEA Tuxedo クライアントとは、ユーザの要求を収集し、その要求に対するサービスを提供するサーバにその要求を転送するソフトウェア・モジュールです。ほとんどのソフトウェア・モジュールは、BEA Tuxedo クライアントとして動作できます。その場合、ATMI クライアント初期化ルーチンを呼び出して、BEA Tuxedo アプリケーションに「参加」します。以降、クライアントはサーバと情報をやり取りできるようになります。
クライアントは、ATMI 終了ルーチンを呼び出してアプリケーションから「分離」し、BEA Tuxedo システムにクライアントをトラッキングする必要がなくなったことを通知します。これにより、ほかの操作で BEA Tuxedo アプリケーションのリソースを使用できるようになります。
次は、基本的なクライアント・プロセスの処理を示す擬似コードです。
コード リスト 1-1 クライアントの擬似コード
START PROGRAM
BEA TUXEDO アプリケーションのクライアントとして登録
初期クライアント ID をデータ構造体に格納
最後まで実行
ユーザー入力を取得
ユーザ入力を DATA-REC に格納
サービス要求を送信
応答を受信
応答をユーザに送信
実行を終了
アプリケーションの終了
END PROGRAM
この擬似コードに示したほとんどの処理は、ATMI 呼び出しでインプリメントされます。ただし、ユーザ入力を DATA-REC に格納する処理と、ユーザに応答を返す処理は、COBOL ルーチンでインプリメントされます。
クライアントは、アプリケーションから分離する前に、サービス要求をいくつでも送受信できます。クライアントは、これらの要求を一連の要求/応答型呼び出しとして送信することができます。また、ある呼び出しから別の呼び出しに状態の情報を渡す必要がある場合は、会話型サーバに接続して要求を送ることもできます。どちらの方法でもクライアント・プログラムのロジックは同じですが、使用する ATMI 呼び出しは異なります。
ATMI クライアントを実行するには、buildclient-C コマンドを実行してクライアントをコンパイルし、BEA Tuxedo ATMI および必要なライブラリとリンクします。buildclient(1) コマンドの詳細については、クライアントのコーディングを参照してください。
BEA Tuxedo サーバ
BEA Tuxedo サーバとは、クライアントに対して 1 つ以上のサービスを提供するプロセスです。サービスとは、クライアントが処理を要求する特定のビジネス・タスクです。サーバは、クライアントから要求を受け取り、それらを適切なサービス・サブルーチンにディスパッチします。
サーバの基本的な動作
サーバのビルドでは、サービス・サブルーチンと、BEA Tuxedo システムで提供される制御プログラムとがアプリケーションによって組み合わされます。この制御プログラムはシステムによって提供され、定義済みのルーチンから構成されています。この制御プログラムは、サーバの初期化と終了を行ったり、ユーザ入力をデータ構造体に格納して、要求を受信してサービス・ルーチンへのディスパッチを行ったりします。このすべての処理は、アプリケーションに透過的です。
次の図は、サーバとサービス・ルーチン間の相互作用を示す疑似コードです。
図 1-2 要求/応答型サーバとサービス・サブルーチンの擬似コード
初期化後、サーバは要求メッセージがメッセージ・キューに登録されるまで待機し、その要求をキューから取り出してサービス・サブルーチンに送り、要求を処理します。応答が必要な場合は、その応答は要求処理の一部と見なされます。 会話型パラダイムは、次の図の疑似コードで示すように、要求/応答型パラダイムとは多少異なります。 図 1-3 会話型サービス・サブルーチンの擬似コード
BEA Tuxedo システム提供の制御プログラムには、プロセスをサーバとして登録し、サービスを宣言し、キューから要求メッセージを取り出すために必要なコードが記述されています。ATMI 呼び出しは、要求を処理するサービス・サブルーチンで使用されます。サービス・サブルーチンのコンパイルとテストを行う準備ができたら、これらをサーバとリンクして、実行可能サーバを生成します。その場合、buildserver -C コマンドを実行します。 要求元としてのサーバ クライアントが複数のサービスや同じサービスを複数回要求する場合、サービスのサブセットを別のサーバに転送して実行することができます。その場合、サーバはクライアント、つまりサービスの要求元として動作します。つまり、クライアントとサーバの両方が要求元になることができます。ただし、クライアントは要求元にしかなれません。このようなモデルは、BEA Tuxedo の ATMI 呼び出しを使用すると簡単にコーディングできます。 注記 要求/応答型サーバも、要求を別のサーバに転送できます。その場合、サーバはクライアント (要求元) としては動作しません。応答を必要としているのは、要求を転送したサーバではなく、元のクライアントだからです。
BEA Tuxedo API: ATMI
アプリケーションのロジックを記述する COBOL 言語のほかに、アプリケーション・トランザクション・モニタ・インターフェイス (ATMI) を使用する必要があります。この ATMI は、アプリケーションと BEA Tuxedo システム間のインターフェイスになります。
ATMI は、リソースのオープンとクローズ、トランザクションの開始と終了、およびクライアントとサーバ間の通信のサポートなどの処理に使用されるコンパクトな呼び出しのセットです。次の表は、ATMI 呼び出しをまとめたものです。各呼び出しについては、『BEA Tuxedo COBOL リファレンス』を参照してください。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |