The COMQUAD component model: enabling dynamic selection of implementations by weaving non-functional aspects

The reliability of non-functional contracts is crucial for many software applications. This added to the increasing attention this issue lately received in software engineering. Another development in software engineering is toward component-based systems. The interaction of both, non-functional aspects and components, is a relatively new research area, which the COMQUAD project is focusing on.Our component model, presented in this paper, enables the specification and runtime support of non-functional aspects in component-based systems. At the same time, a clear separation of non-functional properties and functionally motivated issues is provided. We achieve this by extending the concepts of the existing component-based systems Enterprise JavaBeans (EJB) and CORBA Components (CCM). Non-functional aspects are described orthogonally to the application structure using descriptors, and are woven into the running application by the component container acting as a contract manager. The container implicitly instantiates component specifications and connects them according to the current requests. The selection of actual implementations depends on the particular client's non-functional requirements. This technique also enables adaptation based on the specific quantitative capabilities of the running system.In this paper we give a detailed description of the COMQUAD component model and the appropriate container support. We also provide a simple case study of a multimedia application for better understanding.

[1]  Douglas C. Schmidt,et al.  The design of the TAO real-time object request broker , 1998, Comput. Commun..

[2]  Steffen Zschaler,et al.  CQML +: Enhancements to CQML. , 2003 .

[3]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[4]  Aniruddha S. Gokhale,et al.  Total quality of service provisioning in middleware and applications , 2003, Microprocess. Microsystems.

[5]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[6]  Francisco Reverbel,et al.  The JBoss Extensible Server , 2003, Middleware.

[7]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[8]  Microsystems Sun,et al.  Enterprise JavaBeans^ Specification Version 2.1 , 2002 .

[9]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[10]  Hermann Härtig,et al.  DROPS: OS support for distributed multimedia applications , 1998, ACM SIGOPS European Workshop.

[11]  Aniruddha S. Gokhale,et al.  Applying model-integrated computing to component middleware and enterprise applications , 2002, CACM.

[12]  Steffen Göbel,et al.  Integrating Orthogonal Middleware Functionality in Components Using Interceptors , 2003, KiVS.

[13]  Mary Shaw,et al.  Abstractions and implementations for architectural connections , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[14]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .

[15]  Michael Nestler,et al.  Composite component support for EJB , 2004 .

[16]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[17]  Steffen Zschaler,et al.  Towards pervasive treatment of non-functional properties at design and run-time , 2003 .

[18]  Steffen Zschaler,et al.  Model-Driven Development for Non-functional Properties: Refinement Through Model Transformation , 2004, UML.