...remote execution on peers.
The technical community defines software agent is a "program" that gets sent from the user's computer to a server and executed there. CyberAgents operates by sending programs in the TRAC scripting language to servers. Telescript operates likewise, but with the Telescript language.
However, some of the most popular examples of agent technology work differently. BargainFinder gives effect of sending agents to servers owned by music CD vendors and searching for the lowest price on a CD. However, BargainFinder itself runs on its own server. This server queries music CD vendors using standard queries and processes them using programs based on the BargainFinder server.
NetAlive has comprehensive support for agents. NetAlive can treat agents as data. For example, agents can be stored in a database and then placed into an application. NetAlive agents can run on any host, including the server containing the data, the client's computer, or an independent server. This section focuses specifically on representing agents as data. However, companion sections Web Application and Client Automation describe agents as broadly-defined.
NetAlive can manipulate agents as data and then execute them as a program. First one creates a series of agents as NetAlive tasks and stores them in a database (broadly defined). Then one creates a searching application, but with dummy tasks where there should be agents (the equivalent of formal parameters in a subroutine). During execution the user replaces the dummy tasks with agent tasks from the database. This replacement moves "behavior" from the database into the application, which can then use it.
The figure below is an Intertask of this type. Task agent-containing button starts out as a dummy and gets replaced during execution. This task has three items of data that are affected by replacement: a name, a URL, and code (Perl in this case). This task appears in the GUI as a checkbox labeled by the name of a database. Upon receiving a query, the task substitutes it into the URL and makes the result the RPC address. Upon receiving a query, the task also sends the code to the agent-search function. The agent-search function applies the code to the result of the database query and sends the result to the output widget.
The figure below shows the Scout application with the user performing a replacement. The palette on the right is the result of accessing the database of agents (in this case, simply a NetAlive docunent at a unique URL). The main screen shows the application. Originally the application had six dummy agents labeled Source 1..6, however the user preveiously replaced Source 1..4 with agents. The screen shows the user dragging agent San Jose Mercury Editorials onto Source 5.
The information finder demonstration application performs replacements under program control.
Agents are a buzzword right now so there are many many examples of agents on the Web. Some use a radically different approach than NetAlive, and some probably misuse the term. NetWatch Top Ten - Intelligent Agents/Information Agents and Agents of Change Beyond the hype, software is getting smarter at helping us solve real problems are overviews.
See BargainFinder for an excellent example of a server-based agent application.
The NetAlive website has a framework for creating agent applications at low cost. The agents themselves (and not the application) are the part of an overall agent application that is most crucial to the end-user. In other words, the most crucial part of an agent application that searches for music CD in Internet malls is the collection of agents that know about specific vendors. NetAlive lets a developer create a database of agents which work with an agent application like the Information Finder. The developer can then sell (or give away, etc.) the database as an agent application.
Agent applications could be developed for any type of product. For example, find a used car, home product, technical part, etc.
Agent applications could be developed for any type of service. For example, find an airline flight, appointment with a doctor, etc.
Agent application could be developed for information. For example, find the most interesting news, reference information, etc.
NetAlive's conprehensive solution gives the developer flexibility and reduces development time. Without NetAlive, the developer would have to decide up front whether they create client, server, or mobile agents. Making this decision locks the developer into one or a few implementation languages. Furthermore, if the original decision turns out to be wrong, the whole process begins again.
In constrast, with NetAlive the developer can use any language. The developer can use Perl, Java, etc. or can extend NetAlive's language capability to add the language of their choice.
Furthermore, with NetAlive the developer can switch between client, server, and mobile agents after the fact.
|Next Section||Previous Section||Parent Document|
|This is part 3 of a 6 part document:|
|Client Automation||Web Application||Agent|
|Multi-User||Multi-User + Server||Development Tool|
|This document was referenced from:|
|NetAlive Design Tools|