|< Day Day Up >|
Characteristics of Agents
Software agents have many different characteristics. Table 8.1 lists some characteristics commonly associated with agents. In the author's opinion, software should possess at least three of these characteristics if it is to be considered an agent but may assume all of them.
Readers may observe that the characteristics associated with agents are common to some modern-day software programs. Chapter 1 described a phenomenon known as the "AI effect." This is an effect that occurs once a technology becomes widely accepted and from then on is no longer considered AI. In much the same way, the ideas behind software agents have been absorbed into modern-day programming. Therefore, many programs not labeled as agents may assume many, if not all, of the characteristics listed in Table 8.1.
In order to work properly, it is necessary for most agents to be autonomous and able to function independently. They must also be able to react to the environment so that they can quickly act in the best interest of their user. And they will usually need to communicate with the user or another program. The Internet not only allows for greater access to data, but provides a vehicle for communication with other agents. Because of this, many software agents exist as tools and resources on the World Wide Web. Multiple agents, or those that communicate with other agents, are especially useful because they can often perform complex tasks.
Perhaps the most debated characteristic associated with agents is the ability to learn. This is also the characteristic that can give software its greatest value and is generally used to identify those that are "intelligent." An intelligent agent can learn from the user's behavior and modify its own behavior accordingly. For instance, consider an agent used to browse the Internet. Such an agent can be particularly effective if it is able to modify the content returned to the user based on pages the user has previously visited. Imagine a user who is a computer programmer and frequently browses Web pages from software companies. If this user initiated a Web search for the word "Agent," it is very likely that the preferred results would be from computer-related Web sites rather than from online travel agencies.
Commercially Available Agents
Today, most commercially available agents perform very specific tasks. They are quite limited in their domains of knowledge and ability. Most agents deal with automating redundant tasks or making Web surfing more efficient. Table 8.2 lists functions that many of these agents perform.
The increased usage of the Internet has contributed greatly to the popularity of agents. Many Web users are overwhelmed by the vast amounts of information available on the Internet. They need better ways to find and organize this information.
Copernic Agent Professional (www.copernic.com/en/products/agent/professional.html) is a tool that allows users to search for information on the Internet. The primary difference between this tool and other search engines is that it combines search results from thousands of search engines. It also allows you to keep track of changes made to certain Web pages and notifies you via e-mail when changes have been made.
One of the most annoying drawbacks to using the Internet today is the proliferation of spyware or adware. Spyware is software intended to reside on a user's computer for the purpose of collecting information about the user or redirecting the user to certain Web sites. Adware can be used to initiate popup boxes displaying advertisements. Both spyware and adware can result in a user's computer slowing down and/or in the user's suddenly receiving unwanted advertisements. There are now a variety of products, such as Ad-Aware Plus, version 6.0 (www.lavasoftusa.com) that can safely remove these sometimes unwanted intruders. Ad-Aware includes a real-time monitoring system that can watch for the installation of new spyware/adware and alert you to when an intrusion is detected.
The paradox here is that many of the programs considered to be spyware and adware could also qualify as agents. They are programs intended to act in the best interest of the advertiser or marketer by collecting useful information for them. They act independently and are able to communicate with both the targeted computers and their original users. They are also able to propagate themselves without specific instructions and in many cases mask their identities to avoid detection.
Some companies offer software-development toolkits designed to build agents. These kits allow developers with very little knowledge of software agents to develop them quickly. Of course, it is not necessary to utilize an agent toolkit when building agents. Essentially, any programming language can be used.
An Example of Using Multiple Agents
This chapter will examine multiple software agents designed to assist remote users in maintaining a local repository of company files available from the corporate Web server. The Agent solution file (available for download from the book's Web site at http://www.awprofessional.com/title/0321246268) contains two Windows service projects. One of the Windows services executes independently on the remote user's laptop and utilizes a "pull method" to retrieve information. This allows it to assume the first characteristic listed in Table 8.1 function independently. The files will be pulled asynchronously from a remote server utilizing Microsoft's Background Intelligent Transfer Service (BITS).
The other Windows service project is designed to execute on a central server and is responsible for independently publishing data used by the client-based agents. Utilizing Microsoft's File System Watcher functionality, it will watch for changes to published files and directories. Finally, there is a Web service project that exposes two methods. The Web service will be used by the remote agent and is used to determine when updates have occurred.
The agent solution presented in this chapter is one example of how multiple agents can work together to achieve a common goal. In this case, the goal is simple: keep the user up to date. Agents can be especially effective in more complex systems because each agent can assume a specific task. Breaking up the tasks into manageable items allows each agent to specialize in a specific task. It also distributes the processing among multiple sources, thereby giving the entire system more power. In today's distributed work environments, these types of solutions will become increasingly more important.
|< Day Day Up >|