This chapter describes how to enable Web-service-based message (typically SOAP-based) exchange between endpoints in Oracle SOA Suite for healthcare integration.
The chapter contains the following sections:
Oracle Healthcare allows you to exchange Web service (SOAP) based messages between endpoints.You can exchange messages in both inbound and outbound direction. However, currently, this support is limited to SOAP 1.1 messages over HTTP only.
The Web service feature not only enables endpoints to receive or send messages, but also it is layered as a protocol implementation and supports other general features such as reporting, tracking, and auditing.
Many enterprises are increasingly having a requirement to integrate their endpoint file transfer and/or message exchange using Web service (in addition to Healthcare-specific protocols.)
The support for SOAP-based messages is available for both inbound and outbound directions.
You must create or upload a Web Service Definition Language (WSDL) file that you can customize according to your requirement.
To enable exchange of outbound SOAP-based messages, you must perform the following tasks:
As the first task, you must upload the WSDL file that is required to register a Web service to exchange messages. You can upload the WSDL in the either of the following ways:
Inline WSDL - a normal WSDL file where the XSD information is defined within the WSDL itself
A ZIP file containing a WSDL file and an XSD file
A ZIP file containing multiple WSDL and XSD files
To upload a WSDL:
The next task is to create a document for the outbound flow. Please note that currently, the only supported document type is custom.
To create a custom document:
After you have created the custom document, you must create an endpoint and associate the endpoint with the custom document.
To create an endpoint:
After you create an endpoint, you can attach security policies to it. Attaching security policies at the endpoint level rather than Global Policy Attachment (GPA) using the Oracle Enterprise Manager Fusion Middleware Control console enables you to maintain security policies at the Oracle Healthcare level locally.
By attaching policies locally, you can ensure that:
Every endpoint has its own policy metadata
Policies can be enabled or disabled along with endpoints
Policies can be deleted along with endpoints
To attach security policies locally to an endpoint:
To exchange inbound SOAP-based messages, you must perform the following tasks:
This task is the same as Creating a document of the outbound case.
After you have created the custom document, you must create an endpoint and associate the endpoint with the custom document.
This task is similar to Creating an endpoint of the outbound case with the following differences:
In the Create Endpoint dialog box, specify TransmitInbound
as the endpoint name and select Inbound as the direction.
In the TransmitInbound page, add the custom document in the Document To Receive section.
After you have created an endpoint, you can attach security policies to it. This task is similar to Attaching security policies of the outbound case.
Note:
To ensure that the that the Web services have been registered for listening messages, access the following URL, log on by providing the user name and password, and check if the Web service is listed in the list of registered Web services:
http:<host>:<port>/b2b/services
You must create users (along with their passwords) in the Oracle Weblogic Server console. Access the following link to know more about creating users in the Oracle Weblogic Server console:
http://docs.oracle.com/cd/E23943_01/apirefs.1111/e13952/taskhelp/security/ManageUsersAndGroups.html
The Web service is listed in the following format:
ws/WebService
You can download the WSDL from the specific service by clicking the respective WSDL link as shown in the following graphic.
Oracle Healthcare allows you to send custom SOAP headers as a part of your outbound Web-service-based messages.
In the case of an outbound JMS channel, the sender trading partner can send multi-level custom SOAP headers as the following sample:
<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>
In the case of an outbound fabric, the sender can send multi-level custom headers as the following sample:
<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>
This section discusses the synchronized request-reply scenarios when using a Web service or the Generic SOAP.
The section contains:
In the case of outbound synchronization with a composite:
Web Service: Relies on the composite to decide whether the synchronization is one-way, or if the request/reply pattern is used. If soapAction
is provided, it is used only to overwrite the HTTP soapAction
headers.
In the case of inbound synchronization with a composite:
Web Service: Uses soapAction
from the HTTP header to decide whether it is a one-way or request/reply operation specified by the WSDL. In the case of a non-responsive payload, an error is reported for request/reply.
In the case of outbound synchronization with a JMS queue:
Web Service: In the case of custom WSDL, uses soapAction
(provided from the back end or configured in the endpoint) to decide whether it is a one-way or request/reply operation specified by the WSDL. Reply is sent to the back end by using the internal delivery channel configuration. In the case of a generic SOAP WSDL, the transport parameters of the endpoint decides on the one-way or request/reply operation.
Web Service: Uses soapAction
from the HTTP header to decide whether it is a one-way or request/reply operation specified by the WSDL. In the case of Sync, a reply must be generated in a Oracle SOA Suite for healthcare integration callout to be sent to the back end. In the case of a generic SOAP WSDL, the decision is based on the transport parameters specified in the endpoint.