Principles for Safe and Automated Middleware Specializations for Distributed, Real-time and Embedded Systems
Files
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Developing distributed applications, particularly those for distributed, real-time and embedded (DRE) systems, is a difficult and complex undertaking due to the need to address four major challenges: the complexity of programming interprocess communication, the need to support a wide range of services across heterogeneous platforms and promote reuse, the need to efficiently utilize resources, and the need to safely adapt to runtime conditions. The first two challenges are addressed to a large extent by standardized, general-purpose middleware. However, the need to support a large variety of applications in different domains has resulted in very feature-rich implementations of these standardized middleware. Consequently, this feature-richness acts counter productive to resolving the remaining two challenges; instead it incurs excessive memory footprint and performance overhead, as well as increased cost of testing and maintenance. Moreover, despite the richness in general-purpose features, middleware often lacks application-specific behavior that is needed to adapt to runtime conditions including faults. To address the four challenges all at once while leveraging the benefits of general-purpose middleware, this dissertation describes a scientific approach to specializing the middleware. To enable better comprehension, easier validation and to promote reuse, the dissertation presents a three dimensional taxonomy to document recurring specializations, and assess the strengths and weaknesses of the documented techniques. The principles of separation of concerns are used in the context of this taxonomy to define six stages of a middleware specialization process lifecycle. Finally, to overcome the accidental complexities stemming from the manual use of specialization techniques, such as aspect-oriented programming (AOP), feature-oriented programming (FOP), and reflection, the six-stage specialization process has been codified resulting in concrete tool artifacts that automate the specialization process for different requirements. The tooling resulting from this dissertation includes (1) FORMS (Feature Oriented Reverse Engineering based Middleware Specializations), which provides coarse-grained middleware feature pruning through a decision tree based reasoning of desired middleware features and a novel reverse-engineering algorithm, (2) GeMS (Generative Middleware Specializations), which provides fine-grained middleware feature pruning through an automated process that deduces the context for specializations through application invariant properties and subsequently optimizes the middleware design patterns and frameworks through generative source-to-source transformations, (3) GrAFT (Generative Aspects for Fault-Tolerance), which provides fine-grained middleware feature augmentation by weaving application-specific reliability concerns in system artifacts through model-to-text, model-to-code transformations, and (4) SafeMAT (Safe Middleware Adaptation for Real-Time Fault-Tolerance), which enables safe middleware adaptation to runtime failures while improving predictability and resource utilization within the hard real-time constraints.