![]() |
![]() |
![]() |
![]() |
![]() |
Here we have a router connected to a network.
Inside is a Java Virtual Machine, which is the Java runtime environment that interprets a Java program and converts it into machine instructions that the router’s CPU can understand.
When the device was turned on, the Java Virtual Machine was loaded and began executing the Mobile Code Daemon.
The Mobile Code Daemon is a Java object running as a thread and is capable of receiving, loading and executing Java classes which are sent to it over the network. The Mobile Code Daemon listens (hence the ear) and waits for mobile code to be sent to it from other nodes on the network.
The mobile code, in this case a Java mobile agent, is received, loaded, and executed as a separate thread by the Mobile Code Daemon. Once the mobile agent has accomplished its purpose, it asks the Mobile Code Daemon to send it to its next destination, and then departs.
There is also a Java extensible agent, which was sent to the MCD but continues to run in the JVM. It may be extended by another piece of code which is sent to it by another node.