Predictable deployment and configuration (D&C) of components in response to dynamic environmental changes or system mode changes is essential for ensuring open distributed real-time and embedded (DRE) system real-time QoS. This paper provides three contributions to research on the predictability of D&C for component-based open DRE systems. First, we describe how the dependency relationships among different components and their criticality levels can cause deployment order inversion of tasks, which impedes deployment predictability. Second, we describe how to minimize D&C latency of mission-critical tasks with a multi-graph dependency tracing and graph recomposition algorithm called CaDAnCE. Third, we empirically evaluate the effectiveness of CaDAnCE on a representative open DRE system case study based on NASA Earth Science Enterprise's Magnetospheric Multi-Scale (MMS) mission system. Our results show that CaDAnCE avoids deployment order inversion while incurring negligible (<1%) performance overhead, thereby significantly improving D&C predictability.
Keywords: Component middleware, Open DistributedReal-time and Embedded systems, Deployment and Configuration.
. IntroductionEmerging Trends and Challenges. Open DRE system are often large and complex, e.g., a shipboard computing system may consist of thousands of software components that run a wide range of missions, such as ship navigation, ship structural health monitoring, vision-based object tracking and object characterization. To manage the overall complexity of such systems, the missions are often decomposed into many domain-related tasks that can be modeled as operational strings [1]. An operational string is an assembly of software components that capture the partial order and workflow of a set of executing software capabilities for particular domain tasks.In complex DRE systems, many operational strings must often be deployed and configured dynamically and simultaneously in response to system operational mode changes or environmental changes. Different operational strings can have different criticality levels, which are determined by the importance of the operational strings. In the context of D&C, criticality of an operational string means the urgency for its service startup, i.e., the latency of deploying and configuring all components in an operational string is important so the string can serve client requests.Unfortunately, when dependencies exist among operational strings, deployment order inversions may occur during the deployment and configuration (D&C) process. A deployment order inversion occurs when a high-criticality operational string is deployed after a low-criticality operational string due to one or more dependencies from the high-criticality operational string to the low-criticality operational string. Deployment order inversions are problematic for open DRE systems since they impede the predictability of the D&C process. Existing D&C frameworks [2, 3] and standards [4], however, only consider dependency relationships between oper...