URLdescriptor strings are of the form:
casa:// [ user @ ] host [ : port ] [ / [ [ dir / ]* [ file ] ] [# key [ = value ] [ & key [ = value ] ]* ] ]
--directory-- -------------------data--------------------
--------path----------
where
- user is an alphanumeric local identifier for an
individual user.
- host is an IP address or host name.
- port is a numeric value.
- path specifies a domain-specific description of an
agent type.
- directory is the part of of the path. Usually, this
represents the type of the agent.
- dir is an alphanumeric string.
- file is an alphanumeric string that is part of a path.
Usually, this represents the name if the instance of the
agent.
- data specifies various data elements that might be
used by the agent.
- key is a key string (case sensitive) to retrieve the
associated value.
- value is an alphanumeric string.
There are two directly supported key/value pairs:
- lac=port is the port number of the agent's LAC.
Note that the host of the LAC and the agent itself must be identical.
- indirect=booean specifies whether messages need to
be sent through the agent's LAC (true means send through the LAC, false
means send directly). This is usually used when traversing a
firewall, where the LAC port is left open, but the other ports may be
blocked. If the IP address is local (the subnet is the same),
then this setting is ignored.
for example:
agent12@www.cpsc.ucalgary.ca:8000 describes an
agent called agent12 that is currently running and listening at port
8000
136.159.2.4/canada/alberta/calgary#lac=9000&indirect=true
describes an agent instance ("calgary") of type "canada/alberta" that
may or may not be running on an unknown port, but it can be started or
its port number obtained from the LAC running on port 9000 and communication to that agent
should be indirectly though it's LAC (the first item in the receiver
list should be the LAC [who's address is 136.159.2.4:9000]).
URL strings are of two types:
- resolved where the current port of the agent is known. In
this case, the path is usually ignored by the system.
- unresolved where the current port of the agent is not
known, but the url may become resolved if the the path and lac
("#lac=") are known. This resolution may be done by sending a resolve
request message to the LAC (which must have the same host as the
agent), asking it to resolve the URL. If the agent is running, the LAC
may simply return a resolved URL. If the agent is not currently
running, the LAC may activate and run the agent on some port, then
return the a resolved URL.
URLs are supported in the software by the class
URLDescriptor.
Copyright: Copyright (c) 2002, Knowledge Science Group, University
of Calgary.
Permission to use, copy, modify, distribute and sell this software and
its
documentation for any purpose is hereby granted without fee, provided
that
the above copyright notice appear in all copies and that both that
copyright
notice and this permission notice appear in supporting documentation.
The
Knowledge Science Group makes no representations about the suitability
of
this software for any purpose. It is provided "as is" without express
or
implied warranty.