Với khả năng phân chia không gian vấn đề và tổ chức tốt các mối quan hệ phụ thuộc cũng như các tương tác trong một hệ thống phức tạp mà Công nghệ phần mềm hướng agent là một cách tiếp cậ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN NGỌC ĐỊNH
HỆ THỐNG LỌC VÀ SẮP XẾP TIN TỨC THEO NGỮ CẢNH NGƯỜI DÙNG
LUẬN VĂN THẠC SĨ
Hà Nội - 2008
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN NGỌC ĐỊNH
HỆ THỐNG LỌC VÀ SẮP XẾP TIN TỨC THEO NGỮ CẢNH NGƯỜI DÙNG
Ngành: Công nghệ thông tin
Trang 3MỞ ĐẦU 1
CHƯƠNG 1.KHÁI NIỆM VỀ AGENT 3
1.1.Agent là gì? 3
1.2.Phân loại agent 5
1.2.1.Phân loại agent theo độ thông minh 5
1.2.2.Phân loại agent theo tính di động 5
1.2.3.Phân loại theo khả năng giao tiếp và cộng tác 6
1.3.Phân loại hệ thống agent 7
1.3.1.Phân loại hệ thống theo số lượng agent 7
1.3.2.Phân loại hệ thống theo số lượng nơi cư trú (môi trường) 7
CHƯƠNG 2.CÔNG NGHỆ PHẦN MỀM HƯỚNG AGENT 8
2.1.Cách tiếp cận hướng agent trong công nghệ phần mềm 8
2.1.1.Phân chia hướng agent 10
2.1.2.Trừu tượng hóa hướng agent 11
2.1.3 Sự cần thiết cho việc quản lý linh hoạt sự thay đổi của cấu trúc tổ chức 11
2.2.So sánh hướng agent với hướng đối tượng và phần mềm đóng gói 12
2.3.Vòng đời phát triển của phần mềm hướng agent 13
2.3.1.Mô hình hóa hệ thống agent 13
2.3.2.Phân tích thiết kế 14
2.3.3.Kiểm thử 15
CHƯƠNG 3.PHƯƠNG PHÁP THIẾT KẾ & PHÁT TRIỂN HỆ THỐNG ĐA AGENT PASSI 17
3.1.1.Giới thiệu về PASSI 17
3.2.Mô tả yêu cầu 18
3.3.Xác định các agent 18
3.4.Xác định vai trò 19
3.5.Xác định các tác vụ 19
3.6.Mô tả Ontology - Ontology Description 21
3.7.Định nghĩa cấu trúc đa agent 30
3.8.Định nghĩa cấu trúc của từng agent 31
3.9.Mô tả các hành vi trong hệ thống đa agent 31
3.10.Mô hình mã chương trình - Code Model 32
3.11.Mô hình triển khai Deployment Model 32
CHƯƠNG 4.XÂY DỰNG HỆ THỐNG LỌC VÀ SẮP XẾP TIN TỨC THEO NGỮ CẢNH NGƯỜI DÙNG 33
4.1.Mô tả bài toán 33
4.1.1.Các Use Case hệ thống 34
4.1.2.Xác định các Agent 37
4.1.3.Xác định vai trò của các agent 38
4.1.4.Xác định các tác vụ của các agent 41
4.2.Mô hình xã hội các agent 43
Trang 44.3.Mô hình thực thi các agent 47
4.3.1.Các trúc các agent (đa agent) 47
4.3.2.Định nghĩa cấu trúc từng agent 48
4.4.Cài đặt và triển khai 50
4.5.Một số giao diện 50
4.6.Thử nghiệm và đánh giá 51
KẾT LUẬN 52
Trang 5Từ viết tắt Cụm từ viết đầy đủ
Trang 6MỞ ĐẦU
Hiện nay với sự phát triển các kênh thông tin trên Internet, số lượng tin tức hàng ngày rất nhiều và phong phú Người dùng thường mất rất nhiều thời gian để lướt qua các kênh thông tin này để thu lượm những thông tin về các lĩnh vực mình quan tâm mà thông thường thì lượng thông tin này thường chiếm một phần nhỏ trong lượng tin tức được xuất bản mỗi ngày Thực tiễn đề ra yêu cầu có hệ thống tự động thu thập các tin tức (báo chí) trên Internet, sắp xếp chúng sao cho người dùng có thể tiếp cận được thông tin mình quan tâm Đó là một hệ thống có tính thông minh:
+Có khả năng học hỏi (học để biết thông tin nào là gần với sở thích người dùng)
+Có khả năng phản ứng với môi trường (tự động nhận biết khi có thông tin mới, thông báo với người dùng nếu có thông tin mà người dùng quan tâm)
+Có khả năng đáp ứng cho nhiều người dùng trên hệ thống
+Có khả năng dễ nâng cấp hệ thống về chất lượng cũng như về khả năng đáp ứng của hệ thống
Với bài toán trên hệ thống là một tập hợp các vấn đề:
+Thu thập tin tức
+Trích trọn thông tin
+Phân loại thông tin
+Quản lý thông tin về người dùng
Về tổng thể, đây là một bài toán phức tạp khi kết hợp nhiều các yêu cầu khác nhau với nhiều rằng buộc giữa các yêu cầu Việc chia nhỏ các vấn đề sẽ giúp ta giải quyết bài toán một cách đơn giản hơn rất nhiều Và chia để trị cũng là tư tưởng của phát triển phần mềm hướng agent Với khả năng phân chia không gian vấn đề và tổ chức tốt các mối quan hệ phụ thuộc cũng như các tương tác trong một hệ thống phức tạp mà Công nghệ phần mềm hướng agent là một cách tiếp cận mới cho các hệ thống phức tạp và đó cũng là lý do mà tôi đã chọn hướng agent để giải quyết bài toán này
Trang 7Agent là một cách tiếp cận mới với các đặc điểm: phân tán, tự trị, thông minh, hoạt động tin cậy, thông minh… có thể đáp ứng được những yêu cầu ngày càng phức tạp của các hệ thống phần mềm hiện đại Theo tư tưởng của công nghệ phần mềm hướng agent, hệ thống phần mềm như một tập các agent, mỗi agent có tính thông minh, tự trị, tương tác, di động và có mục tiêu hoạt động cụ thể
Sự phát triển của công nghệ agent đang đặt ra một tương lai hứa hẹn cho việc phát triển ngành công nghệ phần mềm ngày một tốt hơn Công nghệ agent sẽ ngày càng góp phần nhiều hơn nữa trong công nghiệp phần mềm của thế giới nói chung và của nước
ta nói riêng
Mục đích của luận văn này là việc xây dựng hệ thống phát triển hệ thống lọc và sắp
xếp tin tức theo ngữ cảnh người dùng đáp ứng các khả năng thu thập nội dung các
bài viết trên các website tin tức tiếng Việt trên Internet và sắp xếp kết quả hiển thị thứ
tự các bài viết theo sở thích thói quen của người dùng dựa trên việc ứng dụng công nghệ Agent
Cấu trúc các phần còn lại của luận văn như sau:
Chương 1 trình bày các kiến thức cơ sở về tác tử (agent), chương 2 đi sâu vào công nghệ phần mềm hướng agent
Chương 3 trình bày phương pháp thiết kế và phát triển hệ thống đa agent PASSI - Process for Agent Societies Specification and Implementation [1]
Chương 4 trình bày Hệ thống phát triển hệ thống lọc và sắp xếp tin tức theo ngữ
cảnh người dùng được thiết kế sử dụng phương pháp PASSI.
Trang 8CHƯƠNG 1 KHÁI NIỆM VỀ AGENT
1.1 Agent là gì?
Hiện nay thuật ngữ agent được sử dụng rất nhiều trong lĩnh vực thông tin như Mobile Agent - thuật ngữ chỉ phân mềm có khả năng di chuyển giữa các nền tảng khác nhau, User- Agent sử dụng trong giao thức HTTP để xác định thông tin trình duyệt… Vậy agent là gì?
Hiện nay một số định nghĩa được đề xuất, trong đó nổi bật là định nghĩa của hai tác giả Wooldridge và Jennings đưa ra năm 1995 Định nghĩa đó như sau[2]:
Một phần cứng hoặc (phần nhiều là) hệ thống phần mềm có các thuộc tính sau:
người hoặc các agent khác và có một số điều khiển thông qua các hành động
và trạng thái nội tại của chúng;
người) thông qua một vài loại ngôn ngữ giao tiếp của agent;
(nó có thể là thế giới thực, là người dùng thông qua giao diện sử dụng của họ, hoặc một tập các agent khác, Internet hoặc có thể là tất cả các sự kết hợp trên),
và phản ứng đúng lúc nhằm thay đổi bản thân chúng.
trường mà chúng còn có khả năng thực hiện những hành vi một cách chủ động.
Một định nghĩa gần đây hơn Wooldridge đề xuất năm 2002:
Một agent là một hệ thống máy tính mà nó cư trú trong một vài môi trường và nó có khả năng hoạt động một cách độc lập trong môi trường đó đúng với mục tiêu thiết kế
Theo định nghĩa trên agent là:
• Các thực thể giải quyết vấn đề có thể nhận biết một cách rõ ràng với ranh giới
và giao diện rõ ràng
Trang 9• Được đặt (nhúng) trong môi trường cụ thể - chúng nhận các đầu vào liên quan đến các trạng thái của môi trường thông qua các bộ cảm biến của chúng và hành động tác động lại môi trường thông qua các bộ phản ứng Được thiết kế để đáp ứng vai trò nhất định - chúng có mục tiêu cụ thể để hoàn thành, nó có thể hoàn toàn độc lập với các agent khác.
• Tự trị - chúng điều khiển thông qua các trạng thái và các hành vi của chúng
• Khả năng đưa ra hành vi giải quyết vấn đề (phụ thuộc ngữ cảnh) - chúng cần phải phản ứng lại những thay đổi diễn trong môi trường trong thời gian cho phép để thỏa mãn mục tiêu thiết kế và có khả năng xây dựng các mục tiêu mới
và thực hiện nhằm hoàn thành mục tiêu của nó [3]
Định nghĩa thuật ngữ agent thường có xu hướng theo cái của mục đích của người định
nghĩa và theo loại agent mà họ quyết định thiết kế “Ranh giới của một agent có nghĩa
là một công cụ cho việc phân tích các hệ thống, không có một mô tả chính xác nào có thể phân chia được thế nào là agent thế nào là không phải agent” (Russell - 1995)
Điều đó có nghĩa là không có thể định nghĩa một cách toàn vẹn cho đáp ứng mọi khía cạnh, mọi lĩnh vực Mặc dù vậy chúng ta vẫn có thể trích ra một số thuộc tính mà các agent bộc lộ:
• Sự tự trị (autonomy): Các agent hành động mà không cần sự can thiệp của con
người và các agent khác
• Sự tồn tại (situated): Các agent được nằm trong môi trường thực hoặc môi
trường ảo
• Khả năng phản ứng (reactivity): Các agent có khả năng nhận thức môi trường
và hành động trong môi trường đó
• Tính chủ động (pro - activity): Các agent không chỉ đơn giản hành động phản
hồi lại môi trường mà chúng có khả năng định ra mục tiêu và lập kế hoạch để đạt được các mục tiêu của chúng
• Khả năng về xã hội (social ability): Các agent tương tác với các agent khác,
đôi khi với cả con người thông qua một số ngôn ngữ agent
• Sự thông minh (intelligent): Các agent có khả năng hoàn thiện tri thức
• Tính tổ chức (organized): Các agent được tổ chức theo cấu trúc giống với xã
hội con người hoặc xã hội sinh thái
• Tính di động (mobile): Các agent có khả năng di chuyển từ nơi này sang nơi
khác Di chuyển ở đây có nghĩa là di chuyển cả mã thực thi và các trạng thái theo agent
Trang 101.2 Phân loại agent
Dựa trên các tiêu chí chính, tác giả tạm phân các agent thành 3 phân loại chính: Độ thông minh, tính di động và khả năng cộng tác và giao tiếp
1.2.1 Phân loại agent theo độ thông minh
Một agent phải có độ thông minh nhất định Sự thông minh là một trong những đặc tính của agent Độ thông minh ở đây được thể hiện ở khả năng agent đó giải quyết một cách công việc theo mục tiêu cụ thể một cách cách độc lập thông qua việc tự điều khiển các hành vi của mình, giao tiếp với các agent khác và khả năng học Một agent càng thông minh nếu nó có thể thực hiện công việc càng ít sự can thiệp của người dùng
Hình 1: Agent thông minh theo phân loại của Nwana
Ví dụ: Một agent mua sản phẩm có thể tự động giao tìm kiếm thông tin về sản phẩm, giao tiếp với các agent bán để thỏa thuận giá cả, và quyết định mua sản phẩm sao cho giá cả là thấp nhất
1.2.2 Phân loại agent theo tính di động
Các agent được phân làm 2 loại mức: Agent có khả năng di động và agent không có khả năng di động
Agent không có khả năng di động là agent chỉ có khả năng thực hiện trong môi trường
nó được tạo ra
Các agent có khả năng di chuyển (di động) từ môi trường này sang môi trường khác Khả năng di động của agent được phân làm 2 loại: [4]
Khả năng học Khả giao tiếp
Khả tự trị Các agent
thông minh
Trang 11• Di động mạnh (strong mobility): Khả năng 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 từ môi trường này sang 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
Agent di động là một sự tiến hóa của mô hình ứng dụng phân tán So sánh với các mô hình ứng dụng phân tán truyền thống như “thực hiện lời gọi hàm từ xa” (RPC - Remote Procedure Call) - máy trạm gửi yêu cầu đến máy chủ và nhận kết quả do máy chủ thực hiện và mô hình Remote Evaluation (REV)[5] – máy trạm gửi mã x trình đến máy chủ và nhận kết quả trả về
Hình 2: Sự tiến hóa của mô hình agent di độngLợi ích của hệ thống agent di động là: Giảm tải mạng - thực hiện phương châm: 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, khả năng thi hành không đồng bộ và tự trị, thích ứng nhanh, khắc phục tình trạng không đồng nhất và nổi trội về khả năng chế ngự lỗi cao
1.2.3 Phân loại theo khả năng giao tiếp và cộng tác
Một agent phải đảm bảo khả năng giao tiếp được với môi trường để có khả năng thực hiện công việc Agent sử dụng khả năng truyền thông để liên lạc trao đổi với môi trường của nó và với các agent khác thông qua một ngôn ngữ truyền thông đã được chuẩn hóa đảm bảo mọi agent có thể hiểu được Các agent cung cấp một mô tả các khả năng truy vấn, giao tiếp để các agent khác có thể hiểu và giao tiếp với nó Khả năng
Kết quả(Dữ liệu)
Hàm(Mã chương trình, tham số dữ liệu)
Kết quả(Dữ liệu)
REV
Agent(Mã nguồn, Dữ liệu, Trạng thái)
Agent di động
Di chuyển
RPC
Trang 12giao tiếp của một agent trong hệ thống sẽ càng đòi hỏi cao khi hệ thống phân chia thành càng nhiều các agent nhỏ Đặc biệt với các giao tiếp được định nghĩa sẵn của mỗi agent giúp quá trình phát triển phần mềm trong giai đoạn bảo trì nâng cấp dễ dàng, khả năng tái sử dụng cao Ví dụ: Khi thực hiện quá trình xây dựng một agent mua hàng, chúng ta cần tìm các loại agent có mô tả bán hàng và thông qua các giao thức được mô tả về bán hàng của agent để agent mua hàng có thể thực hiện giao tiếp với agent bán hàng mà không cần quan tâm đến việc agent bán hàng thực hiện như thế nào Khả năng bảo trì nâng cấp có thể thể hiện ở chỗ một agent bán hàng có thể được xây dựng lại, với khả năng thực hiện công việc tốt hơn miễn sao đảm bảo được các giao tiếp bán hàng sẽ không làm ảnh hưởng gì tới hệ thống ngoài ra trong hệ thống có thể có nhiều loại agent bán hàng khác nhau cho mỗi lĩnh vực khác nhau
1.3 Phân loại hệ thống agent
Phân loại hệ thống agent, tác giả chọn 2 tiêu chí: Số lượng agent trong hệ thống, Số lượng nơi cư trú của agent ( số lượng máy tính tham gia hệ thống)
1.3.1 Phân loại hệ thống theo số lượng agent
Số lượng agent liên kết trong một hệ thống là một tiêu chí để phân lại hệ thống đơn agent với hệ thống đa agent
Hệ thống đơn agent là hệ thống mà các đơn agent tồn tại trong môi trường mà không giao tiếp với bất kỳ một agent nào khác Các agent chỉ kết nối với người dùng, tài nguyên Trái lại, hệ thống đa agent là hệ thống có nhiều agent có khả năng trao đổi, cộng tác với nhau
1.3.2 Phân loại hệ thống theo số lượng nơi cư trú (môi trường)
Hệ thống agent có thể triển khai trên một hoặc nhiều phần cứng máy tính khác nhau tao ra tiêu chí phân loại hệ thống đa điểm (multi - node) và đơn điểm (single - node)
Hệ thống đơn điểm là hệ thống mà môi trường hoạt động được thiết lập trên một máy tính duy nhất Hệ thống đa điểm là hệ thống triển khai trên nhiều máy tính có khả năng giao tiếp như mạng LAN/WAN/Internet đảm bảo được truyền thông giữa các máy Hệ thống đa điểm đảm bảo thực hiện phân tải và hơn thế nữa nó là môi trường thực sự phát huy tác dụng cao cho các agent có tính di động nhằm tối ưu hệ thống
Trang 13CHƯƠNG 2 CÔNG NGHỆ PHẦN MỀM
HƯỚNG AGENT
Ngày nay các hệ thống do các yêu cầu ngày càng phức tạp về nghiệp vụ, về khả năng tính toán, hệ thống phần mềm ngày càng đòi hỏi sự phức tạp hơn Việc thiết kế và xây dựng hệ thống phần mềm gặp rất nhiều khó khăn Để giải quyết vần đề khó khăn này
có nhiều các mô hình phát triển phần mềm (lập trình thủ tục, lập trình cấu trúc, lập trình hướng đối tượng…) Mô hình phát triển phần mềm ngày càng làm cho quá trình phát triển phần mềm được dễ dàng hơn, giảm tính phức tạp của ứng dụng Tuy nhiên các cách tiếp cận hiện tại chưa đáp ứng được yêu cầu của sự thay đổi phần mềm theo
sự biện đổi của môi trường Vòng đời của một phần mềm ngày càng ngắn và nhanh lỗi thời Sự biến đổi liên tục yêu cầu có phương pháp mới trong quá trình làm phần mềm nhằm có những giải pháp linh hoạt cho các ứng dụng lớn, phức tạp và có yêu cầu biến đổi theo thời gian Công nghệ hướng agent hứa hẹn một công nghệ phát triển phần mềm có thể đáp ứng được các yêu cầu này
2.1 Cách tiếp cận hướng agent trong công nghệ phần mềm
Một hệ thống phức tạp bản chất là một tập các thành phần con có liên quan với nhau, mỗi một thành phần bản thân chúng lại là một hệ thống phân cấp Các hệ thống con có thể tương tác với nhau và bản thân các thành phần của hệ thống con cũng tương tác với nhau Cách thức tổ chức quan hệ là không cố định, nó có thể thay đổi theo thời gian Hình 3 minh họa về một hệ thống phức tạp với nhiều các thành phần là các hệ thống con Mỗi hệ thống con gồm nhiều các thành phần, và các thành bên trong một hệ thống con được liên kết thông qua các liên kết thường xuyên và tương tác giữa các hệ thống con là tương tác không thường xuyên Để giải quyết bài toán đó đòi hỏi phải có một công cụ cũng như phương pháp đủ mạnh để quản lý sự phức tạp này[6]:
Phân tách (decomposition): Giải pháp cơ bản nhất để xử lý bất kỳ một vấn đề phức
tạp bằng cách chia nó ra thành nhiều các thành phần nhỏ và dễ quản lý hơn Mỗi một
Trang 14thành phần trong số đó có thể xử lý độc lập một cách tương đối Phân tách giúp xử lý vấn đề phức tạp vì nó giúp cho người thiết kế chỉ tập trung lần lượt từng vấn đề mà chứ không phải tất cả các vần đề cùng một lúc
Trừu tượng hóa (abstraction): Là quá trình định nghĩa một mô hình đơn giản hóa
cho hệ thống, tập trung nhấn mạnh một số chi tiết hoặc thuộc tính Kỹ thuật này giúp tập trung vào một vấn đề tổng quan chứ không đi vào chi tiết cụ thể của từng vần đề,
vì vậy nó giúp tiết kiệm thời gian
Tổ chức (Organisation): Tiến trình xác định và quản lý các quan hệ giữa các thành
phần với nhau Quản lý các qua hệ giúp người thiết kế giải quyết vấn đề phức tạp theo hai cách:
cấp cao hơn trong quá trình phân tích
• Cung cấp các đặc tả các quan hệ giữa các đơn vị ở cấp cao đó
Hình 3: Mô hình về hệ thống phức tạp
Tương tác không thường xuyên
Hệ thống conThành phần hệ thống conQuan hệ bao gồmTương tác thường xuyên
Trang 15Từ các đặc tính của hệ thống phức tạp ở trên và các giải thích về agent ở mục 2 ta có thể nghĩ đến tại sao kỹ thuật hướng agent có thể phù hợp để phát triển các hệ thống phần mềm Kỹ thuật này cơ bản gồm 3 phần: Phân chia hướng agent là cách phân chia hiệu quả không gian vấn đề của hệ thống phức tạp (phần 2 1 1) Trừu tượng hóa hướng agent là cách mô tả của mô hình hóa hệ thống phức tạp (phần 3 1 2) Xác định
và tổ chức quản lý các quan hệ hướng agent là phân chia hiệu quả các phục thuộc và tương tác trong hệ thống phức tạp (phần 2 1 3)
2.1.1 Phân chia hướng agent
Các hệ thống phức tạp gồm một số các hệ thống con có quan hệ với nhau được tổ chức phân cấp Tại bất kỳ một cấp nào, các hệ thống con cũng phải cùng nhau thực hiện để đạt được mục tiêu tổng thể của toàn hệ thống Hơn thế nữa các thành phần cũng phải kết hợp với nhau để phân chia các chức năng toàn cục trong hệ thống con Dựa vào phân tích trên, thì đó là một cách module hóa một cách bản chất các thành phần Trong các thành phần việc module hóa các thành phần trong giới hạn của mục tiêu mà chúng cần hoàn thành Hay nói cách khác, mỗi một thành phần có thể hoàn thành một hoặc nhiều các mục tiêu Hiện nay, xu hướng tăng tính cục bộ và bao gói trong trong các thành phần được phân chia, làm cho các thành phần được phân chia độc lập hơn, ít phụ thuộc vào các thành phần khác hơn Áp dụng lý thuyết này cho việc phận chia các mục tiêu cần đạt được có nghĩa là các thành phần độc lập có thể có các luồng điều khiển riêng của chúng và chúng có thể nắm được thông tin và khả năng giải quyết các vấn đề gặp phải trong quá trình thực hiện các mục tiêu Do cách thành phần hoạt động trong môi trường mà thông tin chỉ mang tính cục bộ nên chúng phải có khả năng xác định, vào thời thời chạy chúng cần xác định hành động nào cần phải thực hiện để đạt được mục tiêu Nói một cách ngắn gọn, các thành phần cần phải tự quyết định các hành động Để các thành phần tự trị và chủ động hoàn thành các mục tiêu của chúng, chúng cần tương tác với các thành phần khác Nhưng do tính phức tạp vốn có của hệ thống nên không dễ gì xác định được mối quan hệ có thể xảy ra lúc nào Vì vậy cố gắng dự đoán hoặc phân tích tất cả các khả năng có thể sảy ra là một việc làm vô ích trong quá trình thực hiện phân tích Vì vậy, cân phải cung cấp các thành phần có khả năng tự quyết định về phạm vi tương tác của chúng trong quá trình chúng hoạt động Việc các thành phần tự đưa ra được các quyết định tại thời điểm chạy giúp quá trình phân tích các hệ thống phức tạp thành các hệ thống con dễ dàng hơn Vì các rằng buộc giữa các thành phần được trừu tượng hóa ở mức cao hơn cụ thể chúng trao đổi với nhau thông qua ngôn ngữ truyền thông agent ở mức cao, thông điệp trao đổi mang tính tri thức nên các thành phần không phải đưa ra các giao thức để trao đổi thông tin với nhau Các agent chỉ trao đổi với nhau ở mức thông tin còn quyết đinh hành động vẫn do nội tại agent quyết định nhằm đạt được mục tiêu cụ thể tại thời điểm đó
Trang 16Tóm lại phân chia hướng agent hướng phân chia hệ thống phức tạp thành các thành phần có khả năng tự trị, tương tác và mỗi thành phần có một hoặc nhiều mục tiêu cụ thể nhằm làm cho việc phát triển hệ thống phức tạp trở nên dễ dàng hơn
2.1.2 Trừu tượng hóa hướng agent
Một phần quan trọng trong tất cả các cách thiết kế là đi tìm một mô hình chuẩn cho việc biểu diễn vấn đề Thông thường sẽ có nhiều cách và các tác vụ khác nhau được để chọn lấy một cách thích hợp Quá trình làm tốt hơn cho một trường hợp cụ thể trong quá trình thiết kế phần mềm, các trừu tượng tốt nhất trừu tượng giảm tối thiểu sự khác nhau về ngữ nghĩa giữa các đơn vị vấn đề được phân tích và cấu trúc biểu diễn trong
mô hình giải pháp Trong trừu tượng hóa hướng agent, vấn đề ở đây được mô tả gồm các hệ thống con, các thành phần hệ thống con, các tương tác và các quan hệ có tổ chức Tiếp đến thực hiện lặp quá trình:
• Coi các thành phần của hệ thống con như là một agent
• Sự ảnh hưởng qua lại giữa các hệ thống và giữa các thành phần kết hợp được thể hiện một cách tự nhiện dưới dạng các tương tác mang tính xã hội mức cao:
“tại bất kỳ một cấp trừ tượng hóa nào cũng tìm thấy một tập các đối tượng có thể cộng tác với nhau để đạt được mục tiêu của mức quan niệm cao hơn Cách nhìn nhận này phù hợp với cách tiếp cận hướng agent Hệ thống các agent được
mô tả là “kết hợp các hành động để giải quyết vấn đề chung” hoặc “thượng lượng để giải quyết vấn đề” Do vậy tập các khái niệm hướng agent hoàn toàn thích hợp cho việc nắm bắt các loại tương tác xảy ra trong hệ thống phức tạp
• Các hệ thống phức tạp bao gồm sự thay đổi của những quan hệ giữa các thành phần Chúng đòi hỏi tập hợp các thành phần được xem xét như một đơn vị khái niệm đơn khi nhìn nhận từ các cấp độ trừu tượng khác nhau Một lần nữa cách, quan điểm này cũng rất phù hợp với khái niệm hướng agent Và vì vậy những điều kiện thuận lợi được cung cấp đặc thì để biểu diễn một cách rõ ràng các quan hệ có tổ chức Các giao thức tương tác được phát triển để định hình các nhóm Cuối cùng, các cấu trúc sẵn sàng cho các mô hình Điểm cuối cùng này thể hiện rõ nét quan hệ để biểu diễn các hệ thống con khi mà chúng không có cái gì hơn một nhóm các thành phần cùng nhau thực hiện hoàn thành một mục tiêu
2.1.3 Sự cần thiết cho việc quản lý linh hoạt sự thay đổi của cấu trúc tổ
chức
Các hệ thống phức tạp bao gồm một sự đa dạng các quan hệ có tổ chức Các quan hệ ở đây quan trọng hai lý do chính: Thứ nhất, nó cho phép số các thành phần phân chia có thể nhóm với các thành phần khác và được xem xét như một thực thể khái niệm Thứ
Trang 17hai, nó cho phép các liên kết cấp độ cao giữa các thực thể khác nhau được mô tả Dựa trên ảnh hưởng và tác động của các quan hệ có tổ chức và các cấu trúc trong hành vi
hệ thống thì điều quan trọng là phải cung cấp các hỗ trợ để xác định và quản lý chúng một cách linh hoạt Và hơn thế nữa, do các quan hệ thường xuyên thay đổi nên khả năng tương thích với tình huống cũng rất cần thiết
Các tổ chức là các thực thể lứp đầu tiên trong hệ thống agent Do đó, các cấu trúc rõ ràng và cơ chế linh hoạt là trung tâm của mô hình agent Những yếu tố này khi đi cùng các kỹ thuật tính toán cho phép các hệ thống hướng agent bao quát hai vấn đề bản chất của hệ thống phức tạp Thứ nhất, định nghĩa về thành phần cơ sở có thể thay đổi tùy thuộc vào nhu cầu của người quan sát Do đó ở một mức độ nào đó, toàn bộ các hệ thống con có thể được coi nhu một thực thể đơn lẻ, tập hợp các agent có thể được coi
là các thành phần cơ sở của một một mức độ trừu tượng cao hơn Quá trình lặp lại cho đến khi toàn bộ hệ thống được hiểu một cách thấu đáo Thứ hai, các cấu trúc đó cung cấp một loạt các dạng trung gian có thể mở rộng, đây là yếu tố cần thiết cho việc phát triển nhanh các hệ thống phức tạp Và nó còn có nghĩa rằng các agent độc lập hoặc các nhóm tổ chức có thể phát triển một cách tương đối độc lập và sau đó thêm dần chúng vào hệ thống
2.2 So sánh hướng agent với hướng đối tượng và phần mềm đóng gói
So sánh giữa công nghệ phận mềm hướng agent và hướng đối tượng ta thấy có nhiều điểm tương đồng Các đồi tượng, agent cùng có khác thuộc tinh và phươg thức, chúng trao đổi với nhau qua việc yêu cầu phượng thức hoặc gửi thông điệp hoặc sử dụng các khái niệm hướng đối tượng cổ điển như kế thừa, bao gói dữ liệu hoặc kết hợp Tuy vậy agent có chứa rất nhiều các thuộc tính khác với đối tượng Vì vậy phương pháp hướng đối tượng có những hạn chế nhất định trong việc áp dụng vào môi trường hướng agent Ngoài các thuộc tính và phương thức, agent còn có các trạng thái tinh thần như tin tưởng, mong muốn, ý định và các khai niệm như kế hoạch, mục tiêu Agent chứa dựng một thành phần chức năng và một số mẫu các hành vi Một agent giống một hệ thống con hơn là một đối tượng đơn lẻ Hơn thế nữa, agent mang tính chủ động trong cách hành động nhằm đạt được mục tiêu đề ra chúng tự cảm nhận sự thay đổi môi trường,
tự kích hoạt một cách chủ động (trong khi đối tượng chỉ được kích hoạt khi được yêu cầu phương thức hoặc gửi thông điệp) Các đối tượng trao đổi với nhau thông qua cách gửi các thông điệp, trong khi đó các agent giao tiếp với nhau thông qua giao thức hội thoại phức tạp mang tính ngữ nghĩa
So với phần mềm đóng gói - một công nghệ liên quan đến hệ thống hướng đối tượng Phần mêm đóng gói là một thành phần độc lập được thiết kế sao cho có khả năng tái
sử dụng ở mức cao Khi đó quá trình phát triển phần mềm chỉ là ghép nối các thành
Trang 18phần có sẵn lại với nhau để tạo ra phần mềm theo yêu cầu Cũng giống như phần mềm bao gói đều được phát triển từ công nghệ hướng đối tượng, chúng đều kế thừa được thuộc tính của đối tượng, các đối tượng quan hệ, các agent cũng chứa đựng các đối tượng và các thành phần nhưng hơn nữa các agent cũng chia sẽ các thành phần, có tính tái sử dụng nhưng khác ở chỗ, phần mềm đóng gói không có khả năng tự trị và cũng như các đối tượng chúng không có tính chủ động và các hành vi mang tính xã hội Có thể nói rằng kỹ thuật hướng agent là một sự phát triển phát triển mở rộng của các mô hình khác
2.3 Vòng đời phát triển của phần mềm hướng agent
Qua mô tả về cách tiếp cận phần mềm hướng agent và sau khi so sánh kỹ thuật hướng agent và một số kỹ thuật phát triển phần mềm khác ta đã hiểu được tai sao phần mềm hướng agent là một cách tiếp cận tốt cho quá trình phát triển các hệ thống phức tạp Cũng như các quy trình phát triển phần mềm nói chung, quy trình phát triển phần mềm hướng agent cũng phải trải qua các giai đoạn chung bao gồm đặc tả (định nghĩa các chức năng, rằng buộc, các yêu cầu), quá trình thiết kế và cài đặt ( thực thi việc tạo ra sản phẩm) và kiểm định chất lượng sản phẩm và quá trình bảo trì, nâng cấp phần mềm
2.3.1 Mô hình hóa hệ thống agent
Mô hình hệ thống agent cần có các ngôn ngữ, ký pháp và ngôn ngữ thích hợp để mô tả lại một cách rõ ràng về một hệ thống Do các agent cũng có nét tương đồng với đối tượng nên hầu hết các phương pháp mô hình hóa đều dựa trên các công cụ có nguồn gốc từ hướng đối tượng Điển hình và nổi bật nhất hiện nay là ngôn ngữ UML (Unified Modeling Language) Tuy nhiên phiên bản hiện tại của UML không cung cấp các ký pháp để mô hình hóa các tính năng đặc biệt của agent Agent-UML (AUML) là một ngôn ngữ phát triển mở rộng của UML nhằm sử dụng để mô hình hóa các hệ thống agent AUML mở rộng một số sơ đồ như:
Mở rộng sơ đồ tuần tuần tự của UML để đặc tả các giao thức tương tác giữa các agent bằng cách cung cấp các phương thức, đường sống (life-line), các rằng buộc và được gọi là sơ đồ tương tác
Mở rộng sơ đồ lớp sang sơ đồ các agent Trong đó mỗi agent được coi như một gói gồm nhiều lớp trong đó lớp agent làm trung tâm và các lớp hành vi của agent Lớp agent bao gồm có một số phần tử như:
• Tên của agent được sử dụng để phân biệt với các agent khác
• Mô tả trạng thái
động mang tính chủ động
Trang 19• Các phương thức cài đặt các dịch vụ
• Mô tả khả năng mà agent có thể làm để các agent khác có thể hiểu và tương tác với agent
• Tổ chức: đặc tả vai trò của agent và những rằng buộc của agent trong một nhóm
• Máy tự động (automata) điều khiển các hành vi của agent
Một số mở rộng khác như dụng sơ đồ hoạt động (activity diagram) để xác định vai trò của agent, Mô hình triển khai để thể hiện tinh di động của agent …
Hiện tại AUML hiện vẫn đang ở giai đoạn nghiên cứu và thử nghiệm Tuy nhiên vơi
sự phát triển của kỹ thuật hướng agent đang phát triển mạnh mẽ, AUML cũng đang dần hoàn thiện để có thể cung cấp ngôn ngữ để mô hình hóa các hệ thống phức tạp theo hướng agent
2.3.2 Phân tích thiết kế
Có rất nhiều cách tiếp cận cho việc phận tích và thiết kế một hệ thống agent Các phương pháp này có thể chia làm hai nhánh đó là phương pháp hình thức và phương pháp không hình thức
Phương pháp tiếp cận hình thức trong quá trình phân tích thiết kế là sử dụng các
công thức toán học để đặc tả chính xác hệ thống; Sản phẩm của phương pháp này là một đặc tả hình thức được sử dụng cho việc cài đặt hệ thống, kiểm tra sự thỏa mãn yêu cầu người dùng hoặc ước lượng kết quả cuối cùng Một số phương pháp điển hình như:
LORA (Logic Of Rational Agents)[7] sử dụng ngôn ngữ thiết kế MABLE – ngôn ngữ này cho phép kiếm chứng tự động hệ thống agent Nó dựa trên logic vị từ để biểu diễn miền vấn đề thay đổi liên tục Ngôn ngữ Z do M Luck và D’ Inverno M đề xuất[8] dùng để đặc tả agent Ngôn ngữ Z dựa trên logic vị từ dự đoán các hệ số Trong ngôn ngữ Z định nghĩa agent trong một kiến trúc bốn tầng: Các thực thể - các đối tượng có cùng thuộc tính, các đối tượng - các thực thể kèm theo các khả năng, agent - các đối tượng di cùng mục tiêu và agent tự trị - các agent có khả năng tự hoạt động
Phương pháp tiếp cận không hình thức là cách tiếp cận sử dụng ngôn ngữ tự nhiên
có cấu trúc và các ký pháp đồ họa là một cách tiếp cận trực quan trong việc đặc tả và thiết kế các hệ thống hướng agent UML là một ngôn ngữ không hình thức được sử dụng phổ biến trong việc đặc tả và thiết kế các hệ thống hướng đối tượng Phát triển từ ngôn ngữ này áp dụng cho việc đặt tả và thiết kế hệ thống hướng agent hiện nay có rất nhiều phương pháp như: AORML (Agent - Object - Relationship Modeling Language)
do Wagner đề xuất mô tả các thực thể: các agent, các sự kiện, các hành động hoặc một đối tượng AORML thể hiện quan hệ giữa agent với các sự kiện, hành động hoặc đối
Trang 20tượng thông qua sơ đồ lớp của UML PASSI (Process for Agent Societies Specification and Implementation) là phương pháp thiết kế và phát triển hệ thống đa agent phát triển từ khi lấy yêu cầu đến viết mã chương trình Phương pháp này tích hợp các mô hình thiết kế và các khái niệm của cả lập trình hướng đối tượng và các cách tiếp cân trí thông minh nhân tạo Phương pháp Prometheus hỗ trợ phát triển các agent hướng mục tiêu, cung cấp đầy đủ các pha từ đặc tả yêu cầu, thiết kế cài đặt Trong một số phương pháp đã nêu trên PASSI là phương pháp khá hoàn chỉnh và tường minh cho việc phát triển hệ thống phức tạp hướng agent Và đó cũng là phương
phương pháp này sẽ được mô tả trong phần 3
2.3.3 Kiểm thử
Việc kiểm thử hệ thống chủ yếu dựa trên lý thuyết hình thức nhằm xác định liệu hệ thống có thỏa mãn các đặc tả ban đầu hay không Việc áp dụng các phương pháp kiểm thử truyền thống không kiểm soát kiểm thử hệ thống agent sẽ không đạt hiệu quả tốt vì chúng không kiểm tra hết được các đặc tính của agent Hai cách tiếp cận chính có thể
áp dụng kiểm thử hệ thống agent:
Tiếp cận tiền đề cho kiểm chứng chương trình được Hoare đề xuất vào cuối những
năm 1960 Việc kiểm chứng tiền đề yêu cầu phải có một chương trình cụ thể Từ chương trình này tạo ra lý thuyết logic biểu diễn các hành vi của chương trình, được gọi là lý thuyết chương trình Nếu lý thuyết chương trình được biểu diễn bằng ngôn ngữ đặc tả ban đầu thì vần đề kiểm chứng trở thành vần đề chứng minh rằng đặc tả là
lý thuyết đã được chứng minh của lý thuyết chương trình
Việc phát triển lý thuyết chương trình được thực hiện bằng cách tiên đề hóa ngôn ngữ cài đặt hệ thống và sử dụng ngôn ngữ đơn giản Dựa trên việc tiên đề hóa, lý thuyết chương trình có thể được suy ra từ văn bản chương trình một cách hệ thống
Trong hệ thống hướng agent, việc tiên đề hóa được thực hiện bằng cách sử dụng ngôn ngữ lập trình đơn giản như Agent0 của Shoham và CurrentMetaM của Fisher Tuy nhiên đối với hệ thống phức tạp, việc nắm bắt ngữ nghĩa của thực thi agent không dễ dàng Nhìn chung cách tiếp cận tiền đề gặp phải những khó khăn hạn chế trong việc chứng minh
Tiếp cận sử dụng kiểm chứng mô hình là kỹ thuật kiểm chứng dựa trên kiểm chứng
mô hình được nghiên cứu cùng với logic thời gian và các máy trạng thái Gải sử rằng
Φ là đặc tả của hệ thống, và Π là một chương trình cài đặt đặc tả Φ Sau đó để xác định liệu Π có cài đặt Φ đúng đắn hay không thì chúng ta tạo ta mô hình MΠ tương ứng cới
Π, theo nghĩa này thì MΠ mã hóa tất cả các khả năng có thể xảy ra của Π Và việc xác
Trang 21định liệu công thức đặc tả Φ có đúng trong MΠ hay không; hay nói cách khác chương trình Π có thỏa mãn đặc tả Φ hay không Ưu điểm của kiểm chứng mô hình so với kiểm chứng dựa trên tiền đề hóa là ở tính phức tạp; kiểm chứng mô hình sử dụng logic thời gian phân nhánh được thực hiện trong thời gian đa thức, trong khi đó hầu hết những vấn đề chứng minh cho logic mô hình đều khá phức tạp.
Trang 22CHƯƠNG 3 PHƯƠNG PHÁP THIẾT KẾ & PHÁT TRIỂN
HỆ THỐNG ĐA AGENT PASSI
3.1.1 Giới thiệu về PASSI
PASSI (Process for Agent Societies Specification and Implementation) là phương pháp thiết kế và phát triển hệ thống đa agent phát triển từ khi lấy yêu cầu đến viết mã chương trình Phương pháp này tích hợp các mô hình thiết kế và các khái niệm của cả lập trình hướng đối tượng và các cách tiếp cân trí thông minh nhân tạo
Hình 4: Mô hình phương pháp PASSIQuá trình thiết kế được phân tách làm 5 mô hình (Hình 4):
Bước 1 - Mô hình hóa yêu cầu (System Requirements Model) là mô hình của các yêu cầu hệ thống: Mô tả yêu cầu, xác định các agent, xác địh các vai trò, các tác vụ
Bước 2 - Mô hình xã hội agent (Agent Society Model) là mô hình của các agent bao gồm các giới hạn mục tiêu, vai trò, các tương tác xã hội và các phụ thuộc của chúng:
Mô tả Ontology, mô tả các vai trò, mô tả các giao thức
Trang 23Bước 3 - Mô hình thực thi của các agent trong phạm vi của các lớp và các phương thức (tại các mức độ trừu tượng hóa khác nhau: đa và đơn agent): Mô tả các hành vi, định nghĩa cấu trúc các agent giao tiếp với nhau thông qua các hành vi Nếu có yêu cầu mới thực hiện lặp lại từ bước 1.
Bước 4 - Mô hình mã chương trình (Code Model) là mô hình của giải pháp tại giai đoạn viết mã chương trình
Bước 5 - Cuối cùng là mô hình triển khai (Deployment Model) là mô hình phân tán các thành phân trong hệ thống trên các đơn vị xử lý phần cứng và chúng việc các agent
có khả năng di chuyển giữa các nền tảng khác nhau
3.2 Mô tả yêu cầu
Sử dụng các sơ đồ use case
3.3 Xác định các agent
Hình 5: Mô hình Use case xác định các agent
Thực hiện từ một sơ đồ Use Case, các gói (package) được sử dụng để nhóm các chức năng mà nó được gán cho một agent (tên của agent được thể hiện là tên của gói) Các khuôn mẫu quan hệ giữa các usecase giữa các gói khác nhau được chuyển sang stereotype (khuôn mẫu) “truyền đạt”(communicate) khi đó các agent khác nhau có thể tương tác với nhau thông quan nó
Trang 243.4 Xác định vai trò
Hình 6: Mô hình tuần tự để thể hiện kịch bản tương tác giữa các agent
Sử dụng sơ đồ tuần tự để thể hiện kịch bản tương tác giữa các agent
Các kịch bản diễn tả những sự ảnh hưởng của các agent khác nhau và vai trò của chúng Tên của mỗi class được thể hiện theo mẫu: <Tên agent>: <Tên vai trò> (<agent name>: <role name>)
3.5 Xác định các tác vụ
Hình 7: Sơ đồ hoạt động thể hiện các tác vụ cho agent
Trang 25Sơ đồ hoạt động (activity diagram) được thể hiện cho mỗi agent Sơ đồ này sẽ mô tả cách mà agent có thể sử dụng thao tác của mình để thực hiện các công việc/tác vụ của chúng
Mỗi một sơ đồ bao gồm 2 phần (cột) và nó chứa đựng các hoạt động mà chúng được thể hiện là các thao tác của agent Cột bên phải gồm các thao tác/tác vụ của các agent Cột bên trái là các agent tương tác với chúng
Các giao dịch (transition) được thể hiện trong cùng một cột mô tả luồng điều khiển từ các tác vụ khác nhau Và các giao dịch giữa 2 cột thể hiện sự truyến đạt giữa các agent Những thành phần thay đổi của hệ thống được biểu diễn bên cột trái sẽ không chi tiết vì sơ đồ chủ yếu tập trung vào cột bên phải Mục đích của cột bên trái nhằm thấy rõ các truyền thông đi từ agent khác đến và từ agent đó đến các agent khác (được thể hiện bên cột trái)
Trang 263.6 Mô tả Ontology - Ontology Description
ImData data1D : byte[ ] name : String colors : int
x : int
y : int dim : int comment : String
<<concept>>
IsStImage Value : Boolean
<<predicate>>
StereoImage
<<concept>>
1 +stereoImage
1 +theImage
GiveImage Actor : String
ResultReceiver : String
<<Act>> Send(theImage : MonoImage)
<<action>>
MonoImage time : long
<<concept>>
1 +monoImage
1
2 +AnImage 2 {ordered}
1
+theImage
1
Hình 8: Sơ lớp mô tả Ontology lĩnh vực
• Ontology được mô tả (sử dụng sơ đồ lớp) mô tả khái niệm (được tô màu vàng), thuộc tính (tô màu xanh) và các hành động (tô màu trắng) Các phần tử trong Ontology có thể liên quan với nhau theo cá quan hệ chuẩn của UML: Khái quát hóa(Generalization), liên kết(Association), tập hợp(Aggregation)
Trong hình vẽ trên thể hiện ontology của một robot MonoImage là một trường hợp của khái niệm ImData thêm thuộc tính thời gian chụp(time) Việc tập hợp hai hình ảnh mono cho phép tạo ra một hình ảnh StereoImage Hành động GiveImage cho phép robot chụp hình ảnh Hình ảnh được cung cấp bởi Actor và gửi cho ResultReceiver
Sơn đồ COD bản chất là sơ đồ lớp mà thành thành phần chính bao gồm hai phần tử: Các agent và các truyền đạt/truyền thông
Trang 27GiveStImageRequest Ontology : GiveStImage Language : RDF Protocol : FIPARequest
<<Communication>>
GimmeStereoImageRequest Ontology : GiveStImage Language : RDF Protocol : FIPARequest
<<Communication>>
SelfPositionBuildingRequest Ontology : AutoLocalize Language : RDF Protocol : FIPARequest
<<Communication>>
VisionLocalizazion Ontology : LocalizeMe Language : RDF Protocol : FIPARequest
<<Communication>>
Planner robot : GenericComponent
<<Agent>>
HardwareManager cameras : Camera[]
Mỗi một sự truyền thông (được tô màu trắng) thể hiện quan hệ của hai agent và nó mô
tả chi tiết trong lớp thuộc tính quan hệ Lớp này được xác định bởi một cái tên duy nhất và nó được mô tả bởi các trường ontology, ngôn ngữ (ngôn ngữ giao tiếp), giao thức (giao thức giao tiếp)
Trường ontology chỉ dẫn một đối tượng của DOD (Mô tả Ontology lĩnh vực); trường ngôn ngữ xác định ngôn ngữ nội dung của truyền thông và giao thức được chỉ định là giao thức tương tác FIPA
Trong sơ đồ trên, chúng ta có thể thấy rõ agent quản lý phần cứng thực hiện hỏi về
hình ảnh lập thể đến agent StereoCameraGrabber với truyền thông GiveStImageRequest
Sự truyền đạt này liên quan đến hành động GiveStImage được định nghĩa trong sơ đồ
DOD, sử dụng ngôn ngữ là RDF và giao thức “FIPA Request”
Trang 28Mô tả các vai trò
Hình 10: Sơ lớp mô tả vai trò của các agentBiển diễn sơ đồ vai trò của các agent sử dụng sơ đồ lớp trong đó các vai trò là các lớp được nhóm trong các gói mà mỗi gói thể hiện một agent
Các vai trò có thể được liên kết bới các mối quan hệ thay đổi của vai trò, phục thuộc vào một dịch vụ hoặc một nguồn tài nguyên và những sự truyền thông Mỗi một vai trò gồm một vài các tác vụ do đó các tác vụ liên quan đến vai trò sử dụng hoạt động của mỗi lớp
Chi tiết:
Các lớp biểu diễn các vai trò của agent Chúng được nhóm thành một gói ứng với agent đó
Vai trò liên quan đến các quan hệ có thể phân làm 3 loại chính:
Truyền thông: Biểu diễn bởi đường thẳng từ đối tượng khởi tạo đến đối tương liện quan Tên của các truyền thông được xác định sơ đồ mô tả Ontology truyền thông (COD)
Phục thuộc: Các dịch vụ hoặc tài nguyên liên quan Một phụ thuộc dịch vụ thể hiện một vai trò phục thuộc vào một agent khác nhằm hoàn thành mục tiêu (được thể hiện
Trang 29là đường nét ngắt quãng với stereotype là dịch vụ) Phục thuộc tài nguyện là vai trò phục thuộc vào một thực thể có sẵn (được diễn tả bởi nét ngắt quãng với stereotype là
tài nguyên - resource) Chúng cũng có thể có các các phục thuộc dịch vụ mềm (soft - service) và tài nguyên - mềm (soft - resource), trong trương hợp này yêu cầu đến dịch
vụ hoặc tài nguyện là trợ giúp chứ không phải là yếu tố cần thiết để đạt được mục tiêu của vai trò
Sự thay đổi vai trò: Một agent có thể thay đổi các vai trò của minh trong qua trính thực hiện Sự thay đổi vai trò này thể hiện bằng một liên kết (được thể hiện là đường nét ngắt quãng với stereotype là “thay đổi vai trò” - ROLE CHANGE Liên kết này thể hiện vai trò thứ 2 phục thuộc vào vai trò thứ nhất nghĩa là agent sau khi Các liên kết được mô tả như một quan hệ phục thuộc vì chúng muốn thể hiện của một vài trò thứ hai phụ thuộc vào vai trò thứ nhất Đôi khi các điều kiện kích hoạt được tạo ra một cách không rõ ràng bởi vai trò thứ nhất nhưng quyết định của nó trong kịch bản
Trang 31• Đường sống (Lifelines)
Một đường sống bao gồm hai phần: Gồm ô chứa các thông tin ở trên và đường nét chấm thẳng đứng ở dưới Thể hiện của agent: thể hiện bằng tên của agent theo sau là tên của vai trò <tên agent>: <tên vai trò>
Hình 12: Đường sống trong sơ đồ tuần tự cho một agent