The RIB almost always becomes one of many sub-systems in a retailer's integration architecture. This means that there has to be strategy and a plan to integrate with these systems. The RIB Integration Guide provides the functional details on the message structure and payload contents that are used by the Oracle Retail applications to communicated with each other. Typically these same integration points are the ones that are needed in data movement between existing (legacy) applications and Oracle Retail applications such as RMS. The RIB exposes these points of integration as JMS topics and standard messages with xsd-based payloads.
See the RIB Integration Guide for more information.
The RIB is not the solution for all data movement between legacy applications and Oracle Retail applications. It is important to understand that it is a messaging system, not a bulk data transfer mechanism. It is not the appropriate solution for moving huge amounts of data in short time periods. It is a near real-time messaging system and the through put requirements may not match the volumes demanded by some integration points or business requirements.
Understanding the integration points and the volumes needed per hour and per day must be part of the decision on when to use the RIB and when to consider other options. The RIB has been designed to handle Oracle Retail volumes between its applications.
The RIB certified on the Oracle Fusion Middleware Application Server. All of the RIB publishers, subscribers and TAFR's are JavaEE standard components (EJBs and MDBs) that are deployed and managed by the Oracle Application Server in OC4J instances. This means that the RIB can be deployed into an existing Fusion Middleware architecture without any changes.
All RIB message payloads are fully standard compliant XSD based. All of the XML payloads are namespace aware and follow the general standards as well as the conventions that make them compatible with other Oracle Fusion products such ESB and BPEL. The payload schema definitions (xsds) are packaged with each release along with sample messages.
The RIB is a standard's based JMS messaging system, with Oracle Streams AQ being the initial JMS providers certified.
The recommended approach for integration between the RIB and Oracle Fusion Middleware products is at the JMS topic level. Any standards compliant tool or product that can interface to the JMS and subscribe and publish messages can be integrated with the RIB.
There are some key functional requirements that an integrating application must follow:
Ability to connect to a standard JMS and publish to a topic.
Ability to create a durable subscriber to a RIB JMS topic
Ability to set user-defined message properties.
Ability to encode and decode RIB payloads embedded within the RIB message envelope.
The Oracle Fusion Middleware products, such as ESB and BPEL, use a common JMS Adapter. This adapter can be used to connect to the RIB certified JMS Provider and topics.
The JMS topics that the RIB creates for Publication and Subscription are detailed in the Oracle Retail Integration Guide, along with all of the message payloads for each message family.
The RIB html encodes each message payload and inserts it into the RIB messages envelope. Each message has a JMS user-defined property called threadValue that is required to be set on all in-bound messages. In a multi-channel message flow, the subscriber will need to set the message selector to an appropriate threadValue to maintain message publication sequencing and to be set on the durable subscriber created on the RIB JMS topic.
The xml schema definitions for the payloads and the RIB Messages envelopes are packaged and shipped with the RIB.
See the RIB Integration Guide for more information.
The RIB JMS topic names and the message flows between the RIB adapters for each of the Oracle Retail applications are defined in the rib-integration-flows.xml file. This file is the single source of truth that the RIB release uses at configuration and run-time. It is required to be accessible within each RIB deployment: http://<server>:<port>/rib-func-artifact/rib-integration-flows.xml. During installation and configuration this file is deployed as part of the functional artifact war file.
The general process for custom integration with the RIB:
Determine the Message Family of interest (e.g., Items)
Use the RIB Integration Guide to determine the message payloads and topics involved.
Configure the JMS Adapter within the tool (ESB/BPEL) to the RIB JMS provider.
Understand the RIB envelope (RibMessage.xsd) and the message type relationship.
Understand the payload for each message. These are html-encode inside the RibMessage envelope.
The RIB XSD's are included in the RIB Integration Guide as well as the Function Artifacts war file.
Understand the Oracle Retail Application API mappings. These are included in the RIB Integration Guide. This is important because the XSD's do not reflect the actual optional/mandatory state of an element. For historical reasons (to support previous releases) all elements in the XSD that have been added since RIB version 10.3 have been optional at the message level.
The Mapping reports are included with the Integration Guide.
Each of the Oracle Retail Application has documentation on the behavior of the API.
All RIB messages must have the message property threadValue set by publishing applications, and in a multi-channel message flow, the subscriber will need to set the message selector to an appropriate threadValue to maintain message publication sequencing.
Understand the relationship between the threadValue and multiple-channels within the RIB. See the Operations Guide - Multiple Channels.
Many of the Message Families have a RIB Component called a TAFR involved. Understand what a TAFR is and how it works within a message flow. This can be very involved in some families, and can actually create additional mandatory elements with a message that may not be obvious. See the RIB Operations Guide - Transform, Filtering and Routing. The RIB Integration Guide for each family has the general functional specifications for the TAFRs involved with that family.
Understand the volume characteristics of a message family. The RIB is designed to handle retail volumes, so a poorly designed subscriber can have a huge impact on the JMS. Conversely, a publisher that tries to use the RIB as a bulk transfer mechanism is also inappropriate.