1 Technical Architecture
This chapter describes the overall software architecture, offering a high-level discussion of the general structure of the system.
There could be underlying version updates to the technical stack (DB 19c, Web Logic, updated versions of UI libraries, Fusion middle ware libraries and so on.)
Multiple Products
EICS (Enterprise Inventory Cloud Service) and SOCS (Store Operations Cloud Service) are two separately licensed products.
EICS includes:
-
EICS Browser Client
-
EICS Web Services
-
EICS Server Tier
-
EICS Database tier with data access code, batches, reports
SOCS includes:
-
Oracle MAF Client
To use SOCS, EICS needs to be deployed.
Cloud Deployment
EICS Client
Oracle JET based browser application that allows the user to perform a wide range of administrative functions.
SOCS Mobile Client
The mobile client provides all day-to-day transactional workflows within an Oracle Mobile Application Framework (MAF) platform. MAF is a hybrid-mobile platform that supports both iOS and Android devices. For more details, please see Oracle Retail Store Operations Cloud Service Mobile Guide.
Web Services
There is no GUI for the SOAP web services APIs that are provided by EICS. These APIs allow customers to create or develop applications or add-ons that can replicate some or all the steps of a transaction workflow.
We have started providing REST web service APIs as well.
These REST APIs will be in addition to existing SOAP APIs.
Please note that once a comparable REST API is added, SOAP service deprecation clock will start ticking.
WTSS / IDCS or OCI IAM
WTSS: Web Traffic Security Service
Integration Cloud Services uses Oracle Identity Cloud Service (IDCS) as its identity provider (IDP) or Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) as its identify provider (IDP).
EICS Application Server(s)
Server deployed as a J2EE application inside the WebLogic Application Server.
Integration
Oracle Retail Integration Cloud Server (RICS) is used for integration between multiple systems within the cloud as well as deployment of public web services by EICS and other systems.
Oracle Retail Integration Bus (RIB)
The RIB is a near-real time, message based communication queue. Payloads are delivered in an asynchronous fashion between multiple systems on the enterprise in a non-blocking (fire and forget) manner. This broadcast of notifications is subscribed to by each application interested in an event notification.
Deployment
EICS and SOCS have a distributed deployment model with browser and mobile devices running at stores, connecting with server and database hosted at corporate. The central server deployment allows real-time inventory queries for stock-on-hand positions across the enterprise but requires a fairly robust network connection between store and corporate environments.
Deployment - Performance: Bandwidth, Scaling
Bandwidth Requirements for Browser Clients
Installations with less than 128 KB bandwidth available between the device containing the browser or the mobile application and the data center are not recommended or supported. Limiting the client to less than 128 KB total available bandwidth causes unpredictable network utilization spikes, and the performance of the client degrades below requirements established for the product.
Network Latency Constraints
EICS is also sensitive to the network latency between the browser or mobile device and the data center. Oracle Retail does not recommend or support installations with more than 100 ms total round-trip network latency between the client device and the data center. Latency beyond the 100 ms limit causes unpredictable network utilization spikes, and the performance of the client degrades below requirements established for the product. The 100 ms limitation provides reasonable, predictable performance and network utilization for transactions.
Application Server Clustering
EICS supports application server clustering with a load balancer for Oracle WebLogic.
The EICS Server can run inside an application server cluster, but the load must be distributed among the nodes in the cluster.
It is also possible to configure a single application server instance with multiple JVMs inside the application server instance. When doing this, an upper limit of 1.5 to 2 JVMs per server CPU is recommended.
Clustering for Oracle WebLogic Server is also supported through a load balancer.