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

Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.51 MB, 65 trang )

Luận văn
Xây dựng ứng dụng dựa
trên mạng ngang hàng


Xây dựng ứng dụng dựa trên mạng ngang hàng

MỞ ĐẦU
Tốc độ phát triển của công nghệ đã mang đến cho người dùng cuối những
ứng dụng, tiện ích miễn phí và chất lượng hơn. Nhưng dù công nghệ thay đổi, biến
chuyển thế nào, nhu cầu chia sẻ dữ liệu vẫn luôn cần thiết đối với tất cả mọi người.
Con người sử dụng mạng Internet chính là để tìm kiếm thơng tin, thơng tin thì có
trong rất nhiều định dạng.
Trong thời gian gần đây, chia sẻ file ngang hàng đã nổi lên như một lĩnh
vực ứng dụng chiếm tỉ lệ sử dụng băng thông lớn trong mạng Internet. Bắt đầu từ
hiện tượng Napster vào cuối những năm 90, sự phổ biến của các chương trình chia
sẻ file ngang hàng như Gnutella, Freenet, Kazzaa đã tạo nên một xu hướng phát
triển mạnh mẽ việc chia sẻ nội dung trong cộng đồng người dùng Internet. Hệ
thống mạng ngang hàng và các ứng dụng chia sẻ file ngang hàng cũng trở thành
một đề tài thu hút được nhiều sự quan tâm, nghiên cứu của các nhà khoa học.
Các hệ thống chia sẻ file ngang hàng đang ngày càng phổ dụng nhờ những
lợi điểm rõ rệt so với hình thức chia sẻ file trên nền Web theo kiến trúc client server. Tuy nhiên, các ứng dụng chia sẻ file ngang hàng phổ biến hiện nay trên
Internet vẫn còn một hạn chế lớn. Chúng mới chỉ cho phép người dùng tìm kiếm
file theo tên hay gọi chung là định danh chứ chưa có chức năng truy xuất theo nội
dung. Mục đích của khóa luận tốt nghiệp này là khai thác những thành tựu mới
nhất của công nghệ truy xuất thông tin để xây dựng một ứng dụng chia sẻ file
ngang hàng có chức năng tìm kiếm theo nội dung. Hệ thống được xây dựng theo
mơ hình mạng ngang hàng lai ghép, một sự kết hợp giữa phương thức trao đổi trực
tiếp không thông qua trung gian với giải pháp sử dụng máy chủ tìm kiếm. Chiến
lược quản lý tập trung dựa trên máy chủ tìm kiếm giúp khắc phục những khó khăn
trong việc tìm kiếm thơng tin phân tán. Máy chủ tìm kiếm khơng chứa nội dung


các file. Nó chỉ cho biết ứng với mỗi từ khóa cho trước có những file nào và chúng

Trang -1-


Xây dựng ứng dụng dựa trên mạng ngang hàng
nằm ở đâu trong số các điểm nút tham gia vào hệ thống. Chương trình được phát
triển bằng ngơn ngữ lập trình Java với những tính năng tìm kiếm theo nội dung
được phát triển dựa trên thư viện mã nguồn mở Lucene. Luận văn này sẽ xây dựng
ứng dụng dựa trên mạng ngang hàng.
Luận văn được chia thành 5 chương
• Chương 1: Tổng quan về mạng chia sẻ file ngang hàng.
• Chương 2: Mô tả một số phương pháp, kỹ thuật tạo chỉ mục cho tài
liệu và tìm kiếm dựa trên chỉ mục.
• Chương 3: Giải pháp xây dựng ứng dụng.
• Chương 4: Cài đặt chương trình.
• Chương 5: Kết quả thực hiện chương trình.
Mặc dù đã cố gắng hết sức cùng với sự động viên giúp đỡ tận tình của thầy
giáo hướng dẫn xong trình độ cịn hạn chế, nội dung đề tài phức tạp, phạm vi của
đề tài rộng nên khó tránh khỏi những sai sót trong q trình làm đố án. Em rất
mong được sự chỉ dẫn của thầy cơ và sự góp ý của các bạn để chương trình của em
được hồn thiện hơn. Cuối cùng em xin chân thành cảm ơn sự động viên và giúp
đỡ nhiệt tình của thầy hướng dẫn: TS. Phạm Hồng Thái và CN. Lương Việt
Nguyên đã giúp đỡ em hoàn thành đề tài này.

Hải Phòng, Tháng 8 năm 2007
Sinh viên: Nguyễn Thị Hoa

Trang -2-



Xây dựng ứng dụng dựa trên mạng ngang hàng

Chương 1: TỔNG QUAN VỀ MẠNG CHIA SẺ FILE
NGANG HÀNG
1.1. Giới thiệu về mạng ngang hàng (peer to peer – P2P)
1.1.1. Khái niệm cơ bản
Mạng ngang hàng không phải là một vấn đề hoàn toàn mới. Các máy chủ
dịch vụ thư điện tử (Mail servers) hoặc các máy chủ phân giải tên miền (Domain
Name Servers) được kết nối với nhau tạo ra một mạng ngang hàng. Ví dụ như giữa
các máy chủ thư điện tử có thể thực hiện tương tác trực tiếp với nhau. Chúng có
thể gửi, nhận hoặc chuyển tiếp các email cho nhau.
Tuy các dịch vụ thư điện tử hay DNS đã xuất hiện từ lâu trên Internet
nhưng khái niệm mạng ngang hàng hay tính tốn ngang hàng (P2P – Peer-to-Peer)
thì mới được đưa ra gần đây. Mạng ngang hàng là những hệ phân tán với đặc thù
là không tồn tại trong nó một cơ cấu điều khiển tập trung hoặc một tổ chức có
phân cấp [16]. Trong một hệ thống thuần túy ngang hàng, chương trình chạy trên
mỗi điểm nút có vai trị hồn tồn tương đương và bình đẳng với nhau. Tính chất
này đối lập hồn tồn với kiến trúc client – server truyền thống nơi có một hoặc
một số điểm nút chỉ đóng vai trị cung cấp dịch vụ (servers) và các điểm nút còn lại
chỉ sử dụng dịch vụ (clients).
Lợi điểm rõ rệt nhất của kiến trúc ngang hàng là khả năng tận dụng tốt
hơn tài ngun (xử lý, băng thơng, lưu trữ) trong tồn mạng. Bên cạnh đó, kiến
trúc này cũng giúp cho dịch vụ mạng tránh khỏi tình trạng ngừng trệ khi server
gặp phải trục trặc. Tuy nhiên mơ hình này cũng tồn tại nhược điểm là khó kiểm
sốt được trạng thái, hành vi của các điểm nút trên toàn mạng. Ngoài ra nó cũng
địi hỏi các máy khi tham gia vào một mạng ngang hàng phải có năng lực xử
lý cũng như băng thông gần tương đương như nhau.
Không giống như trong kiến trúc client – server, hiệu suất hoạt động
chung của mạng ngang hàng có xu hướng tăng lên khi gia tăng số điểm nút tham

gia. Hiệu suất này cũng phụ thuộc vào từng ứng dụng mạng cụ thể, vào giao thức
ngang hàng và cấu hình mạng (topology).

1.1.2. Đặc điểm của các mạng ngang hàng
Các mạng ngang hàng ngày nay thường mang một số đặc trưng phổ biến

Trang -3-


Xây dựng ứng dụng dựa trên mạng ngang hàng
sau:
Các điểm nút trong mạng có thể nhận biết lẫn nhau. Nghĩa là có
một cơ chế nào đó giúp cho một điểm nút khi tham gia vào mạng có thể xác định
một máy khác cũng là thành viên của mạng. Từ đó chúng có thể định vị được
nhau, gửi thơng điệp tới nhau và nhận thông điệp từ nhau.
Các điểm nút tạo ra một mạng kết nối ảo và ở một mức trừu tượng
cao hơn so với các cơ cấu tổ chức như: tường lửa (firewall), NAT
(Network Address Translation), mạng con (subnet). Mỗi điểm nút có thể nằm
trong các mạng con khác nhau, chịu những cơ chế tổ chức, kiểm soát và giới hạn
hoàn toàn riêng biệt. Tuy nhiên khi đã tham gia vào mạng, chúng sẽ tổ chức được
những mối liên kết logic với nhau thông qua việc sử dụng các dịch vụ hoặc chạy
các ứng dụng ở tầng cao hơn so với những cơ chế vừa được nhắc tới. Tạo ra một
mạng kết nối logic giữa những điểm nút bị biệt lập hóa trong các mạng riêng
biệt chính là ý tưởng xuyên suốt nhất của kiến trúc ngang hàng.
Mỗi điểm nút tự nó có thể vừa đóng vai trị của client vừa đóng vai
trị của server. Điều này thể hiện rõ vai trị bình đẳng và độc lập của từng điểm
nút. Mọi điểm nút vừa có thể cung cấp dịch vụ cho các điểm nút khác vừa có thể
sử dụng dịch vụ của một hay nhiều điểm nút còn lại.
Xuất hiện một số nhóm điểm nút liên kết với nhau để chia sẻ dữ
liệu và cộng tác với nhau trong xử lý. Đây là sự tổ hợp lại các điểm nút có những

mối liên hệ chặt chẽ và mang tính tương tác gần gũi hơn trong quá trình hoạt
động của ứng dụng mạng.

1.1.3. Tiện ích mạng P2P mang lại.
Giúp cho người dùng dễ dàng tìm được dữ liệu cần thiết.
Tận dụng được tiện ích tổng hợp: Nơi lưu trữ, thơng tin và chi phí tính tốn
được phân phối giữa các PEER, làm các máy tính tham gia vào mạng sẽ dễ dàng
có được thơng tin u cầu.
Tăng độ tin cậy.
Chứa đựng rất nhiều thơng tin: Trong mạng P2P có rất nhiều các máy tính
tham ra vào, bản thân mỗi máy tính đã chứa nhiều thơng tin, trong khi đó các cơng
cụ tìm kiếm chỉ có thể nắm bắt được khoảng 20% nội dung của các Website.

Trang -4-


Xây dựng ứng dụng dựa trên mạng ngang hàng
1.1.4. Những khó khăn trong thiết kế mạng ngang hàng
Cân đối băng thông: Trong phần lớn các ứng dụng chạy trên
mạng ngang hàng, do mỗi điểm nút đều đóng cả hai vai trị: client và server nên
tỉ lệ sử dụng băng thơng đầu ra (outbound bandwidth) và băng thông đầu vào
(inbound bandwidth) tại từng điểm nút là tương đối cân bằng. Tuy nhiên các
nhà cung cấp dịch vụ mạng (ISPs) lại thường triển khai các mạng khơng đối
xứng trong đó dành sự ưu tiên cho phần băng thơng đầu vào. Ví dụ một số ISP
của các mạng DSL hỗ trợ
1.5Mbps băng thông đầu vào nhưng chỉ có 128Kbps cho băng thơng đầu
ra. Cho dù băng thông tổng cộng của kết nối vật lý có được mở rộng thì hạ tầng
kỹ thuật của các ISP vẫn sẽ chủ yếu hỗ trợ cơ chế bất đối xứng. Giải pháp triệt để
cho vấn đề này có thể đến từ sự cộng tác giữa các ISP và khách hàng bằng việc
triển khai những thiết bị mạng chuyên dụng.

Tổ chức không gian tên: Việc đặt tên cho các website được thực
hiện thông qua hệ thống phân cấp của dịch vụ phân giải tên miền (DNS). Tuy
nhiên trong các mạng ngang hàng không tồn tại một cơ chế tương tự. Không
như các máy chủ dịch vụ web, các điểm nút trong mạng ngang hàng không tồn tại
ở trạng thái tĩnh. Thời điểm và khoảng thời gian tham gia vào mạng của mỗi điểm
nút cũng ko thể xác định được. Công việc tạo ra một tên (định danh) duy nhất cho
các đối tượng, thành phần của mạng phải được thực hiện bởi chính người phát triển
ứng dụng và do đó nó phụ thuộc vào đặc thù của từng ứng dụng.
Chứng thực và kiểm tra quyền truy cập của người dùng: Nếu tất
cả các file đều được đặt trên server thì sẽ dễ dàng hơn trong việc chứng thực
người dùng cũng như kiểm tra quyền hạn truy cập của họ đối với dữ liệu. Tuy
nhiên do tính chất phân tán của mạng ngang hàng, công việc này phải được thực
hiện bởi từng điểm nút. Người phát triển khi muốn xây dựng một ứng dụng
ngang hàng hoàn chỉnh cần quan tâm nhiều đến vấn đề bảo mật, chống các hành
động xâm nhập trái phép làm ảnh hưởng tới dữ liệu.
Kiểm soát hành vi của người dùng: Do không thể lưu trữ tập trung
thông tin về hành động của các điểm nút nên rất khó kiểm sốt được những hành
động đó. Lấy ví dụ trong một mạng chia sẻ file ngang hàng, người dùng có thể
thực hiện một trong những hành vi không thực sự phù hợp như sau:
Không chia sẻ bất kỳ file nào trên máy mình.

Trang -5-


Xây dựng ứng dụng dựa trên mạng ngang hàng
Chia sẻ các file bị lỗi.
Chia sẻ các file chứa mã nguy hiểm, virus.
Chia sẻ các file mà nội dung của nó chắc chắn không được bất kỳ
ai quan tâm.
Không cho phép các điểm nút khác tải về những file được chia sẻ

trên máy mình.
Nếu tất cả các điểm nút tham gia đều thực hiện những hành vi tiêu cực
như trên thì hoạt động của mạng ngang hàng thực sự không hiệu quả và kém
an toàn. Tùy thuộc vào từng ứng dụng cụ thể, người thiết kế và phát triển phải
thiết lập những cơ chế kiểm soát hành vi của các điểm nút để bảo đảm rằng
chúng thực sự có những đóng góp tích cực cho cộng đồng sử dụng mạng.

1.1.5. Phân loại các ứng dụng mạng ngang hàng
Các ứng dụng mạng ngang hàng có thể được phân chia thành một số
nhóm như sau:
Chia sẻ file: Gnutella, FastTrack, Napster.
Chia sẻ tài nguyên phân tán: SETI@Home, Avaki, Entropia và
các dự án tính tốn lưới.
Phân phối nội dung: OpenCola, Blue Falcon Networks, Konitiki.
Truyền thông P2P: AOL Instant Messenger, Yahoo! Messenger,
ICQ, Jabber.
Các ứng dụng cộng tác: Hive, Groove, myJXTA.

1.2. Mơ hình mạng P2P
1.2.1. Mơ hình tập trung
Mô tả: Mạng tập trung bao gồm Server trung tâm và xung quanh Server là
các máy Clients.
Có 2 mơ hình mạng tập trung:
Single Centralized: Trong mơ hình này các máy Client sẽ kết nối trực tiếp
với 1 Server duy nhất. Trong mơ hình này tất cả các Client là bình đẳng như nhau,
các Client giao tiếp với nhau thơng qua Server trung tâm.

Trang -6-



Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 1:

Mơ hình mạng tập trung.

Cơ chế hoạt động của mơ hình mạng Single Centralized: Mỗi khi một
Client trong mạng yêu cầu một file nào đó thì u cầu sẽ được gửi đến Server,
Server nhận yêu cầu và xử lý yêu cầu, nếu trong database của Server có thơng tin
về file đó, nó sẽ thơng báo cho Client, sau đó bên có và bên xin để bắt đầu quá
trình download.
Ưu điểm của mơ hình Single Centralized: Khả năng xử lý thơng tin nhanh
chóng, đáng tin cậy, thời gian tìm kiếm thơng tin nhanh chóng và chính xác.
Nhược điểm: Có thể khi có quá nhiều các yêu cầu của Client đồng loạt được
gửi đến Server sẽ gây nên tình trạng quá tải của Server, khiến cho tốc độ hoạt động
trung bình của hệ thống bị giảm sút. Hơn nữa khi Server trung tâm bị hỏng thì tồn
bộ hệ thống sẽ ngừng hoạt động.
Multiple Mini Centralized: Bao gồm nhiều Server kết nối với nhau, mỗi
Server kết nối với nhiều Client. Một Client thì kết nối duy nhất với một Server,
một Server sẽ kết nối với nhiều Client. Các Server có thể trao đổi thơng điệp với
nhau.

Trang -7-


Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 2:

Mơ hình mạng Multiple Mini – Centralized.


Cơ chế hoạt động của mơ hình mạng Multiple Mini – Centralized: Khi một
Client u cầu file, nó sẽ gửi yêu cầu đến Server mà nó kết nối trực tiếp. Nếu trong
database của nó mà có thì sẽ có thơng điệp sẽ được gửi lại cho Client yêu cầu và
Client có file dữ liệu đó để thiết lập download. Trong trường hợp nó khơng có file
đó, nó sẽ gửi thơng điệp đến các Server hàng xóm để tiếp tục tìm kiếm.
Ưu điểm của mơ hình mạng Multiple Mini – Centralized: Có nhiều Server
vì vậy khả năng xử lý thơng tin sẽ rất lớn, bởi vì các yêu cầu của Client sẽ được
phân tán gửi đến các Server khác nhau sẽ làm giảm tải của các Server. Hơn nữa
việc có nhiều Server trong mạng sẽ làm tăng hệ số an tồn cho hệ thống vì khi một
trong những Server bị hỏng vẫn có thể đảm bảo mạng hoạt động ổn định với
những Client không kết nối với Server đó.

1.2.2. Mơ hình phân tán.
Mơ tả: Trong mạng P2P phân tán hồn tồn khơng có vai trị của các
Server, bản thân mỗi Client lại đóng vai trị của các Server.
Hai mơ hình mạng phân tán:

Trang -8-


Xây dựng ứng dụng dựa trên mạng ngang hàng
Phân tán hoàn toàn (Completely decentralized index): Mạng được tạo bởi
chỉ các Client, khi một Client gửi u cầu thơng tin thì u cầu đó sẽ được
broadcast tới tồn bộ các Client trong mạng.
Ưu điểm của mạng phân tán hoàn toàn: Đây thực sự là mơ hình gốc của
mạng P2P, u cầu được gửi đến nhiều PEER tham gia vì vậy khả năng tìm thấy
thơng tin u cầu là rất lớn.
Nhược điểm: Do không xử lý tập trung nên thời gian chờ đợi của mỗi PEER
khi gửi yêu cầu đi là rất lớn và khả năng mất mát thông tin cũng rất lớn.


Hình 3:

Mơ hình mạng phân tán.

Phân tán khơng hồn tồn (Multiple semi decentralized index): Các Client
có thể đóng vai trị của Server nếu cần thiết - trở thành super PEER, các Client
khác sẽ gửi request đến super PEER này để tìm thơng tin.
Ưu điểm: Tận dụng được nguồn tài ngun phần cứng rất lớn, tăng khả
năng của toàn hệ thống lên. Khả năng các PEER có thể trở thành super PEER là
không giới hạn.
Nhược điểm: Việc phân chia “chức năng” giữa các PEER là rất phức tạp.

Trang -9-


Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 4:

Mơ hình mạng phân tán khơng hồn tồn.

1.3. Ưu, nhược điểm của P2P
1.3.1. Ưu điểm
Máy tính được lắp đặt tại bàn làm việc của người dùng.
Người dùng tự quản lý công việc và đề ra kế hoạch bảo mật riêng.
Tất cả người dùng có thể chia sẻ tài ngun của mình theo bất cứ cách thức
nào tùy ý. Những tài nguyên này gồm có dữ liệu trong các thư mục dùng chung,
máy in, card Fax, modem,…
Mất mát dữ liệu do sơ ý không ảnh hưởng lớn đến hệ thống.

Cáp đơn giản, dễ thấy, dễ sử dụng để nối từ máy tính này đến máy tính khác
trong mạng.
Trong mơi trường P2P mỗi máy tính phải sử dụng tài ngun của mình để
hỗ trợ cho người dùng cục bộ, sử dụng tài nguyên bổ sung để hỗ trợ cho người
dùng truy cập trong mạng từ xa.

Trang -10-


Xây dựng ứng dụng dựa trên mạng ngang hàng
Chi phí thiết lập duy trì ứng dụng thấp, mỗi máy tham gia vào mạng sẽ
đóng góp một phần tài nguyên và băng thông, dữ liệu của mạng nằm trên các máy
tham gia.
Mạng ngang hàng giải quyết được vấn đề cân bằng tải, các máy tính chia sẻ
tài ngun của mình đồng thời nhận tài ngun từ máy tính khác cơng việc được
chia nhỏ đến các máy.

1.3.2. Nhược điểm
Thời gian trao đổi thông tin trong P2P lớn hơn rất nhiều so với trong
Client/Server.
Vấn đề về bảo mật, ngồi ra cịn vấn đề trong việc lưu trữ những thông tin
cần thiết lâu dài.
Các kết nối trong mạng ngang hàng có độ trễ cao hơn so với các kết nối
TCP hoặc UDP thông thường.
Việc quản lý thơng tin, tạo kết nối, tìm kiếm các máy khác trong mạng phức
tạp.

1.4. Một số ứng dụng chia sẻ file ngang hàng
Ý tưởng về một ứng dụng chia sẻ file ngang hàng lần đầu tiên được đưa
ra bởi chàng sinh viên 18 tuổi Shawn Fanning. Fanning muốn tạo ra ứng dụng

kết hợp chức năng của một máy tìm kiếm (search engine) với khả năng chia sẻ
file và hội thoại qua mạng. Không đầy một năm, Napster đã trở thành một site
phát triển nhanh nhất trong lịch sử và là một ứng dụng cực kỳ phổ biến trên
Internet. Nó cho phép người dùng có thể tìm kiếm và tải về các file nhạc một
cách nhanh chóng và tiện lợi. Tuy nhiên sự phát triển bùng nổ của Napster đã
dẫn đến những cuộc tranh cãi về vấn đề bảo vệ bản quyền trong ngành âm nhạc.
Những cuộc tranh cãi này đã dẫn đến việc kiện tụng. Cuối cùng, Napster bị buộc
phải đóng cửa và ngừng cung cấp dịch vụ.
Bước đi tiên phong của Napster đã dẫn tới sự ra đời của một loạt các
chương trình chia sẻ file ngang hàng khác trên mạng như Gnutella hay Freenet.
Tuy nhiên, các ứng dụng này ko sử dụng server tập trung như trong Napster. Do

Trang -11-


Xây dựng ứng dụng dựa trên mạng ngang hàng
khơng có một điểm trung gian cố định trong mạng nên khó có thể kết tội đối với
các ứng dụng này là tiếp tay cho nạn vi phạm bản quyền. Ở đây sự tồn tại của
máy chủ tìm kiếm tập trung chính là điểm khác biệt giữa hai loại ứng dụng chia sẻ
file ngang hàng [13].

1.4.1. Hoạt động của Napster
Máy chủ tìm kiếm trong hệ thống Napster có trách nhiệm lưu trữ danh
sách các điểm nút hiện đang tham gia vào mạng và danh sách các file hiện
chúng đang chia sẻ. Trong thông điệp khởi tạo kết nối, điểm nút sẽ chuyển cho
máy chủ tìm kiếm tên đăng nhập, mật khẩu, tốc độ kết nối Internet và địa chỉ cổng
của tiến trình (process) chia sẻ file. Khi tìm kiếm một bài hát, điểm nút gửi đến cho
máy chủ tìm kiếm một từ khóa hoặc cụm từ khóa và số lượng kết quả tối đa mà
nó muốn nhận về. Máy chủ sẽ làm nhiệm vụ tìm kiếm các điểm nút hiện đang
kết nối vào mạng và có khả năng đáp ứng yêu cầu. Thơng tin về các điểm nút đó

sẽ gửi về cho điểm nút đưa ra yêu cầu. Các thông tin gửi về sẽ bao gồm địa chỉ IP,
số cổng dịch vụ và tốc độ kết nối Internet của từng điểm nút trong danh sách kết
quả. Sau đó người dùng có thể chọn lựa một trong số các điểm nút, thực hiện kết
nối trực tiếp và tiến hành tải file về.

Trang -12-


Xây dựng ứng dụng dựa trên mạng ngang hàng
Hình 5:

Kiến trúc của Napster

Có hai lý do chủ yếu giải thích tại sao Fanning sử dụng mạng ngang hàng
thay vì lưu trữ tất cả các file trên một server. Thứ nhất là do khả năng lưu trữ của
server là hữu hạn, không thể đủ chỗ cho hàng tỉ file nhạc mà người dùng trên
mạng quan tâm. Nguyên nhân thứ hai là băng thơng hạn hẹp của server khó có
thể đáp ứng được hàng ngàn yêu cầu download mỗi giây [13].

1.4.2. Hoạt động của Gnutella
Gnutella được thiết kế dựa trên ý tưởng che giấu định danh của các điểm nút
tham gia hay còn gọi là cơ chế nặc danh (anonymous). Các điểm nút phải tự nhận
diện lấy nhau bằng cách gửi đi thông điệp ping để hỏi và gửi trả thông điệp pong
để xác nhận lại. Nội dung của thông điệp pong bao gồm địa chỉ IP và dach sách
các file chia sẻ trên điểm nút được hỏi.

Hình 6:

Kiến trúc của Gnutella.


Để tìm kiếm ra điểm nút hiện đang chia sẻ một file cho trước, thông điệp
truy vấn phát đi trong mạng theo cách thức được mơ tả bởi hình vẽ trên. Từ điểm
nút đưa ra u cầu tìm kiếm, thơng điệp được chuyển tới một số điểm nút lân
cận được lựa chọn. Tới mỗi điểm nút, truy vấn tìm kiếm sẽ được đối sánh với
danh sách các file đang chia sẻ tại đó đi kèm một tiêu chí xác định trước. Nếu tiêu

Trang -13-


Xây dựng ứng dụng dựa trên mạng ngang hàng
chí này thỏa mãn thì danh sách kết quả sẽ được gửi về ngay cho điểm nút nguồn.
Nếu tiêu chí khơng được thỏa mãn thì thơng điệp truy vấn sẽ tiếp tục được chuyển
đến cho các điểm nút lân cận tiếp theo. Q trình này sẽ dừng lại cho đến khi tiêu
chí tìm kiếm đã được thỏa mãn hoặc sau một số lần chuyển tiếp thông điệp nhất
định. Khi đã thu thập được danh sách kết quả hồn chỉnh, người dùng có thể kết
nối trực tiếp đến và tải file về từ điểm nút được lựa chọn.

1.4.3. So sánh Gnutella và Napster
2 ứng dụng Gnutella và Napster đều có những ưu và nhược điểm riêng. Một
trong số những ưu điểm của Napster là tính dễ sử dụng. Napster có một cơ chế
tìm kiếm tập trung nhanh và hiệu quả. Ngoài ra trong Napster người ta có thể xác
định rõ ràng đâu là bên cung cấp dịch vụ (người quản lý máy chủ tìm kiếm) và
đâu là bên sử dụng dịch vụ (người đăng nhập vào mạng tại các điểm nút). Nhờ
thế mà việc duy trì, phát triển dịch vụ đối với các công ty quản lý cũng như việc
xác thực đối với người dùng trở nên dễ dàng hơn. Tuy nhiên, hệ thống Napster
cũng bộc lộ một số nhược điểm. Do việc tìm kiếm diễn ra tập trung ở phía máy
chủ nên khi mạng mở rộng, số lượng điểm nút truy cập tăng lên thì có thể dẫn
tới máy chủ tìm kiếm bị quá tải. Một hạn chế nữa của Napster là trong mạng
chỉ có thể chia sẻ các file MP3. Ngồi ra Napster không hỗ trợ bất kỳ định dạng file
nhạc nào khác.

Với cơ chế làm việc phi tập trung, Gnutella đã hoàn toàn tránh được các rắc
rối về mặt pháp lý liên quan đến việc bảo vệ bản quyền âm nhạc. Ngồi MP3,
Gnutella cịn hỗ trợ được nhiều định dạng file nhạc khác. Tuy vậy, vẫn còn tồn
tại nhiều nhược điểm đối với hệ thống Gnutella. Do cơ chế hoạt động hồn tồn
phân tán và bình đẳng nên khơng thực sự tồn tại một nhà cung cấp và quản lý
dịch vụ tập trung. Bởi vậy sẽ khơng có các hoạt động hỗ trợ kỹ thuật dành cho
ứng dụng khi có yêu cầu của người dùng hoặc khi xảy ra trục trặc, sự cố. Thời
gian tìm kiếm file trong Gnutella cũng lâu hơn do phải chuyển thơng điệp tìm kiếm
tới nhiều điểm nút để dị hỏi. Băng thơng của mạng cũng bị tiêu tốn nhiều cho
việc quảng bá thơng điệp tìm kiếm này. Một hạn chế nữa của Gnutella là khi
một điểm nút đăng nhập vào mạng nó phải liên tục xử lý, trả lời các yêu cầu
truy vấn cũng như tiêu tốn băng thông cho việc upload file tới các điểm nút
khác. Cuối cùng, do các điểm nút khi tham gia vào mạng đều là nặc danh nên rất
khó thẩm tra, xác thực được tính hợp lệ và an tồn của các thông điệp truy vấn

Trang -14-


Xây dựng ứng dụng dựa trên mạng ngang hàng
cũng như nội dung các file dữ liệu tải về.

1.5. Một số nghiên cứu lý thuyết
Tài liệu [14] trình bày kiến thức tổng quan về công nghệ mạng ngang
hàng. Những kết quả nghiên cứu mới nhất về lĩnh vực chia sẻ file ngang hàng
nói riêng được giới thiệu chi tiết trong [17]. Bài báo [7] tập trung khảo sát
những chiến lược sử dụng nhiều máy chủ tìm kiếm trong các hệ thống chia sẻ file
ngang hàng theo mơ hình lai ghép. Ở đây các tác giả đã đưa ra những đánh giá lý
thuyết về hiệu quả của các chiến lược và trình bày một số kết quả thực nghiệm.
Một số vấn đề tìm kiếm theo nội dung trong mạng thuần túy ngang hàng được
trình bày trong [9]. Bài báo [18] đưa ra một mơ hình định tuyến thơng điệp tìm

kiếm trong mạng dựa trên nội dung của truy vấn. Trong mơ hình này, mỗi điểm
nút sẽ lưu trữ lại các kết quả tìm kiếm gần nhất được trả về từ một số điểm nút lân
cận với nó. Thơng điệp tìm kiếm sẽ được gửi đến một trong các điểm nút lân cận
dựa trên việc so sánh nội dung của nó với danh sách kết quả gần nhất. Bài báo
[10] cũng đề xuất và đánh giá bằng thực nghiệm mơ hình tốn học được áp dụng
để tìm kiếm nội dung tài liệu trong mạng ngang hàng lai ghép. Tuy nhiên đây là
một mô hình dựa trên việc lựa chọn tài liệu cũng như lựa chọn điểm nút lân cận
theo xác suất thay vì tìm kiếm trực tiếp dựa trên chỉ mục của tài liệu.

Trang -15-


Xây dựng ứng dụng dựa trên mạng ngang hàng

Chương 2: MÔ TẢ MỘT SỐ PHƯƠNG PHÁP, KỸ
THUẬT TẠO CHỈ MỤC CHO TÀI LIỆU VÀ TÌM
KIẾM DỰA TRÊN CHỈ MỤC
2.1. Tổ chức chỉ mục tìm kiếm
Trong mục này sẽ tập trung vào việc trình bày những cơ chế hỗ trợ tìm
kiếm một cách hiệu quả trên file văn bản với giả thiết xâu truy vấn bao gồm một
tập hợp các từ hoặc cụm từ. Nhiệm vụ của thao tác tìm kiếm là trả về danh sách
các file mà nội dung của chúng có chứa các từ, cụm từ trong xâu truy vấn. Tần suất
xuất hiện các từ và thậm chí cả vị trí chính xác của các từ trong file văn bản cũng
được xem là một tiêu chí trong việc xếp hạng kết quả tìm kiếm.
Ta có thể dễ dàng hình dung ra một phương pháp tìm kiếm đơn giản nhất
dựa trên việc quét tuần tự toàn bộ nội dung file văn bản. Qua mỗi lượt quét như
vậy, ta có thể thu được những thông tin về số lần xuất hiện cũng như vị trí của các
từ khóa tìm kiếm trong file văn bản. Tuy nhiên phương pháp này chỉ phù hợp với
những file văn bản có kích thước nhỏ. Bên cạnh đó, mỗi lần có một truy vấn tìm
kiếm gửi tới, ta lại phải thực hiện quét lại toàn bộ file từ đầu đến cuối. Đây là một

thao tác lặp lại và tốn kém thời gian.
Để tăng tốc độ tìm kiếm, người ta đề xuất ra phương pháp thực hiện quét
một lần trên các file văn bản và lưu lại danh sách các thành tố (từ, cụm từ) có trong
file đó cũng như các thơng tin đi kèm với mỗi thành tố (vị trí, tần suất, độ quan
trọng, …). Các thông tin này sẽ được tổ chức theo một cấu trúc dữ liệu riêng và
được gọi là chỉ mục. Lúc này các thao tác tìm kiếm sẽ được tiến hành dựa trên chỉ
mục thay vì được thực hiện trực tiếp trên file văn bản.

2.2. Tạo chỉ mục
Tạo chỉ mục là một bước quan trọng, quyết định đến việc tăng tốc độ, hiệu
quả và chất lượng tìm kiếm. Hiện nay có ba phương pháp chủ yếu để tạo chỉ mục
dựa trên việc sử dụng các cấu trúc: file đảo ngược (Inverted file), mảng hậu tố
(Suffix array) và file chữ ký (Signature file) [15]. Chúng tôi sẽ tập trung mô tả

Trang -16-


Xây dựng ứng dụng dựa trên mạng ngang hàng
cách tạo chỉ mục dựa trên cấu trúc file đảo ngược – phương pháp tạo chỉ mục phổ
biến nhất hiện nay.
File đảo ngược là một cấu trúc dùng để tạo chỉ mục bằng phương pháp
hướng từ (word-oriented) nhằm hỗ trợ tìm kiếm nhanh trên dữ liệu văn bản. Một
cấu trúc file đảo ngược bao gồm hai thành phần cơ bản: bảng từ vựng (vocabulary)
và bảng vị trí (occurrences). Bảng từ vựng là một tập hợp các từ phân biệt xuất
hiện trong file văn bản. Tương ứng với mỗi từ trong bảng từ vựng là một danh
sách mô tả thông tin về tất cả các vị trí trong văn bản mà từ đó xuất hiện. Tập hợp
các danh sách này của toàn bộ các từ có trong bảng từ vựng tạo nên bảng vị trí. Ví
dụ ở hình dưới đây cho ta hình dung một so sánh giữa đoạn văn bản đầu vào và kết
quả tạo ra sau bước tạo chỉ mục dựa trên cấu trúc file đảo ngược. Ở đây có sự
chuyển đổi từ danh sách các từ được sắp theo thứ tự trong văn bản gốc sang tập

hợp các từ được sắp theo thứ tự từ điển. Lúc này đối tượng quan tâm của chúng ta
khơng phải là tồn bộ nội dung của file văn bản gốc nữa mà là tập hợp các từ xuất
hiện trong đó. Đây chính là sự giải thích ý nghĩa cho tên của cấu trúc “file đảo
ngược”.

Hình 7:

Tạo chỉ mục theo cấu trúc file đảo ngược.

Khơng gian cần thiết để lưu trữ bảng từ vựng là tương đối nhỏ. Theo định
β

luật Heaps kích thước của bảng từ vựng tăng trưởng theo cỡ O(n ) trong đó n là cỡ
của văn bản và β là một hằng số nằm trong khoảng (0, 1) phụ thuộc vào từng văn

Trang -17-


Xây dựng ứng dụng dựa trên mạng ngang hàng
bản [11]. Trong thực tế β biến thiên trong khoảng từ 0.4 đến 0.6. Bảng vị trí địi
hỏi một khơng gian lưu trữ lớn hơn với kích thước tăng trưởng theo cỡ O(n).
Trong thực tế, bảng vị trí chiếm một khơng gian lưu trữ khoảng 30% tới 40% so
với kích thước của tài liệu. Để giảm kích thước lưu trữ bảng vị trí, một kỹ thuật có
tên gọi là đánh địa chỉ khối được sử dụng. File văn bản được phân chia thành các
khối và thơng tin trong bảng vị trí sẽ được trỏ đến các khối thay vì tới các từ. Bằng
cách đánh địa chỉ khối, kích thước của thành phần con trỏ định vị sẽ nhỏ hơn do số
lượng khối ít hơn số lượng từ. Ngoài ra tất cả các vị trí xuất hiện của cùng một từ
trong một khối sẽ được rút gọn về chỉ một tham chiếu chung như được thể hiện ở
hình dưới đây. Các khối có thể cùng kích thước hoặc được phân chia theo cấu trúc
nội dung: đoạn tài liệu (paragraph), tệp tài liệu (file), …


Hình 8:

Tạo chỉ mục theo cấu trúc file đảo ngược sử dụng kỹ thuật đánh địa
chỉ khối

2.3. Tìm kiếm dựa trên chỉ mục
Dựa trên hệ thống chỉ mục được tổ chức theo cấu trúc file đảo ngược, thuật
tốn tìm kiếm thường tuân theo 3 bước sau:
Tìm kiếm trên bảng từ vựng: Tách, phân tích xâu truy vấn thành các từ đơn
hoặc các cụm từ. Thực hiện tìm kiếm các từ, cụm từ này trên bảng từ vựng.

Trang -18-


Xây dựng ứng dụng dựa trên mạng ngang hàng
Thu thập danh sách thơng tin vị trí của các từ, cụm từ tìm được sau bước
một thơng qua bảng vị trí.
Xử lý các thông tin thu thập được từ bước hai và tạo ra danh sách kết quả
tìm kiếm.
Do bảng từ vựng được sắp xếp theo thứ tự từ điển nên thao tác tìm kiếm
trên đó mất một chi phí cỡ O(logn) bằng cách sử dụng thuật tốn tìm kiếm nhị
phân. Bước thứ hai của thuật toán đơn giản chỉ là thu thập lại danh sách về thơng
tin vị trí của các từ đơn lẻ xuất hiện trong truy vấn thỏa mãn kết quả tìm kiếm trên
bảng từ vựng. Bước thứ ba tương đối phức tạp trong trường hợp phải tìm kiếm cho
các cụm từ. Khi đó người ta phải tổ chức tìm kiếm đồng thời trên các danh sách
ứng với các từ đơn có mặt trong cụm. Bằng phương pháp trộn nhiều danh sách
được sắp theo thứ tự vị trí người ta có thể tìm được những chuỗi tuần tự các từ
theo đúng thứ tự trong cụm. Trong trường hợp chỉ mục có sử dụng kỹ thuật đánh
địa chỉ khối, ta sẽ phải tiếp tục duyệt tuần tự bên trong nội dung của nhiều khối thu

được từ các danh sách thơng tin về vị trí để tìm ra những cụm thỏa mãn. Các xấp
xỉ được đánh giá bằng lý thuyết cũng như các kết quả thực nghiệm cho thấy việc
sử dụng chỉ mục theo cấu trúc file đảo ngược đem lại một thời gian tìm kiếm cũng
như kích thước cần lưu trữ tăng theo kích thước file văn bản với một tốc độ chậm
hơn tốc độ tăng của hàm tuyến tính. Điều này là khơng thể đạt được khi thực hiện
tạo chỉ mục theo các cấu trúc khác.

2.4. Xếp hạng kết quả tìm kiếm
Khi tiến hành truy vấn tìm kiếm theo nội dung một tập hợp văn bản cho
trước (gọi là thư viện) thì người dùng khơng chỉ muốn nhận về danh sách kết quả
tìm kiếm mà họ cịn muốn danh sách này phải được sắp xếp theo một tiêu chí nào
đó. Tiêu chí này chính là độ liên quan (relevance) giữa các kết quả với truy vấn tìm
kiếm do người dùng đưa ra. Việc này quy về bài toán xác định độ liên quan giữa
một truy vấn q với các tài liệu trong một thư viện C cho trước. Bài toán này đã
được nghiên cứu khá chi tiết và tồn diện trong lĩnh vực truy xuất thơng tin. Trong
mục này, chúng tơi sẽ trình bày tóm lược nội dung của một thuật toán xác định độ

Trang -19-


Xây dựng ứng dụng dựa trên mạng ngang hàng
liên quan nổi tiếng và hiện đang được sử dụng rộng rãi. Đó là thuật tốn TF-IDF
[12].
Xét bài tốn trong trường hợp đơn giản: ta xem mỗi truy vấn q gồm một tập
hợp các từ khóa k . Với một văn bản D bất kỳ thuộc thư viện C thì ta có:
i

R(q) = Σ R(k ) (2.3.1)
i


Trong đó R(q) là độ liên quan của q với D còn R(k ) là độ liên quan của từ
i

khóa k với D.
i

Nếu một từ khóa k xuất hiện nhiều lần hơn từ khóa k trong văn bản D thì
i

j

khi chỉ xét trong phạm vi văn bản D ta có thể nói rằng từ khóa k mang ý nghĩa
i

quan trọng hơn từ khóa k . Hay trong phần lớn các trường hợp ta có thể rút ra rằng
j

từ khóa k có ảnh hưởng tới nội dung của văn bản D lớn hơn hay R(k ) > R(k ). Vậy
i

i

j

tần suất xuất hiện của một từ khóa trong văn bản tỉ lệ thuận với độ liên quan của
nó với văn bản đó. Đại lượng tần suất xuất hiện này của từ khóa k được gọi là tf(i)
i

(tf viết tắt của term frequency).
Mặt khác nếu ta xét trên phạm vi tồn bộ thư viện C chứ khơng chỉ trong

văn bản D nữa thì có một vấn đề khác nảy sinh. Nếu một từ khóa k xuất hiện trong
văn bản D và cũng xuất hiện trong nhiều văn bản khác thuộc C thì ta có thể thấy từ
khóa k khơng cịn mang tính đặc trưng cho văn bản D nữa. Lúc này khơng chỉ có
văn bản D mà từ khóa k cịn liên quan tới nội dung của nhiều văn bản khác nữa.
Khái quát điều này ta có thể suy ra nếu từ khóa k xuất hiện trong càng nhiều văn
bản thuộc C thì độ liên quan của nó đến D phải càng nhỏ hay R(k) tỉ lệ nghịch với
số văn bản trong C có chứa từ khóa k. Để định lượng cho tính chất này, đối với từ
khóa k ta đưa vào tham số idf(i) được tính như sau:
i

idf(i) = log(N/n ) (2.3.2)
i

Trang -20-


Xây dựng ứng dụng dựa trên mạng ngang hàng
Trong đó N là số văn bản có trong C và n là số văn bản trong C có chứa k .
i

i

idf(i) sẽ tăng khi n giảm nghĩa là có ít văn bản trong C chứa k (idf viết tắt của
i

i

inverse document frequency).
Từ hai nhận xét quan trọng trên ta có thể rút ra rằng:
R(k ) = tf(i) * idf(i) (2.3.3)

i

Từ hai cơng thức (2.3.1) và (2.3.3) ta có thể suy ra công thức ước lượng độ
liên quan của truy vấn q với một văn bản D thuộc C như sau:
R(q) = Σ (tf(i) * idf(i)) (2.3.4)
Như vậy ta có thể sắp xếp các văn bản thuộc C theo thứ tự giảm dần của đại
lượng R(q). Nếu đặt một ngưỡng dưới đối với giá trị này thì ta sẽ lọc ra được một
danh sách các tài liệu kết quả có độ liên quan với q giảm dần. Đó chính là nội dung
của thuật toán TF-IDF .

Trang -21-


Xây dựng ứng dụng dựa trên mạng ngang hàng

Chương 3: GIẢI PHÁP XÂY DỰNG ỨNG DỤNG
3.1. Khái quát ý tưởng
Trong mục này chúng tôi sẽ đưa ra giải pháp xây dựng một chương trình
ứng dụng chia sẻ file trong mạng ngang hàng theo kiến trúc lai ghép cung cấp khả
năng tìm kiếm theo nội dung đối với các tài liệu thuần văn bản (viết tắt là tài liệu).
Ứng dụng cần đảm bảo thực hiện được 3 chức năng lớn sau:
Cho phép người dùng tại các điểm nút khi tham gia vào mạng có thể tiến
hành chia sẻ và dừng chia sẻ các tài liệu nằm trên máy của mình.
Cho phép người dùng có thể đưa ra những truy vấn để tìm kiếm theo nội
dung các tài liệu hiện đang được chia sẻ trên phạm vi toàn mạng.
Cho phép người dùng tải về các tài liệu được chia sẻ nằm trên một điểm nút
khác.

Hình 9:


Luồng thơng điệp giữa các thành phần trong mạng.

Trang -22-


Xây dựng ứng dụng dựa trên mạng ngang hàng
Để thực hiện được ba chức năng lớn nêu trên chương trình sẽ được tách
thành hai thành phần triển khai ở hai phía: phía các điểm nút và phía máy chủ tìm
kiếm. Nhiệm vụ của thành phần triển khai trên máy chủ tìm kiếm:
Tổ chức xây dựng và cập nhật chỉ mục tìm kiếm.
Tiếp nhận truy vấn từ các điểm nút, tìm kiếm dựa trên chỉ mục và trả về
danh sách kết quả.
Nhiệm vụ của thành phần triển khai tại các điểm nút:
Gửi tới máy chủ tìm kiếm các yêu cầu đăng nhập vào và đăng xuất ra khỏi
hệ thống chia sẻ file ngang hàng.
Tiếp nhận yêu cầu của người dùng và gửi đến máy chủ tìm kiếm các thơng
báo chia sẻ hoặc dừng chia sẻ các file được lưu trữ tại các điểm nút.
Tiếp nhận truy vấn do người dùng nhập, gửi đến máy chủ tìm kiếm và tổ
chức hiển thị kết quả trả về.
Tiếp nhận và gửi yêu cầu tải tài liệu kết quả của người dùng tới điểm nút
đích. Đóng vai trị là phía client trong hoạt động tải tài liệu.
Tiếp nhận yêu cầu tải tài liệu được chia sẻ trên máy cục bộ và đóng vai trị
một server cung cấp tài liệu cho các điểm nút khác.
Vấn đề cơ bản và khó khăn nhất của một hệ thống tìm kiếm theo nội dung
là tổ chức tạo chỉ mục cho các tài liệu đồng thời duy trì việc cập nhật cho hệ thống
chỉ mục này. Trong khuôn khổ một ứng dụng chia sẻ file ngang hàng, có ba sự
kiện xảy ra ở phía các điểm nút địi hỏi phải tiến hành cập nhật hệ thống chỉ mục
là: chia sẻ một tài liệu, dừng chia sẻ một tài liệu và đăng xuất khỏi hệ thống. Bởi vì
đó là ba sự kiện dẫn đến việc thay đổi thông tin liên quan tới tính tồn tại của một
tài liệu trong mạng chia sẻ file ngang hàng. Bài toán đặt ra là phải tiến hành cập

nhật hệ thống chỉ mục tập trung nằm trên máy chủ tìm kiếm cho tất cả các tài liệu
được lưu trữ phân tán, rải rác trên các điểm nút. Để giải quyết bài tốn này, chúng
tơi đề xuất giải pháp phân chia việc việc cập nhật chỉ mục làm hai bước. Bước đầu
tiên được thực hiện tại các điểm nút và bắt đầu khi có một trong ba sự kiện nói trên
xảy ra. Sau khi bước này kết thúc, các điểm nút thơng báo tới máy chủ tìm kiếm để

Trang -23-


Xây dựng ứng dụng dựa trên mạng ngang hàng
thực hiện bước thứ hai là cập nhật trực tiếp vào hệ thống chỉ mục tập trung. Chi
tiết hơn, với mỗi sự kiện xảy ra ở phía điểm nút ta sẽ thực hiện như sau:
Với sự kiện một tài liệu được chia sẻ: Bước đầu tiên, điểm nút sẽ tạo chỉ
mục cho tài liệu được chia sẻ. Kết thúc bước này, bảng chỉ mục nhỏ của tài liệu
này được chuyển lên cho máy chủ tìm kiếm. Tại máy chủ tìm kiếm, bước thứ hai
là trộn bảng chỉ mục nhỏ này với bảng chỉ mục tập trung hiện thời để tạo ra một
bảng chỉ mục tập trung mới.
Với sự kiện dừng chia sẻ một tài liệu: Điểm nút sẽ thực hiện bước đầu tiên
và xác định được định danh của tài liệu sẽ dừng chia sẻ. Định danh này được
chuyển lên cho máy chủ tìm kiếm. Máy chủ tìm kiếm sẽ tiến hành xóa bỏ các
thơng tin chỉ mục liên quan đến tài liệu này trong bảng chỉ mục tập trung.
Đăng xuất khỏi hệ thống: Hành động này của một điểm nút tương đương
với việc dừng chia sẻ tất cả các tài liệu hiện đang được chia sẻ trên điểm nút đó.
Sau bước đầu tiên, điểm nút cần chuyển tới cho máy chủ tìm kiếm định danh của
chính nó và cơng việc của máy chủ tìm kiếm là tìm và xóa bỏ mọi thông tin chỉ
mục liên quan đến các tài liệu được chia sẻ nằm trên điểm nút này.
Ngoài ra chúng ta cần quan tâm tới một sự kiện nữa xảy ra khi người dùng
trên một điểm nút tiến hành cập nhật lại file tài liệu mà nội dung của nó đã có sự
thay đổi tính từ lần chia sẻ đầu tiên hoặc từ lần cập nhật cuối cùng. Ta có thể xem
sự kiện này tương đương với việc xảy ra liên tiếp hai sự kiện: dừng chia sẻ tài liệu

đã thay đổi nội dung và sau đó tiến hành lặp lại bước chia sẻ chính tài liệu đó.
Một điểm cần chú ý là máy chủ tìm kiếm sẽ tiến hành cập nhật chỉ mục tập
trung trong điều kiện tương tranh (concurrent). Nghĩa là máy chủ tìm kiếm có thể
phải nhận đồng thời nhiều yêu cầu cập nhật chỉ mục tập trung từ các điểm nút. Có
thể thấy rằng nếu khơng đồng bộ hóa các hoạt động cập nhật này thì sẽ dẫn đến
tình trạng dữ liệu (chỉ mục) trở nên khơng hợp lệ do cùng lúc bị thay đổi bởi nhiều
tiểu trình chạy song song.

Trang -24-


×