dc.description.abstract | Product-line architectures (PLA)s are an emerging paradigm for
developing software families by customizing reusable artifacts, rather
than hand-crafting the software from scratch. In this paradigm, each
product variant is assembled, configured, and deployed based on
specifications of the required features and service-level agreements.
To reduce the effort of developing software PLAs and product variants,
it is common to leverage general-purpose -- ideally standard --
middleware platforms. These middleware platforms provide reusable
services and mechanisms (such as connection management, data transfer
protocols, concurrency control, demultiplexing,
marshaling/demarshaling, and error-handling) that support a broad
range of application requirements (such as efficiency, predictability,
and minimizing end-to-end latency). A key challenge faced by
developers of software PLAs is how to optimize standards-based -- and
thus largely application-independent -- middleware to support the
application-specific quality of service (QoS) needs of different
product variants created atop a PLA.
This dissertation provides four contributions to research on
optimizing middleware for PLAs. First, it describes the evolution of
optimization techniques for enhancing application-independent
middleware to support the application-specific QoS needs of PLAs.
Second, it presents a taxonomy that categorizes the evolution of this
research in terms of (1) applicability, i.e., are the optimizations
applicable across variants or specific to a variant, and (2) binding
time, i.e., when are the optimizations applied during the middleware
development lifecycle. Third, this taxonomy is applied to identify
key challenges that have not been resolved by current research on
PLAs, including reducing the complexity of subsetting, configuring,
and specializing middleware for PLAs to satisfy the QoS requirements
of product variants. Finally, the dissertation describes the OPTEML
solution approach that synergistically addresses key unresolved
research challenges via optimization strategies that encompass
pattern-oriented, model-driven development, and specialization
techniques to enhance the QoS and flexibility of middleware for PLAs.
These optimizations have been prototyped, integrated, and validated in
the context of several representative applications using middleware
developed with Real-time Java and C++. | |