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.