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 trong 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.
Mobile 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. Trong các ứng dụng phân tán phát triển theo mô hình client-server truyền thống, để tích hợp thông tin từ nhiều nguồn dữ liệu khác nhau, các ứng dụng phải tạo kết nối tới nguồn dữ liệu đó và tải dữ liệu về xử lý. Như vậy phải vận chuyển lượng thông tin nhất định trên đường truyền về nơi xử lý dó đó đường truyền cũng phải tải một lượng thông tin đáng kể và dễ bị mất mát nếu đường truyền không tốt. Thực tế phía nguồn dữ liệu có thể không muốn cung cấp dữ liệu mà chỉ muốn cung cấp kết quả xử lý dữ liệu đó cho phía yêu cầu. Nếu việc tính toán kết quả được cung cấp bởi nguồn chứa dữ liệu thì dịch vụ sẽ thiếu đi tính linh động do phía yêu cầu mong muốn những kết quả khác hơn.
Cấu tạo của 1 mobile agent: gồm có 3 phần chính: Mã, trạng thái và dữ liệu.
Hình 1.14 Cấu tạo của một Mobile Agent.
Mã sẽ được thực hiện khi agent di chuyển đến một máy khác. Trạng thái dữ liệu về môi trường chạy của agent gồm con đếm chương trình và ngăn xếp thực hiện. Phần này chỉ có ở agent có khả năng di động mạnh (strong mobility). Dữ liệu gồm các biến được sử dụng bởi agent như tri thức, định danh tệp tin…
Code