Bài giảng Thư viện lập trình Agent
Distributed computing
Linking large numbers of different components to
perform joint tasks
Providing support services
To enable reuse of code
To abstract away from implementation level details
To provide uniform access to functions
Middleware defines (part of ) the environment.
Services available: communication, security, etc.
Agents live in a software environment – middleware
plays a large part
ription(s) Các thuộc tính khác Message Sender : agent name Receiver(s) : agent name(s) Nội dung message (c) SE/FIT/HUT 2002 Câu hỏi 4 Một Agent Directory Service hỗ trợ các phương thức register, modify, deregister, search. Mỗi lời gọi đến phương thức này sẽ gửi các thông tin, yêu cầu đến Master System tức là phải thông qua Message Transport Service nào đó, tuy nhiên khi khởi tạo, agent có thể nhận về AgentName trước khi tham chiếu đến MTS ServiceRoot acquired ... [ri.service.DefaultServiceRoot@b819f] AgentNamingService acquired ... [ri.service.naming.rmi.RMIAgentNamingServiceProxy@6b017e] AgentName acquired from AgentNamingService ... [agentname: 11d1def534ea1be0:712c4e:f89fdf7166:-7fee] MessageTransportService acquired ... [ri.service.transport.rmi.RMIMessageTransportService@6b13c7] Tại sao lại thế ? 11 (c) SE/FIT/HUT 2002 Cảm ơn ! (c) SE/FIT/HUT 2002 1.Tại sao cần quản lý tập trung, Service Root và định danh Agent Đây là một hệ đa Agent động, số lượng, kiểu Agent có thể thay đổi. Quản lý tập trung, Service Root sẽ giúp việc quản lý Agent dễ dàng hơn, tăng khả năng đáp ứng của hệ thống Hãy tưởng tượng 1 hệ thống không có Service Root sẽ như thế này : việc tìm kiếm 1 Agent chẳng hạn sẽ phải thực hiện trên toàn bộ hệ thống và điều đó là không thể chấp nhận được Æ Agent A Agent C Agent B Agent D Agent E Agent Master System Agent A Agent Master System Agent C Agent B Agent Master System Agent Master System (c) SE/FIT/HUT 2002 Câu 1 (tiếp) Do đó định danh của 1 Agent cần được quản lý tập trung Trong sơ đồ mở rộng : khi một Agent đăng kí, nó cần được đăng kí ở mức hệ thống từ cao xuống thấp còn khi gỡ bỏ đăng kí thì theo chiều ngược lại từ thấp lên cao Agent Master System Agent A Agent Master System Agent C Agent B Agent Super Master System Sơ đồ mở rộng (c) SE/FIT/HUT 2002 2.Service Root được lấy ở đâu Trước hết cần phải xem lại sơ đồ hệ đa Agent mở rộng Trong câu hỏi này, 1 thành phần đã bị ẩn đi đó là PC, mỗi PC, hệ điều hành là một Sub-Master System. Chú ý là trong trường hợp này không được khởi tạo như 1 agent bình thường Agent Master System Agent A Agent Master System Agent C Agent B Agent Super Master System Sơ đồ mở rộng (c) SE/FIT/HUT 2002 Open Agent Architecture (c) SE/FIT/HUT 2002 Kiến trúc agent mở (OAA) Tổng quan Các khái niệm cơ bản Các thành phần chính trong OAA Lợi ích sử dụng OAA So sánh OAA với công nghệ phân tán 12 (c) SE/FIT/HUT 2002 Các khái niệm cơ bản trong OAA Định nghĩa OAA : - OAA (Kiến trúc Agent mở) là một framework trong đó một cộng đồng các agent phần mềm chạy trên các máy phân tán có thể làm việc với nhau theo các nhiệm vụ được con người hoặc không phải con người tham gia trong cộng đồng uỷ quyền. - Sự đồng điều hành phân tán và truyền thông mức cao là hai ý tưởng trung tâm đối với nển tảng của OAA. (c) SE/FIT/HUT 2002 Tổng quan OAA : - Là một Framework tích hợp việc truyền thông giữa các Software Agent trong môi trường phân tán, thông qua uỷ quyền, điều phối… - Mềm dẻo, thích nghi được với sự tương tác giữa các công cụ phân tán thông qua uỷ quyền các tác vụ, các yêu cầu dữ liệu và tự kích hoạt (trigger). (c) SE/FIT/HUT 2002 Các đặc tính của OAA Tính mở: Các agent có thể được tạo ra từ nhiều ngôn ngữ và giao diện trong các hệ thống đã có. Tính mở rộng: Các agent có thể được thêm hoặc thay thế một cách linh hoạt Tính phân tán: Agent được truyền qua rất nhiều máy tính Tính song song: Có thể thực hiện song song các tác vụ con Kiến trúc mức cao ( high level): Ẩn các phần mềm và phần cứng phụ thuộc Tính đa hình: Có thể kết hợp cùng nhau các cách thức: viết, nói, điệu bộ, vận động. (c) SE/FIT/HUT 2002 Các khái niệm cơ bản Agent trong OAA: - Trong OAA, một agent được định nghĩa như một phần mềm tuân theo các chuẩn chức năng và truyền thông đưa ra bởi OAA - Các agent uỷ quyền và nhận nhiệm vụ thông qua một agent điều phối là Facilitator - Các yêu cầu được diễn tả trong một ngôn ngữ chung cho mọi agent - ICL ( Interagent Communication Language ) (c) SE/FIT/HUT 2002 Tiến trình điều khiển trong OAA requester có thể chọn để chỉ ra một cách từng phần làm thế nào để một mục đích được thực hiện bởi một cộng đồng trong một ngôn ngữ giàu tính trưc quan. Service providers, trong suốt quá trình đăng ký với một agent Facilitator, có thể chỉ ra mã điều kiện kiểm tra và ước lượng hiệu năng nó sẽ cho biết khi nào và dưới hoàn cảnh nào thì agent tiếp nhận công việc. Facilitator agent sử dụng các chiến lược chọn đường độc lập miền đối với việc chia công việc cho cộng đồng các agent dựa trên một yêu cầu đến và các mô tả khả năng cung cấp dịch vụ. Tập hợp các meta-agent (các chuyên gia miền) có thể cộng tác để cung cấp Facilitator với các tri thức xác định miền mà hướng dẫn làm thế nào các nhiệm vụ được thực hiện bời toàn cộng đồng. (c) SE/FIT/HUT 2002 Các thành phần trong OAA 13 (c) SE/FIT/HUT 2002 Các thành phần chính Facilitator agent Meta agent Application agent User Interface agent NL to ICL agent Trigger Giao thức Các agent hỗ trợ khác (c) SE/FIT/HUT 2002 Facilitator agent - Facilitator là một agent đặc biệt cung cấp khả năng phối hợp các agent - Một hệ thống có thể có một hay nhiều Facilitator agent - Các Facilitator agent có thể phối hợp quản lí, trao đổI với nhau (c) SE/FIT/HUT 2002 Facilitator agent 3 chức năng chính của Facilitator 1. Duy trì một đăng ký của dịch vụ agent và các khai báo dữ liệu lên blackboard. 2. Lập kế hoạch một chiến lược thực hiện cho một câu truy vấn. 3. Thực hiện một kế hoạch: phân chia các nhiệm vụ thành các nhiệm vụ nhỏ hơn, liên kết các dịch vụ nhỏ với các nhà cung cấp dịch vụ, chọn đường và thu thập thông tin trong số các thành phần tham dự phân tán (c) SE/FIT/HUT 2002 Facilitator agent Vấn đề : Trong các mô hình đơn giản, tại đó chỉ có một Facilitator phục vụ một số các agent client, thì Facilitator có thể bị tắc nghẽn trong truyền thông và một điểm đơn bị lỗi đối với toàn hệ thống. (c) SE/FIT/HUT 2002 Application agent - Cung cấp một tập các dịch vụ của một nhu cầu cụ thể. Các ứng dụng này có thể là các công nghệ độc lập miền Ví dụ: nhận dạng tiếng nói, xử lý ngôn ngữ tự nhiên, email, data retrieval, data mining …vv Hoặc user-specific hay domain-specific Ví dụ: agent lập kế hoạch du lịch. Các ứng dụng agent có thể dựa trên các thư viện trong đó agent có thể được tạo thông qua các lời gọi hàm API. (c) SE/FIT/HUT 2002 Meta agent - Giúp đỡ Facilitator trong việc phối hợp hoạt động của các agent khác. - Trong khi facilitator dùng phối hợp độc lập miền, meta-agent sử dụng miền và các tri thức xác định ứng dụng hoặc các rules, thuật toán học, lập kế hoạch. 14 (c) SE/FIT/HUT 2002 User Interface agent - Có thể bao gồm một tập các agent - Mỗi agent giám sát một kiểu đầu vào khác nhau và cộng tác để đưa ra một cách diễn giải tốt nhất cho các đầu vào hiện tại. (c) SE/FIT/HUT 2002 Client agent - Các Agent trong hệ thống OAA là một Facilitator Agent hoặc là một Client Agent - Khi được gọi đến, một Client Agent tạo một kết nối tới một Facilitator, được biết như là Parent Facilitator của nó, và báo cho Facilitator các dịch vụ nó cung cấp - Các loại dịch vụ: đáp ứng các mục đích theo thủ tục, duy trì và truy vấn các kho lưu trữ dữ liệu, thiết lập và trả lời tới bộ kích hoạt của các loại chung (c) SE/FIT/HUT 2002 Ngôn ngữ truyền thông ICL -Tất cả các truyền thông liên agent đều sử dụng một ngôn ngữ xác định trong OAA, đó là ICL (Interagent Communication Language) -Đặc điểm: phân tách câu hỏi What từ câu hỏi How . Các tham số điều khiển chỉ ra làm thế nào các nhiệm vụ có thể thực hiện, ai nên thực hiện nhiệm vụ, và đều phân tách từ các mô tả bản thân nhiệm vụ. (c) SE/FIT/HUT 2002 Các thành phần trong ICL - Khai báo các khả năng ( solvable ) - Các sự kiện - Các yêu cầu dịch vụ -Các phần tử dữ liệu -Trigger -Khai báo tham số -Tên và địa chỉ agent (c) SE/FIT/HUT 2002 Trigger -OAA cung cấp một cơ chế giúp Agent có thể định rõ một hành động khi tập hợp các điều kiện của chúng được thoả mãn. Mỗi Agent có thể cài đặt các triggers một cách cục bộ (trong chính Agent đó) hoặc từ xa (trong Facilitator của nó) hoặc tại một Agent ngang hàng. -Có 4 loại trigger : task, com, data, và time (c) SE/FIT/HUT 2002 Trigger Các loại trigger: Task: theo dõi các điều kiện gắn với agent, ví dụ như “Khi email đến, thông báo cho tôi.”. Com(munication): tìm kiếm các sự kiện truyền thông agent mức thấp, ví dụ như “Khi nào một sự kiện agent ngắt kết nối, hãy ghi lại thời gian.”. Data: nắm bắt sự thay đổi của thông tin, ví dụ “Khi tình trạng điện thoại rảnh, hãy báo cho tôi.”. Time: các sự kiện hướng thời gian, ví dụ như “Ngày thứ 5, lúc 14h gửi cho tôi một phiếu mời họp mặt.” 15 (c) SE/FIT/HUT 2002 Các agent hỗ trợ trong OAA -Agent phân tích ngôn ngữ tự nhiên. -Agent nhận dạng tiếng nói. -Agent text-to-speech. -Agent cơ sở dữ liệu. -Agent điện thoại (cho phép mobile truy nhập vào nhận dạng tiếng nói từ các vị trí từ xa). - ….vv ( monitor, debug ) (c) SE/FIT/HUT 2002 Lợi ích sử dụng OAA -Cung cấp các kỹ thuật đa năng trong liên kết (interoperation) và phối hợp hoạt động. -Giao diện sử dụng gần gũi với con người -Các yêu cầu công nghệ phần mềm ( tái sử dụng, ứng dụng linh hoạt ..vvv) -Kết hợp các hệ thống thương mại với các công nghệ trí tuệ nhân tạo, ví dụ như lập kế hoạch, nhận dạng tiếng nói, ngôn ngữ tự nhiên,vv... (c) SE/FIT/HUT 2002 Hướng phát triển -Nhiều công nghệ được tích hợp vào OAA. Tăng số lượng các hệ thống được xây dựng để trình diễn khả năng của các công nghệ này. -Tuy nhiên, sự phát triển trong công nghệ sẽ tiếp tục trong nhiều năm nữa và hy vọng OAA sẽ tiếp tục là một phần của sự phát triển.
File đính kèm:
- Bài giảng Thư viện lập trình Agent.pdf