本發(fā)明涉及一種訂閱系統(tǒng),具體地,涉及一種基于網(wǎng)絡(luò)的主題訂閱系統(tǒng)。
背景技術(shù):
分布式軟件應(yīng)用場景下各個網(wǎng)絡(luò)節(jié)點間會傳輸各種各樣的數(shù)據(jù),很多時候一個節(jié)點發(fā)布的數(shù)據(jù)可能會有多個節(jié)點對其感興趣,將發(fā)布的數(shù)據(jù)定為主題,其它節(jié)點訂閱此主題,這會簡化和統(tǒng)一數(shù)據(jù)交互方式,現(xiàn)有數(shù)據(jù)交互方式不支持通道選擇、通訊節(jié)點缺乏標識信息、容易出現(xiàn)網(wǎng)絡(luò)阻塞、通訊節(jié)點間缺乏交互機制、不夠智能無法自動生成標識、缺乏驗證機制、有啟動順序要求。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種基于網(wǎng)絡(luò)的主題訂閱系統(tǒng),其可根據(jù)題接收者數(shù)量自動調(diào)整網(wǎng)絡(luò)發(fā)送方式,既可將數(shù)據(jù)快速發(fā)送出去,又可避免網(wǎng)絡(luò)阻塞。
根據(jù)本發(fā)明的一個方面,提供一種基于網(wǎng)絡(luò)的主題訂閱系統(tǒng),其特征在于,包括以下模塊:
網(wǎng)絡(luò)通訊模塊,本網(wǎng)絡(luò)通訊模塊負責處理以下事務(wù):初始化網(wǎng)絡(luò)通訊環(huán)境,設(shè)置通訊通道;監(jiān)聽網(wǎng)絡(luò)節(jié)點上線與下線,并通知控制節(jié)點;為節(jié)點注冊主題,并將主題信息通知給控制節(jié)點;為節(jié)點建立主題連接;將主題數(shù)據(jù)加密后發(fā)送給所有訂閱過它的節(jié)點,如果訂閱節(jié)點較多則采取廣播方式發(fā)布主題避免網(wǎng)絡(luò)阻塞;監(jiān)聽主題數(shù)據(jù),收到主題后調(diào)用主題響應(yīng)方法進行處理;
控制節(jié)點模塊,本控制節(jié)點模塊負責處理以下事務(wù):初始化控制節(jié)點并設(shè)定通訊通道,為控制節(jié)點分配本通道內(nèi)固定識別碼;注冊連接主題,用于通知普通節(jié)點當前通道內(nèi)的節(jié)點列表和主題列表,以便普通節(jié)點建立業(yè)務(wù)邏輯相關(guān)的主題連接;接收網(wǎng)絡(luò)通訊模塊發(fā)來的普通節(jié)點上線與下線通知,并將消息廣播給通道內(nèi)的所有普通節(jié)點;監(jiān)聽節(jié)點注冊主題,如果是連接主題,則將其與控制節(jié)點的連接主題相連;如果是業(yè)務(wù)邏輯相關(guān)主題,將主題列表廣播給通道內(nèi)的所有節(jié)點;
普通節(jié)點模塊,本普通節(jié)點模塊負責處理以下事務(wù):初始化普通節(jié)點并設(shè)定通訊通道,根據(jù)當前IP與進程ID自動生成通道內(nèi)唯一標識;訂閱控制節(jié)點的連接主題,當其它節(jié)點上下線時,普通節(jié)點收到來自控制節(jié)點發(fā)布的關(guān)于節(jié)點上下線的連接主題,并從主題數(shù)據(jù)中解析得到網(wǎng)絡(luò)中所有的普通節(jié)點及主題列表;注冊業(yè)務(wù)邏輯相關(guān)的主題;訂閱業(yè)務(wù)邏輯相關(guān)的主題,并注冊主題處理方法;借助網(wǎng)絡(luò)通訊模塊,建立訂閱的位于其它節(jié)點上主題;借助網(wǎng)絡(luò)通訊模塊發(fā)布主題數(shù)據(jù)。
優(yōu)選地,所述網(wǎng)絡(luò)通訊模塊、控制節(jié)點模塊都與普通節(jié)點模塊連接,所述網(wǎng)絡(luò)通訊模塊與控制節(jié)點模塊連接。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:(1)節(jié)點間網(wǎng)絡(luò)通訊方式變得有條理性且簡單。(2)引入通道概念,網(wǎng)絡(luò)中不同應(yīng)用可借助類似的通訊方式進行通訊而不會相互干擾。(3)通訊節(jié)點自動分配唯一標識,業(yè)務(wù)邏輯只需關(guān)心題而不必關(guān)心數(shù)據(jù)發(fā)布者和接收者。(4)網(wǎng)絡(luò)通訊時可根據(jù)題接收者數(shù)量自動調(diào)整網(wǎng)絡(luò)發(fā)送方式,既可將數(shù)據(jù)快速發(fā)送出去,又可避免網(wǎng)絡(luò)阻塞。
附圖說明
通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
圖1為本發(fā)明基于網(wǎng)絡(luò)的主題訂閱系統(tǒng)的原理框圖。
具體實施方式
下面結(jié)合具體實施例對本發(fā)明進行詳細說明。以下實施例將有助于本領(lǐng)域的技術(shù)人員進一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當指出的是,對本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進。這些都屬于本發(fā)明的保護范圍。
如圖1所示,本發(fā)明基于網(wǎng)絡(luò)的主題訂閱系統(tǒng)包括以下模塊:
網(wǎng)絡(luò)通訊模塊,本網(wǎng)絡(luò)通訊模塊負責處理以下事務(wù):初始化網(wǎng)絡(luò)通訊環(huán)境,設(shè)置通訊通道;監(jiān)聽網(wǎng)絡(luò)節(jié)點上線與下線,并通知控制節(jié)點;為節(jié)點注冊主題,并將主題信息通知給控制節(jié)點;為節(jié)點建立主題連接;將主題數(shù)據(jù)加密后發(fā)送給所有訂閱過它的節(jié)點,如果訂閱節(jié)點較多則采取廣播方式發(fā)布主題避免網(wǎng)絡(luò)阻塞;監(jiān)聽主題數(shù)據(jù),收到主題后調(diào)用主題響應(yīng)方法進行處理;
控制節(jié)點模塊,本控制節(jié)點模塊負責處理以下事務(wù):初始化控制節(jié)點并設(shè)定通訊通道,為控制節(jié)點分配本通道內(nèi)固定識別碼;注冊連接主題,用于通知普通節(jié)點當前通道內(nèi)的節(jié)點列表和主題列表,以便普通節(jié)點建立業(yè)務(wù)邏輯相關(guān)的主題連接;接收網(wǎng)絡(luò)通訊模塊發(fā)來的普通節(jié)點上線與下線通知,并將消息廣播給通道內(nèi)的所有普通節(jié)點;監(jiān)聽節(jié)點注冊主題,如果是連接主題,則將其與控制節(jié)點的連接主題相連;如果是業(yè)務(wù)邏輯相關(guān)主題,將主題列表廣播給通道內(nèi)的所有節(jié)點;
普通節(jié)點模塊,本普通節(jié)點模塊負責處理以下事務(wù):初始化普通節(jié)點并設(shè)定通訊通道,根據(jù)當前IP與進程ID自動生成通道內(nèi)唯一標識;訂閱控制節(jié)點的連接主題,當其它節(jié)點上下線時,普通節(jié)點收到來自控制節(jié)點發(fā)布的關(guān)于節(jié)點上下線的連接主題,并從主題數(shù)據(jù)中解析得到網(wǎng)絡(luò)中所有的普通節(jié)點及主題列表;注冊業(yè)務(wù)邏輯相關(guān)的主題;訂閱業(yè)務(wù)邏輯相關(guān)的主題,并注冊主題處理方法;借助網(wǎng)絡(luò)通訊模塊,建立訂閱的位于其它節(jié)點上主題;借助網(wǎng)絡(luò)通訊模塊發(fā)布主題數(shù)據(jù)。
本發(fā)明根據(jù)需要對主題數(shù)據(jù)加密、驗證,每個節(jié)點都是對等節(jié)點互不依賴,而且每個節(jié)點只關(guān)心主題,其余節(jié)點對它是透明的,發(fā)布出來的主題會被快速投遞給所有訂閱者,主題數(shù)據(jù)中包含通訊協(xié)議,接收都可根據(jù)通訊協(xié)議決定是否發(fā)布主題以回復發(fā)布者。
以上對本發(fā)明的具體實施例進行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實質(zhì)內(nèi)容。