Simple Negotiations in SEMPER
Document #: None yet
Authors: N. Asokan (ZRL)
Editor: N. Asokan (ZRL)
Reviewer: CRM
Status: Draft Version. 1, SEMPER internal
Date: June 3, 1996
Introduction
For the time being, SEMPER suports a simple, straight-forward negotiation
mechanism. There is no separate documentation as yet. But you can look
at the sample programs in the test directory to see
how the cover functions (which negotiate the value for a single parameter)
are used. The
MessageListHead
structure does allow one to
construct negotiation protocols involving multiple parameters.
What has been done
- defined the structure of a negotiation message: in the form of
class
MessageListHead
.
- A negotiation message is a list of MessageListHead objects. Each
such object has the following fields:
Name of parameter,
Class name for objects representing possible values of this parameter,
Flag for negotiation
A list of potential values for the parameter
- The flag is one of:
SELECT_SUBSET
- recipient should select a subset from the value list
SELECT_ONE
- recipient should select at most one value from the list
PROPOSE
- recipient should propose a list of values
REPLY
- this is a reply to an earlier message
ERROR
- an error occured in the protocol
- The list is a list of objects of the class indicated
- Added "short-cut" methods for a couple of "common" types of negotiations
- Initiator asks the responder if a particular value is acceptable
- Initiator asks the responder to pick a subset of the proposed values
What needs to be done:
- Rigorous type checking for lists (they are all Vectors; therefore,
the protocol should check to see that the elements really are objects
of the specified class)
- Additional short-cut methods maybe
- Anything else
Miscellany
The negotiation tools are part of the
semper.util.msgtools
package.
The documentation includes an index
and a
tree depicting the class structure.