The explosive growth of the World-Wide Web is virtually unprecedented in the history of software systems. From a relatively small community of high energy physicists at CERN, the Web has grown to be part of the social fabric of society, with Universal Resource Locators (URLs) on business cards and television commercials. This increasing popularity has also driven a significant demand for intelligent, Web-based access to information [1, 2]. Our recent work has in part focussed on the use of the Web as a user interface mechanism. This position paper relates some of our experience with developing and maintaining Web-based agents.
The Intelligent Web Agents / Houston (IWA/H) project is investigating the development and use of agent technology in support of individuals seeking access to information in a chaotic environment the Web. Our environment consists of a number of interdependent prototypes:
We are currently integrating our prototypes through a shared knowledge representation scheme for agent interaction that allows for more sophisticated interactions between a user agent and the service agents to which it appeals for information. A preliminary approach to a representation scheme for such a protocol, based upon the Wordnet thesaurus [7], is currently being tested for Sulla. Our current development work extends the thesaurus approach with richer representations, based upon ontological modeling and residing in a knowledge representation server. The KR server is used by all agent instances as their means both for persistent storage and for sharing information with other instances.
The principle design goals for our user and service agents are nimbleness and knowledge, respectively. A key aspect of our architecture is balancing the obviously competing demands of these two goals, driving us to such a separation of concerns. Our original approach to Sulla was as a monolithic, non-mobile daemon, to which the user could connect periodically to be apprised of progress. We have subsequently decomposed Sulla into interface, scheduling and search components, allowing the interface sub-agent to migrate onto the userÕs laptop as an applet (making the interface available even while traveling), while the scheduling and search components continue long duration activities.
The local storage requirements for the interface sub-agent as applet are modest, primarily the caching of pending requests (accepted while incommunicado) and results (to be potentially viewed while incommunicado). The scheduling sub-agentÕs larger storage and computation requirements will remain on the userÕs desktop/server system, since reliable communication channels to the KR server are an absolute requirement here. Neither of these components then presents any significant architectural limitations with respect to transportability.
The search sub-agent, however, is another matter. To move significantly beyond the simple keyword based search facilities presented by currently available Web indices, either large amounts of information need to be shipped back and forth between sub-agent and search engine (clearly something that will not be scalable to large user communities), or the search sub-agent must migrate to the search engine as a servlet. While servlets are not currently supported by Web search engines, such an approach allows the search sub-agent to directly interact with the index database, allowing the sub-agent to iteratively refine its query results, and transport only that data which is applicable to its search goals.
However, a migrant search sub-agent presents challenges of its own, in particular in this case, the need to manipulate some fragment of the agentÕs (potentially large) knowledge base, without advance knowledge of just how much of that knowledge base is required to satisfy the search goals on a specific Web index. Seeking to attempt a balance between access to the knowledge base and the desirability of a nimble (read here small) migrant sub-agent, weÕve chosen to not transport any of the knowledge base with the sub-agent, but rather to leave this on the KR server and take advantage of the security limitations of Java (limiting a class to the ability to access only data off the server from which the class originated) to allow the migrant to Ôcall homeÕ for KR support.
(All project references listed here are available at http://ricis.cl.uh.edu/eichmann/publications.html)
This work has been supported by NASA Cooperative Agreements NCC-9-16 and NCC-9-30 (RICIS research activity RB02), the State of Texas, Texas Instruments, and LinCom, Inc.