The mobile agent approach is a relatively new paradigm in the distributed systems environment. MAs have been developed as an extension to mobile code approach (e.g. Applet) and could replace the client-server model and its architectures in the near future. Many researchers in this field have extended the mobile-code concept to “mobile object” in which an object (code + data) are moved from one host to another. The mobile agent approach extends this concept further by moving code, data and state (thread) from one host to another as well. MAs run at one location, move with their state to another host, and continue execution at that host. Mobile code and mobile objects are normally moved by an external entity while MAs are usually migrated autonomously.
Before the mobile agent paradigm appeared, many approaches have been proposed and developed for communication between client and server such as, Message Passing (MP), Remote Procedure Call (RPC) and Remote Evaluation (REV). In RPC, the client sends data as parameters to a procedure that resides at the server. The procedure will be executed on the server and the results will be sent back to the client. The REV is a different architecture from RPC. Instead of calling a remote procedure at the sever side, the procedure itself will be sent from the client to the server to be executed and returns the result. Briefly, in RPC the data is transmitted between the client and server in both directions. In REV, code is sent from the client to the server, and the data is returned. In contrast, a mobile agent is a program (encapsulating code, data, and state) sent by a client to a server [19].
However, in a client/server model, a server is a machine that provides some service (or a set of services) and a client (most often another machine) makes requests for those services through a communication channel (e.g. wireless or wired). Communication between the client and the server is usually through message passing. Thus, when a client needs a particular service, it usually sends a request message to the server that contains the needed service as shown in Fig 2.4. A limitation of the client-server model is that the client is limited to the operations provided at the server. If the client needs a service that a particular server does not provide, it must find a server that can satisfy the request by sending out more messages to other servers. This clearly is an inefficient use of network bandwidth. In addition, this kind of communication may increase the networks traffic, waste network bandwidth and causes delays of the reply due to server down time or crashes. Another problem is in the use of the model for disconnected computing. Due to the mobility factor of mobile devices (mobile phones, PDAs, Laptops), sporadic disconnection is frequent in the wireless environment. Mobile agents provide a solution for the dynamic environment of the mobile devices because they do not rely on server operations [20].
The mobile agent appears to tackle significant problems whether in wired or wireless communication such as disconnection operations, increased network traffic and others. Moreover, mobile agents can play a major role in the wireless communication after the failure of the Java RMI(Remote method Invocation) in increasing the performance over slow wireless links [21]. Once the mobile agent has migrated, the connection between client and server will be disconnected. This saves network bandwidth, especially in a wireless environment. When a mobile agent finishes its job at the server, it will then be ready to reconnect to its host or to migrate to another node to perform other duties within the network.
Why use of Mobile Agent in general?
Mobile agents can increase the performance in various areas by achieving the following tasks:
Reduce the network load: MAs allow users to package and migrate their operations to be carried out locally. This is useful where huge volumes of data are required to be processed; the data will be manipulated locally rather than transferred over the network. In other words, move the computation to the data rather than the data to the computation.
Overcome network latency: MAs can offer great opportunities to respond to real-time systems where delay is not acceptable due to its mobile and adaptive properties.
Encapsulates protocols: in distributed systems where many different protocols may be used to communicate among the network nodes, MAs can overcome this problem by moving to remote hosts to establish channels based on proprietary protocols.
Execute asynchronously and synchronously: in which a mobile computing area where network connection is expensive (small bandwidth). Some tasks require open connection between mobile devices and fixed networks; this might not be economical and practical; this problem can be solved by embedding a mobile task into the mobile agent and dispatch the mobile agent to the destination then disconnect the link between the mobile device and the fixed network.
Note: Building robust distributed systems based on mobile agent technology for the favor of its properties Robust, Fault-Tolerant and the event-based model makes MAs react dynamically to any critical situation within the environment.
Mobile Agents Requirements
Three requirements for building mobile agent: mobile agent code (program), mobile agent platform (execution environment), mobile interfaces or mobile agent creator. Java MAs can be used in areas such as network management, mobile computing, information management, web services, mobile computing, information management, remote software management and so on. Java is a jet fuel for mobile agent. Developers can build powerful distributed applications by using Java due to its independence platform feature.
No comments:
Post a Comment