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

B2B Integration サンプルの使い方

 前 次 目次 PDFで表示  

RosettaNet 2.0 Security サンプル

RosettaNet 2.0 Security サンプルは、WebLogic Integration を使用して RosettaNet 2.0 PIP 3A2 および PIP 0A1 をワークフローで実装する方法を示します。特に、RosettaNet 2.0 PIP 3A2 標準に準拠するビジネス メッセージを交換する 2 社のトレーディング パートナを示しています。

この章のトピックは以下のとおりです。

 


RosettaNet 2.0 Security サンプルの概要

RosettaNet は、オープンな電子商取引プロセス標準の作成、実装および推進を行う非営利の連合体です。RosettaNet Partner Interface Process(PIP)は、トレーディング パートナ間のビジネス プロセスを定義するものです。PIP 3A2 は、トレーディング パートナが製品の価格と在庫に関する情報の要求と提供を行うために使用できる、自動化されたプロセスです。

RosettaNet 2.0 Security サンプルでは、PIP 3A2 の実装を例示しています。また、障害通知送信メカニズムを提供する PIP 0A1 も実装します。最後に、このサンプルは RosettaNet 2.0 をサポートするために必要な WebLogic Integration のセキュリティ機能である、双方向 SSL 認証、デジタル署名、データ暗号化、および否認防止性を例示します。

WebLogic Integration での RosettaNet の実装の詳細については、『B2B Integration RosettaNet の実装』を参照してください。WebLogic Integration の B2B Integration 機能でのセキュリティの使用の詳細については、『B2B Integration セキュリティの実装』を参照してください。

RosettaNet は、このサンプルで使用されている RosettaNet 2.0 PIP の理解に役立つ数点のマニュアルを公開しています。次のマニュアルおよび zip ファイルは、RosettaNet の Web サイト(http://www.rosettanet.org)の「Standards」セクションからダウンロード可能です。

 


RosettaNet 2.0 Security サンプルの概要

以下のタスク順序では、このサンプルの PIP 3A2 トレーディング パートナ間通信の高度な概要を示します。

  1. 顧客トレーディング パートナは、サプライヤ トレーディング パートナに価格および在庫の要求を送信します。このような要求を送信するのはたとえば、サプライヤがある個数のメモリ チップをある特定の価格で提供できるかどうかを調べようとしているコンピュータ メーカー(顧客トレーディング パートナ)などです。次の図は、送信されている要求を示します。図中のエンベロープは、価格と在庫の要求を含む XML メッセージを表します。


     

  2. サプライヤは、価格および在庫の要求を受信したという確認応答を顧客に送信します。


     

  3. サプライヤは、要求された商品を販売するにあたっての個数と価格を含む応答を顧客に送信します。


     

  4. 顧客は、価格および在庫に関する返信を受信したことを示す受領確認書をサプライヤに送信します。


     

 


RosettaNet 2.0 Security サンプルを実行する前に

RosettaNet 2.0 Security サンプルを実行する前に、次の手順を実行します。

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

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

 


RosettaNet 2.0 Security サンプルの実行

このサンプルについては、いくつかの制限があります。それらの詳細および回避策については、『WebLogic Integration リリース ノート』、「確認済みの制限」にある 2 つの変更要求、CR063709 と CR075768 を参照してください。

WebLogic Integration で提供している他の B2B サンプルとは異なり、RosettaNet 2.0 Security サンプルはサンプル ドメインでは実行されず、またサンプル起動ページからも起動されません。

RosettaNet 2.0 Security サンプルを実行するには、次の手順を実行します。

  1. 次の例に示すように、適切なコマンドを入力して WebLogic Integration のホーム ディレクトリ(WebLobic Integration をインストールしたディレクトリ)に移動します。

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

  3. プラットフォームに対応したコマンドを入力し、RosettaNet 2.0 Security サンプルの bin ディレクトリに移動します。

  4. pointbase オプションを指定して RunRN2Security スクリプトを実行します。
    RunRN2Security pointbase

    WebLogic Server のインスタンスが両方とも起動を終了するまで待機し、次の手順に進みます。RunRN2Security スクリプトは、バックグラウンド プロセスとして、WebLogic Server の 2 つのインスタンスを開始します。サーバの起動が完了すると、WebLogic Server のコンソール ウィンドウに次のログ メッセージが表示されます。

    RunRN2Security execution successful

    警告: 他の B2B サンプルと異なり、RosettaNet 2.0 Security サンプルでは、サンプル ドメインで使用されるデータベースの切り替えを行う WebLogic Integration データベース ウィザードを使用できません。

  5. ブラウザを起動します。次の URL を入力して、QPASubmit JSP ページをロードします。
    http://localhost:7501/QPASubmit.jsp

    [QPA (RosettaNet 2.0 PIP 3A2) Submission] ページが表示されます。


     

  6. [Global Product ID]、[Product Unit Price]、および [Product Quantity] の各値を選択します。[Send QPA] をクリックします。

    次のような送信と応答のステータス情報が、ブラウザに表示されます。


     

  7. この時点でワークフローの要点に記載の手順を実行する場合は、WebLogic Server のインスタンスを両方とも実行中の状態にします。

    この時点で、ワークフローの要点に記載の手順を実行しない場合は、ブラウザを終了し、次のプロジージャによって WebLogic Server のインスタンスを両方ともシャットダウンします。

    StopRN2Security

 


RosettaNet 2.0 Security サンプルにおけるワークフロー

RosettaNet 2.0 Security サンプルは、WebLogic Integration を使用して RosettaNet 2.0 PIP 3A2 および PIP 0A1 をワークフローで実装する方法を示します。パブリック プロセスは、トレーディング パートナ間の正式な契約です。この契約には、トレーディング パートナ間のメッセージ交換のコンテンツとセマンティクスが規定されます。2 つのパブリック ワークフロー(PIP3A2_Customer_RN2 および PIP3A2_Supplier_ RN2)は、PIP 3A2 標準を WebLogic Integration 上で実装したものです。プライベート プロセスは、特定のビジネス組織に固有であり、その組織の外部からは見えません。PIP 3A2 を実装するパブリック ワークフローは、図4-1 では網掛けされた長方形として表現されています。プライベート プロセスは、網掛けされていない長方形で表しています。図4-1

次の図は、RosettaNet における各種セキュリティ サンプル ワークフロー間の、さまざまな会話を示します。

図4-1 RosettaNet 2.0 Security ワークフロー間の会話


 

注意: 図中におけるロジックの流れは、エラーが生じない場合に実行されるワークフローのタスク順序のみを示します。このタスク順序には、エラー処理ロジックは含まれません。たとえば、障害通知を発行するワークフローである PIP 0A1 は、図示されていません。

実行フローを開始する前に、WebLogic Server の 2 つのインスタンスを起動する必要があります。1 つは顧客用、もう 1 つはサプライヤ用です。このサンプルの実行フローは、図4-1 の左上隅にある「ブラウザ」の四角形から開始されます。次の手順は、実行フローの一部をトレースしています。

  1. 実行フローを開始するには、ブラウザを起動し、QPASubmit.jspページをロードします。

  2. 次に、JSP ページで各値を入力し、[Submit] を選択します。

  3. [Submit] を選択すると、XML ドキュメントが WebLogic Integration の XML イベントとして送信されます。

  4. このイベントは、Customer_PrivateWF ワークフローをトリガします。

  5. Customer_PrivateWF ワークフローの最初の項目が実行されます。

  6. その結果、PIP3A2_Cusotmer_RN2 ワークフローの最初のアクション(価格および在庫の要求を伴うビジネス メッセージの送信)が実行されます。

実行フローの続きについては、図4-1 を参照してください。

ワークフローの要点

サンプルのプライベート ワークフローおよびパブリック ワークフローを全体的に調べるには、次の手順を実行します。

  1. 次の例に示すように、プラットフォームに合わせて適切なコマンドを入力し、WebLogic Integration のホーム ディレクトリ(WebLobic Integration をインストールしたディレクトリ)に移動します。

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

  3. RosettaNet 2.0 Security サンプルの実行で説明した RunRN2Security スクリプトを実行して WebLogic Server のインスタンスを 2 つ起動している場合のみ、この手順を実行します。WebLogic Server の 2 つのインスタンスを起動するには、次の例のように使用しているプラットフォームおよびデータベースに対応したプロシージャを実行します。

  4. 以下の各プラットフォームに対応した手順を実行して WebLogic Integration Studio を起動します。

  5. 次の情報を使用して WebLogic Integration Studio にログインします。

    WebLogic Integration Studio のメイン ウィンドウが表示されます。

  6. 左ペインの [オーガニゼーション] の下にあるドロップダウン リストから、[ORG1] を選択します。


     

  7. 左ペインの [テンプレート] フォルダを展開します。このサンプルのテンプレートがすべてリストされます。


     

  8. 左ペインの [Customer_PrivateWF] フォルダを展開します。

  9. Customer_PrivateWF ワークフローのインスタンスを開いて表示するには、次の手順を実行します。

    1. Customer_PrivateWF フォルダ内の、日付と時刻が名前になったフォルダを右クリックします。メニューが表示されます。


       

    2. [開く] を選択します。

    Customer_PrivateWF ワークフローを構成する開始ノード、タスク ノード、分岐ノード、およびイベント ノードが表示されます。

  10. [パブリック ワークフローを開始] タスクをダブルクリックします。[タスクのプロパティ] ウィンドウが表示されます。


     

  11. [アクティブ時] タブを選択します。


     

    [パブリック ワークフローの開始] タスクを構成するアクションが表示されます。

  12. [ワークフロー変数 "PIPInput" XML 構造を設定] をダブルクリックし、[ワークフロー変数を設定] ウィンドウを表示します。このウィンドウは、PIPInput XML ワークフロー変数がどのように作成されるかを示します。このサンプルでは、PIPInput は作成済みです。この手順では、これを表示する方法を示します。PIPInput は、必須の WebLogic Integration RosettaNet Input ワークフロー変数です。これをプライベート ワークフローに設定しないと、パブリック ワークフローを呼び出せません。この変数のフォーマットは、実装されている PIP メッセージの RosettaNet DTD に準拠する XML です。このサンプルでは、XML は 3A2PriceAndAvailabilityQueryMessageGuidline.dtd に準拠している必要があります。この、RosettaNet によって提供される DTD は、顧客トレーディング パートナがサプライヤ トレーディング パートナに渡す最初のメッセージのコンテンツを定義します。RosettaNet 2.0 Security サンプルの概要のステップ 1 を参照してください。

    このサンプルでは、プライベート Customer_PrivateWF ワークフローが PIPInput ワークフロー変数の内容を設定し、PIP3A2_Customer_RN2 ワークフローを呼び出します。PIP3A2_Customer_RN2 ワークフローは、PIPInput 変数の内容を使用して XML ビジネス メッセージを作成します。このメッセージは、Send Business Message Action が呼び出されると PIP3A2_Supplier_RN2 ワークフローに送信されます。RosettaNet テンプレート変数の詳細なリストについては、『B2B Integration RosettaNet の実装』の「RosettaNet でのワークフローの使用」の「RosettaNet テンプレート変数」を参照してください。

  13. XML ツリー内の次の下位ノードを展開します。

    2 つの重要なノードの値は、右ペインで設定します。

    注意: この手順は、PIPInput 変数に値を入れる方法の 1 つに過ぎません。PIPInput 変数には、ファイルから読み込んだり、XML ドキュメントのコンテンツ全体を渡すことによっても、値を入れることができます。

  14. [ワークフロー変数を設定] ウィンドウで [取消し] をクリックします。

  15. [タスクのプロパティ] ウィンドウで、[アクティブ時] タブの [パブリック ワークフローの開始] をダブルクリックします。


     

    [パブリック ワークフローの開始] ウィンドウが表示されます。


     

    このウィンドウでは、Start the Public Workflow アクションに対しパラメータが次のように定義されています。

    加えて、[パーティ] フィールドでは [TP 名](トレーディング パートナ名)として [RNBuyer] と [RNSeller] の 2 つが設定されています。WebLogic Integration では、会話名、会話バージョン、会話ロール、およびパーティとして指定されたトレーディング パートナにより、あるアクションに使用する適切なコラボレーション アグリーメントを見つけます。

    前述のアクションについては、WebLogic Integration はリポジトリ内のアクティブなコラボレーション アグリーメントから、名前が 3A2 でバージョンが 1.3 、ロールが顧客である会話を指定する、RNBuyer および RNSeller という名前の 2 つのトレーディング パートナ間におけるコラボレーション アグリーメントを探します。以下の、rn2_peer1_sec.xml ファイルからの抜粋では、前述の Start Public Workflow アクションの基準に合致するコラボレーション アグリーメントを定義しています。

コード リスト 4-1 インポート リポジトリ データ ファイル内のコラボレーション アグリーメント

<collaboration-agreement
name="RN2|9.9|RosettaNet2|100"
global-identifier="RN2|9.9|RosettaNet2|RNBuyer|RNSeller|102"
version="1.0"
status="ENABLED"
conversation-definition-name="3A2"
conversation-definition-version="1.3">
<party
trading-partner-name="RNBuyer"
party-identifier-name="RNBuyerPID"
delivery-channel-name="RNBuyerChannel"
role-name="Customer"/>
<party
trading-partner-name="RNSeller"
party-identifier-name="RNSellerPID"
delivery-channel-name="RNSellerChannel"
role-name="Product Supplier"/>
</collaboration-agreement>

コラボレーション アグリーメントは、指定したパーティ間で使用される会話定義の名前とバージョンを定義します。リスト4-1 のコラボレーション アグリーメントは、顧客のロールを持つ RNBuyer トレーディング パートナと製品サプライヤのロールを持つ RNSeller トレーディング パートナの間における 会話定義名 3A2 と会話定義バージョン 1.3 の使用を指定します。

WebLogic Integration は会話定義の名前とバージョンを、割り当てられたロールと共に使用して、開始するワークフロー テンプレートを決定できます。リスト4-2 の会話定義では、バージョン番号が 1.3 でトレーディング パートナが顧客ロールを持つ、3A2 という名前の会話に対して、PIP3A2_Customer_RN2 ワークフロー テンプレートのインスタンスが開始されることを指定しています。

コード リスト 4-2 インポート リポジトリ データ ファイル内の会話定義

    <conversation-definition
name="3A2"
version="1.3"
business-protocol-name="RosettaNet"
protocol-version="2.0">
<role
name="Customer"
wlpi-template="PIP3A2_Customer_RN2">
<process-implementation wlpi-org="ORG1"/>
</role>
<role
name="Product Supplier"
wlpi-template="PIP3A2_Supplier_RN2">
<process-implementation wlpi-org="ORG1"/>
</role>
</conversation-definition>

したがって、このサンプルでは、Start Public Workflow アクションが PIP3A2_Customer_RN2 ワークフローをトリガします。

Start Public Workflow で定義された会話名とバージョン番号は、PIP 3A2 について RosettaNet で定義された PIP 名およびバージョンです。これらのパラメータは、ロールおよびトレーディング パートナに指定された値と共に、リポジトリに登録された会話名、会話バージョン、ロール、およびトレーディング パートナに対応しています。

  • [ワークフロー] タブを選択します。


     

    パブリック PIP ワークフローとの間で受け渡しされるテンプレート変数が、[ワークフロー] タブで定義されています。

    このサンプルでは、テンプレート変数 fromDUNS は Start Public Workflow アクションの Customer_PrivateWF によって設定されます。この変数は Customer_PrivateWF ワークフローによって PIP3A2_Customer_RN2 が呼び出されると PIP3A2_Customer_RN2 ワークフローに渡されます。RosettaNet 2.0 のテンプレート変数には、必須のものと、省略可能なものとがあります。

    送信側の DUNS 番号を定義する fromDUNS 変数は必須です。DUNS 番号は、Dun & Bradstreet 社がビジネス エンティティに割り当てた 9 桁の数字による一意の識別子です。fromDUNS 変数で指定された DUNS 番号は、そのトレーディング パートナのリポジトリで定義されたビジネス ID に一致している必要があります。RosettaNet テンプレート変数の詳細なリストについては、『B2B Integration RosettaNet の実装』の「RosettaNetでのワークフローの使用」の「RosettaNet テンプレート変数」を参照してください。

    PIPOutput は受信したメッセージのサービス コンテンツを含む必須のテンプレート変数です。この変数は PIP3A2_Customer_RN2 ワークフローにより設定されます。また PIP3A2_Customer_RN2 ワークフローが、呼び出し元のワークフロー Customer_PrivateWF に制御を返すと、Customer_PrivateWF ワークフローに渡されます。

  • [パブリック ワークフローの開始] ウィンドウで [取消し] をクリックします。

  • [タスクのプロパティ] ウィンドウで [取消し] をクリックします。

  • Studio のメイン ウィンドウの左ペインで、[PIP3A2_Customer_RN2] フォルダを展開します。PIP3A2_Customer_RN2 ワークフローは、Customer_PrivateWF ワークフローから呼び出されます。


     

  • PIP3A2_Customer_RN2 ワークフローのプロパティを表示するには、[PIP3A2_Customer_RN2] フォルダ内の日付と時刻が名前になったフォルダを右クリックします。メニューが表示されます。[プロパティ] を選択します。

  • [Template Definition PIP3A2_Customer_RN2] ダイアログ ボックスが表示されます。

  • [B2B Integration] タブを選択します。

    [会話] タブ([B2B Integration] タブ内)が表示されます。


     

    このタブ上で入力されるデータは、指定した会話およびロールで [パブリック ワークフローを開始] アクションが呼び出されると PIP3A2_Customer_RN2 ワークフローが開始されることを指定します。

    会話名、バージョン、およびロールを、このウィンドウで定義します。

  • [OK] をクリックします。

  • [Workflow Design Customer_PrivateWF] ウィンドウを閉じます。[ワークフロー設計] ウィンドウの右上の [X] をクリックします。

  • PIP3A2_Customer_RN2 ワークフロー インスタンスを開いて表示するには、次の手順を実行します。

    1. PIP3A2_Customer_RN2 フォルダ内の、日付と時刻が名前になったフォルダを右クリックします。メニューが表示されます。


       

    2. [開く] を選択します。

    PIP3A2_Customer_RN2 ワークフローを構成する開始ノード、タスク ノード、分岐ノード、およびイベント ノードが表示されます。

    [開始] ノードは、このウィンドウで実行される最初のタスクです。


     

  • [メッセージ送信] タスクをダブルクリックします。[タスクのプロパティ] ウィンドウが表示されます。

  • [アクティブ時] タブを選択します。


     

    [メッセージ送信] タスクを構成するアクションが、[アクティブ時] タブにリストされます。

  • [タスクのプロパティ] ウィンドウの左ペインで、[ビジネス メッセージの送信] アクションをダブルクリックします。このアクションは、PIPInput XML ワークフロー変数の内容に基づく XML ビジネス メッセージを送信します。この変数は事前にプライベート Customer_PrivateWF ワークフローで定義済みです。

    注意: この手順は、RosettaNet 2.0 Security サンプルの概要のステップ 1 に相当します。

  • WebLogic Integration Studio を閉じます。Worklist のメニュー バーから、[ファイル|終了] を選択します。
  •  

    ページの先頭 前 次