18

Intro jade

Embed Size (px)

Citation preview

ส่วนประกอบของ JADE

เป็นพื้นที่การท างานของเอเจนท์

เป็นไลบารีของคลาสต่าง ๆ ในการพัฒนาเอเจนท ์

เป็นเครื่องมือในการเข้าใช้โปรแกรมและการแสดงผลทางจอภาพของการตอบสนองเอเจนท ์

ส่วนประกอบของ main container

ภาพแสดงตัวอย่างระบบ JADE

การสร้าง JADE Agent (Agent Class)

import jade.core.Agent; public class BookBuyerAgent extends Agent { protected void setup() { // Printout a welcome message System.out.println(“Hello! Buyer-agent “+getLocalName()+” is ready.”); } }

สร้าง JADE Agent โดยเขียนภาษา java โดยใช้โปรแกรม Edit Plus

ต่อไปคือการ compile ภาษาจาวาที่เขียนให้เป็น class

ต่อไปคือการสร้างไฟล์ bat เพื่อการรันโปรแกรมโดย command prompt เมื่อสร้างเสร็จแล้วก็บันทึกเป็น .bat แล้วดับเบิลคลิกเพ่ือรัน

ล าดับการท างานของเธรดของเอเจนท์

ชนิดของ Behavior

public class MyOneShotBehaviour extends OneShotBehaviour { public void action() { // perform operation X } }

ชนิดของ Behavior

public class MyCyclicBehaviour extends CyclicBehaviour { public void action() { // perform operation X } }

ชนิดของ Behavior

public class MyThreeStepBehaviour extends Behaviour { private int step = 0; public void action() { switch (step) { case 0: // perform operation X step++; break;

case 1: // perform operation Y step++; break; case 2: // perform operation Z step++; break; } } public boolean done() { return step == 3; } }

การก าหนดการด าเนินการตามเวลาที่ก าหนด

public class MyAgent extends Agent { protected void setup() { System.out.println(“Adding waker behaviour”); addBehaviour(new WakerBehaviour(this, 10000) { protected void handleElapsedTimeout() { // perform operation X } } ); } }

การก าหนดการด าเนินการตามเวลาที่ก าหนด

public class MyAgent extends Agent { protected void setup() { addBehaviour(new TickerBehaviour(this, 10000) { protected void onTick() { // perform operation Y } } ); } }

การติดต่อส่ือสารระหว่างผู้ใช้

การส่งข้อความ

JADE มีคลาสในการส่งข้อความคือ jade.lang.acl.ACLMessage การส่งข้อความท าได้โดยการระบุฟิลด์ของ object ‘ACLmessage’ แล้วเรียกเมธอด send() ของคลาส Agent ตัวอย่างรหัสค าสั่งในการส่งข้อความแจ้งผู้รับให้แก่เอเจนทท์ี่ชื่อ Peter มีข้อความว่า “today it’s raining”

ACLMessage msg = new ACLMessage(ACLMessage.INFORM); msg.addReceiver(new AID(“Peter”, AID.ISLOCALNAME)); msg.setLanguage(“English”); msg.setOntology(“Weather-forecast-ontology”); msg.setContent(“Today it’s raining”); send(msg);

การรับข้อความ

ข้อความจะถูกส่งไปยังคิวของข้อความของผู้รับอัตโนมัติโดย JADE Platform เมื่อมีข้อความอยู่ในคิวแล้วเอเจนท์สามารถดึงข้อความออกจากคิวโดยใช้เมธอด receive() ซึ่งจะข้อความแรกในคิวออกมาและลบข้อความออกจากคิว ตัวอย่างรหัสค าสั่งในการรับข้อความ

ACLMessage msg = receive(); if (msg != null) { // Process the message }