
Mobile device’s networking capabilities offer opportunities for a new range of applications. We consider here a service that allows mobile users taking part in virtual meeting rooms to share information and documents. The sharing is promoted by a recommender system that assists users browsing documents, by making recommendations in the form of URLs pointing to other documents, that users in the virtual room have explicitly decided to share. A multi-user recommender system is a complex application requiring communication, memory and computing resources, and does not lend itself to a port to mobile devices with limited resources and intermittent connectivity. For this reason, we decided to offload the computationally intensive part of the application to the infrastructure, and to introduce the idea of an intermediary located in the network infrastructure, which interacts with applications on behalf of the mobile device, thereby hiding away the intermittent connectivity details. Our vision is that of a mobile intermediary, called Shadow, that will always be in close vicinity with the mobile device. We show that multiple Shadows may co-exist, and we propose a protocol capable of coordinating them. We present an abstraction layer, hiding away communication and coordination details, which offers a substrate for building the distributed recommender system across mobile devices and fixed infrastructure. Implementation details of our application are also presented.
In many mobile agent systems, it is normal for mobile agents to be uninformed about the environment of a computer until they actually arrive at the computer. If the environment of computers is updated frequently, it is even more difficult to execute actions as expected. This paper introduces a new procedure for mobile agents that work in such dynamic world. The new procedure smoothly integrates planning, action execution, knowledge updates, and plan modifications.
In this paper, we present a fully distributed algorithm using mobile agents to achieve mutual exclusion in a networking environment. The algorithm is designed within a framework for mobile agent enabled distributed server groups (MADSG), where cooperating mobile agents (CMA) are used to achieve coordination among the servers. When it requests to execute in the critical section (CS), to achieve mutual exclusion, a node dispatches a mobile agent to obtain permissions from other nodes. The agent will travel across the nodes and exchange information with them until it obtains enough permissions to decide its order to enter the CS. The algorithm is based on the well-known Majority Consensus Voting (MCV) scheme but, under heavy demand, an agent needs not to contact a majority number of nodes. We show that the proposed algorithm achieves mutual exclusion and is free from deadlock and starvation. We also present the performance analysis in terms of the number of agent migrations and the synchronization delay.
This paper describes a framework for flexible data feeds in sensor grids where resource constraints, policies, and a dynamic topology are important factors. Mobile agents are used to dynamically establish the data flows and data transformations in the network. They also act as policy enforcers that are dynamically dispatched into the sensor network. A dynamic topology for the network is taken into consideration, where nodes can join and leave at any time. Mobile code provides the means to dynamically deploy capabilities to any participating host and strong mobility allows process migration between nodes to ensure feed survivability and load balancing. The proposed framework relies on a strong mobility agent system (NOMADS) and the KAoS framework for policy enforcement and is being currently used to support a military coalition agent scenario (CoAX 2002).
Recent work has shown that several cryptographic protocols for the protection of free-roaming mobile agents are vulnerable by means of protocol interleaving attacks. This paper presents equivalent protocols meant to be robust against this type of attack. Moreover, it describes the required processes and data structures at a level of detail that can be translated to an implementation in a straightforward way. Our aim is to demonstrate how cryptographic processing can be implemented transparently for agent programmers, thereby reducing the risks of human error in (secure) mobile agent programming.
In this paper, we propose a strategy to improve scalability of replicatedservices in mobile agent systems by using an appropriate passive replication protocol for each replicatedservice according to whether the service is deterministic or non-deterministic. For this purpose, two passive replication protocols are introduced for nondeterministic and deterministic services respectively. They both allow visiting mobile agents to be forwardedto andexecute their tasks on any node performing a service agent, not necessarily the primary agent. Additionally, in the second protocol for deterministic services, after a backup service agent has receivedeac h mobile agent request andobtainedits delivery sequence number from the primary service agent, the backup is responsible for processing the request andco ordinating with the other replica service agents. Therefore, our strategy using the two proposedproto cols can promise better scalability of replicatedservices a large number of mobile agents attempt to access in mobile agent systems.
In the advent of ubiquitous mobile systems in general and mobile agents in particular, network latency becomes a critical factor. This paper investigates interlaced code loading, a promising technique that permutes the application code at method level and exploits parallelism between loading and execution of code to reduce network latency. It allows many applications to start execution earlier, especially programs with a predictable startup phase (such as building a GUI). The feasibility of the technique has been validated by implementing a prototype tool in Smalltalk, and applying it to three applications and a wide range of different bandwidths. We show how existing applications can be adapted to maximally benefit from the technique and provide design guidelines for new applications. For applications that rely on a GUI, the time required to build the GUI can be reduced to 21 % on the average.
In this paper we present the architecture of an autonomous, multi-purpose station which securely executes dynamically uploaded applications. The station hardware is based on an embedded Java processor running the system software and applications. The system software is built on top of a flexible, lightweight, efficient, and secure mobile object kernel, which is able to receive mobile code and to execute it, while protecting the station from faulty applications. Mobile code is used for application upload, as well as for remote configuration and maintenance. The autonomous station relies on resource accounting and control in order to prevent an overuse of its computing resources. Moreover, applications executing on the station may be charged for their resource consumption. This paper also describes an initial application of the autonomous station, which has been recently deployed in a pilot project: Based on the architecture of the autonomous station, we have designed and implemented an on-demand bus stop.
Mobile code systems typically rely on the Java language, since it provides many of the necessary building blocks. Nevertheless, Microsoft recently released the .NET platform, which includes at its core a virtual machine supporting multi-language programming, and a new language called C#. The competition between .NET and Java is evident, and so are the analogies between these two technologies. From the point of view of code mobility, a natural question to ask is then whether .NET supports mobile code, and how the mechanisms provided compare with those available in Java. This paper aims at providing a preliminary set of answers to this simple question. The work we report about was not driven by the goal of providing a thorough comparison. Instead, it was driven by the practical need to port an existing toolkit for code mobility written in Java, μCode, to the .NET environment. This approach forced us to verify our mobile code design on a concrete example, rather than just think about the problem in abstract. The resulting software artifact constitutes, to the best of our knowledge, the first implementation of a mobile code system written for .NET. In the paper, we provide an overview of the .NET mechanisms supporting mobile code, show how they are exploited in our port, and discuss similarities and differences with the Java platform.
Mobile agent systems provide support for the execution of mobile software components, called agents. Agents acting on behalf of different users can move between execution environments hosted by different organizations. The security implications of this model are evident and these security concerns have been addressed by extending the authentication and access control mechanisms originally conceived for distributed operating systems to mobile agent systems. Other well-known security mechanisms have been neglected. In particular, satisfactory auditing mechanisms have seldom been implemented for mobile agent systems. The lack of complete and reliable auditing makes it difficult to analyze the actions of mobile components to look for evidence of malicious behavior. This paper presents an auditing facility for the Aglets mobile agent system and an intrusion detection system that takes advantage of this facility. The paper describes how auditing was introduced into the Aglets system, the steps involved in developing the intrusion detection system, and the empirical evaluation of the approach.
Growing recognition of the benefits of mobile agents in distributed systems, such as military C4ISR, has led to a proliferation of mobile agent systems. However, incompatibilities between proprietary systems prevent the greater potential benefits of ubiquitous mobile agent computing. In particular, agents cannot migrate to a host that runs a different mobile-agent system. Prior approaches to interoperability have tried to force agents to use a common API and so far none have succeeded. This goal led to our efforts to develop mechanisms that support runtime interoperability of mobile-agent systems. This paper describes the Grid Mobile-Agent System, which allows agents to migrate to different mobile-agent systems.
This paper presents a framework for building context-aware applications in ubiquitous and mobile computing settings. The framework provides people, places, and things with computational functionalities to support and annotate them. It is unique among existing systems because the functionalities are implemented by mobile agents. Using location-tracking systems, this framework can navigate mobile agents to stationary or mobile computers near the locations of the entities and places to which the agents are attached, even when the locations change. The framework provides a way for mobile agents to follow their users as they move about and to adhere to places as virtual Post-its. A prototype implementation of the framework has been built on a Java-based mobile agent system and tested with several practical applications, including follow-me applications and a user- navigation system.
Mobile Agents technology opens up new avenues in personalizing and customizing the web experience of users. It provides new possibilities for deploying distributed applications using existing web infrastructure. One of the reasons why mobile agents are not yet popular on the web is due to the lack of an easily deployable framework that would facilitate their existence. Existing mobile agent systems usually require heavy infrastructure that lacks interoperability if deployed on the Internet. In this paper, we describe aZIMAS (almost Zero Infrastructure Mobile Agent System) — a framework that will enable the execution of lightweight mobile agents on the Internet and remove some of the constraints imposed by existing systems. aZIMAS uses existing platform independent protocols like HTTP to achieve code mobility and agent interaction. Our approach involves adding a minimal infrastructure layer, called Agent Environment (AE), over existing web servers and using web browsers as clients. By basing our framework firmly on existing web servers and browsers, we hope to leverage the pervasiveness of web browsers and servers and achieve similar pervasiveness for mobile agents.
Resource awareness is an important step towards the realization of adaptable software, something which is particularly desirable in the context of mobile code and mobile agent environments. Since resources (CPU, memory, network bandwidth, etc.) are not available and manipulable as first-class entities in standard programming models, such as in the Java language, some kind of reification seems indispensable. This is however diffcult to achieve, especially if portability is a requirement. In this paper we describe a mobile agent execution environment that reifies several aspects of both the execution environment itself and of the mobile agents it hosts. We explain how resources consumed by an agent are reified directly from the agent code. Performance measurements show that our approach incurs only moderate overhead.
Mobile agents are a powerful tool for coordinating general purpose distributed computing, where the main goal is high performance. In this paper we demonstrate how the inherent mobility of agents may be exploited to achieve fast file access, which is necessary for most general-purpose applications. We present a file system for mobile agents based exclusively on local disks of the participating workstations. The mobility of agents allows us to make all file operations local, which significantly reduces access time. We also demonstrate how code files and special system files can be handled efficiently in a localdisk- based environment.
Mobile agents must be prepared to execute on different hosts and therefore in different execution environments. Even when a homogenous execution environment is offered by abstracting the underlying heterogeneity, there are scenarios like IT-management, where mobile agents are forced to contain environment dependent implementations. The aim of this work is to equip mobile agents with a flexible capacity to adapt to a range of different environments on demand. We discuss different forms of adaptation and draw a distinction between static and continuous forms. Our solution for dynamic adaptation provides a concept for exchanging environment dependent implementation of mobile agents during runtime. Dynamic adaptation enhances efficency of mobile code in terms of bandwidth and scalability.
We present a centralized and a distributed algorithm for scheduling multi-task agents in a distributed system with the objective of minimizing the overall application completion time. Each agent consists of multiple tasks that can be executed on multiple machines which correspond to resources. The machine speeds and link transfer rates are heterogeneous. Our centralized algorithm has an upper bound on the overall completion time and is used as a module in the distributed algorithm. Extensive simulations show promising results of the algorithms, especially for scheduling communication-intensive multi-task agents.
The goal of mobile agent systems is to provide a distributed computing infrastructure supporting applications whose components can move between different execution environments. The design and implementation of mechanisms to relocate computations requires a careful assessment of security issues. If these issues are not addressed properly, mobile agent technology cannot be used to implement real-world applications. This paper describes the initial steps of a research effort to design and implement security middleware for mobile code systems in general and mobile agent systems in particular. This initial phase focused on understanding and evaluating the security mechanisms of existing mobile agent systems. The evaluation was performed by deploying several mobile agents systems in a testbed network, implementing attacks on the systems, and evaluating the results. The long term goal for this research is to develop guidelines for the security analysis of mobile agent systems and to determine if existing systems provide the security abstractions and mechanisms needed to develop real-world applications.
Mobile agent systems are a powerful approach to develop distributed applications since they migrate to hosts on which they have the resources to execute individual tasks. Existing mobile agent systems require detailed knowledge about these hosts at the time of coding. This assumption is not acceptable in a dynamic environment like a peer-to-peer network, where hosts and, as a consequence, also agents become repeatedly connected and disconnected. To this end, we propose a predicatebased approach allowing the specification of hosts an agent has to migrate to. With this highly flexible approach, termed P2PMobileAgents, we combine the benefits of execution location transparency with those of code mobility. Similarly, also the recipients of messages can be specified by predicates, e.g. for synchronisation purposes. For providing meta information about agents and hosts we use XML documents.
Mobile agents are software objects that can be transmitted over the net together with data and code, or can autonomously migrate to a remote computer and execute automatically on arrival. However many frameworks and languages for mobile agents only provide weak mobility: agents do not resume their execution from the instruction following the migration action, instead they are always restarted from a given point. In this paper we present a purely syntactic translation process for transforming programs that use strong mobility into programs that rely only on weak mobility, while preserving the original semantics.This transformation applies to programs written in a procedural language and can be adapted to other languages, like Java, that provide means to send data and code, but not the execution state.It has actually been exploited for implementing our language for mobile agents X-Klaim, that has linguistic constructs for strong mobility.