This is a sample application that uses JADE for message exchange and
for the implementation of the interaction protocols.
It implements a meeting scheduler agent that helps a user in scheduling meetings with other users.
This sample application is based on the one that was successfully used at the FIPA Interoperability Tests in Seoul on January 1999.
It allows to try and check:
- the registration of an agent with the default DF (Directory Facilitator) of the platform;
- the registration of an agent with a remote DF belonging to another platform or, different from the default DF;
- the search within the known DFs for a list of agents and their properties, in particular the list of MeetingScheduler agents and the name of the user that they represent;
- the usage of the FipaContractNet protocol, both the initiator and responder role.
The source code was written a bit in an hurry, but some files may help you with some examples:
- demo/MeetingScheduler/myFipaContractNetInitiatorBehaviour.java extends the JADE class jade.proto.FipaContractNetInitiatorBehaviour with some application-specific code;
- demo/MeetingScheduler/myFipaContractNetResponderBehaviour.java extends the JADE class jade.proto.FipaContractNetResponder Behaviour with some application-specific code.
When the two agents start, two login windows appears. Put different user names (the password is not used, currently), e.g. "Tizio" and "Caio".
Then, use the calendar window of Tizio to fix a couple of appointments in different dates (notice that only the day is used and not the month) with different descriptions. Let's say, for instance, that Tizio has fixed two appointments for the 1st and the 2nd.
Switch then to the calendar window of Caio. From the directory menu, execute the item "Update known persons with the facilitator" such that Caio comes to know about Tizio existance. Use the calendar window of Caio to fix an appointment with Tizio between 1st and 4th. The ContractNet protocol should be then executed and both agents should converge to the date 3rd.
Notice that a java.lang.IllegalArgumentException might be thrawn at java.util.Date.parse if the Regional Settings of your computer is not set to English (see bug reported on the mailing list)