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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1 Systemy wieloagentowe (MAS) zasady tworzenia systemów wieloagentowych za pomocą technologii MASE i JADEczęść 2 Autor: Zofia Kruczkiewicz Systemy wieloagentowe 1

2 Struktura prezentacji Wprowadzenie do MAS Charakterystyka techniki JADE Zastosowanie inżynierii odwrotnej do wykazania spójności modeli projektowego i implementacji Zastosowanie techniki MASE do wykonania modeli analizy i projektowania przykładu MAS przykład 2 Zastosowanie techniki JADE do implementacji przykładu MAS przykład 2 Zakończenie Systemy wieloagentowe 2

3 Struktura prezentacji Wprowadzenie do MAS Systemy wieloagentowe 3

4 Przykłady narzędzi do tworzenia MAS AgentBuilder AgenTalk AgentTool Agent Building Environment Agent Development Environment Agentx Aglets Concordia DirectIA SDK Gossip Grasshopper Infosleuth igen Intelligent Agent Factory Intelligent Agent Library JACK Intelligent Agents JADE Jumping Beans Engineering Kafka LiveAgent Microsoft Agent Swarm Versatile Intelligent Agents (VIA) Voyager Systemy wieloagentowe 4

5 Techniki tworzenia MAS Systemy wieloagentowe 5

6 Struktura prezentacji Wprowadzenie do MAS Charakterystyka techniki MASE Systemy wieloagentowe 6

7 Hierarchia celów Początkowy kontekst systemu Określenia celów Przypadki użycia (Use Cases) Diagramy sekwencji Określenia przypadków użycia Analiza Zadania współbieżne Role Klasy agentów Udoskonalanie ról Tworzenie klas agentów Konwersacje Diagramy wdrożenia Architektura agentów Konstruowanie konwersacji Grupowanie klas agentów Projektowanie systemu Projekt Systemy wieloagentowe 7

8 Proces transformacji modelu ról (analizy) do modelu projektowego Systemy wieloagentowe 8

9 Systemy wieloagentowe 9

10 Struktura prezentacji Wprowadzenie do MAS Charakterystyka techniki MASE Charakterystyka techniki JADE Systemy wieloagentowe 10

11 Infrastruktura fizyczna MAS System JADE oparty na specyfikacji FIPA Agent Platforma Agenta (AP) System Zarządzania Agentami (AMS) Katalog Usług (DF) RMI System transportu wiadomości (MTS) IIOP, HTPP System transportu wiadomości (MTS) Platforma Agenta (AP) Systemy wieloagentowe 11

12 Rozproszona AP w systemie JADE Systemy wieloagentowe 12

13 MAS mobilny (3 komputery) Agent Platform Host 1 Main Container AMS DF Manager Host 2 Host 3 Searcher 1 Container 1 Container 2 domove() domove() Container 3 Searcher 2 Container 4 MySQL Server MySQL Server Systemy wieloagentowe 13

14 Systemy wieloagentowe 14

15 Systemy wieloagentowe 15

16 Systemy wieloagentowe 16

17 Systemy wieloagentowe 17

18 Środowisko graficzne JADE Systemy wieloagentowe 18

19 Systemy wieloagentowe 19

20 Struktura prezentacji Wprowadzenie do MAS Charakterystyka techniki MASE Charakterystyka techniki JADE Zastosowanie inżynierii odwrotnej do wykazania spójności modelu projektowego i implementacji Systemy wieloagentowe 20

21 MASE (1) Klasa agenta - odwzorowanie (1) Komponenty agenta - odwzorowanie (2) ConversationI_ Systemy wieloagentowe 21 Konwersacje typu proste zdarzenia komunikacyjne typu nadawanie lub odbiór wiadomości - odwzorowanie (3)

22 JADE (1) Klasa agenta - odwzorowanie (1) ^send1_4 Przekształcenie komponentów do obiektów typu Behaviour - odwzorowanie(2) Odwzorowanie zbioru zdarzeń komunikacyjnych typu nadawanie lub odbiór do zbioru metod nadawania i odbioru odwzorowanie (3) Systemy wieloagentowe 22

23 MASE (2) Klasa agenta - odwzorowanie (1) Komponenty agenta odwzorowanie (2) ConversationI_1 Proste zdarzenia komunikacyjne typu nadawanie lub odbiór wiadomości - odwzorowanie (5) Systemy wieloagentowe 23 Rys.5. Model Agenta MASE Konwersacja opisana złożonym diagramem stanu odwzorowanie (4) Konwersacje typu proste zdarzenia komunikacyjne typu nadawanie lub odbiór wiadomości (3)

24 JADE (2) Klasa agenta - odwzorowanie (1) Przekształcenie komponentów do obiektów typu Behaviour odwzorowanie (2) Odwzorowanie złożonej konwersacji do klasy typu Behaviours odwzorowania (4) oraz odwzorowania zbioru zdarzeń komunikacyjnych typu nadawanie lub odbiór do zbioru metod nadawania i Odwzorowanie zbioru zdarzeń komunikacyjnych typu nadawanie lub odbiór do zbioru metod nadawania i odbioru odwzorowanie (3) odbioru odwzorowanie (5) Systemy wieloagentowe 24 Rys. 6. Model agenta JADE

25 Struktura prezentacji Wprowadzenie do MAS Charakterystyka techniki MASE Charakterystyka techniki JADE Zastosowanie inżynierii odwrotnej do wykazania spójności modelu projektowego i implementacji Zastosowanie techniki MASE do wykonania modeli analizy i projektowania przykładu MAS przykład Systemy wieloagentowe 25

26 MASE- aplikacja Client-Seller Sprzedaz2MASE przykład 2 - sprzedaz2-v1.83.maml Analiza Systemy wieloagentowe 26

27 Diagram celów Systemy wieloagentowe 27

28 Diagram ról Systemy wieloagentowe 28

29 Diagram use case Systemy wieloagentowe 29

30 Diagram sekwencji Systemy wieloagentowe 30

31 MASE- aplikacja Client-Seller Sprzedaz2MASE przykład 2 - sprzedaz2-v1.83.maml Projekt Systemy wieloagentowe 31

32 Diagram Agent Template Diagram Systemy wieloagentowe 32

33 Architektura typu ClientAgent Systemy wieloagentowe 33

34 Komponenty agenta typu ClientAgent (1) Systemy wieloagentowe 34

35 Komponenty agenta typu ClientAgent (2) Systemy wieloagentowe 35

36 Seller Agent architektura i komponenty (taki sam jak w Sprzedaz1) Systemy wieloagentowe 36

37 Informacja o weryfikacji protokołów komunikacjina etapie projektowania Języki formalne i narzędzia do automatycznej weryfikacji systemów komunikacji 1. Procesy Sekwencyjnej Komunikacji (CSP Communicating Sequential Processes 1978 r. C.A.R.Hoare) 2. Usuwanie Błędów Rozbieżności (FDR2-Failure-Divergence Refinement r.) 3. Rachunek Systemów Komunikacyjnych (CCS-Calculus of Communicating Systems 1972 r.) 4. Równoległe Narzędzie Pracy (CWB-Concurency WorkBench 1998 r.) 5. Meta Język Procesów (Promela Process Meta Language 1997 r.: konwersacje są modelowane jako procesy, ścieżki konwersacji jako kanały, testowane są zmienne i parametry konwersacji) 6. Spin Spin jest narzędziem automatycznej weryfikacji opracowanym przez Bell Labs, opartym na języku modelowania Promela. Jest on przeznaczony do weryfikacji oprogramowania systemów rozproszonych i protokołów komunikacyjnych (1997). Spin wykrywa: blokadę (deadlock) wstrzymanie (livelock) warunki naruszania przebiegu komunikacji inne błędy komunikacji Spin wspiera komunikację: synchroniczną asynchroniczną zastosowanie kanałów do przesyłania komunikatów i buforów kanałów (rozmiar bufora równy 0 oznacza komunikację synchroniczną) Spin umożliwia różne typy symulacji: losową sterowaną Systemy wieloagentowe 37 i określa warunki występowania błędów.

38 Testowanie protokołu komunikacji przed procesem implementacji za pomocą narzędzia Spin Systemy wieloagentowe 38

39 Diagram klas jako efekt inżynierii odwrotnej dla modelu MASE (Sprzedaz1MASE) Systemy wieloagentowe 39

40 Metoda run komponentu typu Wysylanie_zadania_ofert public void run() { int state = 0; boolean notdone = true; final int StartState = 0; final int Idle = 1; final int StartState_out = 2; final int Idle_out = 3; while (notdone) { switch (state) { case StartState : state = StartState_out; break; case StartState_out : state = Idle; break; case Idle : n = 3; sellers = newlist(n); state = Idle_out; break; case Idle_out : // /Conversation5_1(<sellers>) Conversation5_1(sellers); notdone = false; break; } } } Systemy wieloagentowe 40

41 Metoda run komponentu typu Wybor_najtanszej_oferty public void run() {int state = 0; boolean notdone = true; final int StartState = 0; final int Choice = 1; final int StartState_out = 2; final int Choice_out = 3; while (notdone) { switch (state) { case StartState : state = StartState_out; break; case StartState_out : n = 3; ///n = 3; bestprice = 9999; bestoffer = null bestprice = 9999; bestoffer = null; state = Choice; break; case Choice : [offer_bestprice]/bestoffer = Seller; [offer_bestprice]//bestprice = offer; state = Choice_out; break; case Choice_out : m = checkexternal(); if(m!= null){ // receive(replay(), Seller)[n>0 && timeout >0] /Conversation6_1(Seller); n--() if(m.performative.equals("replay")){ if(n>0 && timeout >0) { Conversation6_1(Seller); n--(); state = Choice;} } } else { // [!(n>0 && timeout>0)] ^bestoffer() if(!(n>0 && timeout>0)) { m = new Message(); m.performative = "bestoffer"; Systemy wieloagentowe 41 notdone = false; } } break; } } }

42 Metoda run komponentu typu Drukowanie_ofert public void run() { int state = 0; boolean notdone = true; final int StartState = 0; final int Printing = 1; final int StartState_out = 2; final int Printing_out = 3; while (notdone) { switch (state) { case StartState : state = StartState_out; break; case StartState_out :m = checkinternal(); if(m!= null) { // bestoffer()[n>0 && bestoffer!=null] /wiersz = <"Nie, wszyscy, sprzedajacy, odpowiedzieli"> if(m.performative.equals("bestoffer")){ if(n>0 && bestoffer!=null) { wiersz = "Nie_wszyscy_sprzedajacy_odpowiedzieli"; state = Printing; } } // bestoffer()[n==0 && bestoffer!=null] /wiersz = <"Best, price"+bestprice> else if(m.performative.equals("bestoffer")){ else if(n==0 && bestoffer!=null) { wiersz = "Best_price"+bestPrice; state = Printing; } } else if(m.performative.equals("bestoffer")) { // bestoffer()[bestoffer==null] else if(bestoffer==null) { state = Printing; } } } break; case Printing : print(wiersz); state = Printing_out; break; case Printing_out : notdone Systemy = false; wieloagentowe break; 42 } } }

43 Metoda run komponentu typu Przygotowanie_ofert (taki sam w Sprzedaz1) public void run() { int state = 0; boolean notdone = true; /* state constant definitions */ final int StartState = 0; final int Oferta = 1; final int Oferta_out = 2; final int StartState_out = 3; while (notdone) { switch (state) { case StartState : state = StartState_out; break; case StartState_out : m = checkexternal(); if(m!= null) if(m.performative.equals("msg")) { Conversation5_1(Client); state = Oferta; } break; case Oferta : oferta = set(msg); state = Oferta_out; break; case Oferta_out : m = new Message(); m.performative = "oferta"; notdone = false; break; } } } Systemy wieloagentowe 43

44 Metoda run komponentu typu Opoznione_wysylanie_ofert (taki sam w Sprzedaz1) public void run() { int state = 0; boolean notdone = true; /* state constant definitions */ final int StartState = 0; final int Delay = 1; final int StartState_out = 2; final int Delay_out = 3; while (notdone) { switch (state) { case StartState : state = StartState_out; break; case StartState_out : m = checkinternal(); if(m!= null) if(m.performative.equals("oferta")) state = Delay; break; case Delay : timeout(t); state = Delay_out; break; case Delay_out : if(timeout<=0) { Conversation6_1(Client); notdone = false; } break; } } } Systemy wieloagentowe 44

45 Struktura prezentacji Wprowadzenie do MAS Charakterystyka techniki MASE Charakterystyka techniki JADE Zastosowanie inżynierii odwrotnej do wykazania spójności modelu projektowego i implementacji Zastosowanie techniki MASE do wykonania modeli analizy i projektowania przykładu MAS przykład2 Zastosowanie techniki JADE do implementacji przykładu MAS przykład Systemy wieloagentowe 45

46 Projekt JADE przykład 2 - Sprzedaz2JADE Systemy wieloagentowe 46

47 Client1: ClientAgent Seller1 :SellerAgent Q uerry_ref 3 Inform 0..3 Diagram protokołu interakcji (PD) client_sellers-net typu user-defined w JADE Systemy wieloagentowe 47

48 Diagram klas jako efekt inżynierii odwrotnej dla aplikacji JADE (Sprzedaz2JADE) Systemy wieloagentowe 48

49 import jade.core.agent; import jade.core.behaviours.*; import jade.core.aid; import jade.lang.acl.*; Agent Jade typu ClientAgent public class ClientAgent extends Agent { private int N=3; private MessageTemplate template; private Wybor_najtanszej_oferty odbior; private Wysylanie_zapytania_o_oferte pytanie; private Drukowanie_ofert drukowanie; private Oferta oferta = new Oferta(N); public Oferta getoferta() { return oferta; } public void setoferta(oferta oferta) { this.oferta = oferta; } Systemy wieloagentowe 49

50 protected void setup() { SequentialBehaviour seq = new SequentialBehaviour(); //główne zach.sekw. ACLMessage msgs[] = new ACLMessage[3]; addbehaviour(seq); //dodano główne zachowanie sekwencyjne SequentialBehaviour seq1 = new SequentialBehaviour(); //1-e zachowanie for (int i=0; i<3;i++) //sekwencyjne { msgs[i] = newmsg(aclmessage.query_ref, "", new AID("Sprzedajacy"+(i+1), AID.ISLOCALNAME)); pytanie = new Wysylanie_zapytania_o_oferte(msgs[i]); seq1.addsubbehaviour(pytanie); } //1-e zachowanie sekwencyjne zawiera 3 zachowania wysyłania zapytania o ofertę seq.addsubbehaviour(seq1); //dodano 1-go zachowanie sekwencyjne ParallelBehaviour par = new ParallelBehaviour(); //2-ie zachowanie równoległe seq.addsubbehaviour(par); for (int i=0;i<3;i++) { template = MessageTemplate.and( MessageTemplate.MatchPerformative(ACLMessage.INFORM), MessageTemplate.MatchConversationId(msgs[i].getConversationId())); odbior = new Wybor_najtanszej_oferty(this, 1000, template); par.addsubbehaviour(odbior); //2-ie zachowanie zawiera 3 równoległe zachowania wyboru najtańszej wiadomości } drukowanie = new Drukowanie_ofert(this); seq.addsubbehaviour(drukowanie); } //3-ie zachowanie drukuje ofertę //dodano 2-ie zachowanie równoległe Systemy wieloagentowe 50

51 // ========== Utility methods Jade Primer========================= // --- generating Conversation IDs protected static int cidcnt = 0; String cidbase = null; String gencid() { if (cidbase == null) { cidbase = getlocalname() + hashcode() + System.currentTimeMillis() % "_"; } return cidbase + (cidcnt++); } // --- Methods to initialize ACLMessages ACLMessage newmsg(int perf, String content, AID dest) { ACLMessage msg = newmsg(perf); if (dest!= null) { msg.addreceiver(dest); } msg.setcontent(content); return msg; } } ACLMessage newmsg(int perf) { ACLMessage msg = new ACLMessage(perf); msg.setconversationid(gencid()); return msg; } Systemy wieloagentowe 51

52 Pomocniczy obiekt Oferta public class Oferta { private int oferta = 1000; private int n; private int bestprice = 999; public int getbestprice() { return bestprice; } public void setbestprice(int bestprice) { this.bestprice = bestprice; } public int getn() { return n; } public void setn(int n) { this.n = n; } public void DecN() { --n; } public int getoferta() { return oferta; } public void setoferta(int oferta) { this.oferta = oferta; } public Oferta(int N) { n = N; } public void ustaloferte(int q) { if (q < getoferta() && q < getbestprice() && q > 0) setoferta(q); DecN(); } public String ocenaoferty() { String wiersz=null; if (getn() == 0 && getoferta() < 1000) wiersz = "Najlepsza oferta: " + getoferta(); else if (getn() > 0 && getoferta() < 1000) wiersz = "Oferta bez " + (getn()) + " wynosi: " + getoferta() + "\n"; else if (getoferta() == 1000) wiersz = "Brak oferty"; return wiersz; } Systemy wieloagentowe 52 }

53 import jade.core.behaviours.*; import jade.lang.acl.*; // (taki sam w Sprzedaz1) class Wysylanie_zapytania_o_oferte extends OneShotBehaviour { ACLMessage msg; int state = 0; //arybut, który pamięta, w którym miejscu zakończyła się metoda action public Wysylanie_zapytania_o_oferte(ACLMessage m) { msg = m; } public void action() { boolean notdone = true; final int StartState = 0; final int Idle = 1; final int StartState_out = 2; final int Idle_out = 3; } while (notdone) { switch (state) { case StartState: state = StartState_out; case StartState_out: state = Idle; case Idle: //msg = newmsg(querry_ref); break; break; state = Idle_out; break; case Idle_out: // /Conversation5_1(Seller) System.out.println("\n" + myagent.getlocalname() + " wysyla wiadomosc:\n\n" + msg); myagent.send(msg); notdone = false; } } } /*koniec metody action*/ break; Systemy wieloagentowe 53

54 import jade.core.agent; import jade.core.behaviours.simplebehaviour; import jade.lang.acl.*; public class Wybor_najtanszej_oferty extends SimpleBehaviour { private MessageTemplate template; private long timeout, wakeuptime; private boolean finished = false; private ACLMessage msg = null; int state = 0; //arybut, który pamięta, w którym miejscu zakończyła się metoda action public Wybor_najtanszej_oferty(Agent a, int millis, MessageTemplate mt) { super(a); timeout = millis; template = mt; } public void handle(aclmessage msg) { if (msg == null) { System.out.print("\n" + myagent.getlocalname() + ": Czas zostal przekroczony: "); System.out.println(timeOut); } else System.out.println("\n" + myagent.getlocalname() + " odebral wiadomosc:\n\n" + msg); } public void onstart() { wakeuptime=(timeout < 0?Long.MAX_VALUE:System.currentTimeMillis()+timeOut);} Systemy wieloagentowe 54 public boolean done() { return finished; }

55 public void action() { long dt = 0; boolean notdone = true; final int StartState = 0; final int Choice = 2; final int StartState_out = 1; final int Choice_out = 3; while (notdone) { switch (state) { case StartState: state = StartState_out; break; case StartState_out: state = Choice;; break; case Choice : state = Choice_out; break; case Choice_out: msg = myagent.receive(template); if (msg!= null) { String p[]=(msg.getcontent()).split(" "); int q=integer.parseint(p[2]); ((ClientAgent)myAgent).getOferta().ustaloferte(q); finished=true; handle(msg); } else { dt = wakeuptime - System.currentTimeMillis(); if (dt > 0) block(dt); else { handle(msg); finished=true; } } notdone = false; break; } } } /*koniec metody action*/ } Systemy wieloagentowe 55

56 import jade.core.agent; import jade.core.behaviours.simplebehaviour; import jade.lang.acl.*; public class Drukowanie_ofert extends SimpleBehaviour { private boolean finished = false; private String wiersz; int state = 0; //arybut, który pamięta, w którym miejscu zakończyła się metoda action public Drukowanie_ofert(Agent a) { super(a); } public boolean done() { return finished; } Systemy wieloagentowe 56

57 public void action() { boolean notdone = true; long dt = 0; final int StartState = 0; final int Printing = 2; final int StartState_out = 1; final int Printing_out = 3; while (notdone) { switch (state) { case StartState: state = StartState_out; break; case StartState_out: wiersz = ((ClientAgent) myagent).getoferta().ocenaoferty(); state = Printing; break; case Printing: System.out.println(wiersz); state = Printing_out; break; case Printing_out: finished = true; notdone = false; break; } } } //koniec metody action } Systemy wieloagentowe 57

58 Definicja klasy SellerAgent taka sama jak w przykładzie Sprzedaz Systemy wieloagentowe 58

59 import jade.core.agent; import jade.lang.acl.*; Agent Jade typu SellerAgent public class SellerAgent extends Agent { private Przygotowanie_oferty oferta; private MessageTemplate template = MessageTemplate.MatchPerformative(ACLMessage.QUERY_REF); } protected void setup() { oferta = new Przygotowanie_oferty(this, template); addbehaviour(oferta); } Systemy wieloagentowe 59

60 import jade.core.agent; import jade.core.behaviours.*; import jade.lang.acl.*; import java.util.random; public class Przygotowanie_oferty extends SimpleBehaviour { private Opoznione_wysylanie_ofert oferta_o; private ACLMessage reply; private MessageTemplate template; private Random rnd = new Random(); private boolean finished = false; int state = 0; //arybut, który pamięta, w którym miejscu zakończyła się metoda action public Przygotowanie_oferty(Agent a, MessageTemplate t) { super(a); template = t; } public boolean done() { return finished; } Systemy wieloagentowe 60

61 public void action() { ACLMessage msg = null; int delay = 0; boolean notdone = true; final int StartState = 0; final int Oferta = 1; final int Oferta_out = 2; final int StartState_out = 3; Systemy wieloagentowe 61

62 while (notdone) { switch (state) { case StartState: state = StartState_out; break; case StartState_out: //receive/conversation5_1(client); msg = myagent.receive(template); state = Oferta; break; case Oferta: // we create the reply if (msg!= null) { reply = msg.createreply(); reply.setperformative(aclmessage.inform); reply.setcontent("cena oferty: " + rnd.nextint(100)); delay = rnd.nextint(2000); System.out.println("\n" + myagent.getlocalname() + " odebral wiadomosc:\n\n" +msg + "\n\n i odpowie po uplywie czasu " + delay); state = Oferta_out; // but only send it after a random delay } else { block(); state= StartState_out; //zapamiętanie, że metodę action należy rozpocząć od case StartState_out notdone = false; } break; case Oferta_out: // ^oferta() but only send it after a random delay oferta_o = new Opoznione_wysylanie_ofert(myAgent, delay, reply); myagent.addbehaviour(oferta_o); finished = true; notdone = false; break; } } } /*koniec metody action*/ } Systemy wieloagentowe 62

63 import jade.core.agent; import jade.core.behaviours.simplebehaviour; import jade.lang.acl.*; public class Opoznione_wysylanie_ofert extends SimpleBehaviour { private ACLMessage replay; private long timeout, wakeuptime; private boolean finished = false; int state = 0; //arybut, który pamięta, w którym miejscu zakończyła się metoda action } public Opoznione_wysylanie_ofert(Agent ag, int delay, ACLMessage r) { super(ag); timeout = delay; replay = r; } public void onstart() { wakeuptime = System.currentTimeMillis() + timeout; } public boolean done() { return finished; } public void handleelapsedtimeout() { System.out.println("\nOpoznienie " + timeout + " minelo"); System.out.println("\n"+myAgent.getLocalName()+" wysyla wiadomosc:\n\n"+replay); myagent.send(replay); Systemy wieloagentowe 63

64 } public void action() { boolean notdone = true; long dt = 0; final int StartState = 0; final int Delay = 1; final int StartState_out = 2; final int Delay_out = 3; while (notdone) { switch (state) { case StartState: state = StartState_out; break; case StartState_out: state = Delay; break; case Delay: case Delay_out: } } } //koniec metody action dt = wakeuptime - System.currentTimeMillis(); state = Delay_out; break; if (dt <= 0) { finished = true; // /Conversation6_1(Client); handleelapsedtimeout(); } else { block(dt); state = Delay; } notdone = false; break; Systemy wieloagentowe 64

65 Sprzedaz2JADE- przykład działania 1 (a) Systemy wieloagentowe 65

66 Sprzedaz2JADE- przykład działania 1 (b) Systemy wieloagentowe 66

67 Sprzedaz2JADE- przykład działania 2 (a) Systemy wieloagentowe 67

68 Sprzedaz2JADE- przykład działania 2 (b) Systemy wieloagentowe 68

69 Sprzedaz2JADE- przykład działania 3 (a) Systemy wieloagentowe 69

70 Sprzedaz2JADE- przykład działania 3 (b) Systemy wieloagentowe 70

71 Sprzedaz2JADE- przykład działania Systemy wieloagentowe 71

72 Struktura prezentacji Wprowadzenie do MAS Charakterystyka techniki MASE Charakterystyka techniki JADE Zastosowanie inżynierii odwrotnej do wykazania spójności modelu projektowego i implementacji Zastosowanie techniki MASE do wykonania modeli analizy i projektowania przykładu MAS przykład 2 Zastosowanie techniki JADE do implementacji przykładu MAS przykład 2 Zakończenie Systemy wieloagentowe 72

73 Podano zarys MAS Podsumowanie Przedstawiono elementy inżynierii oprogramowania zorientowanego agentowo -Agent-Oriented Software Engineering (AOSE) Podano charakterystyki techniki MASE oraz JADE Przedstawiono projekt przykładowego MAS wykonanego w technice MASE i oprogramowanego w JADE Zastosowano inżynierię odwrotną do określenia równoważności modeli i możliwości łączenia produktów obu technik: MASE i JADE Systemy wieloagentowe 73

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

Systemy wieloagentowe (MAS) zasady tworzenia systemów wieloagentowych za pomocą technologii MASE i JADEczęść. Systemy wieloagentowe (MAS) zasady tworzenia systemów wieloagentowych za pomocą technologii MASE i JADEczęść 1 http://www.multiagent.com Autor: Zofia Kruczkiewicz 2010-11-24 Systemy wieloagentowe 1 Struktura

Bardziej szczegółowo

Autor: Zofia Kruczkiewicz Systemy wieloagentowe 1

Autor: Zofia Kruczkiewicz Systemy wieloagentowe 1 Systemy wieloagentowe (MAS) nowa generacja systemów informatycznych http://www.multiagent.com Autor: Zofia Kruczkiewicz 2005-05-25 Systemy wieloagentowe 1 Struktura prezentacji Systemy informatyczne Wprowadzenie

Bardziej szczegółowo

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

Agentowe języki komunikacji (KIF, KQML, ACL) WYKŁAD 7 Agentowe języki komunikacji (KIF, KQML, ACL) System autonomiczny potrafi: obserwować (monitorować stan własny i stan otoczenia) działać (modyfikować stan własny i stan otoczenia) W przypadku systemów

Bardziej szczegółowo

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

Architektury Usług Internetowych. Laboratorium 3. Usługi w środowisku wielo-agentowym Architektury Usług Internetowych Laboratorium 3. Usługi w środowisku wielo-agentowym Wstęp Celem laboratorium jest zapoznanie się z usługami udostępnianymi przez agenty w systemie agentowym JADE. Każdy

Bardziej szczegółowo

Architektury usług internetowych. Laboratorium 5. JADE

Architektury usług internetowych. Laboratorium 5. JADE Wstęp Architektury usług internetowych Laboratorium 5. JADE Celem laboratorium jest zapoznanie się z usługami udostępnianymi przez agenty w systemie agentowym JADE. Każdy z agentów udostępniający usługę

Bardziej szczegółowo

JADE - Java Agent DEvelopment Framework

JADE - Java Agent DEvelopment Framework WYKŁAD 6 JADE - Java Agent DEvelopment Framework http://jade.tilab.com/index.html JADE jest systemem oprogramowania ułatwiającym tworzenie systemów agentowych i wieloagentowych. Składa się z trzech części:!

Bardziej szczegółowo

Diagramy stanów Na podstawie UML 2.0 Tutorial Zofia Kruczkiewicz

Diagramy stanów Na podstawie UML 2.0 Tutorial   Zofia Kruczkiewicz Diagramy stanów Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz 1 Diagramy stanów 1. Diagramy stanów UML http://sparxsystems.com.au/resources/uml2_tutorial/

Bardziej szczegółowo

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

TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB 05 ZOFIA KRUCZKIEWICZ PROJEKTOWANIE SYSTEMÓW WIELOAGENTOWYCH MULTIAGENT SYSTEM PROJECT ZOFIA KRUCZKIEWICZ PROJEKTOWANIE SYSTEMÓW WIELOAGENTOWYCH MULTIAGENT SYSTEM PROJECT STRESZCZENIE. Podstawą metod tworzenia systemów wieloagentowych (MAS) jest identyfikacja agentów wypełniających cele

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 5

Architektury Usług Internetowych. Laboratorium 5 Architektury Usług Internetowych Laboratorium 5 Celem zadania jest zapoznanie się mechanizmem definiowania, rejestrowania, wyszukiwania i wywoływania usług w środowisku wieloagentowym. Przy realizacji

Bardziej szczegółowo

Laboratorium 8 Diagramy aktywności

Laboratorium 8 Diagramy aktywności Laboratorium 8 Diagramy aktywności Zofia Kruczkiewicz Zofia Kruczkiewicz Lab_INP002017_8 1 Modelowanie zachowania obiektów za pomocą diagramów aktywności. Modelowanie zachowania obiektów za pomocą diagramów

Bardziej szczegółowo

Diagram stanów Laboratorium 9

Diagram stanów Laboratorium 9 Diagram stanów Laboratorium 9 Zofia Kruczkiewicz Zofia Kruczkiewicz lab_inp002017_9 1 Modelowanie zachowania obiektu za pomocą diagramu stanów. Opracowanie diagramu stanów dla obiektu wybranej klasy, reprezentującego

Bardziej szczegółowo

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Zofia Kruczkiewicz Zofia Kruczkiewicz Inżynieria oprogramowania INEK011 1 Składnia elementów na diagramach UML 1. W prezentacji składni diagramów

Bardziej szczegółowo

Java: interfejsy i klasy wewnętrzne

Java: interfejsy i klasy wewnętrzne Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania

Bardziej szczegółowo

Algorytmy z powrotami. Algorytm minimax

Algorytmy z powrotami. Algorytm minimax Algorytmy z powrotami. Algorytm minimax Algorytmy i struktury danych. Wykład 7. Rok akademicki: 2010/2011 Algorytm z powrotami rozwiązanie problemu budowane jest w kolejnych krokach, po stwierdzeniu (w

Bardziej szczegółowo

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7 Instrukcja 7 Laboratoria 9, 10 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji

Bardziej szczegółowo

Java Agent DEvelopment Framework Systemy Agentowe

Java Agent DEvelopment Framework Systemy Agentowe Java Agent DEvelopment Framework Systemy Agentowe Michaª Wójcik Katedra Architektury Systemów Komputerowych Wydziaª Elektroniki, Telekomunikacji i Informatyki Politechnika Gda«ska 5 pa¹dziernika 2011 Michaª

Bardziej szczegółowo

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz Zofia Kruczkiewicz Projektowanie oprogramowania

Bardziej szczegółowo

Diagramy czynności Na podstawie UML 2.0 Tutorial

Diagramy czynności Na podstawie UML 2.0 Tutorial Diagramy czynności Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz 1 Diagramy czynności 1. Diagramy czyności UML http://sparxsystems.com.au/resources/uml2_tutorial/

Bardziej szczegółowo

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle Pętle while, for, while, instrukcje break, continue, switch 1. Pętle Przykład 1 - Pętla while public class lab4_3 public static void main(string[] args) char ch = 'a'; String s, wynik=""; while ( ch!=

Bardziej szczegółowo

Przetwarzanie Zespołowe

Przetwarzanie Zespołowe Przetwarzanie Zespołowe Laboratorium nr 2 Środowisko agentowe JADE część 2 Migracja agentów Boiński Tomasz Wstęp Podstawową zaletą środowisk agendowych jest możliwość przemieszczania się agentów pomiędzy

Bardziej szczegółowo

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Zofia Kruczkiewicz Zofia Kruczkiewicz Inżynieria oprogramowania INEK011 1 Diagramy maszyn stanowych, wzorce projektowe 1. Modelowanie zachowania

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

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

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Java Platform Micro Edition

Java Platform Micro Edition Java Platform Micro Edition Instalacja środowiska programistycznego Java Platform Micro Edition Software Development Kit 3.0 for Windows z lokalizacji http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp-139759.html

Bardziej szczegółowo

Diagramy stanów Na podstawie UML 2.0 Tutorial Zofia Kruczkiewicz

Diagramy stanów Na podstawie UML 2.0 Tutorial  Zofia Kruczkiewicz Diagramy stanów Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz 1 Diagramy stanów 1. Diagramy stanów UML http://sparxsystems.com.au/resources/uml2_tutorial/

Bardziej szczegółowo

METODY PROGRAMOWANIA

METODY PROGRAMOWANIA METODY PROGRAMOWANIA Wzorzec Repository 21 października 2017 Krzysztof Pawłowski kpawlowski@pjwstk.edu.pl Każdy wzorzec opisuje problem, który ciągle pojawia się w naszej dziedzinie, a następnie określa

Bardziej szczegółowo

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

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1 Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego

Bardziej szczegółowo

Języki i metody programowania Java INF302W Wykład 2 (część 1)

Języki i metody programowania Java INF302W Wykład 2 (część 1) Języki i metody programowania Java INF302W Wykład 2 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 2, część 1 1 Struktura wykładu 1. Identyfikacja

Bardziej szczegółowo

Tworzenie aplikacji w języku Java

Tworzenie aplikacji w języku Java Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009

Bardziej szczegółowo

JADE Java Agent Development Framework. MiASI2, TWO2,

JADE Java Agent Development Framework. MiASI2, TWO2, 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

Bardziej szczegółowo

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6 Instrukcja 6 Laboratorium 8 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji

Bardziej szczegółowo

Języki i metody programowania Java Obsługa zdarzeń - przykłady

Języki i metody programowania Java Obsługa zdarzeń - przykłady Języki i metody programowania Java Obsługa zdarzeń - przykłady wg https://docs.oracle.com/javase/tutorial/uiswing/components/ind ex.html Autor Dr inż. Zofia Kruczkiewicz Rodzaje słuchaczy zdarzeń Wydarzenia

Bardziej szczegółowo

Komponenty sterowane komunikatami

Komponenty sterowane komunikatami Komponenty sterowane komunikatami 1. Usługa JMS asynchroniczność, model przesyłania komunikatów, 2. Przykład wysyłanie wiadomości, odbieranie wiadomości, komponent sterowany komunikatami 3. Komponenty

Bardziej szczegółowo

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

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

JADE Java Agent Development Framework. MiASI2, TWO2, 2012-2013 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

Bardziej szczegółowo

Diagramy czynności tworzenie modelu przypadków użycia Wykład 2

Diagramy czynności tworzenie modelu przypadków użycia Wykład 2 Diagramy czynności tworzenie modelu przypadków użycia Wykład 2 Zofia Kruczkiewicz Zofia Kruczkiewicz - Projektowanie oprogramowania 2.2 1 Diagramy czynności- tworzenie modelu przypadków 1. Diagramy czynności

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza Akademia ETI Wprowadzenie do programowania w Javie PG Java User Group 1 Dlaczego Java? Najpopularniejszy język programowania obiektowego Łatwy w nauce Dostępny na wiele platform 2 Platformy Java Java Standard

Bardziej szczegółowo

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

Bardziej szczegółowo

Języki i metody programowania Java. Wykład 2 (część 2)

Języki i metody programowania Java. Wykład 2 (część 2) Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.

Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o. Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o. 29.06.2015 2 Spis treści 1. Wymagania...4 2. Uprawnienia systemowe...4 3. Uprawnienie

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Service Locator Ułatwia wyszukanie komponentów usługowych Service Activator Umożliwia asynchroniczne przesyłanie żądań do komponentów biznesowych

Bardziej szczegółowo

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

Bardziej szczegółowo

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Budowa aplikacji wielowarstwowych zastosowanie szablonów Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Przykład 1 Zastosowanie szablonów Tworzenie kopii projektu typu Web Application o nazwie

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Model przypadków użycia - rola diagramów aktywności Część 2 Wykładowca Dr inż. Zofia Kruczkiewicz

Model przypadków użycia - rola diagramów aktywności Część 2 Wykładowca Dr inż. Zofia Kruczkiewicz Model przypadków użycia - rola diagramów aktywności Część 2 Wykładowca Dr inż. Zofia Kruczkiewicz Zofia Kruczkiewicz Wyklad_INP002017_4 1 Diagramy czynności I. Diagramy czynności UML II. Przykład diagramów

Bardziej szczegółowo

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki Systemy Rozproszone Temat projektu: Regułowy system analizujacy logi Spis treści autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki Cel Projektu...2 Dane aplikacji...2 Technologia...2 Zarządzanie

Bardziej szczegółowo

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project JUNG Java Universal Network/Graph Framework JUNG jest to biblioteka służąca do modelowania, analizy i wizualizacji danych reprezentowanych w postaci grafów lub sieci. Architektura JUNGa wspiera różnorodność

Bardziej szczegółowo

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

Informatyka Systemów Autonomicznych Praca zaliczeniowa

Informatyka Systemów Autonomicznych Praca zaliczeniowa Paweł Krajna Wrocław, 5.04.2007 Informatyka Systemów Autonomicznych Praca zaliczeniowa Temat: ACL - język komunikacji. Spis treści Wstęp...2 Dokumentacja...2 Przegląd komunikacji między agentami...3 Mechanizmy

Bardziej szczegółowo

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić

Bardziej szczegółowo

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1 PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1 Architektury systemów rozproszonych LABORATORIUM Ćwiczenie 1 Temat: Aplikacja klient-serwer - implementacja w środowisku QT Creator. Przykładowy projekt aplikacji typu klient - serwer został udostępniony

Bardziej szczegółowo

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Tomasz Kuczyński Dział Aplikacji Tomasz Nowak Zespół Bezpieczeństwa Wrocław, 2.12.2010 r. Konferencja i3: internet

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

Wykład 3_1 Przykład aplikacji: Wyszukiwanie informacji w internecie

Wykład 3_1 Przykład aplikacji: Wyszukiwanie informacji w internecie Wykład 3_1 Przykład aplikacji: Wyszukiwanie informacji w internecie I. Analiza problemu Rys. 8.1. Diagram typu Goal Zofia Kruczkiewicz, Wykład 3_1, Systemy wieloagentowe 1 1. Opis diagramu typu Goal Główne

Bardziej szczegółowo

Dialogowe akty mowy w modelach sztucznej inteligencji

Dialogowe akty mowy w modelach sztucznej inteligencji Dialogowe akty mowy w modelach sztucznej inteligencji O. Yaskorska 1 K. Budzynska 1 M. Kacprzak 2 1 Wydział Filozofii Chrześcijańskiej, Uniwersytet Kardynała Stefana Wyszyńskiego w Warszawie 2 Wydział

Bardziej szczegółowo

JAX-RS czyli REST w Javie. Adam Kędziora

JAX-RS czyli REST w Javie. Adam Kędziora JAX-RS czyli REST w Javie Adam Kędziora Webservice Usługa sieciowa (ang. web service) komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności. SOAP,UDDI,XML,WSDL

Bardziej szczegółowo

Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz

Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz Zadanie 1. Wykonanie projektu Java SE w środowisku Netbeans- File/New Project W formularzu New Project

Bardziej szczegółowo

Systemy operacyjne na platformach mobilnych

Systemy operacyjne na platformach mobilnych Systemy operacyjne na platformach mobilnych Wykład 3 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Menu opcji ListActivity własny widok własny adapter

Bardziej szczegółowo

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły

Bardziej szczegółowo

UML w Visual Studio. Michał Ciećwierz

UML w Visual Studio. Michał Ciećwierz UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować

Bardziej szczegółowo

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

Bardziej szczegółowo

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką? ROZDZIAŁ1 Podstawy inżynierii oprogramowania: - Cele 2 - Zawartość 3 - Inżynieria oprogramowania 4 - Koszty oprogramowania 5 - FAQ o inżynierii oprogramowania: Co to jest jest oprogramowanie? 8 Co to jest

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna

Kurs programowania. Wykład 9. Wojciech Macyna Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans 1. Wprowadzenie. 2. Przegląd komponentów EJB. komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 3. Kontener komponentów EJB: JBoss. 1 Enterprise JavaBeans

Bardziej szczegółowo

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Aplikacja wielow tkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host

Bardziej szczegółowo

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Maciej Zakrzewicz PLOUG mzakrz@cs.put.poznan.pl Plan prezentacji Wprowadzenie do architektury zorientowanej na usługi Charakterystyka technologii

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Podejście obiektowe. Tablice (1) obiektów

Podejście obiektowe. Tablice (1) obiektów 1. Tablice Tablica w Javie jest obiektem. Podejście obiektowe. Tablice (1) obiektów Deklarowanie tablicy String [] nazwy; //równowaŝne deklaracje zmiennej tablicowej String nazwy []; int liczby[]; //zamienna

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 4

Podstawy programowania III WYKŁAD 4 Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy UML-a 2 UML UML Unified Modeling Language formalny język modelowania systemu informatycznego. Aktualna wersja 2.3 Stosuje paradygmat obiektowy.

Bardziej szczegółowo

Programowanie współbieżne Laboratorium nr 11

Programowanie współbieżne Laboratorium nr 11 Programowanie współbieżne Laboratorium nr 11 Wykonywane w danym momencie programy nazwano procesami [1] - izolowanymi, niezależnie wykonywanymi programami, dla których system operacyjny przydzielał pamięć,

Bardziej szczegółowo

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne Zdalne wywołania procedur Jarosław Kuchta Programowanie Współbieżne Podstawy RPC Remote Procedure Call Wywołanie procedur jednego procesu z innego procesu. Proces wywoływany serwer Proces wywołujący -

Bardziej szczegółowo

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) WERSJA WSTĘPNA, BRAK PRZYKŁADOWYCH PYTAŃ DLA NIEKTÓRYCH PRZEDMIOTÓW Należy wybrać trzy dowolne

Bardziej szczegółowo

Java Agent DEvelopment Framework Systemy Agentowe

Java Agent DEvelopment Framework Systemy Agentowe Java Agent DEvelopment Framework Systemy Agentowe Michaª Wójcik Katedra Architektury Systemów Komputerowych Wydziaª Elektroniki, Telekomunikacji i Informatyki Politechnika Gda«ska 27 pa¹dziernika 2011

Bardziej szczegółowo

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

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Systemy Informatyki Przemysłowej

Systemy Informatyki Przemysłowej Systemy Informatyki Przemysłowej Profil absolwenta Profil absolwenta Realizowany cel dydaktyczny związany jest z: tworzeniem, wdrażaniem oraz integracją systemów informatycznych algorytmami rozpoznawania

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka

Bardziej szczegółowo

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

O-MaSE Organization-based Multiagent System Engineering. MiASI2, TWO2, O-MaSE Organization-based Multiagent System Engineering MiASI2, TWO2, 2017-2018 Materiały Strona poświęcona metodzie O-MaSE http://macr.cis.ksu.edu/projects/omase.html (Multiagent & Cooperative Reasoning

Bardziej szczegółowo

WSPÓŁBIEŻNOŚĆ. MATERIAŁY:

WSPÓŁBIEŻNOŚĆ. MATERIAŁY: WSPÓŁBIEŻNOŚĆ ZAGADNIENIA: procesy, wątki, synchronizacja, synchronizacja w Java 5.0 blokady, egzekutory, zbiory wątków MATERIAŁY: http://docs.oracle.com/javase/tutorial/essential/concurrency/ HTTP://USERS.UJ.EDU.PL/~CIESLA/

Bardziej szczegółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo