\begin{abstract} Product-line architectures (PLA)s are an emerging
paradigm for developing software families for distributed real-time
and embedded (DRE) systems by customizing reusable artifacts, rather
than handcrafting software from scratch.  To reduce the effort of
developing software PLAs and product variants for DRE systems,
developers are attempting to leverage general-purpose -- ideally
standard -- middleware platforms whose reusable services and
mechanisms support a range of application quality of service (QoS)
requirements, such as low latency and jitter.  The generality and
flexibility of standard middleware, however, often results in
excessive time/\-space overhead for DRE systems, due to lack of
optimizations tailored to meet the specific QoS requirements of
different product variants in a PLA.

This paper provides the following contributions to the study of
middleware specialization techniques for PLA-based DRE systems.
First, we identify key dimensions of generality in standard
middleware, including generality stemming from framework
implementations, deployment platforms, and middleware standards.
Second, we illustrate how context-specific specialization techniques
can be automated and applied to tailor standard middleware to better
meet the QoS needs of different PLA product variants.  Third, we
quantify the benefits of applying automated tools to specialize a
standard Real-time CORBA middleware implementation.  When applied
together, these middleware specializations improved our application
product variant throughput by $\sim$65\%, average- and worst-case
end-to-end latency measures by $\sim$43\% and $\sim$45\%,
respectively, and predictability by a factor of two over an already
optimized middleware implementation, without affecting portability,
standard middleware APIs, or application software implementations, and
preserving interoperability wherever possible.
\end{abstract}
