JADE Java Agent Development Framework. MiASI2, TWO2,

Podobne dokumenty
JADE Java Agent Development Framework. MiASI2, TWO2,

Java Agent DEvelopment Framework Systemy Agentowe

Architektury usług internetowych. Laboratorium 5. JADE

Architektury Usług Internetowych. Laboratorium 3. Usługi w środowisku wielo-agentowym

Komunikacja w systemie wieloagentowym

Przetwarzanie Zespołowe

O-MaSE Organization-based Multiagent System Engineering. MiASI2, TWO2,

Architektury Usług Internetowych. Laboratorium 5

Java Agent DEvelopment Framework Systemy Agentowe

Informatyka Systemów Autonomicznych Praca zaliczeniowa

Application of the multi-agent systems in the context of the multi-commodity market model M 3

Dokumentacja techniczna

JADE - Java Agent DEvelopment Framework

Agentowe języki komunikacji (KIF, KQML, ACL)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

ARNOLD. EDUKACJA KULTURYSTY (POLSKA WERSJA JEZYKOWA) BY DOUGLAS KENT HALL

Dialogowe akty mowy w modelach sztucznej inteligencji

Design and Java implementation of the multi-agent platform for multi-commodity exchange

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Systemy wieloagentowe (MAS) struktura komunikacji między agentami. Autor: Zofia Kruczkiewicz

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Opis efektów kształcenia dla modułu zajęć

Java wybrane technologie

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Systemy wieloagentowe (MAS) zasady tworzenia systemów wieloagentowych za pomocą technologii MASE i JADEczęść.

Usługa RMA (Risk Management Access)

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

OSGi Agata Hejmej

EXSO-CORE - specyfikacja

POLITYKA PRYWATNOŚCI / PRIVACY POLICY

Budowa wiadomości SMTP. autorzy: Aleksandra Wichert Marcin Żurowski

TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB 05 ZOFIA KRUCZKIEWICZ PROJEKTOWANIE SYSTEMÓW WIELOAGENTOWYCH MULTIAGENT SYSTEM PROJECT

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Tychy, plan miasta: Skala 1: (Polish Edition)

Technologie Komponentowe. Piotr Łukasik p /

Pielgrzymka do Ojczyzny: Przemowienia i homilie Ojca Swietego Jana Pawla II (Jan Pawel II-- pierwszy Polak na Stolicy Piotrowej) (Polish Edition)

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Weronika Radziszewska IBS PAN

Programowanie telefonów z Windows Phone 7, cz. 4

Systemy wieloagentowe (MAS) zasady tworzenia systemów wieloagentowych za pomocą technologii MASE i JADEczęść.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Programowanie aplikacji na urządzenia mobilne

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Na podstawie Raportu korzystania można odpowiadać na wszelkie zapytania dotyczące wykorzystania tytułu lub listy tytułów.

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Lekcja 5. Funkcje handlemessage() i initialize(), konstruktor i destruktor

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Podręcznik użytkownika AgentOptimed24

Instrukcja IT Service & Help Desk Ticket System.

REACT NATIVE. Anna Maziejuk Kamil Jankowski

Czym jest technologia Bluetooth?

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Cele. Definiowanie wyzwalaczy

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

Zdalne wywoływanie procedur RPC

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Zdalne wywoływanie procedur RPC

Forum Client - Spring in Swing

Zarządzanie sieciami telekomunikacyjnymi

Systemy obiegu informacji i Protokół SWAP "CC"

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Kurs WWW. Paweł Rajba.

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

NEGOCJACJE W SYSTEMACH WIELOAGENTOWYCH Z ZASTOSOWANIEM STANDARDÓW FIPA

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Szczegółowy opis przedmiotu zamówienia

Task Parallel Library

Instrukcja uruchomienia i korzystania z mtoken Asseco MAA na urządzeniach mobilnych oraz powiązania z Asseco CBP

VersaSim. Instrukcja użytkownika

NDPHS Database. Instrukcje dla użytkowników. Wersja 1.0

Fundusze Europejskie dla rozwoju innowacyjnej gospodarki Dotacje na innowacje Inwestujemy w Waszą przyszłość Bydgoszcz, r.

Zdalne wywoływanie procedur RPC 27. października Dariusz Wawrzyniak (IIPP) 1

Współbieżność w środowisku Java

Współpraca z platformą Emp@tia. dokumentacja techniczna

Język BPEL. Bussiness Process Execution Language

mprofi.pl nowa generacja usług mobilnych AUTOMATYCZNY DIALER

UNIWERSALNA PLATFORMA WIELOAGENTOWA UMAP

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

1. INFORMACJE OGÓLNE

Fundusze Europejskie dla rozwoju innowacyjnej gospodarki Dotacje na innowacje Inwestujemy w Waszą przyszłość Bydgoszcz, r.

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą

Instrukcja korzystania z aplikacji mobilnej mtoken Asseco MAA klient korporacyjny

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Konspekt pracy inżynierskiej

I.Wojnicki, Tech.Inter.

Zadanie 2. Tworzenie i zarządzanie niestandardową konsolą MMC

Aplikacje RMI

Zaawansowane Aplikacje Internetowe

Ulotka informacyjna HelpDesk SoftwareStudio Sp. Z o.o. (Oparte na OTRS )

Office 365 Midsize Business

Architektura systemów webowych wysokiej przepustowości. na przykładzie Wikia

Microsoft SQL Server Podstawy T-SQL

Storware KODO. One KODO to protect them all STORWARE.EU

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Mac OSX

Protokół zarządzania siecią SNMP

Transkrypt:

JADE Java Agent Development Framework MiASI2, TWO2, 2014-2015

Materiały Strona projektu JADE http://jade.tilab.com/ (Telecom Italia, University of Parma, Motorola Labs) Dokumentacja Programming Tutorial Programmer s Guide Administrator s Guide Publikacje F.L. Bellifemine, G. Caire, D. Greenwood: Developing Multi-Agent Systems with JADE. Wiley, 2007. 2

JADE JADE środowisko typu middleware do budowy systemów wieloagentowych Elementy składowe Biblioteka klas (Java) do budowy systemów wieloagentowych (platformy stacjonarne i mobilne CDC, Android) Środowisko uruchomieniowe i komunikacyjne dla agentów Zestaw narzędzi (GUI) do zarządzania agentami i ich monitorowania Dostępny na licencji open source 3

Architektura JADE Główny kontener główny (pierwszy uruchomiony) kontener w platformie. Pozostałe normalne kontenery rejestrują się w kontenerze głównym Kontener działająca instancja środowiska uruchomieniowego JADE Komunikacja między agentami w różnych kontenerach i na różnych platformach java -cp <classpath> jade.boot gui java -cp <classpath> jade.boot -container -host avalon.tilab.com agents john:mypackage.myclass 4

Agenci AMS i DF Funkcjonują w głównym kontenerze i startują automatycznie wraz z kontenerem AMS (Agent Management System) Zarządza identyfikatorami/nazwami agentów zapewniając ich unikalność Pozwala na tworzenie i usuwanie agentów na wszystkich kontenerach w ramach platformy DF (Directory Facilitator) Zapewnia usługę Yellow Pages Ogłoszenia i ich wyszukiwanie 5

Przykład handel książkami The scenario considered in this example includes some agents selling books and other agents buying books on behalf of their users. Each buyer agent receives the title of the book to buy (the target book ) as a command line argument and 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. Each seller agent has a minimal GUI by means of which the user can insert new titles (and the associated price) in the local catalogue of books for sale. Seller agents 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. 6

Implementacja agenta Metoda uruchamiana gdy agent rozpoczyna działanie Metoda uruchamiana gdy agent kończy działanie. Wymuszenie zakończenia działania za pomocą metody dodelete() 7

Identyfikator agenta Każdy agent jest identyfikowany za pomoca unikalnego (globalnie) identyfikatora (jade.core.aid) Schemat identyfikatora: <nickname>@<platform> Tworzenie identyfikatora na podstawie lokalnej nazwy agenta ( doklejenie nazwy aktualnej platformy) String nickname = Peter ; AID id = new AID(nickname, AID.ISLOCALNAME); 8

Uruchamianie agentów java -cp <classpath> jade.boot -gui -agents t1:test.simpleagent1;t2:test.simpleagent1 Zamknięcie platformy przed ponownym uruchomieniem agentów! 9

Przekazywanie argumentów do agenta Dostęp do parametrów przekazanych z linii poleceń Bez spacji między parametrami! 10

Przekazywanie argumentów do agenta 11

Zachowania agenta Zachowanie (Behaviour) implementuje algorytm pozwalający na realizację pewnego zadania przez agenta Każda klasa implementująca zachowanie musi implementować dwie metody: action() właściwa akcja (algorytm) związany z zachowaniem done() informacja, czy akcja się zakończyła, czy też nie JADE udostępnia klasy implementujące bardziej złożone schematy zachowań (możliwa zmiana obowiązkowych metod) 12

Realizacja zachowań Jeden agent może realizować równolegle wiele zachowań Ale każdy agent posiada swój jeden wątek i wszystkie zachowania są realizowane w tym wątku Konieczna kooperacja między zachowaniami nieblokująca implementacja metody action() Zalety jednego wątku Brak synchronizacji przy dostępie do zasobów Możliwość uruchamiania agentów w lekkich środowiskach (CDC) Możliwość migracji agentów pomiędzy platformami (łatwy zapis stanu agenta) 13

Cykl życia zachowania 14

Przykłady zachowań OneShotBehaviour zachowanie, które wykona się tylko raz CyclicBehaviour zachowanie, które będzie wykonać się cyklicznie (bez końca) 15

Przykłady zachowań WakerBehaviour zachowanie, które wykona się tylko raz po określonym (w ms) czasie TickerBehaviour zachowanie, które będzie wykonywać się cyklicznie w określonych (w ms) odstępach czasu 16

Przykłady zachowań Zachowania generyczne (np. wielostanowe) Inne zachowania SequentialBehaviour ParallelBehaviour FSMBehaviour 17

Zachowanie kupującego Próba zakupienia książki (RequestPerformer) co 60 sekund 18

Zachowanie sprzedającego Cykliczne odpowiedzi na zapytania o dostępność książki (OfferRequestServer) Cykliczne odpowiedzi na żądania zakupu książki (PurchaseOrderServer) 19

Komunikacja między agentami Asynchroniczna wymiana komunikatów między agentami Każdy agent ma swoją skrzynkę pocztową i jest informowany, kiedy pojawią się w niej nowe wiadomości Agent sam decyduje kiedy pobrać i przetworzyć wiadomość 20

Elementy wiadomości sender nadawca wiadomości receivers odbiory wiadomości performative klasa wiadomości (REQUEST, INFORM, CFP, ACCEPT_PROPOSAL, REJECT_PROPOSAL, ) content treść wiadomości (uzupełnienie pola performative) lanaguage, ontology język i ontologia użyte do sformułowania treści wiadomości (opcjonalnie) conversation-id, reply-with, in-reply-to pola służące do zarządzania konwersacjami 21

Konwersacja między kupującym a sprzedającym Kupujący Sprzedający CFP zapytanie o dostępność książki PROPOSE cena sprzedawanej książki REFUSE brak książki w ofercie ACCEPT_PROPOSAL akceptacja ceny i zakup książki REJECT_PROPOSAL odrzucenie oferty sprzedaży INFORM potwierdzenie transakcji FAILURE odrzucenie transakcji 22

Odbieranie wiadomości Metoda receive() zwraca pierwszą dostępną wiadomość lub null, jeśli kolejka jest pusta W przypadku pustej kolejki niepotrzebne obciążenie procesora (ciągłe wywoływanie metody receive()) Zablokowanie zachowania (metoda block()) w sytuacji, gdy kolejka wiadomości jest pusta. Zablokowane zachowania nie są wykonywane, pojawienie się nowej wiadomości w kolejce powoduje ich odblokowanie 23

Odpowiadanie na wiadomości Problem w przypadku dwóch działających równolegle zachowań (OfferRequestServer i PurchaseOrderServer), które mogą sobie podbierać komunikaty 24

Szablony wiadomości Możliwość definiowania szablonów (MessageTemplate) określających, które filtrują wiadomości z kolejki Szablon podawany jako parametr metody receive() 25

Złożone konwersacje 26

Złożone konwersacje 27

Yellow Pages / Agent DF Mechanizm Yellow Pages pozwala agentom na ogłaszanie udostępnianych usług oraz na przeszukiwanie tych ogłoszeń Klasa DFService od obsługi Yellow Pages 28

Rejestracja i wyrejestrowanie usługi 29

Wyszukiwanie usług Możliwość otrzymywania powiadomień od agenta DF o nowych usługach (push zamiast pull) 30

Protokoły FIPA Możliwość wykorzystania klas realizujących podstawowe protokoły wprowadzone przez FIPA Contract-Net Propose Subscribe Obsługa wybranych zdarzeń w ramach protokołu bez konieczności obsługi całego procesu Pary zachowań Initiator i Responder 31

FIPA Contract Net: Initiator 32

FIPA Contract Net: Responder 33

Zadanie na dziś Proszę tak zmodyfikować przykładowy program, aby agent kupujący (BookBuyerAgent) pozwalał na zakup wielu książek i kończył działanie po zakupie ich wszystkich 34