Package com.tnsai.protocols.fipa
Interface ConversationProtocol
- All Known Implementing Classes:
ContractNetProtocol,ProposeProtocol,QueryProtocol,RequestProtocol
public interface ConversationProtocol
FIPA Conversation Protocol interface.
Defines the structure and rules for multi-message interactions between agents. Protocols specify valid message sequences and state transitions.
Standard FIPA Protocols
- fipa-request - Request/response pattern
- fipa-query - Information query pattern
- fipa-contract-net - Task delegation via bidding
- fipa-propose - Negotiation pattern
- fipa-subscribe - Publish/subscribe pattern
Usage Example
ConversationProtocol protocol = ConversationProtocol.request();
// Start conversation
FIPAMessage request = protocol.createInitialMessage(
"agent-1", "agent-2", "Please analyze data"
);
// Handle response
if (protocol.isValidResponse(request, response)) {
protocol.processResponse(response);
}
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enumProtocol execution states. -
Method Summary
Modifier and TypeMethodDescriptionstatic ConversationProtocolCreates a FIPA-ContractNet protocol instance.createInitialMessage(String sender, String receiver, String content) Creates the initial message for this protocol.createResponse(FIPAMessage original, FIPAPerformative performative, String content) Creates a response to a message.Gets the protocol description.Gets valid initiating performatives for this protocol.Gets message history for this conversation.getName()Gets the protocol name.Gets the final result if available.getState()Gets the current protocol state.getValidationErrors(FIPAMessage message) Gets validation errors for a message.getValidResponses(FIPAPerformative initiator) Gets valid response performatives for a given initiator.booleanChecks if protocol is complete.booleanChecks if protocol succeeded.booleanisValidMessage(FIPAMessage message) Validates if a message is valid for this protocol.booleanisValidResponse(FIPAMessage request, FIPAMessage response) Validates if a response is valid for a given request.voidprocessMessage(FIPAMessage message) Processes an incoming message and updates state.static ConversationProtocolpropose()Creates a FIPA-Propose protocol instance.static ConversationProtocolquery()Creates a FIPA-Query protocol instance.static ConversationProtocolrequest()Creates a FIPA-Request protocol instance.voidreset()Resets the protocol for reuse.
-
Method Details
-
getName
String getName()Gets the protocol name.- Returns:
- protocol identifier (e.g., "fipa-request")
-
getDescription
String getDescription()Gets the protocol description.- Returns:
- human-readable description
-
getInitiatingPerformatives
Set<FIPAPerformative> getInitiatingPerformatives()Gets valid initiating performatives for this protocol.- Returns:
- set of valid initial performatives
-
getValidResponses
Gets valid response performatives for a given initiator.- Parameters:
initiator- the initiating performative- Returns:
- set of valid response performatives
-
getState
ConversationProtocol.ProtocolState getState()Gets the current protocol state.- Returns:
- current state
-
getMessageHistory
List<FIPAMessage> getMessageHistory()Gets message history for this conversation.- Returns:
- ordered list of messages
-
createInitialMessage
Creates the initial message for this protocol.- Parameters:
sender- sender agent IDreceiver- receiver agent IDcontent- message content- Returns:
- initial message
-
createResponse
Creates a response to a message.- Parameters:
original- original message to respond toperformative- response performativecontent- response content- Returns:
- response message
-
isValidMessage
Validates if a message is valid for this protocol.- Parameters:
message- message to validate- Returns:
- true if valid
-
isValidResponse
Validates if a response is valid for a given request.- Parameters:
request- original requestresponse- response to validate- Returns:
- true if valid response
-
getValidationErrors
Gets validation errors for a message.- Parameters:
message- message to check- Returns:
- list of validation errors (empty if valid)
-
processMessage
Processes an incoming message and updates state.- Parameters:
message- message to process
-
isComplete
boolean isComplete()Checks if protocol is complete.- Returns:
- true if conversation is finished
-
isSuccessful
boolean isSuccessful()Checks if protocol succeeded.- Returns:
- true if completed successfully
-
getResult
Gets the final result if available.- Returns:
- optional result
-
reset
void reset()Resets the protocol for reuse. -
request
Creates a FIPA-Request protocol instance.- Returns:
- request protocol
-
query
Creates a FIPA-Query protocol instance.- Returns:
- query protocol
-
propose
Creates a FIPA-Propose protocol instance.- Returns:
- propose protocol
-
contractNet
Creates a FIPA-ContractNet protocol instance.- Returns:
- contract net protocol
-