Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
1 (c) SE/FIT/HUT 2005 1 Lesion 10 Agent Based and A-UML Hệ dựa tác tử và mở rộng AUML hunglt@it-hut.edu.vn (c) SE/FIT/HUT 2005 2 Phát triển hệ thống phần mềm Độ phức tạp Có một số lượng lớn các thành phần với nhiều tương tác Có nhiều mô hình được đưa ra để làm cho việc phát triển phần mềm dễ dàng hơn OO, Component-ware,…… được phát triển theo chiều tăng của độ phức tạp của phần mềm. Mô hình – sub-routines; – procedures & functions; – abstract data types; – objects; to agents. (c) SE/FIT/HUT 2005 3 Phầnmềm hướng agent Sự phát triển các hệ đa agent phức tạp yêu cầu không chỉ các mô hình và kĩ thuật Phương pháp luận mới hỗ trợ cách tiếp cận được công nghệ hoá phân tích và thiết kế hệ thống. Công nghệ phần mềm hướng agent: phân rã bài toán thành nhiều thành phần tương tác và tự trị (agents) mà có các mục tiêu cụ thể để đạt tới (c) SE/FIT/HUT 2005 4 Hệ đa agent như là một cộng đồng các agent, nơi mà tương tác qua lại giữa các agent và với môi trường của chúng đưa tới một hành vi toàn thể hữu ích. Một hệ đa agent bao gồm: 9 Các agent, được xem như các cá thể 9 Tương tác giữa các agent 9 Sự phụ thuộc qua lại giữa agent và các quan hệ cộng đồng, hay là các quan hệ tổ chức Hệ thống dựa agent (c) SE/FIT/HUT 2005 5 Phân tích và thiết kế hướng agent Phân tích hướng agent bắt đầu từ việc định nghĩa các yêu cầu và mục đích của hệ thống. các mục đích toàn thể của ứng dụng được phân rã thành những mục tiêu con nhỏ hơn, cho tới khi có thể quản lí được chúng. Việc phân tích hướng agent phải nhận ra trách nhiệm của một agent (c) SE/FIT/HUT 2005 6 Mỗi agent trong hệ thống được giao một hoặc một số nhiệm vụ riêng agent phải nắm được đầy đủ trách nhiệm đối với việc hoàn thành nhiệm vụ được giao. Các nhiệm vụ cộng đồng biểu diễn các chức năng toàn cục của hệ thống agent. Thiết kế quan tâm tới sự biểu diễn các mô hình trừu tượng lấy từ pha phân tích. Trách nhiệm, nhiệm vụ và giao thức tương tác cần được ánh xạ lên agent, các tương tác và tổ chức cấp cao Thiết kế phần mềm hướng agent 2 (c) SE/FIT/HUT 2005 7 Lý thuyết Gaia Gaia là một lý thuyết dùng trong phân tích và thiết kế hướng agent. Phân tích hướng tới việc phát triển để hiểu rõ hệ thống và cấu trúc của nó, mà không tham chiếu tới việc thực hiện chi tiết. (c) SE/FIT/HUT 2005 8 Gaia - Overview Motivation behind Gaia Tồn tại nhiều phương pháp nhưng không có phương pháp nào hỗ trợ Agnet. Cụ thể trong tương tác và tổ chức Mô hình Gaia Supports Hỗ trợ phân tích thiết kế mức vi mô Micro-level Agent Structure Hỗ trợ phân tích thiết kế mức cao vĩ mô Macro-level Agent Society and Organizational Structure Inter-agent relationships and agent abilities Static at runtime ⇒ Most useful in closed systems (c) SE/FIT/HUT 2005 9 Gaia Analysis Process 1. Find Roles in the system • Similar to finding (natural) objects and classes in OOA 2. Model interactions between roles • Responsibilities • Liveness Properties – what good the agent does for the system • Safety Properties – ”safety-net” for the system • Permissions – what the role is allowed to do • Activities – the roles own tasks (doesn’t require interaction) • Protocols – particular patterns of interaction (e.g. Auction) (c) SE/FIT/HUT 2005 10 9 Xác định các vai trò trong hệ thống và định nghĩa một dãy các vai trò chính bằng ngôn ngữ miêu tả phi hình thức. 9 Với mỗi vai trò xác định các giao thức liên kết. 9 Xem xét lại các mô hình. • Đầu ra của pha phân tích là mô hình hoàn thiện của các vai trò – mô tả về trách nhiệm, quyền hạn, các giao thức tương tác, hoạt động và mô hình tương tác • mỗi giao thức được mô tả về sự chuyển đổi dữ liệu và các thành phần có liên quan. Pha phân tích (c) SE/FIT/HUT 2005 11 Gaia Design Process Ánh xạ vai trò vào các loại Agent và tạo ra các thực thể Similar to define classes in OOD Similar to instantiate (right number of) objects in OOD Định nghĩa mô hình dịch vụ How to fulfill a role in one or several agents Tạo mô hình sơ bộ Representation of communication between agents (c) SE/FIT/HUT 2005 12 • Pha thiết kế tập trung vào việc định nghĩa hệ thống agent để nó có thể hoạt động. Các giai đoạn: 9 Xác định mô hình agent, kết hợp vai trò vào các loại agent. => xây dựng hệ thống phân cấp các loại agent và ước lượng số lượng các instance được yêu cầu đối với mỗi lớp. 9 Xác định các dịch vụ mà agent phải cung cấp để hoàn thành các nhiệm vụ mà chúng được giao bằng cách phân tích các nhiệm vụ và hoạt động. Đó là các giao thức được định nghĩa cho mỗi vai trò. 9 Phát triển các mô hình thích hợp để xác định các khả năng thiếu sót trong thiết kế. • Đầu ra của pha thiết kế là kiến trúc thực tế của hệ thống agent. Pha thiết kế 3 (c) SE/FIT/HUT 2005 13 Các khái niệm cơ bản của lý thuyết GAIA (c) SE/FIT/HUT 2005 14 Giới hạn của GAIA Không có các hệ thống mở: Gaia yêu cầu phải biết các agent trong hệ thống, cũng như các giao thức tương tác giữa chúng Không có các agent tư lợi: Gaia không giải quyết rõ ràng các trường hợp trong đóbản chất của các tương tác là không hợp tác Không có các luật cộng tác: Do thiếu sự trừu tượng hoá các nhiệm vụ chung nên Gaia không mô hình hoá rõ ràng các luật cộng tác và kết quả là gây thiếu sót hoặc bỏ qua hoàn toàn chúng trong các định nghĩa về agent (c) SE/FIT/HUT 2005 15 Mô hình cộng tác Mô hình cộng tác giải quyết các vấn đề về tạo/huỷ, truyền thông, phân tán, di động trong không gian cũng như đồng bộ theo thời gian của một tập các thực thể, các quá trình, các đối tượng hoặc các agent. Mô hình cộng tác có thể bao gồm 3 thành phần sau: 9 Coordinables: các thực thể mà tương tác qua lại của chúng được thực hiện theo mô hình. VD: các agent trong hệ thống đa agent 9 Coordination media: sự trừu tượng hoá khả năng tương tác của agent và là hạt nhân xung quanh các thành phần được tổ chức. VD như cờ hiệu, các điều khiển, kênh và các phương tiện phức tạp khác … 9 Coordination laws:định nghĩa các behaviour của Coordination media để đáp ứng các sự kiện tương tác. (c) SE/FIT/HUT 2005 16 chia thành 2 lớp data-driven và control-driven: Trong mô hình cộng tác control-driven, các agent có khả năng cộng tác tương tác với các agent khác và với thế giới bên ngoài thông qua cổng vào/ra được định nghĩa từ trước Trong mô hình data-driven, các agent có khả năng cộng tác tương tác với thế giới bên ngoài bằng cách chuyển đổi cấu trúc dữ liệu thông qua phương tiện cộng tác. Khi mô hình cộng tác được sử dụng, thì phương tiện cộng tác sẽ làm trung gian cho tất cả các tương tác của các agent và ảnh hưởng đến kết quả của các sự kiện tương tác theo các quy tắc cộng tác của chúng. 2 agent có thể tương tác với nhau thậm chí chúng không biết gì về nhau, phương tiện cộng tác hầu như chỉ quan tâm đến việc kết nối giữa các agent bằng cách gửi thông điệp. Mô hình cộng tác (c) SE/FIT/HUT 2005 17 Bằng cách làm trung gian cho tất cả tương tác của các agent, phương tiện cộng tác về bản chất có thể kiểm soát và ảnh hưởng tới tất cả các tương tác. Phương tiện cộng tác có thể ép buộc behaviour của các agent tuân theo các tương tác của chúng bằng cách: 9 Ngăn cản việc truy nhập của các agent tới phương tiện cộng tác. 9 Sửa đổi ngữ nghĩa của các tương tác của agent (c) SE/FIT/HUT 2005 18 Việc chấp nhận mô hình cộng tác dẫn tới quan niệm hệ thống đa agent như một cộng đồng, trong đó các nhiệm vụ riêng lẻ của các agent phải được mô hình hoá một cách riêng biệt với các nhiệm vụ của cộng đồng. Hệ thống đa agent nên được xây dựng dựa trên một hạ tầng truyền thông phổ biến, hoạt động thực tế của hệ thống nên bao gồm hoạt động của cơ sở hạ tầng cần thiết làm cho tất cả các tương tác đều tuân theo behaviour của phương tiện cộng tác. 4 (c) SE/FIT/HUT 2005 19 Mô hình cộng tác (c) SE/FIT/HUT 2005 20 Multiagent Systems Engineering Methodology (MaSE) Motivation behind MaSE Lack of proven methodologies for agent-systems Lack of industrial-strength software tools Similar to Gaia with respect to Generality Application Domain (closed systems) MaSE’s differences from Gaia Supports automatic code creation Scott DeLoach (c) SE/FIT/HUT 2005 21 The MaSE Process – I 1. Capturing Goals • initial system specification ⇒ struct. hierarchy of goals • i.e. similar to requirement specification 2. Applying Use Cases (i.e. UML) • Use cases and sequence diagrams based on spec. • Use cases – represent logical interaction path • Sequence diagrams – number of messages needed 3. Refining Roles • Creates roles corresponding to the goals (or a set of goals) • Creates tasks – how to solve goals related to the role (c) SE/FIT/HUT 2005 22 The MaSE Process – II 4. Creating Agent Classes • Maps roles to agent classes in an agent class diagram • Resemble object class diagrams, but semantics is high-level conversation versus inheritance (and encapsulation) 5. Constructing Conversations • Defines coordination protocols for interaction with state diagrams 6. Assembling Agent Classes • Internal functionalities of classes created • Based on either BDI, reactive, planning, knowledge-based and user-defined architecture. (c) SE/FIT/HUT 2005 23 The MaSE Process – III 7. System Design • Create instances of the agent classes presented in a deployment diagram Future vision of MaSE Support automatic code generation based on deployment diagram (c) SE/FIT/HUT 2005 24 Design Patterns • ”a pattern embodies a complete idea within a program, and thus it can sometimes appear at the analysis phase or high-level design phase” Bruce Eckel, ”Thinking in Patterns with Java” • Types of patterns Creational • How an object can be created (e.g. Factory, Prototype) Structural • Design to satisfy project constraints (e.g. Iterator) Behavioral • Objects handling particular types of actions (e.g. Interpreter) 5 (c) SE/FIT/HUT 2005 25 Design Patterns for Agents 7-layer architecture 1. Mobility – mobile agents 2. Translation – communication/language 3. Collaboration – multi-agent issues 4. Actions – what agents should do 5. Reasoning – ”intelligence” 6. Beliefs – what the agent beliefs 7. Sensory – stimulus/response Elisabeth A. Kendall (c) SE/FIT/HUT 2005 26 Design Patterns for Mobile Agents Classification scheme – 3 classes 1. Travelling class 2. Task class 3. Interaction class Danny B. Lange (c) SE/FIT/HUT 2005 27 Formal Methodologies in Software Engineering A formal methodology is usually logic-based It can be used for Specification of a system • I.e. Requirement specification Directly (automatically) programming a system • I.e. Automatic code generation Verification of a system • Prove that a system is/behaves correct (according to its specifications) (c) SE/FIT/HUT 2005 28 Formal Methodologies in AOSE Concurrent MetateM Temporal logic-based programming language for agents Summary: future can found (calculated) based on the present and past state. Formal Verification Axiomatic approach – Deductive Verification • Prove using logical deduction that an agent system is correct (powerful but can have exponential runtime) Semantic approach - Model Checking • Reverse engineer program to create a logic model, then check if the (formal) specification is valid in this model (c) SE/FIT/HUT 2005 29 Conclusions of Lecture Agent-Methodologies are close to existing Software Engineering (e.g. OO) methodologies Main difference is focus on interaction and behavior There is currently a lack of (industrial-strength) methodologies (e.g. UML) and software tools supporting agents. (c) SE/FIT/HUT 2005 30 AUML 6 (c) SE/FIT/HUT 2005 31 UML( Unified Modeling Language) Trong các thập niên 70, lập trình có cấu trúc chiếm ưu thế trong sự phát triển phần mềm. Trong những năm 80, các phương pháp hướng đối tượng 1995 UML ( Unified Modeling Language) UML là ngôn ngữ rất mạnh để mô hình hóa các đối tượng và thao tác của các đối tượng Các mô hình tĩnh(Static Model): các biểu đồ lớp và gói Các mô hình động(Dynamic Model): biểu đồ tương tác, lược đồ trạng thái,biểu đồ hoạt động . (c) SE/FIT/HUT 2005 32 UML cho hệ tác tử Các hệ thống dựa agent đòi hỏi tất cả các quá trình của công nghệ phần mềm như: phân tích, thiết kế, đánh giá, bảo trì… Agent có những điểm khác biệt (như đồng bộ và không đồng bộ các thao tác…) nên có những lúc UML không thể hỗ trợ toàn bộ để mô hình hóa hệ thống dựa agent UML được mở rộng để có thể mô hình hóa các hệ thống agent Đề xuất các mở rộng cho các đại diện UML: gói, mẫu, biểu đồ diễn tiến, biểu đồ cộng tác, biểu đồ hoạt động, biểu đồ lớp, biểu đồ triển khai và các lược đồ trạng thái. (c) SE/FIT/HUT 2005 33 Sử dụng AUML trong UML Sử dụng các biểu đồ trường hợp sử dụng hướng agent mô tả các tương tác với người dùng, môi trường và phần còn lại của hệ thống Sử dụng biểu đồ ontology với các lớp mô hình các lớp thực thể trong ontology để mô hình hoá ontology Sử dụng các biểu đồ lớp UML gọi là các architecture diagram để mô hình hoá kiến trúc hệ thống agent, tương tác giữa các agent và vai trò của agent Các hành động của agent được mô tả bằng các phương thức (c) SE/FIT/HUT 2005 34 A-UML Để đặc tả cho hệ thống dựa tác tử , FIPA (Foundation for Intelligent Physical Agents ) sử dụng UML mở rộng, gọi là AUML ( Agent Unified Modeling Language). để đặc tả giao thức tương tác tác tử (AIP – Agent Interaction Protcols). Phương thức tương tác ở đỉnh của biều đồ là mức thấp nhất, sau đó là các mức chi tiết hơn (c) SE/FIT/HUT 2005 35 AUML: Một hướng tiếp cận giao thức phân mức Một giao thức tương tác agent (AIP) mô tả các mẫu truyền thông như một dãy các thông điệp cho phép giữa các agent và ràng buộc trong nộidungcủa các thông điệp này Agent Interaction Protocols (3 layers) 1. Mô tả giao thức liên lạc -Communication Protocol • Type of interaction (UML Packages and Templates) 2. Mô tả tương tác giữa các agen - Interactions • Sequence, Collaboration, Activity Diagrams and Statecharts 3. Mô tả quá trình xử lý bên trong agent - Internal Agent Processing (micro-issues) • Activity Diagrams and Statecharts (c) SE/FIT/HUT 2005 36 Mức 1: Biểu diễn giao thức liên lạc ở mức tổng quan Giao thức tương tác AGENT cung cấp nhiều giải pháp có thể sử dụng lại UML cung cấp hai kỹ thuật nhằm biểu diễn các giải pháp cho giao thức 9 Package: tập hợp các nhân tố mô hình hoá mức khái niệm 9 Template: Template là một mô hình tham số 7 (c) SE/FIT/HUT 2005 37 Ví dụ về Package Các gói đóng cung cấp một kỹ thuật chung cho việc phân chia các mô hình và nhóm các thành phần mô hình. Mỗi gói đóng được biểu diễn như sau : Mỗi gói đóng là nhóm thành phần có quan hệ logic với nhau. Kiến trúc của hệ thống được biểu diễn nhờ mô hình liên kết giữa các gói đóng. Một gói đóng có thể chứa các gói đóng khác. Dùng gói mô tả để mô tả giao thức lồng nhau Purchasing protocol (Broker X Retailer) Supplying protocol (Retailer X Wholesaler) (c) SE/FIT/HUT 2005 38 Ví dụ về Template Một template là một thành phần mô hình được tham số hoá có các tham số bị ràng buộc tại thời gian mô hình (ví dụ, khi một mô hình tuỳ biến mới được tạo ra), được mô tả bằng các hộp vẽ bằng nét đứt ở góc phải trên của gói (c) SE/FIT/HUT 2005 39 Mức 2: Biểu diễn tương tác giữa các AGENT Sử dụng các biểu đồ trong UML để biểu diễn giao thức: 9 Biểu đồdiễn tiến 9 Biểu đồ tương tác 9 Biểu đồ hoạt động 9 Biểu đồ trạng thái Hai biểu đồ trên bao gồm các mẫu cấu trúc mô tả tương tác giữa các đối tượng Hai biểu đồ dưới biểu diễn các luồng xử lý (c) SE/FIT/HUT 2005 40 Biểu đồ diễn tiến Biểu đồ diễn tiến là biểu đồ giữa các đối tượng theo thời gian. Cột ngang biểu diễn các agent Cột dọc được thể hiện sự tồn tại của đối tượng theo thời gian được gọi là lifeline Hình vuông có vị trí dọc theo lifeline thể hiện thời gian agent thực hiện hành động (activation). Thời gian được trôi từ trên xuống dưới, các thông điệp được đánh số theo thời gian. Biểu diễn Agent:AGENT-name/role:class Một tương tác Agent cơ bản có dạng hình vẽ Diễn tả các liên lạc đồng thời (and),không đồng thời (or), các vai trò khác nhau của agent (c) SE/FIT/HUT 2005 41 Biểu diễn tương tác đa luồng Hình (a) biểu diễn các luồng được gửi đi song song (phép AND) Hình (b) bao gồm một hộp quyết định xác định luồng nào sẽ được gửi đi (phép OR) Hình (c) xác định trong một thời điểm chỉ có một CA được gửi đi (phép XOR) (c) SE/FIT/HUT 2005 42 Khach hang Gio hang X X X Yeu cau dat hang Tu choi Khong hieu De nghi Thong bao Huy bo de nghi Thanh cong Loi Thong tin Chap nhan de nghi 8 (c) SE/FIT/HUT 2005 43 Ví dụ về biểu đồ tuần tự (c) SE/FIT/HUT 2005 44 Biểu đồ tương tác Biểu đồ cộng tác : là một cách khác mô tả tương tác giữa các agent (c) SE/FIT/HUT 2005 45 Biểu đồ hoạt động Biểu đồ mô tả hành vi bên trong của một phương thức hay một trường hơp sử dụng. Biểu đồ nhằm nhấn mạnh về các xử lý và các sự kiện kích hoạt chúng Biểu đồ hoạt động Cung cấp luồng các điều khiển Sử dụng cho các giao thức phức tạp chứa nhiều tiến trình đồng thời (c) SE/FIT/HUT 2005 46 Mức 3: biểu diễn xử lý bên trong AGENT Tại mức thấp nhất, đặc tả về một giao thức AGENT yêu cầu giải thích rõ ràng những xử lý chi tiết bên trong AGENT để tiến hành giao thức Các mô hình mức cao (gọi là holon) bao gồm tập các AGENT mức thấp hơn Các hành vi bên trong có thể được biểu diễn bằng việc sử dụng đệ quy các cách biểu diễn mức 2 đã nói ở trên (c) SE/FIT/HUT 2005 47 Mở rộng biểu đồ hoạt động Hình tròn có dấu chấm ở giữa thể hiện giao diện của quy trình được thực hiện bởi các AGENT bên ngoài (c) SE/FIT/HUT 2005 48 Mở rộng biểu đồ trạng thái Các AGENT giao tiếp với các AGENT khác được thể hiện bằng các đường đứt nét 9 (c) SE/FIT/HUT 2005 49 Biểu đồ trạng thái (c) SE/FIT/HUT 2005 50 Một số mở rộng khác Đặc tả vai trò Agent 9 Việc mô tả vai trò của AGENT trong tiến trình tương tác với các AGENT khác là một kỹ thuật sống còn đối với mỗi mô hình của hệ thống dựa AGENT Mở rộng Package 9 Biểu diễn Agent khi Agent hoạt động như một giao diện Mở rộng biểu đồ thực thi 9 Biểu diễn tính lưu động (mobility) của Agent Một số khái niệm dựa AGENT khác (c) SE/FIT/HUT 2005 51 Dang kiem tra cac truong Dang kiem tra Credit Card Phim xac nhan duoc nhan Dang dang ky mat hang Dang tinh toan tong cuoi cung Dang cap nhat ban ghi Hoan thanh dang ky Bao cao duoc yeu cau Dang cap nhat thong tin khach hang Dang hien thi bao cao Dang sua loi Dang cap nhat dang ky Dang hien thi thong tin mat hang Lap lai cho moi mat hang Lap lai cho moi mat hang Y Da cap nhat xong Ban ghi da cap nhat Tong cuoi da duoc tinh Dang thong bao loi i >3 i<3 va Credit card khong co gia trih Cac truong chua dien va i<5 i>5 N Nhan phim dat hang (c) SE/FIT/HUT 2005 52 Đặc tả vai trò sâu hơn: agent/role Diễn tả vai trò các agent trong tương tác Nếu số lượng agent và số vai trò tăng, biểu đồ UML trở nên phức tạp Mở rộng gói : tương tác trong bản thân agent Mở rộng biểu đồ triển khai Một số ký pháp dựa agent khác (c) SE/FIT/HUT 2005 53 Đặc tả vai trò - 3 phương pháp biểu diễn Phương pháp 1: (c) SE/FIT/HUT 2005 54 Đặc tả vai trò (tiếp) Phương pháp 2: 10 (c) SE/FIT/HUT 2005 55 Đặc tả vai trò (tiếp) Phương pháp 3: (c) SE/FIT/HUT 2005 56 Đặc tả vai trò (tiếp) (c) SE/FIT/HUT 2005 57 Mở rộng Package (c) SE/FIT/HUT 2005 58 Mở rộng biểu đồ thực thi (c) SE/FIT/HUT 2005 59 Một số khái niệm dựa AGENT khác Nhân bản Phân bào và sinh sản (c) SE/FIT/HUT 2005 60 Tổng kết UML cung cấp các công cụ nhằm: 9 đặc tả giao thức tương tác AGENT 9 biểu diễn tập các tương tác giữa các AGENT bên trong giao thức 9 biểu diễn hành vi bên trong AGENT Biểu diễn một số mở rộng UML liên quan tới AGENT . Based and A-UML Hệ dựa tác tử và mở rộng AUML hunglt@it-hut.edu.vn (c) SE/FIT/HUT 2005 2 Phát triển hệ thống phần mềm Độ phức tạp Có một số lượng lớn các thành phần với nhiều tương tác Có nhiều. đồng bộ các thao tác ) nên có những lúc UML không thể hỗ trợ toàn bộ để mô hình hóa hệ thống dựa agent UML được mở rộng để có thể mô hình hóa các hệ thống agent Đề xuất các mở rộng cho các. trong tương tác Nếu số lượng agent và số vai trò tăng, biểu đồ UML trở nên phức tạp Mở rộng gói : tương tác trong bản thân agent Mở rộng biểu đồ triển khai Một số ký pháp dựa agent khác (c)