by Andrea Giordano, Giandomenico Spezzano and Andrea Vinci
Although Cyber-Physical System (CPS) technologies are essential for the creation of smart infrastructures, enabling the optimization and management of resources and facilities, they represent a design challenge. The Rainbow platform has been developed to facilitate the development of new CPS architectures.
The complexity of Cyber-Physical Systems (CPS) , resulting from their intrinsically distributed nature, the heterogeneity of physical elements (i.e. sensors and actuators), the lack of reliability in communications, the large-scale  and variability of the environments in which they are employed, makes data analysis and operation planning a very complex task. The Rainbow platform has been designed to address some of these issues. Rainbow hides heterogeneity by providing a virtual object concept, and addresses the distributed nature of CPS by introducing a distributed multi-agent mechanism. Rainbow aims to keep computation close to the sources of information (i.e., the physical devices), thus reducing the need for remote communication. Furthermore, it addresses the dynamic adaptivity requirements of CPS by fostering the use of swarm intelligence algorithms . Rainbow also exploits the Cloud to carry out heavy computational tasks when needed.
An approach currently used when implementing a CPS architecture involves two layers: a physical and a remote (cloud) layer. The physical layer sends data to a remote server, which processes them and computes an operational plan. The remote server then sends the sequence of operations that must be executed to each device on the physical layer. The reasoning is performed in the remote layer. However, this solution cannot be applied when there are constraints on the response times, i.e., when a system needs to react rapidly to critical events that may compromise its integrity and functionality. Communication lags and remote processing can cause intolerable delays.
Rainbow relies on a new integrated vision that allows the design of a large-scale networked CPS based on the decentralization of control functions and the assistance of a remote layer to optimize their behaviour. Decentralization is obtained using a distributed multi-agent system in which the execution of a CPS application is carried out through cooperation among agents. This enables the exploitation of swarm intelligence techniques, where a complex global behaviour results from the interactions of simpler entities, acting solely on the basis of local knowledge and without the need for a global coordinator. These techniques introduce some appealing properties, such as adaptivity, fault tolerance and self-configuration.
Rainbow is a three layer platform composed of a Cloud layer, a Middle layer and a Physical layer.
Figure 1: The Rainbow Platform
Sensors and actuators immersed in the physical environment are directly connected to computing nodes, which are single-board computers like Raspberry PI or BeagleBoard, where they are represented as virtual objects (VOs). The VO concept aims to hide the heterogeneity of the physical devices, in terms of capabilities, functionalities and communication protocols. VOs offer a transparent and ubiquitous access to the physical devices via a well-established API, and allow agents to connect directly without needing to consider proprietary drivers or needing to address fine-grained technological issues. The networking computing nodes represent the middle layer of the Rainbow platform.
Each computational node that hosts VOs also contains an agent server. VOs and Agent Servers are co-located in the same computing nodes in order to guarantee that agents directly exploit the physical part through VO abstraction. Instead of transferring data to a central processing unit, we transfer processes (injecting fine-grain agents on the nodes) toward the data sources. As a consequence, less data needs to be transferred over a long distance (i.e. toward remote hosts) and local access and computation is fostered in order to achieve good performance and scalability.
The upper layer of the Rainbow platform concerns the Cloud part. This layer addresses all those activities that cannot be executed in the middle layer, such as tasks that require high computational resources or when a historical data storage is mandatory. On the contrary, all the tasks where real time access to the physical part is required are executed in the middle layer. The data analysis executed by the remote server is used by the middle layer to optimize its operations and behaviour.
Rainbow has been developed at the Institute of High Performance Computing and Networking (ICAR-CNR) within the RES-NOVAE project, “Buildings, Roads, Networks, New Virtuous Targets for the Environment and Energy”, funded by Italian Government. RES-NOVAE aims to implement new solutions for Smart Cities, and the Rainbow platform will be employed in many domains including power grids, water management, traffic control and environmental monitoring.
 A. Lee: “Cyber Physical Systems: Design Challenges”, in proc. of the 11th IEEE Symposium on Object Oriented Real-Time Distributed Computing, IEEE Computer Society Washington, DC, USA, 2008.
 I. Stojmenovic: “Large scale cyber-physical systems: Distributed actuation, in-network processing and Machine-to-Machine communications”, in proc. of the 2nd Mediterranean Conference on Embedded Computing (MECO), pp. 21-24, 2013.
 E. Bonabeau, M. Dorigo, G. Theraulaz: “Swarm Intelligence: From Natural to Artificial Systems” , New York, NY: Oxford University Press, Santa Fe Institute Studies in the Sciences of Complexity, Paper: ISBN 0-19-513159-2,1999.
Andrea Giordano, Giandomenico Spezzano, Andrea Vinci