Oracle Joltは、Oracle Tuxedoシステム用のJavaベースのインタフェースです。既存のOracle Tuxedoアプリケーションの機能が拡張されており、イントラネットやインターネットにも対応できます。Joltを使用すると、通常のブラウザからOracle TuxedoサービスにアクセスできるようにOracle Tuxedoアプリケーションを変更することができ、さらにこれを簡単に行うことができます。また、Joltは既存および新規のOracle TuxedoアプリケーションやOracle Tuxedoサービスを扱い、クライアント/サーバー間のイントラネット・トランザクションおよびインターネット・トランザクションを安全かつスケーラブルに処理します。さらに、Joltを使用して、既存のOracle Tuxedoサービスをリモートから呼び出すことができるクライアント・アプリケーションやアプレットを作成し、アプリケーション・メッセージング機能、コンポーネント管理、および分散トランザクション処理を実現することができます。
アプリケーションの開発は、Oracle TuxedoとJavaプログラミング言語を使用するJolt APIで行います。したがって、このドキュメントは、Oracle TuxedoとJavaのプログラミングをよく理解している読者を対象としています。このドキュメントは、システム管理者、ネットワーク管理者および開発者を対象としています。
Oracle Joltは、リモートのJavaクライアントがOracle Tuxedoシステムにアクセスするためのインタフェースを提供するJavaクラス・ライブラリとAPIです。Oracle Joltは、Oracle TuxedoサービスにアクセスするJavaベースのクライアント・プログラムを作成するための以下のコンポーネントで構成されています。
•
|
Joltサーバーおよびリポジトリ・サーバー - クライアントからのネットワーク接続の受け付け、Joltメッセージの変換、複数のクライアントの単一プロセスへの多重化、1つまたは複数のOracle Tuxedoサーバーで実行されるOracle Tuxedoアプリケーションとの間でのリクエストの送受信を行います。
|
•
|
Joltクラス・ライブラリ - Joltクラス・ライブラリは、Jolt APIを実装するクラス・ファイルを収めたJavaパッケージです。これらのクラスによって、JavaアプリケーションおよびアプレットはOracle Tuxedoサービスを呼び出すことができるようになります。Joltクラス・ライブラリには、通信属性、通知、ネットワーク接続、トランザクション、およびサービスについての設定、検索、管理および呼出しを行う機能が含まれています。
|
•
|
JoltBeans - Oracle JoltBeansには、Oracle Jolt用のJavaBeans対応インタフェースが用意されています。JoltBeansは、Oracle Joltクライアントを作成するため、JavaBeans対応の統合開発環境(IDE : Integrated Development Environment)で使用されるBeansコンポーネントです。JoltBeansは、JoltBeansツールキット(Oracle Jolt用のJavaBeans対応インタフェースで、JoltServiceBean、JoltSessionBean、JoltUserEventBeanが含まれる)とJolt GUI Bean (Jolt対応AWT (Abstract Window Toolkit) BeanとJolt対応Swing Bean)の2つのJava Beanで構成されています。
|
•
|
Joltインターネット・リレー - Joltインターネット・リレーはJoltクライアントからのメッセージをJoltサーバー・リスナー(JSL)またはJoltサーバー・ハンドラ(JSH)にルーティングするコンポーネントです。このコンポーネントにより、JSHとOracle TuxedoをWebサーバーと同じマシンで実行する必要がなくなります。Joltインターネット・リレーは、Joltリレー(JRLY)とJoltリレー・アダプタ(JRAD)から構成されます。
|
•
|
Jolt ECID - Jolt呼出しプロセスは、 JOLTクライアント --> JSL/JSH --> tuxedoサーバー --> サービスです。
|
1.Jolt接続プールでは、WeblogicとOracle Tuxedoの間のECIDの伝播がサポートされます。ECIDは、javaオプション-
Dtuxedo.ECID_ENABLEまたは環境変数
ECID_ENABLEが
yに設定されている場合に、伝播およびリクエスト・メッセージに挿入されます。javaオプション-
Dtuxedo.ECID_ENABLEは、環境変数
ECID_ENABLEよりも優先度が高くなります。ECIDは、Oracle Tuxedoからの応答メッセージで返送することもできます。
2.ECIDはDMS (ダイナミック・モニタリング・サービス)に依存し、ECIDはデフォルトでスタンドアロンのjoltクライアントではサポートされません。ECIDを作成する場合は、最初にDMSをインストールする必要があります。
3.Jolt ECIDはJRLYおよびJRADに影響しません。joltクライアント・トレース内のECIDの書式は次のとおりです。
000915:30475@slc05are:1: ECID <0000KqPMc659XbHpIsT4if1LPfwR000001>: atmi: { JoltSession.send(len 132)
Oracle Joltにより、既存のOracle Tuxedoサービスを利用して、トランザクション環境を企業のイントラネットや世界中のインターネットにまで拡張できます。Joltアーキテクチャの特徴は、その簡便さにあります。インターネット上で動く、堅牢でモジュール化され、スケーラブルな電子商業システムを構築、デプロイ、管理することができます。
Oracle Joltには以下のような特徴があります。
•
|
開発を容易にするJavaに基づくAPI - Javaに基づいたAPIにより、優れた設計のオブジェクト・インタフェースを提供することで、Oracle Joltはアプリケーションの設計を簡単にします。JoltはSDK (Java 2 Software Development Kit)をサポートし、Javaスレッドとは完全に互換性があります。Joltにより、Javaプログラマは、詳細なトランザクション・セマンティクスを理解したり、既存のOracle Tuxedoアプリケーションを書き直したりしなくても、Oracle Tuxedoのアプリケーション・サービスやトランザクション・サービスを使用するグラフィカルなフロントエンドを構築することができます。
|
•
|
純粋なJavaクライアントの開発 - Java対応ブラウザであればどんなブラウザでも実行できる純粋なJavaクライアントを構築することができます。Joltは、Javaのデータ型をOracle Tuxedoのネイティブなデータ型およびバッファに自動的に変換します。また、その逆の変換も自動的に行います。純粋なJavaクライアントであるので、作成されたアプレットまたはアプリケーションはクライアント側に常駐のライブラリやインストールを必要としません。そのため、クライアント・アプリケーションはネットワーク経由でダウンロードできます。
|
•
|
Oralce Tuxedoサービス・メタデータ・リポジトリを介したOracle Tuxedoサービスへの簡単なアクセス - Oralce Tuxedoサービス・メタデータ・リポジトリは、Javaクライアントで使用できるOracle Tuxedoサービス定義を管理および提示することにより、Javaアプリケーション開発を容易にします。バルク・ロード・ユーティリティを使用すると、既存のOracle TuxedoサービスをJolt開発環境にすばやく統合できます。JoltとOracle Tuxedoは、ネットワークとアプリケーションの拡張性の確保を簡単にする一方、アプリケーション・コンポーネントの再利用を促進します。 tmloadreposを使用して、バイナリのTuxedoサービス・メタデータ・リポジトリ・ファイルを作成または更新し、サービス・パラメータ情報とともにロードすることもできます。詳細は、 tmloadrepos(1)を参照してください。
|
•
|
GUIベースでのOracle Tuxedoサービスの管理と配布 - GUIを使用して、サービス名や入出力などのOracle Tuxedoサービスの定義を管理できます。GUIでは、メタデータ・リポジトリで定義されたサービスに対する異なる入出力名の使用をサポートします。
|
•
|
トランザクション処理を安全に行うための暗号化 - Oracle Joltでは、JoltクライアントとJSL/JSHの間で送受信されるデータを暗号化することができます。Joltの暗号化により、インターネット・トランザクション処理の安全性が向上します。
|
•
|
インターネット・リレーによるセキュリティ機能の追加 - Oracle Joltで提供されているインターネット・リレーを使用すると、ネットワーク管理者はWebサーバーとOracle Tuxedoアプリケーション・サーバーを分離することができます。Webサーバーは、企業のファイアウォール外にあることが多いため、一般的には安全性が低いと考えられています。Joltインターネット・リレーにより、Joltクライアントからのトランザクション処理をインターネット上で実現しつつ、Oracle Tuxedoサーバーをネットワーク上の安全な場所や環境に配置できるようになりました。
|
•
|
イベント・サブスクリプションのサポート - Joltのイベント・サブスクリプションを使って、Oracle Tuxedoサービスや他のOracle Tuxedoクライアントからイベント通知を受け取ることができます。Joltイベント・サブスクリプションで扱うことのできるOracle Tuxedoアプリケーション・イベントは次の2種類です。
|
•
|
非請求イベント通知 - Joltクライアントがこれらの通知を受信するのは、Joltクライアントが非請求メッセージ・イベントをサブスクライブしており、Oracle Tuxedoクライアントがブロードキャスト・メッセージまたは直接ターゲット指定されたメッセージを送信するときです。
|
•
|
ブローカ経由のイベント通知 - Joltクライアントは、Oracle Tuxedoイベント・ブローカ経由でこれらの通知を受信します。Joltクライアントがこれらの通知を受信するのは、それがあるイベントをサブスクライブしており、任意のOracle Tuxedoクライアントまたはサーバーがイベントを通知するときに限られます。
|
•
|
Joltトレース - javaオプション -Dtuxedo.TMTRACEが設定されると、JOLTクライアントはトレースをトレース形式として出力します。JOLTのトレース形式は、Oracle Tuxedoと同じです。4つのトレース・カテゴリ atmi、 inet、 traceおよび *がサポートされています。
|
ATMIおよびTXインタフェースへの明示的なアプリケーション呼出しのトレース・ポイント。
メッセージのダイ設定を含む、トレース機能自体に関連するトレース・ポイント。
-Dtuxedo.TMTRACE=trace_spec atmi/inet:jtrace
-Dtuxedo.JTRACEPATH=path_to_trace_file (optional, if not set, use user.dir)
-Dtuxedo.ECID_ENABLE=y|n (optional)
Usage:
atmi+inet+trace:jtrace:dye
atmi+inet:jtrace:dye
*:jtrace:dye
atmi-inet:jtrace:undye
Output file name:
Jtrace.yyyymmdd
Oracle Joltは、JavaクライアントをOracle Tuxedoを使って構築されたアプリケーションに接続します。Oracle Tuxedoはモジュール化されたサービス一式を提供し、各サービスはアプリケーション全体に関連した特定の機能を提供します。
図1-1の例が示す単純な銀行業務アプリケーションには、照会、引出し、振替え、預入れなどのサービスがあります。サービス・リクエストは通常、プログラム・ライブラリをコールするプログラムとしてCかCOBOLで記述されます。ネイティブなプログラムからライブラリにアクセスすることは、特定のCPUとオペレーティング・システムのリリースの組合せに対応するライブラリをインストールすることを意味しますが、これはJavaが、その設計上避けようとしているような状況です。Joltサーバーの実装はJoltクライアントのプロキシとして動作し、JoltクライアントにかわってOracle Tuxedoサービスを起動します。Oracle Joltサーバーは、Joltクライアントからリクエストを受け入れ、それらのリクエストをOracle Tuxedoサービス・リクエストにマップします。
次のようなJoltサーバー・コンポーネントは協調して、Joltクライアントのトランザクション処理リクエストをOracle Tuxedoアプリケーションに渡します。
JSLは、Joltクライアントからの最初の接続リクエストを処理し、JoltクライアントをJoltサーバー・ハンドラに割り当てます。
JSHは、ネットワーク接続の管理、クライアントの代理としてのサービス・リクエストの実行、Oracle Tuxedoバッファ型とJoltバッファ型の相互変換を行います。
TMMETADATAサーバーは、Joltサービス定義をTuxedoサービス・メタデータ・リポジトリから取り出し、そのサービス定義を
JSHに返します。
TMMETADATAサーバーは、Joltサービス定義の更新または追加も行います。
図1-2は、Jolt関連のサーバーとリポジトリのコンポーネントを示しています。
Oracle Joltクラス・ライブラリは一組のクラスであり、これをJavaアプリケーションやアプレットで使用することによって、Java対応のクライアントからOracle Tuxedoにサービスをリクエストできるようになります。これらのJoltクラス・オブジェクトにより、Oracle Tuxedoトランザクション・サービスにアクセスすることができます。
Joltクライアント・アプリケーションを開発するときに開発者が知っている必要があるのは、Joltが提供するクラスとメタデータ・リポジトリによってエクスポートされるOracle Tuxedoサービスのみです。Joltは背後にあるアプリケーションの詳細を隠します。JoltとJoltクラス・ライブラリを使用するために、背後で実行されているトランザクションのセマンティクスや、サービスを記述した言語、バッファ操作、サービスの所在、使用されるデータベース名などを
知る必要はありません。
Jolt APIはJavaクラス・ライブラリであり、Javaが提供する利点を備えています。つまり、アプレットは動的にダウンロードされ、実行されている間のみ存在します。その結果、クライアント側でインストールしたり、管理したり、バージョンをコントロールする必要がありません。サービスが変更された場合、クライアント・アプリケーションは次にメタデータ・リポジトリを呼び出すときに、その変更があったことを知ります。
|
|
|
|
|
Java対応のWebブラウザがHTTPプロトコルを使用してHTMLページをダウンロードします。
|
|
|
Joltアプレットがダウンロードされ、クライアントのJava仮想マシンで実行されます。
|
|
|
Javaアプレットの最初のタスクは、Joltサーバーに対する別の接続を確立することです。
|
|
|
Joltクライアントはサービスのシグネチャ(名前、パラメータ、型など)を知っているのでJoltクラス定義に基づいてサービス・リクエスト・オブジェクトを構築し、メソッドを呼び出すことができます。
|
|
|
リクエストはJoltサーバーに送信され、そこでJavaに基づくリクエストがOracle Tuxedoリクエストに変換されてOracle Tuxedo環境に転送されます。
|
|
|
Oracle Tuxedoがリクエストを処理してその情報をJoltサーバーに戻すと、変換し直されてJavaアプレットに戻されます。
|
Oracle Joltクライアントを作成するためにJava対応の統合開発環境(IDE)で使用されるJoltBeans、Java Beansコンポーネントが、今回Oracle Joltに含まれるようになりました。JavaBeansと、Symantec Visual Caféなどの一般的なJavaBeans対応開発ツールを併せて使用すると、クライアント・アプリケーションをグラフィカルに作成できます。
Oracle JoltBeansには、Oracle JoltへのJavaBeans対応インタフェースが用意されています。これにより、コードを記述することなく、フル機能を備えたOracle Joltクライアントを開発することができます。開発環境のコンポーネント・パレットにあるJoltBeansを、作成中のJoltクライアント・アプリケーションのJavaフォーム(複数のフォームも可)へドラッグ・アンド・ドロップできます。Beansのプロパティを移入し、アプリケーションやアプレットの各種のBeans間のイベント・ソース・リスナーの関係をグラフィカルに設定できます。通常は開発ツールを使用してイベントのフックアップ・コードを生成しますが、フックアップを手動でコーディングすることもできます。JoltBeansを使用したクライアントの開発では、Oracle Tuxedoサービス・メタデータ・リポジトリも使用します。Oracle Tuxedoサービス・メタデータ・リポジトリを使用すると、使用可能なOracle Tuxedo機能に簡単にアクセスできます。
JoltはJoltサーバーとJoltクライアント間の通信すべてをOracle Joltプロトコルで処理します。JoltサーバーとJoltクライアント・アプレットやアプリケーション間の通信手順は以下のとおりです。
1.
|
Oracle Tuxedoサービス・リクエストおよび関連するパラメータがメッセージ・バッファにパッケージ化されて、ネットワーク経由でJoltサーバーに配信されます。
|
2.
|
Joltサーバーはメッセージの中からデータを入手して、数値形式の変換や文字セットの変換などの必要なデータ変換を行います。
|
3.
|
Joltサーバーは、Joltクライアントがリクエストしたアプリケーション・サービスに対する適切なサービス・リクエストを実行します。
|
4.
|
サービス・リクエストがOracle Tuxedoシステムに入力されると、ほかのOracle Tuxedoクライアントによって出されるリクエストとまったく同じように実行されます。
|
5.
|
その結果はOracle Jolt 1.2 Oracle Joltサーバーに返され、そこで結果やエラー情報をメッセージにパッケージ化してJoltクライアントに送ります。
|
6.
|
Joltクライアントはメッセージの中身を様々なJoltクライアント・インタフェース・オブジェクトにマップして、リクエストを完了します。
|
Oracle Tuxedoサービス・メタデータ・リポジトリ
Joltは、Oracle Tuxedoサービス・メタデータ・リポジトリを、名前、番号、タイプ、パラメータ・サイズ、権限など、Oracle Tuxedoサービスが定義されるデータベースとして使用します。リポジトリはOracle Tuxedoサービス定義の中心的データベースとして機能し、新規および既存のOracle Tuxedoアプリケーション・サービスをJoltクライアント・アプリケーションで利用できるようにします。Oracle Tuxedoアプリケーションには、ADD_CUSTOMER、GET_ACCOUNTBALANCE、CHANGE_LOCATION、GET_STATUSなどのサービスまたはサービス定義を数多く持たせることができます。これらの定義の全部またはごく一部だけをメタデータ・リポジトリにエクスポートできます。メタデータ・リポジトリ内で、開発者またはシステム管理者はメタデータ・エディタを使用して、これらのサービスをJoltクライアント・アプリケーションにエクスポートできます。元のJoltリポジトリは現在は非推奨であり、そこに格納されているすべてのサービス定義をOracle Tuxedoサービス・メタデータ・リポジトリにロードできます。詳細は、
「JoltリポジトリからOracle Tuxedoサービス・メタデータ・リポジトリへの移行」を参照してください。
1つのクライアントにエクスポートされたすべてのリポジトリ・サービスは、すべてのクライアントにエクスポートされます。サービスのサブセットが1つのクライアントに必要で、他には必要でないようなケースは、Oracle Tuxedoに処理させます。
図1-4は、メタデータ・リポジトリがOracle Tuxedoサービスを複数のJoltクライアント・アプリケーションに仲介する方法を示しています。(4種類のOracle Tuxedoサービスが示されていますが、WITHDRAWサービスはリポジトリ内に定義されておらず、またTRANSFERサービスは定義されていますがエクスポートされていません。)
Joltインターネット・リレーは、JoltクライアントからのメッセージをJoltサーバーにルーティングするコンポーネントです。Joltインターネット・リレーは、
Joltリレー (
JRLY)と
Joltリレー・アダプタ (
JRAD)から構成されます。JRLYは、JoltメッセージをJoltリレー・アダプタにルーティングするスタンドアロンのソフトウェア・コンポーネントです。JoltリレーはJoltクライアントと通信するための最低限の構成しか必要とせず、これによってOracle TuxedoはWebサーバーと同じマシン上で実行されなくてもよくなります。
JRADは、Oracle Tuxedoシステム・サーバーですが、これにはOracle Tuxedoサービスはまったく含まれていません。これをJSHおよびOracle Tuxedoとともに動かすためにはコマンド行引数が必要です。JRADは、
JRLYからクライアント・リクエストを受信し、このリクエストを適切なJSHに転送します。JSHからのレスポンスはJRADに返され、JRADはJRLYにそのレスポンスを返します。1つのJoltインターネット・リレー(JRLY/JRADのペア)は複数のクライアントを同時に並行して処理します。
Joltクライアントを作成してOracle Tuxedoアプリケーションにアクセスする
1.
|
Oracle Tuxedoシステム・アプリケーションを作成したことを確認します。
|
Oracle Tuxedoのインストール方法とOracle Tuxedoアプリケーションの作成方法の詳細は、
Oracle Tuxedoシステムのインストールおよび
Oracle Tuxedoアプリケーションの設定を参照してください。
Oracle Tuxedoシステムのインストールを参照してください。
3.
|
バルク・ロード・ユーティリティを使って、TuxedoサービスをJoltリポジトリ・データベースにロードします。
|
このユーティリティの使用方法の詳細は、「Tuxedoサービスのバルク・ロード」を参照してください。
表1-2は、Joltリポジトリ・データ・タイプとTuxedoサービス・データ・タイプ間のマッピング関係を示します。
表1-2
Joltリポジトリ・データベースとTuxedoサービス・データ・タイプ間のマッピング関係
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意:
|
Tuxedoサービスのlong型サイズは32ビットまたは64ビットになります。Tuxedoサービスが32ビットlong型を使用する場合、それをJoltクライアントの integerとマッピングします。そのほか、Tuxedoサービスが64ビットlong型を使用する場合、それをJoltクライアントの longとマッピングします。
|
Javaは符号なしデータ型をサポートしないため、符号なしデータ型をTuxedoサービスで使用するには、それをJoltデータ型(同一のストレージ領域を有する)にマッピングする必要があります。たとえば、「
unsigned int」はJoltクライアントの「
integer」にマッピングする必要があります。そのほか、符号なしデータ型の正確な値をJoltクライアントで表示する場合は、Javaで追加キャスティングを実行する必要があります。
4.
|
Joltクラス・ライブラリを使用してクライアント・アプリケーションを作成します。
|
Joltクラス・ライブラリを使用してクライアント・アプリケーションをプログラミングする方法については、以下を参照してください。
5.
|
Joltに基づくクライアント・アプレットやアプリケーションを実行します。
|