intro jade
TRANSCRIPT
ส่วนประกอบของ 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.”); } }
ต่อไปคือการสร้างไฟล์ 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 }