Asbaco: Aspect Based Controllers

Vladimir Mencl, Tomas Bures

Distributed Systems Research Group
Department of  Software Engineering,
Faculty of Mathematics and Physics ,
Charles University


The Asbaco project aims to develop an easily configurable and extensible component platform.  In the Fractal component model, developed by INRIA and France Telecom, members of the ObjectWeb consortium, software components feature explicit control interfaces.  In various applications, there is a need to extend the control functionality of a component -- such as with monitoring, logging, management, augmenting each component with meta-attributes, or possibly even monitoring the compliance of the behavior of a component with its specification. Often, the need to extend the control functionality applies only to selected components in the application hierarchy.

However, these issues have not yet been properly addressed. For the rather new concept of a control part of a software component, no mean to capture its internal structure has been devised yet - although it is crucial for developing component model extensions. Neither has been addressed the integration of different third-party component model extensions, nor selective application of the extensions to only a selection of components.

Our approach

We apply the component paradigm in one additional iteration, and use a simple minimalist component model to capture the internal structure of the control part of a component. Here, we coin the term microcomponent for such a component within the control part of another component.

In Figure 1, LCNotifier, LCImpl, NCImpl, and callLogger are microcomponents, serving the requests on the control interfaces of their containing component. In this example, the purpose of the extension is to report the calls on the lifecycle interface to an external logger component.

Figure 1: Fragment of microcomponent-based control part.
Figure 1: Fragment of microcomponent-based control part.

We further introduce a component aspect as a set of consistent component model extensions -- basically, an component aspect is a collection of instructions on which microcomponents to instantiate, how to reconnect bindings; special support is provided for inserting a microcomponent into the delegation chain on an interface. To handle more elaborate control functionality extensions, complex parts of the control functionality may be extracted into standalone control components; their functionality may be accessed from the control part via client control interfaces.


The Asbaco project provides a way to capture the structure of the control part of a software component, and an aspect-based mechanism for extending the controller part via component aspects. This mechanism permits to seamlessly integrate different third-party control functionality extensions; these extensions can be selectively applied to the component hierarchy of an application.

The concepts introduced in the Asbaco project have been implemented in a prototype implementation, available upon request.

Further information

The key achievements of the project have been presented at the APSEC 2005 conference; the paper is available in PDF format below.  Please contact me by email if you are interested in experimenting with the prototype implementation, or if you have questions not answered by the paper.

Related Publications

Mencl, V., Bures, T.: Microcomponent-Based Component Controllers: A Foundation for Component Aspects, in Proceedings of 12th Asia-Pacific Software Engineering Conference (APSEC 2005), Dec 15-17, 2005, Taipei, Taiwan, pp. 729-738, IEEE Computer Society Press, Dec 2005, [PDF]


In most component models, a software component consists of a functional part and a controller part. The controller part may be extensible; however, existing component models provide no means to capture the structure of the controller part, and therefore neither to specify the controller part extensions. In this paper, we introduce a minimalist component model to capture the structure of the controller part, coining the term microcomponent for the controller part elements. We further introduce the concept of a component aspect as a consistent set of controller part extensions. Within this framework, it is possible to seamlessly integrate controller part extensions, applying them to the components selected in the application s launch configuration. We have evaluated these concepts in a prototype implementation.

back to my homepage

You are visitor number 2831 since 16 Nov 05.
Last modified October 14, 2013 by Vladimir Mencl