Written by Luis Miguel Pinho (School of Engineering, Polytechnic Institute of Porto).
One of the main challenges to be tackled by ELASTIC is the necessity to fulfill the non-functional properties inherited from smart systems, such as real-time, energy efficiency, communication quality or security. In these systems, large volumes of data are collected from distributed sensors, transformed, processed and analysed, through a range of hardware and software stages from the physical world sensors (commonly referred to as edge computing), to the analytics back-bone in the data-centres (commonly referred to as cloud computing).
This complex and heterogeneous layout presents several challenges, of which an important one refers to non-functional properties inherited from the application domain including real-time, energy-efficiency, quality of communications and security:
- Real-time data analytics is becoming a main pillar in industrial and societal ecosystems. The combination of different data sources and prediction models within real-time control loops, will have an unprecedented impact in domains such as smart cities. Unfortunately, the use of remote cloud technologies makes challenging to provide strict real-time guarantees due to the large and unpredictable communication costs on cloud environments.
- Mobility shows even increased trade-offs and technological difficulties. Mobile devices are largely constrained by the access to energy, as well as suffering from unstable communication, which may increase random communication delays, unstable data throughput, loss of data and temporal unavailability.
- Security is a continuously growing priority for organizations of any size, as it affects data integrity, confidentiality and potentially impacting safety. However, strict security policy management may hinder the communication among services and applications, shrinking overall performance and real-time guarantees.
Overall, while processing time and energy cost of computation is reduced as data analytics is moved to the cloud, the end-to-end communication delay and the performance of the system (in terms of latency) increases and becomes unpredictable, making not possible to derive real-time guarantees. Moreover, as computation is moved to the cloud, the required level of security increases to minimise potential attacks, which may end up affecting the safety assurance levels, hindering the execution and data exchange among edge and cloud resources.
It is thus necessary that the ELASTIC architecture includes mechanisms which allow the specification of the required level of non-functional properties, the offline analysis of these parameters to determine an appropriate system configuration which enables their fulfillment, and an online monitoring and analysis capability which is able to trigger configuration changes upon detection of level violations. This will be provided via the Non-Functional Requirements (NFR) tool of the ELASTIC Software Architecture.
Non-Functional Requirements (NFR) tool
Contemporary cloud computing solutions, both research projects and commercial products, have mainly focused on providing functionalities at levels close to the infrastructure. Furthermore, they tend to focus on functional aspects only. In order to provide an improved ecosystem, which considers the full compute continuum, there is a great need for analysis and monitoring tools that support higher-level concerns and non-functional aspects in a comprehensive manner, from the edge to the cloud. Therefore, the NFR tool of the ELASTIC architecture will operate both at the analysis phase, and during execution.
The goal of the analysis phase is to guarantee the fulfilment of the system non-functional properties, considering the potential trade-offs between performance, predictability, energy-efficiency, communication quality and security. The result of this analysis is a set of possible initial deployment configurations. This phase carefully identifies how satisfying and fulfilling one requirement can impair the satisfaction of other requirements in the system. Establishing and maintaining such interdependencies during the development process and the lifecycle of the system is also an important point, taking into account the evolution of the software architecture and the introduction of new requirements or the modification of existing ones.
Deployment decisions should be made in light of a target system, aiming for high quality of the system deployed under given constraints. However, in order to support deployment decisions, it is essential to identify concrete measures as a basis for decision making and evaluation of the proposed solutions. Such measures need to be dynamic and distributed along the compute continuum, in the case of systems that evolve continuously as the workloads, allocated resources and requirements of these systems change over time. Therefore, runtime monitoring of requirements is used to guide this evolution towards configurations that are guaranteed to satisfy the system’s overall requirements. Monitoring identifies the scenario the system operates in, and selects a model whose quantitative verification enables the detection or, sometimes, prediction of violations. The subsequent execution of a correct reconfiguration plan helps the system to re-instate or maintain compliance with the expected level of service. The monitoring phase makes use of the ELASTIC software architecture ability to provide information on the resource usage and application execution in the nodes, and dynamically re-map and schedule components considering the execution profile identified by the monitor.