µCode is a small Java API that aims at providing a minimal set of primitives to support mobility of code and state (i.e., Java classes and objects).
Hence, µCode is not a mobile agent system. Or, more precisely, µCode is not only a mobile agent system. µCode aims at providing you with the expressive power to create easily your own mobility primitives, including your own notion of mobile agent. If you do not want to build it yourself, you can still use the mobile agent abstraction provided by one of the packages in this distribution, together with other mobility primitives. It is built on top of µCode core primitives, and is a full-fledged mobile agent. Actually, it is a rather good example of the power of the underlying core library.
Then, µCode is not a complete,
shrink-wrapped system with all the bells and whistles.
As a matter of fact, it has been expressly designed not to be so.
Conversely from most of the other mobile code/mobile agent systems,
µCode does not try to provide everything; it aims at providing good
abstractions for doing only one thing, that is, moving code and state
around.
This does not mean that all the other things are out of the picture. Only, they
are being developed on top and around
µCode, rather than within it. For instance, additional
packages providing advanced communication services for mobile agents, and
mechanisms for resource binding have already been developed.
Ideally, the grand picture is analogous to modern operating systems. µCode
constitutes the kernel, providing small and efficient mechanisms for code
mobility. Around it, we are developing a number of modules that provide
specialized (and optional!) functionality. And we hope that you will contribute
some, too.
I hope that, under many respects, you will find µCode a lot different from any other mobile code/mobile agent system you might have seen thus far. To check that, you can look at the design criteria I followed to create it, read how it works, or try to figure it out yourself by looking at the API documentation. Or, you can just go ahead, download it, and try it out. µCode is open source, with the use of binaries and source code regulated by the GNU Lesser General Public License.
Here is a really quick glance to some of its relevant features:
The goals of the µCode project involve both research and teaching. Prerelease versions of µCode have already been used to develop a number of research applications, as well as in classrooms. µCode will continue to evolve as we and other people use it increasingly in academic and industrial projects, as well as a tool to teach students the nuts and bolts of code mobility and mobile agents with Java.
If you are interested in µCode, and:
contact me by e-mail or by using the contact information at my Web page.
Enjoy µCode !!!