Một số phương pháp mô hình tương tác dựa trên role

Một phần của tài liệu Mô hình tương tác dựa trên role trong hệ đa agent (Trang 50 - 57)

Có nhiều mô hình tương tác dựa trên role đã được đề xuất, mỗi phương pháp có những ưu nhược điểm và phạm vi ứng dụng riêng. Trong phần này, chúng tôi thực hiện một khảo sát các phương pháp dựa trên role hiện đang được sử dụng phổ biến nhất. Thông qua việc hiểu được bản chất, đặc điểm của từng phương pháp, chúng ta có thể chọn được phương pháp thích hợp nhất với ứng dụng của riêng mình.

Thông thường, khi xem xét một phương pháp luận, người ta thường chú ý đến các khái niệm của mô hình đó, xem chúng có đơn giản, dễ hiểu hay không? Liệu mô hình đưa ra có tạo điều kiện dễ dàng cho việc phát triển phần mềm hay không? Đối với hệ đa agent, một số vấn đề khác cũng cần được quan tâm như tính di động, khả năng liên tác [47]…Một số tiêu chuẩn có thể là căn cứ để xem xét các phương pháp luận dựa trên role cho hệ đa agent:

Khả năng hỗ trợ quy trình phát triển phần mềm: Trong quy trình phát triển

phần mềm, có ba pha quan trọng mà các kỹ thuật nên hỗ trợ đầy đủ là pha phân tích, thiết kế và cài đặt. Pha phân tích bao gồm các công việc như xác định yêu cầu hệ thống, các chức năng cần thiết của hệ thống. Pha thiết kế sẽ xác định các role cần có trong hệ thống và cách thức sử dụng các role cũng như cách thức đảm nhận và giải phóng. Pha cài đặt sẽ cụ thể hóa các phân tích và thiết kế trên bằng các ngôn ngữ lập trình.

Tập kí hiệu: Các phương pháp nên cung cấp một tập kí hiệu để mô tả các

role và các hành vi của nó. Điều này sẽ giúp cho người thiết kế và phát triển hiểu nhau và hiểu hệ thống tốt hơn. Công cụ này cũng có thể giúp chuyển đổi tự động từ đặc tả (sản phẩm của pha thiết kế) sang bản cài đặt một cách nhanh chóng.

Khả năng điều chỉnh trong thời gian chạy (run-time adaptability): Các

ứng dụng ngày nay đều có tính động rất cao, nhất là các hệ đa agent. Vì vậy, các hệ này đòi hỏi khả năng thay đổi trong thời gian chạy. Role có thể

cung cấp khả năng này. Role phải được sử dụng theo cách linh động, tức là không đòi hỏi mã cố định phải gắn chặt với agent.

Tính mở (Openness): Để có thể ứng dụng rộng rãi, các phương pháp dựa

trên role phải có tính mở, tức là hệ thống có thể sử dụng role trong các môi trường mà ở đó hệ thống không thể biết hết về agent trong giai đoạn thiết kế.

Khả năng liên tác(Interoperability): Đây là khả năng hòa trộn giữa phân tích, thiết kế và cài đặt của các phương pháp khác nhau. Tức là, một hệ thống có thể phát triển với pha phân tích sử dụng phương pháp này, pha thiết kế cài đặt lại theo phương pháp khác.

Trong phạm vi luận văn này, chúng tôi chỉ xem xét một số phương pháp đang thu hút được nhiều sự quan tâm chú ý sau đây ([22], [51], [10]):

 AALADIN [22]: Phương pháp dựa trên ba khái niệm cơ bản là agent, role và group, trong đó group là một tập các agent được coi là thành phần thực hiện nhiệm vụ nhỏ nhất. Tức là nó là mức thấp nhất có thể hoàn thành được một nhiệm vụ của hệ thống. Tuy nhiên, trong phương pháp này role gắn chặt với khái niệm agent nên nó sẽ gây khó khăn cho những người lập trình muốn có được sự độc lập giữa role và agent.

 ROPE [7]: Role được định nghĩa là những thực thể riêng biệt và có thể được các agent đảm nhận một cách linh động. Phương pháp này tập trung nhiều vào sự cộng tác nên nó thiếu mối tương tác cạnh tranh giữa các agent.

 GAIA [51]: Mô hình hệ đa agent dưới dạng các tổ chức mà ở đó các role có thể tương tác. Role được dùng nhiều trong các pha phân tích và thiết kế. Role có bốn thuộc tính cơ bản là: trách nhiệm (responsibility), quyền hạn (permission), hoạt động (activity) và giao thức (protocol). GAIA cung cấp một tập kí hiệu dựa trên tập kí hiệu FUSION để đặc tả quyền hạn của role.

Ngoài ra, GAIA cũng đưa ra được mô hình tương tác biểu diễn được sự phụ thuộc và mối quan hệ qua lại giữa các role trong hệ thống.

 RoleEP (Role based Evolution Programming): Hỗ trợ nhiều cho việc phát triển những ứng dụng cộng tác trong đó các agent tương tác với nhau để đạt được mục tiêu chung. Ứng dụng được coi là tập hợp các cộng tác giữa các Agent. Phương pháp này dựa trên bốn khái niệm cơ bản là môi trường,

đối tượng, agent và role. Một role là một thực thể thuộc vào một môi

trường và bao gồm các thành phần như thuộc tính, phương thức và giao diện ràng buộc. Các thuộc tính và phương thức của role có thể là bất kỳ thứ gì mà role cần để đạt được nhiệm vụ được giao. Giao diện ràng buộc được sử dụng để kết hợp các hàm của role với đối tượng một cách tự động. Giao diện ràng buộc có thể được coi là các phương thức trừu tượng và có nhiệm vụ gọi các phương thức thực của đối tượng. Theo cách này, RoleEP cho phép agent đảm nhận role trong thời gian chạy, tạo ra tính linh động cao và cho phép sự phân tách vấn đề cần quan tâm. Tuy nhiên, phương pháp này cũng chỉ hỗ trợ cho duy nhất giai đoạn cài đặt trong quá trình phát triển.

 BRAIN [10]: Hỗ trợ tất cả các giai đoạn trong quá trình phát triển hệ thống. Phương pháp này có tập kí hiệu dựa trên XML để đặc tả role và các đặc tả này có thể được dùng trong các pha tiếp theo (thiết kế và cài đặt)…

 Yu & Schmid [52]: Phương pháp sử dụng role để điều khiển luồng quá trình. Role được mô hình dưới dạng tập hợp các quyền (các hành động mà agent được phép thực hiện trên tài nguyên hệ thống) và bổn phận (hành động mà agent phải thực hiện). Các tác giả đã cố gắng để phương pháp này có thể áp dụng cho tất cả các pha của quy trình phát triển phần mềm, tuy nhiên mới chỉ có pha phân tích sử dụng role, các pha thiết kế và cài đặt đều chưa hỗ trợ role.

Phương pháp

Hỗ trợ

Tập ký hiệu Điều chỉnh trong thời gian chạy

Tính mở Tính liên tác Phân tích Thiết kế Cài đặt GAIA   −  Dựa trên FUSION − − − AALAADIN    − −   ROPE −    PETRI NET −  − RoleEP −   −   − BRAIN     Dựa trên XML    Yu&Schmid     Máy trạng thái hữu hạn − − −  Hỗ trợ hoàn toàn  Hỗ trợ một phần − Không

Bảng 2.2: Bảng so sánh các phương pháp dựa trên role trong hệ đa agent.

Qua một số so sánh tóm tắt giữa các phương pháp, ta nhận thấy các phương pháp có chung một số điểm sau đây:

 Tất cả các phương pháp đều sử dụng role để có được tính linh động trong quá trình phát triển. Đa số các phương pháp sử dụng role để phân tách rõ ràng các vấn đề liên quan tới agent như tính di động, với các vấn đề liên quan tới tính xã hội như các giao thức tương tác.

 Role còn được coi là một cách để tạo ra khả năng tái sử dụng cao cho mã nguồn chương trình bởi nhiều agent có thể sử dụng cùng một role. Role thực sự hữu ích đối với các môi trường cộng tác trong đó agent có cùng một nhiệm vụ có thể cộng tác để hoàn thành nhiệm vụ đó.

 Tất cả các phương pháp đều cho phép một agent có thể đảm nhận nhiều role cùng lúc trong đó mỗi role được sử dụng theo một cách khác nhau.

Hầu hết các phương pháp đều cho phép agent hoạt động mà không đảm nhận bất kỳ role nào, chỉ duy có phương pháp RoleEP là buộc agent phải đảm nhận ít nhất một role. Đây là điều làm cho RoleEP không tương thích được với các phương pháp khác đồng thời gây ra sự không thống nhất trong định nghĩa agent.

 Một điểm hết sức quan trọng là định nghĩa role dưới dạng các thực thể hạng nhất (first-class entity). Đây là điểm mà tất cả các phương pháp đều không chú ý. Các định nghĩa role mà các phương pháp nêu ra đều quá chung chung hoặc quá cụ thể đối với việc cài đặt. Hầu hết các phương pháp mới chỉ định nghĩa role dưới dạng hình thức, điều này chỉ giúp ích cho người phát triển trong pha phân tích trong khi đó lại quá phức tạp để có thể cài đặt. Không có phương pháp nào sử dụng cú pháp AUML [5], một phương pháp khá đơn giản và chuẩn để đặc tả role và Agent mà lại sử dụng cái họ tự tạo ra. Điều này tạo ra sự không thống nhất khiến cho người phát triển hệ thống không thể chuyển từ phương pháp này sang phương pháp khác.

 Một điểm khác cũng rất quan trọng là không có phương pháp nào định ra được một cách thức để biết được cần phải định nghĩa những gì cho một role. Thực tế, cho trước một tập các tương tác, chúng ta không biết phải dùng bao nhiều role để mô hình được tập tương tác đó. Nếu có thể cung cấp cho người phát triển những công cụ này, họ có thể tập trung vào đúng số role cần thiết và nhờ đó giảm công sức cho pha phân tích, tập trung hơn cho pha thiết kế và cài đặt.

Ngoài những điểm chung kể trên, mỗi phương pháp lại có những ưu điểm riêng:

 Trong khi đa số phương pháp đều định nghĩa role dưới dạng một tập các quyền (right), thực chất là các quy tắc, luật lệ liên quan đến role để đảm bảo quyền an ninh cho các agent, chỉ có phương pháp BRAIN và AALAADIN định nghĩa role là các góc nhìn (view) của agent đang đảm

nhận role. Đây có thể coi là một tính năng khá hay của các phương pháp này bởi agent sẽ nhận biết được mỗi khi một Agent đảm nhận hay loại bỏ một role nào đó.

 Phương pháp ROPE [7] lại đề xuất khái niệm nhóm (group), là một tập các agent có quan hệ với nhau, có thể là có chung một nhiệm vụ nào đó. Khái niệm nhóm tỏ ra hữu ích nhất là trong pha phân tích.

 Phương pháp Yu&Schmid và BRAIN lại định nghĩa role là một tập các nghĩa vụ (trong BRAIN thể hiện dưới dạng các hành vi được mong đợi) mà agent đảm nhận role phải hành động theo. Nói cách khác, agent buộc phải phải hành động theo một cách xác định phụ thuộc vào sự tiến triển của ngữ cảnh xã hội (ví dụ như yêu cầu dịch vụ từ phía các agent khác).

 Đối với pha cài đặt, chỉ có phương pháp BRAIN và RoleEP cho phép agent đảm nhận và giải phóng role trong thời gian chạy. Chính điều này làm cho agent phù hợp với các ứng dụng động và mở, tạo được tính thích nghi tốt với thay đổi của môi trường.

 Hầu hết các phương pháp đều không chú ý đến việc làm cách nào các để duy trì các role. Vì nhiều agent là di động và chính role là thành phần giúp các Agent ở các ngữ cảnh khác nhau tương tác với nhau. Làm cách nào để phân phát role giữa các platform khác nhau? Chỉ có duy nhất BRAIN hỗ trợ chút ít trong cơ sở tương tác RoleX.

 Một đặc tính chúng ta cũng cần quan tâm là tính liên tác giữa các bản cài đặt của một hệ quản lý role. Tính liên tác ở đây có nghĩa là khả năng agent chạy trên một bản cài đặt có thể nhìn thấy role giống như các agent chạy ở các bản cài đặt khác nhìn thấy. Nói cách khác, các agent có khả năng chia sẻ thông tin về các role. Về vấn đề này chỉ có phương pháp AALAADIN và BRAIN là hỗ trợ.

Qua phần so sánh, chúng ta thấy mỗi phương pháp đều có những ưu nhược điểm riêng và phù hợp với từng loại ứng dụng khác nhau. Nếu ứng dụng của chúng ta cần phân tích kỹ lưỡng, GAIA là lựa chọn tốt nhất, trong khi đó nếu hệ thống quan tâm tính động thì BRAIN và RoleEP là phù hợp hơn cả. BRAIN là phương pháp hội tụ nhiều ưu điểm nhất, có thể hỗ trợ chúng ta đầy đủ nhất trong quá trình phát triển hệ đa agent. Do đó, phương pháp BRAIN được chọn lựa để nghiên cứu trong luận văn và chi tiết được trình bày trong các chương tiếp theo.

2.4. Kết chương

Chương này đã trình bày vai trò của role trong các ngành khoa học, đặc biệt trong kỹ nghệ phần mềm. Một số nét cơ bản mô hình role trong phát triển phần mềm, đặc biệt là hệ đa agent cũng đã được đề cập trong chương này. Chúng tôi cũng trình bày một số khảo sát về các phương pháp mô hình role để qua đó những người quan tâm có thể lựa chọn phương pháp phù hợp nhất với ứng dụng đa agent cần phát triển cho riêng mình.

3. Chương 3. Mô hình tương tác dựa trên role

Một phần của tài liệu Mô hình tương tác dựa trên role trong hệ đa agent (Trang 50 - 57)

Tải bản đầy đủ (PDF)

(118 trang)