Software systems are becoming more open, distributed, pervasive, and connected. In such systems, the relationships between loosely-coupled application elements become non-deterministic. Coordination can be viewed as a way of making such loosely coupled systems more adaptable. In this paper we show how coordination-systems, which are analogous to nervous systems, can be defined independently from the functional systems they regulate. Such coordination-systems are a network of organisers and contracts. We elaborate how contracts can be used to monitor, regulate and configure the interactions between clusters of software entities called roles. Abstract management contracts regulate the flow of control through the roles and provide monitoring interception points. Concrete contracts are domain specific and allow the specification of performance conditions. These contracts bind clusters of roles into self-managed composites -each composite with its own organiser role. The organiser roles can control, create, abrogate and reassign contracts. Adaptive systems are built from a recursive structure of such self-managed composites. A prototype framework has been built from which adaptive applications can be derived. This framework uses association-aspects as a mechanism to implement contracts.
Colman and Han REF discuss some ideas on applying roles into adaptive software development by elaborating how contracts can be used to monitor, regulate and configure the interactions between clusters of software entities called roles.
Using role-based coordination to achieve software adaptability
Sci. Comput. Program.
Sci. Comput. Program.
Computer Science