30-11-2012, 02:39 PM
Mobile Agents
mobile agent.docx (Size: 280.36 KB / Downloads: 27)
ABSTRACT
Mobile agents, an emerging technology that makes it very much easier to design, implement, and maintain distributed systems. We will find that mobile agents reduce the network traffic, provide an effective means of overcoming network latency, and perhaps most importantly, through their ability to operate asynchronously and autonomously of the process that created them, helps us to construct more robust and fault-tolerant. Software agents are the mobile as well as the stationary ones. Mobile agents are quite a novel and powerful paradigms for representing and building distributed applications. Despite its growing popularity, the mobile-agent model of computations has some disputable features and needs further study and experimentation.
Java, the language that changed the Web overnight, offers some unique capabilities that are fueling the development of mobile agent systems.
RTMonitor is a real-time data management system for traffic navigation applications. Here mobile vehicles initiate time-constrained navigation requests and RTMonitor calculates and communicates the best paths for the clients based on the road network and real-time traffic data.
There are four possible security attacks: Attacks from host to host, from agents to hosts, from agents to agents and finally from hosts to agents. The attacks from a malicious host on an agent can take many forms including rerouting, spying out code, spying out data, spying out control flow, manipulation of code, manipulation of data, manipulation of control flow, incorrect execution of code, masquerading and denial of execution.
Mobile Agent:
Mobility is an orthogonal property of agents. That is, all agents do not necessarily have to be mobile. An agent can just sit there and communicate with the surroundings by conventional means. These include various forms of remote procedure calling and messaging. We call agents that do not or cannot move stationary agents.
Definition of a Stationary Agent
A stationary agent executes only on the system where it begins execution. If it needs information that is not on that system, or needs to interact with an agent on a different system, it typically uses a communication mechanism such as remote procedure calling (RPC).
In contrast, a mobile agent is not bound to the system where it begins execution. The mobile agent is free to travel among the hosts in the network. Created in one execution environment, it can transport its state and code with it to another execution environment in the network, where it resumes execution.
Definition of a Mobile Agent
A mobile agent is not bound to the system where it begins execution. It has the unique ability to transport itself from one system in a network to another. The ability to travel, allows a mobile agent to move to a system that contains an object with which the agent wants to interact, and then to take advantage of being in the same host or network as the object.
Advantages of Mobile Agents:
• They reduce the network load. Distributed systems often rely on communications protocols that involve multiple interactions to accomplish a given task. This is especially true when security measures are enabled. The result is a lot of network traffic. Mobile agents allow us to package a conversation and dispatch it to a destination host where the interactions can take place locally, see Figure 1.3.1. Mobile agents are also useful when it comes to reducing the flow of raw data in the network. When very large volumes of data are stored at remote hosts, these data should be processed in the locality of the data, rather that transferred over the network. The motto is simple: move the computations to the data rather than the data to the computations.
• They overcome network latency. Critical real-time systems such as robots in manufacturing processes need to respond to changes in their environments in real time. Controlling such systems through a factory network of a substantial size involves significant latencies. For critical real-time systems, such latencies are not acceptable. Mobile agents offer a solution, since they can be dispatched from a central controller to act locally and directly execute the controller's directions.
Network Computing Paradigms:
Mobile agents provide a very powerful uniform paradigm for network computing. Mobile agents can revolutionize your design and development of distributed systems. To put this claim into perspective, we will provide a brief overview and comparison of three programming paradigms for distributed computing: client-server, code-on-demand, and mobile agents
• Client-Server Paradigm. In the client-server paradigm, see Figure 1.4.1, a server advertises a set of services that provide access to some resources (e.g., databases). The code that implements these services is hosted locally by the server. We say that the server holds the know-how. Finally, it is the server itself that executes the service, and thus has the processor capability. If the client is interested in accessing some resource hosted by the server, it will simply use one or more of the services provided by the server. Note that the client needs some "intelligence" to decide which of the services it should use. The server has it all, the know-how, resources, and processor. So far, most distributed systems have been based on this paradigm. We see it supported by a wide range of technologies such as remote procedure calling, object request brokers (CORBA), and Java remote method invocation (RMI).
Mobile Agent Applications
We will now take a closer look at some applications that benefit particular from the mobile agent paradigm.
• Electronic commerce. Mobile agents are well suited for electronic commerce. A commercial transaction may require real-time access to remote resources such as stock quotes and perhaps even agent-to-agent negotiation. Different agents will have different goals, and will implement and exercise different strategies to accomplish these goals. We envision agents that embody the intentions of their creators, and act and negotiate on their behalf. Mobile agent technology is a very appealing solution to this kind of problem.
• Personal assistance. The mobile agent's ability to execute on remote hosts makes it suitable as a "assistant" capable of performing tasks in the network on behalf of its creator. The remote assistant will operate independently of its limited network connectivity, and the creator can feel free to turn his or her computer off. To schedule a meeting with several other people, a user could send a mobile agent to interact with the representative agents of each of the people invited to the meeting. The agents could negotiate and establish a meeting time.
• Secure brokering. An interesting application of mobile agents is in collaborations where not all the collaborators are trusted. In this case, the involved parties could let their mobile agents meet on a mutually agreed secure host, where collaboration can take place without the risk of the host taking the side of one of the visiting agents.
• Distributed information retrieval. Information retrieval is an often-used example of a mobile agent application. Instead of moving large amounts of data to the search engine so that it can create search indexes, you dispatch agents to remote information sources, where they locally create search indexes that can later be shipped back to the origin. Mobile agents are also able to perform extended searches that are not constrained by the hours during which the creator's computer is operational.
MOBILE AGENT STANDARDIZATION: MASIF
Clearly, the contemporary mobile agent systems differ widely in architecture and implementation, thereby impeding interoperability and rapid deployment of mobile agent technology in the marketplace. To promote interoperability, some aspects of mobile agent technology must be standardized. The companies Crystaliz, General Magic Inc., GMD Fokus, IBM Corporation, and the Open Group have jointly developed a proposal for a Mobile Agent System Interoperability Facility (MASIF) and brought it to the attention of the Object Management Group (OMG).
MASIF addresses the interfaces between agent systems, not between agent applications and agent systems. Even though the former seems to be more relevant for application developers, it is the latter that allows mobile agents to travel across multiple hosts in an open environment. MASIF is clearly not about language interoperability. Language interoperability for mobile objects is very difficult and MASIF is limited to interoperability between agent systems written in the same language, but potentially by different vendors. Furthermore, MASIF does not attempt to standardize local agent operations such as agent interpretation, serialization, or execution. We can that say MASIF defines the interfaces at the agent system level rather than at the agent level.
MASIF standardization Areas:
• Agent Management. There is interest in the mobile agent community to standardize agent management. It is clearly desirable that a system administrator who manages agent systems of different types can use the same standard operations. It should be possible to create an agent given a class name for the agent, suspend an agent’s execution, resume its execution, or terminate it in a standard way.
• Agent Transfer. It is desirable that agent applications can spawn agents that can freely move among agent systems of different types, resulting in a common infrastructure.
• Agent and Agent System Names. In addition to standardizing operations for interoperability between agent systems, the syntax and semantics of various parameters must be standardized too. Specifically, agent name, and agent system name should be standardized. This allows agent systems and agents to identify each other, as well as applications to identify agents and agent systems.