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をアップロードするには:
15.2.1.2 ドキュメントの作成
次のタスクでは、アウトバウンド・フロー用のドキュメントを作成します。現在、サポートされているドキュメント・タイプはカスタムのみであることに注意してください。
カスタム・ドキュメントを作成するには:
15.2.1.3 エンドポイントの作成
カスタム・ドキュメントを作成したら、エンドポイントを作成し、そのエンドポイントをカスタム・ドキュメントに関連付ける必要があります。
エンドポイントを作成するには:
15.2.1.4 セキュリティ・ポリシーのアタッチ
エンドポイントを作成後、セキュリティ・ポリシーをアタッチできます。Oracle Enterprise Manager Fusion Middleware Controlコンソールを使用してGlobal Policy Attachment (GPA)ではなくエンドポイント・レベルでセキュリティ・ポリシーをアタッチすることで、Oracle Healthcareレベルでローカルにセキュリティ・ポリシーを保守できます。
ポリシーをローカルでアタッチすることで、次のことが保証されます:
-
各エンドポイントがそれぞれ独自のポリシー・メタデータを持ちます
-
ポリシーをエンドポイントと一緒に有効化または無効化できます
-
ポリシーをエンドポイントと一緒に削除できます
セキュリティ・ポリシーをエンドポイントにローカルでアタッチするには:
15.2.2 SOAPベースのインバウンド・メッセージの交換
SOAPベースのインバウンド・メッセージを交換するには、次のタスクを実行する必要があります。
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
が指定されている場合、HTTPsoapAction
ヘッダーの上書きにのみ使用されます。
15.4.2 インバウンド同期化: コンポジット
コンポジットとのインバウンド同期の場合:
-
Webサービス: 一方向か、WSDLに指定されたリクエスト/リプライ操作かの決定に、HTTPヘッダーの
soapAction
が使用されます。非応答ペイロードの場合、リクエスト/リプライでエラーが発生します。
15.4.3 アウトバウンド同期: JMSキュー
JMSキューとのアウトバウンド同期の場合:
-
Webサービス: カスタムWSDLの場合は、一方向か、WSDLに指定されたリクエスト/リプライ操作かの決定に、(バックエンドから指定されたか、エンドポイントに構成されている)
soapAction
が使用されます。リプライは、内部デリバリ・チャネル構成を使用してバックエンドに送信されます。汎用SOAP WSDLの場合は、エンドポイントのトランスポート・パラメータによって、一方向かリクエスト/リプライ操作かが決定されます。