Safety-critical Cellular Internet of Things (CIoT) systems demand a high degree of availability to ensure safe and uninterrupted operations. Given the distributed and heterogeneous nature of these systems, spanning IoT devices, edge nodes, on-premises servers, and cloud platforms, traditional monolithic software architectures are inadequate in delivering the necessary flexibility, scalability, and reliability. In contrast, the Microservices Architecture (MA) offers a promising alternative by promoting decentralization, modularity, and dynamic scalability. However, despite its advantages and some improvements for availability, MA does not necessarily meet high-availability requirements, particularly in safety-critical settings. Advanced availability management mechanisms tailored to the unique demands of safety-critical CIoT systems are required to enhance their availability. In this work, we propose an availability management framework for MA based safety-critical CIoT systems, integrating machine learning based anomaly detection to enable proactive fault-tolerance as reactive mechanisms often fail meeting availability requirements. Our framework aims not only at detecting and recovering from failures, but also predicts potential failures before they manifest, thereby avoiding/minimizing downtime and enhancing the availability of the system.
With the proliferation and the critical role of Internet of Things (IoT) in various domains, rigorous testing techniques are required for improving their quality. Several review studies have examined IoT topology and analyzed different layers of the IoT architecture. These assessments include synthesis on the application layer protocols, but do not specifically study the application layer protocol standalone. As a result, this work focuses on unique application-layer protocol-specific testing approaches, using different tools and frameworks, and systematically analyzes the challenges in an in-depth manner. There is a need for a specific and deeper analysis of the application layer IoT protocol testing state of the art. This paper aims to bridge this gap by conducting a Systematic Literature Review (SLR) to provide a deeper and concise picture of the state of the art in testing IoT application layer protocols. We consider studies published between 2010 and 2025, resulting in 47 primary studies selected from 822 retrieved papers after systematic screening. These studies have been retrieved from eight major digital libraries. Following the Preferred Reporting Items for Systematic Review and Meta-Analysis (PRISMA) guidelines, we discuss and synthesize our findings on the different types of testing, explore the most promising approaches, frameworks and tools, trends, highlight the main challenges, and identify open research issues and directions in testing IoT application layer protocols.
Cloud services enable cloud-native architectures for 5G networks. They enable rapid and scalable deployment of cloud- native network functions and services. These cloud services need to be tested thoroughly in the development environment as well as in the production environment because of the differences between these environments. Current practices focus on executing the test cases in the production environment without disturbing the system usage. However, these practices have limitations as they only apply to specific types of components or features. We propose a solution for live testing cloud services in the production environment. Our solution consists of a framework based on an architecture and a set of methods. The goal of such architecture is to automate testing activities in the production environment, and enable testing services in the production environment while avoiding test interferences. While giving an overall picture of our solution on live testing we also draw a set of lessons that may be relevant and useful for other software engineering activities that are usually conducted in the production environment.
Live testing is performed in the production environment ideally without causing unacceptable disturbance to the production traffic. Thus, test activities have to be orchestrated properly to avoid interferences with the production traffic. A test plan is the road map that specifies how the test activities need to be orchestrated. Developing a test plan includes tasks such as test configuration selection/generation, test configuration deployment planning, creating the test runs schedule, choosing strategies to mitigate the risk of interferences, etc. The manual design of a test plan is tedious and error prone. This task becomes harder especially when the systems are large and complex. In this paper we propose an approach for automating test plans generation. With this approach we aim at reducing service disruption that may be induced by the testing activities in production. We illustrate our approach with a case study and discuss its different aspects.
Ensuring service availability for large-scale distributed systems, like IoT systems, has always been a challenge. Some IoT systems are safety-critical, a service outage could lead to severe damage or fatality, and therefore demand high-availability to ensure reliability and continuity of service. Microservice architecture combined with Kubernetes orchestrator have become a popular approach to achieve high-availability in such type of systems. However, while these architectures provide scalability and quick recoverability from many types of failures, their effectiveness is limited when addressing memory-related application failures. In this paper, we present an experimental evaluation of the service availability provided by microservice architectures deployed on Kubernetes in scenarios involving memory-related failures, through a case study on Tele-operated driving, which is a safety-critical cellular IoT use case. Our findings indicate that Kubernetes lacks robustness when confronted with memory-related faults, leading to extended recovery times and service disruptions. Therefore, advanced fault-tolerance mechanisms are required to better support high-availability requirements in safety-critical cellular IoT systems.
In the context of Network Function Virtualization (NFV), Network Services (NS) are realized by interconnecting Virtual Network Functions (VNF) using Virtual Links (VL). Service dependability is an important characteristic of NSs. Service dependability includes service availability, reliability, and continuity attributes. The NFV framework brings new challenges to NS dependability because of the resource-sharing possibility, NS and VNF elasticity, and the dynamicity in the NFV environment. There has been a lot of work on the dependability of NSs in the context of NFV. Existing works address different dependability attributes and use different methods and mechanisms in the proposed solutions. Thus, it is difficult to evaluate and compare these solutions, determine the well-investigated areas, and identify gaps. In this paper, we investigate the state of the art for NS dependability in the context of NFV and survey existing solutions. We define a taxonomy that represents the different aspects of NS dependability and their relations in this context. We analyze 102 papers published in the past 5 years and map them to our proposed taxonomy to understand what is addressed in the proposed solution and how. We identify the gaps and discuss potential future work directions.
Software testing plays a crucial role in enhancing software quality. A significant portion of the time and cost in software development is dedicated to testing. Automation, particularly in generating test cases, can greatly reduce the cost. Model-based testing aims at generating automatically test cases from models. Several model based approaches use model checking tools to automate test case generation. However, this technique faces challenges such as state space explosion and duplication of test cases. This paper introduces a novel solution based on data mining algorithms for systems specified using graph transformation systems. To overcome the aforementioned challenges, the proposed method wisely explores only a portion of the state space based on test objectives. The proposed method is implemented using the GROOVE tool set for model-checking graph transformation systems specifications. Empirical results on widely used case studies in service-oriented architecture as well as a comparison with related state-of-the-art techniques demonstrate the efficiency and superiority of the proposed approach in terms of coverage and test suite size.
In the context of network function virtualization (NFV), virtual network functions (VNF) are the building blocks of network services (NS). VNFs are usually distributed applications composed of VNF components (VNFC). A VNFC instance is the actual consumer of resources and it is realized as a virtual machine (VM). Service availability of an NS is one of its important characteristics which has been expansively investigated in the literature. Fault tolerance is the main mechanism used to guarantee service availability. Fault tolerance relies on VNF redundancy and failover operation. It reduces the service outages when a complete failure of a VNF happens. However, complete failures are less frequent than partial failures in which only some VNFC instances of a VNF fail. Partial failures can cause service degradation and annoy tenants who usually expect a guaranteed service quality. To handle partial failures, the failover mechanism may not be ideal since it can cause a complete service outage. We, therefore, propose a solution to determine the redundancy of VNFs to guarantee the required quality of service for an NS and avoid service degradation below a defined level. We propose a framework that includes an architecture and operations to guarantee service quality and avoid potential service outage.
Safety-critical cellular IoT systems require a high level of reliability. Due to the distributed and heterogenous nature of such systems, software applications are usually deployed on different platforms including IoT devices, on-premises servers, cloud, and edge nodes. Traditional monolithic software applications cannot provide the desired level of reliability and flexibility. The microservices architecture, on the other hand, may provide better scalability, reliability, and decentralization. Furthermore, when coupled with efficient container orchestration platforms, like Kubernetes, microservices architecture can improve further the reliability for safety-critical cellular IoT systems. In this paper, we look into the Tele-operated Driving (ToD) case study. It is a safety-critical cellular IoT system which requires a high level of reliability and availability. We propose an initial microservices based architecture for the ToD. We conduct experiments to evaluate the service availability of the proposed microservices based ToD. Although the microservices architecture has strong potential for safety-critical cellular IoT systems, the desired level of availability is not achieved. Advanced availability mechanisms/architectures are required to achieve the desired level of availability for safety-critical cellular IoT systems.
A Virtual Network Function (VNF) is a software implementation of a network function (e.g., firewall, router, etc.), which can be deployed as Virtual Machines (VM) utilizing the resources of the infrastructure managed by the Network Function Virtualization (NFV) Management and Orchestration (MANO). A VNF can also be containerized to benefit from the lower virtualization overhead of containers. A containerized VNF is composed of one or more Managed Container Infrastructure Objects (MCIO). To design a Network Service (NS) for the NFV framework that satisfies required service availability and continuity requirements, one has first to determine the availability, failure rate, and service disruption of the VNFs composing the NS. These characteristics of a VNF depend on the availability and failure rate of its MCIOs and the underlying infrastructure. Solutions proposed to determine these VNF characteristics at design time, consider the estimated resource availability and failure rate of a given infrastructure. However, resources assigned to VNF instances at runtime can be different in characteristics and/or performance resulting in a difference between the estimated and the actual characteristics of the VNF instances. In addition, scaling and different placements of the MCIO instances at runtime can have similar effects. Therefore, in this paper, we investigate the parameters affecting the availability, failure rate, and service disruption of a containerized VNF instance, considering the internal redundancy of the VNF and the scalability of its instances at runtime. Based on this investigation, we propose analytical models to determine the availability, failure rate, and service disruption of a containerized VNF instance.
The Internet of Things (IoT) enables connectivity among physical world objects to empower multitudes of applications in different domains. This type of large-scale connectivity and distribution comes with several functional and non-functional challenges. These challenges may be addressed by software architectures and techniques. Microservices is one of the latest software architecture paradigms that aims at addressing many of the challenges. In an effort to explore microservice architecture's capability to address IoT challenges, this paper presents a review of the current state-of-the-art on the microservices based architecture for IoT systems. In this paper, we analyze how the microservices based architecture is currently used to improve non-functional characteristics of IoT systems, specifically reliability and availability. This is the first state-of-the-art review on microservices based IoT systems, it highlights strengths, weaknesses and opportunities for the microservices based architecture for IoT systems. To conduct this study a set of research questions and a taxonomy for microservices based IoT systems have been defined. The answers to the research questions provide an overall picture of the state of the art while the mapping of the surveyed papers to the defined taxonomy provides a more detailed picture about what has been done so far. The analysis shows that microservices based architecture has strong potential for IoT systems, specifically for improving reliability and availability. However, several weaknesses in the current solutions call for more research for handling properly reliability and availability of IoT systems.
The Network Function Virtualization (NFV) framework is an enabler for the automation of Network Service (NS) management. In the context of NFV, an NS is realized by interconnecting Virtual Network Functions (VNF) using Virtual Links (VL). Availability and continuity are among the important characteristics of an NS. These characteristics depend on the availability of the VNFs and VLs composing the NS, which are usually selected at NS design time. VNFs and VLs utilize the resources of the underlying infrastructure, and their availability (partially) depends on the availability of these resources. To design an NS to fulfill availability and continuity requirements, the availability required from the resources is constrained at design time. However, the characteristics of these resources may change at runtime due to the dynamicity of NFV infrastructure. Thus, impacting the availability of the VNFs and the VLs, which in turn may impact the availability and continuity of the NS. To fulfill these requirements at runtime despite the changes in the infrastructure, the NS should be adapted. In this paper, we propose a framework for the runtime adaptation of NSs that reacts to changes and adapts the NS configuration so that it can fulfill its availability and continuity requirements during the NS lifetime. We also propose a method to develop machine learning models that are used within the framework to determine the required adjustments at runtime. We implemented the proposed framework, the method for developing the machine learning models, a testbed, and NSs to assess the feasibility and validity of our approach through experiments.
Live testing is about testing a subsystem in production without causing any unacceptable disturbance to the production traffic. A subsystem is tested in production for multiple purposes such as deployment verification, fault prediction, fault localization, etc. The main challenge of live testing is alleviating the risk of test interferences as it may lead to a violation of a system's functional or non-functional requirements. To properly handle this risk, one needs to know which components present a risk of test interferences and what is the cost of the countermeasures to handle that risk. Existing literature relies heavily on human judgement, which can be time consuming, not always feasible, may provide misleading insight. In this paper we go through the challenges of automating this evaluation process and propose a solution to overcome them. Our solution consists of a method for components evaluation which goes through three steps, evaluation of test interferences that may manifest in external behaviour, evaluation of test interferences that may manifest in resource consumption, and finally the evaluation of the cost of implementing the countermeasures to overcome the risk of test interferences.
A system configuration may be modified at runtime to adapt the system to changes in its environment or for fine-tuning. For instance, a system administrator may change a few entities/attributes in the configuration to improve error recovery and system availability. However, these changes focusing on fine-tuning availability may violate some global system constraints captured in the configuration and therefore break configuration consistency, system properties and operations. This is generally due to the partialness of the changes performed by the administrator who is not aware of all the entities/attributes being in relations with the modified entities/attributes. In this paper, we propose an approach for completing such partial sets of changes at runtime to resolve inconsistencies arising from those partial changes. This adjustment approach consists of the characterization of related entities/attributes and their modification to re-establish the configuration consistency. We achieve this by propagating the changes in the configuration according to the system constraints following the possible impacts of the configuration entities on each other. We aim at minimizing the complementary modifications to control the side-effects of the change propagation as we target the domain of highly available systems.
In the context of Network Function Virtualization (NFV), a Network Service (NS) is defined as a composition of Network Functions (NFs), which can be Virtual Network Functions (VNFs) or Physical Network Functions (PNFs). The availability of an NS is among its important characteristics. Moreover, when there is a service outage there is often a service disruption. We define the Service Disruption Time for an NS functionality as the amount of time for which the service state is lost due to service outages for a given period. The Service Data Disruption for an NS functionality is defined as the maximum amount of data lost due to a service outage. To have a comprehensive design solution considering service availability and service disruption, we propose a novel method which enhances an NS design by mapping service-level availability and disruption requirements to constraints on low-level configuration parameters, and calculates the number of required standby instances for each VNF so that the requirements can be met. Our method guarantees the availability and disruption requirements at any scaling level of the NS while minimizing the resource cost. To reduce the complexity of the complete search for the optimal configuration we also propose a heuristic algorithm and perform experiments to compare it with the complete search.
The network slicing paradigm allows for partitioning a common network infrastructure into logical networks, i.e. network slices, tailored to specific user intents, including intents for isolation, security or performance reasons. A user may require isolation at different scopes: for the entire network slice, for the network slice subnets or for its composing network functions. Considering the relation between network slicing and Network Function Virtualization (NFV), the intents for isolation need to be mapped to and reflected in the descriptor(s) of network service(s) supporting the network slice(s). However, the network service descriptor (NSD) as defined today cannot capture all the network slice isolation requirements to be enforced during instantiation and at runtime. To overcome some of these limitations we propose extensions to the NSD based on our mapping of different isolation intents of the user to the NSD. We also show how to process the NSD extensions at instantiation and at runtime.
Network Function Virtualization (NFV) defines a dynamic environment to deploy Virtual Network Functions (VNF) as constituents of Network Services (NS) that provide specific network functionalities. A VNF is composed of at least one VNF Component (VNFC) and zero, or more Internal Virtual Links (IntVL). The availability of an NS depends on the availability of the composing VNF functionalities. In turn these depend on the underlying resources, their placement constraints, policies, and their number, which change over time as required by the varying workload. Accordingly, the availability and failure rate of a VNF instance may vary over time. That is, it may be different for the different VNF scaling levels. In this paper, we investigate the parameters affecting the availability and the failure rate of a VNF instance, and we propose methods to calculate for such dynamic cases the guaranteed minimum availability and the guaranteed maximum failure rate for a VNF instance considering a given infrastructure.
An Infrastructure as a Service (IaaS) cloud provider is committed to each tenant by a service level agreement (SLA) which indicates the terms of commitment, e.g. the level of availability of the IaaS cloud service.The different resources providing this IaaS cloud service may need to be upgraded several times throughout their life-cycle; and these upgrades may affect the service delivered by the IaaS layer. This may violate the SLAs towards the tenants and result in penalty as they impact the tenant services relying on the IaaS.Therefore, it is important to handle upgrades properly with respect to the SLAs.The upgrade of IaaS cloud systems inherits all the challenges of clustered systems and faces other, cloud specific challenges, such as size and dynamicity due to elasticity.In this paper, we propose a novel approach to automatically upgrade an IaaS cloud system under SLA constraints such as availability and elasticity.In this approach, the upgrade methods and actions appropriate for each upgrade request are identified, scheduled, and applied automatically in an iterative manner based on the vendors descriptions of the infrastructure components, the tenant SLAs, and the status of the system. The proposed approach allows new upgrade requests during ongoing upgrades, which makes it suitable for continuous delivery.In addition, it also handles failures of upgrade actions through localized retry and undo operations automatically.
Intent-based networking is considered as a key paradigm to automate the provisioning of network slices (NwSs) on top of a common infrastructure. This automation is intended for all the phases of a NwS lifecycle, starting from the preparation/design phase. An intent-based system should enable expressing tenant intents for NwSs at a high-level of abstraction, i.e. the tenant is not required to be aw...
The preparation phase of a network slice (NwS) involves design decisions such as determining the network functions (NFs) and network slice subnets the NwS consists of, propagating the requirements the NwS has to satisfy to these constituents and determining their optimal placement for meeting the requirements. Since an end-to-end NwS spans the radio access, transport and core networks, usually three network slice subnets are considered for it and assigned to appropriate portions of the network. Once the subnets of a NwS have been determined, its resource-level representation is elaborated on. To do so in the context of network function virtualization (NFV), a NwS is mapped to network service(s) (NS). According to current practice, a NwS is mapped to a composite NS consisting of nested NSs, where each nested NS realizes a network slice subnet. This paper identifies and addresses some of the limitations of this approach. Namely, the mapping of the NwS to NSs and nested NSs needs to consider, in addition to the placement information of the NwS constituents, the organization and capabilities of the NFV management system(s) involved. Currently these are considered only at the time of the NwS deployment, which may render the NwS design undeployable if the NwS to NSs mapping cannot be aligned with the scopes and capabilities of the involved management entities. Therefore, the approach proposed in this paper determines, for a given NwS, its constituent subnets and the realizing NSs by taking into account the management constraints together with the placement information applicable to the NwS.
Reinhard Gotzhein合作论文数Department of Computer Science, University of Kaiserslautern, PO Box 3049, D-67653 Kaiserslautern, Germany4