Research Goals
The following are the main, long-term goals I would like to achieve with µCode.
- Bring a different perspective to research on mobile code and mobile agents.
- If you look at current
mobile agent systems, you will see that the vast majority of them provide
the same abstractions and suffer of the same drawbacks. Most of them are just
copies of the old ones, those that everybody know about and that you can count
on the fingers of one hand.
The ultimate goal of µCode is very simple and straightforward: to
foster a way to think about and design mobile code and mobile agent systems
that is novel with respect to the state of the art.
This effort is a two-prong one. On one hand, µCode provides abstractions
and primitives that, albeit intuitive, are very different from those
you typically find in existing systems. On the other hand, µCode is
shaped by a design that, albeit common for any other software
artifact of non-trivial complexity, is novel in the realm of mobile
agents.
- Provide an "open" tool to investigate different approaches and techniques.
- The monolithic nature of current mobile agent systems, combined with the
fact that only few of them are open source, makes it difficult to
"plug-in" different mechanisms on top of the same system, and
experience different technical solutions. This has been an obstacle both for
industry (because the one-size-fits-all approach often does not fit all the
details of a complex environment) and academia (because it fostered the
approach of reinventing the wheel every time, with the results
that are known).
Ideally, µCode would
constitute the kernel of a new generation of systems that follow the layered
approach fostered by µCode. Rather than reinventing the wheel every time, new
primitives, mechanisms, and algorithms can either be plugged on top of the
core ones provided by µCode, or adapted by specializing such core
primitives in some way.
- Teach the fundamental techniques for building mobile code systems.
-
I already used rather successfully µCode to teach students how to
build applications that exploit logical mobility. Now, I would like to leverage
off of my experience with µCode to teach my students how µCode is
built, which "advanced features" of Java it relies on, so that they
can get a better grasp of mobile code technology.
The curiosity to know the nuts and bolts of mobile code technology is actually
quite common among people interested in this research area. It is not infrequent
to see, on the mailing lists concerned with
mobility, requests of people looking for a small, open source, mobile
agent system from which they can learn the main techniques needed to build their
own. I believe µCode would be useful to them. If a sufficient number
of people get interested in this, and there is a request for a document (a
paper, a small book) describing the innards of µCode, I will consider
putting together such documentation and placing it on the Web.
© 2000, Gian Pietro Picco - Last modification: 07/09/00