RFC 2016 (rfc2016) - Page 3 of 21
Uniform Resource Agents (URAs)
Alternative Format: Original Text Document
RFC 2016 Uniform Resource Agents October 1996
Examples
As a very simple example, consider the client task of subscribing to
a mailing list. There are many mechanisms for providing users with
information necessary to complete a subscription. Currently, all
applications which provide the ability to subscribe to mailing lists
must contain protocol-aware code to carry out the task once the
requisite personal data has been solicited from the user.
Furthermore, any application program that embeds the ability to
subscribe in its code necessarily limits the set of mailing lists to
which a client can subscribe (i.e, to those types foreseen by the
software's creators). If, instead, there is an agent to which this
task can be delegated, all applications can make use of the agent,
and that agent becomes responsible for carrying out the necessary
interactions to complete the subscription. Furthermore, that agent
may be a client to other agents which can supply particular
information about how to subscribe to new types of mail servers, etc.
URAs have been explored as an agent technology to address just these
types of issues.
Relationship to Other Internet Agents
A number of Internet-aware agent and transportable code systems have
become popular -- Java [JAVA], TCL [TCL] and Safe-TCL, Telescript
[TELE], and the TACOMA system [TACOMA], to name a few of them. To
understand the scope of the problem that URAs tackle, it is helpful
to understand how these systems differ from the URA approach. Some
of these agent systems, like Java, focus on providing mechanisms for
creating and distributing (inter)active documents in the World Wide
Web. Others, like TACOMA, have more general intentions of providing
environments for mobile, interacting processes.
While each of these systems makes its individual contribution to
solving the transportation, communication, and security issues
normally associated with agent systems, they yield more objects that
exist within the Internet information space. That is, while they may
permit individual users to have a more sophisticated interaction with
a particular information resource, they do not address the more
general Internet problems of naming, identifying, locating resources,
and locating the same or similar resources again at a later date. It
is this set of problems that URAs specifically set out to address.
In order to create these URA objects that encapsulate a set of
Internet activities, it is necessary to specify their operating
environment and design structure. Together, these form an
experimental architecture for URAs, which can be evaluated in a
preliminary way through a prototype implementation. The remainder of
this paper describes such an experimental architecture, and outlines
Daigle, et. al. Experimental