この章では、サンプル・ソケット・トランスポート・プロバイダをビルドおよび実行する方法について説明します。このサンプルとソース・コードは、Service Busとともにインストールされます。このサンプルは、カスタム・トランスポート・プロバイダの実装例として使用できます。
この章の内容は次のとおりです。
サンプル・ソケット・トランスポート・プロバイダの主な目的は、トランスポート・プロバイダの実装例として機能することです。一般に公開されているこのサンプルでは、トランスポートSDKの実装および構成の詳細について説明します。
サンプル・トランスポートは、ストリーミングしたデータをService Busに構成されているTCPソケットとの間で送受信するために設計されています。サンプル・トランスポートでは、トランスポートSDKの次のような概念を示します。
カスタム・トランスポートのビルドに必要な、トランスポートSDK APIのセットを実装します。
構成されたアドレスでリスニングするソケット・エンドポイントがないことを確認するなど、トランスポート・エンドポイントの検証を実行します。
ソケット・プロパティ、メッセージ・パターンなど、様々なUI構成オプションを実装します。
一方向または同期型のリクエスト/レスポンス・メッセージ・パターンを実装します。
エンドポイント・リクエスト/レスポンスのメタデータおよびヘッダーにPOJO (Plain Old Java Object)を使用します。
Service Busパイプラインでストリーミングを使用します。
図43-1に、サンプル・ソケット・トランスポート・プロバイダの基本アーキテクチャを示します。どのクライアントでも、サーバー・ソケットに接続できます。データは、サーバー・ソケットで受信され、パイプラインを介して渡されます。レスポンスは、アウトバウンド・トランスポートを介して戻されます。レスポンスは、最後にインバウンド・トランスポートに返送され、クライアントに戻されます。
図43-2に、転送エンドポイントの構成のプロパティを示します。これらのプロパティは、スキーマ・ファイルSocketTransport.xsd
で構成されています。このファイルの場所は、「サンプルの場所とディレクトリ構造」を参照してください。このファイルを使用すると、SDKの共通のスキーマに定義されている、基本的なプロパティ・セットを拡張できます。各プロパティは、SocketTransport.xsd
ファイルを参照してください。
ヒント:
これらの構成プロパティの詳細は、「ステップ4. トランスポート固有のアーティファクトの定義」を参照してください。
また、図43-3に示すように、SocketTransport.xsd
ファイルには、リクエスト・ヘッダー、レスポンス・ヘッダーおよびメタデータのプロパティが含まれています。これらのプロパティの詳細は、SocketTransport.xsd
ファイルを参照してください。
ここでは、サンプル・プロジェクトのいくつかの重要なフォルダについて簡単に説明します。このディレクトリ構造を、カスタム・トランスポート・プロバイダを開発する際のモデルとして使用できます。サンプル・ソケット・トランスポート・プロバイダはService Busにインストールされ、OSB_ORACLE_HOME
/samples/servicebus/sample-transport
ディレクトリにあります。
表43-1に、重要なsample-transport
ディレクトリを示して、簡単に説明します。
表43-1 サンプル・トランスポート・プロバイダの重要なディレクトリ
ディレクトリ | 説明 |
---|---|
build |
このディレクトリは、サンプル・ソケット・トランスポートをビルドするときに作成されます。Service Busで使用するビルド化およびパッケージ化されたトランスポートを含みます。 |
l10n |
このディレクトリには、これらの国際化ファイルが含まれます。サポートされているロケールそれぞれにそれぞれのファイルがあります。
|
META-INF |
このディレクトリには、これらのアプリケーション・デプロイメント・ディスクリプタ・ファイルが含まれます。
|
オフライン |
このディレクトリには1つのファイル |
resources |
このディレクトリには、トランスポートSDKによって使用されるソケット・トランスポート・プロバイダの構成ファイルが含まれます。ファイル名は |
スキーマ |
このディレクトリには、このトランスポート用に定義された関連スキーマが含まれます(ここでは |
src |
このディレクトリには、サンプル・トランスポートのソース・ツリーが含まれます。 |
test |
このディレクトリには、サンプル・トランスポート・プロバイダのテスト・ユーティリティおよびテスト・サーバーおよびクライアントのソース・ツリーが含まれます。 |
webapp |
このディレクトリには、サンプル・トランスポート・ヘルプのWebアプリケーションで必要なデプロイメント記述子が含まれます。 |
次のAntビルド・ファイルも、sample-transport
ディレクトリに格納されています。
build.properties
- Antのプロパティ・ファイルです。
build.xml
- コンパイル、ビルド、およびデプロイ用の異なる対象を含むAntビルド・ファイルです。
この項で示す手順を指定の順序で実行して、サンプル・トランスポート・プロバイダをビルドしてデプロイします。
環境構成を設定すると、sample-transport
ディレクトリにあるAntビルド・ファイルを使用してトランスポートをビルドできます。
サンプル・トランスポート・プロバイダをビルドするには:
ソケット・サンプルは、サンプル・トランスポート・プロバイダをWebLogic Serverにデプロイする自動スクリプトも提供します。サンプルが正常にビルドされてステージングされると、デプロイ・コマンドを実行できます。
サンプル・トランスポート・プロバイダをデプロイするには:
サンプルは、テスト・サーバーとテスト・クライアントで構成されています。クライアントは、サーバーにメッセージを送信します。メッセージを受信および処理するために、Service Busを構成します。
この項のタスクを指定の順序で実行します。これらの手順は、Oracle Service Busコンソールでサンプル・プロジェクトを作成するためのものですが、JDeveloperでも作成できます。
サンプル・ファイルが提供するクライアント・ツールおよびサーバー・ツールを使用して、ソケット・トランスポート・プロバイダをテストできます。また、Oracle Service Busコンソールのテスト・コンソールを使用して、プロジェクト・コンポーネントをテストできます。
サンプル・プロジェクトには、ソケット・トランスポート・プロバイダをテストするための簡単なソケット・サーバーおよびクライアントが含まれています。まず、サンプルのサーバーおよびクライアントを起動する必要があります。次に、テスト・コンソールを操作して、トランスポート・プロバイダをテストできます。
次のコマンドをsample-transport
ディレクトリから実行してテスト・サーバーを起動します。これは、指定したポートでリスンしてメッセージを送受信するサーバー・ソケットです。
java -classpath .\test\build\test-client.jar -Dfile-encoding=utf-8 -Drequest-encoding=utf-8 com.bea.alsb.transports.sample.test.TestServer 7031 <message-file-location>
7031は、ServerSocketがリスニングしているビジネス・サービスのエンドポイントURIのポート番号です。ファイルおよびリクエスト・エンコーディングは、リクエストおよびレスポンスのエンコーディングを指定します。message-file-location
は、ビジネス・サービスへのレスポンスとして送信するメッセージ・ファイルのパスおよび名前です。
サーバーが正常に起動すると、サーバーが起動したことおよびソケットをリスニングしていることを示すメッセージが表示されます。処理するファイルを指定すると、コマンド・ウィンドウにファイルのテキストが表示されます。
次のコマンドを実行して、構成済のソケット・プロキシ・サービスのクライアントである、初期化ソケット・サービスを起動します。Service Busに対してメッセージを送信し、レスポンスを受信します。
java -classpath .\test\build\test-client.jar -Dfile-encoding=utf-8 -Dresponse-encoding=utf-8 com.bea.alsb.transports.sample.test.TestClient <host-name> <port> <thread-ct> <message-file-location>
説明:
host-name
は、Service Busサーバーがあるホスト名です。
port
は、プロキシ・サービスがリスニングしているポート番号です(この例では7032)。
thread-ct
は、Service Busにメッセージを送信できるクライアントの数です。
message-file-location
(オプション)は、ビジネス・サービスへのレスポンスとして送信されるメッセージ・ファイルの場所です。
file-encoding
は、ファイルのエンコーディングを指定するオプション引数です。デフォルト値はutf-8
です。
response-encoding
は、ソケット・プロキシ・サービスから受信したレスポンスのエンコーディングです。デフォルト値はutf-8
です。