2.2. Một số thuật toán trên tác tử di động
2.2.2. Thuật toán kiểm tra phiên bản phần mềm
Thuật toán này đƣợc thực hiện khi tác tử di động đang hoạt động tại máy tính của khách hàng. Theo chu kì thời gian nhất định sẽ kiểm tra, đối chiếu phiên bản phần mềm hiện thời đang đƣợc cài đặt tại máy tính khách hàng với phiên bản đặt tại máy chủ web.
2.2.2.1. Mô tả thuật toán
Input: Mã phần mềm cần kiểm tra phiên bản, số lần tối đa kết nối với máy chủ.
Output: Thông tin có sự khác nhau giữa phiên bản hiện thời đƣợc cài đặt tại máy tính khách hàng với phiên bản mới nhất tại máy chủ hay không.
Bƣớc 1:
Kết nối với máy chủ, gửi kèm mã phần mềm cần kiểm tra phiên bản Bƣớc 2:
Nếu máy chủ có thông tin phản hồi thì chuyển sang bƣớc 3, nếu không thì tăng biến lƣu số lần gửi yêu cầu, nếu giá trị này còn nhỏ hơn giá trị cho phép thì quay lại bƣớc 1 nếu không thì kết thúc.
Lấy thông tin phiên bản của phần mềm đang đƣợc cài đặt tại máy tính tác tử đang thi hành.
Bƣớc 4:
Nếu phiên bản hiện thời khác với phiên bản máy chủ trả về thì trả về thông tin có khác nhau, nếu không thì trả về giá trị không khác.
Bƣớc 5: Kết thúc.
2.2.2.2. Sơ đồ khối
BẮT ĐÂU
Kết nối với máy chủ
Máy chủ có thông tin phản hồi?
Phiên bản hiện thời khác
Phiên bản trên máy chủ?
Kết thúc Đúng
Tăng số lần đã kết nối
Sai Số lần đã kết nối
< số lần kết nối tối đa Đúng
Lấy thông tin phiên bản hiện tại
của phần mềm Trả về thông tin có khác nhau Trả về thông tin không khác nhau Sai Sai Đúng Nhập vào mã phần mềm, số lần kết nối tối đa
2.2.2.3. Giả mã
1. Enter software_id, max_num_request
2. Declare num_request 3. Set num_request to 0
4. While num_request < max_num_request
a. Call connect_server (software_id) Returning newest_version b. If newest_version <> null Then
break;
c. EndIf
d. Increment num_request
5. EndWhile
6. Call get_current_version Returning current_version 7. If newest_version <> current_version Then
Return “Có phiên bản mới”
8. Else
Return “Không có phiên bản mới”
9. EndIf