Hoạt động của dịch vụ thông báo sự kiện
Hệ thống hoạt động dựa trên khả năng lưu trữ của mạng ngang có cấu trúc Chord
Khi người dùng yêu cầu một sự kiện, hệ thống sẽ tạo ra một khóa tương ứng với cặp thuộc tính - giá trị của sự kiện và gửi yêu cầu đến một node gọi là node phụ trách khóa Node này sẽ lưu lại sự kiện yêu cầu, khóa và địa chỉ của node đã gửi yêu cầu Khi có sự kiện tương ứng, node phụ trách khóa sẽ gửi thông tin sự kiện đến đúng địa chỉ của node yêu cầu mà nó đã lưu.
Khi sự kiện được cung cấp, hệ thống tạo ra các cặp (thuộc tính - giá trị) tương ứng và gửi thông tin sự kiện đến các node phụ trách khóa Các node này sẽ kiểm tra cơ sở dữ liệu để lấy danh sách các node gửi yêu cầu phù hợp, sau đó chuyển tiếp thông tin sự kiện đến node yêu cầu sự kiện.
Việc lưu trữ thông tin sự kiện tại một node trong mạng giúp đảm bảo rằng hệ thống không bị quá tải Điều này cũng đảm bảo rằng khi có sự cố xảy ra với một node, khả năng cung cấp dịch vụ sẽ không bị gián đoạn.
Hình 1: Cách thức hoạt động của hệ thống thông báo sự kiện
Hình 1 thể hiện các thành phần trong hệ thống và mối quan hệ giữa chúng Mô hình này đơn giản hóa các khái niệm về sự kiện và mô tả sự kiện Đối tượng quan tâm là thông tin của node cung cấp, được lựa chọn từ kho đối tượng Các thay đổi của các đối tượng này, bao gồm việc tạo mới, cập nhật và xóa, được thực hiện bởi bộ phát hành.
Bộ quan sát có nhiệm vụ phát hiện những thay đổi của đối tượng đơn lẻ hoặc trong kho đối tượng Nếu bộ phát hành không thông báo về các thay đổi, bộ quan sát sẽ tự động phát hiện theo lịch trình đã định Mọi thay đổi được coi là sự kiện, và các sự kiện này sẽ được bộ quan thông báo đến bộ lọc.
Bộ lọc lưu mô tả dịch vụ của node sẽ yêu cầu dịch vụ và so sánh các sự kiện với phần truy vấn của mô tả Khi mô tả dịch vụ phù hợp với sự kiện, bộ lọc sẽ tạo ra thông báo sự kiện và cung cấp cho node yêu cầu dịch vụ Đối với các sự kiện phức hợp, chúng sẽ được lưu trữ trong Kho lưu trữ.
Bộ thông báo kiểm tra thời hạn các yêu cầu và chuyển đổi thông báo sự kiện theo định dạng cụ thể của node yêu cầu nếu cần cung cấp ngay lập tức Nếu không, thông báo sẽ được lưu trong bộ đệm cho đến khi hết hạn Bộ thông báo cũng theo dõi thời hạn của các sự kiện.
Trong mô tả của Bộ yêu cầu sự kiện, cần phân biệt hai phần chính: cấu trúc truy vấn, sử dụng bởi các bộ lọc để xác định sự kiện mà node quan tâm, và cấu trúc tham số, trong đó xác định các thông số bổ sung như thời hạn, giao thức thông báo và định dạng thông báo Những thông số này có thể được sử dụng bởi Bộ quan sát và Bộ thông báo.
Các thành phần của dịch vụ thông báo sự kiện có thể được triển khai và nhân rộng để nâng cấp khả năng và độ tin cậy Bộ khởi động và đối tượng thường trú tại Kho lưu trữ đối tượng nằm của node cung cấp.
Dịch vụ thông báo sự kiện bao gồm các nhà cung cấp có thể tạo ra một Bộ quan sát để quản lý thông tin Người quan sát có thể được chuyển đến trang web của nhà cung cấp (nếu được phép) và thực hiện nhiệm vụ như một đại lý của dịch vụ thông báo sự kiện.
Dịch vụ thông báo sự kiện tập trung vào khái niệm sự kiện, khác với các trạng thái có thời hạn Sự kiện có thể là sự thay đổi trạng thái trong cơ sở dữ liệu, tín hiệu trong hệ thống tin nhắn, hoặc các sự kiện thực tế như xuất cảnh và lượt khách của phương tiện Chuyển trạng thái được thực hiện thông qua các hành động như chèn, xóa hoặc thay đổi thông tin của một đối tượng.
Hình 2:Trình tự thông báo sự kiện
Hình 2 minh họa trình tự thông báo sự kiện theo thời gian, cho thấy luồng dữ liệu từ khi sự kiện xảy ra cho đến khi thông báo được gửi đến node yêu cầu Hoạt động sự kiện có thể diễn ra bất cứ lúc nào.
Hạn chế của các dịch vụ hiện tại
Hệ thống thông báo sự kiện, giống như các phần mềm hệ thống khác, thường được cấu thành từ các thực thể Tuy nhiên, hệ thống hiện tại vẫn tồn tại một số nhược điểm đáng chú ý.
Thiếu độc lập trong thi hành dịch vụ dẫn đến việc thực hiện cụ thể mà không bao gồm các hoạt động quan sát sự kiện hay khái niệm sự kiện chung Rất ít dịch vụ thông báo sự kiện độc lập, thường chỉ tập trung vào việc lưu trữ đối tượng Điều này khiến cho việc thông báo sự kiện không được đảm bảo, với quá trình thông báo được mô tả một cách đơn giản và các thành phần hệ thống cụ thể không được xác định rõ ràng.
Dịch vụ thông báo sự kiện hiện nay có nhiều tên gọi khác nhau như cảnh báo, dịch vụ, dịch vụ thông báo và dịch vụ thông tin, dẫn đến sự không thống nhất trong thuật ngữ Các khái niệm về dịch vụ này cũng khác nhau, mặc dù nhiều dịch vụ sử dụng từ ngữ tương tự để mô tả chức năng của mình.
Mô hình sự kiện không đầy đủ thường gặp trong các dịch vụ dựa trên sự kiện, khi mà sự kiện được xác định chỉ qua đặc trưng vật lý như tin nhắn Tuy nhiên, cách tiếp cận này không đáp ứng đủ yêu cầu vì nó bỏ qua các sự kiện không thể quan sát, những vấn đề liên quan đến việc quan sát sự kiện và thời điểm chèn dữ liệu.
Mô hình mạng Client/Server cho phép máy khách kết nối với máy chủ qua các giao thức như WWW, FTP, Telnet, và email Ưu điểm của mô hình này là mọi xử lý được thực hiện trên Server, giúp giảm bớt tải cho máy Client, không yêu cầu cấu hình mạnh Tuy nhiên, sự thụ động của Client trong việc chỉ yêu cầu dịch vụ từ Server có thể dẫn đến nhược điểm khi số lượng Client tăng nhanh, gây quá tải và tắc nghẽn cho Server Khi nhu cầu tải và băng thông vượt quá khả năng của Server, dẫn đến tình trạng Server sập và mạng bị gián đoạn Do đó, việc tăng số lượng Server để nâng cao khả năng chịu tải là cần thiết, mặc dù chi phí cho mỗi Server thường rất lớn.
SỬ DỤNG MẠNG NGANG HÀNG CÓ CẤU TRÚC TRONG DỊCH VỤ THÔNG BÁO SỰ KIỆN 11 2.1 Khái niệm mạng ngang hàng
Phân loại mạng ngang hàng
Phi cấu trúc Có cấu trúc
Thế hệ thứ 1 Thế hệ thứ 2 Thế hệ thứ 3
P2P tập trung DHT cơ sở
Hình 5: Các loại hình mạng ngang hàng
Theo [4], mạng ngang hàng đƣợc phân thành 2 loại: mạng có cấu trúc và mạng không có cấu trúc
2.3.1 Mạng ngang hàng phi cấu trúc
2.3.2.1 Mạng ngang hàng tập trung
Mạng này vẫn dựa vào một máy chủ tìm kiếm trung tâm, với cấu trúc Overlay được mô tả như một mạng hình sao.
Hình 6: Mạng ngang hàng tập trung thế hệ thứ nhất (Napster)
Mỗi client lưu trữ files định chia sẻ với các node khác trong mạng
Một bảng lưu trữ thông tin kết nối của người dùng đăng kí (IP address, connection bandwidth ….)
Một bảng liệt kê danh sách các files mà mỗi người dùng định chia sẻ (tên file, dung lƣợng, thời gian tạo file …….)
Tất cả máy tính trong mạng đều kết nối với máy chủ tìm kiếm trung tâm, nơi tiếp nhận và phân tích các yêu cầu tìm kiếm Khi yêu cầu được xử lý, máy chủ sẽ trả về địa chỉ IP của máy chứa tài nguyên trong mạng Quá trình truyền file sau đó diễn ra theo cơ chế mạng ngang hàng, cho phép các host trao đổi trực tiếp với nhau mà không cần thông qua máy chủ trung tâm.
Tìm kiếm file nhanh và hiệu quả
Vấn đề luật pháp, bản quyền
Cần quản trị (central server)
Napster là một mạng ngang hàng tập trung, nơi việc tìm kiếm file có thể gặp khó khăn nếu bảng tìm kiếm trên máy chủ không hoạt động Trong hệ thống này, chỉ có các file truy vấn và lưu trữ được phân tán, khiến máy chủ trở thành nút cổ chai Khả năng tính toán và lưu trữ của máy chủ tìm kiếm cần phải tương ứng với số lượng nút mạng trong hệ thống, dẫn đến khả năng mở rộng mạng bị hạn chế đáng kể.
2.3.2.2 Mạng ngang hàng thuần túy
Mạng ngang hàng thuần túy, thuộc thế hệ thứ nhất của hệ thống mạng ngang hàng, có vai trò ngang nhau giữa các máy, không còn phụ thuộc vào máy chủ tìm kiếm tập trung như Napster, giúp khắc phục vấn đề nút cổ chai trong mô hình tập trung Tuy nhiên, việc tìm kiếm trong mạng này sử dụng cơ chế phát tràn, yêu cầu gửi tìm kiếm đến tất cả các node láng giềng, dẫn đến tăng đáng kể lưu lượng trong mạng Các phần mềm tiêu biểu cho mạng ngang hàng thuần túy bao gồm Gnutella 4.0 và FreeNet.
Hình 7: Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet)
Khi người dùng tại một node muốn tìm kiếm tài nguyên, node sẽ gửi yêu cầu đến các node mà nó kết nối Các node này tiếp tục chuyển yêu cầu đến những node mà chúng biết, cho đến khi gói tin đạt số hop đã được định nghĩa trước Nếu câu truy vấn tìm thấy kết quả, node có kết quả sẽ gửi thông tin trực tiếp đến node tìm kiếm qua giao thức UDP Mỗi câu truy vấn luôn bao gồm địa chỉ IP và cổng của node tìm kiếm.
Để khắc phục vấn đề thắt nút cổ chai, Gnutella đã được thiết kế thành hệ thống nhiều tầng, trong đó các node gia nhập mạng giữ vai trò như node lá và không đảm nhận trách nhiệm định tuyến Các node ultrapeers mới có khả năng định tuyến thông điệp tìm kiếm và lưu trữ chúng, giúp cải thiện hiệu quả tìm kiếm trong không gian mạng rộng lớn hơn Nhờ vào cấu trúc này, Gnutella không phụ thuộc vào một máy chủ duy nhất, làm cho hệ thống trở nên khó bị tấn công hơn so với Napster.
Cấu trúc mạng dễ dàng xây dựng với tính năng tải xuống file query, đảm bảo tính phân tán hoàn toàn cho các node tham gia Các node có thể tham gia hoặc rời khỏi mạng một cách linh hoạt mà không ảnh hưởng đến cấu trúc tổng thể của mạng.
Nhược điểm của hệ thống bao gồm việc tốn băng thông, phức tạp trong việc tìm kiếm thông tin, và sự không đồng nhất về khả năng của các node, như CPU power, băng thông và dung lượng lưu trữ, dẫn đến việc tất cả đều phải chịu tải giống nhau.
2.3.2.3 Mạng ngang hàng lai ghép Để khắc phục nhƣợc điểm của mạng ngang hàng thuần túy, một mô hình mang ngang hàng mới đƣợc phát triển với tên gọi là mạng ngang hàng lai Đây đƣợc gọi là mạng ngang hàng thế hệ 2 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 8: Mạng ngang hàng lai ghép
- Trong mô hình mạng ngang hàng lai tồn tại một trật tự phân cấp bằng việc định nghĩa các Super Peers
- Các SupperPeer tạo thành một mạng không cấu trúc, có sự khác nhau giữa SupperPeers và ClientPeers trong mạng, mỗi SupperPeer có nhiều kết nối đến các ClientPeers
Mỗi SupperPeer lưu trữ danh sách các file từ ClientPeer cùng với địa chỉ IP của chúng, cho phép nó phản hồi nhanh chóng các yêu cầu truy vấn từ ClientPeer.
Ưu điểm của hệ thống SuperPeer là hạn chế việc Flooding các query, giúp giảm lưu lượng trong mạng và tránh hiện tượng nút cổ chai nhờ vào sự phân bố hợp lý giữa các SuperPeer Bên cạnh đó, hệ thống cũng khắc phục nhược điểm về sự khác nhau về CPU power và băng thông trong mạng ngang hàng thuần túy, khi các SuperPeer đảm nhận tải chính, trong khi các node khác chỉ chịu tải nhẹ.
Mô hình mạng ngang hàng lai ghép vẫn gặp phải những nhược điểm trong việc quản lý điều khiển tập trung Khi máy chủ trung tâm gặp sự cố, các máy Peer sẽ không thể truy cập thông tin chỉ mục trên máy chủ, dẫn đến việc không thể tìm kiếm thông tin.
2.3.2 Mạng ngang hàng có cấu trúc
Mô hình mạng P2P có cấu trúc là hệ thống trong đó các node được tổ chức theo một cấu trúc cụ thể, giúp việc định tuyến thông báo diễn ra hiệu quả hơn dựa trên cấu trúc này.
Mạng P2P thuần túy gặp khó khăn do các nút không tuân theo quy luật nào, dẫn đến kết nối ngẫu nhiên và thông báo phát tràn Trong khi đó, mạng ngang hàng dựa trên DHT khắc phục nhược điểm này bằng cách sử dụng bảng băm phân tán, xác định liên kết giữa các nút qua thuật toán cụ thể Hệ thống này đảm bảo mỗi nút chịu trách nhiệm cho phần dữ liệu nhất định, giúp máy tìm kiếm có thể áp dụng giao thức chung để xác định nút mạng phù hợp và liên lạc trực tiếp để lấy dữ liệu cần thiết.
Mạng P2P có cấu trúc sử dụng giao thức đảm bảo tính toàn cục, cho phép các peer định tuyến truy vấn tới những peer khác chứa dữ liệu mong muốn, ngay cả khi dữ liệu không phổ biến Để đạt được điều này, mạng cần một cấu trúc phủ (overlay) liên kết cụ thể Hầu hết các mạng P2P hiện nay thuộc kiểu DHT, trong đó kỹ thuật băm được sử dụng để gán quyền quản lý dữ liệu cho các peer cụ thể, tương tự như bảng băm truyền thống với mỗi khóa gán cho ô cụ thể Một số mạng DHT phổ biến bao gồm Chord, Pastry và CAN.
Tại sao sử dụng mạng ngang hàng có cấu trúc trong hệ thống thông báo sự kiện
Hệ thống thông báo sự kiện cần cung cấp thông tin chính xác và kịp thời Mạng ngang hàng với cấu trúc đặc trưng hoàn toàn có khả năng đáp ứng các yêu cầu này của hệ thống.
Mạng ngang hàng sử dụng bảng băm phân tán DHT để xác định liên kết giữa các nút, đảm bảo rằng mọi node có thể định tuyến truy vấn đến các node khác chứa dữ liệu mong muốn, ngay cả khi dữ liệu không phổ biến Mỗi node sẽ chịu trách nhiệm cho một phần dữ liệu trong mạng Khi cần tìm dữ liệu, máy chỉ cần áp dụng giao thức chung để xác định nút chịu trách nhiệm và liên lạc trực tiếp để lấy kết quả.
Trong mạng ngang hàng có cấu trúc, tài nguyên được phân bố hợp lý để tránh tình trạng một máy tính lưu trữ quá nhiều dữ liệu, gây quá tải thông tin định tuyến Nhờ vào cấu trúc này, các thông điệp truyền tải giữa các máy tính để duy trì mạng ngang hàng được giảm thiểu, giúp tối ưu hóa băng thông Kết quả là, băng thông của mạng được sử dụng hiệu quả hơn cho việc chia sẻ tài nguyên.
Việc tìm kiếm thông tin trong mạng ngang hàng có cấu trúc diễn ra nhanh chóng hơn so với mạng không cấu trúc Trong khi mạng không cấu trúc yêu cầu các máy tính gửi thông điệp quảng bá để tìm kiếm thông tin, mạng có cấu trúc chỉ cần một máy tính gửi thông điệp tìm kiếm qua một số máy tính Giao thức tìm kiếm chung trong mạng đảm bảo thông tin được tìm kiếm một cách chính xác.
Kết luận
Trong chương đã 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 không có cấu trúc và mạng ngang hàng có cấu trúc
Mạng ngang hàng Gnutella là một ví dụ điển hình của mạng không có cấu trúc, nhưng nhược điểm lớn của nó là không đảm bảo tìm kiếm dữ liệu hiệu quả Việc sử dụng cơ chế tìm kiếm phát tràn thông điệp dẫn đến tình trạng tốn băng thông mạng và giảm hiệu quả trong việc tìm kiếm thông tin.
Mạng ngang hàng có cấu trúc đã khắc phục nhược điểm của mạng ngang hàng không có cấu trúc bằng cách liên kết các nút theo quy luật nhất định Mỗi nút trong mạng quản lý một phần dữ liệu chia sẻ, tạo ra mối liên hệ chặt chẽ với nút quản lý Trong mô hình này, mạng ngang hàng Chord là một ví dụ điển hình để tìm hiểu chi tiết về cách thức hoạt động của mạng ngang hàng có cấu trúc.
Chương này còn đưa ra lý do luận văn sử dụng mạng ngang hàng có cấu trúc để xây dựng dịch vụ thông báo sự kiện
Mạng ngang hàng (P2P) đã chứng tỏ là một công nghệ mạnh mẽ với tiềm năng phát triển trong tương lai Qua việc tìm hiểu về lịch sử và những ưu nhược điểm của nó, chúng ta thấy rằng việc triển khai các ứng dụng trên mạng này có thể tận dụng hiệu quả khả năng xử lý, lưu trữ và băng thông, đồng thời hệ thống cũng có khả năng mở rộng cao.
Chương tiếp theo của luận văn sẽ giới thiệu mục đích, yêu cầu và các hoạt động của hệ thống Bên cạnh đó, sẽ trình bày cấu trúc và chi tiết giải pháp xây dựng dịch vụ thông báo sự kiện dựa trên mạng ngang hàng có cấu trúc.
XÂY DỰNG DỊCH VỤ THÔNG BÁO SỰ KIỆN DỰA TRÊN MẠNG
Giải pháp thực hiện
Mạng hàng hàng có cấu trúc giúp quản lý, lưu trữ và tìm kiếm dữ liệu quy mô lớn một cách hiệu quả Nó cho phép mở rộng dễ dàng để tìm kiếm các sự kiện chính xác theo yêu cầu người dùng Hệ thống này cung cấp khả năng truyền thông tin hiệu quả, rút ngắn thời gian tìm kiếm dữ liệu, đồng thời đảm bảo thông tin tìm kiếm chính xác và đáng tin cậy.
Một phương pháp mới trong kỹ thuật thông báo sự kiện là sử dụng bảng băm phân tán (DHT) để tạo ra cấu trúc lớp phủ trên mạng P2P Lớp phủ này cung cấp cách thức hiệu quả để định tuyến các truy vấn đến các node tương ứng, dựa trên hàm băm Mục tiêu là các node lưu trữ yêu cầu và nhận được sự kiện thỏa mãn, có thể giống nhau hoặc gần giống nhau.
Dịch vụ thông báo sự kiện thực hiện xử lý chọn lọc để xác định các thông báo phù hợp với yêu cầu của node, từ đó định tuyến và cung cấp thông báo đến node đó Quá trình này không chỉ giúp tối ưu hóa việc truyền thông trong mạng mà còn đảm bảo rằng chỉ những thông báo quan trọng được gửi đến các node quan tâm.
Lưu trữ dữ liệu phân tán cho phép mỗi node vừa nhận yêu cầu sự kiện vừa cung cấp sự kiện, giúp truy vấn và cập nhật thông tin nhanh chóng và hiệu quả.
Hình 13: Mô hình luồng sự kiện
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 là nền tảng cho toàn bộ hệ thống, nơi lưu trữ và tìm kiếm thông tin Do đó, nó cần cung cấp đầy đủ các giao thức cho cả nhà cung cấp dịch vụ và người yêu cầu dịch vụ.
Mạng ngang hàng Chord sử dụng cấu trúc vòng tròn để quản lý không gian định danh ID của các node Mỗi node lưu giữ giá trị của một khoảng khóa, trong đó mỗi khóa K được xác định bằng một cặp địa chỉ IP và cổng (IP, Port) của node tương ứng Điều này 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 đến địa chỉ node yêu cầu sự kiện (IP, Port).
Người dùng có thể yêu cầu các sự kiện dựa trên một thuộc tính chung, và tất cả các sự kiện có thuộc tính này sẽ được trả lại cho họ.
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 tạo khóa tương ứng với cặp thuộc tính - giá trị của sự kiện yêu cầu và gửi yêu cầu đến node phụ trách khóa Node này sẽ lưu trữ các thông tin quan trọng, bao gồm yêu cầu sự kiện, khóa và địa chỉ node yêu cầu 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 tạo ra các khóa tương ứng với cặp thuộc tính - giá trị của sự kiện yêu cầu, sau đó gửi thông tin sự kiện đến các node phụ trách khóa Node phụ trách khóa sẽ thực hiện kiểm tra cơ sở dữ liệu để 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 và xác minh yêu cầu sự kiện dựa trên thông tin đã nhận.
- Gửi thông tin sự kiện đến node yêu cầu sự kiện
Một sự kiện trong hệ thống thông báo sự kiện được định nghĩa là một tập hợp các cặp giá trị thuộc tính, ký hiệu là d {(attr {(attr1, v1), (attr2, v2), , (attrd, vd)}, với d là số thuộc tính liên quan đến sự kiện Ví dụ, trong thông báo sự kiện Bóng đá, mỗi node lưu trữ thông tin về Giải đấu, Trận đấu và Kết quả trận đấu, với các thuộc tính attr1 = 'Giải đấu', attr2 = 'Trận đấu', attr3 = 'Kết quả trận đấu' Các khó khăn trong truy vấn có thể được xác định thông qua các thuộc tính phân biệt, với mỗi mệnh đề điều kiện là sự kết hợp của các thuộc tính cơ bản Mỗi thuộc tính cơ bản được ký hiệu là (attri ? pi), trong đó ? là toán tử lọc, có thể là toán tử so sánh (=, ) hoặc toán tử chuỗi như “trước của”, “sau của” và “chuỗi con của” Một sự kiện x thỏa mãn một truy vấn q, biểu thị bằng x ∈ q, khi x có đủ 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
-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
- Bóng đá Tây Ban Nha
-Nhạc trẻ -Nhạc thiếu nhi
-Việt nam idol -Sao mai điểm hẹn -Ngôi sao tiếng hát Truyền hình -Đồ rê mí
-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 lựa chọn một tên sự kiện, hệ thống sẽ cung cấp thông tin chi tiết về sự kiện đó, và người dùng cần bổ sung thêm các thông tin cần thiết liên quan đến 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 sử dụng phương pháp tìm kiếm giá trị thuộc tính, trong đó mỗi nội dung được định danh bằng tên nội dung dưới dạng các cặp thuộc tính-giá trị Phương pháp này giúp biểu diễn chính xác và dễ dàng nội dung thông tin thông qua ngữ nghĩa của các thuộc tính-giá trị Ví dụ, 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 một cách rõ ràng và cụ thể.
Sự kiện "Bóng đá" trong giải đấu "Bóng đá Anh" đã diễn ra trận đấu giữa Chelsea và Blackburn với kết quả giữa trận là "1-0" Việc tìm kiếm thông tin sẽ dựa trên các cặp thuộc tính-giá trị, trong đó câu truy vấn sẽ bao gồm các cặp thuộc tính-giá trị cần tìm Kết quả tìm kiếm sẽ trả về các nội dung thông tin có tên chứa các cặp thuộc tính-giá trị đã được truy vấn.
Chord là một hệ thống phân phối thông tin, trong đó các thông báo phân bổ và truy vấn được gửi giữa các node được định tuyến theo địa chỉ khóa Mỗi node lưu trữ một bảng định tuyến giúp tối ưu hóa quá trình tìm kiếm và truyền tải thông tin.
Việc phân bổ nội dung sự kiện dựa trên ánh xạ tên nội dung vào khóa phân bổ, với nội dung được gửi đến node phụ trách khóa đó Giải pháp ánh xạ khóa tạo ra khóa phân bổ chính từ mỗi cặp thuộc tính-giá trị trong tên nội dung Để tránh quá tải cho các node phụ trách khóa phổ biến, chúng chỉ lưu một phần nội dung thông tin, phần còn lại được lưu tại các node khác dựa trên khóa thứ cấp, là giá trị băm của hơn hai cặp thuộc tính-giá trị Node phụ trách khóa phổ biến lưu ánh xạ giữa khóa phân bổ chính và khóa thứ cấp, đảm bảo thông báo truy vấn thông tin được gửi đến tất cả các node có khả năng chứa thông tin cần tìm Giải pháp này mang lại nhiều ưu điểm trong việc quản lý và phân phối nội dung sự kiện.
Cấu trúc hệ thống
Cung cấp sự kiện Đăng ký sự kiện
Hình 15: Cấu trúc của hệ thống thông báo sự kiện
Hệ thống bao gồm ba thành phần chính:
- Cung cấp sự kiện: Cho phép cung cấp sự kiện cho người dùng
Để đảm bảo việc quản lý sự kiện hiệu quả, chúng tôi cho phép người dùng đăng ký yêu cầu sự kiện Khi có sự kiện phù hợp với yêu cầu đã đăng ký, thông báo sẽ được gửi đến các thành phần liên quan.
Mạng ngang hàng được xây dựng dựa trên mô hình mạng Chord, đóng vai trò nền tảng cho toàn bộ hệ thống Tại đây, thông tin sẽ được lưu trữ và tìm kiếm, đồng thời cung cấp các giao thức cho hai thành phần: Cung cấp sự kiện và yêu cầu sự kiện.
Các node cung cấp sự kiện có vai trò quảng bá thông tin và phát hành các thông báo theo cách đã được quảng bá trước đó Quá trình quảng bá này thể hiện mục đích của node trong việc phát hành các thông báo đặc biệt, đồng thời cũng được sử dụng để đăng ký các sự kiện yêu cầu.
Dịch vụ thông báo sự kiện thực hiện xử lý chọn lọc để xác định các thông báo phù hợp với yêu cầu của node về sự kiện quan tâm, từ đó định tuyến và cung cấp thông tin chính xác.
Hoạt động của hệ thống
Hệ thống bao gồm ba thành phần chính: giao diện người cung cấp sự kiện, giao diện người yêu cầu sự kiện và mạng ngang hàng có cấu trúc
Mạng ngang hàng trong hệ thống này sử dụng cấu trúc dựa trên mô hình mạng Chord, đóng vai trò nền tảng cho toàn bộ hoạt động của hệ thống Tại đây, thông tin được lưu trữ và tìm kiếm, vì vậy mạng phải cung cấp đầy đủ các giao thức cho hai thành phần giao diện còn lại.
Hai thành phần giao diện có nhiệm vụ thu thập thông tin người sử dụng, mã hóa theo chuẩn hệ thống và sử dụng các giao thức tìm kiếm trong mạng Chord Tại giao diện cung cấp sự kiện, người cung cấp có thể chọn thuộc tính sự kiện, nhập thông tin và gửi lên mạng Mỗi thuộc tính sẽ được hệ thống băm thành khóa riêng và lưu trữ ở các nút khác nhau, giúp quá trình tìm kiếm sự kiện trở nên dễ dàng hơn Người yêu cầu sự kiện có thể chọn thuộc tính chung, và tất cả sự kiện có thuộc tính đó sẽ được trả lại cho họ.
Type=Bóng đá Giải đấu=Seria A Trận đấu= ACMilan-InterMilan
Giải đấu=Seria A H(Giải đấu=Seria A)
H1(Type=Bóng đá) H2(Giải đấu=Seria A) H3(Trận đấu= ACMilan-InterMilan)
3 khóa này sẽ gửi đến 3 node của mạng Chord
Type=Bóng đá Giải đấu=Seria A Trận đấu=
ACMilan- InterMilan C ác k hó a sẽ đ ư ợ c lư u và o 1 b ản g
Type=Bóng đá Trận đấu=
Type=Bóng đá Giải đấu=Seria A
Thỏa mãn Yêu cầu sự kiện
Type=Bóng đá Giải đấu=Seria A
Không thỏa mãn Yêu cầu sự kiện
Type=Bóng đá Giải đấu=Seria A
Khóa Yêu cầu sự kiện
Type=Bóng đá Giải đấu=Seria A
Nội dung sự kiện Địa chỉ node yêu cầu sự kiện Gửi kự kiện đến node có yêu cầu
Sự kiện được cung cấp bao gồm ba cặp thuộc tính giá trị: (Type = Bóng đá), (Giải đấu = Seria A) và (Trận đấu = ACMilan-InterMilan) Mỗi cặp thuộc tính này sẽ được băm thành các khóa khác nhau, và mỗi khóa sẽ được lưu trữ cùng với tên và thông tin sự kiện tại các nút khác nhau trên mạng, dựa vào bảng DTH trong mạng Chord Điều này cho phép các thuộc tính ở cấp cao trên cây thuộc tính có thể liên kết với nhiều sự kiện khác nhau.
Khi người dùng yêu cầu một sự kiện, họ sẽ chọn theo các thuộc tính cần thiết, ví dụ như (Type = Bóng đá) và (Giải đấu = Seria A) Trong hai cặp thuộc tính này, chỉ có cặp (Giải đấu = Seria A) được băm thành khóa, vì nó nằm dưới trong cây thuộc tính Tất cả sự kiện có thuộc tính (Giải đấu Seria A) đều sẽ có thuộc tính (Type = Bóng đá), do đó chỉ cần băm thuộc tính này là đủ Để đáp ứng đầy đủ yêu cầu sự kiện, hệ thống sẽ lưu trữ thông tin sự kiện và yêu cầu trên các nút trong mạng Chord, với hai loại thông báo được lưu trữ theo chuẩn cố định để thuận tiện cho việc tìm kiếm.
- Thông tin sự kiện được lưu trữ theo cấu trúc: (Khóa, các thuộc tính của sự kiện, chi tiết thông tin sự kiện)
Yêu cầu sự kiện cần được lưu trữ theo cấu trúc bao gồm khóa, thuộc tính của sự kiện, địa chỉ IP và cổng Địa chỉ IP và cổng được xác định từ nút yêu cầu sự kiện Khi thông tin sự kiện thỏa mãn các tiêu chí đã định, nó sẽ được gửi về nút tương ứng dựa trên các thông số này.
Quá trình cung cấp và tìm kiếm sự kiện diễn ra song song, bao gồm việc lưu trữ và truy xuất thông tin Khi người dùng yêu cầu một sự kiện, yêu cầu đó được lưu trữ và mạng Chord sẽ tìm kiếm các sự kiện phù hợp để trả lại cho họ Ngược lại, khi có sự kiện mới được cung cấp, hệ thống không chỉ lưu trữ mà còn tìm kiếm các yêu cầu đã có sẵn Nếu tìm thấy yêu cầu thỏa mãn, sự kiện sẽ được gửi ngay lập tức đến người dùng dựa trên thông tin đã lưu trữ Phương pháp này giúp giảm tải lưu lượng truyền trên mạng, nâng cao hiệu suất hoạt động của hệ thống.
Kết luận
Chương này giới thiệu mục đích, yêu cầu và phương pháp xây dựng dịch vụ thông báo sự kiện dựa trên mạng ngang hàng, cùng với cấu trúc đã được đề xuất.
Dịch vụ thông báo sự kiện dựa trên mạng ngang hàng đáp ứng nhanh chóng các yêu cầu về thời gian phản hồi và dễ dàng mở rộng hệ thống Trong chương tiếp theo, chúng ta sẽ tiến hành thử nghiệm và đánh giá hiệu quả của hệ thống này.
THỰC THI VÀ ĐÁNH GIÁ CHƯƠNG TRÌNH 40 4.1 Triển khai hệ thống
Kết quả thử nghiệm
Thực hiện 4 thử nghiệm độc lập, với số yêu cầu sự kiện (số node) lần lƣợt là:
- Thử nghiệm thứ 1: 1 yêu cầu
- Thử nghiệm thứ 2: 2 yêu cầu
- Thử nghiệm thứ 3: 4 yêu cầu
- Thử nghiệm thứ 4: 6 yêu cầu
Thời gian tại mỗi thời điểm sẽ thay đổi tương ứng như mô tả trong bảng dưới đây:
Trường hợp 1: Thực hiện yêu cầu sự kiện cho các sự kiện đã được cung cấp trên mạng
Thời gian(s) Số sự kiện 1 yêu cầu 2 yêu cầu 4 yêu cầu 6 yêu cầu
Thời gian gửi yêu cầu sự kiện trung bình 0.13 0.16 0.20 0.25
Thời gian tìm kiếm sự kiện trên mạng Chord trung bình 0.23 0.26 0.30 0.33
Thời gian gửi thông báo đến node yêu cầu sự kiện trung bình
Bảng 21: Kết quả thử nghiệm yêu cầu sự kiện cho các sự kiện đã được cung cấp
Hình 22: Đồ thị kết quả thử nghiệm yêu cầu sự kiện cho các sự kiện đã được cung cấp
Trường hợp 2: Cung cấp sự kiện cho yêu cầu có sẵn trên mạng
Thời gian (s) Số sự kiện cung cấp 1 sự kiện 2 sự kiện 4 sự kiện 6 sự kiện
Thời gian cung cấp sự kiện trung bình 0.15 0.17 0.21 0.26
Thời gian tìm kiếm sự kiện trên mạng Chord trung bình 0.25 0.29 0.31 0.35
Thời gian gửi thông báo đến node yêu cầu sự kiện trung bình 0.18 0.19 0.25 0.29
Bảng 23: Kết quả thử nghiệm cung cấp sự kiện cho yêu cầu có sẵn trên mạng
Hình 24: Đồ thị kết quả thử nghiệm cung cấp sự kiện cho yêu cầu có sẵn trên mạng
Nhận xét và đánh giá hệ thống
Khi số lượng yêu cầu tăng, thời gian thực hiện của hệ thống cũng tăng theo, cho thấy rằng hệ thống sẽ chậm lại khi có nhiều yêu cầu hơn Tuy nhiên, hệ thống vẫn có khả năng triển khai hiệu quả, vì khi tăng thêm 2 yêu cầu, thời gian thực hiện chỉ tăng gần 0.05 giây.