Law-governed interaction: a coordination and control mechanism for heterogeneous distributed systems
ACM Transactions on Software Engineering and Methodology
Software technology is undergoing a transition from monolithic systems, constructed according to a single overall design, into conglomerates of semi-autonomous, heterogeneous and independently designed subsystems, constructed and managed by different organizations, with little, if any, knowledge of each other. Among the problems inherent in such conglomerates none is more serious than the difficulty to control the activities of the disparate agents operating in it, and the difficulty for such
... ents to coordinate their activities with each other. We argue that the nature of coordination and control required for such systems calls for the following principles to be satisfied: (1) coordination policies need to be enforced; (2) the enforcement needs to be decentralized; and (3) coordination policies need to be formulated explicitly-rather than being implicit in the code of the agents involved-and they should be enforced by means of a generic, broad spectrum mechanism; and (4) it should be possible to deploy and enforce a policy incrementally, without exacting any cost from agents and activities not subject to it. We describe a mechanism called law-governed interaction (LGI), currently implemented by the Moses toolkit, which has been designed to satisfy these principles. We show that LGI is at least as general as a conventional centralized coordination mechanism (CCM), and that it is more scalable, and generally more efficient than CCM. * Appeared in ACM Transactions on Software Engineering and Methodology (TOSEM) † is not really necessary in this case, since the BC policy is inherently local, in the sense that it can be complied with by each client, without any knowledge of the behavior of any other client. We believe that such local aspects of a policy should not require centralized enforcement. This leads to the following principle: Principle 2 (decentralization) The enforcement mechanism should not require central control. Next, due to their diversity, conglomerate systems are likely to employ multitude of different coordination policies. And a single software agent operating within such a system may find itself interacting with several groups of agents, operating under disparate policies. If these policies are implicit in the code of the agents involved-as is most often the case in current practice-or if different policies are expressed by means of different formalisms and enforced with different mechanisms, it would be very difficult to deploy groups that must operate under a given policy. The need for easy deployment leads to the following, well known, principle: Principle 3 (separation of policy from mechanism) Coordination policies should be made explicit, and be enforced by means of a single mechanism that can implement a wide range of policies in a uniform manner. Finally, we note that in a large system, if deployment cannot be done incrementally, without making any requirements of the rest of the system, it probably cannot be done at all. This gives rise to the following principle: Principle 4 (incremental deployment) One should be able to deploy and enforce a policy incrementally, without exacting any cost from agents and activities not subject to it. We describe in this paper a coordination mechanism, called law-governed interaction (LGI), whose design has been based on these principles. The basic structure of LGI is discussed in Section 2, and is applied to our example BC policy, for illustration. Some additional features of LGI are introduced in Section 3, and illustrated with elaborations on the BC policy. The usage of LGI, its expressive power and its limitations are discussed in Section 4. The theoretical efficiency of LGI, and the performance of its current implementation, via the Moses toolkit, are discussed in Section 5, where we show that LGI is generally more efficient, and more scalable, than centralized coordination. In Section 6 we review related work, and we conclude in Section 7. Law-Governed Interaction (LGI) Broadly speaking, LGI is a mode of interaction that allows an heterogeneous group of distributed agents to interact with each other, with confidence that an explicitly specified set L of rules of engagement-called the law of the group-is complied with.