1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

77 30 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 77
Dung lượng 1,72 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc triển khai tác tử di động trên nền công nghệ mạng ngang hàng JXTA giúp cho sự phát triển tác tử di động trở nên dễ dàng hơn so với các môi trường mạng ngang hàng khác, đó là sự di c

Trang 1

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

LUẬN VĂN THẠC SĨ

Hà Nội – 2006

Trang 2

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

Trang 4

Tóm tắt

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

Trang 5

LỜI CÁM ƠN

Trước tiên, tôi xin gửi lời cám ơn sâu sắc tới người hướng dẫn, thầy giáo, TS Nguyễn Đại Thọ, Bộ môn Mạng và Truyền thông máy tính – người đã trực tiếp hướng dẫn tôi trong suốt quá trình thực hiện luận văn

Tiếp theo tôi xin chân thành cám ơn Bill Yeager và Rita Yu Chen tác giả bài báo

“Java Mobile Agents on Project JXTA Peer-to-Peer Platform” đã hỗ trợ tài liệu và

mã nguồn chương trình Java Mobile Agent

Cuối cùng, xin gửi lời cảm ơn tới gia đình và bạn bè tôi, những người đã luôn ủng

hộ và khuyến khích tôi rất nhiều trong quá trình học tập và nghiên cứu Họ là nguồn động viên vô tận của tôi trong cuộc sống

Hà Nội, tháng 12 năm 2006

Nguyễn Minh Trí

Trang 6

MỤC LỤC

MỤC LỤC 1

MỞ ĐẦU 8

Chương 1 TÁC TỬ DI ĐỘNG 9

1.1 Các mô hình thực hiện phân tán truyền thống 9

1.1.1 Truyền thông báo 9

1.1.2 Gọi thủ tục từ xa 9

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

1.1.4 Đánh giá từ xa 10

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

1.1.6 Di chuyển hoạt động 11

1.2 Từ tác tử đến tác tử di động 12

1.3 Nguyên lý hoạt động của tác tử di động 14

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

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

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

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

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

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

1.4 Các hệ tác tử di động 18

1.4.1 Aglet 19

1.4.2 Mole 19

1.4.3 ARA 19

1.4.4 D'agent 19

1.4.5 TACOMA 20

1.4.6 Concordia 20

Chương 2 MẠNG NGANG HÀNG 21

2.1 Các thành phần mạng ngang hàng 21

2.1.1 Điểm nút 21

2.1.2 Nhóm điểm nút 24

2.1.3 Dịch vụ 24

2.1.4 Giao vận mạng 26

2.1.5 Thông cáo 27

2.1.6 Giao thức 27

Trang 7

2.1.7 Định danh 28

2.2 Truyền thông trên mạng ngang hàng 28

2.2.1 Phát hiện các thông cáo 29

2.2.2 Phát hiện các điểm nút môi giới và điểm nút định tuyến 31

2.2.3 Các rào cản 32

2.2.4 Truyền thông báo giữa các điểm nút 33

2.3 So sánh một số giải pháp mạng ngang hàng 35

2.3.1 Napster 35

2.3.2 Gnutella 36

2.3.3 Client/ Server 36

Chương 3 CƠ SỞ HẠ TẦNG JXTA 37

3.1 Nguyên tắc thiết kế JXTA 37

3.2 Đánh giá JXTA 38

3.2.1 So sánh JXTA và JINI 38

3.2.2 Quan hệ giữa JXTA và tác tử 38

3.3 JXTA Shell 39

3.4 Các giao thức JXTA 39

3.4.1 Giao thức phát hiện điểm 40

3.4.2 Giao thức phân giải điểm 41

3.4.3 Giao thức thông tin điểm 42

3.4.4 Giao thức môi giới 43

3.4.5 Giao thức ấn định đường truyền 45

3.4.6 Giao thức định tuyến điểm cuối 46

Chương 4 TRIỂN KHAI TÁC TỬ DI ĐỘNG TRÊN NỀN JXTA 47

4.1 Cơ sở thực tiễn 47

4.2 Các công nghệ liên quan và giải pháp 48

4.3 Môi trường tác tử di động trên JXTA 50

4.3.1 Giao thức tác tử di động đơn giản 50

4.3.1.1 Hành trình của tác tử di động 51

4.3.1.2 Định dạng thông báo giao thức tác tử di động đơn giản 52

4.3.2 Mô tả hệ thống tác tử di động 52

4.4 Thiết kế, cài đặt tác tử di động tìm kiếm và trích rút thông tin 54

4.4.1 Mô hình hệ thống 54

4.4.2 Đơn vị mô tả sản phẩm 55

4.4.3 Trích rút đơn vị mô tả sản phẩm 56

Trang 8

4.4.4 Cài đặt tác tử di động tìm kiếm, trích rút thông tin 58

KẾT LUẬN 62

PHỤ LỤC 63

TÀI LIỆU THAM KHẢO 70

Trang 9

Danh sách các hình vẽ

Hình 2-1 Minh họa điểm nút môi giới 22

Hình 2-2 Minh họa điểm nút định tuyến 23

Hình 2-3 Minh họa điểm nút cầu nối 24

Hình 2-4 Dịch vụ điểm nút 25

Hình 2-5 Dịch vụ nhóm điểm nút 26

Hình 2-6 Ống dẫn giữa các điểm nút 27

Hình 2-7 Phát hiện điểm nút nhờ lưu giữ thông cáo 29

Hình 2-8 Phát hiện điểm nút trực tiếp 30

Hình 2-9 Phát hiện gián tiếp thông qua điểm nút môi giới 31

Hình 2-10 Vượt tường lửa/ NAT 33

Hình 2-11 Truyền thông báo qua một tường lửa 34

Hình 2-12 Truyền thông báo qua hai tường lửa 35

Hình 3-1 Kiến trúc phân lớp của JXTA 37

Hình 3-2 Giao diện JXTA Shell 39

Hình 3-3 Phân cấp các giao thức JXTA 40

Hình 3-4 Trao đổi các thông báo 40

Hình 3-5 Trao đổi các thông báo phân giải 42

Hình 3-6 Trao đổi thông báo thông tin điểm 43

Hình 3-7 Trao đổi các thông báo RVP 44

Hình 3-8 Trao đổi thông báo ấn định đường truyền 45

Hình 3-9 Luồng trong giao thức định tuyến điểm cuối 46

Hình 4-1 Tác tử và hành trình 51

Hình 4-2 Biểu đồ mô tả quan hệ giữa các lớp trong hệ thống tác tử di động 53

Hình 4-3 Mô hình hoạt động của tác tử tìm kiếm, trích rút tài liệu trên Web 54

Hình 4-4 Đơn vị mô tả sản phẩm 55

Trang 10

Hình 4-5 Nội dung trang HTML sau khi phân tích 56

Hình 4-6 Màn hình giao diện sau khi khởi tạo môi trường tác tử di động 59

Hình 4-7 Danh sách các điểm nút đang tồn tại trên mạng 60

Hình 4-8 Peer 1 khởi tạo tác tử di động getExtraction và gửi tới Peer 2 60

Hình 4-9 Peer 2 nhận tác tử di động, thực hiện việc trích rút thông tin và sau đó gửi trả về Peer 1 các kết quả .61

Hình 4-10 Kết quả nhận được tại Peer 1 61

Trang 11

Danh sách các bảng

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

Trang 12

Bảng các từ viết tắt

DQM Discovery Query Message

DRM Discovery Response Message

HTTP HyperText Transfer Protocol

IEEE Institute of Electrical and Electronic Engineering

JXTA Juxtapose

LCM Lease Cancel Message

LGM Lease Granted Message

LRM Lease Request Message

NAT Network Address Translation

PDP Peer Discovery Protocol

PDU Product Description Unit

PIP Peer Information Protocol

PRP Peer Resolver Protocol

RQM Resolver Query Message

RRM Resolver Response Message

SMAP Simple Mobile Agent Protocol

SMTP Simple Mail Transfer Protocol

SQL Structured Query Language

TCP Transmission Control Protocol

UDP User Datagram Protocol

URL Uniform Resource Locator

Trang 13

MỞ ĐẦU

Công nghệ mạng ngang hàng JXTA đang trong quá trình phát triển và đã được sử dụng nhiều trong triển khai và nghiên cứu Việc triển khai tác tử di động trên nền công nghệ mạng ngang hàng JXTA giúp cho sự phát triển tác tử di động trở nên dễ dàng hơn so với các môi trường mạng ngang hàng khác, đó là sự di chuyển không giới hạn của các tác tử di động giữa các máy tính trên mạng Internet Trong điều kiện kinh

tế ở Việt Nam hiện nay, không phải trường đại học, viện nghiên cứu nào cũng có khả năng mua bản quyền truy cập vào cơ sở dữ liệu của các nhà xuất bản uy tín trên thế giới Vì vậy cần có giải pháp để có thể sử dụng tài nguyên này một cách hiệu quả Giải pháp sử dụng tác tử di động trên mạng ngang hàng JXTA giúp giải quyết được vấn đề này

Mặc dù có nhiều nghiên cứu trong lĩnh vực trích rút thông tin trên Web và triển khai ứng dụng của nó trong việc trích rút các thông tin về sản phẩm (loại mặt hàng, giá cả,

…) nhưng việc ứng dụng tác tử di động trong trích rút thông tin về các loại tài liệu trên các trang Web tìm kiếm là vấn đề mới Đây là mục đích chính của luận văn, từ việc nghiên cứu về mạng ngang hàng JXTA, tác tử di động, tiến hành sửa đổi, bổ sung môi trường tác tử di động trên mạng ngang hàng JXTA và cuối cùng triển khai tác tử

di động thực hiện trích rút thông tin

Ngoài phần mở đầu và kết luận, luận văn được bố cục như sau:

Chương 1: Giới thiệu những kiến thức cơ bản về tác tử di động

Chương 2: Những khái niệm cơ bản về mạng ngang hàng

Chương 3: Trình bày về công nghệ mạng ngang hàng JXTA

Chương 4: Trình bày về môi trường tác tử di động trên JXTA, triển khai tác tử di động để trích rút thông tin và tìm kiếm tài liệu

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

Trang 14

Chương 1 TÁC TỬ DI ĐỘNG

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

1.1 Các mô hình thực hiện phân tán truyền thống

1.1.1 Truyền thông báo

Truyền thông báo là mô hình giao tiếp đầu tiên được sử dụng trong xử lý phân tán Nguyên lý hoạt động của mô hình này khá đơn giản Theo như tên gọi, các tiến trình tham gia xử lý phân tán giao tiếp với nhau thông qua thông báo Thông báo có thể chứa thông tin điều khiển hay dữ liệu hay cả hai, nhưng không chứa mã lệnh thực hiện được Các thông báo được mỗi tiến trình phát và nhận trên một cổng riêng Việc phân

bố cổng và truyền thông báo từ máy tính này đến máy tính khác được thực hiện bởi hệ thống Nhưng tất cả những vấn đề khác liên quan như phát và nhận thông báo, khắc phục lỗi truyền thông, đảm bảo đồng bộ hóa giữa các tiến trình là do chương trình đảm nhận Nhiệm vụ thiết kế phát triển chương trình như vậy sẽ rất nặng nề nhưng đổi lại là tính linh động và khả năng can thiệp sâu vào hệ thống nhiều khi rất cần thiết Các giải thuật điều khiển phân tán mức thấp hiện nay [37][18] chủ yếu vẫn sử dụng

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

1.1.2 Gọi thủ tục từ xa

Gọi thủ tục từ xa [6] là một bước phát triển mở rộng của mô hình truyền thông báo

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

Trang 15

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

Gọi phương thức từ xa là một cải biến của phương thức gọi thủ tục từ xa cho phù hợp với xu thế sử dụng phương pháp lập trình hướng đối tượng trong công nghệ phần mềm Phương pháp hướng đối tượng tổ chức hệ thống thông tin thành tập hợp các đối tượng tương tác với nhau thông qua các phương thức Điểm khác biệt của phương thức so với thủ tục thông thường là mỗi phương thức gắn với một đối tượng, có một

số quyền nhất định như truy nhập vào cấu trúc bên trong mà các phương thức khác nếu không thuộc về đối tượng đó thì không có Theo mô hình gọi phương thức từ xa,

để gọi thực hiện một phương thức từ xa chỉ cần tham chiếu đến tên đối tượng chủ thể của phương thức chứ không cần biết nó nằm ở đâu trên mạng máy tính Mô hình gọi phương thức từ xa tạo điều kiện phát triển dễ dàng các ứng dụng phân tán hoàn toàn theo phương pháp hướng đối tượng, tận dụng tối đa những ưu điểm của phương pháp này trong thiết kế và lập trình Thực tế ta thường bắt gặp mô hình gọi phương thức từ

xa trong các ứng dụng dựa trên kiến trúc CORBA 1 [38]

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

1 Common Object Request Broker Architecture

Trang 16

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

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

Mô hình mã lệnh theo yêu cầu có cơ chế hoạt động giống với đánh giá từ xa ở chỗ mã lệnh được máy nguồn gửi qua mạng đến thực hiện trên máy đích Thế nhưng mã lệnh

ở đây là những chương trình hoàn chỉnh chứ không đơn thuần là những câu lệnh đơn

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

1.1.6 Di chuyển hoạt động

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

o Cân đối khối lượng công việc: Di chuyển hoạt động từ một máy tính đang quá

tải sang một máy tính khác nhàn rỗi hơn sẽ góp phần sử dụng hợp lý và tối ưu tất cả các tài nguyên của hệ thống

o Khắc phục sự cố: Di chuyển công việc từ một máy tính gặp sự cố sang một

máy tính khác vẫn chạy tốt sẽ đảm bảo hoạt động thông suốt của toàn hệ thống

o Chia sẻ thông tin: Nhiều khi di chuyển chương trình đến nơi chứa dữ liệu cần

xử lý sẽ hiệu quả hơn là truyền dữ liệu từ xa về nơi chứa chương trình đang thực hiện

Di chuyển hoạt động cung cấp một cơ chế thực hiện phân tán đồng bộ rất hữu hiệu cho phát triển ứng dụng nhưng xây dựng được cơ chế đó là công việc rất phức tạp Đó

Trang 17

là vì khi di chuyển các tiến trình, hệ thống phải đảm bảo chúng có thể tiếp tục hoạt động được trên những môi trường phần cứng và phần mềm khác so với môi trường ban đầu Bên cạnh đó vấn đề không chỉ là gửi mã lệnh từ máy tính này sang máy tính khác mà phải bảo toàn và đưa theo cả trạng thái thực hiện lúc bắt đầu di chuyển Mô hình di chuyển hoạt động được sử dụng chủ yếu ở mức hệ điều hành

tử thông minh khác nhau vì có thể coi là đối tượng nghiên cứu của những chuyên ngành khác nhau Tác tử di động ứng dụng trong mạng và truyền thông máy tính Còn tác tử thông minh là mục tiêu hướng tới của trí tuệ nhân tạo và một số lĩnh vực liên quan Một tác tử thông minh có thể không di động Căn cứ vào cơ chế hoạt động có thể dễ dàng xác định một tác tử thông minh có phải là tác tử di động hay không Nhưng một tác tử di động có thể coi là thông minh hay không thì lại không dễ dàng xác định được như vậy Điều đó tùy theo quan niệm thông minh là gì Mà khái niệm thông minh thì không thể định nghĩa một cách chặt chẽ và hình thức để có thể đối chiếu rồi phán quyết có thông minh hay không Tất cả tùy thuộc vào bối cảnh và quan điểm của người xem xét Tính di động không đóng vai trò gì trong tiêu chuẩn thông minh Nhưng ngược lại, các tác tử thông minh có thể góp phần giải quyết nhiều vấn

đề cơ bản trong điều khiển mạng mức thấp và thúc đẩy sự phát triển của các ứng dụng phân tán mức cao Sự kết giao của trí tuệ nhân tạo và mạng truyền thông trên cơ sở chung là các tác tử thông minh (có thể di động hay không) đã tạo tiền đề cho các hệ thống trí tuệ nhân tạo phân tán, hay còn gọi là các hệ đa tác tử, phát triển mạnh Đây

là lĩnh vực nghiên cứu tương đối mới, có nhiều tiềm năng ứng dụng, nhưng sẽ chỉ được nhắc đến khi cần thiết chứ sẽ không thuộc nội dung khảo cứu của bài viết này Tác tử là một khái niệm rộng Những giải nghĩa trong từ điển không thể dùng làm căn cứ để thiết kế phát triển nên các tác tử tin học chúng ta đang quan tâm, mà cần phải có một định nghĩa chính xác hơn, mang tính đặc tả cao hơn Thế nhưng cho đến nay trong lĩnh vực tin học vẫn chưa có định nghĩa thống nhất về khái niệm tác tử Người ta đưa ra nhiều định nghĩa khác nhau, nói chung khó so sánh với nhau vì chúng phụ thuộc vào bối cảnh và góc độ xem xét Tạm thời có thể coi định nghĩa của [26]

Trang 18

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

o Tính chủ động: Tác tử kiểm soát các hành động và trạng thái nội bộ của nó

o Khả năng giao tiếp: Tác tử có thể giao tiếp với các tác tử khác

o Khả năng phản ứng: Tác tử có thể cảm nhận môi trường xung quanh và phản

ứng lại những thay đổi của môi trường

o Khả năng tác động: Tác tử có thể tác động lên môi trường xung quanh

Lưu ý là ở đây không nhắc gì đến tính thông minh của các tác tử Trong lĩnh vực trí tuệ nhân tạo phân tán, khi tính thông minh được coi là một trong những thuộc tính quan trọng nhất, thì tác tử có thể được xem như một thực thể chủ động có tri thức riêng (bao gồm khả năng, kiến thức, vốn suy luận), có thể phối hợp với các tác tử khác

để thực hiện các nhiệm vụ khác nhau thông qua giao tiếp, trao đổi tri thức

Một hệ thống thông tin để có thể hoạt động dựa trên các tác tử phải có sự góp mặt của

2 loại thành phần sau:

o Nguồn khởi tạo tác tử: Là điểm xuất phát, nơi tạo nên đối tượng tác tử

o Máy chấp nhận tác tử: Là máy tính cung cấp tài nguyên và môi trường thực

hiện (bao gồm bộ xử lý, bộ nhớ, điểm truy cập dịch vụ,…) cho một hoặc nhiều tác tử

Đầu tiên, tác tử được tạo ra bởi nguồn khởi tạo tác tử, sau đó sẽ được gửi đến thực hiện trên một máy nhận nào đó Tác tử có thể di chuyển từ máy nhận này sang máy nhận khác trong quá trình hoạt động Tuy nhiên, không phải tác tử nào cũng có khả năng như vậy Chỉ những tác tử di động mới có thể di chuyển để thực hiện nhiệm vụ đặt ra Tính di động không phải là thuộc tính vốn có của các tác tử Các tác tử tĩnh là các tác tử không có tính di động Chúng chỉ thực hiện trên một máy tính duy nhất và nếu cần giao tác với môi trường hoặc các tác tử khác thì sử dụng một trong các phương thức giao tiếp truyền thống như truyền thông báo hay gọi thủ tục từ xa mà ta

đã xem xét ở phần trước

Nói tóm lại, các tác tử di động là những chương trình không bị ràng buộc với nơi chúng bắt đầu thực hiện Chúng có thể di chuyển từ nơi này sang nơi khác trên mạng máy tính Tính di động cho phép chúng đến được những nơi thích hợp nhất cho việc

Trang 19

thực hiện nhiệm vụ Tác tử có thể coi là đối tượng chứa dữ liệu và mã lệnh, đồng thời

có mục đích và tính chủ động nhất định trong hoạt động

1.3 Nguyên lý hoạt động của tác tử di động

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

Ở trạng thái tĩnh, tức là khi chưa được phát động, tác tử di động là tập hợp các tham

số và phương thức tạo thành mô hình tác tử Các phương thức cho phép khởi tạo và thay đổi giá trị các tham số

Sau khi được nguồn khởi tạo phát động, tác tử di động bắt đầu chu kỳ hoạt động Lúc này, tác tử di động ở vào trạng thái động và chủ yếu bao gồm ba thành phần : dữ liệu,

mã lệnh, và bối cảnh thực hiện Dữ liệu là giá trị của các tham số chỉ ra trong mô hình tác tử Mã lệnh thực thi các phương thức truy cập dữ liệu Bối cảnh thực hiện phản ánh trạng thái hiện thời của tác tử di động trong quá trình hoạt động Trạng thái này giống như của một tiến trình bình thường, bao gồm các đại lượng đặc trưng như giá trị các thanh ghi, vị trí con trỏ mã lệnh, nội dung ngăn xếp thực hiện Trong các dữ liệu của tác tử di động, ta thường bắt gặp danh tính là tham số đặc trưng cho mỗi tác tử

Nó cho phép phân biệt tác tử này với tác tử khác Ngoài ra, mỗi tác tử di động còn có thể có một dữ liệu đặc biệt gọi là hành trình dùng để định trước những điểm tác tử cần

di qua khi di chuyển trên mạng Hành trình nếu có thì do nguồn khởi tạo tác tử cung cấp Tuy nhiên, tác tử có thể không di chuyển theo một lộ trình định trước mà tự xác định đường đi dựa trên những thông tin thu thập được trong quá trình hoạt động

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

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

mã lệnh của nó

Tác tử di động có thể được khởi tạo theo một trong các cách thức sau đây :

o Khởi tạo cục bộ: Tác tử được khởi tạo và kích hoạt trên máy tính phát ra yêu

cầu khởi tạo

o Thực hiện từ xa: Tác tử được khởi tạo cục bộ trên máy tính phát ra yêu cầu

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

Trang 20

quá trình thực hiện, tác tử có thể sử dụng cơ chế thực hiện từ xa để phát động các tác tử khác Cơ chế này giống mô hình thực hiện phân tán theo đánh giá từ

xa ở chỗ mã lệnh cũng được chuẩn bị tại nơi phát sinh yêu cầu nhưng lại được gửi đi thực hiện tại một nơi khác

o Mã lệnh theo yêu cầu: Cách thức này tương tự như cơ chế mã lệnh theo yêu

cầu trong xử lý phân tán Cụ thể, mã lệnh tác tử (bao gồm cả các tham số) được đưa từ xa đến một máy tính phát ra yêu cầu Tại đây, tác tử sẽ được khởi tạo, kích hoạt, và bắt đầu thực hiện

Lưu ý là các hình thức khởi tạo tác tử bằng thực hiện từ xa và mã lệnh theo yêu cầu thể hiện tính di động của mã lệnh chứ không tương ứng với tính di động của tác tử

Đó là vì cả hai cơ chế đều chuyển giao chương trình tác tử ở trạng thái tĩnh, trước khi tác tử được kích hoạt đi vào hoạt động thực sự

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

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

Truy cập tài nguyên cục bộ

Để có thể thực hiện trên một máy tính, tác tử phải có quyền truy cập vào những tài nguyên nhất định trên máy tính đó Thế nhưng cơ chế truy cập trên các máy tính khác nhau lại không giống nhau mà thay đổi tùy thuộc vào hệ điều hành được sử dụng Môi trường thực hiện tác tử chạy trên nền các hệ điều hành khác nhau phải đảm bảo cho phép các tác tử truy cập vào tài nguyên theo một phương thức thống nhất, độc lập với

hệ thống Một trong những giải pháp hay được sử dụng nhất là phương thức truy cập gián tiếp, thông qua trung gian của các tác tử dịch vụ Chỉ các tác tử dịch vụ mới có quyền truy cập trực tiếp vào tài nguyên cục bộ Các tác tử khác, nhất là các tác tử từ

xa đến, muốn sử dụng tài nguyên, sẽ phải giao tiếp, đàm phán, với các tác tử dịch vụ Các tài nguyên quản lý bởi tác tử dịch vụ sẽ được đảm bảo hơn, dễ kiểm soát hơn

Giao tiếp giữa hai tác tử

Cơ chế giao tiếp giữa hai tác tử bất kỳ cần tính đến các yếu tố sau:

o Các tác tử tham gia giao tiếp không biết đến vị trí của nhau

Trang 21

o Trong quá trình giao tiếp với các tác tử khác, một tác tử nào đó có thể di chuyển từ máy tính này sang máy tính khác

Để giải quyết các vấn đề đặt ra trên đây, một số môi trường thực hiện tác tử di động cung cấp phương thức hẹn nhau để thiết lập kết nối giữa các tác tử tham gia giao tiếp

Cơ chế giao tiếp đồng bộ này tương tự như nguyên lý hẹn nhau giữa các tiến trình trong mô hình truyền thông báo Một số hệ tác tử khác tổ chức giao tiếp theo phiên Mỗi phiên tương ứng với một lần giao tiếp giữa hai tác tử Trước khi giao tiếp, các tác

tử phải thiết lập phiên thông qua trao đổi thông báo Sau đó, chúng giao tiếp bằng những lời gọi phương thức từ xa Một phiên có thể diễn ra trên một máy tính hay trên hai máy tính khác nhau Các tác tử tham gia một phiên giao tiếp không được phép di chuyển chừng nào phiên chưa kết thúc

Giao tiếp giữa một tác tử và một nhóm tác tử

Các vấn đề thường gặp phải trong giao tiếp giữa một tác tử di động và một nhóm tác

tử là như sau :

o Định danh nhóm tác tử

o Xử lý trường hợp một hay nhiều tác tử gặp sự cố khi đang tham gia giao tiếp Thực tế có ba mô hình giao tiếp giữa một tác tử và một nhóm tác tử: dựa trên các sự kiện phân tán dị bộ, hợp tác trực tiếp, và sử dụng cơ chế bảng trắng

Các sự kiện phân tán dị bộ bao gồm 2 hình thức: các sự kiện chọn lọc và các sự kiện nhóm Cơ chế sự kiện chọn lọc cho phép các tác tử định ra loại sự kiện mong muốn được thông báo, còn cơ chế sự kiện nhóm lưu truyền sự kiện đến tất cả các tác tử của nhóm chứ không riêng cho một số nào theo lựa chọn Một chương trình đặc biệt gọi là trình quản lý sự kiện có nhiệm vụ đăng ký tác tử vào các nhóm, nghe ngóng các sự kiện, ghi nhận và thông báo tình hình cho các tác tử liên quan được biết Các tác tử hợp tác với nhau thông qua trình quản lý sự kiện

Hợp tác trực tiếp giữa các tác tử có thể là mạnh hay yếu Với mô hình hợp tác mạnh việc hợp tác phải bị hủy bỏ khi có một trong các tác tử tham gia gặp sự cố Với mô hình yếu sự cố của một tác tử không ngăn cản các tác tử khác tiếp tục quá trình hợp tác cho đến khi kết thúc

Cơ chế bảng trắng cho phép các tác tử chia sẻ thông tin một cách gián tiếp, không đồng bộ Một tác tử di động khi đi qua một máy tính nào đó có thể để lại thông tin trên máy tính đó để các tác tử khác đến thu thập về sau

Trang 22

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

Các tác tử di động có thể di chuyển từ máy tính này sang máy tính khác trong quá trình hoạt động Chúng tự quyết định thời điểm và địa điểm di chuyển (theo một hành trình cố định hay căn cứ vào kết quả thực hiện) Ngoài khả năng chủ động di chuyển

là thuộc tính vốn có của mọi tác tử di động, một số môi trường thực hiện còn cho phép tác tử di chuyển một cách thụ động, do tác động của một thực thể nào đó bên ngoài Khả năng này thực sự có ích, chẳng hạn trong trường hợp cần gọi tác tử di động về nơi xuất phát khi kết quả nó thu được đã đạt yêu cầu đặt ra, không cần thiết phải thực hiện thêm nữa

Tác tử khi di chuyển phải bảo toàn trạng thái thực hiện Căn cứ vào mức độ bảo toàn trạng thái thực hiện, người ta phân biệt tính di động mạnh và tính di động yếu

o Tính di động mạnh: Bối cảnh thực hiện được chuyển từ máy nguồn sang máy

đích cùng lúc với mã lệnh và dữ liệu của tác tử di động Tác tử có thể tiếp tục thực hiện ngay trên máy đích, bắt đầu bằng câu lệnh tiếp ngay sau câu lệnh gọi phương thức di chuyển trong mã lệnh Để có thể truy nhập vào bối cảnh thực hiện, ghi lại các thông số liên quan và chuyển giao chúng qua mạng, hệ thống cần phải cung cấp các cơ chế cho phép ngoại hóa trạng thái thực hiện của các tác tử Những cơ chế như vậy rất khó cài đặt trong thực tế, được rất ít ngôn ngữ lập trình cung cấp Vì vậy, phần lớn các môi trường tác tử di động chỉ hỗ trợ tính di động yếu

o Tính di động yếu: Đối với hình thức di chuyển yếu, chỉ có mã lệnh và dữ liệu

của tác tử di động được chuyển từ máy nguồn sang máy đích Bối cảnh thực hiện phải được gửi kèm vào mã lệnh và dữ liệu theo một cách nào đó do người lập trình tác tử tự đảm nhiệm Các hệ tác tử di động viết bằng ngôn ngữ Java đều có cơ chế di chuyển yếu dựa trên nguyên lý tuần tự hóa Nguyên lý này định dạng mã lệnh và dữ liệu theo hình thức thích hợp để chuyển giao qua mạng, sau đó gây dựng lại mã lệnh và dữ liệu ban đầu từ những thông tin nhận được

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

Sau khi được kích hoạt, các tác tử trở nên chủ động, hoạt động độc lập, không đồng

bộ với nguồn khởi tạo Thế nhưng, đôi khi nguồn khởi tạo cần theo dõi, nắm bắt những thông tin cập nhật về hoạt động của tác tử, như trạng thái và vị trí hiện thời của

nó Trong những trường hợp như vậy, hệ thống phải thực hiện cơ chế theo dấu tác tử

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

Trang 23

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

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

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

Hiện nay đã có khá nhiều báo cáo tổng quan khảo sát và so sánh những hệ thống tác

tử di động được sử dụng nhiều nhất trong nghiên cứu và phát triển ứng dụng thương mại Phần này chỉ nêu ra một số hệ thống tiêu biểu nhất để minh họa cho những nguyên lý hoạt động của các tác tử di động đã đề cập ở trên

Trang 24

1.4.1 Aglet

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

1.4.2 Mole

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

1 Từ ghép của "agent" và "applet"

2 Agents for Remote Action

Trang 25

1.4.5 TACOMA

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

1.4.6 Concordia

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

1 Troms ∅ And COrnell Moving Agents

Trang 26

Chương 2 MẠNG NGANG HÀNG

Chương này giới thiệu về các khái niệm cơ bản về mạng ngang hàng, các thành phần xuất hiện ở hầu hết các mạng ngang hàng hiện thời và những vấn đề, giải pháp trên mạng ngang hàng [7]

2.1 Các thành phần mạng ngang hàng

Mạng ngang hàng là giải pháp đưa ra để trả lời câu hỏi: làm thế nào để có thể kết nối các thiết bị theo những phương thức dùng để chia sẻ thông tin, tài nguyên và dịch vụ

Để trả lời câu hỏi này, cần giải quyết những vấn đề sau:

o Làm thể nào để một thiết bị biết được sự có mặt của một thiết bị khác?

o Làm thế nào để các thiết bị có thể xác định được những quan tâm chung?

o Làm thế nào để một thiết bị có thể thể hiện khả năng của chính nó?

o Thông tin nào được dùng để xác định duy nhất một thiết bị?

o Các thiết bị trao đổi thông tin như thế nào?

Tất cả các mạng ngang hàng xây dựng các thành phần cung cấp giải pháp cho các vấn

đề trên Tuy nhiên trong nhiều trường hợp, một số chức năng trong mạng ngang hàng

đã được tích hợp ngay vào các ứng dụng dẫn đến sự không linh hoạt trong hệ thống

Ví dụ, nhiều hệ thống mạng ngang hàng ngầm định lấy cơ chế giao vận là TCP và do vậy nó không thể hoạt động trong môi trường khác Phần này sẽ trình bày về một số khái niệm cơ bản trong mạng ngang hàng

Điểm nút đơn giản (Simple Peer) có nhiệm vụ phục vụ một người dùng cuối Nó cho

phép cung cấp dịch vụ từ thiết bị của người dùng và khai thác dịch vụ cung cấp bởi các điểm nút khác trên mạng Thường thì điểm nút đơn giản bị ngăn bởi tường lửa, do

đó các điểm nút bên ngoài không thể kết nối trực tiếp với điểm nút này Chính vì hạn

Trang 27

chế này làm cho nên các điểm nút đơn giản thường được giao nhiệm vụ ít nhất, nó không phải giao tiếp hộ các điểm nút khác và không phải cung cấp thông tin bên thứ

ba để các điểm nút khác khai thác

Điểm nút môi giới (Rendezvous Peer) cho phép các điểm nút phát hiện vị trí của các

điểm nút khác và các tài nguyên của nhau Để tăng khả năng hiệu quả phục vụ, các điểm nút môi giới có thể đệm thông tin đang nắm giữ để dùng về sau hoặc chuyển tiếp yêu cầu phát hiện đến các môi giới khác Điểm nút môi giới thường nằm ngoài tường lửa Để có thể giao tiếp với bên ngoài, điểm nút môi giới nằm trong tường lửa phải sử dụng giao thức cho phép của tường lửa hoặc một điểm nút trung chuyển nằm ngoài tường lửa Hình 2-1 [13] mô tả điểm nút môi giới Peer 4, Peer 5 với vai trò trung gian trong việc liên lạc giữa các điểm nút

Hình 2-1 Minh họa điểm nút môi giới Điểm nút trung chuyển (Relay Peer) gồm hai loại điểm nút: Điểm nút định tuyến

(Router Peer) và điểm nút cầu nối (Gateway Peer)

Điểm nút định tuyến (Router Peer) cho phép xác định đường đi giữa các điểm nút Hình 2-2 [13] mô tả điểm nút định tuyến với vai trò tìm đường đi

Trang 28

Điểm nút cầu nối (Gateway Peer) đóng vai trò trung chuyển trong việc truyền dữ liệu

Nó cho phép truyền dữ liệu thông suốt qua các rào cản an toàn như tường lửa, thiết bị NAT, và proxy Điểm nút cầu nối hỗ trợ nhiều giao thức giao vận và có thể lưu lại thông báo của bên gửi chờ cho bên nhận liên hệ lấy về Hình 2-3 [13] mô tả điểm nút cầu nối với vai trò trung gian trong việc kết nối điểm nút Peer 3 nằm trong tường lửa với điểm nút bên ngoài Peer 1

Hình 2-2 Minh họa điểm nút định tuyến

Trang 29

Hình 2-3 Minh họa điểm nút cầu nối

2.1.2 Nhóm điểm nút

Nhóm điểm nút là tập các điểm nút hình thành để phục vụ một lợi ích hoặc mục đích chung Nhóm điểm nút có thể cung cấp dịch vụ cho các thành viên, các thành viên không thuộc nhóm thì không thể sử dụng được dịch vụ này Nhóm điểm nút hình thành dựa trên các mục đích sau đây:

- Giới hạn quy mô sử dụng cho nhóm người dùng nhất định Do nhu cầu bảo mật thông tin nên điểm nút chỉ cho một số thành viên khai thác

- Yêu cầu an toàn đối với các điểm nút tham gia Một nhóm điểm nút có thể sử dụng dịch vụ xác thực để xác định đối tượng tham gia vào nhóm và truy cập vào dịch vụ cung cấp bởi nhóm

- Nhu cầu cần biết thông tin trạng thái của các điểm nút thành viên Thành viên của nhóm có thể giám sát các thành viên khác Thông tin trạng thái điểm nút được dùng để duy trì mức độ dịch vụ cho các ứng dụng của nhóm

2.1.3 Dịch vụ

Dịch vụ cung cấp các chức năng qua đó một điểm nút có thể yêu cầu điểm nút khác thực hiện công việc hữu ích nào đó Các công việc này bao gồm: truyền file, cung cấp thông tin trạng thái, thực hiện tính toán, hoặc bất kỳ công việc một điểm nút có thể thực hiện Có hai loại dịch vụ:

- Dịch vụ điểm nút: Điểm nút cung cấp các chức năng cho các điểm nút khác

Chỉ khi điểm nút kết nối vào mạng thì nó mới cung cấp được dịch vụ Hình 2-4

Trang 30

[13] mô tả dịch vụ điểm nút, mỗi một điểm nút tham gia vào mạng ngang hàng đều cung cấp một dịch vụ riêng mà các điểm nút khác có thể khai thác và sử dụng

- Dịch vụ nhóm điểm nút: được cung cấp bởi nhóm điểm nút tạo thành những

tính năng cần thiết cho nhóm Dịch vụ nhóm điểm nút luôn gắn với một nhóm

cụ thể Điểm nút không thể truy nhập dịch vụ nếu không phải là thành viên của nhóm Dịch vụ không nên tương tác với những điểm nút không thuộc nhóm Danh sách các dịch vụ của một nhóm điểm nút được khai báo trong quảng bá nhóm Hình 2-5 [13] mô tả dịch vụ nhóm điểm nút

Hình 2-4 Dịch vụ điểm nút

Trang 31

Hình 2-5 Dịch vụ nhóm điểm nút

2.1.4 Giao vận mạng

Giao vận mạng là cơ chế quản lý việc truyền dữ liệu qua mạng, bao gồm chia dữ liệu thành các gói tin, bổ sung phần đầu thích hợp cho các gói tin để kiểm soát điểm đích của gói tin, và trong một số trường hợp việc đảm bảo gói tin đến được đích Giao vận mạng có thể ở mức thấp như TCP, UDP hoặc ở mức cao như HTTP hay SMTP Giao vận mạng được chia ra 3 thành phần:

- Điểm cuối (Endpoints): Giao diện mạng của điểm nguồn hoặc điểm đích dùng

để truyền dữ liệu Điểm nút có thể coi là một khái niệm trừu tượng hóa ý tưởng địa chỉ của client Một điểm nút có thể có nhiều hơn một điểm cuối Điểm nút

có thể chọn dùng giao thức giao vận tùy tình huống Ví dụ: nếu 2 điểm nút ngăn cách nhau bởi tường lửa thì dùng HTTP, ngược lại thì dùng TCP [13]

- Ống dẫn (Pipes): Kênh truyền ảo, đơn chiều nối các điểm cuối với nhau Ống

dẫn có thể nằm trên nhiều giao thức giao vận khác nhau Tương ứng với đường

đi có thể qua nhiều điểm nút cầu nối Phương thức giao tiếp qua ống dẫn [36]:

o Ấn định ống dẫn tới các điểm cuối nguồn và đích : Điểm cuối nguồn được gọi là ống dẫn ra, Điểm cuối đích được gọi là ống dẫn vào

o Điểm nút nguồn đóng gói dữ liệu thành thông báo và gửi thông báo sử dụng ống dẫn ra

Trang 32

o Điểm nút đích nhận thông báo từ ống dẫn vào và lấy ra dữ liệu

Hình 2-6 Ống dẫn giữa các điểm nút

- Thông báo (Messages): có 2 khuôn dạng: khuôn dạng chuẩn và khuôn dạng nhị

phân [13]

o Khuôn dạng chuẩn: nội dung định dạng theo chuẩn ngôn ngữ XML

o Khuôn dạng nhị phân: tránh trường hợp phình to kích thước thông báo khi dùng nhiều định dạng XML Sử dụng khuôn dạng nhị phân vì: dữ liệu có thể được nén lại giúp tiết kiệm băng thông và giảm thời gian truyền, dữ liệu vốn ở dạng nhị phân, dữ liệu có thể được mã hóa

2.1.5 Thông cáo

Thông cáo là biểu diễn có cấu trúc một thực thể, một dịch vụ, hay một tài nguyên do một điểm nút hay một nhóm điểm nút giới thiệu như một phần của mạng ngang hàng [7] Thông cáo dùng để trao đổi những thông tin có thể khai thác được trên mạng ngang hàng, được biểu diễn bằng XML Có 6 loại thông cáo: Thông cáo điểm nút, thông cáo nhóm điểm nút, thông cáo ống dẫn, thông cáo dịch vụ, thông cáo nội dung,

và thông cáo điểm cuối

2.1.6 Giao thức

Giao thức [7] là phương thức định nghĩa việc trao đổi thông tin giữa hai hoặc nhiều thành phần đã được thống nhất theo một quy định nào đó từ trước Trong mạng ngang

Trang 33

hàng các giao thức cần định nghĩa tất cả các kiểu tương tác mà một điểm nút có thể thực hiện như một phần của mạng ngang hàng đó là :

o Tìm điểm nút trên mạng

o Tìm các dịch vụ mà điểm nút cung cấp

o Lấy thông tin trạng thái từ điểm nút

o Gọi dịch vụ trên điểm nút

o Khởi tạo, gia nhập và rời một nhóm điểm nút

o Khởi tạo kết nối dữ liệu tới điểm nút

o Chuyển thông báo tới điểm nút khác

Tổ chức thông tin dạng thông cáo làm đơn giản hoá các giao thức rất nhiều Thông cáo tự thông báo cấu trúc và thể hiện dữ liệu, làm đơn giản hóa định nghĩa giao thức Thay vì phải truyền đi và truyền lại dữ liệu, các giao thức chỉ cần tổ chức việc trao đổi các thông cáo chứa các thông tin cần thiết để thực hiện chức năng đặc biệt nào đó

2.1.7 Định danh

Hầu hết các thành phần trong mạng ngang hàng đều cần thông tin để định danh chúng một cách duy nhất: điểm nút, nhóm điểm nút, ống dẫn, và nội dung Trong các mạng ngang hàng truyền thống, một số các định danh có thể được thực hiện dựa trên các giao vận mạng cụ thể; ví dụ một điểm nút dùng địa chỉ IP làm định danh Tuy nhiên cách dùng phụ thuộc vào hệ thống này thể hiện sự không linh hoạt và không thể cung cấp ra được một định danh độc lập hệ điều hành và giao vận mạng Trong mạng ngang hàng lý tưởng, bất kỳ một thiết bị cũng có thể tham gia mà không cần quan tâm tới hệ điều hành hoặc giao vận mạng Để có một hệ thống mạng ngang hàng như vậy thì cần một cơ chế định danh độc lập hệ thống

2.2 Truyền thông trên mạng ngang hàng

Vấn đề cơ bản trong truyền thông mạng ngang hàng là làm thế nào để thực hiện việc trao đổi dịch vụ giữa các thiết bị mạng Để giải quyết vấn đề này, có hai câu hỏi sau cần trả lời:

o Làm thế nào để một thiết bị tìm thấy các điểm nút và các dịch vụ trên mạng ngang hàng?

Trang 34

o Làm thế nào để một thiết bị trong mạng riêng cũng có thể tham gia vào mạng ngang hàng?

Câu hỏi đầu tiên rất quan trọng vì nếu như không biết được sự tồn tại của của điểm nút, dịch vụ thì thiết bị không thể sử dụng được dịch vụ Câu hỏi thứ hai cũng vậy, bởi

vì rất nhiều thiết bị ở mạng riêng bị phân cách bởi các rào cản khi kết nối ra môi trường bên ngoài

2.2.1 Phát hiện các thông cáo

Như đã trình bày, bất kỳ một thành phần nào của mạng có thể được thể hiện như một thông cáo Các thông cáo này làm đơn giản hóa trong việc tìm kiếm điểm nút, nhóm điểm nút, dịch vụ, ống dẫn, và điểm cuối Thay vì phải quan tâm tới việc tìm kiếm các thành phần cụ thể, ta chỉ cần chú ý tới việc phát hiện thông cáo Một điểm nút có thể phát hiện thông cáo thông qua 3 cách: phát hiện nhờ lưu giữ, phát hiện trực tiếp, phát hiện gián tiếp

Phát hiện nhờ lưu giữ là cách đơn giản nhất để phát hiện thông cáo là loại bỏ quá trình

tìm kiếm toàn bộ mạng Thay vì tìm trên mạng, điểm nút dựa thông tin lưu giữ các thông báo đã được phát hiện từ trước để cung cấp các thông tin về tài nguyên điểm nút, Hình 2-7 [7] mô tả quá trình này Phương thức này giảm lưu lượng dữ liệu được truyền trên mạng và giúp cho điểm nút nhận được kết quả ngay tức thì

Hình 2-7 Phát hiện điểm nút nhờ lưu giữ thông cáo Phát hiện trực tiếp là phương pháp mà các điểm nút cùng trên mạng cục bộ có thể

phát hiện ra nhau mà không cần một điểm nút trung gian hỗ trợ Việc phát hiện trực tiếp yêu cầu điểm nút phải sử dụng khả năng quảng bá hoặc đa phát của giao vận

Trang 35

mạng (Hình 2-8 [7]) Khi một điểm nút phát hiện được các điểm nút khác nhờ phương pháp này, nó có thể kết nối trực tiếp với các điểm nút này để phát hiện các thông cáo

mà không cần sử dụng tới tính năng quảng bá Phương pháp phát hiện trực tiếp chỉ giới hạn trong phạm vi mạng cục bộ Việc phát hiện điểm nút và thông cáo ngoài mạng riêng cần cơ chế phát hiện gián tiếp thông qua điểm nút trung gian

Hình 2-8 Phát hiện điểm nút trực tiếp Phát hiện gián tiếp là phương thức phát hiện cần một điểm nút môi giới (Rendezvous

Peer) Phương pháp này được sử dụng trong trường hợp các điểm nút nằm trong mạng cục bộ muốn tìm các điểm nút mà ngoài khả năng quảng bá của nó hoặc các điểm nút nằm trong mạng riêng tìm điểm nút nằm ngoài

Các điểm nút môi giới cung cấp hai phương pháp tìm điểm nút và thông cáo:

o Lan truyền: điểm nút môi giới chuyển yêu cầu tìm kiếm tới các điểm nút khác

trên mạng mà nó biết, điểm nút này có thể là điểm nút đơn giản hoặc điểm nút môi giới

o Lưu giữ thông cáo: tương tự như điểm nút đơn giản có thể sử dụng thông tin

lưu giữ của nó để giảm lưu lượng trên mạng

Trang 36

Hình 2-9 Phát hiện gián tiếp thông qua điểm nút môi giới

Sử dụng phối hợp phương pháp lan truyền và lưu giữ như ở Hình 2-9 [7] cho thấy vai trò của điểm nút môi giới khi lưu trữ các thông cáo và phục vụ các điểm nút đơn giản

2.2.2 Phát hiện các điểm nút môi giới và điểm nút định tuyến

Đối với hầu hết các điểm nút nằm trong mạng riêng thì việc tìm điểm nút môi giới và định tuyến trở thành bước quan trọng nhất khi tham gia vào mạng ngang hàng Vì hạn chế của tường lửa cho nên điểm nút trong mạng riêng không thể sử dụng phương thức phát hiện trực tiếp để tìm kiếm ngoài mạng riêng Tuy nhiên điểm nút vẫn có thể sử dụng phương thức phát hiện gián tiếp thông qua điểm nút môi giới và điểm nút định tuyến

Trong đa số mạng ngang hàng, cách thức dễ dàng nhất để đảm bảo điểm nút đơn giản

có thể tìm điểm nút môi giới và điểm nút định tuyến đó là sử dụng các điểm nút môi giới và định tuyến cố định, có địa chỉ IP riêng Các điểm nút nằm phía sau tường lửa

có thể sử dụng những điểm nút này như là điểm khởi đầu để tìm kiếm, phát hiện ra các điểm nút khác

Trang 37

2.2.3 Các rào cản

Tường lửa (firewall) được dùng để bảo vệ mạng khỏi các kết nối bất hợp pháp từ

trong mạng ra ngoài hoặc ngược lại Thường thì tường lửa dùng cơ chế lọc địa chỉ IP

để xác định các giao thức nào được dùng để kết nối từ ngoài tường lửa vào trong và ngược lại Bởi vì tường lửa có khả năng chặn các kết nối vào mạng trong cho nên các điểm nút nằm ngoài tường lửa không thể kết nối trực tiếp với các điểm nút nằm trong Điểm nút nằm trong tường lửa cũng có thể bị hạn chế chỉ được dùng giao thức HTTP

để kết nối ra ngoài

Chuyển đổi địa chỉ mạng (Network Address Translation – NAT) là kỹ thuật dùng để

ánh xạ các địa chỉ IP trong mạng riêng sang địa chỉ IP trên mạng công cộng Có hai kiểu chuyển đổi địa chỉ mạng: tĩnh và động NAT được dùng với nhiều lý do, lý do phổ biến nhất là nó loại bỏ việc sử dụng địa chỉ IP toàn cầu đối với các trạm nằm trong mạng NAT cũng giúp cho người quản trị hệ thống bảo vệ mạng bằng cách chỉ cung cấp một điểm vào ra duy nhất cho toàn bộ hệ thống NAT được thực hiện thông qua bộ định tuyến (router) hoặc tường lửa (firewall) trong đó bộ định tuyến (tường lửa) đóng vai trò là cổng giao tiếp giữa mạng riêng và Internet NAT bảo vệ mạng thông qua việc chỉ cho phép các kết nối vào mạng trong khi trước đó có yêu cầu kết nối từ mạng trong Một máy tính ngoài mạng không thể kết nối vào máy tính trong mạng trừ khi máy tính trong mạng khởi tạo kết nối với máy tính ngoài mạng Điều này dẫn đến kết quả là trên mạng ngang hàng, một điểm nút ngoài không thể kết nối

tự nhiên tới điểm nút nằm trong cổng NAT

Trong hầu hết các mạng riêng hiện nay thì HTTP là giao thức mà các tường lửa cho phép đi qua Tuy nhiên HTTP là giao thức dạng yêu cầu/phản hồi: mỗi kết nối HTTP gửi một yêu cầu và sau đó chờ đợi một phản hồi Kết nối duy trì sau khi khởi tạo yêu cầu Mặc dù HTTP cung cấp cho điểm nút cơ chế gửi yêu cầu ra ngoài mạng riêng nhưng nó không thể cho phép các điểm nút ngoài truyền một cách tự nhiên qua tường lửa tới điểm nút trong tường lửa Để giải quyết vấn đề này, điểm nút nằm trong tường lửa sử dụng điểm nút định tuyến nằm ngoài tường lửa để đi qua tường lửa (Hình 2-10 [7]) Các điểm nút muốn kết nối tới điểm nút nằm trong tường lửa thông qua điểm nút định tuyến, điểm nút nằm trong tường lửa thì thường xuyên kết nối tới điểm nút định tuyến Khi điểm nút trong kết nối tới điểm nút định tuyến thì các thông báo sẽ được gửi tới điểm nút trong thông qua phản hồi HTTP

Trang 38

Hình 2-10 Vượt tường lửa/ NAT

2.2.4 Truyền thông báo giữa các điểm nút

Khi giữa hai điểm nút là một tường lửa hoặc NAT thì phải có một điểm nút định tuyến

để làm trung chuyển kết nối giữa mạng ngoài và điểm nút nằm trong tường lửa Trường hợp đơn giản là chỉ có một tường lửa ngăn cách giữa điểm nút nguồn và đích thì chỉ cần một điểm nút định tuyến Trường hợp phức tạp hơn khi các điểm nút đều bị chặn bởi tường lửa thì cần thêm nhiều điểm nút định tuyến

Truyền thông báo qua một tường lửa

Hình 2-11 [7] mô tả quá trình gửi thông báo qua một tường lửa/ NAT

Một điểm nút nằm trong tường lửa có thể gửi thông báo tới điểm nút khác ngoài tường lửa cần thực hiện theo ba bước như sau:

1 Điểm nút nằm trong tường lửa kết nối với điểm nút định tuyến thông qua giao thức có thể di chuyển qua tường lửa (ví dụ HTTP) và yêu cầu điểm nút định tuyến chuyển thông báo tới điểm nút đích

2 Điểm nút định tuyến chấp nhận kết nối từ điểm nút nằm trong tường lửa và khởi tạo một kết nối tới điểm nút đích

3 Thông báo được gửi từ điểm nút nguồn tới điểm nút đích thông qua điểm nút định tuyến

Ngày đăng: 07/03/2020, 18:28

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w