ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TRỊNH HỒNG NAM
NGHIÊN CỨU CÔNG NGHỆ TÁC TỬ DI ĐỘNG
VÀ XÂY DỰNG ỨNG DỤNG PHÂN TÁN
CẬP NHẬT PHẦN MỀM
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
THÁI NGUYÊN, NĂM 2015
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TRỊNH HỒNG NAM
NGHIÊN CỨU CÔNG NGHỆ TÁC TỬ DI ĐỘNG VÀ XÂY
DỰNG ỨNG DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 0101
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
HƢỚNG DẪN KHOA HỌC: TS. PHẠM THẾ QUẾ
THÁI NGUYÊN, NĂM 2015
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
~ i ~
LỜI CAM ĐOAN
NGHIÊN CỨU CÔNG NGHỆ TÁC TỬ DI ĐỘNG VÀ XÂY
DỰNG ỨNG DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM
Tôi xin cam đoan luận văn “Nghiên cứu công nghệ tác tử di động và xây
dựng ứng dụng phân tán cập nhật phần mềm” là sản phẩm của riêng cá nhân,
không sao chép lại của ngƣời khác. Trong toàn bộ nội dung của luận văn,
những điều đƣợc trình bày hoặc là của cá nhân hoặc là đƣợc tổng hợp, nghiên
cứu từ nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất xứ và
trích dẫn rõ ràng.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo
quy định cho lời cam đoan của mình.
Thái Nguyên, ngày 20 tháng 08 năm 2015
Học viên
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trịnh Hồng Nam
~ ii ~
LỜI CẢM ƠN
Lời đầu tiên, tôi xin bày tỏ lòng biết ơn đến thầy TS Phạm Thế Quế,
ngƣời đã tận tình hƣớng dẫn, chỉ bảo và giúp đỡ tôi trong suốt quá trình
nghiên cứu và hoàn thành luận văn này.
Tôi xin chân thành cảm ơn các thầy cô giáo trƣờng Đại học Công nghệ
Thông tin và Truyền thông - Đại học Thái Nguyên đã giảng dạy và cung cấp
cho chúng tôi những kiến thức rất bổ ích trong thời gian học cao học, giúp tôi
có nền tảng tri thức để phục vụ nghiên cứu khoa học sau này.
Tôi cũng xin cảm ơn Lãnh đạo và đồng nghiệp tại đơn vị đã tạo điều
kiện và giúp đỡ tôi trong suốt quá trình nghiên cứu và hoàn thành luận văn.
Tôi cũng xin bày tỏ lòng cảm ơn đến gia đình và bạn bè, những ngƣời luôn
quan tâm, động viên và khuyến khích tôi trong quá trình học tập.
Thái Nguyên, ngày 20 tháng 08 năm 2015
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trịnh Hồng Nam
~ iii ~
MỤC LỤC
Trang
LỜI CAM ĐOAN .............................................................................................. i
LỜI CẢM ƠN ................................................................................................... ii
MỤC LỤC ........................................................................................................ iii
DANH MỤC CÁC HÌNH ẢNH ...................................................................... ix
MỞ ĐẦU ........................................................................................................... 1
CHƢƠNG 1. TỔNG QUAN VỀ TÁC TỬ DI ĐỘNG VÀ ỨNG DỤNG
PHÂN TÁN CẬP NHẬT PHẦN MỀM ........................................................... 5
1.1. Giới thiệu về tác tử di động ........................................................................ 5
1.1.1. Giới thiệu ........................................................................................ 5
1.1.2. Sự tiến hóa từ các mô hình ứng dụng phân tán ............................... 6
1.1.3. Khái niệm về tác tử di động ............................................................ 7
1.1.4. Các đặc tính của tác tử di động ....................................................... 9
1.1.5. Phân loại tác tử di động ................................................................. 10
1.2. Nguyên lý hoạt động của tác tử di động .................................................. 11
1.2.1. Các phƣơng pháp thực thi mã nguồn trong môi trƣờng mạng...... 11
1.2.2. Vòng đời của một tác tử di động ................................................... 12
1.3. Các lợi ích của tác tử di động ................................................................... 14
1.3.1. Giảm tải mạng ............................................................................... 14
1.3.2. Khắc phục sự trễ mạng .................................................................. 14
1.3.3. Thi hành không đồng bộ và tự trị .................................................. 14
1.3.4. Thích ứng nhanh ........................................................................... 15
1.3.5. Khắc phục tình trạng không đồng nhất ......................................... 15
1.3.6. Mạnh mẽ và có khả năng chế ngự lỗi cao ..................................... 15
1.4. Các ứng dụng của tác tử di động .............................................................. 15
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1.4.1. Tìm kiếm, thu thập thông tin nhiều nơi ........................................ 15
~ iv ~
1.4.2. Theo dõi thông tin ......................................................................... 16
1.4.3. Giám sát và phổ biến thông tin ..................................................... 16
1.4.4. Phân tải .......................................................................................... 16
1.4.5. Tự động đàm phán ........................................................................ 17
1.4.6. Thƣơng mại điện tử ....................................................................... 17
1.4.7. Giải trí ........................................................................................... 17
1.4.8. Tự động cập nhật phần mềm ......................................................... 17
1.5. Ứng dụng phân tán cập nhật phần mềm ................................................... 18
CHƢƠNG 2. MỘT SỐ THUẬT TOÁN TRÊN TÁC TỬ DI ĐỘNG GẮN
VỚI ỨNG DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM .......................... 20
2.1. Phân tích hệ thống tác tử di động ............................................................. 20
2.1.1. Tác tử di động và môi trƣờng thi hành ......................................... 20
2.1.1.1. Thành phần của tác tử di động .................................................. 20
2.1.1.2. Môi trƣờng thi hành .................................................................. 22
2.1.2. Các thao tác của tác tử di động ..................................................... 23
2.1.2.1. Tạo và hủy một tác tử di dộng .................................................. 23
2.1.2.2. Di chuyển tác tử di động ........................................................... 25
2.1.3. Trao đổi, liên lạc giữa các tác tử di động ...................................... 26
2.1.4. Một số hệ thống tác tử di động ..................................................... 27
2.1.4.1. Aglets ........................................................................................ 27
2.1.4.2. Voyager ..................................................................................... 28
2.1.4.3. Mole .......................................................................................... 30
2.1.4.4. ZEUS .......................................................................................... 31
2.2. Một số thuật toán trên tác tử di động ....................................................... 33
2.2.1 Thuật toán tạo và giao nhiệm vụ cho tác tử di động ...................... 33
2.2.1.1. Mô tả thuật toán ........................................................................ 33
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
2.2.1.2. Sơ đồ khối ................................................................................. 34
~ v ~
2.2.1.3. Giả mã ....................................................................................... 35
2.2.2. Thuật toán kiểm tra phiên bản phần mềm ..................................... 35
2.2.2.1. Mô tả thuật toán ........................................................................ 35
2.2.2.2. Sơ đồ khối ................................................................................. 36
2.2.2.3. Giả mã ....................................................................................... 37
2.2.3. Thuật toán thi hành nhiệm vụ tải phần mềm ................................ 37
2.2.3.1. Mô tả thuật toán ........................................................................ 37
2.2.3.2. Sơ đồ khối ................................................................................. 39
2.2.3.3. Giả mã ....................................................................................... 40
2.2.4. Thuật toán thi hành nhiệm vụ cập nhật phần mềm ....................... 40
2.2.4.1. Mô tả thuật toán ........................................................................ 41
2.2.4.2. Sơ đồ khối ................................................................................. 42
2.2.4.3. Giả mã ....................................................................................... 43
2.2.5. Thuật toán tác tử trao đổi thông điệp với máy chủ ....................... 43
2.2.5.1. Mô tả thuật toán ........................................................................ 43
2.2.5.2. Sơ đồ khối ................................................................................. 45
2.2.5.3. Giả mã ....................................................................................... 46
2.2.6. Thuật toán gửi đi một tác tử di động ............................................. 46
2.2.6.1. Mô tả thuật toán ........................................................................ 46
2.2.6.2. Sơ đồ khối ................................................................................. 47
2.2.6.3. Giả mã ....................................................................................... 48
2.2.7. Thuật toán nhận về một tác tử di động ......................................... 48
2.2.7.1. Mô tả thuật toán ........................................................................ 48
2.2.7.2. Sơ đồ khối ................................................................................. 49
2.2.7.3. Giả mã ....................................................................................... 49
2.2.8. Thuật toán liên lạc giữa các tác tử di động ................................... 50
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
2.2.8.1. Mô tả thuật toán ........................................................................ 50
~ vi ~
2.2.8.2. Sơ đồ khối ................................................................................. 51
2.2.8.3. Giả mã ....................................................................................... 52
2.2.9. Thuật toán hủy tác tử di động ....................................................... 52
2.2.9.1. Mô tả thuật toán ........................................................................ 52
2.2.9.2. Sơ đồ khối ................................................................................. 53
2.2.9.3. Giả mã ....................................................................................... 54
CHƢƠNG 3. THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG PHÂN TÁN CẬP
NHẬT PHẦN MỀM ....................................................................................... 55
3.1. Mô tả yêu cầu ........................................................................................... 55
3.1.1. Yêu cầu về chức năng ................................................................... 55
3.1.2. Yêu cầu phi chức năng .................................................................. 55
3.2. Phân tích chi tiết ....................................................................................... 56
3.2.1. Phân tích nghiệp vụ của ứng dụng ................................................ 56
3.2.1.1. Nghiệp vụ quản lý phần mềm ................................................... 56
3.2.1.2. Nghiệp vụ quản lý khách hàng ................................................. 56
3.2.1.3. Nghiệp vụ quản lý tác tử di động ............................................. 57
3.2.1.4. Nghiệp vụ cập nhật phần mềm ................................................. 57
3.2.2. Phân tích mô hình quan hệ thực thể .............................................. 57
3.2.2.1. Mô hình thực thể - liên kết ....................................................... 57
3.2.2.2. Mô tả thực thể ........................................................................... 58
3.2.3. Phân tích các vấn đề bảo mật ........................................................ 59
3.3. Thiết kế ..................................................................................................... 60
3.3.1. Kiến trúc hệ thống ......................................................................... 60
3.3.1.1. Kiến trúc logic .......................................................................... 60
3.3.1.2. Kiến trúc kỹ thuật ..................................................................... 61
3.3.2. Thiết kế chức năng ........................................................................ 62
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
3.3.2.1. Mô tả tổng quan các tình huống sử dụng ................................. 62
~ vii ~
3.3.2.2. Thiết kế chi tiết các tình huống sử dụng ................................... 63
3.3.3. Thiết kế cơ sở dữ liệu .................................................................... 66
3.3.3.1. Thiết kế chung .......................................................................... 66
3.3.3.2. Danh sách các bảng .................................................................. 66
3.3.3.3. Quan hệ giữa các bảng .............................................................. 67
3.3.3.4. Mô tả các bảng .......................................................................... 67
3.5. Kết quả đạt đƣợc ...................................................................................... 69
3.5.1. Mã nguồn một số module phần mềm ............................................ 69
3.5.2. Một số hình ảnh giao diện phần mềm ........................................... 71
3.5.3. Đánh giá, so sánh với các phƣơng pháp khác ............................... 74
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ...................................................... 75
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
TÀI LIỆU THAM KHẢO ............................................................................... 76
~ viii ~
DANH MỤC CÁC TỪ VIẾT TẮT TRONG LUẬN VĂN
AGENT – Tác tử
MOBILE AGENT – Tác tử di động
CSDL – Cơ sở dữ liệu
SERVER – Máy chủ
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
KQML – Ngôn ngữ hƣớng thông điệp
~ ix ~
DANH MỤC CÁC HÌNH ẢNH
Trang
HÌNH 1.1. SỰ TIẾN HÓA CỦA MÔ HÌNH TÁC TỬ DI ĐỘNG .................. 7
HÌNH 1.2. TÁC TỬ – PHƢƠNG PHÁP LẬP TRÌNH .................................... 8
HÌNH 1.3. MÔ HÌNH HOẠT ĐỘNG TÁC TỬ DI ĐỘNG - MOBILE
AGENT ..................................................................................................... 9
HÌNH 1.4. VÒNG ĐỜI CỦA MỘT TÁC TỬ DI ĐỘNG .............................. 13
HÌNH 2.1. SƠ ĐỒ KHỐI THUẬT TOÁN TẠO VÀ GIAO NHIỆM VỤ TÁC
TỬ ........................................................................................................... 34
HÌNH 2.2. SƠ ĐỒ KHỐI THUẬT TOÁN KIỂM TRA PHIÊN BẢN PHẦN
MỀM ....................................................................................................... 36
HÌNH 2.3. SƠ ĐỒ KHỐI THUẬT TOÁN THI HÀNH NHIỆM VỤ TẢI
PHẦN MỀM ........................................................................................... 39
HÌNH 2.4. SƠ ĐỒ KHỐI THUẬT TOÁN THI HÀNH NHIỆM VỤ CẬP
NHẬT PHẦN MỀM ............................................................................... 42
HÌNH 2.5. SƠ ĐỒ KHỐI THUẬT TOÁN TÁC TỬ TRAO ĐỔI THÔNG
ĐIỆP VỚI MÁY CHỦ ............................................................................ 45
HÌNH 2.6. SƠ ĐỒ KHỐI THUẬT TOÁN GỬI ĐI MỘT TÁC TỬ .............. 47
HÌNH 2.7. SƠ ĐỒ KHỐI THUẬT TOÁN NHẬN VỀ MỘT TÁC TỬ DI
ĐỘNG ..................................................................................................... 49
HÌNH 2.8. SƠ ĐỒ KHỐI THUẬT TOÁN LIÊN LẠC GIỮA CÁC TÁC TỬ
DI ĐỘNG ................................................................................................ 51
HÌNH 2.9. SƠ ĐỒ KHỐI THUẬT TOÁN HỦY TÁC TỬ DI ĐỘNG .......... 53
HÌNH 3.1. MÔ HÌNH NGHIỆP VỤ CỦA ỨNG DỤNG ............................... 56
HÌNH 3.2. MÔ HÌNH THỰC THỂ LIÊN KẾT ............................................. 58
HÌNH 3.3. KIẾN TRÚC LOGIC HỆ THỐNG ............................................... 60
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
HÌNH 3.3. KIẾN TRÚC KỸ THUẬT HỆ THỐNG ....................................... 61
~ x ~
HÌNH 3.4. TỔNG QUAN CÁC TÌNH HUỐNG SỬ DỤNG ......................... 62
HÌNH 3.5. TÌNH HUỐNG SỬ DỤNG “QUẢN LÝ PHẦN MỀM” .............. 63
HÌNH 3.6. TÌNH HUỐNG SỬ DỤNG “QUẢN LÝ THÔNG TIN KHÁCH
HÀNG” .................................................................................................... 64
HÌNH 3.7. TÌNH HUỐNG SỬ DỤNG “QUẢN LÝ TÁC TỬ DI ĐỘNG” ... 64
HÌNH 3.8. TÌNH HUỐNG SỬ DỤNG “CẬP NHẬT PHẦN MỀM” ............ 65
HÌNH 3.9. QUAN HỆ GIỮA CÁC BẢNG TRONG CƠ SỞ DỮ LIỆU ....... 67
HÌNH 3.10. GIAO DIỆN TRANG WEB QUẢN LÝ DANH SÁCH PHẦN
MỀM ....................................................................................................... 72
HÌNH 3.11. HÌNH ẢNH GIAO DIỆN CẬP NHẬT PHIÊN BẢN PHẦN
MỀM ....................................................................................................... 72
HÌNH 3.13. HÌNH ẢNH TÁC TỬ DI ĐỘNG THÔNG BÁO ĐANG
DOWNLOAD PHẦN MỀM ................................................................... 72
HÌNH 3.14. HÌNH ẢNH TÁC TỬ DI ĐỘNG THÔNG BÁO ĐANG CẬP
NHẬT PHẦN MỀM ............................................................................... 73
HÌNH 3.15. HÌNH ẢNH TÁC TỬ DI ĐỘNG THÔNG BÁO ĐÃ CẬP NHẬT
THÀNH CÔNG ...................................................................................... 73
HÌNH 3.16. HÌNH ẢNH TẠI MÁY CHỦ THÔNG BÁO TÁC TỬ ĐÃ TÌM
THẤY PHIÊN BẢN MỚI PHẦN MỀM. ............................................... 73
HÌNH 3.17. HÌNH ẢNH TẠI MÁY CHỦ THÔNG BÁO TÁC TỬ DI ĐỘNG
ĐANG DOWNLOAD PHẦN MỀM. ..................................................... 73
HÌNH 3.18. HÌNH ẢNH TẠI MÁY CHỦ THÔNG BÁO TÁC TỬ DI ĐỘNG
ĐANG CẬP NHẬT ................................................................................ 74
HÌNH 3.19. HÌNH ẢNH TẠI MÁY CHỦ THÔNG BÁO TÁC TỬ DI ĐỘNG
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ĐÃ CẬP NHẬT THÀNH CÔNG PHIÊN BẢN MỚI PHẦN MỀM. .... 74
~ 1 ~
MỞ ĐẦU
1. Đặt vấn đề
Tin học ngày càng phát triển dẫn đến việc hình thành nhu cầu tạo ra
những tiểu chƣơng trình nhỏ gọn, thông minh, có khả năng hoạt động độc lập
và kết hợp với những tiểu chƣơng trình khác. Năm 1982, kỹ thuật lập trình lập
hƣớng đối tƣợng đƣợc thay thế kỹ thuật lập trình có cấu trúc truyền thống.
Năm 1994, khái niệm Tác tử phần mềm (Software Agent) đƣợc đƣa ra bởi
Mark Sidell và Chuck Knuff và đến năm 1995 phiên bản đầu tiên của tác tử
(Agent) xuất hiện đã tạo ra một phƣơng pháp lập trình mới.
Tác tử di động là một trong những hƣớng nghiên cứu thu hút nhiều sự
quan tâm nhất từ những năm 1990 đến nay với những đặc điểm rất thích hợp
cho việc phát triển các ứng dụng phân tán.
Tác tử di động là một phần mềm hoạt động độc lập, có khả năng di
chuyển từ máy này qua máy khác trong môi trƣờng mạng, có thể giao tiếp với
nhau để thực hiện theo yêu cầu của chủ nhân của nó.
Trong thực tế, với các khách hàng sử dụng phần mềm tại máy tính cá
nhân của mình, khi cần nâng cấp phiên bản mới hay cài đặt phiên bản vá lỗi
thì nhà cung cấp phải thực hiện điều này trực tiếp hoặc qua mạng internet.
Điều này tối thiểu phải có sự tác động của nhà sản xuất đến máy tính khách
hàng hoặc khách hàng chủ động tải phiên bản mới từ máy chủ của nhà sản
xuất. Do đó gây ra sự lãng phí về thời gian, công sức, tiền bạc mà đôi khi
không đáp ứng kịp thời đƣợc yêu cầu của khách hàng.
Từ thực tế trên kết hợp với khái niệm về tác tử di động, ta có thể xây
dựng một ứng dụng phân tán mà nó có thể cập nhật phần mềm tự động cho
các nhà sản xuất. Sau khi đƣợc yêu cầu, các tác tử sẽ mang các thành phần
phần mềm đƣợc đóng gói cũng nhƣ các thủ tục cài đặt đến các máy cá nhân
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
của khách hàng và tự động cập nhật các phiên bản mới nhất trên máy đó.
~ 2 ~
Để hiểu thêm về vấn đề này, em chọn đề tài “Nghiên cứu công nghệ tác
tử di động và xây dựng ứng dụng phân tán cập nhật phần mềm” nhằm nắm
nguyên tắc thiết kế Tác tử di động từ đó xây dựng các ứng dụng phân tán tự
động cập nhật phần mềm.
2. Mục tiêu nghiên cứu
Mục tiêu của luận văn là nghiên cứu đƣợc tổng quan về tác tử di động,
nguyên lý hoạt động, các lợi ích của tác tử và ứng dụng của nó. Phân tích chi
tiết một hệ thống tác tử di động, các thành phần và các thao tác của nó. Tìm
hiểu bài toán tự động cập nhật phần mềm, phân tích, thiết kế, từ đó xây dựng
ứng dụng phân tán tự động cập nhật phần mềm.
3. Đối tƣợng và phạm vi nghiên cứu
Đối tƣợng nghiên cứu của luận văn là về tác tử di động trong phạm vi
xây dựng ứng dụng cập nhật phần mềm. Ứng dụng xây dựng trong phạm vi
mô phỏng với các tác tử tự động cập nhật phần mềm tại máy tính của khách
hàng hoặc cập nhật sau khi có yêu cầu của ngƣời quản trị.
4. Phƣơng pháp nghiên cứu
Luận văn sử dụng phƣơng pháp nghiên cứu lý thuyết kết hợp với thực
nghiệm.
Nghiên cứu lý thuyết:
− Nghiên cứu về tác tử di động.
− Nguyên cứu về các yêu cầu xây dựng ứng dụng phân tán cập nhật phần
mềm.
Nghiên cứu thực nghiệm:
− Thực hiện xây dựng ứng dụng phân tán cập nhật phần mềm.
− Cài đặt, vận hành thử nghiệm, đánh giá kết quả của ứng dụng.
5. Ý nghĩa khoa học của đề tài
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Về lý thuyết:
~ 3 ~
Đề tài mở ra một hƣớng nghiên cứu mới về các ứng dụng của tác tử di
động cũng nhƣ một phƣơng pháp mới để thực hiện công tác nâng cấp, cập
nhật sản phẩm phần mềm.
Về thực tiễn:
Với việc triển khai thực tiễn luận văn, sẽ tạo điều kiện để các nhà sản
xuất phần mềm có thêm một công cụ cập nhật, nâng cấp sản phẩm của họ
thuận tiện, tiết kiệm hơn về thời gian, công sức, tiền bạc. Ngƣời sử dụng phần
mềm thì có thêm một lựa chọn để nâng cấp, cập nhật phần mềm nhanh chóng,
thuận tiện hơn.
6. Bố cục của luận văn
Dựa trên đối tƣợng và phạm vi nghiên cứu, luận văn sẽ đƣợc chia làm 3
chƣơng chính với các nội dung cụ thể nhƣ sau:
Chương 1. Tổng quan về tác tử di động và ứng dụng phân tán cập
nhật phần mềm.
Ở chƣơng này sẽ trình bày nội dung giới thiệu về Tác tử di động, các
nguyên lý hoạt động và lợi ích của nó, các lĩnh vực ứng dụng của Tác tử di
động. Đồng thời cũng giới thiệu tổng quan về ứng dụng phân tán cập nhật
phần mềm.
Chương 2. Một số thuật toán trên tác tử di động gắn với ứng dụng
phân tán cập nhật phần mềm.
Chƣơng này sẽ phân tích kĩ hơn về hệ thống tác tử di động và trình bày
một số thuật toán đối với tác tử di động, mỗi thuật toán trình bày chi tiết các
bƣớc, sơ đồ khối và viết giả mã. Bên cạnh đó cũng nêu các tình huống sẽ sử
dụng thuật toán trong ứng dụng cập nhật phần mềm.
Chương 3. Thiết kế và xây dựng ứng dụng phân tán cập nhật phần
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
mềm
~ 4 ~
Chƣơng này trình bày về yêu cầu của ứng dụng, bao gồm các yêu cầu về
chức năng và phi chức năng. Phân tích chi tiết bài toán, từ đó có thiết kế kiến
trúc hệ thống, thiết kế chi tiết chức năng, thiết kế cơ sở dữ liệu. Dựa vào nội
dung phân tích, thiết kế và kết quả thực nghiệm, nội dung chƣơng này sẽ nêu
kết quả đạt đƣợc.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Cuối cùng là phần kết luận và hƣớng phát triển.
~ 5 ~
CHƢƠNG 1. TỔNG QUAN VỀ TÁC TỬ DI ĐỘNG VÀ ỨNG
DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM
1.1. Giới thiệu về tác tử di động
1.1.1. Giới thiệu
Sự bùng nổ nhanh chóng các dịch vụ và nguồn thông tin trên mạng đã
làm gia tăng việc khai thác, xử lý thông tin ngày càng trở nên phức tạp và đa
dạng. Có thể kể đến các khuynh hƣớng chính yếu sau:
− Ngƣời dùng di động (Mobile users): Ngày nay ngƣời dùng thƣờng có
nhu cầu truy xuất, tìm kiếm thông tin ở mọi nơi, mọi lúc từ các thiết bị di
động (Mobile devices). Vì vậy việc hỗ trợ kết nối và trên mọi thiết bị là một
thách thức đƣợc đặt ra.
− Nhu cầu chuyên biệt hoá: Việc khai thác thông tin, sử ụng dịch vụ đã
không còn thỏa mãn với các cơ chế thụ động, mà ngƣời dùng thƣờng có
khuynh hƣớng muốn chuyên biệt hoá nhu cầu của mình một cách chủ động.
Internet là cơ sở để thực hiện mong muốn này. Vì vậy, cần hỗ trợ khả năng
chuyên biệt hoá các ứng dụng mạng dành cho ngƣời dùng.
− Nguồn tin đa dạng, khối lƣợng cực lớn: Đã xuất hiện sự bùng nổ thông
tin trên mạng với sự xuất hiện của nhiều kho dữ liệu khổng lồ. Các kho dữ
liệu này lại đƣợc cung cấp từ nhiều nguồn nên thƣờng không đồng nhất về tổ
chức, cấu trúc. Đây sẽ lại là một khó khăn mới đối với ngƣời dùng khi truy
vấn.
− Việc các mạng Intranet đƣợc xây dựng phổ biến là một điều kiện tốt để
triển khai các kỹ thuật mới trong việc xây dựng các ứng dụng mạng. Vì các
mạng Intranet cho phép thiết lập an toàn hệ thống dễ dàng hơn trong một tập
hợp mang tính cộng tác và tin cậy.
− Môi trƣờng không đồng nhất: Khi kết nối các máy tính, các mạng cục
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
bộ vào Internet, các ứng dụng và ngƣời dùng phải đối mặt với một môi trƣờng
~ 6 ~
không đồng nhất về phần cứng, kiến trúc, hệ điều hành…Và bài toán tƣơng
thích cần phải giải quyết.
− Sự khập khiễng về đƣờng truyền: Mặc dù ngành viễn thông đã đạt đến
những tiến bộ đáng kinh ngạc, và cho ra đời các loại cáp quang với tốc
độtruyền tải nhanh đáng kể. Đa số ngƣời dùng vẫn bị giới hạn với các thiết bị
kết nối nhƣ modem hay các đƣờng truyền băng thông thấp với mạng không
dây.
Với tất cả các đặc điểm trên đây, các ứng dụng phân tán phát triển theo
mô hình Client/Server truyền thống tỏ ra một số bất lợi vì đòi hỏi làm việc
đồng bộ, đòi hỏi đƣờng truyền băng thông cao, độ trễ thấp và cuối cùng là các
dịch vụ thiếu linh động, khó thay đổi hay bổ sung. Tác tử di động là một mô
hình trong đó các tiến trình - đƣợc gọi là tác tử có tính tự trị và khả năng di
động từ máy chủ này sang máy chủ khác để hoàn tất tác vụ. Ý tƣởng chủ đạo
của Tác tử di động là di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó có thể
giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và tạo ra
sự tƣơng thích mạnh trên các môi trƣờng không đồng nhất. Tác tử di động với
các ƣu điểm này hứa hẹn một giải pháp mới, hiệu quả và dễ dàng hơn trong
việc phát triển ứng dụng phân tán, đặc biệt tìm kiếm thông tin mới nhất.
1.1.2. Sự tiến hóa từ các mô hình ứng dụng phân tán
Theo truyền thống, các ứng dụng phân tán có cấu trúc theo mô hình
Client/Server sẽ thực hiện việc giao tiếp qua các cơ chế gọi hàm từ xa. Yêu
cầu các mô hình giao tiếp phải đồng bộ. Một kiến trúc tiến bộ hơn là Remote
Evaluation (REV) do Stamos và Gifford đƣa ra vào năm 1990. Trong mô hình
REV, thay vì yêu cầu thực hiện các hàm từ xa thì Client chỉ việc gửi mã
nguồn các hàm của nó đến Server và yêu cầu Server thực hiện rồi trả về kết
quả. Một số hệ thống khác cũng đã giới thiệu khái niệm thông điệp chủ động
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
(active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của
~ 7 ~
chƣơng trình để thực thi tại những vị trí này. Tác tử di động là mô hình tiến
hóa tiên tiến nhất so với các mô hình trƣớc đó.
Hình 1.1. Sự tiến hóa của mô hình tác tử di động
1.1.3. Khái niệm về tác tử di động
Tác tử di động là giải pháp mạng và là công nghệ lập trình hƣớng tác tử,
tiến hóa hơn các mô hình phát triển ứng dụng phân tán trên mạng máy tính
truyền thống. Tác tử di động đƣợc xây dựng dựa trên nhiều công nghệ hiện
đại, không dựa vào nguyên lý Client/Server và cũng không theo các phƣơng
thức triệu gọi từ xa truyền thống. Tác tử di động rất thích hợp cho bài toán
tìm kiếm, khai phá, trích rút thông tin trên mạng Internet
Một tác tử di động có thể di chuyển từ một thiết bị đầu cuối lên mạng
Internet và hoạt động không phụ thuộc vào môi trƣờng và kết nối, thậm chí
User tắt máy hay ngắt kết nối khỏi mạng.
Phát triển các ứng dụng phân tán dựa trên Tác tử di động có thể “giấu
các kênh truyền”, loại trừ khả năng phát hiện và quản lý hoạt động của chúng.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Tác tử di động không đòi hỏi phải cài đặt lại các phần mềm ở mỗi site.
~ 8 ~
Tác tử (Agent) là sự kết hợp của nhiều kỹ thuật tiên tiến về máy tính, kỹ
thuật truyền tin và các lĩnh vực tin học hiện đại (nhƣ hệ thống phân tán, AI &
Khoa học nhận dạng, máy học, mã di động, truy tìm thôngtin, cơ sở dữ liệu và
cơ sở tri thức…). Kết hợp với phƣơng pháp lập trình hƣớng đối tƣợng đã tạo
ra một phƣơng pháp phát triển mới. Phƣơng pháp lập trình hƣớng tác tử.
Phục hồi thông tin Các hệ thống phân tán
Tác tử di động (Mobile Agent) Mã nguồn di động
AI & Khoa học nhận dạng
Cơ sở dữ liệu và cơ sở tri thức Máy học
Hình 1.2. Tác tử – phƣơng pháp lập trình
Máy học nghiên cứu cách thức để mô hình hóa bài toán cho phép máy
tính tự động hiểu, xử lý và học từ dữ liệu để thực thi nhiệm vụ đƣợc giao cũng
nhƣ cách đánh giá giúp tăng tính hiệu quả.
Có rất nhiều định nghĩa khác nhau, thậm chí khác nhau về tác tử di động,
nhƣng có một định nghĩa thƣờng đƣợc sử dụng nhƣ sau:
Định nghĩa: Tác tử di động - Mobile Agent là danh từ ghép giữa Agent
(trợ lý) và Mobile (di động). Là một phần mềm có khả năng di chuyển một
cách tự trị từ nút này sang nút khác trên mạng và thực hiện các giao dịch theo
ủy quyền của chủ nhân để đạt đƣợc mục tiêu giao phó. Có khả năng giao tiếp
với nhau và hoạt động không phụ thuộc vào môi trƣờng. Khi di chuyển, tác tử
di động đóng gói mã nguồn, dữ liệu và trạng thái thi hành. Vì vậy nó có thể
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
dừng việc thi hành tại nút này, tiếp tục thi hành trên nút khác.
~ 9 ~
2-Tác tử di động di trú
S
S
3- Tác tử di động
di trú
4- Tác tử di động trả kết quả
S
1- Tác tử di động (Code, Data, State)
Hình 1.3. Mô hình hoạt động tác tử di động - Mobile Agent
Tác tử di động là một mô hình hiệu quả cho các ứng dụng phân tán. Đặc
biệt thích hợp và rất hiệu quả trong trong các giải pháp tìm kiếm thông tin cập
nhật mới nhất. Có thể thực hiện trên các môi trƣờng khác nhau, trên các thiết
bị đầu cuối khác nhau, nhƣ các máy tính di động laptop, máy tính tại nhà và
máy di động cầm tay. Các thiết bị này thƣờng disconnect trong một khoảng
thời gian dài, thƣờng có băng thông trễ, kết nối mạng không tin cậy, và
thƣờng thay đổi địa chỉ mạng qua mỗi lần kết nối.
1.1.4. Các đặc tính của tác tử di động
Các đặc tính cơ bản của tác tử di động bao gồm:
a) Tính tự trị (autonomous): là khả năng tự kiểm soát bản thân của tác
tử di động sau khi đƣợc giao việc mà không cần sự can thiệp của ngƣời dùng
hoặc của tác tử khác [3]. Có hai đặc tính thƣờng đƣợc dùng để đánh giá về sự
tự trị của tác tử di động. Đó là đặc tính hƣớng đích (goal-oriented) và tính
chủ động (pro-activeness). Khả năng tự trị của tác tử di động chủ yếu đƣợc
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
quyết định bởi tri thức trang bị cho tác tử di động.
~ 10 ~
b) Tính di động (mobility): Là khả năng di chuyển từ môi trƣờng thi
hành này sang môi trƣờng khác của một tác tử. Đồng thời giữ nguyên trạng
thái và khả năng hoạt động của nó. Các tác tử có đặc điểm này đƣợc gọi là tác
tử di động. Việc thiết kế và cài đặt tác tử di động đặt ra các yêu cầu đặc biệt
về vấn đề an ninh hệ thống [1].
c) Tính thích ứng (reactiveness): là khả năng của tác tử có thể thực thi
trên những môi trƣờng lạ, và cảm nhận đƣợc sự thay đổi của môi trƣờng.
d) Khả năng cộng tác (collaboration): Tác tử di động có khả năng tƣơng
tác với ngƣời dùng hoặc các tác tử khác để thực hiện nhiệm vụ của riêng mình
hoặc để giúp đỡ các đối tác khác.
e) Khả năng tự học: Tự học hoặc học tự động là khả năng của tác tử thu
thập các kiến thức mới từ kinh nghiệm thu lƣợm đƣợc, chẳng hạn qua các lần
thành công và thất bại. Kết quả tự học phải làm cho các tác tử hành động tốt
hơn, hiệu quả hơn.
1.1.5. Phân loại tác tử di động
a) Phân loại theo tính năng
− Tác tử tĩnh: Là các tác tử chỉ làm việc trên một hệ thống, nơi mà tác tử
bắt đầu vòng đời. Nếu tác tử tĩnh cần thông tin ở một hệ thống khác hoặc
muốn tƣơng tác với tác tử ở hệ thống khác thì chúng phải sử dụng một trong
các cơ chế truyền thông khác nhƣ RPC, RMI, DCOM...
− Tác tử di động: Không phụ thuộc vào hệ thống nơi chúng bắt đầu làm
việc. Có khả năng di chuyển tù nơi này đến nơi khác trong hệ thống mạng
máy tính tại những thời điểm và vị tri do tác tử lựa chọn. Có hai loại tác tử di
động
Di động mạnh (strong mobility) là khả năng mà hệ thống có thể di
chuyển đồng thời mã chƣơng trình, dữ liệu và trạng thái thi hành
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
của tác tử đến một môi trƣờng khác.
~ 11 ~
Di động yếu (weak mobility) là khả năng của hệ thống chỉ có thể di
chuyển mã chƣơng trình giữa các môi trƣờng thi hành với nhau.
Mã nguồn có thể mang kèm theo một số dữ liệu khởi tạo nhƣng
trạng thái thi hành thì không thể di chuyển.
Trạng thái là môi trƣờng thực thi dữ liệu của tác tử, bao gồm
chƣơng trình đếm và ngăn xếp thực thi. Dữ liệu bao gồm các giá trị
sử dụng của tác tử, nhƣ là tri thức, các file xác định...
b) Phân loại theo mục đích
− Tác tử cộng tác: là một phần mềm giúp dùng để giải quyết các vấn đề
phức tạp nhƣ sửa lỗi, đề nghị nên làm gì tiếp theo và lƣu ý đến những vấn đề
ở cấp thấp.
− Tác tử giao diện: là một chƣơng trình giao diện trực tiếp, nhƣng không
có sự hƣớng dẫn trực tiếp từ ngƣời dùng. Tác tử giao diện đọc dữ liệu ngƣời
dùng nhập vào và có thể tạo ra sự thay đổi tới đối tƣợng trên màn hình. Tác tử
giao diện có thể quan sát nhiều tham số nhập vào của ngƣời dùng trong một
khoảng thời gian nào đó trƣớc khi quyết định thực hiện một hành động.
− Tác tử thông minh: Có đầy đủ cả 3 mục đích: giao tác, tự động và dễ
thích nghi.
1.2. Nguyên lý hoạt động của tác tử di động
1.2.1. Các phƣơng pháp thực thi mã nguồn trong môi trƣờng mạng
Có 3 cách thực thi mã nguồn (code)
a) Kỹ thuật pull code: Áp dụng trong mô hình Client/Server
− Bƣớc 1 : Client gửi yêu cầu đến Server
− Bƣớc 2 : Server gửi code cho Client
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
− Bƣớc 3 : Code đƣợc thực thi ở Client
~ 12 ~
b) Kỹ thuật push code: Khi có yêu cầu từ ngƣời dùng, một nút trong
mạng sẽ gửi code đến một nút khác trong cùng môi trƣờng mạng và thực thi
trên máy đó. Thao tác này gồm 2 bƣớc :
− Bƣớc 1 : Nút A gửi code đến nút B mà không có yêu cầu từ phía B.
Trong mô hình này, A chỉ là nút có nối mạng với B, không cần điều kiện A
phải là Server
− Bƣớc 2: Nút B thực thi code và gửi kết quả về cho ngƣời dùng.
− Chú ý: ở A vẫn lƣu trữ 1 bản sao của code.
c) Kỹ thuật autonomous code: Code tự quyết định sẽ đi và thực thi ở đâu
− Bƣớc 1: Code sau khi thực thi ở A sẽ tự đóng gói và di trú tới B
− Bƣớc 2: Code thực thi ở B, lúc này code hoàn toàn không còn ở A
− Tự quyết định đóng gói, không để lại bản sao và di trú đến đâu là
điểm khác biệt của tấc tử di động với 2 kỹ thuật trên.
1.2.2. Vòng đời của một tác tử di động
Vòng đời tác tử bắt đầu khi tác tử đƣợc tạo ra trên một host. Khi đó, tác
tử sẽ đƣợc cấp một định danh duy nhất. Tình trạng ban đầu cũng có thể đƣợc
khởi tạo theo. Khi đã sẵn sàng hoặc nhận đƣợc lệnh để di trú đến một host
khác nằm trong đƣờng đi của tác tử, tác tử sẽ lƣu lại trạng thái hiện hành và
tiến hành quá trình di trú. Nếu di trú thất bại, tác tử sẽ tự ngừng hoạt động
(deactivate) để rồi nó sẽ tự kích hoạt lại sau một khỏang thời gian định trƣớc
và sẽ tiến hành lại quá trình di trú đến host khác.
Khi đã di trú đến host mới thành công, tác tử sẽ phục hồi lại trạng thái.
Lúc này, tác tử bắt đầu thực thi nhiệm vụ của nó, sử dụng các dịch vụ trên
host, liên lạc với tác tử khác….
Sau khi tác tử đã hoàn tất nhiệm vụ, tác tử có thể bị huỷ hoặc chuyển
sang trạng thái ngủ đông cho đến khi có yêu cầu từ bộ đếm trong thân tác tử.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Khi đó, tác tử sẽ lƣu lại trạng thái và di trú đến một host khác.Vòng đời tác tử
~ 13 ~
lại lặp lại theo trình tự nhƣ trên cho đến khi nó hoàn thành nhiệm vụ hoặc hết
thời gian hoạt động thì tác tử sẽ bị hủy.
Creation: Khởi tạo, phát sinh ID cho tác tử, tuỳ biến cấu hình cho tác tử
Serialize: Lƣu lại trạng thái tác tử trƣớc khi di trú đến AgentOS khác
Migrate: Di trú tác tử kèm tình trạng của nó đến một nơi khác
Deserialize: Tái tạo lại trạng thái trƣớc khi di trú của tác tử
Execute: Truy cập vào các dịch vụ của host, liên lạc với các tác tử khác,
hoàn thành nhiệm vụ của tác tử
Migrate Request: Yêu cầu đƣợc di trú đến 1 host khác
Destroy or sleep: Khi nhiệm vụ đã hoàn thành hoặc gặp một trở ngại gì
đó không thể tiếp tục hoạt động thì tác tử sẽ tự hủy hoặc tự đƣa nó vào trạng
thái ngủ đông (sleep).
Mọi tác tử đều thực hiện các công việc của nó tuần tự theo logic: đầu
tiên, tác tử đƣợc tạo ra, di trú từ host này sang host khác và cuối cùng bị huỷ
sau khi hoàn thành nhiệm vụ.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 1.4. Vòng đời của một tác tử di động
~ 14 ~
1.3. Các lợi ích của tác tử di động
1.3.1. Giảm tải mạng
Kỹ thuật tác tử di động cho phép ngƣời dùng đóng gói cuộc trao đổi, gởi
nó đến máy đích và thực hiện xử lý dữ liệu, trao đổi cục bộ tại đó. Nhƣ thế sẽ
góp phần làm giảm những dòng dữ liệu thô trên mạng ; và nhƣ thế, tải mạng
sẽ giảm đáng kể. Phƣơng châm thực hiện của kỹ thuật tác tử di động là: mang
xử lý đến nơi chứa dữ liệu hơn là mang dữ liệu về chỗ xử lý.
1.3.2. Khắc phục sự trễ mạng
Việc điều khiển các hệ thống với quy mô lớn thông qua mạng sẽ phải
chấp nhận một sự trễ hạn nhất định. Nhƣng điều đó lại không đƣợc phép xảy
ra trong các hệ thống thời gian thực nhƣ điều khiển robot, quy trình sản xuất...
Khi đó, giải pháp tác tử di động tỏ ra hữu ích trong việc khắc phục độ trễnhờ
vào việc các tác tử có thể đƣợc gửi đi từ một trung tâm điều khiển và hành
động cục bộ, tự trị, trực tiếp thi hành các chỉ dẫn của ngƣời điều khiển.
3.1.3.1. Đóng gói các giao thức Khi dữ liệu đƣợc trao đổi trong hệ thống phân
tán, việc truyền và nhận dữ liệu phải đƣợc mã hóa bởi các giao thức cần thiết.
Các giao thức này đƣợc sở hữu bởi mỗi máy trong hệ thống. Tuy nhiên, một
khi các giao thức phải tiến hóa để phù hợp với những yêu cầu mới về sự bảo
mật hoặc tính hiệu quả, chúng bắt đầu trở nên cồng kềnh, nặng nề và trở thành
vấn đề nan giải. Riêng với giải pháp tác tử di động, các tác tử có thể mang
trên mình các giao thức thích hợp và di chuyển tới các máy ở xa đểthiết lập
các kênh truyền nhận thông tin tƣơng ứng.
1.3.3. Thi hành không đồng bộ và tự trị
Thông thƣờng, các thiết bị di động thƣờng phụ thuộc vào các kết nối
mạng đắt tiền nhƣng rất yếu ớt. Vì thế, những tác vụ cần có kết nối liên tục
giữa thiết bị di động và mạng cố định có thể sẽ không có tính kinh tế hoặc
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
không khả thi về mặt kỹ thuật. Giải pháp tác tử di động giải quyết vấn đề này
~ 15 ~
bằng cách nhúng tác vụ cần thực hiện vào tác tử, rồi gửi lên mạng. Sau khi
đƣợc gửi đi, tác tử trở nên độc lập thi hành không đồng bộ và có khả năng tự
trị. Các thiết bị di động sau đó có thể kết nối trở lại để đón tác tử về.
1.3.4. Thích ứng nhanh
Các tác tử có khả năng cảm nhận những thay đổi của môi trƣờng thi
hành và tác động trở lại những thay đổi ấy một cách tự động.
1.3.5. Khắc phục tình trạng không đồng nhất
Việc xử lý tính toán trên mạng cơ bản là không đồng nhất vì sự đa dạng
về phần cứng và phần mềm đƣợc sử dụng. Do tác tử di động độc lập với máy
tính (phần cứng và hệ điều hành) và tầng vận chuyển, chỉ phụ thuộc vào môi
trƣờng thi hành, nên chúng cung cấp một điều kiện tối ƣu cho việc liên kết
các hệ thống không liên quan gì lại với nhau.
1.3.6. Mạnh mẽ và có khả năng chế ngự lỗi cao
Với khả năng phản ứng năng động với các sự kiện và những thay đổi bất
lợi, tác tử di động giúp cho việc xây dựng hệ thống mạnh mẽ và chịu lỗi cao
đƣợc dễ dàng hơn.
1.4. Các ứng dụng của tác tử di động
1.4.1. Tìm kiếm, thu thập thông tin nhiều nơi
Tìm dữ liệu từ cơ sở dữ liệu phân tán là ứng dụng phổ biến của tác tử di
động. Thay vì di chuyển lƣợng lớn dữ liệu đến bộ xử lý tìm kiếm để tạo chỉ
mục tìm kiếm, ta sẽ gửi các tác tử đến nguồn chứa thông tin từ xa, nơi mà chỉ
mục tìm kiếm sẽ đƣợc tạo
Một trong các khác biệt chính giữa mã nguồn di động và tác tử di động
là lộ trình. Trong khi mã nguồn di động luôn di chuyển từ điểm A đến điểm B
thì tác tử di động có 1 lộ trình và có thể lần lƣợt di chuyển qua nhiều site. Do
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
đó, 1 ứng dụng rõ ràng của tác tử di động là thu thập thông tin trên mạng
~ 16 ~
1.4.2. Theo dõi thông tin
Một số thông tin không trải ra theo không gian mà theo thời gian. Các
thông tin mới không ngớt đƣợc đƣa ra và công bố trên mạng. Các tác tử gửi đi
có thể đợi cho tới khi lấy đƣợc thông tin chắc chắn.
Loại ứng dụng này nêu bản chất không đồng bộ của tác tử di động. Nếu
bạn gửi đi 1 tác tử, bạn không cần ngồi đợi kết quả. Bạn có thể lâp trình cho
tác tử để nó đợi lấy đƣợc thông tin chắc chắn. Ngoài ra, bạn cũng không cần
kết nội mạng cho tới khi tác tử gửi về kết quả. Một tác tử có thể đợi cho tới
khi nào bạn kết nối lại.
1.4.3. Giám sát và phổ biến thông tin
Các tác tử di động là một minh họa cho mô hình Internet push, Các tác
tử có thể phổ biến tin tức và cập nhật phần mềm tự động cho các nhà sản xuất.
Các tác tử mang các software compoments cũng nhƣ các thủ tục cần thiết đến
các máy cá nhân của khách hàng và tự cập nhật phần mềm trên máy đó. Mô
hình này giúp cho nhà sane xuất chủ động hơn trong việc phục vụ khách hàng
để đảm bảo chất lƣợng dịch vụ của mình. Mặt khác, các ứng dụng thuộc loại
này cũng tỏ ra hiệu quả đối với giám sát mạng cục bộ hay các chƣơng trình
quản lý hoạt động, sản xuất… để giúp ngƣời quản trị giám sát các hệ thống
con.
1.4.4. Phân tải
Vì các tác tử di động có thể tạo ra nhiều bản sao của nó trên mạng, dó đó
ứng dụng tiềm năng của tác tử di động là xử lý các tác vụ song song, phân tải
cho các máy tính. Một ứng dụng đòi hỏi quá nhiều tài nguyên bộ xử lý có thể
đƣợc phân bố cho các tác tử di động mang đi thực hiện trên nhiều máy tính
khác nhau để tận dụng các tài nguyên rảnh rỗi và cân bằng tải. Hệ tác tử di
động không đồng nhất là một ví dụ minh họa khai thác ƣu điểm này của mô
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
hình tác tử di động.
~ 17 ~
1.4.5. Tự động đàm phán
Bên cạnh việc tìm kiếm cơ sở dữ liệu và file, các tác tử còn thu thập
thông tin bằng cách tƣơng tác với các tác tử khác. Ví dụ nếu bạn muốn lên
lịch hẹn với 1 ngƣời, bạn sẽ gửi tác tử tƣơng tác với tác tử đại diện của ngƣời
đó. Các tác tử sẽ đàm phán với nhau và sắp xếp lịch.
1.4.6. Thƣơng mại điện tử
Thƣơng mại điện tử là môi trƣờng tốt để áp dụng công nghệ tác tử di
động. Một tác tử di động có thể thay bạn đi mua sắm, bao gồm việc đặt hàng
và trả tiền. Chẳng hạn, nếu bạn muốn mua 1 vé máy bay từ Việt Nam sang
Hoa Kỳ, 1 tác tử có thể tới cơ sở dữ liệu của hãng hàng không, tham khảo giá
và tìm ra chuyển bay tốt nhất, thời gian thích hợp sau đó thanh toán qua credit
card của bạn.
Thƣơng mại điện tử cũng xảy ra giữa các tác tử. Ví dụ có 1 host dành
tiếng để mua bán xe. Nếu bạn muốn mua 1 chiếc xe, bản gửi tác tử sở thích
của bạn, giá cả và các thức trả giá. Bạn gửi tác tử của bạn đến host đi, ở đó nó
sẽ mặc cả và đàm phán với tác tử của host để thực hiện giao dịch giúp bạn.
1.4.7. Giải trí
Tác tử cũng có thể áp dụng vào giải trí, cụ thể là áp dụng vào game.
Trong kịch bản game, các tác tử đại diện cho ngƣời chơi. Các tác tử đua tranh
với nhau nhân danh ngƣời chơi. Mỗi ngƣời sẽ lập 1 chiến lƣợc cho tác tử của
mình, sau đó gửi tác tử đến host game. Host game sẽ đàm phán và xử lý các
tác tử.
1.4.8. Tự động cập nhật phần mềm
Tác tử di động có thể đóng vai trò nhƣ cán bộ kỹ thuật của đơn vị sản
xuất phần mềm. Tự động kiểm tra phiên bản phần mềm tại máy tính của
khách hàng, so sánh với phiên bản mới nhất mà đơn vị sản xuất cung cấp, từ
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
đó tự động cập nhật vào máy tính của khách hàng. Các tác tử có thể di chuyển
~ 18 ~
giữa các máy tính của khách hàng để mang phiên bản phần mềm mới đi theo.
Ngoài ra chúng có thể tự ra quyết định cập nhật hoặc thực hiện theo chỉ đạo
của máy chủ.
1.5. Ứng dụng phân tán cập nhật phần mềm
Trong thực tế, khi các công ty sản xuất phần mềm cung cấp sản phẩm
của mình cho khách hàng, sản phẩm của họ đƣợc cài đặt tại máy tính cá nhân
của khách hàng đó. Khi có nhu cầu nâng cấp phiên bản mới thì có những
phƣơng pháp truyền thống sau:
− Cán bộ kỹ thuật đến cập nhật phần mềm trực tiếp tại máy tính của
khách hàng.
− Cán bộ kỹ thuật sử dụng các phần mềm truy cập máy tính từ xa để cập
nhật phần mềm cho khách hàng qua mạng internet.
− Khách hàng tự tải phiên bản mới của phần mềm từ trang chủ của công
ty sản xuất sau đó tự cập nhật vào máy tính của mình.
Ngoài các phƣơng pháp truyền thống trên, trong những năm gần đây một
số công ty, hãng sản xuất phần mềm lớn đã áp dụng phƣơng pháp xây dựng
một ứng dụng độc lập, phân tán để thực hiện nhiệm vụ cập nhật phần mềm.
Ứng dụng đó thƣờng đƣợc chia thành 2 phân hệ chính nhƣ sau:
− Phân hệ quản lý khách hàng và sản phẩm phần mềm tại máy chủ:
Tại phân hệ này, ứng dụng có thể quản lý thông tin về các khách hàng
của nhà cung cấp, quản lý thông tin về các phần mềm, các phiên bản và các
bộ cài đặt của các phiên bản. Tại đây, ngƣời quản trị của hãng cung cấp phần
mềm có thể lựa chọn tất cả hoặc một số khách hàng đƣợc cập nhật phiên bản
mới của phần mềm. Khi đƣợc lựa chọn và kích hoạt thì phân hệ tại máy tính
của khách hàng sẽ tự động kết nối với máy chủ để tải phiên bản mới về thực
hiện cập nhật.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
− Phân hệ phần mềm phân tán thực hiện nhiệm vụ cập nhật phần mềm:
~ 19 ~
Tại phân hệ này, ứng dụng liên tục có sự kết nối với máy chủ để đối
chiếu phiên bản phần mềm mới nhất so với phiên bản tại máy khách hàng.
Nếu có phiên bản mới và đƣợc sự cho phép tại máy chủ thì ứng dụng tại phân
hệ này sẽ tự động thực hiện việc tải và cập nhật phần mềm. Ứng dụng tại
phân hệ này có khả năng liên lạc với máy chủ, liên lạc với các máy tính của
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
các khách hàng khác để chủ động tải, chia sẻ các phiên bản phần mềm.
~ 20 ~
CHƢƠNG 2. MỘT SỐ THUẬT TOÁN TRÊN TÁC TỬ DI ĐỘNG
GẮN VỚI ỨNG DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM
2.1. Phân tích hệ thống tác tử di động
2.1.1. Tác tử di động và môi trƣờng thi hành
2.1.1.1. Thành phần của tác tử di động
Tác tử di động là một thực thể có năm thuộc tính : trạng thái, mã thi
hành, giao diện, định danh, và các thân chủ (ngƣời ủy quyền). Khi một tác tử
di chuyển trên mạng nó sẽ mang theo các thuộc tính này.
− Trạng thái: Là giá trị để tác tử có thể để tiếp tục thực thi nhiệm vụ sau
khi đã di chuyển.
− Mã cài đặt: là mã nguồn của các tác tử nhằm mục đích thực thi nhiệm
vụ.
− Giao diện: dùng để phục vụ cho việc liên lạc giữa các tác tử.
− Định danh: là giá trị dùng để nhận diện và định vị các tác tử khi di
chuyển.
− Thân chủ: là giá trị dùng để xác định quyền truy cập và sử dụng tài
nguyên.
a) Trạng thái
Khi một tác tử di chuyển, nó cần phải mang theo trạng thái của mình đi
cùng. Đây là đặc điểm của tất cả các tác tử di động để có thể tiến hành thực
hiện lại các thao tác ở máy đích.
Trạng thái của tác tử tại bất kì thời điểm nào cũng là thể hiện của quá
trình thực thi nhiệm vụ của nó. Đối với hầu hết ngôn ngữ lập trình chúng ta có
thể chia trạng thái của tác tử thành trạng thái thi hành và trạng thái đối tƣợng.
Trạng thái thi hành gồm các bộ đếm chƣơng trình, tình trạng ngăn xếp,
trạng thái đối tƣợng gồm giá trị của các biến thể hiện trong đối tƣợng.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
b) Mã thi hành
~ 21 ~
Giống nhƣ bất kì chƣơng trình máy tính nào khác, một tác tử di động cần
phải có mã để thi hành. Khi di chuyển, nó có thể lựa chọn hoặc là mang theo
mã thi hành, hoặc là đến máy đích rồi xem đã có mã thi hành tại đó chƣa, nếu
chƣa thì tải các mã còn thiếu về.
Mã của tác tử phải vừa có thể thực hiện đƣợc tại máy đích và phải vừa
an toàn cho máy này khi thi hành, Các ngôn ngữ thông dịch và kịch bản hiện
nay đƣa ra một cơ chế an toàn, cho phép hạn chế việc truy cập tới các tài
nguyên dành riêng của máy. Điều này thực hiện đƣợc do môi trƣờng thi hành
độc lập với hệ nền cũng nhƣ đƣợc kiểm soát chặt chẽ.
c) Giao diện
Để các tác tử và các hệ thống khác tƣơng tác với nó, tác tử cần phải có
một giao điện. Đây là các phƣơng thức cho phép các tác tử và các ứng dựng
khác truy cập đến tác tử hay cho phép các tác tử liên lạc ở dạng “ngôn ngữ tác
tử” nhƣ là KQML (Knowledge Query and Manipulation Language).
KQML là một ngôn ngữ cho việc liên lạc giữa các tác tử. KQML đƣa ra
nhiều kiểu thông điệp. Các kiểu thông điệp này có thể giúp đỡ các tác tử xử lí
các yêu cầu của chúng. KQML và cú pháp cũng nhƣ ngữ nghĩa của nó tồn tại
ở mức trên cơ sở hạ tầng liên lạc giữa các tác tử.
d) Định danh
Mọi tác tử có một định danh duy nhất trong suốt thời gian sống của nó.
Các tác tử cần có các định danh để chúng có thể đƣợc nhận biết và đƣợc định
vị qua các dịch vụ. Một định danh có thể đƣợc kết hợp từ định danh của thân
chủ và một mã số. Bởi vì các định danh của tác tử là duy nhât xét trên toàn
cục và không thể thay đổi, nên nó có thể đƣợc dùng nhƣ là một khóa trong các
thao tác đòi hỏi tham chiếu tới một thể hiện cụ thể tác tử.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
e) Các thân chủ
~ 22 ~
Thân chủ là thực thể mà mã nhận dạng của nó đƣợc dùng để xác nhận
các quyền hạn khi tác tử muốn truy cập tới bất cứ hệ thống nào. Thân chủ có
thể là một cá nhân, một tổ chức, hay một công ty... Mã nhận dạng bao gồm
tên và các thuộc tính có thể khác. Đối với các tác tử ta thấy nó có ít nhất hai
thân chủ :
− Tác giả: ngƣời cung cấp cài đặt tác tử.
− Chủ sở hữu: ngƣời có trách nhiệm pháp lý và đạo đức cho các hành vi
của tác tử.
2.1.1.2. Môi trƣờng thi hành
Đây chính là nơi mà tác tử tồn tại trong suốt chu kì sống của nó. Nó cũng
có thể đƣợc xem nhƣ là điểm vào cho các tác tử “khách” (các tác tử đến từ
các máy khác) muốn thi hành. Môi trƣờng thi hành cung cấp tập các dịch vụ
giống nhau để tác tử có thể dựa trên đó mà thi hành bất kể nó ở đâu. Ta có thể
xem môi trƣờng thi hành nhƣ là “hệ điều hành” cho tác tử. Bốn khái niệm sau
đóng vai trò quan trọng trong các môi trƣờng thi hành:
− Động cơ, máy ảo phục vụ cho một hay nhiều môi trƣờng thi hành.
− Các nguồn tài nguyên: các cơ sở dữ liệu, bộ xử lí, và các dịch vụ khác
đƣợc cung cấp bởi máy đó.
− Vị trí: địa chỉ mạng của môi trƣờng thi hành.
− Các thân chủ: thực thể chịu trách nhiệm pháp lí cho các thao tác của
môi trƣờng thi hành.
a) Động cơ
Các môi trƣờng không thể tự nó thi hành các tác tử. Để làm điều đó, các
tác tử phải tồn tại trong một động cơ. Động cơ này cũng cung cấp cho các môi
trƣờng thi hành và các tác tử những liên kết tới tầng mạng nằm dƣới và các tài
nguyên khác mà máy đó cung cấp. Trong mô hình này, động cơ mang ý nghĩa
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
là một thực thể vật lí hơn một khái niệm logic.
~ 23 ~
Một máy tính trong mạng có thể quản lí nhiều động cơ, mỗi động cơ có
thể quản lí nhiều môi trƣờng thi hành, và mỗi môi trƣờng thi hành có thể quản
lí nhiều tác tử. Do một động cơ có thể chứa nhiều hơn một môi trƣờng thi
hành nên đòi hỏì các môi trƣờng thi hành phải có tên duy nhất trong một động
cơ.
Trong một số hệ thống tác tử di động có thể không có khái niệm môi
trƣờng thi hành rạch ròi. Trong những hệ thống nhƣ vậy, có thể xem chính
các động cơ là một dạng môi trƣờng thi hành.
b) Các nguồn tài nguyên
Động cơ và môi trƣờng thi hành cung cấp việc truy cập (có kiểm soát)
tới các tài nguyên và dịch vụ cục bộ nhƣ là các cơ sở dữ liệu, các bộ vi xử lí
và bộ nhớ, các ổ đĩa, và các dịch vụ phần cứng cũng nhƣ phần mềm khác.
c) Vị trí
Vị trí là một khái niệm quan trọng đối với tác tử di động. Vị trí của một
tác tử là sự kết hợp giữa tên môi trƣờng mà nó thi hành trong đó và địa chỉ
mạng của động cơ mà trong đó môi trƣờng thi hành tồn tại. Vị trí này thƣờng
đƣợc viêt dƣới dạng một địa chỉ IP kết hợp với một cổng của động cơ và với
tên của môi trƣờng thi hành.
d) Các thân chủ
Cũng giống nhƣ tác tử, môi trƣờng thi hành cũng có hai thân chủ, đó là:
ngƣời cung cấp cài đặt, và ngƣời điều hành môi trƣờng.
2.1.2. Các thao tác của tác tử di động
2.1.2.1. Tạo và hủy một tác tử di dộng
Hai thao tác cơ bản nhất trong chu kì sống của tác tử di động đó là tạo ra
và hủy bỏ nó.
Tác tử di động đƣợc tạo ra trong một môi trƣờng thi hành nào đó. Việc
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
tạo này có thể đƣợc yêu cầu hoặc bởi một tác tử nằm trong cùng môi trƣờng
~ 24 ~
thi hành hoặc bởi một tác tử khác. Ngƣời tạo phải đƣợc môi trƣờng xác nhận
cho phép, đồng thời thiết lập các quyền và các nhiệm vụ đƣợc ủy quyền mà
tác tử mới sẽ xử lí. Ngƣời tạo cũng có thể cung cấp các tham số khởi động
cho tác tử. Các định nghĩa lớp cần cho việc khởi tạo tác tử có thể có trên máy
cục bộ hay máy ở xa, hay nếu cần, có thể đƣợc cung cấp bởi ngƣời tạo. Việc
tạo bao gồm ba bƣớc :
− Gán định danh: các cài đặt đƣợc nạp và thi hành, đối tƣợng tác tử
đƣợc khởi tạo và định nghĩa cả giao tiếp và cài đặt của tác tử. Sau đó, môi
trƣờng thi hành sẽ gán cho tác tử một định danh duy nhất.
− Khởi tạo: tác tử đƣợc phép tự khởi tạo bằng cách sử dụng các tham số
khởi động đƣợc cung cấp bởi ngƣời tạo. Chỉ khi nào việc khởi tạo đã đƣợc
hoàn thành, tác tử mới đƣợc xem nhƣ là tồn tại.
− Thi hành tự trị: sau khi đƣợc xem là tồn tại, tác tử bắt đầu việc thi hành
của nó. Giờ đây nó có khả năng thi hành độc lập với các tác tử khác trong
cùng môi trƣờng thi hành.
Hầu hết các tác tử bị hủy trong một môi trƣờng thi hành nào đó. Việc
hủy có thể đƣợc khởi xƣớng bởi chính nó hay bởi tác tử khác nằm trong cùng
môi trƣờng thi hành. Một tác tử cũng có thể bị hủy bởi hệ thông vì một trong
các lí do sau :
− Hết thời gian của chu kì sống.
− Không còn sử dụng vì không ai tham chiếu đến hay sử dụng tác tử.
− Xâm phạm sự an toàn.
− Hệ thống đang shutdown.
Việc hủy một tác tử là một qui trình gồm hai bƣớc :
− Chuẩn bị cho việc hủy: tác tử đƣợc thông báo và đƣợc phép kết thúc
các trạng thái hiện hành của nó trƣớc khi bị hủy.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
− Đình chỉ thỉ hành: môi trƣờng đình chỉ việc thi hành của tác tử.
~ 25 ~
2.1.2.2. Di chuyển tác tử di động
Quá trình di chuyển có thể đƣợc yêu cầu bởi chính tác tử hay bởi các tác
tử khác trong cùng môi trƣờng thi hành. Sau đó, môi trƣờng thi hành hiện
hành (môi trƣờng thi hành nguồn) chứa tác tử sẽ gửi tác tử đi tới môi trƣờng
thi hành đích đã định trƣớc.
Môi trƣờng thi hành nguồn và môi trƣờng thi hành đích sẽ quản lí tiến
trình gửi tác tử. Khi môi trƣờng thi hành nguồn liên lạc đƣợc với môi trƣờng
thi hành đích, môi trƣờng thi hành đích có thể hoặc đáp ứng hoặc không đáp
ứng yêu cầu di chuyển. Trong trƣờng hợp không đáp ứng đƣợc, môi trƣờng
thi hành đích trả về tín hiệu lỗi cho môi trƣờng thi hành nguồn. Nếu môi
trƣờng thi hành nguồn không thể liên lạc đƣợc với môi trƣờng thi hành đích,
nó phải trả về tín hiệu lỗi cho tác tử.
− Gửi đi một tác tử
Khi một tác tử di động chuẩn bị dì chuyển, nó phải có khả năng xác định
đích đến của nó. Nếu môi trƣờng thi hành đích không đƣợc xác định, tác tử sẽ
thi hành trong môi trƣờng thi hành mặc định của hệ thống tác tử đích, Một khi
vị trí của đích đƣợc xác minh, tác tử di động báo cho hệ thông tác tử chứa nó
rằng nó muốn di chuyển tới hệ tác tử đích. Thông điệp này đƣợc chuyển tiếp
qua một giao diện nội bộ giữa tác tử và hệ tác tử. Khi một hệ tác tử nhận yêu
cầu di chuyển của tác tử, nó sẽ làm nhƣ sau :
Tạm dừng tác tử: tác tử đƣợc cảnh báo về việc di chuyển sắp xảy ra và
đƣợc phép hoàn thành tác vụ hiện hành của nó, Khi điều này thực hiện xong,
sự thi hành của luồng của nó sẽ đƣợc tạm dừng.
− Đánh dấu trạng thái tác tử: trạng thái và các mã nguồn tác tử đƣợc
đánh dấu bởi động cơ.
− Mã hóa tác tử: động cơ mã hóa tác tử đã đƣợc đánh dấu với giao thức
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
di chuyển đƣợc chọn.
~ 26 ~
− Đi chuyển tác tử: động cơ thiết lập kết nốì với đích và chuyển tác tử đã
đƣợc mã hóa đi.
− Nhận về một tác tử
Trƣớc khi động cơ nhận về một tác tử, nó phải xác định nó có thể chấp
nhận tác tử từ máy gửi đi hay không. Chỉ sau khi thông tin về máy gửi đƣợc
xác nhận thành công tại động cơ nhận, việc chuyển dữ liệu mới thực sự xảy ra
qua các bƣớc:
− Nhận về tác tử: khi động cơ đích đồng ý chuyển, tác tử đã mã hóa sẽ
đƣợc nhận về.
− Giải mã tác tử: động cơ giải mã dữ liệu nhận đƣợc.
− Khôi phục tác tử: tác tử sau khi nhận về sẽ đƣợc khôi phục lại. Các
thành phần của tác tử sẽ đƣợc khôi phục nguyên trạng bao gồm cả trạng thái
của tác tử.
− Tái thi hành tác tử: tác tử thông báo việc đến của nó tại môi trƣờng thi
hành đích. Bây giờ nó có thể chuẩn bị để tiếp tục lại sự thi hành của nó và
đƣợc cấp một luồng thi hành mới.
2.1.3. Trao đổi, liên lạc giữa các tác tử di động
Các tác tử có thể liên lạc với các tác tử khác trong cùng một môi trƣờng
thi hành hay với các tác tử ở trong các môi trƣờng thi hành hành khác (nhƣng
cũng có thể nằm trong cùng một động cơ). Một tác tử có thể yêu cầu một
phƣơng thức của một tác tử khác hay gửi cho nó một thông điệp nếu nó đƣợc
ủy quyền cho phép để làm việc này. Thông thƣờng, việc trao đổi thông điệp
giữa các tác tử có thể là một- một hay một - nhiều. Kiểu truyền thông điệp
một - nhiều cho phép một tác tử gửi một thông điệp tới một nhóm các tác tử
đăng kí và là một cơ chế hữu hiệu trong hệ thống nhiều tác tử.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Việc trao đổi, liên lạc giữa các tác tử có thể diễn ra theo ba kiểu sau :
~ 27 ~
− Thông điệp gửi ngay: đây là kiểu truyền thông điệp đƣợc dùng thông
dụng nhất. Một thông điệp gửi ngay là đồng bộ và làm cản trở sự thi hành cho
tới khi ngƣời nhận thông điệp hoàn thành việc xử lí thông điệp và hồi âm lại
cho nó.
− Thông điệp gửi sau: một thông điệp gửi sau là không đồng bộ và
không cản trở việc thi hành hiện hành. Ngƣời gửi giữ một “thẻ bài” có thể
đƣợc dùng để nhận kết quả. Do ngƣời gửi không phải chờ cho tới khi ngƣời
nhận hồi đáp và gửi hồi âm, kiểu truyền thông điệp này linh động và là đặc
biệt hữu ích khi nhiều tác tử liên lạc với nhau.
Thông điệp gửi một chỉều: một thông điệp gửi một chiều là không đồng
bộ và không làm cản trở sự thi hành hiện hành. Ngƣời gửi sẽ không giữ lại
“thẻ bài” để xử lí thông điệp này, và ngƣời nhận sẽ không cần phải hồi âm lại.
Kiểu truyền thông điệp này thuận tiện khi hai tác tử đƣợc tiến hành cuộc trao
đổi bằng kết nôi không đƣợc duy trì liên tục, Lúc này tác tử gửi thông điệp
không cần bất kì hồi âm nào từ tác tử nhận thông điệp.
2.1.4. Một số hệ thống tác tử di động
2.1.4.1. Aglets
Aglets [2] đƣợc xây dựng và phát triển bởi D.B.Lange và IBM Tokyo
Research Laboratory. Hiện nay, bộ Aglets Software Development Kit
(ASDK) do IBM phát triển đã dừng lại ở phiên bản 1.1 Beta 3 trên nền
JDK1.1. Phiên bản mới nhất của ASDK là 2.0.2 do Source Forge phát triển
trên nền JDK1.3.
Aglets là những đối tƣợng Java có thể di chuyển từ host này sang host
khác trên môi trƣờng mạng. Khi aglets di chuyển, nó mang theo mình cả mã
chƣơng trình lẫn dữ liệu. Trong mô hình đối tƣợng aglets, một tác tử di động
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
là một đối tƣợng di động có luồng kiểm soát riêng của nó, làm việc theo sự
~ 28 ~
kiện và liên lạc với các tác tử khác bằng cách truyền thông điệp. Aglets có
một cơ chế định danh duy nhất và toàn cục dựa trên URL.
Aglets hỗ trợ cơ chế di động yếu (weak- mobility). Các aglets giao tiếp
với nhau một cách đồng nhất, và độc lập với vị trí lƣu trú thông qua đối tƣợng
proxy. Suốt chu kỳ sống, các aglets sẵn sàng bắt những sự kiện (clone,
mobility, persistence) phát sinh trong môi trƣờng để có phản ứng thích hợp.
Tác tử có thể giao tiếp đồng bộ hoặc không đồng bộ thông qua các loại thông
điệp: synchronous, one-way, hay future reply. Aglets sử dụng ATP (Agent
Transfer Protocol) cho việc di chuyển và giao tiếp. Aglets sử dụng 2 loại mẫu
thiết kế chính là chủ-tớ (Master-Slave) và hành trình (Itinerary) cho việc di
chuyển của các tác tử.
Aglets là một trong những platform đƣợc sử dụng nhiều nhất để phát
triển các hệ thống tác tử di động. Một số đề án thực hiện với Aglet có thể kể
đến là TabiCan - chợ điện tử chuyên bán vé máy bay và tour du lịch trọn gói
- Cps720 (Artificial Intelligence Topics with Agent) tại đại học Ryerson
University, Mỹ, Acme. Aglets là một hệ thống Java tác tử di động hỗ trợ các
khái niệm thi hành tự trị và định tuyến động trên lộ trình của nó.
Có thể xem aglet nhƣ là một khái quát hóa và mở rộng của applet và
servlet. Aglet server là chƣơng trình cung cấp một môi trƣờng thi hành và một
máy ảo Java cho aglet hoạt động. Ngoài ra, Aglet server cũng sử dụng một
trình quản lý để tiếp nhận và kiểm soát aglet một cách an toàn.
2.1.4.2. Voyager
Voyager là một môi trƣờng thƣơng mại hỗ trợ phát triển các ứng dụng
agent đƣợc hãng Object Space phát triển từ giữa năm 1996. Voyager đã trải
qua nhiều lần nâng cấp và thay đổi từ phiên bản 1.0 cho đến bây giờ là phiên
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
bản 4.5. Tháng 03.2002 sản phẩm Voyager đƣợc nhƣợng lại cho Recursion
~ 29 ~
Software, một công ty chuyên về các sản phẩm viết trên C++ và Java để đm
bo cho việc phát triển Voyager sau này.
Các phiên bản từ 1.0 đến 3.3 Voyager đƣợc phân phối cho các nhà phát
triển nhƣ một freeware. Hiện tại Voyager đã có phiên bản 4.5 Evaluation
hoàn toàn tƣơng thích với JDK1.3, JDK1.2 và JDK1.1. Phiên bản này bao
gồm 6 sản phẩm, trong đó sản phẩm chính yếu dùng cho các ứng dụng tác tử
di động là Voyager ORB Professional.
Voyager sử dụng ngôn ngữ lập trình Java với cú pháp chuẩn để tạo dựng
các đối tƣợng ở xa một cách rất dễ dàng, cho phép các đối tƣợng này trao đổi
thông điệp với nhau, và di chuyển các đối tƣợng giữa các máy tính có hỗ trợ
môi trƣờng Voyager. Voyager hỗ trợ mạnh về tính di động với khả năng
mang toàn bộ mã chƣơng trình và dữ liệu di chuyển từ máy ảo Java này sang
máy ảo Java khác nếu các máy ảo có hỗ trợ Voyager. Trạng thái hoạt động
của tác tử cũng sẽ đƣợc bảo toàn và tiếp tục thực thi tại nơi tác tử đến. Một
trong những đặc điểm nổi trội khác của Voyager là tính phổ quát.
Các chƣơng trình viết trong Voyager có thể trao đổi thông tin hai chiều
với các chƣơng trình viết bằng SOAP, CORBA, RMI và DCOM. Các dạng
thông tin đƣợc trao đổi có thể là các lời gọi hàm từ xa, các dịch vụ đặt tên,
dịch vụ thƣ mục. Voyager có thể đƣợc xem là một cửa ngõ, một cầu nối làm
cho các chƣơng trình theo chuẩn khác trở nên liên thông với nhau. Hơn nữa,
tất cả các chƣơng trình và đối tƣợng có thể đƣợc tổ chức thành một không
gian chung, nhờ vậy việc liên lạc sẽ trở thành một–nhiều một cách tự động.
Phiên bản 4.5 của Voyager đã đƣợc bổ sung thêm các tính năng rất quan
trọng hỗ trợ cho các chuẩn dịch vụ Web. SOAP và WSDL cũng đã đƣợc phát
triển trong phiên bản này giúp cho các nhà phát triển có khả năng triển khai
các ứng dụng truy cập tới các dịch vụ Web từ xa và các chƣơng trình Voyager
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
có thể truy cập nhau thông qua các dịch vụ Web. Thế mạnh thật sự của
~ 30 ~
Voyager nằm ở sự đơn giản và dễ dùng. Sự “trong suốt” hay cách mà
Voyager che dấu các kỹ thuật lập trình phân tán phức tạp đã làm cho việc xây
dựng các ứng dụng tác tử di động trở nên dễ dàng hơn rất nhiều. Việc tích hợp
các công nghệ mới và các chuẩn mới vào cùng một sản phẩm tạo cho
Voyager sự hấp dẫn rất riêng biệt.
2.1.4.3. Mole
Mole là hệ thống Tác tử di động đƣợc xây dựng với ngôn ngữ Java tại
đại học Stuttgart (CHLB Đức). Phiên bản đầu tiên (Release 1.0) đã hoàn
thành vào năm 1995, năm 1997 phiên bản Release 2.0 đƣợc hoàn thành, bản
Release 3.0 đƣợc hoàn tất vào năm 1998 và đề án đã kết thúc với kết quả là
môi trƣờng ổn định để xây dựng ứng dụng theo mô hình tác tử trên các hệ
phân tán.
Đƣợc xây dựng trên Java, Mole có khả năng thực thi trên tất cả các môi
trƣờng có hổ trợ JDK1.1.x (Jdk1.1.7 và Jdk1.1.8), sử dụng giao thức TCP/IP
trong quá trình giao tiếp. Mole hỗ trợ di chuyển yếu- weak migration. Để thực
hiện giao tiếp giữa các tác tử Mole sử dụng các cơ chế truyền thông điệp, gọi
hàm từ xa RPCs, và cơ chế đặc trƣng của Mole là session , badge. Ngôn ngữ
giao tiếp giữa các tác tử đƣợc Mole hỗ trợ là KQML. Việc trao đổi dữ liệu
giữa các tác tử đƣợc thực hiện theo nghi thức TCP/IP.
Mole cho phép đa tiểu trình/tác tử và quản lí tài nguyên và lập lịch các
tiểu trình trong hệ thống thông qua bộ lập lịch trung tâm MCP. Khả năng bảo
mật của Mole đƣợc đánh giá khá tốt trong các hệ thống tác tử. Mole tuân theo
mô hình bảo mật sandbox của java. Tác tử trong hệ thông Mole đƣợc chia làm
hai loại: user tác tử và system tác tử.
User tác tử là những tác tử di động đƣợc kích hoạt bởi ngƣời dùng và
không thể truy cập trực tiếp tài nguyên hệ thống. Ngƣợc lại, system tác tử
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
(service agent) - đƣợc khởi động bởi ngƣời quản trị - không có tính di động và
~ 31 ~
đƣợc phép truy cập tài nguyên hệ thống. Môi trƣờng Mole phù hợp cho phát
triển những ứng dụng trong các lĩnh vực: Truyền thông, ứng dụng thuộc lĩnh
vực hệ thống thông tin điện tử. Một số ứng dụng dƣợc phát triển trên môi
trƣờng Mole: AIDA - Infrastructure for Mobile Agents, ASAP, ATOMAS,
FESTIVAL (Mole office, Mole shopping), HAWK.
Với hệ thống mã nguồn mở của Mole, ta có thể tiến hành cải tiến, nâng
cấp những chức năng hiện có, và bổ sung những chức năng mới nhƣ các chức
năng về công cụ hổ trợ lập trình tác tử để Mole trở thành hệ thống tác tử hiện
đại hổ trợ tốt cho việc phát triển các ứng dụng dựa theo mô hình tác tử.
2.1.4.4. ZEUS
Zeus là môi trƣờng do British Telecommunication phát triển để hỗ trợ
xây dựng các hệ thống đa tác tử. Ngoài các tính năng thông thƣờng trong việc
tạo lập và quản lý các tác tử, Zeus đặc biệt chú trọng việc hỗ trợ một phƣơng
pháp luận và một bộ công cụ mạnh để phát triển ứng dụng đa tác tử trên môi
trƣờng phân tán.
Zeus định nghĩa một phƣơng pháp luận để phân tích, thiết kế, triển khai
hệ thống và còn kèm theo các công cụ cho phép ngƣời phát triển có thể bắt lỗi
hệ thống cũng nhƣ phân tích sự thực hiện của mình. Hai giai đoạn phân tích
và thiết kế đƣợc miêu tả chi tiết trong nhƣng chƣa đƣợc hỗ trợ bởi các công
cụ. Zeus Toolkit hỗ trợ hai giai đoạn cài đặt và bảo trì Zeus toolkit qua các
công cụ Zeus Agent Generator và Zeus Agent Visualiser.
Zeus cung cấp nhiều Editor để định nghĩa tác tử và các thuộc tính của tác
tử. Code Generator sẽ tự động phát sinh mã nguồn cho tác tử từ những thuộc
tính đã đặc tả. Hai đặc tính quan trọng của các Zeus tác tử là tính tự trị và
cộng tác. Bộ phận Planner trong mỗi tác tử sẽ hỗ trợ tác tử thể hiện tính tự trị.
Khả năng thƣơng lƣợng và cộng tác giữa các tác tử cũng đƣợc Zeus tích hợp
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
vào trong toolkit thông qua một thƣ viện các giao thức, cùng các chiến lƣợc
~ 32 ~
thƣơng lƣợng và cộng tác. Do có mã nguồn mở, ngƣời dùng có thể thêm vào
thƣ viện này các chiến lƣợc riêng phù hợp với ứng dụng của mình.
Các Zeus tác tử truyền thông theo point-to-point socket TCP/IP với mỗi
message là một chuỗi các kí tự mã ASCII. Ngôn ngữ truỵền thông Zeus sử
dụng là FIPA ACL (http://www.fipa.org). Nhằm cung cấp khả năng “hiểu”
lẫn nhau cho các tác tử, Zeus cung cấp các công cụ cho việc định nghĩa các
ontology-cơ sở khái niệm chung cho cộng đồng tác tử.
Các tác tử của Zeus đƣợc phân tán qua mạng và có thể thực hiện các tác
vụ đồng thời. Chính vì thế, việc quản lí các tác tử cũng là một vấn đề mà môi
trƣờng đặt ra. Visualiser của Zeus cung cấp các công cụ để kiểm tra các quan
hệ giao tiếp giữa các tác tử, trạng thái tác vụ những tác tử đang thực hiện và
trạng thái bên trong của tác tử.
Đồng thời, Zeus Statistic Tool cho phép ngƣời dùng so sánh các thống
kê khác nhau về cộng đồng tác tử, chẳng hạn những loại thông điệp nào tác tử
đã gửi và tỉ lệ là bao nhiêu, một cách trực quan dƣới những dạng đồ thị khác
nhau. Cũng nhằm quản lí tác tử, Zeus cung cấp những tác tử tiện ích nhƣ
Agent Name Server hoạt động nhƣ một Yellow Page, Facilitator nhƣ một
White Page, Visualiser và Database Proxy.
Một hạn chế của Zeus là tuy đƣợc liệt kê vào một trong những môi
trƣờng tác tử di động nhƣng hiện hƣớng nghiên cứu về tính di động của Zeus
chỉ mới ở bƣớc đầu, chƣa đƣợc cài đặt. Do đó mà tính bảo mật của Zeus cho
các tác tử hầu nhƣ không có. Điều này có thể sẽ đƣợc khắc phục trong các
phiên bản sau. Zeus đã và đang đƣợc triển khai trong một số ứng dụng nhƣ
Agent Based Work-flow Management, PTA: Personal Travel Assistance,
Personal Computer Manufacture, Agent-based Electronic Commerce,
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Network Management (VPNP), Home Shopping.
~ 33 ~
2.2. Một số thuật toán trên tác tử di động
2.2.1 Thuật toán tạo và giao nhiệm vụ cho tác tử di động
Thuật toán này đƣợc sử dụng trong những trƣờng hợp mà ngƣời quản trị
hệ thống thao tác tại máy chủ web nhằm mục đích tạo ra tác tử tại máy chủ,
giao nhiệm vụ sau đó gửi đến máy khách thực thi nhiệm vụ. Thuật toán này
cũng có thể đƣợc thực hiện khi tác tử tại máy khách đƣợc lệnh tự tạo ra một
tác tử khác.
2.2.1.1. Mô tả thuật toán
Input: Yêu cầu tạo tác tử và nhiệm vụ
Output: Đối tƣợng tác tử di động đã đƣợc khởi tạo và giao nhiệm vụ.
Các bƣớc của thuật toán:
Bƣớc 1:
Truy vấn cơ sở dữ liệu để tìm định danh mới, duy nhất cho tác tử sẽ tạo.
Bƣớc 2:
Tạo mới tác tử.
Bƣớc 3:
Gán định danh cho tác tử.
Bƣớc 4:
Thiết lập nhiệm vụ cho tác tử.
Bƣớc 5:
Gán thông tin môi trƣờng thi hành cho tác tử.
Bƣớc 6:
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trả về tác tử đƣợc tạo, kết thúc.
~ 34 ~
2.2.1.2. Sơ đồ khối
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 2.1. Sơ đồ khối thuật toán tạo và giao nhiệm vụ tác tử
~ 35 ~
2.2.1.3. Giả mã
1. Enter Nhiem_vu, moi_truong
2. Declare ID
3. Call get_new_identify() Returning a_ID
4. Set ID to a_ID
5. Set agent_obj to new agent()
6. Set agent_obj.identify to ID
7. Set agent_obj.nhiem_vu to Nhiem_vu
8. Set agent_obj.context to moi_truong
9. Return agent_obj
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.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Bƣớc 3:
~ 36 ~
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
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 2.2. Sơ đồ khối thuật toán kiểm tra phiên bản phần mềm
~ 37 ~
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
2.2.3. Thuật toán thi hành nhiệm vụ tải phần mềm
Thuật toán này đƣợc sử dụng khi tác tử thực hiện nhiệm vụ tải phần
mềm từ máy chủ web sau khi phát hiện thấy có phiên bản khác trên máy chủ
so với phiên bản hiện tại đang đƣợc cài đặt tại máy trạm mà tác tử đang thi
hành.
2.2.3.1. Mô tả thuật toán
Input: Mã phần mềm cần tải về.
Output: File cài đặt phần mềm đƣợc tải về từ máy chủ hoặc thông báo
không tải thành công.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Bƣớc 1:
~ 38 ~
Thực hiện kết nối với máy chủ, nếu kết nối thành công thì sang bƣớc 2,
nếu không thì sang bƣớc 5.
Bƣớc 2:
Gửi thông điệp yêu cầu tải phần mềm kèm theo mã phần mềm cần tải
đến máy chủ.
Bƣớc 3:
Nhận dữ liệu từ máy chủ theo từng khối cho đến khi nhận đƣợc tín hiệu
hết dữ liệu thì dừng. Gửi thông điệp lên máy chủ thông báo là tác tử đang tải
dữ liệu.
Bƣớc 4:
Ghép dữ liệu nhận đƣợc thành một file cài đặt phần mềm mới, trả kết
quả là file mới ghép, gửi thông điệp lên máy chủ thông báo là tác tử đã tải
xong file cài đặt phần mềm và kết thúc.
Bƣớc 5:
Tăng biến đếm số lần thử kết nối, nếu vƣợt quá giá trị cho phép thì kết
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
thúc, nếu không thì quay lại bƣớc 1.
~ 39 ~
2.2.3.2. Sơ đồ khối
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 2.3. Sơ đồ khối thuật toán thi hành nhiệm vụ tải phần mềm
~ 40 ~
2.2.3.3. Giả mã
1. Enter software_id, max_num_request
2. Declare setup_file, downloaded
3. Set downloaded to False
4. While num_request < max_num_request
a. Call try_to_connect_server (software_id) Returning
success
b. If success = True Then
break;
c. EndIf
d. Increment num_request
5. EndWhile
6. If success = False Then
Return “Không kết nối thành công”
7. EndIf
8. Repeat
a. Call get_setup_file_from_server (software_id) Returning
data
b. Set setup_file to setup_file + data.file
c. If data.finished Then
Set downloaded to True
d. EndIf
9. Until downloaded = True
10. Return setup_file
2.2.4. Thuật toán thi hành nhiệm vụ cập nhật phần mềm
Thuật toán này đƣợc sử dụng trong tình huống tác tử sau khi tải phần
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
mềm về từ máy chủ thì thực hiện nhiệm vụ cập nhật phiên bản mới.
~ 41 ~
2.2.4.1. Mô tả thuật toán
Input: Mã phần mềm, File cài đặt phiên bản mới phần mềm
Output: Thông tin cập nhật thành công hay không
Bƣớc 1:
Kiểm tra xem phần mềm hiện tại có đang chạy hay không? Nếu có thì
thực hiện dừng phần mềm đang chạy.
Bƣớc 2:
Cài đặt đè phần mềm phiên bản mới vào máy tính khách hàng mà tác tử
đang thực thi.
Bƣớc 3:
Gửi thông điệp lên máy chủ thông báo tác tử đang cập nhật phần mềm.
Bƣớc 4:
Cập nhật lại thông tin phiên bản phần mềm tại máy tính khách hàng theo
đúng phiên bản vừa đƣợc cài đặt.
Bƣớc 5:
Gửi thông điệp lên máy chủ thông báo tác tử đã cập nhật thành công
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
phần mềm và kết thúc.
~ 42 ~
2.2.4.2. Sơ đồ khối
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 2.4. Sơ đồ khối thuật toán thi hành nhiệm vụ cập nhật phần mềm
~ 43 ~
2.2.4.3. Giả mã
1. Enter software_id, newest_version, setup_file
2. Call check_running_software (software_id) Returning running
3. If running = True Then
a. Call stop_software(software_id)
4. EndIf
5. Call send_message_to_server(“đang cập nhật phần mềm”)
6. Call setup_new_version(setup_file, software_id) Returning
success
7. If success Then
a. Call update_version(software_id, newest_version)
b. Call send_message_to_server(“đã cập nhật phần mềm
thành công”)
c. Return “cập nhật thành công”
8. Else
a. Call send_message_to_server(“đã cập nhật phần mềm
thành công”)
b. Return “cập nhật không thành công”
9. EndIf
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
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Input: Thông điệp gửi cho máy chủ, số lần liên lạc tối đa
~ 44 ~
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
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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.
~ 45 ~
2.2.5.2. Sơ đồ khối
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 2.5. Sơ đồ khối thuật toán tác tử trao đổi thông điệp với máy chủ
~ 46 ~
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
2.2.6. Thuật toán gửi đi một tác tử di động
Thuật toán này đƣợc thực hiện khi một tác tử đƣợc di chuyển từ máy chủ
đến máy tính khách hàng hay từ máy tính khách hàng này đến máy tính khách
hàng khác.
2.2.6.1. Mô tả thuật toán
Input: Tác tử đang hoạt động, địa chỉ máy đích
Output: Thông tin đã gửi thành công hay không
Bƣớc 1:
Tạm dừng hoạt động của tác tử.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Bƣớc 2:
~ 47 ~
Đánh dấu trạng thái của tác tử.
Bƣớc 3:
Mã hóa tác tử.
Bƣớc 4:
Di chuyển tác tử.
Bƣớc 5:
Trả về kết quả và kết thúc.
2.2.6.2. Sơ đồ khối
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 2.6. Sơ đồ khối thuật toán gửi đi một tác tử
~ 48 ~
2.2.6.3. Giả mã
1. Enter running_agent, des_machine
2. Call pause_agent_mission
3. Set agent_status to running_agent.status
4. Call encode_agent(running_agent, agent_status) Returning
agent_encoded
5. Call move_agent(agent_encoded, des_machine) Returning
success
6. Return success
2.2.7. Thuật toán nhận về một tác tử di động
Thuật toán này đƣợc thực hiện khi một máy tính của khách hàng nhận
tác tử đƣợc gửi từ một máy tính khác.
2.2.7.1. Mô tả thuật toán
Input: Tác tử đƣợc gửi tới từ máy khác
Output: Tác tử đƣợc tái thực thi nhiệm vụ
Bƣớc 1:
Nhận tác tử đã đƣợc mã hoá đƣợc gửi từ máy khác.
Bƣớc 2:
Giải mã dữ liệu nhận đƣợc.
Bƣơc 3:
Từ dữ liệu giải mã, khôi phục lại tác tử.
Bƣớc 4:
Dựa vào trạng thái của tác tử để tái thi hành nhiệm vụ
Bƣớc 5:
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trả về kết quả và kết thúc.
~ 49 ~
2.2.7.2. Sơ đồ khối
Hình 2.7. Sơ đồ khối thuật toán nhận về một tác tử di động
2.2.7.3. Giả mã
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1. Enter agent_encoded
~ 50 ~
2. Call decode_agent(agent_encoded) Returning original_agent,
agent_status
3. Call restore_agent(original_agent, agent_status) Returning
running_agent
4. Call re_enforce(running_agent) Returning success
5. Return success
2.2.8. Thuật toán liên lạc giữa các tác tử di động
Thuật toán này đƣợc thực hiện khi các tác tử ở hai máy tính khác nhau
cần trao đổi thông điệp với nhau.
2.2.8.1. Mô tả thuật toán
Input: Tác tử nhận thông điệp, kiểu liên lạc, thông điệp cần gửi.
Output: Thông điệp gửi trả về từ máy tính nhận đƣợc.
Bƣớc 1:
Nếu kiểu liên lạc là kiểu gửi ngay (đồng bộ) thì sang bƣớc 2, nếu không
thì sang bƣớc 5.
Bƣớc 2:
Tạm dừng việc thực thi nhiệm vụ khác của tác tử gửi.
Bƣớc 3:
Gửi thông điệp tới cho máy tính đích kèm theo kiểu liên lạc.
Bƣớc 4:
Nhận thông điệp trả về từ máy tính đích, kết thúc.
Bƣớc 5:
Đợi khi thực thi xong nhiệm vụ đang thực hiện thì tác tử gửi mới gửi
thông điệp đi cho máy tính đích.
Bƣớc 6:
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Nhận thông điệp trả về từ máy tính đích, kết thúc.
~ 51 ~
2.2.8.2. Sơ đồ khối
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 2.8. Sơ đồ khối thuật toán liên lạc giữa các tác tử di động
~ 52 ~
2.2.8.3. Giả mã
1. Enter received_agent, communication_type, message
2. If communication_type= “gửi ngay” Then
a. Call pause_agent_mission
b. Call send_message(received_agent, message)
3. Else
a. Repeat
i. Call finished_mission(this) Returning finished
b. Until finished
4. Call send_mesage(received_agent, message)
5. EndIf
6. Call receive_message(received_agent) Returning
feedback_message
7. Return feedback_message
2.2.9. Thuật toán hủy tác tử di động
Thuật toán này đƣợc thực hiện khi cần hủy một tác tử. Hủy tác tử trong
các trƣờng hợp nhƣ: hết chu kì sống, không sử dụng, xâm phạm sự an toàn
hay do chủ động.
2.2.9.1. Mô tả thuật toán
Input: Tác tử cần hủy
Output: Kết quả hủy tác tử
Bƣớc 1:
Thực hiện hết trạng thái hiện hành của tác tử.
Bƣớc 2:
Thông báo lại với môi trƣờng thi hành và máy chủ về việc tác tử sắp
đƣợc hủy.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Bƣớc 3:
~ 53 ~
Thực hiện đình chỉ thi hành, hủy tác tử.
Bƣớc 4:
Trả kết quả và kết thúc.
2.2.9.2. Sơ đồ khối
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 2.9. Sơ đồ khối thuật toán hủy tác tử di động
~ 54 ~
2.2.9.3. Giả mã
1. Enter del_agent
2. Repeat
3. Call finished_mission(del_agent) Returning finished
4. Until finished
5. Call send_message_to_server(“hủy tác tử”)
6. Call send_message_to_context(“hủy tác tử”)
7. Call delete_agent(del_agent) Returning success
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
8. Return success
~ 55 ~
CHƢƠNG 3. THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG PHÂN TÁN
CẬP NHẬT PHẦN MỀM
3.1. Mô tả yêu cầu
3.1.1. Yêu cầu về chức năng
Ứng dụng cập nhật phần mềm cần có các chức năng sau:
− Quản lý danh sách phần mềm: Ứng dụng phải liệt kê đƣợc danh sách
phần mềm, quản lý đƣợc các thông tin cơ bản nhƣ tên, phiên bản, file cài đặt.
Có thể thêm, sửa, xóa thông tin liên quan đến các phần mềm quản lý.
− Quản lý danh sách khách hàng sử dụng phần mềm: Ứng dụng phải liệt
kê đƣợc danh sách khách hàng ứng với từng phần mềm, quản lý đƣợc các
thông tin cơ bản của khách hàng nhƣ: tên, địa chỉ, phiên bản phần mềm đang
sử dụng, tên máy tính sử dụng, thời điểm gần nhất cập nhật phần mềm. Các
thông tin cơ bản có thể đƣợc ngƣời quản trị cập nhật, các thông tin về cập
nhật phần mềm sẽ đƣợc các tác tử di động tự động cập nhật về máy chủ.
− Quản lý tác tử di động: Quản lý đƣợc danh sách các tác tử đang hoạt
động và trạng thái của nó. Đƣa ra đƣợc yêu cầu cho các tác tử thực hiện
nhiệm vụ cập nhật phần mềm cho khách hàng.
− Chức năng cập nhật phần mềm: Các tác tử di động hoạt động tại máy
tính của khách hàng sẽ tự động kiểm tra phiên bản, đối chiếu với phiên bản
mới nhất đặt tại máy chủ và tự động cập nhật hoặc cập nhật sau khi đƣợc
ngƣời quản trị cho phép.
3.1.2. Yêu cầu phi chức năng
− Yêu cầu về tính sử dụng: Ứng dụng phải có giao diện dễ sử dụng, thân
thiện đối với ngƣời quản trị, đối với khách hàng cập nhật phần mềm cần phải
trong suốt.
− Yêu cầu về hiệu năng: Ứng dụng cần phải đáp ứng đƣợc yêu cầu cập
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
nhật phần mềm trong thời gian dƣới 1 phút khi có phiên bản mới cần cập
~ 56 ~
nhật. Đảm bảo phục vụ đƣợc nhiều khách hàng, nhiều tác tử cùng một thời
điểm.
− Yêu cầu về bảo mật: Các chức năng của ứng dụng phải đƣợc ngăn
chặn đƣợc truy cập trái phép, cần phải có tài khoản đăng nhập.
3.2. Phân tích chi tiết
3.2.1. Phân tích nghiệp vụ của ứng dụng
Mô hình nghiệp vụ của ứng dụng:
Hình 3.1. Mô hình nghiệp vụ của ứng dụng
3.2.1.1. Nghiệp vụ quản lý phần mềm
Nghiệp vụ “Quản lý phần mềm” gồm có các nghiệp vụ con:
− Cập nhật phần mềm, thông tin về phần mềm: là nghiệp vụ mà ngƣời
quản trị có thể thêm mới, sửa, xóa thông tin về một phần mềm mà ngƣời quản
trị quản lý.
− Cập nhật phiên bản mới phần mềm: là nghiệp vụ ngƣời quản trị cập
nhật phiên bản mới thay thế phiên bản hiện tại của phần mềm.
3.2.1.2. Nghiệp vụ quản lý khách hàng
Nghiệp vụ “Quản lý khách hàng” gồm có các nghiệp vụ con:
− Thêm mới thông tin khách hàng: là nghiệp vụ mà ngƣời quản trị có thể
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
thêm mới thông tin về khách hàng sử dụng phần mềm.
~ 57 ~
− Sửa thông tin khách hàng: là nghiệp vụ mà các tác tử di động tự động
cập nhật lại thông tin về khách hàng.
3.2.1.3. Nghiệp vụ quản lý tác tử di động
Nghiệp vụ “Quản lý tác tự di động” gồm có các nghiệp vụ con:
− Khởi tạo tác tử di động: là nghiệp vụ mà ngƣời quản trị tạo mới tác tử
di động, bắt đầu vòng đời của tác tử để thực hiện nhiệm vụ cập nhật phần
mềm.
− Tƣơng tác với tác tử di động: là nghiệp vụ mà ngƣời quản trị có thể
tƣơng tác với các tác tử đang hoạt động tại máy tính của khách hàng.
3.2.1.4. Nghiệp vụ cập nhật phần mềm
Nghiệp vụ “Cập nhật phần mềm” gồm có các nghiệp vụ con:
− Kiểm tra phiên bản phần mềm: là nghiệp vụ mà các tác tử di động
đang hoạt động tại máy tính của khách hàng kiểm tra phiên bản, đối chiếu với
phiên bản mới nhất tại máy chủ để thực hiện thao tác cập nhật.
− Thực hiện cập nhật: là nghiệp vụ mà tác tử di động thực hiện việc cập
nhật phần mềm sau khi kiểm tra phiên bản.
3.2.2. Phân tích mô hình quan hệ thực thể
3.2.2.1. Mô hình thực thể - liên kết
Ứng dụng phân tán cập nhật phần mềm gồm có các thực thể sau:
− PHAN_MEM: là thực thể phản ánh sản phẩm phần mềm mà ngƣời
dùng quản lý, bao gồm các thông tin liên quan và file cài đặt phần mềm.
− KHACH_HANG: là thực thể phản ánh đối tƣợng khách hàng.
− TAC_TU_DI_DONG: là thực thể phản ánh tác tử di động, chứa định
danh, vị trí và nhiệm vụ thực hiện.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Mô hình thực thể liên kết:
~ 58 ~
Hình 3.2. Mô hình thực thể liên kết
3.2.2.2. Mô tả thực thể
Thực thể PHAN_MEM:
Thuộc tính Phan_mem_id Ten_phan_mem Phien_ban File_cai_dat Kiểu dữ liệu Mô tả Số nguyên Xâu kí tự Xâu kí tự Xâu kí tự
Là mã của phần mềm Là tên của phần mềm Là biên bản hiện thời của phần mềm Là địa chỉ liên kết file cài đặt phần mềm
Thực thể KHACH_HANG:
Thuộc tính Khach_hang_id Ten_khach_hang Dia_chi Kiểu dữ liệu Mô tả Số nguyên Xâu kí tự Xâu kí tự Là mã của khách hàng Là tên khách hàng Là địa chỉ khách hàng
Thực thể Tac_tu_di_dong:
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Thuộc tính Dinh_danh Tinh_trang Kiểu dữ liệu Mô tả Xâu kí tự Xâu kí tự Là định danh của tác tử Là tình trạng hiện tại của tác tử
~ 59 ~
Nhiem_vu Xâu kí tự Là nhiệm vụ mà tác tử cần thực hiện
3.2.3. Phân tích các vấn đề bảo mật
Một số lỗi bảo mật thƣờng gặp và cần phải đƣợc giải quyết:
− Tấn công trực tiếp vào tác tử:
Các máy ở xa đe dọa tác tử: một tác tử đang di chuyển và ghé lại
một môi trƣờng thí hành không đƣợc tin tƣởng. Môi trƣờng thi
hành này có thể lấy các thông tin dành riêng của tác tử hoặc can
thiệp vào tác tử. Các kiểu tấn công có thể xảy ra bao gồm phá rối,
thi hành bất hđp pháp, và truy cập bất hợp pháp.
Tác tử đe dọa tác tử khác: một tác tử tƣơng tác với một trong
những tác tử của bạn để các thông tin dành riêng và làm gián đoạn
sự thi hành của nó. Kiểu tấn công có thể xảy ra là truy cập bất hợp
pháp.
Kẻ lạ mặt đe dọa tác tử: một thực thể phá hoại có thể thay đổi các
thông điệp trao đổi giữa các máy hoặc dò sự liên lạc giữa chúng để
từ đó phát hiện ra nội dung của tác tử của bạn. Các kiểu tấn công
có thể xảy ra là sửa đổi và nghe trộm.
− Tấn công vào máy chủ hay máy tính của khách hàng:
Các tác tử đến đe dọa các máy phục vụ: một tác tử ghé thăm môi
trƣờng thi hành rồi cô' tìm cách truy cập và làm hƣ các tập tin cấu
hình hay phá hỏng môi trƣờng thi hành. Các kiểu tấn công có thể
xảy ra là truy cập bất hợp pháp, giả dạng, phá hỏng dịch vụ nền.
Kẻ lạ mặt đe dọa các máy: một thực thể phá hoại có thể gửi một
lƣợng lớn các tác tử “dỏm” tới môi trƣờng thi hành làm cho nó bị
treo. Các kiểu tân công có thể xảy ra ỉà phá hỏng dịch vụ nền và
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
đấu lại.
~ 60 ~
− Tấn công vào hệ thống mạng: Các tác tử đến đe dọa hệ thống mạng là
một tác tử bắt đầu nhân bản và đi chuyển khắp trong mạng sẽ tạo ra một cơn
lũ các tác tử trong mạng. Kiểu tân công có thể xảy ra là phá hỏng dịch vụ nền.
3.3. Thiết kế
3.3.1. Kiến trúc hệ thống
3.3.1.1. Kiến trúc logic
Hình 3.3. Kiến trúc logic hệ thống
Giải thích:
− Tại máy chủ sẽ gồm có các thành phần:
Cơ sở dữ liệu tập trung
Công cụ thực hiện chức năng quản lý phần mềm
Công cụ thực hiện chức năng quản lý khách hàng
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Công cụ thực hiện chức năng quản lý, tƣơng tác với tác tử di động
~ 61 ~
− Ngƣời quản trị sẽ thao tác, điều khiển ứng dụng thông qua máy tính cá
nhân của mình.
− Tại máy tính của khách hàng sẽ bao gồm:
Cơ sở dữ liệu phân tán
Phần mềm khách hàng sử dụng
Tác tử di động
3.3.1.2. Kiến trúc kỹ thuật
Hình 3.3. Kiến trúc kỹ thuật hệ thống
Giải thích:
− Web browser: là chƣơng trình duyệt web mà ngƣời quản trị sử dụng để
thao tác với ứng dụng đặt tại máy chủ, thực hiện các thao tác quản lý phần
mềm, khách hàng hay tƣơng tác với các tác tử di động.
− Cơ sở dữ liệu: gồm có một cơ sở dữ liệu tại máy chủ web để quản lý
thông tin tập trung và nhiều cơ sở dữ liệu phân tán tại máy tính của khách
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
hàng để các tác tử có thể truy xuất, cập nhật thông tin.
~ 62 ~
− Web server / Aglet: là máy chủ web và môi trƣờng thực thi tác tử.
Nhận yêu cầu từ trình duyệt web để xử lý, đồng thời cũng là môi trƣờng để
tác tử hoạt động, qua đó tƣơng tác, ra nhiệm vụ với các tác tử đang thực thi tại
máy tính khách hàng.
− Môi trƣờng thực thi: là môi trƣờng nền Java để các tác tử có thể hoạt
động tại máy tính khách hàng.
− Tác tử di động: là chƣơng trình thực hiện nhiệm vụ nhận phần mềm từ
máy chủ và cập nhật vào máy tính khách hàng. Nó có thể di chuyển giữa các
máy tính của khách hàng và chủ động thực hiện nhiệm vụ.
3.3.2. Thiết kế chức năng
3.3.2.1. Mô tả tổng quan các tình huống sử dụng
Hình 3.4. Tổng quan các tình huống sử dụng
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Giải thích:
~ 63 ~
− Nhóm tình huống “Quản lý phần mềm”: bao gồm các tình huống mà
ngƣời quản trị tƣơng tác với hệ thống để thực hiện các chức năng thêm mới,
xóa, sửa thông tin và cập nhật phiên bản mới phần mềm.
− Nhóm tình huống “Quản lý thông tin khách hàng”: bao gồm các tình
huống mà ngƣời quản trị tƣơng tác với hệ thống để thực hiện các chức năng
thêm mới khách hàng sử dụng phần mềm.
− Nhóm tình huống “Quản lý tác tử di động”: bao gồm các tình huống
mà ngƣời quản trị tƣơng tác với hệ thống để khởi tạo tác tử, giao nhiệm vụ
hoặc hủy các tác tử di động.
− Nhóm tình huống “Cập nhật phần mềm”: bao gồm các tình huống mà
tác tử di động nhận lệnh hoặc tự quyết định cập nhật phần mềm tại máy tính
của khách hàng.
3.3.2.2. Thiết kế chi tiết các tình huống sử dụng
− Tình huống sử dụng “Quản lý phần mềm”:
Hình 3.5. Tình huống sử dụng “Quản lý phần mềm”
Các tình huống cụ thể nhƣ sau:
Thêm mới phần mềm: là tình huống ngƣời quản trị thêm mới phần
mềm vào danh sách quản lý, cho phép nhập mới các thông tin về
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
phần mềm cũng nhƣ file cài đặt.
~ 64 ~
Sửa thông tin phần mềm: là tình huống ngƣời quản trị sửa thông
tin về một phần mềm đang quản lý.
Xóa phần mềm: là tình huống ngƣời quản trị xóa bỏ phần mềm
không quản lý nữa.
Cập nhật phiên bản mới phần mềm: là tình huống ngƣời quản trị
cập nhật file cài đặt mới, thông tin về phiên bản mới của phần
mềm.
− Tình huống sử dụng “Quản lý thông tin khách hàng”:
Hình 3.6. Tình huống sử dụng “Quản lý thông tin khách hàng”
Đây là tình huống ngƣời quản trị thêm mới một khách hàng sử dụng
phần mềm, cho phép cập nhật các thông tin quản lý về khách hàng thêm mới.
− Tình huống sử dụng “Quản lý tác tử di động”:
Hình 3.7. Tình huống sử dụng “Quản lý tác tử di động”
Tình huống cụ thể nhƣ sau:
Khởi tạo tác tử di động: là tình huống mà ngƣời quản trị tạo mới
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
tác tử để chuẩn bị thực hiện nhiệm vụ cập nhật phần mềm.
~ 65 ~
Hủy tác tử di động: là tình huống mà ngƣời quản trị hủy, kết thúc
vòng đời của một tác tử di động.
Đƣa ra yêu cầu cập nhật phần mềm cho tác tử: là tình huống mà
ngƣời quản trị có thể yêu cầu một số tác tử thực hiện việc cập nhật
phần mềm theo một số tiêu chí.
− Tình huống sử dụng “Cập nhật phần mềm”:
Hình 3.8. Tình huống sử dụng “Cập nhật phần mềm”
Tình huống cụ thể nhƣ sau:
Cập nhật phần mềm: là tình huống mà tác tử di động thực hiện
nhiệm vụ cập nhật phần mềm tại máy tính của khách hàng.
Cập nhật thông tin khách hàng: là tình huống mà tác tử lấy thông
tin của khách hàng tại máy tính của họ và cập nhật về máy chủ.
Di chuyển: là tình huống mà tác tử tự động di chuyển giữa các
máy tính của khách hàng.
Tự hủy tác tử: là tình huống mà tác tử tự hủy khi đã hoàn thành
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
nhiệm vụ.
~ 66 ~
3.3.3. Thiết kế cơ sở dữ liệu
3.3.3.1. Thiết kế chung
Cơ sở dữ liệu của ứng dụng đƣợc chia thành 3 phần chính:
- Dữ liệu về phần mềm
- Dữ liệu về khách hàng quản lý tập trung
- Dữ liệu về tác tử di động
- Dữ liệu về phần mềm, khách hàng quản lý phân tán
3.3.3.2. Danh sách các bảng
− Bảng phan_mem: Lƣu trữ thông tin về phần mềm, các phiên bản và
file cài đặt.
− Bảng khach_hang: Lƣu trữ thông tin về khách hàng
− Bảng khach_hang_phan_mem: Lƣu trữ thông tin về phiên bản phần
mềm đƣợc cài đặt cho khách hàng, các thông tin khác nhƣ lần cuối cài đặt, tên
máy, địa chỉ ip, tình trạng hiện tại…
− Bảng tac_tu_di_dong: Lƣu trữ thông tin về các tác tử di động đang
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
hoạt động tại máy chủ và máy tính của khách hàng.
~ 67 ~
3.3.3.3. Quan hệ giữa các bảng
Hình 3.9. Quan hệ giữa các bảng trong cơ sở dữ liệu
3.3.3.4. Mô tả các bảng
- Bảng phan_mem:
Thuộc tính Kiểu dữ liệu Null Mô tả
phan_mem_id int No Là khóa chính của bảng
ten_phan_mem nvarchar(50) Yes Chứa tên phần mềm
ma_phan_mem nvarchar(50) Yes Chứa mã phần mềm
phien_ban nvarchar(50) Yes Chứa phiên bản hiện tại của phần
mềm
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
link_file nvarchar(50) Yes Chứa đƣờng dẫn đến file cài đặt
~ 68 ~
phiên bản mới
- Bảng khach_hang:
Thuộc tính Kiểu dữ liệu Null Mô tả
khach_hang_id Int No Là khóa chính của bảng, chứa mã
khách hàng
ten_khach_hang nvarchar(50) Yes Chứa tên khách hàng
dia_chi nvarchar(50) Yes Chứa địa chỉ khách hàng
- Bảng khach_hang_phan_mem:
Thuộc tính Kiểu dữ liệu Null Mô tả
khach_hang_phan_mem_id Int No Là khóa chính của bảng
khach_hang_id Yes Chứa khóa ngoại, là mã Int
khách hàng
phan_mem_id Yes Chứa khóa ngoại là mã Int
sản phẩm
phien_ban_hien_tai nvarchar(50) Yes Chứa phiên bản hiện tại
của phần mềm
may_tinh_cai_dat nvarchar(50) Yes Chứa tên máy tính khách
hàng sử dụng để cài đặt
phần mềm
ip_may_cai_dat nvarchar(50) Chứa địa chỉ ip của máy
tính khách hàng cài đặt
phần mềm
tinh_trang nvarchar(50) Chứa thông tin về tình
trạng của phần mềm
đang vận hành tại máy
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
tính khách hàng
~ 69 ~
- Bảng tac_tu_di_dong:
Thuộc tính Kiểu dữ liệu Null Mô tả
tac_tu_di_dong_id Int No Là khóa chính của bảng
dinh_danh_tac_tu Int Yes Chứa định danh của tác tử
tinh_trang nvarchar(50) Yes Chứa tình trạng của tác tử
khach_hang_id Int Yes Chứa mã khách hàng mà tác tử
đang làm việc cùng
nhiem_vu Int Yes Chứa nhiệm vụ mà ngƣời quản
trị giao cho tác tử thực hiện với
khách hàng
3.5. Kết quả đạt đƣợc
Kết quả sau khi lập trình theo thiết kế, ứng dụng phân tán cập nhật phần
mềm đƣợc cài đặt sử dụng thử nghiệm. Phân hệ quản lý của ngƣời quản trị
đƣợc cài đặt trên máy chủ có địa chỉ tên miền riêng. Các tác tử di động đƣợc
thực thi, vận hành tại máy tính trạm có thể có kết nối internet hoặc không.
Quá trình thử nghiệm ứng dụng vận hành tốt, đáp ứng yêu cầu đặt ra.
3.5.1. Mã nguồn một số module phần mềm
Module quản lý danh sách sản phẩm phần mềm:
Tên khách hàng | Tên máy cài đặt | Phiên bản hiện tại | IP máy cài đặt | Cập nhật lần cuối | Tình trạng |
".$row['client_name']." | ";".$row['client_machine']." | ";".$row['current_version']." | ";".$row['ip_installed']." | ";".date_format($date, 'd-m-Y H:i:s')." | ";".$row['status']." | ";
Module kiểm tra phiên bản phần mềm:
url2request = url + getCurrentVersion();
WebRequest request = WebRequest.Create(url2request);
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
if (responseFromServer.Equals("1"))
{
updatesoftware();
}
timer1.Interval = 30000;
timer1.Start();
Module thực hiện tải phần mềm:
string remoteUri = serverName+softwareName;
string fileName = getCurrentSoftware();
if (File.Exists(fileName)) File.Delete(fileName);
WebClient myWebClient = new WebClient();
myWebClient.DownloadFile(remoteUri, fileName);
3.5.2. Một số hình ảnh giao diện phần mềm
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
− Giao diện trang web quản lý danh sách phần mềm:
~ 72 ~
Hình 3.10. Giao diện trang web quản lý danh sách phần mềm
− Hình ảnh giao diện cập nhật phiên bản mới cho phần mềm:
Hình 3.11. Hình ảnh giao diện cập nhật phiên bản phần mềm
− Hình ảnh tác tử di động tại máy tính của khách hàng phát hiện có
phiên bản mới của phần mềm:
Hình 3.12. Hình ảnh tác tử di động tìm thấy phiên bản mới phần mềm
− Hình ảnh tác tử di động thông báo đang download phiên bản mới nhất
của phần mềm:
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Hình 3.13. Hình ảnh tác tử di động thông báo đang download phần mềm
~ 73 ~
− Hình ảnh tác tử di động thông báo đang cập nhật phần mềm:
Hình 3.14. Hình ảnh tác tử di động thông báo đang cập nhật phần mềm
− Hình ảnh tác tử di động thông báo đã cập nhật thành công phần mềm:
Hình 3.15. Hình ảnh tác tử di động thông báo đã cập nhật thành công
− Hình ảnh tại máy chủ thông báo tác tử di động hoạt động tại máy tính
của khách hàng đã tìm thấy phiên bản mới:
HÌnh 3.16. Hình ảnh tại máy chủ thông báo tác tử đã tìm thấy phiên bản mới
phần mềm.
− Hình ảnh tại máy chủ thông báo tác tử di động hoạt động tại máy tính
khách hàng đang download phần mềm:
Hình 3.17. Hình ảnh tại máy chủ thông báo tác tử di động đang download
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
phần mềm.
~ 74 ~
− Hình ảnh tại máy chủ thông báo tác tử di động hoạt động tại máy tính
khách hàng đang thực hiện nhiệm vụ cập nhật phần mềm:
Hình 3.18. Hình ảnh tại máy chủ thông báo tác tử di động đang cập nhật
− Hình ảnh tại máy chủ thông báo tác tử di động đã thực hiện thành công
nhiệm vụ:
Hình 3.19. Hình ảnh tại máy chủ thông báo tác tử di động đã cập nhật thành
công phiên bản mới phần mềm.
3.5.3. Đánh giá, so sánh với các phƣơng pháp khác
Kết quả của luận văn đã xây dựng đƣợc phần mềm cơ bản đáp ứng đƣợc
các yêu cầu của bài toán phân tán cập nhật phần mềm. Phần mềm đã tự động
nhận biết đƣợc có phiên bản mới của nhà cung cấp, đã tự động tải về và thực
hiện cài đặt đồng thời cũng đồng bộ tình trạng cài đặt, cập nhật phần mềm lên
máy chủ để ngƣời quản trị hệ thống có thể nhận biết, quản lý.
So sánh với các phƣơng pháp cập nhật truyền thống khác:
− Sản phẩm của luận văn có thể cập nhật từng phần của phần mềm.
− Sản phẩm của luận văn có khả năng mang phần mềm di chuyển trong
mạng nội bộ và thực hiện cập nhật ngay cả khi các máy không đƣợc nối
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
mạng internet.
~ 75 ~
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Kết quả thực hiện luận văn đã tìm hiểu đƣợc các vấn đề về tác tử, tác tử
di động, đặc điểm và thành phần của tác tử, sự phối hợp của tác tử trong hệ đa
tác tử để xử lý các vấn đề trong thực tế. Tác tử với những ƣu điểm vƣợt trội
về khả năng tự trị, tự chủ hành động mà không cần có sự can thiệp trực tiếp
của con ngƣời.
Dựa vào kết quả nghiên cứu lý thuyết, đề tài đã xây dựng đƣợc ứng dụng
phân tán cập nhật phần mềm với giao diện thân thiện, dễ sử dụng, các chức
năng cơ bản đáp ứng đƣợc yêu cầu.
Tuy nhiên, do năng lực và thời gian làm luận văn có hạn nên sản phẩm
vẫn còn một số hạn chế nhƣ chức năng cập nhật phần mềm còn chậm, chƣa
phát huy hết khả năng của tác tử, tính di động chƣa thật sự cao.
Hƣớng phát triển của đề tài là khắc phục các hạn chế chƣa đạt đƣợc, từ
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
đó xây dựng một ứng dụng hoàn chỉnh để có thể thƣơng mại hóa.
~ 76 ~
TÀI LIỆU THAM KHẢO
1. A. Fuggetta, G. Vigna, (1998), “Understanding Code Mobility”, IEEE
Transactions on Software Engineering, 24(5),342-361.
2. D. B. Lange, M. Oshima (1998), Programming and Deploying Java Mobile
Agents with Aglets, Addison-Wesley, USA.
3. Fabio Bellifemine, Giovanni Caire, Dominic Greenwood, (2007),
Developing Multi-Agent Systems with JADE, John Wiley and Sons Ltd.
4. Gerhard Weiss, (1999), “ Multiagent Systems: A Modern Approach to
Distributed Artificial Intelligence”, The MIT Press.
5. N. R. Jennings, K. Sycara, M. Wooldridge. (1998), A Roadmap of Agent
Research and Development, Journal of Autonomous Agents and Multi-Agent
Systems, pp. 275-306.
6. http://en.wikipedia.org/wiki/Client-server
7. http://en.wikipedia.org/wiki/Software_agent
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
8. http://en.wikipedia.org/wiki/Java_Agent_Development_Framework