24.11.2012 Views

Using Oracle Service Bus to Integrate Oracle Retail with External ...

Using Oracle Service Bus to Integrate Oracle Retail with External ...

Using Oracle Service Bus to Integrate Oracle Retail with External ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

An <strong>Oracle</strong> <strong>Retail</strong> White Paper<br />

September 2012<br />

<strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong><br />

<strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

Contents<br />

Executive Overview ................................................................................................................... 3<br />

Introduction ................................................................................................................................ 3<br />

Integration Gateway <strong>Service</strong>s .................................................................................................... 5<br />

<strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> Publishing and Subscribing <strong>to</strong> RIB AQ/JMS ................................................ 7<br />

Utilizing <strong>Oracle</strong> <strong>Retail</strong> Web <strong>Service</strong>s .......................................................................................... 8<br />

Cus<strong>to</strong>mization and Extensions ................................................................................................... 9<br />

Cus<strong>to</strong>mer Implementation Examples .........................................................................................10<br />

Petco .....................................................................................................................................10<br />

The Beer S<strong>to</strong>re ......................................................................................................................13<br />

Conclusion ................................................................................................................................13<br />

Resources .................................................................................................................................13<br />

Disclaimer<br />

The following is intended <strong>to</strong> outline our general product direction. It is intended for information purposes only,<br />

and may not be incorporated in<strong>to</strong> any contract. It is not a commitment <strong>to</strong> deliver any material, code, or<br />

functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing<br />

of any features or functionality described for <strong>Oracle</strong>’s products remains at the sole discretion of <strong>Oracle</strong>.


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

Executive Overview<br />

One of the key challenges for cus<strong>to</strong>mers in implementing <strong>Oracle</strong> <strong>Retail</strong>’s suite for merchandising<br />

operations management is integrating <strong>to</strong> other legacy and 3 rd party applications. Integration of<br />

heterogeneous applications or applications <strong>with</strong> different data and application architectures has always<br />

been and will always be challenging. Numerous companies have begun a <strong>Service</strong> Oriented Architecture<br />

(SOA) initiative <strong>with</strong> the assumption that implementing web services is synonymous <strong>with</strong> employing a<br />

service-oriented architecture. This white paper outlines approaches recommended by <strong>Oracle</strong> <strong>Retail</strong> and<br />

utilized by cus<strong>to</strong>mers <strong>to</strong> integrate applications using <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> (OSB).<br />

Introduction<br />

One of the corners<strong>to</strong>ne principals of SOA-based architecture is <strong>to</strong> provide a loosely-integrated suite of<br />

services. In an enterprise architecture that makes use of an enterprise service bus (See Figure 1) like<br />

<strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> (OSB), an application will communicate via the bus which acts as the single message<br />

turntable between other applications. That approach reduces the number of point-<strong>to</strong>-point connections<br />

between communicating applications, enabling integration of additional applications <strong>to</strong> the enterprise<br />

architecture and making changes quickly across enterprise applications <strong>to</strong> meet business processing<br />

requirements.<br />

The role of <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> for integrating applications is:<br />

• Acts as the conduit for communication between all participants of the SOA (service consumers and<br />

service producers).<br />

• Provides the ability <strong>to</strong> achieve loose coupling and a higher level of flexibility as integration points<br />

between consumer and provider can be configured at runtime rather than hard-coded.<br />

• Isolates service consumers from minor changes in the service provider.<br />

• Mediates between endpoints ─ mediation may be in the form of transport, message, and security<br />

exchange.<br />

• Supports transformation and routing between requesting applications and providing applications.


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

Figure 1: Enterprise <strong>Service</strong> <strong>Bus</strong><br />

The proper implementation of <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> is highly dependent on understanding the correct<br />

integration style or pattern required between the reques<strong>to</strong>rs or consumers and the providers or producers.<br />

For this white paper, the five basic integration patterns used between <strong>Oracle</strong> <strong>Retail</strong> applications and other<br />

applications are:<br />

1. Data-centric integration for bulk data replication and transaction loading, where there are no data<br />

enrichment or multiple end points requirements.<br />

2. Native interface integration for exchange of business events between producer application and<br />

consumer application involving transactions in asynchronous, near real-time mode.<br />

3. <strong>Service</strong>-based integration using message exchange pattern involving business transactions in<br />

synchronous, real-time mode between reques<strong>to</strong>r and producer applications.<br />

4. Reference data queries from a requesting application validate or query data from au<strong>to</strong>nomous or<br />

multiple providers.<br />

5. Process centric integration flows between two or more applications <strong>to</strong> implement a business process<br />

requiring orchestration of activities between the applications themselves including message<br />

enrichment, validation, or complex transformation.<br />

While OSB has capabilities for handling flat file or bulk data centric integration, the first pattern is normally<br />

implemented using an Extract, Transform and Load (ETL) <strong>to</strong>ol like <strong>Oracle</strong> Data Integra<strong>to</strong>r. The second<br />

pattern is used by <strong>Oracle</strong> <strong>Retail</strong> Integration <strong>Bus</strong> (RIB) between participating <strong>Oracle</strong> <strong>Retail</strong> applications.


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

The focus of this white paper will be on how cus<strong>to</strong>mers have integrated <strong>Oracle</strong> <strong>Retail</strong> applications <strong>to</strong><br />

external applications for exchange of business events and transactions using either the asynchronous,<br />

near real-time pattern (#2) or the synchronous, real-time mode (#3). The key difference between these<br />

two patterns is the transaction boundary defined in the business process between the reques<strong>to</strong>r and<br />

provider services.<br />

There are three basic methods cus<strong>to</strong>mers can utilize OSB <strong>to</strong> integrate <strong>with</strong> <strong>Oracle</strong> <strong>Retail</strong> applications:<br />

1. OSB invokes requests <strong>to</strong> RIB’s Integration Gateway <strong>Service</strong>s (IGS).<br />

2. OSB publishes or subscribes <strong>to</strong> messages on RIB AQ/JMS.<br />

3. OSB invokes requests directly <strong>to</strong> <strong>Oracle</strong> <strong>Retail</strong> provided web services or replies <strong>to</strong> <strong>Oracle</strong> <strong>Retail</strong><br />

requests.<br />

Integration Gateway <strong>Service</strong>s<br />

Beginning <strong>with</strong> <strong>Oracle</strong> <strong>Retail</strong> Integration <strong>Bus</strong> (RIB) 13.1, <strong>Oracle</strong> <strong>Retail</strong> provides a set of web services<br />

which expose existing RIB interfaces. The Integration Gateway <strong>Service</strong>s (IGS) provide a web services<br />

wrapper around RIB external interfaces which can be invoked by a web service reques<strong>to</strong>r directly or via<br />

OSB <strong>to</strong> push business event transactions and foundation data creates and updates in<strong>to</strong> the <strong>Oracle</strong> <strong>Retail</strong><br />

applications using the RIB infrastructure (see Figure 2).<br />

<strong>External</strong> Domain <strong>Oracle</strong> <strong>Retail</strong> Integration Domain <strong>Oracle</strong> <strong>Retail</strong> Application Domain<br />

<strong>External</strong><br />

Application<br />

(web service<br />

client)<br />

Use Case: Expose<br />

Internal IGS Web<br />

<strong>Service</strong> <strong>External</strong> via<br />

OSB Proxy<br />

SOAP HTTP<br />

OSB 11gR1<br />

Proxy<br />

<strong>Service</strong><br />

<strong>Bus</strong>iness<br />

<strong>Service</strong><br />

RIB IGS<br />

<strong>Service</strong><br />

AQ JMS<br />

rib-4-rms<br />

Figure 2 – Method 1 Architecture Overview<br />

RMS RDBMS<br />

PL/SQL<br />

API’s<br />

Fire-and-Forget Request/Response


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

To the external application, IGS via OSB exposes a web service which can be involved <strong>with</strong> a request <strong>to</strong><br />

create or update a retail business object (e.g. Supplier). OSB mediates the routing of the request <strong>to</strong> the<br />

appropriate IGS web service based on the operation and the retail business objects or message family as<br />

they are known in RIB.<br />

The main advantage of using IGS is it utilizes RIB’s Guaranteed Only Once Delivery (GOOD) architecture<br />

and <strong>Retail</strong> <strong>Bus</strong>iness Object payloads <strong>to</strong> ensure all <strong>Oracle</strong> <strong>Retail</strong> applications that participate in the<br />

business transaction or foundation data sync receive the message from the source application <strong>to</strong> be<br />

processed or it is captured in the RIB Error Hospital using the synchronous real-time pattern.<br />

IGS and OSB allow the source application <strong>to</strong> be abstracted from any of the <strong>Oracle</strong> <strong>Retail</strong> applications.<br />

This enables relatively easy changes in the source application; source application interface; or retail<br />

business object payload <strong>to</strong> be made, tested and implemented. RIB also will preserve the publication<br />

sequence of the incoming transactions <strong>to</strong> ensure they are processed in the correct order after they are<br />

delivered <strong>to</strong> the JMS message queue.<br />

RIB/IGS<br />

RIB <strong>Bus</strong>iness<br />

Object.xsd<br />

<strong>Bus</strong>inessObjectId.xsd<br />

WS Client Soap R/R<br />

IGS Web <strong>Service</strong>s<br />

IGS <strong>Service</strong>.wsdl<br />

RoutingInfos.xsd<br />

RIB Message.xsd<br />

RIB<br />

Msg<br />

W<br />

Depending on API<br />

technology converts <strong>to</strong><br />

<strong>Oracle</strong> Object or java<br />

bean representation.<br />

RIB <strong>Bus</strong>iness<br />

Object.xsd<br />

Figure 3 - IGS architecture overview<br />

A disadvantage of using OSB/IGS is when the source application (WS Client) needs more than an<br />

acknowledgement from RIB that the requesting message payload was received. IGS only provides an<br />

acknowledgement and not retail specific data resulting from a successful completion of the service call.<br />

JMS<br />

R<br />

RIB<br />

Msg<br />

RIB Sub Adapter(s)<br />

Invoke<br />

Invoke<br />

API <strong>Bus</strong>iness<br />

Object – <strong>Oracle</strong><br />

Object<br />

API <strong>Bus</strong>iness<br />

Object – <strong>Oracle</strong><br />

Object<br />

Invoke<br />

API <strong>Bus</strong>iness<br />

Object – java<br />

Bean<br />

Warehouse<br />

Management System<br />

(RWMS)<br />

Merchandising<br />

System<br />

(RMS)<br />

S<strong>to</strong>re Inven<strong>to</strong>ry<br />

Management<br />

(SIM)


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

The role of OSB is <strong>to</strong> mediate between the source application and the IGS web service (see Figure 3).<br />

OSB would transform the payload from the source application and route using a Simple Object Access<br />

Pro<strong>to</strong>col (SOAP) call <strong>to</strong> the IGS web service for the retail business object being received. OSB would<br />

wait for the message received acknowledgement from the IGS web service ─ which OSB could keep for<br />

audit purposes or pass back <strong>to</strong> the source application.<br />

OSB Publishing and Subscribing <strong>to</strong> RIB AQ/JMS<br />

The second method for integration <strong>to</strong> <strong>Oracle</strong> <strong>Retail</strong> applications is by using the RIB <strong>to</strong>pics at their Java<br />

Message <strong>Service</strong> (JMS) endpoints (see Figure 4). This method would be recommended for substitution of<br />

an existing <strong>Oracle</strong> <strong>Retail</strong> application or RIB interface <strong>with</strong> a 3 rd party or legacy application or interface.<br />

The role of OSB in this method would be <strong>to</strong> handle transformation of the retail business object payload<br />

and routing the payloads <strong>to</strong>/from the appropriate RIB/JMS <strong>to</strong>pics.<br />

<strong>External</strong> Domain <strong>Oracle</strong> <strong>Retail</strong> Integration Domain <strong>Oracle</strong> <strong>Retail</strong> Application Domain<br />

Use Case: Expose<br />

Internal AQ JMS Topic<br />

<strong>External</strong> via OSB<br />

<strong>Bus</strong>iness <strong>Service</strong><br />

<strong>External</strong><br />

Application<br />

Message<br />

Subscriber<br />

Adapter<br />

Message<br />

Publish<br />

Adapter<br />

Use Case: Expose<br />

Internal AQ JMS Topic<br />

<strong>External</strong> via OSB Proxy<br />

<strong>Bus</strong>iness<br />

<strong>Service</strong><br />

OSB 11gR1<br />

Proxy<br />

<strong>Service</strong><br />

Proxy<br />

<strong>Service</strong><br />

<strong>Bus</strong>iness<br />

<strong>Service</strong><br />

AQ JMS<br />

rib-4-rms<br />

AQ JMS rib-4-rms<br />

Figure 4 – Method 2 Architecture Overview<br />

RMS RDBMS<br />

The advantages of using this method <strong>with</strong> OSB are the messages from RIB via AQ/JMS can be<br />

transformed and routed <strong>to</strong> multiple external applications and external applications can publish messages<br />

<strong>to</strong> OSB which can be transformed and routed <strong>to</strong> RIB via AQ/JMS. This provides an asynchronous,<br />

message-based framework for near real-time integration between external applications and <strong>Oracle</strong> <strong>Retail</strong><br />

applications. The framework is agile <strong>to</strong> accommodate additions or changes in the participating<br />

applications, changes in the message payloads, and differences in data transport layers (e.g. MQ, Flat file<br />

I/O, EJB, FTP, and DB adapters). <strong>Using</strong> OSB and RIB in this method can be scalable <strong>to</strong> meet large<br />

volumes of messages of data being moved between external applications and <strong>Oracle</strong> <strong>Retail</strong> products.<br />

PL/SQL<br />

API’s<br />

Fire-and-Forget Request/Response


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

Disadvantages of using this method include: lack of acknowledgement provided by the receiving or<br />

consuming application of message receipt since it is an asynchronous framework; and messages<br />

received by RIB that are not correctly formatted will be rejected by RIB causing the listening queues <strong>to</strong> be<br />

shutdown au<strong>to</strong>matically by RIB. This is a protective feature in RIB <strong>to</strong> eliminate receipt of potentially<br />

‘poisonous’ data messages in<strong>to</strong> RIB.<br />

Utilizing <strong>Oracle</strong> <strong>Retail</strong> Web <strong>Service</strong>s<br />

The final method for integration of external 3 rd party or legacy applications and <strong>Oracle</strong> <strong>Retail</strong> applications<br />

is utilization of direct web services for synchronous, real-time integration (see Figure 5). Currently, there<br />

are three web services packaged <strong>with</strong> the <strong>Oracle</strong> <strong>Retail</strong> Applications:<br />

1. GL_Account_Code_Validation_Request<br />

2. Maintain_Supplier_Provider<br />

3. Maintain_Payment_Terms_Provider<br />

<strong>External</strong> Domain <strong>Oracle</strong> <strong>Retail</strong> Integration Domain <strong>Oracle</strong> <strong>Retail</strong> Application Domain<br />

<strong>External</strong><br />

Application http soap<br />

Use Case: Expose<br />

<strong>External</strong> <strong>Bus</strong>iness<br />

<strong>Service</strong> Internal via<br />

OSB Proxy<br />

<strong>Bus</strong>iness<br />

<strong>Service</strong><br />

Proxy<br />

<strong>Service</strong><br />

http soap<br />

http soap <strong>Bus</strong>iness Proxy<br />

http soap<br />

<strong>Service</strong> <strong>Service</strong><br />

OSB 11gR1<br />

Figure 5 – Method 3 Architecture Overview<br />

RMS RDBMS<br />

PL/SQL<br />

API’s<br />

Provider<br />

Web <strong>Service</strong><br />

Reques<strong>to</strong>r<br />

Web <strong>Service</strong><br />

The advantage of using these web services for integration of <strong>Oracle</strong> <strong>Retail</strong> <strong>to</strong> external applications is they<br />

provide secured integration <strong>with</strong> any external application capable of requesting or providing standard<br />

SOAP-enabled web services. This can be utilized by multiple applications <strong>to</strong> routed <strong>to</strong> the appropriate<br />

service provider based on the context of the request ─ allowing for implementation of integration patterns<br />

#4 and #5 (see Page 4) mentioned earlier in this paper.<br />

Fire-and-Forget Request/Response


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

The role of OSB in this method is <strong>to</strong> mediate the request/responses between the external application<br />

reques<strong>to</strong>r/provider services and the <strong>Oracle</strong> <strong>Retail</strong> reques<strong>to</strong>r/provider. This would allow for multiple<br />

external requesting services <strong>to</strong> access a single provider service or OSB <strong>to</strong> route based on the message<br />

context <strong>to</strong> one or more service providers. Utilizing this method, OSB can enable process-centric<br />

integration flows between two or more applications <strong>to</strong> implement a business process requiring<br />

orchestration of activities between the applications themselves including message enrichment, validation,<br />

or complex transformation.<br />

The disadvantage of this method is it requires services <strong>to</strong> be built exposing application functionality and<br />

their interfaces <strong>to</strong> be well unders<strong>to</strong>od and documented. It also requires versioning of services and object<br />

payloads. This requires mature SOA governance of the integration architecture <strong>to</strong> ensure new or change<br />

process orchestrations can be handled properly.<br />

Cus<strong>to</strong>mization and Extensions<br />

Most implementations of <strong>Oracle</strong> <strong>Retail</strong> will require cus<strong>to</strong>mizations and extensions <strong>to</strong> meet business and<br />

integration requirements. For purposes of this document, cus<strong>to</strong>mization is the changing of an existing<br />

object or operation on an object (e.g. Maintain Suppliers) while extension is adding additional objects or<br />

operations <strong>to</strong> existing objects.<br />

<strong>Oracle</strong> <strong>Retail</strong> provides <strong>to</strong>oling RIB Artifact Genera<strong>to</strong>r and <strong>Retail</strong> <strong>Service</strong> Enabler for cus<strong>to</strong>mers <strong>to</strong><br />

cus<strong>to</strong>mize and extend the RIB/IGS <strong>to</strong> help meet business processing requirements. The RIB Artifact<br />

Genera<strong>to</strong>r implements and enforces rules for cus<strong>to</strong>mization/extension of the <strong>Retail</strong> <strong>Bus</strong>iness Objects that<br />

are used <strong>to</strong> create the functional artifacts for use in the <strong>Oracle</strong> <strong>Retail</strong> Integration systems. The <strong>to</strong>ol,<br />

regardless of the installation type, will only process XSDS that have been added or modified per these<br />

rules.<br />

The <strong>Retail</strong> SOA Enabler (RSE) is a <strong>Service</strong> Infrastructure <strong>to</strong>ol developed by <strong>Oracle</strong> <strong>Retail</strong> <strong>to</strong> enable the<br />

adoption of <strong>Service</strong> Oriented Architecture (SOA) by enforcing SOA best practices and patterns. Major<br />

features of standards-based <strong>Retail</strong> SOA Enabler:<br />

� All services are SOAP/HTTP based Web services.<br />

� Complies <strong>with</strong> JAX-WS specification.<br />

� <strong>Service</strong>s are WS-Addressing enabled.<br />

� WS-Security can be plugged in <strong>with</strong>out any code change.


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

� Generates technology specific API templates for PL/SQL APIs and javaEE.<br />

� Supports PL/SQL as a Web service provider.<br />

� Supports Web <strong>Service</strong> versioning strategy.<br />

These <strong>to</strong>ols make it easier for cus<strong>to</strong>mers <strong>to</strong> cus<strong>to</strong>mize and extend the existing <strong>Oracle</strong> <strong>Retail</strong> integration<br />

framework and maintain an upgrade path for future releases.<br />

Cus<strong>to</strong>mer Implementation Examples<br />

Petco<br />

Objective<br />

PETCO is one of the fastest growing pet care retailers in North America. They needed <strong>to</strong> modernize their<br />

merchandise operations <strong>to</strong> meet the demands of business growth by implementing <strong>Oracle</strong>’s <strong>Retail</strong><br />

Merchandising System and Price Management applications. The implementation required integration <strong>with</strong><br />

other legacy and 3 rd party applications <strong>with</strong>out cus<strong>to</strong>mizations or extensions <strong>to</strong> applications.<br />

Challenge<br />

Petco faced the following challenges in integrating <strong>Oracle</strong> <strong>Retail</strong> products:<br />

1. Expose relevant RMS and RPM functions as services in <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> (OSB) through <strong>Retail</strong><br />

Integration <strong>Bus</strong> (RIB) infrastructure. Leverage <strong>Integrate</strong>d Gateway <strong>Service</strong>s (IGS) for inbound<br />

integrations <strong>to</strong> retail systems wherever available.<br />

2. Build adapter and consumer services on OSB <strong>to</strong> interact <strong>with</strong> legacy applications.<br />

3. Build integrations following AIA framework for objects which are provided by AIA Foundation Pack.<br />

Create AIA artifacts(Enterprise <strong>Bus</strong>iness <strong>Service</strong>s and Application <strong>Bus</strong>iness Connec<strong>to</strong>r <strong>Service</strong>s).<br />

Loose coupling through a canonical (application-independent) model is achieved.<br />

4. <strong>Integrate</strong> by single service implemented in BPEL composite for enterprise objects which are not<br />

provided by AIA FP.


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

The following diagram depicts the inbound interface pattern used <strong>to</strong> feeding RMS from external<br />

applications using <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> and <strong>Retail</strong> Integration Gateway <strong>Service</strong>s.<br />

1. BPEL Composite gets the message from third-party applications through configured technology<br />

adapter service or web service.<br />

2. BPEL transforms the message <strong>to</strong> the required format.<br />

3. BPEL Composite invokes the OSB Proxy service using a SOAP message.<br />

4. Proxy <strong>Service</strong> will in turn request appropriate RIB IGS web service.<br />

5. IGS web service does asynchronous write <strong>to</strong> AQ/JMS for RIB subscriber adapter.


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

For feeding external applications from RMS, the following pattern was utilized:<br />

1. RIB publishes asynchronous messages <strong>to</strong> AQ/JMS.<br />

2. OSB business service configured on Fusion middleware will get the messages from AQ/JMS.<br />

3. BPEL Composite will be invoked from the OSB proxy service <strong>to</strong> do the required formatting.<br />

4. Transformed messages will be routed <strong>to</strong> the target applications using application native adapters<br />

Results<br />

/web services or via POLARIS.<br />

Results from their initial use of OSB and RIB/IGS were successful:<br />

1. Petco’s SI, TCS, was able <strong>to</strong> implement production integrations using OSB and RIB/IGS:<br />

1. Item from PIM <strong>to</strong> RMS<br />

2. Item/Location from legacy via POLARIS <strong>to</strong> RMS<br />

3. Suppliers from PeopleSoft <strong>to</strong> RMS<br />

2. Used 3 rd party proprietary connec<strong>to</strong>rs for Item from PIM


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

3. Connec<strong>to</strong>rs do not populate <strong>Bus</strong>iness Object ID for RIB which could be problematic for preservation<br />

of publishing sequence.<br />

The Beer S<strong>to</strong>re<br />

Objective<br />

The Beer S<strong>to</strong>re, Canada's largest beer retailer and distribu<strong>to</strong>r, had a company-wide initiative <strong>to</strong> modernize<br />

operations. They wanted <strong>to</strong> complete the rollout of a new high speed point-of-sale system that would<br />

enable the company's application server bridge <strong>to</strong> handle approx 500,000 messages per day from the<br />

company's 440 retail s<strong>to</strong>res while delivering two-<strong>to</strong>-three-second transaction times at the cash registers.<br />

Challenge<br />

The challenge was <strong>to</strong> achieve accurate and timely inven<strong>to</strong>ry reporting and efficient open and close<br />

routines in s<strong>to</strong>res <strong>to</strong> better manage inven<strong>to</strong>ries and reduce wage costs.<br />

Results<br />

The Beer S<strong>to</strong>re worked <strong>with</strong> <strong>Oracle</strong> Consulting <strong>to</strong> achieve a tenfold improvement in back-end system<br />

performance through performance tuning and installation of <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong>.<br />

Conclusion<br />

<strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> can be a valuable <strong>to</strong>ol for integrating <strong>Oracle</strong> <strong>Retail</strong> applications. But choosing the<br />

appropriate integration pattern is critical in utilizing several available methods for integrating external<br />

applications <strong>with</strong> <strong>Oracle</strong> <strong>Retail</strong>.<br />

<strong>Oracle</strong> <strong>Retail</strong> provides all the <strong>to</strong>ols necessary <strong>to</strong> enable cus<strong>to</strong>mers and system integra<strong>to</strong>rs <strong>to</strong> cus<strong>to</strong>mize<br />

and extend their solutions. <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> provides a rich set of adapters <strong>to</strong> handle connectivity <strong>with</strong><br />

many 3 rd party and legacy applications (OSB Adapters).<br />

Resources<br />

1. OSB Examples and Tu<strong>to</strong>rial<br />

http://java.net/downloads/oraclesoasuite11g/OSB/osb_examples_tu<strong>to</strong>rials_111130.pdf


<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

2. How <strong>to</strong> Cus<strong>to</strong>mize an IGS 13.2.0 <strong>Service</strong> using RSE and AG 13.2.0 - 1307371.1<br />

The purpose of this paper is <strong>to</strong> discuss how <strong>to</strong> use the <strong>Oracle</strong> <strong>Retail</strong> SOA Enabler (RSE) and Artifact<br />

Genera<strong>to</strong>r (AG) <strong>to</strong>ols <strong>to</strong> cus<strong>to</strong>mize an Integration Gateway <strong>Service</strong>s (IGS) <strong>Service</strong>. Cus<strong>to</strong>mization of<br />

an IGS <strong>Service</strong> also means cus<strong>to</strong>mization of the API for RIB and the subscribing application. While<br />

this document focuses only on the IGS end of the process, all activities must be completed for a<br />

working flow. The most common use case in cus<strong>to</strong>mization is <strong>to</strong> add new elements <strong>to</strong> existing<br />

messages. This document covers that use case.<br />

3. How <strong>to</strong> Configure WebLogic Server 10.3.3 <strong>to</strong> the RIB 13.2.0 AQ JMS - 1307397.1<br />

This paper covers the steps <strong>to</strong> configure WebLogic Server 10.3.3 <strong>to</strong> use the RIB AQ JMS as a foreign<br />

JMS server and <strong>to</strong> have all of the <strong>Oracle</strong> <strong>Retail</strong> RIB JMS <strong>to</strong>pics available for use by 3 rd party software.<br />

The steps <strong>to</strong> configure foreign JMS server are covered in the GA WebLogic documentation set, but <strong>to</strong><br />

also make the RIB JMS <strong>to</strong>pics accessible for an application can be tedious and prone <strong>to</strong> error.<br />

<strong>Oracle</strong> Fusion Middleware allows for the creation of domain extension templates, which are Java<br />

Archive (JAR) files that contain the files and scripts required <strong>to</strong> create or extend a WebLogic domain.<br />

There is a WLS Domain template attachment <strong>to</strong> the white paper that will extend a domain and takes<br />

care of the infrastructure needed of applications <strong>to</strong> use the RIB AQ JMS.<br />

4. How <strong>to</strong> <strong>Integrate</strong> OSB 11.1.1.4 <strong>to</strong> the <strong>Oracle</strong> <strong>Retail</strong> RIB 13.2.0 AQ JMS - 1307396.1<br />

This document covers the steps <strong>to</strong> configure <strong>Oracle</strong> Enterprise <strong>Service</strong> <strong>Bus</strong> (OSB) on WebLogic<br />

Server 10.3.4 <strong>to</strong> use the RIB 13.2.0 AQ JMS as a foreign JMS server. It also discusses having OSB<br />

proxy and business service exposed for all of the <strong>Oracle</strong> <strong>Retail</strong> RIB JMS <strong>to</strong>pics available for use by<br />

third party software.


<strong>Oracle</strong> <strong>Retail</strong> White Paper<br />

<strong>Oracle</strong> <strong>Retail</strong> White Paper – <strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

<strong>Using</strong> <strong>Oracle</strong> <strong>Service</strong> <strong>Bus</strong> <strong>to</strong> <strong>Integrate</strong> <strong>Oracle</strong> <strong>Retail</strong> <strong>with</strong> <strong>External</strong> Applications<br />

September, 2012<br />

Author: Dan Conway<br />

Contribu<strong>to</strong>rs: David Burch, Pran<strong>to</strong>r Bora<br />

<strong>Oracle</strong> Corporation<br />

World Headquarters<br />

500 <strong>Oracle</strong> Parkway<br />

Redwood Shores, CA 94065<br />

U.S.A.<br />

Worldwide Inquiries:<br />

Phone: +1.650.506.7000<br />

Fax: +1.650.506.7200<br />

oracle.com<br />

Copyright © 2012, <strong>Oracle</strong>. All rights reserved. This document is provided for information purposes only and the contents hereof are subject <strong>to</strong> change <strong>with</strong>out<br />

notice. This document is not warranted <strong>to</strong> be error-free, nor subject <strong>to</strong> any other warranties or conditions, whether expressed orally or implied in law, including<br />

implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability <strong>with</strong> respect <strong>to</strong> this document and no<br />

contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means,<br />

electronic or mechanical, for any purpose, <strong>with</strong>out our prior written permission. <strong>Oracle</strong> is a registered trademark of <strong>Oracle</strong> Corporation and/or its affiliates. Other<br />

names may be trademarks of their respective owners.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!