We are developing an automatic testing tool and
include fipa-os as an case study. In our testing of
the package fipaos.agent.conversation.standard.
protocol, we found that the FIPA Iterated Contract Net
Iteration Protocol has not been implemented correctly
in 'FIPAIteratedContractNet.java'.
In this implementation, before issuing a revised 'cfp'
to a participant, the initiator should firstly reject
the former bid of it. In other word, if the initiator
want to send a new message of cfp, it should send a
message of reject first. But in the formal
specification of FIPA, if the initiator decides to
iterate the process, it should issue a revised cfp to
the participant directly. In our opinion, the
implementation in fipa-os is not really an Iterated
Contract Net Protocol but a series of Contract Net
Protocol.
We think the line 61~63 can be modified as follow:
private static Object[] __after_propose =
{ FIPACONSTANTS.ACCEPT_PROPOSAL, new Integer
( AGENT_ACTION_REQ ), new Integer( 0 ), __after_accept,
FIPACONSTANTS.CFP, new Integer( AGENT_ACTION_REQ
), new Integer( 0 ), _after_cfp };
We are waiting for your feedback, thanks!
Alan Treadway
Conversation Manager
None
Public