ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
HỒ VĂN BẢO
TÌM KIẾM VÀ TÍCH HỢP THÔNG TIN SỬ DỤNG
AGENT PHẦN MỀM
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội - 2013
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
HỒ VĂN BẢO
TÌM KIẾM VÀ TÍCH HỢP THÔNG TIN SỬ DỤNG
AGENT PHẦN MỀM
Ngành: Công nghệ Thông tin
Chuyên ngành: Công nghệ Phần mềm
Mã số: 60 48 10
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS. NGUYỄN VIỆT HÀ
Hà Nội - 2013
khuyến khích, động viên và ủng hộ tôi trong quá trình học tập và hoàn thành luận văn.
Do thời gian và trình độ có hạn nên luận văn này không thể tránh khỏi những
thiếu sót. Rất mong nhận đƣợc sự đóng góp ý kiến của các thầy cô giáo, đồng nghiệp,
bạn bè, các quý vị quan tâm này để luận văn đƣợc hoàn thiện hơn.
Trân trọng cảm ơn!
Hà Nội, tháng 12 năm 2013
Hồ Văn Bảo
iii
MỤC LỤC
MỞ ĐẦU ......................................................................................................................... 1
CHƢƠNG 1: CÔNG NGHỆ PHẦN MỀM HƢỚNG TÁC TỬ ..................................... 5
1.1. Khái niệm tác tử ................................................................................................... 5
1.1.1. Định nghĩa tác tử ........................................................................................... 5
1.1.2. Phân loại tác tử .............................................................................................. 6
1.1.2.1. Tác tử phần mềm .................................................................................... 6
1.1.2.2. Tác tử tự trị ............................................................................................. 7
1.1.2.3. Tác tử tƣơng tác ...................................................................................... 7
1.1.2.4. Tác tử thích nghi ..................................................................................... 7
1.1.2.5. Tác tử di động ......................................................................................... 8
1.1.2.6. Tác tử phối hợp....................................................................................... 8
1.1.2.7. Tác tử thông minh .................................................................................. 8
1.1.2.8. Tác tử wrapper ........................................................................................ 9
1.2. Công nghệ phần mềm hƣớng tác tử...................................................................... 9
1.2.1. Phần mềm hƣớng tác tử là gì? ....................................................................... 9
1.2.2. Mô hình hóa tác tử ....................................................................................... 10
1.2.3. Phân tích và thiết kế hƣớng tác tử ............................................................... 10
3.1.1. Tổng quan về tìm kiếm thông tin trong các hệ phân tán ............................. 21
3.1.2. Kiến trúc tổng quan hệ thống tìm kiếm thông tin trong hệ đa tác tử .......... 22
3.2. Tổng quan về tích hợp thông tin......................................................................... 22
3.2.1. Khái niệm tích hợp thông tin ....................................................................... 22
3.2.2. Mức độ tích hợp thông tin ........................................................................... 23
3.2.3. Một số phƣơng pháp tích hợp thông tin ...................................................... 24
3.2.3.1. Tích hợp thông tin dựa trên ƣớc lƣợng không chắc chắn..................... 24
3.2.3.2. Tích hợp thông tin dựa trên các ràng buộc dữ liệu............................... 25
3.2.3.3. Tích hợp thông tin tự động dựa trên ontology ..................................... 25
3.3. Hệ đa tác tử và tích hợp thông tin ...................................................................... 26
3.3.1. Hệ đa tác tử .................................................................................................. 26
3.3.2. Mối quan hệ giữa hệ đa tác tử và tích hợp thông tin ................................... 27
3.3.3. Ontology và các vấn đề liên quan ............................................................... 28
3.3.3.1. Khái niệm ............................................................................................. 28
3.3.3.2. Các thành phần của ontology ............................................................... 28
v
3.3.3.3. Phân loại ontology ................................................................................ 29
3.3.3.4. Các công cụ phát triển Ontology .......................................................... 30
3.3.3.5. Các ngôn ngữ Ontology........................................................................ 31
3.4. Một số hệ thống tích hợp thông tin trong thực tế ............................................... 32
CHƢƠNG 4: TÌM KIẾM VÀ TÍCH HỢP THÔNG TIN BÁN CẤU TRÚC SỬ DỤNG
TÁC TỬ PHẦN MỀM .................................................................................................. 33
4.1. Bài toán nghiên cứu ............................................................................................ 33
4.2. Giới thiệu hệ thống ............................................................................................. 33
4.3. Xây dựng hệ thống thử nghiệm .......................................................................... 34
4.3.1. Thiết kế kiến trúc hệ thống .......................................................................... 35
4.3.1.1. Tầng trình diễn ..................................................................................... 36
4.3.1.2. Tầng trung tâm ..................................................................................... 37
vii
DANH MỤC CÁC CHỮ VIẾT TẮT
ACL
Agent Communication Language
AOSE
Agent Oriented Software Engineering
BDI
Belief - Desire - Intention
CSDL
Cơ sở dữ liệu
DAML + OIL
DARPA Agent Markup Language + Ontology
Interface Layer
DIR
Distributed Information Retrieval
DTD
KQML
Knowledge Query and Manipulation Language
LAN
Local Area Network
MAS
Multi-Agent System
ODBC
Open DataBase Connection
ODL
Object Definition Language
ODM
Object Database Management
OEM
Object Exchange Model
OMG
Hình 3.2 - Kiến trúc hệ thống tìm kiếm thông tin trong hệ đa tác tử ............................ 22
Hình 4.1 - Mô hình tổng quan của hệ thống tìm kiếm và tích hợp thông tin ................ 34
Hình 4.2 - Kiến trúc hệ thống tìm kiếm và tích hợp thông tin của bài toán nghiên cứu
....................................................................................................................................... 36
Hình 4.3 - Kết hợp các kết quả đƣợc tạo từ 3 nguồn dữ liệu vào dữ liệu XML hợp nhất
....................................................................................................................................... 40
Hình 4.4 - Một ví dụ ontology ở mức khái niệm........................................................... 42
Hình 4.5 - Một ví dụ ontology ở mức vật lý.................................................................. 43
Hình 4.6 - Cấu trúc từ điển siêu dữ liệu theo định dạng XML-DTD ............................ 44
Hình 4.7 - Phân rã giao dịch toàn cục thành các giao dịch con phù hợp với các nguồn
thông tin vật lý ............................................................................................................... 46
Hình 4.8 - Tích hợp kết quả XML thành dữ liệu XML hợp nhất .................................. 47
Hình 4.9 - Biểu đồ ca sử dụng cho tác tử giao diện ngƣời sử dụng User Interface Agent
....................................................................................................................................... 50
Hình 4.10 - Biểu đồ ca sử dụng của tác tử Search Agent .............................................. 50
Hình 4.11 - Biểu đồ ca sử dụng cho tác tử trung tâm Mediator Agent ......................... 51
Hình 4.12 - Biểu đồ ca sử dụng cho tác tử LocalDB Agent .......................................... 51
Hình 4.13 - Cấu trúc tác tử User Interface Agent.......................................................... 51
Hình 4.14 - Cấu trúc tác tử Mediator Agent .................................................................. 52
Hình 4.15 - Cấu trúc tác tử Search Agent ..................................................................... 52
Hình 4.16 - Cấu trúc tác tử LocalDB Agent .................................................................. 52
Hình 4.17 - Sơ đồ lớp tác tử tìm kiếm và tích hợp thông tin......................................... 53
ix
Hình 4.18 - Sơ đồ lớp tác tử di động Search Agent ...................................................... 54
Hình 4.19 - Sơ đồ lớp của tác tử User Interface Agent ................................................. 55
Hình 4.20 - Giao diện Protégé 3.3.1 .............................................................................. 57
Hình 4.21 - Giao diện plug-in OntologyBeanGenerator trong Protégé 3.3.1 ............... 58
Hình 4.22 - SIAgentOntology sử dụng trong JADE ..................................................... 58
phân cấp theo mô hình XML. Sự không đồng nhất ngữ nghĩa lại xem xét về khía cạnh
ý nghĩa nội dung của dữ liệu.
Cùng với sự phát triển của các kỹ thuật tìm kiếm và tích hợp thông tin, vai trò
và lợi ích của cách tiếp cận hƣớng agent đã đƣợc nghiên cứu từ rất sớm. Từ những
năm 90, các tổ chức và trƣờng đại học nghiên cứu về agent đã phát triển rất mạnh mẽ.
Một ví dụ điển hình: Viện nghiên cứu MIT đã phát triển một loạt các dự án liên quan
đến công nghệ agent đƣợc triển khai rất thành công trên thực tế nhƣ: Smart Mobility,
Car in the City, Goal-Oriented Web Search User Interfaces,... hay FIPA - một tổ chức
nghiên cứu về agent nổi tiếng với các nỗ lực chuẩn hóa agent, cũng đƣa ra một số kết
quả nghiên cứu về ngôn ngữ truyền thông agent nhƣ: ACL, KQML,... Từ khi xuất hiện
các ngôn ngữ lập trình hƣớng agent và công nghệ phát triển phần mềm hƣớng agent ra
đời, hàng loạt các nghiên cứu và thử nghiệm về sử dụng công nghệ agent đã đƣợc công
bố, đã phản ánh những mức độ nghiên cứu về phƣơng pháp luận, công cụ và triển khai
2
ứng dụng khác nhau của các cách tiếp cận hƣớng agent và có thể tóm tắt qua các nội
dung sau:
Các định nghĩa cơ bản về agent, lý thuyết và thực hành;
Các phƣơng pháp đặc tả và mô hình hóa agent;
Các phƣơng pháp phát triển phần mềm hƣớng agent [24, 25];
Công nghệ Web ngữ nghĩa và ứng dụng trong tìm kiếm và tích hợp thông tin
[26, 27].
Ontology và công cụ khai thác Web ngữ nghĩa [3, 15, 16];
Các hệ thống tìm kiếm và tích hợp thông tin sử dụng agent phần mềm trong
thực tế.
Qua đây, ta có thể thấy việc sử dụng công nghệ agent cho các hệ thống lớn,
phức tạp và phân tán là một hƣớng đi mới, đóng góp vai trò quan trọng trong tiến trình
kỹ nghệ phần mềm và đang đƣợc triển khai nghiên cứu và ứng dụng rộng rãi trên thế
giới.
tử - là thuật ngữ đã đƣợc nhiều nhà nghiên cứu sử dụng, trong luận văn tôi sẽ sử dụng
thuật ngữ này khi đề cập đến agent), đi sâu tìm hiểu các phƣơng pháp tìm kiếm và tích
hợp thông tin sử dụng tác tử phần mềm. Hƣớng nghiên cứu tập trung vào hệ tìm kiếm
và tích hợp các dữ liệu ở định dạng XML của các nguồn thông tin phân tán không
đồng nhất sử dụng tác tử phần mềm.
Thông tin trong một tổ chức nói chung thƣờng có nhiều kiểu khác nhau, từ có
cấu trúc, bán cấu trúc và không có cấu trúc, bên cạnh đó, các nguồn thông tin thƣờng ở
các host vật lý khác nhau, các hệ điều hành khác nhau hoặc các hệ quản trị khác nhau.
Ta gọi các nguồn thông tin khác nhau nhƣ vậy là các nguồn thông tin không đồng
nhất. Các nguồn thông tin có cấu trúc thƣờng đƣợc xây dựng từ các lƣợc đồ đƣợc định
nghĩa trƣớc; các nguồn thông tin bán cấu trúc hầu hết đƣợc xây dựng từ các cấu hình
tƣơng tự nhƣng không đƣợc định nghĩa trƣớc về mặt lƣợc đồ; các nguồn thông tin
không có cấu trúc đƣợc xây dựng mà không có sự hạn chế nào.
Sự khác nhau vốn có trong các định nghĩa dữ liệu ở từng host đặt ra một thách
thức lớn cho cố gắng tích hợp trong tiến trình phân tán ở mỗi site. Hai vấn đề xuất hiện
từ sự không đồng nhất là: không đồng nhất lƣợc đồ và không đồng nhất ngữ nghĩa.
Các kết quả không đồng nhất lƣợc đồ xuất phát từ các lƣợc đồ cục bộ khác nhau.
Không đồng nhất ngữ nghĩa xảy ra khi có một sự khác nhau về ý nghĩa, sự biên dịch
hoặc dự định sử dụng cùng tên hoặc dữ liệu có liên quan.
Bài toán nghiên cứu trong luận văn tiếp cận một kiến trúc với khung hợp nhất
cho việc truy cập các nguồn thông tin không đồng nhất trong môi trƣờng Web thông
qua mô hình sử dụng tác tử phần mềm. Nghiên cứu sẽ tập trung vào tìm kiếm và tích
hợp dữ liệu từ các nguồn phân tán và giải quyết sự không đồng nhất của dữ liệu bằng
môi trƣờng dữ liệu XML hợp nhất. Sử dụng DARPA Agent Markup Language +
Ontology Interface Layer (DAML+OIL) [26, 27] cho khung mô tả tài nguyên trong
phần giao diện của ngƣời sử dụng. Sử dụng tác tử trung tâm (Mediator Agent) - là một
tác tử tĩnh để tạo các tác tử tìm kiếm Search Agent - là các tác tử di động (Mobile
Agent), nó tƣơng tác với tác tử tại đích đến LocalDB Agent - tác tử Wrapper, lấy dữ
liệu cơ sở dữ liệu phân tán thông qua giao diện JDBC và lấy kết quả trả về theo định
dạng XML.
những năm 90 đến nay. Tuy nhiên, ngay trong chính cộng đồng tác tử cũng có rất
nhiều định nghĩa khác nhau về tác tử. Wooldridge [12] định nghĩa tác tử phần mềm “là
một hệ thống tính toán bao gói, được đặt trong một môi trường cụ thể, có khả năng
hoạt động linh hoạt và tự chủ để đạt được các mục tiêu thiết kế”. James Odell [8] lại
định nghĩa tác tử là một “thực thể có hành vi” với các đặc trƣng sau:
Tự trị: là khả năng hành động mà không cần đến sự can thiệp trực tiếp từ
bên ngoài. Nó có một số mức điều khiển thông qua trạng thái nội tại của nó
và có các hành động dựa trên kinh nghiệm của chính nó.
Tương tác: giao tiếp với môi trƣờng và các tác tử khác.
Thích nghi: khả năng phản ứng với các tác tử khác và/hoặc môi trƣờng của
nó ở một vài mức độ nào đó. Dạng thích nghi cao cấp hơn là cho phép một
tác tử có thể sửa đổi hành vi của mình dựa trên kinh nghiệm của nó.
Xã hội: thể hiện trong mối quan hệ xã hội.
Di động: có thể tự di chuyển từ môi trƣờng này sang môi trƣờng khác.
Ủy quyền: có thể hành động với tƣ cách của một ai đó hoặc một cái gì đó, có
nghĩa là hành động nhƣ một ngƣời đại diện hoặc hành động vì lợi ích của
một vài thực thể nào đó.
Chủ động: Không đơn giản là chỉ tác động trở lại tới môi trƣờng mà hành
động có chủ đích để đạt đƣợc mục tiêu.
Thông minh: hình thức hóa các trạng thái của tác tử (ví dụ: niềm tin, mục
tiêu, các dự kiến, các giả định..) bằng tri thức và các tƣơng tác với các tác tử
khác sử dụng ngôn ngữ hình thức.
Suy luận: có thể lựa chọn một hành động dựa trên các mục tiêu chính và sự
hiểu biết về một hành động cụ thể có khả năng giúp nó tiến đến gần mục
tiêu hơn.
Không thể dự báo trước: có thể hành động theo cách nào đó không hoàn
toàn có thể dự đoán trƣớc đƣợc thậm chí dù đã biết trƣớc tất cả các điều kiện
ban đầu.
Thời gian liên tục: là một quá trình chạy liên tục.
là các thực thể tự trị và có thể tác động trở lại các thực thể khác, bao gồm cả con
ngƣời, máy móc và các tác tử phần mềm khác trong nhiều môi trƣờng và nền tảng
(platform) khác nhau. Về cơ bản, các tác tử phần mềm đƣợc thiết kế mẫu cho phần
mềm. Phát triển các công cụ, ngôn ngữ và môi trƣờng để hỗ trợ mẫu dựa trên tác tử.
Tuy nhiên, có thể thực thi các mẫu thiết kế tác tử sử dụng các công cụ, ngôn ngữ và
môi trƣờng hƣớng đối tƣợng hoặc bất kỳ công cụ, ngôn ngữ và môi trƣờng nào khác
mà có khả năng hỗ trợ các thực thể phần mềm tự trị, tƣơng tác và thích nghi. Chủ yếu
7
các công cụ dựa trên tác tử vẫn đƣợc ƣa thích hơn bởi vì các mẫu thiết kế tác tử là có
sẵn trong phần mềm hơn là đƣợc lập trình. Nói cách khác, có thể sử dụng công nghệ
đối tƣợng cho công nghệ dựa trên tác tử, nhƣng tính tự trị, tƣơng tác và thích nghi của
tác tử hiện không đƣợc hỗ trợ trong công nghệ hƣớng đối tƣợng. Trong khi đó, các
thuộc tính này có thể (và đang) đƣợc thêm vào cách tiếp cận hƣớng đối tƣợng thì các
mẫu thiết kế cho các tác tử và phần mềm dựa trên tác tử vẫn chƣa đƣợc hỗ trợ hoàn
toàn và trực tiếp.
1.1.2.2. Tác tử tự trị
Khi một tác tử có một sự độc lập nào đó với điều khiển bên ngoài, nó đƣợc coi
là tự trị. Ở một mức độ nào đó, các tác tử có thể hoạt động mà không cần sự can thiệp
hoặc gọi trực tiếp từ bên ngoài. Nếu không có quyền tự trị, một tác tử sẽ không còn là
một thực thể động nữa mà giống nhƣ một đối tƣợng thụ động nhƣ một bản ghi trong
một bảng quan hệ.
1.1.2.3. Tác tử tương tác
Các tác tử tƣơng tác có thể tƣơng tác với cả môi trƣờng và các thực thể khác và
có thể đƣợc biểu diễn theo cấp bậc. Ở một mức độ nào đó, các thông điệp đối tƣợng
(lời gọi hàm) có thể đƣợc coi là dạng cơ bản nhất của tƣơng tác, mức độ tƣơng tác
phức tạp hơn sẽ gồm các tác tử có khả năng phản ứng lại các sự kiện đáng chú ý bên
trong môi trƣờng. Các tƣơng tác phức tạp hơn ở các hệ thống trong đó các tác tử tham
gia trong các tƣơng tác song song, phức tạp với các tác tử khác. Ở mức độ này, các tác
với một RPC (Remote Procedure Call - gọi thủ tục từ xa). Tuy nhiên, nếu khối lƣợng
thông tin ứng với site ở xa là lớn thì cần phải xem xét vấn đề lƣu lƣợng và băng thông.
Hơn nữa, tác tử có thể xử lý dữ liệu từ xa hiệu quả hơn các dịch vụ nhƣ vậy tại site ở
xa. Việc di chuyển tác tử tới một trong nhiều platform khác nhau có thể sẽ hiệu quả
hơn là cách xử lý dữ liệu từ xa.
1.1.2.6. Tác tử phối hợp
Các tổ chức nhân sự tồn tại chủ yếu để phối hợp các hành động của nhiều cá
nhân vì một số mục tiêu. Mục tiêu này có thể là tạo ra các kết cấu nhƣ các đơn vị kinh
doanh sinh lãi, các tổ chức từ thiện, các công ty ba lê hoặc các liên hiệp nhỏ. Tƣơng tự
nhƣ vậy, các hệ thống bao gồm nhiều tác tử có thể sinh lợi theo cùng kiểu mẫu đó.
Một số ứng dụng phổ biến nhất về tác tử phối hợp là dây chuyền cung cấp, lập lịch,
giải quyết vấn đề, thƣơng lƣợng hợp đồng, và thiết kế sản phẩm. Nếu không có sự phối
hợp ở mức độ nào đó, các hệ thống nhƣ vậy không thể tồn tại, dù là ngƣời hay là các
hệ thống dựa trên tác tử.
Các tổ chức nhân sự không đƣợc xây dựng bởi các cá nhân giống hệt nhau và
cùng làm những việc giống nhau mà có sự đa dạng hóa, có ngƣời đại diện, có thƣơng
lƣợng, quản lý, cộng tác, cạnh tranh,…Và chúng ta cần thực hiện cách tiếp cận giống
nhƣ vậy trên các hệ thống đa tác tử. Tuy nhiên, vẫn nên xem xét cẩn thận trong khi
thiết kế và xây dựng cấu trúc của các hệ thống dựa trên tác tử. Điều này sẽ giúp tăng
khả năng liên kết chặt chẽ giữa các tác tử với hành vi của chúng, mặc dù sẽ hạn chế và
điều chỉnh tính tự động của tác tử nhƣng vẫn đảm bảo đƣợc tính linh hoạt ở mức tác
tử.
1.1.2.7. Tác tử thông minh
Sau hàng thập kỷ, thuật ngữ "thông minh" vẫn chƣa đƣợc định nghĩa (hoặc
đƣợc hiểu) cho hệ thống nhân tạo và ngày nay việc áp dụng thuật ngữ này cho tác tử
9
có lẽ chƣa thật thích đáng. Hầu hết đều có xu hƣớng cho rằng tác tử và tác tử thông
minh là tƣơng đƣơng nhau. Có lẽ đây chỉ là sự cố gắng để truyền tải thông tin rằng tác
quyết với các giao diện và ranh giới rõ ràng; đƣợc đặt trong một môi trƣờng cụ thể chúng nhận các đầu vào từ trạng thái của môi trƣờng thông qua các bộ cảm nhận của
chúng và tác động lên môi trƣờng thông qua cơ quan phản ứng của chúng; đƣợc thiết
kế để thực hiện một vai trò cụ thể - chúng có các mục tiêu cụ thể cần đạt đến, có thể là
10
rõ ràng hay không rõ ràng trong các tác tử; tự trị - chúng kiểm soát qua trạng thái trong
và các hành vi của chính chúng; có khả năng thể hiện hành vi giải quyết vấn đề mềm
dẻo (phụ thuộc ngữ cảnh) - chúng cần reactive (có thể phản ứng ngay lập tức với
những thay đổi của môi trƣờng để thỏa mãn các mục tiêu thiết kế của chúng) và
proactive (có khả năng cập nhật các mục đích mới và nắm thế chủ động để thỏa mãn
mục tiêu thiết kế của chúng).
1.2.2. Mô hình hóa tác tử
Việc mô hình hóa các hệ thống tác tử và đa tác tử cần có các ngôn ngữ, ký pháp
và công cụ thích hợp. Các tác tử không khác nhiều so với các đối tƣợng, và 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.
Ngôn ngữ mô hình hóa đƣợc chấp nhận rộng rãi nhất trong công nghệ phần mềm
hƣớng đối tƣợng là UML. Tuy nhiên, UML không cung cấp tất cả các ký pháp để mô
hình hóa các tính năng đặc biệt của tác tử.
Khả năng mở rộng của UML cho phép hỗ trợ việc mô hình hóa tác tử. AgentUML (AUML) mở rộng sơ đồ tuần tự của UML để đặc tả các giao thức tƣơng tác giữa
các tác tử bằng cách cung cấp các cơ chế để định nghĩa các vai trò tác tử, các đƣờng
sống, các giao thức lồng và đan xen và ngữ nghĩa mở rộng cho các thông điệp UML.
AUML đang trong giai đoạn nghiên cứu và đƣợc sửa đổi để triển khai các tính
năng mới trong UML 2.0. Ví dụ, truyền thông giữa các tác tử có thể đƣợc mô tả bằng
cách cải tiến sơ đồ tuần tự sang sơ đồ tƣơng tác, ở đó, tác tử có thể thay đổi vai trò
thêm hoặc xóa vai trò trong suốt quá trình tƣơng tác, các ký pháp biểu diễn vòng lặp
hoặc ngắt đƣợc bổ sung thêm các toán tử AND, OR và XOR.
1.2.3. Phân tích và thiết kế hƣớng tác tử
1.2.3.1. Phương pháp tiếp cận hình thức
Phƣơng pháp tiếp cận hình thức trong phân tích và thiết kế hƣớng tác tử là sử
đƣợc sử dụng để mô hình hóa tổ chức hệ thống; Gaia [24] điển hình cho phƣơng pháp
mô hình hóa vai trò.
1.3. Công nghệ tác tử
1.3.1. Truyền thông giữa các tác tử
Hiện đang là một trong những lĩnh vực quan trọng nhất cần chuẩn hoá. Không
chỉ nội dung và ý nghĩa của truyền thông có thể rất khác nhau mà cách thức truyền
thông cũng có rất nhiều cách khác nhau.
1.3.1.1. Các ngôn ngữ truyền thông tác tử
Các thông điệp phải có ngữ nghĩa tốt để có thể nhìn thấy đƣợc và tính toán
đƣợc. Vì thế, chúng ta cần phải chuẩn hoá ngôn ngữ truyền thông tác tử (Agent
Communication Languages - ACL) để những ngƣời khác có thể phát triển các tác tử
của họ để có thể thao tác lẫn nhau. Ngoài ra họ phải có một dạng ngữ nghĩa chính thức
để các cách thực thi khác nhau vẫn duy trì đƣợc các tính năng cần thiết của ACL. Bằng
cách xác định rõ một ACL chúng ta có thể hệ thống hoá các yếu tố tƣơng tác cơ bản
giữa các tác tử một cách hiệu quả.
Theo Weiß [19] một số ngôn ngữ chính dùng cho việc truyền thông giữa các tác
tử là: KQML [11] (đây là ngôn ngữ truyền thông tác tử đƣợc sử dụng rộng rãi nhất),
ARCOL (“ARTIMIS Communication Language”) [12] (ngôn ngữ truyền thông dùng
trong hệ thống ARTIMIS, có ít từ ngữ truyền thông gốc hơn KQML), FIPA ACL [5]
12
(là ngôn ngữ truyền thông tác tử chịu ảnh hƣởng mạnh bởi ARCOL) và KIF [10]
(ngôn ngữ dựa trên logic này đƣợc thiết kế để biểu diễn bất cứ loại tri thức hoặc siêu
tri thức nào). Sự kết hợp của FIPA-ACL, ARCOL, và KQML hầu nhƣ đã tạo nên một
chuẩn hoàn chỉnh cho các ngôn ngữ truyền thông tác tử.
1.3.1.2. Cơ chế truyền tải thông điệp
Trong môi trƣờng tác tử, có thể lập lịch các thông điệp nhƣ hƣớng sự kiện. Có
thể gửi thông điệp dƣới chế độ đồng bộ hoặc không đồng bộ. Hơn nữa, cơ chế truyền
thông điệp nên hỗ trợ đánh địa chỉ duy nhất nhƣ đánh địa chỉ dựa trên vai trò (tức là
quản lý, đang đƣợc theo dõi. Một số tác tử đƣợc thực thi nhƣ mã di động (mobile
code) có bổ sung thêm các vấn đề về vòng đời nhƣ: cho phép có các quyền để chạy,
các quyền để thực hiện một số tác vụ nào đó, và để có truyền thông tại nhiều địa điểm
khác nhau ngoài điểm bắt đầu xuất phát. Các tác tử có thể tiến hóa và khi chúng ta
kiểm tra quản lý vòng đời, chúng ta phải kiểm tra cả các môi trƣờng phần mềm sẽ chạy
tác tử. Môi trƣờng có thể rất nhỏ, không kết nối liên tục với các thiết bị nhƣ điện thoại
di động hay trợ giúp kỹ thuật số cá nhân hoặc có thể bao gồm nhiều máy chủ có khả
năng chạy số lƣợng rất lớn tác tử. Yêu cầu đối với các môi trƣờng hơi khác nhau và
cần phải xem xét cho phù hợp đối với từng hệ thống cụ thể.
1.3.2.1. Thời gian tồn tại của tác tử
Các tác tử có thể tồn tại logic trong khoảng thời gian nó hiển thị hành vi im lìm
không hoạt động. Các giao diện hỗ trợ vòng đời của tác tử cần cân nhắc các yêu cầu về
sự tồn tại “logic” của rất nhiều tác tử trái với sự tồn tại vật lý trong bộ nhớ.
Trong các hệ thống hiện đang hỗ trợ các tác tử “sống lâu” (long-lived), các tác
tử có thể “ngủ” và thƣờng đƣợc lƣu trữ trong ổ đĩa vật lý. Khi tác tử tồn tại lâu dài, dữ
liệu và trạng thái hiện tại vẫn đƣợc duy trì và sẽ phục hồi lại khi tác tử “thức”. Có một
trạng thái khác khi chuyển giữa trạng thái để tác tử ngủ và khi đánh thức nó dậy, có thể
truy vấn xem nó đang ở trong tình trạng nào, và khi tác tử “thức dậy” sẽ có thông báo
khoảng thời gian trôi qua và nó có thể đánh giá lại môi trƣờng.
Các hệ tác tử có thể có nhiều mô hình thông điệp trong khi tác tử “ngủ”. Một số
cần mô hình kiểu sự kiện thô với các thông điệp đƣợc truyền đi một cách chắc chắn.
Một số khác cần kiểu ngẫu nhiên khi một tác tử nhìn thấy một thông điệp quan trọng
có thể tác động đến thông tin. Có nhiều kiểu thông điệp truyền trực tiếp giữa hai tác tử,
với phƣơng pháp store-and-forward và mô hình publish-and-subscribe. Các sự kiện hệ
thống có thể đƣợc truyền qua các thông điệp hoặc một số cơ chế khác. Phải thiết kế
các mô hình sao cho việc truyền thông điệp là tối ƣu. Tuy có nhiều mô hình khác nhau
nhƣng qua thời gian sẽ xuất hiện một số mẫu thiết kế nào đó.
1.3.2.2. Quá trình hoạt động của tác tử
Cần thiết phải có các kỹ thuật ghi lại lịch sử các hành động của tác tử để trình
điều khiển hành vi của tác tử có thể kiểm tra lại và tác tử đó có thể đánh giá các hành
cuối cùng bị huỷ sau khi đã hoàn thành nhiệm vụ.
1.3.4.2. Cơ chế di chuyển của tác tử di động
Tác tử sẽ tự quyết định đóng gói và di trú đến môi trƣờng khác để thực thi là
đặc điểm nổi bật của tác tử di động. Khi có nhu cầu di trú, tác tử sẽ tạm dừng thực thi
mã, thực hiện lƣu trạng thái của đối tƣợng (có thể có khả năng lƣu lại cả trạng thái thi
hành). Sau khi mã hoá dữ liệu tác tử sẽ đƣợc truyền đi trên hệ thống mạng. Khi đến
đích, tác tử sẽ thực hiện các bƣớc ngƣợc lại với bên gửi để khôi phục lại trạng thái của
tác tử và tiếp tục thực hiện nhiệm vụ.