Tải bản đầy đủ (.doc) (104 trang)

tìm hiểu và ứng dụng mô hình mobile agent vào xây dựng ứng dụng phân tán

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 (1010 KB, 104 trang )

GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
MỤC LỤC
Chương mở đầu: GIỚI THIỆU ĐỀ TÀI 3
Đặt vấn đề 3
Yêu cầu của đề tài 3
Giải quyết vấn đề 3
Chương 1: TỔNG QUAN VỀ MOBILE AGENT 6
TÓM TẮT 6
1.1. Sự cần thiết của mô hình Mobile Agent 6
1.2. Sự tiến hóa từ các mô hình ứng dụng phân tán 8
1.3. Kiến trúc hệ thống Mobile Agent 9
1.4. Các đặc tính của Mobile Agent 11
1.5. Ứng dụng của Mobile Agent 12
1.5.1. Các lợi thế của Mobile Agent 12
1.5.2. Các ứng dụng của Mobile Agent 14
1.6. Các hệ thống Mobile Agent hiện hành 16
1.6.1. Aglets 16
1.6.2. Voyager 17
1.6.3. Mole 19
1.6.4. ZEUS 20
1.6.5. So sánh các hệ thống Aglet, Mole, Voyager và Zeus 21
1.7. Vấn đề khó khăn và thách thức 22
KẾT LUẬN 24
Chương 2: BẢO MẬT TRÊN MOBILE AGENT (MOBILE AGENT SECURITY) 25
TÓM TẮT 25
2.1. Đe dọa sự an toàn bảo mật (Security Threats) 25
2.1.1. Sự tấn công từ một Agent đến Agent Platform (Agent-to-Platform) 26
2.1.2. Sự tấn công từ một Agent đến một Agent khác trong cùng một Platform (Agent to Agent) 28
2.1.3. Sự tấn công từ Platform đối với Agent (Platform-to-Agent) 29
2.1.4. Những thực thể khác tấn công vào hệ thống Agent Platform (Other-to-Agent Platform) 31
2.2. Những yêu cầu về an toàn bảo mật (Security Requirements) 32


2.3. Biện pháp đối phó (Countermeasures) 35
2.3.1. Việc bảo vệ Agent Platform (Protecting the Agent Platform) 35
2.3.2. Việc bảo vệ các Agent (Protecting Agents) 39
KẾT LUẬN 42
Chương 3: CÁC MẪU THIẾT KẾ CỦA AGENT (AGENT DESIGN PATTERNS) 43
TÓM TẮT 43
Trang 1
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
3.1. Mẫu thiết kế đặc trưng cho sự di chuyển 43
3.2. Mẫu thiết kế đặc trưng cho sự phân công các tác vụ 44
3.3. Các mẫu thiết kế đặc trưng cho sự tương tác 45
3.4. Một số mẫu thiết kế đặc trưng 46
3.4.1. Mẫu thiết kế Master-Slave 46
3.4.2. Mẫu thiết kế Itinerary 51
KẾT LUẬN 57
Chương 4: KIẾN TRÚC AGLET CỦA IBM 58
4.1. Mô hình của Aglet 58
4.1.1. Các yếu tố cơ sở (Basic Elements) 58
4.1.2. Các sự kiện lắng nghe trong Aglet 60
4.2. Aglet API (Aglet - Application Programming Interface) 61
4.3. Giới thiệu về ATP (Agent Transfer Protocol) 67
KẾT LUẬN 71
Chương 5: XÂY DỰNG ỨNG DỤNG ĐỊNH THỜI GIAN BIỂU CHO CUỘC HỌP 72
TÓM TẮT 72
5.1. Giới thiệu 72
5.2. Các chức năng chính 73
5.2.1. Chức năng lập lịch tại máy cục bộ 73
5.2.2. Chức năng quản lý danh sách người dùng trong mạng 73
5.2.3. Chức năng lập lịch phân tán 73
5.3. Kết quả minh họa ứng dụng 77

KẾT LUẬN 80
Chương 6: CẤU HÌNH HOÀN CHỈNH ỨNG DỤNG 81
6.1. Cài đặt Aglet-2.0.2 (Server Tahiti) 81
6.2. Hoàn chỉnh ứng dụng 82
Chương 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 84
7.1. Kết luận 84
7.2. Hướng phát triển 84
TÀI LIỆU THAM KHẢO 86
PHỤ LỤC 87
Trang 2
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
Chương mở đầu: GIỚI THIỆU ĐỀ TÀI
Đặt vấn đề
Trong mô hình Client-Server, một giao dịch hoặc truy vấn giữa Client và Server
sẽ yêu cầu nhiều vòng chu trình để hoàn tất. Mỗi chu trình sẽ tạo ra nhiều lưu thông trên
mạng và làm tốn băng thông. Trong một hệ thống có nhiều Client hoặc nhiều giao dịch,
tổng băng thông yêu cầu có thể sẽ vượt quá băng thông hiện có, điều đó sẽ làm giảm
hiệu suất của ứng dụng. Mà đối với các ứng dụng phân tán, băng thông của mạng rất
quan trọng và là một tài nguyên vô giá. Mô hình Mobile Agent ra đời dùng để giải quyết
vấn đề này. Nó sẽ quản lý các truy vấn hay giao dịch bằng cách gửi các Agent từ Client
đến Server, sau đó Client có thể ngắt nối kết và các Agent sẽ bảo vệ kết quả trả về cho
Client khi các nối kết được thiết lập trở lại. Kiến trúc của Mobile Agent sẽ làm giảm sự
tiêu tốn băng thông.
Yêu cầu của đề tài
 Yêu cầu về lý thuyết:
- Tìm hiểu các mô hình của ứng dụng phân tán.
- Tìm hiểu sâu về mô hình tính toán phân tán Mobile Agents.
- Khai thác chuẩn Java Aglet của IBM.
 Yêu cầu về chương trình:
- Xây dựng một ứng dụng phân tán minh họa theo mô hình Mobile Agents như:

truy xuất nhiều CSDL, định thời biểu cuộc họp phân tán
- Ngôn ngữ lập trình: Java.
Giải quyết vấn đề
Dựa trên những yêu cầu đề tài trên nhóm nghiên cứu chúng tôi đã tiến hành triển
khai nghiên cứu về lý thuyết cũng như viết chương trình và đã đạt được một số kết quả.
Trang 3
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
Trong luận văn này chúng tôi sẽ trình bày lại toàn bộ kết quả nghiên cứu mà chúng tôi
đã triển khai. Do những tài liệu tham khảo hoàn toàn bằng tiếng Anh nên có một số thuật
ngữ chuyên ngành không thể dịch sang tiếng Việt được, chúng tôi đã cố gắng chú thích
kèm theo. Luận văn bao gồm 5 chương.
Chương 1. Giới thiệu tổng quan về Mobile Agent
 Sự cần thiết của mô hình Mobile Agent
 Sự tiến hóa của các mô hình phân tán
 Kíến trúc của hệ thống Mobile Agent
 Đặc tính của Mobile Agent
 Các loại ứng dụng trên Mobile Agent
 Các hệ thống hỗ trợ Mobile Agent
 Vấn đề khó khăn và thách thức của Mobile Agent
Chương 2. Bảo mật trên Mobile Agent
 Vấn đề đe dọa đối với sự an toàn bảo mật trên Mobile Agent
 Nhu cầu bảo mật trên Mobile Agent
 Các phương pháp giải quyết vấn đề bảo mật
Chương 3. Các mẫu thiết kế của Agent
 Mẫu thiết kế đặc trưng cho sự di chuyển
 Mẫu thiế kế đặc trưng cho sư phân công tác vụ
 Mẫu thiết kế đặc trưng cho sự tương tác
 Một số mẫu thiết kế đặc trưng (Master – Slave và Itinerary)
Chương 4. Kíến trúc Aglet của IBM
 Mô hình của Aglet

 Giới thiệu Aglet API (Aglet - Application Programming Interface)
Trang 4
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
 Giới thiệu về giao thức ATP (Agent Transfer Protocol)
Chương 5. Xây dựng ứng dụng định thời gian biểu cho cuộc họp
 Giới thiệu mô tả ứng dụng
 Giới thiệu về các chức năng chính
 Kết quả minh họa ứng dụng
Chương 6. Cấu hình hoàn chỉnh ứng dụng
 Cài đặt Aglet-2.0.2 (Server Tahiti)
 Cấu hình hoàn chỉnh ứng dụng
Chương 7. Kết luận và hướng phát triển
Trang 5
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
Chương 1: TỔNG QUAN VỀ MOBILE AGENT
TÓM TẮT
Mobile Agent 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 90 đế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. Trong chương này, chúng tôi điểm lại những khái niệm cơ bản về
Mobile Agent đồng thời đề cập đến những loại ứng dụng phù hợp với mô hình Mobile
Agent đã và đang được nghiên cứu và phát triển trên thế giới. Thông qua việc xem xét
các hệ thống hỗ trợ phát triển ứng dụng dựa trên Mobile Agent, chương này cũng bàn tới
đến những khó khăn và thách thức cần phải giải quyết để có thể đưa Mobile Agent vào
ứng dụng trong thực tế.
1.1. Sự cần thiết của mô hình Mobile Agent
Sự phát triển không ngừng của các kỹ thuật tiên tiến về máy tính, đặc biệt là các
giải pháp mạng, cùng với 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 số người sử dụng Internet đến con số hàng trăm triệu (theo
International Data Corp, tính đến cuối năm 2002 sẽ có hơn 600 triệu người trên toàn thế
giới kết nối Internet). Các đặc điểm của nguồn thông tin, tổ chức mạng, cũng như 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 hơn, có thể kể đến các
khuynh hướng chính yếu:
- Các thiết bị di động (Mobile devices): Việc cung cấp các phần mềm, các dịch
vụ hỗ trợ hiệu quả cho các thiết bị di động (Laptop, PDAs đến điện thoại di động hay sổ
tay điện tử ) này vẫn đang phải đối mặt với nhiều khó khăn vì các thiết bị di động
thường có tài nguyên hạn hẹp, và thường dựa trên các kết nối với băng thông thấp, độ trễ
cao của đường điện thoại, hay mạng không dây.
Trang 6
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
- Người dùng di động (Mobile users): Ngày nay người dùng thường có nhu cầu
truy cập vào máy tính của mình, tài khoản của mình từ bất cứ đâu, vì thế việc hỗ trợ kết
nối ở mọi nơi, mọi lúc 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ử dụ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ấn đề còn lại là khả năng hỗ trợ chuyên biệt hoá của 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, đây sẽ lại là một khó
khăn mới đối với người dùng khi truy vấn.
- Gia tăng sử dụng mạng cục bộ: 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ì Intranet cho phép việc 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 không đồng nhất
cả về phần cứng, lẫn về kiến trúc hệ điều hành…Và bài toán tương thích, dễ mang
chuyển sẽ là vấn đề cần giải quyết ở đây.
- 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. Mobile Agent là một mô hình trong đó các tiến trình, được
Trang 7
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
gọi là Agent, 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 Mobile Agent 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. Mobile Agent 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.
1.2. Sự tiến hóa từ các mô hình ứng dụng phân tán
Mobile Agent có thể được xem như là sản phẩm kết hợp của kỹ thuật Software
Agent và kỹ thuật xử lý phân tán. Mobile Agent khác với mô hình xử lý mạng truyền
thống. Theo truyền thống, một ứng dụng phân tán có cấu trúc xây dựng trên mô hình
Client-Server sẽ thực hiện việc giao tiếp thông qua cơ chế truyền thông điệp hoặc các lời
gọi hàm từ xa (RPCs). Các mô hình giao tiếp này thường phải đồng bộ, nghĩa là phía
Client tạm ngưng hoạt động của mình trong thời gian gửi yêu cầu đến Server và đợi đến
khi nhận được kết quả trả về từ Server. 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 gần đây 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 chương trình để thực thi tại những vị trí này. Mobile Agent là mô
hình tiến hóa tiên tiến nhất so với các mô hình trước đó.
Mobile Agent là danh từ ghép giữa Agent (trợ lý) và Mobile (di động). Một

Mobile Agent là một chương trình có khả năng di chuyển một cách tự trị từ nút mạng
này sang nút mạng khác và thực hiện các xử lý thay thế cho con người để đạt được mục
tiêu được giao phó. Khi di chuyển, các Mobile Agent đóng gói mã nguồn, dữ liệu và cả
trạng thái thi hành, nhờ vậy Mobile Agent có thể dừng việc thi hành đang thực hiện tại
máy này, di chuyển sang máy khác và khôi phục lại sự thi hành tại máy đích. Hình 1.1
cho thấy sự khác biệt của Mobile Agent so với RPC và REV.
Trang 8
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
Hình 1.1
1.3. Kiến trúc hệ thống Mobile Agent
Mobile Agent khác với các xử lý phân tán, vì các xử lý phân tán không quyết
định địa điểm và khi nào thì nó di chuyển còn Mobile Agent có thể di chuyển tới bất kỳ
nơi đâu và bất kỳ khi nào. Mobile Agent cũng khác với Java Applet, Applet chỉ có thể di
chuyển một chiều từ Server đến Client, trong khi Mobile Agent thì có thể di chuyển giữa
Client và Server và có thể tự định hướng.
Thậm chí ngay trong kiến trúc của hệ thống Mobile Agent cũng có sự khác biệt,
hầu hết tất cả hệ thống Mobile Agent đều chứa một Mobile Agent (MA) và một Mobile
Agent Environment (MAE). Như hình 1.2
Trang 9
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
Hình 1.2
MAE tạo ra một môi trường thực thi chắc chắn và thích hợp cho MA, sau đó cung
cấp cho MA các dịch vụ căn bản bao gồm tạo (creation), vận chuyển (transportation) và
thực thi (execution). Nó cũng bao gồm các cơ chế như: chiến lược chịu đựng lỗi, điều
khiển bảo mật và các kỹ thuật kết nối. Khả năng giải quyết vấn đề của các MA phụ thuộc
vào trên các dịch vụ mà nó được MAE cấp. Một cách tổng quát thì MAE có các dịch vụ
cơ bản sau:
- Business service: các dịch vụ tạo, di chuyển, khả năng chịu đựng và thực thi trên
môi trường phân tán.
- Event service: cung cấp các giao thức truyền, kết nối và hỗ trợ các tương tác

giữa các Agent.
- Directory service: duy trì các thông tin về trạng thái về sự cục bộ của một
Mobile Agent, và một thông điệp định tuyến dùng để phân phát các thông định tới
Mobile Agent.
Trang 10
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
- Security service: cung cấp môi trường thực thi an toàn.
- Application sevice: cung cấp các dịch vụ giao tiếp cho các tác vụ.
Thông thường, một MAE chỉ có trên một máy tính trên mạng, nhưng nếu các máy
tính được kết nối bằng đường truyền có tốc độ cao, một MAE có thể phân tán trên một
mạng theo cách không đồng nhất của các máy tính mà không ảnh hưởng đến năng suất
làm việc của toàn hệ thống. Agent Transfer Protocol (ATP) thì hoạt động trong MAE
cho việc vận chuyển các MA qua các máy tính, và cung cấp một môi trường thực thi và
các dịch vụ giao tiếp. Agent Communication Language (ACL) được khai thác bằng MA
trong MAE để kết nối với các dịch vụ khác nhau được cung cấp bởi MAE.
Trong một hệ thống kiến trúc của Mobile Agent, MA có thể được phân chia thêm
nữa là User Agent (UA) và Service Agent (SA). UA có thể di chuyển từ một MAE đến
MAE khác, thực thi trong MAE và kết nối với những MA khác hay các dịch vụ được
cung cấp bởi MAE xuyên suốt trong ACL. Chức năng chính của UA là hoàn tất nhiệm
vụ được giao bởi người dùng, và còn đóng vai trò di chuyển, điều khiển bảo mật và liên
lạc với bên ngoài. SA không có tính di động, chức năng chính của nó là cung cấp những
dịch vụ cho các MA cục bộ và các MA di chuyển đến. Thông thường có nhiều SA trong
một MAE, và chúng cung cấp các dịch vụ khác nhau. Vì vậy SA không có tính di động
và chỉ được khởi động (start up) và quản lý (manage) bởi admin của MAE nơi nó cư trú,
điều này làm cho SA không nguy hiểm. UA không thể truy cập trực tiếp vào tài nguyên
hệ thống, nó chỉ có thể truy cập vào tài nguyên được điều khiển thông qua các Interface
được cung cấp bởi SA. Theo cách đó sự tấn công từ các Agent nguy hiểm có thể được
tránh. Đây là cũng là một chính sách bảo mật mà hầu hết các hệ thống Mobile Agent
chấp nhận.
1.4. Các đặc tính của Mobile Agent

Các đặc tính của Mobile Agent bao gồm:
Tính tự trị (autonomous): là khả năng tự kiểm soát bản thân của Agent sau khi
được giao việc mà không cần sự can thiệp nào của người dùng hoặc của Agent khác. Có
Trang 11
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
nhiều hướng đánh giá về sự tự trị của Agent. Hai đặc tính hướng đích (goal-oriented) và
tính chủ động (pro-activeness) thường được dùng để đánh giá mức độ tự trị của Agent.
Khả năng tự trị của Agent chủ yếu được quyết định bởi tri thức trang bị cho Agent.
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 khác của một Agent. Khả năng di động của một Agent được phân thành
hai loại. Di động mạnh (strong mobility) là khả năng mà hệ thống có thể di chuyển cả
mã chương trình và trạng thái thi hành của Agent đến một môi trường khác. 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.
Tính thích ứng (reactiveness): là khả năng của Agent 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.
Khả năng cộng tác (collaboration): là khả năng liên lạc, phối hợp hoạt động của
các Agent với các Agent của cùng môi trường khác hay với các loại đối tượng khác
trong những môi trường khác.
1.5. Ứng dụng của Mobile Agent
1.5.1. Các lợi thế của Mobile Agent
Có bảy lợi ích chính đối với việc ứng dụng Mobile Agent:
1.5.1.1. Mobile Agent làm giảm tải mạng
Kỹ thuật Mobile Agent cho phép người dùng đóng gói cuộc trao đổi, gởi nó đến
đích và thực hiện xử lý, trao đổi dữ liệu 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 Mobile Agent là mang xử lý đến nơi chứa dữ liệu hơn là mang dữ
liệu về chỗ xử lý.
1.5.1.2. Mobile Agent khắc phục tình trạng trễ

Trang 12
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
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 đó không được phép xảy ra trong các hệ thống
điều khiển thời gian thực như robot, quy trình sản xuất… Khi đó, giải pháp Mobile
Agent tỏ ra có hiệu quả trong việc khắc phục độ trễ nhờ vào việc các Agent 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.
1.5.1.3. Mobile Agent gói gọn 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 cho 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 Mobile Agent, các Agent 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.5.1.4. Mobile Agent có thể thi hành tự trị và không đồng bộ
Thông thường, các thiết bị di động thường phụ thuộc và 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ó liên tục giữa thiết bị di động và mạng
cố định có thể sẽ không có tính kinh tế hoặc không khả thi về mặt kỹ thuật. Giải pháp
Mobile Agent giải quyết vấn đề này bằng cách nhúng tác vụ cần thực hiện vào Agent, rồi
gửi lên mạng. Sau khi được gửi đi, Agent 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 để nhận Agent về.
1.5.1.5. Mobile Agent có khả năng thích ứng nhanh
Các Agent có khả năng cảm nhận nhanh 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.5.1.6. Mobile Agent khắc phục tình trang 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 Mobile Agent độc lập với máy tính (phần cứng và
Trang 13

GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
hệ điều hành) và tầng vận chuyển, chỉ phụ thuộc vào tầ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.5.1.7. Mobile Agent mạnh mẽ và khả năng chế ngự lỗi cao
Với khả năng phản ứng năng động, với những sự kiện và những thay đổi bất lợi,
Mobile Agent 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.5.2. Các ứng dụng của Mobile Agent
1.5.2.1. Thu thập dữ liệu từ nhiều nơi
Tìm dữ liệu từ cơ sở dữ liệu phân tán là một ứng dụng phổ biến của Mobile
Agent. Thay vì di chuyển một lượng dữ liệu đến bộ xử lý tìm kiếm (search engine) để
tạo chỉ mục tìm kiếm, ta sẽ gửi các Agent đế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 những khác biệt giữa Mobile code – như là Applets – và Mobile
Agent là lộ trình. Trong khi Mobile code luôn di chuyển từ điểm A đến điểm B thì
Mobile Agent có một lộ trình và có thể lần lượt di chuyển qua nhiều site. Do đó một ứng
dụng rõ ràng của Mobile Agent là thu thập thông tin trên mạng.
1.5.2.2. Tìm kiếm và lọc dữ liệu
Lượng thông tin trên Internet ngày càng nhiều, do đó việc tìm kiếm thông tin
cần thiết trên mạng sẽ tốn nhiều thời gian. Vì vậy, việc lọc bớt một số thông tin không
thích hợp là một vấn đề quan trọng.
1.5.2.3. Kiểm tra dữ liệu
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 Agent gửi đi có thể đợi cho tới
khi lấy được thông tin chắc chắn.
Chẳng hạn một Agent có thể tới một thị trường chứng khoán đợi cho tới khi thị
trường chứng khoán đạt tới một giá chắc chắn, sau đó đặt mua nhân danh người dùng
của nó.
Trang 14
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến

Loại ứng dụng này nêu bật bản chất không đồng bộ của Mobile Agent. Nếu bạn
gửi đi một Agent, bạn không cần ngồi đợi kết quả. Bạn có thể lập trình cho Agent để 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 vào mạng cho tới
khi Agent gửi kết quả. Một Agent có thể đợi cho đến khi nào bạn kết nối lại.
1.5.2.4. Đàm phán
Bên cạnh việc tìm kiếm cơ sở dữ liệu và file, các Agent còn thu thập thông tin
bằng cách tương tác với các Agent khác. Ví dụ bạn muốn lập một kế hoạch gặp gỡ một
số người, bạn gửi một Agent tương tác với các Agent đại diện những người mà bạn
muốn gặp. Các Agent có thể đàm phán và sắp xếp lịch.
1.5.2.5. Đặt hàng
Thương mại điện tử là môi trường tốt để áp dụng công nghệ Mobile Agent. Một
Mobile Agent có thể thay bạn đi mua sắm, bao gồm việc đặt hàng, trả tiền. Chẳng hạn
như nếu bạn muốn bay từ thung lũng Silicon tới một quần đảo Nam Thái Bình Dương,
một Agent có thể tới cơ sở dữ liệu các chuyến bay và tham khảo giá của các hãng hàng
không. Nó tìm ra chuyến bay có giá rẻ và thời gian thích hợp, đặt một chỗ cho bạn, thanh
toán số credit card của bạn.
Thương mại điện tử cũng diễn ra giữa các Agent. Ví dụ có một host dành riêng
để mua bán ô tô, nếu bạn muốn mua một chiếc ô tô, bạn có thể đưa cho Agent sở thích
của bạn, giá cả và cách thức trả giá. Bạn gửi Agent của bạn tới host, ở đó nó mặc cả với
Agent của host để tìm mua chiếc xe cho bạn.
1.5.2.6. Xử lý song song
Vì các Mobile Agent có thể tạo ra nhiều bản sao của nó trên mạng, một ứng
dụng đầy tiềm năng của Mobile Agent là quản trị các tác vụ song song. 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 Mobile Agent 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ệ Mobile Agent không đồng nhất là một minh họa khai thác ưu điểm này của
mô hình Mobile Agent.
1.5.2.7. Quản trị hệ thống mạng
Trang 15
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến

Đối với những hệ thống mạng lớn, việc chuẩn đoán lỗi, duy trì sự ổn định của
hệ thống là các công việc rất khó khăn. Việc ứng dụng Mobile Agent vào quản trị mạng
sẽ giúp cho các công tác chẩn đoán lỗi và duy trì từ xa sự ổn định của hệ thống được dễ
dàng hơn.
1.5.2.8. Hỗ trợ các thiết bị di động
Do đặc điểm tài nguyên hạn chế và không kết nối thường xuyên, việc xây dựng
các ứng dụng dựa trên Mobile Agent với khả năng di chuyển đến các máy tính có cấu
hình mạnh hơn để hoạt động (truy vấn cơ sở dữ liệu, tìm tin…) rồi trả kết quả về sẽ là
một giải pháp tốt cho người dùng các thiết bị di động.
Trong số đề án về loại ứng dụng này có thể kể đến Sony Magics Link PDA (xây
dựng trên Telescript), TACOMA, Mobile Agent Middlerware tại Darmouth College, và
đề án Docking Laptop tại University of Maryland.
1.6. Các hệ thống Mobile Agent hiện hành
Các hệ thống được lựa chọn để khảo sát ở đây bao gồm Aglets và Voyager (sản
phẩm thương mại), cùng với Mole và Zeus (kết quả nghiên cứu). Cả bốn môi trường này
đều sử dụng Java để hỗ trợ phát triển ứng dụng, nhưng mỗi hệ thống có những đặc thù
riêng.
1.6.1. Aglets
Aglets đượ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 Beta3 trên nền JDK1.1. Phiên bản mới nhất của ASDK là 2.0.2
do SourceForge phát triển trên nền JDK1.3.
Aglets là một hệ thống Java Mobile Agent 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 Aglets 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
Trang 16
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
hành và một máy ảo Java cho Aglets 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 Aglets một cách an toàn.

Aglet API là bộ thư viện bao gồm các hàm chuyên biệt dành cho việc phát triển
Agent. Nhờ vào Aglet API, khả năng nổi tiếng của Java là “viết một lần, thi hành bất cứ
đâu” được viết lại là “viết một lần, lưu hành bất cứ đâu”. Một khi Aglets được tạo ra, nó
sẽ chạy trên mọi máy có hỗ trợ Aglet API mà không quan tâm đến nguồn gốc hệ điều
hành và phần cứng bên dưới hay nguồn gốc cụ thể của Aglet API được cài trên máy
đang chạy.
Trong mô hình đối tượng Aglets, một Mobile Agent 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ự kiện và liên lạc với các Agent 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. Aglet 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. Agent 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
hai 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 Agent.
1.6.2. Voyager
Voyager là một môi trường thương mại hỗ trợ phát triển các ứng dụng Agent
được hãng Object Space phát triển từ giữa năm 1996. Voyager đã trải qua nhiều lần nâng
cấp và thay đổi từ phiên bản 1.0 cho đến bây giờ là phiên bản 4.5. Tháng 03-2002 sản
phẩm Voyager được nhượng lại cho Recursion Software, một công ty chuyên về các sản
phẩm viết trên C++ và Java để đảm bảo 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,
Trang 17
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
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 Mobile Agent 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 Agent cũng sẽ được bảo toàn và tiếp tục thực thi tại
nơi Agent đế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 có thể truy cập nhau thông qua các dịch
vụ Web.
Thế mạnh thật sự của 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 Mobile Agent 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.
Trang 18
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
1.6.3. Mole
Mole là hệ thống Mobile Agent đượ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 Agent 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 Agent 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 Agent được Mole hỗ trợ là KQML. Việc trao đổi dữ liệu giữa các Agent được
thực hiện theo nghi thức TCP/IP. Mole cho phép đa tiểu trình/Agent 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 Agent. Mole tuân
theo mô hình bảo mật sandbox của Java. Agent trong hệ thống Mole được chia làm hai
loại: User Agent và System Agent. User Agent là những Agent 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
Agent (Service Agent) - được khởi động bởi người quản trị - không có tính di động và
đượ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
được phát triển trên môi trường Mole: AIDA - Infrastructure for Mobile Agent, 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ỗ
Trang 19
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
trợ lập trình Agent để Mole trở thành hệ thống Agent 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 Agent.
1.6.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 Agent. 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 Agent, 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 Agent trên môi trường phân tán. 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 Agent. 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 Agent, 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 Agent 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 Agent và các thuộc tính của Agent. Code
Generator sẽ tự động phát sinh mã nguồn cho Agent từ những thuộc tính đã đặc tả.
Hai đặc tính quan trọng của các Zeus Agent là tính tự trị và cộng tác. Bộ phận
Planner trong mỗi Agent sẽ hỗ trợ Agent thể hiện tính tự trị. Khả năng thương lượng và
cộng tác giữa các Agent cũng được Zeus tích hợp 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 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 Agent 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ữ truyền thông Zeus sử dụng là FIPA ACL.
Trang 20
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
Nhằm cung cấp khả năng “hiểu” lẫn nhau cho các Agent, 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 Agent.
Các Agent 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 Agent 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
Agent, trạng thái tác vụ những Agent đang thực hiện và trạng thái bên trong của Agent.
Đồ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 Agent, chẳng hạn những loại thông điệp nào Agent đã 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í Agent,

Zeus cung cấp những Agent 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 Mobile
Agent 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 Agent 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, Network Management, Home Shopping.
1.6.5. So sánh các hệ thống Aglet, Mole, Voyager và Zeus
Trang 21
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
1.7. Vấn đề khó khăn và thách thức
Về mặt lý thuyết, mô hình Mobile Agent có những ưu điểm rất hứa hẹn cho việc
phát triển một thế hệ các ứng dụng phân tán mới. Tuy nhiên, những nghiên cứu trong
lĩnh vực Mobile Agent đa số tập trung phát triển các hệ thống Agent hỗ trợ khả năng di
động và những vấn đề của các môi trường này như tính an toàn, cơ chế tự di chuyển của
Agent, cơ chế giao tiếp giữa các Agent…Việc vận dụng mô hình Mobile Agent vào các
ứng dụng thực tế gần như vẫn dừng lại ở mức thử nghiệm mà chưa có được những sản
phẩm thương mại hoàn chỉnh. Nhìn chung, mô hình Mobile Agent vẫn chưa trở thành
một kỹ thuật được chấp nhận rộng rãi trong thực tế.
Những nguyên nhân dẫn đến tình trạng triển khai chậm chạp kỹ thuật mới này
bao gồm cả về khía cạnh kỹ thuật lẫn xã hội:
 Các vấn đề kỹ thuật: Thực hiện cơ chế di động, bảo đảm an toàn, nâng cao tốc
độ thi hành, và chuẩn hoá công nghệ là những khó khăn đồng thời là các thách thức chủ
yếu của mô hình Mobile Agent:
- Thực hiện tính năng di động: Một số hệ thống về nguyên tắc hỗ trợ tính di động
của Agent, nhưng trong thực tế hoặc chưa hỗ trợ, hoặc chỉ hỗ trợ tính di động yếu
(weak-mobility) với những cơ chế chuyển dời Agent chưa được tốt. Để hỗ trợ tính di
Trang 22

GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
động mạnh (strong-mobility) cũng như cho phép Agent di chuyển thuận tiện hơn, cần có
những cơ chế hạ tầng, những phần mềm trung gian (middleware) giúp thực hiện việc
chuyển dời mã nguồn tốt.
- An toàn hệ thống: Việc chấp nhận các Agent di động từ máy này sang máy khác
để thi hành, một mặt tạo ra những thuận lợi như đã trình bày, mặt khác gây ra những vấn
đề về tính an toàn của hệ thống. Giải pháp bảo vệ máy chủ khỏi tác động xấu từ Agent
du nhập vào, bảo vệ tính riêng tư và toàn vẹn của Agent trong môi trường mới, bảo vệ
Agent khỏi tác động của các Agent khác hoạt động trên cùng môi trường… là những câu
hỏi cần được trả lời thấu đáo trước khi có thể triển khai thực sự mô hình Mobile Agent,
nhất là trên mạng Internet thay vì các mạng Intranet cục bộ.
- Nâng cao tốc độ thi hành: Để giải quyết vấn đề dễ mang chuyển và tương thích
trên các môi trường không đồng nhất trên con đường di chuyển và thi hành của Agent,
hầu hết các hệ thống Agent đều phải sử dụng hình thức thông dịch mã nguồn tại đích
đến. Và vì thế tốc độ thi hành của các hệ Agent vẫn còn rất kém. Một hướng tiếp cận
nhằm tiết giảm thời gian du nhập và thi hành trên môi trường đích của Agent là sử dụng
chiến lược biên dịch đúng thời điểm (just-in-time compilation).
- Chuẩn hoá: Đây là một điều kiện quan trọng để đưa mô hình Agent vào ứng
dụng thực tế trong đó cho phép các hệ thống Agent của những công ty, tổ chức khác biệt
có thể tương tác với nhau. Các cố gắng chuẩn hoá của những tổ chức như OMG, FIPA…
vẫn đang được bổ sung hoàn thiện dần. Bên cạnh đó, các chuẩn cho ngôn ngữ giao tiếp
giữa các Agent như KQML, KIF… cũng là một hướng nghiên cứu được quan tâm.
 Các vấn đề xã hội: Tuy được nhiều công ty lớn như HP, Mitsubishi,
ObjecbSpace… cũng như các trường đại học danh tiếng như MIT, Darmouth, Maryland
đầu tư nghiên cứu như một trong những hướng trọng điểm, nhưng Mobile Agent lại chưa
được đón nhận nồng nhiệt trong các khách hàng thực tế. Một số trở ngại về mặt xã hội
chính yếu bao gồm:
- Thiếu ứng dụng đặc trưng: Hầu hết những bài tóan phân tán vẫn có thể giải
quyết với mô hình Client-Server truyền thống mà không nhất thiết phải sử dụng Mobile
Trang 23

GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
Agent. Trong nhiều trường hợp, Mobile Agent cung cấp một cách tiếp cận hiệu quả hơn
cho vấn đề, nhưng cũng có những trường hợp các kỹ thuật truyền thống tỏ ra hữu hiệu
hơn. Do sự thiếu vắng một lọai ứng dụng đặc trưng cho Mobile Agent nên mô hình chưa
đủ thuyết phục đối với người dùng.
- E ngại mất an toàn: Việc chấp nhận cho một Agent ở nơi khác đến khai thác tài
nguyên ở máy mình làm cho người dùng cảm thấy các mối đe dọa bị tấn công tăng lên
trong khi đó các lợi ích do Agent mang đến lại chưa rõ ràng. Ngoài ra, việc giao dịch
thông qua mạng lưới Agent sẽ làm mất tác dụng quảng cáo cho hình ảnh của các công ty
vì mất cơ hội tương tác trực tiếp với khách hàng.
KẾT LUẬN
Trong chương này chúng tôi đã giới thiệu về mô hình Mobile Agent- một mô hình
mới cho phép xây dựng nhiều ứng dụng phân tán hiệu quả hơn những kỹ thuật cũ. Tuy
còn những khó khăn trong việc triển khai Mobile Agent vào thực tế, nhưng Mobile
Agent có nhiều tiềm năng trong một số loại ứng dụng phù hợp, và nên là một công cụ
cần có khi xây dựng các ứng dụng phân tán quy mô lớn.
Trong vòng năm năm gần đây đã có một số hướng nghiên cứu rất hứa hẹn được
tiến hành trong lĩnh vực Mobile Agent, nhưng kết quả chỉ mới dừng ở mức có thể vận
dụng Mobile Agent vào một số ứng dụng với các điều kiện giảm nhẹ về môi trường thi
hành. Do đó việc nghiên cứu để giải quyết những vấn đề tồn đọng của mô hình vẫn là
những thách thức cần được đầu tư nghiêm túc.
Trong chương tiếp theo chúng tôi sẽ đề cập đến vấn đề bảo mật trên Mobile
Agent. Một trong những vấn đề quan trọng cần phải giải quyết để có thể đưa mô hình
Mobile Agent vào những ứng dụng thực tiễn.
Trang 24
GVHD: Thầy Lê Quốc Tuấn SVTH: Nguyễn Tuấn Tài – Hà Thị Bạch Yến
Chương 2: BẢO MẬT TRÊN MOBILE AGENT
(MOBILE AGENT SECURITY)
TÓM TẮT
Kỹ thuật Mobile Agent cung cấp một mô hình xử lý mới mà có thể tạm ngưng

việc thi hành của nó tại một host và di chuyển nó đến một host khác trên mạng. Sự phức
tạp của Mobile Agent gia tăng theo thời gian, vì vậy có quá nhiều mối đe dọa liên kết với
nhau cùng ảnh hưởng đến vấn đề an toàn bảo mật. Trong chương này sẽ cung cấp khái
quát về phạm vi của các mối đe dọa đối phó với những người thiết kế Agent Platform và
những người phát triển những ứng dụng dựa trên Agent. Chương này cũng nhận dạng
mục tiêu bảo mật chung.
2.1. Đe dọa sự an toàn bảo mật (Security Threats)
Khả năng đe dọa đối với sự bảo mật nói chung rơi vào 3 loại chủ yếu: sự phơi bày
thông tin (disclosure of information), sự từ chối của dịch vụ (denial of service), sự sửa
đổi làm sai lạc thông tin (corruption of information). Có nhiều cách khác nhau để khảo
sát những sự đe dọa này chi tiết hơn khi chúng áp dụng đối với hệ thống Agent. Ở đây
chúng ta chỉ dùng các thành phần (components) của một hệ thống Agent để phân loại sự
đe dọa như là cách để nhận biết nguyên nhân và mục đích của một sự tấn công.
Hình 2.1
Trang 25

×