Mục lục Phần 1: Giới thiệu về Agent 3 1.1. Tổng quan về Agent 3 1.2. Nền tảng xây dựng Agent – JADE 3 1.2.1. Giới thiệu 3 1.2.2. Kiến trúc JADE 3 1.3. Sự cần thiết của Mobile Agent 3 Phần 2: Mobile Agent 3 2.1. Giới Thiệu Về Mobile Agent 3 2.2. Các Lý Do Sử Dụng Mobile Agent 3 2.2.1. Giảm lưu lượng tải trên mạng 3 2.2.2. Khắc phục độ trể trên mạng 3 2.2.3. Khả năng gói gọn các giao thức 3 2.2.4. Khả năng thực hiện một cách không đồng bộ và tự quản 3 2.2.5. Khả năng thích nghi một cách tự động 3 2.2.6. Khả năng khắc phục tình trạng không đồng nhất 3 2.2.7. Khả năng có khả năng tự sửa sai 3 2.3. Định Nghĩa Mobile Agent 3 2.3.1. Mobile Agent 3 2.3.2. Vòng đời của một Mobile Agent 3 2.3.3. Cơ Chế Di Chuyển Của Một Mobile Agent 3 2.3.4. Định nghĩa mở rộng về mobile agent 3 2.4. Các Thành Phần Của Một Hệ Thống Mobile Agent 3 2.4.1. Agent 3 2.4.2. Môi trường hoạt động – Place 3 2.5. Các Phương Thức Cơ Bản Trong Agent 3 2.5.1. Tạo Agent 3 2.5.2. Hủy Agent 3 2.5.3. Di chuyển Agent 3 2.6. Sự di chuyển của Mobile Agent 3 2.6.1. Di chuyển bên trong platform 3 2.6.2. Di chuyển bên ngoài platform 3 2.7. Sự truyền thông 3 2.8. MASIF 3 2.8.1. Giao diện MAF Agent System 3 2.8.2. Giao diện MAF Finder 3 2.9. Một số ứng dụng của mobile Agent 3 2.10. Kết Luận 3 Phần 3: Bảo mật trong Mobile Agent 3 3.1. Đe dọa sự an toàn bảo mật (Security Threats) 3 3.1.1. Sự tấn công từ một Agent đến Agent Platform (AgenttoPlatform) 3 3.1.2. Sự tấn công từ một Agent đến một Agent khác trong cùng một Platform (Agent to Agent) 3 3.1.3. Sự tấn công từ Platform đối với Agent (PlatformtoAgent) 3 3.1.4. Những thực thể khác tấn công vào hệ thống Agent Platform (OthertoAgent Platform) 3 3.2. Những yêu cầu về an toàn bảo mật (Security Requirements) 3 3.2.1. Sự cẩn mật (Confidentiality) 3 3.2.2. Tính toàn vẹn (Integrity) 3 3.2.3. Trách nhiệm giải tr.nh (Accountability) 3 3.2.4. Tính sẵn sàng (Availability) 3 3.3. Biện pháp đối phó (Countermeasures) 3 3.3.1. Việc bảo vệ Agent Platform (Protecting the Agent Platform) 3 3.3.2. Việc bảo vệ các Agent (Protecting Agents) 3 3.4. Kết luận 3 PHẦN 1: GIỚI THIỆU VỀ AGENT 1.1. Tổng quan về Agent Không có một định nghĩa cụ thể nào về agent, nhưng có thể hiểu, agent là một thực thể đặc biệt có tính tự chủ, tức là có khả năng thích ứng và tương tác với môi trường xung quanh nó. Agent có thể là con người, máy tính, một thành phần phần mềm, hoặc rất nhiều thực thể khác. Trong lĩnh vực lập trình hướng Agent, ta hiểu agent như một thành phần phần mềm. Hay trong cuốn “Artificial Intelligence A Modem Approach”, Russell Norvig đưa ra định nghĩa về Agent “Một Agent có thể được nhìn theo hướng là mọi cái mà có thể cẩm nhận được môi trường của nó thông qua bộ cảm biến và có hành động đáp ứng lại với môi trường thông qua các effector” Agent có một số các đặc trưng mà có thể phân biệt nó với các đối tượng khác như: Tính tự chủ (autonomous_khả năng hoạt động mà không cần đến sự can thiệp trực tiếp từ bên ngoài và có thể tự kiểm soát được hành động và trạng thái của mình). Tính xã hội (social_khả năng tương tác với môi trường và các agent khác để thực hiện tác vụ). Tính phản ứng (reactive_khả năng đáp ứng lại các agent khác hoặc môi trường chứa nó, agent có thể tự sửa đổi các hành vi của mình nếu như có xảy rất hay đổi trong môi trường). Tính hướng đích (proactive_hành động của agent để đạt được mục đích đã được thiết lập ngay từ đầu). Ngoài ra, tùy vào từng ứng dụng cụ thể mà agent còn có một vài đặc tính khác như: tính di động, tính trung thực, tính sẵn sang, tính hợp lý, tính tự học…. 1.2. Nền tảng xây dựng Agent – JADE 1.2.1. Giới thiệu JADE là một phần mềm thuộc ngôn ngữ Java, nó đơn giản hóa việc cài đặt hệ thống multiagent thông qua một middleware phù hợp với các tiêu chuẩn kĩ thuật của FIFA và thông qua các công cụ đồ họa hỗ trợ cho các phase triển khai và sửa lỗi. Nền tảng agent có thể được phân tán trên các máy khác nhau mà không cần phải chia sẻ cùng một hệ điều hành và cấu hình có thể được điều khiển thông qua một giao diện từ xa. Việc cấu hình có thể được thay đổi theo thời gian thực thi bởi sự chuyển đổi agent từ một node sang một node khác khi có yêu cầu. Các ứng dụng thông minh, các cách giải quyết, các thông tin, các tài nguyên và việc điều khiển có thể được phân tán một cách rộng rãi trên mạng. Môi trường này có thể giúp giải quyết các vấn đề linh hoạt bằng các điểm, trong JADE còn gọi là các agent. Các agent vừa có khả năng yêu cầu vừa có khả năng đáp ứng yêu cầu. JADE có các đặc điểm sau: • Tương tác: Trong JADE các agent có thể làm việc với các agent khác tuân thủ theo các giao thức được đặt ra.
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA ĐÀO TẠO SAU ĐẠI HỌC CƠ SỞ DỮ LIỆU NÂNG CAO CƠ SỞ DỮ LIỆU NÂNG CAO Đề tài: TÌM HIỂU MOBILE AGENTS Học viên : Nguyễn Văn Khánh Vũ Hoàng Phi Đỗ Quang Nghĩa Phạm Thành Trung Nguyễn Văn Thịnh Nguyễn Hoàng Tùng Lớp : Khoa học máy tính Khóa : Cao học 2013 - Đợt 1 Giảng viên hướng dẫn : TS. Phạm Thế Quế Hà Nội, tháng 4 năm 2014 1 Hà Nội, tháng 4/2014 2 Mục lục PHẦN 1: GIỚI THIỆU VỀ AGENT 1.1. Tổng quan về Agent Không có một định nghĩa cụ thể nào về agent, nhưng có thể hiểu, agent là một thực thể đặc biệt có tính tự chủ, tức là có khả năng thích ứng và tương tác với môi trường xung quanh nó. Agent có thể là con người, máy tính, một thành phần phần mềm, hoặc rất nhiều thực thể khác. Trong lĩnh vực lập trình hướng Agent, ta hiểu agent như một thành phần phần mềm. Hay trong cuốn “Artificial Intelligence A Modem Approach”, Russell & Norvig đưa ra định nghĩa về Agent “Một Agent có thể được nhìn theo hướng là mọi cái mà có thể cẩm nhận được môi trường của nó thông qua bộ cảm biến và có hành động đáp ứng lại với môi trường thông qua các effector” Agent có một số các đặc trưng mà có thể phân biệt nó với các đối tượng khác như: Tính tự chủ (autonomous_khả năng hoạt động mà không cần đến sự can thiệp trực tiếp từ bên ngoài và có thể tự kiểm soát được hành động và trạng thái của mình). Tính xã hội (social_khả năng tương tác với môi trường và các agent khác để thực hiện tác vụ). Tính phản ứng (reactive_khả năng đáp ứng lại các agent khác hoặc môi trường chứa nó, agent có thể tự sửa đổi các hành vi của mình nếu như có xảy rất hay đổi trong môi trường). Tính hướng đích (proactive_hành động của agent để đạt được mục đích đã được thiết lập ngay từ đầu). Ngoài ra, tùy vào từng ứng dụng cụ thể mà agent còn có một vài đặc tính khác như: tính di động, tính trung thực, tính sẵn sang, tính hợp lý, tính tự học…. 1.2. Nền tảng xây dựng Agent – JADE 1.2.1. Giới thiệu JADE là một phần mềm thuộc ngôn ngữ Java, nó đơn giản hóa việc cài đặt hệ thống multi- agent thông qua một middle-ware phù hợp với các tiêu chuẩn kĩ thuật của FIFA và thông qua các công cụ đồ họa hỗ trợ cho các phase triển khai và sửa lỗi. Nền tảng agent có thể được phân tán trên các máy khác nhau mà không cần phải chia sẻ cùng một hệ điều hành và cấu hình có thể được điều khiển thông qua một giao diện từ xa. Việc cấu hình có thể được thay đổi theo thời gian thực thi bởi sự chuyển đổi agent từ một node sang một node khác khi có yêu cầu. 3 Các ứng dụng thông minh, các cách giải quyết, các thông tin, các tài nguyên và việc điều khiển có thể được phân tán một cách rộng rãi trên mạng. Môi trường này có thể giúp giải quyết các vấn đề linh hoạt bằng các điểm, trong JADE còn gọi là các agent. Các agent vừa có khả năng yêu cầu vừa có khả năng đáp ứng yêu cầu. JADE có các đặc điểm sau: • Tương tác: Trong JADE các agent có thể làm việc với các agent khác tuân thủ theo các giao thức được đặt ra. • Tính đồng nhất và tính linh hoạt: JADE cung cấp một tập các API đồng nhất nó độc lập với mạng và với các phiên bản của JAVA Dễ sử dụng: Sự phức tạp của JADE được thể hiện bên dưới tập các APIs đơn giản. Nguyên lý pay-as-you-go (Pay immediately): Lập trình viên không cần sử dụng tất cả các chức năng mà JADE cung cấp. Các chức năng không được sử dụng thì không yêu cầu các lập trình viên phải biết về chúng. 1.2.2. Kiến trúc JADE JADE có các thư viện dùng cho việc phát triển các ứng dụng agent và môi trường thực thi, nó cung cấp các dịch vụ cơ bản và nó phải được kích hoạt trước để giúp cho các agent hoạt động. Mỗi trường hợp của JADE thực thi được gọi là container. Một tập các container được gọi là platform, nó cung cấp một lớp đồng nhất trong suốt với các agent. Các thành phần trong kiến trúc JADE có thể được biểu diễn như hình bên dưới. CT_bảng quản lý container: đăng kí các đối tượng tham chiếu và địa chỉ của tất cả các container thành phần trong platform • GADT_bảng quản lý các agent: nơi đăng kí của tất cả các agent trong platform bao gồm trạng thái hiện thời và vị trí của chúng • AMS và DF: hai agent đặc biệt cung cấp agent quản lý và dịch vụ trang trắng, mặc định dịch vụ trang vàng cho platform. AMS giám sát toàn bộ platform, là nơi để tất cả các agent liên hệ để truy cập vào trang trắng của platform cũng như để quản lý vòng đời của chúng. Mọi agent đều được yêu cầu đăng kí với AMS với một AID • LADT_bảng quản lý các agent cục bộ: nơi đăng kí của các agent tại container đó. 4 1.3. Sự cần thiết của Mobile Agent Agent Mobility là một trong những tính năng của Agent một Mobile Agent là một chương trinh 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 Trước đây ta biết đến một số mô hình phân tán cổ điển như: client-server, remote execute….Tuy nhiên, ngày nay sự phát triển không ngừng của các kỹ thuật tiên tiến về máy tính, đặc biệt là các giải pháp mạng, cùng với sự bùng nổ nhanh chóng các dịch vụ và nguồn thông tin trên mạng đã làm gia tăng số người sử dụng Internet đến con số hàng trăm triệu, các đặc điểm của nguồn thông tin, tổ chức mạng, cũng như việc khai thác, xử lý thông tin ngày càng trở nên phức tạp và đa dạng hơn. Các ứng dụng phân tán phát triển theo mô hình client-server truyền thống tỏ ra một số bất lợi vì đòi hỏi làm việc đồng bộ, đòi hỏi đường truyền băng thông cao, độ trễ thấp và cuối cùng là các dịch vụ thiếu linh động, khó thay đổi hay bổ sung. Trong mô hình REV, thay vì yêu cầu thực hiện các hàm từ xa thì client chỉ việc gởi mã nguồn các hàm của nó đến server và yêu cầu server thực hiện rồi trả về kết quả. Ý tưởng chủ đạo của mobile agent là di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó có thể giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và tạo ra sự tương thích mạnh trên các môi trường không đồng nhất. Sự khác nhau giữa các mô hình được thể hiện qua hình sau: khác và khôi phục lại sự thi hành tại máy đích. 5 PHẦN 2: MOBILE AGENT 1. Giới Thiệu Về Mobile Agent Ngày nay, các máy tính và các thiết bị di động ngày càng trở nên phổ biến, tuy nhiên việc sử dụng có hiệu quả các tài nguyên trên mạng gặp phải một số khó khăn. Trước hết, các máy tính di động không có kết nối thường trực vào mạng Internet và thường không được kết nối (disconnect) trong một khoảng thời gian dài. Thứ hai, khi máy tính được kết nối thường có băng thông thấp, độ trễ cao và hay bị hỏng đột ngột. Chẳng hạn như có một tắc nghẽn về tín hiệu từ modem. Thứ ba, do máy tính có thể sử dụng các kênh truyền khác nhau phụ thuộc vào vị trí vật lý của nó, sự thực hiện kết nối mạng có thể rất đa dạng. Cuối cùng, phụ thuộc vào bản chất của kênh truyền, máy tính có thể gán địa chỉ mạng khác nhau mỗi lần nó được kết nối. Mobile Agent ra đời, giúp giải quyết những vấn đề trên. Mobile Agent là một mô hình hiệu quả cho các ứng dụng phân tán, và đặc biệt thích hợp cho các máy tính kết nối cục bộ. Các máy tính kết nối cục bộ gồm các máy di động như là laptop, máy tính tại nhà và máy tính cơ quan có gắn modem, thường kết nối với mạng qua kết nối SLIP hay PPP. Các thiết bị này thường không được kết nối (disconnect) trong một khoảng thời gian dài, thường có băng thông trễ, kết nối mạng không tin cậy, và thường thay đổi địa chỉ mạng qua mỗi lần kết nối. Một Mobile Agent có thể ra khỏi một máy chủ, di chuyển trên mạng Internet và thu thập thông tin cho người dùng (user) của nó. Nó truy xuất tài nguyên một cách có hiệu quả vì nó di chuyển đến các vị trí trên mạng, đưa yêu cầu và lấy kết quả trả về qua một máy tính băng thông thấp. Vì nó không tiếp tục liên lạc với máy tính chủ , agent không chịu ảnh hưởng bởi sự mất kết nối đột ngột, và có thể tiếp tục công việc của nó thậm chí ngay khi user tắt máy hay ngắt kết nối khỏi mạng. Khi User kết nối lại, agent sẽ trả về cho máy chủ kết quả sau quá trình di chuyển trên mạng. Ngược lại, một ứng dụng sống trên mạng cũng có thể gởi một mobile agent cho máy chủ. Agent này hoạt động như một đại diện cho ứng dụng, tương tác với user một cách có hiệu quả. Các Mobile Agent dễ phát triển, kiểm tra và triển khai các ứng dụng phân tán vì chúng giấu các kênh truyền. Chúng loại trừ nhu cầu phát hiện và quản lý các hỏng hóc trên mạng; chúng không đòi hỏi cài đặt lại các phần mềm ở mỗi site ( mặc dù hệ thống agent phải có ). Mobile Agent đưa người lập trình ra khỏi mô hình client-server đến mô hình peer-to-peer uyển chuyển, trong đó nút nào là client và nút nào là server là phụ thuộc vào nhu cầu hiện tại. Mobile agent cho phép những ứng dụng dễ dàng thay đổi, tùy thuộc vào yêu cầu công việc, mobile agent có thể di chuyển tới vị trí mạng thích hợp nhất. 2. Các Lý Do Sử Dụng Mobile Agent 6 Mặc dù công nghệ mobile agent áp dụng vào nhiều lĩnh vực, sự quan tâm của chúng ta tập trung vào lợi ích của chúng trong việc tạo ra các hệ thống phân tán. Sau đây là các lý do mà chúng ta dùng mobile agent: 1. Giảm lưu lượng tải trên mạng Các hệ thống phân tán thường dựa vào các giao thức liên lạc tương tác lẫn nhau để hoàn thành công việc. Việc này dẫn đến có nhiều dữ liệu chuyển tải trên mạng. Mobile agent giải quyết vấn đề băng thông mạng của client/server. Băng thông mạng trong ứng dụng phân tán là tài nguyên rất có giá trị. Một giao tác hay vấn tin giữa client và server có thể đòi hỏi nhiều lần di chuyển trên mạng để hoàn thành. Mỗi cuộc di chuyển trên mạng sẽ cần băng thông. Trong một hệ thống với nhiều clients và nhiều giao tác, tổng băng thông đòi hỏi có thể vượt quá băng thông hiện có. Mobile agent cũng hữu ích khi nó giảm lượng dữ liệu thô lưu truyền trên mạng. Khi dữ liệu thô được lưu trữ ở các host từ xa, các dữ liệu này sẽ được xử lý ở đó. Phương châm rất đơn giản : đưa chương trình xử lý đến dữ liệu thay vì kéo dữ liệu về để xử lý. 2. Khắc phục độ trể trên mạng Các hệ thống thời gian thực như robot, trong các tiến trình sản xuất, cần đáp ứng ngay với tác động của môi trường bên ngoài. Điều khiển các hệ thống như vậy qua mạng sẽ có một độ trễ nhất định. Đối với các hệ thống thời gian thực, độ trễ như vậy là không chấp nhận được. Mobile agent đưa ra một giải pháp, chúng được gởi đi từ một trung tâm điều khiển hoạt động một cách cục bộ và thực hiện trực tiếp theo chỉ dẫn của trung tâm điều khiển đó. 3. Khả năng gói gọn các giao thức Khi dữ liệu được trao đổi trong một hệ phân tán, mỗi host sẽ có mã cài đặt các giao thức cần để mã hóa dữ liệu và mã biên dịch dữ liệu đến một cách tương ứng. Tuy nhiên, các giao thức lại chứa các yêu cầu mới về tính hiệu quả và an toàn, do đó, nó sẽ cồng kềnh, nặng nề. Kết quả là các giao thức lại trở thành một vấn đề về độ trễ. Ngược lại, mobile agents có thể di chuyển tới một host ở xa để thiết lập một kênh giao tiếp dựa trên các giao thức riêng. 4. Khả năng thực hiện một cách không đồng bộ và tự quản Thông thường, các thiết bị mobile phải dựa vào các kết nối mạng không thường xuyên và chậm. Công việc đòi hỏi một kết nối liên tục giữa thiết bị mobile và một mạng cố định sẽ không kinh tế. Đề giải quyết vấn đề này, công việc đó sẽ được nhúng vào trong các mobile agent, và chúng được gởi đi trên mạng. Sau khi được gởi đi, các mobile agent trở thành độc lập và có thể thực hiện một cách không đồng bộ và tự quản. Sau đó, thiết bị di động có thể kết nối lại và nhận lại agent. 5. Khả năng thích nghi một cách tự động Mobile Agent có khả năng cảm nhận môi trường thực hiện và tự phản ứng lại để thay đổi. 6. Khả năng khắc phục tình trạng không đồng nhất 7 Mạng máy tính về cơ bản là không đồng nhất, cả về khía cạnh phần cứng và phần mềm. Các mobile agent chỉ phụ thuộc vào môi trường thực hiện, chúng cung cấp điều kiện tối ưu cho sự tích hợp các hệ thông không tương tự với nhau. 7. Khả năng có khả năng tự sửa sai Khả năng phản ứng lại của mobile agent đối với các tình huống và sự kiện không thuận lời, và vì vậy làm cho nó dễ xây dựng các hệ thống phân tán tự sửa sai. Nếu một host bị tắt, tất cả các agent đang thực hiện trên máy đó sẽ được cảnh báo và có một khoảng thời gian để di chuyển qua host khác và tiếp tục thực hiện các phép toán trên host khác. Trên đây là các lý do, sự cần thiết của mobile agent. Phần tiếp theo, chúng ta sẽ đi sâu nghiên cứu các khái niệm trong Mobile Agent. 3. Định Nghĩa Mobile Agent Như ở trên ta đã biết, agent là một chương trình trợ giúp con người và hoạt động nhân danh họ. Vậy có thể đưa ra một định nghĩa về Mobile Agent như sau : 1. Mobile Agent Là một chương trình có thể di chuyển từ máy này qua máy khác trong một mạng không đồng nhất. Chương trình sẽ chọn di chuyển khi nào và di chuyển tới đâu. Khi di chuyển, nó mang theo trạng thái và mã lệnh đến môi trường thực hiện trên mạng, và tại đó, agent sẽ tiếp tục thực hiện . Nó có thể tạm dừng thực hiện công việc tại một điểm tùy ý, di chuyển tới một máy khác và tiếp tục công việc đang thực hiện. Sau khi tương tác với các agent và tài nguyên trên mỗi máy mà nó di chuyển đến, cuối cùng nó trở về site chủ khi nhiệm vụ đã xong. • Trạng thái : các giá trị thuộc tính của agent giúp xác định phải làm gì khi tiếp tục thực hiện tai nơi đến. • Mã lệnh : Trong một ngữ cảnh hướng đối tượng, nó là mã lệnh của class cần thiết đề agent thực hiện. 2. Vòng đời của một Mobile Agent Mọi Mobile Agent đều thực hiện tuần tự theo logic: Đầu tiên, Mobile Agent được tạo ra, di trú từ host này sang host khác theo lịch trình, thực hiện các nhiệm vụ được giao và cuối cùng bị huỷ sau khi đã hoàn thành nhiệm vụ. 8 3. Cơ Chế Di Chuyển Của Một Mobile Agent Mobile Agent sẽ tự quyết định đóng gói và di trú đến môi trường khác để thực thi là đặc điểm nổi bật của Mobile Agent. Khi có nhu cầu di trú Mobile Agent sẽ tạm dừng thực thi mã, thực hiện lưu trạng thái của đối tượng (có thể có khả năng lưu lại cả trạng thái thi hành). Sau khi mã hoá dữ liệu Mobile Agent sẽ được truyền đi trên hệ thống mạng. Khi đến đích, Mobile Agent sẽ thực hiện các bước ngượi lại với bên gửi để khôi phục lại trạng thái của Mobile Agent và tiếp tục thực hiện nhiệm vụ. Cơ chế di chuyển của mobile agent 4. Định nghĩa mở rộng về mobile agent 9 Một mobile agent là một thực thể phần mềm tồn tại trong một môi trường phần mềm. Nó kế thừa một số tính chất của một agent. Một mobile agent phải chứa tất cả các mô hình sau : Mô hình agent : Mô hình này định nghĩa cấu trúc thông minh bên trong của một agent. Nó định nghĩa tính đặc trưng về tính tự trị, cộng tác agent. Ngoài ra, nó còn mô tả bản chất phản ứng lại (reactive) của agent. Mô hình life-cycle : Mô hình này định nghĩa các trạng thái thực hiện khác nhau của một agent và kết quả có được từ sự di chuyển từ nơi này sang nơi khác. Vì vậy, nó liên hệ chặt chẽ với mô hình tính toán, mô hình này mô tả sự thực hiện xảy ra như thế nào. Ngày nay, hầy hết các mô hình life-cycle là mô hình xử lý liên tục, được chấp nhận bở Telescript và AgentTCL, và mô hình trên cở sở giao việc, được chấp nhận bởi Aglets. Mô hình dựa trên task based bắt đầu ở trạng thái ‘start’. Kế tiếp, phụ thuộc vào tập các điều kiện được tiến hành thông qua mạng các nhiệm vụ. Mỗi công việc có trạng thái riêng của nó. Tuy nhiên, khi agent di chuyển đến nút mới, ngữ cảnh của công việc đang thực hiện bị mất. Trước khi di chuyển, agent phải chỉ ra công việc đầu tiên được bắt đầu trên nút đến. Sự linh hoạt của hướng tiếp cận này bị giảm vì đánh mất thông tin ngữ cảnh trong quá trình di chuyển. Mô hình tính toán : Mô hình này định nghĩa một mobile agent thực hiện như thế nào khi nó đang trong trạng thái ‘running’ (chạy). Sự tính toán xảy ra trong một môi trường và được làm cho dễ dàng bởi một số vi xử lý. Vi xử lý có thể là CPU của máy tính hay trừu tượng hơn có thể là một máy ảo trong java. Một tập các chỉ thị cơ sở là một phần của mô hình này. Nó định nghĩa khả năng tính toán của một agent. Nó bao gồm các chỉ thị thao tác dữ liệu và các chỉ thị điều khiển luồng. Mô hình tính toán giúp cho một mobile agent có thể truy xuất tới các mô hình khác, do đó, cấu trúc của mô hình tính toán ảnh hưởng đến tất cả các mô hình khác. Nếu chúng ta có một mô hình tính toán tổng quát và mạnh, chúng ta sẽ phải quan tâm đến ảnh hưởng của nó trên khía cạnh life-cycle, an toàn, thông tin và di chuyển của một mobile agent. Mô hình an toàn : Sự an toàn của mobile agent có thể được chia làm hai phần : Bảo vệ các nút host khỏi sự phá hoại của các mobile agent: Một hệ thống mobile agent là một hệ thống mở. Vì vậy, giống như mọi hệ thống mở khác, các host là các đối tượng có thể bị chịu các hình thức tấn công cả cũ lẫn mới. Sự tấn công vào host rơi vào các trường hợp sau: • Rò rỉ dữ liệu bởi những người không có quyền • Dữ liệu giả: dữ liệu bị thay đổi bởi những người không có thẩm quyền • Bị đáng cắp dữ liệu • Dữ liệu bị phá hoại Các phương pháp phá hoại, tấn công cổ điển bao gồm việc nghe lén, giả danh, đưa ra các thông báo giả, lặp đi lặp lại các thông báo và virus. Một mobile agent có thể dùng bất kỳ một trong các phương thức tấn công này. Tuy nhiên, do mã lệnh mobile agent được thực hiện bởi một host. Vì vậy, mobile agent có thể tự động truy xuất đến một số tài nguyên của các host. Với mức truy xuất này, mobile agent có thể gia tăng sự tấn công bằng cách biến đổi các agent cục bộ khác, truyền virus. Hướng tiếp cận chuẩn cho vấn đề này là loại bỏ tất cả các mã lạ từ các chương trình xâm nhập vào host. Nhưng phương pháp này không thể khả thi trong môi trường mobile agent. Telescript đưa ra một giải pháp cho vấn đề này. Telescript đưa ra ba cơ chế được áp dụng ở các mức độ khác nhau: Truy xuất (agent) an toàn và bảo đảm: cho phép tương tác an toàn giữa các agent và giữa agent với host. Nó đạt được điều này bằng cách dùng các danh hiệu đã 10 [...]... get_MAFFinder trong giao diện MAFAgentSystem – giao diện này cũng được định nghĩa trong IDL 9 Một số ứng dụng của mobile Agent Thu thập dữ liệu từ nhiều nơi : tìm dữ liệu từ cơ sở dữ liệu phân tán là một ứng dụng phổ biến của mobile agent Thay vì di chuyển một lượng lớp dữ liệu đến bộ xử lý tìm kiếm để tạo chỉ mục tìm kiếm, ta sẽ gửi các agent đến nguồn chứa thông tin từ xa, nơi mà chỉ mục tìm kiếm sẽ được tạo.Một... chơi tiền thật 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:... của gói jade.domai.mobility - Mobile- agent-description: mô tả một mobile agent Nó được biểu diễn bởi class MobileAgentDescription - Mobile- agent-profile: mô tả môi trường tính toán cần thiết cho mobile agent, được biểu diễn bởi class MobileAgentProfile - Mobile- agent-system: mô tả hệ thống run-time được sử dụng bởi mobile agent, biểu diễn bởi class MobileAgentSystem - Mobile- agent-language: mô tả ngôn... những nét chung nhất về mobile agent Một mobile agent không bị ràng buộc với hệ thống mà nó bắt đầu thực thi, nó có khả năng độc đáo là tự gửi mình đi từ một hệ thống trong mạng đến một hệ thống khác Các lý do sử dụng mobile agent trong lập trình cũng như một số khái niệm cơ sở của mobile agent Chúng ta tìm hiểu về các mô hình trong một mobile agent, các thành phần của một hệ thống mobile agent : agent,... khác biệt chính giữa mobile code – như applets - và mobile agent là lộ trình Trong khi mobile code luôn di chuyển từ điểm A đến điểm B, thì mobile agent có một lộ trình và có thể lần lượt di chuyển qua nhiều site Do đó, một ứng dụng rõ ràng của mobile agent là thu thập thông tin trên mạng Tìm kiếm và lọc dữ liệu : Lượng thông tin trên mạng internet ngày càng nhiều, do đó, việc tìm kiếm thông tin cần... đó, 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... 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 .Mobile agents có thể được áp dụng trong nhiều lĩnh vực như: - Thương mại điện tử - Thu thập thông tin phân tán - Theo dõi và thông báo tin cập nhật - Giám sát và phổ biến thông tin - Xử lý song song - Quản trị hệ thống mạng - Hỗ trợ các thiết bị di động 26 10 Kết Luận Trên đây, chúng ta đã tìm hiểu những... hàng : thương mại ddienj tử là môi trường tốt để áp dụng công nghệ mobile agent Một mobile agent có thế thay bạn đi mua sắm, bao gồm việc đặt hàng và trả tiền Chẳng hạn như nếu bạn muốn bay từ thung lũng Silicon đến một đảo ở Nam Thái Bình Dương, một agent có thể tới cơ sở dữ liệu các chuyến bay và tham khảo giá của các hãng hàng không.nó tìm ra chuyến bay có giá rẻ nhất và thời gian thích hợp nhất, đặt... nghe trộm trên hệ thống Mobile Agent thì nghiêm trọng hơn bởi vì Agent Platform không những giám sát các kết nối liên lạc mà còn có thể giám sát mỗi chỉ dẫn thực thi bởi Agent, tất cả dữ liệu (data) không mã hóa hay public nó mang đến Agent Platform, và tất cả dữ liệu sau khi được sinh ra trên Agent Platform Agent Platform có thể truy xuất đến mã (code), trạng thái (state) và dữ liệu (data) của Agent,... diễn bởi class MobileAgentSystem - Mobile- agent-language: mô tả ngôn ngữ lập trình được sử dụng bởi mobile agent, biểu diễn bởi class MobileAgentLanguage Mobile- agent-os: mô tả hệ điều hành cần thiết cho mobile agent, được biểu diễn bởi class MobileAgentOS 7 Sự truyền thông 22 Agent có thể liên lạc với các agents khác trong cùng một place (intraplace) hoặc với các agent trong các place khác Một agent có . của mobile agent 4. Định nghĩa mở rộng về mobile agent 9 Một mobile agent là một thực thể phần mềm tồn tại trong một môi trường phần mềm. Nó kế thừa một số tính chất của một agent. Một mobile agent. Chuyển Của Một Mobile Agent Mobile Agent sẽ tự quyết định đóng gói và di trú đến môi trường khác để thực thi là đặc điểm nổi bật của Mobile Agent. Khi có nhu cầu di trú Mobile Agent sẽ tạm dừng. của một mobile agent. Mô hình an toàn : Sự an toàn của mobile agent có thể được chia làm hai phần : Bảo vệ các nút host khỏi sự phá hoại của các mobile agent: Một hệ thống mobile agent là