This work is published under the terms of a non-commercial Creative Commons license (CC BY-NC), which permits use, distribution and reproduction in any medium, provided the original work is properly cited. The license enables reusers to distribute, remix, adapt, and build upon the material in any medium or format for noncommercial purposes only, and only so long as attribution is given to the creator. Further terms may be seen at: Link to the terms of the CC BY-NC license

Smart IoT Systems (SIS) are the next generation of IoT systems that span across the complete computing continuum, from IoT via Edge/Fog to the Cloud, with local data analytics, decision making, and actuators involved. Software plays a key role in such systems. The systems’ increased complexity, the unpredictability of their environment, as well as the changes in their requirements and infrastructure are many factors that can result in new threats hindering their trustworthiness. The proper functioning and correctness of such systems is critical especially when they control actuators that can have a direct impact on the physical world. The ability of these systems to continuously evolve and adapt to these changes is decisive to ensure and increase their trustworthiness, quality and user experience. Currently, DevOps is the mainstream practice in the software and Cloud industry to foster continuous evolution of software systems. DevOps promotes a rapid and efficient value delivery to the market, through a tight collaboration between the developers and the teams that deploy and operate the software systems. DevOps seeks to decrease the gap between product design and its operation by introducing software design and development practices and approaches to the operation domain and vice versa [8].

When the ENACT project was created in 2017, there was no DevOps support for trustworthy Smart IoT Systems [12, 34]. Even if DevOps is not bound to any application domain, many challenges appear when the IoT intersects with DevOps, in particular, due to the lack of key enabling tools. ENACT focused specifically on the following three challenges [3].

The first key challenge, as opposed to Cloud environments which are relatively reliable and homogeneous, is the wide diversity that characterizes SIS, not only in terms of hardware but also in terms of their software stack. There is typically a lack of coherent languages, abstractions, security and privacy solutions that can be used to support development and the orchestration of software and their deployment across heterogeneous devices.

Second, SIS are by nature massively distributed on top of a highly heterogeneous and geographically-distributed infrastructure, which means that software is more complex to apprehend, develop, operate, and maintain than on top of Cloud infrastructures. Each device has a unique operational context, in terms of hardware capacity, end-user preference, exposure to security risks, role in the whole data flow, connection to sensors and actuators, etc. This context is dynamic and often unpredictable, e.g., the volume of data may change, the network connectivity among devices can be unstable. Therefore, the management and operation of each software module, e.g., where to place it, when to deploy it, how to configure it, and how to monitor it, etc, needs to be handled individually and continuously to fit its unique and evolving context. For large scale SIS which can include thousands of devices, handling each device individually inevitably leads to enormous operational effort and cost, which, as identified by Gartner, “can easily exceed the project’s financial benefits.”1

Third, SIS can have an impact on the physical world through actuators. There is a need to properly manage these actuators and to ensure that such systems and in particular the software deployed on these systems always work within safe operational boundaries. Only a few approaches exist in the literature focusing on the management of actuation conflicts, and none are meant to be used in a DevOps context.

These key challenges had to be addressed to enable DevOps for trustworthy Smart IoT Systems. In this chapter we present how the overall approach followed in the ENACT project proposes to evolve existing DevOps methods and techniques to support the development and operation of Smart IoT Systems, which (i) are distributed, (ii) involve sensors and actuators and (iii) need to be trustworthy (i.e., trustworthiness refers to the preservation of security, privacy, reliability, resilience, and safety [13]).

The remainder of the chapter is organized as follows. Section 2.1 introduces the overall ENACT approach and lists the enablers that will form the core contribution of ENACT supporting the DevOps of SIS. Section 2.1.4 details how these enablers can be organized together to form a comprehensive and continuous DevOps Framework. Section 2.2 summarizes how the developed solutions facilitate the development and operation of SIS that are trustworthy. Finally, Section 2.3 reports on the three use cases of the project and how they supported validation of the ENACT enablers.

To foster the adoption of DevOps practices in the realm of SIS, ENACT’s approach is to deliver a set of enablers (i.e., tools and services) that support the continuous development, evolution and operation of SIS. These enablers are designed to integrate with DevOps, Cloud, and Edge services and are loosely coupled, providing SIS providers with the ability to pick the enablers that best fit their needs. In other words, it is not necessary to gather the whole ENACT framework to benefit from one or more of these enablers, and these can be integrated as part of existing DevOps pipelines. As depicted in Figure 2.1, the different enablers contribute to different stages within the DevOps life-cycle and, overall, the ENACT Framework contributes to all the DevOps stages. In the following we provide an overview for each of the enablers, which are detailed in the remaining chapters of this book.

Figure 2.1.
Contribution of the ENACT tools to the DevOps lifecycle.
Figure 2.1.
Contribution of the ENACT tools to the DevOps lifecycle.
Close modal

The following three enablers provide specific support for the development of trustworthy SIS.

Risk Management enabler: This enabler provides concepts and tools for the agile, context-aware, and risk-driven decision support and mechanisms for application developers and operators to support the continuous delivery of trustworthy SIS [12]. By leveraging the evidences collectors provided by the enabler, organizations use it not only to assess risks but also to monitor and control treatment implementation and effectiveness during the development and operation of SIS, enabling the treatment of security and privacy risks together and making them actionable for software engineers. This makes this enabler the first DevOps-enabled continuous risk control solution, improving software development and operation organizations’ awareness on risks. In addition, it facilitates compliance with standards such as ISO 27001 and regulations such as GDPR, in near real-time. Further details about this enabler can be found in Chapter 3.

ThingML: ThingML [4] is an open source IoT framework that includes a language and a set of generators to support the modelling of system behaviours and their automatic derivation across heterogeneous and distributed devices at the IoT and edge end. The ThingML code generation framework has been used to generate code in different languages, targeting around 10 different target platforms (ranging from tiny 8 bit microcontrollers to servers). A challenge for approaches such as ThingML is how to properly log, monitor and debug the generated programs. Indeed, to fully benefit from the approach, such logging should be performed by relating to the concepts of the original abstraction level. To address this challenge, ThingML has been extended with an automated,platform-independent and easy to use logging mechanism to ThingML developers. This logging approach aims at providing log information about the execution of their ThingML programs, in terms of ThingML concepts being executed.

Actuation Conflict Management enabler (ACM): Actuation conflicts can occur when concurrent applications have a shared access to an actuator and when actuators produce actions within a common physical and local environment, whose effects are contradictory. This enabler supports the identification and resolution of direct and indirect actuation conflicts as part of a DevOps pipeline in a platform independent and technology agnostic way [6]. DevOps team can integrate the ACM solution as part of their DevOps pipeline to detect automatically direct and indirect actuation conflicts in a complex SIS. Off-the-shelf actuation conflict managers are automatically injected into the SIS. New actuation managers can be designed using a tool-supported domain-specific modelling language and checked against logical and temporal properties. While traditionally, the management of actuation conflicts is handled at the code level, the ACM enabler applies over and abstract representation of the SIS that is decoupled from its detailed code enabling the detection, analysis and resolution of actuation conflicts as part of a typical DevOps process. Verification mechanisms ensure the conflict management solution injected into the SIS satisfies temporal and logical properties making DevOps teams confident to place it in the system. Further details about this enabler can be found in Chapter 5.

Test and Simulation enabler (TaS): Software testing is a crucial step of any software development process, especially in DevOps. Having access to a productionlike environment that reproduces the same conditions where a piece of software would run is usually tricky or close to being an impossible task. This is exacerbated in IoT environments where (i) developers need to test their applications to ensure trustworthiness requirements, including scalability, are met, and (ii) building a large-scale testbed that includes a realistic physical infrastructure of devices and sensors can quickly be expensive. The test and simulation enabler provides a light-weight, user-friendly approach for simulating large number of IoT devices and cyber-attacks, in order to set up the testing environment and test SIS in a cost-effective way. The enabler goes beyond the state of the art on sensor and actuation simulation solutions that typically reproduce how the devices behave according to the physical environment. Instead, it focuses on the pure software simulation, by reproducing how devices interact with software in the IoT system.

Within the DevOps life-cycle, deployment is typically the activity that bridges development and operation activities. The following two enablers provide specific support for the deployment of trustworthy SIS.

Orchestration and Continuous Deployment enabler (GeneSIS): This enabler, also known as GeneSIS, supports the automatic deployment of software, together with the attached security mechanisms, across the computing continuum from IoT, Edge to Cloud [20]. Developers use a declarative modelling language to specify what software components and security mechanisms they want to deploy, and the engine automatically deploys them into the resources in the computing continuum, continuously monitoring the deployment status. The GeneSIS modelling language is independent of the underlying technologies, i.e., GeneSIS can deploy components anywhere in the IoT-Edge-Cloud continuum: from microcontrollers without direct Internet access to virtual machines running in the Cloud. It also includes security mechanisms as first-class modeling elements thus promoting security-by-design. Further details about this enabler can be found in Chapter 4.

Fleet Management and Diversity enabler (DivEnact): This enabler, also known as DivEnact, supports automatic software deployment for IoT applications that comprise a large fleet of devices, and maintains software diversity among the fleet [44]. It provides DevOps teams with a mean to deploy a new software version into the abstract fleet, without worrying about what exact devices are in the fleet, their contexts, and whether they are online or not. DivEnact maintains the devices and their contexts in the fleet, the software variants, and assign the variants to the appropriate devices depending on their contexts. Further details about this enabler can be found in Chapter 4.

Finally, the following four enablers focus on supporting the operation and monitoring of SIS.

Behavioral Drift Analysis enabler (BDA): The complex nature of the cyber-physical environment in which a SIS operate makes it impossible for DevOps teams to predict if, once under operation, the system will behave as expected during development. For instance, many unanticipated surrounding physical processes may disrupt and hamper the SIS from achieving its goal. The Behavioral Drift Analysis enabler provides a novel way to overcome this issue by shifting the monitoring and analysis from the internal of the system to its context by observing and analysing the effects of the commands sent to the actuators on the cyber-physical context of the SIS [29]. This makes the approach generic an applicable to any SIS independently of its implementation and it makes it non-invasive in the sense that it does not require any modification of the applications. DevOps teams can use this enabler during operation as a monitoring solution to detect symptoms indicating that the effects of the system on its environment are no longer as expected and to understand this loss of effectiveness. Further details about this enabler can be found in Chapter 5.

Online Learning enabler (OLE): To develop a self-adaptive SIS, software engineers have to create self-adaptation logic encoding when the SIS should execute which adaptation actions. However, developing self-adaptation logic may be difficult due to design time uncertainty; e.g., anticipating all potential environment changes at design time is, in most cases, infeasible. In addition, due to simplified design assumptions, the precise effect of an adaptation action may not be known, making it difficult to accurately determine how the SIS should adapt itself. The Online Learning Enabler addresses these challenges by leveraging modern machine learning algorithms during the operation phase [16]. In particular, the enabler uses reinforcement learning to address design time uncertainty by learning suitable adaptation actions through interactions with the environment at run time.

Security and Privacy Control and Monitoring enabler (S&P): This enabler is a one-stop solution for the near real-time monitoring and control of security- and privacy-related anomalies across multiple layers of Smart IoT Systems, from things, devices, Edge to Cloud. DevOps teams use the S&P enabler for controlling data protection and secure communications all along the lifecycle of the SIS, through continuous monitoring of security metrics, and automatic detection and feedback for subsequent DevOps loops. The enabler uses machine learning to correlate data captured by multiple probes or monitoring agents deployed in different layers, in order to offer a holistic view of the SIS and enable the detection of sophisticated attacks. The tool has a flexible architecture to adapt to the different information availability and the specific types of anomalies, and is fully elastic for the rapid scaling of the target systems. Further details about this enabler can be found in Chapter 6.

Context-Aware-Access Control (CAAC): Context-Aware-Access Control provides a unified access control of all the IoT actors from administrators, end-users, and services, to devices, and dynamically adapts the authorization according to the changing context [23]. It is a SaaS solution that can be integrated into the IoT applications, and provides a user-friendly authentication interface. The solution ensures the data is only exposed to authorized users and devices. It supports the applications in adapting the authorizations according to context changes, without requiring developers to modify the code. This is done by adding dynamicity to the OAuth 2.0 standard protocol to make the provided authorizations responsive to the context, injecting contextual risk levels as dynamic attributes in the authorization mechanisms. Further details about this enabler can be found in Chapter 6.

Root Cause Analysis enabler (RCA): Understanding the origin of a failure in a SIS is a complex and time consuming task. This is in particular due to the fact that these systems are large, vastly heterogeneous as well as widely distributed. This enabler observes the symptoms of the IoT systems, such as loss of messages, delay of response, etc. and automatically diagnoses the root cause, such as device failures or broken networks. DevOps teams can thus use the RCA enabler during the operation of their IoT application in order to receive alarms when there are incidents. The alarms will include details about the origin and possibly the reason of the accident as well as targeted instruction about how to fix the incidents. Instead of relying on human experts to exhaust all the causal connections between incidents and symptoms, the Root Cause Analysis tool builds this knowledge itself, by recording the typical incidents and their symptoms. During runtime, it compares the similarity between the observed symptoms with the recorded ones in the library to identify the possible incidents. Further details about this enabler can be found in Chapter 6.

In real cases, a large scale IoT system usually comprises many duplicates of the same or similar sub-systems, which contain a relatively smaller number of nodes. A typical example is the eHealth use case (see Chapter 9). In the eHealth use case, a remote patient monitoring system aims at supporting thousands of patients, and each patient is provided with a sub-system that includes one gateway and several sensors. These sub-systems are similar to each other, in terms of architecture, software and configurations. Under such setups, the DevOps of Smart IoT Systems usually includes two complementary activities: (i) the development, testing and optimization of the functionality within one sample sub-system, and (ii) the operation of the system of systems, with many duplicates of the sample sub-system.

The ENACT enablers naturally have different focuses. While the Risk Management, test and simulation, security and privacy control enablers and DivEnact are solutions that can be used at the system-of-systems level, the other enablers are aimed for the sub-system level. Yet, it is worth noting that the tools that system-of-systems enablers can also be applied at the scale of one sub-system.

The set of ENACT enablers introduced above form the ENACT DevOps Framework. Below we detail the architecture of this framework as well as the relationships between the enablers within this framework.

Figure 2.2 depicts the overall architecture of the ENACT Framework. It is a multi-layer architecture composed of 4 layers hierarchically organized plus one crosscutting layer. In the following we detail each of these layers. It is worth noting that Figures 2.1 and 2.2 are complementary in explaining the relationships and complementarity of the enablers. The former details the contribution of the enablers within a DevOps pipeline while the later details how they can be integrated within a comprehensive Framework for the development and operation of SIS.

Figure 2.2.
The ENACT architecture.
Figure 2.2.
The ENACT architecture.
Close modal

From the most abstract to the most concrete (i.e., from the farthest to the closest to the running system), the layers are described as follows:

  1. Evolution & Adaptation Improvement Layer: This layer provides the mechanisms to continuously improve and manage the development and operation processes of trustworthy SIS. On the one hand, the Risk Management enabler helps organizations to analyze the architecture of their Smart IoT Systems and detecting potential vulnerabilities and the associated risk (in particular related to security and privacy aspects) and propose related mitigation actions. On the other hand, the Online Learning enabler focuses on improving the behaviour of the adaptation engine that will support the operation of trustworthy SIS. This tool typically relates to the Operate stage of the DevOps process. In general, the improvement layer provides feedback and knowledge to all the other DevOps stages with the aim to improve the development and operation of trustworthy SIS. Thus, in this architecture, information from this layer are provided to the evolution and adaptation management layer with the aim to improve it.

  2. Evolution & Adaptation Management Layer: This layer first embeds a set of editors to specify the behaviours as well as the orchestration and deployment of SIS across IoT, Edge and Cloud infrastructure. These editors integrate with mechanisms to maximize and control the trustworthiness of the system. All together, these components cover activities in both the Dev and Ops parts of a DevOps process and in particular to the code, build and operate stages. The activities performed at this layer are strongly affected by the inputs from the improvement layer.

  3. Evolution & Adaptation Enactment Layer: This layer bridges the gap between development and operation as its goal is to enact the deployment and adaptation actions decided at the Evolution & Adaptation Management Layer. The mechanisms of this layer monitor and manage the deployment of the running system.

  4. Environment Layer: This layer consists of the running system together with the environment and infrastructure in which it executes. This includes both production and testing environments.

  5. Monitoring and Analytics Layer: This layer is orthogonal and feeds the other four. The enablers at this layer are supporting the monitoring stage of the DevOps process and typically aim at providing feedback from Ops to Dev. More precisely, this layer provides mechanisms to monitor the status of the system and of its environment. This includes mechanisms to monitor the security and privacy of a SIS. In addition, it performs analytic tasks providing: (i) high level notifications with insights on ongoing security issues, (ii) diagnostics and recommendations on system’s failures, and (iii) feedback on the behavioural drift of SIS (i.e., system is functioning but not delivering the expected behaviour).

In this section we first summarize the contributions of the enablers in terms of supporting the development and operation of trustworthy SIS.

Based on the NIST definition of trustworthiness for Cyber Physical Systems [13], within ENACT, we adopt the following definition of trustworthiness and its different properties: “Trustworthiness refers to the preservation of security, privacy, safety, reliability, and resilience of SIS”.

We adopt the following definitions of the different properties:

  • Security refers to the preservation of confidentiality, integrity and availability of information [9].

    • Integrity is the property of protecting the accuracy and completeness of information [1].

    • Confidentiality is the property that information is not made available or disclosed to unauthorized individuals, entities, or processes [1].

    • Availability is the property of information being accessible and usable upon demand by an authorized entity [1].

  • Privacy refers to the protection of personally identifiable information (PII) [10]. PII refers to any information that (a) can be used to identify the PII principal to whom such information relates, or (b) is or might be directly or indirectly linked to a PII principal.

  • Safety refers to the ability of the cyber-physical system (CPS) to ensure the absence of catastrophic consequences on the life, health, property, or data of CPS stakeholders and the physical environment [13].

  • Reliability refers to the ability of the CPS to deliver stable and predictable performance in expected conditions [13].

  • Resilience refers to the ability of the CPS to withstand instability, unexpected conditions, and gracefully return to predictable, but possibly degraded, performance [13].

Figure 2.3 summarizes how each individual ENACT enabler contributes to the development and operation of trustworthiness of SIS. It is also worth noting that the support offered by the ENACT enablers to the DevOps of SIS is, by itself, a major contribution for supporting the trustworthiness aspect. Indeed, the adoption of the DevOps principles and practices in the field of the IoT is decisive to enable the continuous and agile evolution of SIS, which is necessary to adapt the system to newly appearing trustworthiness threats and to ensure its overall quality.

Figure 2.3.
ENACT contribution to SIS trustworthiness.
Figure 2.3.
ENACT contribution to SIS trustworthiness.
Close modal

Some enablers are marked as indirectly contributing to the privacy property. This is because the support for security provided by these enablers also contributes preserving the privacy of a SIS. The same applies to the safety property, the contributions of the enablers on security, privacy, reliability and resilience properties are important to help ensuring the safety of a SIS.

The enablers from the monitoring and analytics layer of the ENACT DevOps Framework (i.e., security and privacy monitoring, behavioural drift analysis, and root cause analysis) are considering security, privacy, reliability and resilience aspects. It is worth noting that these tools are complementary: On the one hand, the security and privacy monitoring enabler focuses on observing symptoms of security and privacy issues, and the behavioural drift analysis enabler focus on symptoms of reliability and resiliency issues. On the other hand, the root cause analysis focuses on understanding the causes of these symptoms.

The general applicability of the ENACT enablers was validated and demonstrated in the context of three use cases: Smart Building, Intelligent Transport System (ITS), and eHealth. Each of these use cases represent different application domains, all facing specific trustworthiness challenges as depicted in Figure 2.4.

Figure 2.4.
ENACT use cases and project partners in charge of the use cases.
Figure 2.4.
ENACT use cases and project partners in charge of the use cases.
Close modal

The first use case explored and validated ENACT in the domain of Smart Buildings, i.e., Smart IoT Systems that make use of Smart Building sensors, actuators and services. The use case leveraged the Kubik test facility,2 which is a three floors smart building owned by Tecnalia and designed for testing and research. Kubik offers SIS providers with a flexible framework not only to explore the opportunities offered by a rich ecosystem of sensors and actuators when designing novel IoT solutions but also to test and make experiments with the SIS resulting from this design in a real infrastructure. Thus, the smart building use case helped us validating our ENACT enablers in the early design stage of a SIS. During the project, several applications dedicated to aspects such as energy efficiency or user comfort were designed, developed and tested in Kubik. This context introduced specific DevOps and trustworthiness requirements that motivated the use of the some of the ENACT enablers.

For SIS providers it is especially important in this early design phase being able to quickly deploy and test the different applications and services that will compose or extend the existing SIS and thus run on IoT, Edge and Cloud infrastructure. The GeneSIS and TaS enablers aim at supporting DevOps teams in such activities.

Smart Building systems are typically composed of several applications controlling different actuation devices within the building (e.g., HVAC, roller shutters, lights, TVs). In such a setting, it is of paramount importance to make sure the actuators are properly managed as to control their effects on the environment (i.e., applications are behaving as expected). On the one hand, while it can be assumed that one application in isolation has a proper control over the actuators it applies, from the SIS perspective this assumption does not sustain as several applications may concurrently control shared actuators. Without proper mechanisms to handle such situation, the behavior of the actuator can quickly become unpredictable and possibly harmful. The ACM enabler aim at support the design of such actuation conflict handling mechanisms. On the other hand, indirectly, one actuator, possibly managed by an application, may hinder the effectiveness of another, managed by another application. Avoiding such loss of effectiveness is a complex task, which, without proper support, requires a deep analysis of the applications under operations. The BDA enabler propose to relieve developers from such a task, whilst the ACM enabler help mitigating the problem.

As in many other domains, smart buildings typically expose a broad attack surface and their security must not be an afterthought. The S&P Monitoring and control enabler provide a means to observe the security of the SIS and support security by design.

More details about the use case can be found in Chapter 11.

The second use case explored and validated ENACT in the domain of Intelligent Transport Systems, in particular exploring how SIS could be used for train integrity control. INDRA, as the system integrator, needs to continuously evaluate the subsystems with both software and hardware from their suppliers (i.e., EDI and BOSC in this project), and adjust the design and implementation of their main services accordingly in order to maximize the integration of the subsystems. DevOps guarantees the effectiveness of the integration process, and provides realtime feedback to both the integrator and the suppliers as reference for subsequent development activities. The ENACT enablers were thus exploited in the use case at a stage where the focus was on understanding how best the hardware and the software can integrate, and if the integrated solution fits requirements for the solution to be scaled in production.

In particular, key challenges included to understand (i) how the software performs on the gateway and handles failures as well as (ii) how the overall SIS scales as, in the long term, the number of gateways and sensors is aimed to grow up to thousands of nodes.

To understand how the software performs on the gateway the first step was to actually deploy it. The use case exploited GeneSIS for this. The later was integrated as part of the Indra delivery pipeline, making sure that, when a new version of the software is ready, it is only deployed if the train is in a state where such maintenance activity is authorized. The second step was to monitor the system under operation and to report and analyse any failure. Because there can be many reason from which a problem in the software may originate, the use case leveraged the Root Cause Analysis enabler to guide DevOps engineers through a faster understanding of the problem.

For the testing of the solution at scale, building a testbed consisting of real devices was not an option as each individual gateway is already expensive. Instead, the approach selected was to build a hybrid testing environment combining a few real devices with simulated sensors and gateways. In such context, to make the tests as relevant and realistic as possible, the simulated devices must be able to replay real data from real scenarios as well as to inject erroneous data providing a means to evaluate how the system performs when operating properly and when error occurs. The Test and Simulation enablers perfectly fits these requirements and was a natural choice for Indra to evaluate their solution. The enabler was used to record real data from the system, simulate large infrastructure composed of several hundreds of nodes, and test the system accordingly, sometimes also simulating errors and attacks.

More details about the use case can be found in Chapter 10.

The third use case explored a solution for remote patient monitoring and assistance that leverage a Personal Health Gateways (PHG) installed in patients’ homes. The PHG is at the core of the service as it integrates and controls various types of sensors and medical devices (e.g., blood pressure meter, fall detection sensors, glucose meter, video surveillance, indoor and out-door location tracking, etc.), and ensure that the right data are provided to the various stakeholders and to the integrated systems. The services running on the gateway needs to be customized to patient and family needs and requirements. This eHealth solution was partially developed within ENACT and is now in production with a large set of PHGs in production.

For eHealth systems, security and privacy are of paramount importance and compliance to GDPR and ISO 27001 is mandatory. As a result, risks must be carefully analysed and the necessary security and privacy mechanisms must be implemented on the medical gateway and secure communications with the Tellu Cloud platform need to be ensured. For instance, no data can be stored or processed on the gateways without strong gateway authentication and without enforcing a strong binding between the patient and the gateway. Before ENACT, no solution in the market fitted Tellu needs, preventing the migration of services to their medical gateway and thus hindering the full exploitation of the gateways. The Context-Aware Access Control enabler is the first solution to address this challenge. In complement, the Risk Management enabler provided Tellu with a mean to continuously perform the required risk analysis but also facilitating its reporting.

This eHealth solution was partially developed within ENACT and is now in production with a large set of PHGs in production. Each gateway should be configured to best fit (i) patient and family needs and requirements, and (ii) its operation context, including the set of sensors and medical devices connected to it. When dealing with a large fleet of gateways, the service provider (Tellu) cannot afford to operate and configure each Personal Health Gateway manually as this could easily overwhelm their operation teams, resulting in a service that is not scalable. The DivEnact enabler aim at addressing this challenge.

More details about the use case can be found in Chapter 9.

This chapter provided an overview of the ENACT approach to help the reader better apprehend the next chapters of the book. The focus was in particular on (i) the different enablers offered by ENACT for supporting DevOps for SIS, (ii) the ENACT Framework showing how the enablers may be combined, as well as (iii) the validation of these results in the context of realistic use cases from different IoT domains. Details about the enablers and use cases, such as scientific basis, implementation, application, and effect, can be found in the following chapters.

[1]
Matt
Bishop
. “
Computer security: Art and science. 2003
”. In:
Westford, MA: Addison Wesley Professional
(
2003
), pp.
4
12
.
[2]
Nicolas
Ferry
et al.
Continuous Deployment of Trustworthy Smart IoT Systems
”. In:
The Journal of Object Technology
(
2020
).
[3]
Nicolas
Ferry
et al.
“ENACT: Development, operation, and quality assurance of trustworthy Smart IoT Systems”. In
International Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment
.
Springer
.
2018
, pp.
112
127
.
[4]
Franck
Fleurey
and
Brice
Morin
. “ThingML: A generative approach to engineer heterogeneous and distributed systems”. In:
2017 IEEE International Conference on Software Architecture Workshops (ICSAW)
.
IEEE
.
2017
. pp.
185
188
.
[5]
Anne
Gallon
et al.
Making the Internet of Things More Reliable Thanks to Dynamic Access Control
”. In:
Security and Privacy in the Internet of Things: Challenges and Solutions
27
(
2020
), p.
61
.
[6]
Thibaut
Gonnin
et al.
Actuation Conflict Management Enabler for DevOps in IoT
”. In
10th International Conference on the Internet of Things Companion
.
2020
, pp.
1
4
.
[7]
Edward R
Griffor
et al.
Framework for cyber-physical systems: Volume 2, working group reports
”. In: (
2017
).
[8]
Jez
Humble
and
David
Farley
.
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
.
Addison-Wesley Professional
,
2010
.
ISBN: 860-1401501176
.
[9]
J ISO
. “
ISO/IEC 27000: 2012, information technology-security techniques-information security management systems-overview and vocabulary
”. In:
International Organization for Standardization
(
2012
).
[10]
J ISO
. “
ISO/IEC, 29100.2011 Information technology-security techniques-privacy framework
”. In:
International Organization for Standardization
(
2011
).
[11]
Victor
Muntés-Mulero
et al.
Model-driven Evidence-based Privacy Risk Control in Trustworthy Smart IoT System
s”. In: (
2019
).
[12]
NESSI
.
SOFTWARE CONTINUUM: Recommendations for ICT Work Programme 2018+
.
NESSI report
.
2016
.
[13]
Alexander
Palm
,
Andreas
Metzger
, and
Klaus
Pohl
. “Online reinforcement learning for self-adaptive information systems”. In:
International Conference on Advanced Information Systems Engineering
.
Springer
,
2020
, pp.
169
184
.
[14]
Gérald
Rocher
et al.
An IOHMM-Based Framework to Investigate Drift in Effectiveness of IoT-Based Systems
”. In:
Sensors
21
.
2
(
2021
), p.
527
.
[15]
Hui
Song
et al
Model-based fleet deployment of edge computing applications
”. In:
Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems
.
2020
, pp.
132
142
.
[16]
Antero
Taivalsaari
and
Tommi
Mikkonen
. “
A roadmap to the programmable world: software challenges in the IoT era
”. In:
IEEE Software
34
.
1
(
2017
), pp.
72
80
.