JADE Java Agent DEvelopment Framework

Transkrypt

JADE Java Agent DEvelopment Framework
JADE
Java Agent DEvelopment Framework
Przetwarzanie zespołowe i techniki negocjacji - seminarium
Tomasz Boiński
Adrian Weber
Michał Wójcik
Politechnika Gdańska
Wydział Elektroniki, Telekomunikacji i Informatyki
23 marca 2010
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
1 / 24
Konspekt
1
Co i po co?
2
Standard FIPA
3
Instalacja i uruchomienie
4
Alternatywy
5
Gdzie?
6
WADE
7
Podsumowanie
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
2 / 24
Co to?
JADE - Java Agent DEvelopent Framerowk
platforma dla aplikacji opartych na agentach p2p
aktualna wersja: 3.6.1 od 2008-11-04
licencja: LGPL (Lesser General Public License Version 2)
rozwijany przez: Telecom Italia Lab
strona domowa: http://jade.tilab.com
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
3 / 24
Po co agenty?
Kilka zastosowań agentów:
integracja usług internetowych,
negocjacje,
inteligencja roju,
symulacje na poziomie cząsteczkowym:
cząsteczki gazu,
symulacje ekonomiczne:
dystrybucja bogactwa w społeczeństwie,
gracze giełdowi,
zadania optymalizacyjne:
labirynt.
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
4 / 24
Standard FIPA
FIPA (http://www.fipa.org/) - Foundation for Intelligent Physical
Agents.
Standard obejmuje:
komunikacja,
migracja,
zarządzanie,
architektura.
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
5 / 24
Wymagania
Wymagania JADE:
Java 1.4,
J2ME-CDLC MIDP 1.0,
środowisko graficzne (GUI),
sieć,
domena.
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
6 / 24
Instalacja
http://jade.tilab.com/download.php
rejestracja użytkowników
jadeBin.zip i JadeLeap2se.zip
export $CLASSPATH
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
7 / 24
Kontenery
AgentPlatform
Container-1
Main-Container
a2
a5
RMA
ams
Container-2
df
a4
a1
a3
a6
Rysunek: Kontenery w JADE.
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
8 / 24
Typy agentów
Typy agentów w JADE:
RMA (Remote Agent Managment GUI),
ams (Agent Managment System) - centralna jednostka zarządzająca,
tworzy i zabija agenty, wyłącza kontenery i platformę,
df (Directory Facilitator) - katalog usług,
Agent,
GatewayAgent - klasa udająca agenta,
Sniffer - podsłuchiwanie agentów,
DummyAgent,
LogManagerAgent,
InspectorAgent - debugowanie.
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
9 / 24
Uruchomienie
java jade.Boot [options]
-container - instancja będzie kontenerem,
-host - nazwa hosta gdzie został uruchomiony główny kontener
-port - port hosta z głównym kontenerem (1099)
-gui - uruchamia RMA
-name - nazwa platformy
-container-name - nazwa kontenera
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
10 / 24
Zarządzanie agentami
Rysunek: Zarządzanie agentami.
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
11 / 24
Śledzenie agentów
Rysunek: Podsłuchiwanie agenta.
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
12 / 24
Połączenie szyfrowane
AgentPlatform
Container-1
Main-Container
keystore1
keystore0
Container-2
keystore2
Rysunek: Kontenery JADE - SSL
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
13 / 24
Połączenie szyfrowane
keytool -genkey -alias jade-main -keyalg RSA -dname ”CN=jade, OU=unit, O=org, L=city, ST=state, C=PL” -keystore keystore0 -keypass mysecretpassword -storepass mysecretpassword
java -Djavax.net.ssl.keyStore=keystore0 -Djavax.net.ssl.keystorePassword=mysecretpassword jade.Boot -gui -nomtp -icps jade.imtp.leap.JICP.JICPSPeer(5500)
java -Djavax.net.ssl.keyStore=keystore1 -Djavax.net.ssl.keystorePassword=mysecretpassword
jade.Boot -container -port 5500 -nomtp -icps jade.imtp.leap.JICP.JICPSPeer
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
14 / 24
Uwierzytelnianie
AgentPlatform
Container-1
Main-Container
keystore1
keystore0
TrustStore1
Container-2
keystore2
TrustStore0
TrustStore2
Rysunek: Kontenery JADE - autoryzacja
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
15 / 24
Uwierzytelnianie
keytool -export -keystore keystore -storepass mysecretpassword -alias jade-main -rfc -file cer.cer
keytool -import -keystore keystore -storepass mysecretpassword -alias jade-main -file cer.cer -noprompt
java -Djavax.net.ssl.keyStore=keystore0 -Djavax.net.ssl.trustStore=truststore0 -Djavax.net.ssl.keystorePassword=mysecretpassword jade.Boot -gui -nomtp -icps jade.imtp.leap.JICP.JICPSPeer(5500)
java -Djavax.net.ssl.keyStore=keystore1 -Djavax.net.ssl.trustStore=truststore1 -Djavax.net.ssl.keystorePassword=mysecretpassword jade.Boot -container -port 5500 -nomtp -icps jade.imtp.leap.JICP.JICPSPeer
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
16 / 24
Gateway
Problem:
agenty komunikują się tylko w środowisku agentowym,
potrzeba komunikacji z zewnątrz.
Uruchomienie:
Properties.setProperty(String property, String value); // parametry
uruchomienia kontenera
System.setProperty(String property, String value); // szyfrowanie i
autoryzacja
JadeGateway.init(String gatewayAgentClass, Properties
initProperties);
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
17 / 24
JADE vs reszta
Model
Elements
Proxies
Dynamic proxies
Synchronous communications
Asynchronous communications
Messages
Remote calls
Callbacks after movements
Call/messages
by
name
Movements by name
Available for download
GUI Tools
Level of activity
Security Mechanism
Some other features
Aglets
Events
Contexts,
Tahiti
yes
no
yes (deadlock)
yes
yes
yes
JADE
Behaviors
Containers,
main
container, platforms,
Agents
no
no
no
yes
yes
yes
yes
yes
no
no
no
yes
yes
yes (fipa)
no
no
yes
yes
yes
no
no
yes (AID)
yes
no
IBM Public License
no
Not free
yes (via AMS)
LGPL
yes (dynamically)
yes (binaries)
Some
Very Low
Basic
ATP Itinerary
no
High
yes
Multicast,
Publish/subscribe,
Dynamic aggregation
yes
Very High
yes (JAAS)
FIPA, Jess, JADEX,
Ontology support
no
High
Basic
no licelock, schedule,
reliable, efficient
Boiński, Weber, Wójcik (PG, ETI)
Agents,
Voyager
Procedural
Servers, Agents
JADE
Springs
Procedural
Places,
agents
regions,
yes
yes
yes
23 marca 2010
18 / 24
Wykorzystanie JADE
Ochrona zdrowia - system wspomagający podejmowanie decyzji
rozdzielania organów do przeszczepów (Organ Transplant
Management by Swisstransplant)
Systemy geoinformatyczne - system integrujący dane geograficzne
(mapy, szlaki, GPS) z serwisami tematycznymi (położenie restauracji,
hoteli, zabytków itp), dostosowujący się do zainteresowań
użytkownika, samouczący. (Intelligent Mobility Agent for Complex
Geographic Environments)
Wyszukiwarki internetowe - wyszukiwarka semantyczna,
umożliwiająca wyszukiwanie multi-mediów, multi-serwisów, danych
usystematyzowanych (Ontology Navigator)
Systemy wspomagające podejmowanie decyzji prawnych (Acklin B.V)
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
19 / 24
JADE w BeesyCluster
n3
n4
n1
BC
n2
Rysunek: Wołanie usług w BeesyCluster obecnie.
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
20 / 24
JADE w BeesyCluster
n3
n4
n1
JADE
n2
BC
Rysunek: Wołanie usług w BeesyCluster za pomocą JADE.
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
21 / 24
WADE - co to?
Workflows and Agents Development Environment
wspomaga administrowanie środowiskiem agentowym poprzez:
konfigurację apikacji
aktywację/deaktywację kontenerów i agentów
monitorowanie dziłania pracy systemów (definiowanie reakcji na
krytyczne zdarzenia)
Tworzenie nowej logiki systemu, bez konieczności restaru
wspiera ”notepad-programming”
WOLF - edytor graficzny (plugin dla Eclipsa)
Możliwe tworzenie nowych workflow, na bazie już istniejących, porzez
zdefiniowanie róznic między nimi
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
22 / 24
WADE
Komponenty:
Boot Daemon - odpowiada za aktywację kontenerów na hostach
Configuration Agent - uruchamiany w Main Container,
odpowiedzialny za interakcje kontenera z boot deamonem, kontoluje
cykl życia apliakcji
Controller Agents (jeden dla każdego kontenera) nadzoruje zdarzenia
wykonywane na kontenerze
Workflow Engine Agents - agent wykonujący zadanie zdefiniowane
jako workflows
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
23 / 24
Źródła
Dokumentacja:
http://jade.tilab.com
http://jade.tilab.com/wade
Ciekawe strony:
http://www.swarm.org/wiki
Boiński, Weber, Wójcik (PG, ETI)
JADE
23 marca 2010
24 / 24

Podobne dokumenty