転送 SDK ユーザーズ ガイド
サンプル ソケット転送プロバイダ
この章では、サンプル ソケット転送プロバイダをビルドおよび実行する方法について説明します。このサンプルは、Oracle Service Bus と共にインストールされています。このサンプルはカスタム転送プロバイダの実装例として機能し、サンプルのソース コードを使用することができます。
この章の内容は以下のとおりです。
サンプル ソケット転送プロバイダの設計
サンプル ソケット転送プロバイダの主な目的は、転送プロバイダの実装例として機能することです。一般に公開されているこのサンプルでは、転送 SDK の実装およびコンフィグレーションの詳細について説明します。
この節の内容は以下のとおりです。
サンプルによって説明される概念
サンプル転送は、ストリーミングしたデータを Oracle Service Bus にコンフィグレーションされている TCP ソケットとの間で送受信するために設計されています。サンプル転送の目的は、転送 SDK の次のような概念を示すことにあります。
カスタム転送のビルドに必要な、転送 SDK API のセットを実装する。
コンフィグレーションされたアドレスでリスンするソケット エンドポイントがないことを確認するなど、転送エンドポイントの検証を実行する。
ソケット プロパティ、メッセージ パターンなど、さまざまな UI コンフィグレーション オプションを実装する。
一方向または同期型の要求/応答メッセージ パターンを実装する。
エンドポイント要求/応答のメタデータおよびヘッダに POJO (Plain Old Java Object) を使用する。
Oracle Service Bus パイプラインでのストリーミングの使用方法を示す。
サンプルの基本アーキテクチャ
図 6-1 に、サンプル ソケット転送プロバイダの基本アーキテクチャを示します。どのクライアントでも、サーバ ソケットに接続できます。データは、サーバ ソケットで受信され、パイプラインを介して渡されます。応答は、発信転送を介して戻されます。応答は、最後に着信転送に返送され、クライアントに戻されます。
コンフィグレーションのプロパティ
図 6-2 に、転送エンドポイントのコンフィグレーションのプロパティを示します。これらのプロパティは、スキーマ ファイル SocketTransport.xsd
でコンフィグレーションされています。このファイルの場所の詳細については、「サンプルの場所とディレクトリ構造」を参照してください。このファイルを使用すると、SDK の共通のスキーマに定義されている、基本的なプロパティ セットを拡張できます。各プロパティについては、SocketTransport.xsd
ファイルを参照してください。
また、図 6-3 に示すように、SocketTransport.xsd
ファイルには、要求/応答ヘッダおよびメタデータのプロパティが含まれています。各プロパティの詳細については、SocketTransport.xsd
ファイルを参照してください。
サンプルの場所とディレクトリ構造
サンプル ソケット転送プロバイダは Oracle Service Bus と共にインストールされ、次のディレクトリに格納されます。
図 6-4 に、サンプル ソケット転送プロバイダのディレクトリ構造を示します。この節では、サンプル プロジェクトのフォルダについて簡単に説明します。このディレクトリ構造は、カスタム転送プロバイダを開発する際のモデルとして使用できます。
表 6-1 に、サンプル転送のディレクトリについて簡単に説明します。
表 6-1 サンプル転送プロバイダのディレクトリ
|
サンプル ソケット転送をビルドするときに作成される。Oracle Service Bus で使用するビルド化およびパッケージ化された転送を含む。
|
|
SocketConfig.xml - 転送 SDK が使用する、ソケット転送プロバイダのコンフィグレーション。
|
|
Workshop for WebLogic 環境にサンプル転送を追加するために必要なplugin.xml ファイルを含む。
|
|
|
|
次のインターナショナライゼーション ファイルを含む。
SocketTransportMessages.xml - Oracle Service Bus Console に表示される、テキスト メッセージのコンフィグレーション ファイル。
SocketTransportTextMessages.xml
|
|
次のアプリケーション デプロイメント記述子ファイルを含む。
application.xml – J2EE アプリケーション記述子ファイル
weblogic-application.xml – WebLogic アプリケーション記述子ファイル
|
|
この転送用に定義されている、次の関連スキーマを含む。
SocketTransport.xsd - ソケット エンドポイント要求/応答のメタデータおよびヘッダを記述する
|
|
|
|
src - テスト サーバとクライアントのソース ツリー
|
|
サンプル転送ヘルプ Web アプリケーションで必要なデプロイメント記述子を含む。
|
次の Ant ビルド ファイルも、sample-transport
ディレクトリに格納されています。
build.properties
– Ant のプロパティ ファイル。
build.xml
- コンパイル、ビルド、およびデプロイ用の異なる対象を持つ Ant ビルド ファイル。
サンプルのビルドとデプロイ
この章では、サンプル転送プロバイダをビルドおよびデプロイする方法について説明します。
環境の設定
新しいドメインを作成するか、Oracle Service Bus と共にインストールされている、コンフィグレーション済みのドメインの 1 つを使用します。
次のスクリプトを実行して、ドメイン環境を設定します。
DOMAIN_HOME/bin/setDomainEnv.cmd
(UNIX システムでは setDomainEnv.sh
)
転送のビルド
ソケット転送をビルドするには、次の操作を行います。
コマンド ウィンドウで、次のサンプル ホーム ディレクトリに移動します。
ALSB_HOME/samples/servicebus/sample-transport
コマンド ant build-jar
を実行します。
このコマンドは、ソース ファイルをコンパイルし、以下を実行します。
sock_transport.ear
を作成して、ディレクトリ BEA_HOME/ALSB_HOME/lib に配置します。
/sample-transport/build/Socket_Transport_3.0.0.0.jar
を、Workshop for WebLogic のプラグインとして作成します。このファイルを、ディレクトリ ALSB_HOME/eclipse/plugins
にコピーします。
サンプル転送プロバイダのデプロイ
サーバにサンプル転送プロバイダをデプロイするには、以下の操作を行います。
sample-transport/build.properties
で次の変数を設定します。
wls.hostname
wls.port
wls.username
wls.password
wls.server.name
次のコマンドを実行して、転送プロバイダをサーバにデプロイします。
ソケット サーバの起動とテスト
サンプル プロジェクトには、簡単なソケット サーバと、サーバをテストするためのクライアントが含まれています。このソケット サーバを使用して、ソケット転送プロバイダをテストします。
この節では、以下のトピックについて説明します。
ソケット サーバの起動
次のコマンドを実行して、指定したポートでリスンしてメッセージを送受信するサーバ ソケットである、外部サービスを起動します。
ここで、
port
- ServerSocket がリスンするポート番号であり、ビジネス サービスのポート番号。
message-file-location
- (任意) ビジネス サービスへの応答として送信されるメッセージ ファイルの場所。
file-encoding
- ファイルのエンコーディングを指定するシステム プロパティ (デフォルト値 = utf-8)。
request-encoding
- ソケット ビジネス サービスが送信する、要求のエンコーディング (デフォルト値 = utf-8)。
ソケット転送のテスト
次のコマンドを実行して、コンフィグレーション済みのソケット プロキシ サービスのクライアントである、サービスを起動します。Oracle Service Bus に対してメッセージを送信し、応答を受信します。
ここで、
host-name
- Oracle Service Bus サーバのホスト名。
port
- プロキシ サービスがリスンするポート番号。
thread-ct
- Oracle Service Bus にメッセージを送信できるクライアントの数。
message-file-location
- (任意) ビジネス サービスへの応答として送信されるメッセージ ファイルの場所。
file-encoding
- ファイルのエンコーディングを指定するオプション引数 (デフォルト値 = utf-8
)。
response-encoding
- ソケット プロキシ サービスから受信した応答のエンコーディング (デフォルト値 = utf-8
)。
ソケット転送のコンフィグレーションのサンプル
サンプルは、テスト サーバとテスト クライアントで構成されています。クライアントは、サーバにメッセージを送信します。メッセージを受信および処理するために、Oracle Service Bus を構成します。
この節では、以下のタスクについて説明します。
新しいプロジェクトの作成
Oracle Service Bus Console を起動します。
[プロジェクト エクスプローラ] を開きます。
[Change Center] で [編集] をクリックします。
図 6-5 に示すように、プロジェクト パネルの [新しいプロジェクト名の入力] フィールドに「SocketTest
」と入力します。

[プロジェクトの追加] をクリックします。プロジェクト テーブルに、新しいプロジェクトが表示されます。
ビジネス サービスの作成
サーバと通信するために、ビジネス サービスを作成します。
プロジェクト テーブルの [SocketTest] プロジェクト名をクリックします。[SocketTest] パネルが表示されます。
図 6-6 に示すように、[リソースの作成] ドロップダウン メニューで [ビジネス サービス] を選択します。[全般的なコンフィグレーション] パネルが表示されます。

[全般的なコンフィグレーション] パネルの [サービス名] フィールドに「SocketBS
」と入力します。
[サービスの種類] リストで [任意の XML サービス] を選択し、[次へ] をクリックします。
図 6-7 に示すように、[プロトコル] メニューから [socket] を選択します。

[エンドポイント URI] フィールドに「tcp://localhost:7031
」と入力し、[追加] をクリックします。
[次へ] をクリックします。
次のパネルで、[次へ] をクリックしてデフォルト値を受け入れます。
[概要] パネルを確認した後、[保存] をクリックします。
[Change Center] で、[アクティブ化] をクリックします。
プロキシ サービスの作成
この節では、プロキシ サービスを作成します。
図 6-8 に示すように、[リソースの作成] メニューの [プロキシ サービス] を選択します。

[全般的なコンフィグレーション] パネルの、[サービス名] フィールドに「SocketProxy
」と入力します。
[サービスの種類] リストで [任意の XML サービス] を選択し、[次へ] をクリックします。
[プロトコル] メニューの [socket] を選択します。
[エンドポイント URI] フィールドに「tcp://7032
」と入力し、[次へ] をクリックします。
次のパネルでデフォルト値を受け入れ、[次へ] をクリックします。
[概要] パネルを確認した後、[保存] をクリックします。
[Change Center] で、[アクティブ化] をクリックします。
[送信] をクリックします。
パイプラインの編集
ビジネス サービスとプロキシ サービスを定義したので、受信メッセージをビジネス サービスにルーティングできるように、パイプラインを編集します。
[Change Center] で [作成] をクリックします。
図 6-9 に示すように、[リソース] セクションの [SocketProxy] 行で、[メッセージ フローの表示] アイコンをクリックします。

図 6-10 に示すように、[メッセージ フローの編集] ウィンドウで [SocketProxy] アイコンをクリックし、メニューから [ルートの追加] を選択します。

[RouteNode1] アイコンをクリックし、メニューから [ルートの編集] を選択します。
[ステージ コンフィグレーションの編集] ウィンドウで [アクションの追加] をクリックします。
図 6-11 に示すように、[ルート ノード] ウィンドウの [アクションの追加] をクリックし、メニューから [通信|ルーティング] を選択します。

次のパネルで [<サービス>] を選択します。
図 6-12 に示すように、[サービスの選択] ウィンドウのリストで [SocketBS] を選択し、[送信] をクリックします。

[ステージ コンフィグレーションの編集] ウィンドウで [保存] をクリックします。
必要に応じて、[RouteNode1] アイコンをクリックし、名前を「SocketBS」に変更します。
[保存] をクリックします。
[Change Center] で [アクティブ化] をクリックしてから、[送信] をクリックします。
ソケット転送プロバイダのテスト
この節では、Oracle Service Bus Console を使用して転送プロバイダをテストします。
「ソケット サーバの起動」で説明したように、テスト サーバを起動します。
[プロジェクト エクスプローラ] で [SocketTest] をクリックします。
図 6-13 に示すように、[リソース] テーブルの [SocketProxy] 行で、[テスト コンソールの起動] アイコンをクリックします。

テスト コンソールで、テキスト領域に有効な XML スタンザを入力するか、[参照] ボタンを使用して、ローカル システムの有効な XML ファイルを選択します。たとえば、図 6-14 では、テキスト領域に簡単な XML 式 <x/>
を入力しています。

[実行] をクリックします。テストが正常に終了すると、図 6-15 に示すような情報がテスト コンソールに表示されます。また、テスト コンソールに XML テキストを入力すると、サーバ コンソールにエコーされます。

テスト コンソールを閉じます。