ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Bus開発者ガイド
11g リリース1(11.1.1.4.0)
B61435-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

42 サンプル・ソケット・トランスポート・プロバイダ

この章では、サンプル・ソケット・トランスポート・プロバイダをビルドおよび実行する方法について説明します。このサンプルは、Oracle Service Busと共にインストールされています。このサンプルはカスタム・トランスポート・プロバイダの実装例として機能し、サンプルのソース・コードを使用することができます。

この章では、次のトピックについて説明します。

42.1 サンプル・ソケット・トランスポート・プロバイダの設計

サンプル・ソケット・トランスポート・プロバイダの主な目的は、トランスポート・プロバイダの実装例として機能することです。一般に公開されているこのサンプルでは、トランスポートSDKの実装および構成の詳細について説明します。

この項では、次のトピックについて説明します。

42.1.1 サンプルによって説明される概念

サンプル・トランスポートは、ストリーミングしたデータをOracle Service Busに構成されているTCPソケットとの間で送受信するために設計されています。サンプル・トランスポートの目的は、トランスポートSDKの次のような概念を示すことにあります。

  • カスタム・トランスポートのビルドに必要な、トランスポートSDK APIのセットを実装します。

  • 構成されたアドレスでリスニングするソケット・エンドポイントがないことを確認するなど、トランスポート・エンドポイントの検証を実行します。

  • ソケット・プロパティ、メッセージ・パターンなど、様々なUI構成オプションを実装します。

  • 一方向または同期型のリクエスト/レスポンス・メッセージ・パターンを実装します。

  • エンドポイント・リクエスト/レスポンスのメタデータおよびヘッダーにPOJO (Plain Old Java Object)を使用します。

  • Oracle Service Busパイプラインでのストリーミングの使用方法を示します。

42.1.2 サンプルの基本アーキテクチャ

図42-1に、サンプル・ソケット・トランスポート・プロバイダの基本アーキテクチャを示します。どのクライアントでも、サーバー・ソケットに接続できます。データは、サーバー・ソケットで受信され、パイプラインを介して渡されます。レスポンスは、アウトバウンド・トランスポートを介して戻されます。レスポンスは、最後にインバウンド・トランスポートに返送され、クライアントに戻されます。

図42-1 サンプル・ソケット・トランスポートのアーキテクチャ

図42-1の説明が続きます
「図42-1 サンプル・ソケット・トランスポートのアーキテクチャ」の説明

42.1.3 構成のプロパティ

図42-2に、トランスポート・エンドポイントの構成のプロパティを示します。これらのプロパティは、スキーマ・ファイルSocketTransport.xsdで構成されています。このファイルの場所の詳細は、42.2項「サンプルの場所とディレクトリ構造」を参照してください。このファイルを使用すると、SDKの共通のスキーマに定義されている、基本的なプロパティ・セットを拡張できます。各プロパティは、SocketTransport.xsdファイルを参照してください。


ヒント:

これらの構成のプロパティの詳細は、39.3.4項「4. トランスポート固有のアーティファクトの定義」を参照してください。

図42-2 SocketEndpointConfigurationのプロパティ

図42-2の説明が続きます
「図42-2 SocketEndpointConfigurationのプロパティ」の説明

また、図42-3に示すように、SocketTransport.xsdファイルには、リクエスト/レスポンス・ヘッダーおよびメタデータのプロパティが含まれています。各プロパティの詳細は、SocketTransport.xsdファイルを参照してください。

図42-3 リクエスト/レスポンス・ヘッダーおよびメタデータの構成

図42-3の説明が続きます
「図42-3 リクエスト/レスポンス・ヘッダーおよびメタデータの構成」の説明

42.2 サンプルの場所とディレクトリ構造

サンプル・ソケット・トランスポート・プロバイダはOracle Service Busにインストールされ、OSB_ORACLE_HOME/samples/servicebus/sample-transportディレクトリにあります。

ここでは、サンプル・プロジェクトのいくつかの重要なフォルダについて簡単に説明します。このディレクトリ構造を、カスタム・トランスポート・プロ売亜dを開発する際のモデルとして使用できます。

表42-1に、重要なサンプル・トランスポート・ディレクトリを示して、簡単に説明します。

表42-1 サンプル・トランスポート・プロバイダの重要なディレクトリ

ディレクトリ 説明

build

サンプル・ソケット・トランスポートをビルドするときに作成されます。Oracle Service Busで使用するビルド化およびパッケージ化されたトランスポートを含みます。

eclipse

Eclipse環境にサンプル・トランスポートを追加するために必要なplugin.xmlファイルを含みます。

l10n

国際化のための次のファイルを含みます。

SocketTransportMessages.xml – Oracle Service Busコンソールに表示されるテキスト・メッセージのための構成ファイルです。

SocketTransportTextMessages.xml

META-INF

次のアプリケーション・デプロイメント記述子ファイルを含みます。

application.xml – J2EEアプリケーション記述子ファイル

weblogic-application.xml – WebLogicアプリケーション記述子ファイル

resources

SocketConfig.xml - トランスポートSDKが使用する、ソケット・トランスポート・プロバイダの構成です。

トランスポートのサンプル・ヘルプ・ファイル。

schemas

このトランスポート用に定義されている、次の関連スキーマを含みます。

SocketTransport.xsd – ソケットのエンドポイント・リクエスト/レスポンスのメタデータ/ヘッダーを記述します。

src

サンプル・トランスポートのソース・ツリー

test

(非表示)次のテスト・ファイルのディレクトリ。

src - テスト・サーバーとクライアントのソース・ツリー

webapp

サンプル・トランスポート・ヘルプWebアプリケーションで必要なデプロイメント記述子を含みます。


次のAntビルド・ファイルも、sample-transportディレクトリに格納されています。

42.3 サンプルのビルドとデプロイ

この章では、サンプル・トランスポート・プロバイダをビルドおよびデプロイする方法について説明します。

42.3.1 環境の設定

次の手順を実行して、サンプルをビルドするための環境を設定します。

  1. 新しいドメインを作成するか、Oracle Service Busと共にインストールされている、構成済みのドメインの1つを使用します。

  2. 次のスクリプトを実行して、ドメイン環境を設定します。

    DOMAIN_HOME/bin/setDomainEnv.cmd (UNIXシステムではsetDomainEnv.sh)

42.3.2 トランスポートのビルド

ソケット・トランスポートをビルドするには、次の操作を行います。

  1. コマンド・ウィンドウで、次のサンプル・ホーム・ディレクトリに移動します。

    OSB_ORACLE_HOME/samples/servicebus/sample-transport

  2. コマンドant buildを実行します。このコマンドにより、OSB_ORACLE_HOME/samples/servicebus/sample-transport/buildのソース・ファイルがコンパイルされます。

  3. ビルドが正常に終了したら、コマンドant stageを実行します。このコマンドでは次の処理が行われます。

    • sock_transport.ear sock_transport.jarがOSB_ORACLE_HOME/lib/transportsにコピーされます。

    • OSB_ORACLE_HOME/eclipse/plugins com.bea.alsb.transports.socket_versionが作成され、ソケット・サンプルがプラグインとしてEclipseに登録されます。

42.3.3 サンプル・トランスポート・プロバイダのデプロイ

サーバーにサンプル・トランスポート・プロバイダをデプロイするには、次を行います:

  1. 次の変数をsample-transport/build.propertiesに設定します。

    wls.hostname
    
    wls.port
    
    wls.username
    
    wls.password
    
    wls.server.name
    
  2. 次のコマンドを実行して、トランスポート・プロバイダをサーバーにデプロイします。

    ant deploy
    

42.4 ソケット・サーバーの起動とテスト

サンプル・プロジェクトには、簡単なソケット・サーバーと、サーバーをテストするためのクライアントが含まれています。このソケット・サーバーを使用して、ソケット・トランスポート・プロバイダをテストします。

ここででは次のトピックについて説明します。

42.4.1 ソケット・サーバーの起動

次のコマンドを実行して、指定したポートでリスニングしてメッセージを送受信するサーバー・ソケットである、外部サービスを起動します。

java -classpath .\test\build\test-client.jar -Dfile-encoding=utf-8 -Drequest-encoding=utf-8 com.bea.alsb.transports.sample.test.TestServer <port> <message-file-location>

説明:

  • port - ServerSocketがリスニングするポート番号であり、ビジネス・サービスのポート番号です。

  • message-file-location - (オプション)ビジネス・サービスへのレスポンスとして送信されるメッセージ・ファイルの場所です。

  • file-encoding - ファイルのエンコーディングを指定するシステム・プロパティです(デフォルト値はutf-8)。

  • request-encoding - ソケット・ビジネス・サービスが送信する、リクエストのエンコーディングです(デフォルト値はutf-8)。

42.4.2 ソケット・トランスポートのテスト

次のコマンドを実行して、構成済みのソケット・プロキシ・サービスのクライアントである、サービスを起動します。Oracle 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 - Oracle Service Busサーバーのホスト名です。

  • port – プロキシ・サービスがリスニングするポート番号です。

  • thread-ct - Oracle Service Busにメッセージを送信できるクライアントの数です。

  • message-file-location - (オプション)ビジネス・サービスへのレスポンスとして送信されるメッセージ・ファイルの場所です。

  • file-encoding - ファイルのエンコーディングを指定するオプション引数です(デフォルト値はutf-8)。

  • response-encoding - ソケット・プロキシ・サービスから受信したレスポンスのエンコーディングです(デフォルト値はutf-8)。

42.5 ソケット・トランスポート・サンプルの構成

サンプルは、テスト・サーバーとテスト・クライアントで構成されています。クライアントは、サーバーにメッセージを送信します。メッセージを受信および処理するために、Oracle Service Busを構成します。

この項では、以下のタスクについて説明します。

42.5.1 新しいプロジェクトの作成

新しいプロジェクトを作成するには、次のようにします。

  1. Oracle Service Busコンソールを起動します。

  2. 「プロジェクト・エクスプローラ」を開きます。

  3. チェンジ・センターで「編集」をクリックします。

  4. 「プロジェクト」パネルで、「新しいプロジェクト名の入力」フィールドにSocketTestと入力します。

  5. 「プロジェクトの追加」をクリックします。プロジェクト表に、新しいプロジェクトが表示されます。

42.5.2 ビジネス・サービスの作成

サーバーと通信するために、ビジネス・サービスを作成します。

  1. プロジェクト・テーブルの「SocketTest」プロジェクト名をクリックします。「SocketTest」パネルが表示されます。

  2. サービスの作成メニューで「ビジネス・サービス」を選択します。「全般的な構成」パネルが表示されます。

  3. 「全般的な構成」パネルで、「サービス名」フィールドにSocketBSと入力します。

  4. 「サービス・タイプ」リストで「任意のXMLサービス」が選択されていることを確認し、「次へ」をクリックします。

  5. 図39-1に示すように、「プロトコル」メニューでsocketを選択します。

  6. 「エンドポイントURI」フィールドにtcp://localhost:7031と入力し、「追加」をクリックします。

  7. 「次へ」をクリックします。

  8. 次のパネルでデフォルトを受け入れて、「次へ」をクリックします。

  9. 「サマリー」パネルを確認してから「保存」をクリックします。

  10. チェンジ・センターで「アクティブ化」をクリックします。

42.5.3 プロキシ・サービスの作成

この項では、プロキシ・サービスを作成します。

  1. 「リソースの作成」メニューで「プロキシ・サービス」を選択します。

  2. 「全般的な構成」パネルで、「サービス名」フィールドにSocketProxyと入力します。

  3. 「サービス・タイプ」リストで「任意のXMLサービス」が選択されていることを確認し、「次へ」をクリックします。

  4. 「プロトコル」メニューでsocketを選択します。

  5. 「エンドポイントURI」フィールドにtcp://7032と入力し、「次へ」をクリックします。

  6. 次のパネルでデフォルトを受け入れて、「次へ」をクリックします。

  7. 「サマリー」パネルを確認してから「保存」をクリックします。

  8. チェンジ・センターで「アクティブ化」をクリックします。

  9. 「発行」をクリックします。

42.5.4 パイプラインの編集

ビジネス・サービスとプロキシ・サービスを定義したので、受信メッセージをビジネス・サービスにルーティングできるように、パイプラインを編集します。

パイプラインを編集するには:

  1. チェンジ・センターで「作成」をクリックします。

  2. 図42-4に示すように、「リソース」セクションの「SocketProxy」行で「メッセージ・フローの表示」アイコンをクリックします。

    図42-4 メッセージ・フロー・アイコンの選択

    図42-4の説明が続きます
    「図42-4 メッセージ・フロー・アイコンの選択」の説明

  3. 図42-5に示すように、メッセージ・フローの編集ウィンドウで「SocketProxy」アイコンをクリックし、メニューから「ルートの追加」を選択します。

    図42-5 メッセージ・フローの編集

    図42-5の説明が続きます
    「図42-5 メッセージ・フローの編集」の説明

  4. RouteNode1アイコンをクリックし、メニューから「ルートの編集」を選択します。

  5. ステージ構成の編集ウィンドウで「アクションの追加」をクリックします。

  6. 図42-6に示すように、ルート・ノード・ウィンドウで「アクションの追加」をクリックし、メニューから「通信」「ルーティング」を選択します。

    図42-6 アクションの追加

    図42-6の説明が続きます
    「図42-6 アクションの追加」の説明

  7. 次のパネルで「<サービス>」を選択します。

  8. サービスの選択ウィンドウで、リストからSocketBSを選択し、「発行」をクリックします。

  9. ステージ構成の編集ウィンドウで「保存」をクリックします。

  10. 必要に応じて、RouteNode1アイコンをクリックし、名前をSocketBSに変更します。

  11. 「保存」をクリックします。

  12. チェンジ・センターで「アクティブ化」をクリックし、「発行」をクリックします。

42.6 ソケット・トランスポート・プロバイダのテスト

この項では、Oracle Service Busコンソールを使用してトランスポート・プロバイダをテストします。

  1. 42.4.1項「ソケット・サーバーの起動」で説明したように、テスト・サーバーを起動します。

  2. プロジェクト・エクスプローラで「SocketTest」をクリックします。

  3. 図42-7に示すように、「リソース」表の「SocketProxy」行で「テスト・コンソールの起動」アイコンをクリックします。

    図42-7 テスト・コンソールの起動

    図42-7の説明が続きます
    「図42-7 テスト・コンソールの起動」の説明

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

    図42-8 テスト・コンソール

    図42-8の説明が続きます
    「図42-8 テスト・コンソール」の説明

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

    図42-9 成功したテスト

    図42-9の説明が続きます
    「図42-9 成功したテスト」の説明

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