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

Nghiên cứu phát triển và ứng dụng công nghệ mobile agent cho hệ thống đa cơ sở dữ liệu phân tán

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.31 MB, 116 trang )

..

Bộ GIáO DụC Và ĐàO TạO
TRƯờNG ĐạI HọC BáCH KHOA Hà NộI
----------------------------------------

luận văn thạc sĩ khoa học

Nghiên cứu, phát triển và ứng dụng
công nghệ MOBILE AGENT cho hệ thống
đa cơ sở dữ liệu phân tán
Ngành: xử lý thông tin và trun th«ng
Ngun anh vị

Ng­êi h­íng dÉn khoa häc: gs.ts ngun thúc hải

Hà nội 2005


Mục lục
Danh sách các từ viết tắt .............................................................................................. i
Danh sách các hình vẽ ................................................................................................ ii
Lời mở đầu ..................................................................................................................1

Chương 1: Mobile agent .............................................................................. 3
1.1 Tỉng quan ............................................................................................ 3
1.1.1 Mét sè kh¸i niệm .......................................................................... 4
1.1.1.1 Mobile agent là gì ? ................................................................ 4
1.1.1.2 Agency (agent server) ............................................................ 7
1.1.1.3 Quá trình phát triển từ truyền thông điệp đến mobile agent .. 8
1.1.2 Đặc điểm cđa mobile agent ......................................................... 10


1.1.2.1 TÝnh di ®éng ......................................................................... 10
1.1.2.2 Sự thu thập dữ liệu ................................................................ 11
1.1.2.3 Xác định đường đi ................................................................ 11
1.1.2.4 Truyền thông ........................................................................ 12
1.1.2.5 Bảo mật ................................................................................. 13
1.1.3 Lợi ích của mobile agent ............................................................. 16
1.1.3.1 Hỗ trợ tốt hơn cho các máy khách di động .......................... 16
1.1.3.2 Truyền thông phân tán và không đồng nhất ......................... 16
1.1.3.3 Giảm tải của mạng................................................................ 17
1.1.3.4 Tương tác không đồng bộ. .................................................... 17
1.1.3.5 Tìm kiếm và chọn lọc từ xa .................................................. 18
1.1.3.6 Tạo điều kiện thuận lợi cho việc thu thập thông tin có ngữ
nghĩa. ................................................................................................ 19
1.1.3.7 Tạo điều kiện thuận lợi cho sự tương tác thời gian thực với
máy chủ ............................................................................................ 20
1.1.3.8 Cho phép khả năng định đường có ngữ cảnh ....................... 20
1.1.4 ứng dụng .................................................................................... 21
1.1.4.1 Thu thập thông tin từ nhiều địa điểm ................................... 22
1.1.4.2 Tìm kiếm và chän läc th«ng tin............................................ 22


1.1.4.3 Theo dõi thông tin ................................................................ 23
1.1.4.4 Phân phát thông tin có chủ đích ........................................... 24
1.1.4.5 Đàm phán và giao dịch thương mại ...................................... 24
1.1.4.6 Xử lý cho agent .................................................................... 25
1.2 Cấu trúc hoạt động một hệ thống mobile agent ................................. 25
1.2.1 Tỉng quan.................................................................................... 25
1.2.2 Agent miỊn .................................................................................. 27
1.2.3 Agent tài nguyên ......................................................................... 28
1.2.4 Mobile agent ............................................................................... 29

1.2.5 Agent giao diƯn ng­êi dïng ........................................................ 31
1.2.6 Agent cỉng .................................................................................. 32
1.3 Mét sè hÖ thèng mobile agent hiÖn nay............................................. 33
1.3.1 Agent TCL................................................................................... 33
1.3.2 TACOMA.................................................................................... 36
1.3.3 Telescript ..................................................................................... 38
1.3.4 Grasshopper................................................................................. 40
1.3.5 Aglets .......................................................................................... 42
Chương 2: Hệ thống đa cơ sở dữ liệu phân t¸n ....................................... 45
2.1 Tỉng quan .......................................................................................... 45
2.2 KiÕn tróc ............................................................................................ 47
2.3 Các vấn đề đặt ra ................................................................................ 49
2.4 Một số hệ thống đa cơ sở dữ liệu phân tán ........................................ 50
2.4.1 HÖ thèng Pegasus ........................................................................ 51
2.4.2 HÖ thèng TCMMDB.................................................................... 52
2.4.3 Hệ thống ACQUIRE ................................................................... 53
2.5 Một số công cụ hỗ trợ truy vấn các nguồn dữ liệu khác nhau ........... 54
2.5.1 OmniConnect .............................................................................. 54
2.5.2 Heterogeneous service ................................................................ 54
Chương 3: Xây dựng mô hình hệ thống đa cơ sở dữ liệu thuần nhất sử
dụng mobile agent...................................................................................... 56
3.1 Đặt vấn đề .......................................................................................... 56


3.2 Giải pháp xử lý ................................................................................... 56
3.3 Mô hình hệ thống ............................................................................... 57
3.4 Nguyên tắc hoạt động ........................................................................ 60
3.5 Thiết kế hệ thống ............................................................................... 61
3.5.1 Đăng ký agent ............................................................................. 61
3.5.2 Xư lý agent .................................................................................. 62

3.5.3 Xư lý truy vÊn tỉng thĨ ............................................................... 62
3.5.4 Xư lý giao dÞch tỉng thĨ .............................................................. 64
3.5.5 DB agent ...................................................................................... 70
3.5.6 Phân tích yêu cầu ........................................................................ 70
3.5.7 Global metadatabase ................................................................... 72
3.5.8 Metadatabase............................................................................... 72
3.6 Lùa chän ng«n ngữ ............................................................................ 72
3.7 Môi trường phát triển ......................................................................... 73
3.7.1 Xử lý giao dịch phân tán ............................................................. 74
3.7.2 Quản lý một phiên làm việc ........................................................ 75
3.7.3 Bảo mật........................................................................................ 76
3.7.3.1 Bảo mật mạng ....................................................................... 76
3.7.3.2 Bảo mật người dùng.............................................................. 76
3.7.3.3 Kết nối mạng ........................................................................ 79
3.8 Phát triển chương trình....................................................................... 82
3.8.1 Xử lý việc di cư ........................................................................... 82
3.8.2 Xử lý yêu cầu người dùng ........................................................... 86
3.8.3 Xử lý thao tác với cơ sở d÷ liƯu................................................... 87
3.8.4 Giao diƯn ng­êi dïng .................................................................. 88
3.8.5 Xư lý bảo mật .............................................................................. 88
Chương 4: Triển khai thử nghiệm cho các ứng dụng xử lý và khai thác
thông tin trên hệ thống thông tin phân tán của Công ty Dịch vụ tiết
kiệm Bưu điện ............................................................................................ 90
4.1 Thực trạng hệ thống mạng Công ty Dịch vụ tiết kiệm Bưu điện ....... 90
4.2 Giải pháp ............................................................................................ 92


4.3 Kết quả thử nghiệm ............................................................................ 94
4.4 Những tồn tại và hướng phát triển ................................................... 105
Kết luận ...................................................................................................................107

Tài liệu tham kh¶o ...................................................................................................108


i

Danh sách các từ viết tắt
ACID

Atomicity, Consistency, Isolation and Durability

API

Application Programming Interface

GTM

Global Transaction Manager

LDBS

Local Database System

MDBS

Multidatabase System

PGP

Pretty Good Private


PKI

Public Key Infrastructure

RMI

Remote Method Invocation

RPC

Remote Procedure Call

SSL

Secure Socket Layer

TCL

Tool Command Language


ii

Danh sách các hình vẽ
Hình 1.1: Mô hình máy khách/máy chủ............................................................ 3
Hình 1.2: Mô hình mobile agent ....................................................................... 4
Hình 1.3: Mô hình Agency................................................................................ 7
Hình 1.4: Cấu trúc hoạt động của hƯ thèng mobile agent ............................... 26
H×nh 1.5: KiÕn tróc hƯ thèng Agent TCL........................................................ 33
H×nh 1.6: KiÕn tróc hƯ thèng TACOMA......................................................... 37

H×nh 1.7: KiÕn tróc hƯ thèng Telescript .......................................................... 39
H×nh 1.8: KiÕn tróc hƯ thèng Grasshopper...................................................... 40
H×nh 2.1: KiÕn tróc mét hệ thống đa cơ sở dữ liệu phân tán........................... 48
Hình 2.2: KiÕn tróc hƯ thèng Pegasus ............................................................. 51
H×nh 2.3: KiÕn tróc hƯ thèng TCMMDB ........................................................ 52
H×nh 2.4: KiÕn tróc hƯ thống ACQUIRE ........................................................ 53
Hình 3.1: Mô hình hệ thống đa cơ sở dữ liệu phân tán sử dụng mobile agent
......................................................................................................................... 58
Hình 3.2: Nguyên tắc hoạt động ..................................................................... 61
Hình 3.3: Kiến trúc bên trong của thành phần xử lý truy vấn tổng thể ........... 63
Hình 3.4: Kiến trúc bên trong của thành phần xử lý giao dịch tổng thể ......... 65
Hình 3.5: Kiến trúc bên trong của phân tích yêu cầu ...................................... 71
Hình 3.6: Hệ thống phân tán ........................................................................... 74
Hình 3.7: Kiến trúc phiên ................................................................................ 75
Hình 3.8: Các role người dùng trong Oracle ................................................... 78
Hình 3.9: Kết nối theo mô hình máy khách/máy chủ ..................................... 80
Hình 3.10: Oracle JDBC Driver ...................................................................... 81
Hình 4.1: Mô hình hiện thời của Công ty Dịch vụ tiết kiệm Bưu điện ........... 91
Hình 4.2: Mô hình hệ thống mới của Công ty Dịch vụ tiết kiệm B­u ®iƯn .... 92


1

Lời mở đầu
Ngày nay các hệ thống mobile agent cho phép các agent di cư một cách
độc lập, thông minh và tự do trong mạng phân tán nhằm tìm kiếm thông tin
hay thực hiện một tính toán nào đó đà trở thành hiện thực. Có rất nhiều hệ
thống hỗ trợ mobile agent møc cao nh­ Agent TCL, TACOMA, Telescript,
Aglets, Grasshopper. Chúng là câu trả lời cho các thách thức đặt ra là phải tìm
công nghệ mới để giải quyết vấn đề lưu lượng mạng tăng do xu hướng kích

thước mạng công ty, Internet... tăng. ý tưởng chủ đạo của công nghệ mobile
agent là đem agent tới gần dữ liệu của nó tới mức có thể. Điều này giúp cho :
(1) tiết kiệm được băng thông; (2) giúp cho các máy khách có thể tự do làm
việc khác và không nhất thiết phải kết nối liên tục; (3) thời gian xử lý giảm.
Một ví dụ sau đây sẽ làm ta thấy rõ điều này: một agent truy vấn thông tin
phân tán rõ ràng sẽ phải truy nhập vào nhiều cơ sở dữ liệu trên các máy chủ
khác nhau. Agent này sẽ di cư từ máy chủ cơ sở dữ liệu này tới máy chủ cơ sở
dữ liệu khác để thực hiện lệnh truy vấn và không mang các thông tin kết quả
trung gian trên mạng. Đồng thời tính di động của mobile agent sÏ cho phÐp
agent di c­ tíi m¸y chđ nơi dữ liệu lưu trữ vật lý. Nó trong suốt đối với người
sử dụng. Những lợi điểm này cho phép ta khai thác một cách có hiệu quả dữ
liệu phân tán trên một hệ thống cơ sở dữ liệu tự trị, phân tán trên các máy chủ
không đồng nhất nền tảng (platform) - hệ thống đa cơ sở dữ liệu phân tán
(multidatabase).
Luận văn "Nghiên cứu, phát triển và ứng dụng công nghệ mobile agent
cho hệ thống đa cơ sở dữ liệu phân tán" nhằm mục đích nghiên cứu, thử
nghiệm tích hợp công nghệ mobile agent trong việc giải quyết bài toán truy
vấn tổng thể, quản lý giao dịch tổng thể khi xây dựng một hệ thống đa cơ sở
dữ liệu phân tán tích hợp các cơ sở dữ liệu đang có. Đồng thời, áp dụng


2
nghiên cứu đó để phát triển và ứng dụng trong hệ thống thông tin phân tán của
Công ty Dịch vụ Tiết kiệm Bưu điện.
Cấu trúc luận văn gồm:
Chương 1: Giíi thiƯu tỉng quan vỊ mobile agent, kiÕn tróc cđa một hệ
thống mobile agent theo quan điểm agent và một số các hệ thống hỗ trợ
mobile agent hiện nay
Chương 2: Giới thiệu khái quát về hệ thống đa cơ sở dữ liệu phân tán,
mô hình kiến trúc và một số hệ thống đà phát triển gần đây

Chương 3: Xây dựng mô hình hệ thống ứng dụng mobile agent giải
quyết các bài toán trong đa cơ sở dữ liệu thuần nhất
Chương 4: ứng dụng mô hình ở chương 3 để thử nghiệm xây dựng ứng
dụng xử lý và khai thác số liệu trong hệ thống đa cơ sở dữ liệu phân tán
của Công ty Dịch vụ Tiết kiệm B­u ®iƯn


3

Chương 1: Mobile agent
1.1 Tổng quan
Cho đến nay mô hình thường được sử dụng trong các ứng dụng phân tán
là mô hình máy khách/máy chủ (hình 1.1)

Hình 1.1: Mô hình máy khách/máy chủ
Đặc điểm của nó là gồm hai thành phần. Thành phần máy chủ cung cấp một
tập các dịch vụ cụ thể, có tài nguyên yêu cầu cũng như phương thức xử lý của
các dịch vụ. Thành phần máy khách chỉ có nhiệm vụ đưa ra các yêu cầu về
dịch vụ của máy chủ và nhận kết quả trả về. Cả hai thành phần này được đặt
trong các máy khác nhau. Việc truyền thông giữa chúng thông thường là đồng
bộ tức là máy khách sau khi gửi yêu cầu đi tới máy chủ sẽ đợi cho đến khi kết
quả của yêu cầu đó trả về. Mô hình này có một số nhược điểm sẽ được trình
bày chi tiết ở phần sau khi ta so sánh mô hình này với mô hình mobile agent.
Từ khi công nghệ mobile agent ra đời thì việc xây dựng các ứng dụng phân tán
theo mô hình mobile agent (hình 1.2) cũng đà được nghiên cøu vµ øng dơng.


4

Hình 1.2: Mô hình mobile agent

Vậy công nghệ mobile agent là gì và tại sao người ta lại quan tâm nghiên cứu
và ứng dụng nó trong việc xây dựng ứng dụng phân tán? Các phần sau đây sẽ
phần nào giải thích được câu hỏi này.

1.1.1 Một số khái niệm
1.1.1.1

Mobile agent là gì ?

Agent bắt nguồn từ tiếng Hy lạp "agein" có nghĩa là "dẫn dắt". ở mức
độ cơ sở và khái niệm nó được coi là thực thể có thể thực hiện các công việc
thay cho con người. Ví dụ chúng ta dự định đi nghỉ mát và mệt mỏi khi phải
làm các thủ tục như mua vé máy bay, đặt chỗ khách sạn,... Ta có thể đến các
đại lý du lịch có khả năng và ủy thác trách nhiệm cho họ làm các công việc


5
trên. Trong lĩnh vực phần mềm agent được hiểu là một phần mềm có khả năng
thực hiện các công việc thay cho con người.
Mobile agent là một tiến trình (ví dụ: một chương trình chạy) có khả
năng di cư từ một máy của một hệ thống này sang một máy khác (thông
thường trong cùng hệ thống) để đáp ứng các yêu cầu tạo ra bởi các máy khách
của chúng. Về bản chất, một mobile agent sẽ thực hiện trên máy mà nó khởi
tạo khi máy này hỗ trợ những tài nguyên cũng như dịch vụ mà agent yêu cầu
để thực hiện công việc của nó. Nếu trên máy đó không chứa các tài
nguyên/dịch vụ cần thiết hay nó yêu cầu tài nguyên/dịch vụ trên máy khác thì
thông tin trạng thái của mobile agent sẽ được lưu lại theo định dạng cho trước
và được truyền tới máy chứa tài nguyên hay dịch vụ cần thiết đó. Tại đó
mobile agent sẽ được khởi tạo và sau đó nó sẽ thực hiện tại máy mới đó. Có
thể nói mobile agent bao gồm bốn thành phần sau:

Phần code: các đoạn mà lệnh để xử lý.
Phần dữ liệu: nội dung các tham số của các đối tượng.
Phần trạng thái xử lý: mỗi mét agent sÏ thùc hiƯn trong mét hay nhiỊu
lng (thread). Mỗi luồng sẽ có thanh ghi đếm riêng và các danh sách
kết nối riêng để lưu trữ các biến và các dữ liệu kết quả cục bộ.
Phần khởi tạo ban đầu: trong một số trường hợp phần này được thêm
vào.
Mô hình mobile agent là sự mở rộng của mô hình máy khách/máy chủ.
Trong mô hình máy khách/máy chủ, các thực thể giao tiếp với nhau đều có
các vai trò rõ ràng và cố định, máy chủ (server) cung cấp các dịch vụ và các
máy khách (client) sử dụng các dịch vụ đó nên phụ thuộc chặt chẽ vào các
máy chủ cung cấp các dịch mà nó cần. Cơ chế giao tiếp máy khách và máy
chủ thông qua giao thức truyền thông điệp. Tuy nhiên cơ chế này bắt buộc
người lập trình phải xác định được các địa chỉ mạng và các điểm đồng bộ.


6
Mô hình mobile agent giải quyết được những vấn đề trên. Những đặc
điểm điển hình của mobile agent là khả năng di chuyển được, tính tự trị trong
hành động, trao đổi điểm - điểm (peer to peer) và khả năng xử lý độc lập với
mạng và vị trí ban đầu.
Tính di chuyển là một đặc điểm mong muốn vì những lý do sau:
 HiƯu qu¶: nÕu mét agent cã kh¶ năng di chuyển trong mạng tới vị trí
của tài nguyên thì mật độ truyền thông của mạng máy tính sẽ được
giảm đáng kể vì các agent có thể tiền xử lý dữ liệu, xác định dữ liệu
nào là quan trọng nhất. Điều này sẽ càng quan trọng hơn đối với các
người dùng sử dụng đường truyền với băng thông thấp.
TÝnh bỊn bØ (persistence): khi mét nót m¹ng t¹o ra một agent thì agent
đó không bị phụ thuộc vào nút mạng, không bị ảnh hưởng nếu nút
mạng bị hỏng. Việc agent di chuyển giữa các nút mạng có nghĩa là

agent có khả năng sống sót và sử dụng các tài nguyên tới mức tối đa.
Điều này rất có ích đối với những người dùng máy tính di động: họ có
thể truy cập vào mạng, sinh ra một agent hoạt động trong mạng, thoát
khỏi mạng và kiểm tra kết quả sau một khoảng thời gian nào đó.
Trao đổi điểm - điểm (peer to peer communication): nhược điểm của
mô hình máy khách/máy chủ là các máy chủ không có khả năng giao
tiếp với nhau. Những mobile agent được xem là các thùc thĨ cïng cÊp
vµ nh­ vËy chóng cã thĨ chÊp nhận bất cứ vai trò nào thích hợp cho
nhu cầu hiện tại của chúng. Chẳng hạn, khi một mobile agent đang
truy cập vào tài nguyên, nó đóng vai trò khách. Tuy nhiên, khi một
Mobile agent khác đang truy vấn nó thì nó thành vai trò máy chủ.
Tính chịu lỗi (fault tolerance): thông thường trong mối quan hệ máy
khách/máy chủ, trạng thái của giao dịch được phân đều trên máy
khách và máy chủ. Trong khi thực hiện yêu cầu, mạng hoặc máy chủ
có thể bị hỏng và khi đó việc phục hồi và đồng bộ lại với máy chủ là


7
rất khó khăn đối với máy khách. Ngược lại, các mobile agent không
cần thiết duy trì kết nối trong suốt giao dịch, trạng thái được tập trung
tại bản thân các agent, do đó sẽ dễ dàng hơn cho việc xử lý và phục
hồi dữ liệu khi gặp lỗi.

1.1.1.2 Agency (agent server)
Một agency (tác sở) nắm giữ các thông tin, thuộc tính về bản chất và
hành vi của các agent. Thông th­êng, ng­êi dïng sÏ tin t­ëng vµ sư dơng
agent cã bản chất hoàn chỉnh và hành vi có thể kiểm soát được.
Một agency đáp ứng được nhiều tác vụ như tạo, xử lý, truyền, hủy bỏ
các agent. Hơn nữa agency còn hỗ trợ một môi trường an toàn, truyền thông
khả dụng và một số dịch vụ khác như truy nhập cơ sở dữ liệu.... Mỗi một

agency trên mạng đều có một số định danh duy nhất. Agency có thể được biểu
diễn như hình 1.3:

Hình 1.3: Mô hình Agency


8

1.1.1.3 Quá trình phát triển từ truyền thông điệp đến mobile agent
Truyền thông giữa các thực thể trong hệ thống phân tán có thể được hỗ
trợ bởi nhiều kiểu mô hình khác nhau. Truyền thông điệp là mô hình được đưa
ra đầu tiên, cho phép các tiến trình có thể truyền thông với nhau bằng việc gửi
và nhận các thông điệp (message), bao gồm cả truyền đồng bộ và không đồng
bộ. Đặc biệt, việc truyền thông điệp không đồng bộ là rất linh hoạt và do đó
hỗ trợ được rất nhiều loại truyền thông khác nhau. Tuy nhiên nó lại bộc lộ
rằng việc phát triển các ứng dụng phân tán dựa trên truyền thông điệp là rất
phức tạp và dễ gây lỗi, đồng thời chương trình khó phân tích và gỡ rối.
Một mô hình truyền thông bậc cao hơn là gäi thđ tơc tõ xa (Remote
Procedure Call – RPC). Trong mô hình này, để truyền thông, các tiến trình
gọi các thủ tục từ xa thay vì gửi và nhận các thông điệp. RPC hỗ trợ kiểu
tương tác máy khách/máy chủ, trong đó máy khách đưa ra các yêu cầu tới
máy chủ, máy chủ thực hiện thủ tục được yêu cầu và trả về kết quả. Đa số các
cơ chế RPC hỗ trợ các lời gọi đồng bộ và không đồng bộ. Rõ ràng, một yêu
cầu tiên quyết cho một RPC có thể hoạt động là thủ tục được gọi phải có ở
trên máy ở xa (mà nó lời gọi đến). Yêu cầu này làm hạn chế khả năng sử dụng
của RPC trong các hệ thống phân tán mở lớn. Trong nhiỊu tr­êng hỵp, ng­êi
ta mong mn cã thĨ mang theo mét thđ tơc tíi mét nót ë xa vµ thùc hiện thủ
tục này tại nút đó. Ví dụ như mang một bộ lọc tới một cơ sở dữ liệu ở xa để
truy cập và nén dữ liệu một cách cục bộ tại nút đó đó mà không cần đến người
quản trị hệ thống ở đó. Khi đó, một tiến trình không chỉ truyền tham số của

thủ tục được gọi mà còn truyền cả mà nguồn của chính thủ tục đó. Tổng quát
hoá lên, ta có thể thấy rằng việc truyền mà nguồn của thủ tục không chỉ từ
phía máy khách lên máy chủ mà cả chiều ngược lại, được gọi là di chuyển
đẩy-kéo. Ví dụ, Java applets hay ActiveX control là các công nghệ cho phép
máy khách kéo mà nguồn từ máy chủ về, trong khi đó Servlets lại cho phÐp


9
đẩy mà nguồn lên máy chủ. Cơ chế cho phép thực hiện việc kéo và đẩy mÃ
nguồn này (cùng với các tham số) từ nút này đến nút khác được biết đến với
khái niệm thực hiện từ xa (remote execution).
Trong khi thùc hiƯn tõ xa chØ cho phÐp di chun mà nguồn (code
mobility) thì mobile agent hỗ trợ cho di chuyển tiến trình, ở đó các quá trình
thực hiện chương trình có thể di trú từ máy này sang máy khác trong mạng.
Rõ ràng việc di cư agent không chỉ là với mà nguồn mà còn với cả thông tin
trạng thái của agent. Thông tin trạng thái của agent bao gồm dữ liệu (các biến
toàn cục và giá trị) và trạng thái thực hiện của agent (các biến cục bộ và các
luồng). Dựa trên khả năng di trú có thể mang theo được những thông tin nào
mà người ta chia ra hai lo¹i di c­ : di c­ m¹nh (strong migration) và di cư yếu
(weak migration).
Trong di cư mạnh, toàn bộ dữ liệu trạng thái (dữ liệu và trạng thái thực
hiện) được di chuyển theo. Ngay khi agent đến đích nó sẽ tự động khôi phục
lại trạng thái của mình. Điều này là rất hấp dẫn đối với người lập trình vì toàn
bộ công việc như bắt, di chuyển và phục hồi trạng thái cho agent là trong suốt
nhờ hệ thống nền. Tuy nhiên, để cung cấp được mức độ trong suốt này trong
môi trường không đồng nhất thì đòi hỏi phải có ít nhất một mô hình chung
cho các trạng thái của agent cũng như là cú pháp di chuyển các thông tin này.
Ngoài ra, do toàn bộ trạng thái của agent là khá lớn nên việc di trú mạnh có
thể sẽ tốn thời gian và chi phí cao.
Việc hạn chế những khó khăn nêu trên dẫn đến việc phát triển loại di cư

yếu, trong đó chỉ có dữ liệu được di chuyển. Khi đó thông tin phải di chuyển
là nhỏ nhưng người lập trình lại phải chịu trách nhiệm mà hoá các trạng thái
thực hiện tương ứng của agent trong các biến chương trình và làm cho công
việc lập trình trở nên khá phức tạp.


10

1.1.2 Đặc điểm của mobile agent
1.1.2.1 Tính di động
Tính di động là đặc điểm cho phép agent di chuyển giữa các nút mạng.
Nhưng sự di chuyển và chức năng kiểm soát tính chuyển động của nó được
thực hiện như thế nào? Về cơ bản, mobile agent cũng là sự thực hiện các tiến
trình, tuy nhiên nhân tố quan trọng để phân biệt mobile agent với các tiến
trình thông thường là không phải tất cả các lệnh của tiến trình đều được thực
hiện trên cùng một nút mạng. Và như vậy, vì mobile agent khác với các tiến
trình thông thường nên sù di chun cđa chóng cịng kh¸c so víi sù di chuyển
của các tiến trình thông thường: chúng khác nhau về chủ thể quyết định trong
việc xác định không gian và thời gian di chuyển. Đối với các tiến trình thông
thường, một tiến trình của hệ thống sẽ điều khiển sự di chuyển của các tiến
trình khác vì một số lý do như vị trí tài nguyên, cân bằng tải trọng... Thao tác
điều khiển này tương đối phức tạp. Đối với mobile agent, thì chính agent là
chủ thể quyết định trong việc thời gian di chuyển, và hệ thống phải hỗ trợ và
có khả năng thực hiện yêu cầu này.
Agent di chuyển giữa các nút mạng theo hai cách:
Hướng trạng thái: agent có thể di chuyển tại bất cứ bước nào trong
quá trình thực hiện của chúng thông qua c¸c lƯnh di chun nh­: go,
jump, move. Khi c¸c lƯnh này được gọi, trạng thái hiện tại của agent
được đóng gói và truyền tới một nút khác trong mạng. Tại nút này,
quá trình thực hiện của agent được tiếp tục tại bước mà chúng đà di

chuyển. Việc khôi phục lại trạng thái của agent tại nút đích có thể
được thực hiện bởi bản thân agent hoặc bởi hệ thống.
Không có trạng thái: agent có thể di chuyển tại bất cứ bước nào trong
quá trình thực hiện nhưng trạng thái của chúng lại bắt đầu lại từ đầu.


11
Điều này có nghĩa là trước khi agent chuẩn bị di chuyển, các thông
tin về trạng thái của chúng được lưu vào một bộ lưu trữ hoặc một cơ
sở tri thức. Bộ lưu trữ dữ liệu hoặc cơ sở tri thức này được bao gói và
gửi đi cùng với agent. Tại nút đích, nếu cần thiết thì agent phải tự
khôi phục lại trạng thái của mình từ bộ lưu trữ dữ liệu này. Những hệ
thống này có khả năng di chuyển dễ dàng nhưng việc tạo ra các agent
là tương đối khó khăn vì việc tạo agent gắn liền với thao tác lưu
giữ/khôi phục trạng thái.

1.1.2.2 Sự thu thập dữ liệu
Mobile agent thu thập các thông tin cần thiết từ môi trường cục bộ để
thực hiện mục đích của mình. Những thông tin này cần phải được lọc bởi các
agent trước khi chúng được lưu hoặc gửi đi tiếp cùng với chúng. Do đó các hệ
thống mobile agent cần phải có khả năng đánh giá các tài nguyên mà chúng
cần.

1.1.2.3 Xác định đường đi
Có 3 phương pháp để xác định đường đi cho các agent:
Xác định trước (predetermination): đường đi của agent được xác định
ngay khi agent được sinh ra. Phương pháp này thích hợp trong trường
hợp các hành động của agent cần được kiểm soát, thứ tự các nút mà
agent thăm là quan trọng.
Xác định động (dynamic determination): agent được tự do di chuyển

giữa các nút mạng. Việc lựa chọn nút mạng tiếp theo để di chuyển có
thể được thực hiện một cách ngẫu nhiên, hay có thể dựa trên cơ sở tri
thức về các nút mạng mà bản thân agent có hoặc là các thông tin thu
được từ các agent khác. Phương pháp này phù hợp với các agent khai
phá dữ liệu (data mining agent).


12
Xác định hỗn hợp (hybrid determination): kết hợp hai phương pháp
trên. Các nút đích của agent đà được định nghĩa nhưng agent vẫn có
khả năng quyết định xem các dịch vụ và tài nguyên của các nút khác
trong mạng có thích hợp với mục đích của mình hay không. Hay nói
một cách khác là agent chứa một tập các tiêu chuẩn dùng để xác định
xem một nút mạng có phù hợp với mục đích của mình hay không.
Phương pháp này thường được sử dụng trong các trường hợp khi mà
tốc độ trả về của các dữ liệu là quan trọng hơn so với độ phức tạp của
dữ liệu được xử lý.

1.1.2.4 Truyền thông
Khả năng các agent có thể giao tiếp được với nhau là nền tảng của một hệ
thống mobile agent. C¸c agent giao tiÕp víi nhau theo hai phương thức:
Hướng mạng (network oriented): các agent giao tiếp thông qua các cơ
chế dựa trên mạng máy tính như phương pháp truyền thông điệp. Với
phương pháp này, các thực thể tham gia giao tiếp không nhất thiết
phải trên cùng một mạng.
Hướng nút (node oriented): các agent giao tiếp thông qua cơ chế
truyền thông cục bộ giữa các tiến trình, chẳng hạn thông qua tệp, chia
xẻ bộ nhớ... Với phương pháp này, các agent phải ở trên cùng một
mạng.
Ngoài ra, truyền thông có thể thực hiện theo hai cách:

Đồng bộ: các agent phải sắp xếp thời gian cho việc truyền thông và
phải thực hiện đồng bộ với nhau trước khi dữ liệu được truyền.
Phương pháp này thường được sử dụng khi truyền những dữ liệu quan
trọng, cần được x¸c nhËn.


13
Không cần đồng bộ: các agent có thể giao tiếp với nhau bất cứ lúc
nào. Dữ liệu sẽ được nhận khi các agent kiểm tra nó. Phương pháp
này thường được dùng khi trao đổi các dữ liệu mang tính chÊt th«ng
tin.
Mobile agent cã thĨ trun th«ng víi nhiỊu thùc thể khác nhau:
Tương tác với agent dịch vụ: mỗi một agent dịch vụ đáp ứng một số
yêu cầu cụ thĨ nh­ truy nhËp hƯ thèng file, truy nhËp c¬ sở dữ liệu,...
Kiểu tương tác này là kiểu máy khách/máy chủ điển hình nên nó sử
dụng phương thức truyền thông giống như RPC.
Tương tác với các mobile agent khác: nó không dựa vào dòng thông
tin hai chiều như trong truyền thông hỏi/đáp thông thường. Nó được
định nghĩa như là sự trao đổi tri thức. Các agent trao đổi các tri thức
về mạng, về các tài nguyên...
Tương tác với người dùng: trong một số trường hợp như tìm kiếm
thông tin, các agent cần gửi kết quả thu được về cho người sử dụng đÃ
tạo ra agent. Mobile agent thường ghi lại dữ liệu của chúng bằng một
agent khác hoạt động trên nút mạng của người dùng. Agent này sẽ
thu thập, sắp xếp và tổ chức thông tin theo khuôn dạng phù hợp với
người dùng.

1.1.2.5 Bảo mật
Những nhà quản trị hệ thống cũng như những người có trách nhiệm với
mạng máy tính luôn lo ngại trong việc sử dụng các chương trình có khả di

chuyển. Trong môi trường máy khách/máy chủ thông thường việc thực thi một
chương trình sẽ được gán cho một người được hệ thống xác thực. Điều này có
nghĩa là chỉ có những người được hệ thống chấp nhận và có đủ quyền mới có
thể thực thi chương trình. Hơn nữa việc bảo mật được hỗ trợ bởi hệ điều hành


14
và chương trình chỉ có thể chạy trên một hệ điều hành riêng biệt. Ngược lại,
trong môi trường mobile agent, một agent thực thi một số hành động từ một
máy chủ ở xa nên không thể gán cho một người dùng nào cả. Do đó hệ thống
không thể kiểm tra các quyền truy nhập vào tài nguyên. Nó cũng có thể không
biết người sở hữu của agent. Hơn nữa là agent thường xuyên vượt qua sự kiểm
soát của hệ thống bởi nó có khả năng tự quản lý việc di chuyển, việc tái tạo lại
cũng như di chuyển qua nhiều hệ điều hành khác nhau. Do đó việc bảo mật
không chỉ do riêng hệ điều hành mà còn cả của môi trường tính toán cũng như
của cả agent. Nếu thực hiện được vấn đề bảo mật thì việc sử dụng mobile
agent là rất có lợi trong nhiều trường hợp.
1.1.2.5.1 Bảo vệ tài nguyên máy chủ
Trong một mạng mở chúng ta cần phải bảo vệ môi trường tính toán
cũng như tài nguyên của nó. Chúng ta không thể bảo đảm rằng chỉ có các
agent thân thiện trong hệ thống. Có rất nhiều loại tấn công sử dụng các agent
ác ý. Các agent này do thám các thông tin nhạy cảm (mật khẩu, thông tin nhạy
cảm của người dùng, thói quen người dùng...) hoặc có thể khởi tạo tấn công từ
chối dịch vụ khiến cho máy chủ bị khóa và từ chối cho các agent khác di cư
đến. Như vậy rõ ràng rằng các môi trường tính toán cần phải quan tâm tới việc
triển khai công tác bảo mật. Các máy chủ cần có các cơ chế để định danh các
agent và các nút gốc của agent. Nếu định danh không được xác thực thì agent
đó bị loại hoặc chỉ được cấp quyền truy cập ở mức tối thiểu. Thêm vào đó, các
agent cần được nhúng vào trong môi trường tính toán. Tất cả việc truyền thông
và truy nhập tài nguyên chỉ nên thực hiện duy nhất thông qua môi trường tính

toán và phải được xác thực.
1.1.2.5.2 Bảo vệ agent
Sau khi di cư từ máy chủ này sang máy chủ khác agent cũng rất dễ bị
tấn công. Có nhiều kiểu tấn công x¶y ra:


15
Đơn giản nhất là nó có thể bị hủy do máy chủ có sự cố hay không có
tiến trình xác nhận giữa hai máy chủ khiến nó không đến được máy
chủ kia.
Tiếp nữa là môi trường tính toán có thể ăn trộm thông tin nhậy cảm từ
agent mà agent và các ứng dụng máy khách không biết.
Môi trường tính toán thậm chí còn có thể thay đổi d÷ liƯu. Ta xem xÐt
vÝ dơ sau:
Ta cã mét hƯ thống các đại lý du lịch. Khi có yêu cầu đặt tour, một
agent sẽ di chuyển tới các máy chủ của các đại lý để thu thập thông
tin giá cả. Sau khi thu thập được giá cả của tour đó nó sẽ quyết định
chọn đại lý nào. Trong quá trình đó một đại lý nào đó sửa đổi dữ liệu
khiến cho giá cả của nó trở nên không còn thấp hơn so với các đại lý
khác hay nó trở thành đại lý có giá thấp nhất.
Có một khả năng khác là môi trường tính toán có thể thay đổi mÃ
lệnh của agent. Nó có thể thêm vào các đoạn mà mà sau khi agent đi
tới các máy chủ khác hay quay về máy chủ gốc nó sẽ đánh cắp các
thông tin, phá hủy tài nguyên hay khởi tạo các hành động có hại
khác. Điều này đặc biệt nguy hiểm khi các máy chủ gốc xử lý các
agent này như là các thực thể đà được tin tưởng (trusted entity).
Các hệ thống mobile agent cần có các cơ chế để giải quyết các vấn đề
trên như:
Cơ chế phân quyền: quy định các quyền mà agent có quyền thực hiện.
Cơ chế xác thực: khi agent di chuyển tới một nút mạng nào nó hệ

thống cần phải thẩm định bytecode của agent để đảm bảo agent đó
không thực hiện các hành động bị cấm hoặc hư hại.
Cơ chế truyền agent: sử dụng các cơ chế bảo mật khi truyền agent
như áp dụng các phương pháp mà hóa PGP (Pretty Good Private), SSL
(Secure Socket Layer).


16

1.1.3 Lợi ích của mobile agent
1.1.3.1 Hỗ trợ tốt hơn cho các máy khách di động
Các thiết bị di động cũng như các phương tiện liên lạc cá nhân có 3 đặc
điểm :
Chúng kết nối một cách gián đoạn với mạng, do đó chỉ truy cập một
cách gián đoạn đến máy chủ. Điều này là hoàn toàn đúng hiện nay,
khi các truy cập di động đến mạng là thông qua đường chuyển mạch
kênh, nhưng có thể sẽ không còn đúng trong tương lai khi mà truy
cập không dây tới các mạng chuyển mạch gói trở nên thông dụng.
Tuy nhiên điều này không ảnh hưởng nhiều tới các ứng dụng mobile
agent vì chúng chỉ đòi hỏi các máy khách di động khởi chạy agent
trong một phiên kết nối ngắn rồi có thể chấm dứt kết nối luôn. Câu trả
lời, nếu có, sẽ được thu nhận trong phiên kết nối tiếp sau.
 Khi kÕt nèi, chóng chØ sư dơng c¸c kÕt nối có băng thông tương đối
hẹp. Tuy nhiên, agent thực hiện cả hai công việc thu nhận và chọn lọc
thông tin tại máy chủ và trả về máy khách chỉ là thông tin có liên
quan không có thông tin dư thừa. Do đó thông tin di chuyển qua
mạng là tối thiểu.
Khả năng lưu trữ và xử lý bị hạn chế. Tuy vậy, các thiết bị không phải
tốn nhiều tài nguyên hệ thống cho việc lưu trữ và xử lý vì các công
việc thu thập và chọn lọc thông tin đà được agent thực hiện tại máy

chủ và các thông tin gửi về không bị dư thừa và là tối thiểu.

1.1.3.2 Truyền thông phân tán và không đồng nhất
Mobile agent có thể giải quyết các vấn đề về sự không tương thích về
ngôn ngữ và định dạng dữ liệu cũng như là sự không đồng nhất về môi trường
thực hiện. Lý do là vì chúng chứa cả mà nguồn trong quá trình truyền thông,


17
do đó agent có thể được dùng để ánh xạ các giao diện trên các hệ thống không
đồng nhất với nhau. Yêu cầu duy nhất là các dịch vụ nguyên thuỷ của ngôn
ngữ agent phải có thể thực hiện được trên mỗi hệ thống đó.
Mobile agent là một chương trình phân tán vì agent có thể di trú đến
máy đích và thực hiện nhiệm vụ đà được đưa vào lịch trình. Hệ thống mobile
agent cung cấp hạ tầng cần thiết cho truyền thông giữa các nhiệm vụ trong
môi trường không đồng nhất. Hệ thống mobile agent cũng hỗ trợ cho việc
biên dịch và khởi tạo agent một cách độc lập nhờ đó mà agent được gán với
một nhiệm vụ ngay trong thời gian thực hiện. Hơn thế, nhiều thuật toán có thể
được biểu diễn một cách tự nhiên nhờ vào tính di động trên toàn mạng hơn là
bằng cơ chế truyền thông điệp.

1.1.3.3 Giảm tải của mạng
Trong truyền thông dựa trên RPC, thường phải có nhiều luồng giữa máy
khách và máy chủ để thực hiện dù chỉ là một giao dịch đơn giản. Với việc sử
dụng mobile agent, các luồng này sẽ được giảm về một mobile agent nhờ đó
giảm tải mạng một cách tương ứng.
Mặt khác, các thao tác thu thập và chọn lọc thông tin đều được thực
hiện tại máy chủ, thông tin đưa về chỉ là thông tin đà được xử lý và không dư
thừa nên giảm được khối lượng dữ liệu phải chuyển từ máy chủ về máy khách.


1.1.3.4 Tương tác không đồng bộ.
Đây là đặc điểm chung của các hệ thống dựa trên thông điệp.


18

Theo mô hình này, trong quá trình xử lý cho từng yêu cầu thì máy
khách phải luôn sẵn sàng để nhận kết quả trả về và xử lý tiếp nó. Đặc biệt với
các thiết bị di động thì đây là một vấn đề nan giải bởi vì việc giữ kết nối liên
tục là rất tốn kém và nhiều khi là không thực hiện được.
Với công nghệ mobile agent, vấn đề này đà được giải quyết.

Từ góc nhìn của người sử dụng thì không chỉ yêu cầu mà toàn bộ công
việc đà được chuyển lên mạng nơi mà nó được thực hiện một cách không
đồng bộ. Một khi yêu cầu đà được truyền đi thì máy khách hoàn toàn có thể
ngắt kết nối khỏi mạng. Sau đó vài ngày thậm chí vài tuần máy khách kết nối
lại vào mạng để nhận kết quả.
Tất nhiên, để làm được điều này, hạ tầng hệ thống mạng phải đảm bảo
khả năng định dạng các agent, lưu trữ agent và không đánh mất agent.

1.1.3.5 Tìm kiÕm vµ chän läc tõ xa


×