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

Phân tích thiết kế dịch vụ truyền thông trong hệ thống AGENT di động

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 (23.27 MB, 67 trang )

Đ Ạ I H Ọ C Q U Ố C G IA H À N Ộ I
K H O A C Ô N G N G H Ệ
LÊ TRƯỜNG THIÊN
P H Â N T Í C H T H IẾ T K Ê D Ị C H v ụ T R Ư Y Ể N t h ô n g
T R O N G H Ệ T H Ố N G A G E N T D I Đ Ộ N G
Chuyên ngành: Công nghệ Thông tin
Mã số: 01.01.10
LUẬN VÀN THẠC s ĩ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
l.TS ĐOÀN VĂN BAN
Hà nội - 2003
2
CHƯƠNG IV. TRIỂN K HAI 32
IV .l. Mẫu thiết k ế


.

.

.

.

.

.

.

.



.

.
32
IV.1.1. Proxy P attern 33
IV. 1.2. Remote Proxy
.
35
IV.1.3. Visitor P attern 36
IV.2. Ngôn ngữ lập trìn h 37
IV.3. Kiên trúc hệ thống 39
IV.3.1. Registry Agent 41
IV.3.2. Đảng ký bằng hợp đồng (contractual registration) 42
IV.4. Tương tác giữa các A gent 46
IV.4.1. Java Remote Method Invocation 46
IV.4.2. Mobile Object.
.










.
48

IV.4.3. Tương tác thông qua các biểu hiện (perform ative) 49
IV.4.4. Ontology

.

.

.

53
IV.5. Duyệt lại yêu c ầ u 61
KẾT LU Ậ N 63
TÀ I LIỆU t h a m k h ả o
.

.66
Luận văn tốt nghiệp cao học
3
MỎ ĐẦU
Hiện nay, thời đại thông tin điện tử đang thay đổi đáng kể. Trong nhiều năm
qua, môi trường liên mạng ngày càng phát triển như Internet khiến cho thông
tin điện tử ngày càng phong phú và đa dạng. Trước đây, thông tin trên máy
tính chủ yếu ở dạng văn bản, nhưng nay những thông tin đó đã tồn tại ở nhiều
dạng khác nhau: đổ hoạ hai chiều, đồ hoạ ba chiều, âm thanh, hình ảnh Khái
niệm về không gian thông tin đa phương tiện toàn cầu bắt đầu phổ biến.
Tuy nhiên, để có thể sử dụng khối lượng thông tin lớn đó một cách hiệu quả,
một số vấn đề cơ bản cần đặt ra cho người sử dụng là: thông tin sẽ được tổ
chức và quản ỉý như thế nào và do đó việc duyệt và tìm kiếm trên những thông
tin đó được thực hiện như thế nào? [8].
Khi ngày càng nhiều tổ chức, người sử dụng tham gia vào liên mạng thì khối

lượng thông tin này sẽ ngày càng lớn. Tuy nhiên, số lượng thông tin sẽ tăng
lên theo một cách không cấu trúc và không dự đoán được, do đó người sử
dụng sẽ gặp nhiều khó khăn trong việc duyệt, tìm kiếm và quản lý thông tin
cần thiết.
Những công nghệ hiện thời chỉ tập trung vào lĩnh vực tìm kiếm thông tin đơn
thuần, và thông tin cần nằm Ưong một lĩnh vực cụ thể chẳng hạn dụng cụ tìm
kiếm cho World Wide Web. Và những công nghệ này sẽ gặp nhiều khó khăn
nếu thông tin là phân tán vì phải luôn luôn trực tuyến, kết hợp nhiều nguồn
thông tin khác nhau
Công nghệ agent ra đời giải quyết hoặc hứa hẹn giải quyết được nhiều vấn đề
trong đó có những vấn đề trên: vấn đề băng thông trong môi trường
khách/chủ, kết nối mạng không tin cậy hoặc giúp người dùng lựa chọn được
những thông tin đúng đắn dựa trên tri thức và kinh nghiệm. Bên cạnh đó, công
nghệ Aeent còn là một bước tiến triển mạnh của phương pháp lập trình hướng
Luận văn tốỉ nqhiệp cao học
4
đối tượng, chuẩn bị cho sự xuất hiện của một quan điểm lập trình mới hơn,
gần gũi hơn nữa với sự suy nghĩ của con người - Phương pháp lập trình hướng
Agent.
Luận văn "Phân tích thiết kế dịch vụ truyền thông trong hệ thống Agent di
động" với mục đích nghiên cứu về công nghệ agent, hy vọng sẽ góp phần nhỏ
trong quá trình nghiên cứu phát triển công nghệ Agent ở Việt nam nói riêng
và trên thế giới nói chung.
Luận văn được chia thành 4 chương:
- Chương 1: Giới thiệu các khái niệm cơ sở và mối quan hệ giữa agent với
phần mềm như thế nào. Chương này phân biệt một số nhận thức về
Agent đang được sử dụng bởi những người dùng khác nhau.
- Chương 2, 3: mô tả về một số đặc điểm của Agent di động, kiến trúc
của một hệ Agent dì động dựa trên quan điểm hướng Agent. Chương
này phân loại một số Agent có các nhiệm vụ khác nhau cùng hoạt động

trong một cấu trúc, các Agent tương tác với nhau như thế nào để giải
quyết những vấn đề phức tạp hơn.
- Chương 4: phân tích một số cơ chế cần thiết trong việc xây dựng hệ
thống Agent di dộng bằng ƯML và ngôn ngữ lập trình Java, tập trung
chủ yếu thiết kế dịch vụ truyền thông trong hệ thống, nhờ đó các Agent
có thể thực hiện truyền thông với nhau.
Luận văn tốt nghiệp cuo học
5
CHƯƠNG I. GIỐI THIỆU VỂ AGENT
1.1. Agent là gì ?
Do các cồng việc Agent (tác tử) có thể thực hiện cũng như nhận thức chung
của người dùng về Agent rất khác nhau, việc đưa ra một diễn tả hoàn chỉnh về
một Agent là tương đối khó. Tuy nhiên, theo nghĩa rộng nhất, tất cả các kịch
bản sau đây được quy về cổng việc của một Agent (Wooldridge et al., 1995)
[12]:
- Khi người dùng đăng nhập hệ thống máy tính, người dùng sẽ được chào
đón bởi chương trình trợ giúp cá nhân kỹ thuật số (PDA - Personal
Digital Assitant). PDA sẽ đưa ra một tổng kết về các hoạt động xảy ra
từ lần cuối cùng bạn đàng nhập hệ thống. PDA đã sắp xếp các thư điện
tử của người dùng theo thứ tự dựa trên tính quan trọng đồng thời thêm
các lời chỉ dẫn tham khảo tới các íhư điệnt tử có liên quan. Một thư điện
tử từ người giám sát, người giám sát muốn có một cuộc họp để bàn về
công việc của người dùng, PDA tự động kiểm tra lịch làm việc của
người dùng và đã đàm phán về ngày giờ thích hợp cho cuộc họp với
PDA của người giám sát. Ngoài ra, PDA cũng đã tự động tìm kiếm các
nhóm tin và đưa ra các tin tức phù hợp với nhu cầu của người dùng,
hướng sự chú ý của người đùng tới các công việc có liên quan.
- Trong khi người dùng đang soạn thảo một tệp, PDA nhận thấy có một
thư điện tử đến. Thư điện tử này thông báo rằng bài báo của người dùng
đã được chấp nhận tại một hội thảo nào đó. Không cần hỏi, PDA của

người dùng tự động sắp xếp và lên kế hoạch cho việc đi dự hội thảo.
Trong một khoảng thời gian ngắn, PDA sẽ đưa ra một số các lựa chọn
thuận tiện nhất cho người dùng. Khi người dùng đã chọn một lựa chọn
nào đó, PDA sẽ thay mật người dùng thực hiện kế hoạch tương ứng với
Luận vàn tốt nghiệp cao học
6
đàm phán với PDA của người giám sát hội thảo đó về dữ liệu cần thiết
của người dùng). Khi người dùng đang đi đến hội thảo, PDA truyền dữ
liệu cần thiết tới nơi tổ chức hội thảo, thông báo cho PDA của người
giám sát hội thảo.
Mặc dù một số công nghệ để hỗ trợ cho các hệ thống máy tính phức tạp như
trên là chưa tồn tại, nhưng các hướng nghiên cứu đang tập trung vào các vấn
đề này. Tuy nhiên, trong các kịch bản trên thì thành phần máy tính chính được
gọi là Agent.
Ở mức độ cơ sở và khái niệm, Agent có thể được coi là thực thể có thể thực
hiện các công việc thay cho con người. Chẳng hạn, chúng ta sẽ đến các đại lý
du lịch và đặt chỗ cho kỳ nghỉ của chúng ta, đại lý du lịch sẽ thay mặt chúng
ta thực hiện các công việc như: tổ chức chi tiết về chuyên bay, đặt phòng ở
khách sạn và lo các thủ tục bảo hiểm. Chúng ta thấy phiền toái, mệt mỏi khi tự
làm mọi thủ tục trên, nên chúng ta uỷ thác trách nhiệm đó cho một đại lý mà
ta biết họ có thể thực hiện các công việc đó.
Tương tự trong lĩnh vực phần mềm, một Agent là một phần mềm nào đó có
khả năng thực hiện công việc thay cho người sử dụng. Tuy nhiên có một vài
giả thiết đang được đặt ra. Trong thế giới thực, chúng ta tin tưởng vào đại lý
du lịch giúp ta đặt chuyến bay, đồng thời chúng ta cũng tin rằng đại lý đu lịch
đó sẽ đặt chuyến bay đúng ngày. Nói một cách khác, chúng ta không chỉ uỷ
thác niềm tin vào khả nãng hoàn thành công việc của đại lý du lịch mà còn tin
rằng họ sẽ thực hiện công việc một cách đúng đắn.
Như vậy, tính hữu dụng của Agent liên quan trực tiếp đến khả năng đáng tin
cậy mà Agent sinh ra, và điều này có thể quan trọng hơn chính công việc mà

Agent có khả năng thực hiện. Các Agent thực hiện các công việc một cách tồi
tệ sẽ không được sử dụng nhiều, vì chúng ta có thể sử dụng dịch vụ của các
Agent khác hoặc tự chúng ta thực hiện việc đó.
Luận văn tốt nghiệp cao học
7
tệ sẽ không được sử dụng nhiều, vì chúng ta có thể sử dụng dịch vụ của các
Agent khác hoặc tự chúng ta thực hiện việc đó.
1.2. Khái niệm vế Agency
Agency (tác sở) liên quan đến các khái niệm và thuộc tính mà nhờ chúng ta có
thể xác định được bản chất và hành vi của 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. Wooldridge và Jenings [12] đưa ra hai khái niệm về agency khi mô
tả bản chất và hành vi của agency: Agent yếu (weak agent) và Agent mạnh
(strong agent)
Ị.2.1. A gen t yế u
Một Agent được gọi là Agent yếu (weak agent) nếu có những đặc tính sau:
- Tính tự trị: sau khi được khởi tạo, Agent có khả năng hoạt động độc lập
vói người dùng. Tự Agent phải kiểm soát được mọi hành vi của mình,
Agent phải tự quyết định hành động tiếp theo là gì khi một hành động
thành công hay thất bại. Hơn nữa, Agent phải có khả năng cập nhật
trạng thái bên trong, và dựa vào trạng thái đó đưa ra những quyết định
hợp lý.
- Khả năng giao tiếp: để có thể thay đổi hoặc truy vấn môi trường hoạt
động, một Agent phải có khả năng tương tác với thế giới bên ngoài
(Genesereth, Mayfield - 1994), Tuỳ thuộc vào vấn đề Agent cần giải
quyết mà sự tương tác này tồn tại ở nhiều mức khác nhau, điển hình là
tương tác giữa các Agent, giữa Agent với môi trường hoạt động và
Agent với người dùng.
- Khả năng phản ứng: Agent cần có khả năng quan sát môi trường hoạt
động và có những phản ứng kịp thời khi mồi trường thay đổi dựa trên

vấn đề cần giải quyết. Chẳng hạn, một Agent có thể giám sát hệ thống
Luận văn tốt nghiệp cao học
8
truy vấn hệ thống tệp như thế nào. Agent phải nhận thức được về môi
trường hoạt động cũng như trạng thái và những thay đổi trong môi
trường để có những phản ứng thích hợp.
- Tính chủ động: Agent cần đánh giá trạng thái của môi trường hoạt động
và quyết định thực hiện mục đích như thế nào cho tốt nhất.
1.2.2. A gen t mạnh
Agent mạnh có thêm những thuộc tính liên quan về trí tuệ nhân tạo như: tri
thức, sự tin tưởng (belief), ý định (intention) và nghĩa vụ (obligation) (theo
Shoham, 1993). Những Agent như vậy có thể được coi là một hệ thống có chủ
ý (intentional system) (Dennett, 1987).
Một hệ thống có chủ ý được mô tả bởi những quan điểm về chủ ý: nghĩa là mô
tả hoạt động của hệ thống bằng cách gán những khái niệm trừu tượng cho hệ
thống đó.
Một số thuộc tính khác của Agent
Agent (cả Agent yếu và mạnh) có một số thuộc tính khác như:
- Tính chuyển động: Agent có khả năng di chuyển giữa các mạng để thực
hiên công việc.
- Tính hợp lý: giả thiết rằng Agent sẽ không hoạt động theo những cách
thức có thể cản trở mục đích của chúng. Và giả thiết rằng Agent luôn
luôn cố gắng để hoàn thành mục đích của mình.
- Tính chính xác: Agent không truyền những thông tin sai một cách có
chủ ý.
- Tính không xung đột: Agent không mang những mục đích xung đột
nhau.
Luận văn tốt nghiệp cao học
9
1.3. Một số loạỉ Agent

Ị.3.1. A g en t tr u y ền th ố n g
Khái niệm truyền thống về Agent bắt nguồn từ trí tuệ nhân tạo. Quan điểm
truyền thống coi Agent là một hệ thống: đầu vào là dữ liệu về môi trường hoạt
động, hệ thống thực hiện những suy diễn trên dữ liệu đó và đưa ra những kết
qủa.
Mục đích của cùng của Agent trí tuệ nhân tạo là cung cấp trí tuệ và khả năng
suy luận giống như con người. Tuy nhiên, do những khó khăn trong việc thu
thập và mô tả chất lượng của trí tuệ, Agent được coi như một phương tiện thể
hiện những đặc tính mong muốn của trí tuệ nhân tạo.
Kiến trúc trí tuệ nhân tạo truyền thống dựa trên những triết ỉý sau:
- Tính tượng trưng: thu nhỏ thế giới về các biểu tượng mà ta có thể nhận
thức được. Các biểu tượng đó có thể kết hợp với nhau tạo nên những cấu
trúc, nhờ đó các quá trình có thể được thực hiện để điều khiển các biểu
tượng theo những tập lệnh có sẵn. Những quyết định về hành động cần
thực hiện được thực hiện theo suy luân logic dựa trên những phương
pháp như đối sánh mẫu, thao tác ký hiệu
- Tính phản ứng lại (reactive): Vấn đề chính của kiến trúc trên là năng lực
xử lý cần thiết để phân tích thông tin về thế giới thực, lập những giải
pháp phù hợp và thực hiện những hành động được chọn. Vấn đề này
làm tiền đề cho sự ra đời của một kiến trúc mới - kiến trúc phản ứng lại.
Kiến trúc này không biểu diễn thế giới thực bằng những ký hiệu, do đó
không cần đến những phép suy luận dựa trên ký hiệu. Kiến trúc này
phân cấp những hành vi dùng để thực hiện công việc. Các hành vi cạnh
tranh lẫn nhau để chi phối đến hành động của Agent. ở cấp thấp là
những hành vi nguyên thuỷ, ở cấp cao hơn là những hành vi trừu tượng.
Luận văn tốt nghiệp cuo học
1 0
1.3.2. A g e n tg ìa o d iện
Agent giao diện trợ giúp người dùng trong bất kỳ công việc gì (Maes, 1994):
có thể là cung cấp những hiểu biết trong nhữnh trường hợp cụ thể hoặc cung

cấp những tư ỉiệu thay thế cho một lĩnh vực nào đó.
Ị. 3 .3 , A g e n t th ô n g tin
Agent thông tin là Agent có thể truy cập một số tài nguyên thông tin và có khả
năng thu thập và xử lý những thông tin đó. Agent này có thể thực hiện truyền
thông qua mạng máy tính để định vị những tài nguyên thông tin.
Chất lượng của một Agent thông tin được đánh giá thông qua khả năng giao
tiếp với một phạm vi tài nguyên thông tin rộng, khối lượng thông tin được xử
lý để có thể cung cấp kết quả chính xác cho người dùng.
L 3.4 . A g e n tp h â n tá n
Agent phân tán thường được gọi là hệ thống đa Agent (multi-agent system).
Trong hệ thống này vấn đề cần giải quyết thường được chia thành các vấn đề
nhỏ, mỗi vấn đề nhỏ được giải quyết bởi các Agent, sự hợp tác giữa các Agent
sẽ giải quyết được vấn đề đặt ra.
- K ế t h ợ p h a i k i ế n t r ú c t r ê n .
Luận văn tốt nghiệp cao học
11
CHƯƠNG II. HỆ THỐNG AGENT DI ĐỘNG
I ■
ll.l.M ô hình Agent di động
Agent di động là lớp các Agent có khả năng nổi bật là di chuyển giữa các nút
trong một mạne hoặc trong nhiều mạng khác nhau.
Agent di động ỉà sự mở rộng trực tiếp của mô hình khách/chủ. Trong mỏ hình
khách/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ủ cung cấp một số dịch vụ và máy khách sử dụng các địch vụ đó.
Trong mô hình này, máy khách phụ thuộc chặt chẽ vào các máy chủ cung cấp
các dịch vụ nó cần. Cơ chế giao tiếp giữa máy khách và máy chủ thông qua
các giao thức truyền thông điệp. Tuy nhiên, cơ chế giao tiếp này đòi hỏi 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ộ [8],
Hệ thống RPC của Sun Microsystems đã cố gắng loại bỏ những gánh nặng
này cho người lập trình. Với hệ thống này, máy khách có thể yêu cầu những

địch vụ của máy chủ được thực hiện trên phía máy chủ giống như việc thực
hiện trên phía máy khách. Trong hệ thống này, vị trí của máy chủ, sự khởi tạo
các dịch vụ và việc truyền các kết quả trả vể là trong suốt đối với máy khách.
Mô hình Agent di động có khả năng giải quyết được các vấn đề nói trên.
Những đặc điểm điển hình của Agent di động là khả năne di chuyển được,
tính tự trị trong hành động, trao đổi điểm điểm (peer to peer) và có khả năng
xử lý độc lập với mạng và vị trí ban đầu.
Tính chuyển động là một đặc điểm mong muốn của Agent vì một số 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
Luận văn tốt nghiệp cao học
1 2
nào là quan trọng nhất. Và đ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 nên bị phụ thuộc vào nút đó, và Agent không nên bị ảnh
hưởng nếu nút đó hỏng. Khái niệm 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 là 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 khách/chủ là các máy chủ khồng có khả năng giao tiếp. Những
Agent đi động đượ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 Agent di động đang truy cập vào tài nguyên,
nó đóng vai trò khách. Tuy nhiên, khi một Agenl di động khác đang
truy vấn nó thì nó thành vai trò máy chủ.

- Sự dung thứ lỗi (fault tolerance): thông thường trong mối quan hệ
khách/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à rất khó
khăn đối với máy khách. Ngược lại, các Agent di động không cần thiết
duy trì kết nối trong suốt giao đị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.
Luận văn tốt nghiệp cao học
13
II.2.ĐỢC điểm của Agent di động
ỊỊ.2.1. S ự d i c h u yể n
Tính chuyển độ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 là chức năng kiểm soát tính chuyển động được thực hiện
như thế nào. v ề cơ bản, Agent di độ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 Agent di động 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 ưên cùng một
nút mạng. Và như vậy, vì Agent di động khác với các tiến trình thông thường
nên sự đi chuyển 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 trinh 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 Agent di động, 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 [4].
Agent đi chuyển giữa các nút mạng theo hai cách:
- Hướng trạng thái (state-oriented): 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
chuyển như: go, jum p , 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.
Luận vân tốt nghiệp cao học
14
Đ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 VI việc tạo Agent gắn liền với thao tác lưu giữ/khôi phục trạne
thái.
ỊỊ.2.2. S ự th u th ậ p d ữ liệ u
Agent di động 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 các Agent. Do đó
những hệ thống Agent di động cần phải có khả năng đánh giá các tài nguyên
mà chúng cần.
H .2.3. X á c đ ịn h đ ư ờ n g đ i
Có 3 phương pháp để xác định đường đi cho các Agent [9]:
- 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 các
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 determinaiton): 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 thư
đượ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).
Luận văn tốt nghiệp cao học
15
- 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 địch vụ và tài nguyên của một nút khác
nào đó trong mạng là 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 là 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 ỉà quan trong hơn so với độ phức tạp
của dữ liệu được xử lý.
ỊỊ.2.4. Vấn đ ề tru y ề n th ô n g
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 Agent di động. 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à
các Agent 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.
Luận văn tốt nghiệp cao học
16
- 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.
Agent di động có thể truyền thông với nhiều thực thể khác nhau:
- Môi trường cục bộ: Agent di động thường được hạn chế chỉ giao tiếp
với môi trường cục bộ để tránh những vấn đề thường gặp trong mở hình
khách/chủ khi truyền dữ liệu. Agent đi động phải di chuyển qua các
môi trường khác nhau để truy cập dữ liệu. Tuy nhiên trong một số
trường hợp, Agent di động phải truyền thông với môi trường từ xa,
chẳng hạn khi xác định xem một môi trường nào đó có chứa một tài
nguyên hay một dịch vụ cần thiết hay không? Xác định vị trí của một
Agent khác, gửi trả kết quả về cho nút gốc.
- Các Agent khác: trong một vài trường hợp việc truyền thông giữa các
Agent là rất quan trọng: các Agent có thể chia xẻ thông tin vê các nút
mạng, các Agent có thể chia xẻ các cơ sở tri thức mà chúng có hoặc hợp
tác để thực hiện một công việc nào đó.
- Người sử dụng: đôi khi Agent cần phải truyển những kết quả thu được
vể cho người dùng đã sinh ra Agent. Thổng thường, Agent di động
thường ghi lại những 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 (người sở hữu Agent). Trong hầu hết các
hành động tìm kiếm tài nguyên, công việc ghi lại này được thực hiện
bởi một Agent khác, Agent này thu thập, sắp xếp thông tin và tổ chức
thông tin theo những khuôn dạng phù hợp với người dùng.
Luận văn tốt nghiệp cưo học
1 7
11.3. Một số hệ thống Agent di động
H .3.1. A g e n t TCL

Hệ thống Agent TCL là một mô hình hỗ trợ các Agent di động, đang được
phát triển tại Khoa Khoa học Máy tính, trường đại học Darthmouth. Kiến trúc
của Agent TCL dựa trên mô hình máy chủ và ngôn ngữ TCL (Tool Command
Language). Kiến trúc bao gồm bốn lớp: (hình vẽ)
Mobile Agents
Interpreter^ • k • Interpreter^
Server or Engine
TCP/IP ■ • * EMail
Hình 2.1 : Kiến trúc hê Agent TCL
Các Agent tĩnh và động trong hệ thống đều cung cấp các dịch vụ. Agent được
viết bởi các ngôn ngữ thông dịch như TCL hoặc Java. Tác giả chỉ ra rằng
những Agent viết bởi ngôn ngữ biên dịch như c sẽ hạn chế khả năng di
chuyển của Agent.
Tại mỗi nút trong hệ thống Agent TCL có một máy chủ chịu trách nhiệm quản
lý các Agent cục bộ và các Agent đến từ nút khác. Máy chủ cung cấp cơ chế
Luận ván tốt nghiệp cao học
V - u > / l è ' ẽ
18
an ninh, không gian tên có phân cấp nhờ đó các Agent có thể được tham chiếu
và các Agent có thể xác định lẫn nhau trong môi trường cục bộ.
Agent di chuyển giữa các nút trong hệ thống theo cách thức hướng trạng thái
(thực hiện lộnh agent_jump). Lệnh này đóng gói trạng thái của Agent và
truyền Agent tới nút đích, tại đó máy chủ sẽ khởi động lại Agent tại lệnh sau
câu lệnh a ge n t_ jump. Việc truyền Agent có thể dựa trên TCP/IP.
Việc thực hiện các Agent được xử lý thông qua các bộ thông dịch [8].
II.3.2. TACOMA
TACOMA (Tromoso And COmelI Moving Agents) là một dự án liên kết giữa
đại học Tromoso và đại học Cornell nhằm cung cấp một hệ điều hành hỗ trợ
cho Agent.
TACOMA coi Agent (hoặc là tĩnh hoặc di động) là thành phần tính toán trong

hê thống. Như vậy» Agent đi động hoạt động theo phương thức không trạng
thái và mỗi Agent có ba cơ chế lưu trữ: folder (kẹp tài liệu), filing cabinet (tủ
đựng hồ sơ), briefcase (cặp đựng tài liệu). Folder là đơn vị dữ liệu cơ sở, được
truy cập bởi một Agent. Folder có thể được lưu trong các Filing Cabinet là các
kho dữ liệu tĩnh hoặc lưu trong các Briefcase là các dữ liệu sẽ được đem đi
cùng với các Agent. Khi Agent di chuyển giữa các nút, trạng thái được lưu
trong folder DATA, mã chương trình cho Agent được lưu trong folder CODE,
cả hai folder này được lưu trong cùng một briefcase tương ứng của một Agent
đó. Tại nút đích, mã chương trình của Agent được lấy ra từ folder CODE để
thực hiện, trạng thái được khôi phục từ folder DATA [8].
Luận văn tốt nẹhiệp cao học
19
ế
Hình 2.2: Kiến trúc hệ TACOMA
II.3 .3 . T e ỉe s c r ip t
Telescript là một sản phẩm thương mại được phát triển bởi General Magic
Incorporated để hỗ trợ cho Agent di động trong môi trường thương mại điện
tử. Telescript là một ngôn ngữ ỉập trình hướng đối tượng cung cấp lệnh cơ bản
giúp Agent có thể di chuyển theo phương thức hướng trạng thái: go. Tại mỗi
nút trong hộ thống Telescript tồn tại một chương trình chủ (engine) tiếp nhận
và xử lý các Agent, khởi động lại các Agent sau lệnh go.
Agent có thể di chuyển giữa các địa điểm (place) là các vùng logic có liên
quan bên trong các engine. Một engine có thể hỗ trợ nhiều địa điểm (place),
và bản thân engine có một địa điểm (engine place). Các địa điểm engine tồn
tại trong một vùng (region), là các điểm kết nối trong một mạng Telescript.
Luận văn tốt nghiệp cao học
20
Khi di chuyển tối một địa điểm (place), engine sẽ thực hiện xác minh Agent
và có thể cấp quyển cho Agent truy cập vào địa điểm đó hoặc không cho
Agent truy cập vào địa điểm đó. [8]

Luận vân tốt nghiệp cao học
21
CHƯƠNG III. CẤU TRÚC AGENT DI ĐỘNG
III. 1. Yêu cầu
/ // . 1.1. S ự di c h u yể n tu ỳ ý
Để đảm bảo cho người lập trình có được độ linh hoạt tối đa trong việc thiết kế
Agent, sự di chuyển của Agent nên trong suốt với người sử dụng và thực hiện
bằng một lệnh (chẳng hạn, lệnh g o trong hệ Telescript). Lệnh này phải bao gói
được trạng thái của Agent, đóng gói Agent theo một khuôn dạng phù hợp với
môi trường mạng.
n u . 2 . Tỉnh b ề n b ỉ
Một thuộc tính quan trọng của hệ thống Agent di động là tính bền bỉ. Một
Agent được kích hoạt càng lâu thì số nút mạng mà Agent thăm càng nhiều và
Agent càng có ảnh hưởng lớn trong mạng. Đối với các Agent có khả năng học
và mở rộng cơ sở tri thức thì khi thời gian sống càng lâu, Agent càng thu thập
được nhiều kinh nghiệm. Và khi đó, Agent càng trở nên có giá trị hơn đối với
người dùng vì chúng có các tri thức có ích về các nút mạng mà chúng đã thăm.
Những kinh nghiệm mà các Agent thu thập được cũng có thể được tập trung
tại một cơ sở tri thức lưu tại nút mạng nơi người dùng đã khởi tạo nên các
Agent. Như vậy cơ s ở tri thức này là rất có ích cho các Agent mới trong việc
tìm kiếm.
/ / /1.3. S ự d u n g th ứ lỗ i
Khi Agent di chuyển giữa các nút mạng hay giữa các mạng để thực hiện mục
đích của mình, kinh nghiệm và cơ sở tri thức của chúng sẽ ngày càng phát
triển. Để những thông tin này không bị mất, cần phải tránh một số trường hợp
sau quá trình hoạt động của Agent:
Luận vãn tốt nghiệp cao học
22
- Lồi đường truyền: nếu lỗi xuất hiện trong qúa trình Agent di chuyển
giữa các nút mạng, Agent phải được truyền lại. Nếu không được truyền

lại, Agent phải được gửi về nút mà nó được tạo ra, nhờ vậy những thông
tin mà Agent lưu giữ vẫn có thể được sử dụng bởi người dùng. Cho dù
kế hoạch như thế nào thì dữ liệu của Agent cần phải được bảo quản.
- Nút mạng hỏng: nếu một nút mạng bị hỏng thì hộ thống phải có khả
năng tim lại dấu vết và khối phục lại trạng thái của Agent đang làm việc
tại nút mạng đó. Có một số phương pháp giải quyết vấn đề này: sao lưu
Agent ở nhiều nút khác nhau trong quá trình hoạt động của nó hoặc bản
thân Agent định kỳ gửi các bản sao lun về nút gốc của Agent đó. Sự
việc một nút mạng bị hỏng có thể là nghiêm trọng (hỏng đột ngột,
không có báo trước, dữ liệu sẽ bị mất) hoặc là không nghiêm trọng
(được báo trước như đóng nút mạng, Agent có thể di chuyển sang một
nút mạng khác).
- Vi phạm an ninh: nếu một Agent không được truyền đến một địa điểm
mới vì lý do an ninh (chẳng hạn Agent đến từ một nút mạng lạ) thì
Agent nên được khởi động lại và thử truyền tới một địa điểm khác.
/ / / . 1.4. N g ô n n g ữ tr u y ề n th ô n g A g e n t
Các Agent phải có khả năng giao tiếp với nhau thông qua một ngôn ngữ
chung. Ngôn ngữ này có tác dụng truyền đạt ý nghĩa và biểu diễn thông tin
theo một khuồn dạng chuẩn. Ví dụ, KQML (Knowledge Query and
Manipulation Language) và KIF (Knowledge Interchange Format) là các ngôn
ngữ như vậy.
H U . 5. T ru yền th ô n g
Một khía cạnh khác cần được xem xét là các Agent được đặt tên như thế nào
và chúng tham chiếu lẫn nhau ra sao. Vì các Agent luôn thay đổi vị trí nên
Luận vãn tốt nghiệp cao học
23
việc tham chiếu các Agent thông qua địa chỉ máy cũng như địa chỉ mạng là
không thích hợp. Ngoài ra, các Agent cần phải đăng ký khi chúng di chuyển
để giúp cho việc xác định vị trí hiện tại của Agent.
III. 1.6. A n n in h

Để đảm bảo một Agent không ỉàm hư hại gì đến môi trường hoạt động cũng
như các Agent khác, hệ thống phải có một số cơ chế đảm bảo an ninh:
C ơ c h ế phân quyền: quy định các hành động mà Agent có thể thực hiện. Các
nút trong mạng (hoặc các Agent) được gán các tập hợp quyền. Tương ứng với
tập hợp quyền này là các hành động mà Agent có thể thực hiện.
C ơ c h ế xác nhận: trước khi thực hiện kiểm tra quyền, phải thực hiện xác nhận
định danh của Agent và nút gốc của Agent. Nếu định đanh không được xác
định, Agent đó sẽ bị loại hoặc chỉ được cấp quyền truy cập ở mức thấp nhất.
C ơ c h ế truyền Agent: khi Agent trên đường truyền, chúng có thể bị sửa đổi
thông tin hoặc lấy cắp chữ ký. Do đó, cần phải có cơ chế bảo vệ khi truyền các
Agent. (Một số phương pháp mã hoá như PGP, SSL có thể được áp dụng)
C ơ c h ế xá c thực: khi Agent di chuyển tới một nút mạng nào đó, 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 hư hại hoặc bị cấm.
Luận vân tốt nghiệp cao học
24
111.2. Cấu trúc hoạt dộng
Cấu trúc hoạt động dựa trên phương pháp mô hình hoá hướng Agent. Mọi
thành phần của hệ thống đều được trừu tượng hoá theo Agent. Hệ thống bao
gồm Agent tĩnh (static agent) và Agent di động (mobile agent). Agent tĩnh
cung cấp tài nguyên và phương tiện cho Agent di động, Agent di động đi
chuyển giữa các miền (domain), sử dụng các tài nguyên tại các miền để thực
hiện mục đích của mình.
Các Agent di động sẽ di chuyển theo phương thức hướng trạng thái (state -
oriented) và Agent gổm: mã chương trình (code), trạng thái (state) và một số
cơ sở tri thức (knowledge base). Phẩn mã chương trình của Agent thể hiện
chức năng của Agent, chẳng hạn Agent có thể là Agent phát hiện tài nguyên
hoặc Agent bảo trì kết nối. Phần trạng thái của Agent là những dữ liệu cục bộ
mà Agent đang thực hiện trước khi thay đổi vị trí. Phần cơ sở tri thức chứa
những ừi thức của Agent: kinh nghiệm, mục đích Cơ sở tri thức cũng là nơi

mà các thông tin tạm thời được lưu giữ trước khi Agent trở về nút gốc.
Luận văn tốt nghiệp cao học
25
Luận văn tốt nghiệp cao học

×