After decoupling of Retail Integration Cloud Service (RICS) from Retail Merchandise Cloud Service (RMFCS), RICS is going to be standalone offering. RICS would still be required for RMFCS, but not vice versa. RICS supports both RMS on premise and RMS on cloud. RIB is already supported in cloud so for enabling the integration of RMS (on-premise) with all other retail applications which are in hybrid cloud environment, RIB follows master/slave approach. Slave resides close to on-premises RMS while master is on-cloud. Communication between master and slave is through web service calls. RIB-RMS master invokes the web services exposed by slave RIB-RMS to send/receive messages to/from other applications on cloud via RIB.
Prerequisites
Hybrid Cloud set-up involves 2 parts installation, one each for master (cloud) and slave components (on-premises).
This document provides specific instructions for rib-rms installation for hybrid-cloud, for detailed instructions on RIB installation refer to the Chapter 6, "Run the RIB Application Installer".
Main difference between the regular RIB-RMS installation and the hybrid cloud RIB-RMS is the data sources created during the installation needs to point to a set of available database schema for AQ, Error Hospital and the Application DB, as listed below.
Identify the DB users you will need for the data-sources. You will need to input these during the compilation step.
Master rib-rms app needs a valid AQ schema, a valid Error Hospital schema. Since the master-app does not have access to the on-premises RMS application schema, we will point the app-db datasource to the Error hospital schema. AQ schema is the usual schema which all rib-apps are connected to including master rib-rms as well.
Slave rib-rms app will be deployed in the on-premise close to RMS. Slave rib-rms app needs a valid on-prem RMS application schema. For the Error Hospital and the AQ data-sources can be pointed to the same RMS app schema since the slave-app does not know about the on-cloud DB.
App Type | AQ Schemarib-rms-jms1-ojmsmanaged-datasource | EH Schemarib-rms-hosp-managed-datasource | App DB Schemarib-rms-managed-datasource |
---|---|---|---|
Master rib-rms (master-plsql-app) |
A valid AQ . example: rib_aq_schema |
A valid EH schema. example: eh_schema_master_rib_rms |
same as EH eh_schema_master_rib_rms |
Slave rib-rms (slave-plsql-app) |
example: rms_app_schema (RMS app schema on-prem.) |
example: rms_app_schema (RMS app schema on-prem.) |
example: rms_app_schema (RMS app schema on-prem.) |
Rib-rms Master can be installed using rib application installer, follow Chapter 6, "Run the RIB Application Installer" for instructions. For command line tool follow the below instructions.
Download and extract the RibKernel<RIB_MAJOR_VERSION>ForAll<RETAIL_ APP_VERSION>Apps_eng_ga.tar.
e.g tar xvf RibKernel19.0.0ForAll19.x.xApps_eng_ga.jar
RibFuncArtifact<RIB_MAJOR_VERSION>ForAll<RETAIL_APP_ VERSION>Apps_eng_ga.tar and put it in rib-home/download-home/rib-func-artifacts directory.
Do not extract the tar file. This will be done by the check-version-and-unpack tool.
Download all the RibPak<RIB_{MAJOR|MINOR}_ VERSION>For<RETAIL_APP_ NAME><RETAIL_APP_VERSION>_eng_ ga.tar and put it in the rib-home/download-home/all-rib-apps directory.
Do not extract the tar file. This will be done by the check-version-and-unpack tool.
For Linux and Solaris OS only. Set the JAVA_HOME environment variable. The JAVA_HOME must be set to a JDK1.8.0+64bit with latest security updates, within the1.8codeline.64bit.
Run the rib-home/download-home/bin/check-version-and-un pack.sh script from rib-home/download-home/bin directory.
Edit rib-home/deployment-home/conf/rib-deployment-env-info.xml file to specify the deployment environment information.
Under <app-in-scope-for-integration> change RMS from plsql-app to master-plsql-app:
<app id="rms" type="master-plsql-app" />
Replace the existing rib-app with copy of commented hybrid cloud installation section for rib-rms.
Example (this is also available on deployment XML as commented snippet):
Note: RMS retail app type is "soap-app". RIB app (rib-rms) type is "master-plsql-app". |
Compile: Run the rib-home/application-assembly-home/bin/rib-app-compiler.sh script with setup-security-credential from rib-home/application-assembly-home/bin directory.
Example: ./rib-app-compiler.sh -setup-security-credential
For rib-rms give the same schema details for Error Hospital (EH) and app-DB
There are two new webservices added in RIB that allow the master to communicate with slaves.
Publication - RemotePlsqlPublisherComponentServiceBeanService
Subscription - PlsqlApplicationMessageInjectorServiceBeanService
RIB supports policyA and poilicyC service provider. By default webservices are secured with policyC (http-or-https-username-token).
The compilation step prompts you to enter the user/password for the alias " rib-rms_ws_security_user-name-alias" used for service calls. The credential should be the same as for "rib-rms_rib-admin-gui_admin-user-name-alias" on the slave side.
Deploy: Execute the rib-home/deployment-home/bin/rib-app-deployer.sh script with the appropriate command line parameter.
rib-app-deployer.sh -prepare-jms rib-app-deployer.sh -deploy-rib-app-ear rib-<app>
Note: <app> must be rms. |
Verify: Once the rib-rms app is deployed, open the rib-admin-gui from a web browser:
<http or https://>host:port/rib-rms-admin-gui
Note: This setup is not applicable to fully on-premise topology where RMS and RIB both are on-premise. |
Download RIB kernel For RMS-slave-app (hybrid-cloud) distribution.
RibKernel19.0.0ForRmsSlave19.x.xApps_eng_ga.jar
Extract contents of jar file.
Open rib-deployment-env-info.xml found inside ./rib-rms-slave-home/deployment-home/conf.
Edit this file to specify your deployment environment information.
Make sure the following entries are present in the <app-in-scope-for-integration> section:
<app id="rms" type=" slave-plsql-app" />
Make sure following entries are present in the rib-app section of rib-rms slave:
Compile: Run the rib-home/application-assembly-home/bin/rib-app-co mpiler.sh script with setup-security-credential from rib-home/application-assembly-home/bin directory. Example: ./rib-app-compiler.sh -setup-security-credential
When the slave app deploys on-premise, it will not have access to AQ JMS and Error hospital. Therefore, both datasources must connect to the RMS app schema.
Deploy: Execute the rib-home/deployment-home/bin/rib-app-deployer.sh script with the appropriate command line parameter.
rib-app-deployer.sh -deploy-rib-app-ear rib-<app> rib-func-artifact deployment is not required.
Deployed slave app will be in warning state but it will not impact any functionality.
Verify: Make sure the Publication and Subscription WS are available to use.
Example:
https://ribhost.example.com:17010/RemotePlsqlPublisherComponentServiceBean/ RemotePlsqlPublisherComponentServiceBeanService?WSDL
https:// ribhost.example.com:17010/PlsqlApplicationMessageInjectorServiceBea n/PlsqlApplicationMessageInjectorServiceBeanService?WSDL
Note: There is no RIB installer GUI available for rib-rms slave installation. |
Sample script to create rib-rms master AQ schema:
CREATE USER <rib aq user> IDENTIFIED BY <rib aq password> DEFAULT TABLESPACE "RETAIL_DATA" TEMPORARY TABLESPACE "TEMP"; GRANT "CONNECT" TO <rib aq user> ; GRANT "RESOURCE" TO <rib aq user> ; GRANT CREATE SESSION TO <rib aq user> ; GRANT EXECUTE ON "SYS"."DBMS_AQ" TO <rib aq user> ; GRANT EXECUTE ON "SYS"."DBMS_AQADM" TO <rib aq user> ; GRANT EXECUTE ON "SYS"."DBMS_AQIN" TO <rib aq user>; GRANT EXECUTE ON "SYS"."DBMS_AQJMS" TO <rib aq user>; GRANT "AQ_ADMINISTRATOR_ROLE" TO <rib aq user>; ALTER USER <rib aq user> QUOTA UNLIMITED ON RETAIL_DATA;