Oracle® Retail Integration Bus: Integration Gateway Services Guide 14.0
Oracle® Retail Integration Bus: Integration Gateway Services Guide 14.0
Oracle® Retail Integration Bus: Integration Gateway Services Guide 14.0
December 2013
Contents
Send Us Your Comments ........................................................................................................................ vii
Preface ................................................................................................................................................................. ix
Audience.......................................................................................................................................................
Documentation Accessibility .....................................................................................................................
Related Documents .....................................................................................................................................
Customer Support .......................................................................................................................................
Review Patch Documentation ...................................................................................................................
Improved Process for Oracle Retail Documentation Corrections ........................................................
Oracle Retail Documentation on the Oracle Technology Network .....................................................
Conventions .................................................................................................................................................
ix
ix
ix
x
x
x
x
xi
1 Introduction
Prerequisites.............................................................................................................................................. 1-1
Prepare Oracle WebLogic Server ..................................................................................................... 1-1
Create the RIB IGS WebLogic Managed Server............................................................................. 1-2
3-1
3-2
3-2
3-3
3-3
3-3
3-4
3-4
3-4
3-4
3-5
3-6
3-6
3-7
3-7
3-9
3-9
vi
Does the structure of the information help you with your tasks?
Do you need different information or graphics? If so, where, and in what format?
If you find any errors or have any other suggestions for improvement, then please tell
us your name, the name of the company who has licensed our products, the title and
part number of the documentation and the chapter, section, and page number (if
available).
Before sending us your comments, you might like to check
that you have the latest version of the document and if any concerns
are already addressed. To do this, access the Online Documentation
available on the Oracle Technology Network Web site. It contains the
most current Documentation Library plus all documents revised or
released recently.
Note:
vii
viii
Preface
The purpose of this document is to introduce you to Integration Gateway Services
(IGS), a component that provides an integration infrastructure for external (third
party) connectivity to the Oracle Retail Integration Bus (RIB).
Audience
This guide is for:
Systems analysts
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle
Accessibility Program website at
http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
Access to Oracle Support
Oracle customers have access to electronic support through My Oracle Support. For
information, visit
http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit
http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are
hearing impaired.
Related Documents
For more information, see the following documents in the Oracle Retail Integration
Bus documentation set:
Customer Support
To contact Oracle Customer Support, access My Oracle Support at the following URL:
https://support.oracle.com
(Data Model documents are not available through Oracle Technology Network. These
documents are packaged with released code, or you can obtain them through My
Oracle Support.)
Documentation should be available on this Web site within a month after a product
release.
Conventions
The following text conventions are used in this document:
Convention
Meaning
boldface
italic
monospace
xi
xii
1
Introduction
Prerequisites
The RIB Integration Gateway Service (IGS) component requires Oracle WebLogic
Server 11g Release 3 (10.3.6) and Java 7.
Before you install this component, read the Oracle Retail Integration Bus Implementation
Guide for the considerations and planning steps needed for the RIB IGS deployment to
the WebLogic Server. You should also make sure the environment variable
JAVA-HOME points to Java 7.
Introduction 1-1
Prerequisites
determine the physical and logical placement of the RIB IGS component within the
WebLogic Server deployment.
2
Install Integration Gateway Services
2.
3.
4.
a.
Change the value of WlsUrl to point to the WebLogic server where IGS is
going to be deployed. The port in the WlsUrl should be the AdminServer port.
b.
Change the value of WlsTarget to the managed server name where IGS is
going to be deployed (for example, igs-service_server).
2.
3.
2-1
sh igs-admin.sh -prepare
4.
Go to rib-home/tools-home/integration-bus-gateway-services/bin. Run the igsadmin.sh -configure to configure the WebLogic server with the AQ JMS server
information listed in the rib-deployment-env-info.xml.
sh igs-admin.sh -configure
5.
Go to rib-home/tools-home/integration-bus-gateway-services/bin. Run the igsadmin.sh -deploy to deploy the igs-service.ear to the WebLogic server.
sh igs-admin.sh -deploy
6.
Note:
integration-bus-gateway-services/log
If any changes are made to the rib-deployment-env-info.xml or the
rib-<app>-adapters.xml, the -prepare, -configure, and -deploy steps,
must be executed.
Note:
1.
2.
3.
4.
5.
6.
7.
8.
Locate the Test Client link. Navigate to the WebLogic Test Client page.
9.
Select the Ping operation. Enter test data in the string arg0: text box. Click Ping.
10. The test page includes the request message and the response message.
3
Customize Integration Gateway Services
This chapter discusses how to use the Oracle Retail SOA Enabler (RSE) and Artifact
Generator (AG) tools to customize an Integration Gateway Services (IGS) service.
Customizing an IGS service also means customizing the API for RIB and the
subscribing application. While this guide focuses only on the IGS end of the process,
all activities must be completed for a working flow.
Prerequisites
For a successful customization, it is important to understand the tools and approaches
described in each of the referenced documents. The process is complex and requires
knowledge of tools as well as the end-point Oracle Retail application, RIB, and IGS
products.
IGS customization requires a number of considerations and planning steps. Planning
helps prevent reinstallation or reverting the RIB and IGS due to operational or
performance problems.
The following helps to ensure a successful customization of the RIB and the IGS:
Oracle database triggers, RIB adapters, RIB Message envelope, RIB message
payloads, and the functionality of GETNXT () and CONSUME () stored
procedures.
The physical and logical requirements and limitations of the RIB components.
The tools used in the customization and extensions of the RIB are documented
separately. The primary tools are the Oracle Retail Functional Artifact Generator and
the Oracle Retail SOA Enabler.
This guide assumes that you have created the development environment for IGS, and
that the RIB installation (rib-home) has working versions of the RSE and Artifact
Generator tools.
3-1
See the Oracle Retail Integration Bus Installation Guide, the Oracle
Retail Integration Bus Operations Guide, the Oracle Retail Service-Oriented
Architecture Enabler Tool Guide, and the Oracle Retail Functional Artifact
Generator Guide for installation and configuration instructions.
Note:
Note:
For the creation of a Web service provider, the RSE tool expects as one of its inputs one
of the outputs of the AG tool to design time artifacts. There is a runtime relationship as
well, as shown in the diagrams below, which illustrates the relationships for a Java EE
and PL/SQL Web Service Provider.
Note: RSE supports Java EE and PL/SQL. This document uses RSE
only for the Java side. The Artifact Generator creates all artifacts for
both PL/SQL and Java EE.
PL/SQL Provider
JavaEE Provider
Custom XSDs
custom-retail-public-payload-java-beans.jar
custom-retail-public-payload-database-object-types.zip
The deployable .ear with the WSDL conforming to the objects referenced in the
ServiceProviderDefLibrary.xml.
The PL/SQL or Java EE API templates that include hooks for talking to the
services. These API templates contain placeholders for business logic and
references to the Business Objects created by the AG.
A copy of the ServiceProviderDefLibrary.xml.
3-3
Approach
The following diagram describes the approach.
Using the Artifact Generator tool, extend the XSDs and generate the custom
database objects and the custom-beans. Because this is a base object, it will have
been installed with the AG tool.
See "Addition of Optional Elements" in Chapter 3 of the Oracle
Retail Artifact Generator Guide.
Note:
2.
4.
5.
Note:
Prepare RSE
Take the following steps to prepare the RSE tool:
1.
Merge the IGS GA business objects with the new AG generated custom business
objects and regenerate the IGS ear file.
a.
b.
c.
3-5
d.
e.
f.
g.
2.
Merge the IGS GA business objects with the new AG generated custom business
objects and regenerate the IGS ear file.
a.
b.
c.
Click Generate.
d.
e.
Copy /workarea/igs-customization/output_file/igs_
JavaEEServiceProvider/igs-service.ear to the
rib-home/tools-home/integration-bus-gateway-services/ear folder.
2.
3.
Note:
Note:
2.
3.
4.
Prepare RSE
Take the following steps to prepare the RSE tool:
1.
2.
Create /workarea/igs-customization/input_file.
Extract the needed files from the igs-service.ear file. This file is located in the "ear"
folder of the IGS archive.
3.
4.
Edit the serviceDef file to add new service for the family "CoReturn".
3-7
<operation name="publishCustRetSaleCreateUsing">
<documentation> This Operation invokes the publishing of
"Create" event for the CoSale.</documentation>
<input type="CustRetSaleDesc">
<documentation>
CustRetSaleDesc RBO complies with the XML schema
CustRetSaleDesc.xsd, for more information on RBO structure and semantics
please refer to the associated XSD.
</documentation>
<header headerName="businessObjecId"
type="com.oracle.retail.integration.bus.gateway.services.businessobjectid.v
1.BusinessObjectId" headerRequired="false"/>
</input>
<output type="ServiceOpStatus" custom="true">
<documentation>
ServiceOpStatus object represents the acknowledgment from
the service. It encloses the information about the Successful or Failed
stataus of the publish event.
</documentation>
</output>
<fault faultType="PublishingWSFaultException">
<documentation>Throw this exception when a "soap:Server"
side publish problem occurs.</documentation>
</fault>
<fault faultType="IllegalStateWSFaultException" >
<documentation>Throw this exception when an unknown
"soap:Server" side problem occurs.</documentation>
</fault>
</operation>
</service>
5.
6.
7.
8.
Custom BO jar =
/workarea/igs-customization/input_file/custom-igs-bo.jar
/workarea /igs-customization/input_file/igs-services-impl.jar
Do not provide a value for localization BO jar.
9.
Click Generate.
/workarea /igs-customization/output_file/
11. Extract igs_JavaEEServiceProvider.zip in current directory (output_file).
Go to output_file directory.
Copy /workarea/igs-customization/output_file/igs_
JavaEEServiceProvider/igs-service.ear to the
rib-home/tools-home/integration-bus-gateway-services/ear folder.
2.
3.
Note:
Note:
2.
3.
4.
3-9
4
IGS and Clustering (High Availability)
Integration Gateway Services are stateless and hence can be deployed in clustered
environments.
Thread Value
The thread value is managed by IGS. The max channel number is configured in
ServiceConfig.properties located in igs-services-impl.jar, and is updated by the
igs-install.sh script, or the igs-admin.sh -prepare script.
Routing Information
IGS services should be called with routing information in the Soap header. RIB uses
this information along with the business object Id to route the service calls to various
destinations. Here is an example of an IGS SOAP message with Routing Information in
the header. The Routing Information snippet is in bold letters.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://www.oracle.com/retail/integration/bus/gateway/services/Busine
ssObjectId/v1"
xmlns:v11="http://www.oracle.com/retail/integration/bus/gateway/services/Routi
ngInfos/v1"
xmlns:v12="http://www.oracle.com/retail/igs/integration/services/ASNOutPublish
ingService/v1"
xmlns:v13="http://www.oracle.com/retail/integration/base/bo/ASNOutDesc/v1">
<soapenv:Header>
<v1:BusinessObjectId>98766</v1:BusinessObjectId>
<v11:RoutingInfos> <!--Zero or more repetitions: -->
<v11:routingInfo>
<name>from_phys_loc</name>
<value>1</value>
<v11:detail>
<v11:dtl_name>from_phys_loc_type</v11:dtl_name>
<v11:dtl_value>w</v11:dtl_value>
Routing Information
</v11:detail>
</v11:routingInfo>
<v11:routingInfo>
<name>to_phys_loc</name>
<value>s_loc_1</value>
<v11:detail>
<v11:dtl_name>to_phys_loc_type</v11:dtl_name>
<v11:dtl_value>s</v11:dtl_value>
</v11:detail>
</v11:routingInfo>
<v11:routingInfo>
<name>facility_type</name>
<value>PROD</value>
</v11:routingInfo>
</v11:RoutingInfos>
</soapenv:Header>
<soapenv:Body>
<v12:publishASNOutCreateUsingASNOutDesc> <!--Optional: -->
<v13:ASNOutDesc>
<v13:schedule_nbr>8</v13:schedule_nbr>
<v13:auto_receive>a</v13:auto_receive>
<v13:to_location>jqofVP</v13:to_location>
<v13:from_location>DxZvzW</v13:from_location>
<v13:asn_nbr>pBLuagRBLOIbAjLNzNHqkLClwm</v13:asn_nbr>
<v13:asn_type>a</v13:asn_type>
<v13:container_qty>6</v13:container_qty>
<v13:bol_nbr>ySwcdqfJLoZDD</v13:bol_nbr>
<v13:shipment_date>2008-12-23T17:27:51</v13:shipment_date>
<v13:est_arr_date>2008-12-23T17:27:51</v13:est_arr_date>
<v13:ship_address1>HwLlbGro</v13:ship_address1>
<v13:ship_address2>KjVl</v13:ship_address2>
<v13:ship_address3></v13:ship_address3>
<v13:ship_address4>pl</v13:ship_address4>
<v13:ship_address5></v13:ship_address5>
<v13:ship_city>ze</v13:ship_city>
<v13:ship_state>a</v13:ship_state>
<v13:ship_zip>lQXoaWhzIewLSHMaYSiYAbvCEI</v13:ship_zip>
Routing Information
<v13:ship_country_id>a</v13:ship_country_id>
<v13:trailer_nbr>LgvamYcQ</v13:trailer_nbr>
<v13:seal_nbr>yThCPXEI</v13:seal_nbr>
<v13:transshipment_
nbr>xMKXnbWifsBSmgPLwLyMxiWLPJ</v13:transshipment_nbr>
<v13:ASNOutDistro>
<v13:distro_nbr>VBoEwQ</v13:distro_nbr>
<v13:distro_doc_type>a</v13:distro_doc_type>
<v13:cust_order_nbr>jnveQSbVZtlAIAGAqGjis</v13:cust_order_nbr>
<v13:fulfill_order_nbr>aVjQVDqDPM</v13:fulfill_order_nbr>
<v13:consumer_direct>a</v13:consumer_direct>
<v13:ASNOutCtn>
<v13:final_location>PwkJyg</v13:final_location>
<v13:container_id>sjIkOzhQkassAOJo</v13:container_id>
<v13:container_weight>12.4</v13:container_weight>
<v13:container_length>12.4</v13:container_length>
<v13:container_width>12.4</v13:container_width>
<v13:container_height>12.4</v13:container_height>
<v13:container_cube>12.2</v13:container_cube>
<v13:expedite_flag>a</v13:expedite_flag>
<v13:in_store_date>2008-12-23T17:27:51</v13:in_store_date>
<v13:tracking_nbr>dQnSDeQCfiytpdMmnPoKT</v13:tracking_nbr>
<v13:freight_charge>20.4</v13:freight_charge>
<v13:master_container_id>zfKcepZCSilooFwi</v13:master_
container_id>
<v13:ASNOutItem>
<v13:item_id>SRnrJdLRnvtElliJdjHGs</v13:item_id>
<v13:unit_qty>12.4</v13:unit_qty>
<v13:gross_cost>20.4</v13:gross_cost>
<v13:priority_level>1</v13:priority_level>
<v13:order_line_nbr>4</v13:order_line_nbr>
<v13:lot_nbr>eNQKYwML</v13:lot_nbr>
<v13:final_location>HEuXHB</v13:final_location>
<v13:from_disposition></v13:from_disposition>
<v13:to_disposition></v13:to_disposition>
<v13:voucher_number>LxIZqBAFiyJS</v13:voucher_number>
<v13:voucher_expiration_date>2008-12-7:27:51</v13:voucher_
expiration_date>
Routing Information
<v13:container_qty>6</v13:container_qty>
<v13:comments> dIei</v13:comments>
<v13:unit_cost>20.4</v13:unit_cost>
<v13:base_cost>20.4</v13:base_cost>
<v13:weight>12.4</v13:weight>
<v13:weight_uom></v13:weight_uom>
</v13:ASNOutItem>
<v13:comments> STlNVIEZ</v13:comments>
<v13:weight>12.4</v13:weight>
<v13:weight_uom></v13:weight_uom>
<v13:carrier_shipment_nbr>EVHlHCpBEjkiFPuv</v13:carrier_
shipment_nbr>
<v13:original_item_id>ghsKCYMTIOHSMeuvQRzyU</v13:original_
item_id>
</v13:ASNOutCtn>
<v13:comments> wg</v13:comments>
</v13:ASNOutDistro>
<v13:comments>OEmCazvSQuVfXXvbSyq</v13:comments>
<v13:carrier_code></v13:carrier_code>
<v13:carrier_service_code>dq</v13:carrier_service_code> <!--Optional:
-->
</v13:ASNOutDesc>
</v12:publishASNOutCreateUsingASNOutDesc>
</soapenv:Body>
</soapenv:Envelope>
5
Secure Integration Gateway Services
IGS services can be secured by attaching Web service policies to the service. When the
services are secured, the service consumers call the services with credentials and/or
certificates. If the Retail Service Backbone (RSB) is installed in your enterprise, the IGS
services are called via the RSB layer. In that case, the RSB should also be secured. Since
the Web service invocation syntax and credentials have to satisfy the security policies
at each layer, a set of policies are identified and supported by RSB that are compatible
from the consumer to RSB and then to the provider (IGS in this case). These
compatible policies are called Policy A and Policy B. Although the services can be
secured with any of the Web services policies, the scripting and automation support is
available only for policies included in Policy A and Policy B. We believe these
configurations satisfy most of the common security requirements of the customers.
Any requirements outside these configurations will have to be configured manually.
Policy A is SSL with UsernameToken. The transport layer of the service invocation
uses https for this policy. The consumers will have to provide the username and
password for invoking the service. Policy B is message protection with
UsernameToken. Policy B should be called with http. The encryption is at the message
level, instead of transport layer.
IGS services can be secured in the same way as any other Web service provided by
Oracle Retail is secured.
For more information on securing the IGS services, see the
Oracle Retail Service Backbone Security Guide.
Note:
5-1