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

Nghiên cứu triển khai công nghệ tác tử di động trên cơ sở hạ tầng mạng ngang hàng JXTA

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 (1.72 MB, 77 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Minh Trí

NGHIÊN CỨU TRIỂN KHAI
CÔNG NGHỆ TÁC TỬ DI ĐỘNG TRÊN CƠ SỞ
HẠ TẦNG MẠNG NGANG HÀNG JXTA

LUẬN VĂN THẠC SĨ

Hà Nội – 2006


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Minh Trí

NGHIÊN CỨU TRIỂN KHAI
CÔNG NGHỆ TÁC TỬ DI ĐỘNG TRÊN CƠ SỞ HẠ
TẦNG MẠNG NGANG HÀNG JXTA

Ngành: Công nghệ thông tin
Mã số: 1.0.10
LUẬN VĂN THẠC SĨ

Người hướng dẫn khoa học:
TS NGUYỄN ĐẠI THỌ

Hà Nội – 2006





Tóm tắt
Tác tử di động là những chương trình có khả năng di chuyển trên mạng máy tính
(mang theo mã lệnh và dữ liệu) để thực hiện một công việc nào đó một cách tự động
theo yêu cầu nhưng không cần tới sự can thiệp của người dùng. Hạn chế của các hệ
thống tác tử di động truyền thống là không thể triển khai tác tử di động trong môi
trường mạng bị phân cách bởi các rào cản (tường lửa hoặc NAT). Triển khai hệ
thống tác tử di động trên nền công nghệ mạng ngang hàng JXTA với khả năng tham
gia vào mạng ngang hàng của các điểm nút bị ngăn cách bởi rào cản đã giải quyết
được vấn đề này. Triển khai tác tử di động trên cơ sở mạng ngang hàng JXTA để
trích rút thông tin về tài liệu trên một số trang Web dạng thư viện điện tử là lĩnh vực
mới và mở ra khả năng ứng dụng cho các nhà nghiên cứu tại Việt Nam trong việc
tìm kiếm tài liệu. Phần thứ nhất của luận văn trình bày những hiểu biết, những khái
niệm về tác tử di động, mạng ngang hàng, JXTA và môi trường tác tử di động trên
JXTA. Phần thứ hai trình bày về thuật toán trích rút thông tin về tài liệu và cài đặt
tác tử di động thực hiện trích rút thông tin.


LỜI CÁM ƠN

Trước tiên, tôi xin gửi lời cám ơn sâu sắc tới người hướng dẫn, thầy giáo, TS.
Nguyễn Đại Thọ, Bộ môn Mạng và Truyền thông máy tính – người đã trực tiếp
hướng dẫn tôi trong suốt quá trình thực hiện luận văn.
Tiếp theo tôi xin chân thành cám ơn Bill Yeager và Rita Yu Chen tác giả bài báo
“Java Mobile Agents on Project JXTA Peer-to-Peer Platform” đã hỗ trợ tài liệu và
mã nguồn chương trình Java Mobile Agent.
Cuối cùng, xin gửi lời cảm ơn tới gia đình và bạn bè tôi, những người đã luôn ủng
hộ và khuyến khích tôi rất nhiều trong quá trình học tập và nghiên cứu. Họ là nguồn

động viên vô tận của tôi trong cuộc sống.

Hà Nội, tháng 12 năm 2006
Nguyễn Minh Trí


MỤC LỤC
MỤC LỤC .....................................................................................................................1
MỞ ĐẦU........................................................................................................................8
Chương 1 TÁC TỬ DI ĐỘNG ..................................................................................9
1.1
Các mô hình thực hiện phân tán truyền thống................................................9
1.1.1 Truyền thông báo........................................................................................9
1.1.2 Gọi thủ tục từ xa .........................................................................................9
1.1.3 Gọi phương thức từ xa..............................................................................10
1.1.4 Đánh giá từ xa...........................................................................................10
1.1.5 Mã lệnh theo yêu cầu................................................................................11
1.1.6 Di chuyển hoạt động.................................................................................11
1.2
Từ tác tử đến tác tử di động..........................................................................12
1.3
Nguyên lý hoạt động của tác tử di động.......................................................14
1.3.1 Cấu trúc tác tử di động .............................................................................14
1.3.2 Khởi tạo tác tử di động .............................................................................14
1.3.3 Thực hiện tác tử di động...........................................................................15
1.3.4 Di chuyển tác tử di động...........................................................................17
1.3.5 Theo dấu tác tử di động ............................................................................17
1.3.6 Khắc phục sự cố tác tử di động ................................................................18
1.4
Các hệ tác tử di động ....................................................................................18

1.4.1 Aglet .........................................................................................................19
1.4.2 Mole..........................................................................................................19
1.4.3 ARA..........................................................................................................19
1.4.4 D'agent ......................................................................................................19
1.4.5 TACOMA .................................................................................................20
1.4.6 Concordia..................................................................................................20
Chương 2 MẠNG NGANG HÀNG.........................................................................21
2.1
Các thành phần mạng ngang hàng................................................................21
2.1.1 Điểm nút ...................................................................................................21
2.1.2 Nhóm điểm nút .........................................................................................24
2.1.3 Dịch vụ......................................................................................................24
2.1.4 Giao vận mạng..........................................................................................26
2.1.5 Thông cáo .................................................................................................27
2.1.6 Giao thức ..................................................................................................27
1


2.1.7 Định danh .................................................................................................28
2.2
Truyền thông trên mạng ngang hàng............................................................28
2.2.1 Phát hiện các thông cáo ............................................................................29
2.2.2 Phát hiện các điểm nút môi giới và điểm nút định tuyến .........................31
2.2.3 Các rào cản ...............................................................................................32
2.2.4 Truyền thông báo giữa các điểm nút ........................................................33
2.3
So sánh một số giải pháp mạng ngang hàng.................................................35
2.3.1 Napster......................................................................................................35
2.3.2 Gnutella.....................................................................................................36
2.3.3 Client/ Server ............................................................................................36

Chương 3 CƠ SỞ HẠ TẦNG JXTA.......................................................................37
3.1
Nguyên tắc thiết kế JXTA ............................................................................37
3.2
Đánh giá JXTA.............................................................................................38
3.2.1 So sánh JXTA và JINI ..............................................................................38
3.2.2 Quan hệ giữa JXTA và tác tử ...................................................................38
3.3
JXTA Shell ...................................................................................................39
3.4
Các giao thức JXTA .....................................................................................39
3.4.1 Giao thức phát hiện điểm..........................................................................40
3.4.2 Giao thức phân giải điểm..........................................................................41
3.4.3 Giao thức thông tin điểm ..........................................................................42
3.4.4 Giao thức môi giới....................................................................................43
3.4.5 Giao thức ấn định đường truyền ...............................................................45
3.4.6 Giao thức định tuyến điểm cuối ...............................................................46
Chương 4 TRIỂN KHAI TÁC TỬ DI ĐỘNG TRÊN NỀN JXTA ......................47
4.1
Cơ sở thực tiễn..............................................................................................47
4.2
Các công nghệ liên quan và giải pháp ..........................................................48
4.3
Môi trường tác tử di động trên JXTA...........................................................50
4.3.1 Giao thức tác tử di động đơn giản ............................................................50
4.3.1.1 Hành trình của tác tử di động ...........................................................51
4.3.1.2 Định dạng thông báo giao thức tác tử di động đơn giản ..................52
4.3.2 Mô tả hệ thống tác tử di động...................................................................52
4.4
Thiết kế, cài đặt tác tử di động tìm kiếm và trích rút thông tin ....................54

4.4.1 Mô hình hệ thống......................................................................................54
4.4.2 Đơn vị mô tả sản phẩm.............................................................................55
4.4.3 Trích rút đơn vị mô tả sản phẩm...............................................................56
2


4.4.4 Cài đặt tác tử di động tìm kiếm, trích rút thông tin ..................................58
KẾT LUẬN..................................................................................................................62
PHỤ LỤC ....................................................................................................................63
TÀI LIỆU THAM KHẢO..........................................................................................70

3


Danh sách các hình vẽ
Hình 2-1 Minh họa điểm nút môi giới..........................................................................22
Hình 2-2 Minh họa điểm nút định tuyến ......................................................................23
Hình 2-3 Minh họa điểm nút cầu nối............................................................................24
Hình 2-4 Dịch vụ điểm nút ...........................................................................................25
Hình 2-5 Dịch vụ nhóm điểm nút.................................................................................26
Hình 2-6 Ống dẫn giữa các điểm nút............................................................................27
Hình 2-7 Phát hiện điểm nút nhờ lưu giữ thông cáo ....................................................29
Hình 2-8 Phát hiện điểm nút trực tiếp ..........................................................................30
Hình 2-9 Phát hiện gián tiếp thông qua điểm nút môi giới ..........................................31
Hình 2-10 Vượt tường lửa/ NAT..................................................................................33
Hình 2-11 Truyền thông báo qua một tường lửa..........................................................34
Hình 2-12 Truyền thông báo qua hai tường lửa ...........................................................35
Hình 3-1 Kiến trúc phân lớp của JXTA........................................................................37
Hình 3-2 Giao diện JXTA Shell ...................................................................................39
Hình 3-3 Phân cấp các giao thức JXTA .......................................................................40

Hình 3-4 Trao đổi các thông báo ..................................................................................40
Hình 3-5 Trao đổi các thông báo phân giải ..................................................................42
Hình 3-6 Trao đổi thông báo thông tin điểm ................................................................43
Hình 3-7 Trao đổi các thông báo RVP .........................................................................44
Hình 3-8 Trao đổi thông báo ấn định đường truyền.....................................................45
Hình 3-9 Luồng trong giao thức định tuyến điểm cuối ................................................46
Hình 4-1 Tác tử và hành trình.......................................................................................51
Hình 4-2 Biểu đồ mô tả quan hệ giữa các lớp trong hệ thống tác tử di động...............53
Hình 4-3 Mô hình hoạt động của tác tử tìm kiếm, trích rút tài liệu trên Web..............54
Hình 4-4 Đơn vị mô tả sản phẩm..................................................................................55
4


Hình 4-5 Nội dung trang HTML sau khi phân tích ......................................................56
Hình 4-6 Màn hình giao diện sau khi khởi tạo môi trường tác tử di động...................59
Hình 4-7 Danh sách các điểm nút đang tồn tại trên mạng............................................60
Hình 4-8 Peer 1 khởi tạo tác tử di động getExtraction và gửi tới Peer 2 .....................60
Hình 4-9 Peer 2 nhận tác tử di động, thực hiện việc trích rút thông tin và sau đó gửi trả
về Peer 1 các kết quả. ...........................................................................................61
Hình 4-10 Kết quả nhận được tại Peer 1 ......................................................................61

5


Danh sách các bảng
Bảng 4-1 Định dạng thông báo SMAP........................................................................52
Bảng 4-2 Ánh xạ thẻ bài ..............................................................................................57

6



Bảng các từ viết tắt
DQM
DRM
ERP
HTTP
IEEE
IP
JXTA
LAN
LCM
LGM
LRM
MA
NAT
PBP
PDP
PDU
PIP
PRP
RP
RQM
RRM
RVP
SMAP
SMTP
SQL
TCP
TTL
UDP

URL
XML

Discovery Query Message
Discovery Response Message
Endpoint Routing Protocol
HyperText Transfer Protocol
Institute of Electrical and Electronic Engineering
Internet Protocol
Juxtapose
Local Area Network
Lease Cancel Message
Lease Granted Message
Lease Request Message
Mobile Agent
Network Address Translation
Pipe Binding Protocol
Peer Discovery Protocol
Product Description Unit
Peer Information Protocol
Peer Resolver Protocol
Rendezvous Protocol
Resolver Query Message
Resolver Response Message
Rendezvous Protocol
Simple Mobile Agent Protocol
Simple Mail Transfer Protocol
Structured Query Language
Transmission Control Protocol
Time To Live

User Datagram Protocol
Uniform Resource Locator
Extensible Markup Language

7


MỞ ĐẦU
Công nghệ mạng ngang hàng JXTA đang trong quá trình phát triển và đã được sử
dụng nhiều trong triển khai và nghiên cứu. Việc triển khai tác tử di động trên nền
công nghệ mạng ngang hàng JXTA giúp cho sự phát triển tác tử di động trở nên dễ
dàng hơn so với các môi trường mạng ngang hàng khác, đó là sự di chuyển không giới
hạn của các tác tử di động giữa các máy tính trên mạng Internet. Trong điều kiện kinh
tế ở Việt Nam hiện nay, không phải trường đại học, viện nghiên cứu nào cũng có khả
năng mua bản quyền truy cập vào cơ sở dữ liệu của các nhà xuất bản uy tín trên thế
giới. Vì vậy cần có giải pháp để có thể sử dụng tài nguyên này một cách hiệu quả.
Giải pháp sử dụng tác tử di động trên mạng ngang hàng JXTA giúp giải quyết được
vấn đề này.
Mặc dù có nhiều nghiên cứu trong lĩnh vực trích rút thông tin trên Web và triển khai
ứng dụng của nó trong việc trích rút các thông tin về sản phẩm (loại mặt hàng, giá cả,
…) nhưng việc ứng dụng tác tử di động trong trích rút thông tin về các loại tài liệu
trên các trang Web tìm kiếm là vấn đề mới. Đây là mục đích chính của luận văn, từ
việc nghiên cứu về mạng ngang hàng JXTA, tác tử di động, tiến hành sửa đổi, bổ sung
môi trường tác tử di động trên mạng ngang hàng JXTA và cuối cùng triển khai tác tử
di động thực hiện trích rút thông tin.
Ngoài phần mở đầu và kết luận, luận văn được bố cục như sau:
Chương 1: Giới thiệu những kiến thức cơ bản về tác tử di động
Chương 2: Những khái niệm cơ bản về mạng ngang hàng
Chương 3: Trình bày về công nghệ mạng ngang hàng JXTA
Chương 4: Trình bày về môi trường tác tử di động trên JXTA, triển khai tác tử di

động để trích rút thông tin và tìm kiếm tài liệu
Cuối cùng là phụ lục giới thiệu mã nguồn module trích rút thông tin và danh sách các
tài liệu tham khảo.

8


Chương 1 TÁC TỬ DI ĐỘNG
Công nghệ tác tử đã có những bước phát triển mạnh mẽ những năm gần đây. Riêng
tác tử di động trong nhiều trường hợp đã chứng tỏ là giải pháp cực kỳ hữu hiệu cho
các vấn đề về xử lý phân tán. Nói nôm na, đó là những chương trình có thể tự di
chuyển từ nút mạng này sang nút mạng khác trong quá trình thực hiện. Chúng có thể
giúp thiết kế và phát triển các hệ thống thông tin phân tán nhanh chóng và dễ dàng
hơn là dựa trên các phương thức giao tiếp khác tồn tại từ trước đến nay.
1.1 Các mô hình thực hiện phân tán truyền thống
1.1.1

Truyền thông báo

Truyền thông báo là mô hình giao tiếp đầu tiên được sử dụng trong xử lý phân tán.
Nguyên lý hoạt động của mô hình này khá đơn giản. Theo như tên gọi, các tiến trình
tham gia xử lý phân tán giao tiếp với nhau thông qua thông báo. Thông báo có thể
chứa thông tin điều khiển hay dữ liệu hay cả hai, nhưng không chứa mã lệnh thực hiện
được. Các thông báo được mỗi tiến trình phát và nhận trên một cổng riêng. Việc phân
bố cổng và truyền thông báo từ máy tính này đến máy tính khác được thực hiện bởi hệ
thống. Nhưng tất cả những vấn đề khác liên quan như phát và nhận thông báo, khắc
phục lỗi truyền thông, đảm bảo đồng bộ hóa giữa các tiến trình là do chương trình
đảm nhận. Nhiệm vụ thiết kế phát triển chương trình như vậy sẽ rất nặng nề nhưng đổi
lại là tính linh động và khả năng can thiệp sâu vào hệ thống nhiều khi rất cần thiết.
Các giải thuật điều khiển phân tán mức thấp hiện nay [37][18] chủ yếu vẫn sử dụng

mô hình truyền thông báo.
1.1.2

Gọi thủ tục từ xa

Gọi thủ tục từ xa [6] là một bước phát triển mở rộng của mô hình truyền thông báo.
Cụ thể là mô hình này lấy truyền thông báo làm cách thức giao tiếp nhưng đảm nhận
một phần công việc xử lý phân tán để giảm nhẹ trách nhiệm thiết kế và phát triển
chương trình. Một tiến trình trên máy tính này có thể yêu cầu một tiến trình khác trên
máy tính khác thực hiện một thủ tục nào đó mà không cần phải quan tâm đến các chi
tiết về kết nối, truyền thông và đồng bộ hóa tiến trình. Mô hình gọi thủ tục từ xa sẽ
giải quyết tất cả những vấn đề này, đảm bảo việc thực hiện và gửi trả về kết quả là
trong suốt đối với tiến trình đưa ra lời gọi. Đó là cơ sở để xây dựng các ứng dụng
phân tán mức cao dựa trên kiến trúc client/server rất phổ biến những năm gần đây.
9


1.1.3

Gọi phương thức từ xa

Gọi phương thức từ xa là một cải biến của phương thức gọi thủ tục từ xa cho phù hợp
với xu thế sử dụng phương pháp lập trình hướng đối tượng trong công nghệ phần
mềm. Phương pháp hướng đối tượng tổ chức hệ thống thông tin thành tập hợp các đối
tượng tương tác với nhau thông qua các phương thức. Điểm khác biệt của phương
thức so với thủ tục thông thường là mỗi phương thức gắn với một đối tượng, có một
số quyền nhất định như truy nhập vào cấu trúc bên trong mà các phương thức khác
nếu không thuộc về đối tượng đó thì không có. Theo mô hình gọi phương thức từ xa,
để gọi thực hiện một phương thức từ xa chỉ cần tham chiếu đến tên đối tượng chủ thể
của phương thức chứ không cần biết nó nằm ở đâu trên mạng máy tính. Mô hình gọi

phương thức từ xa tạo điều kiện phát triển dễ dàng các ứng dụng phân tán hoàn toàn
theo phương pháp hướng đối tượng, tận dụng tối đa những ưu điểm của phương pháp
này trong thiết kế và lập trình. Thực tế ta thường bắt gặp mô hình gọi phương thức từ
xa trong các ứng dụng dựa trên kiến trúc CORBA 1 [38].
1.1.4

Đánh giá từ xa

Các ngôn ngữ phiên dịch như Tcl, Perl, SQL,… hoạt động theo chế độ câu lệnh. Mỗi
câu lệnh có thể coi là một biểu thức hiểu theo nghĩa rộng, tức là để đánh giá biểu thức
hệ thống không chỉ tính toán mà còn có thể thực hiện những thao tác cần thiết khác
trước khi đưa ra kết quả cuối cùng. Kết quả trả về có thể không quan trọng mà những
thao tác cần thực hiện mới là mục đích chính của yêu cầu đánh giá câu lệnh. Đánh giá
từ xa mô phỏng cơ chế đánh giá câu lệnh trong môi trường phân tán. Theo đó, một
tiến trình nguồn chạy trên máy tính này có thể gửi một biểu thức tùy ý đến máy tính
khác để nhờ một tiến trình đích chạy trên đó đánh giá hộ. Lưu ý là các biểu thức cần
đánh giá do tiến trình nguồn đưa sang chứ không phải là những phương thức hay thủ
tục cố định do tiến trình đích quản lý. Việc gộp nhiều thao tác cần thực hiện trên máy
đích vào một biểu thức giúp giảm tải trọng truyền thông lên mạng do tránh không phải
trao đổi trung gian qua lại giữa tiến trình nguồn và tiến trình đích trong quá trình đánh
giá biểu thức. Dĩ nhiên chừng nào tiến trình đích chưa gửi về kết quả cuối cùng thì
tiến trình nguồn còn phải chờ đợi, không thể thực hiện tiếp được câu lệnh tiếp theo
giống như trong hai mô hình gọi từ xa nêu trên. Minh họa rõ nhất của mô hình đánh
giá từ xa là các ứng dụng cơ sở dữ liệu phân tán [39]. Trong các ứng dụng này,
chương trình client truy cập thông tin thông qua các câu lệnh SQL gửi đến server cơ

1

Common Object Request Broker Architecture


10


sở dữ liệu. Các câu lệnh SQL được thực hiện trên máy server ở xa chứ không phải
trên máy client khởi phát ra chúng.
1.1.5

Mã lệnh theo yêu cầu

Mô hình mã lệnh theo yêu cầu có cơ chế hoạt động giống với đánh giá từ xa ở chỗ mã
lệnh được máy nguồn gửi qua mạng đến thực hiện trên máy đích. Thế nhưng mã lệnh
ở đây là những chương trình hoàn chỉnh chứ không đơn thuần là những câu lệnh đơn
lẻ dạng biểu thức. Máy đích là nơi đưa ra yêu cầu tiếp nhận và thực hiện mã lệnh. Vì
thế mô hình có tên là mã lệnh theo yêu cầu. Tiến trình nguồn không phải chờ đợi kết
quả tiến trình đích gửi về sau khi thực hiện chương trình, không cần duy trì kết nối,
nhờ đó giảm bớt lưu lượng truyền thông trên mạng. Lưu ý là chỉ mã lệnh dạng tĩnh
chứ không phải chương trình dạng động đang thực hiện được chuyển từ máy nguồn
tới máy đích. Ví dụ dễ thấy nhất của mô hình mã lệnh theo yêu cầu là cơ chế applet
Java [24] trong giao thức http [12]. Ở đây, mã giả lập (bytecode) được Web server
trên máy nguồn gửi đến để trình duyệt Web trên máy đích thực hiện theo yêu cầu của
trình duyệt Web.
1.1.6

Di chuyển hoạt động

Nguyên lý của di chuyển hoạt động là cho phép đưa tiến trình đang hoạt động trên
một máy tính này sang một máy tính khác để tiếp tục thực hiện ở đó. Tiến trình ở đây
hiểu theo nghĩa rộng, có thể là một chương trình đang chạy hay cũng có thể là một đối
tượng đã được kích hoạt và đang hoạt động. Đây là mô hình xử lý phân tán gần nhất
với tác tử di động. Mô hình di chuyển hoạt động giúp giải quyết 3 vấn đề cơ bản sau

đây trong xây dựng các hệ thống phân tán:
o Cân đối khối lượng công việc: Di chuyển hoạt động từ một máy tính đang quá
tải sang một máy tính khác nhàn rỗi hơn sẽ góp phần sử dụng hợp lý và tối ưu
tất cả các tài nguyên của hệ thống.
o Khắc phục sự cố: Di chuyển công việc từ một máy tính gặp sự cố sang một
máy tính khác vẫn chạy tốt sẽ đảm bảo hoạt động thông suốt của toàn hệ thống.
o Chia sẻ thông tin: Nhiều khi di chuyển chương trình đến nơi chứa dữ liệu cần
xử lý sẽ hiệu quả hơn là truyền dữ liệu từ xa về nơi chứa chương trình đang
thực hiện.
Di chuyển hoạt động cung cấp một cơ chế thực hiện phân tán đồng bộ rất hữu hiệu
cho phát triển ứng dụng nhưng xây dựng được cơ chế đó là công việc rất phức tạp. Đó
11


là vì khi di chuyển các tiến trình, hệ thống phải đảm bảo chúng có thể tiếp tục hoạt
động được trên những môi trường phần cứng và phần mềm khác so với môi trường
ban đầu. Bên cạnh đó vấn đề không chỉ là gửi mã lệnh từ máy tính này sang máy tính
khác mà phải bảo toàn và đưa theo cả trạng thái thực hiện lúc bắt đầu di chuyển. Mô
hình di chuyển hoạt động được sử dụng chủ yếu ở mức hệ điều hành.
1.2 Từ tác tử đến tác tử di động
Tác tử di động có cái gì đó giống với mã lệnh di động và tác tử thông minh. Tuy
nhiên, các khái niệm này không hoàn toàn đồng nhất với nhau. Mã lệnh di động như
đã biết bản chất là một cơ chế thực hiện phân tán. Còn thuật ngữ tác tử di động lại
dùng để chỉ các tác tử hoạt động theo chính cơ chế này. Điểm khác biệt cơ bản nằm ở
nội dung tác tử mà ta sẽ khảo sát kỹ hơn dưới đây. Trong khi đó, tác tử di động và tác
tử thông minh khác nhau vì có thể coi là đối tượng nghiên cứu của những chuyên
ngành khác nhau. Tác tử di động ứng dụng trong mạng và truyền thông máy tính. Còn
tác tử thông minh là mục tiêu hướng tới của trí tuệ nhân tạo và một số lĩnh vực liên
quan. Một tác tử thông minh có thể không di động. Căn cứ vào cơ chế hoạt động có
thể dễ dàng xác định một tác tử thông minh có phải là tác tử di động hay không.

Nhưng một tác tử di động có thể coi là thông minh hay không thì lại không dễ dàng
xác định được như vậy. Điều đó tùy theo quan niệm thông minh là gì. Mà khái niệm
thông minh thì không thể định nghĩa một cách chặt chẽ và hình thức để có thể đối
chiếu rồi phán quyết có thông minh hay không. Tất cả tùy thuộc vào bối cảnh và quan
điểm của người xem xét. Tính di động không đóng vai trò gì trong tiêu chuẩn thông
minh. Nhưng ngược lại, các tác tử thông minh có thể góp phần giải quyết nhiều vấn
đề cơ bản trong điều khiển mạng mức thấp và thúc đẩy sự phát triển của các ứng dụng
phân tán mức cao. Sự kết giao của trí tuệ nhân tạo và mạng truyền thông trên cơ sở
chung là các tác tử thông minh (có thể di động hay không) đã tạo tiền đề cho các hệ
thống trí tuệ nhân tạo phân tán, hay còn gọi là các hệ đa tác tử, phát triển mạnh. Đây
là lĩnh vực nghiên cứu tương đối mới, có nhiều tiềm năng ứng dụng, nhưng sẽ chỉ
được nhắc đến khi cần thiết chứ sẽ không thuộc nội dung khảo cứu của bài viết này.
Tác tử là một khái niệm rộng. Những giải nghĩa trong từ điển không thể dùng làm
căn cứ để thiết kế phát triển nên các tác tử tin học chúng ta đang quan tâm, mà cần
phải có một định nghĩa chính xác hơn, mang tính đặc tả cao hơn. Thế nhưng cho đến
nay trong lĩnh vực tin học vẫn chưa có định nghĩa thống nhất về khái niệm tác tử.
Người ta đưa ra nhiều định nghĩa khác nhau, nói chung khó so sánh với nhau vì chúng
phụ thuộc vào bối cảnh và góc độ xem xét. Tạm thời có thể coi định nghĩa của [26]
12


phù hợp nhất với chủ đề xử lý phân tán. Theo [26], tác tử là một thực thể hữu hình
hoặc vô hình theo đuổi một mục đích nhất định, có khả năng tác động lên môi trường
hoặc chính bản thân nó, có thể cảm nhận môi trường, giao tiếp và đàm phán với các
tác tử khác. Nói cách khác, mỗi tác tử là một chương trình có những đặc tính sau:
o Tính chủ động: Tác tử kiểm soát các hành động và trạng thái nội bộ của nó.
o Khả năng giao tiếp: Tác tử có thể giao tiếp với các tác tử khác.
o Khả năng phản ứng: Tác tử có thể cảm nhận môi trường xung quanh và phản
ứng lại những thay đổi của môi trường.
o Khả năng tác động: Tác tử có thể tác động lên môi trường xung quanh.

Lưu ý là ở đây không nhắc gì đến tính thông minh của các tác tử. Trong lĩnh vực trí
tuệ nhân tạo phân tán, khi tính thông minh được coi là một trong những thuộc tính
quan trọng nhất, thì tác tử có thể được xem như một thực thể chủ động có tri thức
riêng (bao gồm khả năng, kiến thức, vốn suy luận), có thể phối hợp với các tác tử khác
để thực hiện các nhiệm vụ khác nhau thông qua giao tiếp, trao đổi tri thức.
Một hệ thống thông tin để có thể hoạt động dựa trên các tác tử phải có sự góp mặt của
2 loại thành phần sau:
o Nguồn khởi tạo tác tử: Là điểm xuất phát, nơi tạo nên đối tượng tác tử
o Máy chấp nhận tác tử: Là máy tính cung cấp tài nguyên và môi trường thực
hiện (bao gồm bộ xử lý, bộ nhớ, điểm truy cập dịch vụ,…) cho một hoặc nhiều
tác tử
Đầu tiên, tác tử được tạo ra bởi nguồn khởi tạo tác tử, sau đó sẽ được gửi đến thực
hiện trên một máy nhận nào đó. Tác tử có thể di chuyển từ máy nhận này sang máy
nhận khác trong quá trình hoạt động. Tuy nhiên, không phải tác tử nào cũng có khả
năng như vậy. Chỉ những tác tử di động mới có thể di chuyển để thực hiện nhiệm vụ
đặt ra. Tính di động không phải là thuộc tính vốn có của các tác tử. Các tác tử tĩnh là
các tác tử không có tính di động. Chúng chỉ thực hiện trên một máy tính duy nhất và
nếu cần giao tác với môi trường hoặc các tác tử khác thì sử dụng một trong các
phương thức giao tiếp truyền thống như truyền thông báo hay gọi thủ tục từ xa mà ta
đã xem xét ở phần trước.
Nói tóm lại, các tác tử di động là những chương trình không bị ràng buộc với nơi
chúng bắt đầu thực hiện. Chúng có thể di chuyển từ nơi này sang nơi khác trên mạng
máy tính. Tính di động cho phép chúng đến được những nơi thích hợp nhất cho việc

13


thực hiện nhiệm vụ. Tác tử có thể coi là đối tượng chứa dữ liệu và mã lệnh, đồng thời
có mục đích và tính chủ động nhất định trong hoạt động.
1.3 Nguyên lý hoạt động của tác tử di động

1.3.1

Cấu trúc tác tử di động

Ở trạng thái tĩnh, tức là khi chưa được phát động, tác tử di động là tập hợp các tham
số và phương thức tạo thành mô hình tác tử. Các phương thức cho phép khởi tạo và
thay đổi giá trị các tham số.
Sau khi được nguồn khởi tạo phát động, tác tử di động bắt đầu chu kỳ hoạt động. Lúc
này, tác tử di động ở vào trạng thái động và chủ yếu bao gồm ba thành phần : dữ liệu,
mã lệnh, và bối cảnh thực hiện. Dữ liệu là giá trị của các tham số chỉ ra trong mô hình
tác tử. Mã lệnh thực thi các phương thức truy cập dữ liệu. Bối cảnh thực hiện phản
ánh trạng thái hiện thời của tác tử di động trong quá trình hoạt động. Trạng thái này
giống như của một tiến trình bình thường, bao gồm các đại lượng đặc trưng như giá trị
các thanh ghi, vị trí con trỏ mã lệnh, nội dung ngăn xếp thực hiện. Trong các dữ liệu
của tác tử di động, ta thường bắt gặp danh tính là tham số đặc trưng cho mỗi tác tử.
Nó cho phép phân biệt tác tử này với tác tử khác. Ngoài ra, mỗi tác tử di động còn có
thể có một dữ liệu đặc biệt gọi là hành trình dùng để định trước những điểm tác tử cần
di qua khi di chuyển trên mạng. Hành trình nếu có thì do nguồn khởi tạo tác tử cung
cấp. Tuy nhiên, tác tử có thể không di chuyển theo một lộ trình định trước mà tự xác
định đường đi dựa trên những thông tin thu thập được trong quá trình hoạt động.
1.3.2

Khởi tạo tác tử di động

Khởi tạo tác tử di động nghĩa là tạo nên một phiên bản tác tử trên một máy tính cho
trước, căn cứ vào mô hình tác tử, kèm theo gán giá trị ban đầu cho các tham số. Sau
khi khởi tạo, tác tử trở thành một thực thể động, được kích hoạt và bắt đầu thực hiện
mã lệnh của nó.
Tác tử di động có thể được khởi tạo theo một trong các cách thức sau đây :
o Khởi tạo cục bộ: Tác tử được khởi tạo và kích hoạt trên máy tính phát ra yêu

cầu khởi tạo.
o Thực hiện từ xa: Tác tử được khởi tạo cục bộ trên máy tính phát ra yêu cầu
khởi tạo. Sau đó, nó được chuyển tới một máy tính khác do nguồn khởi tạo chỉ
định. Tại địa điểm mới này, tác tử được kích hoạt và bắt đầu thực hiện. Trong
14


quá trình thực hiện, tác tử có thể sử dụng cơ chế thực hiện từ xa để phát động
các tác tử khác. Cơ chế này giống mô hình thực hiện phân tán theo đánh giá từ
xa ở chỗ mã lệnh cũng được chuẩn bị tại nơi phát sinh yêu cầu nhưng lại được
gửi đi thực hiện tại một nơi khác.
o Mã lệnh theo yêu cầu: Cách thức này tương tự như cơ chế mã lệnh theo yêu
cầu trong xử lý phân tán. Cụ thể, mã lệnh tác tử (bao gồm cả các tham số) được
đưa từ xa đến một máy tính phát ra yêu cầu. Tại đây, tác tử sẽ được khởi tạo,
kích hoạt, và bắt đầu thực hiện.
Lưu ý là các hình thức khởi tạo tác tử bằng thực hiện từ xa và mã lệnh theo yêu cầu
thể hiện tính di động của mã lệnh chứ không tương ứng với tính di động của tác tử.
Đó là vì cả hai cơ chế đều chuyển giao chương trình tác tử ở trạng thái tĩnh, trước khi
tác tử được kích hoạt đi vào hoạt động thực sự.
1.3.3

Thực hiện tác tử di động

Sau khi được kích hoạt, tác tử bắt đầu hoạt động. Mỗi tác tử thực hiện mã lệnh tương
ứng với nhiệm vụ được giao và có thể làm thay đổi dữ liệu bản thân. Nhiều tác tử có
thể thực hiện đồng thời trên cùng một máy tính, truy cập có tính tương tranh vào các
tài nguyên cục bộ, và giao tác với nhau.
Truy cập tài nguyên cục bộ
Để có thể thực hiện trên một máy tính, tác tử phải có quyền truy cập vào những tài
nguyên nhất định trên máy tính đó. Thế nhưng cơ chế truy cập trên các máy tính khác

nhau lại không giống nhau mà thay đổi tùy thuộc vào hệ điều hành được sử dụng. Môi
trường thực hiện tác tử chạy trên nền các hệ điều hành khác nhau phải đảm bảo cho
phép các tác tử truy cập vào tài nguyên theo một phương thức thống nhất, độc lập với
hệ thống. Một trong những giải pháp hay được sử dụng nhất là phương thức truy cập
gián tiếp, thông qua trung gian của các tác tử dịch vụ. Chỉ các tác tử dịch vụ mới có
quyền truy cập trực tiếp vào tài nguyên cục bộ. Các tác tử khác, nhất là các tác tử từ
xa đến, muốn sử dụng tài nguyên, sẽ phải giao tiếp, đàm phán, với các tác tử dịch vụ.
Các tài nguyên quản lý bởi tác tử dịch vụ sẽ được đảm bảo hơn, dễ kiểm soát hơn.
Giao tiếp giữa hai tác tử
Cơ chế giao tiếp giữa hai tác tử bất kỳ cần tính đến các yếu tố sau:
o Các tác tử tham gia giao tiếp không biết đến vị trí của nhau

15


o Trong quá trình giao tiếp với các tác tử khác, một tác tử nào đó có thể di
chuyển từ máy tính này sang máy tính khác
Để giải quyết các vấn đề đặt ra trên đây, một số môi trường thực hiện tác tử di động
cung cấp phương thức hẹn nhau để thiết lập kết nối giữa các tác tử tham gia giao tiếp.
Cơ chế giao tiếp đồng bộ này tương tự như nguyên lý hẹn nhau giữa các tiến trình
trong mô hình truyền thông báo. Một số hệ tác tử khác tổ chức giao tiếp theo phiên.
Mỗi phiên tương ứng với một lần giao tiếp giữa hai tác tử. Trước khi giao tiếp, các tác
tử phải thiết lập phiên thông qua trao đổi thông báo. Sau đó, chúng giao tiếp bằng
những lời gọi phương thức từ xa. Một phiên có thể diễn ra trên một máy tính hay trên
hai máy tính khác nhau. Các tác tử tham gia một phiên giao tiếp không được phép di
chuyển chừng nào phiên chưa kết thúc.
Giao tiếp giữa một tác tử và một nhóm tác tử
Các vấn đề thường gặp phải trong giao tiếp giữa một tác tử di động và một nhóm tác
tử là như sau :
o Định danh nhóm tác tử

o Xử lý trường hợp một hay nhiều tác tử gặp sự cố khi đang tham gia giao tiếp
Thực tế có ba mô hình giao tiếp giữa một tác tử và một nhóm tác tử: dựa trên các sự
kiện phân tán dị bộ, hợp tác trực tiếp, và sử dụng cơ chế bảng trắng.
Các sự kiện phân tán dị bộ bao gồm 2 hình thức: các sự kiện chọn lọc và các sự kiện
nhóm. Cơ chế sự kiện chọn lọc cho phép các tác tử định ra loại sự kiện mong muốn
được thông báo, còn cơ chế sự kiện nhóm lưu truyền sự kiện đến tất cả các tác tử của
nhóm chứ không riêng cho một số nào theo lựa chọn. Một chương trình đặc biệt gọi là
trình quản lý sự kiện có nhiệm vụ đăng ký tác tử vào các nhóm, nghe ngóng các sự
kiện, ghi nhận và thông báo tình hình cho các tác tử liên quan được biết. Các tác tử
hợp tác với nhau thông qua trình quản lý sự kiện.
Hợp tác trực tiếp giữa các tác tử có thể là mạnh hay yếu. Với mô hình hợp tác mạnh
việc hợp tác phải bị hủy bỏ khi có một trong các tác tử tham gia gặp sự cố. Với mô
hình yếu sự cố của một tác tử không ngăn cản các tác tử khác tiếp tục quá trình hợp
tác cho đến khi kết thúc.
Cơ chế bảng trắng cho phép các tác tử chia sẻ thông tin một cách gián tiếp, không
đồng bộ. Một tác tử di động khi đi qua một máy tính nào đó có thể để lại thông tin
trên máy tính đó để các tác tử khác đến thu thập về sau.

16


1.3.4

Di chuyển tác tử di động

Các tác tử di động có thể di chuyển từ máy tính này sang máy tính khác trong quá
trình hoạt động. Chúng tự quyết định thời điểm và địa điểm di chuyển (theo một hành
trình cố định hay căn cứ vào kết quả thực hiện). Ngoài khả năng chủ động di chuyển
là thuộc tính vốn có của mọi tác tử di động, một số môi trường thực hiện còn cho phép
tác tử di chuyển một cách thụ động, do tác động của một thực thể nào đó bên ngoài.

Khả năng này thực sự có ích, chẳng hạn trong trường hợp cần gọi tác tử di động về
nơi xuất phát khi kết quả nó thu được đã đạt yêu cầu đặt ra, không cần thiết phải thực
hiện thêm nữa.
Tác tử khi di chuyển phải bảo toàn trạng thái thực hiện. Căn cứ vào mức độ bảo toàn
trạng thái thực hiện, người ta phân biệt tính di động mạnh và tính di động yếu.
o Tính di động mạnh: Bối cảnh thực hiện được chuyển từ máy nguồn sang máy
đích cùng lúc với mã lệnh và dữ liệu của tác tử di động. Tác tử có thể tiếp tục
thực hiện ngay trên máy đích, bắt đầu bằng câu lệnh tiếp ngay sau câu lệnh gọi
phương thức di chuyển trong mã lệnh. Để có thể truy nhập vào bối cảnh thực
hiện, ghi lại các thông số liên quan và chuyển giao chúng qua mạng, hệ thống
cần phải cung cấp các cơ chế cho phép ngoại hóa trạng thái thực hiện của các
tác tử. Những cơ chế như vậy rất khó cài đặt trong thực tế, được rất ít ngôn ngữ
lập trình cung cấp. Vì vậy, phần lớn các môi trường tác tử di động chỉ hỗ trợ
tính di động yếu.
o Tính di động yếu: Đối với hình thức di chuyển yếu, chỉ có mã lệnh và dữ liệu
của tác tử di động được chuyển từ máy nguồn sang máy đích. Bối cảnh thực
hiện phải được gửi kèm vào mã lệnh và dữ liệu theo một cách nào đó do người
lập trình tác tử tự đảm nhiệm. Các hệ tác tử di động viết bằng ngôn ngữ Java
đều có cơ chế di chuyển yếu dựa trên nguyên lý tuần tự hóa. Nguyên lý này
định dạng mã lệnh và dữ liệu theo hình thức thích hợp để chuyển giao qua
mạng, sau đó gây dựng lại mã lệnh và dữ liệu ban đầu từ những thông tin nhận
được.
1.3.5

Theo dấu tác tử di động

Sau khi được kích hoạt, các tác tử trở nên chủ động, hoạt động độc lập, không đồng
bộ với nguồn khởi tạo. Thế nhưng, đôi khi nguồn khởi tạo cần theo dõi, nắm bắt
những thông tin cập nhật về hoạt động của tác tử, như trạng thái và vị trí hiện thời của
nó. Trong những trường hợp như vậy, hệ thống phải thực hiện cơ chế theo dấu tác tử

di động. Với cơ chế này, mỗi khi tác tử di động cần được theo dõi di chuyển đến một
17


địa điểm mới, một tác tử theo dấu sẽ được tạo ra ở đó. Các tác tử theo dấu sẽ cho phép
tìm ra trạng thái hiện thời của tác tử di động.
1.3.6

Khắc phục sự cố tác tử di động

Tác tử di động trong quá trình di chuyển trên mạng có thể đột nhiên biến mất do một
máy tính nào đó, nơi nó đang thực hiện gặp sự cố tắt máy, hoặc bị ngắt khỏi mạng.
Trong những trường hợp như vậy cần có cơ chế khắc phục sự cố, đảm bảo cho hoạt
động của các tác tử di động có thể tiếp tục diễn ra theo đúng dự định ban đầu. Một
trong những giải pháp đơn giản nhất là kiểm tra hoạt động của tác tử tại những thời
điểm nhất định, lưu các thông tin trạng thái vào vào ổ cứng, thiết bị có thể coi là bền
vững và đáng tin cậy, hầu như không bao giờ làm mất mát dữ liệu. Các thông tin lưu
trên ổ cứng dùng để khôi phục lại tác tử sau khi xảy ra sự cố. Tuy nhiên, cần tránh
khôi phục tác tử di động nếu như nó vẫn còn hoạt động đâu đó, trên một máy tính
khác. Nếu không sẽ có nhiều phiên bản của cùng một tác tử hoạt động trên mạng
khiến cho vấn đề càng trở nên phức tạp, khó giải quyết.
1.4 Các hệ tác tử di động
Để các tác tử có thể thực hiện một cách độc lập trên các nút mạng chúng đi qua, cần
phải cung cấp môi trường tiếp nhận và thực hiện cho các tác tử tại những nút mạng
đó, theo cơ chế như máy ảo dùng thực hiện các chương trình Java, nhưng ở cấp độ cao
hơn. Cho đến nay, đã có rất nhiều hệ thống phát triển và thực hiện tác tử khác nhau
được công bố, nhằm mục đích thương mại cũng có mà miễn phí phục vụ nghiên cứu
cũng nhiều với chất lượng có khi không thua kém. Phần lớn các hệ thống tác tử hiện
nay hỗ trợ ngôn ngữ và máy ảo Java vì cùng một chương trình Java về nguyên tắc có
thể chạy trên mọi hệ điều hành và mọi môi trường. Tác tử di động di chuyển qua

nhiều máy tính với những cấu hình khác nhau sẽ rất cần đến đặc tính đó. Công sức
phát triển tác tử sử dụng ngôn ngữ Java sẽ giảm thiểu hơn nhiều so với dùng các ngôn
ngữ khác.
Hiện nay đã có khá nhiều báo cáo tổng quan khảo sát và so sánh những hệ thống tác
tử di động được sử dụng nhiều nhất trong nghiên cứu và phát triển ứng dụng thương
mại. Phần này chỉ nêu ra một số hệ thống tiêu biểu nhất để minh họa cho những
nguyên lý hoạt động của các tác tử di động đã đề cập ở trên.

18


1.4.1

Aglet

Aglet 1 [11] là môi trường lập trình và thực hiện tác tử di động phát triển bởi phân
viện nghiên cứu của IBM ở Tokyo, Nhật Bản. Đó là một trong những hệ tác tử di
động dựa trên ngôn ngữ Java được biết tới và sử dụng nhiều nhất. Các tác tử có tính di
động yếu, có thể chủ động hay thụ động trong di chuyển. Chúng giao tiếp đôi một với
nhau theo phiên. Tác tử giao tiếp với nhóm tác tử thông qua trung gian của cái gọi là
bảng trắng.
1.4.2

Mole

Mole [25] do trường đại học Stuttgart, Đức, đề xuất. Hệ thống cũng được phát triển
dựa trên nền ngôn ngữ Java và sử dụng cơ chế di chuyển yếu. Vấn đề truy cập vào các
tài nguyên cục bộ được quản lý bằng các tác tử dịch vụ. Các tác tử đơn cũng giao tiếp
với nhau theo từng phiên. Tuy nhiên, cơ chế giao tiếp nhóm tác tử được thực hiện
không thông qua bảng trắng mà dựa vào các sự kiện.

1.4.3

ARA

ARA 2 [21] là hệ tác tử di động do trường đại học Kaiserslautern, Đức, phát triển bằng
ngôn ngữ lập trình C. Mã lệnh của các tác tử có thể là mã nguồn C hay Tcl. Hệ thống
hỗ trợ cả ngôn ngữ Java nhưng chỉ ở mức mã giả lập, tức là mã nguồn đã được biên
dịch. Cũng giống như Mole, ARA sử dụng các tác tử dịch vụ để quản lý việc truy cập
vào các tài nguyên cục bộ. Tuy nhiên, các tác tử ở đây có tính di động mạnh. Chúng
giao tiếp theo phương pháp hẹn nhau. Các tác tử phải gặp nhau trên cùng một máy
tính thì mới có thể tiến hành giao tiếp. Hệ thống cho phép khắc phục sự cố thông qua
các điểm kiểm tra.
1.4.4

D'agent

D'agent [40], có tên ban đầu là d'Agent-Tcl, do trường đại học Darthmouth, Mỹ, xây
dựng. Hệ thống có tích hợp một bộ phiên dịch Tcl mở rộng cho phép các tác tử có tính
di động mạnh. Ngôn ngữ chính thức cho lập trình tác tử là Tcl, nhưng nhiều ngôn ngữ
khác như Java, Scheme, cũng được hỗ trợ. Giống như trong ARA, các tác tử di động
của D'agent giao tiếp đôi một theo phương pháp hẹn nhau. Thế nhưng, chúng truy
nhập trực tiếp vào tài nguyên cục bộ chứ không thông qua trung gian.

1
2

Từ ghép của "agent" và "applet"
Agents for Remote Action

19



1.4.5

TACOMA

TACOMA 1 [10] là kết quả hợp tác của trường đại học Troms∅, Na Uy với hai trường
đại học của Mỹ Cornell và California ở San Diego. Hệ thống chạy trên UNIX, hỗ trợ
các tác tử viết bằng C, Tcl/Tk, Perl, Python, và Scheme. Các tác tử có tính di động
mạnh. Chúng giao tiếp theo phương thức hẹn nhau. Cơ chế điểm kiểm tra cho phép
khôi phục hoạt động của các tác tử khi chúng gặp sự cố.
1.4.6

Concordia

Concordia [14] là môi trường tác tử di động dựa trên Java, phát triển bởi phân viện
nghiên cứu Horizon Systems của Mitsubishi Electric. Hệ thống cung cấp hai cơ chế
giao tiếp nhóm: theo sự kiện phân tán dị bộ và hợp tác. Các tác tử có tính di động yếu.

1

Troms∅ And COrnell Moving Agents

20


×