Mobile Agent Learning

Source: Internet
Author: User
Tags knowledge base

Computer intelligence and Network processes have contributed to the rapid rise and wide application of Agent technology. Mobile Agent technology is a new computing method for solving complex, dynamic, and distributed intelligent applications, it is another profound change in computer software technology.

This series of articles introduces the new intelligent distributed computing model of mobile agent in two parts: the first part briefly describes some basic concepts of software agent and mobile agent, A Distributed Computing Model Based on Mobile Agent is proposed. The second part briefly introduces the commonly used mobile agent platform. The Voyager mobile agent development platform is used as an example, describes how to develop mobile agent applications in Java.

With the rapid development of artificial intelligence and computer networks, especially the widespread application of Internet and related technologies in recent years, networks have become the basic platform for people to publish and obtain information. In this context, computing is no longer limited to just a few servers in the network as before, but requires all computers to be integrated into the distributed computing environment, this has triggered a new round of research boom in distributed computing, during which the most striking is the intelligent software agent.

Software Agent

The Birth and Development of Software Agent technology is the product of the combination of artificial intelligence and network technology. Since 1960s, the traditional AI technology has been devoted to research in the fields of knowledge expression, intelligent reasoning, and machine learning, the application of these research results in computer software gives the software a certain degree of initiative, and has a certain degree of intelligence in autonomous judgment and behavior selection. At present, the research and application of AI centering around knowledge is promoting the generation of the emerging discipline of Knowledge Engineering, which involves a series of topics such as knowledge acquisition, storage and management, in-depth research on these problems will certainly promote the process of software intelligence.

In the Internet, which is currently the largest interconnected network environment, the complexity of computer software architecture and organizational structure is constantly increasing. Traditional software design methods cannot meet actual needs, distributed and intelligent is the basic direction of software development in the future. The purpose of software distribution is to break down the problem and solve the problem together by multiple software modules or network nodes that achieve knowledge sharing, the goal of intelligence is to coordinate intelligent behaviors between intelligent hosts. The combination of the two produces the concept of software agent.

Software Agent technology can be traced back to the initial stage of artificial intelligence research. In 1977, Hewitt proposed a software model with self-organization, response mechanism and synchronous execution ability when studying the concurrent actor model, this is the initial idea of software agent. Since then, from the end of 1970s to the beginning of 1990s, scientists have focused on the research of the software agent theory and put forward some basic concepts from the perspective of the system. The specific practice of Software Agent started in 1990s, during which people made some very successful attempts (such as Pleiades and archon plan) and had a further understanding of the software agent, for example, Microsoft believes that "agent is a delegated representative or a substitute for user behavior, and its intelligence shows or shows its excellent judgment or reasonable thinking. "

Currently, there is no ideal definition of software agent in the field of research, but it is generally considered that software agent is an entity that runs in a dynamic environment and has a high degree of autonomy, it can accept and serve other entities. It is not hard to see that the software agent is smart first. It is responsive, autonomous, and proactive to the environment. At the same time, the software agent also has social characteristics. The complete description of the Software Agent 1 is as follows:

Figure 1. Software Agent

  • The autonomous software agent is not directly controlled by people or other subjects during its operation. It can execute tasks independently without interacting with the environment, you have certain control over your behaviors and internal states. Autonomy is a basic feature that distinguishes software agents from common software programs.
  • The responsive software agent can make appropriate responses to information from the environment. It can perceive the environment and change the environment through its own behavior.
  • The traditional application of proactivity receives user instructions for passive execution. The software agent can not only respond to environment changes, but also take active actions under specific circumstances.
  • Reasoning software agent can make rational reasoning based on existing knowledge and experience. The intelligence of software agent consists of three main components: Internal knowledge base, adaptive ability, and knowledge base-based reasoning ability.
  • The character software agent must consider security, risk, integrity, and other factors in social activities.
  • Communication/cooperation/coordination (Communication/cooperation/coordination) is a social attribute that should be possessed by the software agent group.

Software Agent belongs to the field of artificial intelligence. It simulates the behaviors and relationships of human society in a certain program, has certain intelligence and can run independently, and provides corresponding services to other software entities. The software agent has great flexibility and adaptability. It is more suitable for open and dynamic network environments and reflects human social responsibilities.

Mobile Agent

With the gradual development of Internet applications, especially information search, distributed computing, and e-commerce, people are increasingly hoping to obtain the best services across the Internet, the desire to virtualize the entire network into a whole, so that the software agent can be freely moved throughout the network. The concept of mobile agent is born immediately.

At the beginning of 1990s, General magic first proposed the concept of mobile agent when launching its commercial system telescript, that is, a mobile agent that can independently migrate from one host to another in a heterogeneous network environment, software entities that can interact with other agents or resources. Mobile Agent is a special type of software agent. It not only has the basic features of software agent-autonomy, responsiveness, initiative and reasoning, but also has mobility, that is, it can automatically move from one host to another on the network, representing that the user completes the specified task. Because mobile agents can be freely moved in heterogeneous software and hardware network environments, therefore, this new computing mode can effectively reduce the network load in distributed computing, improve the communication efficiency, dynamically adapt to the changing network environment, and have good security and fault tolerance capabilities.

Mobile agent can be seen as a product of the combination of software agent technology and distributed computing technology. It is essentially different from the traditional network computing mode. Unlike Remote Procedure Call (RPC), mobile agent can constantly move from one node in the network to another. In addition, mobile agent can be selected as needed. The mobile agent is also different from the general process migration, because in general, the process migration system does not allow the process to choose when to migrate and where to migrate, but the mobile agent can be moved at any time, and can be moved to any place it wants to go. The mobile agent is different from the Java Applet, because the applet can only move from the server to the client, but the mobile agent can move between the client and the server in two directions.

Although different mobile agent systems have different architectures, almost all mobile agent systems contain mobile agent (MA) and mobile agent service facilities (Mae, 2.

Figure 2. Mobile Agent System

Mae is responsible for establishing a secure and correct runtime environment for Ma and providing Ma with the most basic services (including creation, transmission, and execution ), implement the constraint mechanism, fault tolerance policy, security control and communication mechanism for specific Ma. Ma's mobility and problem solving capabilities are largely based on the services provided by Mae. Generally, Mae should include at least the following basic services:

  • Transaction Service enables the creation, movement, persistence, and execution environment allocation of mobile agents;
  • The event service includes the agent transmission protocol and Agent Communication Protocol to implement event transmission between mobile agents;
  • Directory Service provides mobile Agent location information to form route selection;
  • Security services provide a secure execution environment;
  • The Application Service provides service interfaces for specific tasks.

Generally, a Mae is only located on one host in the network, but if the hosts are interconnected over a high-speed network, A Mae can also span multiple hosts without affecting the operating efficiency of the entire system. Mae uses the agent Transfer Protocol (ATP) to move Ma between hosts and allocate the execution environment and service interfaces to it. Ma is executed in Mae and communicates with each other and accesses various services provided by mae through the agent communication language (ACL.

In the architecture of the mobile agent system, ma can be divided into user agent (UA) and service agent (Server Agent, SA ). UA can move from one Mae to another, which is executed in Mae and communicates with other Ma through ACL or accesses services provided by Mae. UA is mainly used to complete user-delegated tasks. It needs to implement Mobile semantics, security control, and external communication. SA does not have the ability to move data. Its main function is to provide services to the local Ma or the visiting Ma. A Mae can communicate with multiple SAS to provide different services. Because SA cannot be moved and can only be started and managed by the administrator of its Mae, this ensures that SA will not be "malicious ". UA cannot directly access system resources. It can only access controlled resources through interfaces provided by SA to avoid malicious agent attacks on hosts. This is a common security policy adopted by mobile agent systems.

Mobile Agent is a brand new concept. Although there is no uniform definition yet, it has at least the following basic features:

  • Identity uniqueness
    The mobile agent must have a specific identity and can represent the user's wishes.
  • Mobile autonomy
    The mobile agent must be able to automatically move from one node to another. This is the most basic feature of the mobile agent and a symbol of its difference from other agents.
  • Operation continuity
    The mobile agent must be able to run continuously in different address spaces, that is, to maintain the continuity of the operation. Specifically, when the mobile agent is transferred to another node for running, its status must be the moment when the previous node is suspended.

Distributed Computing Model Based on Mobile Agent

Mobile Agents are inherently distributed. A mobile agent-based application is composed of a group of mobile agents, each agent moves to a node with computing resources based on its own goals and environment. During computing, you may need to communicate and collaborate with other agents. The entire computing process may be divided into multiple steps. After each step is completed, the mobile agent determines the next action independently until all its tasks are completed.

Currently, distributed computing mainly uses computing models such as remote process calling, Process Migration, and C/S structure. These computing models have some limitations, the most obvious difference is that all nodes involved in computing must exist in the network during interaction. If some required resources cannot be accessed, the entire computing process will fail.

The emergence of mobile agents makes communication between computers no longer a host that calls services on another host, but rather provides executable computing processes to other computers, messages transmitted over the network are no longer limited to data, but contain computing entities in the computing process and its status. In the mobile agent computing model, the computing process and its corresponding status fully represent all the requests of the sender in the recipient's computer. Therefore, in this case, the network reliability becomes less important because:

  • The mobile agent does not need to consume too much network bandwidth. It only uses the bandwidth when moving;
  • The mobile agent will continue to run after it is moved, even if the network connection with the Creator has been lost.

Mobile Agent technology can greatly reduce network load. Currently, distributed systems usually rely too much on network communication protocols. These protocols need to perform multiple interactions during task completion, this can easily cause network congestion, as shown in figure 3.

Figure 3. Traditional Mode

The mobile agent can encapsulate a complete session process and then automatically move it to the target host for local interaction, as shown in figure 4. In addition, when the remote host needs to process data, using mobile agent can also avoid transmission of a large amount of data over the network. The basic idea is to move computing to Data, instead of moving data to computing.

Figure 4. Mobile Agent Mode

Therefore, if a client needs to communicate a lot with a specific server on the network, the best way is to implement a mobile agent system, which can be automatically moved to a remote server, run the computing task and return the task to reduce network congestion. The client does not need to exist in the network during the entire computing process. Only when the mobile agent returns, the client needs to connect to the network, as shown in Figure 5.

Figure 5. Mobile Agent Computing Model

Mobile Agent technology brings new vigor to the design, implementation and maintenance of distributed systems. It has many advantages that traditional distributed computing models cannot match:

First, the mobile agent can greatly reduce data traffic on the network.

By moving the service request agent to the target host, the mobile agent can directly access resources on the host, with less interaction with the source host, avoiding the transmission of a large amount of data over the network, this reduces the system's dependence on network bandwidth, reduces communication latency, and improves service quality.

Second, the mobile agent can run in asynchronous mode.

The tasks to be completed can be encapsulated in the mobile agent and sent out through the network. Then, the connection between the open source host and the target host can be broken. Since then, the mobile agent is independent of the process that generates it and can be operated asynchronously and autonomously. The source host can connect to the target host and receive the computing result when appropriate. This is especially useful for mobile devices or users in the future, because computing on mobile devices is dependent on expensive and fragile network connections, it requires continuous connections between mobile devices and fixed networks, which is not ideal both economically and technically.

Third, mobile agent has strong adaptability

The mobile agent can perceive its runtime environment and make appropriate responses to environment changes. It can dynamically decide the Moving Target Based on the server and network load, which is conducive to Server Load balancer. In addition, the smart routing of mobile agent reduces users' judgment during browsing or searching.

Fourth, mobile agents facilitate parallel processing

The mobile agent can dynamically create multiple agents for parallel work during Task Processing to improve efficiency and reduce the job response time. Multiple Mobile agents have the unique capability to dynamically and reasonably distribute their own network hosts. They can maintain the optimal configuration to solve a specific problem according to certain rules.

Fifth, mobile agents are inherently heterogeneous.

Distributed network computing platforms are usually heterogeneous. Mobile Agents are generally independent of specific software and hardware environments and only depend on their runtime environments. Therefore, mobile agents are the optimal condition for seamless system integration.

Sixth, mobile agent has strong robustness and fault tolerance capabilities

Mobile agent has the ability to respond to unexpected states and events, which makes it easier to build a robust and fault-tolerant distributed system. When a host is closed, all the mobile agents running on this host will receive a warning, and there is plenty of time to move to another host and continue running.

In short, in the era of network integration, mobile agent technology has obvious advantages over traditional distributed technology.

Summary

In recent years, mobile agent technology has made great progress in both theoretical research and practical application. People have begun to have a clear understanding of the agent, then some mature mobile agent development platforms are created. Voyager is a typical representative of the platform. Its emergence has greatly promoted the application scope of mobile agent. The 21st century is an era in which human society can fully implement information. With the further development of computer networks and artificial intelligence technology, mobile agent will surely unveil a new chapter in the information revolution.

References

On the recursion website, you can find information related to Voyager and the latest Voyager software package. aglet is a mobile agent development framework provided by IBM and is fully implemented based on the Java language, and open source code, you can find some useful information about aglet on the website.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.