Discover!
Explore!
Learn...
Studyworld.com
|
|
Novelguide.com is the premier free source for literary analysis on the web. We provide an
educational supplement for better understanding of classic and contemporary Literature Profiles,
Metaphor Analysis, Theme Analyses, and Author Biographies. |

Agents
People have long dreamed of automated slaves that would do their every bidding, someone to run errands and do chores. Finally, with advances in computing and communications, some of those dreams are turning into reality. Whereas robotic slaves are still in development, software assistants are becoming quite popular. These are better known as agents, often called intelligent software agents.
Software agents have been studied since the 1950s舒the early days of computer science. However, interest in agents began to climb with the expansion of personal computing and local area networks (LANs) in the 1980s, and then increased dramatically after the popularization of the Internet from 1995 onward.
Types of Agents
There are five main kinds of agents. The most well-known are personal assistants. These are often incorporated in desktop software products. Personal assistants try to understand what task a user is trying to perform and then help the user in performing that task. They might advise the user about the actions he or she might take to improve the quality of his or her work. A simple example is the Microsoft Clippy, who shows up when one starts an application program, such as Microsoft Word, and offers help on Word features that might be needed. Although some popular software assistants have a visual presence as a cartoon character, this is not necessary. An assistant may simply place text on a screen or interact through voice.
The second kind of agent is an information aggregating agent. These are used for searching for information or products on the web. The user can ask an agent to find the cheapest airline ticket from, say, Raleigh to the Bahamas, and the agent comes back with a set of options. These agents gather information from several sources on the web, but generally do not update it. They often combine with personal assistants that "learn" a user's preferences through the requests a user makes.
The third category of agents exists within information systems, typically of large enterprises. These software agents help correctly link and update information across related databases that often have subtle differences in meaning. For example, the payroll database in a company records salaries for all workers who are currently being paid, and the benefits database
records health insurance premiums for current and former workers who are receiving health benefits. Such databases are designed to function independently, but people may need to receive interrelated information from them. For example, a manager might query for total monthly labor expenditures, which depend closely on the salaries and the health premiums paid out. However, if the manager queries for a list of permanent employees, neither database has the information. The payroll database includes temporary employees; the benefits database includes retirees. A possible solution is the set of workers who are listed in both databases. Software agents that can understand the information in the underlying "dumb" databases can prevent erroneous or misleading results from being computed. However, creating these agents is not an easy task and it gets more complex when the task requires that information be consistently updated in several places.
The fourth kind of agent functions within complex distributed systems. Such agents are used to manage computer networks by keeping track of the status of various hosts and routers, monitoring traffic patterns, and attempting to detect security threats. They can analyze data transmissions that either do not fit the normal usage profile, or those that fit the profile
of an attack, and take action to either stop an attack or alert a system administrator of a possible breach in security.
The fifth kind of agent provides services for the management and actions of a distributed system. These services include directories so that a software agent may find other agents and resources such as databases and web sites. The agent-location services can be more complex than a directory and may help find agents and provide additional support for negotiation among the agents. A practical agent system will typically include assistants for the various users, several agents to do the required work, and at least one directory or broker agent.
Connectivity and Communication
In most cases, an agent needs network connectivity to communicate with other agents or access remote resources. Only assistants for local applications like Microsoft's Clippy can function without connectivity. Occasionally, one will see references to mobile agents, whose executing code moves from one computer to another. Although this is an interesting idea, it raises security concerns. A malicious agent running on one's computer could wreak havoc on one's data and use the computer to launch attacks on others. Moreover, in all practical applications, the effect of mobility can be achieved by having stationary agents reside on different computers and communicate securely with one another. For this reason, mobile agents are not used in practical applications.
There is no magic in computing. Ultimately, an agent is a software program, not completely unlike other programs. What makes agents interesting is that they provide programming abstractions that help users deal with complexity. Agents are programs that exhibit intelligence and autonomy, and can communicate with other programs. Unlike conventional programs, which must be explicitly invoked, agents can act proactively. Of these, the ability to communicate is central.
When these features are present, they enable the modular engineering of distributed systems. We create an agent for each major player in the system and set up the rules or protocols through which the agents can communicate and, presto, we have a distributed system. Virtually all serious applications of agents involve creating a multiagent system.
For example, designing an enterprise information system from scratch is practically impossible, especially because real-life enterprises split and merge quite often. But when we build the components as agents, they can be composed together with the agents of different divisions or even different enterprises. Likewise, it is generally impossible to allocate resources centrally in a manner that will satisfy everyone competing for them. Often, a reasonable solution is to create a market for the given resource and let each interested party field its agents in that market. For example, agents can help people bid in auctions. Although present-day agents are simple, computational markets and agents for them are fast becoming a common feature of the business landscape, specifically, for trading in commodities such as electrical power.
The power of software agents comes from their human-like traits of reasoning, acting autonomously, and communicating. Therefore, the study of agents not only incorporates traditional computing ideas of programming
languages, objects, and concurrency, but also develops computational variants of cognitive, economic, ethical, legal, organizational, and social constructs. The science of agents is inherently interdisciplinary and one of the most exciting branches of computing.
Bibliography
Bigus, Joseph, and Jennifer Bigus. Constructing Intelligent Agents Using Java, 2nd ed. New York: John Wiley & Sons, 2001.
Huhns, Michael N., and Munindar P. Singh, eds. Readings in Agents. San Mateo, CA: Morgan Kaufmann, 1998.
Agents
Copyright © 2002 by Macmillan Reference USA, an imprint of the Gale Group
|

|





Oakwood Publishing Company:
SAT; ACT; GRE
Study Material
|