Previous: KQML and Intelligent Information Integration
Up: KQML and Intelligent Information Integration
Next: Facilitators and Mediators
There are a variety of interprocess information exchange protocols.
In the simplest, one agent acts as a client and sends a query to
another agent acting as a server and then waits for a reply, as is
shown between agents A and B in Figure . The
server's reply might consist of a single answer or a collection or set
of answers. In another common case, shown between agents A and C, the
server's reply is not the complete answer but a handle which allows
the client to ask for the components of the reply, one at a time. A
common example of this exchange occurs when a client queries a
relational database or a reasoner which produces a sequence of
instantiations in response. Although this exchange requires that the
server maintain some internal state, the individual transactions are
as before -- involving a synchronous communication between the
agents. A somewhat different case occurs when the client subscribes
to a server's output and an indefinite number of asynchronous
replies arrive at irregular intervals, as between agents A and D in
Figure
. The client does not know when each reply
message will be arriving and may be busy performing some other task
when they do.
There are other variations of these protocols. Messages might not be addressed to specific hosts, but broadcast to a number of them. The replies, arriving synchronously or asynchronously have to be collated and, optionally, associated with the query that they are replying to.
finin@cmsc