Agent Soft
Agent Soft
Qusay H. Mahmoud
Abstract. Since the arrival of the World-Wide Web, and the explosive growth of
information on the Web, researchers in the field of Software Agents got interested in
information agents (also known as Internet agents). However, for the past couple of
years, agent technology has been a hot topic, and most likely, this is mainly due to
the popularity of the Java programming language, which represents an ideal
language for implementing software agents as it is the “Write Once Run Anywhere”
language. This is an important feature for software agents as it allows them to run on
all platforms of the Internet. The word “agent” however, has been misused. People
involved in agent research have a variety of definitions for that word. This paper
presents a brief overview of software agents, with emphasis on mobile agents. We
classify agents in different types along several primary characteristics that agents
should exhibit.
1 Introduction
Before we try to define what is a Software Agent, let us first try to understand
the meaning and characteristics of an agent. We are all, in one sense or another,
familiar with the concept of an agent. Probably most of us have dealt with travel
agents and we know the role undertaken by them. The main representative role of
a travel agent, for example, is that it acts on behalf of others. This characteristic
can be considered as the first fundamental property of agency. A travel agent acts
on behalf of a traveler in a variable degree of autonomy. In other words, when a
travel agent calls an airline to reserve a seat, they do so autonomously; that is,
they do not tell the airline to whom do they need a seat, they just say we need a
seat. This is the second characteristic of agency – autonomy. A third characteristic
of an agent is the degree of proactivity and reactivity in their behavior. For
example, once an agent receives the details of its tasks, it tries proactively to
attain the goals defined by the assigned tasks. And it reacts to the changes in the
available data by modifying its plan. Agents may also exhibit other attributes,
including: learning, co-operation, and mobility.
2 What is an Agent?
Based on the above discussion, an agent can be defined, along with its
characteristics as follow:
This definition, which is based on the definition given in [5], is equally true for
software agents. But what exactly is a software agent and how does it differ from
a software object? You may think of a software agent as one (or more) software
object(s) that conforms to the above characteristics of agents and can be described
as inhibiting computers and networks, assisting users with computer-based tasks.
It is the responsibility of the programmer, however, to determine what an agent
can do, as well as the information required from the user or software to have an
agent performs its actions in a reactive manner. The behavior of the agent can be
set by another software, which you can think of as a sort of a super agent, that
forks (or clones) new agents when a task requires extra help.
Classification refers to the study of types and entities. There are several
dimensions to classify existing software agents. They can be classified according
to: the tasks they perform; their control architecture; the range and effectiveness
of their actions; the range of sensitivity of their senses; or how much internal state
they posses [6]. In this paper we classify agents, along several ideal and primary
characteristics that agents should exhibit. We identify three characteristics:
autonomy, learning, and cooperation, which we have discussed in Section 1. Our
classification here is based on [4]. Let us start by elaborating a bit more on these
characteristics. Autonomy refers to the characteristic that an agent can operate on
its own without the need for human guidance. In other words, an agent has a set
of internal states and goals, it acts in such a manner to meet its goals on behalf of
the user. In order to do so, an agent has to be proactive in the sense that it has the
ability to take the initiative rather than acting simply in response to its
environment [15]. Cooperation with other agents is necessary to accomplish a
complicated task. In order to cooperate however, an agent must posses a social
ability that allows it to interact with other agents. Finally, an agent is intelligent if
it is able to learn and sense as it acts and reacts to its external environment. These
three characteristics of agents are used to derive some types of agents to include
in our classification as shown in Figure 1.
Collaborative Agents
Cooperate Learn Interface Agents
Autonomy
Interface agents perform tasks for their owners by emphasizing autonomy and
learning [16]. They support and provide assistance to a user learning to use a
particular application such as a spreadsheet. The agent here observes the actions
being carried out by the user and tries to learn new short cuts, then it will try to
suggest better ways of doing the same task. As P. Maes points out, the key
metaphor underlying interface agents is that of a personal assistant who is
collaborating with the user in the same work environment. Interface agents learn
to better assist its users in four ways [8]:
While interface agents ask other agents for advice (learning from peers), their
cooperation with other agents however, is limited.
The objective of P. Maes work on Interface Agents was initially to migrate from
the direct manipulation metaphor [9] to one that delegates some of the tasks to
software interface agents in order to accommodate novice users. With the
th
explosive growth of the Web, and as we come close to the 20 century, we are
having as many untrained computer users as we have microprocessors. Therefore,
there is a gap that is coming more apparent as we go along with computers.
Current computer interfaces, for example, do nothing unless you give commands
from the keyboard, mouse, or touch screen [5]. Therefore, the computer is merely
a passive entity waiting for your commands to execute them. It does not provide
us with any help whenever we wish to perform some complex tasks. In the future,
interface agents as well as information agents (as discussed later) may know
users’ interests and act autonomously on their behalf. That is what researchers in
the area of agent technology have high hopes for.
The explosive growth of information on the Word-Wide Web has given a rise to
information agents (also known as Internet agents) in the hope that these agents
will be able to help us manage, manipulate, or collate information from many
distributed resources [7]. One may notice however, that information agents seem
a bit similar to interface agents [16]. However, it is important to note that not all
types of agents discussed here started at the same time. So, with the explosive
growth of information, and the need for tools to manage such information, one
would expect a degree of overlap between the goals of some agents. One
distinction between interface and information agents, however, is that information
agents are defined by what they do, in contrast to interface agents which are
defined by what they are.
There are some interface agents, developed at MIT Media Lab, that have been
deployed for Web-based roles [8], and hence they can be considered as
information agents. One important characteristic of Information Agents is that
they may be static or mobile.
Information agents are most useful on the Web where they can help us with
mundane tasks. For example, we carry out actions that may consume long time
(e.g. searching the Web for information). Why does not the computer (e.g. an
information agent) carries out such tasks for us and later on present us with the
results?
NOTE: The author believes that mobile agents (discussed next) can actually be
considered hybrid agents, because in order for a mobile agent to be useful, it may have to
reactive, proactive, and collaborative, for example.
This approach is attractive since the reliability of the network is not crucial for the
following reasons:
• Mobile agents do not consume much network bandwidth. They only consume
bandwidth when they move.
• They continue to execute after they move, even if they loose network
connectivity with their creators.
At this point, someone may say that this is exactly what process migration is all
about and this has been done in the 60’s. That someone would be absolutely right.
However, mobile agents are different in the sense that they exhibit the
characteristics of an agent as discussed in Section 1.
Mobile agents seem to be useful for many different applications. One may
however, claim that virtually any task that can be performed with mobile agents
can be performed with other technologies (e.g. remote method invocation).
Despite the fact that there are not many distributed computing problems that
cannot be solved without mobile agents, nevertheless mobile agents make certain
applications easier to develop and may improve reliability and efficiency. Table 1,
which is based on [5] contains some of the claimed advantages of mobile agents
over conventional approaches.
Advantage Justification
Efficiency Mobile agents consume fewer network resources since they
move the computation to the data instead of the data to the
computation.
Less Bandwidth Most communication protocols involve several interactions,
which cause a lot of network traffic. Mobile agents consume
bandwidth only when they move.
Robustness and Fault The ability of mobile agents to react dynamically to adverse
Tolerance situations makes it easier to build fault tolerance behavior in
complex distributed systems.
Support for Hetero- Mobile agent systems are computer and network independent.
geneous Environments Therefore, a Java mobile agent can target any system that has a
Java Virtual Machine.
Support for Electronic Mobile agents are being used to build electronic markets since
Commerce they embody the intentions, desires, and resources of the
participants in the market.
Easier Development The construction of distributed systems can be made easier with
Paradigm mobile agents. Mobile agents are inherently distributed in
nature. Therefore, they are a natural view of a distributed
system.
Despite the fact that mobile agents represent a new useful paradigm for
distributed computing, they have, however, seldom been used in practice. The
main reason for this is due to the fact that there are a number of related technical
as well as social challenges to implementing mobile agent-based applications.
Technical issues include, among others, difficulties with portability and security.
The security issue may also be considered as a social challenge – convincing
people to use mobile software agents to buy items over the Internet. As B. Laurel
[10] pointed out “few of us would hire an agent to push the buttons on our
calculator; most of us would hire an agent to scan 5,000 pieces of junk mail”.
The security challenge, however, is a complicated one. Mobile agents raise issues
similar to Java Applets. There are several security issues to be considered in
mobile agent-based computing. Some people in the computing community think
of mobile agents as viruses sine they may exhibit similar behavior.
Mobile agent security can be split into two areas [5]:
One approach to protect the host nodes from destructive agents it through
authentication and agent signatures where all unknown agents are rejected.
However, this does not really seem like a good solution, because how would we
know that a mobile agent is whom it claims to be?
The other area of security deals with the issue of protecting mobile agents from
hosts which may want to scan the agent for information; alter the agent’s state; or
even kill the agent. The crucial issue here is that the agent will have to expose its
data and information to the host in order to run on it [11]. Current research has
shown it is computationally impossible, however, to protect a mobile agent from a
malicious host [12]. Some researchers are looking at sociological (instead of the
hard computational model) means of enforcing good host behavior [12].
4 Conclusion
Agent technology is a hot topic that is keeping many people both, in academia
and industry quite busy. In this paper we have given a brief overview of software
agents and their applications. We explained the characteristics of an agent and
based on that we classified agents into six types: interface, collaborative,
information, reactive, hybrid, and mobile. The mobile agent class was discussed
in more details than any other class. This because in the author’s view a useful
mobile agent is inherently an information agent and should be collaborative and
reactive. In other words, a mobile agent is different from a mobile object since the
mobile agent has to exhibit some attributes of agency (e.g. autonomy, learning,
co-operation, proactivity and reactivity).
5 References
[2] P. Morreale. “Agents on the move”. In IEEE Spectrum, April 1998, pp. 34-41.
[3] V. A. Pham, and A. Karmouch. “Mobile Software Agents: An Overview”. In
IEEE Communications Magazine, July 1998, pp. 26-37.
[7] P. Maes. “Intelligent Software”. In Scientific American, Vol. 273, No. 3, Sept.
1995, pp. 84-86.
[9] P. Maes, and Schneiderman, B., "Direct Manipulation vs. Interface Agents: a
Debate", In Interactions, Vol. IV Number 6, ACM Press, 1997
[12] A. Rasmusson, and S. Janson. “Simulated Social Control for secure Internet
commerce”. In New Security Paradigms ’96, ACM Press, Sept 1996.
[13] P. Maes (editor). “Designing Autonomous Agents: Theory and Practice from
Biology to Engineering and back”. MIT Press.
[14] M. Graham, and P.R. Wavish. “Simulating and Implementing Agents and
Multiple Agent Systems”. In Proceedings of the European Simulation Multi-
Conference, Copenhagen, Denmark, June 1991.
[16] T. Koda and P. Maes, "Agents with Faces: The Effects of Personification of
Agents”, In Proceedings of HCI '96, London, UK, August, 1996.