JADE Java Agent Development Framework. MiASI2, TWO2, 2012-2013

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

Architektury Usług Internetowych. Laboratorium 5

Java Agent DEvelopment Framework Systemy Agentowe

Przetwarzanie Zespołowe

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

Dokumentacja techniczna

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

JADE - Java Agent DEvelopment Framework

Informatyka Systemów Autonomicznych Praca zaliczeniowa

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

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

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

OSGi Agata Hejmej

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

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

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Java wybrane technologie

Dialogowe akty mowy w modelach sztucznej inteligencji

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

EXSO-CORE - specyfikacja

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

POLITYKA PRYWATNOŚCI / PRIVACY POLICY

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

Usługa RMA (Risk Management Access)

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

Wykład Ćwiczenia Laboratorium Projekt Seminarium

1. INFORMACJE OGÓLNE

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

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

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

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

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

Podręcznik użytkownika AgentOptimed24

REACT NATIVE. Anna Maziejuk Kamil Jankowski

Instrukcja IT Service & Help Desk Ticket System.

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

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

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

Kurs WWW. Paweł Rajba.

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

Zarządzanie sieciami telekomunikacyjnymi

Technologie Komponentowe. Piotr Łukasik p /

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

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

Programowanie aplikacji na urządzenia mobilne

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

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

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

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

Task Parallel Library

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

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

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

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

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

mprofi.pl nowa generacja usług mobilnych AUTOMATYCZNY DIALER

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Czym jest technologia Bluetooth?

Instrukcja korzystania z aplikacji mobilnej mtoken Asseco MAA klient korporacyjny

Język BPEL. Bussiness Process Execution Language

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

I.Wojnicki, Tech.Inter.

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

Aplikacje RMI

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

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

Microsoft SQL Server Podstawy T-SQL

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

Forum Client - Spring in Swing

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

Systemy obiegu informacji i Protokół SWAP "CC"

Dysk 20GB przestrzeni Ajax Ajax 1.0 Baza danych MS SQL 2005 lub 2008 Express Java Java 6 run time Microsoft Silverlight 3.

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

Systemy Rozproszone Technologia ICE

MVVM Light Toolkit. Julita Borkowska

Szczegółowy opis przedmiotu zamówienia

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Szkolenie. IBM Lotus - Podstawy projektowania aplikacji w Domino Designer 8.5. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Stargard Szczecinski i okolice (Polish Edition)

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

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

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

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

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

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

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Sieci Komputerowe 2 / Ćwiczenia 2

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

1. Właścicielem sklepu jest firma Damned Pages Distro & Promotion Paweł Dariusz Oramus z siedzibą we Wrocławiu, Polska.

Transkrypt:

JADE Java Agent Development Framework MiASI2, TWO2, 2012-2013

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 (platrformy 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 nazwy lokalnej 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ń 12

Realizacja zachowań Jeden agent może realizować równolegle wiele zachowań (konieczna synchronizacja i kooperacja) Każdy agent posiada swój własny wątek i wszystkie zachowania są realizowane w tym wątku Nieblokująca implementacja metody action() Zalety jednego wątku Możliwość uruchamiania agentów w środowiskach mobilnych (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 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ść widamoś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 REJECT brak książki w ofercie ACCEPT_PROPOSAL akceptacja ceny i zakup książki REJECT_PROPOSAL odrzucenie oferty sprzedaży INFORM potwierdzenie transakcji REJECT 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 wiadmoś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

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 31