Tải bản đầy đủ (.pdf) (75 trang)

Tìm hiểu và tích hợp thông tin sử dụng agent phần mềm luận văn ths công nghệ thông tin 60 48 10 pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.4 MB, 75 trang )

ĐẠ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



i

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 đƣợc tôi tổng hợp từ nhiều nguồn tài
liệu. Tất cả các nguồn tài liệu tham khảo có xuất xứ rõ ràng và đƣợc 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 12 năm 2013

Hồ Văn Bảo


ii

LỜI CẢM ƠN
Lời đầu tiên cho phép tôi đƣợc bày tỏ lòng biết ơn sâu sắc và cảm ơn chân
thành tới PGS.TS. Nguyễn Việt Hà - Trƣờng Đại học Công nghệ - Đại học Quốc gia
Hà Nội - đã dành rất nhiều thời gian quí báu để tận tình hƣớng dẫn, dìu dắt, chỉ bảo và
định hƣớng cho tôi trong suốt thời gian hoàn thành luận văn.
Tôi xin bày tỏ lòng biết ơn tới các thầy cô giáo Khoa Công nghệ Thông tin Trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội đã truyền đạt những kiến thức,
kinh nghiệm quý báu trong suốt thời gian tôi học tập tại trƣờng. Tôi xin gửi lời cảm ơn
sâu sắc tới Ban Giám đốc và các đồng nghiệp Trung tâm Tin học Thống kê Khu vực I
- Tổng cục Thống kê đã hết sức tạo điều kiện thuận lợi cho tôi trong suốt quá trình học
tập và thực hiện luận văn.
Tôi xin chân thành cảm ơn bạn bè và gia đình, những ngƣời thân luôn ở bên

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

1.2.3.1. Phƣơng pháp tiếp cận hình thức ........................................................... 10
1.2.3.2. Phƣơng pháp tiếp cận không hình thức ................................................ 11
1.3. Công nghệ tác tử ................................................................................................. 11
1.3.1. Truyền thông giữa các tác tử ....................................................................... 11
1.3.1.1. Các ngôn ngữ truyền thông tác tử ........................................................ 11
1.3.1.2. Cơ chế truyền tải thông điệp ................................................................ 12
1.3.1.3. Truyền thông Ontology ........................................................................ 12
1.3.1.4. Các giao thức tƣơng tác tác tử .............................................................. 12
1.3.2. Quản lý vòng đời tác tử ............................................................................... 13
1.3.2.1. Thời gian tồn tại của tác tử ................................................................... 13
1.3.2.2. Quá trình hoạt động của tác tử ............................................................. 13
1.3.2.3. Phân lớp động và đa phân lớp .............................................................. 14


iv
1.3.3. Tính di động ................................................................................................ 14
1.3.4. Nguyên lý hoạt động của tác tử di động ...................................................... 14
1.3.4.1. Vòng đời của một tác tử di động .......................................................... 14
1.3.4.2. Cơ chế di chuyển của tác tử di động .................................................... 14
CHƢƠNG 2: NỀN TẢNG JADE (JAVA AGENT DEVELOPMENT FRAMEWORK)
....................................................................................................................................... 15
2.1. Nền tảng JADE ................................................................................................... 15
2.1.1. Khái niệm JADE.......................................................................................... 15
2.1.2. Kiến trúc nền tảng JADE............................................................................. 15
2.2. Giao tiếp giữa các tác tử JADE .......................................................................... 17
2.3. Dịch vụ di động liên nền (Inter-platform) .......................................................... 19
2.4. JadeGateway ....................................................................................................... 20
CHƢƠNG 3: 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 .................................................................................................. 21
3.1. Tìm kiếm thông tin ............................................................................................. 21

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

4.3.1.3. Tầng tìm kiếm....................................................................................... 40
4.3.1.4. Tầng tài nguyên .................................................................................... 41
4.3.2. Từ điển siêu dữ liệu dựa trên ontology............................................................ 41
4.3.2.1. Biểu diễn mức khái niệm...................................................................... 41
4.3.2.2. Biểu diễn mức vật lý............................................................................. 42
4.3.3. Từ điển siêu dữ liệu dựa trên XML ................................................................. 43
4.3.4. Xử lý tìm kiếm và tích hợp thông tin đối với các nguồn dữ liệu .................... 44
4.3.4.1. Xử lý tìm kiếm các nguồn thông tin ..................................................... 44
4.3.4.2. Xử lý tích hợp các nguồn thông tin ...................................................... 46
4.3.5. Tác tử thông minh XML - Chuyển đổi truy vấn từ SQL sang XQuery .......... 47
4.3.6. Thiết kế chi tiết ................................................................................................ 50
4.3.6.1. Biểu đồ các ca sử dụng của các tác tử chính ........................................ 50
4.3.6.2. Đặc tả các tác tử chính.......................................................................... 51
4.3.6.3. Sơ đồ lớp tác tử tìm kiếm và tích hợp thông tin ................................... 53
4.4. Thực nghiệm ....................................................................................................... 55
4.4.1. Mô tả bài toán thực nghiệm ......................................................................... 55
4.4.2. Cài đặt công cụ và kết quả thử nghiệm ....................................................... 56
4.4.2.1. Cài đặt JADE ........................................................................................ 56


vi
4.4.2.2. Công cụ xây dựng ontology và lớp java của ontology ......................... 56
4.4.2.3. Lớp tác tử Mediator Agent ................................................................... 58
4.4.2.4. Phần kết nối cơ sở dữ liệu MySQL của tác tử wrapper (LocalDBAgent)
........................................................................................................................... 59
4.4.2.5. Giao diện chạy các tác tử...................................................................... 61
4.4.2.6. Kết quả tìm kiếm và tích hợp thông tin trả về cho ngƣời sử dụng ....... 61
KẾT LUẬN ................................................................................................................... 62
TÀI LIỆU THAM KHẢO ............................................................................................. 63



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


Document Type Definiton

EER

Extended Entity-Relationship

FIPA

Foundation for Intelligent Physical Agent

IRS

Information Retrieval System

JADE

Java Agent DEvelopment Framework

JDBC

Java Database Connectivity

JDK

Java Development Kit

J2EE

Java 2 Enterprise Edition


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


Object Management Group

ODMG

Object Data Management Group

RPC

Remote Procedure Call

SQL

Structure Query Language

XML

eXtensible Markup Language


viii

DANH MỤC HÌNH VẼ
Hình 2.1 - Các thành phần kiến trúc chính của JADE .................................................. 15
Hình 2.2 - Dịch vụ trang vàng (Yellow pages service) ................................................. 17
Hình 2.3 - Giao diện quản lý tác tử JADE .................................................................... 18
Hình 2.4 - Mô hình truyền thông điệp không đồng bộ giữa các tác tử ......................... 19
Hình 2.5 - Di chuyển liên nền của tác tử di động .......................................................... 19
Hình 2.6 - Mô hình tƣơng tác giữa servlet với tác tử thông qua JadeGateway ............. 20
Hình 3.1 - Sơ đồ tổng quát hệ thống thu thập thông tin từ nhiều nguồn dữ liệu ........... 21

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

Hình 4.23 - Sơ đồ lớp của tác tử LocalDBAgent .......................................................... 59
Hình 4.24 - Màn hình chạy các tác tử ........................................................................... 61
Hình 4.25 - Kết quả trả về cho ngƣời sử dụng trong môi trƣờng JADE ....................... 61


1

MỞ ĐẦU
Sự phát triển rất nhanh của công nghệ thông tin và việc ứng dụng công nghệ
thông tin trong nhiều lĩnh vực của đời sống, kinh tế - xã hội trong nhiều năm qua cũng
đồng nghĩa với lƣợng dữ liệu đã đƣợc các cơ quan, cá nhân thu thập và lƣu trữ ngày
càng nhiều. Trong khi khối lƣợng dữ liệu ngày càng phát triển và phân tán nhiều nơi
thì mỗi hệ thống chỉ cần một số thông tin nhất định phù hợp với yêu cầu riêng của hệ
thống đó và trong nhiều trƣờng hợp để xây dựng một hệ thống cần đến thông tin từ
nhiều nguồn khác nhau. Nhu cầu tích hợp thông tin từ nhiều nguồn phân tán, không
đồng nhất ngày càng trở nên cấp thiết.
Để xây dựng một hệ thống tích hợp thông tin, hai vấn đề cần thiết đƣợc đặt ra:
 Tìm kiếm/xác định các nguồn tin phù hợp cho thông tin cần sử dụng.
 Truy nhập và tổng hợp thông tin từ các nguồn xác định.
Tìm kiếm các nguồn thông tin thƣờng đƣợc giải quyết thông qua các kỹ thuật
thu thập và lọc thông tin. Khi các nguồn tin đã đƣợc xác định thì các kỹ thuật truy
nhập và tổng hợp thông tin từ các nguồn này lại đƣợc quan tâm. Trở ngại lớn nhất cho
vấn đề tích hợp thông tin là sự không đồng nhất của các nguồn tin, dẫn đến sự không
đồng nhất về cách thức truy nhập cũng nhƣ nội dung thông tin. Thông thƣờng, cách
thức truy nhập có thể vƣợt qua bởi những chuẩn công nghệ, chẳng hạn nhƣ ODBC cho
các cơ sở dữ liệu quan hệ, hay gần đây là các giao thức dịch vụ mạng. Vấn đề đáng
quan tâm là sự không đồng nhất về nội dung thông tin. Sự không đồng nhất này đƣợc
biết đến với hai dạng cơ bản: không đồng nhất về lƣợc đồ, không đồng nhất về ngữ
nghĩa. Không đồng nhất về lƣợc đồ liên quan tới việc lƣu trữ thông tin trong các khuôn
dạng khác biệt - chẳng hạn dƣới dạng các bảng theo mô hình quan hệ hay dƣới dạng

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.

Hiện nay hầu hết các dữ liệu lƣu trữ trong các máy tính không nhất thiết đƣợc
quản lý bởi các hệ quản trị cơ sở dữ liệu, nó có thể đƣợc lƣu dƣới dạng có cấu trúc, ví
dụ nhƣ: HTML hoặc SGML, các định dạng dữ liệu không tuân theo một mẫu chuẩn,...
Cấu trúc của dữ liệu không đƣợc định trƣớc, và thậm chí ngay cả khi đã đƣợc định
trƣớc thì nó cũng có thể bị thay đổi liên tục mà không có dấu hiệu để báo trƣớc cho
việc thay đổi đó. Những dữ liệu nhƣ vậy đƣợc gọi là dữ liệu bán cấu trúc (semistructure).
Thông thƣờng để biểu diễn dữ liệu bán cấu trúc, trƣớc đây ngƣời ta thƣờng sử
dụng mô hình chuyển đổi OEM (Object Exchange Model) mô hình này cũng đã đƣợc
đƣa ra trong một số dự án tích hợp dữ liệu bán cấu trúc và có cấu.
Tuy nhiên, có một cách thức khác để có thể biểu diễn cả dữ liệu có cấu trúc
cũng nhƣ bán cấu trúc, đó là ngôn ngữ XML (ngôn ngữ đánh dấu mở rộng - eXtensible
Markup Language). Thực chất, tổ chức W3C phát triển và chuẩn hóa XML cho mục
đích biểu diễn dữ liệu và trao đổi dữ liệu trên Web, nhƣng vì ngôn ngữ này có một số
tính năng rất ƣu việt trong việc biểu diễn dữ liệu nên nó đƣợc sử dụng rất rộng rãi và
đƣợc coi nhƣ một công cụ để biểu diễn dữ liệu bán cấu trúc.
XML hỗ trợ việc trao đổi dữ liệu điện tử mà máy tính có thể hiểu đƣợc. Bên
cạnh đó XML biểu diễn dữ liệu mà không tuân theo khuôn dạng định trƣớc. Cú pháp
của XML cho phép lƣu dữ liệu theo mô hình bất kỳ nên việc chuyển đổi biểu diễn dữ
liệu của các nguồn lƣu trữ truyền thống và XML có thể thực hiện dễ dàng. XML
thƣờng đƣợc lựa chọn nhƣ là một ngôn ngữ trung gian biểu diễn cho dữ liệu trong quá
trình tích hợp thông tin.


3
Để có cái nhìn tổng quan về vấn đề này, nắm đƣợc tầm quan trọng của nó, lựa
chọn đƣợc hƣớng tiếp cận phù hợp với quá trình phát triển các hệ thống phần mềm
phức tạp và phân tán, có đƣợc những cơ sở về phƣơng pháp luận cũng nhƣ kinh
nghiệm phục vụ cho việc triển khai ứng dụng, tôi đã chọn đề tài: “Tìm kiếm và tích
hợp thông tin sử dụng Agent phần mềm”.
Trong luận văn này, tôi tập trung nghiên cứu công nghệ agent (tạm dịch là tác

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.

Để đạt đƣợc các mục tiêu đã liệt kê ở trên, phần còn lại của luận văn đƣợc tổ
chức nhƣ sau:


4
Chƣơng 1: Trình bày các kiến thức tổng quan về tác tử, các đặc trƣng của tác
tử và hệ đa tác tử, các phƣơng pháp luận xây dựng hệ đa tác tử, khái niệm và ontology
và công cụ khai thác ontology, web ngữ nghĩa (Semantic Web) và các khung mô tả tài
nguyên.
Chƣơng 2: Nền tảng JADE (Java Agent DEvelopment Framework) [7, 28], tìm
hiểu và ứng dụng nền tảng JADE phục vụ cho việc cài đặt và thực thi hệ thống.
Chƣơng 3: 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: Trình bày khái niệm tìm kiếm và tích hợp thông tin, nhu cầu tích hợp thông tin
và các phƣơng pháp tích hợp thông tin và bài toán tích hợp thông tin trong hệ đa tác tử.
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: Bài toán nghiên cứu và thực nghiệm - Bài toán tìm kiếm và tích hợp thông tin sử
dụng tác tử phần mềm: Trình bày về tìm kiếm và tích hợp thông tin áp dụng các
phƣơng pháp và công nghệ tác tử; phần cuối chƣơng này trình bày cách cài đặt, cấu
hình và thực thi ứng dụng thử nghiệm cho bài toán đặt ra. Hệ thống tìm kiếm và tích
hợp thông tin sử dụng tác tử phần mềm đƣợc xây dựng bằng công cụ JADE.
Kết luận: Trình bày một số kết quả đạt đƣợc và đóng góp của luận văn và
hƣớng nghiên cứu tiếp theo trong tƣơng lai.


5

CHƢƠNG 1: CÔNG NGHỆ PHẦN MỀM HƢỚNG TÁC TỬ
1.1. Khái niệm tác tử
1.1.1. Định nghĩa tác tử
Công nghệ tác tử là một hƣớng nghiên cứu thu hút rất nhiều sự quan tâm từ

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.



6
 Rõ ràng và giải nghĩa được: khi đƣợc yêu cầu thì phải rõ ràng và trong suốt,
khi cần có thể cung cấp nhật ký ghi lại các hành động của nó.
 Phối hợp: có thể thực hiện một số hành động trong một môi trƣờng dùng
chung với các tác tử khác.
 Hợp tác: có thể phối hợp với các tác tử khác để đạt đƣợc mục đích chung.
Các tác tử không đối kháng nhau sẽ thành công hoặc thất bại cùng nhau (sử
dụng thuật ngữ “Cộng tác” đồng nghĩa với “Hợp tác”).
 Cạnh tranh: có thể phối hợp với các tác tử khác trừ khi thành công của một
tác tử dẫn đến thất bại của các tác tử khác (trái nghĩa của “Hợp tác”)
 Mạnh: khả năng giải quyết các lỗi và các dữ liệu không đầy đủ.
 Đáng tin cậy: trung thực.
Cho đến nay, chƣa có một định nghĩa chuẩn nào về tác tử, hầu hết cộng đồng
đều đồng ý rằng giới hạn về tác tử cho các hệ thống công nghệ thông tin sẽ không hữu
ích nếu không có ít nhất 3 tính chất đầu tiên ở trên. Những ý kiến khác đòi hỏi các tác
tử công nghệ thông tin phải có tất cả các tính chất trên với các mức độ khác nhau.
Thƣờng thì một tác tử công nghệ thông tin đƣợc coi là một thực thể tự trị có thể tƣơng
tác với môi trƣờng của nó. Nói cách khác, nó phải có khả năng quan sát môi trƣờng và
hành động theo môi trƣờng mà nó tồn tại.
1.1.2. Phân loại tác tử
Sự phân loại tác tử chỉ có ý nghĩa tƣơng đối, tùy thuộc vào các tiêu chí ta lựa
chọn để phân loại, cũng nhƣ mục tiêu của việc phân loại. Các tác tử trong các hệ thống
công nghệ thông tin có những yêu cầu riêng: chúng phải thực thi giống nhƣ phần mềm,
phần cứng, ngƣời máy, hoặc kết hợp của cả ba. Theo James Odell [8], những ngƣời
phát triển tác tử đã xác định một số dạng tác tử điển hình trong phát triển hệ thống
công nghệ thông tin nhƣ sau:
1.1.2.1. Tác tử phần mềm
Các tác tử phần mềm là một kiểu tác tử riêng. Một tác tử phần mềm là một thực
thể phần mềm tự trị có thể tƣơng tác với môi trƣờng của nó. Điều này có nghĩa chúng

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

tử bắt đầu hành động giống nhƣ một xã hội. Cuối cùng, mức độ tƣơng tác phức tạp
nhất khi các hệ thống bao hàm nhiều tác tử hỗn tạp khác nhau có thể phối hợp thông
qua sự cộng tác và/hoặc cạnh tranh (ví dụ nhƣ: thỏa thuận và lập kế hoạch).
1.1.2.4. Tác tử thích nghi
Một tác tử đƣợc xem là thích nghi nếu nó có khả năng đáp ứng lạ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 đó. Ít nhất thì nó phải phản ứng
lại một kích thích đơn giản - để tạo một đáp ứng tiền định, trực tiếp tới một sự kiện cụ
thể hoặc tín hiệu môi trƣờng. Bộ điều nhiệt, các cảm biến tự động và các máy tìm kiếm
đơn giản thuộc loại tác tử thích nghi.
Tiến xa hơn tác tử phản ứng đơn giản là các tác tử có khả năng suy luận. Các
tác tử suy luận này phản ứng lại bằng cách đƣa ra các suy luận và bao gồm cả các tác
tử chẩn đoán bệnh và một số loại tác tử khai phá dữ liệu.
Dạng nâng cao hơn của tác tử thích nghi là có khả năng học và tiến hóa. Các tác
tử này có thể thay đổi hành vi của chúng dựa theo kinh nghiệm. Các kỹ thuật phần
mềm phổ biến cho việc học là các mạng nơ-ron, các luật Bayesian, các luật phân lớp,...
Ví dụ: các tác tử học là các tác tử có thể phân tích giọng nói, nhận dạng và theo dõi


8
mục tiêu. Một kỹ thuật chính cho các tác tử tiến hóa thƣờng gồm các giải thuật di
truyền và lập trình di truyền. Có thể phát sinh ra các tác tử để phù hợp với mục tiêu đặt
ra. Ví dụ: kế hoạch hành động và các chƣơng trình phần mềm tối ƣu hơn bất kỳ sản
phẩm nào do con ngƣời làm ra trong một khoảng thời gian vừa phải.
1.1.2.5. Tác tử di động
Trong khi các tác tử tĩnh tồn tại nhƣ một quy trình đơn lẻ trên một máy chủ thì
các tác tử di động có thể lấy lại và di chuyển mã của chúng tới một máy chủ mới tại đó
chúng có thể tiếp tục thực thi. Quan điểm ở mức khái niệm thì các tác tử di động nhƣ
vậy có thể đƣợc xem là lƣu động, không định cƣ, lang thang, hoặc di cƣ. Ví dụ, nếu
một tác tử muốn lấy thông tin từ một vài nguồn khác nhau trên các platform khác
nhau, nó có thể gửi thông tin yêu cầu đến mỗi platform sử dụng kỹ thuật tƣơng đƣơng

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

tử có nhiều sức mạnh hơn các cách tiếp cận thƣờng. Ví dụ, khi so sánh với các bảng
quan hệ hoặc so sánh với các đối tƣợng, tác tử có thể đƣợc coi nhƣ là cái gì đó “thông
minh”. Hoặc, đây chỉ là sự cƣờng điệu của tiếp thị. Tuy nhiên, không sai khi nói rằng
khái niệm về sự thông minh của các tác tử là rất khác so với của con ngƣời. Chúng ta
không tạo các tác tử để thay thế con ngƣời mà chúng ta tạo chúng để giúp đỡ hoặc bổ
sung thêm cho con ngƣời.
Các tác tử thông minh yêu cầu một bộ cơ bản các thuộc tính và tính năng. Ví
dụ, một trạng thái của tác tử thông minh phải đƣợc chuẩn hóa bởi tri thức (hiểu biết,
mục tiêu, mơ ƣớc, ý định, giả định,…) và có thể hành động trên cơ sở tri thức này. Nó
cần có khả năng kiểm tra sự hiểu biết và mơ ƣớc của nó, hình thành ý định của nó, lập
kế hoạch các hành động mà nó sẽ thực hiện dựa trên các giả định nào đó, và cuối cùng
là hành động theo kế hoạch đó. Ngoài ra, các tác tử thông minh phải tƣơng tác đƣợc
với các tác tử khác sử dụng ngôn ngữ hình thức. Các nhà nghiên cứu tác tử sử dụng
hiểu biết của chúng ta về suy nghĩ của con ngƣời để làm mẫu cho thiết kế các tác tử.
1.1.2.8. Tác tử wrapper
Tác tử này cho phép tác tử khác kết nối tới một dịch vụ/hệ thống phần mềm
không phải tác tử. Các tác tử khách gửi các lệnh tới tác tử wrapper và đƣợc gọi đến
trong các dịch vụ cơ bản. (Tác tử wrapper có thể là không cần thiết với các đối tƣợng
nhƣng vẫn nên có các đối tƣợng tồn tại trong cùng một môi trƣờng).
Các loại tác tử trên thƣờng chiếm ƣu thế trong các hệ thống dựa trên tác tử,
ngoài ra một ứng dụng cũng có thể dùng các dạng tác tử khác nhƣ: tác tử môi giới, tác
tử quản lý, tác tử hỗ trợ,…
1.2. Công nghệ phần mềm hƣớng tác tử
1.2.1. Phần mềm hƣớng tác tử là gì?
Hiện nay, có nhiều cuộc tranh luận đang xảy ra xung quanh định nghĩa chính
xác về cái gì tạo thành một tác tử, nhƣng vẫn chƣa có một sự nhất trí hoàn toàn nào.
Tuy nhiên, các nhà nghiên cứu tìm ra sự mô tả sau: Một tác tử là một hệ thống máy
tính được đóng gói và đặt trong một vài môi trường và có khả năng hành động mềm
dẻo, tự trị trong môi trường đó để đạt được các mục tiêu thiết kế của nó.
Các tác tử là: các thực thể có thể nhận dạng rõ ràng của bài toán đang đƣợc giải

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ử

dụng các công thức toán học để đặc tả chính xác hệ thống, sản phẩm của phƣơng pháp
này là một đặc tả hình thức đƣợc sử dụng cho việc cài đặt hệ thống, kiểm tra sự thỏa
mãn yêu cầu ngƣời sử dụng hoặc ƣớc lƣợng kết quả cuối cùng [20].
Phƣơng pháp hình thức chấp nhận cách biểu diễn logic hệ thống. Ví dụ, LORA
(Logic of Rational Agents) [21] đƣợc xây dựng dựa trên logic vị từ, bao gồm một
thành phần BDI (Belief-Desire-Intention) đƣợc sử dụng cho kiến trúc tác tử, một thành
phần thời gian đƣợc sử dụng để xác định các biến động của hệ thống và một thành
phần hành động đƣợc sử dụng để biểu diễn các hành động của tác tử. Một cách tiếp
cận khác do M. Luck và M. DInverno đề xuất [22] là sử dụng ngôn ngữ Z để đặc tả tác
tử [23]. Z dựa trên logic vị từ dự đoán các hệ số cùng với việc đƣa ra các khái niệm
lƣợc đồ gốc. Một lƣợc đồ bao gồm một thành phần khai báo và thành phần còn lại mô


11
tả quan hệ giữa các biến và các ràng buộc. Tác tử trong ngôn ngữ Z đƣợc định nghĩa
trong kiến trúc bốn tầng, bao gồm: các thực thể (các đối tƣợng tĩnh cùng các thuộc
tính), các đối tƣợng (các thực thể kèm theo các khả năng), tác tử (đối tƣợng đi cùng
mục tiêu), tác tử tự trị.
1.2.3.2. Phương pháp tiếp cận không hình thức
Phƣơng pháp không hình thức sử dụng ngôn ngữ tự nhiên có cấu trúc và ký
pháp đồ họa là cách tiếp cận trực quan cho việc đặc tả và thiết kế các hệ thống hƣớng
tác tử. Cách tiếp cận này hƣớng yêu cầu là chủ yếu và thƣờng đi vào nắm bắt các chức
năng của hệ thống qua tập các khung nhìn và phƣơng pháp.
Ta có thể phân chia các đặc tả không hình thức làm ba loại: hƣớng chức năng
(sử dụng các sơ đồ ca sử dụng), cách tiếp cận hƣớng mục tiêu (xác định các mục tiêu
của hệ thống và phân chia chúng thành các tác tử) và cách tiếp cận hƣớng vai trò (coi
vai trò nhƣ các trừu tƣợng quan trọng cho đặc tả một hệ thống đa tác tử, chúng thƣờng
liên quan đến thiết kế vai trò tác tử).
Một số phƣơng pháp tiếp cận không hình thức là: MaSE [25] đƣợc phát triển
chủ yếu dựa trên các hệ thống thông tin, các tác tử, niềm tin, thỏa thuận và mục tiêu

đƣợ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à

đánh địa chỉ “trang trắng” so với “trang vàng”). Cuối cùng, cơ chế truyền tải phải hỗ
trợ các chế độ truyền tải đơn, truyền tải đa và truyền tin quảng bá (unicast, multicast,
broadcast) và các dịch vụ nhƣ hành vi quảng bá tin, không từ chối thông điệp, và
logging.
1.3.1.3. Truyền thông Ontology
Truyền thông tác tử là các khái niệm về truyền thông giữa các tác tử. Các tác tử
có thể có các thuật ngữ khác nhau cho cùng một khái niệm, các thuật ngữ giống hệt
nhau cho các khái niệm khác nhau và các hệ thống lớp khác nhau. Khi biểu diễn kiến
thức từ nhiều miền khác nhau đòi hỏi phải có một ontology chung, cách xây dựng và
liên kết chúng với nhau.
1.3.1.4. Các giao thức tương tác tác tử
Hệ đa tác tử là hệ thống gồm nhiều tác tử tự chủ và linh hoạt khác nhau. Mỗi
tác tử đều có mục tiêu riêng và một phần mục tiêu chung của cả hệ thống. Trong quá
trình hoạt động, các tác tử phải liên hệ với nhau để hoàn thành nhiệm vụ, tất cả những
mối liên hệ đó đƣợc gọi chung là tƣơng tác. Nhƣ vậy, tƣơng tác chính là các mối liên
hệ, trao đổi để kết hợp, phối hợp hoặc cạnh tranh, thƣơng lƣợng giữa các tác tử trong
hệ đa tác tử nhằm đạt đƣợc mục tiêu riêng của từng tác tử cũng nhƣ mục tiêu chung
của hệ thống. Trong các hệ thống thông tin, tƣơng tác có thể chia thành ba loại chính:
+ Tƣơng tác bình đẳng (peer to peer - P2P): đơn giản chỉ là trao đổi các thông
điệp có thể hiểu đƣợc giữa các thành phần với nhau;
+ Tƣơng tác kiểu khách - chủ truyền thống (client - server): Tƣơng tác này xảy
ra khi một bên yêu cầu bên kia thực hiện một hành động cụ thể nào đó;
+ Tƣơng tác xã hội: Các thành phần tỏng hệ thống có mối liên hệ phức tạp,
mang tính xã hội nhƣ quan hệ tƣơng hỗ, cạnh tranh, thƣơng lƣợng…


13
1.3.2. Quản lý vòng đời tác tử
Các tác tử sẽ là phần mềm chạy trong môi trƣờng phần mềm. Vì thế, chúng phải
có cơ chế ngầm hiểu các hành động nhƣ: đang bắt đầu, đang tạm dừng, đang đƣợc

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

động trong thời gian trƣớc. Lịch sử bao gồm một dãy các tình huống, từ trạng thái của
một tác tử để cung cấp các bản ghi ghi lại các sự kiện và hành động của tác tử.


14
1.3.2.3. Phân lớp động và đa phân lớp
Trong suốt vòng đời của mình, tác tử có thể hiển thị các giao diện động phản
ánh các thay đổi trạng thái của nó hoặc môi trƣờng. Tùy theo từng hoàn cảnh mà các
vai trò hoặc hành vi của các tác tử cụ thể sẽ thay đổi. Tức là, mỗi tác tử có thể thay đổi
cả vai trò của nó (phân lớp động) và nó có thể đảm đƣơng nhiều vai trò trong cùng một
khoảng thời gian nào đó (đa phân lớp). Đây là một vấn đề quan trọng vì hầu hết các
ngôn ngữ và các phƣơng pháp đều chƣa trực tiếp hỗ trợ phân lớp động và đa phân lớp.
1.3.3. Tính di động
Các tác tử cố định tồn tại nhƣ một quy trình đơn trên một máy tính chủ; các tác
tử di động có thể lấy lại và di chuyển mã của nó tới một máy chủ mới và tiếp tục thực
thi. Lý do di chuyển là để cải thiện độ thực thi bằng cách chuyển tác tử tới gần các
dịch vụ sẵn có trên máy chủ mới. Các tác tử di động cũng là một bộ phận của một hệ
tác tử có các tác tử cố định.
Để thực thi các tác tử di động đòi hỏi một máy chủ tác tử để chạy các tác tử di
động, cần phải có chính sách về bảo mật và thẩm định tính xác thực của mã di động và
các vấn đề liên quan nhƣ: các tác tử đang ở đâu, làm thế nào để giao tiếp với tác tử
trong khi chúng đang di chuyển, làm sao để mang chúng về nếu mạng bị lỗi, liệu có
đảm bảo đƣợc rằng chúng biết cách tính “thời gian chờ” và tạm dừng tiến trình một
cách hợp lý trong khi thực hiện các nhiệm vụ nhạy cảm về mặt thời gian không, nếu
vẫn phải tiếp tục hoạt động trong mọi hoàn cảnh thì làm thế nào để biết đƣợc chúng
vẫn đang tồn tại hay không tồn tại.
1.3.4. Nguyên lý hoạt động của tác tử di động
1.3.4.1. Vòng đời của một tác tử di động
Mọi tác tử di động đều thực hiện tuần tự theo logic: Đầu tiên, tác tử đƣợc tạo ra,
di trú từ host này sang host khác theo lịch trình, thực hiện các nhiệm vụ đƣợc giao và

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ụ.


×