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

Mobile agent và ứng dụng trong thanh toán điện tử

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.89 MB, 74 trang )

1



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






LÊ TRẦN TRUNG






MOBILE AGENT VÀ ỨNG DỤNG TRONG THANH TOÁN
ĐIỆN TỬ









LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN


















Hà Nội - 2012
2




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







LÊ TRẦN TRUNG






MOBILE AGENT VÀ ỨNG DỤNG TRONG THANH TOÁN
ĐIỆN TỬ


Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống Thông tin
Mã số: 60 48 05



LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN





NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS ĐOÀN VĂN BAN













Hà Nội -2012

4



Trang phụ bìa
Lời cam đoan
Mục lục
Bảng chú giải và các thuật ngữ viết tắt 3
Danh mục hình…………………………………… ……………………………………… 4
Giới thiệu về luận văn 9
Chương 1: Tổng quan về Agent 11
1.1. Giới thiệu 11
1.2. Tính năng của Agent 12
1.3. Phân loại agent 13
1.3.1. Phân loại theo tính năng 13
1.3.2. Phân loại theo mục đích 14
1.4. Kết luận 15
Chương 2. Mobile Agent và nguyên lý hoạt động 16
2.1. Khái niệm Mobile Agent 16
2.2. Tính chất mobile agent: 16
2.3. Nguyên lý hoạt động 16
2.3.1. So sánh với các kĩ thuật khác 16

2.3.2. Vòng đời một tác tử di động (mobile agent) 20
2.3.3. Cơ chế di chuyển của Mobile agent 21
2.3.4. Kiến trúc hệ thống của Mobile Agent 22
2.3.5. Các điều kiện agent phải thỏa mãn 23
2.4. Agent Host 23
2.4.1. Khái niệm 23
2.4.2. Các yêu cầu cho AgentOS : 23
2.5. Ích lợi của mobile agent 24
2.6. Môi trường ứng dụng mobile agent 25
2.7. Một số hệ thống Mobile Agent 27
2.7.1. Aglets 27
2.7.2. Voyager 28
2.7.3. Mole 29
2.7.4. ZEUS 29
2.8. Các tính năng hỗ trợ của hệ thống Mobile Agent 30
2.9. So sánh các hệ thống Mobile Agents 32
2.10. Bảo đảm an ninh trên Mobile Agent 33
2.10.1. Đe dọa sự an toàn an ninh (Security Threats) 33
2.10.2. Những yêu cầu về an toàn, an ninh (Security Requirements) 35
2.10.3. Biện pháp đối phó (Countermeasures) 37
2.11. Kết luận 41
Chương 3: Thương mại điện tử và ứng dụng Mobile Agent trong thanh toán điện tử 42
3.1. Thanh toán điện tử và các mô hình thanh toán điện tử 42
3.1.1. Giới thiệu về thanh toán và các vấn đề đặt ra đối với thanh toán điện tử 42
3.1.2. Các hệ thống thanh toán trực tuyến 43
3.1.3. Các loại thẻ thanh toán trực tuyến 46
3.1.4. Xử lý thẻ tín dụng trực tuyến 46
3.1.5. Rủi ro khi sử dụng thẻ thanh toán 47
5




3.1.6. Gian lận trong thanh toán thẻ 48
3.1.7. Sử dụng thẻ thanh toán trực tuyến 48
3.2. Mobile agent trong thương mại điện tử 50
3.2.1. Phân loại ứng dụng trong Thương mại điện tử 50
3.2.2. Một mô hình thanh toán điện tử dựa trên Agent - The Secure Agent
Fabrication, Evolution & Roaming (SAFER) 52
3.2.3. Hệ thống thanh toán hóa đơn nhà hàng dựa trên Mobile Agent 53
3.3. Sử dụng Aglet cài đặt ví dụ thanh toán điện tử 56
3.3.1. Tổng quát về Aglet 56
3.3.2. Cài đặt demo ứng dụng thanh toán hóa đơn nhà hàng 62
3.3.3. Kết luận 71
Kết luận và hướng phát triển 73


6




Bảng chú giải và thuật ngữ viết tắt

ASDK
Bộ thư viện cho aglet
ATP
Giao thức truyền thông của tác tử
B2B
Business to Business
B2C

Business to Customer
C2C
Customer to Customer
Client-Server
Mô hình mạng, trong đó server là máy chủ phục vụ, client là máy
khách truy cập vào máy chủ lấy dữ liệu
Code
Mã chương trình
CORBA
Common Object Request Broker Architecture – Một chuẩn cho phép
các đối tượng phân tán cộng tác được với nhau
Bandwidth
Băng thông đường truyền mạng
DCOM
Distributed Component Object Model – Mô hình đối tượng thành
phần phân tán
EBPP
Electronic Bill Presentment and Payment (Hệ thống xuất trình và
thanh toán hối phiếu)
Editor
Trình soạn thảo
EFT
Electronic Fund Transfer – Chuyển tiền điện tử
EIPP
Electronic Invoice Presentment and Payment (Hệ thống xuất trình và
thanh toán hóa đơn)
E-Cash
Tiền điện tử
Host
Không gian trên máy chủ có cài dịch vụ Internet như ftp,www

IP
Địa chỉ máy tính trong mạng
JDK
Bộ chương trình phát triển Java
JRE
Môi trường chạy Java
JVM
Java Virtual Machine – Máy ảo java
KQML
Ngôn ngữ giao tiếp giữa các tác tử
LAN
Mạng máy tính nội bộ
MA
Mobile Agent – Tác tử di động
Node
Một máy trong mạng
P2P
Peer to Peer – Mạng ngang hàng
Platform
Nền tảng cho ứng dụng
RMI
REMOTE METHOD INVOCATION - Công nghệ xử lý (gọi hàm) từ
xa
Sandbox
Mô hình bảo mật của Java
SDK
Bộ chương trình phát triển ứng dụng
7




SET
Secure Electronic Transaction – Giao dịch điện tử an toàn
SOAP
Simpe Object Access Protocol - Giao thức truy cập đối tượng đơn
giản
TCP/IP
Một giao thức Internet
TMĐT
Thương mại điện tử
TTP
Trusted Third Party – Bên thứ 3 tin cậy
UML
Ngôn ngữ mô hình hóa hợp nhất
XML
Ngôn ngữ đánh dấu mở rộng

8



Danh mục hình vẽ

Hình 1.1: Agent - Phương pháp lập trình mới 11
Hình 1.2: Phân loại Agent 14
Hình 2.1: Kỹ thuật mã kéo (pull code) 17
Hình 2.2: Kỹ thuật mã đẩy (push code) 18
Hình 2.3: Kỹ thuật mã tự trị (autonomous code) 19
Hình 2.4: Vòng đời một tác tử di động 20
Hình 2.5: Cơ chế di chuyển của mobile agent 21

Hình 2.6: Kiến trúc của một hệ thống mobile agent 22
Hình 2.7: Các hình thức đe dọa an ninh của Mobile Agent 33
Hình 3.1: Kiến trúc của mô hình SAFER 53
Hình 3.2: Giao thức thanh toán của hệ thống thanh toán nhà hàng 54
Hình 3.3: Cài đặt hệ thống thanh toán nhà hàng 55
Hình 3.4: Vòng đời Aglet 58
Hình 3.5: Aglet API 59
Hình 3.6: Kiến trúc Aglet 61
Hình 3.7: Máy chủ aglet phía khách hàng 62
Hình 3.8: Các bảng dữ liệu trong cơ sở dữ liệu MySQL 63
Hình 3.9: Máy chủ aglet phía chủ nhà hàng 64
Hình 3.10: Máy chủ aglet phía TTP 65
Hình 3.11: Màn hình đăng nhập 70
Hình 3.12: Màn hình thanh toán 71
9



Giới thiệu về luận văn

Đặt vấn đề

Với sự lớn mạnh không ngừng của WWW và sự nổi lên của những ứng dụng
Thương mại điện tử đã dẫn đến sự ra đời của các mô hình kinh doanh mới lấy Internet
làm trung tâm. Hỗ trợ cho mua bán trực tuyến đã tạo ra những chương trình có cấu
trúc mới cung cấp hiệu quả kinh tế và những mô hình linh hoạt. Cộng với sự ra đời của
khái niệm agent đã tạo ra một phương pháp lập trình mới được ứng dụng nhiều ngành
khoa học khác nhau.
Lập trình agent có những ưu điểm và lợi ích rõ ràng trong nhiều lĩnh vực và triển
vọng nhất là sử dụng các agent trong Thương mại điện tử. Rất nhiều công việc sử dụng

các ứng dụng mang khái niệm “agent trong Thương mại điện tử”. Tuy nhiên chưa có
nhiều ứng dụng được thiết kế cho TMĐT sử dụng mobile agent đã được hoàn hành.

Mục đích luận văn

Luận văn nghiên cứu hệ thống mobile agent theo hướng ứng dụng trong thanh
toán điện tử, với mục đích xây dựng một hệ thống có khả năng tự bảo trì, giảm thiểu
lỗi, khắc phục độ trễ của đường truyền tạo ra hiệu xuất cao trong xử lý. Dựa vào
những tính năng của mobile agent em hy vọng có thể xây dựng nên một hệ thống như
vậy.

Cấu trúc của luận văn

Ngoài các phần giới thiệu mở đầu, mục lục, bảng chú giải và các thuật ngữ viết
tắt, danh mục hình vẽ, kết luận, tài liệu tham khảo, luận văn được chia thành 3 phần
như sau:

Chương 1: Tổng quan về Agent

Giới thiệu tổng quan về software agent, tính năng của agent và phân loại agent

Chương 2: Mobile Agent và nguyên lý hoạt động

Giới thiệu về mobile agent và nguyên lý hoạt động, kiến trúc của mobile agent
và cơ chế di chuyển, truyền thông báo. Chương này cũng giới thiệu các hệ thống
mobile agent, so sánh giữa các hệ thống mobile agent hiện thời. Trình bày về các ưu
điểm của mobile agent và các lĩnh vực mobile agent có khả năng ứng dụng.
Chương này cũng trình bày về các vấn đề về an ninh và các phương pháp đảm
bảo an ninh cho agent
10





Chương 3: Thương mại điện tử và ứng dụng Mobile Agent trong thanh toán điện
tử

Giới thiệu về thương mại điện tử và các hệ thống thanh toán điện tử, các khả
năng ứng ứng dụng của mobile agent trong thương mại điện tử như: agent bán hàng,
mua hàng và thương lượng đấu giá
Ngoài ra luận văn cũng giới thiệu về hệ thống thanh toán điện tử dựa trên
mobile agent, đó là hệ thống thanh toán hóa đơn nhà hàng. Cuối chương luận văn cũng
trình bày về giao thức thanh toán của hệ thống và phần cài đặt thử nghiệm chương
trình
11



Chương 1: Tổng quan về Agent

1.1. Giới thiệu

Tin học ngày càng phát triển dẫn đến việc hình thành nhu cầu tạo ra những tiểu
chương trình nhỏ gọn, thông minh, có khả năng hoạt động một mình và kết hợp với
những tiểu chương trình khác
Năm 1994, khái niệm software agent được đưa ra bởi Mark Sidell và Chuck
Knuff và đến năm 1995 thì phiên bản đầu tiên của agent xuất hiện.
Năm 1975 kĩ thuật lập trình phổ biến là lập trình có cấu trúc, đến năm 1982, kĩ
thuật lập trình phổ biến là phương pháp lập trình hướng đối tượng và đến khi Agent ra
đời đã tạo ra một phương pháp lập trình mới.


Agent là sự kết hợp của nhiều kĩ thuật tin học hiện đại

Hình 1.1: Agent - Phương pháp lập trình mới

Có nhiều định nghĩa cho software agent, ta có thể tham khảo một số định nghĩa
sau:
Một agent là một thành phần phần mềm và/hoặc phần cứng mà có khả năng
hoat động chính xác để hoàn thành nhiệm vụ thay mặt chủ nhân của agent.
(Nwana, 1996) [8].
Trên mạng Internet, một agent (có khi được gọi là một intelligent agent ) là một
chương trình thu thập thông tin hoặc thực thi một số dịch vụ khác mà không cần người
điều khiển và hoạt động theo thời gian đã được lên lịch sẵn. Một agent đôi khi được
gọi là một bot ( viết tắt của robot ) [8].
Một ví dụ về agent là chương trình Infogate [8]. Chương trình này có chức năng
12



thu thập các tin tức mới về lĩnh vực người dùng quan tâm và tự động gửi thông báo
đến người dùng khi có tin mới.

1.2. Tính năng của Agent

1.2.1. Tính tự trị (autonomous)

Agent có khả năng tự kiểm soát những hoạt động của chính nó và làm việc, thi
hành các tác vụ độc lập với người dùng cũng như các tác nhân khác. Nói một cách
đơn giản, những agent là những chương trình có thể tự hoạt động mà không cần có
người dùng thao tác. Hai đặc tính hướng đích (goal-oriented) và tính chủ động (pro-

activeness) thường được dùng để đánh giá mức độ tự trị của agent. Khả năng tự trị của
agent chủ yếu được quyết định bởi tri thức trang bị cho agent.

1.2.2. Tính thích nghi và tự học hỏi (adaptive/learning)

Agent biết cách học và tự thay đổi các hành vi của nó theo các kinh nghiệm thu
được.

1.2.3. Bền vững trong quá trình hoạt động (persistent)

Tự tồn tại và thích nghi trong môi trường hoạt động, chỉ bị hủy khi đã hoàn
thành nhiệm vụ

1.2.4. Hoạt động hướng đích (goal driven)

Mỗi agent được tạo ra đều có một mục đích và nó hành động theo mục đích này
cho đến khi mục đích được thỏa mãn.

1.2.5. Giao tiếp và cộng tác ( communicative/collaborative)

Agent có khả năng liên lạc, giao tiếp và phối hợp hoạt động với các agent của
cùng môi trường khác hay các loại đối tượng khác trong các loại môi trường khác.

1.2.6. Linh hoạt (flexible)

Agent có thể hoạt động trong nhiều môi trường, hệ điều hành khác nhau.

1.2.7. Tính di động (mobility)

Là khả năng di chuyển từ môi trường thi hành này sang môi trường khác của

một agent. Khả năng di động của một agent được phân thành hai loại. Di động mạnh
13



(strong mobility) là khả năng mà hệ thống có thể di chuyển cả mã chương trình và
trạng thái thi hành của agent đến một môi trường khác. Di động yếu (weak mobility) là
khả năng của hệ thống chỉ có thể di chuyển mã chương trình giữa các môi trường thi
hành với nhau, mã nguồn có thể mang kèm theo một số dữ liệu khởi tạo nhưng trạng
thái thi hành thì không thể di chuyển.
Các agent thường có kích thước nhỏ, bản thân agent không phải là một ứng
dụng hoàn chỉnh, khi hoạt động trên một máy, agent cần phải kết hợp với một chương
trình chạy nền sẵn trên máy mà ta gọi là AgentHost mới có thể hoạt động được. Ngoài
ra có một số agent sẽ kết hợp với một số chương trình khác để hoạt động.

1.3. Phân loại agent

Các agent thường được phân loại theo tính năng và mục đích.

1.3.1. Phân loại theo tính năng

a. Tác tử tĩnh (Stationary agent)

 Đặc tính: Chỉ làm việc trên một hệ thống, nơi mà agent bắt đầu vòng đời.
 Nếu stationary agent cần thông tin ở một hệ thống khác hoặc muốn tương
tác với agent nằm ở hệ thống khác thì chúng phải sử dụng một trong các cơ
chế truyền thông khác như RPC, RMI, DCOM…

b. Tác tử di động (Mobile Agent)


 Không lệ thuộc vào hệ thống nơi chúng bắt đầu làm việc .
 Có khả năng di chuyển từ nơi này sang nơi khác trong hệ thống mạng máy
tính tại những thời điểm và vị trí do agent lựa chọn.
 Khi mobile agent di chuyển, nó có thể mang theo mình trạng thái và mã
chương trình.










14




1.3.2. Phân loại theo mục đích


Hình 1.2: Phân loại Agent

a. Tác tử cộng tác (Collaborative agent)

Collaborative agent là một chương trình giúp người dùng giải quyết vấn đề,
đặc biệt trong những trường hợp phức tạp hoặc không quen thuộc, bằng cách sửa
lỗi, đề nghị nên làm gì tiếp theo và chú ý đến những vấn đề ở cấp thấp. Một

collaborative agent có thể được thêm vào một giao diện người dùng có sẵn, ví dụ
như các chương trình giả lập hoặc tích hợp vào thiết kế của một dụng cụ phần cứng
mới, ví dụ như đồ gia dụng [8].

b. Tác tử giao diện (Interface agent)

Interface agent là một chương trình có thể ảnh hưởng đến giao diện thao tác
trực tiếp, nhưng không có sự hướng dẫn trực tiếp từ người dùng. Interface agent
đọc các dữ liệu người dùng nhập vào giao diện và nó có thể tạo ra sự thay đổi tới
đối tượng người dùng thấy trên màn hình, mặc dù có thể là sự thay đổi đó không
phải diễn ra ngay ứng với hành động của người dùng. Interface agent có thể quan
sát nhiều tham số nhập vào của người dùng trong một khoảng thời gian nào đó
15



trước khi quyết định thực hiện một hành động [8].

c. Tác tử thông minh (Smart/Intelligent agent)

Có đầy đủ cả 3 mục đích: giao tác, tự động và dễ thích nghi và đây chính
là tên gọi khác của software agent [8].

1.4. Kết luận

Trong chương này chúng ta đã giới thiệu về software agent, đó là một phương
pháp lập trình mới, ta cũng đưa ra một vài định nghĩa về agent.
Ta đã giới thiệu tính năng của agent như: tính tự trị, tính thích nghi và học hỏi,
hoạt động hướng đích, giao tiếp và cộng tác, linh hoạt, di động, Ta cũng phân loại
agent theo mục đích và tính năng.

16



Chương 2. Mobile Agent và nguyên lý hoạt động

Những hệ thống phân tán truyền thống được xây dựng trên những chương trình
tĩnh, chuyển dữ liệu đi về trên mạng. Còn mobile agent (gọi tắt là MA) thì ngược lại.

2.1. Khái niệm Mobile Agent

Định nghĩa: Mobile agent là những thành phần phần mềm, bao gồm mã chương
trình, dữ liệu và trạng thái hoạt động và có thể tự mình di chuyển từ nơi này sang nơi
khác. Nội dung agent mang theo trong quá trình di trú bao gồm các thành phần
của agent, tên cơ sở tri thức, bảng lưu nội dung các câu hỏi và câu trả lời theo ngôn
ngữ COKB-ONT [2].
Mobile agent chính là một dạng của mobile code. (Mobile code là những
chương trình chuyển mã đến client và thực thi ở đó. Ví dụ cho mobile code: chương
trình applet có thể gây nguy hiểm cho máy tính do trong applet có thể chứa những
đoạn code không đáng tin cậy, gây hại).
Mobile agent ngoài những tính năng cơ bản của mobile code còn có thể : mang
theo mình dữ liệu và trạng thái thực thi, di trú trong mạng dưới sự kiểm soát của chính
nó. Vì vậy, có thể nói mobile agent an toàn hơn mobile code nhiều.

2.2. Tính chất mobile agent:

 Có khả năng di trú từ nơi này sang nơi khác
 Liên lạc được với nhau, nhân bản, nhập lại, tổng hợp tính toán
 Một số agent có khả năng cung cấp dịch vụ hoặc interface cho các ứng dụng kế
thừa

 Có kích thước nhỏ
 Có khả năng xác định và dùng những tài nguyên trên các máy tính đang chứa
nó.

2.3. Nguyên lý hoạt động

2.3.1. So sánh với các kĩ thuật khác

Để hiểu rõ về nguyên lý hoạt động trong môi trường mạng của Mobile Agent,
ta sẽ so sánh nó với nguyên lý hoạt động của các kĩ thuật khác:

2.3.1.1. Kĩ thuật mã kéo (pull code)

Áp dụng trong mô hình client-server, bắt đầu khi client gửi yêu cầu đến server,
17



server sẽ gửi code về client và code thực thi, cho ra kết quả ở client.
Thao tác gồm 3 bước :
Bước 1 : máy client gửi yêu cầu đến server


Bước 2 : server gửi code cho client




Bước 3 : code được thực thi ở client



Hình 2.1: Kỹ thuật mã kéo (pull code)

Ví dụ : Các Java applet được thực thi theo phương pháp này
Chú ý : Trong mô hình này, một bản sao của code sẽ được server gửi tới client
và thực thi ở client. Server vẫn lưu trữ code.



18



2.3.1.2. Kĩ thuật đẩy mã (push code)

Khi có yêu cầu từ người dùng, một máy (một node) trong mạng sẽ gửi code tới
một máy (một node) khác trong cùng môi trường mạng và thực thi ở máy đó. Thao
tác này gồm 2 bước :
Bước 1 : Tự bản thân máy A gửi code đến máy B mà không có yêu cầu từ phía B.
Trong mô hình này, A chỉ là một máy có nối mạng với B chứ không cần điều kiện A
phải là server



Bước 2: code được thực thi ở máy B


Hình 2.2: Kỹ thuật mã đẩy (push code)

Chú ý : ở A vẫn lưu trữ một bản sao của code.

Như vậy, trong hai mô hình trên, nơi gửi code đi vẫn giữ lại một bản sao của
code.










19



2.3.1.3. Kĩ thuật mã tự trị (autonomous code)
Code tự quyết định sẽ đi và thực thi ở đâu
Bước 1 : code sau khi thực thi ở máy A sẽ tự đóng gói và di trú tới máy B


Bước 2 : code thực thi ở máy B, lúc này code hoàn toàn không còn ở A nữa



Hình 2.3: Kỹ thuật mã tự trị (autonomous code)

Ví dụ : mobile agent hoạt động theo phương pháp này.
Tự quyết định đóng gói, không để lại bản sao và di trú đến đâu là điểm khác
biệt của mobile agent với hai kĩ thuật kéo mã và đẩy mã ở trên.














20



2.3.2. Vòng đời một tác tử di động (mobile agent)

Mọi mobile agent đều thực hiện tuần tự theo logic: Đầu tiên, tác tử được tạo ra,
di trú từ host này sang host khác theo lịch trình, thực hiện các nhiệm vụ được giao và
cuối cùng bị huỷ sau khi đã hoàn thành nhiệm vụ.



Hình 2.4: Vòng đời một tác tử di động

 Khởi tạo : Khởi tạo agent, phát sinh ID cho agent, tuỳ biến cấu hình cho agent
 Lưu trạng thái: Lưu lại trạng thái, dữ liệu, mã nguồn của agent trước khi di trú
đến AgentOS khác

 Di trú: Di trú agent kèm tình trạng của nó đến một nơi khác
 Tái tạo trạng thái: Tái tạo lại trạng thái trước khi di trú của agent
 Thực thi: Truy cập vào các dịch vụ của host, liên lạc với các agent khác, hoàn
thành nhiệm vụ của agent
 Yêu cầu di trú: Yêu cầu được di trú đến một host khác
 Hủy/Ngủ đông: Khi nhiệm vụ đã hoàn thành hoặc gặp một trở ngại gì đó
không thể tiếp tục hoạt động thì agent sẽ tự hủy hoặc tự đưa nó vào trạng thái
ngủ đông (sleep)
Mọi agent đều thực hiện các công việc của nó tuần tự theo logic : đầu tiên, agent
được tạo ra, di trú từ host này sang host khác và cuối cùng bị huỷ sau khi hoàn thành
nhiệm vụ.

* Chi tiết vòng đời mobile agent
Vòng đời agent bắt đầu khi agent được tạo ra trên một host. Khi đó, agent sẽ
được cấp một định danh duy nhất. Tình trạng ban đầu cũng có thể được khởi tạo theo.
Khi đã sẵn sàng hoặc nhận được lệnh để di trú đến một host khác nằm trong đường đi
21



của agent, agent sẽ lưu lại trạng thái hiện hành của mình và tiến hành quá trình di trú.
Nếu quá trình di trú thất bại, agent sẽ tự ngừng hoạt động (deactivate) để rồi nó sẽ tự
kích hoạt lại chính mình sau một khoảng thời gian định trước hay được kích hoạt và sẽ
tiến hành lại quá trình di trú đến host khác. Khi đã di trú đến host mới thành công,
agent sẽ phục hồi lại trạng thái. Lúc này, agent bắt đầu thực thi nhiệm vụ của nó, sử
dụng các dịch vụ trên host, liên lạc với agent khác….
Sau khi agent đã hoàn tất nhiệm vụ, nó có thể bị huỷ hoặc chuyển sang trạng
thái ngủ đông cho đến khi có yêu cầu từ bộ đếm trong chính bản thân agent. Khi đó,
agent sẽ lưu lại trạng thái của nó và di trú đến một host khác. Vòng đời agent lại lặp lại
theo trình tự như trên cho đến khi nó hoàn thành nhiệm vụ hoặc hết thời gian hoạt

động thì agent sẽ bị hủy.

2.3.3. Cơ chế di chuyển của Mobile agent

Agent sẽ tự quyết định đóng gói và di trú đến môi trường khác để thực thi là
đặc điểm nổi bật của mobile agent. Khi có nhu cầu di trú agent sẽ tạm dừng thực thi
mã, thực hiện lưu trạng thái của đối tượng (có thể có khả năng lưu lại cả trạng thái thi
hành). Sau khi mã hoá dữ liệu agent sẽ được truyền đi trên hệ thống mạng. Khi
đến đích, agent sẽ thực hiện các bước ngượi lại với bên gửi để khôi phục lại trạng
thái của agent và tiếp tục thực hiện nhiệm vụ.



Hình 2.5: Cơ chế di chuyển của mobile agent

22



2.3.4. Kiến trúc hệ thống của Mobile Agent



Hình 2.6: Kiến trúc của một hệ thống mobile agent

Hệ điều hành của các hệ thống máy tính cung cấp các phần mềm cơ bản để thực
hiện việc tích hợp các mobile agent vào hệ thống và cung cấp đầy đủ các chức năng cơ
bản cho mobile agent hoạt động. Phần mềm cơ bản là giao diện giữa mobile agent và
hệ điều hành của máy tính [1].
Một mobile agent có thể giao tiếp trực tiếp với các phần mềm cơ bản bằng cách

yêu cầu một thủ tục mà phần mềm cơ bản cung cấp và nhận câu trả lời bằng các tham
số trả về. Các tác tử đang cùng hoạt động tại một hệ thống cũng có thể giao tiếp với
nhau. Việc truyền thông này có thể được thực hiện theo hai cách:
Cách thứ nhất: giao tiếp logic - hai tác tử giao tiếp trực tiếp với nhau
bằng cách gửi cho nhau các thông điệp hoặc yêu cầu các thủ tục. Cách này linh hoạt
và cho phép tác tử mức độ tự do cao. Tuy nhiên, phần mềm cơ bản (cũng là các server)
khó theo dõi và điều khiển các hoạt động của các tác tử.
Cách thứ hai: giao tiếp thực - hai tác tử giao tiếp với nhau thông qua phần mềm
cơ bản. Các tác tử chỉ giao tiếp trực tiếp với phần mềm cơ bản. Cách giao tiếp giữa hai
tác tử này bao gồm hai kết nối thực giữa các tác tử cần giao tiếp với phần mềm cơ bản.
Cách này hạn chế hơn và dễ bị thay đổi hơn.
Nếu một tác tử muốn truy xuất thông tin từ một cơ sở dữ liệu bên ngoài thì tác
tử đó phải thông qua phần mềm cơ bản. Phần mềm cơ bản sẽ truy xuất đến cơ sở dữ
liệu và thực hiện các công việc mà tác tử yêu cầu (như tìm kiếm,…) sau đó trả kết quả
về cho tác tử.
Phần mềm cơ bản của các hệ thống mobile agent gồm có ba tầng: tầng tác tử,
tầng an ninh, tầng truyền thông:
 Tầng tác tử cung cấp các tác vụ chính cho việc thi hành và kiểm tra của tất cả
các tác tử trên máy. Ngoài ra, nó cung cấp cho tất cả các tác tử môi trường làm
việc và sự thi hành các tác tử độc lập với nhau. Tầng tác tử còn cung cấp các
23



chức năng cơ bản cho hoạt động của các tác tử.
 Tầng an ninh cung cấp các chức năng cho phép truyền các thông điệp và các
đối tượng trên mạng một cách an toàn.
 Tầng truyền thông bao gồm các đặc tả cho các giao thức truyền, các định dạng
tài liệu, đối tượng.


2.3.5. Các điều kiện agent phải thỏa mãn

 Có một mã xác nhận duy nhất
 Xác định được những agent khác đang thực thi trong cùng host
 Có khả năng nhận và gửi thông điệp cho những agent khác

2.4. Agent Host

2.4.1. Khái niệm

Agent không thể tồn tại một mình mà nó phải dựa trên một phần mềm khác
được gọi là host hay AgentOS để sống và hoạt động. Chính host sẽ tạo ra agent từ
đọan code đã có, thực thi agent, chuyển nó đến host khác hay hủy đi agent. Khi host
bị hủy thì agent đang hoạt động dựa trên host đó cũng bị hủy theo

2.4.2. Các yêu cầu cho AgentOS :

 Độc lập flatform : AgentOS phải có khả năng hỗ trợ agent trong môi trường
mạng không đồng nhất.
 Đa luồng: AgentOS phải có khả năng cho phép nhiều agent hoạt động đồng thời
( có thể có độ ưu tiên khác nhau)
 Di trú được agent và trạng thái của nó : Agent có thể yêu cầu host di trú agent
tới host khác và thực thi.
 Có cơ chế cho các agent trong host giao tiếp được: AgentOS phải cung cấp khả
năng liên lạc thông qua sự kiện giữa các agent trong cùng một node cũng như
giữa các agent ở các node khác nhau.
 Tái sử dụng agent: AgentOS phải cung cấp cho người dùng khả năng phân loại,
lưu trữ agent để có thể lấy ra sử dụng lại về sau.
 Bảo mật: AgentOS phải có cơ chế chống lại những agent được tạo ra với ý đồ
xấu nhằm ngăn chặn việc bị đánh cắp thông tin hoặc bị tấn công từ chối dịch

vụ….
 Có thể mở rộng được


24



2.5. Ích lợi của mobile agent

2.5.1. Giảm tải băng thông

Kĩ thuật mobile agent cho phép người dùng đóng gói thông tin, gửi nó đến máy
đích và thực hiện xử lý dữ liệu, trao đổi cục bộ tại đó. Như vậy sẽ góp phần làm giảm
dữ liệu thô trên mạng, góp phần làm giảm tải mạng đáng kể. Phương châm thực hiện
của kĩ thuật mobile agent là : mang xử lý đến nơi chứa dữ liệu hơn là mang dữ liệu về
nơi xử lý.

2.5.2. Giảm độ trễ

Việc điều khiển các hệ thống quy mô lớn sẽ phải chấp nhận một sự trễ mạng
nhất định. Nhưng điều đó không được phép xảy ra trong các hệ thống thời gian thực
như điều khiển đèn giao thông, dây chuyền sản xuất Khi đó, giải pháp mobile
agent rất hữu ích trong việc khắc phục độ trễ nhờ vào việc agent có thể được gửi đi từ
trung tâm điều khiển và hành động cục bộ, tự trị, trực tiếp thi hành các chỉ dẫn của
người điều khiển.

2.5.3. Có thể thực thi khi ngắt kết nối mạng

Khi gặp sự cố mạng và không thể di chuyển tiếp, agent sẽ tự đưa mình vào

trạng thái chờ cho đến khi mạng được thiết lập lại thì agent sẽ khởi động lại và di
chuyển tiếp để hoàn thành nhiệm vụ được giao.

2.5.4. Thực thi bất đồng bộ và tự động

Thông thường, các thiết bị di động thường phụ thuộc vào các kết nối mạng đắt
tiền nhưng rất yếu ớt. Vì thế, những tác vụ cần có kết nối liên tục giữa thiết bị di động
và mạng có thể sẽ không có tính kinh tế hoặc không khả thi về mặt kĩ thuật. Giải pháp
mobile agent giải quyết vấn đề này bằng cách nhúng những tác vụ cần thực hiện vào
mobile agent rồi gửi lên mạng. Sau khi được gửi đi, agent trở nên độc lập thi hành
không đồng bộ và có khả năng tự trị. Các thiết bị di động sau đó có thể kết nối lại để
đón agent trở về

2.5.5. Nhanh và giảm thiểu lỗi

Với khả năng phản ứng năng động với các sự kiện và những thay đổi bất lợi,
mobile agent giúp việc xây dựng hệ thống mạnh mẽ và chịu lỗi cao được dễ dàng hơn.


25



2.5.6. Khắc phục tình trạng không đồng nhất

Việc xử lý tính toán trên mạng cơ bản là không đồng nhất vì sự đa dạng về phần
cứng và phần mềm được sử dụng. Do mobile agent độc lập với máy tính ( độc lập với
phần cứng và hệ điều hành ) và tầng vận chuyển, nó chỉ phụ thuộc vào môi trường thi
hành nên mobile agent cung cấp một điều kiện tối ưu cho việc liên kết các hệ thống
không liên quan lại với nhau.


2.5.7. Đóng gói các giao thức

Khi dữ liệu được trao đổi trong hệ thống phân tán, việc truyền và nhận dữ liệu
phải được mã hóa bằng các giao thức cần thiết. Các giao thức này được sở hữu bởi
mỗi máy trong hệ thống. Tuy nhiên, một khi các giao thức phải tiến hóa để phù hợp
với những yêu cầu mới về sự bảo mật hoặc tính hiệu quả, chúng trở nên cồng kềnh,
nặng nề và trở thành vấn đề nan giải. Với giải pháp mobile agent, các agent có thể
mang trên mình các giao thức thích hợp và di chuyển tới các máy ở xa để thiết lập các
kênh truyền nhận thông tin tương ứng.

2.6. Môi trường ứng dụng mobile agent

Mobile agent thích hợp với những loại ứng dụng sau:

2.6.1. Thu thập dữ liệu phân tán:

Trong trường hợp có nhu cầu truy vấn phức tạp, chuyên biệt và liên quan đến
nhiều nguồn dữ liệu không đồng nhất, việc cử các mobile agent đến các nguồn tin và
khai thác tại chỗ, rồi quay về với những thông tin cần thiết sẽ làm giảm tải mạng và
giải quyết tốt bài toán tương thích

2.6.2. Theo dõi và thông báo tin cập nhật

Ứng dụng cổ điển này làm nổi bật bản chất không đồng bộ của các mobile
agent. Các agent có thể được gởi đi, đến nơi có nguồn tin và hoạt động theo dõi nguồn
tin ngay cả khi người dùng ngắt kết nối. Sau đó, khi nguồn tin có sự thay đổi , agent sẽ
quay về báo cho chủ nhân. Các agent có thể được gửi đi để chờ một dạng thông tin nào
đó xuất hiện, rồi sau đó báo cho người dùng biết hoặc tự nó có những hành động thích
hợp đối với thông tin đó.


2.6.3. Giám sát và phân tán thông tin

Các mobile agent là minh họa cho mô hình Internet Push, các agent có thể phổ
biến tin tức và cập nhật phần mềm cho các nhà sản xuất. Các agent mang các thành
26



phần phần mềm và các thủ tục cần thiết đến các máy cá nhân của khách hàng và tự cập
nhật phần mềm trên máy đó. Mô hình này giúp nhà sản xuất chủ động hơn trong việc
phục vụ khách hàng để đảm bảo dịch vụ của mình. Mặt khác, các ứng dụng lọai này
cũng tỏ ra hiệu quả đối với các mạng cục bộ hay các chương trình quản lý quy trình tự
động, sản xuất… để giúp người quản trị giám sát các hệ thống con.

2.6.4. Xử lí song song

Do các agent có thể tạo ra các bản sao của nó trên mạng, tạo ra một ứng dụng
đầy tiềm năng của agent là quản trị các tác vụ song song. Một ứng dụng đòi hỏi nhiều
tài nguyên bộ xử lý có thể được phân bố cho các agent mang đi thực hiện trên nhiều
máy tính khác nhau để tận dụng các tài nguyên trống và cân bằng tải.

2.6.5. Thương mại điện tử

Các ứng dụng thương mại điện tử cho phép người dùng thực hiện các giao
dịch trong kinh doanh trên mạng. Một giao dịch có thể bao gồm sự thương lượng với
các thực thể ở xa và có thể đòi hỏi truy cập nguồn thông tin liên tục thay đổi. Từ thực
tế đó nảy sinh nhu cầu thay đổi hành vi của các thực thể để đạt được một nghi thức
chung trong việc thương lượng. Hơn nữa, việc di chuyển các thành phần của ứng dụng
tiến gần đến nguồn thông tin thích hợp cho giao dịch cũng được quan tâm. Vì thế công

nghệ mobile agent là một giải pháp rất hấp dẫn cho lĩnh vực này.

2.6.6. Quản trị hệ thống mạng

Đối với những hệ thống mạng lớn, việc chẩn đoán lỗi, duy trì sự ổn định của hệ
thống là các công việc rất khó khăn. Việc ứng dụng mobile agent vào việc quản trị
mạng sẽ giúp cho các công việc chẩn đoán lỗi và duy trì từ xa sự ổn định của hệ thống
được dễ dàng hơn

2.6.7. Hỗ trợ các thiết bị di động

Do đặc điểm tài nguyên hạn chế và không kết nối thường xuyên, việc xây dựng
các ứng dụng dựa trên mobile agent với khả năng di chuyển đến các máy tính có cấu
hình mạnh hơn để hoạt động (truy vấn cơ sở dữ liệu, tìm tin…) rồi trả kết quả về sẽ là
một giải pháp tốt cho người dùng các thiết bị di động.





×