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

tìm hiểu về công nghệ tác tử di động (mobile agent)

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 (898.96 KB, 27 trang )

TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN
KHOA CÔNG NGHỆ THÔNG TIN
…………………………
BÀI TẬP LỚN
TRÍ TUỆ NHÂN TẠO
ĐỀ TÀI:
TÌM HIỂU VỀ CÔNG NGHỆ TÁC TỬ DI ĐỘNG (MOBILE AGENT)
Giáo viên hướng dẫn :
Sinh viện thực hiện :
Hà Nội
LỜI NÓI ĐẦU
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. 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á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.Công nghệ tác tử đã
có những bước phát triển mạnh mẽ trong những năm gần đây. Riêng tác tử di động
(Mobile agent) đã chứng tỏ được là một biện pháp cực kỳ hữu hiệu trong các vấn
đề xử lý phân tán.
Để hiểu thêm về vấn đề này em chọn đề tài “Tìm hiểu về công nghệ tác tử
di động (Mobile agent)” nhằm nắm được 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 agents đã
và đang được nghiên cứu và phát triển trên thế giới.
Em chân thành cảm ơn sự hướng dẫn của Ts. Lưu Minh Tuấn - Giảng viên
môn Trí tuệ nhân tạo Bộ môn Công nghệ thông tin ĐH Kinh tế Quốc dân đã cho
chúng em nhiều kiến thức quý giá về lĩnh vực trí tuệ nhân tạo để em có thể hoàn
thành đề tài này một cách tốt nhất. Tuy nhiên, sự hiểu biết của em về lĩnh vực này
còn chưa sâu sắc nên chắc chắn sẽ có nhiều sai sót, em mong thầy thông cảm và


góp ý thêm.
Em xin chân thành cảm ơn thầy !
I. KHÁI NIỆM VỀ TÁC TỬ DI ĐỘNG
Tác tử di động là 1 loại tác tử phần mềm (Software agent). Để hiểu rõ về nền
tảng của tác tử di động, ta tìm hiểu khái quát về software agent
I.1. Tác tử phần mềm (Software agent)
I.1.1. Nguồn gốc
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 1 mình và kết hợp
với những tiểu chương trình khác. Năm 1994, khái niệm software agent được đưa
ra bởi Mark Sidell và Chuck Knuff và đến năm 1995 thì phiên bản đầu tiên của
agent xuất hiện. Năm 1975 kĩ thuật lập trình phổ biến là lập trình có cấu trúc, đến
năm 1982, kĩ thuật lập trình phổ biến là phương pháp lập trình hướng đối tượng và
đến khi agent ra đời đã tạo ra một phương pháp lập trình mới.
I.1.2. Khái niệm
Agent là sự kết hợp của nhều kỹ thuật hiện đại:
Hình 1: Agent – phương pháp lập trình mới
Không có định nghĩa cho software agent, ty nhiên, ta có thể tham khảo định
nghĩa sau:
Một agent là một thành phần phần mềm hoặc phần cứng mà có khả năng hoạt
động chính xác để hoàn thành nhiệm vụ thay mặt chủ nhân của agent.
(Nwana,1996)
Trên mạng Internet, một agent (có khi được gọi là intelligent agent) là một
chương trình thu thập thông tin hoặc thực thi một số dịch vụ khác mà không cần
người điều khiển và hoạt động theo thời gian đã được lên lịch sẵn. Một agent đôi
khi được gọi là 1 bot ( viết tắt của robot )
Một ví dụ về agent là chương trình Infogate. Chương trình này có chức năng
thu thập các tin tức mới về lãnh vực người dùng quan tâm và tự động gửi thông
báo đến người dùng khi có tin mới
I.1.3. Phân loại agent

I.1.3.1. Phân loại theo tính năng
• Agent tĩnh (Stationary agent)
- Đặc tính: chỉ làm việc trên một hệ thống, nơi mà agent bắt đầu vòng đời.
- Nếu Stationary agent cần thông tin ở một hệ thống khác hoặc muốn tương
tác với agent nằm ở 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
• Mobile agent
- Không lệ 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 agent lựa chọn.
- Khi mobile agent di chuyển, nó có thể mang theo mình trạng thái và mã
chương trình.
I.1.3.2. Phân loại theo mục đích
Hình 2: Phân loại agent theo mục đích
• Collaborative agent
Collaborative agent là một chương trình giúp người dùng giải quyết vấn đề,
đặc biệt trong những trường hợp phức tạp không quen thuộc, bằng cách sửa lỗi, đề
nghị nên làm gì tiếp theo và chú ý đến những vấn đề ở cấp thấp. Một
Collaborative agent có thể được thêm vào một giao diện người dùng có sẵn,ví dụ
các chương trình giả lập hoặc tích hợp vào thiết kế của một ứng dụng phần cứng
mới như đồ gia dụng
• Interface agent
Interface agent là một chương trình có thể ảnh hưởng đến 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. Interface agent đọc dữ liệu
người dùng nhập vào giao diện và nó có thể tạo ra sự thay đổi tới đối tượng người
dùng thấy trên màn hình, mặc dù có thể sự thay đổi đó không phải diễn ra ngay
ứng với ứng dụng của người dùng. Interface agent 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.
• Smart/Intelligents

Có đầy đủ cả 3 mục đích: giao tác , tự động và dễ thích nghi.
I.2. Tác tử di động (Mobile agent)
Mobile agents 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 90s đế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.
I.2.1. Sự tiến hóa từ các mô hình ứng dụng phân tán
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 [STA-90] đư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 agents 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 (tác tử) và mobile (di động).
Định nghĩa : Tác tử di động là những thành phần phần mềm, bao gồm mã
chương trình, dữ liệu và trạng thái hoạt động 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 tác tử di động đóng gói mã nguồn, dữ liệu và cả trạng thái
thi hành, nhờ vậy tác tử di động 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. Tác tử di
động chính là một dạng của mã di động (mã di động là những chương trình
chuyển mã đến client và thực thi ở đó).
Hình dưới cho thấy sự khác biệt của Mobile agents so với RPC và REV.
Hình 3: Sự tiến hóa của mô hình mobile agents

I.2.2. Tính chất của tác tử di động
- Có khả năng di chú từ nơi này đến nơi khác
- Liên lạc được với nhau, nhân bản, nhập lại, tổng hợp tính toán
- Một số tác tử có khả năng cung cấp dịch vụ hoặc giao diện cho các ứng
dụng kế thừa
- Kích thước nhỏ
- Có khả năng xác định và dùng cá tài nguyên trên các máy tính đang chứa nó
I.2.3. Các đặc tính của tác tử di động
Các đặc tính chính của tác tử di động 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ó 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.
II. LỢI ÍCH CỦA TÁC TỬ DI ĐỘNG
II.1. Giảm tải mạng

Kỹ thuật mobile agents 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 mobile agents là: mang xử lý đến
nơi chứa dữ liệu hơn là mang dữ liệu về chỗ xử lý.
II.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 mobile agents tỏ ra hữu ích 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.
II.3. Đó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
mobile agents, các agents 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.
II.4. Thi hành không đồng bộ và tự trị
Thông thường, các thiết bị di động thường phụ thuộc vào các kết nối mạng
đắt tiền nhưng rất yếu ớt. Vì thế, những tác vụ cần có kết nối liên tục giữa thiết bị
di động và mạng cố định có thể sẽ không có tính kinh tế hoặc không khả thi về
mặt kỹ thuật. Giải pháp mobile agents 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 để đón agent về.
II.5. Thích ứng nhanh

Các agent 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.
II.6. 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 mobile agent độ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.
II.7. 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,
mobile agents 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.
III. CÁC ỨNG DỤNG CỦA TÁC TỬ DI ĐỘNG
Hiện nay, theo các nghiên cứu về agents, chưa có một ứng dụng nào có thể
được xem như là ứng dụng đặc trưng dành cho công nghệ tác tử di động. Tất cả
những kết quả đạt được hiện nay với tác tử di động cũng đều bằng những công
nghệ truyền thống. Tuy nhiên, trong một vài trường hợp, tác tử di động có thể là
giải pháp tối ưu. Tác tử di động có thể được áp dụng trong nhiều lĩnh vực như:
III.1. Thương mại điện tử
Các ứng dụng thương mại điện tử cho phép người dùng thực hiện các giao
dịch trong kinh doanh trên mạng. Một giao dịch có thể bao gồm sự thương lượng
với các thực thể ở xa và có thể đòi hỏi truy cập nguồn thông tin liên tục thay đổi.
Từ thực tế đó nảy sinh nhu cầu thay đổi hành vi của các thực thể để đạt được một
nghi thức chung trong việc thương lượng. Hơn nữa, việc di chuyển các thành phần
của ứng dụng tiến gần đến nguồn thông tin thích hợp cho giao dịch cũng được
quan tâm. Vì thế công nghệ tác tử di động là một giải pháp rất hấp dẫn cho lĩnh
vực này.
III.2. Thu thập thông tin phân tán
Trong trường hợp có nhu cầu truy vấn phức tạp, chuyên biệt và liên qua đến
nhiều nguồn dữ liệu phân tán, không đồng nhất, việc cử các tác tử di động di

chuyển đến các nguồn tin để khai thác tại chỗ và cuối cùng là quay về với những
thông tin cần thiết sẽ cho phép giảm tải mạng và giải quyết tốt hơn bài toán tương
thích
III.3. Theo dõi và thông báo tin cập nhật
Ứng dụng cổ điển này làm nổi bật bản chất không đồng bộ của các tác tử di
động. Các agent có thể được gởi đi, đến nơi có nguồn tin và hoạt động theo dõi
nguồn tin ngay cả khi người dùng ngắt kết nối. Sau đó, khi nguồn tin có sự thay
đổi , agent sẽ quay về báo cho chủ nhân. Những đại diện của loại ứng dụng này
Weather Alarm - một chương trình dùng để dự báo thời tiết trên và JobFinder
(findjobs.com) - website việc làm và tuyển dụng. Các agent có thể được gửi đi để
chờ một dạng thông tin nào đó xuất hiện, rồi sau đó báo cho người dùng biết hoặc
tự nó có những hành động thích hợp đối với thông tin đó.
III.4. 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 agent 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
agent mang các phần mềm thành phần 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à sản xuất chủ động hơn trong việc phục vụ khách hàng để bảo đảm chất
lượng dịch vụ của mình. Mặc khác, các ứng dụng thuộc loại này cũng tỏ ra hiệu
quả đối với các mạng cục bộ hay các chương trình quản lý qui trình hoạt động, sản
xuất…để giúp người quản trị giám sát các hệ thống con.
III.5. Xử lý song song
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 nên ứng
dụng đầy tiềm năng của tác tử di động 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 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 minh họa khai
thác ưu điểm này của mô hình tác tử di động.
III.6. Quản trị hệ thống mạng
Đố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 tác tử di động vào việc
quản trị mạng sẽ giúp cho các công việ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.
III.7. 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 tác tử di động 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.
V. ĐÁNH GIÁ MỘT SỐ HỆ THỐNG TÁC TỬ DI
ĐỘNG
V.1. Các hệ thống tác tử di động
V.1.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à 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 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. 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. 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 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 agent.

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 mobile agent. 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 - Hệ thống hỗ trợ Sales Order Processing trong
việc mua bán chứng khoán, của Đại học Loughborough, Anh.
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 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.
IV.1.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 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 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.
IV.1.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 (Đứ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 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 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.
IV.1.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 agents. 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 agents 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ữ truỵền thông Zeus sử dụng là
FIPA ACL (). 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 (VPNP),
Home Shopping.
IV.2. So sánh các hệ thống Aglet, Mole, Voyager và Zeus

Bảng dưới đây tổng kết các so sánh chính yếu giữa 4 môi trường mobile
agent Aglet, Mole, Voyager và Zeus.
Bảng so sánh các môi trường Agent
V. NGUYÊN LÝ HOẠT ĐỘNG CỦA MỘT TÁC TỬ DI
ĐỘNG
V.1. So sánh với các kĩ thuật khác
Để hiểu rõ về nguyên lý hoạt động trong môi trường mạng của Mobile
Agent, ta sẽ so sánh nó với nguyên lý hoạt động của các kĩ thuật khác:
Có 3 cách thực thi code trong môi trường mạng :
V. 1.1. Kĩ thuật pull code
Áp dụng trong mô hình client-server, bắt đầu khi client gửi yêu cầu đến
server, server sẽ gửi code về client và code thực thi, cho ra kết quả ở client. Thao
tác gồm 3 bước :
Bước 1 : máy client gửi yêu cầu đến server
Hình 4: Kĩ thuật Pull code – Bước 1
Bước 2 : server gửi code cho client
Hình 5: Kĩ thuật Pull code – Bước 2
Bước 3 : code được thực thi ở client
Hình 6: Kĩ thuật Pull code – Bước 3
Ví dụ : Các Java applet được thực thi theo phương pháp này
Chú ý : trong mô hình này, 1 bản sao của code sẽ được server gửi tới client
và thực thi ở client. Server vẫn lưu trữ code.
V.1.2. Kĩ thuật push code
Khi có yêu cầu từ người dùng, 1 máy (1 node) trong mạng sẽ gửi code tới 1
máy (1 node) khác trong cùng môi trường mạng và thực thi ở máy đó. Thao tác
này gồm 2 bước :
Bước 1 : tự bản thân máy A gửi code đến máy B mà không có yêu cầu từ
phía B. Trong mô hình này, A chỉ là 1 máy có nối mạng với B chứ không cần điều
kiện A phải là server

Hình 7: Kĩ thuật Push code – Bước 1
Bước 2 : code được thực thi ở máy B
Hình 8: Kĩ thuật Push code – Bước 2
Chú ý : ở A vẫn lưu trữ 1 bản sao của code. Như vậy, trong 2 mô hình trên,
nơi gửi code đi vẫn giữ lại 1 bản sao của code.
V.1.3. 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 ở máy A sẽ tự đóng gói và di trú tới máy B
Hình 9: Kĩ thuật Autonomous code – Bước 1
Bước 2 : code thực thi ở máy B, lúc này code hoàn toàn không còn ở A nữa
Hình 10: Kĩ thuật Autonomous code – Bước 2
Ví dụ : mobile agent hoạt động theo phương pháp này. 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 mobile agent
với 2 kĩ thuật trên.
V.2. Đời sống một agent
Hình 11: Vòng đời agent
- Creation : Khởi tạo agent, phát sinh ID cho agent, tuỳ biến cấu hình cho
agent
- Serialize: Lưu lại trạng thái agent trước khi di trú đến AgentOS khác
- Migrate: Di trú agent kèm tình trạng của nó đến 1 nơi khác
- Deserialize: Tái tạo lại trạng thái trước khi di trú của agent
- Execute: Truy cập vào các dịch vụ của host, liên lạc với các agent khác,
hoàn thành nhiệm vụ của agent
- 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 1 trở ngại gì đó
không thể tiếp tục hoạt động thì agent sẽ tự hủy hoặc tự đưa nó vào trạng thái
ngủ đông (sleep)
Mọi agent đều thực hiện các công việc của nó tuần tự theo logic : đầu tiên,
agent đượ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ụ.

* Chi tiết vòng đời agent
Vòng đời agent bắt đầu khi agent được tạo ra trên 1 host. Khi đó, agent sẽ
được cấp 1 đị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 1 host khác nằm trong
đường đi của agent, agent sẽ lưu lại trạng thái hiện hành của mình và tiến hành quá
trình di trú. Nếu quá trình di trú thất bại, agent sẽ tự ngừng hoạt động (deactivate)
để rồi nó sẽ tự kích hoạt lại chính mình sau một khỏang thời gian định trước hay
được kích hoạt 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, agent sẽ phục hồi lại trạng thái. Lúc
này, agent 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 agent khác….
Sau khi agent đã hoàn tất nhiệm vụ, nó 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 chính bản thân agent. Khi
đó, agent sẽ lưu lại trạng thái của nó và di trú đến 1 host khác.Vòng đời agent 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ì agent sẽ bị hủy.
V.3. Các điều kiện agent phải thỏa mãn
- Có 1 mã xác nhận duy nhất
- Xác định được những agent khác đang thực thi trong cùng host
- Có khả năng nhận và gửi thông điệp cho những agent khác
VI. KẾT LUẬN
Trên đây em đã giới thiệu về mô hình tác tử di động (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ố lọai ứ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.

×