2.2. Một số thuật toán trên tác tử di động
2.2.5. Thuật toán tác tử trao đổi thông điệp với máy chủ
Thuật toán này đƣợc sử dụng khi tác tử di động đang hoạt động tại máy tính khách hàng mà cần có sự trao đổi thông điệp với máy chủ để lấy thông tin về phần mềm, thông tin về nhiệm vụ mới hay gửi thông tin của khách hàng cập nhật tới máy chủ.
2.2.5.1. Mô tả thuật toán
Output: Thông điệp nhận lại từ máy chủ Bƣớc 1:
Tác tử gửi yêu cầu đến máy chủ thông qua việc truy cập một trang web đƣợc cài đặt tại máy chủ kèm theo thông tin về tác tử và thông tin yêu cầu máy chủ xử lý.
Bƣớc 2:
Nếu trang web truy cập trả về dữ liệu thì sang bƣớc 3, nếu không thì sang bƣớc 6.
Bƣớc 3:
Nhận dữ liệu trả về qua trang web dƣới định dạng JSON. Bƣớc 4:
Phân tích dữ liệu từ dạng JSON đã nhận đƣợc. Bƣớc 5:
Trả về thông điệp nhận lại từ máy chủ, thực hiện nhiệm vụ mới và kết thúc.
Bƣớc 6:
Tăng số lần truy cập, nếu lớn hơn giới hạn cho phép thì trả về thông tin không thể liên lạc với máy chủ và kết thúc, ngƣợc lại thì quay về bƣớc 1.
2.2.5.2. Sơ đồ khối
BẮT ĐẦU
KẾT THÚC
Trả về thông điệp nhận lại từ máy chủ, thực hiện nhiệm vụ
mới
Nhập vào thông điệp gửi cho máy chủ, số lần liên lạc tối đa
Truy cập vào máy chủ thông qua một trang web
Có dữ liệu nhận đƣợc từ trang web truy cập?
Tăng số lần đã liên lạc
Sai Số lần đã truy cập < số lần liên lạc tối đa Đúng
Trả kết quả không thành công
Sai
Nhận dữ liệu qua trang web với định dạng JSON
Phân tích dữ liệu từ dạng JSON
2.2.5.3. Giả mã
1. Enter message, max_num_request
2. Declare num_request 3. Set num_request to 0
4. While num_request < max_num_request
a. Call access_webpage (url, message) Returning json_data b. If json_data <> null Then
break;
c. EndIf
d. Increment num_request
5. EndWhile
6. Call analyze_json(json_data) Returning clear_data 7. If json_data = null Then
Return “Liên lạc thất bại” 8. Else
Return clear_data 9. EndIf