top | previous | next
Mobile Agents sound like [fill in technology here]
- Mobility has a long history in computing.
- Nice history of mobility buried in Uwe Georg Wilhelm's
Section 2.3.1 is very good, and brief too!
An excerpt (emphasis added, references removed):
"Code mobility is not a new concept. It has its
origins in the 1960s where the Job Control Language (JCL)
was used in the optimization of networked computers,
enabling mini-computers to submit batch jobs to mainframes
using a remote entry system (RES). Another direct
approach to code mobility is the rsh (remote shell) command
that was introduced by 4.2BSD UNIX in 1984. It
allows a user to send a shell script to a remote machine
where it will be executed with access to all the local
resources of the remote machine, such as peripherals (e.g., a
printer) or data on the local disk of the remote machine.
- What about RPC?
Client can call the basic services of the provider by
sending message requesting services. Message passing.
- What about SQL?
Client can send query (request) to database, where it is
run, and results are returned. The code is not compiled.
- Postscript / postscript printer ... html / browser
- Process migration?
Moving a running system level process from one machine to
"This was mostly done with the goal to improve system
efficiency by providing load balancing capabilities, but also
to allow a dynamic reconfiguration of the system so that a
process can be moved to another machine if its current host
has some scheduled down-time."
- Object migration
"A more fine-grained approach to similar problems [as process
migration] is studied in the context of object migration,
which enables the mobility of language level objects that can
be relocated from one address space to another."
- Java applets?
- The perl hook
"A major obstacle for truly mobile code that can potentially
be executed everywhere, is the heterogeneity of the possible
execution environments (hardware, operating system, and
installed software). This has led to the development of
scripting languages that were conceived to overcome these
problems, such as Perl, Tcl, or Python. These scripting languages are executed in the
context of a runtime system that interprets the commands of
the scripting language. Since the runtime system itself is
software, it can be ported to any suitable hardware platform,
which can then execute mobile code of the corresponding
scripting language, thus providing a homogeneous execution
environment for the programs coded in the scripting language.
All of these scripting languages have to some extent been
augmented with mobile code facilities (agentPerl [Pur98],
agentTcl [Gra95], Rover [Rus98], Ara [PS97])."
- Very good collection papers in Mobility: Processes,
Computers, and Agents (1999), Dejan S. Milojicic, et al
(Eds.) Explains the Linkage between process migration, mobile
computing, and mobile agents.
This book divides mobility into:
- Code + Data
- Code + Data + State
- Code + Data + State + Authority (agent)