XI. FIPA abstraktní architektura, nástroj JADE

Podobné dokumenty
Car Agent. Struktura chování:

EXTRAKT z technické normy CEN ISO

Dominik Vymětal. Informační technologie pro praxi 2009, Ostrava

h t t p : / / a g e n t s. f e l k. c v u t. c z / A g e n t T e c h n o l o g y G r o u p

EXTRAKT z technické normy ISO

EXTRAKT z mezinárodní normy

Softwarové komponenty a Internet

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

EXTRAKT z mezinárodní normy

Základy objektové orientace I. Únor 2010

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

Common Object Request Broker Architecture

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

7.5 Diagram tříd pokročilé techniky

Úvod do programování - Java. Cvičení č.4

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Vývojové nástroje pro multiagentové systémy

TÉMATICKÝ OKRUH Softwarové inženýrství

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

7 Jazyk UML (Unified Modeling Language)

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY


Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

7.5 Diagram tříd pokročilé techniky

UJO Framework. revoluční architektura beans. verze

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

KTE / ZPE Informační technologie

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Požadavky pro výběrová řízení TerraBus ESB/G2x

EXTRAKT z české technické normy

POPIS STANDARDU CEN TC278/WG1. Oblast: ELEKTRONICKÉ VYBÍRÁNÍ POPLATKŮ (EFC) Zkrácený název: ZKUŠEBNÍ POSTUPY 2. Norma číslo:

EXTRAKT z mezinárodní normy

7 Jazyk UML (Unified Modeling Language)

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Distribuované systémy a výpočty (14) 7/1/2008

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

CCNA I. 3. Connecting to the Network. CCNA I.: 3. Connecting to the network

1. Dědičnost a polymorfismus

Znalostní systém nad ontologií ve formátu Topic Maps

Unifikovaný modelovací jazyk UML

20. Projekt Domácí mediotéka

G E O G R A F I C K É I N F O R M A Č N Í S Y S T É M Y. Bc. Michalis Katapodis kat015

Ústav technické matematiky FS ( Ústav technické matematiky FS ) / 35

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Komponentový návrh SW

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Rozšíření infrastruktury projektu Pikater Specifikace softwarového projektu

typová konverze typová inference

Management procesu I Mgr. Josef Horálek

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Profibus (EN 50170) Standard pro distribuované průmyslové řízení. Distribuované systémy: ISO 7498 (Open System Interconnect)

Tvorba informačních systémů

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

PRAVIDLA PROVOZU ELEKTRONICKÉ POŠTY V BIOFYZIKÁLNÍM ÚSTAVU AV ČR

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

EXTRAKT z mezinárodní normy

Pokročilé Webové služby a Caché security. Š. Havlíček

EXTRAKT z české technické normy

Procesy a vlákna (Processes and Threads)

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

SOAP & REST služby. Rozdíly, architektury, použití

Tvorba informačních systémů

Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich

Abstraktní datové typy: zásobník

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

w w w. u l t i m u m t e c h n o l o g i e s. c z Infrastructure-as-a-Service na platformě OpenStack

ZADÁVACÍ DOKUMENTACE pro výběrové řízení na dodavatele vzdělávání v oblasti integrace systémů ICT

Úvod do programování v jazyce Java

Programování II. Třídy a objekty (objektová orientovanost) 2018/19

Mediator motivace. FontDialog. závislosti mezi jednotlivými ovládacími prvky jsou netriviální

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Modelování informačních systémů s využitím jazyka UML. Jaroslav Šmarda

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

BISON. B udování a I mplementace S oftwarových O pen source N ástrojů, z. s.

CAL (CAN Application Layer) a CANopen

Návrh softwarových systémů - architektura softwarových systémů

První kapitola úvod do problematiky

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Architektura softwarových systémů

SEMESTRÁLNÍ PROJEKT Y38PRO

TÉMATICKÝ OKRUH Softwarové inženýrství

EXTRAKT z technické normy ISO

Základní komunikační operace

Projekty pro výuku programování v jazyce Java

Úvod. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík,2016

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

Základy počítačových sítí Model počítačové sítě, protokoly

1. DATOVÉ SCHRÁNKY OBECNÝ PŘÍSTUP K DATOVÉ SCHRÁNCE DATOVÉ ZPRÁVY... 3

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Transkript:

XI. FIPA abstraktní architektura, nástroj JADE Podklady k přednáškám kurzu AGS ---------------------------------------------------- 2006 Zdeněk Mazal mazal@fit.vutbr.cz Organizace FIPA [www.fipa.org] The Foundation for Intelligent Physical Agents Nezisková organizace, zabývá se standardizací v oblasti agentních technologií Založena ve Švýcarsku 1996, od roku 2005 součást IEEE Computer Society (jedna ze Standards Committee) V současné době 23 členů, převážně firmy a univerzity (Boeing, Siemens, Toshiba, ) Většina norem přijata v období kolem roku 2002 Standardy FIPA Normy mají svůj životní cyklus V současné době 25 norem ve stavu Standard Obory normalizace Applications jaké služby poskytovat, ontologie pro dané oblasti, většina norem stále experimentální Abstract Architecture základní komponenty systému Agent Communication zprávy, jazyky, protokoly Agent Management detaily architektury, definuje jak vytvářet prostředí pro běh agentů (Platforma) Agent Message Transport specifikuje jak posílat zprávy mezi platformami FIPA Abstraktní Architektura Základní kámen pro všechny ostatní normy Identifikuje důležitéčásti systému, které musí být přítomny a definuje jejich vztahy a sémantiku Zaměření na komunikaci mezi heterogenními agenty Velmi obecná, zcela nezávislá na implementačním prostředí Využívá návrhové vzory, UML Skládá se ze 3 částí: Stručný textový popis architektury Seznam povinných a volitelných komponent agentního systému UML diagramy popisující vztahy mezi komponentami

Agent Výpočetní proces, autonomní, komunikuje pomocí ACL (Agent Communication Language) Má jedinečné jméno (agent-name), které musí zůstat stejné po celou dobu života agenta (rozvinuto v další normě AID) Norma se zabývá pouze jeho vnějšími projevy zasíláním zpráv, vnitřní architektura není studována Pro podporu chodu agentů jsou přítomny služby Služba (Service) Abstrakce pro podpůrné prostředky běhu agentů Muže být implementována jako agent, avšak nesmí odmítnout autorizovaný požadavek méně autonomie než běžný agent Stejně jako agent musí mít jedinečné jméno Při spuštění agent obdrží Service Root seznam adres služeb, které agent potřebuje ke své funkci Standardní služby v systému Norma definuje, jaké služby musí být v každém agentním systému přítomny Dále definuje operace, které musí služby poskytovat a za jakých podmínek podrobněji definováno v navazující normě (AMS, viz dále) Agent Directory Service (ADS) Udržuje seznam agentů O každém agentovi obsahuje záznam (Agent Directory Entry), který musí obsahovat minimálně jméno a seznam Agent Locators popis jak agent kontaktovat (protokol, adresa...) Umožňuje registraci, editaci / mazání záznamů a vyhledávání Další standardní služby Service Directory Service (SDS) obdobná služba jako ADS pro vyhledávání ostatních služeb Obsahuje signatury služeb (obdoba Agent Locatoru) Message Transport Service (MTS) poskytuje operace pro zasílání a přijímání zpráv mezi agenty zvolenou metodou Encoding Service (ES) kóduje zprávy do zvoleného formátu (konkrétně do payload viz dále)

Zprávy zasílané mezi agenty Vyjadřovány v ACL (např. FIPA ACL, KQML) Povinně musí obsahovat Jednoho odesílatele 0 n příjemců (0 slouží pro multicast) Obsah Obsah zprávy vyjádřen v obsahovém jazyce (content language např. FIPA-SL, KIF, RDF) Po zakódování ES tvoří payload ( užitečný náklad ) a společně s obálkou transportní zprávu (transport message) Zpráva pokračování Průběh kódování zprávy před odesláním pomocí MTS Agent Management Specification Norma, která se zabývá detailně tím, jak má vypadat prostředí ve kterém jsou agenti spouštěni Zpřesňuje a doplňuje abstraktní architekturu Zavádí pojmy Platforma, AID, DF, AMS, životní cyklus agenta Součástí je ontologie pro agent management (AM) detailně popisuje protokol pro všechny operace komunikace s DF a AMS Platforma (Agent Platform) Představuje fyzické prostředí, ve kterém je agent spuštěn Sestává z: hardware operačního systému pomocného software FIPA komponent (DF, AMS, MTS)

Agent Management System (AMS) Povinnáčást každé platformy (v každé platformě musí být právě jeden AMS i v případě že platforma je distribuovaná) Slouží ke správě agentů všichni agenti přítomní na platformě musí být u AMS zaregistrováni Poskytuje službu bílých stránek vyhledávání agentů podle AID je reifikací ADS z abstraktní architektury Dále umožňuje měnit stav agenta viz životní cyklus agenta Životní cyklus agenta Je spravován v AP, vyjadřuje povinnosti AMS vůči agentovi Norma definuje Jaké prostředky přiděluje platforma agentovi Jak je nakládáno se zprávami pro agenta Directory Faciliator (DF) Nepovinnáčást platformy Poskytuje službu žlutých stránek vyhledávání agentů ne podle identifikátoru, ale nabízených služeb Na jedné platformě může být libovolný počet DF, tito mohou tvořit hierarchickou strukturu Autorizovaným agentům poskytuje 4 základní operace register, deregister, modify, search Komunikace pomocí ontologie pro AM JADE zkratka pro Java Agent DEvelopment Framework middleware pro podporu tvorby agentních systémů podle standardů FIPA v jazyce Java vyvíjen v Tilab (Telecom Italia Lab) od roku 2000 Open Source (licence LGPL 2) sestává ze tří hlavních částí: Runtime Environment prostředí pro běh agentů knihovna tříd Agent, Message apod. GUI nástroje pro správu a ladění

Runtime Environment Implementováno v souladu s normami FIPA Základní jednotkou RE je platforma, ta se dále dělí na několik kontejnerů, které mohou běžet na různých počítačích distribuovaně (využívají RMI). Jeden z kontejnerů musí být hlavní, ten obsahuje DF a AMS Poskytuje prostřeky pro mobilitu agentů je možné migrovat agenty mezi platformami V rámci platformy probíhá zasílaní zpráv efektivně (pomocí Java objektů), mezi platformami použití serializace do textových řetězců Runtime Environment DF, AMS DF a AMS jsou implementováni jako agenti (nemají však možnost odmítnout službu v souladu se specifikací FIPA) Je možné s nimi komunikovat standardně zasíláním zpráv, podle protokolu a ontologie definovaných FIPA (FIPA-Agent-Management ontology) JADE však také poskytuje zjednodušený interface pro přístup k těmto službám JADE - programování Základ představuje třída Agent Zapouzdřuje životní cyklus agenta, prostředky pro zasílání a přijímání zpráv a zjednodušenou komunikaci s AMS a DF Vlastní funkčnost agenta je soustředěna v tzv. chováních (Behaviours) JADE poskytuje podporu komunikaci a životní cyklus agentů, neposkytuje prostředky pro uvažování, např. BDI model (existují nadstavby např. JADEX) Agent základní smyčka ne Inicializace agenta Byl agent zabit? ne Vezmi další chování z množiny chování Prováděj chování Bylo chování dokončeno? ano Odstraň chování z množiny chování Ukonči agenta

Chování (Behaviour) Abstrakce pro vykonávání nějaké rutiny V daném okamžiku aktivní právě jedno chování přepínání kooperativní (chování se samo musí vzdát kontroly) důvod: efektivita, složitost synchronizace Tři základní kategorie chování: jednoduché (One Shot, Cyclic...) provádí nějakou konkrétní akci, liší se ukončovací podmínkou složené (sériové, paralelní, založené na FSM) slouží ke spouštění dalších chování ve stanoveném pořadí specifické pro role v komunikačních protokolech (ContractNetInitiator, contractnetresponder) -- metody odpovídají jednotlivým stavům protokolu, jako parametr obdrží příslušné zprávy Příklad jednoduchého agenta public class TimeAgent extends Agent { protected void setup() { addbehaviour(new TickerBehaviour(this, 1000) { protected void ontick() { System.out.println("Agent "+myagent.getlocalname()+": tick="+gettickcount()); ); addbehaviour(new WakerBehaviour(this, 10000) { protected void handleelapsedtimeout() { System.out.println("Agent "+myagent.getlocalname()+": It's wakeuptime. Bye..."); myagent.dodelete(); ); Ukázka registrace agenta u DF public class WeatherForecastAgent extends Agent { protected void setup() { String servicename = "WeatherForecast"; try { DFAgentDescription dfd = new DFAgentDescription(); dfd.setname(getaid()); ServiceDescription sd = new ServiceDescription(); sd.setname(servicename); sd.settype("weather-forecast"); sd.addontologies("weather-forecast-ontology"); sd.addontologies(fipanames.contentlanguage.fipa_sl); sd.addproperties(new Property("country", "Italy")); dfd.addservices(sd); Registrace u DF dokončení DFService.register(this, dfd); catch (FIPAException fe) { fe.printstacktrace(); protected void takedown(){ try{ DFService.deregister(this); catch(fipaexception fe){ fe.printstacktrace();

Zasílání zpráv Zprávy implementovány třídou ACLMessage Odesílány typicky ze speciálního chování Jejich obsah často odpovídá některé ontologii (v JADE implementovány jako objekty, JADE zajišťuje serializaci) ACLMessage cfp = new ACLMessage(ACLMessage.CFP); for (int i = 0; i < selleragents.length; ++i) { cfp.addreceiver(selleragents[i]); cfp.setcontent(targetbooktitle); cfp.setconversationid("book-trade"); cfp.setreplywith("cfp"+system.currenttimemillis()); myagent.send(cfp); Příjem zprávy Zprávy dorazí agentovi do jeho schránky a je jen na něm, kdy si je vyzvedne Zprávy ve schránce je možné téměř libovolně filtrovat Odpověď je generována pomocí msg.createreply() MessageTemplate mt = MessageTemplate.MatchInReplyTo(cfp.getReplyWith()); ACLMessage reply = myagent.receive(mt); if (reply!= null) { if (reply.getperformative() == ACLMessage.PROPOSE) { else { block(); Nástroje pro ladění a správu RMA GUI nástroj pro správu platformy umožňuje spouštění, ukončování, migrace agentů atd. DummyAgent Pro manuální zasílání zpráv agentům a čtení jejich odpovědí Vhodné pro testování agentů bez zkoumání jejich vnitřních stavů (blackbox) SnifferAgent Prostředek pro odchytávání komunikace mezi agenty

Introspector Agent K pozorování agenta zevnitř v jakém se nachází stavu, jaké chování je aktivní, jak vypadá fronta zpráv apod.