ĐẠI HỌC THÁI NGUYÊN

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

TRỊNH HỒNG NAM

NGHIÊN CỨU CÔNG NGHỆ TÁC TỬ DI ĐỘNG

VÀ XÂY DỰNG ỨNG DỤNG PHÂN TÁN

CẬP NHẬT PHẦN MỀM

LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

THÁI NGUYÊN, NĂM 2015

ĐẠI HỌC THÁI NGUYÊN

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

TRỊNH HỒNG NAM

NGHIÊN CỨU CÔNG NGHỆ TÁC TỬ DI ĐỘNG VÀ XÂY

DỰNG ỨNG DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM

Chuyên ngành: Khoa học máy tính

Mã số: 60 48 0101

LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH

HƢỚNG DẪN KHOA HỌC: TS. PHẠM THẾ QUẾ

THÁI NGUYÊN, NĂM 2015

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

~ i ~

LỜI CAM ĐOAN

NGHIÊN CỨU CÔNG NGHỆ TÁC TỬ DI ĐỘNG VÀ XÂY

DỰNG ỨNG DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM

Tôi xin cam đoan luận văn “Nghiên cứu công nghệ tác tử di động và xây

dựng ứng dụng phân tán cập nhật phần mềm” là sản phẩm của riêng cá nhân,

không sao chép lại của ngƣời khác. Trong toàn bộ nội dung của luận văn,

những điều đƣợc trình bày hoặc là của cá nhân hoặc là đƣợc tổng hợp, nghiên

cứu từ nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất xứ và

trích dẫn rõ ràng.

Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo

quy định cho lời cam đoan của mình.

Thái Nguyên, ngày 20 tháng 08 năm 2015

Học viên

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Trịnh Hồng Nam

~ ii ~

LỜI CẢM ƠN

Lời đầu tiên, tôi xin bày tỏ lòng biết ơn đến thầy TS Phạm Thế Quế,

ngƣời đã tận tình hƣớng dẫn, chỉ bảo và giúp đỡ tôi trong suốt quá trình

nghiên cứu và hoàn thành luận văn này.

Tôi xin chân thành cảm ơn các thầy cô giáo trƣờng Đại học Công nghệ

Thông tin và Truyền thông - Đại học Thái Nguyên đã giảng dạy và cung cấp

cho chúng tôi những kiến thức rất bổ ích trong thời gian học cao học, giúp tôi

có nền tảng tri thức để phục vụ nghiên cứu khoa học sau này.

Tôi cũng xin cảm ơn Lãnh đạo và đồng nghiệp tại đơn vị đã tạo điều

kiện và giúp đỡ tôi trong suốt quá trình nghiên cứu và hoàn thành luận văn.

Tôi cũng xin bày tỏ lòng cảm ơn đến gia đình và bạn bè, những ngƣời luôn

quan tâm, động viên và khuyến khích tôi trong quá trình học tập.

Thái Nguyên, ngày 20 tháng 08 năm 2015

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Trịnh Hồng Nam

~ iii ~

MỤC LỤC

Trang

LỜI CAM ĐOAN .............................................................................................. i

LỜI CẢM ƠN ................................................................................................... ii

MỤC LỤC ........................................................................................................ iii

DANH MỤC CÁC HÌNH ẢNH ...................................................................... ix

MỞ ĐẦU ........................................................................................................... 1

CHƢƠNG 1. TỔNG QUAN VỀ TÁC TỬ DI ĐỘNG VÀ ỨNG DỤNG

PHÂN TÁN CẬP NHẬT PHẦN MỀM ........................................................... 5

1.1. Giới thiệu về tác tử di động ........................................................................ 5

1.1.1. Giới thiệu ........................................................................................ 5

1.1.2. Sự tiến hóa từ các mô hình ứng dụng phân tán ............................... 6

1.1.3. Khái niệm về tác tử di động ............................................................ 7

1.1.4. Các đặc tính của tác tử di động ....................................................... 9

1.1.5. Phân loại tác tử di động ................................................................. 10

1.2. Nguyên lý hoạt động của tác tử di động .................................................. 11

1.2.1. Các phƣơng pháp thực thi mã nguồn trong môi trƣờng mạng...... 11

1.2.2. Vòng đời của một tác tử di động ................................................... 12

1.3. Các lợi ích của tác tử di động ................................................................... 14

1.3.1. Giảm tải mạng ............................................................................... 14

1.3.2. Khắc phục sự trễ mạng .................................................................. 14

1.3.3. Thi hành không đồng bộ và tự trị .................................................. 14

1.3.4. Thích ứng nhanh ........................................................................... 15

1.3.5. Khắc phục tình trạng không đồng nhất ......................................... 15

1.3.6. Mạnh mẽ và có khả năng chế ngự lỗi cao ..................................... 15

1.4. Các ứng dụng của tác tử di động .............................................................. 15

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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

~ iv ~

1.4.2. Theo dõi thông tin ......................................................................... 16

1.4.3. Giám sát và phổ biến thông tin ..................................................... 16

1.4.4. Phân tải .......................................................................................... 16

1.4.5. Tự động đàm phán ........................................................................ 17

1.4.6. Thƣơng mại điện tử ....................................................................... 17

1.4.7. Giải trí ........................................................................................... 17

1.4.8. Tự động cập nhật phần mềm ......................................................... 17

1.5. Ứng dụng phân tán cập nhật phần mềm ................................................... 18

CHƢƠNG 2. MỘT SỐ THUẬT TOÁN TRÊN TÁC TỬ DI ĐỘNG GẮN

VỚI ỨNG DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM .......................... 20

2.1. Phân tích hệ thống tác tử di động ............................................................. 20

2.1.1. Tác tử di động và môi trƣờng thi hành ......................................... 20

2.1.1.1. Thành phần của tác tử di động .................................................. 20

2.1.1.2. Môi trƣờng thi hành .................................................................. 22

2.1.2. Các thao tác của tác tử di động ..................................................... 23

2.1.2.1. Tạo và hủy một tác tử di dộng .................................................. 23

2.1.2.2. Di chuyển tác tử di động ........................................................... 25

2.1.3. Trao đổi, liên lạc giữa các tác tử di động ...................................... 26

2.1.4. Một số hệ thống tác tử di động ..................................................... 27

2.1.4.1. Aglets ........................................................................................ 27

2.1.4.2. Voyager ..................................................................................... 28

2.1.4.3. Mole .......................................................................................... 30

2.1.4.4. ZEUS .......................................................................................... 31

2.2. Một số thuật toán trên tác tử di động ....................................................... 33

2.2.1 Thuật toán tạo và giao nhiệm vụ cho tác tử di động ...................... 33

2.2.1.1. Mô tả thuật toán ........................................................................ 33

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

2.2.1.2. Sơ đồ khối ................................................................................. 34

~ v ~

2.2.1.3. Giả mã ....................................................................................... 35

2.2.2. Thuật toán kiểm tra phiên bản phần mềm ..................................... 35

2.2.2.1. Mô tả thuật toán ........................................................................ 35

2.2.2.2. Sơ đồ khối ................................................................................. 36

2.2.2.3. Giả mã ....................................................................................... 37

2.2.3. Thuật toán thi hành nhiệm vụ tải phần mềm ................................ 37

2.2.3.1. Mô tả thuật toán ........................................................................ 37

2.2.3.2. Sơ đồ khối ................................................................................. 39

2.2.3.3. Giả mã ....................................................................................... 40

2.2.4. Thuật toán thi hành nhiệm vụ cập nhật phần mềm ....................... 40

2.2.4.1. Mô tả thuật toán ........................................................................ 41

2.2.4.2. Sơ đồ khối ................................................................................. 42

2.2.4.3. Giả mã ....................................................................................... 43

2.2.5. Thuật toán tác tử trao đổi thông điệp với máy chủ ....................... 43

2.2.5.1. Mô tả thuật toán ........................................................................ 43

2.2.5.2. Sơ đồ khối ................................................................................. 45

2.2.5.3. Giả mã ....................................................................................... 46

2.2.6. Thuật toán gửi đi một tác tử di động ............................................. 46

2.2.6.1. Mô tả thuật toán ........................................................................ 46

2.2.6.2. Sơ đồ khối ................................................................................. 47

2.2.6.3. Giả mã ....................................................................................... 48

2.2.7. Thuật toán nhận về một tác tử di động ......................................... 48

2.2.7.1. Mô tả thuật toán ........................................................................ 48

2.2.7.2. Sơ đồ khối ................................................................................. 49

2.2.7.3. Giả mã ....................................................................................... 49

2.2.8. Thuật toán liên lạc giữa các tác tử di động ................................... 50

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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

~ vi ~

2.2.8.2. Sơ đồ khối ................................................................................. 51

2.2.8.3. Giả mã ....................................................................................... 52

2.2.9. Thuật toán hủy tác tử di động ....................................................... 52

2.2.9.1. Mô tả thuật toán ........................................................................ 52

2.2.9.2. Sơ đồ khối ................................................................................. 53

2.2.9.3. Giả mã ....................................................................................... 54

CHƢƠNG 3. THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG PHÂN TÁN CẬP

NHẬT PHẦN MỀM ....................................................................................... 55

3.1. Mô tả yêu cầu ........................................................................................... 55

3.1.1. Yêu cầu về chức năng ................................................................... 55

3.1.2. Yêu cầu phi chức năng .................................................................. 55

3.2. Phân tích chi tiết ....................................................................................... 56

3.2.1. Phân tích nghiệp vụ của ứng dụng ................................................ 56

3.2.1.1. Nghiệp vụ quản lý phần mềm ................................................... 56

3.2.1.2. Nghiệp vụ quản lý khách hàng ................................................. 56

3.2.1.3. Nghiệp vụ quản lý tác tử di động ............................................. 57

3.2.1.4. Nghiệp vụ cập nhật phần mềm ................................................. 57

3.2.2. Phân tích mô hình quan hệ thực thể .............................................. 57

3.2.2.1. Mô hình thực thể - liên kết ....................................................... 57

3.2.2.2. Mô tả thực thể ........................................................................... 58

3.2.3. Phân tích các vấn đề bảo mật ........................................................ 59

3.3. Thiết kế ..................................................................................................... 60

3.3.1. Kiến trúc hệ thống ......................................................................... 60

3.3.1.1. Kiến trúc logic .......................................................................... 60

3.3.1.2. Kiến trúc kỹ thuật ..................................................................... 61

3.3.2. Thiết kế chức năng ........................................................................ 62

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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

~ vii ~

3.3.2.2. Thiết kế chi tiết các tình huống sử dụng ................................... 63

3.3.3. Thiết kế cơ sở dữ liệu .................................................................... 66

3.3.3.1. Thiết kế chung .......................................................................... 66

3.3.3.2. Danh sách các bảng .................................................................. 66

3.3.3.3. Quan hệ giữa các bảng .............................................................. 67

3.3.3.4. Mô tả các bảng .......................................................................... 67

3.5. Kết quả đạt đƣợc ...................................................................................... 69

3.5.1. Mã nguồn một số module phần mềm ............................................ 69

3.5.2. Một số hình ảnh giao diện phần mềm ........................................... 71

3.5.3. Đánh giá, so sánh với các phƣơng pháp khác ............................... 74

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ...................................................... 75

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

TÀI LIỆU THAM KHẢO ............................................................................... 76

~ viii ~

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

AGENT – Tác tử

MOBILE AGENT – Tác tử di động

CSDL – Cơ sở dữ liệu

SERVER – Máy chủ

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

KQML – Ngôn ngữ hƣớng thông điệp

~ ix ~

DANH MỤC CÁC HÌNH ẢNH

Trang

HÌNH 1.1. SỰ TIẾN HÓA CỦA MÔ HÌNH TÁC TỬ DI ĐỘNG .................. 7

HÌNH 1.2. TÁC TỬ – PHƢƠNG PHÁP LẬP TRÌNH .................................... 8

HÌNH 1.3. MÔ HÌNH HOẠT ĐỘNG TÁC TỬ DI ĐỘNG - MOBILE

AGENT ..................................................................................................... 9

HÌNH 1.4. VÒNG ĐỜI CỦA MỘT TÁC TỬ DI ĐỘNG .............................. 13

HÌNH 2.1. SƠ ĐỒ KHỐI THUẬT TOÁN TẠO VÀ GIAO NHIỆM VỤ TÁC

TỬ ........................................................................................................... 34

HÌNH 2.2. SƠ ĐỒ KHỐI THUẬT TOÁN KIỂM TRA PHIÊN BẢN PHẦN

MỀM ....................................................................................................... 36

HÌNH 2.3. SƠ ĐỒ KHỐI THUẬT TOÁN THI HÀNH NHIỆM VỤ TẢI

PHẦN MỀM ........................................................................................... 39

HÌNH 2.4. SƠ ĐỒ KHỐI THUẬT TOÁN THI HÀNH NHIỆM VỤ CẬP

NHẬT PHẦN MỀM ............................................................................... 42

HÌNH 2.5. SƠ ĐỒ KHỐI THUẬT TOÁN TÁC TỬ TRAO ĐỔI THÔNG

ĐIỆP VỚI MÁY CHỦ ............................................................................ 45

HÌNH 2.6. SƠ ĐỒ KHỐI THUẬT TOÁN GỬI ĐI MỘT TÁC TỬ .............. 47

HÌNH 2.7. SƠ ĐỒ KHỐI THUẬT TOÁN NHẬN VỀ MỘT TÁC TỬ DI

ĐỘNG ..................................................................................................... 49

HÌNH 2.8. SƠ ĐỒ KHỐI THUẬT TOÁN LIÊN LẠC GIỮA CÁC TÁC TỬ

DI ĐỘNG ................................................................................................ 51

HÌNH 2.9. SƠ ĐỒ KHỐI THUẬT TOÁN HỦY TÁC TỬ DI ĐỘNG .......... 53

HÌNH 3.1. MÔ HÌNH NGHIỆP VỤ CỦA ỨNG DỤNG ............................... 56

HÌNH 3.2. MÔ HÌNH THỰC THỂ LIÊN KẾT ............................................. 58

HÌNH 3.3. KIẾN TRÚC LOGIC HỆ THỐNG ............................................... 60

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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

~ x ~

HÌNH 3.4. TỔNG QUAN CÁC TÌNH HUỐNG SỬ DỤNG ......................... 62

HÌNH 3.5. TÌNH HUỐNG SỬ DỤNG “QUẢN LÝ PHẦN MỀM” .............. 63

HÌNH 3.6. TÌNH HUỐNG SỬ DỤNG “QUẢN LÝ THÔNG TIN KHÁCH

HÀNG” .................................................................................................... 64

HÌNH 3.7. TÌNH HUỐNG SỬ DỤNG “QUẢN LÝ TÁC TỬ DI ĐỘNG” ... 64

HÌNH 3.8. TÌNH HUỐNG SỬ DỤNG “CẬP NHẬT PHẦN MỀM” ............ 65

HÌNH 3.9. QUAN HỆ GIỮA CÁC BẢNG TRONG CƠ SỞ DỮ LIỆU ....... 67

HÌNH 3.10. GIAO DIỆN TRANG WEB QUẢN LÝ DANH SÁCH PHẦN

MỀM ....................................................................................................... 72

HÌNH 3.11. HÌNH ẢNH GIAO DIỆN CẬP NHẬT PHIÊN BẢN PHẦN

MỀM ....................................................................................................... 72

HÌNH 3.13. HÌNH ẢNH TÁC TỬ DI ĐỘNG THÔNG BÁO ĐANG

DOWNLOAD PHẦN MỀM ................................................................... 72

HÌNH 3.14. HÌNH ẢNH TÁC TỬ DI ĐỘNG THÔNG BÁO ĐANG CẬP

NHẬT PHẦN MỀM ............................................................................... 73

HÌNH 3.15. HÌNH ẢNH TÁC TỬ DI ĐỘNG THÔNG BÁO ĐÃ CẬP NHẬT

THÀNH CÔNG ...................................................................................... 73

HÌNH 3.16. HÌNH ẢNH TẠI MÁY CHỦ THÔNG BÁO TÁC TỬ ĐÃ TÌM

THẤY PHIÊN BẢN MỚI PHẦN MỀM. ............................................... 73

HÌNH 3.17. HÌNH ẢNH TẠI MÁY CHỦ THÔNG BÁO TÁC TỬ DI ĐỘNG

ĐANG DOWNLOAD PHẦN MỀM. ..................................................... 73

HÌNH 3.18. HÌNH ẢNH TẠI MÁY CHỦ THÔNG BÁO TÁC TỬ DI ĐỘNG

ĐANG CẬP NHẬT ................................................................................ 74

HÌNH 3.19. HÌNH ẢNH TẠI MÁY CHỦ THÔNG BÁO TÁC TỬ DI ĐỘNG

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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

~ 1 ~

MỞ ĐẦU

1. Đặt vấn đề

Tin học ngày càng phát triển dẫn đến việc hình thành nhu cầu tạo ra

những tiểu chƣơng trình nhỏ gọn, thông minh, có khả năng hoạt động độc lập

và kết hợp với những tiểu chƣơng trình khác. Năm 1982, kỹ thuật lập trình lập

hƣớng đối tƣợng đƣợc thay thế kỹ thuật lập trình có cấu trúc truyền thống.

Năm 1994, khái niệm Tác tử phần mềm (Software Agent) đƣợc đƣa ra bởi

Mark Sidell và Chuck Knuff và đến năm 1995 phiên bản đầu tiên của tác tử

(Agent) xuất hiện đã tạo ra một phƣơng pháp lập trình mới.

Tác tử di động là một trong những hƣớng nghiên cứu thu hút nhiều sự

quan tâm nhất từ những năm 1990 đến nay với những đặc điểm rất thích hợp

cho việc phát triển các ứng dụng phân tán.

Tác tử di động là một phần mềm hoạt động độc lập, có khả năng di

chuyển từ máy này qua máy khác trong môi trƣờng mạng, có thể giao tiếp với

nhau để thực hiện theo yêu cầu của chủ nhân của nó.

Trong thực tế, với các khách hàng sử dụng phần mềm tại máy tính cá

nhân của mình, khi cần nâng cấp phiên bản mới hay cài đặt phiên bản vá lỗi

thì nhà cung cấp phải thực hiện điều này trực tiếp hoặc qua mạng internet.

Điều này tối thiểu phải có sự tác động của nhà sản xuất đến máy tính khách

hàng hoặc khách hàng chủ động tải phiên bản mới từ máy chủ của nhà sản

xuất. Do đó gây ra sự lãng phí về thời gian, công sức, tiền bạc mà đôi khi

không đáp ứng kịp thời đƣợc yêu cầu của khách hàng.

Từ thực tế trên kết hợp với khái niệm về tác tử di động, ta có thể xây

dựng một ứng dụng phân tán mà nó có thể cập nhật phần mềm tự động cho

các nhà sản xuất. Sau khi đƣợc yêu cầu, các tác tử sẽ mang các thành phần

phần mềm đƣợc đóng gói cũng nhƣ các thủ tục cài đặt đến các máy cá nhân

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

của khách hàng và tự động cập nhật các phiên bản mới nhất trên máy đó.

~ 2 ~

Để hiểu thêm về vấn đề này, em chọn đề tài “Nghiên cứu công nghệ tác

tử di động và xây dựng ứng dụng phân tán cập nhật phần mềm” nhằm nắm

nguyên tắc thiết kế Tác tử di động từ đó xây dựng các ứng dụng phân tán tự

động cập nhật phần mềm.

2. Mục tiêu nghiên cứu

Mục tiêu của luận văn là nghiên cứu đƣợc tổng quan về tác tử di động,

nguyên lý hoạt động, các lợi ích của tác tử và ứng dụng của nó. Phân tích chi

tiết một hệ thống tác tử di động, các thành phần và các thao tác của nó. Tìm

hiểu bài toán tự động cập nhật phần mềm, phân tích, thiết kế, từ đó xây dựng

ứng dụng phân tán tự động cập nhật phần mềm.

3. Đối tƣợng và phạm vi nghiên cứu

Đối tƣợng nghiên cứu của luận văn là về tác tử di động trong phạm vi

xây dựng ứng dụng cập nhật phần mềm. Ứng dụng xây dựng trong phạm vi

mô phỏng với các tác tử tự động cập nhật phần mềm tại máy tính của khách

hàng hoặc cập nhật sau khi có yêu cầu của ngƣời quản trị.

4. Phƣơng pháp nghiên cứu

Luận văn sử dụng phƣơng pháp nghiên cứu lý thuyết kết hợp với thực

nghiệm.

Nghiên cứu lý thuyết:

− Nghiên cứu về tác tử di động.

− Nguyên cứu về các yêu cầu xây dựng ứng dụng phân tán cập nhật phần

mềm.

Nghiên cứu thực nghiệm:

− Thực hiện xây dựng ứng dụng phân tán cập nhật phần mềm.

− Cài đặt, vận hành thử nghiệm, đánh giá kết quả của ứng dụng.

5. Ý nghĩa khoa học của đề tài

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Về lý thuyết:

~ 3 ~

Đề tài mở ra một hƣớng nghiên cứu mới về các ứng dụng của tác tử di

động cũng nhƣ một phƣơng pháp mới để thực hiện công tác nâng cấp, cập

nhật sản phẩm phần mềm.

Về thực tiễn:

Với việc triển khai thực tiễn luận văn, sẽ tạo điều kiện để các nhà sản

xuất phần mềm có thêm một công cụ cập nhật, nâng cấp sản phẩm của họ

thuận tiện, tiết kiệm hơn về thời gian, công sức, tiền bạc. Ngƣời sử dụng phần

mềm thì có thêm một lựa chọn để nâng cấp, cập nhật phần mềm nhanh chóng,

thuận tiện hơn.

6. Bố cục của luận văn

Dựa trên đối tƣợng và phạm vi nghiên cứu, luận văn sẽ đƣợc chia làm 3

chƣơng chính với các nội dung cụ thể nhƣ sau:

Chương 1. Tổng quan về tác tử di động và ứng dụng phân tán cập

nhật phần mềm.

Ở chƣơng này sẽ trình bày nội dung giới thiệu về Tác tử di động, các

nguyên lý hoạt động và lợi ích của nó, các lĩnh vực ứng dụng của Tác tử di

động. Đồng thời cũng giới thiệu tổng quan về ứng dụng phân tán cập nhật

phần mềm.

Chương 2. Một số thuật toán trên tác tử di động gắn với ứng dụng

phân tán cập nhật phần mềm.

Chƣơng này sẽ phân tích kĩ hơn về hệ thống tác tử di động và trình bày

một số thuật toán đối với tác tử di động, mỗi thuật toán trình bày chi tiết các

bƣớc, sơ đồ khối và viết giả mã. Bên cạnh đó cũng nêu các tình huống sẽ sử

dụng thuật toán trong ứng dụng cập nhật phần mềm.

Chương 3. Thiết kế và xây dựng ứng dụng phân tán cập nhật phần

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

mềm

~ 4 ~

Chƣơng này trình bày về yêu cầu của ứng dụng, bao gồm các yêu cầu về

chức năng và phi chức năng. Phân tích chi tiết bài toán, từ đó có thiết kế kiến

trúc hệ thống, thiết kế chi tiết chức năng, thiết kế cơ sở dữ liệu. Dựa vào nội

dung phân tích, thiết kế và kết quả thực nghiệm, nội dung chƣơng này sẽ nêu

kết quả đạt đƣợc.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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

~ 5 ~

CHƢƠNG 1. TỔNG QUAN VỀ TÁC TỬ DI ĐỘNG VÀ ỨNG

DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM

1.1. Giới thiệu về tác tử di động

1.1.1. Giới thiệu

Sự bùng nổ nhanh chóng các dịch vụ và nguồn thông tin trên mạng đã

làm gia tăng việc khai thác, xử lý thông tin ngày càng trở nên phức tạp và đa

dạng. Có thể kể đến các khuynh hƣớng chính yếu sau:

− Ngƣời dùng di động (Mobile users): Ngày nay ngƣời dùng thƣờng có

nhu cầu truy xuất, tìm kiếm thông tin ở mọi nơi, mọi lúc từ các thiết bị di

động (Mobile devices). Vì vậy việc hỗ trợ kết nối và trên mọi thiết bị là một

thách thức đƣợc đặt ra.

− Nhu cầu chuyên biệt hoá: Việc khai thác thông tin, sử ụng dịch vụ đã

không còn thỏa mãn với các cơ chế thụ động, mà ngƣời dùng thƣờng có

khuynh hƣớng muốn chuyên biệt hoá nhu cầu của mình một cách chủ động.

Internet là cơ sở để thực hiện mong muốn này. Vì vậy, cần hỗ trợ khả năng

chuyên biệt hoá các ứng dụng mạng dành cho ngƣời dùng.

− Nguồn tin đa dạng, khối lƣợng cực lớn: Đã xuất hiện sự bùng nổ thông

tin trên mạng với sự xuất hiện của nhiều kho dữ liệu khổng lồ. Các kho dữ

liệu này lại đƣợc cung cấp từ nhiều nguồn nên thƣờng không đồng nhất về tổ

chức, cấu trúc. Đây sẽ lại là một khó khăn mới đối với ngƣời dùng khi truy

vấn.

− Việc các mạng Intranet đƣợc xây dựng phổ biến là một điều kiện tốt để

triển khai các kỹ thuật mới trong việc xây dựng các ứng dụng mạng. Vì các

mạng Intranet cho phép thiết lập an toàn hệ thống dễ dàng hơn trong một tập

hợp mang tính cộng tác và tin cậy.

− Môi trƣờng không đồng nhất: Khi kết nối các máy tính, các mạng cục

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

bộ vào Internet, các ứng dụng và ngƣời dùng phải đối mặt với một môi trƣờng

~ 6 ~

không đồng nhất về phần cứng, kiến trúc, hệ điều hành…Và bài toán tƣơng

thích cần phải giải quyết.

− Sự khập khiễng về đƣờng truyền: Mặc dù ngành viễn thông đã đạt đến

những tiến bộ đáng kinh ngạc, và cho ra đời các loại cáp quang với tốc

độtruyền tải nhanh đáng kể. Đa số ngƣời dùng vẫn bị giới hạn với các thiết bị

kết nối nhƣ modem hay các đƣờng truyền băng thông thấp với mạng không

dây.

Với tất cả các đặc điểm trên đây, các ứng dụng phân tán phát triển theo

mô hình Client/Server truyền thống tỏ ra một số bất lợi vì đòi hỏi làm việc

đồng bộ, đòi hỏi đƣờng truyền băng thông cao, độ trễ thấp và cuối cùng là các

dịch vụ thiếu linh động, khó thay đổi hay bổ sung. Tác tử di động là một mô

hình trong đó các tiến trình - đƣợc gọi là tác tử có tính tự trị và khả năng di

động từ máy chủ này sang máy chủ khác để hoàn tất tác vụ. Ý tƣởng chủ đạo

của Tác tử di động là di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó có thể

giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và tạo ra

sự tƣơng thích mạnh trên các môi trƣờng không đồng nhất. Tác tử di động với

các ƣu điểm này hứa hẹn một giải pháp mới, hiệu quả và dễ dàng hơn trong

việc phát triển ứng dụng phân tán, đặc biệt tìm kiếm thông tin mới nhất.

1.1.2. Sự tiến hóa từ các mô hình ứng dụng phân tán

Theo truyền thống, các ứng dụng phân tán có cấu trúc theo mô hình

Client/Server sẽ thực hiện việc giao tiếp qua các cơ chế gọi hàm từ xa. Yêu

cầu các mô hình giao tiếp phải đồng bộ. Một kiến trúc tiến bộ hơn là Remote

Evaluation (REV) do Stamos và Gifford đƣa ra vào năm 1990. Trong mô hình

REV, thay vì yêu cầu thực hiện các hàm từ xa thì Client chỉ việc gửi mã

nguồn các hàm của nó đến Server và yêu cầu Server thực hiện rồi trả về kết

quả. Một số hệ thống khác cũng đã giới thiệu khái niệm thông điệp chủ động

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

(active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của

~ 7 ~

chƣơng trình để thực thi tại những vị trí này. Tác tử di động là mô hình tiến

hóa tiên tiến nhất so với các mô hình trƣớc đó.

Hình 1.1. Sự tiến hóa của mô hình tác tử di động

1.1.3. Khái niệm về tác tử di động

Tác tử di động là giải pháp mạng và là công nghệ lập trình hƣớng tác tử,

tiến hóa hơn các mô hình phát triển ứng dụng phân tán trên mạng máy tính

truyền thống. Tác tử di động đƣợc xây dựng dựa trên nhiều công nghệ hiện

đại, không dựa vào nguyên lý Client/Server và cũng không theo các phƣơng

thức triệu gọi từ xa truyền thống. Tác tử di động rất thích hợp cho bài toán

tìm kiếm, khai phá, trích rút thông tin trên mạng Internet

Một tác tử di động có thể di chuyển từ một thiết bị đầu cuối lên mạng

Internet và hoạt động không phụ thuộc vào môi trƣờng và kết nối, thậm chí

User tắt máy hay ngắt kết nối khỏi mạng.

Phát triển các ứng dụng phân tán dựa trên Tác tử di động có thể “giấu

các kênh truyền”, loại trừ khả năng phát hiện và quản lý hoạt động của chúng.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Tác tử di động không đòi hỏi phải cài đặt lại các phần mềm ở mỗi site.

~ 8 ~

Tác tử (Agent) là sự kết hợp của nhiều kỹ thuật tiên tiến về máy tính, kỹ

thuật truyền tin và các lĩnh vực tin học hiện đại (nhƣ hệ thống phân tán, AI &

Khoa học nhận dạng, máy học, mã di động, truy tìm thôngtin, cơ sở dữ liệu và

cơ sở tri thức…). Kết hợp với phƣơng pháp lập trình hƣớng đối tƣợng đã tạo

ra một phƣơng pháp phát triển mới. Phƣơng pháp lập trình hƣớng tác tử.

Phục hồi thông tin Các hệ thống phân tán

Tác tử di động (Mobile Agent) Mã nguồn di động

AI & Khoa học nhận dạng

Cơ sở dữ liệu và cơ sở tri thức Máy học

Hình 1.2. Tác tử – phƣơng pháp lập trình

Máy học nghiên cứu cách thức để mô hình hóa bài toán cho phép máy

tính tự động hiểu, xử lý và học từ dữ liệu để thực thi nhiệm vụ đƣợc giao cũng

nhƣ cách đánh giá giúp tăng tính hiệu quả.

Có rất nhiều định nghĩa khác nhau, thậm chí khác nhau về tác tử di động,

nhƣng có một định nghĩa thƣờng đƣợc sử dụng nhƣ sau:

Định nghĩa: Tác tử di động - Mobile Agent là danh từ ghép giữa Agent

(trợ lý) và Mobile (di động). Là một phần mềm có khả năng di chuyển một

cách tự trị từ nút này sang nút khác trên mạng và thực hiện các giao dịch theo

ủy quyền của chủ nhân để đạt đƣợc mục tiêu giao phó. Có khả năng giao tiếp

với nhau và hoạt động không phụ thuộc vào môi trƣờng. Khi di chuyển, tác tử

di động đóng gói mã nguồn, dữ liệu và trạng thái thi hành. Vì vậy nó có thể

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

dừng việc thi hành tại nút này, tiếp tục thi hành trên nút khác.

~ 9 ~

2-Tác tử di động di trú

S

S

3- Tác tử di động

di trú

4- Tác tử di động trả kết quả

S

1- Tác tử di động (Code, Data, State)

Hình 1.3. Mô hình hoạt động tác tử di động - Mobile Agent

Tác tử di động là một mô hình hiệu quả cho các ứng dụng phân tán. Đặc

biệt thích hợp và rất hiệu quả trong trong các giải pháp tìm kiếm thông tin cập

nhật mới nhất. Có thể thực hiện trên các môi trƣờng khác nhau, trên các thiết

bị đầu cuối khác nhau, nhƣ các máy tính di động laptop, máy tính tại nhà và

máy di động cầm tay. Các thiết bị này thƣờng disconnect trong một khoảng

thời gian dài, thƣờng có băng thông trễ, kết nối mạng không tin cậy, và

thƣờng thay đổi địa chỉ mạng qua mỗi lần kết nối.

1.1.4. Các đặc tính của tác tử di động

Các đặc tính cơ bản của tác tử di động bao gồm:

a) Tính tự trị (autonomous): là khả năng tự kiểm soát bản thân của tác

tử di động sau khi đƣợc giao việc mà không cần sự can thiệp của ngƣời dùng

hoặc của tác tử khác [3]. Có hai đặc tính thƣờng đƣợc dùng để đánh giá về sự

tự trị của tác tử di động. Đó là đặc tính hƣớng đích (goal-oriented) và tính

chủ động (pro-activeness). Khả năng tự trị của tác tử di động chủ yếu đƣợc

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

quyết định bởi tri thức trang bị cho tác tử di động.

~ 10 ~

b) Tính di động (mobility): Là khả năng di chuyển từ môi trƣờng thi

hành này sang môi trƣờng khác của một tác tử. Đồng thời giữ nguyên trạng

thái và khả năng hoạt động của nó. Các tác tử có đặc điểm này đƣợc gọi là tác

tử di động. Việc thiết kế và cài đặt tác tử di động đặt ra các yêu cầu đặc biệt

về vấn đề an ninh hệ thống [1].

c) Tính thích ứng (reactiveness): là khả năng của tác tử có thể thực thi

trên những môi trƣờng lạ, và cảm nhận đƣợc sự thay đổi của môi trƣờng.

d) Khả năng cộng tác (collaboration): Tác tử di động có khả năng tƣơng

tác với ngƣời dùng hoặc các tác tử khác để thực hiện nhiệm vụ của riêng mình

hoặc để giúp đỡ các đối tác khác.

e) Khả năng tự học: Tự học hoặc học tự động là khả năng của tác tử thu

thập các kiến thức mới từ kinh nghiệm thu lƣợm đƣợc, chẳng hạn qua các lần

thành công và thất bại. Kết quả tự học phải làm cho các tác tử hành động tốt

hơn, hiệu quả hơn.

1.1.5. Phân loại tác tử di động

a) Phân loại theo tính năng

− Tác tử tĩnh: Là các tác tử chỉ làm việc trên một hệ thống, nơi mà tác tử

bắt đầu vòng đời. Nếu tác tử tĩnh cần thông tin ở một hệ thống khác hoặc

muốn tƣơng tác với tác tử ở hệ thống khác thì chúng phải sử dụng một trong

các cơ chế truyền thông khác nhƣ RPC, RMI, DCOM...

− Tác tử di động: Không phụ thuộc vào hệ thống nơi chúng bắt đầu làm

việc. Có khả năng di chuyển tù nơi này đến nơi khác trong hệ thống mạng

máy tính tại những thời điểm và vị tri do tác tử lựa chọn. Có hai loại tác tử di

động

 Di động mạnh (strong mobility) là khả năng mà hệ thống có thể di

chuyển đồng thời mã chƣơng trình, dữ liệu và trạng thái thi hành

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

của tác tử đến một môi trƣờng khác.

~ 11 ~

 Di động yếu (weak mobility) là khả năng của hệ thống chỉ có thể di

chuyển mã chƣơng trình giữa các môi trƣờng thi hành với nhau.

Mã nguồn có thể mang kèm theo một số dữ liệu khởi tạo nhƣng

trạng thái thi hành thì không thể di chuyển.

 Trạng thái là môi trƣờng thực thi dữ liệu của tác tử, bao gồm

chƣơng trình đếm và ngăn xếp thực thi. Dữ liệu bao gồm các giá trị

sử dụng của tác tử, nhƣ là tri thức, các file xác định...

b) Phân loại theo mục đích

− Tác tử cộng tác: là một phần mềm giúp dùng để giải quyết các vấn đề

phức tạp nhƣ sửa lỗi, đề nghị nên làm gì tiếp theo và lƣu ý đến những vấn đề

ở cấp thấp.

− Tác tử giao diện: là một chƣơng trình giao diện trực tiếp, nhƣng không

có sự hƣớng dẫn trực tiếp từ ngƣời dùng. Tác tử giao diện đọc dữ liệu ngƣời

dùng nhập vào và có thể tạo ra sự thay đổi tới đối tƣợng trên màn hình. Tác tử

giao diện có thể quan sát nhiều tham số nhập vào của ngƣời dùng trong một

khoảng thời gian nào đó trƣớc khi quyết định thực hiện một hành động.

− Tác tử thông minh: Có đầy đủ cả 3 mục đích: giao tác, tự động và dễ

thích nghi.

1.2. Nguyên lý hoạt động của tác tử di động

1.2.1. Các phƣơng pháp thực thi mã nguồn trong môi trƣờng mạng

Có 3 cách thực thi mã nguồn (code)

a) Kỹ thuật pull code: Áp dụng trong mô hình Client/Server

− Bƣớc 1 : Client gửi yêu cầu đến Server

− Bƣớc 2 : Server gửi code cho Client

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

− Bƣớc 3 : Code đƣợc thực thi ở Client

~ 12 ~

b) Kỹ thuật push code: Khi có yêu cầu từ ngƣời dùng, một nút trong

mạng sẽ gửi code đến một nút khác trong cùng môi trƣờng mạng và thực thi

trên máy đó. Thao tác này gồm 2 bƣớc :

− Bƣớc 1 : Nút A gửi code đến nút B mà không có yêu cầu từ phía B.

Trong mô hình này, A chỉ là nút có nối mạng với B, không cần điều kiện A

phải là Server

− Bƣớc 2: Nút B thực thi code và gửi kết quả về cho ngƣời dùng.

− Chú ý: ở A vẫn lƣu trữ 1 bản sao của code.

c) Kỹ thuật autonomous code: Code tự quyết định sẽ đi và thực thi ở đâu

− Bƣớc 1: Code sau khi thực thi ở A sẽ tự đóng gói và di trú tới B

− Bƣớc 2: Code thực thi ở B, lúc này code hoàn toàn không còn ở A

− Tự quyết định đóng gói, không để lại bản sao và di trú đến đâu là

điểm khác biệt của tấc tử di động với 2 kỹ thuật trên.

1.2.2. Vòng đời của một tác tử di động

Vòng đời tác tử bắt đầu khi tác tử đƣợc tạo ra trên một host. Khi đó, tác

tử sẽ đƣợc cấp một định danh duy nhất. Tình trạng ban đầu cũng có thể đƣợc

khởi tạo theo. Khi đã sẵn sàng hoặc nhận đƣợc lệnh để di trú đến một host

khác nằm trong đƣờng đi của tác tử, tác tử sẽ lƣu lại trạng thái hiện hành và

tiến hành quá trình di trú. Nếu di trú thất bại, tác tử sẽ tự ngừng hoạt động

(deactivate) để rồi nó sẽ tự kích hoạt lại sau một khỏang thời gian định trƣớc

và sẽ tiến hành lại quá trình di trú đến host khác.

Khi đã di trú đến host mới thành công, tác tử sẽ phục hồi lại trạng thái.

Lúc này, tác tử bắt đầu thực thi nhiệm vụ của nó, sử dụng các dịch vụ trên

host, liên lạc với tác tử khác….

Sau khi tác tử đã hoàn tất nhiệm vụ, tác tử có thể bị huỷ hoặc chuyển

sang trạng thái ngủ đông cho đến khi có yêu cầu từ bộ đếm trong thân tác tử.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Khi đó, tác tử sẽ lƣu lại trạng thái và di trú đến một host khác.Vòng đời tác tử

~ 13 ~

lại lặp lại theo trình tự nhƣ trên cho đến khi nó hoàn thành nhiệm vụ hoặc hết

thời gian hoạt động thì tác tử sẽ bị hủy.

Creation: Khởi tạo, phát sinh ID cho tác tử, tuỳ biến cấu hình cho tác tử

Serialize: Lƣu lại trạng thái tác tử trƣớc khi di trú đến AgentOS khác

Migrate: Di trú tác tử kèm tình trạng của nó đến một nơi khác

Deserialize: Tái tạo lại trạng thái trƣớc khi di trú của tác tử

Execute: Truy cập vào các dịch vụ của host, liên lạc với các tác tử khác,

hoàn thành nhiệm vụ của tác tử

Migrate Request: Yêu cầu đƣợc di trú đến 1 host khác

Destroy or sleep: Khi nhiệm vụ đã hoàn thành hoặc gặp một trở ngại gì

đó không thể tiếp tục hoạt động thì tác tử sẽ tự hủy hoặc tự đƣa nó vào trạng

thái ngủ đông (sleep).

Mọi tác tử đều thực hiện các công việc của nó tuần tự theo logic: đầu

tiên, tác tử đƣợc tạo ra, di trú từ host này sang host khác và cuối cùng bị huỷ

sau khi hoàn thành nhiệm vụ.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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

~ 14 ~

1.3. Các lợi ích của tác tử di động

1.3.1. Giảm tải mạng

Kỹ thuật tác tử di động cho phép ngƣời dùng đóng gói cuộc trao đổi, gởi

nó đến máy đích và thực hiện xử lý dữ liệu, trao đổi cục bộ tại đó. Nhƣ thế sẽ

góp phần làm giảm những dòng dữ liệu thô trên mạng ; và nhƣ thế, tải mạng

sẽ giảm đáng kể. Phƣơng châm thực hiện của kỹ thuật tác tử di động là: mang

xử lý đến nơi chứa dữ liệu hơn là mang dữ liệu về chỗ xử lý.

1.3.2. Khắc phục sự trễ mạng

Việc điều khiển các hệ thống với quy mô lớn thông qua mạng sẽ phải

chấp nhận một sự trễ hạn nhất định. Nhƣng điều đó lại không đƣợc phép xảy

ra trong các hệ thống thời gian thực nhƣ điều khiển robot, quy trình sản xuất...

Khi đó, giải pháp tác tử di động tỏ ra hữu ích trong việc khắc phục độ trễnhờ

vào việc các tác tử có thể đƣợc gửi đi từ một trung tâm điều khiển và hành

động cục bộ, tự trị, trực tiếp thi hành các chỉ dẫn của ngƣời điều khiển.

3.1.3.1. Đóng gói các giao thức Khi dữ liệu đƣợc trao đổi trong hệ thống phân

tán, việc truyền và nhận dữ liệu phải đƣợc mã hóa bởi các giao thức cần thiết.

Các giao thức này đƣợc sở hữu bởi mỗi máy trong hệ thống. Tuy nhiên, một

khi các giao thức phải tiến hóa để phù hợp với những yêu cầu mới về sự bảo

mật hoặc tính hiệu quả, chúng bắt đầu trở nên cồng kềnh, nặng nề và trở thành

vấn đề nan giải. Riêng với giải pháp tác tử di động, các tác tử có thể mang

trên mình các giao thức thích hợp và di chuyển tới các máy ở xa đểthiết lập

các kênh truyền nhận thông tin tƣơng ứng.

1.3.3. Thi hành không đồng bộ và tự trị

Thông thƣờng, các thiết bị di động thƣờng phụ thuộc vào các kết nối

mạng đắt tiền nhƣng rất yếu ớt. Vì thế, những tác vụ cần có kết nối liên tục

giữa thiết bị di động và mạng cố định có thể sẽ không có tính kinh tế hoặc

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

không khả thi về mặt kỹ thuật. Giải pháp tác tử di động giải quyết vấn đề này

~ 15 ~

bằng cách nhúng tác vụ cần thực hiện vào tác tử, rồi gửi lên mạng. Sau khi

đƣợc gửi đi, tác tử trở nên độc lập thi hành không đồng bộ và có khả năng tự

trị. Các thiết bị di động sau đó có thể kết nối trở lại để đón tác tử về.

1.3.4. Thích ứng nhanh

Các tác tử có khả năng cảm nhận những thay đổi của môi trƣờng thi

hành và tác động trở lại những thay đổi ấy một cách tự động.

1.3.5. Khắc phục tình trạng không đồng nhất

Việc xử lý tính toán trên mạng cơ bản là không đồng nhất vì sự đa dạng

về phần cứng và phần mềm đƣợc sử dụng. Do tác tử di động độc lập với máy

tính (phần cứng và hệ điều hành) và tầng vận chuyển, chỉ phụ thuộc vào môi

trƣờng thi hành, nên chúng cung cấp một điều kiện tối ƣu cho việc liên kết

các hệ thống không liên quan gì lại với nhau.

1.3.6. Mạnh mẽ và có khả năng chế ngự lỗi cao

Với khả năng phản ứng năng động với các sự kiện và những thay đổi bất

lợi, tác tử di động giúp cho việc xây dựng hệ thống mạnh mẽ và chịu lỗi cao

đƣợc dễ dàng hơn.

1.4. Các ứng dụng của tác tử di động

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

Tìm dữ liệu từ cơ sở dữ liệu phân tán là ứng dụng phổ biến của tác tử di

động. Thay vì di chuyển lƣợng lớn dữ liệu đến bộ xử lý tìm kiếm để tạo chỉ

mục tìm kiếm, ta sẽ gửi các tác tử đến nguồn chứa thông tin từ xa, nơi mà chỉ

mục tìm kiếm sẽ đƣợc tạo

Một trong các khác biệt chính giữa mã nguồn di động và tác tử di động

là lộ trình. Trong khi mã nguồn di động luôn di chuyển từ điểm A đến điểm B

thì tác tử di động có 1 lộ trình và có thể lần lƣợt di chuyển qua nhiều site. Do

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

đó, 1 ứng dụng rõ ràng của tác tử di động là thu thập thông tin trên mạng

~ 16 ~

1.4.2. Theo dõi thông tin

Một số thông tin không trải ra theo không gian mà theo thời gian. Các

thông tin mới không ngớt đƣợc đƣa ra và công bố trên mạng. Các tác tử gửi đi

có thể đợi cho tới khi lấy đƣợc thông tin chắc chắn.

Loại ứng dụng này nêu bản chất không đồng bộ của tác tử di động. Nếu

bạn gửi đi 1 tác tử, bạn không cần ngồi đợi kết quả. Bạn có thể lâp trình cho

tác tử để nó đợi lấy đƣợc thông tin chắc chắn. Ngoài ra, bạn cũng không cần

kết nội mạng cho tới khi tác tử gửi về kết quả. Một tác tử có thể đợi cho tới

khi nào bạn kết nối lại.

1.4.3. Giám sát và phổ biến thông tin

Các tác tử di động là một minh họa cho mô hình Internet push, Các tác

tử có thể phổ biến tin tức và cập nhật phần mềm tự động cho các nhà sản xuất.

Các tác tử mang các software compoments cũng nhƣ các thủ tục cần thiết đến

các máy cá nhân của khách hàng và tự cập nhật phần mềm trên máy đó. Mô

hình này giúp cho nhà sane xuất chủ động hơn trong việc phục vụ khách hàng

để đảm bảo chất lƣợng dịch vụ của mình. Mặt khác, các ứng dụng thuộc loại

này cũng tỏ ra hiệu quả đối với giám sát mạng cục bộ hay các chƣơng trình

quản lý hoạt động, sản xuất… để giúp ngƣời quản trị giám sát các hệ thống

con.

1.4.4. Phân tải

Vì các tác tử di động có thể tạo ra nhiều bản sao của nó trên mạng, dó đó

ứng dụng tiềm năng của tác tử di động là xử lý các tác vụ song song, phân tải

cho các máy tính. Một ứng dụng đòi hỏi quá nhiều tài nguyên bộ xử lý có thể

đƣợc phân bố cho các tác tử di động mang đi thực hiện trên nhiều máy tính

khác nhau để tận dụng các tài nguyên rảnh rỗi và cân bằng tải. Hệ tác tử di

động không đồng nhất là một ví dụ minh họa khai thác ƣu điểm này của mô

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

hình tác tử di động.

~ 17 ~

1.4.5. Tự động đàm phán

Bên cạnh việc tìm kiếm cơ sở dữ liệu và file, các tác tử còn thu thập

thông tin bằng cách tƣơng tác với các tác tử khác. Ví dụ nếu bạn muốn lên

lịch hẹn với 1 ngƣời, bạn sẽ gửi tác tử tƣơng tác với tác tử đại diện của ngƣời

đó. Các tác tử sẽ đàm phán với nhau và sắp xếp lịch.

1.4.6. Thƣơng mại điện tử

Thƣơng mại điện tử là môi trƣờng tốt để áp dụng công nghệ tác tử di

động. Một tác tử di động có thể thay bạn đi mua sắm, bao gồm việc đặt hàng

và trả tiền. Chẳng hạn, nếu bạn muốn mua 1 vé máy bay từ Việt Nam sang

Hoa Kỳ, 1 tác tử có thể tới cơ sở dữ liệu của hãng hàng không, tham khảo giá

và tìm ra chuyển bay tốt nhất, thời gian thích hợp sau đó thanh toán qua credit

card của bạn.

Thƣơng mại điện tử cũng xảy ra giữa các tác tử. Ví dụ có 1 host dành

tiếng để mua bán xe. Nếu bạn muốn mua 1 chiếc xe, bản gửi tác tử sở thích

của bạn, giá cả và các thức trả giá. Bạn gửi tác tử của bạn đến host đi, ở đó nó

sẽ mặc cả và đàm phán với tác tử của host để thực hiện giao dịch giúp bạn.

1.4.7. Giải trí

Tác tử cũng có thể áp dụng vào giải trí, cụ thể là áp dụng vào game.

Trong kịch bản game, các tác tử đại diện cho ngƣời chơi. Các tác tử đua tranh

với nhau nhân danh ngƣời chơi. Mỗi ngƣời sẽ lập 1 chiến lƣợc cho tác tử của

mình, sau đó gửi tác tử đến host game. Host game sẽ đàm phán và xử lý các

tác tử.

1.4.8. Tự động cập nhật phần mềm

Tác tử di động có thể đóng vai trò nhƣ cán bộ kỹ thuật của đơn vị sản

xuất phần mềm. Tự động kiểm tra phiên bản phần mềm tại máy tính của

khách hàng, so sánh với phiên bản mới nhất mà đơn vị sản xuất cung cấp, từ

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

đó tự động cập nhật vào máy tính của khách hàng. Các tác tử có thể di chuyển

~ 18 ~

giữa các máy tính của khách hàng để mang phiên bản phần mềm mới đi theo.

Ngoài ra chúng có thể tự ra quyết định cập nhật hoặc thực hiện theo chỉ đạo

của máy chủ.

1.5. Ứng dụng phân tán cập nhật phần mềm

Trong thực tế, khi các công ty sản xuất phần mềm cung cấp sản phẩm

của mình cho khách hàng, sản phẩm của họ đƣợc cài đặt tại máy tính cá nhân

của khách hàng đó. Khi có nhu cầu nâng cấp phiên bản mới thì có những

phƣơng pháp truyền thống sau:

− Cán bộ kỹ thuật đến cập nhật phần mềm trực tiếp tại máy tính của

khách hàng.

− Cán bộ kỹ thuật sử dụng các phần mềm truy cập máy tính từ xa để cập

nhật phần mềm cho khách hàng qua mạng internet.

− Khách hàng tự tải phiên bản mới của phần mềm từ trang chủ của công

ty sản xuất sau đó tự cập nhật vào máy tính của mình.

Ngoài các phƣơng pháp truyền thống trên, trong những năm gần đây một

số công ty, hãng sản xuất phần mềm lớn đã áp dụng phƣơng pháp xây dựng

một ứng dụng độc lập, phân tán để thực hiện nhiệm vụ cập nhật phần mềm.

Ứng dụng đó thƣờng đƣợc chia thành 2 phân hệ chính nhƣ sau:

− Phân hệ quản lý khách hàng và sản phẩm phần mềm tại máy chủ:

Tại phân hệ này, ứng dụng có thể quản lý thông tin về các khách hàng

của nhà cung cấp, quản lý thông tin về các phần mềm, các phiên bản và các

bộ cài đặt của các phiên bản. Tại đây, ngƣời quản trị của hãng cung cấp phần

mềm có thể lựa chọn tất cả hoặc một số khách hàng đƣợc cập nhật phiên bản

mới của phần mềm. Khi đƣợc lựa chọn và kích hoạt thì phân hệ tại máy tính

của khách hàng sẽ tự động kết nối với máy chủ để tải phiên bản mới về thực

hiện cập nhật.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

− Phân hệ phần mềm phân tán thực hiện nhiệm vụ cập nhật phần mềm:

~ 19 ~

Tại phân hệ này, ứng dụng liên tục có sự kết nối với máy chủ để đối

chiếu phiên bản phần mềm mới nhất so với phiên bản tại máy khách hàng.

Nếu có phiên bản mới và đƣợc sự cho phép tại máy chủ thì ứng dụng tại phân

hệ này sẽ tự động thực hiện việc tải và cập nhật phần mềm. Ứng dụng tại

phân hệ này có khả năng liên lạc với máy chủ, liên lạc với các máy tính của

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

các khách hàng khác để chủ động tải, chia sẻ các phiên bản phần mềm.

~ 20 ~

CHƢƠNG 2. MỘT SỐ THUẬT TOÁN TRÊN TÁC TỬ DI ĐỘNG

GẮN VỚI ỨNG DỤNG PHÂN TÁN CẬP NHẬT PHẦN MỀM

2.1. Phân tích hệ thống tác tử di động

2.1.1. Tác tử di động và môi trƣờng thi hành

2.1.1.1. Thành phần của tác tử di động

Tác tử di động là một thực thể có năm thuộc tính : trạng thái, mã thi

hành, giao diện, định danh, và các thân chủ (ngƣời ủy quyền). Khi một tác tử

di chuyển trên mạng nó sẽ mang theo các thuộc tính này.

− Trạng thái: Là giá trị để tác tử có thể để tiếp tục thực thi nhiệm vụ sau

khi đã di chuyển.

− Mã cài đặt: là mã nguồn của các tác tử nhằm mục đích thực thi nhiệm

vụ.

− Giao diện: dùng để phục vụ cho việc liên lạc giữa các tác tử.

− Định danh: là giá trị dùng để nhận diện và định vị các tác tử khi di

chuyển.

− Thân chủ: là giá trị dùng để xác định quyền truy cập và sử dụng tài

nguyên.

a) Trạng thái

Khi một tác tử di chuyển, nó cần phải mang theo trạng thái của mình đi

cùng. Đây là đặc điểm của tất cả các tác tử di động để có thể tiến hành thực

hiện lại các thao tác ở máy đích.

Trạng thái của tác tử tại bất kì thời điểm nào cũng là thể hiện của quá

trình thực thi nhiệm vụ của nó. Đối với hầu hết ngôn ngữ lập trình chúng ta có

thể chia trạng thái của tác tử thành trạng thái thi hành và trạng thái đối tƣợng.

Trạng thái thi hành gồm các bộ đếm chƣơng trình, tình trạng ngăn xếp,

trạng thái đối tƣợng gồm giá trị của các biến thể hiện trong đối tƣợng.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

b) Mã thi hành

~ 21 ~

Giống nhƣ bất kì chƣơng trình máy tính nào khác, một tác tử di động cần

phải có mã để thi hành. Khi di chuyển, nó có thể lựa chọn hoặc là mang theo

mã thi hành, hoặc là đến máy đích rồi xem đã có mã thi hành tại đó chƣa, nếu

chƣa thì tải các mã còn thiếu về.

Mã của tác tử phải vừa có thể thực hiện đƣợc tại máy đích và phải vừa

an toàn cho máy này khi thi hành, Các ngôn ngữ thông dịch và kịch bản hiện

nay đƣa ra một cơ chế an toàn, cho phép hạn chế việc truy cập tới các tài

nguyên dành riêng của máy. Điều này thực hiện đƣợc do môi trƣờng thi hành

độc lập với hệ nền cũng nhƣ đƣợc kiểm soát chặt chẽ.

c) Giao diện

Để các tác tử và các hệ thống khác tƣơng tác với nó, tác tử cần phải có

một giao điện. Đây là các phƣơng thức cho phép các tác tử và các ứng dựng

khác truy cập đến tác tử hay cho phép các tác tử liên lạc ở dạng “ngôn ngữ tác

tử” nhƣ là KQML (Knowledge Query and Manipulation Language).

KQML là một ngôn ngữ cho việc liên lạc giữa các tác tử. KQML đƣa ra

nhiều kiểu thông điệp. Các kiểu thông điệp này có thể giúp đỡ các tác tử xử lí

các yêu cầu của chúng. KQML và cú pháp cũng nhƣ ngữ nghĩa của nó tồn tại

ở mức trên cơ sở hạ tầng liên lạc giữa các tác tử.

d) Định danh

Mọi tác tử có một định danh duy nhất trong suốt thời gian sống của nó.

Các tác tử cần có các định danh để chúng có thể đƣợc nhận biết và đƣợc định

vị qua các dịch vụ. Một định danh có thể đƣợc kết hợp từ định danh của thân

chủ và một mã số. Bởi vì các định danh của tác tử là duy nhât xét trên toàn

cục và không thể thay đổi, nên nó có thể đƣợc dùng nhƣ là một khóa trong các

thao tác đòi hỏi tham chiếu tới một thể hiện cụ thể tác tử.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

e) Các thân chủ

~ 22 ~

Thân chủ là thực thể mà mã nhận dạng của nó đƣợc dùng để xác nhận

các quyền hạn khi tác tử muốn truy cập tới bất cứ hệ thống nào. Thân chủ có

thể là một cá nhân, một tổ chức, hay một công ty... Mã nhận dạng bao gồm

tên và các thuộc tính có thể khác. Đối với các tác tử ta thấy nó có ít nhất hai

thân chủ :

− Tác giả: ngƣời cung cấp cài đặt tác tử.

− Chủ sở hữu: ngƣời có trách nhiệm pháp lý và đạo đức cho các hành vi

của tác tử.

2.1.1.2. Môi trƣờng thi hành

Đây chính là nơi mà tác tử tồn tại trong suốt chu kì sống của nó. Nó cũng

có thể đƣợc xem nhƣ là điểm vào cho các tác tử “khách” (các tác tử đến từ

các máy khác) muốn thi hành. Môi trƣờng thi hành cung cấp tập các dịch vụ

giống nhau để tác tử có thể dựa trên đó mà thi hành bất kể nó ở đâu. Ta có thể

xem môi trƣờng thi hành nhƣ là “hệ điều hành” cho tác tử. Bốn khái niệm sau

đóng vai trò quan trọng trong các môi trƣờng thi hành:

− Động cơ, máy ảo phục vụ cho một hay nhiều môi trƣờng thi hành.

− Các nguồn tài nguyên: các cơ sở dữ liệu, bộ xử lí, và các dịch vụ khác

đƣợc cung cấp bởi máy đó.

− Vị trí: địa chỉ mạng của môi trƣờng thi hành.

− Các thân chủ: thực thể chịu trách nhiệm pháp lí cho các thao tác của

môi trƣờng thi hành.

a) Động cơ

Các môi trƣờng không thể tự nó thi hành các tác tử. Để làm điều đó, các

tác tử phải tồn tại trong một động cơ. Động cơ này cũng cung cấp cho các môi

trƣờng thi hành và các tác tử những liên kết tới tầng mạng nằm dƣới và các tài

nguyên khác mà máy đó cung cấp. Trong mô hình này, động cơ mang ý nghĩa

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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

~ 23 ~

Một máy tính trong mạng có thể quản lí nhiều động cơ, mỗi động cơ có

thể quản lí nhiều môi trƣờng thi hành, và mỗi môi trƣờng thi hành có thể quản

lí nhiều tác tử. Do một động cơ có thể chứa nhiều hơn một môi trƣờng thi

hành nên đòi hỏì các môi trƣờng thi hành phải có tên duy nhất trong một động

cơ.

Trong một số hệ thống tác tử di động có thể không có khái niệm môi

trƣờng thi hành rạch ròi. Trong những hệ thống nhƣ vậy, có thể xem chính

các động cơ là một dạng môi trƣờng thi hành.

b) Các nguồn tài nguyên

Động cơ và môi trƣờng thi hành cung cấp việc truy cập (có kiểm soát)

tới các tài nguyên và dịch vụ cục bộ nhƣ là các cơ sở dữ liệu, các bộ vi xử lí

và bộ nhớ, các ổ đĩa, và các dịch vụ phần cứng cũng nhƣ phần mềm khác.

c) Vị trí

Vị trí là một khái niệm quan trọng đối với tác tử di động. Vị trí của một

tác tử là sự kết hợp giữa tên môi trƣờng mà nó thi hành trong đó và địa chỉ

mạng của động cơ mà trong đó môi trƣờng thi hành tồn tại. Vị trí này thƣờng

đƣợc viêt dƣới dạng một địa chỉ IP kết hợp với một cổng của động cơ và với

tên của môi trƣờng thi hành.

d) Các thân chủ

Cũng giống nhƣ tác tử, môi trƣờng thi hành cũng có hai thân chủ, đó là:

ngƣời cung cấp cài đặt, và ngƣời điều hành môi trƣờng.

2.1.2. Các thao tác của tác tử di động

2.1.2.1. Tạo và hủy một tác tử di dộng

Hai thao tác cơ bản nhất trong chu kì sống của tác tử di động đó là tạo ra

và hủy bỏ nó.

Tác tử di động đƣợc tạo ra trong một môi trƣờng thi hành nào đó. Việc

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

tạo này có thể đƣợc yêu cầu hoặc bởi một tác tử nằm trong cùng môi trƣờng

~ 24 ~

thi hành hoặc bởi một tác tử khác. Ngƣời tạo phải đƣợc môi trƣờng xác nhận

cho phép, đồng thời thiết lập các quyền và các nhiệm vụ đƣợc ủy quyền mà

tác tử mới sẽ xử lí. Ngƣời tạo cũng có thể cung cấp các tham số khởi động

cho tác tử. Các định nghĩa lớp cần cho việc khởi tạo tác tử có thể có trên máy

cục bộ hay máy ở xa, hay nếu cần, có thể đƣợc cung cấp bởi ngƣời tạo. Việc

tạo bao gồm ba bƣớc :

− Gán định danh: các cài đặt đƣợc nạp và thi hành, đối tƣợng tác tử

đƣợc khởi tạo và định nghĩa cả giao tiếp và cài đặt của tác tử. Sau đó, môi

trƣờng thi hành sẽ gán cho tác tử một định danh duy nhất.

− Khởi tạo: tác tử đƣợc phép tự khởi tạo bằng cách sử dụng các tham số

khởi động đƣợc cung cấp bởi ngƣời tạo. Chỉ khi nào việc khởi tạo đã đƣợc

hoàn thành, tác tử mới đƣợc xem nhƣ là tồn tại.

− Thi hành tự trị: sau khi đƣợc xem là tồn tại, tác tử bắt đầu việc thi hành

của nó. Giờ đây nó có khả năng thi hành độc lập với các tác tử khác trong

cùng môi trƣờng thi hành.

Hầu hết các tác tử bị hủy trong một môi trƣờng thi hành nào đó. Việc

hủy có thể đƣợc khởi xƣớng bởi chính nó hay bởi tác tử khác nằm trong cùng

môi trƣờng thi hành. Một tác tử cũng có thể bị hủy bởi hệ thông vì một trong

các lí do sau :

− Hết thời gian của chu kì sống.

− Không còn sử dụng vì không ai tham chiếu đến hay sử dụng tác tử.

− Xâm phạm sự an toàn.

− Hệ thống đang shutdown.

Việc hủy một tác tử là một qui trình gồm hai bƣớc :

− Chuẩn bị cho việc hủy: tác tử đƣợc thông báo và đƣợc phép kết thúc

các trạng thái hiện hành của nó trƣớc khi bị hủy.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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

~ 25 ~

2.1.2.2. Di chuyển tác tử di động

Quá trình di chuyển có thể đƣợc yêu cầu bởi chính tác tử hay bởi các tác

tử khác trong cùng môi trƣờng thi hành. Sau đó, môi trƣờng thi hành hiện

hành (môi trƣờng thi hành nguồn) chứa tác tử sẽ gửi tác tử đi tới môi trƣờng

thi hành đích đã định trƣớc.

Môi trƣờng thi hành nguồn và môi trƣờng thi hành đích sẽ quản lí tiến

trình gửi tác tử. Khi môi trƣờng thi hành nguồn liên lạc đƣợc với môi trƣờng

thi hành đích, môi trƣờng thi hành đích có thể hoặc đáp ứng hoặc không đáp

ứng yêu cầu di chuyển. Trong trƣờng hợp không đáp ứng đƣợc, môi trƣờng

thi hành đích trả về tín hiệu lỗi cho môi trƣờng thi hành nguồn. Nếu môi

trƣờng thi hành nguồn không thể liên lạc đƣợc với môi trƣờng thi hành đích,

nó phải trả về tín hiệu lỗi cho tác tử.

− Gửi đi một tác tử

Khi một tác tử di động chuẩn bị dì chuyển, nó phải có khả năng xác định

đích đến của nó. Nếu môi trƣờng thi hành đích không đƣợc xác định, tác tử sẽ

thi hành trong môi trƣờng thi hành mặc định của hệ thống tác tử đích, Một khi

vị trí của đích đƣợc xác minh, tác tử di động báo cho hệ thông tác tử chứa nó

rằng nó muốn di chuyển tới hệ tác tử đích. Thông điệp này đƣợc chuyển tiếp

qua một giao diện nội bộ giữa tác tử và hệ tác tử. Khi một hệ tác tử nhận yêu

cầu di chuyển của tác tử, nó sẽ làm nhƣ sau :

Tạm dừng tác tử: tác tử đƣợc cảnh báo về việc di chuyển sắp xảy ra và

đƣợc phép hoàn thành tác vụ hiện hành của nó, Khi điều này thực hiện xong,

sự thi hành của luồng của nó sẽ đƣợc tạm dừng.

− Đánh dấu trạng thái tác tử: trạng thái và các mã nguồn tác tử đƣợc

đánh dấu bởi động cơ.

− Mã hóa tác tử: động cơ mã hóa tác tử đã đƣợc đánh dấu với giao thức

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

di chuyển đƣợc chọn.

~ 26 ~

− Đi chuyển tác tử: động cơ thiết lập kết nốì với đích và chuyển tác tử đã

đƣợc mã hóa đi.

− Nhận về một tác tử

Trƣớc khi động cơ nhận về một tác tử, nó phải xác định nó có thể chấp

nhận tác tử từ máy gửi đi hay không. Chỉ sau khi thông tin về máy gửi đƣợc

xác nhận thành công tại động cơ nhận, việc chuyển dữ liệu mới thực sự xảy ra

qua các bƣớc:

− Nhận về tác tử: khi động cơ đích đồng ý chuyển, tác tử đã mã hóa sẽ

đƣợc nhận về.

− Giải mã tác tử: động cơ giải mã dữ liệu nhận đƣợc.

− Khôi phục tác tử: tác tử sau khi nhận về sẽ đƣợc khôi phục lại. Các

thành phần của tác tử sẽ đƣợc khôi phục nguyên trạng bao gồm cả trạng thái

của tác tử.

− Tái thi hành tác tử: tác tử thông báo việc đến của nó tại môi trƣờng thi

hành đích. Bây giờ nó có thể chuẩn bị để tiếp tục lại sự thi hành của nó và

đƣợc cấp một luồng thi hành mới.

2.1.3. Trao đổi, liên lạc giữa các tác tử di động

Các tác tử có thể liên lạc với các tác tử khác trong cùng một môi trƣờng

thi hành hay với các tác tử ở trong các môi trƣờng thi hành hành khác (nhƣng

cũng có thể nằm trong cùng một động cơ). Một tác tử có thể yêu cầu một

phƣơng thức của một tác tử khác hay gửi cho nó một thông điệp nếu nó đƣợc

ủy quyền cho phép để làm việc này. Thông thƣờng, việc trao đổi thông điệp

giữa các tác tử có thể là một- một hay một - nhiều. Kiểu truyền thông điệp

một - nhiều cho phép một tác tử gửi một thông điệp tới một nhóm các tác tử

đăng kí và là một cơ chế hữu hiệu trong hệ thống nhiều tác tử.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Việc trao đổi, liên lạc giữa các tác tử có thể diễn ra theo ba kiểu sau :

~ 27 ~

− Thông điệp gửi ngay: đây là kiểu truyền thông điệp đƣợc dùng thông

dụng nhất. Một thông điệp gửi ngay là đồng bộ và làm cản trở sự thi hành cho

tới khi ngƣời nhận thông điệp hoàn thành việc xử lí thông điệp và hồi âm lại

cho nó.

− Thông điệp gửi sau: một thông điệp gửi sau là không đồng bộ và

không cản trở việc thi hành hiện hành. Ngƣời gửi giữ một “thẻ bài” có thể

đƣợc dùng để nhận kết quả. Do ngƣời gửi không phải chờ cho tới khi ngƣời

nhận hồi đáp và gửi hồi âm, kiểu truyền thông điệp này linh động và là đặc

biệt hữu ích khi nhiều tác tử liên lạc với nhau.

Thông điệp gửi một chỉều: một thông điệp gửi một chiều là không đồng

bộ và không làm cản trở sự thi hành hiện hành. Ngƣời gửi sẽ không giữ lại

“thẻ bài” để xử lí thông điệp này, và ngƣời nhận sẽ không cần phải hồi âm lại.

Kiểu truyền thông điệp này thuận tiện khi hai tác tử đƣợc tiến hành cuộc trao

đổi bằng kết nôi không đƣợc duy trì liên tục, Lúc này tác tử gửi thông điệp

không cần bất kì hồi âm nào từ tác tử nhận thông điệp.

2.1.4. Một số hệ thống tác tử di động

2.1.4.1. Aglets

Aglets [2] đƣợc xây dựng và phát triển bởi D.B.Lange và IBM Tokyo

Research Laboratory. Hiện nay, bộ Aglets Software Development Kit

(ASDK) do IBM phát triển đã dừng lại ở phiên bản 1.1 Beta 3 trên nền

JDK1.1. Phiên bản mới nhất của ASDK là 2.0.2 do Source Forge phát triển

trên nền JDK1.3.

Aglets là những đối tƣợng Java có thể di chuyển từ host này sang host

khác trên môi trƣờng mạng. Khi aglets di chuyển, nó mang theo mình cả mã

chƣơng trình lẫn dữ liệu. Trong mô hình đối tƣợng aglets, một tác tử di động

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

là một đối tƣợng di động có luồng kiểm soát riêng của nó, làm việc theo sự

~ 28 ~

kiện và liên lạc với các tác tử khác bằng cách truyền thông điệp. Aglets có

một cơ chế định danh duy nhất và toàn cục dựa trên URL.

Aglets hỗ trợ cơ chế di động yếu (weak- mobility). Các aglets giao tiếp

với nhau một cách đồng nhất, và độc lập với vị trí lƣu trú thông qua đối tƣợng

proxy. Suốt chu kỳ sống, các aglets sẵn sàng bắt những sự kiện (clone,

mobility, persistence) phát sinh trong môi trƣờng để có phản ứng thích hợp.

Tác tử có thể giao tiếp đồng bộ hoặc không đồng bộ thông qua các loại thông

điệp: synchronous, one-way, hay future reply. Aglets sử dụng ATP (Agent

Transfer Protocol) cho việc di chuyển và giao tiếp. Aglets sử dụng 2 loại mẫu

thiết kế chính là chủ-tớ (Master-Slave) và hành trình (Itinerary) cho việc di

chuyển của các tác tử.

Aglets là một trong những platform đƣợc sử dụng nhiều nhất để phát

triển các hệ thống tác tử di động. Một số đề án thực hiện với Aglet có thể kể

đến là TabiCan - chợ điện tử chuyên bán vé máy bay và tour du lịch trọn gói

- Cps720 (Artificial Intelligence Topics with Agent) tại đại học Ryerson

University, Mỹ, Acme. Aglets là một hệ thống Java tác tử di động hỗ trợ các

khái niệm thi hành tự trị và định tuyến động trên lộ trình của nó.

Có thể xem aglet nhƣ là một khái quát hóa và mở rộng của applet và

servlet. Aglet server là chƣơng trình cung cấp một môi trƣờng thi hành và một

máy ảo Java cho aglet hoạt động. Ngoài ra, Aglet server cũng sử dụng một

trình quản lý để tiếp nhận và kiểm soát aglet một cách an toàn.

2.1.4.2. Voyager

Voyager là một môi trƣờng thƣơng mại hỗ trợ phát triển các ứng dụng

agent đƣợc hãng Object Space phát triển từ giữa năm 1996. Voyager đã trải

qua nhiều lần nâng cấp và thay đổi từ phiên bản 1.0 cho đến bây giờ là phiên

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

bản 4.5. Tháng 03.2002 sản phẩm Voyager đƣợc nhƣợng lại cho Recursion

~ 29 ~

Software, một công ty chuyên về các sản phẩm viết trên C++ và Java để đm

bo cho việc phát triển Voyager sau này.

Các phiên bản từ 1.0 đến 3.3 Voyager đƣợc phân phối cho các nhà phát

triển nhƣ một freeware. Hiện tại Voyager đã có phiên bản 4.5 Evaluation

hoàn toàn tƣơng thích với JDK1.3, JDK1.2 và JDK1.1. Phiên bản này bao

gồm 6 sản phẩm, trong đó sản phẩm chính yếu dùng cho các ứng dụng tác tử

di động là Voyager ORB Professional.

Voyager sử dụng ngôn ngữ lập trình Java với cú pháp chuẩn để tạo dựng

các đối tƣợng ở xa một cách rất dễ dàng, cho phép các đối tƣợng này trao đổi

thông điệp với nhau, và di chuyển các đối tƣợng giữa các máy tính có hỗ trợ

môi trƣờng Voyager. Voyager hỗ trợ mạnh về tính di động với khả năng

mang toàn bộ mã chƣơng trình và dữ liệu di chuyển từ máy ảo Java này sang

máy ảo Java khác nếu các máy ảo có hỗ trợ Voyager. Trạng thái hoạt động

của tác tử cũng sẽ đƣợc bảo toàn và tiếp tục thực thi tại nơi tác tử đến. Một

trong những đặc điểm nổi trội khác của Voyager là tính phổ quát.

Các chƣơng trình viết trong Voyager có thể trao đổi thông tin hai chiều

với các chƣơng trình viết bằng SOAP, CORBA, RMI và DCOM. Các dạng

thông tin đƣợc trao đổi có thể là các lời gọi hàm từ xa, các dịch vụ đặt tên,

dịch vụ thƣ mục. Voyager có thể đƣợc xem là một cửa ngõ, một cầu nối làm

cho các chƣơng trình theo chuẩn khác trở nên liên thông với nhau. Hơn nữa,

tất cả các chƣơng trình và đối tƣợng có thể đƣợc tổ chức thành một không

gian chung, nhờ vậy việc liên lạc sẽ trở thành một–nhiều một cách tự động.

Phiên bản 4.5 của Voyager đã đƣợc bổ sung thêm các tính năng rất quan

trọng hỗ trợ cho các chuẩn dịch vụ Web. SOAP và WSDL cũng đã đƣợc phát

triển trong phiên bản này giúp cho các nhà phát triển có khả năng triển khai

các ứng dụng truy cập tới các dịch vụ Web từ xa và các chƣơng trình Voyager

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

có thể truy cập nhau thông qua các dịch vụ Web. Thế mạnh thật sự của

~ 30 ~

Voyager nằm ở sự đơn giản và dễ dùng. Sự “trong suốt” hay cách mà

Voyager che dấu các kỹ thuật lập trình phân tán phức tạp đã làm cho việc xây

dựng các ứng dụng tác tử di động trở nên dễ dàng hơn rất nhiều. Việc tích hợp

các công nghệ mới và các chuẩn mới vào cùng một sản phẩm tạo cho

Voyager sự hấp dẫn rất riêng biệt.

2.1.4.3. Mole

Mole là hệ thống Tác tử di động đƣợc xây dựng với ngôn ngữ Java tại

đại học Stuttgart (CHLB Đức). Phiên bản đầu tiên (Release 1.0) đã hoàn

thành vào năm 1995, năm 1997 phiên bản Release 2.0 đƣợc hoàn thành, bản

Release 3.0 đƣợc hoàn tất vào năm 1998 và đề án đã kết thúc với kết quả là

môi trƣờng ổn định để xây dựng ứng dụng theo mô hình tác tử trên các hệ

phân tán.

Đƣợc xây dựng trên Java, Mole có khả năng thực thi trên tất cả các môi

trƣờng có hổ trợ JDK1.1.x (Jdk1.1.7 và Jdk1.1.8), sử dụng giao thức TCP/IP

trong quá trình giao tiếp. Mole hỗ trợ di chuyển yếu- weak migration. Để thực

hiện giao tiếp giữa các tác tử Mole sử dụng các cơ chế truyền thông điệp, gọi

hàm từ xa RPCs, và cơ chế đặc trƣng của Mole là session , badge. Ngôn ngữ

giao tiếp giữa các tác tử đƣợc Mole hỗ trợ là KQML. Việc trao đổi dữ liệu

giữa các tác tử đƣợc thực hiện theo nghi thức TCP/IP.

Mole cho phép đa tiểu trình/tác tử và quản lí tài nguyên và lập lịch các

tiểu trình trong hệ thống thông qua bộ lập lịch trung tâm MCP. Khả năng bảo

mật của Mole đƣợc đánh giá khá tốt trong các hệ thống tác tử. Mole tuân theo

mô hình bảo mật sandbox của java. Tác tử trong hệ thông Mole đƣợc chia làm

hai loại: user tác tử và system tác tử.

User tác tử là những tác tử di động đƣợc kích hoạt bởi ngƣời dùng và

không thể truy cập trực tiếp tài nguyên hệ thống. Ngƣợc lại, system tác tử

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

(service agent) - đƣợc khởi động bởi ngƣời quản trị - không có tính di động và

~ 31 ~

đƣợc phép truy cập tài nguyên hệ thống. Môi trƣờng Mole phù hợp cho phát

triển những ứng dụng trong các lĩnh vực: Truyền thông, ứng dụng thuộc lĩnh

vực hệ thống thông tin điện tử. Một số ứng dụng dƣợc phát triển trên môi

trƣờng Mole: AIDA - Infrastructure for Mobile Agents, ASAP, ATOMAS,

FESTIVAL (Mole office, Mole shopping), HAWK.

Với hệ thống mã nguồn mở của Mole, ta có thể tiến hành cải tiến, nâng

cấp những chức năng hiện có, và bổ sung những chức năng mới nhƣ các chức

năng về công cụ hổ trợ lập trình tác tử để Mole trở thành hệ thống tác tử hiện

đại hổ trợ tốt cho việc phát triển các ứng dụng dựa theo mô hình tác tử.

2.1.4.4. ZEUS

Zeus là môi trƣờng do British Telecommunication phát triển để hỗ trợ

xây dựng các hệ thống đa tác tử. Ngoài các tính năng thông thƣờng trong việc

tạo lập và quản lý các tác tử, Zeus đặc biệt chú trọng việc hỗ trợ một phƣơng

pháp luận và một bộ công cụ mạnh để phát triển ứng dụng đa tác tử trên môi

trƣờng phân tán.

Zeus định nghĩa một phƣơng pháp luận để phân tích, thiết kế, triển khai

hệ thống và còn kèm theo các công cụ cho phép ngƣời phát triển có thể bắt lỗi

hệ thống cũng nhƣ phân tích sự thực hiện của mình. Hai giai đoạn phân tích

và thiết kế đƣợc miêu tả chi tiết trong nhƣng chƣa đƣợc hỗ trợ bởi các công

cụ. Zeus Toolkit hỗ trợ hai giai đoạn cài đặt và bảo trì Zeus toolkit qua các

công cụ Zeus Agent Generator và Zeus Agent Visualiser.

Zeus cung cấp nhiều Editor để định nghĩa tác tử và các thuộc tính của tác

tử. Code Generator sẽ tự động phát sinh mã nguồn cho tác tử từ những thuộc

tính đã đặc tả. Hai đặc tính quan trọng của các Zeus tác tử là tính tự trị và

cộng tác. Bộ phận Planner trong mỗi tác tử sẽ hỗ trợ tác tử thể hiện tính tự trị.

Khả năng thƣơng lƣợng và cộng tác giữa các tác tử cũng đƣợc Zeus tích hợp

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

vào trong toolkit thông qua một thƣ viện các giao thức, cùng các chiến lƣợc

~ 32 ~

thƣơng lƣợng và cộng tác. Do có mã nguồn mở, ngƣời dùng có thể thêm vào

thƣ viện này các chiến lƣợc riêng phù hợp với ứng dụng của mình.

Các Zeus tác tử truyền thông theo point-to-point socket TCP/IP với mỗi

message là một chuỗi các kí tự mã ASCII. Ngôn ngữ truỵền thông Zeus sử

dụng là FIPA ACL (http://www.fipa.org). Nhằm cung cấp khả năng “hiểu”

lẫn nhau cho các tác tử, Zeus cung cấp các công cụ cho việc định nghĩa các

ontology-cơ sở khái niệm chung cho cộng đồng tác tử.

Các tác tử của Zeus đƣợc phân tán qua mạng và có thể thực hiện các tác

vụ đồng thời. Chính vì thế, việc quản lí các tác tử cũng là một vấn đề mà môi

trƣờng đặt ra. Visualiser của Zeus cung cấp các công cụ để kiểm tra các quan

hệ giao tiếp giữa các tác tử, trạng thái tác vụ những tác tử đang thực hiện và

trạng thái bên trong của tác tử.

Đồng thời, Zeus Statistic Tool cho phép ngƣời dùng so sánh các thống

kê khác nhau về cộng đồng tác tử, chẳng hạn những loại thông điệp nào tác tử

đã gửi và tỉ lệ là bao nhiêu, một cách trực quan dƣới những dạng đồ thị khác

nhau. Cũng nhằm quản lí tác tử, Zeus cung cấp những tác tử tiện ích nhƣ

Agent Name Server hoạt động nhƣ một Yellow Page, Facilitator nhƣ một

White Page, Visualiser và Database Proxy.

Một hạn chế của Zeus là tuy đƣợc liệt kê vào một trong những môi

trƣờng tác tử di động nhƣng hiện hƣớng nghiên cứu về tính di động của Zeus

chỉ mới ở bƣớc đầu, chƣa đƣợc cài đặt. Do đó mà tính bảo mật của Zeus cho

các tác tử hầu nhƣ không có. Điều này có thể sẽ đƣợc khắc phục trong các

phiên bản sau. Zeus đã và đang đƣợc triển khai trong một số ứng dụng nhƣ

Agent Based Work-flow Management, PTA: Personal Travel Assistance,

Personal Computer Manufacture, Agent-based Electronic Commerce,

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Network Management (VPNP), Home Shopping.

~ 33 ~

2.2. Một số thuật toán trên tác tử di động

2.2.1 Thuật toán tạo và giao nhiệm vụ cho tác tử di động

Thuật toán này đƣợc sử dụng trong những trƣờng hợp mà ngƣời quản trị

hệ thống thao tác tại máy chủ web nhằm mục đích tạo ra tác tử tại máy chủ,

giao nhiệm vụ sau đó gửi đến máy khách thực thi nhiệm vụ. Thuật toán này

cũng có thể đƣợc thực hiện khi tác tử tại máy khách đƣợc lệnh tự tạo ra một

tác tử khác.

2.2.1.1. Mô tả thuật toán

Input: Yêu cầu tạo tác tử và nhiệm vụ

Output: Đối tƣợng tác tử di động đã đƣợc khởi tạo và giao nhiệm vụ.

Các bƣớc của thuật toán:

Bƣớc 1:

Truy vấn cơ sở dữ liệu để tìm định danh mới, duy nhất cho tác tử sẽ tạo.

Bƣớc 2:

Tạo mới tác tử.

Bƣớc 3:

Gán định danh cho tác tử.

Bƣớc 4:

Thiết lập nhiệm vụ cho tác tử.

Bƣớc 5:

Gán thông tin môi trƣờng thi hành cho tác tử.

Bƣớc 6:

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Trả về tác tử đƣợc tạo, kết thúc.

~ 34 ~

2.2.1.2. Sơ đồ khối

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 2.1. Sơ đồ khối thuật toán tạo và giao nhiệm vụ tác tử

~ 35 ~

2.2.1.3. Giả mã

1. Enter Nhiem_vu, moi_truong

2. Declare ID

3. Call get_new_identify() Returning a_ID

4. Set ID to a_ID

5. Set agent_obj to new agent()

6. Set agent_obj.identify to ID

7. Set agent_obj.nhiem_vu to Nhiem_vu

8. Set agent_obj.context to moi_truong

9. Return agent_obj

2.2.2. Thuật toán kiểm tra phiên bản phần mềm

Thuật toán này đƣợc thực hiện khi tác tử di động đang hoạt động tại máy

tính của khách hàng. Theo chu kì thời gian nhất định sẽ kiểm tra, đối chiếu

phiên bản phần mềm hiện thời đang đƣợc cài đặt tại máy tính khách hàng với

phiên bản đặt tại máy chủ web.

2.2.2.1. Mô tả thuật toán

Input: Mã phần mềm cần kiểm tra phiên bản, số lần tối đa kết nối với

máy chủ.

Output: Thông tin có sự khác nhau giữa phiên bản hiện thời đƣợc cài đặt

tại máy tính khách hàng với phiên bản mới nhất tại máy chủ hay không.

Bƣớc 1:

Kết nối với máy chủ, gửi kèm mã phần mềm cần kiểm tra phiên bản

Bƣớc 2:

Nếu máy chủ có thông tin phản hồi thì chuyển sang bƣớc 3, nếu không

thì tăng biến lƣu số lần gửi yêu cầu, nếu giá trị này còn nhỏ hơn giá trị cho

phép thì quay lại bƣớc 1 nếu không thì kết thúc.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Bƣớc 3:

~ 36 ~

Lấy thông tin phiên bản của phần mềm đang đƣợc cài đặt tại máy tính

tác tử đang thi hành.

Bƣớc 4:

Nếu phiên bản hiện thời khác với phiên bản máy chủ trả về thì trả về

thông tin có khác nhau, nếu không thì trả về giá trị không khác.

Bƣớc 5: Kết thúc.

2.2.2.2. Sơ đồ khối

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 2.2. Sơ đồ khối thuật toán kiểm tra phiên bản phần mềm

~ 37 ~

2.2.2.3. Giả mã

1. Enter software_id, max_num_request

2. Declare num_request

3. Set num_request to 0

4. While num_request < max_num_request

a. Call connect_server (software_id) Returning newest_version

b. If newest_version <> null Then

break;

c. EndIf

d. Increment num_request

5. EndWhile

6. Call get_current_version Returning current_version

7. If newest_version <> current_version Then

Return “Có phiên bản mới”

8. Else

Return “Không có phiên bản mới”

9. EndIf

2.2.3. Thuật toán thi hành nhiệm vụ tải phần mềm

Thuật toán này đƣợc sử dụng khi tác tử thực hiện nhiệm vụ tải phần

mềm từ máy chủ web sau khi phát hiện thấy có phiên bản khác trên máy chủ

so với phiên bản hiện tại đang đƣợc cài đặt tại máy trạm mà tác tử đang thi

hành.

2.2.3.1. Mô tả thuật toán

Input: Mã phần mềm cần tải về.

Output: File cài đặt phần mềm đƣợc tải về từ máy chủ hoặc thông báo

không tải thành công.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Bƣớc 1:

~ 38 ~

Thực hiện kết nối với máy chủ, nếu kết nối thành công thì sang bƣớc 2,

nếu không thì sang bƣớc 5.

Bƣớc 2:

Gửi thông điệp yêu cầu tải phần mềm kèm theo mã phần mềm cần tải

đến máy chủ.

Bƣớc 3:

Nhận dữ liệu từ máy chủ theo từng khối cho đến khi nhận đƣợc tín hiệu

hết dữ liệu thì dừng. Gửi thông điệp lên máy chủ thông báo là tác tử đang tải

dữ liệu.

Bƣớc 4:

Ghép dữ liệu nhận đƣợc thành một file cài đặt phần mềm mới, trả kết

quả là file mới ghép, gửi thông điệp lên máy chủ thông báo là tác tử đã tải

xong file cài đặt phần mềm và kết thúc.

Bƣớc 5:

Tăng biến đếm số lần thử kết nối, nếu vƣợt quá giá trị cho phép thì kết

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

thúc, nếu không thì quay lại bƣớc 1.

~ 39 ~

2.2.3.2. Sơ đồ khối

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 2.3. Sơ đồ khối thuật toán thi hành nhiệm vụ tải phần mềm

~ 40 ~

2.2.3.3. Giả mã

1. Enter software_id, max_num_request

2. Declare setup_file, downloaded

3. Set downloaded to False

4. While num_request < max_num_request

a. Call try_to_connect_server (software_id) Returning

success

b. If success = True Then

break;

c. EndIf

d. Increment num_request

5. EndWhile

6. If success = False Then

Return “Không kết nối thành công”

7. EndIf

8. Repeat

a. Call get_setup_file_from_server (software_id) Returning

data

b. Set setup_file to setup_file + data.file

c. If data.finished Then

Set downloaded to True

d. EndIf

9. Until downloaded = True

10. Return setup_file

2.2.4. Thuật toán thi hành nhiệm vụ cập nhật phần mềm

Thuật toán này đƣợc sử dụng trong tình huống tác tử sau khi tải phần

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

mềm về từ máy chủ thì thực hiện nhiệm vụ cập nhật phiên bản mới.

~ 41 ~

2.2.4.1. Mô tả thuật toán

Input: Mã phần mềm, File cài đặt phiên bản mới phần mềm

Output: Thông tin cập nhật thành công hay không

Bƣớc 1:

Kiểm tra xem phần mềm hiện tại có đang chạy hay không? Nếu có thì

thực hiện dừng phần mềm đang chạy.

Bƣớc 2:

Cài đặt đè phần mềm phiên bản mới vào máy tính khách hàng mà tác tử

đang thực thi.

Bƣớc 3:

Gửi thông điệp lên máy chủ thông báo tác tử đang cập nhật phần mềm.

Bƣớc 4:

Cập nhật lại thông tin phiên bản phần mềm tại máy tính khách hàng theo

đúng phiên bản vừa đƣợc cài đặt.

Bƣớc 5:

Gửi thông điệp lên máy chủ thông báo tác tử đã cập nhật thành công

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

phần mềm và kết thúc.

~ 42 ~

2.2.4.2. Sơ đồ khối

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 2.4. Sơ đồ khối thuật toán thi hành nhiệm vụ cập nhật phần mềm

~ 43 ~

2.2.4.3. Giả mã

1. Enter software_id, newest_version, setup_file

2. Call check_running_software (software_id) Returning running

3. If running = True Then

a. Call stop_software(software_id)

4. EndIf

5. Call send_message_to_server(“đang cập nhật phần mềm”)

6. Call setup_new_version(setup_file, software_id) Returning

success

7. If success Then

a. Call update_version(software_id, newest_version)

b. Call send_message_to_server(“đã cập nhật phần mềm

thành công”)

c. Return “cập nhật thành công”

8. Else

a. Call send_message_to_server(“đã cập nhật phần mềm

thành công”)

b. Return “cập nhật không thành công”

9. EndIf

2.2.5. Thuật toán tác tử trao đổi thông điệp với máy chủ

Thuật toán này đƣợc sử dụng khi tác tử di động đang hoạt động tại máy

tính khách hàng mà cần có sự trao đổi thông điệp với máy chủ để lấy thông

tin về phần mềm, thông tin về nhiệm vụ mới hay gửi thông tin của khách hàng

cập nhật tới máy chủ.

2.2.5.1. Mô tả thuật toán

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Input: Thông điệp gửi cho máy chủ, số lần liên lạc tối đa

~ 44 ~

Output: Thông điệp nhận lại từ máy chủ

Bƣớc 1:

Tác tử gửi yêu cầu đến máy chủ thông qua việc truy cập một trang web

đƣợc cài đặt tại máy chủ kèm theo thông tin về tác tử và thông tin yêu cầu

máy chủ xử lý.

Bƣớc 2:

Nếu trang web truy cập trả về dữ liệu thì sang bƣớc 3, nếu không thì

sang bƣớc 6.

Bƣớc 3:

Nhận dữ liệu trả về qua trang web dƣới định dạng JSON.

Bƣớc 4:

Phân tích dữ liệu từ dạng JSON đã nhận đƣợc.

Bƣớc 5:

Trả về thông điệp nhận lại từ máy chủ, thực hiện nhiệm vụ mới và kết

thúc.

Bƣớc 6:

Tăng số lần truy cập, nếu lớn hơn giới hạn cho phép thì trả về thông tin

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

không thể liên lạc với máy chủ và kết thúc, ngƣợc lại thì quay về bƣớc 1.

~ 45 ~

2.2.5.2. Sơ đồ khối

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 2.5. Sơ đồ khối thuật toán tác tử trao đổi thông điệp với máy chủ

~ 46 ~

2.2.5.3. Giả mã

1. Enter message, max_num_request

2. Declare num_request

3. Set num_request to 0

4. While num_request < max_num_request

a. Call access_webpage (url, message) Returning json_data

b. If json_data <> null Then

break;

c. EndIf

d. Increment num_request

5. EndWhile

6. Call analyze_json(json_data) Returning clear_data

7. If json_data = null Then

Return “Liên lạc thất bại”

8. Else

Return clear_data

9. EndIf

2.2.6. Thuật toán gửi đi một tác tử di động

Thuật toán này đƣợc thực hiện khi một tác tử đƣợc di chuyển từ máy chủ

đến máy tính khách hàng hay từ máy tính khách hàng này đến máy tính khách

hàng khác.

2.2.6.1. Mô tả thuật toán

Input: Tác tử đang hoạt động, địa chỉ máy đích

Output: Thông tin đã gửi thành công hay không

Bƣớc 1:

Tạm dừng hoạt động của tác tử.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Bƣớc 2:

~ 47 ~

Đánh dấu trạng thái của tác tử.

Bƣớc 3:

Mã hóa tác tử.

Bƣớc 4:

Di chuyển tác tử.

Bƣớc 5:

Trả về kết quả và kết thúc.

2.2.6.2. Sơ đồ khối

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 2.6. Sơ đồ khối thuật toán gửi đi một tác tử

~ 48 ~

2.2.6.3. Giả mã

1. Enter running_agent, des_machine

2. Call pause_agent_mission

3. Set agent_status to running_agent.status

4. Call encode_agent(running_agent, agent_status) Returning

agent_encoded

5. Call move_agent(agent_encoded, des_machine) Returning

success

6. Return success

2.2.7. Thuật toán nhận về một tác tử di động

Thuật toán này đƣợc thực hiện khi một máy tính của khách hàng nhận

tác tử đƣợc gửi từ một máy tính khác.

2.2.7.1. Mô tả thuật toán

Input: Tác tử đƣợc gửi tới từ máy khác

Output: Tác tử đƣợc tái thực thi nhiệm vụ

Bƣớc 1:

Nhận tác tử đã đƣợc mã hoá đƣợc gửi từ máy khác.

Bƣớc 2:

Giải mã dữ liệu nhận đƣợc.

Bƣơc 3:

Từ dữ liệu giải mã, khôi phục lại tác tử.

Bƣớc 4:

Dựa vào trạng thái của tác tử để tái thi hành nhiệm vụ

Bƣớc 5:

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Trả về kết quả và kết thúc.

~ 49 ~

2.2.7.2. Sơ đồ khối

Hình 2.7. Sơ đồ khối thuật toán nhận về một tác tử di động

2.2.7.3. Giả mã

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

1. Enter agent_encoded

~ 50 ~

2. Call decode_agent(agent_encoded) Returning original_agent,

agent_status

3. Call restore_agent(original_agent, agent_status) Returning

running_agent

4. Call re_enforce(running_agent) Returning success

5. Return success

2.2.8. Thuật toán liên lạc giữa các tác tử di động

Thuật toán này đƣợc thực hiện khi các tác tử ở hai máy tính khác nhau

cần trao đổi thông điệp với nhau.

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

Input: Tác tử nhận thông điệp, kiểu liên lạc, thông điệp cần gửi.

Output: Thông điệp gửi trả về từ máy tính nhận đƣợc.

Bƣớc 1:

Nếu kiểu liên lạc là kiểu gửi ngay (đồng bộ) thì sang bƣớc 2, nếu không

thì sang bƣớc 5.

Bƣớc 2:

Tạm dừng việc thực thi nhiệm vụ khác của tác tử gửi.

Bƣớc 3:

Gửi thông điệp tới cho máy tính đích kèm theo kiểu liên lạc.

Bƣớc 4:

Nhận thông điệp trả về từ máy tính đích, kết thúc.

Bƣớc 5:

Đợi khi thực thi xong nhiệm vụ đang thực hiện thì tác tử gửi mới gửi

thông điệp đi cho máy tính đích.

Bƣớc 6:

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Nhận thông điệp trả về từ máy tính đích, kết thúc.

~ 51 ~

2.2.8.2. Sơ đồ khối

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 2.8. Sơ đồ khối thuật toán liên lạc giữa các tác tử di động

~ 52 ~

2.2.8.3. Giả mã

1. Enter received_agent, communication_type, message

2. If communication_type= “gửi ngay” Then

a. Call pause_agent_mission

b. Call send_message(received_agent, message)

3. Else

a. Repeat

i. Call finished_mission(this) Returning finished

b. Until finished

4. Call send_mesage(received_agent, message)

5. EndIf

6. Call receive_message(received_agent) Returning

feedback_message

7. Return feedback_message

2.2.9. Thuật toán hủy tác tử di động

Thuật toán này đƣợc thực hiện khi cần hủy một tác tử. Hủy tác tử trong

các trƣờng hợp nhƣ: hết chu kì sống, không sử dụng, xâm phạm sự an toàn

hay do chủ động.

2.2.9.1. Mô tả thuật toán

Input: Tác tử cần hủy

Output: Kết quả hủy tác tử

Bƣớc 1:

Thực hiện hết trạng thái hiện hành của tác tử.

Bƣớc 2:

Thông báo lại với môi trƣờng thi hành và máy chủ về việc tác tử sắp

đƣợc hủy.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Bƣớc 3:

~ 53 ~

Thực hiện đình chỉ thi hành, hủy tác tử.

Bƣớc 4:

Trả kết quả và kết thúc.

2.2.9.2. Sơ đồ khối

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 2.9. Sơ đồ khối thuật toán hủy tác tử di động

~ 54 ~

2.2.9.3. Giả mã

1. Enter del_agent

2. Repeat

3. Call finished_mission(del_agent) Returning finished

4. Until finished

5. Call send_message_to_server(“hủy tác tử”)

6. Call send_message_to_context(“hủy tác tử”)

7. Call delete_agent(del_agent) Returning success

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

8. Return success

~ 55 ~

CHƢƠNG 3. THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG PHÂN TÁN

CẬP NHẬT PHẦN MỀM

3.1. Mô tả yêu cầu

3.1.1. Yêu cầu về chức năng

Ứng dụng cập nhật phần mềm cần có các chức năng sau:

− Quản lý danh sách phần mềm: Ứng dụng phải liệt kê đƣợc danh sách

phần mềm, quản lý đƣợc các thông tin cơ bản nhƣ tên, phiên bản, file cài đặt.

Có thể thêm, sửa, xóa thông tin liên quan đến các phần mềm quản lý.

− Quản lý danh sách khách hàng sử dụng phần mềm: Ứng dụng phải liệt

kê đƣợc danh sách khách hàng ứng với từng phần mềm, quản lý đƣợc các

thông tin cơ bản của khách hàng nhƣ: tên, địa chỉ, phiên bản phần mềm đang

sử dụng, tên máy tính sử dụng, thời điểm gần nhất cập nhật phần mềm. Các

thông tin cơ bản có thể đƣợc ngƣời quản trị cập nhật, các thông tin về cập

nhật phần mềm sẽ đƣợc các tác tử di động tự động cập nhật về máy chủ.

− Quản lý tác tử di động: Quản lý đƣợc danh sách các tác tử đang hoạt

động và trạng thái của nó. Đƣa ra đƣợc yêu cầu cho các tác tử thực hiện

nhiệm vụ cập nhật phần mềm cho khách hàng.

− Chức năng cập nhật phần mềm: Các tác tử di động hoạt động tại máy

tính của khách hàng sẽ tự động kiểm tra phiên bản, đối chiếu với phiên bản

mới nhất đặt tại máy chủ và tự động cập nhật hoặc cập nhật sau khi đƣợc

ngƣời quản trị cho phép.

3.1.2. Yêu cầu phi chức năng

− Yêu cầu về tính sử dụng: Ứng dụng phải có giao diện dễ sử dụng, thân

thiện đối với ngƣời quản trị, đối với khách hàng cập nhật phần mềm cần phải

trong suốt.

− Yêu cầu về hiệu năng: Ứng dụng cần phải đáp ứng đƣợc yêu cầu cập

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

nhật phần mềm trong thời gian dƣới 1 phút khi có phiên bản mới cần cập

~ 56 ~

nhật. Đảm bảo phục vụ đƣợc nhiều khách hàng, nhiều tác tử cùng một thời

điểm.

− Yêu cầu về bảo mật: Các chức năng của ứng dụng phải đƣợc ngăn

chặn đƣợc truy cập trái phép, cần phải có tài khoản đăng nhập.

3.2. Phân tích chi tiết

3.2.1. Phân tích nghiệp vụ của ứng dụng

Mô hình nghiệp vụ của ứng dụng:

Hình 3.1. Mô hình nghiệp vụ của ứng dụng

3.2.1.1. Nghiệp vụ quản lý phần mềm

Nghiệp vụ “Quản lý phần mềm” gồm có các nghiệp vụ con:

− Cập nhật phần mềm, thông tin về phần mềm: là nghiệp vụ mà ngƣời

quản trị có thể thêm mới, sửa, xóa thông tin về một phần mềm mà ngƣời quản

trị quản lý.

− Cập nhật phiên bản mới phần mềm: là nghiệp vụ ngƣời quản trị cập

nhật phiên bản mới thay thế phiên bản hiện tại của phần mềm.

3.2.1.2. Nghiệp vụ quản lý khách hàng

Nghiệp vụ “Quản lý khách hàng” gồm có các nghiệp vụ con:

− Thêm mới thông tin khách hàng: là nghiệp vụ mà ngƣời quản trị có thể

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

thêm mới thông tin về khách hàng sử dụng phần mềm.

~ 57 ~

− Sửa thông tin khách hàng: là nghiệp vụ mà các tác tử di động tự động

cập nhật lại thông tin về khách hàng.

3.2.1.3. Nghiệp vụ quản lý tác tử di động

Nghiệp vụ “Quản lý tác tự di động” gồm có các nghiệp vụ con:

− Khởi tạo tác tử di động: là nghiệp vụ mà ngƣời quản trị tạo mới tác tử

di động, bắt đầu vòng đời của tác tử để thực hiện nhiệm vụ cập nhật phần

mềm.

− Tƣơng tác với tác tử di động: là nghiệp vụ mà ngƣời quản trị có thể

tƣơng tác với các tác tử đang hoạt động tại máy tính của khách hàng.

3.2.1.4. Nghiệp vụ cập nhật phần mềm

Nghiệp vụ “Cập nhật phần mềm” gồm có các nghiệp vụ con:

− Kiểm tra phiên bản phần mềm: là nghiệp vụ mà các tác tử di động

đang hoạt động tại máy tính của khách hàng kiểm tra phiên bản, đối chiếu với

phiên bản mới nhất tại máy chủ để thực hiện thao tác cập nhật.

− Thực hiện cập nhật: là nghiệp vụ mà tác tử di động thực hiện việc cập

nhật phần mềm sau khi kiểm tra phiên bản.

3.2.2. Phân tích mô hình quan hệ thực thể

3.2.2.1. Mô hình thực thể - liên kết

Ứng dụng phân tán cập nhật phần mềm gồm có các thực thể sau:

− PHAN_MEM: là thực thể phản ánh sản phẩm phần mềm mà ngƣời

dùng quản lý, bao gồm các thông tin liên quan và file cài đặt phần mềm.

− KHACH_HANG: là thực thể phản ánh đối tƣợng khách hàng.

− TAC_TU_DI_DONG: là thực thể phản ánh tác tử di động, chứa định

danh, vị trí và nhiệm vụ thực hiện.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Mô hình thực thể liên kết:

~ 58 ~

Hình 3.2. Mô hình thực thể liên kết

3.2.2.2. Mô tả thực thể

Thực thể PHAN_MEM:

Thuộc tính Phan_mem_id Ten_phan_mem Phien_ban File_cai_dat Kiểu dữ liệu Mô tả Số nguyên Xâu kí tự Xâu kí tự Xâu kí tự

Là mã của phần mềm Là tên của phần mềm Là biên bản hiện thời của phần mềm Là địa chỉ liên kết file cài đặt phần mềm

Thực thể KHACH_HANG:

Thuộc tính Khach_hang_id Ten_khach_hang Dia_chi Kiểu dữ liệu Mô tả Số nguyên Xâu kí tự Xâu kí tự Là mã của khách hàng Là tên khách hàng Là địa chỉ khách hàng

Thực thể Tac_tu_di_dong:

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Thuộc tính Dinh_danh Tinh_trang Kiểu dữ liệu Mô tả Xâu kí tự Xâu kí tự Là định danh của tác tử Là tình trạng hiện tại của tác tử

~ 59 ~

Nhiem_vu Xâu kí tự Là nhiệm vụ mà tác tử cần thực hiện

3.2.3. Phân tích các vấn đề bảo mật

Một số lỗi bảo mật thƣờng gặp và cần phải đƣợc giải quyết:

− Tấn công trực tiếp vào tác tử:

 Các máy ở xa đe dọa tác tử: một tác tử đang di chuyển và ghé lại

một môi trƣờng thí hành không đƣợc tin tƣởng. Môi trƣờng thi

hành này có thể lấy các thông tin dành riêng của tác tử hoặc can

thiệp vào tác tử. Các kiểu tấn công có thể xảy ra bao gồm phá rối,

thi hành bất hđp pháp, và truy cập bất hợp pháp.

 Tác tử đe dọa tác tử khác: một tác tử tƣơng tác với một trong

những tác tử của bạn để các thông tin dành riêng và làm gián đoạn

sự thi hành của nó. Kiểu tấn công có thể xảy ra là truy cập bất hợp

pháp.

 Kẻ lạ mặt đe dọa tác tử: một thực thể phá hoại có thể thay đổi các

thông điệp trao đổi giữa các máy hoặc dò sự liên lạc giữa chúng để

từ đó phát hiện ra nội dung của tác tử của bạn. Các kiểu tấn công

có thể xảy ra là sửa đổi và nghe trộm.

− Tấn công vào máy chủ hay máy tính của khách hàng:

 Các tác tử đến đe dọa các máy phục vụ: một tác tử ghé thăm môi

trƣờng thi hành rồi cô' tìm cách truy cập và làm hƣ các tập tin cấu

hình hay phá hỏng môi trƣờng thi hành. Các kiểu tấn công có thể

xảy ra là truy cập bất hợp pháp, giả dạng, phá hỏng dịch vụ nền.

 Kẻ lạ mặt đe dọa các máy: một thực thể phá hoại có thể gửi một

lƣợng lớn các tác tử “dỏm” tới môi trƣờng thi hành làm cho nó bị

treo. Các kiểu tân công có thể xảy ra ỉà phá hỏng dịch vụ nền và

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

đấu lại.

~ 60 ~

− Tấn công vào hệ thống mạng: Các tác tử đến đe dọa hệ thống mạng là

một tác tử bắt đầu nhân bản và đi chuyển khắp trong mạng sẽ tạo ra một cơn

lũ các tác tử trong mạng. Kiểu tân công có thể xảy ra là phá hỏng dịch vụ nền.

3.3. Thiết kế

3.3.1. Kiến trúc hệ thống

3.3.1.1. Kiến trúc logic

Hình 3.3. Kiến trúc logic hệ thống

Giải thích:

− Tại máy chủ sẽ gồm có các thành phần:

 Cơ sở dữ liệu tập trung

 Công cụ thực hiện chức năng quản lý phần mềm

 Công cụ thực hiện chức năng quản lý khách hàng

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

 Công cụ thực hiện chức năng quản lý, tƣơng tác với tác tử di động

~ 61 ~

− Ngƣời quản trị sẽ thao tác, điều khiển ứng dụng thông qua máy tính cá

nhân của mình.

− Tại máy tính của khách hàng sẽ bao gồm:

 Cơ sở dữ liệu phân tán

 Phần mềm khách hàng sử dụng

 Tác tử di động

3.3.1.2. Kiến trúc kỹ thuật

Hình 3.3. Kiến trúc kỹ thuật hệ thống

Giải thích:

− Web browser: là chƣơng trình duyệt web mà ngƣời quản trị sử dụng để

thao tác với ứng dụng đặt tại máy chủ, thực hiện các thao tác quản lý phần

mềm, khách hàng hay tƣơng tác với các tác tử di động.

− Cơ sở dữ liệu: gồm có một cơ sở dữ liệu tại máy chủ web để quản lý

thông tin tập trung và nhiều cơ sở dữ liệu phân tán tại máy tính của khách

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

hàng để các tác tử có thể truy xuất, cập nhật thông tin.

~ 62 ~

− Web server / Aglet: là máy chủ web và môi trƣờng thực thi tác tử.

Nhận yêu cầu từ trình duyệt web để xử lý, đồng thời cũng là môi trƣờng để

tác tử hoạt động, qua đó tƣơng tác, ra nhiệm vụ với các tác tử đang thực thi tại

máy tính khách hàng.

− Môi trƣờng thực thi: là môi trƣờng nền Java để các tác tử có thể hoạt

động tại máy tính khách hàng.

− Tác tử di động: là chƣơng trình thực hiện nhiệm vụ nhận phần mềm từ

máy chủ và cập nhật vào máy tính khách hàng. Nó có thể di chuyển giữa các

máy tính của khách hàng và chủ động thực hiện nhiệm vụ.

3.3.2. Thiết kế chức năng

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

Hình 3.4. Tổng quan các tình huống sử dụng

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Giải thích:

~ 63 ~

− Nhóm tình huống “Quản lý phần mềm”: bao gồm các tình huống mà

ngƣời quản trị tƣơng tác với hệ thống để thực hiện các chức năng thêm mới,

xóa, sửa thông tin và cập nhật phiên bản mới phần mềm.

− Nhóm tình huống “Quản lý thông tin khách hàng”: bao gồm các tình

huống mà ngƣời quản trị tƣơng tác với hệ thống để thực hiện các chức năng

thêm mới khách hàng sử dụng phần mềm.

− Nhóm tình huống “Quản lý tác tử di động”: bao gồm các tình huống

mà ngƣời quản trị tƣơng tác với hệ thống để khởi tạo tác tử, giao nhiệm vụ

hoặc hủy các tác tử di động.

− Nhóm tình huống “Cập nhật phần mềm”: bao gồm các tình huống mà

tác tử di động nhận lệnh hoặc tự quyết định cập nhật phần mềm tại máy tính

của khách hàng.

3.3.2.2. Thiết kế chi tiết các tình huống sử dụng

− Tình huống sử dụng “Quản lý phần mềm”:

Hình 3.5. Tình huống sử dụng “Quản lý phần mềm”

Các tình huống cụ thể nhƣ sau:

 Thêm mới phần mềm: là tình huống ngƣời quản trị thêm mới phần

mềm vào danh sách quản lý, cho phép nhập mới các thông tin về

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

phần mềm cũng nhƣ file cài đặt.

~ 64 ~

 Sửa thông tin phần mềm: là tình huống ngƣời quản trị sửa thông

tin về một phần mềm đang quản lý.

 Xóa phần mềm: là tình huống ngƣời quản trị xóa bỏ phần mềm

không quản lý nữa.

 Cập nhật phiên bản mới phần mềm: là tình huống ngƣời quản trị

cập nhật file cài đặt mới, thông tin về phiên bản mới của phần

mềm.

− Tình huống sử dụng “Quản lý thông tin khách hàng”:

Hình 3.6. Tình huống sử dụng “Quản lý thông tin khách hàng”

Đây là tình huống ngƣời quản trị thêm mới một khách hàng sử dụng

phần mềm, cho phép cập nhật các thông tin quản lý về khách hàng thêm mới.

− Tình huống sử dụng “Quản lý tác tử di động”:

Hình 3.7. Tình huống sử dụng “Quản lý tác tử di động”

Tình huống cụ thể nhƣ sau:

 Khởi tạo tác tử di động: là tình huống mà ngƣời quản trị tạo mới

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

tác tử để chuẩn bị thực hiện nhiệm vụ cập nhật phần mềm.

~ 65 ~

 Hủy tác tử di động: là tình huống mà ngƣời quản trị hủy, kết thúc

vòng đời của một tác tử di động.

 Đƣa ra yêu cầu cập nhật phần mềm cho tác tử: là tình huống mà

ngƣời quản trị có thể yêu cầu một số tác tử thực hiện việc cập nhật

phần mềm theo một số tiêu chí.

− Tình huống sử dụng “Cập nhật phần mềm”:

Hình 3.8. Tình huống sử dụng “Cập nhật phần mềm”

Tình huống cụ thể nhƣ sau:

 Cập nhật phần mềm: là tình huống mà tác tử di động thực hiện

nhiệm vụ cập nhật phần mềm tại máy tính của khách hàng.

 Cập nhật thông tin khách hàng: là tình huống mà tác tử lấy thông

tin của khách hàng tại máy tính của họ và cập nhật về máy chủ.

 Di chuyển: là tình huống mà tác tử tự động di chuyển giữa các

máy tính của khách hàng.

 Tự hủy tác tử: là tình huống mà tác tử tự hủy khi đã hoàn thành

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

nhiệm vụ.

~ 66 ~

3.3.3. Thiết kế cơ sở dữ liệu

3.3.3.1. Thiết kế chung

Cơ sở dữ liệu của ứng dụng đƣợc chia thành 3 phần chính:

- Dữ liệu về phần mềm

- Dữ liệu về khách hàng quản lý tập trung

- Dữ liệu về tác tử di động

- Dữ liệu về phần mềm, khách hàng quản lý phân tán

3.3.3.2. Danh sách các bảng

− Bảng phan_mem: Lƣu trữ thông tin về phần mềm, các phiên bản và

file cài đặt.

− Bảng khach_hang: Lƣu trữ thông tin về khách hàng

− Bảng khach_hang_phan_mem: Lƣu trữ thông tin về phiên bản phần

mềm đƣợc cài đặt cho khách hàng, các thông tin khác nhƣ lần cuối cài đặt, tên

máy, địa chỉ ip, tình trạng hiện tại…

− Bảng tac_tu_di_dong: Lƣu trữ thông tin về các tác tử di động đang

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

hoạt động tại máy chủ và máy tính của khách hàng.

~ 67 ~

3.3.3.3. Quan hệ giữa các bảng

Hình 3.9. Quan hệ giữa các bảng trong cơ sở dữ liệu

3.3.3.4. Mô tả các bảng

- Bảng phan_mem:

Thuộc tính Kiểu dữ liệu Null Mô tả

phan_mem_id int No Là khóa chính của bảng

ten_phan_mem nvarchar(50) Yes Chứa tên phần mềm

ma_phan_mem nvarchar(50) Yes Chứa mã phần mềm

phien_ban nvarchar(50) Yes Chứa phiên bản hiện tại của phần

mềm

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

link_file nvarchar(50) Yes Chứa đƣờng dẫn đến file cài đặt

~ 68 ~

phiên bản mới

- Bảng khach_hang:

Thuộc tính Kiểu dữ liệu Null Mô tả

khach_hang_id Int No Là khóa chính của bảng, chứa mã

khách hàng

ten_khach_hang nvarchar(50) Yes Chứa tên khách hàng

dia_chi nvarchar(50) Yes Chứa địa chỉ khách hàng

- Bảng khach_hang_phan_mem:

Thuộc tính Kiểu dữ liệu Null Mô tả

khach_hang_phan_mem_id Int No Là khóa chính của bảng

khach_hang_id Yes Chứa khóa ngoại, là mã Int

khách hàng

phan_mem_id Yes Chứa khóa ngoại là mã Int

sản phẩm

phien_ban_hien_tai nvarchar(50) Yes Chứa phiên bản hiện tại

của phần mềm

may_tinh_cai_dat nvarchar(50) Yes Chứa tên máy tính khách

hàng sử dụng để cài đặt

phần mềm

ip_may_cai_dat nvarchar(50) Chứa địa chỉ ip của máy

tính khách hàng cài đặt

phần mềm

tinh_trang nvarchar(50) Chứa thông tin về tình

trạng của phần mềm

đang vận hành tại máy

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

tính khách hàng

~ 69 ~

- Bảng tac_tu_di_dong:

Thuộc tính Kiểu dữ liệu Null Mô tả

tac_tu_di_dong_id Int No Là khóa chính của bảng

dinh_danh_tac_tu Int Yes Chứa định danh của tác tử

tinh_trang nvarchar(50) Yes Chứa tình trạng của tác tử

khach_hang_id Int Yes Chứa mã khách hàng mà tác tử

đang làm việc cùng

nhiem_vu Int Yes Chứa nhiệm vụ mà ngƣời quản

trị giao cho tác tử thực hiện với

khách hàng

3.5. Kết quả đạt đƣợc

Kết quả sau khi lập trình theo thiết kế, ứng dụng phân tán cập nhật phần

mềm đƣợc cài đặt sử dụng thử nghiệm. Phân hệ quản lý của ngƣời quản trị

đƣợc cài đặt trên máy chủ có địa chỉ tên miền riêng. Các tác tử di động đƣợc

thực thi, vận hành tại máy tính trạm có thể có kết nối internet hoặc không.

Quá trình thử nghiệm ứng dụng vận hành tốt, đáp ứng yêu cầu đặt ra.

3.5.1. Mã nguồn một số module phần mềm

Module quản lý danh sách sản phẩm phần mềm:

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

~ 70 ~

$software_id = filter_var($_POST["software_id"],

FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH);

$sql="select * from client inner join client_software on

client.client_id = client_software.client_id where software_id =

".$software_id ." and is_current = 1";

$conn = new mysqli($server,$username,$password,$databasename);

mysqli_set_charset($conn, 'utf8');

if ($conn->connect_error){

die("connect database failed...".$conn->connect_error);

}

$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {

echo "

";

echo "

";

echo "

";

echo "

";

echo "

";

$date=date_create($row['time_installed']);

echo "

";

echo "

";

echo "

";

}

}

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

$conn->close();

~ 71 ~

?>

Tên khách hàng Tên máy cài đặt Phiên bản hiện tại IP máy cài đặt Cập nhật lần cuối Tình trạng
".$row['client_name']." ".$row['client_machine']." ".$row['current_version']." ".$row['ip_installed']." ".date_format($date, 'd-m-Y H:i:s')." ".$row['status']."

Module kiểm tra phiên bản phần mềm:

url2request = url + getCurrentVersion();

WebRequest request = WebRequest.Create(url2request);

WebResponse response = request.GetResponse();

Stream dataStream = response.GetResponseStream();

StreamReader reader = new StreamReader(dataStream);

string responseFromServer = reader.ReadToEnd();

if (responseFromServer.Equals("1"))

{

updatesoftware();

}

timer1.Interval = 30000;

timer1.Start();

Module thực hiện tải phần mềm:

string remoteUri = serverName+softwareName;

string fileName = getCurrentSoftware();

if (File.Exists(fileName)) File.Delete(fileName);

WebClient myWebClient = new WebClient();

myWebClient.DownloadFile(remoteUri, fileName);

3.5.2. Một số hình ảnh giao diện phần mềm

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

− Giao diện trang web quản lý danh sách phần mềm:

~ 72 ~

Hình 3.10. Giao diện trang web quản lý danh sách phần mềm

− Hình ảnh giao diện cập nhật phiên bản mới cho phần mềm:

Hình 3.11. Hình ảnh giao diện cập nhật phiên bản phần mềm

− Hình ảnh tác tử di động tại máy tính của khách hàng phát hiện có

phiên bản mới của phần mềm:

Hình 3.12. Hình ảnh tác tử di động tìm thấy phiên bản mới phần mềm

− Hình ảnh tác tử di động thông báo đang download phiên bản mới nhất

của phần mềm:

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 3.13. Hình ảnh tác tử di động thông báo đang download phần mềm

~ 73 ~

− Hình ảnh tác tử di động thông báo đang cập nhật phần mềm:

Hình 3.14. Hình ảnh tác tử di động thông báo đang cập nhật phần mềm

− Hình ảnh tác tử di động thông báo đã cập nhật thành công phần mềm:

Hình 3.15. Hình ảnh tác tử di động thông báo đã cập nhật thành công

− Hình ảnh tại máy chủ thông báo tác tử di động hoạt động tại máy tính

của khách hàng đã tìm thấy phiên bản mới:

HÌnh 3.16. Hình ảnh tại máy chủ thông báo tác tử đã tìm thấy phiên bản mới

phần mềm.

− Hình ảnh tại máy chủ thông báo tác tử di động hoạt động tại máy tính

khách hàng đang download phần mềm:

Hình 3.17. Hình ảnh tại máy chủ thông báo tác tử di động đang download

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

phần mềm.

~ 74 ~

− Hình ảnh tại máy chủ thông báo tác tử di động hoạt động tại máy tính

khách hàng đang thực hiện nhiệm vụ cập nhật phần mềm:

Hình 3.18. Hình ảnh tại máy chủ thông báo tác tử di động đang cập nhật

− Hình ảnh tại máy chủ thông báo tác tử di động đã thực hiện thành công

nhiệm vụ:

Hình 3.19. Hình ảnh tại máy chủ thông báo tác tử di động đã cập nhật thành

công phiên bản mới phần mềm.

3.5.3. Đánh giá, so sánh với các phƣơng pháp khác

Kết quả của luận văn đã xây dựng đƣợc phần mềm cơ bản đáp ứng đƣợc

các yêu cầu của bài toán phân tán cập nhật phần mềm. Phần mềm đã tự động

nhận biết đƣợc có phiên bản mới của nhà cung cấp, đã tự động tải về và thực

hiện cài đặt đồng thời cũng đồng bộ tình trạng cài đặt, cập nhật phần mềm lên

máy chủ để ngƣời quản trị hệ thống có thể nhận biết, quản lý.

So sánh với các phƣơng pháp cập nhật truyền thống khác:

− Sản phẩm của luận văn có thể cập nhật từng phần của phần mềm.

− Sản phẩm của luận văn có khả năng mang phần mềm di chuyển trong

mạng nội bộ và thực hiện cập nhật ngay cả khi các máy không đƣợc nối

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

mạng internet.

~ 75 ~

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

Kết quả thực hiện luận văn đã tìm hiểu đƣợc các vấn đề về tác tử, tác tử

di động, đặc điểm và thành phần của tác tử, sự phối hợp của tác tử trong hệ đa

tác tử để xử lý các vấn đề trong thực tế. Tác tử với những ƣu điểm vƣợt trội

về khả năng tự trị, tự chủ hành động mà không cần có sự can thiệp trực tiếp

của con ngƣời.

Dựa vào kết quả nghiên cứu lý thuyết, đề tài đã xây dựng đƣợc ứng dụng

phân tán cập nhật phần mềm với giao diện thân thiện, dễ sử dụng, các chức

năng cơ bản đáp ứng đƣợc yêu cầu.

Tuy nhiên, do năng lực và thời gian làm luận văn có hạn nên sản phẩm

vẫn còn một số hạn chế nhƣ chức năng cập nhật phần mềm còn chậm, chƣa

phát huy hết khả năng của tác tử, tính di động chƣa thật sự cao.

Hƣớng phát triển của đề tài là khắc phục các hạn chế chƣa đạt đƣợc, từ

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

đó xây dựng một ứng dụng hoàn chỉnh để có thể thƣơng mại hóa.

~ 76 ~

TÀI LIỆU THAM KHẢO

1. A. Fuggetta, G. Vigna, (1998), “Understanding Code Mobility”, IEEE

Transactions on Software Engineering, 24(5),342-361.

2. D. B. Lange, M. Oshima (1998), Programming and Deploying Java Mobile

Agents with Aglets, Addison-Wesley, USA.

3. Fabio Bellifemine, Giovanni Caire, Dominic Greenwood, (2007),

Developing Multi-Agent Systems with JADE, John Wiley and Sons Ltd.

4. Gerhard Weiss, (1999), “ Multiagent Systems: A Modern Approach to

Distributed Artificial Intelligence”, The MIT Press.

5. N. R. Jennings, K. Sycara, M. Wooldridge. (1998), A Roadmap of Agent

Research and Development, Journal of Autonomous Agents and Multi-Agent

Systems, pp. 275-306.

6. http://en.wikipedia.org/wiki/Client-server

7. http://en.wikipedia.org/wiki/Software_agent

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

8. http://en.wikipedia.org/wiki/Java_Agent_Development_Framework