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