What is LGI?

Law-governed interaction (LGI) is a decentralized coordination and control mechanism for distributed systems -- it can also be viewed as a "policy mechanism". LGI enables a distributed group of actors -- which may be large, heterogeneous and open -- to engage in a mode of interaction governed by an explicitly specified policy, called the "interaction law", or simply the law of this group. This law is enforced, turning a disparate group of actors (whose structure and behavior may not be known, and which may not trust each other) into a community whose members can rely on each other to comply with the given law.

The law-enforcement is done in a logically decentralized manner, by associating with each actor a generic component called controller, which is trusted to mediate the interaction of its actor with others. The controller decides, by interpreting the law at hand, how to react to messages sent and received by its actor. This decision is sensitive to the local state of interaction, and it can update this state according to the law. This scheme also enables physical centralization in a selective manner.

LGI-regulated Interaction

LGI can be useful in several respects: it can protect the security of a system via sophisticated access-control; it can enable effective collaboration among heterogeneous agents, dispersed throughout the Internet, by establishing coherent rules-of-engagement among them; and it can establish interconnection structures over the components of a distributed system.

Such applications of LGI have been explored in various domains, including: electronic commerce, grid computing, enterprise systems, self-healing, and multi-agent systems.

What is Moses?

Moses, named after the biblical law giver, is the middleware that supports LGI. It is implemented as a Java package, providing the implementation of the controller as well as of a number of other tools supporting LGI.

This website is the main portal for the release of the Moses system. As such, it offers the Moses binary download as well as the documentation resources associated with it: a set of tutorials, the complete documentation and reference manual, the Java programming API , as well as support information for the user community. An open source release of LGI is being considered for the future.

Advice to beginners

The following are the guidelines for the beginners starting to work with Moses:

  • If you are not familiar with LGI at all, read the begining of its reference manual (the first two chapters, or at least the first 20 or so pages of the manual).
  • Download the Moses distribution and install it.
  • Follow the Quick Start tutorial for initiating an LGI-regulated interaction.
  • Follow the Examples link for a set of examples covering various areas of LGI.
  • Decide on the law language you intend to use: the Java-based one (described in chapter 5 of the manual), or the Prolog-based one (described in section 2.5 of the manual).
  • Write your own laws, starting perhaps by modifying our examples, and experiment with them.
If initially you do not wish to download and install Moses, you can use the infrastructure available at Rutgers, but only via the human interface (see the quick start guide) which you will get from our running controller. Note, however, that our infrastructure is not always up and running. We encourage you to use your own controllers.