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

LUẬN VĂN:SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN pdf

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 (961.9 KB, 45 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Tạ Minh Tú
SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành : Công Nghệ Thông Tin
Hà Nội - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Tạ Minh Tú
SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành : Công Nghệ Thông Tin
Cán Bộ Hướng Dẫn: PGS.TS. Nguyễn Việt Hà
Hà Nội - 2010
LỜI CẢM ƠN
Lời đầu tiên em xin được bày tỏ lòng biết ơn sâu sắc tới thầy PGS. TS. Nguyễn
Việt Hà, thầy đã tận tình dạy dỗ và hướng dẫn em trong suốt năm học vừa qua.
Em xin được bày tỏ lòng biết ơn tới các thầy, cô trong Khoa Công Nghệ Thông
Tin, trường Đại Học Công Nghệ - ĐHQGHN. Các thầy cô đã dạy bảo và luôn tạo điều
kiện học tập tốt nhất cho chúng em trong những năm học đại học đặc biệt là trong thời
gian thực hiện khóa luận tốt nghiệp.
Tôi xin cảm ơn các bạn sinh viên lớp K51CD, K51CNPM trường Đại Học Công
nghệ, những người bạn luôn bên cạnh ủng hộ tôi trong suốt những năm học đại học.
Cuối cùng con xin gửi tới bố mẹ và toàn thể gia đình lòng biết ơn và tình cảm yêu
thương nhất.
Hà Nội, ngày 10/05/2010
Tạ Minh Tú
Tóm Tắt
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.
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.
Mục tiêu chính của khóa luận đưa ra phương pháp tích hợp thông tin bằng cách sử
dụng mobile agent và áp dụng phương pháp mẫu Visitor, mang xử lý đến gần nguồn dữ
liệu khai thác thông tin mà phía cung cấp dữ liệu vẫn kiểm soát được quá trình xử lý và
đảm bảo được tính linh động của hệ thống. Do đó Server có được độ mềm dẻo tối đa vì
nó có thể thực hiện bất kì yêu cầu nào từ phía client mà vẫn đảm bảo được Client chỉ
biết kết quả mà không biết nội dung thông tin để xử lý ra kết quả, phía client chỉ có trách
nhiệm chuyển các yêu cầu của mình thành mã để có thể thi hành trên Server.
1
Mục lục
1 Giới Thiệu 7
1.1 Đặt vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Mục Tiêu Và Phạm Vi Của Đề Tài . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Cấu Trúc Khóa Luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Tìm Hiểu Về Mobile Agent Và JADE 10
2.1 Khái niệm về Mobile Agent . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Thế nào là Mobile Agent . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Cấu tạo của mobile agent . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3 Các đặc tính của mobile agent . . . . . . . . . . . . . . . . . . . . 11
2.2 Ứng dụng của mobile agents . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Các lợi thế khi sử dụng mô hình mobile agents . . . . . . . . . . 12
2.2.2 Các lĩnh vực ứng dụng tiềm năng của mobile agents . . . . . . . . 13
2.3 FIPA (Foundation for Intelligent, Physical Agents) . . . . . . . . . . . . . 14
2.3.1 Lịch sử FIPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Các khái niệm cốt lõi . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.3 Truyền thông Agent (agent communication) . . . . . . . . . . . . 16
2.3.4 Quản lý Agent (Agent management) . . . . . . . . . . . . . . . . 16
2.4 Nền tảng JADE (JADE Platform) . . . . . . . . . . . . . . . . . . . . . . 16
2
MỤC LỤC
2.4.1 JADE là gì . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2 Kiến trúc JADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.3 Biên dịch và chạy trên nền tảng Jade . . . . . . . . . . . . . . . . 19
2.4.4 Giao tiếp giữa các JADE Agent . . . . . . . . . . . . . . . . . . . 21
2.4.5 Dịch vụ di động liên nền (Inter-Platform) . . . . . . . . . . . . . . 23
2.4.6 JadeGateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3 Sử Dụng Mobile Agent Để Tích Hợp Thông Tin 25
3.1 Mô tả bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Ý tưởng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3 Các giải pháp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Giải pháp 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.2 Giải pháp 2 - áp dụng mẫu visitor . . . . . . . . . . . . . . . . . . 27
3.3.3 Các thành phần Client . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.4 Các thành phần Server . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.5 Hoạt động . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4 Ý nghĩa của phương pháp . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 Thực Nghiệm 33
4.1 Mô tả và thiết kế bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Thiết kế tổng thể . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2 Thiết kế phía Client . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.1.3 Thiết kế phía Server . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.4 Hoạt động . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2 Thực Nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.1 Cài đặt thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.2 Ý nghĩa của thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . 39
3
MỤC LỤC
5 Kết Luận 40
5.1 Kết quả thu được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Hướng nghiên cứu tiếp theo . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4
Danh sách hình vẽ
2.1 Cấu trúc cơ bản của một mobile agent . . . . . . . . . . . . . . . . . . . . 11
2.2 Mối quan hệ giữa các thành phần kiến trúc chính của jade . . . . . . . . . 17
2.3 Dịch vụ trang vàng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Cấu trúc thư mục jade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 Quá trình khởi tạo môi trường thực thi jade . . . . . . . . . . . . . . . . . 21
2.6 Giao diện quản lý agent JADE . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7 Mô hình truyền thông điệp không đồng bộ giữa các agent . . . . . . . . . 23
2.8 Di chuyển liên nền của mobile agent . . . . . . . . . . . . . . . . . . . . 24
2.9 Mô hình tương tác giữa servlet với agent thông qua JadeGateway . . . . . 24
3.1 Mẫu Visitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Cải tiến mẫu Visitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3 Mô hình sử dụng mobile agent tích hợp thông tin áp dụng mẫu Visitor . . 30
4.1 Biểu đồ UML gói thiết kế web phía Client . . . . . . . . . . . . . . . . . 34
4.2 Biểu đồ UML gói thiết kế chạy trên nền JADE phía Client . . . . . . . . . 35
4.3 Biểu đồ UML gói thiết kế chạy trên nền JADE phía Client . . . . . . . . . 36
4.4 Biểu đồ tuần tự của quá trình tích hợp thông tin . . . . . . . . . . . . . . . 37
4.5 Kết quả tích hợp thông tin dùng visitor kiểu ComputeSalaryVisitor . . . . 38
4.6 Kết quả tích hợp thông tin dùng visitor kiểu ComputeSalaryVisitor1 . . . 39

5
Bảng từ viết t ắt
Từ viết tắt Từ hoặc cụm từ
CSDL Cơ sở dữ liệu
CT Container Table
DF Directory Facilitator
FIPA Foundation for Intelligent, Physical Agents
GADT Global Agent Descriptor Table
JADE Java Agent DEvelopment Framework
LADT Local Agent Descriptor Table
MAS Multi Agent System
Bảng 1: Bảng từ viết tắt
6
CHƯƠNG 1
Giới Thiệu
1.1 Đặt vấn đề
Với tốc độ phát triển chóng mặt của mạng Internet hiện nay, mọi công việc giao
dịch, trao đổi thông tin diễn ra liên tục và phổ biến. Vấn đề đảm bảo an toàn thông tin,
và giảm lượng thông tin vận chuyển trên đường truyền luôn được ưu tiên hàng đầu đặc
biệt trong các lĩnh vực thương mại điện tử, giao dịch ngân hàng, các công việc trao đổi
thông tin của tổ chức quốc gia Hầu hết những công việc này đều được triển khai trên
các ứng dụng phân tán.
Các ứng dụng phân tán xây dựng chủ yếu dựa trên mô hình Client-Server. Một ứng
dụng được xây dựng trên nền tảng của sự kết hợp nhiều dịch vụ thành phần, mà mỗi dịch
vụ được cấu thành từ hai thành phần cốt lõi là : mã cài đặt dịch vụ và tài nguyên mà dịch
vụ đó thi hành (ví dụ CSDL, hệ thống tệp tin ). Để 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ẫn đến tỷ lệ thất thoát thông tin là cao và làm đường truyền phải tải nhiều hơn.
Thực tế, có những thông tin nhạy cảm mà Server không thể cung cấp cho Client

và chỉ muốn cung cấp kết quả xử lý từ những thông tin đó. Một giải pháp là phía Server
cài đặt sẵn các dịch vụ và khi phía Client có yêu cầu, Server sẽ gọi dịch vụ truy cập vào
CSDL xử lý và trả lại kết quả cho Client. Tuy nhiên, số dịch vụ cài đặt sẵn là có hạn mà
số yêu cầu phía Client luôn luôn thay đổi, do đó mặc dù vẫn bảo đảm được an toàn thông
tin song hệ thống thiếu đi tính mềm dẻo.
7
CHƯƠNG 1: GIỚI THIỆU
Bài toán đặt ra là đưa ra phương pháp tích hợp thông tin sao cho phía client chỉ biết
được kết quả xử lý từ những thông tin mà Server không muốn Client biết và vẫn đảm bảo
được tính mềm dẻo của hệ thống đồng thời làm giảm lượng thông tin vận chuyển trên
đường truyền.
1.2 Mục Tiêu Và Phạm Vi Của Đề Tài
Mục tiêu chính của khóa luận đưa ra phương pháp tích hợp thông tin bằng cách sử
dụng mobile agent áp dụng phương pháp mẫu Visitor, mang xử lý đến gần nguồn dữ liệu
khai thác thông tin mà phía cung cấp dữ liệu vẫn kiểm soát được quá trình xử lý đồng
thời giảm tải lượng thông tin thô mà đường truyền phải tải và đảm bảo được tính mềm
dẻo của hệ thống. Do đó Server có được độ mềm dẻo tối đa vì nó có thể thực hiện bất kì
yêu cầu nào từ phía client mà vẫn đảm bảo được Client chỉ biết kết quả mà không biết
nội dung thông tin để xử lý ra kết quả, phía client chỉ có trách nhiệm chuyển các yêu cầu
của mình thành mã để có thể thi hành trên Server.
Trong phạm vi nghiên cứu của mình, đề tài sẽ đưa ra mô hình có khả năng thực
hiện việc tích hợp thông tin nguồn dữ liệu sử dụng mobile agent sao cho vẫn đảm bảo
được tính mềm dẻo của hệ thống và an toàn thông tin. Ngoài những kết quả đó mô hình
còn đem lại các lợi ích to lớn khác như giảm tải, khắc phục độ trễ mạng, làm tăng tính
toàn vẹn dữ liệu do một dữ liệu lớn không phải di chuyển trên đường truyền.
1.3 Cấu Trúc Khóa Luận
Chương 2 giới thiệu về một số khái niệm lý thuyết và công nghệ được sử dụng
trong nghiên cứu và là cơ sở để xây dựng mô hình. Chương này sẽ trình bày về hai khái
niệm chính là Agent và JADE. Agent được sử dụng như là nền tảng để đưa ra ý tưởng
thiết kế mô hình tích hợp thông tin. JADE là một nền tảng được dùng để phát triển các

hệ thống Agent, trong nghiên cứu này, phần thực nghiệm được triển khai dựa trên nền
tảng JADE.
Chương 3 mô tả cụ thể về bài toán sử dụng mobile agent để tích hợp thông tin, và
được miêu tả cụ thể từ ý tưởng ban đầu, giải pháp cụ thể cho đến mô hình chi tiết để giải
quyết bài toán. Phân tích ý nghĩa thực tế của mô hình.
8
CHƯƠNG 1: GIỚI THIỆU
Chương 4 trình bày về cài đặt và thực nghiệm dựa trên mô hình đã đưa ra ở chương
3. Thực nghiệm này là một ứng dụng tích hợp thông tin, phía Client muốn thống kê một
số kết quả dựa trên danh sách lương nhân viên của một công ty, phía server chứa dữ liệu
về lương nhân viên song không muốn client biết được lương cụ thể của từng nhân viên.
Chương 5 tổng kết những gì đã đạt được sau quá trình nghiên cứu, đồng thời đưa
ra những hạn chế cần phải cải thiện, từ đó đưa ra hướng nghiên cứu tiếp theo.
9
CHƯƠNG 2
Tìm Hiểu Về Mobile Agent Và JADE
Trong chương này, chúng ta sẽ tìm hiểu về khái niệm mobile agent, các ứng dụng
và lợi ích khi áp dụng trong thực tế, cuối cùng là nền tảng JADE để phát triển agent.
2.1 Khái niệm về Mobile Agent
2.1.1 Thế nào là Mobile Agent
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.
Di động là một trong các thuộc tính không bắt buộc của các agent, nghĩa là không
phải tất cả các agent đều di động. Một agent có thể chỉ nằm ở một chỗ và trao đổi với
môi trường xung quanh theo các phương thức đã được quy ước.
2.1.2 Cấu tạo của mobile agent
Cấu tạo của một mobile agent gồm 3 phần : mã, trạng thái và dữ liệu. Mã sẽ được

thực hiện khi agent di chuyển đến một máy khác. Trạng thái là dữ liệu về môi tườ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ó
10
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
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
Hình 2.1: Cấu trúc cơ bản của một mobile agent
2.1.3 Các đặc tính của mobile agent
• 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-
or iented) 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.
11
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
2.2 Ứng dụng của mobile agents
2.2.1 Các lợi thế khi sử dụng mô hình mobile agents

• 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ý.
• 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.
• Đó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.
• 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ề.
• 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.
12
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE

• 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.
• 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.
2.2.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. 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ư:
• 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.
• 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.
• 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.

13
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
Sau đó, khi nguồn tin có sự thay đổi , agent sẽ quay về báo cho chủ nhân. Weather
Alar m (University of Tromso) và JobFinder (findjobs.com), 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 đó.
• 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.
• 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.
• 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
• 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.
2.3 FIPA (Foundation for Intelligent, Physical Agents)

Phần này sẽ giới thiệu một cách tổng quát về lịch sử phát triển và nội dung chính
của các đặc tả FIPA. Tập hợp đầy đủ các đặc tả của FIPA có thể được tìm thấy trên trang
14
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
web chính thức của FIPA.
2.3.1 Lịch sử FIPA
FIPA được thành lập năm 1996 như là một tổ chức phi lợi nhuận quốc tế với mục
tiêu phát triển tập hợp các chuẩn liên quan đến công nghệ phần mềm Agent. Các thành
viên ban đầu, tập hợp của các tổ thức nghiên cứu và công nghiệp, đưa ra một tập hợp các
quy chế hướng dẫn sản xuất cho một tập hợp các đặc tả chuẩn de jure [2] dành cho công
nghệ phần mềm Agent. Ở thời điểm này, các phần mềm Agent đã được biết đến rộng rãi
trong giới khoa học nhưng nhận được rất ít sự quan tâm của các tổ chức thương mại.
Những người đứng đầu đã đồng ý cho sản xuất các chuẩn có thể tạo ra một nền
tảng cứng của một kỹ thuật mới bằng cách sử dụng chéo một lượng lớn các ứng dụng.
Cốt lỗi của FIPA sẽ theo tập hợp các nguyên lý:
• Các Công nghệ Agent cho phép một mô hình mới để giải quyết các vấn đề cũ và
mới.
• Các công nghệ Agent sẽ tiến đến cấp độ trưởng thành lớn.
• Để sử dụng được, các công nghệ Agent cần phải có đặc tả.
• Đặc tả của công nghệ tiến hoá được đưa ra để hỗ cung cấp các kết quả thu được
bởi đặc tả fora.
• Đặc tả của cơ chế bên trong các Agent không phải mối quan tâm chính, mà là cơ
sở hạ tầng và ngôn ngữ yêu cầu cho khả năng phối hợp mở.
2.3.2 Các khái niệm cốt lõi
Trong suốt quá trình phát triển của FIPA, rát nhiều các ý tưởng liên quan đến Agent
đã được đưa ra. Nhiều ý tưởng đã tiến tới việc thực hiện sau khi được đưa ra thành các
chuẩn, một vài ý tưởng vẫn đang được phát triển nhưng chưa hoàn thành, và có những
cái khác đã thật bại vì một hoặc nhiều lý do. Trong tất cả các ý tưởng đó, những phần
quan trọng nhất là truyền thông Agent, quản lý Agent và kiến trúc Agent. Phần này sẽ
giới thiệu về hai trong số ba phần quan trọng nhất đó.

15
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
2.3.3 Truyền thông Agent (agent communication)
Agent về cơ bản là hình thái của quá trình phân phối mã nguồn và do đó tuân theo
khái niệm cổ điển của mô hình phân phối tính toán theo hai phần: các thành phần và
các kết nối. Các thành phần là những khách hàng, những nhà sản xuất và những người
điều hành của các thông điệp truyền thông thông qua các kết nối. Phần thân của các
chuẩn đầu tiên như là ISO hay IETF lựa chọn một cách tiếp cận hướng mạng trong việc
phát triển các cụm các giao thức được phân lớp dựa phần lớn trên truyền thông máy tính
chúng ta đã biết – mô hình OSI và mô hình TCP/IP. Cả hai đều được tận dụng thông qua
giao tiếp giữa các phần mềm ứng dụng giao thức.
2.3.4 Quản lý Agent (Agent management)
Để bổ sung cho truyền thông, khía cạnh cơ bản thứ hai của các hệ thống Agent
được tạo ra bởi các đặc tả ban đầu của FIPA là quản lý Agent: một nền tảng chuẩn trong
đó các chuẩn FIPA cho Agent có thể tồn tại, tổ chức và quản lý. Nó thành lập cá mô hình
lôgíc tham chiếu cho việc khởi tạo, đăng ký, xác định vị tr í, di trú và tổ chức các Agent.
2.4 Nền tảng JADE (JADE Platform)
Phần này sẽ đưa ra cái nhìn tổng quan cơ bản về nền tảng JADE (Java Agent
Development framework) và các thành phần chính trong kiến trúc của nó.
2.4.1 JADE là gì
JADE (Java Agent DEvelopment Framework) là một framework phần mềm được
cài đặt hoàn toàn bằng ngôn ngữ JAVA nhằm mục đích đơn giản hóa việc cài đặt các hệ
thống đa agent. Môi trường JADE gồm có :
• Một môi trường thực thi được cài đặt trên máy để các agent có thể làm việc.
• Một bộ công cụ cho phép theo quản lý và theo dõi hành vi của các agent đang hoạt
động.
16
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
• Thư viện lớp cho phép lập trình viên sử dụng (dùng trực tiếp hoặc kế thừa) để phát
tr iển các agent.

2.4.2 Kiến trúc JADE
Hình 2.2: Mối quan hệ giữa các thành phần kiến trúc chính của jade
Hình 2.2 trên chỉ ra các thành phần chính của kiến trúc JADE platform. JADE
platform bao gồm các container agent được phân phối trên mạng. Mỗi một thể hiện của
môi trường thực thi JADE được gọi là một Container dùng để chứa các agent, agent
sống trên các container, các container này cung cấp JADE run-time và tất cả các dịch
vụ cần thiết cho việc lưu và chạy các agent. Có một container đặc biệt là main container
(container chính) luôn chạy trên một platform và biểu diễn điểm chương trình khởi động
của một platform : nó là container đầu tiên khởi động và tất cả các container khác phải
tham gia vào một main container bằng cách đăng kí với main container.
Lập trình viên định danh các container bằng cách sử dụng một tên logic; mặc định
main container có tên là "Main Container" trong khi các container khác được đặt tên là
"Container-1", "Container-2",
Như một điểm khởi động của chương trình, main container có các nhiệm vụ đặc
biệt sau :
17
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
• Quản lý container table (CT), bảng này là đăng ký của các tham chiếu đối tượng
và địa chỉ vận chuyển của tất cả các node container của platform;
• Quản lý bảng mô tả agent toàn cục (global agent descriptor table – GADT), bảng
này là đăng ký của tất cả các agent hiện tại trong platform, gồm các trạng thái và
vị trí của nó.
• AMS agent là một agent đặc biệt, cung cấp dịch vụ quản lý agent và white page.
• DF agent cung cấp dịch vụ default yellow page của platform.
Một truy vấn chung có thể là main-container hoặc một trở ngại của hệ thống. trong
thực tế điều này không phải là trường hợp khi JADE cung cấp một cache của GADT mà
mỗi container quản lý một cách cục bộ. các thao tác Platform, trong trường hợp tổng quát,
không bao gồm main-container, nhưng thay vào chỉ cache cục bộ và hai container lưu
giữ agent, các agent này là đối tượng của thao tác (ví dụ : agent gửi và nhận của thông
điệp). Khi một container phải tìm ra địa chỉ của agent nhận thông điệp được gửi, đầu

tiên container tìm kiếm bảng mô tả agent cục bộ LADT của nó (local agent descriptor
table).bởi vì hệ thống là động (agent có thể di chuyển, kết thúc, hoặc agent mới có thể
xuất hiện, thi thoảng hệ thống có thể sử dụng một giá trị cache sinh ra kết quả trong một
địa chỉ không hợp lệ. Trong trường hợp này, container nhận một ngoại lệ và buộc phải
làm tươi cache của nó. Quy ước thay thế bộ nhớ cache là LRU (Least recently used –
sử dụng gần đây ít nhất) , được thiết kế để tối ưu hóa các cuộc trao đổi dài hơn là thỉnh
thoảng, các cuộc trao đổi thông điệp đơn giản thực tế ít có trong ứng dụng multi-agent.
Định danh agent được chứa bên trong một Agent Identifier (AID), bao gồm một
tập các slot tuân theo cấu trúc và ngữ nghĩa được định nghĩa bởi FIPA. Hầu hết thành
phần cơ bản của AID là tên của agent và địa chỉ của nó. Tên của một agent là một định
danh duy nhất trong toàn cục được JADE xây dựng bằng cách nối với một nickname do
người dùng định nghĩa (cũng được biết đến như một tên cục bộ đủ để có nghĩa trong giao
tiếp bên trong một platform (intra-platform) đối với tên của platform. Địa chỉ của agent
là địa chỉ giao vận được kế thừa từ platform, nơi mỗi địa chỉ platform tương ứng với một
giao thức giao vận thông điệp (MTP – Message Transport Protocol) điểm cuối nơi mà
các thông điệp FIPA có thể được gửi và nhận. Lập trình viên agent cũng được cho phép
để thêm các địa chỉ giao vận của chính họ vào AID, cho một vài mục đích riêng của ứng
dụng.
Khi main-container khởi động, có 2 agent đặc biệt được khởi tạo và chạy bởi JADE,
vai trò của chúng như sau
18
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
1. AMS agent : Hệ thống quản lý Agent (AMS – Agent Management System) là một
agent giám sát toàn bộ platform. Là điểm liên lạc cho tất cả các agent cần tương tác
để truy cập white pages của platform cũng như để quản lý vòng đời của nó. Mọi
agent được yêu cầu đăng ký với AMS (thực hiện một cách tự động bởi JADE lúc
agent bắt đầu) để đạt được một AID hợp lệ
2. DF Agent:Dịch vụ trang vàng trong JADE (hình 2.3), tuân theo đặc tả quản lý
Agent của FIPA, được cung cấp bởi một agent đặc biệt gọi là DF (Directory Facili-
tator). Mọi platform theo chuẩn FIPA đều chứa một DF agent (tên cục bộ của agent

này là df<platform-name>). Một "yellow pages" – trang vàng cho phép agent công
bố các mô tả của một hoặc nhiều dịch vụ mà nó cung cấp để các agent khác có thể
dễ dàng tìm ra và khai thác một cách dễ dàng. Xem hình mình họa ta có thể thấy
các agent A1, A2, A3 đăng ký với DF agent các dịch vụ mình cung cấp, các agent
A4, A5 tìm kiếm dựa vào DF agent và khai thác dịch vụ từ các agent A1, A2, A3.
Hình 2.3: Dịch vụ trang vàng
2.4.3 Biên dịch và chạy trên nền tảng Jade
Tất cả các phần mềm liên quan đến JADE đều có thể tải về từ trang web chính thức
của JADE. Các phần mềm liên quan đến JADE có thể chia thành hai loại: bản phân phối
chính và các bản phụ trợ. Các bản phụ trợ trong mỗi bản riêng biệt đều có chứa các đơn
vị (module) thực thi các phần mở rộng riêng biệt như các mã hoá cho ngôn ngữ gọi là
addons.
Bản phân phối chính bao gồm năm file đã được nén là:
19
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
• jadeBin.zip chứa một file jar là nền tảng JADE đã được biên dịch và sử dụng được
ngay
• jadeDoc.zip chứa các tài liệu bao gồm: Hướng dẫn cho người quản trị (Administra-
tor Guide), Hướng dẫn cho người lập trình (Programmer Guide). Các tài liệu này
cũng có thể tải về từ trang web chính thức của JADE
• jadeExamples.zip chứa các mã nguồn của rất nhiều ví dụ
• jadeSrc.zip chứa tất cả các mã nguồn của JADE
• jadeAll.zip chứa tất cả 4 file nói trên
Nếu tất cả các file trên được tải xuống và giải nén thì cấu trúc thư mục sẽ giống
như miêu tả ở hình 2.4.
Hình 2.4: Cấu trúc thư mục jade
Thư mục jade/lib chứa tất cả các file jar cần phải được khai báo vào java CLASS-
PATH để chạy JADE. CLASSPATH được khai báo như sau :
• Vào thiết lập tham biến môi trường (trong windows xp có thể thực hiện bằng cách
vào system properties (window + pause) -> tab advanced, envinronment variables)

tạo tham biến mới JADE_HOME với giá trị là c:\jade - thư muc jade đặt trong ổ
20
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
C. Hoặc có thể dùng lệnh : prompt> set JADE_HOME=c:\jade (chỉ có tác dụng 1
lần).
• Tạo tham biến CLASSPATH với giá trị là:
.;%JADE_HOME%\add-ons\migration\lib\migration.jar;
%JADE_HOME%\classes;%JADE_HOME%;
%JADE_HOME%\lib\jade.jar;
%JADE_HOME%\lib\jadeTools.jar;
%JADE_HOME%\lib\http.jar;
%JADE_HOME%\lib\iiop.jar;
%JADE_HOME%\lib\commons-codec\commons-codec1.3.jar;
%JADE_HOME%\classes trong đó migration.jar là gói addons cung cấp dịch vụ
di động cho các agent.
Sau đó có thể khởi động JADE với đồ hoạ bằng cách sử dụng lệnh:
prompt> java jade.Boot –gui
màn hình sẽ có kết quả như hình 2.5 và 2.6:
Hình 2.5: Quá trình khởi tạo môi trường thực thi jade
2.4.4 Giao tiếp giữa các JADE Agent
Giao tiếp giữa các agent là một trong những tính chất cơ sở nhất của JADE được
đặc tả theo chuẩn FIPA.
21
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
Hình 2.6: Giao diện quản lý agent JADE
Mô hình giao tiếp giữa các agent dựa trên quá trình truyền thông điệp không đồng
bộ. Vì vậy mỗi agent sẽ có một hòm thư hay hàng đợi thông điệp agent, nơi mà Môi
trường thực thi JADE gửi các thông điệp từ những agent khác gửi tới. Bất cứ khi nào một
thông điệp được gửi vào hòm thư, agent sẽ được thông báo có thông điệp đến. Sau khi
agent lấy thông điệp ra việc đọc, xử lý ra sao lại là do lập trình viên quyết định.

Định dạng riêng của thông điệp trong JADE tuân theo cấu trúc định nghĩa chuẩn
FIFA-ACL. Mỗi thông điệp sẽ gồm các trường sau :
• sender Người gửi thông điệp
• receivers Danh sách người nhận
• Hành vi giao tiếp (communicative act cũng được gọi là perfomative) chỉ ra phía gửi
muốn hướng tới mục đích gì. Ví dụ, nếu perfomative là REQUEST (yêu cầu) thì
người gửi muốn người nhận thực hiện một hành động, nếu là INFORM (thông báo)
thì phía gửi muốn thông báo với bên nhận về một điều gì đó. Nếu là PROPOSE
hoặc CFP (Call For Proposals) thì phía gửi muốn đàm phán với bên nhận.
• content Nội dung gồm các thông tin thực được trao đổi bởi thông điệp.
• content language ngôn ngữ nội dung chỉ ra cú pháp sử dụng để diễn đạt nội dung.
cả phía gửi và nhận đều phải giải mã và chuyển đổi nội dung với cú pháp phù hợp
để việc giao tiếp trở nên hiệu quả.
• ontology chỉ ra từ vựng các ký tự sử dụng trong nội dung. Cả bên gửi và nhận đều
phải quy về cùng một nghĩa đối với các kí tự này cho việc giao tiếp thêm hiệu quả.
22

×