BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

B2B Integration サンプルの使い方

 前 次 目次 PDFで表示  

Hello Partner サンプル(非推奨)

Hello Partner サンプルでは、デフォルト メッセージング プロトコルである XOCP を使用した通信が示されています。この章では、以下のトピックについて説明します。

注意: Hello Partner サンプルは、XOCP プロトコルに基づいていますが、このプロトコルは、このリリースの WebLogic Integration から非推奨になっています。XOCP に代わる機能については、『WebLogic Integration リリース ノート』を参照してください。

 


Hello Partner サンプルの概要

Hello Partner サンプルでは、WebLogic Integration を使用した 2 つのトレーディング パートナ間のビジネス通信を示します。

サンプルの内容

Hello Partner サンプルでは、2 つのトレーディング パートナが XOCP プロトコルを使用してビジネス メッセージを送信する方法が示されています。各トレーディング パートナについて以下が示されます。

このサンプルでは、トレーディング パートナのメッセージ トラフィックを処理するにはどの方法が望ましいかについても示されています。パブリック プロセスはトレーディング パートナのメッセージ トラフィックの管理に使用し、プライベート プロセスはメッセージの作成、メッセージの処理、および外部アプリケーションとのリンクに使用します。

Hello Partner サンプルのシナリオのロジック

Hello Partner サンプルのシナリオでは、図2-1 に示すように、要求側と応答側の 2 つのトレーディング パートナが設定されています。次の図に、別々の Hello Partner ワークフロー間での上位レベルの会話を示します。

図2-1 Hello Partner ワークフロー間の会話


 

注意: 上の図では、パブリック ワークフローがグレーで網掛けされています。

このシナリオの主要なイベントをまとめると次のようになります。

  1. RunSamples スクリプトが起動され、次の結果が得られます。

    1. WebLogic Server のサンプル インスタンスが開始されます。

    2. ブラウザが開き、サンプル起動ページが表示されます。

    3. サンプル起動ページの [Hello Partner] リンクをクリックすると、Hello Partner のメイン ページが表示されます。

  2. メニューから整数の値を選択します。[サンプルの開始] リンクを選択します。その結果、Hello Partner の メイン ページから HelloPartnerServlet に HTTP 要求が送信されます。HTTP 要求には、選択した整数値が格納されています。

  3. HelloPartnerServlet によって、整数値を格納した JMS XML イベントが送信されます。

  4. JMS XML イベントによって、RequestorPrivate ワークフローの開始がトリガされます。RequestorPrivate ワークフローは MultiplyRequestXML ワークフロー変数を作成し、MultiplyRequestXML ワークフロー変数を渡して RequestorPublic ワークフローを開始します。その後は、応答側からの応答を待ちます。

  5. ReplierPublic ワークフローは、メッセージを受信して MultiplyRequestXML ワークフロー変数から整数値を抽出します。つづいて、これらの値を MultiplyInputsXML ワークフロー変数に格納し、内部 XML イベントをポストします。

  6. ReplierPrivate ワークフローは、上記の内部 XML イベントによってトリガされます。ReplierPrivate ワークフローは、2 つの整数を乗算した結果を MultiplyOutputsXML ワークフロー変数に格納し、この変数と共に内部 XML イベントをポストします。

  7. 上記の内部 XML イベントを待っていた ReplierPublic ワークフローは、MultiplyReplyMessage 入力メッセージ ワークフロー変数を作成し、ビジネス メッセージと共にそれを送信します。

  8. 上記のビジネス メッセージを待っていた RequestPublic ワークフローは、MultiplyReplyMessage ワークフロー変数から値を抽出し、MultiplyReplyXML ワークフロー変数を作成して内部 XML イベントと共にポストします。

  9. 上記の内部 XML イベントを待っていた RequestPrivate ワークフローは、ResultXMLForJSP ワークフロー変数を作成し、外部 XML イベントと共にポストします。

  10. HelloPartnerServlet は外部 XML イベントを受信し、その XML から 2 つの整数を乗算した結果を抽出してブラウザに表示します。

 


Hello Partner サンプルを実行する前に

Hello Partner サンプルを実行する前に、次の手順を実行します。

  1. サンプルの実行前の作業に記載の手順に従います。

  2. サンプル WebLogic Server への接続が妨げられないようにブラウザのプロキシ設定を確認します。Web ブラウザ コンフィグレーションの要件の詳細については、『WebLogic Integration の起動、停止およびカスタマイズ』の「WebLogic Integration 管理ツールと設計ツール」の「Web ブラウザ コンフィグレーションの要件」を参照してください。

 


Hello Partner サンプルの実行

Hello Partner サンプルを実行するには、次の作業が必要です。

  1. WLI_HOME(WebLogic Integration をインストールしたディレクトリ)に移動します。
    cd WLI_HOME

  2. WebLogic Integration の上位レベルの環境変数を設定するには、お使いのプラットフォームに合った setenv スクリプトを実行します。

  3. プラットフォームに合わせて適切な手順を実行し、RunSamples スクリプトを起動します。

    警告: UNIX システムの場合、netscape 実行ファイルが入ったディレクトリが PATH 環境変数に含まれている必要があります。環境変数に含まれていない場合は、RunSamples スクリプトの実行時にサンプル起動ページが表示されません。サンプル起動ページは、現在 RunSamples スクリプトが実行されているマシンで Netscape ブラウザを起動して、次の URL を入力すると起動されます。
    http://localhost:7001/index.html

  4. RunSamples スクリプトのコンフィグレーション セクションが実行済みであることが検知されると、次のプロンプトが表示されます。
    The WebLogic Integration repository has already been
    created and populated, possibly from a previous run
    of this RunSamples script. Do you want to destroy all the
    current data in the repository and create and populate the
    WebLogic Integration repository, again? Y for Yes, N for No

    この質問に N と入力すると、リポジトリの作成および格納を行う手順が省略され、WebLogic Server のサンプル インスタンスを起動する手順のみが実行されます。

    この質問に Y と入力すると、リポジトリの作成および格納が改めて行われ、その後で WebLogic Server のサンプル インスタンスを起動する手順が実行されます。Y と入力した場合、その時点でリポジトリに格納されている全データが破棄され、リポジトリにサンプル データが再ロードされます。現在のサンプル データが変更または削除され、新規または未変更のサンプル データをリポジトリに格納する場合にのみ、Y を入力してください。

    これで、RunSamples スクリプトは WebLogic Server のインスタンスをバックグラウンド プロセスとして開始し、サンプル起動ページが表示されます。

    図2-2 サンプル起動ページ


     

  5. [Hello Partner] リンクをクリックすると、サンプル起動ページの左ペインの [サンプル アプリケーション] の下にリストが表示されます。右ペインに Hello Partner サンプルが表示されます。

    図2-3 Hello Partner サンプル起動ページ


     

  6. ラジオ ボタンで、2 つの番号を選択します。[サンプルの開始] をクリックします。

    図2-4 Hello Partner サンプル結果ページ


     

  7. このとき、さらに多くの B2B サンプルを実行するのであれば、サンプル起動ページを開いたままで、WebLogic Server のインスタンスの実行を続行します。

    この時点でこれ以上の B2B サンプルを実行しない場合は、ブラウザを終了し、プラットフォームに合わせた適切な手順によって WebLogic Server のインスタンスをシャットダウンします。

 


サンプルの仕組み

このサンプルでは、合計 4 つのワークフローを使用します。2 つのパブリック ワークフローは、XOCP メッセージのやりとりの要求側と応答側を管理しています。2 つのプライベート ワークフローのうち、1 つはサーブレットおよび要求側のパブリック ワークフローに接続するため、もう 1 つは応答側の応答データを作成するためのものです。

以下の節では、このプロセスの概要とそれぞれのワークフローについて詳しく説明します。

交換されるドキュメント

Hello Partner サンプルでは、以下の XML ドキュメントを使用します。

これらのドキュメントの文書型定義(DTD)は、Windows システムの場合、SAMPLES_HOME¥integration¥samples¥common¥dtds ディレクトリに、UNIX システムの場合、SAMPLES_HOME/integration/samples/common/dtds ディレクトリに格納されています。いずれの場合も、SAMPLES_HOME は、WebLogic Platform のサンプル ディレクトリを表しています。

要求側ロールからの要求メッセージ

以下は、要求側から送信される XML メッセージです。メッセージには、乗算される 2 つの数字が格納されています。

<multiply-request>
<integer-one>5</integer-one>
<integer-two>7</integer-two>
</multiply-request>

メッセージは multiply-request.dtd に準拠しています。

応答側ロールからの応答メッセージ

以下は、応答側から送信される XML メッセージです。生成されたメッセージと共に、乗算の結果が格納されています。

<multiply-reply>
<integer-product>35</integer-product>
<note>Dear RequestorPartner: Here is the product of 7 and 5,
from ReplierPartner to RequestorPartner.</note>
</multiply-reply>

メッセージは multiply-reply.dtd に準拠しています。

プライベート ワークフローをトリガするためにサーブレットから JMS 経由で送信される XML メッセージ

以下は、サーブレットが JMS 経由で送信するメッセージです。メッセージを受信すると、要求側のプライベート ワークフローがトリガされます。

<from-multiply-request-jsp-to-workflow light-weight=”false”>
<integer-one>5</integer-one>
<integer-two>7</integer-two>
</from-multiply-request-jsp-to-workflow>
メッセージは from-multiply-request-jsp-to-workflow.dtd に準拠しています。

プライベート ワークフローからサーブレットに JMS 経由で送信される XML メッセージ

以下は、要求側のプライベート ワークフローから JMS 経由でサーブレットに送信されるメッセージです。メッセージには、テキスト メッセージと共に乗算の結果が格納されています。

<from-workflow-to-multiply-request-jsp>
<integer-product>35</integer-product>
<note>Dear RequestorPartner: Here is the product of 7 and 5
from ReplierPartner to RequestorPartner.</note>
</from-workflow-to-multiply-request-jsp>
メッセージは from-workflow-to-multiply-request-jsp.dtd に準拠しています。

応答側パブリック ワークフローから応答側プライベート ワークフローに送信される XML イベント

次の XML イベントには、4 つのパラメータ(乗算の入力値 2 つ、要求側の名前、および応答側の名前)を格納した要求入力メッセージが含まれています。

<multiply-inputs>
<integer-one>5</integer-one>
<integer-two>7</integer-two>
<requestor-name>PartnerRequestor</requestor-name>
<replier-name>PartnerReplier</replier-name>
</multiply-inputs>
メッセージは multiply-inputs.dtd に準拠しています。

応答側プライベート ワークフローから応答側パブリック ワークフローに送信される XML イベント

次の XML イベントには、プライベート ワークフローの応答出力が含まれています。

<multiply-outputs>
<integer-product>35</integer-product>
<note>Dear RequestorPartner: Here is the product of 7 and 5
from ReplierPartner to RequestorPartner.</note>
</multiply-outputs>

メッセージは multiply-outputs.dtd に準拠しています。

要求側プライベート ワークフロー

要求側プライベート ワークフローは、サーブレットから初期要求を受信し、適切なタイプのメッセージを作成してパブリック ワークフローに送信します。応答を受信すると、応答メッセージを処理し、結果をサーブレットに送信します。次の図では、このプロセスをワークフローで示しています。

図2-5 要求側プライベート ワークフロー


 


サーブレットから XML イベントを受信すると、ワークフローがトリガされる。プライベート ワークフローをトリガするためにサーブレットから JMS 経由で送信される XML メッセージで説明したように、XML イベントは <from-multiply-request-jsp-to-workflow> 形式に準拠している。開始ノードでは、XML から変換文字列を抽出し、<multiply-request> ドキュメントを作成してワークフロー変数に格納する。


アクション ノードでは、パブリック ワークフローを開始し、<multiply-request> ドキュメントを格納したワークフロー変数を渡す。


イベント ノードでは、<multiply-reply> ドキュメントを待つ。<multiply-reply> ドキュメントを受信し、変換文字列を抽出する。<from-workflow-to-multiply-request-jsp> ドキュメントを作成し、サーブレットに送信する。


完了ノードでワークフローが終了する。

要求側パブリック ワークフロー

要求側パブリック ワークフローはプライベート ワークフローによって開始されます。要求側パブリック ワークフロー は、プライベート ワークフローからワークフロー変数を受け取ります。次に要求側パブリック ワークフローでは、要求 XML をもとにメッセージを作成し、これを応答側に送信して応答を待ちます。応答メッセージを受信後、応答 XML を抽出し、これをプライベート ワークフローに渡します。次の図に、このプロセスをワークフローで示します。

図2-6 要求側パブリック ワークフロー


 


このワークフローはプライベートワークフローから開始される。プライベート ワークフローは、このワークフローに <multiply-request> ドキュメントを渡す。開始ノードでは、メッセージ文字列を抽出してワークフロー変数に格納する。


アクション ノードでは、XOCP メッセージ内の <multiply-request> ドキュメントを応答側ロールに送信する。トレーディング パートナ名には PartnerReplier を指定する。


イベント ノードでは、応答側からの XOCP 応答メッセージを待つ。メッセージを受信後、<multiply-reply>ドキュメントを抽出してワークフロー変数に格納する。


アクション ノードでは、<multiply-reply> ドキュメントを XML イベントとしてパブリッシュする。


完了ノードでワークフローが終了する。

応答側パブリック ワークフロー

応答側パブリック ワークフローは、要求側メッセージの受信と同時に開始されます。要求側メッセージを受信すると、メッセージから要求 XML を抽出し、これを格納した XML イベントをパブリッシュして応答側プライベート ワークフローを開始します。応答側プライベート ワークフローから XML イベントが返信されたら、応答 XML を含むメッセージを要求側に返信します。次の図では、このプロセスをワークフローで示しています。

図2-7 応答側パブリック ワークフロー


 


ワークフローは <multiply-request> ドキュメントを受信すると同時に開始される。開始ノードでは、メッセージから内容を抽出してワークフロー変数に格納する。ワークフロー変数のフォーマットは <multiply-input> で、<multiply-request> ドキュメント内の値と、メッセージ内の送信側と応答側の名前を使用する。


アクション ノードでは、<multiply-inputs> ドキュメントを XML イベントとしてパブリッシュし、プライベート ワークフローを開始する。


イベント ノードでは、<multiply-outputs> ドキュメントを格納した XML イベントを受信するため応答を待つ。


アクション ノードでは、<multiply-outputs> ドキュメントに基づいて <multiply-reply> ドキュメントを作成する。その結果を XML ワークフロー変数に格納する。


アクション ノードでは、<multiply-reply> ドキュメントを格納したメッセージを XOCP で要求側に送信する。


完了ノードでワークフローが終了する。

応答側プライベート ワークフロー

応答側プライベート ワークフローは、要求 XML を格納した XML イベントを応答側パブリック ワークフローから受信すると同時に開始されます。要求を受信すると、データを処理して XML ドキュメント内に応答を生成し、XML イベントを使用して応答側パブリック ワークフローに応答 XML を返信します。

図2-8 応答側プライベート ワークフロー


 


ワークフローは、<multiply-inputs> 型のドキュメントを格納した XML イベントを受信すると同時に開始される。開始ノードでは、ドキュメントをワークフロー変数に格納する。


このアクション ノードでは、<multiply-inputs> ドキュメントから入力された整数の乗算結果を格納する整数ワークフロー変数を作成する。


このアクション ノードでは、<multiply-outputs> 型のドキュメントをワークフロー XML 変数として作成する。ステップ 2 とステップ 3 の整数ワークフロー変数およびノート ワークフロー変数の値はこのドキュメントに格納される。


このアクション ノードでは、<multiply-reply> ドキュメントを XML イベントとしてパブリッシュする。


完了ノードでワークフローが終了する。

 

ページの先頭 前 次