The design and development of kernel modules for the imago system /
Mobile Agents are a subset of the more generic research area that is process migration. Agents are increasingly being used in numerous application fields, ranging from network management to M-commerce, and much more. Although several platforms have matured more than others, most of them (if not all of them) lack proper inter-agent communication tools and facilities. When we investigated this situation in more detail, we found that the root cause was often the fact that existing network communication tools were not adequate in their raw form to properly handle agent migration. In fact, they often restrict agent mobility while in use. Besides, adding the ability for the agent to migrate from computer to computer while providing complete location transparency makes sense in several fields of application. Looking at the difficulties faced by Mobile Agent developers, we created the IMAGO platform in an effort to provide a more adequate environment for Mobile Agent application development. This platform incorporates several features developed as parts of other systems, and unifies the systems by providing a flexible agent language add-on interface and a robust agent memory separation strategy. Our proposed approach simplifies agent migration by creating a virtual memory layer component with characteristics to preserve the agent memory address space throughout the life of the agent. This component of our system eases the task of migrating agents by abstracting their memory space and providing an automatic and transparent mapping between the agent memory and the host memory. The memory space, as seen by the agent, remains consistent and invariable even if the agent migrates to a new host. Our IMAGO platform leverages the migration protocol stack to complete interagent communication in a completely new way. The inter-agent communication strategy developed for our system eliminates the restrictions found on many other systems by removing the physical location component of the agent environment. Agents can now establish reliable streaming communication, called mobile sockets, without losing the ability to migrate and move about the network. This tool and others are leveraged by our Mobile Agent debugger program. The debugger lets developers debug remote agents without interfering with an agent's normal flow of computation.