An Adaptation Logic Framework for Java-based Component Systems
This paper describes a Java-based framework for developing component-based software systems supporting adaptation with logic laws and considering component interactions as a first-class aspect. On the one side, the framework makes it possible to specify the logic of interaction at the component-level, in terms of input and output interfaces, the events generated and observed by a component, and related information about the management of the control flow. On the other side, it is possible to specify the logic of interaction at the inter-component level, providing a modelling and linguistic support for designing and ( dynamically) programming the glue among the components, enabling general forms of adaptation, observation and construction of the interaction space. As a result, the framework supports the adaptation of components at different levels: from interoperability among heterogeneous and unknown components, to the support for dynamic introduction, removal and update of components, to general coordination patterns, such as workflow. The framework uses first-order logic as the reference computational model for describing and de. ning the logic of interaction: the modalities adopted by components to interact, the adaptation laws gluing the components and the interaction events occurring in the system are expressed as facts and rules. They compose the ( evolving) logic theories describing and de. ning the interaction at the system level, and can be observed and controlled at runtime to allow dynamic re-configurability.
software adaptation software component logic programming