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

Một phần của tài liệu LUẬN VĂ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 pot (Trang 33 - 45)

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 trong một vùng địa lý thì ta chia bề mặt trái

đất ra thành các ô hình vuông có cạnh là một ki lô mét và tất cả các vị trí thuộc một hình vuông sẽđược quy thành một điểm chung.

28

Hình 15. Minh hoạ chia bề mặt trái đất thành các ô

Giả sử như hình vẽ trên ta chia bề mặt vật lý của một khi vực thành 25 hình vuông và mỗi hình vuông sẽ có cạnh là một ki lô mét.

Hình 16. Minh hoạ một ô của bề mặt trái đất được chia ra

Giả sử một ô là hình vuông ABCD như hình vẽ trên và điểm E có toạđộ (2500, 1500) nằm trong hình vuông này. Khi đó điểm E sẽđược quy về coi như là điểm C có toạ độ là (2000, 1000). Như vậy tất cả các toạ độ thuộc hình vuông sẽ đều được coi như là điểm C có toạđộ (2000, 1000). Khi đó tất cả các thông tin có toạđộ trong hình

29

vuông sẽ có chung một định danh để chèn vào mạng Chord (định danh trong chương trình sẽ được tính bằng cách băm chuỗi “2000$1000” đây là chuỗi được tạo ra từ toạ độ của điểm C). Khi tìm kiếm thì ta sẽ đi ngược lại với quá trình chèn dữ liệu, giả sử

như ta tìm thông tin của một vùng nào đó trong hình vuông ABCD thì ta sẽ chỉ việc truy vấn đến nút nào quản lý định danh được băm từ toạđộ của điểm C để hỏi thông tin mà ta cần tìm.

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

Sau khi đã biểu diễn được dữ liệu theo vị trí thì ta sẽ tiến hành chèn dữ liệu theo vị trí này vào mạng ngang hàng có cấu trúc có cấu trúc (cụ thể trong khoá luận này là mạng ngang hàng có cấu trúc Chord).

Dữ liệu vị trí sẽ được biểu diễn dưới dạng ngôn ngữ XML (eXtensible Markup Language) để tiện cho việc lưu trữ, truy vấn, tìm kiếm cũng như khả năng mở rộng hệ

thống sau này.

Khi cần chèn một thông tin ở vị trí kinh độ là A và vĩ độ là B thì các bước thực hiện sẽ như sau:

Bước 1: Chuyển đổi kinh độ A và vĩđộ B sang hệ mét C = A * 3600 * 30.82 (m)

D = B * 3600 * 30.92 (m)

Trong công thức trên thì toạđộ A và B đều ở dạng thập phân và một độ kinh độ

hoặc vĩ độ bằng 3600 giây, một giây kinh độ sẽ có độ dài là 30.82 mét và một giây vĩ độ có độ dài là 30.92.

Bước 2: Toạđộ C và D sẽđược quy về một toạđộ chung nhưđã trình bày ở mục 3.2.2 về cách biểu diễn dữ liệu theo vị trí.

Giả sử toạđộ C và D được chuyển sang toạđộ chung là E và F thì E và F sẽđược tính như sau:

E = C - C % 1000 F = D – D % 1000

Bước 3: Tính toán định danh và chèn dữ liệu vào mạng ngang hàng có cấu trúc: - Tính định danh ID bằng cách băm chuỗi “E + $ + F”

30

- Dữ liệu chèn sẽ được lưu tại nút có nhiệm vụ quản lý định danh ID và dữ liệu chèn này sẽđược lưu thông tin đây đủ (bao gồm cả toạđộ kinh độ và vĩ độ thực tế mà không phải là kinh độ và vĩđộđã chuyển đổi).

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

Giả sử như ta cần tìm thông tin ở quanh vị trí có kinh độ là A và vĩ độ là B với bán kính vùng tìm kiếm là 2 km thì các bước thực hiện sẽ như sau:

Bước 1: Kinh độ A và vĩđộ B sẽđược chuyển đổi sang hệ mét C = A * 3600 * 30.82 m

D = B * 3600 * 30.92 m

Trong công thức trên thì toạđộ A và B đều ở dạng thập phân và một độ kinh độ

hoặc vĩ độ bằng 3600 giây, một giây kinh độ sẽ có độ dài là 30.82 mét và một giây vĩ độ có độ dài là 30.92.

Bước 2: Trong bước này ta sẽ tính xem truy vấn đến các nút quản lý các ô nào.

Hình 17: Minh hoạ tìm kiếm thông tin trong một vùng

Giả sử ta đang tìm kiếm thông tin trong một vùng hình tròn ở một khu vực được chia thành 25 ô như hình trên. Do việc tìm kiếm thông tin trong một vùng hình tròn khó hơn tìm trong một vùng hình vuông nên ta chuyển sang tìm kiếm trong một vùng

31

hình vuông bao quanh hình tròn. Giả sử hình vuông bao quanh hình tròn là ABCD và toạđộ của A, B, C, D là A (xa, ya), B (xb, yb), C (xc, yc), D (xc, yc).

Nhìn trên hình ta có thể thấy rằng dữ liệu ta cần tìm sẽ được lưu tại các nút quản lý thông tin của các ô 7, 8, 9, 12, 13, 14, 17, 18, 19. Để tính được dữ liệu cần tìm sẽ

lưu tại các nút quản lý thông tin của ô nào thì ta sẽ duyệt từ (xa – xa %1000) đến (xb – xb %1000) và từ (ya – ya %1000) đến (yd – yd % 10000), mỗi lần duyệt sẽ tăng toạđộ

lên 1000 m. Ta sẽ tìm được các điểm giao, các điểm giao này sẽ là toạđộ chung cho cả

một ô, các điểm giao này sẽđược dùng để tính định danh chèn vào mạng ngang hàng có cấu trúc của ô.

Bước 3: Khi ta đã có danh sách các ô nhưởđây là các ô 7, 8, 9, 12, 13, 14, 17, 19 thì ta sẽ tính định danh từ các ô này.

Giả sử ô 7 là hình vuông ABCD như hình dưới thì định danh dùng để chèn dữ

liệu thuộc ô 7 này vào mạng Chord sẽđược tính bằng cách băm toạđộđiểm A. Chuỗi

được băm để tính định danh của ô là chuỗi (2000 + $ + 2000).

Hình 18: Minh hoạ thông tin vị trí của một ô trên bề mặt trái đất

Bước 4: Sau khi ta đã tính được một danh sách các định danh từ các ô ở trên thì ta sẽ gửi yêu cầu tìm kiếm theo khoảng đến các máy có nhiệm vụ quản lý các định danh này.

32

Trong yêu cầu tìm kiếm theo khoảng sẽ có giới hạn thông tin trong một vùng địa lý như (kinh độ > 1000 m và vĩđộ < 2000 m) hoặc ta có thể yêu cầu trực tiếp lọc thông tin trong vòng một bán kính xác định.

Yêu cầu tìm kiếm theo khoảng thực chất là một biểu thức toán học và được biểu diễn bằng ngôn ngữ XML (eXtensible Markup Language). Khi một nút trong mạng ngang hàng nhận được yêu cầu tìm kiếm thì nút này sẽ phân tích biểu thức toán học để

lọc ra các bản ghi thoả mãn yêu cầu của biểu thức toán học gửi kèm và trả về kết quả

cho nút yêu cầu tìm kiếm.

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

Hệ thống gồm có bốn thành phần đó là thiết bị di động, mạng kết nối, mạng ngang hàng có cấu trúc và hệ thống tên miền.

+ Thiết bị di động: Là các máy muốn tìm kiếm thông tin, các máy này phải có khả năng xác định được vị trí của mình và có thể kết nối vào mạng Internet.

+ Mạng kết nối: Mạng kết nối này sẽ gửi các yêu cầu của thiết bị di động và nhận kết quả trả về.

+ Mạng ngang hàng có cấu trúc: Mạng ngang sẽ lưu trữ, xử lý và tìm kiếm thông tin khi có yêu cầu từ thiết bị di động. Để có thể nhận được các thông điệp từ thiết bị di

động thì các máy tham gia vào mạng ngang hàng sẽ mở một cổng mặc định để lắng nghe.

+ Hệ thống tên miền: Hệ thống này là nơi lưu trữ các thông tin về mạng ngang hàng có cấu trúc. Các thông tin này gồm địa chỉ IP và cổng lắng nghe của các máy trong mạng ngang hàng có cấu trúc.

Khi thiết bị di động muốn tìm kiếm thông tin trong mạng ngang hàng có cấu trúc thì đầu tiên thiết bị di động sẽ phải truy vấn đến hệ thống tên miền này để lấy về danh sách địa chỉ IP và cổng của các máy tham gia vào mạng ngang hàng có cấu trúc. Sau khi đã có danh sách các máy tham gia vào mạng ngang hàng có cấu trúc thì thiết bị di

động sẽ kết nối đến một máy đang tham gia vào mạng này để yêu cầu máy này tìm kiếm thông tin giúp mình

33

Hình 19. Cấu trúc hệ thống dịch vụ tìm kiếm thông tin dựa vào vị trí

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

Bước 1: Thiết bị di động sẽ lấy thông tin về vị trí của mình thông qua hệ thống

định vị toàn cầu hoặc xác định vị trí thông qua vị trí của các cột sóng đài, các điểm truy cập của mạng không dây. Sau khi đã có thông tin về vị trí của người dùng thì chương trình sẽ kết hợp thông tin này với các thông tin về ngữ cảnh của người dùng (các thông tin về lịch làm việc, sở thích, giới tính, độ tuổi, thời gian trong ngày...) để

34

Truy vấn tìm kiếm được tạo định kỳ 5 phút một lần hoặc được tạo khi vị trí người dùng cách vị trí cũ 100 m.

Hình 20: Minh hoạ việc tạo truy vấn theo ngữ cảnh

Bước 2: Thiết bị di động sẽ truy vấn đến hệ thống tên miền để lấy về danh sách

địa chỉ IP và cổng của các máy đang tham gia vào mạng ngang hàng có cấu trúc.

35

Bước 3: Sau khi có địa chỉ IP và cổng của một máy tính đang tham gia vào mạng ngang hàng có cấu trúc thì thiết bị di động sẽ kết nối đến máy tính này để gửi truy vấn tìm kiếm cho máy này.

Hình 22: Yêu cầu tìm kiếm của thiết bị di động gửi lên mạng ngang hàng

Bước 4: Máy tính được thiết bị di động nhờ tìm kiếm giúp thông tin sẽ tìm kiếm thông tin trong mạng ngang hàng có cấu trúc và gửi thông tin kết quả về cho thiết bị di

động. Việc tìm kiếm trên mạng ngang hàng phải đảm bảo chắc chắn tìm kiếm được dữ

liệu và có thể tìm kiếm theo khoảng. Để đảm bảo chắc chắn tìm kiếm được thông tin có tồn tại trên mạng thì nút được thiết bị di động nhờ sẽ gửi lại gói tin tìm kiếm khi không thấy kết quả phản hồi.

Trong một phiên làm việc, nút trong mạng ngang hàng có cấu trúc sẽ lưu lại thông tin yêu cầu của các thiết bị di động nhờ tìm kiếm. Khi thiết bị di động yêu cầu tìm kiếm thì máy tính được nhờ này chỉ trả về các kết quả mới có mà không trả về kết quảđã gửi trước đó để giảm số lượng thông tin phải gửi cho thiết bị di động.

36

Hình 23: Minh hoạ mạng ngang hàng trả kết quả cho thiết bị di động

Bước 5: Khi thiết bị di động nhận được kết quả tìm kiếm thì nó sẽ hiển thị kết quả cho người dùng. Kết quả hiển thị trên thiết bị di động sẽđược hiển thị dưới dạng tin nhắn như có một nhà hàng ở gần đây hoặc có thểđược hiển thị trên một bản đồ để

người dùng có thể thấy thông tin một cách trực quan và biết vị trí của thông tin so với vị trí của mình.

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

Hệ thống tìm kiếm thông tin theo vị trí trên mạng ngang hàng có cấu trúc đã xây dựng có đặc điểm là:

- Khắc phục được các nhược điểm của mô hình dịch vụ tìm kiếm thông tin theo vị trí cũ. Với hệ thống cũ thì thường bị quá tải tại máy chủ cung cấp dịch vụ còn với hệ

thống đề xuất do sử dụng mạng ngang hàng nên khắc phục được nhược điểm này. - Hệ thống có khả năng lưu trữ, xử lý và tận dụng được băng thông của mạng (đây là ưu điểm của mạng ngang hàng).

- Hệ thống có thể dễ dàng mở rộng như tăng số lượng nhà cung cấp dịch vụ tham gia vào mạng ngang hàng có cấu trúc, hệ thống có thể phục vụ cho số lượng người dùng lớn mà vẫn đảm bảo thời gian phản hồi thông tin cho người dùng là nhanh.

37

3.6. Kết luận

Trong chương này chúng ta đã được trình bày về mục đích, yêu cầu và phương pháp xây dựng và cấu trúc của hệ thống tìm kiếm thông tin theo vị trí dựa trên mạng ngang hàng có cấu trúc đã đề xuất.

Chương này cũng trình bày chi tiết về cách biểu diễn dữ liệu theo vị trí, cách chèn dữ liệu và tìm kiếm dữ liệu vị trí trong mạng ngang hàng có cấu trúc.

Qua chương này ta thấy dịch vụ tìm kiếm theo vị trí triển khai dựa trên mạng ngang hàng có thểđáp ứng được các yêu cầu của dịch vụ tìm kiếm dựa vào vị trí đó là thời gian phản hồi của dịch vụ nhanh và hệ thống có thể dễ dàng mở rộng và hệ thống cung có khả năng tìm kiếm theo khoảng (ở đây khoảng là trong một vùng địa lý và cũng có thể là giá cả của một mặt hàng trong một khoảng nào đó) Trong chương tiếp theo chúng ta sẽ thử nghiệm và đánh giá về hiệu quả của hệ thống tìm kiếm thông tin

đã trình bày trong chương này thông qua các yêu cầu đã đặt ra cho hệ thống này. Các yêu cầu của hệ thống đó là có khả năng mở rộng, phục vụ được nhiều người dùng và có thể cung cấp dịch vụ thời gian thực.

38

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

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

+ Kết quả tìm kiếm

Các thông tin tìm kiếm được sẽđược hiển thị dưới dạng tin nhắn, khi người dùng quan tâm đến thông tin nào thì người dùng có thể chọn thông tin đó để hiển thị chi tiết thông tin hoặc hiển thị thông tin trên bản đồ số.

Với những người dùng khác nhau thì kết quả tìm kiếm khác nhau hệ thống lọc thông tin theo ngữ cảnh của người dùng.

Ví dụ như hình dưới vơi hai người dùng là người dùng A và người dùng B thì người dùng A chỉ hiển thị các thông tin liên quan đến nhà hàng còn người dùng B thì hiển thị thông tin về các trường học gần nơi hiện tại của người dùng.

Hình 24: Minh hoạ giao diện hiển thị kết quả tìm kiếm thông tin

Một phần của tài liệu LUẬN VĂ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 pot (Trang 33 - 45)

Tải bản đầy đủ (PDF)

(51 trang)