Mạng 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 sự kiện chính xác phù hợp với yêu cầu của ngƣời dùng. Có khả năng truyền thông báo hiệu quả, thời gian tìm kiếm dữ liệu nhanh hơn, thông tin tìm kiếm chính xác và độ tin cậy cao.
Một cách tiếp cận mới trong kỹ thuật thông báo sự kiện là dùng bảng băm phân tán (DHT) để xây dựng cấu trúc lớp phủ trên đỉnh của mạng P2P, lớp phủ này cung cấp phƣơng pháp hiệu quả để định tuyến các truy vấn đến các node tƣơng ứng, xác định dựa trên hàm băm. Mục tiêu là các node lƣu trữ một yêu cầu và nhận đƣợc một sự kiện thỏa mãn hoặc là giống nhau, hoặc là gần giống nhau.
Dịch vụ thông báo sự kiện có thể thực hiện một xử lý chọn lọc để xác định những thông báo nào đƣợc đƣa ra mà node yêu cầu sự kiện quan tâm, định tuyến và cung cấp thông báo đến node đó. Quá trình lựa chọn cũng đƣợc sử dụng bằng dịch vụ thông báo sự kiện để tối ƣu hóa việc truyền thông bên trong mạng.
Lƣu trữ dữ liệu phân tán, một node đồng thời đóng vai trò là node nhận yêu cầu sự kiện và cũng là node cung cấp sự kiện nên có thể truy vấn thông tin, cập nhật thông tin nhanh.
Dịch vụ thông báo sự kiện gồm các thành phần:
Mạng lƣu trữ thông tin:
Mạng này đóng vai trò nền tảng hoạt động của toàn bộ hệ thống, các thông tin trong hệ thống sẽ đƣợc lƣu trữ và tìm kiếm tại đây. Vì vậy, nó phải cung cấp đƣợc đầy đủ các giao thức cho hai đối tƣợng cung cấp dịch vụ và yêu cầu dịch vụ
Sử dụng mạng ngang hàng có cấu trúc Chord: Vòng tròn Chord lƣu không gian định danh ID của các node, mỗi node sẽ lƣu giữ giá trị của một khoảng khóa nào đấy, mỗi khóa K đƣợc định nghĩa gồm một cặp địa chỉ IP và cổng (IP,Port) của node tƣơng ứng, có nghĩa là mỗi cặp (khóa K, sự kiện Ev) sẽ gửi thông tin sự kiện Ev cho địa chỉ node yêu cầu sự kiện (IP, port).
Yêu cầu sự kiện:
Yêu cầu sự kiện có thể lựa chọn một thuộc tính chung của sự kiện, tất cả các sự kiện đƣợc cung cấp mà có thuộc tính này sẽ đều đƣợc trả lại cho ngƣời yêu cầu.
Ngƣời dùng có thể chọn sự kiện có sẵn trong list ở trƣờng Tên sự kiện, nhấn nút
Yêu cầu sự kiện, sự kiện đƣợc băm thành khóa, khóa này đƣợc lƣu ở một node trên mạng Chord.
- Giao thức yêu cầu sự kiện đƣợc định nghĩa có cấu trúc: (Loại sự kiện-Yêu cầu
sự kiện, Khóa, Nội dung sự kiện,…)
- Hệ thống sẽ tạo ra khóa ứng với 1 cặp thuộc tính - giá trị của sự kiện yêu cầu
rồi gửi yêu cầu sự kiện đó đến node phụ trách khóa. Node phụ trách khóa sẽ lƣu lại các thông tin:
o Yêu cầu sự kiện
o Khóa
o Địa chỉ node yêu cầu sự kiện
Cung cấp sự kiện:
Có chức năng quảng bá thông tin về sự kiện và đƣa ra các thông báo theo cách thức trƣớc đó đƣợc quảng bá.
- Giao thức cung cấp sự kiện đƣợc định nghĩa có cấu trúc: (Loại sự kiện-Cung cấp sự kiện, Khóa, Nội dung sự kiện,…)
- Hệ thống sẽ tạo ra các khóa ứng với các cặp thuộc tính - giá trị của sự kiện yêu
cầu rồi gửi thông tin sự kiện đến các node phụ trách khóa, node phụ trách khóa thực hiện:
o Kiểm tra cơ sở dữ liệu và lấy danh sách các node gửi yêu cầu phù hợp
với thông tin sự kiện.
o Kiểm tra yêu cầu sự kiện với thông tin sự kiện.
- Gửi thông tin sự kiện đến node yêu cầu sự kiện
Sự kiện
[2]Một sự kiện trong hệ thống thông báo sự kiện đƣợc quy định nhƣ một tập hợp các cặp giá trị thuộc tính d {( attr {(attr1, v1), (attr2, v2), ..., (attrd, vd)}, trong đó d là số thuộc tính {attr1,attr2, ..., attrd} kết hợp với sự kiện. Ví dụ, thông báo sự kiện Bóng đá, mỗi node sẽ lƣu thông tin về Giải đấu, Trận đấu, Kết quả trận đấu…do đó d sẽ là đại diện cho các dữ liệu thuộc tính là attr1= 'Giải đấu', attr2= 'Trận đấu', attr3= 'Kết
quả trận đấu'. Trong biểu thức tổng quát, các khó khăn trong truy vấn có thể đƣợc xác
định tại một thuộc tính phân biệt dạng thông thƣờng - phân biệt của một hoặc nhiều mệnh đề điều kiện, mỗi mệnh đề là một kết hợp của các thuộc tính cơ bản. Mỗi thuộc tính cơ bản ký hiệu là (attri ? pi), là một điều kiện trên một số các thuộc tính attri với ? là toán tử lọc. Khi đƣợc sử dụng trong các tài liệu của kỹ thuật thông báo sự kiện, một toán tử lọc có thể là một toán tử so sánh (=,<,>) hoặc một toán tử chuỗi nhƣ “trƣớc của”, “sau của” và “chuỗi con của” nếu thuộc tính có kiểu chuỗi. Một sự kiện x thỏa
mãn một truy vấn q, biểu hiện bằng x ∈ q , khi và chỉ khi x đủ các thuộc tính xác định
trong ít nhất một mệnh đề điều kiện của q.
Loại kết quả trận đấu
- Kết quả giữa trận - Kết quả cuối trận Trận đấu -Chelsea-Blackburn -Liverpool-Arsenal -Manchester-Everton -Juventus-C Milan -AS Roma-Lazio -Bari-Parma -Barcelona-Real Madrid -Villarreal-Sevilla -Espanyol-Zaragoza -Lyon-Monaco -Paris S.G-Rennes -Nancy-Toulouse Giải đấu - Bóng đá Anh - Bóng đá Ý
- Bóng đá Tây Ban Nha - Bóng đá Pháp
Thể loại
-Nhạc trẻ -Nhạc thiếu nhi
Cuộc thi
-Việt nam idol -Sao mai điểm hẹn
-Ngôi sao tiếng hát Truyền hình -Đồ rê mí
-Tiếng hát họa mi
Ca nhạc Thời gianLịch thi
Địa điểm Phim Lịch chiếu - Thời gian - Địa điểm Thể loại - Hoạt hình - Hài - Kinh dị Tên phim
-Hãy đợi đấy -Đoremon -Tom & Jerry
-Đến thượng đế cũng phải cười -Mr Bean
-Ở nhà một mình -Ngôi nhà bí ẩn -Con tàu ma -Lễ hội kinh hoàng
Hình 14: Chi tiết một số sự kiện
- Tên sự kiện có thể bao gồm các sự kiện nhƣ: Bóng đá, ca nhạc, phim, ….
- Khi chọn một Tên sự kiện, hệ thống sẽ hiển thị thông tin chi tiết về Sự kiện và
ngƣời dùng cần chọn thêm thông tin chi tiết về sự kiện đó
Lƣu trữ và tìm kiếm dữ liệu:
Dịch vụ thông báo sự kiện tìm kiếm thông tin bằng phƣơng pháp tìm kiếm giá trị thuộc tính. Theo phƣơng pháp này, mỗi nội dung thông tin sẽ đƣợc định danh bởi một tên nội dung là tập các cặp thuộc tính-giá trị mô tả nội dung thông tin. Việc sử dụng các cặp thuộc tính/giá trị đảm bảo cho khả năng biểu diễn nội dung thông tin đƣợc chính xác và dễ dàng thông qua khả năng biểu diễn ngữ nghĩa của các thuộc tính-giá trị trong tên nội dung. Ví dụ nhƣ tên miền của nội dung thông tin về sự kiện Bóng đá có thể đƣợc biểu diễn nhƣ sau:
(Tên sự kiện = “Bóng đá”, Giải đấu=”Bóng đá Anh”, Trận đấu=”Chelsea- Blackburn”, Kết quả giữa trận = “1-0”) trong đó các thuộc tính “Tên sự kiện”, “Giải đấu”, “Trận đấu”, “Kết quả giữa trận” đã đƣợc định nghĩa trƣớc. Việc tìm kiếm truy vấn thông tin cũng sẽ dựa trên các cặp thuộc tính-giá trị trong đó, câu truy vấn sẽ chứa một tập các cặp thuộc tính-giá trị cần truy vấn. Kết quả tìm kiếm trả về sẽ là các nội
Chord. Các thông báo phân bổ thông tin và truy vấn thông tin gửi giữa các node đƣợc định tuyến theo địa chỉ là các khóa và dựa trên bảng định tuyến lƣu tại mỗi node.
Việc phân bổ nội dung sự kiện sẽ đƣợc thực hiện dựa trên việc ánh xạ tên nội dung vào khóa phân bổ và nội dung sự kiện sẽ đƣợc gửi đến node phụ trách khóa phân bổ. Giải pháp ánh xạ khóa là tạo khóa phân bổ chính từ mỗi cặp thuộc tính-giá trị trong tên nội dung. Do có những cặp thuộc tính-giá trị phổ biến nên để tránh tình trạng quá tải cho các node phụ trách các khóa phổ biến, các node này sẽ chỉ lƣu một phần nội dung thông tin gán với khóa phổ biến, phần còn lại sẽ đƣợc lƣu tại các node khác dựa trên các khóa thứ cấp. Các khóa thứ cấp là giá trị băm của hơn hai cặp thuộc tính- giá trị có trong tên nội dung đƣợc phân bổ. Node phụ trách khóa phổ biến sẽ lƣu lại ánh xạ giữa các khóa phân bổ chính và khóa thứ cấp để đảm bảo các thông báo truy vấn thông tin sẽ đƣợc gửi đến tất cả các node có khả năng chứa thông tin cần tìm.
Với cách lƣu trữ trên có thể thấy giải pháp này có các ƣu điểm nhƣ:
Với các cặp thuộc tính-giá trị không phổ biến, do số lƣợng nội dung thông
tin gán vào mỗi cặp thuộc tính-giá trị đó không lớn nên chúng sẽ đƣợc lƣu tại một node và việc truy vấn đến các cặp thuộc tính-giá trị không phổ biến sẽ chỉ cần thực hiện trên một node với mỗi truy vấn. Điều này đảm bảo cho tính hiệu quả trong việc tìm kiếm.
Với các cặp thuộc tính-giá trị phổ biến, do số lƣợng nội dung thông tin
gán vào mỗi cặp thuộc tính-giá trị đó là lớn nên chúng sẽ đƣợc lƣu tại nhiều node. Số lƣợng nội dung thông tin càng lớn thì số node lƣu giữ thông tin càng lớn. Điều này đảm bảo cho tính cân bằng tải của hệ thống. Với câu truy vấn chứa nhiều cặp thuộc tính-giá trị phổ biến, việc truy vấn sẽ đƣợc thực hiện trên node phụ trách khóa phân bổ chính và các node phụ trách các khóa thứ cấp.
Việc sử dụng giao thức DHT trong việc phân bổ và tìm kiếm thông tin
đảm bảo khả năng mở rộng (scalability) của hệ thống, tính hiệu quả (efficiency) trong định tuyến gói tin và khả năng chịu lỗi (fault tolerent) cho hệ thống đƣợc đề xuất.