Tải bản đầy đủ (.pdf) (88 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.49 MB, 88 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

TRỊNH HỒNG NAM

NGHIÊN CỨU CÔNG NGHỆ TÁC TỬ DI ĐỘNG
VÀ XÂY DỰNG ỨNG DỤNG PHÂN TÁN
CẬP NHẬT PHẦN MỀM

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

THÁI NGUYÊN, NĂM 2015


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



~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

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
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
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
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
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
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
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ủ
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
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
ĐÃ 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
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
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
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.
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
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
(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.
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ử.
Các hệ thống phân
tán

Mã nguồn di động

Phục hồi thông
tin
Tác tử di động

(Mobile Agent)

Cơ sở dữ liệu và
cơ sở tri thức

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

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ể
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ú

1- Tác tử di động
(Code, Data,
State)
4- Tác tử di động trả kết quả

S

Hình 1.3. Mô hình hoạt động tác tử di động - Mobile Agent
Tác tử di động là một mô hình hiệu quả cho các ứng dụng phân tán. Đặc
biệt thích hợp và rất hiệu quả trong trong các giải pháp tìm kiếm thông tin cập
nhật mới nhất. Có thể thực hiện trên các môi trường khác nhau, trên các thiết
bị đầu cuối khác nhau, như các máy tính di động laptop, máy tính tại nhà và
máy di động cầm tay. Các thiết bị này thường disconnect trong một khoảng
thời gian dài, thường có băng thông trễ, kết nối mạng không tin cậy, và
thường thay đổi địa chỉ mạng qua mỗi lần kết nối.
1.1.4. Các đặc tính của tác tử di động
Các đặc tính cơ bản của tác tử di động bao gồm:
a) Tính tự trị (autonomous): là khả năng tự kiểm soát bản thân của tác
tử di động sau khi được giao việc mà không cần sự can thiệp của người dùng
hoặc của tác tử khác [3]. Có hai đặc tính thường được dùng để đánh giá về sự
tự trị của tác tử di động. Đó là đặc tính hướng đích (goal-oriented) và tính
chủ động (pro-activeness). Khả năng tự trị của tác tử di động chủ yếu được
quyết định bởi tri thức trang bị cho tác tử di động.



~ 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

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
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ử.
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ụ.

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



×