この章では、Oracle SOA Suite for healthcare integrationにおいて、エンドポイント間でWebサービス・ベースのメッセージ交換(通常はSOAPベース)を有効化する方法について説明します。
この章の内容は次のとおりです。
Oracle Healthcareでは、Webサービス(SOAP)ベースのメッセージをエンドポイント間で交換できます。インバウンドとアウトバウンドの両方の方向でメッセージを交換できます。ただし、現在これがサポートされているのは、HTTP経由のSOAP 1.1メッセージのみです。
Webサービス機能により、エンドポイントでのメッセージの送受信が可能になるだけでなく、プロトコル実装として階層化され、レポートや追跡、監査など、その他の一般的な機能も使用できるようになります。
多くの企業が、Healthcare固有のプロトコルに加え、Webサービスを使用したエンドポイント・ファイルの転送やメッセージ交換の統合に、要件を設けるようになってきています。
SOAPベース・メッセージは、インバウンドおよびアウトバウンド方向の両方でサポートされます。
要件に従ってカスタマイズ可能なWebサービス定義言語(WSDL)ファイルを作成またはアップロードする必要があります。
SOAPベースのアウトバウンド・メッセージを交換できるようにするには、次のタスクを実行する必要があります。
最初のタスクとして、Webサービスを登録してメッセージを交換するために必要な、WSDLファイルをアップロードする必要があります。次のいずれかの方法でWSDLをアップロードできます。
インラインWSDL - XSD情報がWSDL自体に定義されている通常のWSDLファイル
WSDLファイルとXSDファイルが含まれているZIPファイル
複数のWSDLファイルとXSDファイルが含まれているZIPファイル
WSDLをアップロードするには:
次のタスクでは、アウトバウンド・フロー用のドキュメントを作成します。現在、サポートされているドキュメント・タイプはカスタムのみであることに注意してください。
カスタム・ドキュメントを作成するには:
カスタム・ドキュメントを作成したら、エンドポイントを作成し、そのエンドポイントをカスタム・ドキュメントに関連付ける必要があります。
エンドポイントを作成するには:
エンドポイントを作成後、セキュリティ・ポリシーをアタッチできます。Oracle Enterprise Manager Fusion Middleware Controlコンソールを使用してGlobal Policy Attachment (GPA)ではなくエンドポイント・レベルでセキュリティ・ポリシーをアタッチすることで、Oracle Healthcareレベルでローカルにセキュリティ・ポリシーを保守できます。
ポリシーをローカルでアタッチすることで、次のことが保証されます:
各エンドポイントがそれぞれ独自のポリシー・メタデータを持ちます
ポリシーをエンドポイントと一緒に有効化または無効化できます
ポリシーをエンドポイントと一緒に削除できます
セキュリティ・ポリシーをエンドポイントにローカルでアタッチする手順:
SOAPベースのインバウンド・メッセージを交換するには、次のタスクを実行する必要があります。
カスタム・ドキュメントを作成したら、エンドポイントを作成し、そのエンドポイントをカスタム・ドキュメントに関連付ける必要があります。
このタスクは、アウトバウンドの場合の「エンドポイントの作成」に似ていますが、次の点が異なります。
「エンドポイントの作成」ダイアログ・ボックスで、エンドポイント名に「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をダウンロードできます。
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>
この項では、Webサービスまたは汎用SOAPを使用する場合の、同期されたリクエスト/リプライ・シナリオについて説明します。
この項の内容は次のとおりです。
コンポジットとのアウトバウンド同期の場合:
Webサービス: コンポジットに基づいて、同期化が一方向なのか、またはリクエスト/リプライ・パターンを使用しているのかを判断します。soapAction
が指定されている場合は、HTTP soapAction
ヘッダーを上書きする場合にのみ使用されます。
コンポジットとのインバウンド同期の場合:
Webサービス: 一方向か、WSDLに指定されたリクエスト/リプライ操作かの決定に、HTTPヘッダーのsoapAction
が使用されます。非応答ペイロードの場合、リクエスト/リプライでエラーが発生します。
JMSキューとのアウトバウンド同期の場合:
Webサービス: カスタムWSDLの場合は、一方向か、WSDLに指定されたリクエスト/リプライ操作かの決定に、(バックエンドから指定されたか、エンドポイントに構成されている)soapAction
が使用されます。リプライは、内部デリバリ・チャネル構成を使用してバックエンドに送信されます。汎用SOAP WSDLの場合は、エンドポイントのトランスポート・パラメータによって、一方向かリクエスト/リプライ操作かが決定されます。