Luận văn Sử dụng mobile agent để tích hợp thông tin

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 .

pdf45 trang | Chia sẻ: lylyngoc | Lượt xem: 2785 | Lượt tải: 2download
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:

  • pdfLUẬN VĂN-SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN.pdf
Luận văn liên quan