AutoMaS: An Automated Middleware Specialization Process for Distributed Real-time and Embedded Systems
暂无分享,去创建一个
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 adapt to changing conditions. The first two challenges are addressed
to a large extent by standardized, general-purpose middleware (e.g. CORBA, DCOM
and Java RMI) through the use of a “black-box” approach, such as the object-oriented paradigm
(frameworks and design patterns). The need to support a large variety and range of applications
and application domains has resulted in very feature-rich implementations of these standardized
middleware. However, such a feature-richness acts counteractive to resolving the remaining two
challenges; instead it incurs excessive memory footprint and performance overhead, as well as
increased cost of testing and maintenance. To address the four challenges all at once while leveraging
the benefits of general-purpose middleware requires a scientific approach to specializing
the middleware. Software engineering techniques, such as aspect-oriented programming (AOP),
feature-oriented programming (FOP), and reflection make the specialization task simpler, albeit
still requiring the DRE system developer to manually identify the system invariants, and sources
of performance and memory footprint bottlenecks that drive the specialization techniques. Specialization
reuse is also hampered due to a lack of common taxonomy to document the recurring
specializations, and assess the strengths and weaknesses of these techniques.
To address these requirements, this paper presents a case for an automated, multi-stage,
feature-oriented middleware specialization process that improves both middleware developer
productivity and middleware performance. Three specific contributions are made in this paper.
First, contemporary middleware specialization research is framed in terms of a three-dimensional
taxonomy. Second, 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, a concrete
implementation of the six stage, automated middleware specialization process is presented along
with empirical data illustrating the benefits accrued using the framework.