Go to primary content
Oracle® Retail Integration Cloud Service Implementation Guide
Release 19.1.000
F31983-04
  Go To Table Of Contents
Contents

Previous
Previous
 
Next
Next
 

7 Cloud Enhancements

This chapter describes the RIB cloud enhancements.

The following diagram describes a sample hybrid architecture in which some of the retail applications are on-premise and some other (including RIB) are in the cloud. In this architecture, the retail applications SIM and RWMS are on-premise, while RIB and BDI are on the cloud.

Figure 7-1 Retail Integration Suite - Cloud Architecture

Surrounding text describes Figure 7-1 .

In order to support cloud deployment (including a hybrid cloud), RIB is enhanced with the addition of two Web services. These are injector and publisher Web services that allow retail applications to communicate with other applications.

Applications can invoke the new Web services to send and receive messages to/from other applications via the RIB. Client applications must use credentials of a user with the role ribAdminRole to call the publisher Web service. For consuming messages (using the injector service), applications must create a user with a IntegrationRole role on the server where the retail application is deployed. The rib-<app> must be configured with the same user credentials at install time, so that RIB can call the injector service with the correct credentials.

Configuring RIB-App as a Soap-App for Hybrid-Cloud Deployment

The following example describes the steps to configure a hybrid scenario in which SIM is on-premise and RIB is on the cloud:

  • In the rib-deployment-env-info.xml file, configure the SIM application to be of type "soap-app". Under <app-in-scope-for-integration>, change SIM from javaee-app to soap-app:

    <app id="sim" type="soap-app" />

  • Replace the existing rib-app section for rib-sim with below content. Edit the properties so that they apply for rib-sim. For example:

    <rib-app id="rib-sim" type="soap-app">
    <deploy-in refid="rib-sim-wls1" />
            <rib-admin-gui>
    <web-app-url>https://www.example.com<port>/rib-sim-appserver-gui/index.jsp</web-app-url>         <web-app-user-alias>rib-sim_rib-admin-gui_user-name-alias</web-app-user-alias>
    </rib-admin-gui>
    <error-hospital-database>    <hosp-url>jdbc:oracle:thin:@www.example.com:<port>/<service></hosp-url>      <hosp-user-alias>rib-sim_error-hospital-database_user-name-alias</hosp-user-alias>
    </error-hospital-database>
    <app-database-not-applicable />
    <notifications>
    <email>
    <email-server-host>mail.example.com</email-server-host>
        <email-server-port>25</email-server-port>
        <from-address>admin@example.com</from-address>
    <to-address-list>admin@example.com</to-address-list>
        </email>
        <jmx />
            </notifications>
    <app id="sim" type="soap-app">
    <end-point>
    <url>https://www.example.com:<port>/ApplicationMessageInjectorBean/InjectorService?WSDL</url>
        <ws-policy-name>policyA</ws-policy-name>
             <user-alias>rib-sim_ws_security_user-name-alias</user-alias>
        </end-point>
    </app>
    </rib-app>
    
  • ws-policy-name should be configured with a value ”policyA” as RIB supports only this web service security policy.

  • Make sure the rib-sim_ws_security_user-name-alias user is a member of the sim_integration_users group in the SIM WebLogic domain. Make sure the SIM services are up and running and can be called via the SOAP UI using the credentials that will be entered during RIB compilation.

  • Compile and deploy RIB.


Note:

The above configuration pattern is applicable to all rib-<app> except rib-rwms deployments on hybrid cloud.

Configuring RIB-RWMS for Hybrid Cloud Deployment Topology

RWMS on-premise cannot communicate with RMS and other retail apps, which are all in cloud via RIB. As RIB is already supported in cloud, for enabling the integration of RWMS with all other retail applications which are in the hybrid cloud environment, RIB follows the primary/secondary approach. The secondary resides close to on-prem RWMS, while the primary is on-cloud. Communication between primary and secondary is through web service calls. The RIB-RWMS primary invokes the new web services exposed by secondary RIB-RWMS to send/receive messages to/from other applications on cloud via RIB.

For RIB-RWMS to communicate with RWMS on premise and RIB on cloud, it should be deployed in primary-secondary topology. Hybrid cloud set-up for RWMS involves a two part installation, one for each primary (cloud) and secondary components (on-premise).

Figure 7-2 RIB-RWMS Hybrid Cloud Architecture

RIB-RWMS Hybrid Cloud

Configuring RIB-RWMS as Primary Application

The following example describes the steps to configure RIB-RWMS in primary/secondary pattern.

  • In the rib-deployment-env-info.xml file, configure the RWMS application to be of type " master-plsql-app". Under <app-in-scope-for-integration>, change RWMS from plsql-app to master-plsql-app.

    <app id="rwms" type="master-plsql-app" />
    
  • Replace the existing rib-app section for RIB-RWMS with a copy of the below configuration. Edit the properties so that they apply for RIB-RWMS.

    For example:

    <rib-app id="rib-rwms" type="master-plsql-app">
        <deploy-in refid="rib-rwms-wls1" />
       <rib-admin-gui>
       <web-app-url>http://host:port/rib-rwms-appserver-gui/index.jsp</web-app-url>
       <web-app-user-alias>rib-rwms_rib-admin-guiadmin-user-name-alias</web-app-user-alias>
       <web-app-user-alias>rib-rwms_rib-admin-gui_operator-user-name-alias</web-app-user-alias>
       <web-app-user-alias>rib-rwms_rib-admin-gui_monitor-user-name-alias</web-app-user-alias>
       </rib-admin-gui>
             <error-hospital-database>
                <hosp-url>jdbc:oracle:thin:@<host>:<port>/<service></hosp-url>
                <hosp-user-alias>rib-rwms_error-hospital-database_user-name-alias</hosp-user-alias>
             </error-hospital-database>
             <app-database>              
                <app-db-url>jdbc:oracle:thin:@<host>:<port>/<service></app-db-url>
                <app-db-user-alias>rib-rwms_app-database_user-name-alias</app-db-user-alias>
             </app-database>
             <notifications>
                <email>
                   <email-server-host>mail.example.com</email-server-host>
                   <email-server-port>25</email-server-port>
                   <from-address>admin@example.com</from-address>
                   <to-address-list>admin@example.com</to-address-list>
                </email>
                <jmx />
             </notifications>
            <app id="rwms" type="soap-app">
                <end-point>
                <!-- URL of secondary rwms  host -->         
    <url>http://<host-where-rib-rwms-slave-app-is-deployed>:<port></url> 
                   <!-- Supported security policy names =policyC(default) OR policyA -->  
        <ws-policy-name>policyA</ws-policy-name>
                   <user-alias>rib-rwms_ws_security_user-name-alias</user-alias>
                </end-point>
             </app>
          </rib-app>
    
  • ws-policy-name should be configured with a value "policyA", as RIB supports only this web service security policy except for rib-oms.

  • Make sure the rib-rwms_ws_security_user-name-alias user is same as rib-rwms_rib-admin-gui_admin-user-name-alias" on secondary side.

  • Compile and deploy RIB.


Note:

In the above configuration the rib-rwms type is "master-plsql-app", as the primary rib-rwms application will be deployed on cloud. It does not have access to the actual app database schema that is on premise. <app-database> in the above configuration will point to the dummy schema, created during the installation. Refer to RIB Installation Guide for more details.

Configuring RIB-RWMS as Secondary Application

  • Make the below configuration changes in the rib-home where you extracted RibKernel19.1.000ForRwmsSlave19.x.xApps_eng_ga.jar.

  • In the rib-deployment-env-info.xml file, configure the RWMS application to be of type "slave-plsql-app". Under <app-in-scope-for-integration>, change RWMS from plsql-app to slave-plsql-app.

    <app id="rwms" type="slave-plsql-app" />
    
  • Replace the existing rib-app section for RIB-RWMS with a copy of the below configuration. Edit the properties so that they apply for RIB-RWMS.

    For example:

    <rib-app id="rib-rwms" type="slave-plsql-app <deploy-in refid="rib-rwms-wls1" />
                            <rib-admin-gui>       
    <web-app-url>http://<host>: <port>/rib-rwms-appserver- gui/index.jsp</web-app-url>
                    <web-app-user-alias>rib-rwms_rib-admin-gui_admin-user-name-alias</web-app-user-alias>
                    <web-app-user-alias>rib-rwms_rib-admin-gui_operator-user-name-alias</web-app-user-alias>
                    <web-app-user-alias>rib-rwms_rib-admin-gui_monitor-user-name-alias</web-app-user-alias>
            </rib-admin-gui>
            <error-hospital-database>
                    <hosp-url>jdbc:oracle:thin:@<host>:<port>/<service></hosp-url>
                    <hosp-user-alias>rib-rwms_error-hospital-database_user-name-alias</hosp-user-alias>
            </error-hospital-database>
            <app-database>                <app-db-url>jdbc:oracle:thin:@<host>:<port>/<service></app-db-url>
                    <app-db-user-alias>rib-rwms_app-database_user-name-alias</app-db-user-alias>
            </app-database>
                  <notifications>
                  <email>
                   <email-server-host>mail.example.com</email-server-host>
                   <email-server-port>25</email-server-port>
                   <from-address>admin@example.com</from-address>
                   <to-address-list>admin@example.com</to-address-list>
                 </email>
                 <jmx />
               </notifications>
               <app id="rwms" type="plsql-app">
                <jndi-not-applicable />
               </app>
            </rib-app>
    

Note:

In the above configuration the RIB app (rib-rwms) type is "slave-plsql-app", as the secondary RIB-RWMS application will be deployed on premise. It does not have access to the actual error hospital and AQ database schema that is on cloud. <error-hospital-database> in the above configuration will point to the dummy schema, created during the installation. Refer to the RIB Installation Guide for more details.