Empowering primitive architectural connectors with aspects

An architectural connector, a central notion in Architectural Description Languages (ADL) [9, 5], is an abstraction that captures interactions among software components. Existing approaches for representing architectural connectors in programming environments use object-based [6] and component-based [8, 1, 4] notations. Often architectural abstractions are realized in programming environments to ensure representational benefits provided by ADLs like separating computational and interaction concerns and treating connectors as first-class design elements. However, in such programming environments, complex connectors are represented through components. When connectors are represented through components, components and connectors are indistinguishable in terms of mechanisms used to realize them. One has to look for functionalities that components realize to decide whether it is a component or a connector. At the same time, primitive connectors are discernible elements in such programming environments. This paper explores an alternative mechanism i.e. aspect in aspectoriented programming language[7] to represent a connector. Appropriateness of aspects to represent connectors is demonstrated by implementing few examples of connectors in Java/AspectJ [3, 7] programming environment.