ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suiteヘルスケア統合ユーザーズ・ガイド
11g リリース1 (11.1.1.7)
E59383-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

15 Oracle HealthcareにおけるWebサービス・ベースのメッセージ交換の有効化

この章では、Oracle SOA Suite for healthcare integrationにおいて、エンドポイント間でWebサービス・ベースのメッセージ交換(通常はSOAPベース)を有効化する方法について説明します。

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

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

Oracle Healthcareでは、Webサービス(SOAP)ベースのメッセージをエンドポイント間で交換できます。インバウンドおよびアウトバウンド方向の両方でメッセージを交換できます。ただし、現在これがサポートされているのは、HTTP経由のSOAP 1.1メッセージのみです。

Webサービス機能により、エンドポイントでのメッセージの送受信が可能になるだけでなく、プロトコル実装として階層化され、レポートや追跡、監査など、その他の一般的な機能も使用できるようになります。

多くの企業が、Healthcare固有のプロトコルに加え、Webサービスを使用したエンドポイント・ファイルの転送やメッセージ交換の統合に、要件を設けるようになってきています。

15.2 カスタムWSDLを使用したSOAPベースのサービス・メッセージの交換

SOAPベース・メッセージは、インバウンドおよびアウトバウンド方向の両方でサポートされます。要件に応じたカスタマイズが可能なWeb Service Definition Language (WSDL)ファイルを作成または更新する必要があります。

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

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

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

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

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

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

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

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

  1. Oracle SOA Suite for healthcare integrationコンソール(http://<hostname>:<port>/healthcare)にログインします(ここで、hostnameは、Oracle SOA Suiteがホストされているコンピュータの名前で、portは、SSL以外の接続の場合には、通常、8001です)。

  2. 「デザイナ」タブ、「構成」タブの順にクリックします。

  3. 「WSDL」フォルダをクリックして選択します。

  4. +アイコン(作成)をクリックします。「WSDLの作成」ダイアログが表示されます。

  5. TransmitWSDLなど、WSDLの名前を指定します。名前に空白または特殊文字が使用されていないことを確認します。

  6. 「定義ファイル」フィールドで、「参照」ボタンをクリックして、アップロードするWSDLを選択します。この例では、選択されているWSDLはTransmitDoc2way.wsdlです。「OK」をクリックして、プロセスを完了します。

    図15-1に、新しく作成されたWSDLを示します。

    図15-1 アップロードされたWSDL

    WSDLのアーティファクト
    「図15-1 アップロードされたWSDL」の説明

  7. 確認ダイアログで「保存」「OK」の順にクリックします。

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

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

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

  1. 3.4項「ドキュメント定義の作成」に指定されているようにドキュメント定義を作成します。次のように指定します。

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

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

    • ドキュメント定義 - TransmitDocumentDef

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

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

  4. 必要なWSDLメッセージを選択します(図15-2に示すように、この場合は、TransmitDocumentsRequestMessageです)。

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

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

  5. 「適用」をクリックします。

タスク3   エンドポイントの作成

カスタム・ドキュメントを作成したら、エンドポイントを作成し、そのエンドポイントをカスタム・ドキュメントに関連付ける必要があります。

エンドポイントを作成するには:

  1. Oracle Healthcareコンソールで、「デザイナ」タブの「構成」の下にある「エンドポイント」フォルダをクリックします。

  2. +アイコン(作成)をクリックします。「エンドポイントの作成」ダイアログ・ボックスが表示されます。

  3. 「トランスポート・プロトコル」リストから、WS-HTTPを選択します。

  4. エンドポイントの名前を指定します。

  5. 同じ接続を使用してドキュメントの送受信を可能にする場合は、「同期」チェック・ボックスを選択します。この場合、チェック・ボックスはそのままにします。

  6. 「方向」リストから「アウトバウンド」を選択します。

  7. 「WSDL」リストから必要なWSDLを選択します。この場合は、タスク1でアップロードしたTransmitWSDLを選択します。


    注意:

    カスタムWSDLをアップロードして使用しない場合は、「汎用SOAPの使用」チェック・ボックスを選択できます。これにより、任意のXMLドキュメントをSOAP経由で送信できるようになります。Oracle SOA Suite for healthcare integrationには、「汎用SOAPの使用」を選択する場合に使用する、事前シード済の汎用WSDLが用意されています。


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

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

  10. SOAPアクションを選択します(「WSDL」から選択可能)


    注意:

    前述のパラメータに、手動で文字列値を指定することも可能です。サービス名を手動で指定する場合は、次の形式でないと、検証エラーが発生します。

    {namespace}ServiceName


  11. 「URL」フィールドに、サーバーがリスニングするURLを入力します。

    エンドポイント構成は、図15-3のようになります。

    図15-3 エンドポイントの作成

    図15-3の説明が続きます
    「図15-3 エンドポイントの作成」の説明

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


    注意:

    アップロードしたWSDLがエンドポイントによって使用されると、そのWSDLファイルは更新できなくなります。


  13. TransmitOutboundページの「送信するドキュメント」セクションで、+ (追加)アイコンをクリックして、「ドキュメント」ウィンドウを表示します。

  14. 必要なカスタム・ドキュメント定義(TransmitDocumentDef)に移動してそれを選択し、「OK」をクリックして、そのドキュメントをエンドポイントに関連付けます。

  15. 「トランスポートの詳細」ボタンをクリックして、「トランスポート・プロトコル・パラメータ」ダイアログ・ボックスを表示します。ここでは、次のことが可能です。

    • 必要な場合は、追加のHTTPヘッダーを入力します。

    • 交換するメッセージの中にWS Addressingヘッダーを含めない場合は、「WS Addressingヘッダーの省略」を選択します。

    • Oracle Healthcare Webサービスのアウトバウンド・チャネルで、To、Doctype、DocRevisionなどのデフォルトのSOAPヘッダーを送信しないようにする場合は、「OracleのデフォルトSOAPヘッダーの省略」を選択します(図15-4を参照)。

    • 必要な場合は、「詳細」タブで、追加のSOAPヘッダーを入力します。

      図15-4 トランスポート・プロトコル・パラメータ

      図15-4の説明が続きます
      「図15-4 トランスポート・プロトコル・パラメータ」の説明

    • 「OK」をクリックして、エンドポイント・ページに戻ります。

  16. 図15-5に示すように、「有効」チェック・ボックスを選択し、「適用」をクリックして、エンドポイントをアクティブ化します。

    図15-5 アウトバウンド・メッセージ交換用のエンドポイントの構成

    図15-5の説明が続きます
    「図15-5 アウトバウンド・メッセージ交換用のエンドポイントの構成」の説明

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

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

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

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

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

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

タスク3   インバウンド・メッセージ交換用のエンドポイントの作成

カスタム・ドキュメントを作成したら、エンドポイントを作成し、そのエンドポイントをカスタム・ドキュメントに関連付ける必要があります。

このタスクは、アウトバウンドの「タスク3 エンドポイントの作成」に似ていますが、次の点が異なります。

  • 「エンドポイントの作成」ダイアログ・ボックスで、エンドポイント名に「TransmitInbound」を指定し、方向に「インバウンド」を選択します。

  • TransmitInboundページで、「受信するドキュメント」セクションにカスタム・ドキュメントを追加します。


注意:

リスニング・メッセージに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/WebService

次の図に示されている、それぞれの「WSDL」リンクをクリックすると、特定のサービスからWSDLをダウンロードできます。

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

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

Oracle Healthcareでは、アウトバウンドの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="hc.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>

15.4 リクエスト/リプライ・シナリオの例

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

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

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

コンポジットとのアウトバウンド同期の場合:

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

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

コンポジットとのインバウンド同期の場合:

  • Webサービス: 一方向か、WSDLに指定されたリクエスト/リプライ操作かの決定に、HTTPヘッダーのsoapActionが使用されます。ペイロードが応答しない場合は、リクエスト/リプライでエラーがレポートされます。

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

JMSキューとのアウトバウンド同期の場合:

  • Webサービス: カスタムWSDLの場合は、一方向か、WSDLに指定されたリクエスト/リプライ操作かの決定に、(バックエンドから指定されたか、エンドポイントに構成されている)soapActionが使用されます。リプライは、内部デリバリ・チャネル構成を使用してバックエンドに送信されます。汎用SOAP WSDLの場合は、エンドポイントのトランスポート・パラメータによって、一方向かリクエスト/リプライ操作かが決定されます。

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

  • Webサービス: 一方向か、WSDLに指定されたリクエスト/リプライ操作かの決定に、HTTPヘッダーのsoapActionが使用されます。「同期」の場合は、バックエンドに送信されるOracle SOA Suite for healthcare integrationのコールアウトに、リプライを生成する必要があります。汎用SOAP WSDLの場合は、エンドポイントに指定されているトランスポート・パラメータに基づいて決定されます。