Mobile codes refer to programs that function as they are transferred from one machine to another. The concept of code mobility represents a promising solution for today¡¯s network services for load balancing, fault resilience, system administration, etc. A special form of migration is mobile agent that has the ability to travel autonomously, carrying its code, as well as data and running state. Because of its unique properties, mobile agents have been the focus of much speculation in the past decade. The existence of code mobility causes problem for synchronous transient communication between mobile objects. I proposed a reliable connection migration mechanism that allowed mobile agents in communication to remain connected during their migration. This mechanism supports concurrent migration of both endpoints of a connection and guarantees exactly-once delivery of all transmitted data.
Security is a major concern in agent-oriented programming. Socket is a critical resource and its access must be fully controlled by agent servers. Connection migration is vulnerable to eavesdropper attacks. This is tackled by use of a session key to protect transactions over a connection from any malicious attacks. In addition, a mobile code access control model was integrated to ensure secure connection migration.
I designed the mechanism in a Naplet Mobile Agent system [1], and a reference implementation, namely NapletSocket, over Java Socket in a mobile agent system. Experimental results showed that NapletSocket incurs a moderate cost in connection setup, mainly due to security checking, and marginal overhead for communication over established connections. Furthermore, I investigated the impact of agent mobility on communication performance via simulation. Simulation results showed that NapletSocket is efficient for a wide range of migration and communication patterns.
Some initial results of NapletSocket were presented in [2]. An extended study focusing on reliability problem was in [3]. A full version is here.
References: