What is Moses?

Moses is the middleware supporting LGI. It is curently released mostly as a research tool. There are several improvements necessary to make it into an industrial-strength middleware. Most of these improvements are listed in the appendix of the reference manual. The Moses middleware is implemented as a Java package, and provides the following components:

  • The controller represents the corner stone component of LGI. It is a software server that mediates the exchange of messages between the members of an LGI community. The moses.controller package provides the classes necessary to launch a controller process
  • The law server represents an small footprint HTTP server that is used to publish LGI laws. Although laws can be mantained by any generic HTTP web-server, we found it useful to have a customized server for publishing law files. The law server is implemented in the moses.lawServer package.
  • The moses.member package maintains a set of Java classes that enables a Java program to conduct LGI-regulated interaction.
  • The law tester is a tool that helps testing laws. Given that a law is executed in a distributed fashion and the testing of a distributed system is generally a thorny issue, this tool enables the testing of laws in a centralized manner. The law tester is implemented by moses.tester package.
  • The controller manager is an interactive web-based tool that starts and maintains a set of running controllers.
  • Additional tools are offered as part of the moses package, mostly in order to support the secure exchange of messages. Among them are tools to create public and private keys, certificates, digital signatures and secure hashes for public keys and laws. The implementation for these tools is scattered among various sub-packages of moses, but are mostly located in moses.security package.