Cây phân cấp Agent của nền Jade

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Mô hình tương tác dựa trên role trong hệ đa agent Luận văn ThS. Công nghệ thông tin 1 01 10 (Trang 97 - 100)

Tại một thời điểm, có thể có nhiều cuộc đấu giá diễn ra đồng thời, một Bidder có thể lựa chọn tham gia vào bất kỳ cuộc đấu giá nào. Mỗi Auctioneer chỉ điều khiển một cuộc đấu giá và Seller cũng chỉ tham gia vào một cuộc đấu giá tại một thời điểm nhất định. Seller và Bidder hồn tồn khơng có bất kỳ mối liên hệ nào với nhau và Auctioneer sẽ đóng vai trị cầu nối. Do đó, q trình đấu giá có thể được chia làm hai giai đoạn riêng biệt: giai đoạn thương lượng giữa Seller và Auctioneer để rao bán mặt hàng và giai đoạn thương lượng giữa Auctioneer và Bidder để tiến hành trả giá cho mặt hàng.

4.5.2. Quá trình thương lượng giữa Seller và Auctioneer.

SELLER AUCTIONEER

reqRegistration(Seller.ROLE_ID)

Đăng ký role Seller với server agent Nhận giá trị của goodDesc, reserve.

reqRegistration(Auctioneer.ROLE_ID)

Đăng ký role Auctioneer với Server Agent. Chuyển sang trạng thái chờ yêu cầu từ các Agent khác.

searchForRole(Auctioneer.ROLE_ID)

Tìm kiếm Agent đảm nhận role Auctioneer. Tìm thấy ít nhất một auctioneer thì chuyển sang bước tiếp theo, ngược lại tìm tục tìm kiếm.

reqSale(auctioneer)

Yêu cầu được rao bán mặt hàng.

listen()

Lắng nghe để tiếp nhận yêu cầu bán hàng

KE_reqSale từ các Agent khác. Quá trình này

được thực hiện liên tục cho tới khi nhận được yêu cầu rao bán từ Seller.

listen()

Nghe, chờ nhận được tín hiệu trả lời chấp nhận KE_saleAccepted(seller) hoặc

KE_saleRefused từ phía Auctioneer trong

khoảng thời gian REPTO=3000ms

saleAccepted(seller) or saleRefused(seller)

Thông báo tới seller chấp nhận hoặc không chấp nhận yêu cầu rao bán KE_reqSale;

putOnSale()

Rao bán hàng thông qua Auctioneer chấp nhận yêu cầu rao bán reqSale

listen()

Nghe, chờ nhận sự kiện KE_putOnSale từ phía Seller.

Auctioneer thực hiện q trình thương lượng với

các Bidder để bán hàng.

listen()

Nghe, sự kiện hồi đáp về việc đấu giá mặt hàng từ phía Auctioneer. Nếu là KE_pay có nghĩa mặt hàng đã được bán. Ngược lại, sự kiện nhận được là KE_unsold

unsold(seller) hoặc pay(seller)

Thông báo không bán được hàng bằng unsold. Ngược lại, tiến hành thanh toán với seller bằng hành động pay

dismiss()

Hồn thành nhiệm vụ. Giải phóng khỏi role Seller.

dismiss()

Hoàn thành nhiệm vụ. Giải phóng khỏi role Auctioneer

4.5.3. Quá trình thương lượng giữa Bidder và Auctioneer

BIDDER AUCTIONEER

reqRegistration(Bidder.ROLE_ID)

Đăng ký role Bidder với server agent Nhận giá trị của goodDesc, reserve

reqRegistration(Auctioneer.ROLE_ID)

Đăng ký role Auctioneer với Server Agent

searchForRole(Auctioneer.ROLE_ID)

Tìm kiếm Agent đảm nhận role Auctioneer

listen()

Chờ nhận yêu cầu tham gia từ các Bidder.

askGood(auctioneer)

Yêu cầu Auctioneer được lựa chọn thông báo về mặt hàng hiện được rao bán.

listen()

Chờ nhận yêu cầu từ các Bidder.

listen()

Nghe, chờ nhận được tín hiệu trả lời chấp nhận từ phía Auctioneer

notifyGood(Bidder,goodDesc); auctionOver()

Auctioneer thơng báo tới các Bidder có u cầu về mặt hàng hiện được rao bán trong cuộc đấu giá mà Auctioneer này quản lý

askSituation(auctioneer)

Yêu cầu auctioneer thơng báo về tình trạng hiện thời của cuộc đấu giá.

listen()

Chờ nhận yêu cầu từ phía Bidder.

listen()

Chờ tín hiệu thơng báo tình trạng cuộc đấu giá từ phía Auctioneer

notifySituation()

Thơng báo tình trạng cuộc đấu giá bao gồm giá đề xuất Proposed và Bidder thắng cuộc hiện thời WinBiddder

bid()

Trả giá mà Auctioneer đã đề xuất.

listen()

Chờ trả giá tiếp theo của các Bidder

listen()

Lắng nghe hồi đáp từ phía Auctioneer về việc trả giá đã đưa ra.

youWon hoặc auctionOver()

Thông báo youWon tới Bidder thắng cuộc cuối cùng và auctionOver tới các Bidder khác.

pay(auctioneer,Money)

Nếu nhận được sự kiện youWon, Bidder thực hiện trả tiền pay cho mặt hàng mua được từ Auctioneer.

listen()

Chờ nhận sự kiện giao hàng từ phía Auctioneer

giveGood()

Sau khi nhận được sự kiện trả từ Bidder thắng cuộc, Auctioneer tiến hành việc giao hàng giveGood

dismiss()

Giải phóng khỏi role Bidder. dismiss()

Giải phóng khỏi role Auctioneer

4.5.4. Kết thúc đấu giá

Phiên đấu giá kết thúc khi khơng có Bidder nào trả cho mức giá mà Auctioneer đưa ra. Khi phiên đấu giá kết thúc, người dùng sẽ nhận được kết quả của role agent như sau:

 Đối với Bidder thắng cuộc: Thông tin người dùng được biết là giá tiền mà Agent đã trả cho sản phẩm cùng số tiền còn lại sau phiên đấu giá. Agent cũng thơng báo hồn thành nhiệm vụ và giải phóng khỏi role Bidder.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Mô hình tương tác dựa trên role trong hệ đa agent Luận văn ThS. Công nghệ thông tin 1 01 10 (Trang 97 - 100)

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

(118 trang)