MộtCollaborative agent có thể được thêm vào một giao diện người dùng có sẵn,ví dụcác chương trình giả lập hoặc tích hợp vào thiết kế của một ứng dụng phần cứngmới như đồ gia dụng •Interf
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN
KHOA CÔNG NGHỆ THÔNG TIN
………
BÀI TẬP LỚN
TRÍ TUỆ NHÂN TẠO
ĐỀ TÀI:
TÌM HIỂU VỀ CÔNG NGHỆ TÁC TỬ DI ĐỘNG (MOBILE AGENT)
Giáo viên hướng dẫn : Sinh viện thực hiện :
Hà Nội
Trang 2LỜI NÓI ĐẦU
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ồnthông tin trên mạng đã làm gia tăng số người sử dụng Internet đến con số hàngtră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 khaithá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ụngphâ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ốicùng là các dịch vụ thiếu linh động, khó thay đổi hay bổ sung.Công nghệ tác tử đã
có những bước phát triển mạnh mẽ trong những năm gần đây Riêng tác tử di động(Mobile agent) đã chứng tỏ được là một biện pháp cực kỳ hữu hiệu trong các vấn
đề xử lý phân tán
Để hiểu thêm về vấn đề này em chọn đề tài “Tìm hiểu về công nghệ tác tử
di động (Mobile agent)” nhằm nắm được những khái niệm cơ bản về mobile agentđồng thời đề cập đến những loại ứng dụng phù hợp với mô hình mobile agents đã
và đang được nghiên cứu và phát triển trên thế giới
Em chân thành cảm ơn sự hướng dẫn của Ts Lưu Minh Tuấn - Giảng viênmôn Trí tuệ nhân tạo Bộ môn Công nghệ thông tin ĐH Kinh tế Quốc dân đã chochúng em nhiều kiến thức quý giá về lĩnh vực trí tuệ nhân tạo để em có thể hoànthành đề tài này một cách tốt nhất Tuy nhiên, sự hiểu biết của em về lĩnh vực nàycòn chưa sâu sắc nên chắc chắn sẽ có nhiều sai sót, em mong thầy thông cảm vàgóp ý thêm
Em xin chân thành cảm ơn thầy !
Trang 3ra bởi Mark Sidell và Chuck Knuff và đến năm 1995 thì phiên bản đầu tiên củaagent xuất hiện Năm 1975 kĩ thuật lập trình phổ biến là lập trình có cấu trúc, đếnnăm 1982, kĩ thuật lập trình phổ biến là phương pháp lập trình hướng đối tượng vàđến khiagent ra đời đã tạo ra một phương pháp lập trình mới.
I.1.2 Khái niệm
Agent là sự kết hợp của nhều kỹ thuật hiện đại:
Hình 1: Agent – phương pháp lập trình mớiKhông có định nghĩa cho software agent, ty nhiên, ta có thể tham khảo địnhnghĩa sau:
Trang 4Một agent là một thành phần phần mềm hoặc phần cứng mà có khả năng hoạtđộng chính xác để hoàn thành nhiệm vụ thay mặt chủ nhân của agent.(Nwana,1996)
Trên mạng Internet, một agent (có khi được gọi là intelligent agent) là mộtchương trình thu thập thông tin hoặc thực thi một số dịch vụ khác mà không cầnngười điều khiển và hoạt động theo thời gian đã được lên lịch sẵn Một agent đôikhi được gọi là 1 bot ( viết tắt của robot )
Một ví dụ về agent là chương trình Infogate Chương trình này có chức năngthu thập các tin tức mới về lãnh vực người dùng quan tâm và tự động gửi thôngbáo đến người dùng khi có tin mới
I.1.3 Phân loại agent
I.1.3.1 Phân loại theo tính năng
•Agent tĩnh (Stationary agent)
- Đặc tính: chỉ làm việc trên một hệ thống, nơi mà agent bắt đầu vòng đời
- Nếu Stationary agent cần thông tin ở một hệ thống khác hoặc muốn tươngtác với agent nằm ở hệ thống khác thì chúng phải sử dụng một trong các cơ chếtruyền thông khác như RPC, RMI, DCOM
•Mobile agent
- Không lệ thuộc vào hệ thống nơi chúng bắt đầu làm việc
- Có khả năng di chuyển tù nơi này đến nơi khác trong hệ thống mạng máytính tại những thời điểm và vị tri do agent lựa chọn
- Khi mobile agent di chuyển, nó có thể mang theo mình trạng thái và mãchương trình
I.1.3.2 Phân loại theo mục đích
Trang 5Hình 2: Phân loại agent theo mục đích
•Collaborative agent
Collaborative agent là một chương trình giúp người dùng giải quyết vấn đề,đặc biệt trong những trường hợp phức tạp không quen thuộc, bằng cách sửa lỗi, đềnghị nên làm gì tiếp theo và chú ý đến những vấn đề ở cấp thấp MộtCollaborative agent có thể được thêm vào một giao diện người dùng có sẵn,ví dụcác chương trình giả lập hoặc tích hợp vào thiết kế của một ứng dụng phần cứngmới như đồ gia dụng
•Interface agent
Interface agent là một chương trình có thể ảnh hưởng đến giao diện trực tiếp,nhưng không có sự hướng dẫn trực tiếp từ người dùng Interface agent đọc dữ liệungười dùng nhập vào giao diện và nó có thể tạo ra sự thay đổi tới đối tượng người
Trang 6dùng thấy trên màn hình, mặc dù có thể sự thay đổi đó không phải diễn ra ngayứng với ứng dụng của người dùng Interface agent có thể quan sát nhiều tham sốnhập vào của người dùng trong một khoảng thời gian nào đó trước khi quyết địnhthực hiện một hành động.
•Smart/Intelligents
Có đầy đủ cả 3 mục đích: giao tác , tự động và dễ thích nghi
I.2 Tác tử di động (Mobile agent)
Mobile agents là một trong những hướng nghiên cứu thu hút nhiều sự quantâm nhất từ những năm 90s đến nay với những đặc điểm rất thích hợp cho việcphát triển các ứng dụng phân tán
I.2.1 Sự tiến hóa từ các mô hình ứng dụng phân tán
Theo truyền thống, một ứng dụng phân tán có cấu trúc xây dựng trên mô hìnhclient-server sẽ thực hiện việc giao tiếp thông qua cơ chế truyền thông điệp hoặccác lời gọi hàm từ xa (RPCs) Các mô hình giao tiếp này thường phải đồng bộ,nghĩa là phía client tạm ngưng hoạt động của mình trong thời gian gởi yêu cầu đếnserver và đợi đến khi nhận được kết quả trả về từ server Một kiến trúc tiến bộ hơn
là Remote Evaluation (REV) do Stamos và Gifford [STA-90] đưa ra vào năm
1990 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ả Một số hệ thống gần đây cũng đã giới thiệu khái niệm thông điệp chủđộng (active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã củachương trình để thực thi tại những vị trí này Mobile agents là mô hình tiến hóatiên tiến nhất so với các mô hình trước đó Mobile agent là danh từ ghép giữaagent (tác tử) và mobile (di động)
Định nghĩa : Tác tử di động là những thành phần phần mềm, bao gồm mã
chương trình, dữ liệu và trạng thái hoạt động 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 conngười để đạt được mục tiêu được giao phó
Trang 7Khi di chuyển, các tác tử di động đóng gói mã nguồn, dữ liệu và cả trạng tháithi hành, nhờ vậy tác tử di động có thể dừng việc thi hành đang thực hiện tại máynà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 Tác tử diđộng chính là một dạng của mã di động (mã di động là những chương trìnhchuyển mã đến client và thực thi ở đó)
Hình dưới cho thấy sự khác biệt của Mobile agents so với RPC và REV
Hình 3: Sự tiến hóa của mô hình mobile agents
I.2.2 Tính chất của tác tử di động
- Có khả năng di chú từ nơi này đến nơi khác
- Liên lạc được với nhau, nhân bản, nhập lại, tổng hợp tính toán
- Một số tác tử có khả năng cung cấp dịch vụ hoặc giao diện cho các ứngdụng kế thừa
- Kích thước nhỏ
- Có khả năng xác định và dùng cá tài nguyên trên các máy tính đang chứa nó
I.2.3 Các đặc tính của tác tử di động
Các đặc tính chính của tác tử di động bao gồm :
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
Trang 8khá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 trithứ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 đượcphâ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ôitrườ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ể dichuyể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 đốitượng khác trong những môi trường khác
II LỢI ÍCH CỦA TÁC TỬ DI ĐỘNG
II.1 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ópphầ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ý đếnnơi chứa dữ liệu hơn là mang dữ liệu về chỗ xử lý
II.2 Khắc phục sự trễ mạng
Trang 9Việ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ấpnhận một sự trễ hạn nhất định Nhưng điều đó lại không được phép xảy ra trongcác hệ thống thời gian thực như điều khiển robot, quy trình sản xuất Khi đó, giảipháp mobile agents tỏ ra hữu ích trong việc khắc phục độ trễ nhờ vào việc cácagent 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
II.3 Đó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ữubở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 đầutrở 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ápmobile agents, các agents có thể mang trên mình các giao thức thích hợp và dichuyể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
II.4 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ề
Trang 10(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 thihà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ốngkhông liên quan gì lại với nhau.
II.7 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
III CÁC ỨNG DỤNG CỦA TÁC TỬ DI ĐỘNG
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 dành cho công nghệ tác tử di động Tất cảnhững kết quả đạt được hiện nay với tác tử di động cũng đều bằng những côngnghệ truyền thống Tuy nhiên, trong một vài trường hợp, tác tử di động có thể làgiải pháp tối ưu Tác tử di động có thể được áp dụng trong nhiều lĩnh vực như:
III.1 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 giaodịch trong kinh doanh trên mạng Một giao dịch có thể bao gồm sự thương lượngvớ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ộtnghi thức chung trong việc thương lượng Hơn nữa, việc di chuyển các thành phầncủa ứng dụng tiến gần đến nguồn thông tin thích hợp cho giao dịch cũng đượcquan tâm Vì thế công nghệ tác tử di động là một giải pháp rất hấp dẫn cho lĩnhvực này
III.2 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 đếnnhiều nguồn dữ liệu phân tán, không đồng nhất, việc cử các tác tử di động di
Trang 11chuyển đến các nguồn tin để khai thác tại chỗ và cuối cùng là quay về với nhữngthô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ươngthích
III.3 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 tác tử diđộng Các agent có thể được gởi đi, đến nơi có nguồn tin và hoạt động theo dõinguồn tin ngay cả khi người dùng ngắt kết nối Sau đó, khi nguồn tin có sự thayđổi , agent sẽ quay về báo cho chủ nhân Những đại diện của loại ứng dụng nàyWeather Alarm - một chương trình dùng để dự báo thời tiết trên và JobFinder(findjobs.com) - website việc làm và tuyển dụng 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 đó
III.4 Giám sát và phổ biến thông tin
Các tác tử di động 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ácagent mang các phần mềm thành phần 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úpcho nhà sản xuất chủ động hơn trong việc phục vụ khách hàng để bảo đảm chấtlượ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ệuquả đố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ảnxuất…để giúp người quản trị giám sát các hệ thống con
III.5 Xử lý song song
Vì các tác tử di động có thể tạo ra nhiều bản sao của nó trên mạng nên ứngdụng đầy tiềm năng của tác tử di động là quản trị các tác vụ song song Một ứngdụng đòi hỏi quá nhiều tài nguyên bộ xử lý có thể được phân bố cho các tác tử diđộng 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ênrảnh rỗi và cân bằng tải Hệ tác tử di động không đồng nhất là một minh họa khaithác ưu điểm này của mô hình tác tử di động
III.6 Quản trị hệ thống mạng
Trang 12Đối với những hệ thống mạng lớn, việc chuẩ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 tác tử di động vào việcquả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 địnhcủa hệ thống được dễ dàng hơn
III.7 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âydựng các ứng dụng dựa trên tác tử di động với khả năng di chuyển đến các máytí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
Aglets là những đối tượng Java có thể di chuyển từ host này sang host kháctrên môi trường mạng Khi aglets di chuyển, nó mang theo mình cả mã chươngtrình lẫn dữ liệu Trong mô hình đối tượng aglets, một mobile agent là một đốitượng di động có luồng kiểm soát riêng của nó, làm việc theo sự kiện và liên lạcvới các agent khác bằng cách truyền thông điệp Aglets có một cơ chế định danhduy nhất và toàn cục dựa trên URL Aglets hỗ trợ cơ chế di động yếu (weak-mobility) Các aglets giao tiếp với nhau một cách đồng nhất, và độc lập với vị trílưu trú thông qua đối tượng proxy Suốt chu kỳ sống, các aglets sẵn sàng bắtnhững sự kiện (clone, mobility, persistence) phát sinh trong môi trường để cóphản ứng thích hợp Agent có thể giao tiếp đồng bộ hoặc không đồng bộ thông
Trang 13qua các loại thông điệp: synchronous, one-way, hay future reply Aglets sử dụngATP (Agent Transfer Protocol) cho việc di chuyển và giao tiếp Aglets sử dụng 2loại mẫu thiết kế chính là chủ-tớ (Master-Slave) và hành trình (Itinerary) cho việc
di chuyển của các agent
Aglets là một trong những platform được sử dụng nhiều nhất để phát triểncác hệ thống mobile agent Một số đề án thực hiện với Aglet có thể kể đến làTabiCan (http://www.tabican.ne.jp) - chợ điện tử chuyên bán vé máy bay và tour
du lịch trọn gói - Cps720 (Artificial Intelligence Topics with Agent) tại đại họcRyerson University, Mỹ , Acme - Hệ thống hỗ trợ Sales Order Processing trongviệc mua bán chứng khoán, của Đại học Loughborough, Anh
Aglets là một hệ thống Java mobile agent hỗ trợ các khái niệm thi hành tự trị
và định tuyến động trên lộ trình của nó Có thể xem aglets như là một khái quáthóa và mở rộng của applet và servlet Aglet server là chương trình cung cấp mộtmôi trường thi hành và một máy ảo Java cho aglet hoạt động Ngoài ra, Agletserver cũng sử dụng một trình quản lý để tiếp nhận và kiểm soát aglet một cách antoàn
IV.1.2 Voyager
Voyager là một môi trường thương mại hỗ trợ phát triển các ứng dụng agentđược hãng Object Space phát triển từ giữa năm 1996 Voyager đã trải qua nhiềulần nâng cấp và thay đổi từ phiên bản 1.0 cho đến bây giờ là phiên bản 4.5 Tháng03.2002 sản phẩm Voyager được nhượng lại cho Recursion Software, một công tychuyên về các sản phẩm viết trên C++ và Java để đm bo cho việc phát triểnVoyager sau này Các phiên bản từ 1.0 đến 3.3 Voyager được phân phối cho cácnhà phát triển như một freeware Hiện tại Voyager đã có phiên bản 4.5 Evaluationhoàn toàn tương thích với JDK1.3, JDK1.2 và JDK1.1 Phiên bản này bao gồm 6sản phẩm, trong đó sản phẩm chính yếu dùng cho các ứng dụng mobile agent làVoyager ORB Professional
Voyager sử dụng ngôn ngữ lập trình Java với cú pháp chuẩn để tạo dựng cácđối tượng ở xa một cách rất dễ dàng, cho phép các đối tượng này trao đổi thông