Even today, IT for Retail is struggling inside the dilemma between Centralized architectures, with a single database (db) to which all stores access in real time, and Departmental architectures, with a db in every store replicated periodically to the center. The Centralized architecture strengths are the general availability of current data and technical simplicity, while the defects are vulnerability to failures in central system or in communication lines and limited scalability. The Departmental architecture offers specular advantages and disadvantages: good resilience but increased management complexity and lack of a “single truth”. To decrease the Centralized architectures shortcomings, each workstation may be coupled with a local Back-up system, but with a complexity and cost increase. In the case of Departmental solutions, replications frequency can be increased, but reducing efficiency and without reaching a constantly updated view of the entire chain. For these reasons, we are witnessing the transition from a traditional architecture to another. After experiencing the limitations of one, it is changed but soon new restrictions are discovered.
The architecture, whether applied to IT or buildings, is the meeting point between aspirations and technology, both in constant evolution. The passage from first to second industrial revolution has been also a shift from vertical to horizontal factories triggered by the change from steam/hydraulic power to electric motors embedded in each machine. Internet and cloud computing have triggered the third industrial revolution, so it’s inevitable moving to new IT architectures. The traditional ones are focused inside of the company and for this reason can be defined “introverted”, while in the new millennium requires “extroverted” architectures in order to facilitate cooperation with product/service suppliers and especially with customers, massively on the Cloud with their Tablets and SmartPhones.
The Distributed architecture in the Cloud age is based on services running both inside the Cloud and in peripheral devices (PC, Tablet, SmartPhone), cooperating together in order to achieve performance and efficiency otherwise impossible with traditional architectures.
With “distributed” we mean something different from Parallel Computing as the Map-Reduce in Big Data or Load Balancing in Web sites, where the central service is only meant to distribute the tasks to the subsystems working in parallel and, finally, to consolidate the results. It is not even meant to indicate the absence of any central system as for the Internet, designed with no “single point failure” to be invulnerable. Rather we mean “cooperation” where every system performs the most appropriate tasks for its context and exchanges messages according to a predefined orchestration. The Apps popularized by SmartPhones are a perfect example of this new distributed intelligence that fully exploits both local and Cloud processing capabilities. According to this architecture, the POS (Point od Sale) manage locally price look-up, promotions and customers data in order to issue sales documents at full speed and without depending on external faults, while Cloud services manage, among others, Stock, Coupons and Gift Cards balance.
The word “service” in the previous definition indicates a software component specialized in a specific functionality, with its own processing and data management capability, cooperating with other services by means of high-level and business-oriented standard messages. XML or JSON data formats and REST or SOAP protocols are independent from any particular SW technology or language in order to facilitate reuse and integration. These messages are asynchronous (like eMail) in order to improve scalability, being queued at peak times and immediately processed during the valleys. This is why the SOA (Service Oriented Architecture) and Cloud Computing makes true the dream of IT systems tailored to each company need, built by putting together standard services through APIs (Application Programming Interfaces), as if they were Lego blocks.
From the Store management autonomy and technical complexity point of view, the Distributed architecture is half way between Central and Departmental. However, the new ideas introduced by SOA and modern Cloud Computing platforms, place it in a completely new dimension.
The individual services or Apps can cooperate with each other directly over the standard http / https Internet protocols, without the need for any infrastructure. The Service Bus is a step forward to the fast and secure transfer of messages between services. It is a service itself behaving like a messages highway that improve performance, safety and reliability and discharge the other services from the task of ensuring delivery in case of network or recipient failure.
A Service Bus does not only handle message exchange from Stores to the Cloud and vice versa, but also among the group of services provided within the Cloud. Another change introduced by the true Cloud Computing is the end of the big monolithic applications and the advent of services federations. In this way a new centralized service, based, for example, on Big Data and Machine Learning, can be added without any trouble.
The advantages of Distributed and Service Oriented Architectures (SOA), coupled with modern Cloud Computing platforms, are many.
Quality. Cooperation between independent services through standard API enables continuous improvement of each individual service independently from the others. SaaS (Software as a Service) delivered from shared Cloud resources (multi-tenancy) also reduces cost of ownership and deployment of continuously improved versions.
Security and Reliability. Current technologies are focused on providing maximum security to cloud native architectures, more than to traditional ones. Moreover on-premises security practices are, on average, very poor. About reliability, the local services at each POS ensure uninterrupted sales transactions even during external faults.
Scalability. The loosely coupled cooperation between services, in addition to the parallel and elastic processing techniques (scale-out) in the Cloud services, allows a practically infinite scalability. The largest chain can manage all stores with a unique system having a constantly updated vision of the business.
Efficiency. The asynchronous messages allows cooperating services to work always at the top of their capabilities. Hardware and software sharing (multi-tenancy) and rapid elasticity in the Cloud, reduce the HW resources needed to ensure good response times in any workload condition. As shown below, after a break-even point, the Cloud-native architecture ensures significantly lower costs.
Openness and Agility. API based systems can be easily integrated together in order to optimize, for example, the supply chain and customers relationship through any channel. A Lego like IT has the advantage of reducing the dependency on a single supplier and to test/deploy new services quickly and inexpensively.