プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle SOA Suiteヘルスケア統合ユーザーズ・ガイド
12c (12.2.1.2.0)
E82774-02
目次へ移動
目次

前
前へ
次
次へ

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サービス定義言語(WSDL)ファイルを作成またはアップロードする必要があります。

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

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

15.2.1.1 WSDLのアップロード

最初のタスクとして、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の名前を指定します。名前に空白または特殊文字が使用されていないことを確認します。ZipされたWSDLの場合は、Zipファイルを選択してからルートWSDLを選択します。
  6. 「定義ファイル」フィールドで、「参照」ボタンをクリックして、アップロードするWSDLを選択します。この例では、選択されているWSDLはTransmitDoc2way.wsdlです。「OK」をクリックして、プロセスを完了します。

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

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

    図15-1の説明が続きます
    「図15-1 アップロードされたWSDL」の説明
  7. 確認ダイアログで「保存」「OK」の順にクリックします。

15.2.1.2 ドキュメントの作成

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

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

  1. 「ドキュメント定義の作成」に指定されているようにドキュメント定義を作成します。次のように指定します。
    • ドキュメント・バージョン - 1.0

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

    • ドキュメント定義 - TransmitDocumentDef

  2. 「WSDLの使用」を選択します。
  3. 関連するWSDLアーティファクトを選択します(この場合はTransmitWSDL)。
  4. 必要なWSDLメッセージを選択します(図15-2に示すように、この場合は、TransmitDocumentsRequestMessageです)。

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

    図15-2の説明が続きます
    「図15-2 ドキュメントの作成」の説明
  5. 「適用」をクリックします。

15.2.1.3 エンドポイントの作成

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

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

  1. Oracle Healthcareコンソールで、「デザイナ」タブの「構成」の下にある「エンドポイント」フォルダをクリックします。
  2. +ボタン(作成)をクリックします。「エンドポイントの作成」ダイアログ・ボックスが表示されます。
  3. 「トランスポート・プロトコル」リストから、WS-HTTPを選択します。
  4. エンドポイントの名前を指定します。
  5. 同じ接続を使用してドキュメントの送受信を可能にする場合は、「同期」チェック・ボックスを選択します。この場合、チェック・ボックスはそのままにします。
  6. 「方向」リストから「アウトバウンド」を選択します。
  7. 「WSDL」リストから必要なWSDLを選択します。この場合は、「WSDLのアップロード」でアップロードした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. ペイロードをWSDLまたはスキーマに対して検証する必要がある場合は、検証を有効にします。図15-5に示すように、「有効」チェック・ボックスを選択し、「適用」をクリックして、エンドポイントをアクティブ化します。

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

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

15.2.1.4 セキュリティ・ポリシーのアタッチ

エンドポイントを作成後、セキュリティ・ポリシーをアタッチできます。Oracle Enterprise Manager Fusion Middleware Controlコンソールを使用してGlobal Policy Attachment (GPA)ではなくエンドポイント・レベルでセキュリティ・ポリシーをアタッチすることで、Oracle Healthcareレベルでローカルにセキュリティ・ポリシーを保守できます。

ポリシーをローカルでアタッチすることで、次のことが保証されます:

  • 各エンドポイントがそれぞれ独自のポリシー・メタデータを持ちます

  • ポリシーをエンドポイントと一緒に有効化または無効化できます

  • ポリシーをエンドポイントと一緒に削除できます

セキュリティ・ポリシーをエンドポイントにローカルでアタッチする手順:

  1. 「エンドポイントの作成」で作成したエンドポイントを開きます。
  2. エンドポイント・ページで、右上隅にある「ポリシー構成の表示」ボタンをクリックします。「ポリシー構成」セクションが表示されます。
  3. 「使用可能なポリシー」にある使用可能なWebサービス・ポリシーのリストから、エンドポイントにアタッチするポリシーを選択します。[Ctrl]キーを押しながらポリシー名をクリックすると、複数のポリシーを選択できます。
  4. 「アタッチ」をクリックして、選択したポリシー(複数可)をエンドポイントにアタッチします。すべてをアタッチ・ボタンをクリックすると、使用可能なすべてのポリシーをエンドポイントにアタッチできます(図15-6を参照)。

    図15-6 セキュリティ・ポリシーのアタッチ

    図15-6の説明が続きます
    「図15-6 セキュリティ・ポリシーのアタッチ」の説明

    注意:

    いくつかのポリシーは、お互いに矛盾します。矛盾するポリシーを一緒にエンドポイントにアタッチしようとすると、エラーが表示されます。

  5. 保存」ボタンをクリックします。

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

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

15.2.2.1 WSDLのアップロード

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

15.2.2.2 インバウンド・フロー用のドキュメントの作成

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

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

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

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

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

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

15.2.2.4 インバウンド・メッセージ交換のためのセキュリティ・ポリシーのアタッチ

エンドポイントを作成後、セキュリティ・ポリシーをアタッチできます。このタスクは、アウトバウンドの場合の「セキュリティ・ポリシーのアタッチ」とほぼ同じです。

注意:

リスニング・メッセージに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をダウンロードできます。

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の場合は、エンドポイントに指定されているトランスポート・パラメータに基づいて決定されます。