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

BÀI TIỂU LUẬN-Tìm hiểu về giao thứ Telnet.

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.1 MB, 23 trang )

1


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN






TIỂU LUẬN
MÔN: Hệ thống thông tin quản lý & Thương mại điện tử




Giảng viên : Phạm Thế Quế
Sinh viên : Nguyễn Xuân Hiếu
Lớp : D10HTTT2













Hà Nội,Ngày 29 tháng 4 năm 2014

2

Mục lục
Tìm hiểu về giao thứ Telnet 3
Chương 1: Tổng quan về mạng Internet 4
1.1 Giới thiệu về mạng máy tính toàn cầu Internet 4
1.1.1 Mạng máy tính 4
1.1.2 Mạng Internet 4
1.1.3 Giao thức truyền thông và mô hình tham chiều OSI 5
1.2 Bộ giao thức TCP/IP 7
1.2.1 Giao thức chuyển địa chỉ ARP 7
1.2.2 Giao thức điều khiển truyền tin (Internet Control Message Protocol - ICMP) 8
1.2.3 Giao thức không kết nối (UDP) 8
1.2.4 Giao thức điều khiển truyền tin (Transmission Control Protocol - TCP) 8
1.2.5 Giao thức truyền tệp 8
Chương 2: Giao thức Telnet 9
2.1 Giao thức Telnet 9
2.2 Các dịch vụ của giao thức Telnet 9
2.3 Hoạt động của Telnet trong những hệ thống không đồng nhất 10
2.3.1 Trạm ảo (Network Virtual Terminal-NVT). 11
2.3.2 Các lựa chọn Telnet 11
2.3.3 Cấu trúc lệnh Telnet 12

Mobile Agent 14
Chương 1: Tổng quan về Agent 15
1.1 Giới thiệu 15
1.2 Tính năng của Agent 15

1.3 Phân loại Agent 15
1.4 Kết luận 16
Chương 2: Mobile Agent và nguyên lý hoạt động 17
2.1 Khái niệm Mobile Agent 17
2.2 Tính chất Mobile Agent 18
2.3 Nguyên lý hoạt động 18
2.4 Lợi ích Mobile Agent 18
2.5 Các ứng dụng của Mobile Agent 19
2.6 Một số hệ thống Mobile Agent 10
2.7 Các tính năng hỗ trợ của hệ thống Mobile Agent. 22
2.8 Kết luận 23
3






























































Hệ thống thông tin quản lý


Tìm hiểu về giao
thức TELNET

4

Chương 1. Tổng quan về mạng Internet

1.1 Giới thiệu về mạng máy tính toàn cầu Internet.
1.1.1 Mạng máy tính.
Mạng máy tính là hệ thống các máy tính độc lập được kết nối với nhau. Hai máy tính được
gọi là được kết nối với nhau nếu chúng có khả năng trao đổi thông tin. Sự kết nối có thể thông
qua dây dẫn, tia Laser, sóng điện từ hay vệ tinh viễn thông Việc kết nối các máy tính có
những ưu điểm sau đây:
- Sử dụng chung tài nguyên: Dữ liệu, chương trình và các thiết bị có thể được dùng chung
bởi người dùng từ các máy tính trên mạng.

- Tăng độ tin cậy của hệ thống thông tin: Nếu một máy tính hay một đơn vị dữ liệu nào đó
bị hỏng thì luôn có thể sử dụng một máy tính khác hay một bản sao khác của dữ liệu, nhờ
đó, khả năng mạng bị ngừng sử dụng được giảm thiểu.
- Tạo ra môi trường truyền thông mạnh giữa nhiều người sử dụng trên phạm vi địa lý rộng:
Mục tiêu này ngày càng trở nên quan trọng nhất là khi mạng máy tính đã phát triển trên
phạm vi toàn cầu như ngày nay.
- Tiết kiệm chi phí: Do tài nguyên được dùng chung, hệ thống tin cậy hơn nên chi phí thiết
bị và bảo dưỡng của mạng máy tính thấp hơn so với trường hợp máy tính riêng lẻ.

Liên mạng máy tính (Internetworking hay Internet) là một công nghệ được đưa ra nhằm
kết nối các mạng thành một thể thống nhất. Công nghệ Internet che dấu đi kiến trúc vật lý của
mạng và cho phép máy tính truyền thông một cách độc lập với liên kết vật lý của mạng. Một
liên mạng đã khá quen thuộc với chúng ta là mạng Internet.
1.1.2 Mạng Internet.
Internet là một tổ hợp hàng triệu máy được kết nối với nhau thông qua giao thức TCP/IP
để có thể chia sẻ thông tin với nhau, trong đó có đủ loại máy tính, và chúng sử dụng nhiều hệ
điều hành khác nhau.Thông tin trên Internet gồm đủ loại từ thư điện tử (Email), các File đồ
hoạ đến Video và còn nhiều thông tin khác được cung cấp bởi những người sử dụng Internet.
Những máy chủ (Host) mạnh thường sử dụng những hệ điều hành đa nhiệm, ví dụ như
UNIX, để người sử dụng kết nối vào. Những máy chủ được định vị tại các điểm như thư viện,
các trường đại học, các tổ chức, các đại lý, các công ty trên toàn thế giới. Những máy chủ này
được kết nối với nhau qua đường điện thoại và chỉ mất khoảng 640/1000 giây để bắt đầu
nhận thông báo từ Bắc Mỹ tới Nam cực.

1.1.2.1 Các dịch vụ mức ứng dụng trên Internet.
- Thư điện tử (Electronic mail) Cho phép người dùng ngồi trước máy tính tại nhà mình gửi
E-mail tới bất cứ ai ở đâu trên thế giới nếu họ có địa chỉ E-mail. Họ có thể tham gia các
nhóm thảo luận (Discussion group) về những đề tài khác nhau hay bắt đầu một nhóm mới
về những chủ đề mà họ ưa thích.
- Truyền file (File Transfer) Nếu cần một chương trình phần mềm mới như các tiện ích nén

file, các chương trình diệt virus, một phần mềm trò chơi, hình ảnh hay âm thanh, người
dùng có thể tải xuống bất cứ lúc nào với File Transfer.
- Truy nhập từ xa (Remote login) Có lẽ điều thú vị nhất trong các ứng dụng của Internet là
Remote login, nó cho phép người dùng kết nối vào một máy tính ở xa như một trạm cuối
để sử dụng máy tính đó.

1.1.2.2 Dịch vụ mức mạng của Internet.
Một lập trình viên viết chương trình ứng dụng trên Internet cần có một cái nhìn khác với
người chỉ đơn giản sử dụng dịch vụ Internet. Ở tầng mạng, Internet cung cấp 2 kiểu dịch vụ
mà các ứng dụng của Internet thường dùng đó
là:
5

- Dịch vụ truyền không kết nối (Connectionless Paket Delivery Service) là một phương thức
truyền dữ liệu mà các mạng chuyển mạch gói cung cấp. Điều này chỉ đơn giản là mạng
Internet chuyển các gói tin từ máy này sang máy khác dựa vào thông tin địa chỉ của gói
đến đích của nó. Việc chia nhỏ gói tin truyền này có một ưu điểm là nếu một đường đi bị
bận hoặc bị đứt, thì các gói có thể được truyền theo một đường khác.
- Dịch vụ truyền tin cậy (Reliable Stream Transport Service) Phần lớn các ứng dụng đòi hỏi
nhiều dịch vụ hơn chỉ truyền thông không kết nối bởi vì chúng cần tự động sửa lỗi, kiểm
tra tính toàn vẹn của thông tin truyền đi trên mạng.
1.1.3 Giao thức truyền thông và mô hình tham chiếu OSI
1.1.3.1 Giao thức truyền thông.
Các máy tính trên mạng có thể trao đổi thông tin với nhau thông qua một bộ những phần
mềm cùng làm việc theo một chuẩn nào đó. Giao thức truyền thông (Protocol) là tập hợp các
quy tắc quy định phương thức truyền nhận thông tin giữa các máy tính trên mạng.
Các mạng máy tính hiện đại được thiết kế bằng cách phân chia cấu trúc ở mức độ cao
nhằm làm giảm sự phức tạp khi thiết kế. Các giao thức mạng thường được chia làm các tầng
(Layer), mỗi tầng được xây để dựng dựa trên dịch vụ của tầng dưới nó và cung cấp dịch vụ
cho tầng cao hơn.


1.1.3.2 Mô hình tham chiếu OSI (Open Systems Interconect Referent model)
Mô hình mạng máy tính do tổ chức tiêu chuẩn hoá quốc tế (International Standard
Organization - ISO) đưa ra năm 1983 được gọi là mô hình tham chiếu các hệ thống mở (Open
Systems Interconect referent model - OSI). Mô hình tham chiếu OSI chứa 7 tầng mô tả chức
năng của giao thức truyền thông. Mỗi tầng của mô hình OSI miêu tả một chức năng được thực
hiện khi dữ liệu di chuyển giữa các ứng dụng giữa các mạng.


Hình 1-1-3-2. Mô hình tham chiếu OSI

Các lớp giao thức được xếp chồng lớp nọ trên lớp kia. Chính sự xuất hiện của nó, cấu trúc
thường được gọi là Stack hoặc giao thức xếp chồng.
Hai hệ thống khác nhau có thể truyền thông với nhau nếu chúng bảo đảm những nguyên
tắc chung (cài đặt cùng một giao thức truyền thông). Các chức năng được tổ chức thành một
tập các tầng đồng mức cung cấp chức năng như nhau. Các tầng đồng mức phải sử dụng một
giao thức chung.
6

Một tầng không định nghĩa một giao thức đơn, nó định nghĩa một chức năng truyền
thông có thể được thi hành bởi một số giao thức. Do vậy, mỗi tầng có thể chứa nhiều giao
thức, mỗi giao thức cung cấp một dịch vụ phù hợp cho chức năng của tầng. Ví dụ cả giao thức
truyền file (File Transfer Protocol - FTP) và giao thức thư điện tử (Simple Mail Transfer
Protocol - SMTP) đều cung cấp dịch vụ cho người dùng và cả hai đều thuộc tầng ứng dụng.
Mỗi mức ngang hàng giao thức truyền thông (sự bổ xung của các giao thức cùng mức tương
đương trên hệ thống khác). Mỗi mức phải được chuẩn hoá để giao tiếp với mức tương đương
với nó. Trên lý thuyết, giao thức chỉ biết đến những gì liên quan tới lớp của nó mà không quan
tâm tới mức trên hoặc dưới của nó. Tuy nhiên phải có sự thoả thuận để chuyển dữ liệu giữa
các tầng trên một máy tính, bởi mỗi tầng lại liên quan tới việc gửi dữ liệu từ ứng dụng tới một
ứng dụng tương đương trên một máy khác. Tầng cao hơn dựa vào tầng thấp hơn để chuyển

dữ liệu qua mạng phía dưới. Dữ liệu chuyển xuống ngăn xếp từ tầng này xuống tầng thấp hơn
cho tới khi được truyền qua mạng nhờ giao thức của tầng vật lý. Ở đầu nhận, dữ liệu đi lên
ngăn xếp tới ứng dụng nhận. Những tầng riêng lẻ không cần biết các tầng trên và dưới nó xử
lý ra sao, nó chỉ cần biết cách chuyển nhận thông tin từ các tầng đó. Sự cô lập các hàm truyền
thông trên các tầng khác nhau giảm thiểu sự tích hợp công nghệ của đầu vào mỗi bộ giao
thức. Các ứng dụng mới có thể thêm vào mà không cần thay đổi tầng vật lý của mạng, phần
cứng có thể được bổ sung mà không cần viết lại các phần mềm ứng dụng.

a) Tầng vật lý (Physical layer).
- Tầng vật lý liên quan tới việc truyền dòng bit giữa các máy bằng kênh truyền thông vật lý,
ở đây, cấu trúc của dữ liệu không được quan tâm đến.
- Việc thiết kế tầng vật lý cần quan tâm đến các vấn đề về ghép nối cơ khí, điện tử, thủ tục
và môi trường truyền tin bên dưới nó, ví dụ mức điện áp tương ứng với bit 0 - 1, thời gian
tồn tại của xung

b) Tầng liên kết giữ liệu (Data link layer).
- Liên kết, thiết lập, duy trì, huỷ bỏ các liên kết dữ liệu là nhiệm vụ của tầng liên kết dữ liệu.
- Ngoài ra tầng liên kết dữ liệu còn kiểm soát lỗi đường truyền, thông lượng. Tầng này thực
hiện việc đóng gói thông tin gửi thành các frame, gửi các frame một cách tuần tự đi trên
mạng, xử lý các thông báo xác nhận (Acknowledgement frame) do bên nhận gửi về. Xác
định ranh giới giữa các frame bằng cách ghi một số byte đặc biệt vào đầu và cuối frame.
Giải quyết vấn đề thông lượng truyền giữa bên gửi và bên nhận (Vấn đề này có thể được
giải quyết bởi một số lớp trên).

c) Tầng mạng (Network layer).
- Vấn đề chủ chốt của tầng mạng là routing (dẫn đường), định rõ các gói tin (packet) được
truyền theo những con đường nào từ nguồn đến đích. Các con đường này có thể cố định,
ít bị thay đổi, được thiết lập khi bắt đầu liên kết hay động (dynamic) thay đổi tuỳ theo
trạng thái tải của mạng.
- Nếu có nhiều gói tin truyền trên mạng có thể xảy ra tình trạng tắc nghẽn, tầng mạng phải

giải quyết vấn đề này.
- Thực hiện chức năng giao tiếp với các mạng bao gồm việc đánh lại địa chỉ, cắt hợp gói tin
cho phù hợp với các mạng.
Ngoài ra tầng mạng còn thực hiện một số chức năng kế toán, ví dụ, một số Firewall
(Packet Filtering) được cài đặt trên tầng này để thống kê số lượng các gói tin truyền qua mạng
hay ngăn cấm hoặc cho phép các gói tin của giao thức nào đó.

d) Tầng giao vận (Transport layer).
- Kiểm soát việc truyền tin từ nút tới nút (end-to-end): Bắt đầu từ tầng này, các thực thể đã
có thể nói chuyện một cách logic với nhau.
- Thực hiên việc ghép kênh và phân kênh: Mỗi ứng dụng có thể gửi dữ liệu đi theo nhiều
con đường, một đường truyền lại có thể được nhiều ứng dụng sử dụng, phân kênh/hợp
kênh giải quyết vấn đề phân chia dữ liệu cho các ứng dụng.
7

- Khắc phục sai sót trong quá trình truyền tin: Việc khắc phục sai sót được thực hiện trên
nhiều tầng khác nhau, nhưng hiệu quả nhất là ở các tầng cao, việc khắc phục sai sót thực
hiện ở tầng giao vận là hợp lý nhất.

e) Tầng phiên (Session layer).
- Tầng này cho phép người sử dụng trên các máy khác nhau thiết lập, duy trì, huỷ bỏ, đồng
bộ phiên truyền thông giữa họ. Cung cấp một số dịch vụ hữu ích cho người sử dụng như
cho phép người dùng logon vào hệ thống chia sẻ thời gian, truyền tệp giữa các máy tính.
- Quản lý thẻ bài (Token): cơ chế thẻ bài được tầng phiên cung cấp để tránh hiện tượng
tranh chấp đường truyền trên mạng.
- Thực hiện đồng bộ (Synchronization): thực hiện đối với những dữ liệu lớn bằng cách thêm
vào các thông tin kiểm tra, sửa lỗi.

f) Tầng trình diễn (Presentation layer).
- Giải quyết vấn đề liên quan tới cú pháp và ngữ nghĩa của thông tin như chuyển đổi thông

tin theo một chuẩn nào đó được cả hai bên sử dụng (mã ASCII - EDBCDIC).
- Nén/giãn dữ liệu để giảm số lượng bit truyền trên mạng.
- Mã hoá dữ liệu để thực hiện quyền truy cập.

g) Tầng ứng dụng (Application layer).
- Tầng ứng dụng cung cấp giao diện sử dụng cho người dùng và môi trường truyền tin.
- Thực hiện chức năng chuyển file trong đó có giải quyết vấn đề không tương thích như
cách đặt tên file hay các mã điều khiển trong một tệp văn bản
- Cung cấp các dịch vụ Electronic mail, Remote login, Directory lookup

1.2 Bộ giao thức TCP/IP.
1.2.1 Giao thức chuyển địa chỉ ARP (Address Resolution Protocol) và giao thức chuyển
ngược địa chỉ RARP (Reverse Address Resolution Protocol).
Mọi máy tính cùng nằm trên một mạng có cùng một net id và các máy tính cùng trên một
mạng vật lý có thể gửi frame vật lý trực tiếp cho nhau nên việc truyền thông tin giữa hai máy
tính trong cùng một mạng vật lý không cần sử dụng Gateway. Việc dẫn đường trực tiếp chỉ sử
dụng phần địa chỉ máy host id trong địa chỉ IP. Trạm gửi chỉ việc kết khối dữ liệu vào frame,
chuyển địa chỉ IP của trạm đích thành địa chỉ vật lý và gửi trực tiếp frame tới máy nhận.
Một cơ chế sử dụng để chuyển địa chỉ IP thành địa chỉ vật lý là ARP (Address
Resolusion Protocol). Khi hai máy tính cùng nối vào một mạng vật lý, chúng biết được
địa chỉ IP của nhau nhưng để truyền thông giữa hai máy, chúng phải biết được địa chỉ
vật lý của nhau. ARP giải quyết vấn đề chuyển từ địa chỉ IP 32 bit sang địa chỉ Ethernet
48 bit. Người ta sử dụng hai cơ chế chuyển địa chỉ là:
+ Chuyển giao trực tiếp.
+ Chuyển gio gián tiếp.
Chuyển giao trực tiếp:
Địa chỉ vật lý là một hàm của địa chỉ IP, ví dụ sử dụng trên mạng Token ring proNET-
10 là mạng cho phép đặt địa chỉ IP và địa chỉ vật lý tùy ý. Người ta có thể đặt địa chỉ IP là
192.5.48.3 và địa chỉ vật lý là 3, khi đó ta có PA=f(IA). Với PA là địa chỉ vật lý, IA là địa chỉ
Internet và f là hàm chuyển đổi.

Chuyển giao gián tiếp
Chuyển giao địa chỉ động được thực hiện bằng cách máy tính gửi thông tin gửi một
thông báo tới toàn bộ các máy tính trên mạng, trong thông báo đó có chứa địa chỉ IP của
máy tính nó cần liên lạc, mọi máy sẽ nhận được thông báo và máy nào thấy địa chỉ IP của
mình thì trả lại một thông báo chứa địa chỉ vật lý, khi đó, hai máy tính có thể “nói
chuyện” với nhau.
8



1.2.2 Giao thức điều khiển truyền tin (Internet Control Message Protocol - ICMP)
Việc dẫn đường qua các mạng sử dụng giao thức điều khiển truyền tin (Internet Control
Message Protocol - ICMP) được định nghĩa trong RFC 792. ICMP sử dụng gói tin IP để chuyển
thông báo của nó. ICMP gửi các thông báo làm các công việc: Điều khiển, thông báo lỗi và
chức năng thông tin cho TCP/IP… Thông thường ICMP được gửi khi một gói tin không thể đi
tới đích, một gateway không còn đủ chỗ nhớ để nhận thêm gói tin hay một gateway hướng
dẫn máy tính sử dụng gateway khác để truyền thông tin theo một con đường tối ưu hơn.

1.2.3 Giao thức không kết nối (User Datagram Protocol – UDP).
UDP cho phép chương trình ứng dụng truy cập trực tiếp đến gói tin của dịch vụ chuyển
giao giống như dịch vụ mà giao thức IP cung cấp. Nó cho phép ứng dụng trao đổi thông tin
qua mạng với ít thông tin điều khiển nhất. UDP là giao thức không kết nối, kém tin cậy vì nó
không có cơ chế kiểm tra tính đúng đắn của dữ liệu truyền.

1.2.4 Giao thức điều khiển truyền tin (Transmission Control Protocol - TCP).
Một số ứng dụng đòi hỏi giao thức giao vận cung cấp dịch vụ chuyển giao thông tin tin cậy
sử dụng TCP bởi nó cung cấp dịch vụ kiểm tra đúng đắn và dữ liệu được truyền với một sự
phối hợp thích hợp. Một số đặc điểm của dịch vụ tin cậy mà TCP cung cấp là:
- Hướng dòng (Stream Orientation): TCP coi dữ liệu nó gửi đi là một dòng byte không phải
là gói tin. Do đó, TCP đảm bảo số thứ tự của các byte gửi nhận. TCP chuẩn không bắt hệ

thống phải sử dụng một số đặc biệt nào để đánh số dòng byte, mỗi hệ thống tự chọn một
số mà nó sẽ dùng làm điểm bắt đầu. Mỗi trạm cuối phải biết số thứ tự mà trạm kia dùng.
- Chuyển giao bộ đệm (Buffered Transfer): Để giảm số lượng truyền thông, giao thức cố
gắng sử dụng số lượng tối thiểu các segment để truyền tải thông tin, do vậy, giao thức sử
dụng tối đa độ dài có thể của segment.
- Kết nối hai chiều (Full Duplex Connection): TCP/IP cung cấp kết nối cho cả hai đầu của liên
kết. Điều này có nghĩa là tầng phía dưới cung cấp khả năng gửi trả thông báo từ trạm đích
trở lại trạm nguồn. TCP là giao thức hướng kết nối. Nó thiết lập quan hệ logic giữa 2 trạm
tham gia liên kết.
1.2.5 Giao thức truyền tệp.
Đây là một phương pháp sao chép tệp từ một máy tính ở xa về máy tính của người dùng
ta có thể ngồi tại máy tính của mình truyền hoặc lấy File trên một máy chủ nào đó


9

Chương 2. Giao thức Telnet.

2.1 Giao thức Telnet.
Một trong những kỹ thuật chủ yếu sử dụng trên mạng máy tính là khả năng truy cập hệ
thống từ xa. Đó là việc người sử dụng có thể thực hiện được một ứng dụng trên một máy tính
từ xa. Trong các giao thức cho phép truy cập từ xa có hiệu quả, đáng chú ý nhất là giao thức
Telnet. Bộ giao thức TCP/IP bao gồm một giao thức trạm làm việc ở xa đơn giản, gọi là Telnet,
để cho phép người sử dụng login vào máy tính thông qua Internet. Telnet thiết lập một kết
nối TCP, sau đó gửi các tín hiệu của người sử dụng đến trực tiếp máy tính ở xa y như chúng
được nhập vào bàn phím trực tiếp với máy tính ở xa. Telnet cũng chuyển tải dữ liệu xuất từ
máy tính ở xa ngược trở về màn hình của người sử dụng. Dịch vụ này được gọi là “trong suốt”
(transparent) vì nó cho ta cảm giác như là bàn phím và màn hình của người sử dụng nối trực
tiếp vào máy tính ở xa.
Thông thường, phần mềm Telnet ở Client cho phép người sử dụng xác định một máy ở xa

bằng cách chỉ ra tên miền hoặc địa chỉ IP của nó. Giao thức Telnet cung cấp một giao diện
chuẩn, thông qua một chương trình ở một máy (Telnet Client) có thể khai thác tài nguyên ở
một máy khác (Telnet Server). Ví dụ, một người sử dụng máy trạm của mạng LAN có thể kết
nối với một máy trong mạng như thể là một máy trạm kết nối trực tiếp với máy đó.


Hình 2-1. Sơ đồ làm việc của giao thức Telnet

2.2 Các dịch vụ của giao thức Telnet.
Telnet cung cấp ba dịch vụ cơ bản. Trước hết, nó định nghĩa một trạm mạng ảo để cung
cấp một giao tiếp chuẩn cho các hệ ở xa. Chương trình Client không phải hiểu chi tiết tất cả
các hệ ở xa; chúng được xây dựng để sử dụng giao tiếp chuẩn. Thứ hai, Telnet bao gồm một
cơ chế cho phép Client và Server thương thảo các lựa chọn, nó cung cấp một tập hợp các lựa
chọn chuẩn. Cuối cùng, trong Telnet thì hai đầu của kết nối là đối xứng. Cụ thể, Telnet không
bắt buộc dữ liệu nhập của Client phải đến từ bàn phím, nó cũng không bắt buộc Client phải
thể hiện dữ liệu xuất ra màn hình. Như thế, Telnet cho phép một chương trình bất kỳ có thể
đóng vai trò Client và hai đầu của kết nối có thể thương thảo về các lựa chọn.

10


Hình 2-2. Mô hình đối xứng của Telnet.

Qua hình này chúng ta thấy, khi người sử dụng gọi Telnet, thì một chương trình ứng
dụng trên máy của người sử dụng trở thành Client. Sau đó, Client này thiết lập kết nối TCP
đến Server mà chúng sẽ thông tin liên lạc. Một khi kết nối đã được thiết lập, Client sẽ nhận
các ký tự bàn phím của người sử dụng và gửi chúng đến Server , trong khi đó nó cũng đồng
thời nhận các ký tự mà Server gửi ngược trở về và thể hiện nó lên màn hình của người sử
dụng. Server phải nhận một kết nối TCP từ Client và rồi chuyển dữ liệu đi giữa kết nối TCP này
và hệ điều hành cục bộ.Trong thực tế, Server phức tạp hơn nhiều so với những gì trình bày

trong hình này bởi vì nó phải xử lý đồng thời nhiều kết nối. Thông thường, một tiến trình
Server chủ đợi các kết nối mới và tạo ra Server phụ mới để xử lý mỗi kết nối. Như thế “Telnet
Server” như trong hình thể hiện cho Server phụ để xử lý một kết nối cụ thể. Hình này không
trình bày Server chủ - để lắng nghe các yêu cầu mới, nó cũng không trình bày những Server
phụ để xử lý những kết nối khác.
Chúng ta sử dụng khái niệm trạm làm việc ảo để mô tả đầu vào của hệ điều hành, nơi
cho phép một chương trình chạy, giống như Telnet Server, truyền các ký tự dến hệ điều hành
giống như là chúng được nhập từ bàn phím. Nếu hệ thống trạm làm việc ảo, thì Telnet Server
có thể được cài đặt với các chương trình ứng dụng. Mỗi Server phụ kết nối một dòng TCP từ
một Client đến một trạm làm việc ảo.
Việc bố trí để Telnet Server là một chương trình mức ứng dụng có cả ưu điểm lẫn
khuyết điểm. Ưu điểm lớn nhất là nó làm cho việc sửa đổi và kiểm soát của Server dễ hơn so
với trường hợp chúng được nhúng vào trong hệ điều hành. Khuyết điểm hiển nhiên nhất là sự
kém hiệu quả. Mỗi ký tự nhập từ bàn phím của người sử dụng sẽ di chuyển qua hệ điều hành
để đến chương trình Client, từ chương trình Client ngược trở về hệ điều hành và đi qua
Internet để đến được máy chủ. Sau khi đến được máy chủ, dữ liệu lại phải di chuyển ngược
lên hệ điều hành của Server để đến chương trình ứng dụng của Server, và từ chương trình
ứng dụng Server ngược trở về hệ điều hành của Server tại điểm vào của trạm làm việc ảo.
Cuối cùng, hệ điều hành ở xa sẽ chuyển phát ký tự này đến chương trình ứng dụng mà người
sử dụng đang chạy. Trong khi đó, kết xuất di chuyển ngược trở về từ Server đến Client theo
cùng một con đường như vậy.

2.3 Hoạt động của Telnet trong những hệ thống không đồng nhất.

Để cho Telnet hoạt động được trong càng nhiều hệ khác nhau càng tốt nó phải chấp
nhận được các chi tiết của nhiều hệ điều hành khác nhau. Ví dụ một số hệ yêu cầu các dòng
văn bản được kết thúc bởi ký tự ASCII carriage control (CR), những hệ khác lại yêu cầu ký tự
ASCII linefeed (LF). Lại có những hệ yêu cầu chuỗi hai ký tự CR-LF. Thêm vào đó, hầu hết các
hệ tương tác cun cấp phương tiện để người sử dụng đưa vào từ bàn phím ký hiệu ngắt một
chươn trình đang chạy. Tuy nhiên, ký hiệu đặc biệt được sử dụng để ngắt một chươn trình lại

khác nhau tùy vào trong hệ thống (ví dụ, một số hệ sử dụng Control – C có hệ lại sử dụng
ESCAPE). Để chấp nhận được nhiều hệ khác nhau, Telnet định nghĩa cách dữ liệu và các lệnh
được gửi qua Internet. Định nghĩa này được gọi là Trạm ảo (Network Virtual Terminal). Trong
11

hình dưới, phần mềm Client chuyển đổi các ký hiệu các bàn phím và chuỗi lệnh từ trạm của
người sử dụng thành dạng NVT và gửi chúng tới Server. Phần mềm Server lại chuyển đổi dữ
liệu và các lệnh gửi đến từ dạng NVT thành dạng mà hệ ở xa yêu cầu. Đối với dữ liệu trả về,
Server chuyển đổi từ dạng của hệ ở xa thành NVT và phần mềm Client lại chuyển từ dạng NVT
thành dạng của máy cục bộ.


Hình 2-3. Sơ đồ kết nối TCP trên Internet.

2.3.1 Trạm ảo (Network Virtual Terminal-NVT).
NVT gồm một màn hình và một bàn phím. Bàn phím thực hiện việc gửi dữ liệu thông qua
kết nối Telnet. Màn hình nhận dữ liệu gửi về. Đặc trưng cơ bản của mỗi NVT, nếu nó không bị
thay đổi bởi những thoả thuận chung là:
- Biểu diễn dữ liệu là tập hợp ký tự ASCII chuẩn 7 bit hoặc là tập hợp ký tự 8 bit.
- NVT là một thiết bị xử lý đồng thời.
- NVT cung cấp một bộ phận báo hiệu lại (Local echo function).
Định nghĩa của dạng NVT tương đối đơn giản. Mọi thông tin liên lạc đều sử dụng các byte
- 8bit. Tập hợp ký tự ASCII chuẩn gồm 95 ký tự in được và 33 mã điều khiển. Chuẩn NVT định
nghĩa ý nghĩa của các ký tự điều khiển như sau:

Command
ASCII
Action
Null (NUL)
0

No operation
Bell (BEL)
7
Sound audible/visible signal(no motion)
Backspace(BS)
8
Move left one character position
Horizontal (HT)
9
Move right to the next horizontal tab stop
Line Feed (LF)
10
Move down(vertically) to the next line
Vertical Tab(VT)
11
Move down to the next vertical tab stop
Form Feed (FF)
12
Move to the top of the next page
Carridge Return (CR)
13
Move to the left margin on the current line
Other control
-
No operation (has no effect on output)
Hình 2-3-1. Các ký tự điểu khiển NVT.

2.3.2 Các lựa chọn Telnet.
Telnet bao gồm một cơ chế cho phép Client và Server thương thảo các lựa chọn, nó cung
cấp một tập hợp lựa chọn chuẩn (ví dụ, một trong những lựa chọn này là để điều khiển việc

truyền dữ liệu qua kết nối sẽ sử dụng tập hợp ký tự ASCII chuẩn 7 bit hoặc là tập hợp kýtự 8
bit). Trong Telnet, ta có thể thương thảo các chọn lựa, điều này giúp cho Client và Server có
thể cấu hình lại kết nối của chúng. Ví dụ, thông thường dòng dữ liệu chuyển đi dữ liệu 7 bit và
sử dụng các octet có bit thứ 8 được lập để gửi đi thông tin điều khiển như lệnh ngắt tiến
trình. Tuy nhiên, Telnet cũng cung cấp một lựa chọn để cho phép Client và Server gửi đi dữ
liệu 8 bit. Để thực hiện quá trình đó, Client và Server phải thương thảo với nhau và cả hai
cùng phải thống nhất truyền dữ liệu 8 bit trước khi bắt đầu việc truyền dữ liệu. Telnet cung
cấp rất nhiều lựa chọn cho người sử dụng. Ví dụ, giao thức được thiết kế trong môi trường
12

một chiều (half-duplex), là nơi hệ thống cần thông báo cho đầu kia “bắt đầu tiến hành” trước
khi có thể gửi dữ liệu. Một trong lựa chọn là điều khiển hoạt động của Telnet trong chế độ
halfduplex hoặc full-duplex. Có lựa chọn khác cho phép Server trên máy ở xa xác định kiểu
trạm làm việc của người sử dụng.

Name
Code
RFC
Meaning
Transmit Binary
0
856
Change transmision to 8 bit binary
Echo
1
857
Allow one side to echo data it receives
Suppress - GA
3
858

Suppress Go-ahead signal after data
Status
5
859
Request for status of a Telnet option from remote site
Timing-Mark
6
860
Request timing mark be inserted in return stream to
Synchronize two ends of a connection
Terminal-Type
24
884
Exchange information about the make and model of a
Terminal being used
End-of-Record
25
885
Terminate data sent with EOR code
Linemode
34
1116
Use local editing and send complete lines instead of
Individual characters
Hình 2-3-2. Một số lựa chọn thông dụng của Telnet

Việc thương thảo các lựa chọn trong Telnet.
Trong một số lựa chọn cụ thể, Server thường là phía khởi động việc thương thảo. Vì thế,
các giao thức được thiết kế sao cho đầu nào cũng có thể đưa ra yêu cầu. Giao thức này được
gọi là đối xứng với tiến trình chọn lựa. Nơi nhận có thể đáp ứng lại yêu cầu bằng việc chấp

nhận hoặc từ chối. Trong thuật ngữ của Telnet, yêu cầu là WILL X, có nghĩa là “bạn đồng ý để
tôi sử dụng lựa chọn X” và lời đáp có thể là DO X hay DON’T, có nghĩa là “tôi đồng ý để bạn sử
dụng lựa chọn X” hay là “tôi không đồng ý để bạn sử dụng lựa chọn X”.
Như vậy. chúng ta có thể tóm tắt như sau: Telnet sử dụng một cơ chế thương thảo chọn
lựa đối xứng để cho phép Client và Server cấu hình lại các tham số điều khiển việc tương tác
giứa chúng. Bới vì, tất cả các phần mềm Telnet hiểu giao thức cơ bản của NVT, Client và
Server có thể hợp tác với nhau ngay cả khi một bên hiểu được sự lựa chọn còn bên kia thì
không.

2.3.3 Cấu trúc lệnh Telnet
Việc giao tiếp giữa Client và Server được thực hiện bởi các lệnh bên trong mà người sử
dụng không thể truy cập. Tất cả các lệnh Telnet bao gồm 2-3 byte liên tiếp, tuỳ theo loại lệnh.
Telnet NVT chấp nhận các chức năng điều khiển bằng việc định nghĩa cách chúng được
chuyển từ Client đến Server. Về mặt khái niệm chúng ta xem như NVT nhập dữ liệu từ bàn
phím, có thể phát sinh nhiều hơn 128 ký tự. Giả định bàn phím của người sử dụng có những
phím ảo tương ứng với những chức năng được sử dụng cho việc điều khiển.
Trong thực tế, hầu hết các bàn phím không cung cấp thêm các phím để thực hiện các lệnh.
Thay vào đó, từng hệ điều hành hoặc trình biên dịch lệnh có những cách khác nhau để tạo ra
chúng. Một trong những kỹ thuật thông dụng nhất : liên kết từng ký tự ASCII với chức năng
điều khiển để khi người sử dụng gõ một phím, hệ điều hành sẽ thực hiện thao tác thích hợp
thay vì nhận ký tự đó làm nhập dữ liệu. NVT được thiết kế để các lệnh tách rời khỏi tập ký tự
ASCII thông thường, vì hai lý do. Trước hết, việc định nghĩa các chức năng điều khiển riêng
biệt làm cho Telnet làm việc uyển chuyển hơn. Nó có thể truyền tất cả ký tự ACSII giữa Client
và Server, cũng như các chức năng điều khiển có thể có. Thứ hai, bằng việc tách rời các tín
hiệu khỏi dữ liệu thông thường, NVT cho phép Client xác định các tín hiệu một cách chính xác
rằng ký tự nhập vào là dữ liệu hay chức năng điều khiển. Để gửi chức năng điều khiển qua kết
nối TCP, Telnet mã hoá chúng theo kiểu chuỗi escape. Chuỗi escape sử dụng octet ngược để
chỉ rằng tiếp theo sau là các octet mã điều khiển. Trong Telnet, octet ngược để bắt đầu một
chuỗi escape được gọi là octet IAC(interrupt as command)


13



Command
Code
Meaning
SB
249
Start of option sub-negotiation
SE
240
End of option sub-negotiation
WILL
251
Agreement to perform specified option
WON’T
252
Refusal to perform specified option
DO
253
Approval to allow specified option
DON’T
254
Denial of request to perform specified option
NOP
241
No operation
EOR
239

End of record
Hình 2-3-3. Cấu trúc lệnh Telnet.

Để có thể thực hiện việc thương thảo các lựa chọn Telnet sử dụng các lệnh bên trong. Các
lựa chọn có thể được thương thảo bằng các mã lệnh: WILL, DO, DON’T, WON’T. Ngoài ra, một
số lựa chọn còn có các lựa chọn phụ: nếu cả hai bên đồng ý với lựa chọn, chúng sử dụng lệnh
SB và SE để quản lý lựa chọn phụ. Một ví dụ đơn giản, việc thương thảo các lựa chọn được
thực hiện như sau:

Send
Reply
Meaning
DO transmit binary
WILL transmit binary

DO window size
WILL window size
Can we negotiate window size?
SB window size

Specify window size
DO terminal type
WILL terminal type
Can we negotiate terminal type?
SB terminal type SE



SB terminal type
IBM=3278-2 SE

My terminal is a 3278-2
DO echo
WON’T echo


Một số lệnh cơ bản của Telnet.
Mục đích chính của giao thức Telnet là cung cấp giao diện chuẩn cho các host trên mạng.
Telnet định nghĩa một biểu diễn chuẩn qua các chức năng để cho phép kết nối được bắt đầu:
IP
Interrupt Process (terminate running program)
AO
Abort Output (discard any buffered output)
AYT
Are You There(test if server is respondùng)
EC
Earse Character (delete the previous character)
EL
Earse Line (delete the entire current line)
SYNCH
Synchronize (clear data path until TCP urgent data point)
14



























































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


Mobile Agent

15

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

1.1 Giới thiệu.
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)
Trên mạng Internet, một agent (có khi được gọi là 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à 1 bot ( viết tắt của
robot ).
Một ví dụ về agent là chương trình Infogate. Chương trình này có chức năng 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.
- 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
- 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.
- 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ụ
- 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.
- 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.
- 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.
- Tính di độn (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.

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.

 Phân loại theo tính năng.
- Agent 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
- Agent động.
+ 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 đến 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.
 Phân loại theo mục đích.
16


Hình 1-3. Phân loại Agent theo mục đích

- 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 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ụ các chương trình giả lập hoặc tích
hợp vào thiết kế của một ứng dụng phần cứng mới như đồ gia dụng.

- Interface agent.
Interface agent là một chương trình có thể ảnh hưởng đến giao diện 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 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ể sự thay đổi đó không phải diễn ra ngay ứng với ứng

dụ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 đó trước khi quyết định thực hiện một hành động.

- Smart/Intelligents
Có đầy đủ cả 3 mục đích: giao tác , tự động và dễ thích nghi
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.
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.











17

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.
Theo truyền thống, một ứng dụng phân tán có cấu trúc xây dựng trên mô hình client-
server sẽ thực hiện việc giao tiếp thông qua cơ chế truyền thông điệp hoặc các lời gọi hàm
từ xa (RPCs). Các mô hình giao tiếp này thường phải đồng bộ, nghĩa là phía client tạm
ngưng hoạt động của mình trong thời gian gởi yêu cầu đến server và đợi đến khi nhận được
kết quả trả về từ server. Một kiến trúc tiến bộ hơn là Remote Evaluation (REV) do Stamos
và Gifford [STA-90] đưa ra vào năm 1990. Trong mô hình REV, thay vì yêu cầu thực hiện
các hàm từ xa thì client chỉ việc gởi mã nguồn các hàm của nó đến server và yêu cầu server
thực hiện rồi trả về kết quả. Một số hệ thống gần đây cũng đã giới thiệu khái niệm thông
điệp chủ động (active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của
chương trình để thực thi tại những vị trí này. Mobile agents là mô hình tiến hóa tiên tiến
nhất so với các mô hình trước đó. Mobile agent là danh từ ghép giữa agent (tác tử)
và mobile (di động).
Đị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.
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.
Khi di chuyển, các tác tử di động đóng gói mã nguồn, dữ liệu và cả trạng thái thi hành,
nhờ vậy tác tử di động có thể dừng việc thi hành đang thực hiện tại máy này, di chuyển sang
máy khác và khôi phục lại sự thi hành tại máy đích. Tác tử di động chính là một dạng của mã
di động (mã di động là những chương trình chuyển mã đến client và thực thi ở đó).
Hình dưới cho thấy sự khác biệt của Mobile agents so với RPC và REV.


18

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 Vòng đời của 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-3-1. Vòng đời của một tác tử di động

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

2.3.3 Kiến trúc hệ thống Mobile Agent.


Hình 2-3-3. Kiến trúc của một hệ thống Mobile Agent.

2.3.4 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 Lợi ích của Mobile Agent.
Những lợi ích mobile agent mang lại là:
19

 Giảm tải mạng.
Kỹ thuật mobile agents cho phép người dùng đóng gói cuộc trao đổi, 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ư thế sẽ góp phần làm giảm những
dòng dữ liệu thô trên mạng và như thế, tải mạng sẽ giảm đáng kể. Phương châm thực hiện
của kỹ thuật mobile agents là: mang xử lý đến nơi chứa dữ liệu hơn là mang dữ liệu về chỗ
xử lý.

 Khắc phục sự trễ mạng.
Việc điều khiển các hệ thống với quy mô lớn thông qua mạng sẽ phải chấp nhận một sự
trễ hạn nhất định. Nhưng điều đó lại không được phép xảy ra trong các hệ thống thời gian
thực như điều khiển robot, quy trình sản xuất Khi đó, giải pháp mobile agents tỏ ra hữu
ích trong việc khắc phục độ trễ nhờ vào việc các agent có thể được gửi đi từ mộ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.

 Đó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ởi 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 bắt đầu trở nên cồng kềnh, nặng nề và
trở thành vấn đề nan giải. Riêng với giải pháp mobile agents, các agents 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.


 Thi hành không đồng bộ và tự trị
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ố định 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 agents giải quyết vấn đề này bằng cách nhúng tác vụ cần thực hiện vào 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 trở lại để đón agent về.

 Thích ứng nhanh.
Các agent có khả năng cảm nhận những thay đổi của môi trường thi hành và tác động trở
lại những thay đổi ấy một cách tự động.

 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 (phần cứng và hệ
điều hành) và tầng vận chuyển, chỉ phụ thuộc vào môi trường thi hành, nên chúng 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 gì lại với
nhau.

 Mạnh mẽ và có khả năng chế ngự lỗi cao.
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 agents giúp cho việc xây dựng hệ thống mạnh mẽ và chịu lỗi cao được dễ dàng hơn.

2.5 Các ứng dụng của Mobile Agent.
Hiện nay, theo các nghiên cứu về agents, chưa có một ứng dụng nào có thể được xem
như là ứng dụng đặc trưng dành cho công nghệ tác tử di động. Tất cả những kết quả đạt
được hiện nay với tác tử di động cũng đều bằng những công nghệ truyền thống. Tuy
nhiên, trong một vài trường hợp, tác tử di động có thể là giải pháp tối ưu. Tác tử di động có
thể được áp dụng trong nhiều lĩnh vực như:

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

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ệ tác tử di động là một giải pháp rất
hấp dẫn cho lĩnh vực này.
 Thu thập thông tin 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 qua đến nhiều nguồn
dữ liệu phân tán, không đồng nhất, việc cử các tác tử di động di chuyển đến các
nguồn tin để khai thác tại chỗ và cuối cùng là quay về với những thông tin cần thiết sẽ cho
phép giảm tải mạng và giải quyết tốt hơn bài toán tương thích
 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 tác tử di động. 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. Những đại diện của loại ứng dụng này Weather Alarm - một chương trình dùng để
dự báo thời tiết trên và JobFinder (findjobs.com) - website việc làm và tuyển dụng. 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 đó.
 Giám sát và phổ biến thông tin.
Các tác tử di động là một 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 tự động cho các nhà sản xuất. Các agent mang các
phần mềm thành phần cũng như 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 cho nhà sản xuất chủ động hơn
trong việc phục vụ khách hàng để bảo đảm chất lượng dịch vụ của mình. Mặc khác, các ứng
dụng thuộc loại 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ý qui trình hoạt động, sản xuất…để giúp người quản trị giám sát các hệ thống con.
 Xử lý song song.
Vì các tác tử di động có thể tạo ra nhiều bản sao của nó trên mạng nên ứng dụng đầy
tiềm năng của tác tử di động là quản trị các tác vụ song song. Một ứng dụng đòi hỏi quá
nhiều tài nguyên bộ xử lý có thể được phân bố cho các tác tử di động 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 rảnh rỗi và cân bằng tải. Hệ tác tử di
động không đồng nhất là một minh họa khai thác ưu điểm này của mô hình tác tử di động.
 Quản trị hệ thống mạng.
Đối với những hệ thống mạng lớn, việc chuẩ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 tác tử di động 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.
 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 tác tử di động 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.

2.6 Một số hệ thống Moblie Agent.
 Aglets.
Aglets được xây dựng và phát triển bởi D. B. Lange và IBM Tokyo Research Laboratory.
Hiện nay, bộ Aglets Software Development Kit (ASDK) do IBM phát triển đã dừng lại ở phiên
bản 1.1 Beta3 trên nền JDK1.1. Phiên bản mới nhất của ASDK là 2.0.2 do SourceForge phát
triển trên nền JDK1.3.
Aglets là những đối tượng Java có thể di chuyển từ host này sang host khác trên môi
trường mạng. Khi aglets di chuyển, nó mang theo mình cả mã chương trình lẫn dữ liệu.
Trong mô hình đối tượng aglets, một mobile agent là một đối tượng di động có luồng
21

kiểm soát riêng của nó, làm việc theo sự kiện và liên lạc với các agent khác bằng cách truyền

thông điệp. Aglets có một cơ chế định danh duy nhất và toàn cục dựa trên URL. Aglets hỗ
trợ cơ chế di động yếu (weak- mobility). Các aglets giao tiếp với nhau một cách đồng nhất,
và độc lập với vị trí lưu trú thông qua đối tượng proxy. Suốt chu kỳ sống, các aglets
sẵn sàng bắt những sự kiện (clone, mobility, persistence) phát sinh trong môi trường
để có phản ứng thích hợp. Agent có thể giao tiếp đồng bộ hoặc không đồng bộ thông qua các
loại thông điệp: synchronous, one-way, hay future reply. Aglets sử dụng ATP (Agent Transfer
Protocol) cho việc di chuyển và giao tiếp. Aglets sử dụng 2 loại mẫu thiết kế chính là chủ-tớ
(Master-Slave) và hành trình (Itinerary) cho việc di chuyển của các agent.
Aglets là một trong những platform được sử dụng nhiều nhất để phát triển các hệ
thống mobile agent. Một số đề án thực hiện với Aglet có thể kể đến là TabiCan
() - chợ điện tử chuyên bán vé máy bay và tour du lịch trọn gói -
Cps720 (Artificial Intelligence Topics with Agent) tại đại học Ryerson University, Mỹ ,
Acme - Hệ thống hỗ trợ Sales Order Processing trong việc mua bán chứng khoán, của Đại
học Loughborough, Anh.
Aglets là một hệ thống Java mobile agent hỗ trợ các khái niệm thi hành tự trị và định tuyến
động trên lộ trình của nó. Có thể xem aglets như là một khái quát hóa và mở rộng của applet
và servlet. Aglet server là chương trình cung cấp một môi trường thi hành và một máy ảo
Java cho aglet hoạt động. Ngoài ra, Aglet server cũng sử dụng một trình quản lý để tiếp nhận
và kiểm soát aglet một cách an toàn.
 Voyager.
Voyager là một môi trường thương mại hỗ trợ phát triển các ứng dụng agent được hãng
Object Space phát triển từ giữa năm 1996. Voyager đã trải qua nhiều lần nâng cấp và thay đổi
từ phiên bản 1.0 cho đến bây giờ là phiên bản 4.5. Tháng 03.2002 sản phẩm Voyager được
nhượng lại cho Recursion Software, một công ty chuyên về các sản phẩm viết trên C++ và
Java để đm bo cho việc phát triển Voyager sau này. Các phiên bản từ 1.0 đến 3.3 Voyager
được phân phối cho các nhà phát triển như một freeware. Hiện tại Voyager đã có phiên bản
4.5 Evaluation hoàn toàn tương thích với JDK1.3, JDK1.2 và JDK1.1. Phiên bản này bao gồm 6
sản phẩm, trong đó sản phẩm chính yếu dùng cho các ứng dụng mobile agent là Voyager ORB
Professional.
Voyager sử dụng ngôn ngữ lập trình Java với cú pháp chuẩn để tạo dựng các đối tượng ở

xa một cách rất dễ dàng, cho phép các đối tượng này trao đổi thông điệp với nhau, và di
chuyển các đối tượng giữa các máy tính có hỗ trợ môi trường Voyager. Voyager hỗ trợ
mạnh về tính di động với khả năng mang toàn bộ mã chương trình và dữ liệu di chuyển
từ máy ảo Java này sang máy ảo Java khác nếu các máy ảo có hỗ trợ Voyager. Trạng thái hoạt
động của agent cũng sẽ được bảo toàn và tiếp tục thực thi tại nơi agent đến.
Một trong những đặc điểm nổi trội khác của Voyager là tính phổ quát. Các chương trình
viết trong Voyager có thể trao đổi thông tin hai chiều với các chương trình viết bằng SOAP,
CORBA, RMI và DCOM. Các dạng thông tin được trao đổi có thể là các lời gọi hàm từ xa, các
dịch vụ đặt tên, dịch vụ thư mục. Voyager có thể được xem là một cửa ngõ, một cầu nối làm
cho các chương trình theo chuẩn khác trở nên liên thông với nhau. Hơn nữa, tất cả các
chương trình và đối tượng có thể được tổ chức thành một không gian chung, nhờ vậy
việc liên lạc sẽ trở thành một–nhiều một cách tự động.
Phiên bản 4.5 của Voyager đã được bổ sung thêm các tính năng rất quan trọng hỗ
trợ cho các chuẩn dịch vụ Web. SOAP và WSDL cũng đã được phát triển trong phiên bản này
giúp cho các nhà phát triển có khả năng triển khai các ứng dụng truy cập tới các dịch vụ
Web từ xa và các chương trình Voyager có thể truy cập nhau thông qua các dịch vụ Web.
Thế mạnh thật sự của Voyager nằm ở sự đơn giản và dễ dùng. Sự “trong suốt” hay
cách mà Voyager che dấu các kỹ thuật lập trình phân tán phức tạp đã làm cho việc xây dựng
các ứng dụng mobile agent trở nên dễ dàng hơn rất nhiều. Việc tích hợp các công nghệ mới và
các chuẩn mới vào cùng một sản phẩm tạo cho Voyager sự hấp dẫn rất riêng biệt.
 Mole.
Mole là hệ thống Mobile Agent được xây dựng với ngôn ngữ Java tại đại học Stuttgart
(CHLB Đức). Phiên bản đầu tiên (Release 1.0) đã hoàn thành vào năm 1995, năm 1997 phiên
22

bản Release 2.0 được hoàn thành, bản Release 3.0 được hoàn tất vào năm 1998 và đề án đã
kết thúc với kết quả là môi trường ổn định để xây dựng ứng dụng theo mô hình agent trên
các hệ phân tán. Được xây dựng trên Java, Mole có khả năng thực thi trên tất cả các môi
trường có hổ trợ JDK1.1.x (Jdk1.1.7 và Jdk1.1.8), sử dụng giao thức TCP/IP trong quá trình
giao tiếp. Mole hỗ trợ di chuyển yếu - weak migration .

Để thực hiện giao tiếp giữa các agent Mole sử dụng các cơ chế truyền thông điệp, gọi
hàm từ xa RPCs, và cơ chế đặc trưng của Mole là session , badge. Ngôn ngữ giao tiếp giữa các
agent được Mole hỗ trợ là KQML. Việc trao đổi dữ liệu giữa các agent được thực hiện
theo nghi thức TCP/IP. Mole cho phép đa tiểu trình/agent và quản lí tài nguyên và lập
lịch các tiểu trình trong hệ thống thông qua bộ lập lịch trung tâm MCP. Khả năng bảo mật
của Mole được đánh giá khá tốt trong các hệ thống agent. Mole tuân theo mô hình bảo
mật sandbox của java. Agent trong hệ thông Mole được chia làm hai loại: user agent
và system agent. User agent là những agent di động được kích hoạt bởi người dùng
và không thể truy cập trực tiếp tài nguyên hệ thống. Ngược lại, system agent (service agent)
- được khởi động bởi người quản trị - không có tính di động và được phép truy cập tài
nguyên hệ thống.
Môi trường Mole phù hợp cho phát triển những ứng dụng trong các lĩnh vực: Truyền
thông, ứng dụng thuộc lĩnh vực hệ thống thông tin điện tử. Một số ứng dụng dược
phát triển trên môi trường Mole: AIDA - Infrastructure for Mobile Agents, ASAP,
ATOMAS, FESTIVAL (Mole office, Mole shopping), HAWK.
Với hệ thống mã nguồn mở của Mole, ta có thể tiến hành cải tiến, nâng cấp những chức
năng hiện có, và bổ sung những chức năng mới như các chức năng về công cụ hổ trợ lập
trình agent để Mole trở thành hệ thống agent hiện đại hổ trợ tốt cho việc phát triển các ứng
dụng dựa theo mô hình agent.
 ZEUS.
Zeus là môi trường do British Telecommunication phát triển để hỗ trợ xây dựng các hệ
thống đa agents. Ngoài các tính năng thông thường trong việc tạo lập và quản lý các agent,
Zeus đặc biệt chú trọng việc hỗ trợ một phương pháp luận và một bộ công cụ mạnh để phát
triển ứng dụng đa agent trên môi trường phân tán.

2.7 Các tính năng hỗ trợ của hệ thống Mobile Agent.
 Tính di động (mobility).
Xét khả năng môi trường hỗ trợ di động mạnh hay yếu cho agent.
 Tính tự trị (autonomous).
Xét vai trò của môi trường về việc cung cấp các cơ chế hỗ trợ cho agent linh động thực thi,

qua đó thể hiện được tính tự trị
 Tính an toàn (security).
Cần chú ý tới hai vấn đề: bảo vệ các host tránh các cuộc tấn công từ các agent nguy hiểm;
và bảo vệ các agent chống lại các môi trường nguy hiểm khi agent di trú
 Tính thích ứng.
Là khả năng hỗ trợ tính thích ứng từ phía môi trường khi tiếp nhận một agent du nhập.
 Khả năng cộng tác
Để xem xét khả năng phối hợp hoạt động của các agent, cần lưu ý về ngôn ngữ liên lạc,
giao thức liên lạc, mô hình cộng tác mà môi trường hỗ trợ. Ngoài ra, nếu các agent của môi
trường đang xét có khả năng giao tiếp với các agent của môi trường khác hay với các loại đối
tượng khác, thì môi trường hỗ trợ cộng tác mạnh.







23

2.8 Kết luận.
Trong chương này chúng ta đã giới thiệu các lý do mà ta sử dụng mobile agent trong lập
trình, cũng như giới thiệu một số khái niệm cơ sở của mobile agent, các mô hình trong một
mobile agent, các hệ thống mobile agent hiện nay như Aglet, Voyager, Mole, Zeus.
Hiểu một mobile agent không bị ràng buộc với hệ thống mà nó bắt đầu vòng đời. Nó có
khả năng độc đáo là tự gửi mình đi từ một host này đến một host khác trong mạng. Ta cũng
tìm hiểu 7 lợi ích của mobile agent như: giảm tải băng thông, khắc phục độ trễ mạng, gói gọn
các giao thức, thực hiện một cách không đồng bộ, thích nghi, tự sửa sai, khắc phục tình trạng
không đồng nhất. Ta cũng tìm hiểu các lĩnh vực mà mobile agent có khả năng ứng dụng như:
thu thập dữ liệu phân tán, thương mại điện tử, quản trị mạng.




×