Khóa luận Xây dựng ứng dụng tìm kiếm thông tin theo vị trí trên mạng ngang hàng có cấu trúc

MỤC LỤC

LỜI MỞ ĐẦU 1

CHƯƠNG 1. MÔ HÌNH DỊCH VỤ DỰA VÀO VỊ TRÍ 3

1.2. Tổng quan về dịch vụ dựa vào vị trí 3

1.3. Các thành phần của dịch vụ dựa vào vị trí 4

1.3.1. Thiết bị di động 5

1.3.2. Mạng kết nối 6

1.3.3. Thành phần định vị 8

1.3.4. Nhà cung cấp ứng dụng và dịch vụ 9

1.4. Cách thức hoạt động của dịch vụ dựa vào vị trí 10

1.5. Tìm kiếm thông tin dựa vào vị trí 11

1.6. Tổng kết 12

CHƯƠNG 2. PHƯƠNG PHÁP TÌM KIẾM THÔNG TIN TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC 13

2.1. Tổng quan về mạng ngang hàng 13

2.1.1. Khái niệm mạng ngang hàng 13

2.1.2. Ưu điểm và nhược điểm của mạng ngang hàng 14

2.1.3. Phân loại mạng ngang hàng 15

2.2. Mạng ngang hàng có cấu trúc 16

2.1.1. Tổng quan về mạng ngang hàng có cấu trúc 16

2.2.2. Mạng ngang hàng có cấu trúc CHORD 18

2.3. Tìm kiếm thông tin trên mạng ngang hàng có cấu trúc 22

2.3.1. Tìm kiếm chính xác 22

2.3.2. Tìm kiếm theo thuộc tính – giá trị 22

2.3.3. Tìm kiếm theo khoảng 23

2.4. Kết luận 24

CHƯƠNG 3. XÂY DỰNG DỊCH VỤ TÌM KIẾM THÔNG TIN THEO VỊ TRÍ DỰA TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC 26

3.1. Mục đích và yêu cầu của tìm kiếm thông tin dựa vào vị trí 26

3.2. Giải pháp thực hiện 27

3.2.1. Tạo câu truy vấn phù hợp với ngữ cảnh 27

3.2.2. Biểu diễn dữ liệu theo vị trí 27

3.2.3. Chèn dữ liệu vào mạng ngang hàng có cấu trúc 29

3.2.4. Tìm kiếm dữ liệu 30

3.3. Cấu trúc hệ thống 32

3.4. Hoạt động của hệ thống 33

3.5. Đặc điểm của hệ thống đề xuất 36

3.6. Kết luận 37

CHƯƠNG 4. THỰC THI VÀ ĐÁNH GIÁ CHƯƠNG TRÌNH 38

4.1. Kết quả thực thi chương trình 38

4.2. Mô hình thử nghiệm 39

CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TIẾP THEO 43

5.1. Kết luận 43

5.2. Hướng phát triển tiếp theo của khoá luận 44

 

 

doc51 trang | Chia sẻ: netpro | Lượt xem: 1719 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Khóa luận Xây dựng ứng dụng tìm kiếm thông tin theo vị trí trên mạng ngang hàng có cấu trúc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hàng ngày càng trở nên phổ biến trong các ứng dụng chia sẻ trên mạng. Các mạng ngang hàng đã xuất hiện từ những năm 1980 và phát triển mạnh mẽ như APANET, Usenet, FidoNet. Hiện nay, với sự tham gia của các công ty thương mại và phi thương mại như Napster, Gnutella mạng ngang hàng ngày càng lớn mạnh và được được nhiều người sử dụng. Nhất là hiện nay khi lượng thông tin truyền tải trên mạng vô cùng lớn, nhu cầu tìm kiếm và chia sẻ thông tin cũng tăng lên. Mạng ngang hàng được xây dựng giữa các máy tính độc lập có khả năng chia sẻ dữ liệu và tận dụng tài nguyên để chia sẻ cho các máy tính khác. 2.1. Tổng quan về mạng ngang hàng 2.1.1. Khái niệm mạng ngang hàng Mạng ngang hàng là một cấu trúc được tạo nên bởi các máy tính liên kết với nhau, vai trò của mỗi máy tính là như nhau, mỗi máy tính là một phần và duy trì sự tồn tại của mạng. Các máy tính trong mạng thường xuyên liên lạc với các máy tính khác để ổn định mạng và chia sẻ dữ liệu với nhau. Mạng ngang hàng có nhiều ứng dụng và ứng dụng phổ biến nhất là chia sẻ tệp tin, tất cả các dạng tệp tin chia sẻ như âm thanh, hình ảnh, dữ liệu... Hình 9: Mô hình mạng ngang hàng Một mạng ngang hàng đúng nghĩa không có khái niệm máy chủ và máy khách hay nói cách khác tất cả các máy tham gia đều bình đẳng và được gọi là Peer. Peer là một nút mạng vừa đóng vai trò là máy chủ với các máy khác trong mạng vừa đóng vai trò là máy khách khi được các máy khác phục vụ mình. Dữ liệu được chứa trên các máy tính và chia sẻ trực tiếp với nhau cũng thông qua các máy tính tham gia vào mạng ngang hàng. 2.1.2. Ưu điểm và nhược điểm của mạng ngang hàng Mô hình mạng ngang hàng rất phù hợp với tính phi tập trung của Internet, bởi bản chất của tài nguyên là phân tán, các thông tin lưu trữ không chỉ trên các máy chủ mà ở cả các máy khách. Xét về khía cạnh sức mạnh xử lý, mạng mạng ngang hàng có khả năng xử lý cao hơn cả những máy chủ lớn nhất hiện nay do đó sử dụng mạng mạng ngang hàng có thể cải thiện đáng kể hiệu quả của các phương pháp phân tích, xử lý dữ liệu và giải các bài toán phức tạp (đây đều là những vấn đề vượt ra ngoài tầm xử lý của những máy chủ tập trung khi số lượng truy vấn, tính toán tăng lên đến hàng trăm triệu mỗi ngày). Sở dĩ như vậy là vì mạng ngang hàng đã tận dụng khả năng xử lý, khả năng lưu trữ còn thừa của các máy tính tham gia mạng với những thuật toán phân tán hợp lý. Công nghệ này đã chia việc xử lý lớn ra thành những việc xử lý nhỏ có thể phân tán giữa các máy tính trong một mạng. Mỗi máy tính sẽ xử lý một phần dữ liệu và trả về kết quả xử lý cho máy tính trung tâm, máy tính trung tâm sẽ ghép nối các kết quả này lại với nhau. Bằng cách đó, ta có thể giải quyết được những bài toán phức tạp mà không cần phải nâng cấp khả năng xử lý của hệ thống hiện tại. Bên cạnh đó, việc phân tán trách nhiệm cung cấp dịch vụ đến tất cả các nút trên mạng sẽ giúp loại bỏ vấn đề ngừng trệ dịch vụ do nơi cung cấp duy nhất gặp sự cố. Mạng ngang hàng cũng tận dụng được băng thông trên toàn bộ mạng vì việc tăng số giao tiếp giữa các thiết bị mạng qua các đường truyền khác nhau sẽ làm giảm khả năng tắc nghẽn mạng. Ngoài ra, khi càng nhiều máy tính tham gia vào mạng ngang hàng thì tổng sức mạnh xử lý, khả năng lưu trữ và băng thông lại tăng theo điều đó cho thấy khả năng mở rộng của mạng mạng ngang hàng. Tuy nhiên, mạng ngang hàng cũng có nhiều nhược điểm. Với mô hình mạng ngang hàng thuần túy, tức là mô hình mà ở đó mọi máy đều có vai trò như nhau và không tuân theo bất cứ một quy luật định tuyến hay kết nối nào thì mạng mạng ngang hàng cũng bộc lộ khá nhiều nhược điểm: + Chính vì yêu cầu dịch vụ được đáp ứng một cách tùy biến nên máy yêu cầu dịch vụ có thể nhận được nhiều kết quả khác nhau khi nó kết nối đến các máy khác nhau cung cấp cùng một dịch vụ. + Các yêu cầu gửi đi có thể không nhận được kết quả trả về vì không có gì đảm bảo sẽ tồn tại một máy nào đó có khả năng đáp ứng yêu cầu đó. + Các tài nguyên có thể biến mất do nút cung cấp tài nguyên có thể ngắt kết nối bất cứ lúc nào. 2.1.3. Phân loại mạng ngang hàng Mạng ngang hàng lai ghép Trong mô hình này, mỗi máy đều được nối với tất cả các máy khác trong mạng, cách nối này mang đặc điểm của mô hình mạng ngang hàng thuần túy. Tuy nhiên, vẫn có một máy đóng vai trò máy chủ trung tâm, máy chủ này có nhiệm vụ quản lý các thông tin chỉ mục. Hình 10. Hệ thống mạng ngang hàng lai ghép Những nhược điểm của việc quản lý điều khiển tập trung vẫn tồn tại trong mô hình mạng này. Nếu máy chủ trung tâm gặp lỗi thì các máy Peer không thể truy cập đến thông tin chỉ mục ở trên máy chủ trung tâm nên không thể tìm kiếm thông tin được. Đại diện cho mô hình mạng ngang hàng lai ghép là mạng ngang hàng Napster. Mạng ngang hàng thuần tuý Trong mạng ngang hàng thuần tuý thì vai trò của các máy trong mạng là ngang nhau và trong mô hình mạng này thì đã loại bỏ sự tồn tại của các máy chủ tập trung. Mạng ngang hàng thuần tuý được chia thành hai loại là mạng ngang hàng không có cấu trúc và mạng ngang hàng có cấu trúc. Mạng ngang hàng không cấu trúc: Trong mạng ngang hàng không cấu trúc thì các liên kết giữa các nút trong mạng được thiết lập ngẫu nhiên không theo quy luật. Những mạng như thế này dễ dàng được xây dựng vì một máy mới khi muốn tham gia mạng có thể lấy các liên kết có sẵn của một máy khác đang ở trong mạng và sau đó dần dần tự bản thân nó sẽ thêm vào các liên kết mới cho riêng mình. Khi một máy muốn tìm một dữ liệu trong mạng ngang hàng không cấu trúc, yêu cầu tìm kiếm sẽ được truyền trên cả mạng để tìm ra càng nhiều máy chia sẻ càng tốt. Đại diện cho mô hình mạng này là mạng ngang hàng Gnutella. 2.2. Mạng ngang hàng có cấu trúc 2.1.1. Tổng quan về mạng ngang hàng có cấu trúc Nhược điểm của mạng ngang hàng không có cấu trúc là không thể đảm bảo chắc chắn sẽ tìm thấy một thông tin có tồn tại trên mạng ngang hàng do mạng này sử dụng cơ chế tìm kiếm phát tràn tức là gửi thông điệp ra toàn mạng. Thông điệp tìm kiếm theo kiểu phát tràn chỉ được chuyển tiếp một số lần rồi sẽ bị loại bỏ nên không thể đảm bảo sẽ tìm thấy thông tin có tồn tại trên mạng. Cách tìm kiếm phát tràn khi tìm kiếm các dữ liệu phổ biến được chia sẻ trên nhiều máy thì tỷ lệ thành công là khá cao nhưng ngược lại nếu dữ liệu chỉ được chia sẻ trên một vài máy thì xác suất tìm thấy là nhỏ. Tính chất này là hiển nhiên vì trong mạng ngang hàng không có cấu trúc, không có bất kỳ mối liên hệ giữa một máy và dữ liệu nó quản lý trong mạng, do đó yêu cầu tìm kiếm được chuyển một cách ngẫu nhiên đến một số máy trong mạng. Số lượng máy trong mạng càng lớn thì khả năng tìm thấy thông tin càng nhỏ. Một nhược điểm khác của hệ thống này là yêu cầu gửi đi không có định hướng nên một yêu cầu tìm kiếm thường được chuyển cho một số lượng lớn các máy trong mạng, làm tiêu tốn một lượng lớn băng thông của mạng và dẫn đến hiệu quả tìm kiếm chung của mạng thấp. Mạng ngang hàng có cấu trúc đã khắc phục nhược điểm của mạng không cấu trúc bằng cách sử dụng hệ thống bảng băm phân tán (DHT: Distributed Hash Table [6]). Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng theo một thuật toán cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với một phần dữ liệu chia sẻ trong mạng. Với cấu trúc này, khi một máy cần tìm một dữ liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả. Trong mạng ngang hàng có cấu trúc, tài nguyên được phân bố một cách hợp lý để không có một máy tính nào lưu giữ quá nhiều dữ liệu dẫn đến quá tải thông tin định tuyến. Do mạng là có cấu trúc nên các thông điệp chuyển đi giữa các máy tính để duy trì mạng ngang hàng được giảm xuống tối thiểu. Băng thông của mạng được dành nhiều hơn cho việc chia sẻ tài nguyên. Hình 11. Mạng ngang hàng có cấu trúc Chord dạng vòng tròn Việc tìm kiếm thông tin trong mạng ngang hàng có cấu trúc cũng nhanh hơn trong mạng ngang hàng không có cấu trúc. Nếu như trong mạng ngang hàng không có cấu trúc các máy tính gửi thông điệp lan tràn để tìm kiếm thông tin thì trong mạng ngang hàng có cấu trúc một máy tính chỉ cần gửi thông điệp tìm kiếm qua một số máy tính là có thể tìm thấy được thông tin có tồn tại trên mạng. Một số mạng ngang hàng có cấu trúc nổi tiếng bao gồm Chord, CAN, Kademlia, Pastry và Tapestry. DHT nhấn mạnh vào các thuộc tính sau: + Khả năng mở rộng: hệ thống vẫn có thể hoạt động hiệu quả với hàng nghìn hoặc hàng triệu nút. + Khả năng chịu lỗi: hệ thống vẫn có thể làm việc ổn định ngay cả khi có các sự kiện nút tham gia, rời bỏ mạng hay lỗi xảy ra. + Kỹ thuật khóa được sử dụng để đạt được mục đích là mỗi nút chỉ cần liên kết với một số ít các nút khác trong hệ thống, thường là O(logn) với n là số nút tham gia. Vì vậy sự thay đổi của một nút chỉ ảnh hưởng đến một phần nhỏ của hệ thống mạng. + Một số thiết kế bảng băm phân tán có tính bảo mật nhằm chống lại những người tham gia có ác tâm và cho phép người tham gia giấu danh tính, mặc dù điều này không phổ biến trong các hệ thống mạng ngang hàng chia sẻ tệp tin. + Cuối cùng, bảng băm phân tán phải giải quyết những vấn đề cơ bản của các hệ thống phân tán đó là cân bằng tải, tính toàn vẹn dữ liệu và hiệu năng (cụ thể là đảm bảo các hoạt động như định tuyến, lưu trữ, truy vấn phải được thực thi nhanh chóng). 2.2.2. Mạng ngang hàng có cấu trúc CHORD Theo một đánh giá tổng hợp về các thuật toán định tuyến dựa trên bảng băm phân tán trong các kiến trúc mạng khác nhau như hình tròn (với giao thức Chord), hình cây, hình hộp (với giao thức CAN)…xét về tính linh hoạt trong việc định tuyến, khả năng phục hồi trạng thái cũng như khả năng chịu lỗi, kiến trúc hình tròn đều được đánh giá cao. Vì vậy, kiến trúc Chord thường được sử dụng như là mạng phủ để thực hiện các cài đặt cải tiến việc tìm kiếm trên mạng ngang hàng có cấu trúc. Mô hình mạng Chord: Chord được mô tả dưới dạng một vòng tròn và không gian định danh phân bố đều trên vòng tròn tăng dần theo chiều kim đồng hồ. Nếu gọi N là số bit định danh của không gian khóa thì mạng Chord có thế chứa tối đa 2N nút. Mỗi nút trên Chord có một định danh id và có khả năng duy trì liên kết hai chiều với các nút đứng liền trước và liền sau nó theo chiều kim đồng hồ, tạo thành một mạch liên kết vòng. Nút liền trước được gọi là Successor(id), và nút liền sau được gọi là Predecessor(id). Thêm vào đó, mỗi nút sẽ lưu một bảng định tuyến gọi là Finger Table, cho phép nút đó định tuyến tới các nút ở xa. Mỗi dòng trong bảng Finger Table sẽ lưu thông tin về một nút ở xa, gọi là một entry. Không gian định danh của mạng sử dụng bao nhiêu bit thì Finger Table có bấy nhiêu entry. Hình 12. Mô hình mạng Chord Hình trên minh hoạ cho một mạng Chord có 3 nút là 0, 1, 3 và các bảng Finger Table ứng với mỗi nút, N = 3 bit nên Finger Table có 3 entry. Các trường trong mỗi entry trong bảng Finger Table của nút n được định nghĩa trong bảng dưới: Hình 13: Định nghĩa các trường trong bảng định tuyến của Chord Trong đó các giá trị tại dòng i của bảng được coi như là finger thứ i của nút n. Thông tin lưu trong bảng cũng bao gồm cả IP và Port của các nút tương ứng. Nút đầu tiên trong bảng Finger Table của n chính là Successor của n, hay còn được gọi là Immediate Successor. Từ bảng Finger Table ở trên ta có thể thấy rằng: + Mỗi nút chỉ cần lưu trữ thông tin của một số nút nhất định trong bảng định tuyến của mình. + Nút biết thông tin về các nút gần nó nhiều hơn là các nút ở xa. + Bằng cách định tuyến thông qua bảng Finger Table, một nút n có thể xác định được vị trí của bất kỳ khóa nào trên mạng. Ánh xạ khóa vào một nút trong Chord Chord ánh xạ các khóa vào các nút, thường theo cặp (khoá, giá trị). Một giá trị có thể là một địa chỉ, một văn bản, hoặc một mục dữ liệu. Chord có thể thực hiện chức năng này bằng cách lưu các cặp (khoá, giá trị) ở các nút mà khoá được ánh xạ. Một nút sẽ chịu trách nhiệm lưu giữ một khóa k nếu nút đó là nút có định danh id nhỏ nhất thỏa mãn điều kiện id >= k. Một nút khi lưu giữ khóa k cũng sẽ được gọi là Successor của k, ký hiệu là Successor(k). Hình dưới minh hoạ việc lưu khoá trong mạng Chord: nút 0 lưu khoá 6, nút 1 lưu khoá 1 và nút 3 lưu khoá 2. Hình 14. Minh hoạ quy tắc lưu khoá trong mạng Chord Tìm kiếm trong mạng Chord Khi một nút n cần tìm kiếm một khóa có định danh id, nút n sẽ tìm nút chịu trách nhiệm lưu giữ id đó. Nếu nút n ở xa so với vị trí của nút lưu giữ id, n có thể nhờ vào thông tin trong bảng Finger Table để định tuyến đến các nút xa hơn, từ đó dần dần tìm ra nút chịu trách nhiệm lưu giữ id. Một ví dụ được chỉ ra trong hình 12, giả sử nút 3 muốn tìm successor của ID = 1 (hoặc còn có thể coi là khóa) . ID =1 thuộc khoảng [7, 3). Nút 3 kiểm tra entry thứ 3 trong bảng định tuyến của nó, là 0. Bởi vì 0 nằm ngay trước 1 trên vòng tròn, nút 3 sẽ hỏi nút 0 để tìm successor của 1. Tiếp theo, nút 0 sẽ tìm trong bảng định tuyến của nó và suy ra successor của 1 chính là nút 1, và trả lời nút 3 rằng nút 1 chính là successor của khóa ID = 1. Tham gia và ổn định mạng Trong một mạng động thì các nút thường xuyên tham gia hay rời mạng nên để có thể xác định được vị trí của các khóa lưu trong mạng Chord thì mạng này cần thỏa mãn các điểm sau. + Mỗi successor của một nút phải được duy trì. + Với mỗi khóa k, nút successor(k) có trách nhiệm quản lý k. Khi tham gia vào một mạng Chord, một nút n cần chọn cho nó một định danh id và báo cho các nút bên cạnh biết sự tham gia của nó. Các nút Successor và Predecessor sẽ cần phải cập nhật thông tin về nút mới tham gia vào mạng và nút n cũng sẽ khởi tạo bảng định tuyến cho riêng mình. Để mạng vẫn định tuyến đúng sau khi có sự tham gia của nút n thì các nút cần thường xuyên chạy thuật toán ổn định mạng để cập nhật thông tin về các nút bên cạnh (hay nút láng giềng). Một số nút có lưu thông tin về n trong bảng Finger Table thì cần cập nhật các entry liên quan trọng Finger Table. Cuối cùng, nút Successor của n sẽ chuyển một phần khóa k mà bây giờ n là Successor(k) cho n lưu giữ. Khi một nút chuẩn bị rời khỏi mạng, nó cần thông báo cho các nút bên cạnh biết để ổn định lại mạng. Nút đó cũng sẽ chuyển các khóa nó lưu giữ cho nút Successor của mình. 2.3. Tìm kiếm thông tin trên mạng ngang hàng có cấu trúc 2.3.1. Tìm kiếm chính xác Là phương pháp tìm kiếm thông tin theo định danh, định danh này có thể là băm từ một từ khoá do người dùng nhập vào, từ tên tệp tin hoặc từ một phần nội dung của tệp tin. Phương pháp này chỉ có thể cho phép tìm kiếm chính xác thông tin người dùng yêu cầu mà không thể tìm kiếm một thông tin có kết quả gần giống với yêu cầu của người dùng. Ví dụ như khi người dùng muốn tìm một quyển sách “Mạng ngang hàng có cấu trúc” nhưng người dùng chỉ nhập vào từ khoá “Mạng ngang hàng” thì thông tin tìm thấy chỉ là những thông tin có nội dung là “Mạng ngang hàng” mà không thể tìm thấy các thông tin như “Mạng ngang hàng không có cấu trúc, Mạng ngang hàng có cấu trúc, mạng ngang hàng lai ghép...”. Phương pháp tìm kiếm này thường dùng kết hợp với bảng băm phân tán. Khi được kết hợp với bảng băm phân tán thì phương pháp tìm kiếm này có ưu điểm là giảm số thông báo yêu cầu tìm kiếm và các thông báo gửi đi có định hướng. Hiện nay, có rất nhiều mạng ngang hàng có cấu trúc đang sử dụng phương pháp tìm kiếm này, tiêu biểu là các mạng ngang hàng có cấu trúc CAN, Chord, Pastry. 2.3.2. Tìm kiếm theo thuộc tính – giá trị Phương pháp tìm kiếm này sẽ sử dụng các cặp thuộc tính – giá trị để tìm kiếm thông tin. Các từ khoá mà người dùng hay sử dụng chủ yếu là các cặp thuộc tính – giá trị ví dụ như “Trường = Đại Học Công Nghệ” là một cặp thuộc tính – giá trị, thuộc tính là “Trường” và giá trị là “Đại Học Công Nghệ”. Theo thống kê thì một từ khoá tìm kiếm mà người dùng sử dụng trung bình gồm có 2.53 từ và có tới 71.5% các truy vấn tìm kiếm bao gồm hai hoặc nhiều hơn các từ khoá . Do từ khoá tìm kiếm thường là cặp thuộc tính – giá trị nên tìm kiếm theo phương pháp này có thể tìm được hầu hết các thông tin mà người dùng mong muốn. Trong phương pháp này nội dung thông tin sẽ được biểu diễn thành một tập các cặp thuộc tính – giá trị. Việc tìm kiếm thông tin cũng sẽ dựa trên các cặp cặp thuộc tính – giá trị, trong yêu cầu tìm kiếm sẽ có chứa một tập các cặp thuộc tính – giá trị cần truy vấn. Kết quả trả về sẽ chứa danh sách các bản ghi có các cặp thuộc tính – giá trị thoả mãn truy vấn. Việc phân bổ thông tin có thể dựa vào một trong số các cặp thuộc tính để phân bổ hoặc với một thông tin có n cặp thuộc tính – giá trị có thể sẽ phải phân bổ thông tin này ra n nút để khi tìm kiếm có thể tìm được thông tin đã phân bổ này. Một số giải thuật tìm kiếm theo giá trị - thuộc tính tiêu biểu như: CDS [4] (Content discovery System), INS/Twine [5] 2.3.3. Tìm kiếm theo khoảng Là phương pháp tìm kiếm mà giá trị của một thuộc tính dao động trong một khoảng nào đó. Ví dụ như tìm kiếm một thuộc tính “Quần Áo” có giá trị từ “100.000 đến 300.000 đồng” hoặc tìm kiếm trong một vùng địa lý, một khoảng thời gian. Người dùng khi tìm kiếm thông tin thường không biết chính xác thông tin hoặc chỉ biết một phần thông tin hoặc muốn tìm thông tin trong một giới hạn nào đó. Để có thể cung cấp thông tin cho người dùng dù người dùng chỉ biết một phần thông tin hoặc muốn tìm thông tin trong một giới hạn thì phương pháp tìm kiếm theo khoảng được sử dụng. Tìm kiếm theo khoảng trên các hệ thống tập trung rất đơn giản chỉ cần duyệt tất cả các bản ghi theo chỉ mục để lấy ra các bản ghi thoả mãn thuộc tính có giá trị theo khoảng yêu cầu. Tuy nhiên để tìm kiếm theo khoảng trên mạng ngang hàng có cấu trúc là khó vì mạng ngang hàng có cấu trúc chỉ hỗ trợ tìm kiếm chính xác. Tức là chỉ có những thông tin như “Giá = 100.000 đồng” thì mới có thể tìm được trên mạng ngang hàng có cấu trúc mà không thể tìm được các thông tin như “Giá 10.000 đồng”. Để có thể tìm kiếm theo khoảng trên mạng ngang hàng có cấu trúc thì chúng ta có một số ý tưởng để thực hiện việc đó: - Ý tưởng để có thể tìm kiếm theo khoảng trên mạng ngang hàng có cấu trúc đó là dùng một phép biến đổi từ tìm kiếm theo khoảng thành tìm kiếm chính xác. Phép chuyển đổi này có thể được thực hiện bằng cách biểu diễn thông tin sao cho dữ liệu trong một khoảng nào đó được chuyển thành dữ liệu tại một điểm hoặc với những dữ liệu gần giống nhau thì được chèn vào mạng ngang hàng tại các vị trí gần nhau về mặt tô pô của mạng (như các dữ liệu gần giống nhau có thể lưu ở hai nút là hàng xóm của nhau). - Ta có thể coi một khoảng là một giá trị nào đó khi chèn thông tin vào mạng ngang hàng có cấu trúc như “Bất kỳ giá cả của mặt hàng nào có giá từ 100.000 đồng đến 200.000 đồng” thì ta coi như là nó có giá trị 100.000 đồng. Sau đó băm chuỗi “Giá = 100.000 đồng” để lấy định danh và chèn vào mạng ngang hàng có cấu trúc, trong bản ghi được chèn thì vẫn có chứa thông tin về giá cả thực của mặt hàng. Khi tìm kiếm một mặt hàng từ khoảng 120.000 đến 180.000 đồng thì ta chỉ việc băm chuỗi “Giá = 100.000 đồng” để lấy định danh và tìm xem nút nào quản lý định danh này. Khi đã biết được nút nào quản lý định danh này thì ta sẽ truy vấn đến đó và tìm kiếm, nút chứa định danh khi nhận yêu cầu tìm kiếm sẽ duyệt trong cơ sở dữ liệu (lúc này việc tìm kiếm là cục bộ nên có thể dễ dàng lọc thông tin theo khoảng) để tìm các bản ghi thoả mãn và trả về cho máy yêu cầu. Nếu dữ liệu gần tường đồng nhau mà được chèn một vùng gần nhau về mặt tô pô của mạng ngang hàng có cấu trúc thì các truy vấn tìm kiếm theo khoảng có thể truy vấn quanh vùng đó để lấy được thông tin cần tìm. 2.4. Kết luận Trong chương này chúng ta đã giới thiệu tổng quan về mạng ngang hàng, các ưu nhược điểm của mạng ngang hàng và phân loại mạng ngang hàng. Mang ngang hàng được chia thành hai loại là mạng ngang hàng lai ghép và mạng ngang hàng thuần tuý. Đại diện cho mô hình mạng ngang hàng lai ghép là mạng ngang hàng Napster, đặc điểm của mô hình mạng này là có một máy chủ trung tâm quản lý chỉ mục và đây cũng chính là nhược điểm của mô hình này. Khi máy chủ trung tâm bị lỗi thì mạng ngang hàng lai ghép sẽ không thể tìm kiếm được thông tin do không thể truy cập đến thông tin chỉ mục do máy chủ quản lý. Mạng ngang hàng thuần tuý được chia thành hai loại là mạng ngang hàng có cấu trúc và mạng ngang hàng không có cấu trúc. Mạng ngang hàng Gnutella là đại diện cho mạng ngang hàng không có cấu trúc và nhược điểm của mô hình mạng này là không đảm bảo chắc chắn tìm kiếm được dữ liệu có tồn tại trên mạng do sử dụng cơ chế tìm kiếm phát tràn thông điệp. Do mạng ngang hàng không có cấu trúc sử dụng cơ chế tìm kiếm phát tràn nên làm tốn băng thông mạng đồng thời giảm hiệu quả tìm kiếm. Mạng ngang hàng có cấu trúc đã khắc phục được những nhược điểm của mạng ngang hàng không có cấu trúc. Các nút trong mạng ngang hàng có cấu trúc được liên kết với nhau theo một quy luật, mỗi nút sẽ quản lý một phần dữ liệu chia sẻ trên mạng và các dữ liệu chia sẻ này sẽ có mối liên hệ với nút quản lý. Ở trong mô hình mạng ngang hàng có cấu trúc thì ta tìm hiểu chi tiết cách thức hoạt động của mạng ngang hàng Chord. Trong chương này chúng ta cũng đã được giới thiệu về các phương pháp tìm kiếm trong mạng ngang hàng có cấu trúc là tìm kiếm chính xác, tìm kiếm theo thuộc tính – giá trị và tìm kiếm theo khoảng. Qua tìm hiểu về lịch sử phát triển của mạng ngang hàng, ưu nhược điểm của mạng ngang hàng thì ta thấy mạng ngang hàng là một công nghệ mạnh và sẽ phát triển trong tương lai. Việc triển khai các ứng dụng trên mạng ngang hàng sẽ có thể tận dụng được rất nhiều ưu điểm của mạng này như tận dưng được khả năng xử lý, lưu trữ, băng thông của mạng và hệ thống có khả năng mở rộng cao. CHƯƠNG 3. XÂY DỰNG DỊCH VỤ TÌM KIẾM THÔNG TIN THEO VỊ TRÍ DỰA TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC 3.1. Mục đích và yêu cầu của tìm kiếm thông tin dựa vào vị trí Để đáp ứng được nhu cầu tìm kiếm thông tin chính xác và phù hợp với yêu cầu của người dùng thì khoá luận đã xây dựng một hệ thống tìm kiếm thông tin theo vị trí trong đó thông tin tìm kiếm được dựa trên ngữ cảnh của người dùng. Hệ thống tìm kiếm này sẽ tự động cung cấp thông tin cho người dùng bằng cách tạo ra truy vấn tìm kiếm một cách tự động từ ngữ cảnh của người dùng. Ví dụ như một người dùng đang làm việc ở cơ quan và 11 giờ là hết giờ làm việc thì hệ thống sẽ tự động cung cấp thông tin về các tiệm ăn quanh vị trí cơ quan. Thông tin về các tiệm ăn có thể được lọc theo sở thích của người dùng như người dùng thích ăn đồ ăn nhanh hay thích ăn cơm công sở. Yêu cầu của dịch vụ tìm kiếm thông tin theo vị trí được chia thành hai loại là yêu cầu của người dùng và yêu cầu của hệ thống: + Yêu cầu của người dùng: - Hệ thống có thể cung cấp thông tin mọi lúc, mọi nơi, ở bất cứ mạng nào và với bất kỳ thiết bị di động cầm tay nào. - Sử dụng dễ dàng. - Có thể cung cấp được thông tin, thông tin cung cấp chính xác, phù hợp với ngữ cảnh và yêu cầu của người dùng. - Thời gian đáp ứng của dịch vụ là nhanh - Một số yêu cầu phụ như hệ thống có giao diện đẹp, hoạt động ổn định, tốn ít khả năng xử lý và lưu trữ của thiết bị. + Yêu cầu của hệ thống: - Cung cấp thông tin đúng, chính xác. - Có thể quản lý, lưu trữ và tìm kiếm thông tin trên quy mô lớn. - Có thể cung cấp dịch vụ cho số lượng lớn người dùng tại một thời điểm. - Hệ thống có thể dễ dàng mở rộng như nâng cấp hệ thống, tăng số lượng các máy phục vụ. - Có thể kháng lỗi tốt và đảm bảo tìm kiếm được thông tin dù mạng bị lỗi. 3.2. Giải pháp thực hiện Triển khai dịch vụ tìm kiếm theo vị trí trên mạng mạng ngang hàng có cấu trúc vì mang hàng hàng có cấu trúc có ưu điểm là có thể quản lý, lưu trữ và tìm kiếm dữ liệu trên quy mô lớn và dễ dàng mở rộng. Để có thể tìm kiếm thông tin chính xác phù hợp với yêu cầu của người dùng thì hệ thống tự động tạo truy vấn tìm kiếm dựa trên ngữ cảnh người dùng. Dịch vụ tìm kiếm thông tin theo vị trí có đặc điểm là tìm kiếm theo khoảng chính vì vậy hệ thống phải có khả năng tìm kiếm theo khoảng. Để hệ thống có thể tìm kiếm theo khoảng thì dữ liệu theo vị trí phải được biểu diễn và chèn vào mạng ngang hàng có cấu trúc một cách phù hợp. 3.2.1. Tạo câu truy vấn phù hợp với ngữ cảnh Để tạo ra câu truy vấn phù hợp với ngữ cảnh của người dùng thì hệ thống dựa vào các thông tin cá nhân của người dùng (tuổi, giới tính, lịch làm việc, sở thích...), các thông tin môi trường xung quanh (thời tiết, khí hậu, thời gian, mùa...) và thông tin vị trí. Ví dụ như một người dùng có lịch làm việc khoảng 8 giờ thì lúc 7 giờ có thể truy vấn tìm kiếm một số quán ăn gần vị trí người dùng, câu truy vấn còn yêu cầu lọc theo sở thích của người dùng như người dùng có thể chỉ thích ăn mì hoặc phở thì kết quả trả về sẽ là các quán ăn bán mì hoặc phở. 3.2.2. Biểu diễn dữ liệu theo vị trí Cách thức chèn dữ liệu vào mạng ngang hàng có cấu trúc Chord sẽ ảnh hưởng đến cách thức tìm kiếm dữ liệu. Đặc trưng của dịch vụ tìm kiếm theo vị trí là tìm kiếm theo khoảng (trong một vùng bán kính) chính vì vậy cách thức chèn dữ liệu vào mạng Chord phải đảm bảo sao cho khi tìm kiếm có thể tìm kiếm được thông tin theo khoảng. Để có thể hỗ trợ tìm kiếm thông tin

Các file đính kèm theo tài liệu này:

  • docXây dựng ứng dụng tìm kiếm thông tin theo vị trí trên mạng ngang hàng có cấu trúc.doc