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

B2B Intgration ロジック プラグイン プログラミング ガイド

 前 次 目次 索引 PDFで表示  

ビジネス メッセージのルーティングとフィルタ処理

以下の節では、トレーディング パートナ間で交換されるビジネス メッセージのフローを制御するために、ルーティング、フィルタ処理、および XPath 式を使用する方法を説明します。

 


ビジネス メッセージおよびメッセージ エンベロープ

ビジネス メッセージは、会話のトレーディング パートナ間で交換される通信の基本単位です。ビジネス メッセージには、メッセージの受信側のリストがあります。1 つのビジネス メッセージは、B2B integration API では com.bea.b2b.protocol.messaging.Message インタフェースによって表されます。以下のクラスは、このインタフェースを実装して、プロトコル固有のビジネス メッセージを表します。

ビジネス メッセージを受信すると、B2B エンジンはメッセージ エンベロープを作成します。メッセージ エンベロープは、B2B エンジンで処理されるビジネス メッセージのコンテナになります。メッセージ エンベロープは、com.bea.b2b.protocol.messaging.MessageEnvelope クラスのインスタンスです。

メッセージ エンベロープはルーティングのために使用されるもので、手紙の封筒に相当します。メッセージ エンベロープには、ビジネス メッセージに加えて、送信側の識別情報(返信先アドレス)およびビジネス メッセージの受信者(送り先アドレス)といったアドレス情報が含まれます。次に図を示します。

図2-1 XOCP ビジネス メッセージを含んでいるメッセージ エンベロープ


 

また、メッセージ エンベロープにはビジネス メッセージに関するその他の情報も含まれます。MessageEnvelope クラスの詳細については、『BEA WebLogic Integration Javadoc』を参照してください。

 


実行時のメッセージ処理

WebLogic Integration B2B エンジンはロジック プラグインをルータまたはフィルタとして利用して、トレーディング パートナへのビジネス メッセージのフローを管理します。次の例は、XOCP ビジネス メッセージに対するこの処理の実装を示します。

注意: XOCP ビジネス プロトコルは、WebLogic Integration の本リリースより非推奨になりました。代替機能に関する情報については、『BEA WebLogic Integration リリース ノート』を参照してください。

次の図は、B2B エンジンによるメッセージ処理の概要を示します。

図2-2 メッセージ処理の概要


 

WebLogic Integration では、サポートされるビジネス プロトコルごとにルータが提供されています。次の図は、ルータの詳細を示します。

図2-3 WebLogic IntegrationB2B ルータ


 

WebLogic Integration では、サポートされるビジネス プロトコルごとにフィルタが提供されています。次の図は、フィルタの詳細を示します。

図2-4 WebLogic IntegrationB2B フィルタ


 

次の図は、B2B エンジンによる XOCP ビジネス メッセージ処理の詳細を示します。RosettaNet ビジネス メッセージの処理も同様です。詳細については、『B2B Integration RosettaNet の実装』を参照してください。

図2-5 XOCP メッセージの処理


 

以下の節では、B2B エンジンの送信側および受信側での XOCP ビジネス メッセージの処理について説明します。

送信側

以下の節では、B2B エンジンの送信側のコンポーネントと XOCP ビジネス メッセージの処理について説明します。

メッセージ XPath 式

XOCP ビジネス メッセージを送信する際に、送信側トレーディング パートナのための B2B エンジンではビジネス メッセージの受信側を定義するメッセージ XPath 式を指定できます。このメッセージ XPath 式は、Business Process Management (BPM) ワークフロー、またはローカルに実行される B2B Integration アプリケーションで定義されます。メッセージ XPath 式の詳細については、メッセージ XPath 式の作成を参照してください。

転送サービス

転送サービスは受信 XOCP ビジネス メッセージを読み取って以下の処理を行います。

  1. メッセージをメッセージ エンベロープにラップして、B2B エンジンを通過する際に処理されやすくします。

  2. XOCP、RosettaNet、または cXML などのビジネス プロトコルに基づいて、メッセージを適切なデコーダへ転送します。転送サービスがメッセージを受信する場所の URL によって、プロトコルおよび配信チャネルが識別されます。配信チャネル/ビジネス プロトコルの組み合わせごとに、ユニークな URL があります。トレーディング パートナはこの URL を使用して、特定のビジネス プロトコルを使用する特定の配信チャネルへアクセスします。

    警告: 配信チャネル/ビジネス プロトコルの組み合わせに対応する URL は、B2B エンジンのみが使用できます。顧客提供のソフトウェアがこうした URL を使用しても、メッセージは正しく処理されません。

    ビジネス プロトコルのコンフィグレーションの詳細については、『B2B Integration 管理ガイド』を参照してください。

デコーダ

デコーダは以下の処理を行います。

  1. プロトコル固有のメッセージ ヘッダを処理します。

  2. 送信側トレーディング パートナを識別します。

  3. 送信側トレーディング パートナを会話に追加します。

  4. 送信側へ返信する応答を準備します。

  5. メッセージをスケジューリング サービスへ転送します。

スケジューリング サービス

スケジューリング サービスはメッセージをキューに入れて格納し、後に XOCP ルータで取得できるようにします。

XOCP ルータ

XOCP ルータはロジック プラグインをつなげたもので、XOCP ビジネス メッセージの受信側を指定します。各ロジック プラグインは、受信側トレーディング パートナのセットについてトレーディング パートナを追加または削除できます。

XOCP ルータにあるロジック プラグインは、以下の順序で並べられます。

  1. XOCP ルータ ロジック プラグイン− WebLogic Integration で提供されているもの

  2. 顧客提供のロジック プラグイン−ユーザが作成できるロジック プラグイン(省略可能)

  3. XOCP ルータ エンキュー ロジック プラグイン− WebLogic Integration で提供されているもの

以下の節では、これらのロジック プラグインについて説明します。

XOCP ルータ ロジック プラグイン

XOCP ルータ ロジック プラグインは、以下の処理を行います。

  1. メッセージコンテキスト ドキュメントを作成します。

    メッセージコンテキスト ドキュメントは、XOCP ビジネス メッセージおよびリポジトリ中の関連する情報から XOCP ルータ ロジック プラグインによって作成される XML ドキュメントです。メッセージコンテキスト ドキュメントは、ビジネス プロトコル、会話、送信側トレーディング パートナ、および受信側トレーディング パートナといった、XOCP ビジネス メッセージに関するヘッダおよびコンテキストの情報を示します。XOCP ルータ ロジック プラグインは XPath 式を使用してメッセージコンテキスト ドキュメントを評価します。メッセージコンテキスト ドキュメントの詳細については、メッセージコンテキスト ドキュメントでの作業を参照してください。

  2. メッセージコンテキスト ドキュメントを XPath ルーティング式で評価します。これにより、メッセージコンテキスト ドキュメント内の各値と対応する場合があります。この評価の結果、XOCP ビジネス メッセージの受信先となるトレーディング パートナのセットが得られます。

    XOCP ルータ ロジック プラグインは XPath ルータ式を次の順序で使用します。

    1. メッセージ XPath 式

      メッセージ XPath 式はビジネス メッセージに含まれているので、常にビジネス メッセージのルーティングに適用されます。

    2. トレーディング パートナ XPath ルータ式

      トレーディング パートナ XPath ルータ式は送信側トレーディング パートナ用のリポジトリで定義され、当該のトレーディング パートナによって送信されるすべての XOCP ビジネス メッセージに適用されます。送信側トレーディング パートナは複数のトレーディング パートナ XPath ルータ式を持つことができます。

      トレーディング パートナ XPath ルータ式は、メッセージコンテキスト ドキュメントのさまざまな部分を調べて受信側トレーディング パートナの別のセットを選択します。各式によって生成されたトレーディング パートナは、以前に生成された受信側トレーディング パートナのセットと置き換えられたり、現在のセットに追加されたりできます。

    3. ビジネス プロトコル XPath ルータ式

      XPath ルータ式はリポジトリで定義され、特定のビジネス プロトコルを使用するすべての XOCP ビジネス メッセージに適用されます。

      トレーディング パートナ XPath ルータ式と同様に、ビジネス プロトコル XPath ルータ式はメッセージコンテキスト ドキュメントのさまざまな部分を調べて受信側トレーディング パートナの別のセットを選択します。各式によって生成されたトレーディング パートナは、以前に生成された受信側トレーディング パートナのセットと置き換えられたり、現在のセットに追加されたりできます。

    XOCP ルータ ロジック プラグインが使用するための XPath 式をリポジトリに追加することができます。XPath 式の詳細については、XPath 式での作業を参照してください。

  3. メッセージコンテキスト ドキュメントを破棄します。

  4. 受信側トレーディング パートナのセットが空でない限り、B2B エンジンはメッセージの処理を継続します。空である場合、XOCP ルータ ロジック プラグインはメッセージを次のコンポーネントでの処理に転送しません。

顧客提供のルータ ロジック プラグイン

ロジック プラグインを作成して、XOCP ルータに追加することができます。新しいロジック プラグインを作成した場合、それをチェーンに追加する際の場所は XOCP ルータ ロジック プラグインの後で、かつ XOCP ルータ エンキュー ロジック プラグインの前です。XOCP ルータ チェーン内でのロジック プラグインの順序は、XOCP ビジネス プロトコル定義で指定されます。

顧客提供のロジック プラグインは、ルータ機能を持たなくとも XOCP ルータの一部になることができます。たとえば、顧客提供のロジック プラグインは、特定の送信側トレーディング パートナによって送信されたメッセージの数をトラッキングし、該当するメッセージについてトレーディング パートナに請求することで請求処理の機能を提供できます。顧客提供のロジック プラグインは、ルーティングおよびフィルタ処理の機能を提供していなくても、XOCP ルータまたは XOCP フィルタのみに追加できます。顧客提供のロジック プラグインの詳細については、ロジック プラグインの作成と追加(非推奨)を参照してください。

顧客提供のルータ ロジック プラグインが処理された後で、受信側トレーディング パートナのセットが空でなければ、B2B エンジンはメッセージの処理を継続します。空である場合、顧客提供のルータ ロジック プラグインはメッセージを次のコンポーネントでの処理に転送しません。

XOCP ルータ エンキュー ロジック プラグイン

XOCP ルータ エンキュー ロジック プラグインは、以下の処理を行います。

  1. XOCP ビジネス メッセージを受信先のキューに入れます。

  2. メッセージをルーティング サービスへ転送します。

ルーティング サービス

ルーティング サービスは以下の処理を行います。

  1. メッセージ受信側の最終検証を実行します。

  2. 検証済みの受信側トレーディング パートナに個別のメッセージ エンベロープを作成します。

  3. メッセージ エンベロープの各コピーを XOCP フィルタへ転送します。

受信側

以下の節では、B2B エンジンの受信側のコンポーネントと XOCP ビジネス メッセージの処理について説明します。

XOCP フィルタ

XOCP フィルタはロジック プラグインのチェーンで、XOCP ビジネス メッセージを受信側へ送信するかどうかを決定します。これらのロジック プラグインは、XOCP ルータ ロジック プラグインの後で評価され、XOCP ルータによる結果を変更またはオーバーライドすることができます。各ロジック プラグインで、メッセージの非送信を決定できます。

XOCP フィルタにあるロジック プラグインは、以下の順序で並べられます。

  1. 顧客提供のロジック プラグイン−ユーザが作成できるロジック プラグイン(省略可能)

  2. XOCP フィルタ ロジック プラグイン− WebLogic Integration で提供されているもの

以下の節では、これらのロジック プラグインについて説明します。

XOCP フィルタ ロジック プラグイン

XOCP フィルタ ロジック プラグインは、以下の処理を行います。

  1. メッセージコンテキスト ドキュメントを作成します。

    メッセージコンテキスト ドキュメントは、XOCP ビジネス メッセージおよびリポジトリ中の関連する情報から XOCP フィルタ ロジック プラグインによって作成される XML ドキュメントです。メッセージコンテキスト ドキュメントは、ビジネス プロトコル、会話、送信側トレーディング パートナ、および受信側トレーディング パートナといった、XOCP ビジネス メッセージに関するヘッダおよびコンテキストの情報を示します。XOCP フィルタ ロジック プラグインは XPath 式を使用してメッセージコンテキスト ドキュメントを評価します。メッセージコンテキスト ドキュメントの詳細については、メッセージコンテキスト ドキュメントでの作業を参照してください。

  2. メッセージコンテキスト ドキュメントを XPath フィルタ式で評価します。これにより、メッセージコンテキスト ドキュメント内の各値と対応する場合があります。この評価の結果、メッセージを受信側へ送信するかどうかが決まります。

    XOCP フィルタ ロジック プラグインは XPath フィルタ式を次の順序で使用します。

    1. トレーディング パートナ XPath フィルタ式

      トレーディング パートナ XPath フィルタ式は受信側トレーディング パートナ用のリポジトリで定義され、当該のトレーディング パートナ宛のすべての XOCP ビジネス メッセージに適用されます。受信側トレーディング パートナは複数のトレーディング パートナ XPath フィルタ式を持つことができます。

      トレーディング パートナ XPath フィルタ式は、メッセージコンテキスト ドキュメントのさまざまな部分を調べてメッセージの受信または拒否を示すブール値の結果を返します。この処理は、false と評価される式が出るか、すべての式が処理されるまで継続されます。

    2. ビジネス プロトコル XPath フィルタ式

      XPath フィルタ式はリポジトリで定義され、すべての XOCP ビジネス メッセージに適用されます。

      トレーディング パートナ XPath フィルタ式と同様に、ビジネス プロトコル XPath フィルタ式はメッセージコンテキスト ドキュメントのさまざまな部分を調べてメッセージの受信または拒否を示すブール値の結果を返します。この処理は、false と評価される式が出るか、すべての式が処理されるまで継続されます。

    XOCP フィルタ ロジック プラグインが使用するための XPath 式をリポジトリに追加することができます。XPath 式の詳細については、XPath 式での作業を参照してください。

  3. メッセージコンテキスト ドキュメントを破棄します。

  4. XOCP フィルタ ロジック プラグインが受信側への XOCP ビジネス メッセージの配信をキャンセルした場合、その XOCP フィルタ ロジック プラグインはメッセージを B2B エンジン内の次のコンポーネントへ転送しません。メッセージが転送された場合は、B2B エンジンでメッセージの処理が継続されます。

顧客提供のフィルタ ロジック プラグイン

ロジック プラグインを作成して、XOCP フィルタに追加することができます。新しいロジック プラグインを作成した場合、それをチェーンに追加する際の場所は XOCP フィルタ ロジック プラグインの前です。XOCP フィルタ チェーン内でのロジック プラグインの順序は、XOCP ビジネス プロトコル定義で指定されます。

顧客提供のロジック プラグインは、フィルタ機能を持たなくとも XOCP フィルタの一部になることができます。たとえば、顧客提供のロジック プラグインは、特定の受信側トレーディング パートナへ送信されたメッセージの型をトラッキングすることでサンプリングの機能を提供できます。顧客提供のロジック プラグインは、ルーティングおよびフィルタ処理の機能を提供していなくても、XOCP ルータまたは XOCP フィルタのみに追加できます。ロジック プラグインの詳細については、ロジック プラグインの作成と追加(非推奨)を参照してください。

顧客提供のロジック プラグインが受信側への XOCP ビジネス メッセージの配信をキャンセルした場合、顧客提供のロジック プラグインはメッセージを B2B エンジン内の次のコンポーネントへ転送しません。メッセージが転送された場合は、B2B エンジンでメッセージの処理が継続されます。

スケジューリング サービス

スケジューリング サービスは以下の処理を行います。

  1. サービス品質の問題および会話の管理に関連する内部処理を実行します。サービス品質の詳細については、『B2B Integration 管理アプリケーション プログラミング ガイド』を参照してください。

  2. メッセージをエンコーダへ転送します。

エンコーダ

エンコーダは、ビジネス プロトコルをサポートする必要に応じてメッセージを変換し、そのメッセージを転送サービスへ転送します。

転送サービス

転送サービスは、メッセージを受信側へ転送します。

 


メッセージコンテキスト ドキュメントでの作業

メッセージコンテキスト ドキュメントの作成および使用の詳細については、XOCP ルータ ロジック プラグインおよびXOCP フィルタ ロジック プラグインを参照してください。

次のリストは、メッセージコンテキスト ドキュメント用の文書型定義(DTD)を示します。

コード リスト 2-1 メッセージコンテキスト ドキュメント用の文書型定義

<!--	Copyright (c) 2001 BEA Systems, Inc. -->
<!-- All rights reserved -->

<!-- この DTD は XPATH ルータ および フィルタ用のメッセージコンテキスト ドキュメントを示す -->

<!ELEMENT wlc (business-protocol, conversation, sender, trading-partner+) >
<!ATTLIST wlc context ( message-router | trading-partner-router | hub-router | trading-partner-filter | hub-filter ) #REQUIRED >

<!ELEMENT business-protocol EMPTY >
<!ATTLIST business-protocol name CDATA #REQUIRED >
<!ATTLIST business-protocol version CDATA #REQUIRED >

<!ELEMENT conversation EMPTY >
<!ATTLIST conversation name CDATA #REQUIRED >
<!ATTLIST conversation version CDATA #REQUIRED >
<!ATTLIST conversation sender-role CDATA #REQUIRED >
<!ATTLIST conversation receiver-role CDATA #REQUIRED >

<!-- 送信側は、会話中のロールからメッセージを送信したトレーディング パートナ -->
<!ELEMENT sender ( trading-partner ) >

<!-- トレーディング パートナはメッセージを送受信する企業などエンティティを表す -->
<!ELEMENT trading-partner ( address, extended-property-set* ) >
<!ATTLIST trading-partner email CDATA #IMPLIED >
<!ATTLIST trading-partner fax CDATA #IMPLIED >
<!ATTLIST trading-partner name ID #REQUIRED >
<!ATTLIST trading-partner phone CDATA #IMPLIED >

<!ELEMENT address ANY >

<!ELEMENT extended-property-set ANY >
<!ATTLIST extended-property-set name CDATA #REQUIRED >

 


XPath 式での作業

この節では、XPath 式とその作成方法について説明します。

XPath 式について

XPath は World Wide Web Consortium で定義されている XML パス言語です。XOCP ルータ ロジック プラグインおよび XOCP フィルタ ロジック プラグインは、XPath 式を使用してメッセージコンテキスト ドキュメントを評価します。XOCP ルータ ロジック プラグインおよび XOCP フィルタ ロジック プラグインが使用するための XPath 式をリポジトリに追加することができます。

XOCP ルータ ロジック プラグインおよび XOCP フィルタ ロジック プラグインにある XPath 式は、以下の機能を実行します。

次の表は、各種の XPath 式の概要を示します。

表2-1 各種の XPath 式の概要

XPath 式の種類

XOCP ルータ ロジック プラグイン

XOCP フィルタ ロジック プラグイン

メッセージ

評価順 : 最初

XPath 式の数 : 1

定義の場所 : BPM ワークフローまたは B2B Java アプリケーション

用途 : 受信側の定義

適用の対象 : 送信側 BPM ワークフローまたは B2B アプリケーションからの XOCP ビジネス メッセージ

適用不可

トレーディング パートナ

評価順 : 2 番目

XPath 式の数 : 1 つまたは複数

定義の場所 : リポジトリ(WebLogic Integration B2B Console または Bulk Loader を使用)

用途 : 受信側の追加および削除

適用の対象 : 送信側トレーディング パートナからのすべての XOCP ビジネス メッセージ

評価順 : 4 番目

XPath 式の数 : 1 つまたは複数

定義の場所 : リポジトリ(WebLogic Integration B2B Console または Bulk Loader を使用)

用途 : メッセージを受信側へ送信するかどうかの決定

適用の対象 : 受信側トレーディング パートナへのすべての XOCP ビジネス メッセージ

ビジネス プロトコル

評価順 : 3 番目

XPath 式の数 : 1 つまたは複数

定義の場所 : リポジトリ(WebLogic Integration B2B Console または Bulk Loader を使用)

用途 : 受信側の追加および削除

適用の対象 : すべての送信側トレーディング パートナからのすべての XOCP ビジネス メッセージ

評価順 : 5 番目

XPath 式の数 : 1 つまたは複数

定義の場所 : リポジトリ(WebLogic Integration B2B Console または Bulk Loader を使用)

用途 : メッセージを受信側へ送信するかどうかの決定

適用の対象 : すべての受信側トレーディング パートナへのすべての XOCP ビジネス メッセージ


 

XOCP ルータ ロジック プラグインでは、XPath ルータ式によってメッセージコンテキスト ドキュメントの各部が調べられ、別の受信側トレーディング パートナのセットが選択されます。各式によって生成されたトレーディング パートナは、以前に生成された受信側トレーディング パートナのセットと置き換えられたり、現在のセットに追加されたりできます。

次の表は、XPath ルータ式がどのように使用されるかをステップを追って示します。

表2-2 XPath ルータ式に関する例

XPath 式

結果として選択される受信側トレーディング パートナのセット

1. メッセージ XPath 式でトレーディング パートナ A および B が選択される。

A、B

2. 最初のトレーディング パートナ XPath ルータ式でトレーディング パートナ C が追加される。

A、B、C

3. 2 番目のトレーディング パートナ XPath ルータ式で、以前に選択されているすべてのトレーディング パートナがトレーディング パートナ D によって置き換えられる。

D

4. 最初のビジネス プロトコル ルータ式で、トレーディング パートナ B および F が追加される。

D、B、F

5. 2 番目のビジネス プロトコル ルータ式で、トレーディング パートナ F が削除される。

D、B


 

XOCP フィルタ ロジック プラグインでは、XPath ルータ式によってメッセージコンテキスト ドキュメントの各部が調べられ、受信側トレーディング パートナへメッセージを転送するかどうかが決定されます。XPath フィルタ式は、さまざまな選択基準に基づいて true または false を返します。false が返されると、そのメッセージは評価が中止されて、受信側には送信されません。

XPath 式は、以下の情報を参照できます。

Xpath 式の詳細については、『B2B Integration 管理ガイド』の「高度なコンフィグレーション タスク」を参照。

メッセージ XPath 式の作成

XOCP ビジネス メッセージを送信する際に、送信側トレーディング パートナは XPath 式を指定して、ビジネス メッセージの受信側を定義することができます。メッセージ XPath ルータ式は、Business Process Management ワークフローまたは WebLogic Integration B2B Java アプリケーションで定義されています。この XPath 式で、XOCP ルータ ロジック プラグインによって生成される メッセージコンテキスト XML ドキュメントから <trading-partner> ノードのサブセットが選択されます。

送信側トレーディング パートナはこの XPath 式を定義して、メッセージとともに送信します。XPath 式は、B2B Integration では次のようにして定義されます。

トレーディング パートナ XPath 式の作成

トレーディング パートナ XPath 式は、トレーディング パートナごとに定義される XPath 式です。ルーティングの場合、トレーディング パートナ XPath 式は XOCP ルータ ロジック プラグインに使用されて、送信側トレーディング パートナについて定義されます。フィルタ処理の場合、トレーディング パートナ XPath 式は XOCP フィルタ ロジック プラグインに使用されて、受信側トレーディング パートナについて定義されます。

トレーディング パートナ XPath 式はリポジトリに定義されます。XOCP ルータ ロジック プラグインおよび XOCP フィルタ ロジック プラグインで使用されるトレーディング パートナ XPath 式を作成するために、以下のツールを使用できます。

ビジネス プロトコル XPath 式の作成

ビジネス プロトコル XPath 式は、特定のビジネス プロトコルごとに WebLogic Integration リポジトリで定義されている XPath 式です。ビジネス プロトコル XPath ルータ式は、対象となるプロトコルを使用するすべての受信ビジネス メッセージに適用されます。ビジネス プロトコル XPath フィルタ式は、すべての送信 XOCP ビジネス メッセージに適用されます。

ビジネス プロトコル XPath 式はリポジトリに定義されます。XOCP ルータ ロジック プラグインおよび XOCP フィルタ ロジック プラグインで使用される XPath 式を作成するために、以下のツールを使用できます。

 

ページの先頭 前 次