Một đặc tính rất mạnh của mobile agent mà ta biết đó là 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 .
45 trang |
Chia sẻ: lylyngoc | Lượt xem: 2803 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Luận văn Sử dụng mobile agent để tích hợp thông tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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-
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.
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
Alarm (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
triể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). 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
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
• Một vài trường khác để điều khiển việc giao tiếp với nhiều agent cùng lúc và chỉ
định thời gian cho việc nhận và hồi đáp thông điệp như conversation-id, reply-with,
in-reply-to và reply-by.
Một thông điệp trong JADE được cài đặt như một đối tượng của lớp jade.lang.
acl.ACLMessage cung cấp các phương thức get và set cho phép truy cập tất cả các
trường dữ liệu trong cấu trúc FIPA ACL. Tất cả các performative định nghĩa trong đặc tả
FIPA đều ánh xạ đến các ràng buộc trong lớp ACLMESSAGE.
Hình 2.7: Mô hình truyền thông điệp không đồng bộ giữa các agent
2.4.5 Dịch vụ di động liên nền (Inter-Platform)
Gói thư viện migration.jar được cộng đồng phát triển cho môi trường JADE bổ
sung.
Một agent bất kì có thể di chuyển từ container này sang container khác trong một
platform thông qua dịch vụ di động agent gọi là bên trong nền (Intra-Platform) được cung
cấp bởi jade. Tuy nhiên nếu muốn di chuyển liên nền (Inter-Platform) tức từ platform này
sang platform khác, cần phải bổ sung thêm addon cho môi trường jade là dịch vụ agent
di động liên nền.
Dịch vụ liên nền được thiết kế và cài đặt để cung cấp khả năng di động platform
đến platform cho JADE agent. Dịch vụ này được xây dựng và không thể sử dụng đối với
lập trình viên agent, theo chiều hướng đó, lập trình viên sẽ di chuyển agent dễ dàng qua
các platform như việc di chuyển qua các JADE container.
Ý tưởng cơ bản của dịch vụ này là dựa trên các thông điệp FIPA ACL. các thông
điệp được gửi giữa các AMS agent. hình minh họa 2.8 cho thấy quá trình di chuyển của
một agent từ platform đến platform khác.
23
CHƯƠNG 2: TÌM HIỂU VỀ MOBILE AGENT VÀ JADE
Hình 2.8: Di chuyển liên nền của mobile agent
2.4.6 JadeGateway
Là một lớp cung câp sẵn trong JADE, Cho phép tương tác giữa môi trường web
servlet với môi trường jade agent. Trong hình 2.9 servlet tương tác với pong agent (là một
agent đang chạy trong môi trường JADE) thông qua một Gateway Agent, agent này được
tạo bởi JadeGateway. Gateway Agent trao đổi với servlet bằng đối tượng BlackBoard.
Hình 2.9: Mô hình tương tác giữa servlet với agent thông qua JadeGateway
24
CHƯƠNG 3
Sử Dụng Mobile Agent Để Tích Hợp
Thông Tin
Chương này trình bày chi tiết về bài toán đặt ra và ý tưởng để giải quyết bài toán
đó. Cuối cùng là mô hình chi tiết dựa trên các giải pháp đưa ra để giải quyết bài toán.
3.1 Mô tả bài toán
Như đã đặt vấn đề ở chương 1 về sự hạn chế của việc tích hợp thông tin theo mô
hình Client-Server truyền thống, trên thực tế có những thông tin nhạy cảm không thể
cung cấp cho Client mà 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 linh động.
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 những thông
tin này và vẫn đảm bảo được tính linh động của hệ thống.
25
CHƯƠNG 3: SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN
3.2 Ý tưởng
Một đặc tính rất mạnh của mobile agent mà ta biết đó là 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 .
Ngoài ra các agent có thể gửi cho nhau các thông điệp hoặc đối tượng, một mobile
agent khi di chuyển sang máy khác, các ClassLoader của máy đích sẽ tải những lớp mà
mobile agent khi mang sang Server sử dụng đến.
Xuất phát từ những cơ sở lý thuyết về mobile agent, tôi đã đưa ra ý tưởng giải quyết
bài toán bằng cách sử dụng mobile agent.
3.3 Các giải pháp
3.3.1 Giải pháp 1
Thay vì việc truyền dữ liệu từ máy chủ dữ liệu đến máy Client xử lý, sử dụng mobile
agent mang mã nguồn đến máy chứa dữ liệu và xử lý ngay ở máy chủ dữ liệu, sau đó
mobile agent mang kết quả về Client.
Như vậy việc áp dụng mobile agent đã đáp ứng được một yêu cầu của bài toán là
tính linh động của hệ thống. Phía Server cung cấp dịch vụ dữ liệu, phía Client có thể đưa
ra cách xử lý dữ liệu khác nhau. ví dụ : Client muốn liệt kê danh sách các sinh viên được
học bổng. Thời gian sau Client lại muốn thống kê danh sách sinh viên được học bổng
và cả con nhà chính sách cộng số tiền lại, tính tổng số tiền nhận được, tổng số tiền phải
chi. Bài toán đã trở nên phức tạp hơn nhiều đòi hỏi việc xử lý dữ liệu cũng phức tạp hơn.
Client sẽ viết các mobile agent và gửi đến Server để xử lý và mang kết quả về. Cho dù
yêu cầu phía client có thay đổi sao đi chăng nữa hệ thống vẫn đảm bảo được tính ổn định
và mềm dẻo tối đa.
Mặc dù đã đạt được mục tiêu đảm bảo được tính linh động của hệ thống song giải
pháp này lại chưa giải quyết được yêu cầu về an toàn dữ liệu của bài toán. Bởi mobile
26
CHƯƠNG 3: SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN
agent mang mã xử lý tới các nguồn dữ liệu và xử lý thông tin, tuy nhiên nếu thông tin
được gửi trực tiếp cho mobile agent xử lý sẽ dẫn đến việc làm lộ thông tin do mobile
agent có khả năng di chuyển từ nơi này đến nơi khác hoặc trao đổi thông tin với các agent
ở máy khác. Như vậy phải có cơ chế nào đó để khi mobile agent gửi yêu cầu thì bên phía
Server chạy được đoạn mã xử lý của mobile agent mà không gửi thông tin quan trọng
của cho Mobile Agent.
3.3.2 Giải pháp 2 - áp dụng mẫu visitor
Giải pháp này cải tiến của giải pháp 1, phía Server có các agent dịch vụ chạy sẵn,
mobile agent từ client chạy sang sẽ tìm kiếm các agent tương ứng với dịch vụ mà mình
đang cần, sau đó gửi mã và các thông tin cần thiết để agent bên phía Server kiểm tra và
thực hiện xử lý sau đó trả lại kết quả, mobile agent nhận được kết quả có thể tiếp tục di
chuyển sang máy khác chứa dữ liệu để tích hợp thông tin cần thiết hoặc quay về client
trả kết quả cho người dùng.
Tuy nhiên cơ chế gửi nhận mã giữa mobile agent và agent dịch vụ phải được cài
đặt sao cho hệ thống vẫn phải đảm bảo được tính mềm dẻo. Nếu mobile agent chứa thuật
toán và gửi trực tiếp cho agent dịch vụ xử lý. như vậy cứ mỗi lần có thêm một yêu cầu
mới, phía client lại viết thêm một mobile agent mới, cài đặt lại các quá trình làm việc
(tương tác với web/application server, với agent dịch vụ, di chuyển . . . ) sẽ dẫn đến tốn
kém về mặt thời gian lẫn công sức. Mặt khác nếu mobile agent gửi mã, thông tin định
danh . . . cho agent dịch vụ dẫn đến quá trình giao tiếp giữa 2 agent sẽ phức tạp. Ý tưởng
sử dụng mẫu Visitor sẽ gói thuật toán và các thông tin định danh vào các đối tượng
visitor, khi các yêu cầu thay đổi chỉ visitor thay đổi, mobile agent không thay đổi mặt
khác việc xử lý sẽ dễ dàng hơn.
Về mẫu Visitor Mẫu visitor 3.1 cho phép thêm một phương thức mới trên tập các đối
tượng không đồng nhất về kiểu của một cấu trúc mà không cần phải sửa đổi các lớp của
các đối tượng bên trong cấu trúc đó.
Áp dụng mẫu visitor vào bài toán hiện tại, với mỗi phương thức là một phép xử lý
mới, cấu trúc đối tượng tương ứng với tập các dịch vụ phía server ta có thể thấy khi thêm
phép xử lý mới hệ thống vẫn đảm bảo giữ nguyên các dịch vụ tức là đạt được độ mềm
dẻo tối đa.
27
CHƯƠNG 3: SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN
Hình 3.1: Mẫu Visitor
Một vài đặc điểm khi sử dụng mẫu Visitor
1. Visitor làm cho việc thêm một phương thức mới trở nên dễ dàng bằng cách thêm
một visitor mới. Ngược lại, nếu không sử dụng mẫu này việc mở rộng thêm các
chức năng cho các lớp đòi hỏi phải sửa các lớp và định nghĩa một phương thức
mới.
2. Một Visitor tập hợp các phương thức liên quan và tách dời các phương thức không
liên quan đến nhau. Các phương thức liên quan tới nhau không mở rộng ra trên các
lớp định nghĩa cấu trúc đối tượng, mà điều này được thực hiện trong visitor. Tập
các phương thức không liên quan được phân chia ra các lớp con (subclass) visitor.
Điều này làm đơn giản hóa việc định nghĩa cả các lớp thành phần (các lớp Node)
và thuật toán được định nghĩa trong các lớp visitor. Một vài cấu trúc dữ liệu thuật
toán đặc biệt có thể được ẩn trong visitor.
3. Việc thêm lớp mới ConcreteElement là khó khăn. mẫu Visitor làm cho khó có
thể thêm một lớp con (subclass) của mỗi Element trong object structure. Mỗi lớp
ConcreteElement mới làm tăng thêm một phương thức ảo trong lớp Visitor và một
cài đặt tương ứng trong mọi lớp ConcreteElement. Dựa vào
4. Biểu đồ lớp hình 3.1 ta có thể thấy nếu thêm một lớp ConcreteElementC cài
kế thừa lớp Element thì trong lớp Visitor phải thêm hàm ảo VisitConcreteEle-
28
CHƯƠNG 3: SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN
mentC(ConcreteElementC) tương ứng như với ConcreteElementA và ConcreteEle-
mentB, khi đó các lớp ConcreteVisitor1 và ConcreteVisitor2 phải cài đặt phương
thức VisitConcreteElementC(ConcreteElementC). Đôi khi có thể cài đặt mặc định
phương thức trong Visitor và tất cả các lớp ConcreteVisitor chỉ việc kế thừa, nhưng
điều đó giống như một ngoại lệ hơn là quy luật
Do vậy mấu chốt để áp dụng mẫu Visitor là hoặc hầu như phải thay đổi thuật
toán áp dụng trên một object structure hoặc là thay đổi các lớp của các đối tượng
tạo nên cấu trúc đó. Cấu trúc cây của lớp Visitor khó có thể bảo toàn khi có lớp
mới ConcreteElement được thêm vào một cách thường xuyên. Trong các trường
hợp này, sẽ dễ hơn nếu chỉ định nghĩa các phương thức trên các lớp tạo nên cấu
trúc. Nếu cấu trúc lớp Element là cố định, bạn có thể thêm một cách liên tục các
phương thức hoặc thay đổi thuật toán, khi đó mẫu Visitor sẽ giúp bạn quản lý sự
thay đổi.
Áp dụng mẫu Visitor Dựa vào những điểm mạnh và hạn chế của mẫu Visitor, hình
3.2 cải tiến mẫu visitor để áp dụng vào bài toán hiện tại. Mô hình mới đã tách bạch
Service và Visitor với Agent. Đồng thời cũng đáp ứng được yêu cầu của bài toán.
Hình 3.2: Cải tiến mẫu Visitor
Như vậy Mô hình gồm hai thành phần chính là Client và Server. Server là các máy
29
CHƯƠNG 3: SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN
chủ chứa dữ liệu và cài các agent quản lý chạy trên nó. Client thực chất là một máy chủ
phục vụ người dùng (có thể là một web server hoặc application server) nhưng đóng vai
trò là Client đối với máy chủ dữ liệu, Client được cài đặt sẵn các mobile agent để đợi yêu
cầu.
Trong bài toán này, các mobile agent sẽ trao đổi với các agent dịch vụ bằng các
đối tượng Visitor, đối tượng visitor có nhiều kiểu, mỗi kiểu được cài đặt thuật toán khác
nhau từ phía client, mobile agent mang theo loại visitor nào là phụ thuộc vào yêu cầu,
visitor này được gửi tới agent quản lý bên phía máy chủ dữ liệu. Ngoài thuật toán, visitor
mang theo thông tin xác thực để khi mobile agent gửi visitor cho agent dịch vụ, agent
dịch vụ sẽ kiểm tra thông tin xem có quyền nào, có thể quyền lấy toàn bộ thông tin hoặc
quyền được xử lý những thông tin nhưng chỉ nhận kết quả tính toán chứ không được lấy
thông tin đó.
Hình 3.3: Mô hình sử dụng mobile agent tích hợp thông tin áp dụng mẫu Visitor
3.3.3 Các thành phần Client
Gồm 2 phần chính là web server (Hoặc application server) và các mobile agent :
30
CHƯƠNG 3: SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN
• Web Server : là trung gian giữa người dùng và mobile agent, thông qua web server
người dùng mobile agent mang theo các visitor sang Server để tích hợp thông tin.
• Mobile Agent : có khả năng di động tới các máy chủ và giao tiếp với các agent
khác. mobile agent mang các đối tượng visitor theo, mỗi visitor chứa thông tin xác
thực và mã xử lý dữ liệu. mỗi visitor đều có phương thức visit mà tham số là đối
tượng Service, tùy vào loại Service sẽ có các kiểu visit khác nhau, phương thức
visit này được Service gọi khi mà dịch vụ chấp nhận (accept) một visitor.
3.3.4 Các thành phần Server
Gồm hai phần chính Agent dịch vụ và Dữ liệu :
• Agent Dịch vụ : Các agent này là thực thể của lớp Agent cài đặt giao diện Service.
Trong mẫu Visitor, mỗi service đề có phương thức verify và accept, phương thức
verify để xác thực quyền của một visitor truy cập CSDL.
• Dữ liệu : có thể là CSDL hoặc hệ thống các tệp tin ...
3.3.5 Hoạt động
Người dùng tương tác với web server (hoặc application server) thông qua giao diện,
tùy vào yêu cầu người dùng hệ thống sẽ sinh ra các yêu cầu khác nhau gửi đến mobile
agent, mobile agent tạo ra visitor phù hợp với yêu cầu nhận được sau đó di chuyển đến
máy có các dịch vụ tương ứng.
Mobile agent sau khi di chuyển từ client sang server sẽ tìm kiếm các agent cung
cấp các dịch vụ, sau đó mobile agent gửi đối tượng visitor sang agent dịch vụ, agent dịch
vụ sẽ xác thực (thông qua phương thức verify) visitor xem có quyền hay không, nếu đủ
quyền truy cập thì agent dịch vụ sẽ chấp nhận (thông qua phương thức accept) visitor
và cho phép visitor thực hiện các tính toán bằng cách gọi phương thức visit của visitor
mà tham biến đưa vào chính là agent dịch vụ. Tiếp theo agent dịch vụ sẽ kiểm tra kết
quả xử lý xem có hợp lệ không sau đó tạo một visitor khác chứa kết quả rồi gửi lại cho
mobile agent. mobile agent nhận được kết quả di chuyển đến máy khác để tiếp tục tích
hợp thông tin hoặc quay lại client và trả kết quả cho người dùng. Như vậy ta có thể thấy
được :
31
CHƯƠNG 3: SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN
1. Mỗi mobile agent đến, muốn sử dụng dịch vụ phải có thông tin xác thực để phía
client kiểm tra xem có đủ quyền hay không.
2. Các thuật toán xử lý dữ liệu đều được cài đặt bởi mobile agent mang đến.
3. Mobile agent không hề biết đến nội dung dữ liệu được xử lý mà chỉ biết duy nhất
kết quả
4. Dữ liệu trả về sẽ được agent dịch vụ kiểm tra tính hợp lệ trước khi gửi cho mobile
agent.
3.4 Ý nghĩa của phương pháp
Như vậy, với việc kết hợp sử dụng mobile agent và áp dụng mẫu Visitor bài toán
đặt ra đã được giải quyết. Mặt khác mô hình còn đem lại rất nhiều ý nghĩa quan trọng
trong thực tiễn :
1. Do mobile agent mang xử lý đến Server để thực thi nên thuật toán được cài đặt
hoàn toàn bên phía client vì vậy hệ thống đạt được độ mềm dẻo tối đa.
2. Mỗi mobile agent gói thuật toán và các thông tin xác thực gửi sang agent dịch vụ
xác thực và thực thi thuật toán nên mobile agent hoàn toàn không biết được các
thông tin mà agent dịch vụ phía máy chủ dữ liệu cung cấp.
3. Vì không phải tải một lượng thông tin thô cần thiết để xử lý trên đường truyền như
mô hình cổ điển nên băng thông đường truyền cũng tốt hơn và việc mất mát thông
tin trên đường truyền sẽ thấp hơn.
4. Các xử lý được thực hiện phía máy chủ dữ liệu do đó có thể giảm tải cho máy
Client nếu nó đóng vai trò Server cho một máy khác.
5. Mô hình không chỉ áp dụng đối với bài toán quản lý dữ liệu mà trong nhiều kiểu
dịch vụ khác vẫn đem lại hiệu quả cao.
32
CHƯƠNG 4
Thực Nghiệm
Để chứng minh tính khả thi của mô hình Sử dụng mobile agent kết hợp mẫu Visitor
để tích hợp thông tin ở chương 3, ở chương này Tôi sẽ xây dựng một thực nghiệm về sử
dụng mobile agent để tích hợp thông tin.
4.1 Mô tả và thiết kế bài toán
Chương trình là một ứng dụng web đơn giản có chức năng đưa ra các thống kê về
lương nhân viên của công ty. Điểm đặc biệt là có nhiều dạng thống kê và bên phía thống
kê không hề biết được lương cụ thể của từng nhân viên là bao nhiêu. Tùy vào lựa chọn
của người dùng chương trình sẽ đưa ra các kiểu thống kê ví dụ lương trung bình, tổng
lương, 5 nhân viên có lương cao nhất (nhưng không cho biết lương của từng người là bao
nhiêu) ...
4.1.1 Thiết kế tổng thể
Chương trình gồm hai phần Client và Server. Phía Client cài đặt webserver, môi
trường JADE. Chạy trên JADE là mobile agent có nhiệm vụ lắng nghe thông tin từ web
server và tích hợp thông tin. Phía Client là các agent dịch vụ chạy trên nền JADE và
CSDL.
33
CHƯƠNG 4: THỰC NGHIỆM
4.1.2 Thiết kế phía Client
Gồm 2 phần chính là Web Server và Mobile Agent:
1. Web Server : hình 4.1 là biểu đồ UML thiết kế các gói ứng dụng web. xây dựng
giao diện web tương tác với người dùng, khi người dùng gửi yêu cầu thông qua
trình duyệt công việc (ví dụ thống kê tổng tiền lương của nhân viên trong một
công ty) lên máy chủ web. Yêu cầu được gửi lên cho các Servlet bằng cách sử
dụng công nghệ Ajax, trước đó Servlet đã dùng JadeGateway khởi tạo đối tượng
MyGatewayAgent (là một agent có nhiệm vụ làm cổng giao tiếp giữa môi trường
jade và ứng dụng java bên ngoài mà cụ thể ở đây là servlet). Servlet gửi thông tin
yêu cầu cho Gateway Agent, Gateway Agent gửi thông điệp yêu cầu tới mobile
agent.
Hình 4.1: Biểu đồ UML gói thiết kế web phía Client
2. Mobile Agent : Hình 4.2 là biểu đồ UML thiết kế các gói ứng dụng cho mobile
agent chạy trên môi trường Jade, mobile agent có nhiệm vụ lắng nghe các yêu cầu
đến từ các agent khác.
34
CHƯƠNG 4: THỰC NGHIỆM
Hình 4.2: Biểu đồ UML gói thiết kế chạy trên nền JADE phía Client
4.1.3 Thiết kế phía Server
Gồm hai phần chính Agent dịch vụ và Dữ liệu (Hình 4.3 : biểu đồ UML thiết kế
các gói ứng dụng Jade phía Server)
1. Agent Dịch vụ : Các agent này là thực thể của lớp Agent cài đặt giao diện Service.
Trong mẫu Visitor, mỗi service đề có phương thức verify và accept, phương thức
verify để xác thực quyền của một visitor truy cập CSDL.
2. Dữ liệu : CSDL về lương nhân viên
4.1.4 Hoạt động
Biểu đồ hình 4.4 mô tả quá trình làm việc của chương trình.
Ban đầu, người dùng tương tác với web server thông qua giao diện web, căn cứ theo
kiểu yêu cầu, sau khi di chuyển sang phía Server, mobile agent biết được phải tạo ra kiểu
35
CHƯƠNG 4: THỰC NGHIỆM
Hình 4.3: Biểu đồ UML gói thiết kế chạy trên nền JADE phía Client
Visitor tương ứng nào để khai thác dịch vụ (trong ứng dụng này là kiểu ComputeSalary1
hay kiểu ComputeSalary2). Các thông tin về định danh, về dịch vụ được cấu hình trong
file agent.properties, mobile agent biết được dịch vụ ở máy nào cung cấp và sẽ di chuyển
sang máy đó để tích hợp thông tin.
Khi mobile agent di chuyển (thực hiện lời gọi phương thức doMove()) dịch vụ di
động liên nền sẽ tải tất cá các lớp cần thiết sang máy đích, trình ClassLoader sẽ tải các
lớp này lên máy ảo của nó. Sau đó mobile agent sẽ tìm kiếm các agent cung cấp các dịch
vụ thông qua dịch vụ DFService. Mỗi Agent dịch vụ khi chạy sẽ tự động đăng ký dịch
vụ với DF agent và kết nối tới CSDL. Sau đó mobile agent sẽ tạo ra các agent căn cứ
theo kiểu yêu cầu phía client và gửi đối tượng visitor sang agent dịch vụ, agent dịch vụ
sẽ xác thực (thông qua phương thức verify) visitor xem có quyền hay không, việc xác
thực này chủ yếu kiểm tra nội dung đối tượng CertID của Visitor, nếu đủ quyền truy
cập thì agent dịch vụ sẽ chấp nhận (thông qua phương thức accept) visitor và cho phép
visitor thực hiện các tính toán bằng cách gọi phương thức visit của visitor mà tham biến
đưa vào chính là agent dịch vụ. Tiếp theo agent dịch vụ sẽ kiểm tra kết quả xử lý xem
có hợp lệ không sau đó tạo một visitor khác chứa kết quả rồi gửi lại cho mobile agent.
36
CHƯƠNG 4: THỰC NGHIỆM
mobile agent nhận được kết quả di chuyển đến máy khác để tiếp tục tích hợp thông tin
hoặc quay lại client và trả kết quả cho Gateway Agent lúc này đang đợi kết quả, Gateway
Agent nhận được kết quả sẽ trả về cho Servlet, Servlet kết xuất kết quả dưới dạng XML
trả về cho người dùng.
Hình 4.4: Biểu đồ tuần tự của quá trình tích hợp thông tin
4.2 Thực Nghiệm
4.2.1 Cài đặt thực nghiệm
Kiểm nghiệm kết quả trên các máy Client và hai máy Web Server, Database Server
với cấu hình như sau : - Máy Web Server:
• Core 2 Duo 2.0GHz, RAM 2G, hệ điều hành Window XP Professional
• Máy chủ web Apache Tomcat 6.0, java JRE 6, Jade 3.6
37
CHƯƠNG 4: THỰC NGHIỆM
- Máy Database Server:
• Core 2 Duo 2.0GHz, RAM 2G, hệ điều hành Window XP Professional
• java JRE 6, Jade 3.6
• mySQL Server 5.0
- Các máy Client sử dụng trình duyệt Google Chrome 4.0
Sau khi đã cài đặt xong, trong phần thực nghiệm, chúng tôi thực hiện kiểm chứng
hai loại yêu cầu ứng với hai loại visitor là ComputeSalaryVistor và ComputeVisitor1
thực hiện hai kiểu thống kê khác nhau với thống kê này là cải tiến của thống kê kia. Kết
quả với mỗi lựa chọn visitor khác nhau sẽ cho những số liệu khác nhau như hình 4.5 và
hình 4.6
Hình 4.5: Kết quả tích hợp thông tin dùng visitor kiểu ComputeSalaryVisitor
38
CHƯƠNG 4: THỰC NGHIỆM
Hình 4.6: Kết quả tích hợp thông tin dùng visitor kiểu ComputeSalaryVisitor1
4.2.2 Ý nghĩa của thực nghiệm
Thực nghiệm đã đem lại nhiều ý nghĩa quan trọng về tính thực tế của mô hình :
1. Thực nghiệm cho thấy với các yêu cầu khác nhau sẽ tương ứng với những visitor
khác nhau, kết quả trả về cũng khác nhau tùy theo yêu cầu, do đó hệ thống vẫn
đảm bảo được tính mềm dẻo nếu sau này những yêu cầu đó thay đổi, khi đó phía
client chỉ cần bổ sung thêm các visitor chứa thuật toán xử lý khác.
2. Ngoài ra ta cũng thấy được thông tin về lương của từng nhân viên cũng được che
giấu bởi dữ liệu đã được agent dịch vụ kiểm tra và xóa đi những thông tin không
mong muốn mobile agent biết trước khi trả về cho mobile agent.
3. Thực nghiệm đã cho thấy mô hình đã đưa ra khả thi về mặt công nghệ, có thể ứng
dụng vào rất nhiều các lĩnh vực khác nhau đặc biệt là bảo mật.
39
CHƯƠNG 5
Kết Luận
5.1 Kết quả thu được
Trong quá trình thực hiện khóa luận này, tôi đã đưa ra phương pháp tích hợp thông
tin mà cả hai bên Client - Server đều đạt được mục tiêu, Client lấy được kết quả xử lý
theo yêu cầu, phía Server cung cấp được kết quả mà không phải gửi nội dung thông tin
hay cài đặt thuật toán xử lý và vẫn kiểm soát được dữ liệu trả về cho Client. Ngoài ra
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,
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
Khóa luận này đã xây dựng được một thực nghiệm chứng minh tính thực tế của mô
hình đề ra bởi hiện nay việc đảm bảo an toàn thông tin truyền tải luôn là vấn đề được ưu
tiên hàng đầu của các tổ chức cũng như mong muốn của khách hàng, mặt khác làm cho
hệ thống có được sự mềm dẻo tối đa để đáp ứng được những yêu cầu thay đổi từng ngày
từ phía người dùng. Thực nghiệm đã chứng minh được mô hình đưa ra là khả thi về công
nghệ và ý nghĩa to lớn về mặt thực tế, tạo tiền đề cho các bước nghiên cứu và phát triển
tiếp theo để có thể đưa ra được một mô hình hoàn thiện hơn và những thực nghiệm về
sau sẽ chứng minh được những ưu điểm của mô hình này.
Ngoài những thành quả trên mô hình còn đem lại các lợi ích có ý nghĩa quan trọng
trong thực tế khác do áp dụng công nghệ mobile agent 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 dữ liệu không phải di chuyển trên mạng nhưng
trọng phạm vi của khóa luận này các đặc điểm đó sẽ không đi sâu vào nghiên cứu và
kiểm nghiệm.
40
CHƯƠNG 5: KẾT LUẬN
Tóm lại với những ứng dụng tích hợp thông tin phân tán, sử dụng mobile agent và
áp dụng mẫu visitor sẽ đem lại nhiều lợi ích về mặt bảo mật, giảm tải đường truyền, giảm
tải xử lý mà vẫn đảm bảo tính mềm dẻo của hệ thống khi có những yêu cầu tính toán
mới.
5.2 Hướng nghiên cứu tiếp theo
Trong quá trình nghiên cứu này, mặc dù khóa luận đã đưa ra được thực nghiệm
để chứng tỏ tính khả thi của mô hình đã đưa ra, nhưng vì thời gian có hạn nên thực
nghiệm này vẫn còn một số hạn chế do cơ chế kiểm chứng bên phía Server vẫn chưa chặt
chẽ.Mục tiêu tiếp theo của quá trình nghiên cứu sắp tới là đưa ra các cơ chế kiểm chứng
chặt chẽ hơn bên phía Server. Mục tiêu lâu dài của nghiên cứu này là đưa mô hình áp
dụng vào thực tế để thuyết phục cộng đồng sử dụng phổ biến trong nhiều lĩnh vực đặc
biệt là các lĩnh vực cần có độ an toàn thông tin cao như thương mại điện tử, ngân hàng.
41
CHƯƠNG 5: KẾT LUẬN
Tài Liệu Tham Khảo
[1] Fabio Bellifemine, Giovanni Caire, Dominic Greenwood, Developing Multi-
Agent Systems with JADE. John Wiley and Sons Ltd, 2007.
[2] D. Kotz, R. S. Gray.Mobile Agents and the Future of the Internet.Operating
Systems Review, 33(3):7-13, August, 1999
[3] Blatt, R. "De Jure" standards. MIT, 1999
[4] Brown, P. and Rossak, W. Mobile Agents. Morgan Kaufmann Publishers and
dpunkt.verlag, 2005.
[5] D. Milojicic, Mobile agent applications, IEEE Concurrency, July-September
1999.
[6] Picco, Understanding Code Mobility (Tutorial Session). In ICSE ’00: Proceed-
ings of the 22nd International Conference on Software Engineering, 2000,
[7] Rao AS and Georgeff M. BDI Agents: from Theory to Practice. In Proceedings
of the 1st International Conference on Multi-Agent Systems, 1995, trang 312–319.
[8] Russell, SJ and Norvig, P. Artificial Intelligence: a Modern Approach, 2nd edn.
Prentice Hall, 2003.
[9] White, JE. Telescript Technology: Mobile Agents. In Bradshaw Jeffrey, (ed),
Software Agents, AAAI Press/MIT Press, 1996.
[10] Wooldridge, MJ and Jennings, NR. Intelligent Agents: Theory and Practice.
Knowledge Engineering Review, 1995, trang. 115–152.
[11] Trần Hạnh Nhi, Lê Đình Duy, Bộ môn CNPM Khoa CNTT, Trường ĐH
KHTN Tp.HCM. TỔNG QUAN VỀ MOBILE AGENTS
[12] Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides , Design
Pattern. Addison Wesley Longman, Inc.
[13]
[14]
[15]
[16]
42
Các file đính kèm theo tài liệu này:
- LUẬN VĂN-SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN.pdf