ナビゲーションをスキップ.

トレーディング パートナのチュートリアル

  前 次 vertical dots separating previous/next from contents/index/pdf 目次  

チュートリアル : RosettaNet ソリューションの構築

このトピックでは、BEA WebLogic Integration でトレーディング パートナ統合に RosettaNet ソリューションを実装する方法について説明します。内容は以下のとおりです。

RosettaNet は、企業がインターネット経由でビジネスを遂行するためのビジネス プロトコルです。RosettaNet の詳細については、http://www.rosettanet.org を参照してください。

 


チュートリアルの目的

このチュートリアルの目的は以下のとおりです。

 


始める前に

ここでは、このチュートリアルを使用する前に実行する必要があるタスクについて説明します。内容は以下のとおりです。

前提条件

このチュートリアルを使用するには、以下が必要です。

参考資料

WebLogic Integration で RosettaNet ソリューションを実装する方法について理解を深めるには、次の資料に目を通してください。

WebLogic Workshop でビジネス プロセスを構築する方法とデータ トランスフォーメーションを作成する方法について学習するには、次のチュートリアルを修了してください。

RosettaNet ビジネス プロトコルの詳細や RosettaNet ソリューションの実装方法については、以下の情報を参照してください。

 


RosettaNet W3C XSD スキーマの取得に関する注意事項

選択した PIP の RosettaNet W3C XSD スキーマは、RosettaNet Self-Test Kit (STK) に含まれています。これは、RosettaNet Web サイトの「Developer Tools」領域からダウンロードできます (http://www.rosettanet.org)。

使用している PIP のスキーマがこの Web サイトにない場合は、DTD ファイルとして指定した RosettaNet メッセージ定義を使用して RosettaNet ソリューションを WebLogic Integration に実装できます。ただし、XQuery マッピング ツール (データ トランスフォーメーションの定義に使用) など WebLogic Integration の多数のツールでは XSD スキーマしかサポートされないため、W3C XSD ファイルの使用をお勧めします。

グラフィカルな XQuery マッピング ツールを使用する場合は、XML Spy Enterprise Edition のようなツールを使用し、RosettaNet DTD ファイルを W3C XSD ファイルに変換してから、XSD ファイルをプロジェクトにインポートする必要があります。DTD ファイルを変換している PIP について RosettaNet メッセージ ガイドラインを参照し、変換後にサービス内容検証の適切な検証ルールを XSD ファイルに追加してください。XML Spy を使用したファイル変換方法については、「RosettaNet DTD スキーマの XSD スキーマへの変換」を参照してください。

このチュートリアルでは、サンプルを完了するために必要なすべての XSD はチュートリアル ファイルに含まれています。

 


チュートリアルの概要

RosettaNet サンプルには、WebLogic Integration 8.1 を使用して RosettaNet PIP を実装する方法について説明する、ビジネス プロセス定義 (JPD)、スキーマ、その他のファイルが含まれています。サンプル ビジネス プロセス ファイルでは、一般的な設計パターンが実装されており、RosettaNet 会話の開始者ビジネス プロセスと参加者ビジネス プロセスの構築をすぐに始められるようになっています。ビジネス プロセスを最初から構築する代わりに、サンプル ファイルを適合することで簡単に PIP を実装できます。

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

このチュートリアルで実装されている PIP は、RosettaNet Implementation Framework (RNIF) 2.0 に準拠しています。

このサンプルで実装されている PIP

このチュートリアルで提供される RosettaNet サンプルについて、次の表で説明します。

表 2-1 RosettaNet サンプル 

PIP

説明

0A1

PIP0A1 : 障害通知を実装。

RosettaNet 障害通知が必要になる、任意のビジネス プロセスから、このビジネス プロセスを開始できる。たとえば、WebLogic Workshop で提供される RosettaNet Participant Business Process テンプレートとともに、このビジネス プロセスを使用できる。詳細については、WebLogic Workshop ヘルプの「RosettaNet 参加者ビジネス プロセスを構築する」を参照。

3B2

PIP3B2 : 配送通知を実装。「手順 3 : PIP3B2 : 配送通知サンプルのオープン」で説明する。

3A4

PIP3A4 : 注文要求を実装。「手順 4 : PIP3A4 : 注文要求サンプルのオープン」で説明する。

RosettaNet チュートリアル アプリケーションのフォルダ

以下の表は、\tptutorialapps\rosettanet ディレクトリを開いたときに [アプリケーション] タブに表示されるフォルダを示しています。

表 2-2 \tptutorialapps\rosettanet  のフォルダ

ディレクトリ

説明

PIP0A1Schema

PIP0A1 スキーマのスキーマ プロジェクト。

PIP3A4Schema

PIP3A4 スキーマのスキーマ プロジェクト。

PIP3B2Schema

PIP3B2 スキーマのスキーマ プロジェクト。

pips

それぞれのサンプル PIP 実装 (PIP0A1ProcessesPIP3A4ProcessesPIP3B2Processes)、およびプライベート管理者警告通知 (privateAdmin) のビジネス プロセス フォルダを含む。

System

標準 BEA WebLogic Integration システム スキーマのスキーマ プロジェクト。

Modules

デフォルトでは空。コンパイル済み Java コードの標準 WebLogic Workshop フォルダ。

Libraries

デフォルトでは空。コンパイル済み Java コードの標準 WebLogic Workshop フォルダ。

Security Roles

デフォルトでは空。このアプリケーションのセキュリティ ロールを定義する標準 WebLogic Workshop フォルダ。


 

RosettaNet 設計パターン

RosettaNet PIP は、次の設計パターンのうちいずれかに従っています。

表 2-3 RosettaNet PIP 設計パターン 

ディレクトリ

説明

非同期シングルアクション アクティビティ

シングル アクション メッセージと確認応答の受信が関連する。

  • 開始者が、ビジネス メッセージを参加者に送信する。

  • 参加者が開始者に受信確認を送信する。

この設計パターンを実装した PIP3B2 (配送通知) サンプルについては、「手順 3 : PIP3B2 : 配送通知サンプルのオープン」で説明する。

非同期ダブルアクション アクティビティ

両方のトレーディング パートナのアクション メッセージと確認応答の受信が関連する。

  • 開始者が、ビジネス メッセージを参加者に送信する。

  • 参加者が開始者に受信確認を送信する。

  • 参加者が、ビジネス メッセージを開始者に送信する。

  • 開始者が参加者に受信確認を送信する。

この設計パターンを実装した PIP3A4 (注文要求) サンプルについては、「手順 4 : PIP3A4 : 注文要求サンプルのオープン」で説明する。

同期シングル アクション アクティビティと同期ダブル アクション アクティビティ

上の設計パターンの同期バージョンであり、すぐに応答が必要になる。現行リリースの BEA WebLogic Integration では、同期設計パターンをサポートしていません。

注意 : 通常、同期 RosettaNet 設計パターンでは、非同期シングル アクション設計パターンと非同期ダブル アクション設計パターンで説明した確認応答の受信は実装されません。


 

このチュートリアルで提供されるサンプル PIP 実装では、「サンプル PIP に基づいた、新しい PIP の実装」で説明するように、同じ設計パターンに従った、任意の PIP を迅速かつ簡単に構築できます。

RosettaNet 設計パターンと会話の構成については、次の文書を参照してください。

 


チュートリアル手順

この節では、以下のチュートリアル手順について説明します。

この手順を進める前に、「始める前に」の内容を確認してください。

手順 1 : RosettaNet サンプル アプリケーションのオープン

RosettaNet サンプル アプリケーションには、「このサンプルで実装されている PIP」で説明する、すべての PIP 実装が含まれています。

RosettaNet サンプル アプリケーションを開くには

  1. WebLogic Workshop をまだ起動していない場合は、起動します。
  2. [ファイル] メニューから [開くアプリケーション] を選択します。
  3. 手順 3 : チュートリアル ファイルのインストール」で作成した tptutorialapps フォルダにナビゲートします。
  4. rosettanet フォルダを開きます。
  5. rosettanet.work ファイルを開きます。
  6. 注意 : WebLogic Integration のドメインとサーバを選択するように求められた場合は、「手順 1 : 新しい WebLgic Integration ドメインの作成」で作成した WebLogic Integration ドメイン (c:\bea\user_projects\domains\tptutorial など) を選択します。

    RosettaNet チュートリアル アプリケーションのフォルダ」で説明する RosettaNet チュートリアル アプリケーションの内容が、[アプリケーション] タブに表示されます。


     
  7. [アプリケーション] タブで、ルート rosettanet フォルダを右クリックし、[プロパティ] を選択します。
  8. [アプリケーション プロパティ] ダイアログで、「手順 1 : 新しい WebLogic Integration ドメインの作成」 で作成した WebLogic Integration (c:\bea\user_projects\domains\tptutorial など) を [サーバ ホーム ディレクトリ] が指していることを確認し、[OK] をクリックします。
  9. [アプリケーション] タブで、ルートの rosettanet フォルダを選択し、[ビルドアプリケーションのビルド] を選択して (または〔F7〕を押して)、アプリケーションをビルドします。
  10. 注意 : ビルドを行うタブにコンパイルに関する緑色の警告が表示されることがあります。このような警告は無視してください。サンプルは正常に実行されます。

  11. [アプリケーション] タブで pips フォルダをダブルクリックします。サンプル ビジネス プロセスを含むフォルダが表示されます。

手順 2 : PIP0A1 : 障害通知サンプルのオープン

このトピックでは、PIP0A1 : 障害通知の実装サンプルについて説明します。内容は以下のとおりです。

PIP0A1 の詳細については、http://www.rosettanet.org を参照してください。

PIP0A1 サンプルについて

PIP0A1 は、PIP0A1 障害通知の実装方法を示すサンプルです。 PIP0A1Processes フォルダには、PIP0A1 のビジネス プロセス定義が含まれています。 PIP0A1Schemas スキーマ プロジェクトには、PIP0A1 メッセージのスキーマ ファイルが含まれています。

PIP0A1 では、ビジネス ロジックの設定方法、エラー メッセージの適切な処理方法、およびビジネス ロジックとエラー メッセージに基づいて、障害通知を適切な障害管理者に送信するための正しいチャネルを開く方法を示します。このチュートリアルの PIP0A1 障害通知のシナリオは以下のとおりです。

注意 : デモンストレーション用に、このチュートリアルの例に示すビジネス プロセスは、障害通知をトリガするように意図的にコンフィグレーションされています。

以下の手順では、PIP A01 ビジネス ロジックの概要を説明します。

  1. PIP0A1 障害通知者ビジネス プロセス (PIP0A1.jpd) は、PIP3A4 販売者側または PIP3B2 受取人側から障害通知要求を受け取ります。
  2. 障害通知者は、障害通知要求を処理し、障害通知メッセージを適切なレポート管理者 (この場合は PIP0A1ReportAdmin.jpd) に送信します。また、障害通知者プロセスは WebLogic Server Console に通知を表示して、メッセージを送信したことを示します。
  3. レポート管理者プロセスは、障害通知メッセージを検証し、確認応答を障害通知者に送信します。また、このプロセスも WebLogic Server Console に通知を表示して、メッセージを受信したことを示します。

PIP0A1 サンプルのコンポーネント

WebLogic Workshop で PIP0A1Processes フォルダを開くと、[アプリケーション] タブにフォルダの内容が表示されます。


 

次の表では、PIP0A1 サンプルのコンポーネントについて概説します。

表 2-4 PIP0A1 : 障害通知のサンプルのコンポーネント 

ロール/コンポーネント

説明

PIPA01.jpd

PIP3A4 開始者または PIP3B2 参加者から障害通知を受信する開始者ビジネス プロセス。RosettaNet コントロールのインスタンスを使用して障害通知を障害管理者ビジネス プロセスに送信する。

Rn.jcx

障害管理者ビジネス プロセスとメッセージを交換するための RosettaNet コントロール定義ファイル。RosettaNet コントロールの詳細については、WebLogic Workshop オンライン ヘルプの「RosettaNet コントロール」を参照。

PIPA01Control.jcx

別のプロセスで使用する PIPA01.jpd をラップするプロセス コントロールの定義ファイル。[アプリケーション] タブで PIPA01.jpd ファイルを右クリックし、[Process コントロールの生成] を選択すると、自動的に生成される。

PIP0A1ReportAdmin.jpd

エラー メッセージと通知を処理するために使用されるバック エンド ビジネス ロジックを表すビジネス プロセス。

PIP0A1Transformation.dtf

XQuery を生成するために使用されるトランスフォーメーション コントロール定義ファイル。トランスフォーメーションと XQuery の詳細については、「データ トランスフォーメーション ガイド」 を参照してください。

getStaticProperties.xq

Control Send with Return ノード (getStaticProp) がコンフィグレーションされたときに生成された XQuery。

getFailureNotificationDoc.xq

Control Send with Return ノード (getFailureNotificationDoc) がコンフィグレーションされたときに生成された XQuery。

サンプル データ

RosettaNet メッセージ ガイドラインで提案されている典型的な要素とデータを示すサンプルの XML データを含むディレクトリ。

注意 : サンプルの実行に使用する入力は XQuery を介して生成されるため、このディレクトリのデータはこのチュートリアルでは使用しません。


 

障害通知者ビジネス プロセスの説明

この節では、サンプル開始者ビジネス プロセス (PIP0A1.jpd) について説明します。このビジネス プロセスを表示するには、以下を実行します。

  1. WebLogic Workshop の [アプリケーション] タブで、PIP0A1Processes フォルダを開きます。
  2. PIP0A1.jpd ファイルをダブルクリックします。
  3. 必要である場合は、Retry block パスを折り畳み、メイン (正常) パスのみを表示します。

  4.  

正常プロセス パス

ビジネス プロセスの正常パスは以下のとおりです。

  1. Client Request ノード (Start) が、障害通知メッセージを受信します。
  2. Control Send with Return ノード (getStaticProperties) が、受信メッセージから RosettaNet Context プロパティを抽出します。RosettaNet Context の詳細については、「RosettaNetControl インタフェース」を参照してください。
  3. Control Send ノード (setProperties) は、抽出したプロパティを PIP0A1 スキーマに基づいてドキュメントにマッピングします。
  4. Control Send with Return ノード (getFailureNotificationDoc) は、PIPA01 トランスフォーメーション クエリを使用して、RosettaNet Context プロパティを PIPA01 スキーマに基づいてドキュメントにマッピングします。
  5. マッピングされたフィールドを表示するには、[アプリケーション] タブで getFailureNotificationDoc.xq ファイルをダブルクリックします。

  6. Perform ノード (setDoctype) が、DOCTYPE DTD 値をトランスフォーメーション出力に設定します。
  7. 注意 : デフォルトの WebLogic Integration トランスフォーメーション出力には DOCTYPE プロパティがないため、この手順が必要です。

  8. Retry block という名前のグループには、Control Send ノード (Send Notification of Failure) と Control Receive ノード (Receipt acknowledgement) が含まれます。このブロックは、障害通知を PIP0A1ReportAdmin ビジネス プロセスに送信し、メッセージの受信確認を待機します。
  9. この例では、デモンストレーションとして、Send Notification of Failure ノードから PIP0A1ReportAdmin プロセスにメッセージを送信した後、同じメッセージを WebLogic Server Console にも出力します。

  10. ビジネス プロセスの最後の Client Response ノードは、障害通知メッセージが PIP0A1ReportAdmin ビジネス プロセスに送信された後に実行する任意のビジネス ロジックのためのプレースホルダです。

障害パス

OnTimeout パスでは、ネットワーク障害が発生した場合などの障害管理が処理されます。障害パスを表示するには、以下を実行します。

  1. Retry block という名前のノード グループの横にある OnTimeout パスを展開します。

  2.  

    このパスは、標準的な BPM OnTimeout 構成を表します。タイムアウト値は、2 時間 (標準的な PIP 再試行間隔)、および 3 回の再試行回数 (標準的な PIP 再試行回数) に設定されています。このため、何らかの理由により、応答が 2 時間以内に届かなかった場合は、そのグループが再試行され、sendNotification of Failure ステップが再度実行されます。OnTimeout パスには、再試行回数が使い果たされたかどうかを判断する条件が含まれており、使い果たされた場合は、適切なアクションを実行するロジックをパスに追加することができます。

レポート管理者ビジネス プロセスの説明

PIP0A1 サンプルの参加者ビジネス プロセスの名前は PIPA01ReportAdmin.jpd です。WebLogic Workshop で参加者ビジネス プロセスを表示するには、[アプリケーション] タブで PIPA01ReportAdmin.jpd をダブルクリックします。


 

レポート管理者ビジネス プロセスは、以下の手順で構成されています。

  1. 障害通知メッセージが、Client Request ノード (Receive NoF) に届きます。
  2. Perform ノード (Print NOF on System Console) が、WebLogic Server Console ウィンドウに受信確認を出力します。このノードは、PIP0A1 レポート管理者ビジネス プロセスで実行される任意のビジネス ロジックのためのプレースホルダです (プロダクション モードで使用されます)。
  3. Client Response ノード (Send NoF Receipt Acknowledgment) が、障害通知者プロセスに確認応答を送信します。

このチュートリアルの以下の 2 つのサンプルでは、PIP0A1 障害通知サンプルが利用されています。サンプルの動作を確認するには、「PIP3B2 サンプルの実行」または「PIP3A4 サンプルの実行」を実行してください。

手順 3 : PIP3B2 : 配送通知サンプルのオープン

このトピックでは、PIP3B2 : 配送通知のサンプル実装について説明します。内容は以下のとおりです。

PIP3B2 の詳細については、http://www.rosettanet.org を参照してください。

PIP3B2 サンプルについて

PIP3B2 は、「RosettaNet 設計パターン」で説明した非同期シングル アクション アクティビティ設計パターンの例です。 PIP3B2Processes フォルダには、PIP3B2 のビジネス プロセス定義が含まれています。 PIP3B2Schemas スキーマ プロジェクトには、PIP3B2 メッセージのスキーマ ファイルが含まれています。sampledata ディレクトリには、「PIP3B2 サンプルの実行」で使用できるサンプル XML ドキュメントが含まれています。

以下の手順では、PIP3B2 ビジネス ロジックの概要を説明します。

  1. 出荷者 (開始者プロセス PIP3B2.jpd) は、配送通知メッセージを作成し、受取人 (参加者プロセス PIP3B2Participant.jpd) に送信します。
  2. 受取人がメッセージを確認し、確認応答を出荷者に送信します。
  3. 受取人が、追加処理のために、メッセージをバックエンド システム (PIP3B2ParticipantPrivate.jpd) に送信します。
  4. バックエンド システムは処理中に問題を検出し、PIP0A1 サンプルを呼び出します。

PIP3B2 サンプルのコンポーネント

WebLogic Workshop で PIP3B2Processes フォルダを開くと、[アプリケーション] タブにフォルダの内容が表示されます。


 

次の表では、PIP3B2 サンプルのコンポーネントについて概説します。

表 2-5 PIP3B2 : 配送通知サンプルのコンポーネント 

ロール/コンポーネント

説明

出荷者 (開始者)

RosettaNet ロール名。

PIP3B2.jpd

メッセージを送信して確認応答を待機し、障害に対処するパブリック開始者ビジネス プロセス。RosettaNet コントロール インスタンス Rn.jcx を使用。

Rn.jcx

RNIF を通して受信者とメッセージを交換するために使用する RosettaNet コントロール定義ファイル。RosettaNet コントロールの詳細については、WebLogic Workshop オンライン ヘルプの「RosettaNet コントロール」を参照してください。

PIP3B2.jpd のこのコントロール インスタンスの注釈には、PIP 名、バージョン、およびロール名が含まれる。

PIP3B2Control.jcx

別のプロセスで使用する PIP3B2.jpd をラップするプロセス コントロールの定義ファイル。[アプリケーション] タブで PIP3B2.jpd ファイルを右クリックし、[Process コントロールの生成] を選択すると、自動的に生成される。

PIP3B2Private.jpd

プロセス コントロールで PIP3B2.jpd ビジネス プロセスを起動するプライベート ビジネス プロセス。

このプライベート ビジネス プロセスでは、BEA WebLogic Integration の完全な機能を利用し、バックエンド システムへのアクセス、情報の作成、PIP3B2 で必要となるデータ フォーマットへの要求データの変換を実行できる。

PIP3B2PrivateTransformation.dtfPIP3B2PrivatepIP3B2ControlStart.xq (関連 .xq ファイル)

サンプル トランスフォーメーション ファイル。プロセス ノードでトランスフォーメーションを定義するときに、自動的に生成される。

PIP3B2PrivateTransformation.dtfgetStaticProperties.xq (関連 .xq ファイル)

サンプル トランスフォーメーション ファイル。プロセス ノードでトランスフォーメーションを定義するときに、自動的に生成される。

受取人 (参加者)

RosettaNet ロール名。

PIP3B2Participant.jpd

RNIF メッセージを受信し、確認応答を出荷者に送信するパブリック ビジネス プロセス。RosettaNet 注釈には、PIP 名、バージョン、ロールが含まれる。詳細については、WebLogic Workshop オンライン ヘルプの「@jpd:rosettanet 注釈」を参照。

PIP3B2ParticipantPrivate.jpd

出荷通知のバックエンド処理を表すプライベート ビジネス プロセス。

PIP3B2ParticipantPrivateControl.jcx

PIP3B2Participant.jpd で使用するプライベート プロセスをラップするプロセス コントロール。[アプリケーション] タブで PIP3B2ParticipantPrivate.jpd ファイルを右クリックし、[Process コントロールの生成] を選択すると、自動的に生成される。


 

出荷者ビジネス プロセスの説明

この節では、PIP3B2 のサンプル開始者ビジネス プロセス (PIP3B2.jpd) について説明します。このビジネス プロセスを表示するには、以下を実行します。

  1. WebLogic Workshop の [アプリケーション] タブで、PIP3B2Processes フォルダをダブルクリックします。
  2. PIP3B2.jpd ファイルをダブルクリックします。
  3. 必要である場合は、OnTimeout パス、On Error Message パス、Set static properties for header グループ、および Retry block グループを折り畳み、メイン (正常) パスのみを表示します。

  4.  

正常パス

正常パスは、ビジネス プロセスのメイン パスです。

  1. Client Receive ノード (Start) は、配送通知 XML ドキュメント (このチュートリアルではクライアント要求はプライベート プロセスから送信される) を受け取るとプロセスを呼び出します。
  2. Set static properties for header グループには、Control Send with Return ノード (getStaticProperties) と Control Send ノード (setProperties) が含まれています。これら 2 つのノードがメッセージから RosettaNet プロパティを抽出し、PIP3B2 スキーマに基づいてドキュメントにマッピングします。
  3. Retry block グループには 2 つのノードが含まれています。Control Send ノード (sendMessage) は、RosettaNet コントロールの sendMessage メソッドを使用して、メッセージを受取人 (参加者) に送信します。Control Receive ノード (Receipt acknowledgement) は、受取人からの確認応答コールバック (rn_onAck メソッド) を待機します。
  4. 応答を受信したら、プロセスが Client Response ノード (Return Success) を使用してプライベート プロセスに応答します。

PIP3B2 では、シングル アクション アクティビティ設計パターンが実装されるので、受取人はビジネス アクションを返さず、ビジネス シグナル (確認応答または例外) のみを返します。正常に終了した場合には、応答のみがプライベート プロセスへ返され、データは返されません。

障害パス

OnTimeout パスと On Error Message パスでは、ネットワーク障害が発生した場合などの障害管理が処理されます。障害パスを表示するには、以下を実行します。

  1. Retry block という名前のノード グループの横にある OnTimeout パスを展開します。

  2.  

    このパスは、標準的な BPM OnTimeout 構成を表します。タイムアウト値は、2 時間 (標準的な PIP 再試行間隔)、および 3 回の再試行回数 (標準的な PIP 再試行回数) に設定されています。このため、何らかの理由により、応答が 2 時間以内に届かなかった場合は、そのグループが再試行され、sendMessage ステップが再度実行されます。OnTimeout パスには、再試行回数が使い果たされたかどうかを判断する条件が含まれており、再試行回数が使い果たされた場合は、PIP 0A1 (障害通知) サブプロセスが Control Send ノードでトリガされます。このプロセスは、プライベート プロセスにエラーで応答して終了します。

  3. プロセスの最上位にある PIP3B2 ノードの横の On Error Message パスを展開します。

  4.  

    Global Process Timeout は、標準 PIP タイムアウト値の 24 時間にコンフィグレーションされています。プロセス全体がこの時間内に完了しない場合は、PIP0A1 (障害通知) サブプロセスがトリガされ、プライベート プロセスにエラーが返されます。

    最後に、メッセージを検証できないなど、さまざまな理由により、受取人がメッセージを拒否することがあります。メッセージ拒否は、RosettaNet コントロールで、onError コールバックとして表現されます。グローバル On Error Message ハンドラでは、いつでもエラーを受信する準備が整っており、エラーを受信した場合、このハンドラはサブプロセスを起動して問題について管理者に通知し、プライベート プロセスにエラーを返して終了します。ネットワークの問題などにより、メッセージを正常に送信できないと、ビジネス プロセスが PIP0A1 (障害通知) を起動し、問題についてリモート パートナに通知しようとすることに注意してください。同じように、受取人からエラーを受信すると、このビジネス プロセスは、ローカル管理者とリモート管理者に通知します。

受取人ビジネス プロセスの説明

WebLogic Workshop で参加者ビジネス プロセスを表示するには、PIP3B2Participant.jpd ファイルを開きます。


 

参加者ビジネス プロセスは、以下のノードで構成されています。

  1. Client Request ノード (Receive Advance Shipping Notice) が配送通知メッセージを受信します。
  2. Decision ノード (Check if Notification of Advance Shipment) がメッセージを検証し、以下のいずれかを実行します。
  3. Invoke private process グループでは、Control Send ノード (processShipment) が追加処理のために配送通知をプライベート ビジネス プロセスに渡し、Control Receive ノード (get Private Response) がプライベート プロセスからの確認応答を待機します。

プライベート ビジネス プロセスの説明

両サイドのプライベート プロセスは、プロダクション環境でプロセスがバックエンド アプリケーションとやり取りするためのプレースホルダです。たとえば、アプリケーション ビュー コントロールと BEA アダプタで ERP アプリケーションに出荷通知を挿入し、メッセージ キューで送信してファイルかデータベースに書き込むことができます。

このサンプルで使用されているパブリック プロセス パターンとプライベート プロセス パターンは、必須ではなく、推奨される手法にすぎません。環境に合わせて、自由にプロセスを区分してください。プライベート プロセスを使用せず、必要なすべてのバックエンド統合、および RosettaNet 対話を単一プロセスで実装することも可能です。しかし、RosettaNet コレオグラフィのみに対処するパブリック、およびバックエンド システム統合に対処するプライベートにプロセスを分割すると、アプリケーションの再利用と保守が簡単になることがあります。

このサンプルでは、PIP3B2ParticipantPrivate.jpd は、プロセスを実行すると、エラーをトリガして PIP0A1 サンプルを呼び出すように特別にコンフィグレーションされています。

PIP3B2 サンプルの実行

デフォルトの場合、BEA WebLogic Integration はテスト (開発) モードで動作します。このため、PIP3B2 サンプル ビジネス プロセスを同じマシン (併置) で実行できます。プロダクション環境では、それぞれのトレーディング パートナが、別々の BEA WebLogic Integration サーバでそれぞれのビジネス プロセスを実行します。テスト モードとプロダクション モードの詳細については、『WebLogic Integration ソリューションの管理』の「トレーディング パートナ管理」(http://edocs.beasys.co.jp/e-docs/wli/docs81/manage/tpm.html) の「モードとメッセージ トラッキングのコンフィグレーション」を参照してください。

PIP3B2 サンプルを実行するには

  1. WebLogic Server が実行中でない場合は、起動します。起動するには、WebLogic Workshop メニューから [ツールWebLogic ServerWebLogic Server の起動] を選択します。
  2. WebLogic Server が動作している場合は、WebLogic Workshop ビジュアル開発環境の最下部にあるステータス バーに、次のインジケータが表示されます。


     
  3. PIP3B2Participant.jpd を開き、WebLogic Workshop メニューの をクリックします。
  4. アプリケーションがまだビルドされていない場合は、WebLogic Workshop によってプロジェクトがビルドされます。

    注意 : ビルドを行うタブにコンパイルに関する緑色の警告が表示されることがあります。このような警告は無視してください。サンプルは正常に実行されます。

    Web ブラウザが起動して Workshop のテスト ブラウザが表示されます。このブラウザからサンプルの入力値を使ってビジネス プロセスをテストすることができます。

    注意 : アプリケーションがビルド プロセスを完了した後でテスト ブラウザのウィンドウが起動されるまでには、時間がかかることがあります。

    テスト ブラウザから実際に実行しないでください。この手順は、参加者プロセスを「準備」するために必要な手順です。

  5. WebLogic Workshop に戻り、PIP3B2Private.jpd を開いて、WebLogic Workshop メニューの をクリックします。
  6. テスト ブラウザで、[参照] をクリックし、[ファイルの保存場所]\rosettanet\pips\PIP3B2Processes\sampledata\3B2AdvanceShipmentNotificationMessageBase.xml にナビゲートします。
  7. [ファイルの保存場所] は「手順 3 : チュートリアル ファイルのインストール」でチュートリアル ファイルをインストールしたディレクトリです。

  8. clientRequest をクリックします。
  9. 数秒で、エンドツーエンド コレオグラフィが実行されます。クライアント応答により、XML メッセージがエコーされます。WebLogic Server Console を起動します。
  10. 数秒で、以下のメッセージがコンソールに表示されます。
  1. オプションで、BEA WebLogic Integration Administration Console を開き、メッセージ トラッキング エントリとプロセス トラッキング エントリを確認できます。

手順 4 : PIP3A4 : 注文要求サンプルのオープン

このトピックでは、PIP3A4 : 注文要求のサンプル実装について説明します。内容は以下のとおりです。

PIP3A4 の詳細については、http://www.rosettanet.org を参照してください。

PIP3A4 サンプルについて

PIP3A4 は、「RosettaNet 設計パターン」で説明した非同期ダブル アクション アクティビティ設計パターンの例です。 PIP3A4Processes フォルダには、PIP3A4 のビジネス プロセス定義が含まれています。 PIP0A4Schemas スキーマ プロジェクトには、PIP0A4 メッセージのスキーマ ファイルが含まれています。sampledata ディレクトリには、「PIP3A4 サンプルの実行」で使用できるサンプル XML ドキュメントが含まれています。

PIP3A4 注文要求には、次の手順が含まれます。

  1. 購入者 (開始者) が、注文要求メッセージを作成し、販売者 (参加者) に送信します。
  2. 販売者がメッセージを確認し、確認応答を購入者に送信します。
  3. 販売者が、追加処理のために、メッセージをバックエンド システムに送信します。
  4. 販売者のバックエンド システムが注文確認 (要求された製品があること、および予想される出荷日を確認) を生成します。
  5. 販売者が、購入者に確認を送信します。
  6. 購入者が、販売者のメッセージの受信を承認します。
  7. 購入者は、注文確認を追加処理のためにバックエンド システムに渡しますが、処理中にエラーを検出したため PIP A01 サンプルがトリガされます。

PIP3A4 サンプルのコンポーネント

WebLogic Workshop で PIP3A4Processes フォルダを開くと、[アプリケーション] タブにフォルダの内容が表示されます。


 

次の表では、PIP3A4 サンプル実装のコンポーネントについて概説します。

表 2-6 PIP3A4 (注文要求) サンプルのコンポーネント 

ロール/コンポーネント

説明

購入者 (開始者)

RosettaNet ロール名。

PIP3A4.jpd

販売者とメッセージを交換して確認応答を待機し、障害に対処するパブリック ビジネス プロセス。RosettaNet コントロール インスタンス Rn.jcx を使用。

Rn.jcx

RNIF を通して販売者とメッセージを交換するために使用する RosettaNet コントロール定義ファイル。RosettaNet コントロールの詳細については、WebLogic Workshop オンライン ヘルプの「RosettaNet コントロール」を参照してください。

PIP3A4.jpd のこのコントロール インスタンスの注釈には、PIP 名、バージョン、およびロール名が含まれる。

PIP3A4Control.jcx

別のプロセスで使用する PIP3A4.jpd をラップするプロセス コントロールの定義ファイル。[アプリケーション] タブで PIP3A4.jpd ファイルを右クリックし、[Process コントロールの生成] を選択すると、自動的に生成される。

PIP3A4Private.jpd

プロセス コントロールで PIP3A4 プロセスを起動するプライベート ビジネス プロセス。このビジネス プロセスでは、BEA WebLogic Integration の完全な機能を利用し、バックエンド システムへのアクセス、情報の作成、PIP3A4 で必要となるデータ フォーマットへの変換を実行できる。

PIP3A4PrivateTransformation.dtf と関連 .xq ファイル)

PIP3A4Transformation.dtf と関連 getStaticProperties.xq ファイル

サンプル トランスフォーメーション ファイル。プロセス ノードでトランスフォーメーションを定義するときに、自動的に生成される。

販売者 (参加者)

RosettaNet ロール名。

PIP3A4Participant.jpd

メッセージを受信して確認応答を送信し、メッセージで応答して確認応答を受信するパブリック ビジネス プロセス。RosettaNet 注釈には、PIP 名、バージョン、ロールが含まれる。詳細については、WebLogic Workshop オンライン ヘルプの「@jpd:rosettanet 注釈」を参照。

PIP3A4ParticipantPrivate.jpd

注文のバックエンド処理、および注文確認の作成を表すプライベート ビジネス プロセス。

fc.jcx

注文確認サンプル ファイルをローカル ファイル システムから読み取るために使用されるファイル コントロール定義ファイル。

PIP3A4ParticipantPrivateControl.jcx

PIP3A4Participant.jpd で使用するプライベート プロセスをラップするプロセス コントロール。[アプリケーション] タブで PIP3A4ParticipantPrivate.jpd ファイルを右クリックし、[Process コントロールの生成] を選択すると、自動的に生成される。

PIP3A4ParticipantTransformation.dtf と関連 getStaticProperties1.xq ファイル

サンプル トランスフォーメーション ファイル。プロセス ノードでトランスフォーメーションを定義するときに、自動的に生成される。


 

Seller ビジネス プロセスの説明

この節では、PIP 3A4 のサンプル開始者ビジネス プロセス (PIP3A4.jpd) について説明します。このビジネス プロセスを表示するには、以下を実行します。

  1. WebLogic Workshop で、PIP3A4.jpd ファイルを開きます。
  2. 必要である場合は、OnTimeout パスと On Error Message パス、およびその他のグループを折り畳み、メイン (正常) パスのみを表示します。

  3.  

正常パス

正常パスのビジネス ロジックは以下のとおりです。

  1. Client Request ノード (Start) は、注文要求 XML ドキュメント メッセージを受信します (このチュートリアルではクライアント要求はプライベート プロセスから送信されます)。
  2. Set properties that go into service header グループには、Control Send with Return ノード (getStaticProperties) と Control Send ノード (setProperties) が含まれています。これら 2 つのノードがメッセージから RosettaNet プロパティを抽出し、PIP3B2 スキーマに基づいてドキュメントにマッピングします。
  3. Retry block グループには 2 つのノードが含まれています。Control Send ノード (sendMessage) は、RosettaNet コントロールの sendMessage メソッドを使用して、メッセージを販売者 (参加者) に送信します。Control Receive ノード (Receipt acknowledgement) は、受取人からの確認応答コールバック (rn_onAck メソッド) を待機します。
  4. ビジネス プロセスが応答を受信すると、Control Receive ノード (onMessage) で注文確認を待機します。
  5. Perform ノード (correctnoNamespace) は、受信した XML Bean に正しいネーム スペースを追加します (プロジェクト フォルダのスキーマには同じネーム スペースがないため、この手順が必要です)。
  6. 注文確認を受信すると、Decision ノードがメッセージを検証し、以下のいずれかを実行します。
  7. ビジネス プロセスは、Client Response ノード (Return PO ack) を使用して注文確認についてプライベート プロセスに応答します。
  8. Perform ノード (Process Message) は、エラーをトリガして、PIP0A1 サンプルを呼び出すように特別にコンフィグレーションされています。

注意 : BEA WebLogic Integration では、RosettaNet 仕様に従って、確認応答とビジネス メッセージをどのような順序でも受信できます。開始者が、確認応答の前に応答メッセージを受信すると、応答メッセージはキューに入って後で処理されます。

障害パス

OnTimeout パスと On Error Message パスでは、ネットワーク障害が発生した場合などの障害管理が処理されます。障害パスを表示するには、以下を実行します。

  1. Retry block という名前のノード グループの横にある OnTimeout パスを展開します。

  2.  

    このパスは、標準的な BPM OnTimeout 構成を表します。タイムアウト値は、2 時間 (標準的な PIP 再試行間隔)、および 3 回の再試行回数 (標準的な PIP 再試行回数) に設定されています。このため、何らかの理由により、応答が 2 時間以内に届かなかった場合は、そのグループが再試行され、sendMessage ステップが再度実行されます。OnTimeout パスには、再試行回数が使い果たされたかどうかを判断する条件が含まれており、再試行回数が使い果たされた場合は、PIP 0A1 (障害通知) サブプロセスが Control Send ノードでトリガされます。このプロセスは、プライベート プロセスにエラーで応答して終了します。

  3. プロセスの最上位にある PIP3A4 ノードの横の On Error Message パスを展開します。

  4.  

    Global Process Timeout は、標準 PIP タイムアウト値の 24 時間にコンフィグレーションされています。プロセス全体がこの時間内に完了しない場合は、PIP0A1 (障害通知) サブプロセスがトリガされ、プライベート プロセスにエラーが返されます。

    最後に、メッセージを検証できないなど、さまざまな理由により、受取人がメッセージを拒否することがあります。メッセージ拒否は、RosettaNet コントロールで、onError コールバックとして表現されます。グローバル On Error Message ハンドラでは、いつでもエラーを受信する準備が整っており、エラーを受信した場合、このハンドラはサブプロセスを起動して問題について管理者に通知し、プライベート プロセスにエラーを返して終了します。ネットワークの問題などにより、メッセージを正常に送信できないと、ビジネス プロセスが PIP0A1 (障害通知) を起動し、問題についてリモート パートナに通知しようとすることに注意してください。同じように、受取人からエラーを受信すると、このビジネス プロセスは、ローカル管理者とリモート管理者に通知します。

Buyer ビジネス プロセスの説明

販売者側の参加者ビジネス プロセス (PIP3A4Participant.jpd) は、開始者ビジネス プロセスほど複雑ではありません。WebLogic Workshop で参加者ビジネス プロセスを表示するには、PIP3A4Participant.jpd ファイルを開きます。


 

参加者ビジネス プロセスは、以下の手順で構成されています。

  1. Client Request ノード (Receive PO message) は、注文要求メッセージを受信します。
  2. Perform ノード (Check for noNamespace and do correction) は、受信した XML Bean に正しいネーム スペースを追加します (プロジェクト フォルダのスキーマには同じネーム スペースがないため、この手順が必要です)。
  3. Decision ノードが注文を検証し、以下のいずれかを実行します。
  4. Invoke Private Process グループでは、Control Send ノード (processOrder) が追加処理のために注文要求をプライベート プロセスに渡し、Control Receive ノード (onPOAck) がプライベート プロセスからの応答を待機します。プライベート プロセスは、ファイル コントロールを使用して確認を読み取った後で、応答を作成して送信します。
  5. Control Send with Return ノード (getStaticProp) が、受信メッセージから RosettaNet Context プロパティを抽出します。これらのプロパティが必要になるのはエラーの場合のみです。プロパティを保存して後で使用することができます。プロパティには、PIP0A1 障害通知を作成するために必要な情報が含まれています。例 : 開始者、受信者、メッセージ ID など。
  6. Retry block グループでは、Client Response ノード (Send PO Acknowledgement) が sendReply コールバック メソッドを使用して注文確認メッセージを購買者に送信し、Client Request ノード (Receive receipt acknowledgement) が確認応答を待機します。

メッセージを受信するだけの 3B2 参加者ビジネス プロセスとは異なり、3A4 参加者ビジネス プロセスは応答を送信するので、ネットワーク障害や確認障害など、障害シナリオを考慮する必要があります。Retry BlockonTimeout パスを開き、タイムアウトと再試行回数を表示してください。このパスは、「出荷者ビジネス プロセスの説明」で説明した、3B2 開始者ビジネス プロセスの onTimeout パスに似ています。加えて、グローバルな onMessage ハンドラがあり、購入者によって返されるエラーが処理されます。

プライベート ビジネス プロセスの説明

3B2 サンプルと同じように、両サイドのプライベート プロセスはバックエンド ビジネス ロジックのための単なるプレースホルダです。参加者プライベート プロセスは、受信メッセージを実際にエコーします。一般的には、バックエンド アプリケーションと結び付けるよう、このプロセスをカスタマイズします。たとえば、アプリケーション ビュー コントロールと BEA アダプタで ERP アプリケーションに出荷通知を挿入し、メッセージ キューで送信してファイルかデータベースに書き込むことができます。

このサンプルで使用されているパブリック プロセス パターンとプライベート プロセス パターンは、必須ではなく、推奨される手法にすぎません。環境に合わせて、自由にプロセスを区分してください。プライベート プロセスを使用せず、必要なすべてのバックエンド統合、および RosettaNet 対話を単一プロセスで実装することも可能です。しかし、RosettaNet コレオグラフィのみに対処するパブリック、およびバックエンド システム統合に対処するプライベートにプロセスを分割すると、アプリケーションの再利用と保守が簡単になることがあります。

PIP3A4 サンプルの実行

PIP3A4 サンプルを実行するには

  1. このサンプルは、ファイル コントロールを使用して、ローカル ファイル システムから注文確認メッセージを読み取ります。サンプルを実行する前に、正しいサンプル データ ファイルが見つかるように fc.jcx ファイルでディレクトリ パスを設定する必要があります。
    1. [アプリケーション] タブで fc.jcx ファイルをダブルクリックします。
    2. [ソース ビュー] タブをクリックします。
    3. directory-name 属性を以下のように設定します。
    4. [file location]\tptutorialapps\rosettanet\pips\PIP3A4Processes\sampledata

      [ファイルの保存場所] は「手順 3 : チュートリアル ファイルのインストール」でチュートリアル ファイルをインストールしたディレクトリです。

  2. WebLogic Server が実行中でない場合は、起動します。起動するには、WebLogic Workshop メニューから [ツールWebLogic ServerWebLogic Server の起動] を選択します。
  3. WebLogic Server が動作している場合は、WebLogic Workshop ビジュアル開発環境の最下部にあるステータス バーに、次のインジケータが表示されます。


     
  4. PIP3A4Participant.jpd を開き、WebLogic Workshop メニューの をクリックします。
  5. プロジェクトがまだビルドされていない場合は、WebLogic Workshop によってプロジェクトがビルドされます。

    注意 : ビルドを行うタブにコンパイルに関する緑色の警告が表示されることがあります。このような警告は無視してください。サンプルは正常に実行されます。

    Web ブラウザが起動して Workshop のテスト ブラウザが表示されます。このブラウザからサンプルの入力値を使ってビジネス プロセスをテストすることができます。

    注意 : アプリケーションがビルド プロセスを完了した後でテスト ブラウザのウィンドウが起動されるまでには、時間がかかることがあります。

    テスト ブラウザから実際に実行しないでください。参加者プロセスを「準備」するには、この手順が必要です。

  6. WebLogic Workshop に戻り、PIP3A4Private.jpd を開いて をクリックします。 .
  7. テスト ブラウザで、[参照] をクリックし、[ファイルの保存場所]\rosettanet\pips\PIP3A4Processes\sampledata\3A4PurchaseOrderRequestMessageBase_0010.xml にナビゲートします。
  8. [ファイルの保存場所] は「手順 3 : チュートリアル ファイルのインストール」でチュートリアル ファイルをインストールしたディレクトリです。

  9. clientRequest をクリックします。
  10. 数秒で、エンドツーエンド コレオグラフィが実行されます。クライアント応答により、XML メッセージがエコーされます。

  11. WebLogic Server Console を起動します。
  12. 数秒で、以下のメッセージがコンソールに表示されます。

  1. オプションで、BEA WebLogic Integration Administration Console を開き、メッセージ トラッキング エントリとプロセス トラッキング エントリを確認できます。

 


サンプル PIP に基づいた、新しい PIP の実装

このトピックでは、このチュートリアルのサンプル PIP に基づいて、新しい PIP を実装する方法について説明します。内容は以下のとおりです。

新しい PIP の実装について

設計パターンが似ている、既存の PIP 実装に基づいて、新しい PIP を実装できます。価格と入手可能性要求は、応答とともにメッセージを送信する設計パターンの例です。このため、ビジネス プロセス コレオグラフィは、PIP3A4 のコレオグラフィと同じです。大きな違いは、要求メッセージ スキーマと応答メッセージ スキーマが異なることであり、注釈を変更する必要もあります。3A4 プロセスの複製と名前変更を行い、メッセージのスキーマ タイプを変更すると、PIP 3A2 実装を簡単に作成できます。PIP3A4 の詳細については、http://www.rosettanet.org を参照してください。

PIP 実装のコピーとカスタマイズ

既存の PIP 実装に基づいて、新しい PIP を実装するには、次のタスクを実行します。

  1. 仕様およびすべての DTD を含む PIP 配布キットを、RosettaNet の Web サイト (http://www.rosettanet.org/) からダウンロードします。
  2. RosettaNet DTD スキーマの XSD スキーマへの変換」の説明に従い、任意の DTD を XSD ファイルへ変換します (任意実行)。
  3. 使用する設計パターンが関連するサンプル PIP 実装をコピーします。
  4. WebLogic Workshop で、新しい PIP に使用するスキーマをプロジェクトにインポートし、スキーマ定義を新しい PIP に変更します。
  5. 新しい PIP 用に、RosettaNet 注釈を変更します。
  6. 必要に応じて、JPD ファイルおよび JCX ファイルの名前を変更し、新しい PIP 実装に従って他のコンポーネントの名前を変更します。
  7. 必要に応じて、「プライベート」ビジネス プロセスの実装を変更します。
  8. 必要に応じて、その他の変更を加えます。

RosettaNet DTD スキーマの XSD スキーマへの変換

選択した PIP の RosettaNet W3C XSD スキーマは、RosettaNet Self-Test Kit (STK) に含まれています。これは、RosettaNet Web サイトの「Developer Tools」領域からダウンロードできます (http://www.rosettanet.org)。

使用している PIP のスキーマがこの Web サイトにない場合は、DTD ファイルとして指定した RosettaNet メッセージ定義を使用して RosettaNet ソリューションを WebLogic Integration に実装できます。ただし、XQuery マッピング ツール (データ トランスフォーメーションの定義に使用) など WebLogic Integration の多数のツールでは XSD スキーマしかサポートされないため、W3C XSD ファイルの使用をお勧めします。

グラフィカルな XQuery マッピング ツールを使用する場合は、XML Spy Enterprise Edition のようなツールを使用し、RosettaNet DTD ファイルを W3C XSD ファイルに変換してから、XSD ファイルをプロジェクトにインポートする必要があります。DTD ファイルを変換している PIP について RosettaNet メッセージ ガイドラインを参照し、変換後にサービス内容検証の適切な検証ルールを XSD ファイルに追加してください。

ファイルの変換時には、以下に注意してください。

一部のケースで、2 つの異なるスキーマに同じ要素定義が含まれ、スキーマのコンパイルで問題になることがある。名前の矛盾を避けるには、targetNamespace を明示的に指定します。たとえば、このチュートリアルの注文要求 3A4 W3C スキーマでは、<xs:schema id="Pip3A4PurchaseOrderRequest" targetNamespace="Pip3A4PurchaseOrderRequest" xmlns="Pip3A4PurchaseOrderRequest"> を使用しています。

スキーマ プロジェクトのビルド後は、PIP 型がタイプ システムで使用できるようになり、パラメータ型と変数型で使用できるようになります。

 

ナビゲーション バーのスキップ  ページの先頭 前 次