Design and implementation of coordination protocols for distributed cooperating objects: A general graph-based technique applied to CORBA

This paper introduces a technique for the design and the implementation of coordination protocols in distributed cooperative applications using distributed objects and CORBA. An application architecture is designed as a group of cooperating “sites” having symmetrical configurations represented using “The Coordination Graph”, a graph structure whose nodes may be associated with abstract software components acting according to user-defined behaviors. The graph structure may be transformed following a set of rewrite rules. Application of a rule leads to the deletion and creation (at each site) of cooperating objects associated respectively with the nodes being removed from or inserted into the graph. These main coordination actions allow the configuration of applications to be automatically managed by the coordination service. The transformation rules are also used to control the cooperative activity supported by the application, i.e. for example, managing user access to the shared cooperation information. Hence the proposed technique allows both architectural and behavioral coordination issues to be handled for distributed applications.