1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp

66 605 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 730,94 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để có thể trợ giúp ngày càng tốt hơn cho người dùng, các tác tử giao diện học tập theo bốn cách: + Thông qua quan sát và bắt trước người dùng học từ người dùng + Thông qua các thông tin

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN NGỌC KHẢI

NGHIÊN CỨU VỀ TÁC TỬ PHẦN MỀM

VÀ ỨNG DỤNG VÀO BÀI TOÁN ĐẶT LỊCH HỌP

Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng

cá nhân tôi, không sao chép lại của người khác Trong toàn bộ nội dung của luận văn, những điều trình bày là của cá nhân tôi hoặc là được tôi tổng hợp từ nhiều nguồn tài liệu tham khảo có xuất xứ rõ ràng và trích dẫn hợp pháp

Tôi xin chịu toàn bộ trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của tôi

Hà Nội, tháng 10 năm 2010

Nguyễn Ngọc Khải

Trang 4

Tôi xin chân thành cám ơn các thầy cô giáo trong khoa Công nghệ thông tin, trường Đại học Công nghệ đã hướng dẫn, giúp đỡ và truyền đạt kiến thức cho tôi trong xuốt quá trình học tập để hôm nay tôi có thể hoàn thành được luận văn của mình

Đặc biệt tôi xin gửi lời cảm ơn sâu sắc đến thầy giáo PGS TS Nguyễn Việt Hà - là người đã trực tiếp hướng dẫn giúp đỡ tôi về mọi mặt để hoàn thành luận văn này

Tôi xin chân thành cám ơn các bạn đồng nghiệp, gia đình và bạn bè đã tạo mọi điều kiện giúp đỡ tôi trong xuốt quá trình học tập cũng như quá trình làm luận văn

Mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nỗ lực của mình, song luận văn chắc chắn không tránh khỏi thiếu sót, tôi rất mong nhận được các

ý kiến đóng góp, ý kiến phê bình của các thầy cô giáo, của các bạn đồng nghiệp

để tôi tiếp tục nghiên cứu và hoàn thiện hơn luận văn của mình

Xin chân thành cảm ơn !

Hà Nội, tháng 10 năm 2010

Học viên

Nguyễn Ngọc Khải

Trang 5

MỞ ĐẦU 1

CHƯƠNG 1: TÁC TỬ PHẦN MỀM VÀ HỆ ĐA TÁC TỬ 3

1.1 Tác tử phần mềm 3

1.1.1 Khái niệm tác tử phần mềm 3

1.2.2 Tương tác trong hệ đa tác tử 11

1.2.3 Các lợi thế của các hệ thống đa tác tử 12

1.2.4 Lĩnh vực áp dụng các hệ thống đa tác tử 13

CHƯƠNG 2: KỸ NGHỆ PHẦN MỀM HƯỚNG TÁC TỬ 14

2.1 Cách tiếp cận phát triển hệ đa tác tử 14

2.1.1 Cách tiếp cận theo tác tử 14

2.1.2 Cách tiếp cận phát triển từ phương pháp hướng đối tượng 15

2.1.3 Cách tiếp cận dựa trên công nghệ tri thức 15

2.2 Phương pháp MaSE 16

2.2.1 Đặc điểm của phương pháp luận MaSE 16

2.2.2 Quy trình phát triển phần mềm hướng tác tử 18

CHƯƠNG 3: ỨNG DỤNG TÁC TỬ CHO BÀI TOÁN ĐẶT LỊCH HỌP 33

3.1 Mô tả bài toán đặt lịch họp 33

3.2.1 Giải pháp dữ liệu tập trung xử lý tập trung 34

3.2.2 Giải pháp dữ liệu phân tán xử lý tập trung 35

3.2 Giải pháp ứng dụng công nghệ tác tử 37

3.3.1 Giải pháp thứ nhất 37

3.3.2 Giải pháp thứ hai 40

3.3.3 Một số kỹ thuật liên quan đến hoạt động của tác tử 42

CHƯƠNG 4:THỰC NGHIỆM 46

4.1 Công cụ phát triển thực nghiệm 46

4.1.1 Giới thiệu về JADE 46

4.1.2 Xây dựng hệ thống đa tác tử với JADE 47

4.2 Thực nghiệm 49

4.2.1 Hệ thống thực nghiệm 49

4.2.2 Kết quả thực nghiệm 50

KẾT LUẬN 53

Trang 6

MỞ ĐẦU

Trong thời đại công nghiệp hiện nay, tại các công ty, xí nghiệp, trường học thường xuyên cần tổ chức các cuộc họp, các cuộc hội thảo Mỗi khi cần tổ chức một cuộc họp người tổ chức phải căn cứ trên các điều kiện ràng buộc của cuộc họp và thời gian biểu của các thành viên để chọn ra một thời gian tổ chức cuộc họp sao cho phù hợp nhất

Tuy nhiên lịch làm việc của mỗi thành viên lại rất khác nhau, vì vậy việc tìm ra những khoảng thời gian để tổ chức cuộc họp sao cho ít ảnh hưởng nhất đến các thành viên của cuộc họp đôi khi rất khó khăn Thông thường hiện nay người tổ chức thường phải đàm phán bằng điện thoại hay email với các thành viên để thống nhất lịch họp Giải pháp này chỉ có tác dụng khi số người tham gia

là ít, còn đối với các cuộc họp có đông người tham gia thì thường phải cố định một thời gian cụ thể và yêu cầu các thành viên phải tuân theo Điều này không những làm ảnh hưởng đến công việc của các thành viên mà đôi khi còn làm ảnh hưởng đến hiệu quả công việc của cơ quan

Để giải quyết vấn đề trên, chúng ta cần một hệ thống đặt lịch họp tự động

để tìm ra thời gian tổ chức cuộc họp cho phù hợp nhất dựa trên ràng buộc của cuộc họp và lịch biểu cá nhân của các thành viên

Vấn đề đặt ra là hệ thống phải đảm bảo được các yêu cầu về bảo mật các thông tin cá nhân có trong lịch biểu của các thành viên, phải đảm bảo cho người dùng sử dụng hệ thống thuận tiện mọi lúc mọi nơi Để đảm bảo được các yêu cầu trên chúng ta bắt buộc phải lưu trữ dữ liệu của các thành viên phân tán trên các máy tính cá nhân của họ và sử dụng các chương trình mang các thuật toán đến các máy tính đó để tính toán và mang kết quả về Để thực hiện được ý tưởng này chúng tôi nhận thấy sử dụng công nghệ tác tử là một giải pháp hợp lý nhất Công nghệ tác tử là một công nghệ có nhiều ưu điểm nổi bật so với các công nghệ hiện thời, đặc biệt trong lĩnh vực xử lý phân tán Công nghệ tác tử cũng là một công nghệ mới hứa hẹn nhiều tiềm năng trong lĩnh vực công nghệ phần mềm, tuy nhiên chúng cũng còn nhiều thách thức đang chờ đợi chúng ta giải quyết Đó cũng chính vì các lý do mà tôi lựa chọn đề tài này để thực hiện trong luận văn của mình

Nội dung chính của luận văn bao gồm các vấn đề sau: Tìm hiểu các khái niệm cơ bản về công nghệ tác tử, các hệ thống đa tác tử Tìm hiểu về quy trình phát triển phần mềm hướng tác tử Xây dựng các giải pháp cho bài toán đặt lịch họp dựa trên công nghệ tác tử và các kết quả thực nghiệm của các giải pháp đó

Trang 7

Với nội dung trên luận văn được bố cục bao gồm bốn chương như sau: Chương 1 trình bày các khái niệm về tác tử phần mềm, hệ đa tác tử, các đặc điểm của tác tử, cách thức phân loại tác tử, cách thức giao tiếp của các tác tử trong hệ đa tác tử, các lợi ích và các lĩnh vực có thể áp dụng hệ đa tác tử

Chương 2 trình bày về các phương pháp tiếp cận hệ đa tác tử và quy trình phát triển phần mềm hướng tác tử MaSE

Chương 3 trình bày chi tiết về bài toán đặt lịch họp, phân tích và đề xuất các giải pháp ứng dụng công nghệ tác tử để giải quyết bài toán

Chương 4 trình bày về thực nghiệm và các kết quả đạt được khi tiến hành thực nghiệm các giải pháp đã đề ra trong chương 3 Ngoài ra chương này còn dành một phần để trình bày về công cụ JADE (Java Agent Development), một trong các công cụ dùng để triển khai các giải pháp ứng dụng công nghệ tác tử rất hiệu quả

Trang 8

CHƯƠNG 1 TÁC TỬ PHẦN MỀM VÀ HỆ ĐA TÁC TỬ

Chương này luận văn sẽ trình bày các kiến thức cơ sở về tác tử, hệ đa tác

tử, cách thức phân loại tác tử, các ưu điểm của công nghệ tác tử, các lĩnh vực có thể áp dụng công nghệ tác tử Đây là nền tảng để chúng ta tiếp cận với các vấn

đề liên quan đến tác tử và hệ đa tác tử

1.1.2 Các đặc tính của tác tử

Tác tử có các đặc tính chính như sau [9]:

Tính tự trị: là khả năng tự kiểm soát bản thân của tác tử 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 tác tử khác

Tính di động: là khả năng di chuyển từ môi trường thi hành này sang

môi trường thi hành khác của một tác tử Khả năng di động của một tác tử được phân thành hai loại: di động mạnh (strong mobility) và di động yếu (weak mobility) Di động mạnh 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 tác tử đến một môi trường khác Di động yếu là khả năng mà 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

Tính thích ứng: là khả năng mà tác tử 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

Trang 9

Khả năng cộng tác: là khả năng liên lạc, phối hợp hoạt động của các

tác tử với các tác tử khác của cùng môi trường hay với các loại đối tượng khác trong những môi trường khác

Tính chủ động: các tác tử có khả năng thể hiện các ứng xử hướng

mục tiêu bằng việc hoàn thành các kế hoạch để thoả mãn các mục tiêu thiết kế

1.1.3 Tiêu chí phân loại tác tử [14] [24]

Để phân loại tác tử chúng ta có thể căn cứ theo các tiêu chí sau:

+ Theo tính di động của tác tử

+ Theo khả năng suy luận hay phản xạ của tác tử

+ Theo tính chất đặc thù của tác tử

+ Theo vai trò của tác tử

+ Theo tính lai tạp của tác tử

Phân loại tác tử theo tính di động

Theo tiêu chí về khả năng di chuyển giữa môi trường này sang môi trường khác, giữa các nút mạng này sang nút mạng khác chúng ta có thể phân chia tác

tử làm hai loại: tác tử tĩnh và tác tử động

Theo khả năng suy luận hay phản xạ

Tác tử có thể được phân lớp theo tính suy luận hoặc tính phản xạ của chúng Theo tiêu chí này, tác tử được phân làm hai loại: tác tử suy luận và tác tử phản xạ

Các tác tử suy luận bắt nguồn từ mô hình tư duy suy luận: các tác tử có một tập trạng thái trong, mô hình tư duy và chúng hoạt động một cách có kế hoạch và có sự hợp tác với các tác tử khác

Các tác tử phản xạ thì không có tập trạng thái trong, chúng hoạt động theo hình thức đáp ứng lại trạng thái hiện thời của môi trường

Trang 10

thức nào đó nhằm đạt được mục đích Điểm chốt yếu của tính tự động là khả năng chủ động, như chúng có khả năng tự khởi tạo công việc chứ không chỉ đơn thuần đáp ứng lại trước các trạng thái hiện thời của môi trường

Khả năng hợp tác của tác tử là đặc điểm hết sức quan trọng, để có thể hợp tác được các tác tử cần sở hữu các khả năng xã hội, ví dụ khả răng tương tác với các tác tử khác và có thể là cả con người thông qua một số ngôn ngữ nào đó

Cuối cùng, để tác tử thực sự thông minh thì ngoài khả năng phản xạ hay tương tác với môi trường thì chúng phải có khả năng học tập Ở đây chúng ta quan niệm rằng bất cứ một thực thể thông minh nào cũng cần phải có khả năng học tập Quá trình học tập cũng có thể giúp nâng cao hiệu năng hoạt động của tác tử

Theo vai trò của tác tử

Chúng ta cũng có thể phân loại các tác tử theo vai trò riêng của nó do người dùng thiết kế Ví dụ các tác tử tìm kiếm thông tin mạng, tác tử báo cáo, tác tử biểu diễn, tác tử phân tích và thiết kế, tác tử kiểm tra, tác tử đóng gói và tác tử trợ giúp vv

Theo tính lai tạp của tác tử

Trên thực tế, để nâng cao hiệu năng của tác tử ta thường kết hợp hai hay nhiều mô hình tác tử khác nhau trong cùng một tác tử để tạo ra các tác tử lai

Việc phân biệt các tác tử theo các tiêu chí trên cũng chỉ mang tính chất tương đối, có những tác tử trong hoàn cảnh này thì coi chúng là tác tử di động, trong hoàn cảnh khác thì lại coi chúng là tác tử tĩnh, … vì vậy, tùy từng trường hợp cụ thể mà chúng ta phân loại tác tử và sử dụng các tiêu chí phân loại cho phù hợp

Để hiểu rõ hơn về cách phân loại này, phần tiếp theo chúng ta sẽ xem xét chi tiết các loại tác tử này

đó quay trở lại báo cáo các kết quả đã đạt được cho người chủ Tập công việc này có thể ở mức đơn giản như truy xuất thông tin hoặc phức tạp như việc điều

Trang 11

hành một mạng điện thoại Tuy nhiên nếu chỉ có tính chất di động thì cũng chưa

đủ cho thể hiện của một tác tử Các tác tử di động là tác tử vì chúng còn có tính

tự động và tính hợp tác, mặc dù khác với các tác tử hợp tác Ví dụ, chúng có thể hợp tác hoặc trao đổi thông tin thông qua một tác tử khác, chúng có các phương pháp biết được các tác tử khác Bằng cách này một tác tử có thể trao đổi thông tin với các tác tử khác mà không phải truyền đi tất cả các thông tin về mình Điều này hết sức quan trọng vì việc nhận biết công cộng về các tác tử cũng đồng nghĩa với các tác tử di động Các chức năng của tác tử di động được mô tả như trong hình vẽ 1.1

Tác tử hợp tác

Các tác tử hợp tác nhấn mạnh vào tính tự động và cộng tác với các tác tử khác để thực hiện nhiệm vụ được giao Tác tử loại này cũng có thể học, nhưng khía cạnh này không là đặc điểm nổi bật trong hoạt động của chúng Để đảm bảo được tính hợp tác, các tác tử này phải thương lượng và có được sự chấp nhận của các tác tử khác về một số khía cạnh nào đó trước khi thực hiện công việc của mình

Một số tính chất chủ yếu của tác tử hợp tác: tính tự động, khả năng xã hội, khả năng hồi đáp và chủ động Do đó, tác tử loại này có thể hoạt động tự động

và nối tiếp trong môi trường đa tác tử Ngoài ra các tác tử hợp tác thường không thực hiện những quá trình học tập phức tạp

Tác tử giao diện

Tác tử giao diện nhấn mạnh vào tính tự động và khả năng học tập để thực hiện nhiệm vụ Đặc điểm mấu chốt của tác tử loại này là chúng đóng vai chò như các trợ lý của người dùng, cùng hợp tác với người dùng trong cùng một môi trường làm việc Đây là điểm khác biệt với tác tử hợp tác, các tác tử hợp tác phải cộng tác với các tác tử khác để thực hiện nhiệm vụ Việc hợp tác với người dùng

Hình 1.1: Chức năng của các tác tử di động

User

Application

User’s Agent

Other Agent

Communicate Feedback

Asks

Interacts with

Interacts with

Observes Imitates

Trang 12

không yêu cầu một ngôn ngữ trao đổi phức tạp như trong việc trao đổi thông tin giữa các tác tử

Chức năng của các tác tử di động được mô tả trong hình vẽ dưới Trong

đó điểm chủ yếu là các tác tử thuộc loại này cung cấp cơ chế hỗ trợ, thường là

để trợ giúp người dùng học cách sử dụng một ứng dụng nào đó, như các bảng tính hoặc hệ điều hành Tác tử của người dùng quan sát và điều hành các hành động của người dùng trên giao diện, học các phím nóng mới, và gợi ý các cách làm tốt hơn để giải quyết công việc Như vậy, tác tử của người dùng hoạt động một cách tự động, như một trợ lý cùng hợp tác với người dùng hoàn thành công việc trong ứng dụng Để có thể trợ giúp ngày càng tốt hơn cho người dùng, các tác tử giao diện học tập theo bốn cách:

+ Thông qua quan sát và bắt trước người dùng (học từ người dùng)

+ Thông qua các thông tin hồi đáp tích cực hoặc tiêu cực từ người dùng (học từ người dùng)

+ Thông qua việc nhận các lệnh thực hiện của người dùng (học từ người dùng)

+ Thông qua việc tham khảo lời khuyên từ các tác tử khác (học ngang cấp)

Việc hợp tác giữa các tác tử loại này, nếu có, chỉ giới hạn ở mức hỏi các lời khuyên, chứ không ở mức thương lượng như trong trường hợp của các tác tử hợp tác Các phương thức học cũng chỉ thường là học “vẹt” (học dựa trên trí nhớ) học thông qua các phương trình tham số

Tác tử thông tin

Sự xuất hiện của các tác tử loại này là do nhu cầu về các công cụ trợ giúp trong việc khai thác lượng thông tin ngày càng lớn như hiện nay Các tác tử thông tin thực hiện các công việc như quản trị, xử lý hoặc sưu tập thông tin từ rất nhiều nguồn phân tán

Tuy nhiên phải lưu ý rằng rất có thể các tác tử loại này có các tính chất trùng lặp với những loại đã nêu trên, như tác tử giao diện hoặc tác tử hợp tác Điều này là không thể chánh khỏi vì khi đưa ra các định nghĩa trước về tác tử ta dựa trên câu hỏi “chúng là gì”, trong khi đó tác tử thông tin được định nghĩa với câu hỏi “chúng làm gì” Mặc dù tác tử thông tin và tác tử hợp tác có xuất phát điểm rất khác nhau, tuy nhiên với sự xuất hiện của world wide web và các dịch

vụ gia tăng trên mạng diện rộng mà bây giờ chúng có khá nhiều điểm trùng lặp với nhau

Trang 13

Tác tử phản xạ

Đây là loại tác tử đặc biệt, chúng không có các trạng thái trong, hay các

mô hình tượng trưng của môi trường, thay vào đó chúng hoạt động theo kiểu hồi đáp lại trước trạng thái hiện thời của môi trường Theo Maes, tác tử phản xạ có

ba đặc điểm nổi bật là:

+ Các chức năng được thực hiện độc lập

+ Nhiệm vụ được phân rã trước khi được giao cho mỗi tác tử + Các tác tử phản xạ có xu hướng hoạt động trực tuyến tương ứng với dữ liệu mà nó nhận được từ môi trường

Tác tử lai

Trong các phần ở trên ta đã nhắc đến năm loại tác tử: tác tử di động, tác tử hợp tác, tác tử giao diện, tác tử thông tin và tác tử phản xạ Mỗi loại trong số chúng đều có những điểm mạnh cũng như các khó khăn riêng, các nhà phát triển luôn muốn tạo ra các thực thể có tối đa các lợi thế, đồng thời giảm thiểu các khó khăn Để thực hiện điều này người ta thường phải áp dụng mô hình tiếp cận kiểu kết hợp nhiều mô hình Vì vậy các tác tử được tạo ra theo phương pháp này là sự kết hợp của hai (hoặc nhiều hơn) mô hình tác tử

Tác tử thông minh

Tác tử thông minh là các thực thể phần mềm thực hiện một tập hợp các thao tác nhân danh người sử dụng hoặc một chương trình khác với mức độ độc lập hoặc tự chủ nhất định, sử dụng một số tri thức và hình dung về mục đích và yêu cầu của người sử dụng

Việc phân chia thành các loại tác tử này cũng chỉ mang tính chất tương đối và được mô tả như trong hình vẽ 1.2

Hình 1.2: Phân loại tác tử [31]

cooperate learn

autonomous

collaborative Learning agent intelligent agent

collaborative agent

interface agent

Trang 14

Điều khiển giao thông, không lưu

Các nút giao thông được quản lý bởi các tác tử có khả năng trao đổi thông tin và tự đưa ra quyết định để tối ưu hoá lưu lượng Trong hàng không, mỗi máy bay được biểu diễn bằng một tác tử, các tác tử này có nhiệm vụ liên lạc với đài điều khiển và các máy bay khác để đưa máy bay hạ cánh an toàn

Trong Y tế:

Trong y tế có thể ứng dụng tác tử để theo dõi tình hình người bệnh, phối hợp các bộ phận, các bác sỹ và nhân viên trong một chương trình điều trị chung

Trong công nghiệp giải trí:

Tác tử được ứng dụng rất nhiều trong ngành công nghiệp trò chơi điện tử, đặc biệt một số game đối kháng như: bóng đá, cờ vua, cờ tướng, … trong đó mỗi nhân vật được mô phỏng bởi một tác tử

Trong quân sự:

Trong quân sự tác tử thường được sử dụng để mô phỏng quân số, trang bị,

hệ thống chỉ huy, đồng bộ các đối tượng này theo kế hoạch tác chiến chung

Trang 15

– Sự định hướng đối tượng không cung cấp một tập hợp các khái niệm,

cơ chế thực hiện đầy đủ, phù hợp cho mô hình hệ thống phức tạp: như trong các

hệ thống chúng ta phải đi tìm kiếm và xây dựng các đối tượng, các lớp và modul cung cấp những thuộc tính cần thiết song thiếu sự trừu tượng hoá

– Tác tử có các khái niệm về tính chủ động bền vững hơn so với đối tượng, và trong trường hợp riêng, chúng tự quyết định có thực hiện hay không một hành động nào đó từ một yêu cầu từ tác tử khác

– Tác tử thông minh: thể hiện ở tính phản xạ, tính chủ động, hành động hướng mục đích và linh hoạt

– Tác tử chủ động: một hệ thống đa tác tử vốn là hệ thống đa luồng, trong đó mỗi tác tử được giả thiết để điều khiển ít nhất một luồng

1.1.7 Lợi ích của công nghệ tác tử

Ứng dụng công nghệ tác tử sẽ có một số lợi ích chính sau:

Làm giảm tải mạng

Tác tử di động cho phép người dùng gởi nó đến đích và thực hiện xử lý, trao đổi dữ liệu cục bộ tại đó Như thế sẽ góp phần làm giảm những dòng dữ liệu thô trên mạng Phương châm thực hiện của tác tử di động là 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 tình trạng trễ

Với các hệ thống với quy mô lớn thông qua mạng sẽ phải chấp nhận một

sự trễ hạn nhất định Nhưng tác tử di động có thể khắc phục được điều này nhờ vào việc các tác tử 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

Gói gọn 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 tuân theo các giao thức nhất định Các giao thức này được sở hữu bở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 cho phù hợp với những yêu cầu phức tạp của người sử dụng thì chúng bắt đầu trở nên cồng kềnh, nặng nề và trở thành vấn đề nan giải Với giải pháp tác tử di động, các tác tử có thể mang trên mình các giao thức thích hợp và di chuyể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

Có thể thi hành tự trị và không đồng bộ

Trang 16

Khi sử dụng tác tử di động, ta sẽ đưa các tác vụ cần thực hiện vào tác tử, rồi gửi lên mạng Sau khi được gửi đi, tác tử trở nên độc lập thi hành không đồng bộ và có khả năng tự trị Sau đó các thiết bị có thể kết nối trở lại để nhận tác tử về Như vậy sẽ khắc phục được các trường hợp các nút mạng bị gián đoạn tạm thời, và các lỗi do không đồng bộ

1.2.1 Khái niệm về hệ đa tác tử

Các tác tử có thể hoạt động và tồn tại trong một số môi trường Mặc dù có những trường hợp một tác tử có thể hoạt động có hiệu quả một mình, nhưng trong hệ thống các mạng máy tính, các tình huống như vậy rất hiếm gặp Thường gặp là trường hợp các tác tử tương tác với nhau Hệ thống hay môi trường mà các tác tử tương tác được với nhau gọi là hệ thống đa tác tử (multi-agent) Đây là một môi trường mạng gắn kết một cách tự do các tác tử để giải quyết một vấn đề mà từng tác tử riêng biệt không giải quyết được Việc sử dụng

hệ thống đa tác tử cho phép một vấn đề có thể được giải quyết một cách phân tán trên nhiều hệ thống phần mềm và phần cứng khác nhau Hiện nay, hệ thống

đa tác tử được coi là cách tốt nhất để mô tả và thiết kế các hệ thống tính toán phân tán [29]

1.2.2 Tương tác trong hệ đa tác tử

Trang 17

Trong một hệ thống đa tác tử, các tác tử phải có hai khả năng cơ bản là tìm kiếm “đối tác”, tức là các tác tử khác, và hợp tác với chúng để thực hiện công việc

Việc hỗ trợ các tác tử trong việc tìm kiếm đối tác được thực hiện bởi các tác tử trung gian (middle agent) Các tác tử thông thường sử dụng tác tử trung gian để khai báo khả năng của mình hay tìm các tác tử khác cung cấp dịch vụ

mà chúng cần Một lợi thế của tác tử trung gian là chúng cho phép các hệ thống

đa tác tử có thể hoạt động một cách ổn định khi đối mặt với những vấn đề như

sự xuất hiện, biến mất hay chuyển động của các tác tử Dạng tác tử trung gian phổ biến có dạng “trang vàng” (yellow page) Dạng tác tử này hỗ trợ các tác tử thông thường trong việc tìm kiếm dịch vụ của các tác tử khác dựa trên những khả năng đã được đăng nhập

Tương tác là một trong những đặc trưng quan trọng nhất của một tác tử Các tác tử thường xuyên tương tác với nhau để chia sẻ thông tin và thực hiện nhiệm vụ chung Để tương tác, các tác tử phải sử dụng chung các ngôn ngữ và giao thức trao đổi, các cấu trúc chung về nội dung thông tin và cùng chia sẻ ngữ nghĩa

Ngôn ngữ trao đổi giữa các tác tử ACL (Agent Communication Language) chủ yếu là ngôn ngữ khai báo được phát triển dựa trên lý thuyết hành

vi ngôn ngữ (illocutionary acts) như yêu cầu, mệnh lệnh Ngôn ngữ khai báo được sử dụng phổ biến nhất hiện nay là KQML [15]

Cấu trúc ngữ nghĩa của thông điệp giữa các tác tử được định nghĩa bởi bản thể (ontology) Bản thể là các cấu trúc để mô tả khái niệm và quan hệ giữa chúng trong phạm vi vấn đề Bản thể mà các tác tử sử dụng để mô tả phạm vi vấn đề phải có cấu trúc giống nhau Một khi các tác tử trao đổi các bản thể chung, chúng sẽ sử dụng các bản thể này để hiểu nhau và thực hiện các hành vi xác định

1.2.3 Các lợi thế của các hệ thống đa tác tử

Hệ thống đa tác tử là các hệ thống tính toán phân tán, chúng có các đặc trưng nổi bật sau:

Có tốc độ và hiệu quả xử lý cao: Các tác tử có thể hoạt động theo

kiểu không đồng bộ và song song có thể làm tăng tốc toàn bộ quá trình xử lý

Chắc chắn và tin cậy: Sự hư hỏng của một vài tác tử sẽ không nhất

thiết làm cho toàn bộ hệ thống không còn hoạt động nữa vì các tác tử còn lại có thể tiếp quản các phần việc của chúng

Trang 18

Có tính điều chỉnh được và tính mềm dẻo cao: Hệ thống có thể bổ

sung thêm các tác tử khi phạm vi vấn đề được mở rộng và không ảnh hưởng đến

sự hoạt động của các tác tử khác

Có chi phí hợp lý: Hệ thống đa tác tử có chi phí hợp lý hơn so với

các hệ thống tập trung do hệ thống đa tác tử có thể được ghép từ các hệ thống con đơn giản có giá thành thấp

Có khả năng dùng lại: Một số tác tử cụ thể có thể được phát triển từ

đầu một cách riêng biệt bởi một số chuyên gia trong khi phần còn lại của hệ thống vẫn được tiếp tục sử dụng

1.2.4 Lĩnh vực áp dụng các hệ thống đa tác tử

Các hệ thống đa tác tử thích hợp cho các ứng dụng có những đặc trưng sau:

Có tính phân tán cố hữu: các hệ thống có dữ liệu và thông tin được

xử lý ở các vị trí địa lý khác nhau, ở các thời gian khác nhau, được tổ chức thành các nhóm mà việc truy cập chúng cần các ngữ nghĩa và ngôn ngữ khác nhau (sự phân tán về ngữ nghĩa) hay được tổ chức thành các nhóm mà việc truy cập chúng cần các khả năng về nhận biết, tri thức khác nhau (sự phân tán về chức năng)

Có tính phức hợp cố hữu: các hệ thống mà vấn đề chúng cần giải

quyết là quá lớn không thể xử lý được bằng một hệ thống riêng, tập trung do các giới hạn về công nghệ phần cứng và phần mềm Việc mở rộng các hệ thống tập trung là rất khó khăn, tốn thời gian, tiền của Hơn nữa việc mở rộng này rất không bền vững và sẽ không còn tác dụng khi phạm vi vấn đề lại tiếp tục được

mở rộng Trong trường hợp này giải pháp tốt nhất là xử lý chúng ở các hệ thống phân tán, khi này việc ứng dụng hệ thống đa tác tử là một trong những giải pháp hữu hiệu nhất

Kết luận

Tác tử và hệ đa tác tử là một lĩnh vực mới trong công nghệ phần mềm, các khái niệm, định nghĩa về chúng vẫn còn chưa thật đầy đủ Tuy nhiên trong chương này luận văn đã tìm hiểu và sưu tầm các khái niệm, định nghĩa về chúng

mà được cộng đồng nghiên cứu về tác tử đánh giá cao Phân tích các ưu điểm, nhược điểm, các lĩnh vực có thể áp dụng Đây là các kiến thức cơ sở, nền tảng rất quan trọng không thể thiếu được để chúng ta tiếp cận, tìm hiểu các vấn đề liên quan đến tác tử và hệ đa tác tử

Trang 19

CHƯƠNG 2

KỸ NGHỆ PHẦN MỀM HƯỚNG TÁC TỬ

Trong chương này, chúng ta sẽ tìm hiểu về các phương pháp tiếp cận phát triển hệ đa tác tử để từ đó tìm ra các phương pháp phù hợp với các điều kiện, hoàn cảnh trong thực tế Ngoài ra trong chương này luận văn sẽ trình bày chi tiết phương pháp phát triển hệ đa tác tử MaSE (Multi Agent System Engineering), đây là một phương pháp phát triển các hệ đa tác tử dựa trên phương pháp phát triển các hệ thống hướng đối tượng, được sử dụng rất phổ biến và có nhiều ưu điểm

2.1 Cách tiếp cận phát triển hệ đa tác tử

Nhu cầu phát triển các ứng dụng phần mềm dựa trên công nghệ tác tử trong những năm gần đây đã dẫn đến sự ra đời của nhiều phương pháp luận, các

phương pháp luận này chủ yếu dựa vào ba cách tiếp cận [26]: Cách tiếp cận dựa

trên tác tử, cách tiếp cận phát triển từ hướng đối tượng và cách tiếp cận dựa trên công nghệ tri thức

Quá trình phát triển một hệ thống phần mềm thông thường bao gồm các

pha chính: Xác định yêu cầu, phân tích, thiết kế, cài đặt và tích hợp Trong các pha này thì phân tích và thiết kế hệ thống được xem là các pha chính thể hiện

quan điểm của người phát triển hệ thống Sau đây chúng ta sẽ xem xét đặc điểm của ba cách tiếp cận này:

2.1.1 Cách tiếp cận theo tác tử

Các nghiên cứu xây dựng phương pháp luận phát triển hệ đa tác tử theo các đặc trưng của tác tử xuất phát từ các nhận định sau:

- Tác tử có những đặc trưng riêng như tính tự chủ, tính chủ động và khả năng phản ứng Các đặc trưng này là khác hoàn toàn so với đối tượng và tạo cho tác tử khả năng tương tác chủ động và khả năng suy luận mà các đối tượng không có Vì vậy, không thể mô hình hóa tác tử bằng cách sử dụng các phương pháp luận dành cho hướng đối tượng

- Tác tử hoạt động như một xã hội với các luật chi phối riêng nên có thể xem xét tác tử từ khía cạnh xã hội và sử dụng các khái niệm trừu tượng mức

xã hội để mô hình hóa các tác tử trong hệ thống

Các khái niệm trừu tượng mức xã hội được sử dụng để mô hình hóa tác tử theo cách tiếp cận này bao gồm tác tử, nhóm, tổ chức, … Mức trừu tượng xã hội được xem như là một mức trừu tượng cao hơn so với mức đối tượng thông

Trang 20

thường và phù hợp với việc biểu diễn các tác tử vì xã hội các tác tử bao gồm các thành phần có tính phản ứng, linh hoạt và tương tác chủ động

Dựa trên các khái niệm trừu tượng mức xã hội mà phương pháp luận này định nghĩa các bước, các pha của toàn bộ quá trình phát triển hệ thống Thông thường, với cách tiếp cận này, quá trình phát triển hệ thống được phân thành hai pha tách biệt: pha phân tích và pha thiết kế Pha phân tích tương ứng với mô hình tổ chức, pha thiết kế ứng với mô hình tác tử Tiêu biểu cho các phương pháp luận thuộc loại này là các phương pháp: Gaia, SODA, AALAADIN,…

2.1.2 Cách tiếp cận phát triển từ phương pháp hướng đối tượng

Khác với cách tiếp cận trên, cách tiếp cận phát triển từ phương pháp hướng đối tượng dựa trên quan điểm cho rằng các kỹ thuật đã được phát triển và được áp dụng rộng rãi cho kỹ nghệ phần mềm hướng đối tượng có thể được mở rộng cho các hệ phần mềm hướng tác tử

Cách tiếp cận này xem mỗi tác tử cũng là một đối tượng nhưng ở mức trừu tượng cao hơn Các công cụ sử dụng để biểu diễn đối tượng và phân tích thiết kế hệ thống hướng đối tượng như UML hoàn toàn có thể mở rộng để biểu diễn các đặc trương riêng của tác tử Các nghiên cứu xây dựng phương pháp luận phát triển từ phương pháp luận hướng đối tượng tập trung vào các công việc sau:

- Phát triển các công cụ dựa trên nền tảng sẵn có của hướng đối tượng

để áp dụng cho hệ đa tác tử, ví dụ như mở rộng UML thành AUML (Agent UML)

- Bổ sung các bước, các pha mang tính đặc trưng của tác tử và công nghệ tác tử như đích, vai trò và ontology

Tiêu biểu cho các phương pháp luận này là các phương pháp luận MaSE, MASSIVE, KGR, …

2.1.3 Cách tiếp cận dựa trên công nghệ tri thức

Dựa trên quan điểm cho rằng quá trình mô hình tri thức riêng của mỗi tác

tử và sự trao đổi tri thức giữa các tác tử trong hệ thống chính là cơ sở của mọi hoạt động của hệ thống Các nghiên cứu theo cách tiếp cận này sử dụng các khái niệm và quá trình trong công nghệ tri thức để xây dựng nên phương pháp luận cho hệ đa tác tử

Các phương pháp luận này tập trung vào các quá trình thu thập tri thức,

mô hình tri thức và lập luận được sử dụng bởi các thành phần tác tử trong hệ

Trang 21

thống phần mềm Tiêu biểu cho cách tiếp cận này là các phương pháp CoMMAS, MAS-ComonKADS

Như vậy có ba cách tiếp cận trong phân tích và thiết kế hệ đa tác tử Mỗi cách tiếp cận lại có những ưu điểm, nhược điểm riêng Phần kế tiếp luận văn sẽ trình bày về phương pháp luận MaSE là một phương pháp sử dụng cách tiếp cận phát triển từ phương pháp hướng đối tượng Đây là một phương pháp có nhiều

ưu điểm nổi bật

2.2 Phương pháp MaSE

MaSE (Multi Agent System Engineering) là một trong những phương pháp luận phát triển phần mềm hướng tác tử được xây dựng dựa trên phương pháp triển phần mềm hướng đối tượng So với các phương pháp luận khác, phương pháp này có ưu điểm là dễ dàng hơn cho những người đã quen với phát trển phần mềm hướng đối tượng và tích hợp được phát triển ontology trong quá trình phát triển hệ đa tác tử [11]

2.2.1 Đặc điểm của phương pháp luận MaSE [7] [11]

MaSE là phương pháp luận để phân tích và thiết kế các hệ phần mềm hướng tác tử được phát triển bởi nhóm nghiên cứu thuộc viên công nghệ Hàng không Hoa Kỳ (Air Force Intistute of Technology - AFIT)

Trong cách tiếp cận xây dựng phương pháp luận phát triển hệ đa tác tử đã được trình bày ở phần trên, MaSE là một phương pháp luận được phát triển dựa trên cách tiếp cận hướng đối tượng Quan điểm xây dựng của phương pháp luận này là xem tác tử như mức trừu tượng cao hơn của một đối tượng: mỗi tác tử được xem là một đối tượng đặc biệt Khác với một đối tượng truyền thống trong

đó các phương thức có thể được gọi bởi các đối tượng khác, các tác tử tương tác với nhau thông qua hội thoại và hành động một cách tự chủ để hoàn thành mục đích của riêng mình cũng như mục đích chung của hệ thống Ngoài ra, các tác tử được xem như là một sự khái quát hóa đối tượng phù hợp với bài toán cụ thể, nó

có thể có hoặc không có khả năng thông minh Do đó, các tác tử và các thành phần không thông minh trong hệ thống được xử lý tương tự như nhau Việc quan niệm các tác tử như một mức trừu tượng cao hơn của đối tượng khiến cho việc phân tích thiết kế hướng tác tử có thể kế thừa từ các phương pháp luận phát triển phần mềm hướng đối tượng

Quá trình phát triển hệ đa tác tử theo MaSE bao gồm hai pha: pha phân tích và pha thiết kế:

Trang 22

– Pha phân tích bao gồm các bước: Xác định Goal, Xác định các Use Case, Xây dựng Ontology và hoàn thiện Role

– Pha thiết kế bao gồm các bước: Xác định tác tử, Xây dựng hội thoại, Hoàn thiện tác tử và Triển khai hệ thống

Tuy nhiên, trong quá trình tiến hành, người thiết kế có thể chuyển đổi qua lại giữa các bước một cách tự do để có thể bổ sung các thiếu sót hay điều chỉnh lại các bước để đảm bảo tính nhất quán và toàn vẹn của hệ thống đang thiết kế Toàn bộ quá trình phân tích thiết kế hệ thống theo phương pháp MaSE được hỗ trợ bởi bộ công cụ Agent Tool Mỗi bước đều được biểu diễn bởi các sơ đồ tương ứng trong Agent Tool Bên cạnh đó, bộ công cụ này còn hỗ trợ người thiết

kế kiểm thử tương tác giữa các tác tử và sinh mã tự động cho hệ thống

Phần tiếp theo luận văn sẽ trình bày quy trình phát triển hệ phần mềm hướng tác tử theo phương pháp MaSE

Trang 23

Triển khai hệ thống

Xây dựng ontology

Xây dựng

sơ đồ role

Xác định các lớp agent

Xây dựng các phiên hội thoại

Hoàn thiện các agent

Pha phân tích

Pha thiết kế

Hình 2.1: Các bước phát triển hệ thống đa tác tử

Trang 24

+ Tập hợp đích:

Bước này thực hiện trích các yêu cầu chức năng có trong tài liệu đặc tả hệ thống, mỗi yêu cầu chức năng được mô tả bằng một đích Các yêu cầu chức năng được xác định bằng cách trả lời các câu hỏi: “Hệ thống phải làm gì” mà chưa cần quan tâm đến cách thức thực hiện nhiệm vụ đó như thế nào

Các đích đầu tiên được xác định một cách trực quan thông qua việc xác định mục tiêu cần đạt được của hệ thống Các đích tiếp theo được xác định thông qua đích trước bằng cách trả lời câu hỏi “muốn đạt được đích X thì cần phải có cái gì?” Quá trình này được gọi là quá trình phân rã, các đích được phân

rã từ các đích ban đầu sẽ trở thành các đích con Sự phân rã sẽ diễn ra với tất cả các đích đã được phát hiện nhưng chưa được phân rã

Quá trình phân rã sẽ dừng lại khi các chức năng con sinh ra không phải là nhiệm vụ mức hệ thống, nghĩa là không thể đóng vai trò đích của hệ thống Các đích không cần phân rã thêm có đặc điểm là khi cố gắng phân rã đích này ta sẽ phải trả lời câu hỏi “muốn hoàn thành việc này thì cần làm cái gì?”, tức là tìm ra một cách thức thực hiện đích đó chứ không phải là một đích con

+ Tổ chức cây đích

Bước con này có nhiệm vụ tổ chức các đích đã xác định trong bước con trước vào một sơ đồ phân cấp đích Một sơ đồ phân cấp đích là một đồ thị có hướng và không có chu trình Trong đó:

Các đỉnh biểu diễn các đích, có tên trùng với tên của đích mà nó biểu diễn

Các mũi tên chỉ ra quan hệ đích cha con và quan hệ với các đích khác

Có hai trường hợp xảy ra: Nếu đã xác định được đích tổng thể của hệ thống thì đặt nó ở gốc của cây đích; Nếu đích tổng thể không xác định được trực tiếp từ yêu cầu thì phải kết hợp các đích ở mức cao nhất lại thành một đích tổng thể cho hệ thống Các đích còn lại có thể phân cấp thành các quan hệ cha con hoặc ngang hàng bằng cách lặp lại các thủ thục sau:

Bước 1: Các đích được phân rã từ các đích khác trong bước con trước

phải là đích con với đích cha tương ứng

Bước 2: Nếu các đích không được phân rã từ bất kỳ một đích nào (các

đích được xác định ngay từ ban đầu), để xác định quan hệ cha - con, thì trả lời câu hỏi “chúng có thực hiện một phần nhiệm vụ cho một đích nào đó không?” Nếu có, nó sẽ trở thành đích con của đích mà nó hỗ trợ Nếu không, phải xem

Trang 25

xét lại rằng đích đó có cần thiết cho hệ thống hay không Nếu không cần thiết thì

nó sẽ bị loại bỏ và ngược lại, nếu cần thiết thì nó sẽ tạo thành một nhánh mới ngay từ nút gốc của cây đích

Trong cây đích có thể có bốn loại đích sau:

Đích chung: là một đích được tạo ra từ các đích ngang hàng (thường là đích tổng thể của hệ thống)

Đích phi chức năng: là các đích không thực hiện trực tiếp một chức năng nào của hệ thống, nhưng là nhân tố kiểm tra tính đúng đắn của hệ thống Các đích này thường xuất hiện từ các yêu cầu phi chức năng chẳng hạn như độ tin cậy hay yêu cầu thời gian thực cho hệ thống

Đích được kết hợp: là các đích được tạo thành khi kết hợp hai hay nhiều đích có chức năng giống nhau hoặc tương tự nhau

Đích bị phân hoạch: là đích được phân hoạch hoàn toàn Theo đó, nếu tất

cả các đích con của nó được hoàn thành thì bản thân nó cũng được hoàn thành

mà không cần thực hiện thêm nhiệm vụ nào nữa

– Bước 2: Xây dựng use case

Use case có thể hiểu là các mô tả về hành vi mà hệ thống cần thực hiện trong một trường hợp cụ thể Các hành vi này được xuất phát từ mong muốn của người dùng

Mục đích của bước này là tạo ra một tập các use case và các sơ đồ dãy tương ứng nhằm hỗ trợ cho người phân tích hệ thống phát hiện được tập các role ban đầu và các đường truyền thông có thể có trong hệ thống

Việc sử dụng use case trong MaSE được kế thừa từ phương pháp phân tích hướng đối tượng Có hai loại use case khác nhau dựa vào hoàn cảnh mà chúng mô tả:

Use case chủ động: mô tả hành vi của hệ thống trong trường hợp lý tưởng, nghĩa là các điều kiện đều thỏa mãn

Use case bị động: mô tả hành vi mà hệ thống cần thực hiện trong trường hợp có lỗi, có ngoại lệ hoặc có sự cố nghiêm trọng

Bước này cũng bao gồm hai bước con là tạo các use case và xây dựng biểu đồ tương tác tuần tự

+ Tạo các use case

Trang 26

Các use case có thể được trích ra từ nhiều nguồn khác nhau: Đặc tả yêu cầu của hệ thống, mong muốn của người dùng, bản mẫu nhanh Về nguyên tắc, mỗi một đích được xác định trong Bước 1 sẽ tương ứng với một use case, ngoại trừ các đích bị phân hoạch

Trong các use case tương ứng của mỗi đích cha, dãy hành động thuộc use case của đích con sẽ được coi là một hành động đơn, nghĩa là nó được xem tương đương với một hành động đơn bình thường khác và cũng được biểu diễn bằng một sự kiện đầu vào và một hành động được thực hiện

Các use case ứng với các đích thuộc lá của cây đích sẽ được trích dẫn trước, sau đó ngược dần lên phía gốc của cây đích và dừng lại khi gặp một đích

bị phân hoạch Đích bị phân hoạch sẽ không cần use case bởi vì use case tương ứng với nó chính là phép hợp đơn giản của các use case tương ứng với các đích con của nó mà không cần bổ sung thêm bất kì sự kiện hay hành động nào

+ Xây dựng biểu đồ tương tác tuần tự

Một biểu đồ tuần tự mô tả một dãy các sự kiện diễn ra giữa các role đã được tương tác giữa các role này với nhau Một biểu đồ tuần tự bao gồm:

Các role liên quan đến các use case cần biểu diễn, các role này được đặt phía trên của biểu đồ

Các đường nối từ các role thẳng xuống dưới là các đường biểu thị cho thời gian hoạt động của các role

Các mũi tên nối từ role này đến role kia biểu thị một tương tác giữa hai role, theo chiều mũi tên Nhãn kèm theo mũi tên sẽ biểu thị tên của sự kiện tương tác đó

Tuần tự các sự kiện xảy ra trong use case sẽ là tuần tự các mũi tên đi từ trên xuống dưới

Việc chuyển từ một use case sang một biểu đồ tuần tự có thể tiến hành trực tiếp như sau: Mỗi use case có thể tương ứng với một biểu đồ tuần tự Tuy nhiên, trong một số trường hợp mà use case quá phức tạp, nó có thể cần đến nhiều hơn một biểu đồ dãy để mô tả hoạt động Trong trường hợp này, cũng có thể tách use case thành các use case nhỏ hơn và đơn giản hơn, mỗi use case chỉ cần một biểu đồ dãy như trường hợp lí tưởng ban đầu

Việc xây dựng biểu đồ tuần tự được bắt đầu bằng việc xác định các role cần thiết phải tham gia vào biểu đồ Role có thể hiểu là một tập các nhiệm vụ có

Trang 27

liên quan chặt chẽ đến nhau mà các tác tử trong hệ thống cần đảm nhiệm để đạt tới đích Mỗi role có thể thực hiện một hay nhiều đích của hệ thống

Để xác địch các role, người phát triển có thể sử dụng kỹ thuật trích danh

từ Từ các use case đã có trong bước trước, người phát triển sẽ tiến hành duyệt

và tìm ra các danh từ chỉ các đối tượng có chức năng cụ thể nào đó trong use case đó Tiếp theo, người phát triển sẽ xem xét lại danh mục các danh từ này và loại đi các danh từ chỉ cùng một đối tượng Các danh từ còn lại sẽ là các role sẽ

có mặt trong sơ đồ tuần tự tương ứng với use case đó Sau khi đã có các role thì trong bước tiếp theo người phát triển sẽ tiến hành biểu diễn tuần tự các sự kiện của sơ đồ tuần tự trong Agent Tool

– Bước 3: Xây dựng Ontology

Ontology có thể xem là một tập các khái niệm để biểu diễn thông tin và tri thức trong trao đổi giữa các tác tử Nói cách khác, ontology là một hệ tri thức chung giữa các tác tử, bao gồm các khái niệm được dùng trong một miền tri thức nhất định Theo quan điểm MaSE, ontology là tập các khái niệm có thể sử dụng như là các tham số chứa trong các thông điệp trao đổi giữa các tác tử

Trong MaSE, xây dựng ontology bao gồm bốn bước chính:

+ Xác định mục đích và phạm vi của ontology

+ Thu thập dữ liệu

+ Xây dựng ontology khởi đầu

+ Hoàn thiện ontology

Kết quả các quá trình này là một sơ đồ phân các các khái niệm có thể đáp ứng yêu cầu hoạt động của hệ thống Khi áp dụng kỹ thuật này trong các hệ thống tích hợp thông tin thì cần có những thay đổi cho phù hợp

Ontology được sử dụng trong hầu hết tất cả các bước tiếp theo của quá trình phân tích thiết kế hệ phần mềm đa tác tử Các tham số truyền qua lại giữa các tác tử trong bước xây dựng được xác định một cách tường minh bởi các kiểu

dữ liệu cơ bản của Java hoặc các kiểu được định nghĩa trong ontology của hệ thống Chính vì vậy, ở các bước sau của phần thiết kế, ta sẽ sử dụng ontology và qua đó hiệu chỉnh lại ontology nếu thấy cần thiết Sau đây, ta sẽ xem xét cụ thể từng bước của quá trình xây dựng ontology

Bước 1: Xác định mục đích và phạm vi của Ontology

Bước đầu tiên trong việc xây dựng ontology là xác định được lĩnh vực mà ontology cần biều diễn Nghĩa là người phân tích phải trả lời được câu hỏi tại

Trang 28

sao ontology được xây dựng và phạm vi ý định sử dụng ontology của hệ thống Khi một hệ thống kế thừa ontology từ một hệ thống khác, ontology được kế thừa

đó phải được mô tả chi tiết và chính xác vì biểu diễn của nó Từ đó, người phân tích so sánh phạm vi này với phạm vi lĩnh vực của hệ thống mình đang xây dựng:

+ Nếu phạm vi của mình rộng hơn thì phải bổ sung thêm các khái niệm + Nếu phạm vi hẹp hơn thì phải loại bỏ các khái niệm không cần thiết

ra khỏi ontology được kế thừa

Để xác định phạm vi của ontology cần thực hiện các bước như sau:

+ Xem xét toàn bộ các use case đã được mô tả trong Bước 2 và sơ đồ đích của hệ thống trong bước một

+ Xác định toàn bộ các thông tin và kiểu dữ liệu mà hệ thống sẽ dùng, đồng thời xác định được mức độ chi tiết cần mô tả của các kiểu dữ liệu này

Người phân tích có thể sử dụng kỹ thuật khoanh vùng và thu hẹp dần các miền tri thức để xác định phạm vi của ontology Để xác định mức độ chi tiết của các tri thức và khái niệm, người phân tích tiếp tục sử dụng các kỹ thuật:

Phân rã miền tri thức ban đầu thành các miền con cho đến khi không thể phân rã thêm nữa

Khoanh vùng các miền tri thức có liên quan đến bài toán và loại bỏ các vùng không liên quan

Như vậy bước này tương ứng với pha đặc tả trong vòng đời phát triển ontology tổng quát

Bước 2: Thu thập dữ liệu

Sau khi xác định được các loại dữ liệu và mức độ chi tiết của chúng, người thiết kế phải lập ra một danh sách liệt kê tất cả các danh từ có mặt trong cây phân cấp đích và các use case Danh sách này được gọi là “Danh sách thuật ngữ” của hệ thống

Từ tập thuật ngữ này, người thiết kế phải chọn ra danh từ có thể biểu diễn một kiểu dữ liệu cần thiết cho hệ thống bằng cách xem xét tất cả các kiểu dữ liệu cần truyền đi trong các use case Bước này thực chất là tìm ra các khái niệm có trong các message và các khái niệm ở mức nhỏ hơn để các tác tử có thể hiểu được các message mà nó nhận được Sau bước này ta nhận được các khái niệm cần có trong ontology

Trang 29

Bước này ứng với pha hình thành khái niệm trong phương pháp luận xây dựng ontology tổng quát

Bước 3: Xây dựng ontology khởi đầu

Để xây dựng được ontology khởi đầu, người thiết kế phải chuyển toàn bộ các khái niệm đã thu được trong phần trước vào tập các lớp và các thuộc tính của chúng Vấn đề chính là làm sao xác định được khái niệm nào là lớp và khái niệm nào nên là thuộc tính, điều này phụ thuộc vào việc xác định mức độ chi tiết của mỗi khái niệm Thông thường, các khái niệm biểu diễn mức độ chi tiết thấp nhất thì nên lấy làm thuộc tính, các khái niệm là tổ hợp của nhiều khái niệm con thì nên xem là lớp

Tuy nhiên, không phải mỗi khái niệm đều phải mô tả đầy đủ các thuộc tính như ý nghĩa thực tế của nó Trong ontology, chỉ các thuộc tính cần thiết để thực hiện các đích con và đích tổng thể của hệ thống mới được đưa vào làm thuộc tính cho các đối tượng tương ứng Để xây dựng được ontology khởi đầu, người phân tích có thể lựa chọn một trong hai cách:

+ Kế thừa từ một ontology của một hệ thống khác: người phân tích phải xác định rõ phạm vi biểu diễn của ontology của hệ thống được kế thừa và phạm vi tri thức của hệ thống mình đang xây dựng Nếu phạm vi tri thức của hệ thống được kế thừa rộng hơn thì loại bỏ các thông tin dư thừa và bổ sung các thông tin chi tiết hơn Nếu phạm vi tri thức của hệ thống được kế thừa nhỏ hơn thì phải bổ sung các tri thức về miền lĩnh vực mới

+ Xây dựng ontology từ đầu: người phân tích phải chuyển toàn bộ các khái niệm đã thu được trong phần trước vào tập các lớp và các thuộc tính của chúng Thông thường, các khái niệm biểu diễn mức độ chi tiết thấp nhất thì nên lấy làm thuộc tính, các khái niệm là tổ hợp của nhiều khái niệm con thì nên tạo thành lớp

Bước này ứng với pha hình thức hóa và pha cài đặt trong phương pháp luận xây dựng ontology tổng quát

Bước 4: Kiểm định ontology

Trong bước này, người phân tích phải chứng thực được rằng ontology vừa xây dựng đã thỏa mãn yêu cầu của hệ thống bằng cách xem lại toàn bộ các tình huống đã được mô tả trong các use case và sơ đồ tuần tự:

+ Nếu phát hiện thấy một thiếu sót nào đó thì khái niệm tương ứng phải được bổ sung ngay vào ontology

Trang 30

+ Nếu phát hiện khái niệm nào không cần thiết phải loại bỏ ngay khỏi ontology

Quá trình này được lặp lại hoặc cho đến pha cài đặt hệ thống hoặc cho đến khi người thiết kế thấy rằng, ontology đã hoàn toàn thỏa mãn yêu cầu hoạt động của hệ thống

Bước 4 tương ứng với pha bảo trì trong phương pháp luận xây dựng ontology tổng quát đã nói ở trên

Kế quả của bước 4 này là một cây phân cấp ontology hoàn chỉnh, có thể đáp ứng được yêu cầu sử dụng trong các bước tiếp theo của quá trình phân tích thiết kế và đảm bảo đầy đủ các khái niệm cần cho tương tác của hệ đa tác tử

Những bước xây dựng ontology theo phương pháp luận MaSE là khá rõ ràng và tách biệt Tuy nhiên, trên thực tế các bước này đều nằm trong vòng đời phát triển ontology nên có thể được thực hiện lồng vào nhau Mặt khác, do đặt bước xây dựng ontology trong vòng đời phát triển chung của hệ thống nên nếu

có thay đổi trong use case và các biểu đồ dãy thì toàn bộ quá trình xây dựng ontology cũng phải thay đổi theo Và ngược lại, nếu cây phân cấp ontology thay đổi thì các bước sau của phân tích thiết kế cũng cần thay đổi cho phù hợp

– Bước 4: Xây dựng sơ đồ role

Role là khái niệm dùng để chỉ các thành viên thực hiện một hoặc một số vai trò nhất định trong hệ thống

Mục tiêu của bước này là chuyển tập các đích của hệ thống vào tập các role cùng với các nhiệm vụ của nó Thông thường, việc chuyển đổi từ đích sang role là tương ứng 1 - 1, nghĩa là mỗi role thực hiện một đích

Tuy nhiên, trong một số trường hợp, một role có thể tương ứng với nhiều đích khi các đích này có quan hệ chặt chẽ hoặc gần giống nhau Trong bước này, người phát triển hệ thống sẽ phải xem xét lại các role đã có trong bước xây dựng

sơ đồ tuần tự, thêm, bớt, sửa đổi cho phù hợp

Các giao tiếp với bên ngoài sẽ được xây dựng thành một role riêng biệt và hoạt động tương tự như một tương tác từ một nguồn tài nguyên bên ngoài với phần còn lại của hệ thống Các thành phần được coi là nguồn tài nguyên bên ngoài bao gồm: cơ sở dữ liệu, các file, hệ thống bổ sung và con người Sau khi xác định được các role phù hợp của hệ thống, phải xác định được tập các giao thức giao tiếp ban đầu giữa các role này Các tương tác này được trích từ các use case của bước 2

Trang 31

Nếu giữa các role trong biểu đồ dãy có một hoặc một số sự kiện liên quan với nhau thì giữa hai role tương ứng trong biểu đồ này sẽ có một giao thức tương tcs, bên khởi đầu trùng với bên khởi đầu các sự kiện trong use case Sơ đồ role ban đầu này sẽ được chi tiết hóa bằng cách gán các task cho các role, Task

là một nhiệm vụ cụ thể, chi tiết mà các role phải thực hiện nhằm đạt được đích

mà nó có trách nhiệm phải thực hiện

Thông thường mỗi đích nên cho tương ứng với một task, bởi vì muốn đạt được một đích, thì ít nhất một task cần phải hoàn thành Trong trường hợp đặc biệt, đối với các đích phức tạp thì có thể cần đến hơn một task để giải quyết nó Nên tách đích đó thành các đích bé hơn, đơn giản hơn sao cho một task đã có thể giải quyết được Dựa vào các đích mà mỗi role phải thực hiện, các task được tạo

ra bằng cách trả lời câu hỏi “Role sẽ thực hiện các đích đó như thế nào?” Sau khi các task được gán vào các role xác định, các giao thức giữa các role trong sơ

đồ role ban đầu sẽ được xác định cụ thể bởi các task liên quan

Sơ đồ bên trong task

Sau khi xác định được các role, các task sẽ được gán cho mỗi role để mô

tả cách mỗi role cư xử và hoạt động nhằm đạt được mục đích mà nó hướng tới Các role có thể hoạt động với hai loại tương tác:

Tương tác trong: Các tương tác giữa các task trong cùng một role

Tương tác ngoài: Các tương tác giữa các task của các role khác nhau Trong sơ đồ role chi tiết, các tương tác trong được biểu diễn bằng các mũi tên nét đứt, còn các tương tác ngoài được biểu diễn bởi mũi tên nét liền Các tương tác này sẽ định hướng cho việc thiết kế các conversation trong pha thiết

kế sau này Có hai loại task khác nhau:

Task chủ động: là task tự động bắt đầu khi role được sinh ra Task này không cần điều kiện kích hoạt ban đầu, nó tự động đi đến trạng thái ban đầu và thực hiện các hành động cho đến khi gặp trạng thái kết thúc hoặc role tương ứng của nó bị hủy bỏ

Task bị động là task chỉ thực hiện khi có sự kiện kích hoạt từ bên ngoài (Thường là một thông điệp từ task khác) Task này hoạt động cho đến khi gặp trạng thái kết thúc hoặc có một task khác yêu cầu nó kết thúc

Hoạt động bên trong của các task được mô tả theo sơ đồ máy trạng thái hữu hạn, bao gồm các trạng thái và các chuyển tiếp giữa các trạng thái Tại các trạng thái, các task được thực hiện thông qua các hàm cụ thể hoặc chờ cho đến khi một sự

Trang 32

kiện nào đó xảy ra Cú pháp của các trạng thái chuyển tiếp là tùy thuộc vào kiểu tương tác mà chuyển tiếp đó tham gia là tương tác trong hay tương tác ngoài Các chuyển tiếp tham gia vào tương tác được mô tả theo cú pháp:

<trigger><[guard]><^transmissions>

Nghĩa là, nếu có sự kiện trigger xảy ra mà nó đang giữ điều kiện guard thì

nó sẽ gửi đi các thông điệp transmissions và chuyển sang trạng thái tiếp theo

Trong các sơ đồ task, có một số trường hợp các điều kiện chuyển tiếp đồng loạt được thỏa mãn, nghĩa là các chuyển tiếp có thể diễn ra đồng thời thì thứ tự

ưu tiên các chuyển tiếp cần thực hiện được xác định như sau:

+ Chuyển tiếp có điều kiện [guard] là một sự kiện thuộc loại tương

tác trong

+ Chuyển tiếp có transmission là một sự kiện thuộc loại tương tác

trong

+ Chuyển tiếp có receive() từ các role khác (tương tác ngoài)

+ Chuyển tiếp send() gửi thông điệp đến các role khác

+ Chuyển tiếp chỉ có điều kiện [guard]

Như vậy ưu tiên trước hết được dành cho các chuyển tiếp có trao đổi thông tin với task khác, mức thứ hai là các tương tác thuộc loại tương tác trong, mức thứ ba là các tương tác có nhận thông điệp được ưu tiên hơn tương tác gửi thông điệp

Kết quả các pha phân tích là một tập các role và các task tương ứng nhằm hoàn thành mục đích của hệ thống Hoạt động bên trong và các tương tác bên ngoài giữa các task là nhân tố quan trọng cho pha thiết kế sau này

b Pha thiết kế

– Bước 5: Xác định các lớp tác tử

Trong bước này, các lớp tác tử sẽ được tạo ra từ các role đã được xác định trong bước 4 của pha phân tích, bao gồm:

+ Phân chia các role cho các lớp tác tử

+ Xác định các phiên hội thoại xuất hiện giữa các lớp tác tử

Kết quả của bước này là sơ đồ các lớp tác tử Sơ đồ này mô tả hệ thống một cách tổng thể theo các lớp tác tử và các phiên hội thoại liên lạc giữa chúng

Trang 33

Để đảm bảo các đích hệ thống đều được thực hiện trong pha thiết kế, mỗi role phải được đảm nhiệm bởi ít nhất một lớp tác tử, đôi khi cũng có các role được đảm nhiệm bởi nhiều lớp tác tử Trong trường hợp một lớp tác tử đảm nhiệm nhiều role thì các tác tử của lớp đó sẽ luân phiên đảm nhiệm công việc của từng role Trường hợp này xảy ra khi các role phục vụ cho các đích liên quan chặt chẽ với nhau hoặc có khối lượng tương tác với nhau lớn, chúng được xếp vào cùng một lớp tác tử nhằm giảm chi phí truyền thông Người thiết kế có thể dễ dàng thay đổi các role giữa các lớp tác tử, điều này cho phép họ điều chỉnh hệ thống theo mục đích của mình như sau:

Nếu giữa hai role có lưu lượng trao đổi thông tin lớn thì nên xếp chúng vào cùng một lớp tác tử để giảm chi phí truyền thông

Nếu cả hai role có khối lượng tính toán lớn và phức tạp thì nên xếp chúng vào hai lớp tác tử khác nhau để giảm khối lượng tính toán đồng thời tận dụng được khả năng xử lý đồng thời giữa các tác tử

Nhiệm vụ còn lại của bước này là xác định các phiên hội thoại xuất hiện giữa các lớp tác tử để hoàn thiện sơ đồ lớp tác tử của hệ thống Các phiên hội thoại được xác định từ các quan hệ giữa các role mà các lớp tác tử tương ứng cần thực hiện Chẳng hạn, hai lớp tác tử A và B lần lượt thực hiện các role 1 và

2 tương ứng Nếu giữa role 1 và 2 có một giao thức được xác định trong sơ đồ role thì giữa hai lớp tác tử A và B cũng xuất hiện một phiên hội thoại theo chiều tương ứng

Các phiên hội thoại biểu diễn tương tác giữa các lớp tác tử diễn ra ở mức ngữ nghĩa thông qua ontology Dựa vào ontology đã được xây dựng trong bước

3, các lớp tác tử có cách biểu diễn tri thức khác nhau sẽ trao đổi và hiểu được lẫn nhau dựa trên tri thức chung trong ontology

Việc chi tiết hoá các phiên hội thoại là nội dung của bước 6 và chi tiết hóa kiến trúc bên trong của các lớp tác tử là nội dung của bước 7 Hai bước tiếp theo này có thể được tiến hành song song

– Bước 6: Xây dựng các phiên hội thoại

Một phiên hội thoại biểu diễn một phiên liên lạc giữa hai tác tử, nghĩa là các tác tử sẽ tiến hành gửi đi các yêu cầu và đáp ứng lại các yêu cầu từ phía tác

tử kia Trong MaSE, mọi liên lạc giữa hai tác tử bất kỳ đều phải thông qua các phiên hội thoại được hoạt động theo cơ chế socket và cổng, với các chuẩn của giao thức TCP/IP

Ngày đăng: 01/08/2015, 23:09

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Chức năng của các tác tử di động - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 1.1 Chức năng của các tác tử di động (Trang 11)
Hình 1.2: Phân loại tác tử [31] - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 1.2 Phân loại tác tử [31] (Trang 13)
Sơ đồ role - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Sơ đồ role (Trang 23)
Hình 3.1: Giải pháp dữ liệu tập trung và xử lý tập trung - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 3.1 Giải pháp dữ liệu tập trung và xử lý tập trung (Trang 39)
Hình 3.2: Giải pháp dữ liệu phân tán và xử lý tập trung - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 3.2 Giải pháp dữ liệu phân tán và xử lý tập trung (Trang 41)
Hình 3.3: Mô hình hoạt động của các tác tử  Vai trò của các tác tử: - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 3.3 Mô hình hoạt động của các tác tử Vai trò của các tác tử: (Trang 43)
Hình 3.4: Tạo ra nhiều tác tử để cùng làm việc - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 3.4 Tạo ra nhiều tác tử để cùng làm việc (Trang 45)
Hình 3.5: Mô hình hoạt động của các tác tử theo giải pháp 2 - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 3.5 Mô hình hoạt động của các tác tử theo giải pháp 2 (Trang 46)
Trong hình vẽ 3.6, bảng a. mô tả ví dụ về một lịch biểu của một khách  mời, bảng b.  mô tả  mảng  thời  gian  mà tác tử đi  mời  họp cập  nhật từ  lịch biểu  của khách mời này - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
rong hình vẽ 3.6, bảng a. mô tả ví dụ về một lịch biểu của một khách mời, bảng b. mô tả mảng thời gian mà tác tử đi mời họp cập nhật từ lịch biểu của khách mời này (Trang 49)
Hình 4.1: Cấu trúc của hệ thống đa tác tử đƣợc xây dựng bởi JADE [18] - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 4.1 Cấu trúc của hệ thống đa tác tử đƣợc xây dựng bởi JADE [18] (Trang 52)
Hình 4.2: Mô hình thực nghiệm - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 4.2 Mô hình thực nghiệm (Trang 54)
Hình 4.3: Nội dung tập tin Conditions.txt của người dùng - Nghiên cứu về tác tử phần mềm và ứng dụng vào bài toán đặt lịch họp
Hình 4.3 Nội dung tập tin Conditions.txt của người dùng (Trang 56)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w