TỔNG QUAN VỀ MOBILE AGENTS
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ảp pháp mạng, cùng với sự bùng nổ nhanh chóng các dịch vụ và thông tin trên mạng đã làm gia tăng số người sử dụng Internet lên đến 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 hơn, có thể kể đến các khuynh hướng chính yếu....
TỔNG QUAN VỀ MOBILE AGENTS
Trần Hạnh Nhi, Lê Đình Duy, Nguyễn Đông Hà
Thái Trí Hùng, Văn Trọng Nam, Huỳnh Tấn Năng, Nguyễn Huy Thẩm,
Nguyễn Thái Huy, Phan Đình Thế Huân, Hồ Thị Mỹ Hiền, Lê Văn Triều
Bộ môn Công Nghệ Phần Mềm
Khoa Công Nghệ Thông Tin, Trường ĐH Khoa Học Tự Nhiên Tp.HCM
Email: (thnhi, ldduy)@fit.hcmuns.edu.vn
TÓM TẮT
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. Trong bài
báo 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 agents đã 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 agents, bài báo 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 agents vào ứng
dụng trong thực tế.
ABSTRACT
Mobile agents is one of exciting research areas attracting a great number of consideration from 90’s to
now due to features especially suitable for developing distributed applications. This paper reviews
basic conceptions of mobile agents and deals with kinds of mobile agent based applications that have
been doing research and developing over the world. It also considers some current mobile agent
systems and presents difficulties and challenges in desiginng and implementing mobile agent
applications in practice.
1. GIỚI THIỆ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 (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 [KOT-99]:
• 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 lớp 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
hep, 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.
• 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 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 [LAN-99]. 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.
Trong bài báo này này chúng tôi sẽ giới thiệu các khái niệm cơ bản về mobile agent trong phần tiếp
theo. Phần 3 sẽ trình bày về các lợi thế của các ứng dụng dựa trên mobile agents và các lĩnh vực ứng
dụng đầy tiềm năng của mobile agents. Phần 4 trình bày các khảo sát về một số môi trường dựa trên
Java hỗ trợ phát triển ứng dụng mobile agents. Phần thảo luận sẽ bàn đến các vấn đề mở đang được
tiếp tục nghiên cứu trong lĩnh vực hiện nay về mobile agents. Cuối cùng là kết luận.
2. MOBILE AGENTS
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 [LAN-98] 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 cho thấy sự khác biệt của Mobile agents so với RPC và REV.
Hình 1: Sự tiến hóa của mô hình mobile agents
2.2. Các đặc tính của mobile agents
Các đặc tính chí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 [JEN-98]. 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)
[LAN-98] 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. [FUG-98].
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.
3. ỨNG DỤNG CỦA MOBILE AGENTS
3.1. Các lợi thế của mô hình mobile agents
Có bảy lợi ích chính đối với việc ứng dụng mobile agent [LAN-98]:
3.1.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ý.
3.1.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.
3.1.3.1. Đóng gói các giao thức
Khi dữ liệu được trao đổi trong hệ thống phân tán, việc truyền và nhận dữ liệu phải được mã hóa bởi
các giao thức cần thiết. Các giao thức này được sở hữu bởi mỗi máy trong hệ thống. Tuy nhiên, một
khi các giao thức phải tiến hóa để phù hợp với những yêu cầu mới về sự bảo mật hoặc tính hiệu quả,
chúng bắt đầu trở nên cồng kềnh, nặng nề và trở thành vấn đề nan giải. Riêng với giải pháp 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.
3.1.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ề.
3.1.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.
3.1.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.
3.1.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.
3.2. Các lĩnh vực ứng dụng tiềm năng của mobile agents
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 (kill application) dành cho công nghệ mobile agents [MIL-99]. Với tất cả những kết quả đạt
được hiện nay với mobile agents, người ta cũng đều đạt được bằng những công nghệ truyền thống.
Tuy nhiên, trong một vài trường hợp, mobile agents có thể là giải pháp tối ưu. Mobile agents có thể
được áp dụng trong nhiều lĩnh vực như:
3.2.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ệ
mobile agents là một giải pháp rất hấp dẫn cho lĩnh vực này [LAN-98, JEN-96, FUG-98].
3.2.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 mobile agent 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. Mobile Agents for WWW Distr. DB Access (University of Cyprus), và Distributed
Query Processing via Mobile Agents (University of Maryland), DBMS [PAP-99] là những dự án
thuộc loại ứng dụng này.
3.2.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 mobile agent. 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. Weather Alarm
(University of Tromso) và JobFinder (findjobs.com), MOLE Office[BUR-98] là một trong nh ững đại
diện của loại ứng dụng này.
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 đó.
3.2.4. Giám sát và phổ biến thông tin
Các mobile agents 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 software components 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. Có thể tham khảo các dự án Banking Dartflow [CAI-96], Autopilot [FOS-99] để hiểu thêm
về loại ứng dụng này.
3.2.5. 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 agents không đồng nhất [HER-99] là một minh họa
khai thác ưu điểm này của mô hình mobile agents .
3.2.6. Quản trị hệ thống mạng
Đối với những hệ thống mạng lớn, việc chẩ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 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 [BIE-98].
3.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 [JAC-97], Mobile Agent Middlerware tại Darmouth College [GRA-96], và đề án Docking
Laptop tại University of Maryland [LAZ-98].
4. ĐÁNH GIÁ MỘT SỐ HỆ THỐNG MOBILE AGENTS
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.
4.1. Các hệ thống mobile agents
4.1.1. Aglets
Aglets [LAN-98] đượ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 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.
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. 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 [LAN-98].
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 (http://www.tabican.ne.jp) - 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.
4.1.2. Voyager
Voyager [VOY-02] 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 [AOV-01], 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.
4.1.3. Mole
Mole [STR-99] 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 [BAU-98].
Đượ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
[BAU-97], 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 [FIN-94]. 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 [FIR-96]. 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 [THE-00].
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.
4.1.4. ZEUS
Zeus [BT-03] 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 [COL-99] 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 (http://www.fipa.org). 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ó [EIT-01]. Đ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.
4.2. Các tính năng hỗ trợ của hệ thống mobile agent
Để đánh giá các tính chất của một môi trường phát triển ứng dụng agent cần chú ý nhiều đến các đặc
tính của agent: tính di động, tính tự trị và khả năng bảo mật mà môi trường hỗ trợ. Khi tiến đến mức
phối hợp hoạt động nhằm tăng hiệu quả công việc đến mức tối đa, các agent phải có khả năng thông
tin liên lạc với nhau, cộng tác, chia sẻ công việc, học hỏi lẫn nhau. Riêng đối với các nhà phát triển hệ
thống, một phương pháp luận rõ ràng và các công cụ trực quan trong bước thiết kế, cài đặt sẽ góp phần
làm tăng tốc độ phát triển hệ thống cũng như gia tăng độ tin cậy đối với sản phẩm làm ra. Vì vậy, đây
cũng là một trong những tiêu chí cần được định giá.
Tính di động (mobility) : xét khả năng môi trường hỗ trợ di động mạnh hay yếu cho agent.
Tính tự trị (autonomous): xét vai trò của môi trường về việc cung cấp các cơ chế hỗ trợ cho agent
linh động thực thi, qua đó thể hiện được tính tự trị [JEN-98].
Tính an toàn (security): cần chú ý tới 2 vấn đề: bảo vệ các host tránh các cuộc tấn công từ các agent
nguy hiểm; và bảo vệ các agent chống lại các môi trường nguy hiểm khi agent di trú [BAU-97]. Các
nguy cơ chống lại host bao gồm: agent đánh cắp thông tin của host, hoặc chiếm dụng tài nguyên hệ
thống ... Để đối phó, có thể sử dụng ngôn ngữ lập trình an toàn, cơ chế sandbox của Java chuẩn hoặc
xác nhận mã mang theo của agent. Đối với việc bảo đảm an toàn cho agent, có thể áp dụng mã hoá
thông tin agent [YOU-97], sử dụng phần cứng tin cậy [LOU-01], agent tự thực hiện kiểm tra vết thi
hành của mình [LOU-01], dùng Blackbox, dùng RASPS (Random Access Stored Program machines)
[HOH-98],...
Tính thích ứng: là khả năng hỗ trợ tính thích ứng từ phía môi trường khi tiếp nhận một agent du nhập
Khả năng cộng tác: để xem xét khả năng phối hợp hoạt động của các agent, cần lưu ý về ngôn ngữ
liên lạc, giao thức liên lạc, mô hình cộng tác mà môi trường hỗ trợ. Ngoài ra, nếu các agent của môi
trường đang xét có khả năng giao tiếp với các agent của môi trường khác hay với các loại đối tượng
khác, thì môi trường hỗ trợ cộng tác mạnh.
Phương pháp luận và công cụ phát triển agent: mô hình agent tương đối mới mẻ, nên việc hỗ trợ
các phương pháp luận giúp cho việc phân tích, thiết kế và triển khai ứng dụng cũng là một yêu cầu cần
thiết. Kèm theo các phương pháp luận này, những môi trường cung cấp bộ công cụ phát triển trực
quan luôn luôn được đánh giá cao. Việc sử dụng các công cụ trực quan sẽ giảm thiểu thời gian thiết
kế, cài đặt và gỡ rối cho ứng dụng. Đối với tất cả các hệ thống, tiêu chuẩn hỗ trợ công cụ trực quan sẽ
được chú ý ở các mức thiết kế, cài đặi và gỡ rối.
Khả năng mở rộng: các môi trường có mã nguồn mở sẽ rất có triển vọng trong việc phát triển. Việc
đầu tư nghiên cứu sẽ được tiến hành song song tại nhiều điểm và do đó môi trường sẽ có được những
tíng năng rất đa dạng và phù hợp với nhiều đối tượng sử dụng. Tuy nhiên những môi trường giữ vững
được thế đứng với một nhà phát triển sẽ đáp bảo được tính tương thích và thống nhất trong hoạt động.
4.3. So sánh các hệ thống Aglet, Mole, Voyager và Zeus
Bảng 1 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
theo các tiêu chí đề xuất ở trên.
Aglets Mole Voyager ZEUS
Tính năng cơ bản của agent
Tính di động Di chuyển yếu Di chuyển yếu Di chuyển yếu Chưa hỗ trợ
Tính tự trị Hỗ trợ đơn giản Hỗ trợ đơn giản Hỗ trợ đơn giản Hỗ trợ hoạch
định kế hoạch
Các tính năng bảo Sandbox của Mô hình Sandbox, Không có
mật Java, có thể bổ sandbox, phân Voyager
sung loại agent Security
Tính thích ứng Không hỗ trợ Không hỗ trợ Không hỗ trợ Không hỗ trợ
Khả năng giao tiếp, cộng tác
Hình thức giao tiếp Thông điệp Thông điệp, Thông điệp, Thông điệp
RPCs, session, RPCs, ORB
bage.
Ngôn ngữ giao tiếp KQML, ACL, KQML KQML, XML KQML, FIPA
XML. ACL
Giao thức truyền ATP trên nền TCP/IP TCP/IP TCP/IP
thông TPC/IP
Mô hình cộng tác Không hỗ trợ Không hỗ trợ Mô hình Space, Có hỗ trợ
Subspace
Khả năng kết hợp Không hỗ trợ Không hỗ trợ CORBA, RMI, Giao tiếp với các
với các đối tượng DCOM agent platform
khác theo chuẩn FIPA
Phương pháp luận và Công cụ hỗ trợ
Phưng pháp luận Mẫu thiết kế: Không hỗ trợ Không hỗ trợ Phân tích , thiết
itinerary, master- kế, triển khai, thi
slave hành
Công cụ xây dựng Không hỗ trợ Không hỗ trợ Không hỗ trợ Công cụ Agent
agent Generator
Công cụ quản trị TAHITI server Mole view Voyager Nameserver,
agent Management Facilitator,
Console Visualiser
Khả năng mở rộng Mã nguồn mở, Mã nguồn mở Đang được phát Mã nguồn mở ,
đang được phát triển bởi đang phát triển
triển bởi Recursion phiên bản 1.3.
SourceForge Software. Thích
hợp với những
ứng dụng thưng
mại điện tử
Bảng 1 - So sánh các môi trường Agent
5. THẢO LUẬN
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 agents đ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 [TRI-01]:
Các vấn đề kỹ thuật: Thực hiện cơ chế đi độ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ợ weak-mobility với những cơ chế chuyển dời agent
chưa được tốt. Để hỗ trợ 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 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 ở phần 1, 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 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. Ngòai 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.
6. KẾT LUẬN
Trong bài báo 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ố 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.
TÀI LIỆU THAM KHẢO
[AOV-01] Objectspace, An Overview of Voyager version 4.5, 2002
[BAU-97] J. Baumann, F. Hohl, N. Radouniklis, K. Rothermel, M.Straßer. Mole - Concepts of
a Mobile Agent System. Bericht 1997/15, Fakultät Informatik, University of
Stuttgart, Germany, August 1997.
[BAU-98] J. Baumann, F. Hohl, K. Rothermel, M. Schwehm, M.Straßer. Mole 3.0: A
Middleware for Java-Based Mobile Software Agents. Institute of Parallel and
Distributed High- Performance Systems, University of Stuttgart, Germany, 1998
[BIE-98] A. Biezczad, B. Pagurek, T. White, Mobile Agent for Network Management,
IEEE, 1998
[BT-03] British Telecommunication The Zeus Agent Building Agent Toolkit.
URL: http://www.labs.bt.com/projects/agents/zeus/
[BUR-98] C. Burger. Team Awareness with Mobile Agents in Mobile Environments.
Proceedings of IC3N’98, 1998.
[CAI-96] T. Cai, P.A. Gloor, and S. Nog. DartFlow: A Workflow Management System on
the Web Using Transportable Agents. Technical Report PCSTR96283, Dartmouth
College, May 1996.
[COL-99] J. Collis et al. The Zeus Agent Building Toolkit. Zeus Methodology
Documentation, 1999.
[EIT-01] T. Eiter, V. Mascardi. Comparing Environment Is For Development Software
Agents, March 2001
[FIN-94] T. Finin, D. McKay, R. McEntire. KQML as an Agent Communication
Language, Proceedings Of Third International Conference On Information and
Knowledge Management, ACM Press, November 1994.
[FIR-96] S. Fritzinger and M. Mueller. Java Security. Technical Report, Sun Microsystems,
Inc., 1996. URL: http://www.javasoft.com/security/whitepaper.ps
[FOS-99] S.S. Foster, D. Moore, B.A. Nebesh and M.J. Flester. Control and Management in
a Mobile Agent Workflow Architecture. Proceedings of Agents’99, 1999.
[FUG-98] A. Fuggetta, G. Vigna, Understanding Code Mobility, IEEE Transactions on
Software Engineering, 24(5):342-361, May 1998.
[GRA-96] R. S. Gray, D. Kotz, S. Nog, D. Rus, and G. Cybenko. Mobile Agents for Mobile
Computing. Technical Report TR96285, Dartmouth College, 1996.
[HER-99] R. G. Hercock, J.C. Collis, and D.T. Ndumu. Heterogeneous Mobile Agents for
Distributed Processing. Proceedings of Agents’99, 1999.
[HOH-98] F. Hohl. Model of Attacks of Malicious Hosts Against Mobile: Protecting
Mobile Agents From Malicious Hosts, 4th Workshop on Mobile Object Systems
(MOS'98):Secure Internet Mobile Computations, University of Stuttgart, June 1998.
[JAC-97] K. Jacobsen and D. Johansen. Mobile Software on Mobile Hardware Experiences
with TACOMA on PDAs. Technical Report 9732, University of Tromso, 1997.
[JEN-96] N. Jenning, M. Wooldridge, Software Agents, IEEE Review, 17-20, January 1996.
[JEN-98] N. R. Jennings, K. Sycara, M. Wooldridge, A Roadmap of Agent Research and
Development, Journal of Autonomous Agents and Multi-Agent Systems, 1(1): 275-
306, 1998.
[KOT-99] D. Kotz, R. S. Gray. Mobile Agents and the Future of the Internet. ACM
Operating Systems Review, 33(3):7-13, August, 1999.
[LAN-98] D. B. Lange, M. Oshima, Programming and Deploying Java Mobile Agents with
Aglets, Addison-Wesley, 1998.
[LAN-99] D.B. Lange, M. Oshima. Seven Good Reasons for Mobile Agents.
Communications of the ACM, 42(3):88–89, March 1999
[LAZ-98] S. Lazar and D. Sidhu. Laptop Docking Support for Mobile Agent Based
Applications. Technical Report, University of Maryland Baltimore County, 1998.
[LOU-01] S. Loureiro. Mobile Code Protection, ENST Paris / Institut Eurecom. Paris,
January 2001.
[MIL-99] D. Milojicic, Mobile agent applications, IEEE Concurrency, July-September
1999.
[PAP-99] S. Papastavrou, G. Samaras, and E. Pitoura. Mobile Agents for WWW Distributed
Database Access, Proceedings of the 15th International Conference on Data
Engineering, 1999.
[STA-90] J. W. Stamos, D. K. Gifford, Remote Evaluation, ACM Transactions on
Programming Languages and Systems, October 1990.
[STR-99] M.Straßer. Mole Software Releases. University of Stuttgart, Germany, October
1999. URL:
http://www.informatik.uni-stuttgart.de/ipvr/vs/projekte/release.html
[THE-00] Wolfgang Theilmann.Mole Projects. University of Stuttgart, Germany, March
2000.
URL:http://www.informatik.uni-stuttgart.de/ipvr/vs/projekte/projects.html
[TRI-01] A. R. Tripathi, T. Ahmed, N. Karnik. Experiences and the future challenges in
the mobile agent programming. Microprocessor and Microsystems Journal,
Elsevier, 2001.
[VOY-02] Objectspace. Voyager ORB Developer's Guide. 2002 URL:
http://www.objectspace.com ; http://www.recursionsw.com
[YOU-97] A. Young and M. Yung. Sliding Encryption: A Cryptographic Tool for Mobile
Agents. 1997.