A model of context-dependent component connectors
Recent approaches to component-based software engineering employ coordinating connectors to compose components into software systems. For maximum flexibility and reuse such connectors can themselves be composed, resulting in an expressive calculus of connectors whose semantics encompasses complex combinations of synchronisation, mutual exclusion, non-deterministic choice and state-dependent behaviour. To increase the expressiveness of connectors, notions of context-dependent behaviour have been proposed. Context dependency can be used can express the priority of one behaviour over another and the inhibition of actions due to changing context. The notion of context we consider in this paper is given by the pending activities on the ports of a connector. Context-dependent behaviour occurs whenever the choices available to a connector change non-monotonically as its context changes. Capturing context-dependent behaviour in formal models is non-trivial, as it is unclear how to propagate context information through composition. In this paper we present an intuitive automata-based formal model of context-dependent connectors, and argue that it is superior to previous attempts at such a model for the coordination language Reo. âº Context dependency increases the expressiveness of component connectors. âº Context dependency can express notions of priority and behaviour inhibition. âº Reactivity and uniformity ensure the propagation of context information. âº Our model provides semantics for component connector frameworks such as Reo.