Cơ chế truyền thông giữa các Agent

Một phần của tài liệu Mô hình tương tác dựa trên role trong hệ đa agent (Trang 84 - 86)

Kỹ thuật truyền thông được sử dụng ở đây là truyền thông điệp không đồng bộ. Mỗi một Agent sẽ có một hộp thư (hàng đợi các thông điệp của Agent) trong đó đặt các thông điệp do các Agent khác gửi tới. Agent sẽ được thông báo mỗi khi có thông điệp được thêm vào hàng đợi. Khi Agent thực sự xem xét đến thông điệp đó (lấy thông điệp ra khỏi hàng đợi) thì người lập trình mới thực sự xử lý nội dung thông điệp.

Hình 4.5. Cơ chế truyền thông điệp không đồng bộ của Jade

Quy trình truyền thông ACL giữa các Agent có thể được mô tả qua Hình 4.10 ở trên. Quá trình này gồm một số bước cơ bản sau đây:

Chuẩn bị nội dung thông điệp: chỉ đơn giản là điền đầy các trường của

đối tượng ACLMessage.

Gửi thông điệp: bằng cách gọi phương thức send() của một đối tượng

thuộc lớp Agent. Đoạn code sau đây sẽ gửi một thông điệp đến Agent có tên BidderA với thông báo „Auction is Over‟.

ACLMessage msg = new ACLMessage(ACLMessage.INFORM); msg.addReceiver(new AID(“BidderA”, AID.ISLOCALNAME)); msg.setLanguage(“English”);

msg.setOntology(“Auction-ontology”); msg.setContent(“Auction is Over”); send(msg);

Nhận thông điệp vào hàng đợi: Trong thời gian chạy, JADE tự động gửi

thông điệp vào hàng đợi thông điệp cá nhân của Agent nhận.

Nhận và xử lý thông điệp: Một Agent có thể lấy các thông điệp từ hàng

đợi của mình bằng cách gọi thực hiện phương thức receive(). Phương thức

A1 A2

Chuẩn bị thông điệp gửi A2

Gửi thông điệp Lưu thông điệp vào hàng đợi của A2

Lấy thông điệp từ hàng đợi và xử lý

này trả về thông điệp đầu tiên trong hàng đợi thông điệp, sau đó xóa nó khỏi hàng đợi. Sau khi lấy được thông điệp từ hàng đợi, Agent sẽ tiến hành xử lý thông tin nhận được và đưa ra quyết định hành động tiếp theo.

Một phần của tài liệu Mô hình tương tác dựa trên role trong hệ đa agent (Trang 84 - 86)

Tải bản đầy đủ (PDF)

(118 trang)