Advanced AI 2 - Project

 Note: this project includes code design and development. As such, is must follow appropriate quality measures, and these will affect the grade. For example, the code should be internally and externally documented. The submitted project should not assume any specific environment, and should provide necessary environment modules (including, e.g., all Jar files you use) for it to run. It should also have clear and detailed instructions on how to run and use it.

Submission: electronically (via email). A demo meeting is also possible by appointment. Note that this is a single project, however it is staged for your convenience. There is no need to submit stages separately.

Stage 1

Visit the following FIPA and JADE sites:

1. http://www.fipa.org/

2. http://jade.tilab.com/

Learn what FIPA and JADE are, download JADE, and create and run a simple agent

Stage 2

Based on stage 1, design and write the following:

1. A module that can send and receive FIPA-ACL messages, and extract/insert the content (almost no effort, as Jade does it for you).

2. A user interface that allows the user to insert such content and to view received content (again, simple).

3. Create an agent that uses the module (yet again Jade).

Stage 3

Based on stage 2,

Alternative 1 - resource monitor agent

Implement an agent that represents a computer system and monitors computer resources. It should, at least be able to monitor, upon request, 4 major parameters: CPU usage, memory usage, disk usage and network usage. This agent should have the following behaviors:

  1. Receive from a consumer agent a FIPA-ACL request for information regarding its monitored resources (CPU, memory, network and disk usage, availability and price).
  2. Monitor the local computer system for such information (price is not part of it, of course, and you need to set a pricing policy by yourself).
  3. Issue a FIPA-ACL price proposal for such resources.
  4. Accept/reject (via a FIPA-ACL message) a bid for resources provided by others.
  5. Issue a counter proposal (develop a policy for this).

Alternative 2 - resource analyzer agent

Implement an agent that represents a user or an application that are in need of computer resources such as CPU usage, memory usage, disk usage and network usage. This agent should have the following behaviors:

  1. Receive from the user a textual description of CPU, memory, network and disk usage requirements, and maximal total price to be paid for these.
  2. Issue a FIPA-ACL request for information regarding such resources and their pricing (include in the request for information a request for price (or issue such a request separately)).
  3. Find out whether the user's requirements can be met given the received information.
  4. Propose (via a FIPA-ACL message) a bid for resources provided by others (develop a bid policy for this).
  5. Accept/reject a proposal.

Stage 4

Group with a team that have implemented the type of agent that you have not. In this stage you are required to re-use and run the two agents and let them exchange messages as follows:

The analyzer agent should receive from the user a request to check the status of resource utilization and prices. The analyzer agent issues a request for these resources to a monitor agent and receives results. It analyzes the results and checks whether these can meet the user's requirements. If the answer is not for lack of resources, the agent informs he user. If the answer is not for price, the agent bids for new prices that meet the users requirements.

The monitor agent, upon receiving a bid, checks whether it can accept it (based on local policy computation). If acceptable - it sends an accept message. If not, it computes an acceptable price and sends a counter proposal. If counter proposal is not accepted (make sure that the analyzer agent checks and answers) - the monitor agent does some more computation, if possible makes another offer, and if not terminates the negotiation (informing the other party, of course).

The above behaviors can be extended as you find fit. Good extensions will have a positive effect on the final grade.