ヘッダーをスキップ
Oracle® Fusion Middleware Oracle B2Bユーザーズ・ガイド
11g リリース1 (11.1.1.7)
B61381-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

22 Webサービスベースのメッセージ交換の有効化

この章では、Oracle B2Bで取引パートナ間のWebサービスベースのメッセージ(通常はSOAPベース)交換を有効化する方法について説明します。

この章は次の項で構成されています。

22.1 Webサービスベースのメッセージ交換の概要

Oracle B2Bでは、取引パートナ間でWebサービス(SOAP)ベースのメッセージを交換できます。インバウンドとアウトバウンドの双方向のメッセージを交換できます。ただし、現在サポートされているのは、HTTPを使用するSOAP 1.1メッセージのみです。

Webサービス機能を使用すると、パートナ間でメッセージを送受信できるだけでなく、プロトコル実装レイヤーとしてレポート、追跡および監査などの一般機能をサポートします。

多くの企業で、(B2B固有のプロトコル以外に) Webサービスを使用して取引パートナのファイル転送またはメッセージ交換、あるいはその両方を統合する必要性がますます高まっています。

Oracle B2Bでは、次の仕様に基づいてWebサービスをサポートします。ただし、ときには実装が異なる可能性があります。

22.2 カスタムWSDLファイルによるSOAPベースのサービス・メッセージの交換

SOAPベースのメッセージは、インバウンドとアウトバウンドの双方向でサポートされています。要件に従ってカスタマイズ可能なWebサービス定義言語(WSDL)ファイルを作成またはアップロードする必要があります。

22.2.1 SOAPベースのアウトバウンド・メッセージの交換

SOAPベースのアウトバウンド・メッセージを交換できるようにするには、次のタスクを実行する必要があります。

タスク1   WSDLのアップロード

最初のタスクとして、Webサービスを登録してメッセージを交換するために必要な、WSDLファイルをアップロードする必要があります。次のいずれかの方法でWSDLをアップロードできます。

  • インラインWSDL: WSDL内にXSD情報が定義されている通常のWSDLファイル

  • WSDLファイルとXSDファイルが含まれるZIPファイル

  • 複数のWSDLファイルとXSDファイルが含まれるZIPファイル

WSDLをアップロードするには:

  1. Oracle B2Bコンソール(http://<hostname>:<port>/b2bconsole)にログオンします。hostnameはOracle SOA Suiteをホストしているコンピュータの名前、portは通常は8001です(非SSL接続の場合)。

  2. 「管理」リンクをクリックし、「WSDL」タブをクリックします。

  3. +ボタン(「WSDLの追加」)をクリックします。「WSDL」表に新しいWSDLのエントリが作成されます。

  4. WSDLの名前(Transmit_WSDLなど)を指定します。

  5. 「WSDL」セクションで、「参照」ボタンをクリックし、アップロードするWSDLを選択します。次の例では、TransmitDoc2way.wsdlというWSDLが選択されています。WSDLの詳細は、図22-1に示すように、「アップロードされたWSDLアーティファクト情報」セクションに表示されます。

    図22-1 WSDLのアーティファクト

    WSDLのアーティファクト
    「図22-1 WSDLのアーティファクト」の説明

  6. 「保存」をクリックし、確認ダイアログで「OK」をクリックします。


注意:

アップロードしたWSDLファイルがチャネルなどの他のメタデータによって参照され、アグリーメントの一部としてデプロイされている場合、そのWSDLファイルへの更新は無効です。これらの参照が非アクティブになった後にのみ、アップロードしたWSDLを更新できます。


タスク2   ドキュメントの作成

次のタスクとして、アウトバウンド・フローのドキュメントを作成します。現在はドキュメント・タイプとしてカスタムのみがサポートされていることに注意してください。

カスタム・ドキュメントを作成するには:

  1. 第4.2項「ドキュメント定義の作成」での指定に従って、ドキュメント定義を作成します。次のように指定します。

    • ドキュメント・バージョン: 1.0

    • ドキュメント・タイプ: TransmitDocumentRequest

    • ドキュメント定義: TransmitDocumentDef

  2. 「WSDLの使用」を選択します。

  3. 関連するWSDLアーティファクトを選択します。この場合はTransmit_WSDLです。

  4. 必要なWSDLメッセージを選択します。この場合はTransmitDocumentsRequestMessageです。

    図22-2 ドキュメントの作成

    ドキュメントの作成
    「図22-2 ドキュメントの作成」の説明

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

タスク3   パートナ・ドキュメントの一部としてドキュメントを追加

3番目のタスクとして、新しく作成したカスタム・ドキュメントをパートナ・ドキュメントの一部として追加します。

ドキュメントを追加するには:

  1. 「パートナ」リンクをクリックし、「ドキュメント」タブをクリックします。

  2. パートナ・セクションでリモート取引パートナ名(GlobalChips)をクリックして選択します。

  3. 右側ペインの「ドキュメント」セクションで+ボタン(「ドキュメント定義の追加」)をクリックし、「ドキュメント定義の選択」ウィンドウを表示します。

  4. 追加するドキュメント定義に移動し、「追加」をクリックしてドキュメント定義を追加します。

  5. 「ドキュメント」タブで「保存」をクリックします。

    図22-3に示すように、ドキュメントがパートナ・ドキュメントのリストに追加されます。

    図22-3 ドキュメントの追加

    ドキュメントの追加
    「図22-3 ドキュメントの追加」の説明

タスク4   取引パートナ・デリバリ・チャネルの作成

ドキュメントを追加した後、メッセージを送信するための取引パートナ・デリバリ・チャネルを作成する必要があります。

取引パートナ・デリバリ・チャネルを追加するには:

  1. 左側の「パートナ」で、取引パートナ(GlobalChips)をクリックして選択します。

  2. 「チャネル」タブをクリックします。

  3. +ボタン(「取引パートナへのチャネルの追加」)をクリックします。

  4. 「チャネル」セクションで、チャネルの名前(GlobalChips_Channelなど)を指定します。

  5. 「プロトコル」リストでGeneric WS-1.0を選択します。

  6. 「チャネルの詳細」セクションの「Webサービス・パラメータ」タブで、次を実行します。

    • Transmit_WSDL (「WSDLアーティファクト」リストからアップロードしたWSDL)を選択します。

    • 使用可能なサービス(この場合はTransmitsDocumentService)を選択します。


      注意:

      Oracle B2Bでは、手動でサービス、ポートおよびアクションを指定できます。これは、選択したWSDLの一部として使用可能なもの以外のサービス、ポートまたはアクションを指定する必要がある場合に便利です。前述のパラメータに、文字列を手動で指定することもできます。サービス名を手動で指定する場合、次のフォーマットを使用する必要があります。そうしないと、検証エラーになります。

      {namespace}ServiceName

      namespaceはWSDLのターゲット・ネームスペースと一致する必要があります。一致しない場合、セキュリティ・ポリシー構成が適用されません。


    • 使用可能なポート(TransmitDocuments2WayPort)を選択します。

    • SOAPアクション(WSDLから取得)を選択します。

    • 「エンドポイント(URL)」にサーバーがリスニングするURLを入力します。これは、取引パートナGlobalChipsのURLです。

    • 必要に応じて、追加HTTPヘッダーを入力します。

    • 交換するメッセージに含まれるWS Addressingヘッダーを破棄する必要がある場合、「WS Addressingヘッダーの省略」を選択します。

    • Oracle B2B Webサービスのアウトバウンド・チャネルで、メッセージの一部としてFrom、To、DoctypeおよびDocRevisionなどのデフォルトSOAPヘッダーを送信する必要がない場合、デフォルトSOAPヘッダーの省略を選択します。

    • Webサービスにグローバルにポリシーを添付する必要がある場合、「EMポリシー構成のページ」リンクをクリックし、Oracle Fusion Middleware Enterprise Manager Controlコンソールの「ポリシー・セット・サマリー」ページにアクセスします。

      詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシー・セットの作成および管理に関する項を参照してください。

  7. 図22-4に示すように、「保存」をクリックします。

    図22-4 Webサービス・チャネルの詳細

    チャネルの詳細
    「図22-4 Webサービス・チャネルの詳細」の説明


    注意:

    カスタムWSDLをアップロードして使用する必要がない場合、「汎用SOAPの使用」チェック・ボックスを選択できます。これにより、SOAPを使用して任意のXMLドキュメントを送信できるようになり、「チャネル」/「ドキュメント」ページでWSDLを関連付ける必要はありません。Oracle B2Bは、「汎用SOAPの使用」を選択した場合に使用される、事前にシードされている汎用WSDLを提供します。


タスク5   アグリーメントの作成とデプロイ

最後のタスクとして、取引パートナ・アグリーメントを作成してデプロイします。

アグリーメントの作成とデプロイの詳細は、第6章「取引パートナ・アグリーメントの作成とデプロイ」を参照してください。

22.2.2 SOAPベースのインバウンド・メッセージの交換

SOAPベースのインバウンド・メッセージを交換するには、次のタスクを実行する必要があります。

タスク1   WSDLのアップロード

このタスクは、アウトバウンドの場合のタスク1「WSDLのアップロード」と同じです。

タスク2   インバウンド・フローのドキュメントの作成

このタスクは、アウトバウンドの場合のタスク2「ドキュメントの作成」と同じです。

タスク3   パートナ・ドキュメントの一部としてドキュメントを追加

このタスクは、アウトバウンドの場合のタスク3「パートナ・ドキュメントの一部としてドキュメントを追加」と同じです。

タスク4   リスニング・チャネルの作成

次のタスクとして、着信メッセージを受信するリスニング・チャネルを作成します。

リスニング・チャネルを作成するには:

  1. 「管理」リンクをクリックし、「リスニング・チャネル」タブをクリックします。

  2. +ボタン(「取引パートナへのチャネルの追加」)をクリックします。

  3. 「リスニング・チャネル」セクションで、チャネルの名前(Acme_ListeningChannelなど)を指定します。

  4. 「プロトコル」リストでGeneric WS-1.0を選択します。

  5. 「チャネルの詳細」セクションの「Webサービス・パラメータ」タブで、次を実行します。

    • Transmit_WSDL (「WSDLアーティファクト」リストからアップロードしたWSDL)を選択します。

    • 使用可能なサービス(この場合はTransmitsDocumentService)を選択します。

    • 使用可能なポート(TransmitDocuments2WayPort)を選択します。

    • 「エンドポイント(URL)」にサーバーがリスニングするURLを入力します。これは、取引パートナGlobalChipsのURLです。

      「エンドポイント(URL)」には、サーバーがリスニングするパートナのURLが自動的に入力されます。

    • Webサービスにグローバルにポリシーを添付する必要がある場合、「EMポリシー構成のページ」リンクをクリックし、Oracle Fusion Middleware Enterprise Manager Controlコンソールの「ポリシー・セット・サマリー」ページにアクセスします。


    注意:

    カスタムWSDLをアップロードして使用するのではなく、標準WSDLを使用する場合、「汎用SOAPの使用」チェック・ボックスを選択できます。これにより、SOAPを使用して任意のXMLドキュメントを送信できるようになり、「チャネル」/「ドキュメント」ページでWSDLを関連付ける必要はありません。Oracle B2Bは、「汎用SOAPの使用」を選択した場合に使用される、事前にシードされている汎用WSDLを提供します。


  6. 「チャネル属性」タブをクリックし、「チャネルの有効化」が選択されていることを確認します。

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


    注意:

    リスニング・メッセージのWebサービスが登録されたことを確認するには、次のURLにアクセスし、ユーザー名とパスワードを入力してログオンし、登録済WebサービスのリストにWebサービスが表示されているかどうかを確認します。

    http:<host>:<port>/b2b/services

    Oracle Weblogic Serverコンソールでユーザー(およびそのパスワード)を作成する必要があります。Oracle Weblogic Serverコンソールでのユーザーの作成の詳細は、次のリンク先を参照してください。

    http://docs.oracle.com/cd/E23943_01/apirefs.1111/e13952/taskhelp/security/ManageUsersAndGroups.html

    Webサービスは、次のフォーマットでリストされます。

    ws/Listening_Channel_Name

    次の図に示すように、特定のサービスのWSDLをダウンロードするには、対応する「WSDL」リンクをクリックします。

    登録済Webサービス
    図bb_partnet_ws5.gifの説明


注意:

リスニング・チャネルを作成して有効化した後は、チャネルを編集して別のWSDLを使用するように指定することはできません。チャネルを削除して新しいチャネルを作成する必要があります。


22.3 wsa.actionの構成

wsa.actionは、次のような様々な方法で構成できます。

22.4 カスタムSOAPヘッダーの送信

Oracle B2Bでは、Webサービスベースのアウトバウンド・メッセージの一部としてカスタムSOAPヘッダーを送信できます。

アウトバウンドJMSチャネルの場合、送信者側の取引パートナは、次のサンプルのように、複数レベルのカスタムSOAPヘッダーを送信できます。

<CustomSOAPHeader xmlns="http://schemas.xmlsoap.org/soap/envelope/">
   <hello xmlns="http://xmlns.oracle1.com/soa1/generic/soap">
       <name xmlns="http://MY_NAME_SPACE">
         <firstname>John</firstname>
         <lastname>Doe</lastname>
       </name>
    </hello>
</CustomSOAPHeader>

アウトバウンド・ファブリックの場合、送信者は、次のサンプルのように、複数レベルのカスタム・ヘッダーを送信できます。

<bpelx:inputProperty name="b2b.customSOAPHeaders" expression="'<CustomSOAPHeader xmlns="http://schemas.xmlsoap.org/soap/envelope/">
   <hello xmlns="http://xmlns.oracle1.com/soa1/generic/soap">
       <name xmlns="http://MY_NAME_SPACE">
         <firstname>John</firstname>
         <lastname>Doe</lastname>
       </name>
    </hello>
</CustomSOAPHeader>

22.5 Webサービスへのポリシーの添付

この項では、Oracle Fusion Middleware Enterprise Management Controlコンソールを使用して、ポリシー・セットをWebサービスに添付する方法について説明します。

ユーザー名トークン・ポリシーと必要な資格証明を作成するには、次のタスクを実行する必要があります。

タスク1   デフォルト資格証明のマップとキーの作成

最初のタスクは資格証明の作成です。

資格証明を作成するには:

  1. 次のURLにアクセスし、Oracle Fusion Middleware Enterprise Management Controlコンソールにログオンします。

    http://<hostname>:<port>/em

    ここで:

    • hostname: Oracle SOA Suiteを実行しているコンピュータの名前

    • port: 管理サーバーのポート番号(通常は7001)

  2. 「ターゲット・ナビゲーション」ペインの「WebLogicドメイン」で、soainfraなどのドメイン名を開きます。

  3. soainfraを右クリックし、「セキュリティ」「資格証明」を選択して、図22-5に示すように、「資格証明」ページを表示します。

    図22-5 「資格証明」ページへのアクセス

    図22-5の説明が続きます
    「図22-5 「資格証明」ページへのアクセス」の説明

  4. 「資格証明」ページで、「マップの作成」をクリックします。

  5. 図22-6に示すように、「マップの作成」ダイアログ・ボックスでマップ名としてoracle.wsm.securityと入力し、「OK」をクリックします。

    図22-6 「マップの作成」ダイアログ・ボックス

    図22-6の説明が続きます
    「図22-6 「マップの作成」ダイアログ・ボックス」の説明

  6. oracle.wsm.security (作成したマップ)を選択して「キーの作成」をクリックし、「キーの作成」ダイアログ・ボックスを表示します。

  7. 図22-7に示すように、「キーの作成」ダイアログ・ボックスで、次を実行します。

    1. 「キー」フィールドにキー名としてbasic.credentialsと入力します。

    2. 「タイプ」で「パスワード」を選択します。

    3. 管理ユーザー名、この場合はweblogicを入力します。

    4. 「パスワード」フィールドにパスワードを入力します。

    5. 前の手順で入力したパスワードを確認します。

    6. 「OK」をクリックします。

    図22-7 「キーの作成」ダイアログ・ボックス

    図22-7の説明が続きます
    図22-7「「キーの作成」ダイアログ・ボックス」の説明

タスク2   アウトバウンド・ポリシー・セットの作成と添付

次のタスクとして、アウトバウンド・ポリシー・セットを作成し、Webサービスに添付します。

アウトバウンド・ポリシー・セットを作成してWebサービスに添付するには:

  1. 図22-8に示すように、ドメイン名(soainfra)ページで「WebLogicドメイン」リストをクリックして「Webサービス」「ポリシー・セット」を選択し、「ポリシー・セット・サマリー」ページを表示します。

    図22-8 「ポリシー・セット・サマリー」ページ

    図22-8の説明が続きます
    「図22-8 「ポリシー・セット・サマリー」ページ」の説明

  2. 「ポリシー・セット・サマリー」ページで「作成」をクリックし、「ポリシー・セットの作成」ウィザードを表示します。

  3. 図22-9に示すように、名前としてb2bOutboundTestを入力し、「有効」を選択し、「リソース・タイプ」リストで「Webサービス・クライアント」を選択して、「次」をクリックします。

    図22-9 「ポリシー・セットの作成」→「一般情報の入力」ページ

    図22-9の説明が続きます
    「図22-9 「ポリシー・セットの作成」→「一般情報の入力」ページ」の説明

  4. 図22-10に示すように、「リソース・スコープの入力」ページで次のように入力し、「次」をクリックします。

    • ドメイン名(soainfraなど)

    • アプリケーション名(soainfraなど)

    • アプリケーション・モジュール名(soainfraなど)

    • SOA参照またはWebサービス・クライアントの名前({http://www.spscommerce.com/WS/TransmitDocuments}TransmitDocumentsServiceなど)

    • ポート名(TransmitDocumentsSoapHttpPort)

    図22-10 「ポリシー・セットの作成」 - 「リソース・スコープの入力」ページ

    図22-10の説明が続きます
    「図22-10 「ポリシー・セットの作成」 - 「リソース・スコープの入力」ページ」の説明

  5. 「制約の入力」ページで、「次」をクリックします。

  6. 図22-11に示すように、「ポリシー参照の追加」ページの「使用可能なポリシー」セクションでoracle/wss_username_token_client_policyを選択し、「アタッチ」をクリックした後、「次」をクリックします。

    図22-11 「ポリシー・セットの作成」 - 「ポリシー参照の追加」ページ

    図22-11の説明が続きます
    「図22-11 「ポリシー・セットの作成」 - 「ポリシー参照の追加」ページ」の説明

  7. 「サマリー」ページで「保存」をクリックし、「ポリシー・セット・サマリー」ページに戻ります。

タスク3   インバウンド・ポリシー・セットの作成と添付

最後のタスクとして、インバウンド・ポリシー・セットを作成し、添付します。

インバウンド・ポリシー・セットを作成してWebサービスに添付するには:

  1. タスク2の手順1と手順2を繰り返します。

  2. 図22-12に示すように、名前としてb2bIutboundTestを入力し、「有効」を選択し、「リソース・タイプ」リストで「Webサービス・エンドポイント」を選択して、「次」をクリックします。

    図22-12 「ポリシー・セットの作成」→「一般情報の入力」ページ

    図22-12の説明が続きます
    「図22-12 「ポリシー・セットの作成」→「一般情報の入力」ページ」の説明

  3. 図22-13に示すように、「リソース・スコープの入力」ページで次のように入力し、「次」をクリックします。

    • ドメイン名(soainfraなど)

    • アプリケーション名(soainfraなど)

    • アプリケーション・モジュール名(soainfraなど)

    • SOA参照またはWebサービス・クライアントの名前({http://www.spscommerce.com/WS/TransmitDocuments}TransmitDocumentsServiceなど)

    • ポート名(TransmitDocumentsSoapHttpPort)

    図22-13 「ポリシー・セットの作成」 - 「リソース・スコープの入力」ページ

    図22-13の説明が続きます
    「図22-13 「ポリシー・セットの作成」 - 「リソース・スコープの入力」ページ」の説明

  4. 「制約の入力」ページで、「次」をクリックします。

  5. 「ポリシー参照の追加」ページの「使用可能なポリシー」セクションでoracle/wss_username_token_service_policyを選択し、「アタッチ」をクリックした後、「次」をクリックします。

  6. 「サマリー」ページで「保存」をクリックし、「ポリシー・セット・サマリー」ページに戻ります。

22.6 実行時の取引パートナの識別

実行時に、様々なトランスポート・ヘッダーに基づいて受信するメッセージの送信元の取引パートナを識別できます。

取引パートナは、次の情報(リストは優先度の高い順)を使用して識別できます。

22.7 リクエストとリプライのサンプル・シナリオ

この項では、WebサービスまたはGeneric SOAPを使用する場合の同期化されたリクエストとリプライのシナリオについて説明します。

この項の内容は、次のとおりです。

22.7.1 アウトバウンド同期化: コンポジット

コンポジットを使用するアウトバウンド同期化の場合:

  • Webサービス: コンポジットに基づいて、同期化が一方向なのか、またはリクエスト/リプライ・パターンを使用しているのかを判断します。soapActionが指定されている場合、HTTP soapActionヘッダーの上書きにのみ使用されます。

    同期化されているリクエスト/リプライ・メッセージの再発行は、コンポジットから実行する必要があります。そのようなメッセージの再発行をOracle B2Bコンソールから実行した場合、メッセージは一方向として処理されます。

  • Generic SOAP: コンポジットに基づいて、一方向なのか、またはリクエスト/リプライ操作なのかを判断します。チャネル構成(「なし」/「同期」)は有効になりません。

22.7.2 インバウンド同期化: コンポジット

コンポジットを使用するインバウンド同期化の場合:

  • Webサービス: HTTPヘッダーのsoapActionに基づいて、一方向なのか、またはWSDLで指定されているリクエスト/リプライ操作なのかを判断します。WSDLでsoapActionが定義されていない場合、チャネル構成が使用されます。非応答ペイロードの場合、リクエスト/リプライでエラーが発生します。

  • Generic SOAP: チャネル構成(「なし」/「同期」)に基づきます。非応答ペイロードの場合、リクエスト/リプライでエラーが発生します。

22.7.3 アウトバウンド同期化: JMSキュー

JMSキューを使用するアウトバウンド同期化の場合:

  • Webサービス: soapAction (バックエンドから提供されるか、またはリスニング・チャネルに構成されている)に基づいて、一方向なのか、またはWSDLで指定されているリクエスト/リプライ操作なのかを判断します。WSDLでsoapActionが見つからない場合、デフォルトでチャネル構成が使用されます。リプライは、インバウンド・アグリーメント構成を使用して、バックエンドに送信されます。

  • Generic SOAP: チャネル構成(「なし」/「同期」)に基づきます。「同期」の場合、リプライがないと、エラーが発生します。リプライは、インバウンド・アグリーメント構成を使用して、バックエンドに送信されます。

22.7.4 インバウンド同期化: JMSキュー

  • Webサービス: HTTPヘッダーのsoapActionに基づいて、一方向なのか、またはWSDLで指定されているリクエスト/リプライ操作なのかを判断します。WSDLでsoapActionが定義されていない場合、チャネル構成(「なし」/「同期」)が使用されます。「同期」の場合、取引パートナにレスポンスとして送信するリプライを、Oracle B2Bコールアウトで生成する必要があります。

    着信リクエストでWS-Addressingが有効化されている場合、レスポンス・メッセージはWS-Addressing必須ヘッダーを送信します。

  • Generic SOAP: チャネル構成(「なし」/「同期」)に基づきます。「同期」の場合、取引パートナにレスポンスとして送信するリプライを、Oracle B2Bコールアウトで生成する必要があります。