JADE Framework

JAVA Agent DEvelopment Framework

JADE Framework

JADE JAR File Link

https://jade.tilab.com/download/jade/license/jade-download/?x=40&y=8

https://drive.google.com/file/d/1hoyhKt2UXkj9orj19eOK69ME8ZX42DC8/view?usp=sharing

Abbreviations

  1. JADE : Java Agent DEveleopment Frameworks

  2. MAS : Multi-Agent System

  3. MAP: Multi-Agent Platform

  4. CloneMAP: Cloud-Native Multi-Agent Plateform

  5. AMS: Agent Management System

  6. DF: Directory Facilitator

  7. FIPA: Foundation for Intelligent Physical Agents

  8. MTS : Message Transport System

  9. RTT : Round Trip Time

  10. avgRTT: Average Round Trip Time

  11. VM : Virtual Machine

  12. IoT : Internet of Things

  13. JVM : Java Virtual Machine

  14. REST: Representation State Transfer

  15. API : Application Programming Interface

  16. ACL|: Agent Communication Language

  17. AID : Agent Identifier

  18. AMS : Agent Management Service. According to the FIPA architecture, this is the agent that is responsible for managing the platform and providing the white-page service.

  19. AP : Agent Platform

  20. API : Application Programming Interface

  21. DF : Directory Facilitator. According to the FIPA architecture, this is the agent that provides the yellow-page service.

  22. EBNF : Extended Backus-Naur Form

  23. FIPA : Foundation for Intelligent Physical Agents

  24. GUI : Graphical User Interface

  25. GUID : Globally Unique Identifier

  26. HAP : Home Agent Platform

  27. HTML : Hyper Text Markup Language

  28. HTTP : Hypertext Transmission Protocol

  29. IDL : Interface Definition Language

  30. IIOP : Internet Inter-ORB Protocol

  31. INS : IOR Interoperable Object Reference

  32. JADE : Java Agent DEvelopment Framework

  33. JDK : Java Development Kit

  34. LGPL : Lesser GNU Public License

  35. MTP : Message Transport Protocol. According to the FIPA architecture, this component is responsible for handling communication with external platforms and agents.

  36. ORB : Object Request Broker

  37. POA : Portable Object Adapter

  38. RMA : Remote Monitoring Agent. In the JADE platform, this type of agent provides a graphical console to monitor and control the platform and, in particular, the life-cycle of its agents.

  39. RMI : Remote Method Invocation

  40. TCP : Transmission Control Protocol

  41. URI : Uniform Resource Identifier

  42. URL : Uniform Resource Locator

  43. XML : Extensible Markup Language


Book-For JADE Framework

https://www.mit.bme.hu/system/files/oktatas/targyak/8671/Developing-Multi-Agent-Systems-with-JADE.pdf

Material and Slides Related to JADE Framework:

https://uomustansiriyah.edu.iq/media/lectures/6/6_2018_03_28!11_28_55_PM.pdf

https://journals.sagepub.com/doi/pdf/10.1177/002029400503801001



JAVA IDE

  1. Apache Netbeans (Window, MAC-OS) : https://netbeans.apache.org/download/nb16/index.html

  2. Eclipse ( Window, MAC-OS) : https://www.eclipse.org/downloads/packages/

Agent Oriented Programming

Agent oriented programming is different from object oriented programming paradigms. In OOP, the application were based on some components called objects. Each objects has its own data and methods( behaviour) and object was completely controlled by the programmer. The programmer decides when an object is created, what the object can do and when an object will interact with other objects and son.

In Agent Oriented programming, has degree of autonomy. Agents can know when to do a given behaviour and how , when to interact with other agent without external interaction.

Agent

The term ‘agent’, or software agent, has found its way into a number of technologies and has been widely used, for example, in artificial intelligence, databases, operating systems and computer networks literature.

An agent is essentially a special software component that has autonomy that provides an interoperable interface to an arbitrary system and/or behaves like a human agent, working for some clients in pursuit of its own agenda. Even if an agent system can be based on a solitary agent working within an environment and if necessary interacting with its users, usually they consist of multiple agents. These multi-agent systems (MAS) can model complex systems and introduce the possibility of agents having common or conflicting goals. These agents may interact with each other both indirectly (by acting on the environment) or directly (via communication and negotiation). Agents may decide to cooperate for mutual benefit or may compete to serve their own interests.


  • Therefore, an agent is autonomous, because it operates without the direct intervention of humans or others and has control over its actions and internal state.

  • An agent is social, because it cooperates with humans or other agents in order to achieve its tasks.

  • An agent is reactive, because it perceives its environment and responds in a timely fashion to changes that occur in the environment.

  • An agent is proactive, because it does not simply act in response to its environment but is able to exhibit goal-directed behavior by taking initiative.


Moreover, if necessary, an agent can be mobile, with the ability to travel between different nodes in a computer network. It can be truthful, providing the certainty that it will not deliberately communicate false information. It can be benevolent, always trying to perform what is asked of it. It can be rational, always acting in order to achieve its goals and never to prevent its goals being achieved, and it can learn, adapting itself to fit its environment and to the desires of its users.


Figure : Depiction of the agent management ontology

Image source : https://www.mit.bme.hu/system/files/oktatas/targyak/8671/Developing-Multi-Agent-Systems-with-JADE.pdf

  • Agent Platform (AP): This provides the physical infrastructure in which agents are deployed. The AP consists of the machines, operating systems, FIPA agent management components (described below), the agents themselves and any additional support software.

  • Agent: An agent is a computational process that inhabits an AP and typically offers one or more computational services that can be published as a service description.

  • Directory Facilitator (DF): The DF is an optional component of an AP providing yellow pages services to other agents. It maintains an accurate, complete and timely list of agents and must provide the most current information about agents in its directory on a non-discriminatory basis to all authorized agents. An AP may support any number of DFs which may register with one another to form federations.

  • Agent Management System (AMS): The AMS is a mandatory component of an AP and is responsible for managing the operation of an AP, such as the creation and deletion of agents, and overseeing the migration of agents to and from the AP. Each agent must register with an AMS in order to obtain an AID which is then retained by the AMS as a directory of all agents present within the AP and their current state (e.g. active, suspended or waiting).

  • Message Transport Service (MTS): The MTS is a service provided by an AP to transport FIPAACL messages between agents on any given AP and between agents on different APs. Messages are providing a transport envelope that comprises the set of parameters detailing, for example, to whom the message is to be sent.

Multi-Agent System (MAS)

A multi-agent system is a system that consists of a number of agents working on behalf of the user that can interact and cooperate with each other to complete tasks as much as people do.

Agent Framework

  • JACK

  • Agent Factory

  • Agent Builder

  • JADE

  • IMPACT

  • ZEUS

One of the widely used is JADE.

JADE Experiment

These experiments are in Eclipse IDE with the below steps :

  1. Hello World

import jade.core.Agent;

public class HelloAgent extends Agent

{

protected void setup()

{

System.out.println("Hello World. ");

System.out.println("My name is "+ getLocalName());

}

}

  1. ParamAgent

import jade.core.Agent;


public class ParamAgent extends Agent

{

protected void setup()

{

Object[] args = getArguments();

String s;

if (args != null) {

for (int i = 0; i<args.length; i++) {

s = (String) args[i];

System.out.println("p" + i + ": " + s);

}

int i = Integer.parseInt( (String) args[0] );

s = (String) args[1];

System.out.println("i*i= " + i*i);

System.exit(1);

}

}

}

  1. Simple0

import jade.core.Agent;

import jade.core.behaviours.*;

public class Simple0 extends Agent

{

protected void setup()

{

addBehaviour( new B1( this ) );

}

class B1 extends SimpleBehaviour

{

public B1(Agent a) {

super(a);

}

public void action()

{

System.out.println( "Hello World! My name is " + myAgent.getLocalName() );

}

private boolean finished = false;

public boolean done() { return finished; }

} //End class B1

}

  1. Simple1

import jade.core.Agent;

import jade.core.behaviours.*;

public class Simple1 extends Agent

{

protected void setup()

{

addBehaviour(

// ------------- Anonymous SimpleBehaviour


new SimpleBehaviour( this ) {

int n=0;

public void action()

{

System.out.println( "Hello World! My name is " +

myAgent.getLocalName() );

n++;

}

public boolean done() { return n>=3; }

}

);

} // --- setup ---

} // --- class Simple1