ĐẠ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
Trang 1ĐẠ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
THÁI NGUYÊN, NĂM 2015
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
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
Trang 3LỜ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
Trịnh Hồng Nam
Trang 4LỜ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
Trịnh Hồng Nam
Trang 5MỤ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
1.4.1 Tìm kiếm, thu thập thông tin nhiều nơi 15
Trang 61.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
2.2.1.2 Sơ đồ khối 34
Trang 72.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
2.2.8.1 Mô tả thuật toán 50
Trang 82.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
3.3.2.1 Mô tả tổng quan các tình huống sử dụng 62
Trang 93.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
TÀI LIỆU THAM KHẢO 76
Trang 10DANH MỤC CÁC TỪ VIẾT TẮT TRONG LUẬN VĂN
Trang 11DANH 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
HÌNH 3.3 KIẾN TRÚC KỸ THUẬT HỆ THỐNG 61
Trang 12HÌ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
ĐÃ CẬP NHẬT THÀNH CÔNG PHIÊN BẢN MỚI PHẦN MỀM 74
Trang 13Tá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 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 đó
Trang 14Để 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
Về lý thuyết:
Trang 15Đề 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 mềm
Trang 16Chươ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
Cuối cùng là phần kết luận và hướng phát triển
Trang 17CHƯƠ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
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
Trang 18khô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 (active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của
Trang 19chươ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 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
Trang 20Tá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ử
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ể 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
Tác tử di động (Mobile Agent)
AI & Khoa học nhận dạng
Máy học
Trang 21Hì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 quyết định bởi tri thức trang bị cho tác tử di động
Trang 22b) 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 của tác tử đến một môi trường khác
Trang 23 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
Bước 3 : Code được thực thi ở Client
Trang 24b) 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ử 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ử
Trang 25lạ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ụ
Hình 1.4 Vòng đời của một tác tử di động
Trang 261.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.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 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
Trang 27bằ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
đó, 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
Trang 281.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ô hình tác tử di động
Trang 291.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ừ
đó 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
Trang 30giữ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
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:
Trang 31Tạ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 các khách hàng khác để chủ động tải, chia sẻ các phiên bản phần mềm
Trang 32CHƯƠ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
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
b) Mã thi hành
Trang 33Giố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ử
e) Các thân chủ
Trang 34Thâ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
là một thực thể vật lí hơn một khái niệm logic
Trang 35Mộ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
Trang 36thi 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
Đình chỉ thỉ hành: môi trường đình chỉ việc thi hành của tác tử
Trang 372.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
di chuyển được chọn
Trang 38Đ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ử
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 :
Trang 39Thô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
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ự
Trang 40kiệ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 bản 4.5 Tháng 03.2002 sản phẩm Voyager được nhượng lại cho Recursion