Programming Agents with JADE for Multi-Agent Systems Overview

Programming Agents with JADE for
Multi-Agent Systems
Dr. abbas akram khorsheed 2020
Based on Jade, Java and Eclipse documentation
1
Content
Briefly about components
JADE overview
Setting up the Development Environment
Installing JADE
Installing Eclipse
Setting Eclipse to work with JADE
Book Trading example
 
2
Components, Java
Java technology is a portfolio of products that
are based on the power of networks and the
idea that the same software should run on
many different kinds of systems and devices.
The Java programming language lets you write
powerful, enterprise-worthy programs that
run in the browser, from the desktop, on a
server, or on a consumer device.
http://java.sun.com/
 
3
Components, Eclipse
Eclipse is an open source community whose projects are
focused on providing an extensible development
platform and application frameworks for building
software
Eclipse provides extensible tools and frameworks that
span the software development lifecycle, including
support for modeling, language development
environments for Java, C/C++ and others, testing and
performance, business intelligence, rich client
applications and embedded development
http://www.eclipse.org/
4
Components, JADE
JADE (Java Agent DEvelopment Framework) is
a software framework fully implemented in
Java language.
It simplifies the implementation of multi-
agent systems through a middle-ware that
claims to comply with the FIPA specifications
and through a set of tools that supports the
debugging and deployment phase.
http://jade.tilab.com/
5
JADE overview
JADE is a middleware that facilitates the development of
multi-agent systems. It includes
A 
runtime environment 
where JADE agents can “live”
and that must be active on a given host before one or
more agents can be executed on that host.
A 
library 
of classes that programmers have to/can use
(directly or by specializing them) to develop their agents.
A suite of 
graphical tools 
that allows administrating and
monitoring the activity of running agents.
6
Containers and Platforms
Each running instance of the JADE runtime
environment is called a 
Container 
as it can
contain several agents.
The set of active containers is called a
Platform
.
A single special 
Main container 
must always
be active in a platform and all other
containers register with it as soon as they
start.
7
AMS
The 
AMS 
(Agent Management System) that
provides
the naming service (i.e. ensures that each agent in
the platform has a unique name)
represents the authority in the platform (for
instance it is possible to create/kill agents on
remote containers by requesting that to the AMS).
8
DF
The 
DF 
(Directory Facilitator) that provides a
Yellow Pages service by means of which an
agent can find other agents providing the
services he requires in order to achieve his
goals.
9
Sample architecture
10
JADE Requirements
The only software requirement to execute the
system is the Java Run Time Environment
version 1.4
11
Getting JADE
All the software is distributed under the LGPL license
limitations and it can be downloaded from the JADE web
/. Five compressed files are available:site
http://jade.tilab.com
The source code of JADE
The source code of the examples
The documentation, including the javadoc of the JADE
API and this programmer's guide
The binary of JADE, i.e. the jar files with all the Java
classes
A full distribution with all the previous files
12
Installing JADE
13
 
Eclipse Requirements
You will need a Java runtime environment
(JRE) to use Eclipse.
14
Getting Eclipse
download the Eclipse SDK
http://www.eclipse.org/downloads/index.php
15
Installing Eclipse
16
Installing Eclipse
Running Eclipse
Run eclipse.exe
17
Running Eclipse. Workspace
Set arbitrary folder for the workspace
18
Running Eclipse. Close Welcome view
Close the welcome view
19
Running Eclipse
If you see this then you are ready
20
Creating a project in Eclipse
 
21
Creating a java project in Eclipse
22
Adding JADE libs to the project
23
Adding JADE libs to the project
24
Development Environment is ready
25
Testing Settings. Create TestAgent
26
Create TestAgent
27
TestAgent is created
28
Method setup() to run TestAgent
The setup() method is
intended to include agent
initializations.
29
Override method setup()
30
Result of overriding
31
Print Hello message
32
Create JADE configuration to run
33
Create JADE configuration to run
34
Create JADE configuration to run
35
Create JADE configuration to run
36
Create JADE configuration to run
37
Result of Test
38
Book Trading Example
It shows how to create simple JADE agents
and how to make them executing tasks and
communicate between each other.
Some agents selling books and other agents
buying books on behalf of their users.
39
Buyer Agent
Receives the title of the book to buy (the “target book”)
as a command line argument
Periodically requests all known seller agents to provide
an offer
As soon as an offer is received the buyer agent accepts it
and issues a purchase order
If more than one seller agent provides an offer the buyer
agent accepts the best one (lowest price)
Having bought the target book the buyer agent
terminates
40
Seller Agent
Has a minimal GUI by means of which the user can insert
new titles
Continuously wait for requests from buyer agents
When asked to provide an offer for a book they check if
the requested book is in their catalogue and in this case
reply with the price. Otherwise they refuse.
When they receive a purchase order they serve it and
remove the requested book from their catalogue
41
setup() method
The setup() method is intended to include agent initializations.
42
Agent identifiers
Each agent is identified by an “agent
identifier” represented as an instance of the
jade.core.AID class.
The getAID() method of the Agent class allows
retrieving the agent identifier.
An AID object includes a globally unique name
plus a number of addresses.
<nickname>@<platform-name>
43
Assigning name
The ISLString nickname = “Peter”;
AID id = new AID(nickname, AID.ISLOCALNAME);
OCALNAME constant indicates that the first
parameter represents the nickname (local to the
platform) and not the globally unique name of
the agent.
44
Running JADE
The first part of the above output is the JADE disclaimer
The indication that a container called “Main-Container” is ready completes the
JADE runtime startup.
When the JADE runtime is up our agent is started and prints its welcome message
The platform name “arman:1099/JADE” is automatically assigned on the basis of the
host and port we are running JADE on
45
Agent termination
Even if it does not have anything else to do
after printing the welcome message, our
agent is still running.
In order to make it terminate its doDelete()
method must be called.
The takeDown() method is invoked just before
an agent terminates and is intended to include
agent clean-up operations.
46
doDelete() and takeDown()
47
Passing arguments to an agent
Agents may get start-up arguments specified
on the command line.
These arguments can be retrieved, as an array
of Object, by means of the getArguments()
method of the Agent class.
We want our BookBuyerAgent to get the title
of the book to buy as a command line
argument.
48
Taking target book as argument
49
Passing book title
50
Trying to buy …
51
Slide Note

Department of Computer Science

Embed
Share

This overview delves into the setup of JADE framework for developing multi-agent systems. It covers essential components, setting up the development environment, installing JADE and Eclipse, and a book trading example. The content explores the power of Java technology, Eclipse as an extensible development platform, and the middleware JADE that simplifies multi-agent system implementation. Learn about JADE's runtime environment, its library of classes for agent development, and graphical tools for agent supervision. Dive into the realm of containers and platforms in multi-agent systems development.

  • JADE framework
  • Multi-agent systems
  • Java technology
  • Eclipse development platform
  • Agent development

Uploaded on Sep 29, 2024 | 1 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Programming Agents with JADE for Multi-Agent Systems Dr. abbas akram khorsheed 2020 Based on Jade, Java and Eclipse documentation 1

  2. Content Briefly about components JADE overview Setting up the Development Environment Installing JADE Installing Eclipse Setting Eclipse to work with JADE Book Trading example 2

  3. Components, Java http://java.sun.com/ Java technology is a portfolio of products that are based on the power of networks and the idea that the same software should run on many different kinds of systems and devices. The Java programming language lets you write powerful, enterprise-worthy programs that run in the browser, from the desktop, on a server, or on a consumer device. 3

  4. EclipseBannerPic Components, Eclipse http://www.eclipse.org/ Eclipse is an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software Eclipse provides extensible tools and frameworks that span the software development lifecycle, including support for modeling, language development environments for Java, C/C++ and others, testing and performance, business intelligence, rich client applications and embedded development 4

  5. Components, JADE http://jade.tilab.com/ JADE (Java Agent DEvelopment Framework) is a software framework fully implemented in Java language. It simplifies the implementation of multi- agent systems through a middle-ware that claims to comply with the FIPA specifications and through a set of tools that supports the debugging and deployment phase. 5

  6. JADE overview JADE is a middleware that facilitates the development of multi-agent systems. It includes A runtime environment where JADE agents can live and that must be active on a given host before one or more agents can be executed on that host. A library of classes that programmers have to/can use (directly or by specializing them) to develop their agents. A suite of graphical tools that allows administrating and monitoring the activity of running agents. 6

  7. Containers and Platforms Each running instance of the JADE runtime environment is called a Container as it can contain several agents. The set of active containers is called a Platform. A single special Main container must always be active in a platform and all other containers register with it as soon as they start. 7

  8. AMS The AMS (Agent Management System) that provides the naming service (i.e. ensures that each agent in the platform has a unique name) represents the authority in the platform (for instance it is possible to create/kill agents on remote containers by requesting that to the AMS). 8

  9. DF The DF (Directory Facilitator) that provides a Yellow Pages service by means of which an agent can find other agents providing the services he requires in order to achieve his goals. 9

  10. Sample architecture 10

  11. JADE Requirements The only software requirement to execute the system is the Java Run Time Environment version 1.4 11

  12. Getting JADE All the software is distributed under the LGPL license limitations and it can be downloaded from the JADE web /. Five compressed files are available:site http://jade.tilab.com The source code of JADE The source code of the examples The documentation, including the javadoc of the JADE API and this programmer's guide The binary of JADE, i.e. the jar files with all the Java classes A full distribution with all the previous files 12

  13. Installing JADE 13

  14. Eclipse Requirements You will need a Java runtime environment (JRE) to use Eclipse. 14

  15. Getting Eclipse download the Eclipse SDK http://www.eclipse.org/downloads/index.php 15

  16. Installing Eclipse Installing Eclipse 16

  17. Running Eclipse Run eclipse.exe 17

  18. Running Eclipse. Workspace Set arbitrary folder for the workspace 18

  19. Running Eclipse. Close Welcome view Close the welcome view 19

  20. Running Eclipse If you see this then you are ready 20

  21. Creating a project in Eclipse 21

  22. Creating a java project in Eclipse 22

  23. Adding JADE libs to the project 23

  24. Adding JADE libs to the project 24

  25. Development Environment is ready 25

  26. Testing Settings. Create TestAgent 26

  27. Create TestAgent 27

  28. TestAgent is created 28

  29. Method setup() to run TestAgent The setup() method is intended to include agent initializations. 29

  30. Override method setup() 30

  31. Result of overriding 31

  32. Print Hello message 32

  33. Create JADE configuration to run 33

  34. Create JADE configuration to run 34

  35. Create JADE configuration to run 35

  36. Create JADE configuration to run 36

  37. Create JADE configuration to run 37

  38. Result of Test 38

  39. Book Trading Example It shows how to create simple JADE agents and how to make them executing tasks and communicate between each other. Some agents selling books and other agents buying books on behalf of their users. 39

  40. Buyer Agent Receives the title of the book to buy (the target book ) as a command line argument Periodically requests all known seller agents to provide an offer As soon as an offer is received the buyer agent accepts it and issues a purchase order If more than one seller agent provides an offer the buyer agent accepts the best one (lowest price) Having bought the target book the buyer agent terminates 40

  41. Seller Agent Has a minimal GUI by means of which the user can insert new titles Continuously wait for requests from buyer agents When asked to provide an offer for a book they check if the requested book is in their catalogue and in this case reply with the price. Otherwise they refuse. When they receive a purchase order they serve it and remove the requested book from their catalogue 41

  42. setup() method The setup() method is intended to include agent initializations. 42

  43. Agent identifiers Each agent is identified by an agent identifier represented as an instance of the jade.core.AID class. The getAID() method of the Agent class allows retrieving the agent identifier. An AID object includes a globally unique name plus a number of addresses. <nickname>@<platform-name> 43

  44. Assigning name The ISLString nickname = Peter ; AID id = new AID(nickname, AID.ISLOCALNAME); OCALNAME constant indicates that the first parameter represents the nickname (local to the platform) and not the globally unique name of the agent. 44

  45. Running JADE The first part of the above output is the JADE disclaimer The indication that a container called Main-Container is ready completes the JADE runtime startup. When the JADE runtime is up our agent is started and prints its welcome message The platform name arman:1099/JADE is automatically assigned on the basis of the host and port we are running JADE on 45

  46. Agent termination Even if it does not have anything else to do after printing the welcome message, our agent is still running. In order to make it terminate its doDelete() method must be called. The takeDown() method is invoked just before an agent terminates and is intended to include agent clean-up operations. 46

  47. doDelete() and takeDown() 47

  48. Passing arguments to an agent Agents may get start-up arguments specified on the command line. These arguments can be retrieved, as an array of Object, by means of the getArguments() method of the Agent class. We want our BookBuyerAgent to get the title of the book to buy as a command line argument. 48

  49. Taking target book as argument 49

  50. Passing book title 50

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#