Principles for Safe and Automated Middleware Specializations for Distributed, Real-time and Embedded Systems
Dabholkar, Akshay Vishwas
:
2012-04-23
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.