Genesis and contributions

The genesis of LGI is the 1991 IEEE TSE paper "The Imposition of Protocols Over Open Distributed Systems", which proposed its basic idea (under a different name), but without the benefit of implementation. The implementation, and further refinement of LGI did not start until 1996, by several graduate students.

The first implementation was due to Junbiao Zhang, who implemented some aspects of the 1991 paper. Next, Victoria Ungureanu produced a complete implementation of a prototype of LGI, called Moses, with several conceptual enhancements.

Xuhui Ao, Takahiro Murata and Mihail Ionescu made many important contribution to LGI and its implementation, including the concept of law-hierarchy due to Ao, which is not included in this release.

Finally, Constantine Serban built a new, cleaner, and much more efficient implementation of Moses, and added to it the Java-based language for writing laws, as well as the support for synchronous communication---this implementation has been tested extensively by by Wenxuan Zhang, with the help of Yingying Chen.

Runtime platforms for Moses

Moses toolkit is implemented entirely in Java. As such, it is supposed to bring about system portability. In practice, however, various components of Java are platform dependent, thus restricting the portability of Moses. Initially, Moses has been developed on Solaris using java 1.2. After a brief stage on java 1.3, most of the functionality has been tested and verified with java 1.4. Later versions were developed to support other Unix and Windows OS mostly using java 1.4.

Operating System/platform java 1.2 java 1.3 java 1.4
Solaris/Ultra Ok/supported Ok/supported Ok/supported
Linux/Pentium Not tested OK/supported Ok/supported
HP-UX Not tested OK/summary test OK/supported
Windows NT/2000/XP Partially
(unsuported c-to-c communication)
Partially
(unsuported c-to-c communication)
OK/supported

Supported components and their status

The following is a list of components their development status and support:

Component/
subcomponent
Developer Status Current support Notes and comments
Controller Constantin Serban Release 1 Constantin Serban After a number of implementations, it has been redesigned and reimplemented by Constantin Serban 2003-2005
Controller Prolog
Support
Xuhui Ao/Constantin Serban Release 1 Constantin Serban Initially implemented with binProlog and supported by Xuhui Ao. In 2004 Constantin Serban migrated it to Jinni Prolog in order to achieve portability (but at the expense of functionality -- the controller handles a single prolog law)
User Interface Takahiro Murata Release 1 - Most of the implementation of the current applet/UI release is due to Takahiro Murata who also implemented the controller support for the adjacent testing/reflective functionality. Developed mostly in 2002-2003, UI is released without support.
Law Server Constantin Serban Release 1 Constantin Serban Initially Part of the so-called "Controller Server" it has become a component in its own in 2002 by Constantin Serban based on an earlier version by Victoria Ungureanu. The current version (with Windows support)has been developed in 2002 and 2005.
Law Tester Wenxuan Zhang Release 1 Wenxuan Zhang This is a recent component that assists in the development of laws -- especially useful for Prolog laws. It has been developed in 2005 by Bill Zhang who currently supports it.
Controller Manager Constantin Serban/Yingying Chen Release 1 Constantin Serban The actual form of this component has been developed by Constantin Serban in 2002 -2004 and improved, readapted and repackaged by Yingying Chen in 2004-2005. The current support is provided jointly by Constantin Serban and Yingying Chen.
Examples and testcase suits Wenxuan Zhang/Yingying Chen Release 1 Wenxuan Zhang The bulk of examples and testcases have been developed by Bill Zhang. The comprehensive "marketplace" example had been developed by Yingying Chen. 2004-2005
Hierarchies of Laws Xuhui Ao/Wenxuan Zhang Alpha Version/
Subsequent Release
Wenxuan Zhang Xuhui Ao initially provided Prolog support for hierarchies in a previous version of the controller (2002-2003). In 2005 Bill Zhang has built Java support for hierarchies in the new controller. His next step is to support hierarchies with Jinni Prolog.
RMI Laws Constantin Serban Beta Version/
Subsequent Release
Constantin Serban Developed in 2002-2004 , now it is in the process of optimization and re-packaging for a subsequent release.