1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

88 420 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 88
Dung lượng 2,49 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠ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 3

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

Trịnh Hồng Nam

Trang 4

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

Trịnh Hồng Nam

Trang 5

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

1.4.1 Tìm kiếm, thu thập thông tin nhiều nơi 15

Trang 6

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

2.2.1.2 Sơ đồ khối 34

Trang 7

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

2.2.8.1 Mô tả thuật toán 50

Trang 8

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

3.3.2.1 Mô tả tổng quan các tình huống sử dụng 62

Trang 9

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

TÀI LIỆU THAM KHẢO 76

Trang 10

DANH MỤC CÁC TỪ VIẾT TẮT TRONG LUẬN VĂN

Trang 11

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

HÌNH 3.3 KIẾN TRÚC KỸ THUẬT HỆ THỐNG 61

Trang 12

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

ĐÃ CẬP NHẬT THÀNH CÔNG PHIÊN BẢN MỚI PHẦN MỀM 74

Trang 13

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 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 16

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

Cuối cùng là phần kết luận và hướng phát triển

Trang 17

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

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 18

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 (active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của

Trang 19

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 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 20

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ử

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 21

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 quyết định bởi tri thức trang bị cho tác tử di động

Trang 22

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 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 24

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ử 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 25

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ụ

Hình 1.4 Vòng đời của một tác tử di động

Trang 26

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.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 27

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

đó, 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 28

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ô hình tác tử di động

Trang 29

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ừ

đó 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 30

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

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 31

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 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 32

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

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 33

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ử

e) Các thân chủ

Trang 34

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

là một thực thể vật lí hơn một khái niệm logic

Trang 35

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

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 36

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

Đình chỉ thỉ hành: môi trường đình chỉ việc thi hành của tác tử

Trang 37

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

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 39

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

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 40

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 bản 4.5 Tháng 03.2002 sản phẩm Voyager được nhượng lại cho Recursion

Ngày đăng: 17/08/2016, 16:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. A. Fuggetta, G. Vigna, (1998), “Understanding Code Mobility”, IEEE Transactions on Software Engineering, 24(5),342-361 Sách, tạp chí
Tiêu đề: Understanding Code Mobility”, "IEEE Transactions on Software Engineering
Tác giả: A. Fuggetta, G. Vigna
Năm: 1998
2. D. B. Lange, M. Oshima (1998), Programming and Deploying Java Mobile Agents with Aglets, Addison-Wesley, USA Sách, tạp chí
Tiêu đề: Programming and Deploying Java Mobile Agents with Aglets
Tác giả: D. B. Lange, M. Oshima
Năm: 1998
3. Fabio Bellifemine, Giovanni Caire, Dominic Greenwood, (2007), Developing Multi-Agent Systems with JADE, John Wiley and Sons Ltd Sách, tạp chí
Tiêu đề: Developing Multi-Agent Systems with JADE
Tác giả: Fabio Bellifemine, Giovanni Caire, Dominic Greenwood
Năm: 2007
4. Gerhard Weiss, (1999), “ Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence”, The MIT Press Sách, tạp chí
Tiêu đề: Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence
Tác giả: Gerhard Weiss
Năm: 1999
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 Sách, tạp chí
Tiêu đề: A Roadmap of Agent Research and Development, Journal of Autonomous Agents and Multi-Agent Systems
Tác giả: N. R. Jennings, K. Sycara, M. Wooldridge
Năm: 1998

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Sự tiến hóa của mô hình tác tử di động - 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
Hình 1.1. Sự tiến hóa của mô hình tác tử di động (Trang 19)
Hình 1.4. Vòng đời của một tác tử di động - 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
Hình 1.4. Vòng đời của một tác tử di động (Trang 25)
2.2.1.2. Sơ đồ khố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
2.2.1.2. Sơ đồ khối (Trang 46)
2.2.2.2. Sơ đồ khố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
2.2.2.2. Sơ đồ khối (Trang 48)
2.2.3.2. Sơ đồ khố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
2.2.3.2. Sơ đồ khối (Trang 51)
2.2.4.2. Sơ đồ khố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
2.2.4.2. Sơ đồ khối (Trang 54)
2.2.5.2. Sơ đồ khố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
2.2.5.2. Sơ đồ khối (Trang 57)
2.2.7.2. Sơ đồ khố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
2.2.7.2. Sơ đồ khối (Trang 61)
2.2.8.2. Sơ đồ khố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
2.2.8.2. Sơ đồ khối (Trang 63)
2.2.9.2. Sơ đồ khố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
2.2.9.2. Sơ đồ khối (Trang 65)
Hình 3.2. Mô hình thực thể liên kết - 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
Hình 3.2. Mô hình thực thể liên kết (Trang 70)
Hình 3.3. Kiến trúc logic hệ thống  Giải thích: - 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
Hình 3.3. Kiến trúc logic hệ thống Giải thích: (Trang 72)
Hình 3.4. Tổng quan các tình huống sử dụng  Giải thích: - 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
Hình 3.4. Tổng quan các tình huống sử dụng Giải thích: (Trang 74)
Hình 3.9. Quan hệ giữa các bảng trong cơ sở dữ liệu - 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
Hình 3.9. Quan hệ giữa các bảng trong cơ sở dữ liệu (Trang 79)
Hình 3.10. Giao diện trang web quản lý danh sách phần mềm - 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
Hình 3.10. Giao diện trang web quản lý danh sách phần mềm (Trang 84)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w