Technical Report Number
Historically, many distributed real-time and embedded (DRE) systems were developed manually from scratch, leading to stove-piped solutions that while correct in both functional and QoS properties were very expensive to develop and difﬁcult to maintain and extend. First-generation middleware technologies such as CORBA 2.x , XML , and SOAP , served to shield application developers from low-level platform details, thus raising the level of abstraction at which distributed systems are developed and supporting reuse of infrastructure to amortize development costs over the lifetime of a system. However, interdependencies between services and object interfaces resulting from these programming models signiﬁcantly limited the degree of reuse that could be achieved in practice. Component middleware technologies such as the CORBA Component Model (CCM) , J2EE , and .NET , were developed to address many of these limitations. In CCM, for example, standardization of component containers, ports, and homes offered a framework within which reuse of server as well as client infrastructure was facilitated. Component-oriented middleware has addressed a wide range of application domains, but unfortunately for DRE systems, the focus of these technologies has been primarily on functional and not QoS properties. For example, although CCM supports conﬁguration of functional component attributes like their interconnections, key QoS attributes for DRE systems, such as execution times and invocation rates are inadequately conﬁgurable through conventional CCM . Research on QoS-aware component models such as the CIAO project [8, 7] is showing signiﬁcant promise in making QoS conﬁguration a ﬁrst-class part of the component pro-gramming model, thus further reducing accidental complex-ities of building DRE systems. However, it is important to note a fundamental difference between conﬁguration of functional and QoS properties even within such a uniﬁed compo-nent model: the dominant decomposition of functional properties is essentially object-oriented, while the dominant decomposition of QoS properties is essentially aspect-oriented. That is, functional properties tend to be stable with respect to component boundaries and conﬁguration lifecycle stages, while QoS properties tend to cross-cut component boundaries, and may be revised as more information is known in later conﬁguration stages . In this paper, we describe how a focus on aspect frameworks for conﬁguring QoS properties both com-plements and extends QoS-aware component models. This paper makes three main contributions to the state of the art in DRE systems middleware. First, it describes a simple but representative problem for conﬁguring QoS aspects that cross-cut both architectural layers and system lifecycle boundaries, which motivates our focus on aspect frameworks. Second, it provides a formalization of that problem using ﬁrst order logic, which both guides the design of aspect conﬁguration infrastructure, and offers a way to connect these techniques with model-integrated computing  approaches to further reduce the programming burden on DRE system developers. Third, it describes alternative mechanisms to ensure correct conﬁguration of the aspects involved, and notes the phases of the DRE system lifecycle at which each such conﬁguration mechanism is most appropriate.
Subramonian, Venkita and Gill, Christopher, "A Generative Programming Framework for Adaptive Middleware" Report Number: WUCSE-2003-51 (2003). All Computer Science and Engineering Research.