Apr 19 2009

(5장) JADE PROGRAMMING FOR BEGINNERS

AGENT COMMUNICATION – THE ACLMESSAGE CLASS

JADE 에이전트의 가장 큰 특징은 통신 기능의 제공이다. 통신 패러다임은 비동기적 메시징 방식을 채택했다.

각 에이전트는 메세지 큐를 가지고 있다 . 메세지큐에 메세지를 쓰면 받으려는 에이전트에서 알려준다. (JADE Runtime이 이를 수행해 준다.)

5.1 The ACL language

FIPA (http://www.fipa.org) 에서 정의한 통신을 위한 메세지 형태
- 송신자.
- 수신자 리스트
- 통신 의도 (performative)
- 컨텐츠
- 언어
- 온톨로지
- 컨트롤 필드

jade.lang.acl.ACLMessage 에 구현되어 있음.

5.2 Sending messages

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);

5.3 The book trading example messages

// Message carrying a request for offer
ACLMessage cfp = new ACLMessage(ACLMessage.CFP);

for (int i = 0; i < sellerAgents.lenght; ++i) {
cfp.addReceiver(sellerAgents[i]);
}
cfp.setContent(targetBookTitle);
myAgent.send(cfp);

5.4 Receiving messages

JADE runtime이 메세지 큐에 메세지를 전달하면 에이전트는 메세지를 받을 수 있다. receive()메소드는 큐에 메시지 또는 null을 리턴한다.

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

5.5 Blocking a behaviour waiting for a message

댓글 없음

댓글이 없습니다.

이 글의 댓글을 위한 RSS 피드 TrackBack URI

댓글 남기기

Spam Protection by WP-SpamFree

WordPress Themes