Software interactions

This paper proposes the usage of a dedicated Interaction Specification Language (ISL) to express interactions between software components in a component-based application. This approach brings three major benefits: First, it allows component interactions to be expressed explicitly as first-class entities. Second, it enables the expression of the interactions independently of any specific programming languages or component models. This is especially important if we consider the variety of components specifications and their heterogenity. Third, our approach permits the dynamic adaptation of the application by defining/removing interactions at runtime. To this end, Iteraction patterns are specified in ISL. They represent models of future interactions that connect some component instances. An Interaction Server is in charge of managing the life cycle of interactions (pattern registration, instantiation, destruction, interaction merging). The Interaction service allows the creation of interactions connecting heterogeneous components. Noah is an implementation of the Interaction Service. It can be thought of as a dynamic aspect repository with a weaver that uses a commutative and associative aspect composition mechanism.