專利名稱:控制型組播的實現(xiàn)方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種控制型組播的實現(xiàn)方法和i殳備。
背景技術(shù):
在分布式設(shè)備中,各業(yè)務(wù)板之間需要進行控制層面上的通信,提供這種 通信的技術(shù)稱之為板間通信。板間通信的模型如圖1所示。板間通信是分布 式設(shè)備的一項關(guān)鍵技術(shù),板間通信的可靠程度直接決定了設(shè)備的可靠程度。
目前板間通信的可靠性一般是通過確認(rèn)加重傳來實現(xiàn)的,即發(fā)送端按序 發(fā)送,接收端按序接收,在一定的時機回應(yīng)確認(rèn)報文,如果發(fā)送端沒有收到 確認(rèn),進行重傳。
在板間通信中提供了 一對多的可靠組播傳輸機制,現(xiàn)有技術(shù)中的組播模
型如圖2所示。主控板1作為發(fā)布者(Publisher),當(dāng)訂閱者(Subscriber)業(yè) 務(wù)板3請求加入(Join)主控板1的組播組、接收主控板1發(fā)布的組播報文時, 主控板1控制業(yè)務(wù)4反3加入組,燔組。當(dāng)業(yè)務(wù)才反3加入組,潘組后,可以立即4妄 收到主控板1發(fā)送的組^^艮文。
現(xiàn)有技術(shù)中的實現(xiàn)方式存在以下問題在現(xiàn)有的組播模型中,訂閱者作 為組播成員加入組播組后,立即會接收到發(fā)布者發(fā)送的組播報文,無法對訂 閱者接收組播報文的時機進行控制。
發(fā)明內(nèi)容
本發(fā)明提供一種控制型組播的實現(xiàn)方法和設(shè)備,用于實現(xiàn)一個或多個發(fā) 布者對訂閱者接收組播報文的時機進行控制。
為達(dá)到上述目的,本發(fā)明提供一種控制型組播的實現(xiàn)方法,應(yīng)用于包括 第 一發(fā)布者以及至少 一個訂閱者的板間組播通信系統(tǒng)中,所述方法包括
所述第 一發(fā)布者接收到來自發(fā)送方的加入消息時,將所述發(fā)送方設(shè)置為待加入成員,并向所迷發(fā)送方發(fā)送對所述加入消息的確認(rèn)消息,所述發(fā)送方 包括第二發(fā)布者和/或訂閱者;
所述第 一發(fā)布者判斷需要將待加入成員中的第二發(fā)布者和/或訂閱者設(shè)置 為正式成員時,向所述第二發(fā)布者和/或訂閱者發(fā)送使能消息,以及當(dāng)前組播
報文的發(fā)送序號;
所述第 一發(fā)布者接收到所述第二發(fā)布者和/或訂閱者對所述使能消息的使 能響應(yīng)消息時,將所述第二發(fā)布者和/或訂閱者設(shè)置為正式成員,向所述正式 成員發(fā)送組播報文。
其中,還包括所述笫一發(fā)布者將所述正式成員中的第二發(fā)布者和/或訂 閱者設(shè)置為待加入成員,停止發(fā)送組播報文;具體包括
所述第一發(fā)布者向所述正式成員中的第二發(fā)布者和/或訂閱者發(fā)送去^f吏能 消息;
所述第二發(fā)布者和/或訂閱者接收所述第 一發(fā)布者的去使能消息,并向所 述第 一發(fā)布者發(fā)送去使能響應(yīng)消息;
所述第一發(fā)布接收到所述去使能響應(yīng)消息時,將所述第二發(fā)布者和/或訂 閱者設(shè)置為待加入成員。
其中,還包括
當(dāng)所述第一發(fā)布者、第二發(fā)布者或訂閱者離開所述板間組播通信系統(tǒng)時, 發(fā)送離開消息;接收到所述離開消息的第 一發(fā)布者和/或第二發(fā)布者刪除所述 離開消息對應(yīng)的組播成員。
其中,還包括
所述第二發(fā)布者作為新的發(fā)布者加入已經(jīng)存在第一發(fā)布者的板間組播通 信系統(tǒng)時,所述第二發(fā)布者向所述第一發(fā)布者和各訂閱者發(fā)送加入消息;
所述第 一發(fā)布者和各訂閱者對向所述第二發(fā)布者發(fā)送響應(yīng)消息,所述第 一發(fā)布者將所述第二發(fā)布者設(shè)置為待加入成員;
所述第二發(fā)布者接收到響應(yīng)消息時,將發(fā)送所述響應(yīng)消息的第一發(fā)布者 和各訂閱者設(shè)置為待加入成員。
其中,還包括
7所述第 一發(fā)布者根據(jù)所述當(dāng)前組播報文的發(fā)送序號,確定所述第二發(fā)布 者和/或訂閱者在成為正式成員前未接收到的組播報文,將所述未接收到的組 播報文向所述第二發(fā)布者和/或訂閱者發(fā)送。
本發(fā)明還提供一種網(wǎng)絡(luò)設(shè)備,應(yīng)用于包括發(fā)布者以及至少 一個訂閱者的
板間組播通信系統(tǒng)中,所述網(wǎng)絡(luò)設(shè)備包括
發(fā)布者處理單元,用于作為發(fā)布者,接收到來自發(fā)送方的加入消息時, 將所述發(fā)送方設(shè)置為待加入成員,并向所述發(fā)送方發(fā)送對所述加入消息的確 認(rèn)消息,所述發(fā)送方包括其他發(fā)布者和/或訂閱者;判斷需要將待加入成員中 的其他發(fā)布者和/或訂閱者設(shè)置為正式成員時,向所述其他發(fā)布者和/或訂閱者 發(fā)送使能消息,以及當(dāng)前組播報文的發(fā)送序號;接收到所述第二發(fā)布者和/或 訂閱者對所述使能消息的使能響應(yīng)消息時,將所述其他發(fā)布者和/或訂閱者設(shè) 置為正式成員,向所述正式成員發(fā)送組播報文;
訂閱者處理單元,用于作為訂閱者,向發(fā)布者發(fā)送加入消息并接收所述 發(fā)布者發(fā)送的確認(rèn)消息;在接收到所述發(fā)布者發(fā)送的使能消息時,向所述發(fā) 布者發(fā)送使能響應(yīng)消息;并接收所述發(fā)布者發(fā)送的組播報文。
其中,所述發(fā)布者處理單元包括
待加入成員維護子單元,用于自身角色為發(fā)布者時,存儲待加入成員; 正式成員維護子單元,用于自身角色為發(fā)布者時,存儲正式成員; 待加入成員加入子單元,用于自身角色為發(fā)布者時,接收到來自發(fā)送方 的加入消息時,向所述發(fā)送方發(fā)送對所述加入消息的確認(rèn)消息,并將所述發(fā) 送方設(shè)置為待加入成員并加入所述待加入成員維護子單元,所述發(fā)送方包括 其他發(fā)布者和/或訂閱者;
正式成員加入子單元,用于自身角色為發(fā)布者時,判斷需要將待加入成 員中的其他發(fā)布者和/或訂閱者設(shè)置為正式成員時,向所述其他發(fā)布者和/或訂 閱者發(fā)送使能消息,以及當(dāng)前組播報文的發(fā)送序號;接收到所述其他發(fā)布者 和/或訂閱者對所述使能消息的使能響應(yīng)消息時,將所述其他發(fā)布者和/或訂閱 者設(shè)置為正式成員并加入所述正式成員維護子單元;
組播報文發(fā)送單元,用于自身角色為發(fā)布者時,向所述正式成員維護子
8單元中存儲的正式成員發(fā)送組播報文。
其中,所述發(fā)布者處理單元還包括
正式成員刪除子單元,用于將所述正式成員維護子單元中存儲的至少一 個正式成員設(shè)置為待加入成員并加入所述待加入成員維護子單元,具體用于 向所述正式成員維護子單元中存儲的至少一個正式成員發(fā)送去使能消息;接 收到所述正式成員發(fā)送的去使能響應(yīng)消息時,將所述正式成員設(shè)置為待加入 成員并加入所述待加入成員維護子單元;
成員刪除子單元,用于接收到其他發(fā)布者或訂閱者發(fā)送的離開消息時, 從所述待加入成員維護子單元存儲的待加入成員、以及所述正式成員維護子 單元存儲的正式成員中,刪除所述離開消息對應(yīng)的組播成員;
離開消息發(fā)送單元,用于在離開板間組播通信系統(tǒng)時,向其他發(fā)布者或 訂閱者發(fā)送離開消息。
加入消息發(fā)送子單元,用于作為新的發(fā)布者加入已經(jīng)存在其他發(fā)布者的 板間組播通信系統(tǒng)時,向所述其他發(fā)布者和各訂閱者發(fā)送加入消息;所述待 加入成員加入子單元,還用于接收到所述第二發(fā)布者和各訂閱者對所述加入 消息發(fā)送單元發(fā)送的加入消息的響應(yīng)消息時,將所述第二發(fā)布者和各訂閱者 設(shè)置為待加入成員。
所述待加入成員加入單元,還用于接收到新加入所述板間組播通信系統(tǒng) 的其他發(fā)布者發(fā)送的加入消息時,向所述第二發(fā)布者發(fā)送響應(yīng)消息,將所述 其他發(fā)布者設(shè)置為待加入成員并加入所述待加入成員維護單元。
所述組播報文發(fā)送單元,還用于根據(jù)所述當(dāng)前組播報文的發(fā)送序號,確 定所述第二發(fā)布者和/或訂閱者在成為正式成員前未接收到的組纟番報文,將所 述未接收到的組播"t艮文向所述第二發(fā)布者和/或訂閱者發(fā)送。
其中,所述訂閱者處理單元包括
狀態(tài)記錄子單元,用于自身角色為訂閱者時,記錄自身在其他發(fā)布者中 作為待加入成員或正式成員的狀態(tài);
報文處理子單元,用于自身角色為訂閱者時,向發(fā)布者發(fā)送加入消息并 接收所述發(fā)布者發(fā)送的確認(rèn)消息;在接收到所述發(fā)布者發(fā)送的使能消息時,向所述發(fā)布者發(fā)送^f吏能響應(yīng)消息;
組播報文接收子單元,用于自身角色為訂閱者時,接收發(fā)布者發(fā)送的組 播報文。
其中,所述訂閱者處理單元還包括
離開消息發(fā)送子單元,用于在離開板間組播通信系統(tǒng)時,向其他發(fā)布者 或訂閱者發(fā)送離開消息;
刪除子單元,用于接收到其他發(fā)布者發(fā)送的離開消息時,從所述狀態(tài)記 錄子單元存儲的狀態(tài)中,刪除所述離開消息對應(yīng)的發(fā)布者。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點
可以實現(xiàn)存在多個發(fā)布者的組播,且不同發(fā)布者能夠獨立控制訂閱者接 收組播報文的時機而不受其他發(fā)布者的影響。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面 描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講, 在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖l是現(xiàn)有技術(shù)中板間通信模型的示意圖2是現(xiàn)有技術(shù)中組播模型的示意圖3是本發(fā)明中控制型組播的實現(xiàn)方法的流程圖4是本發(fā)明中控制型組播通信模型的示意圖5是本發(fā)明中新的訂閱者加入已存在多個發(fā)布者的網(wǎng)絡(luò)時的網(wǎng)絡(luò)示意
圖6是本發(fā)明中發(fā)布者對待加入成員鏈表中的訂閱者進^H吏能的示意圖; 圖7是本發(fā)明中另一發(fā)布者對待加入成員鏈表中的訂閱者進行使能的示 意圖8是本發(fā)明中發(fā)布者對正式成員鏈表中的訂閱者進行去使能的示意圖; 圖9是本發(fā)明中訂閱者退出網(wǎng)絡(luò)的示意10圖IO是本發(fā)明中發(fā)布者加入網(wǎng)絡(luò)的示意圖; 圖ll是本發(fā)明中提供的網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖13是本發(fā)明中提供的網(wǎng)絡(luò)設(shè)備中訂閱者處理單元的結(jié)構(gòu)示意圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行 清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不 是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出 創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明提供了一種控制型組播的實現(xiàn)方法,應(yīng)用于包括第一發(fā)布者以及 至少一個訂閱者的板間組播通信系統(tǒng)中,如圖3所示,該方法包括
步驟s301、第一發(fā)布者接收到來自發(fā)送方的加入消息時,將發(fā)送方設(shè)置 為待加入成員,并向發(fā)送方發(fā)送對加入消息的確認(rèn)消息,發(fā)送方包括第二發(fā) 布者和/或訂閱者;
步驟s302、第一發(fā)布者判斷需要將待加入成員中的第二發(fā)布者和/或訂閱 者設(shè)置為正式成員時,向第二發(fā)布者和/或訂閱者發(fā)送^f吏能消息,以及當(dāng)前組 播報文的發(fā)送序號;
步驟s303、第一發(fā)布者接收到第二發(fā)布者和/或訂閱者對使能消息的使能 響應(yīng)消息時,將第二發(fā)布者和/或訂閱者設(shè)置為正式成員,向正式成員發(fā)送組 播報文。
以下結(jié)合具體的應(yīng)用場景,描述本發(fā)明中控制型組播實現(xiàn)方法的具體實 施方式。
本發(fā)明中提供的控制型組播通信模型如圖4所示。其中,Pl和P2為發(fā)布 者(Publisher),擔(dān)當(dāng)控制型組播的控制源。Sl、 S2和S3為訂閱者(Subscriber)。 以P1為例,Pl作為發(fā)布者,可以控制其他發(fā)布者(P2)和訂閱者(S1 S3) 能否接收到自身發(fā)送的組播報文。同樣,P2作為發(fā)布者,可以控制其他發(fā)布 者(Pl)和訂閱者(S1 S3 )能否接收到自身發(fā)送的組^^艮文。對于Pl和P2而言,可以各自獨立控制其他成員能否接收組播報文。
以下描述不同場景下發(fā)布者與訂閱者間的交互過程。 (場景l(fā))已存在多個發(fā)布者,新的訂閱者加入時,組播的實現(xiàn)。
以圖5所示的組網(wǎng)環(huán)境為例,系統(tǒng)中已經(jīng)存在多個發(fā)布者P1和P2,訂閱 者S1作為P1和P2的正式成員,存在于P1和P2的正式成員鏈表中,已經(jīng)可 以接收到Pl和P2發(fā)送的組l番才艮文。
新的訂閱者S2加入時,包括以下流程
(1) S2廣播自己加入的信息。
(2) 作為發(fā)布者的Pl和P2記錄S2的訂閱者身份信息,并發(fā)送確認(rèn)信 息,表明發(fā)布者身份;同時,Pl和P2將S2加入本地的待加入成員鏈表。
(3) S2根據(jù)接收到的確認(rèn)信息,記錄Pl和P2的發(fā)布者身份信息,后 續(xù)用來接受發(fā)布者對接收組"t番報文的使能。
S2與Pl和P2的消息交互完畢后,各成員記錄的信息如下
作為發(fā)布者的P1和P2,其記錄的正式成員鏈表中,包括S1;其記錄的 待加入成員鏈表中,包括S2。作為發(fā)布者的P1和P2只向正式成員鏈表中的 成員Sl發(fā)送組播報文。
對于訂閱者Sl,其記錄作為發(fā)布者的Pl和P2的信息,并記錄已經(jīng)被P1 和P2使能,可以接收到Pl和P2發(fā)送的組播報文。
對于新加入的訂閱者S2,
新加入S身份成員S2記錄的信息,其記錄作為發(fā)布者的Pl和P2的信 息,并記錄尚未被P1和P2使能,無法接收到Pl和P2發(fā)送的組播報文。
(場景2 )發(fā)布者對待加入成員鏈表中的訂閱者進行使能。 本發(fā)明提供的方法中,發(fā)布者可以對向訂閱者發(fā)送組播報文的時機進行 控制,在判斷可以向訂閱者發(fā)送組播報文時,對待加入成員鏈表中的訂閱者 進行使能。該時機的選擇方法可以包括但不限于以下方式
(1)當(dāng)新訂閱者加入時,發(fā)布者之前已經(jīng)發(fā)送了部分組4番報文,此時發(fā) 布者需將前面已發(fā)送的組播報文以單播的形式發(fā)送給新訂閱者,再使能新訂閱者接收組播報文,從而使得包括新訂閱者在內(nèi)所有的訂閱者獲得相同的數(shù) 據(jù)。
(2)發(fā)布者上預(yù)先配置了新訂閱者能夠接收組播報文的時間段,因此發(fā) 布者可以根據(jù)該配置的時間段控制訂閱者的訂閱時機,當(dāng)?shù)竭_(dá)某一時刻時, 使能此訂閱者的組播報文接收,過了此時間后去使能該訂閱者的組播寺艮文接 收。
以圖6所示的組網(wǎng)環(huán)境為例,系統(tǒng)中已經(jīng)存在多個發(fā)布者P1和P2,訂閱 者Sl作為Pl和P2的正式成員,存在于P1和P2的正式成員鏈表中,已經(jīng)可 以接收到Pl和P2發(fā)送的組播報文;訂閱者S2作為Pl和P2的待加入成員, 存在于Pl和P2的待加入成員鏈表中,尚無法接收到Pl和P2發(fā)送的組^番才艮 文。
以P1使能S2為例,包括以下步驟
(1) Pl向S2發(fā)送使能消息,并攜帶當(dāng)前的組播報文發(fā)送序號;
(2) S2收到Pl的使能消息,記錄被P1使能的信息和P1成員的當(dāng)前組 播報文發(fā)送序號,并向Pl回復(fù)使能ACK (響應(yīng))消息;
(3 ) Pl收到S2的使能ACK消息,將S2成員從待加入成員鏈表移到正 式成員鏈表中,此時S2能接收P1的組播報文。 上述消息交互完畢后,各成員記錄的信息如下
作為發(fā)布者的Pl,其記錄的正式成員鏈表中,包括S1和S2;其記錄的 待加入成員鏈表中,為空。
作為發(fā)布者的P2,其記錄的正式成員鏈表中,包括S1;其記錄的待加入 成員鏈表中,包括S2。
對于訂閱者Sl,其記錄作為發(fā)布者的P1和P2的信息,并記錄已經(jīng)被P1 和P2使能,可以接收到Pl和P2發(fā)送的組〗番報文。
對于訂閱者S2,其記錄作為發(fā)布者的P1和P2的信息,并記錄已經(jīng)被P1 使能,可以接收到Pl發(fā)送的組播報文,Pl的發(fā)送的組播報文序號seq_Pl; 并記錄尚未被P2使能,無法接收到P2發(fā)送的組播報文。
13以之后某時刻當(dāng)P2使能S2成員為例,如圖7所示,包括以下步-驟 (1) P2向S2發(fā)送使能消息,并攜帶當(dāng)前的組播報文發(fā)送序號; (2 ) S2收到P2的使能消息,記錄被P2使能的信息和P2成員的當(dāng)前組 播報文發(fā)送序號,并向P2回復(fù)使能ACK消息;
(3 ) Pl收到S2的使能ACK消息,將S2成員從待加入成員鏈表移到正 式成員鏈表中,此時S2能接收P1的組播才艮文。 上述消息交互完畢后,各成員記錄的信息如下
作為發(fā)布者的Pl,其記錄的正式成員《連表中,包括S1和S2;其記錄的 待加入成員鏈表中,為空。
作為發(fā)布者的P2,其記錄的正式成員鏈表中,包括S1和S2;其i己錄的 待加入成員鏈表中,為空。
對于訂閱者S1,其記錄作為發(fā)布者的P1和P2的信息,并記錄已經(jīng);陂P1 和P2使能,可以接收到Pl和P2發(fā)送的組纟番報文。
對于訂閱者S2,其記錄作為發(fā)布者的P1和P2的信息,并記錄已經(jīng)被P1 和P2使能,可以接收到Pl和P2發(fā)送的組播報文,Pl的發(fā)送的組播才艮文序 號seq_Pl, P2的發(fā)送的組纟番報文序號seq_P2。
(場景3)發(fā)布者對正式成員鏈表中的訂閱者進行去使能。 以圖7所示的組網(wǎng)環(huán)境為例,系統(tǒng)中已經(jīng)存在多個發(fā)布者P1和P2,訂閱 者Sl和S2作為Pl和P2的正式成員,存在于Pl和P2的正式成員鏈表中, 已經(jīng)可以4妄收到Pl和P2發(fā)送的組播報文。 以P2去使能S2為例,包括以下步驟 (1) P2向S2發(fā)送去使能消息;
(2 ) S2收到P2的去使能消息,記錄S2沒有被P2使能,并向P2回復(fù) 去使能ACK消息;
(3 ) P2收到S2的去使能ACK消息,將S2成員從正式成員鏈表移到待 加入成員鏈表中,此時S2不能接收P2的組播報文。 上述消息交互完畢后,各成員記錄的信息如下
14作為發(fā)布者的Pl,其記錄的正式成員鏈表中,包括S1和S2;其記錄的 待加入成員鏈表中,為空。
作為發(fā)布者的P2,其記錄的正式成員鏈表中,包括S1;其記錄的待加入 成員鏈表中,包括S2。
對于訂閱者Sl,其記錄作為發(fā)布者的Pl和P2的信息,并記錄已經(jīng)被P1 和P2使能,可以接收到Pl和P2發(fā)送的組纟番報文。
對于訂閱者S2,其記錄作為發(fā)布者的P1和P2的信息,并記錄已經(jīng)被P1 使能,可以接收到Pl發(fā)送的組播報文。同時記錄尚未被P2使能,無法接收 到P2發(fā)送的組播報文。
若之后某一時刻Pl去使能S2,則對于Pl去使能S2的處理流程,與上 述P2去使能S2的流程類似,處理完成后S2不能接收Pl的組播報文。
(場景4)訂閱者退出網(wǎng)絡(luò)。
以圖9所示的組網(wǎng)環(huán)境為例,系統(tǒng)中已經(jīng)存在多個發(fā)布者P1和P2,以及 訂閱者S1和S2。
當(dāng)S2退出時,需要廣播成員離開(Leave)消息。網(wǎng)絡(luò)中的發(fā)布者P1和 P2對此離開消息進行響應(yīng),清除本地待加入成員鏈表和正式成員列表中的S2 相關(guān)信息。
同樣,當(dāng)某一個發(fā)布者如P2退出時,需要廣播成員離開(Leave)消息。 網(wǎng)絡(luò)中的發(fā)布者P1和各訂閱者對此離開消息進行響應(yīng),清除本地保存的與P2 相關(guān)的信息。
(場景5 )新的發(fā)布者加入網(wǎng)絡(luò)。
當(dāng)單控制源控制型組播模型(或多控制源控制型組播模型)中加入另外 一個控制源(發(fā)布者)時,原有的發(fā)布者和訂閱者需要記錄該新加入的發(fā)布 者的信息,新加入的發(fā)布者也需要記錄原有的發(fā)布者和訂閱者的信息。
以圖IO所示的網(wǎng)絡(luò)場景為例,網(wǎng)絡(luò)中已經(jīng)存在發(fā)布者P1和訂閱者S1、 S2 。
P2加入時的流程包括
15(1) P2廣播加入(Join)消息,表明發(fā)布者身份;
(2) Pl記錄P2,將P2加入待加入成員鏈表,并發(fā)送Join ACK消息, 表明自己的發(fā)布者身^f分;作為訂閱者的S1、 S2記錄P2的信息,后續(xù)用來接 受P2成員的使能,并發(fā)送JoinACK消息,表明自己的訂閱者身份;
(3) P2接收到P1、 Sl以及S2的ACK消息,記錄成員信息,并將P1、 Sl以及S2加入待加入成員鏈表中。
通過上述場景的描述可以發(fā)現(xiàn),本發(fā)明提供的方法中,可以實現(xiàn)存在多 個發(fā)布者的組播,且不同發(fā)布者能夠獨立控制訂閱者接收組播報文的時機而 不受其他發(fā)布者的影響。
本發(fā)明還提供了 一種網(wǎng)絡(luò)設(shè)備,應(yīng)用于包括發(fā)布者以及至少 一個訂閱者 的板間組播通信系統(tǒng)中,如圖11所示,該網(wǎng)絡(luò)設(shè)備包括
發(fā)布者處理單元IO,用于作為發(fā)布者,接收到來自發(fā)送方的加入消息時, 將發(fā)送方設(shè)置為待加入成員,并向發(fā)送方發(fā)送對加入消息的確認(rèn)消息,發(fā)送 方包括其他發(fā)布者和/或訂閱者;判斷需要將待加入成員中的其他發(fā)布者和/ 或訂閱者設(shè)置為正式成員時,向其他發(fā)布者和/或訂閱者發(fā)送使能消息,以及 當(dāng)前組播報文的發(fā)送序號;接收到第二發(fā)布者和/或訂閱者對使能消息的使能 響應(yīng)消息時,將其他發(fā)布者和/或訂閱者設(shè)置為正式成員,向正式成員發(fā)送組 播報文;
訂閱者處理單元20,用于作為訂閱者,向發(fā)布者發(fā)送加入消息并接收發(fā) 布者發(fā)送的確認(rèn)消息;在接收到發(fā)布者發(fā)送的使能消息時,向發(fā)布者發(fā)送使 能響應(yīng)消息;并接收發(fā)布者發(fā)送的組播報文。
其中,如圖12所示,發(fā)布者處理單元10包括
待加入成員維護子單元11,用于自身角色為發(fā)布者時,存儲待加入成員; 正式成員維護子單元12,用于自身角色為發(fā)布者時,存儲正式成員; 待加入成員加入子單元13,用于自身角色為發(fā)布者時,接收到來自發(fā)送 方的加入消息時,向發(fā)送方發(fā)送對加入消息的確認(rèn)消息,并將發(fā)送方設(shè)置為 待加入成員并加入待加入成員維護子單元11,發(fā)送方包括其他發(fā)布者和/或訂閱者;
正式成員加入子單元14,用于自身角色為發(fā)布者時,判斷需要將待加入 成員中的其他發(fā)布者和/或訂閱者設(shè)置為正式成員時,向其他發(fā)布者和/或訂閱
者發(fā)送使能消息,以及當(dāng)前組播報文的發(fā)送序號;接收到其他發(fā)布者和/或訂 閱者對使能消息的使能響應(yīng)消息時,將其他發(fā)布者和/或訂閱者設(shè)置為正式成 員并加入正式成員維護子單元12;
組播報文發(fā)送單元15,用于自身角色為發(fā)布者時,向正式成員維護子單 元中12存儲的正式成員發(fā)送組播報文。
其中,發(fā)布者處理單元還包括
正式成員刪除子單元16,用于將正式成員維護子單元12中存儲的至少一 個正式成員設(shè)置為待加入成員并加入待加入成員維護子單元11,具體用于 向正式成員維護子單元中12存儲的至少一個正式成員發(fā)送去使能消息;接收 到正式成員發(fā)送的去使能響應(yīng)消息時,將正式成員設(shè)置為待加入成員并加入 待加入成員維護子單元11;
成員刪除子單元17,用于接收到其他發(fā)布者或訂閱者發(fā)送的離開消息時, 從待加入成員維護子單元11存儲的待加入成員、以及正式成員維護子單元12 存儲的正式成員中,刪除離開消息對應(yīng)的組#"成員;
離開消息發(fā)送單元18,用于在離開板間組播通信系統(tǒng)時,向其他發(fā)布者 或訂閱者發(fā)送離開消息。
加入消息發(fā)送子單元19,用于作為新的發(fā)布者加入已經(jīng)存在其他發(fā)布者 的板間組播通信系統(tǒng)時,向其他發(fā)布者和各訂閱者發(fā)送加入消息;待加入成 員加入子單元13,還用于接收到第二發(fā)布者和各訂閱者對加入消息發(fā)送單元 發(fā)送的加入消息的響應(yīng)消息時,將第二發(fā)布者和各訂閱者設(shè)置為待加入成員。
待加入成員加入單元13 ,還用于接收到新加入板間組播通信系統(tǒng)的其他 發(fā)布者發(fā)送的加入消息時,向第二發(fā)布者發(fā)送響應(yīng)消息,將其他發(fā)布者^:置 為待加入成員并加入待加入成員維護單元11。
組播報文發(fā)送單元15,還用于根據(jù)當(dāng)前組播報文的發(fā)送序號,確定其他 發(fā)布者和/或訂閱者在成為正式成員前未接收到的組播^^文,將其他發(fā)布者和/
17或訂閱者在成為正式成員前未接收到的組播報文向其他發(fā)布者和/或訂閱者發(fā) 送。
其中,如圖13所示,訂閱者處理單元20包括
狀態(tài)記錄子單元21,用于自身角色為訂閱者時,記錄自身在其他發(fā)布者 中作為待加入成員或正式成員的狀態(tài);
報文處理子單元22,用于自身角色為訂閱者時,向發(fā)布者發(fā)送加入消息 并接收發(fā)布者發(fā)送的確認(rèn)消息;在接收到發(fā)布者發(fā)送的使能消息時,向發(fā)布 者發(fā)送使能響應(yīng)消息;
組播報文接收子單元23 ,用于自身角色為訂閱者時,接收發(fā)布者發(fā)送的 組播報文。
其中,訂閱者處理單元還包括
離開消息發(fā)送子單元24,用于在離開板間組播通信系統(tǒng)時,向其他發(fā)布 者或訂閱者發(fā)送離開消息;
刪除子單元25,用于接收到其他發(fā)布者發(fā)送的離開消息時,從狀態(tài)記錄 子單元21存儲的狀態(tài)中,刪除離開消息對應(yīng)的發(fā)布者。
通過適用本發(fā)明提供的作為發(fā)布者的網(wǎng)絡(luò)設(shè)備,可以實現(xiàn)存在多個發(fā)布 者的組播,且不同發(fā)布者能夠獨立控制訂閱者接收組^^艮文的時機而不受其 他發(fā)布者的影響。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā) 明可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)。 基于這樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟 件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM, U盤,移動硬 盤等)中,包括若千指令用以使得一臺計算機設(shè)備(可以是個人計算機,服 務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此, 任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。
18
權(quán)利要求
1、一種控制型組播的實現(xiàn)方法,其特征在于,應(yīng)用于包括第一發(fā)布者以及至少一個訂閱者的板間組播通信系統(tǒng)中,所述方法包括所述第一發(fā)布者接收到來自發(fā)送方的加入消息時,將所述發(fā)送方設(shè)置為待加入成員,并向所述發(fā)送方發(fā)送對所述加入消息的確認(rèn)消息,所述發(fā)送方包括第二發(fā)布者和/或訂閱者;所述第一發(fā)布者判斷需要將待加入成員中的第二發(fā)布者和/或訂閱者設(shè)置為正式成員時,向所述第二發(fā)布者和/或訂閱者發(fā)送使能消息,以及當(dāng)前組播報文的發(fā)送序號;所述第一發(fā)布者接收到所述第二發(fā)布者和/或訂閱者對所述使能消息的使能響應(yīng)消息時,將所述第二發(fā)布者和/或訂閱者設(shè)置為正式成員,向所述正式成員發(fā)送組播報文。
2、 如權(quán)利要求l所述的方法,其特征在于,還包括所述第一發(fā)布者將 所述正式成員中的第二發(fā)布者和/或訂閱者設(shè)置為待加入成員,停止發(fā)送組播 報文;具體包括所述第一發(fā)布者向所述正式成員中的第二發(fā)布者和/或訂閱者發(fā)送去使能 消息;所述第二發(fā)布者和/或訂閱者接收所述第一發(fā)布者的去使能消息,并向所 述第 一發(fā)布者發(fā)送去〗吏能響應(yīng)消息;所述第一發(fā)布接收到所述去使能響應(yīng)消息時,將所述第二發(fā)布者和/或訂 閱者設(shè)置為待加入成員。
3、 如權(quán)利要求1或2所述的方法,其特征在于,還包括當(dāng)所述第一發(fā)布者、第二發(fā)布者或訂閱者離開所述板間組播通信系統(tǒng)時, 發(fā)送離開消息;接收到所述離開消息的第 一發(fā)布者和/或第二發(fā)布者刪除所述 離開消息對應(yīng)的組播成員。
4、 如權(quán)利要求l或2所述的方法,其特征在于,還包括 所述第二發(fā)布者作為新的發(fā)布者加入已經(jīng)存在第一發(fā)布者的板間組播通信系統(tǒng)時,所述第二發(fā)布者向所述第一發(fā)布者和各訂閱者發(fā)送加入消息; 所述第 一發(fā)布者和各訂閱者對向所述第二發(fā)布者發(fā)送響應(yīng)消息,所述第一發(fā)布者將所述第二發(fā)布者設(shè)置為待加入成員;所述第二發(fā)布者接收到響應(yīng)消息時,將發(fā)送所述響應(yīng)消息的第一發(fā)布者 和各訂閱者設(shè)置為待加入成員。
5、 如權(quán)利要求1或2所述的方法,其特征在于,還包括所述第一發(fā)布者根據(jù)所述當(dāng)前組播報文的發(fā)送序號,確定所述第二發(fā)布 者和/或訂閱者在成為正式成員前未接收到的組播報文,將所述未接收到的組 播報文向所述第二發(fā)布者和/或訂閱者發(fā)送。
6、 一種網(wǎng)絡(luò)設(shè)備,其特征在于包括發(fā)布者處理單元,用于作為發(fā)布者,接收到來自發(fā)送方的加入消息時, 將所述發(fā)送方設(shè)置為待加入成員,并向所述發(fā)送方發(fā)送對所述加入消息的確 認(rèn)消息,所述發(fā)送方包括其他發(fā)布者和/或訂閱者;判斷需要將待加入成員中 的其他發(fā)布者和/或訂閱者設(shè)置為正式成員時,向所述其他發(fā)布者和/或訂閱者 發(fā)送使能消息,以及當(dāng)前組播報文的發(fā)送序號;接收到所述第二發(fā)布者和/或 訂閱者對所述使能消息的使能響應(yīng)消息時,將所述其他發(fā)布者和/或訂閱者設(shè) 置為正式成員,向所述正式成員發(fā)送組播報文;訂閱者處理單元,用于作為訂閱者,向發(fā)布者發(fā)送加入消息并接收所述 發(fā)布者發(fā)送的確認(rèn)消息;在接收到所述發(fā)布者發(fā)送的使能消息時,向所述發(fā) 布者發(fā)送使能響應(yīng)消息;并接收所述發(fā)布者發(fā)送的組播"R文。
7、 如權(quán)利要求6所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述發(fā)布者處理單元包括待加入成員維護子單元,用于自身角色為發(fā)布者時,存儲待加入成員; 正式成員維護子單元,用于自身角色為發(fā)布者時,存儲正式成員; 待加入成員加入子單元,用于自身角色為發(fā)布者時,接收到來自發(fā)送方的加入消息時,向所述發(fā)送方發(fā)送對所述加入消息的確認(rèn)消息,并將所述發(fā)送方設(shè)置為待加入成員并加入所迷待加入成員維護子單元,所述發(fā)送方包括其他發(fā)布者和/或訂閱者;正式成員加入子單元,用于自身角色為發(fā)布者時,判斷需要將待加入成員中的其他發(fā)布者和/或訂閱者設(shè)置為正式成員時,向所述其他發(fā)布者和/或訂閱者發(fā)送使能消息,以及當(dāng)前組播報文的發(fā)送序號;接收到所述其他發(fā)布者 和/或訂閱者對所述使能消息的使能響應(yīng)消息時,將所述其他發(fā)布者和/或訂閱 者設(shè)置為正式成員并加入所述正式成員維護子單元;組4番報文發(fā)送單元,用于自身角色為發(fā)布者時,向所述正式成員維護子 單元中存儲的正式成員發(fā)送組播報文。
8、如權(quán)利要求7所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述發(fā)布者處理單元還 包括正式成員刪除子單元,用于將所述正式成員維護子單元中存儲的至少一 個正式成員設(shè)置為待加入成員并加入所述待加入成員維護子單元,具體用于 向所述正式成員維護子單元中存儲的至少一個正式成員發(fā)送去使能消息;接 收到所述正式成員發(fā)送的去使能響應(yīng)消息時,將所述正式成員設(shè)置為待加入 成員并加入所述4寺加入成員維護子單元;成員刪除子單元,用于接收到其他發(fā)布者或訂閱者發(fā)送的離開消息時, 從所述待加入成員維護子單元存儲的待加入成員、以及所述正式成員維護子 單元存儲的正式成員中,刪除所述離開消息對應(yīng)的組播成員;離開消息發(fā)送單元,用于在離開板間組播通信系統(tǒng)時,向其他發(fā)布者或 訂閱者發(fā)送離開消息。加入消息發(fā)送子單元,用于作為新的發(fā)布者加入已經(jīng)存在其他發(fā)布者的 板間組播通信系統(tǒng)時,向所述其他發(fā)布者和各訂閱者發(fā)送加入消息;所述待 加入成員加入子單元,還用于接收到所述第二發(fā)布者和各訂閱者對所述加入 消息發(fā)送單元發(fā)送的加入消息的響應(yīng)消息時,將所述第二發(fā)布者和各訂閱者 設(shè)置為待加入成員。所述待加入成員加入單元,還用于接收到新加入所述板間組播通信系統(tǒng) 的其他發(fā)布者發(fā)送的加入消息時,向所述第二發(fā)布者發(fā)送響應(yīng)消息,將所述 其他發(fā)布者設(shè)置為待加入成員并加入所述待加入成員維護單元;所述組播報文發(fā)送單元,還用于根據(jù)所述當(dāng)前組播報文的發(fā)送序號,確 定所述第二發(fā)布者和/或訂閱者在成為正式成員前未接收到的組播報文,將所 述未接收到的組播報文向所述第二發(fā)布者和/或訂閱者發(fā)送。
9、 如權(quán)利要求6所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述訂閱者處理單元包括狀態(tài)記錄子單元,用于自身角色為訂閱者時,記錄自身在其他發(fā)布者中 作為待加入成員或正式成員的狀態(tài);報文處理子單元,用于自身角色為訂閱者時,向發(fā)布者發(fā)送加入消息并 接收所述發(fā)布者發(fā)送的確認(rèn)消息;在接收到所述發(fā)布者發(fā)送的使能消息時, 向所述發(fā)布者發(fā)送^f吏能響應(yīng)消息;組播報文接收子單元,用于自身角色為訂閱者時,接收發(fā)布者發(fā)送的組 播報文。
10、 如權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述訂閱者處理單元 還包括離開消息發(fā)送子單元,用于在離開板間組播通信系統(tǒng)時,向其他發(fā)布者 或訂閱者發(fā)送離開消息;刪除子單元,用于接收到其他發(fā)布者發(fā)送的離開消息時,從所述狀態(tài)記 錄子單元存儲的狀態(tài)中,刪除所述離開消息對應(yīng)的發(fā)布者。
全文摘要
本發(fā)明公開了一種控制型組播的實現(xiàn)方法和設(shè)備。該方法應(yīng)用于包括第一發(fā)布者以及至少一個訂閱者的板間組播通信系統(tǒng)中,包括第一發(fā)布者接收到來自發(fā)送方的加入消息時,將發(fā)送方設(shè)置為待加入成員,并向發(fā)送方發(fā)送對加入消息的確認(rèn)消息,發(fā)送方包括第二發(fā)布者和/或訂閱者;第一發(fā)布者判斷需要將待加入成員中的第二發(fā)布者和/或訂閱者設(shè)置為正式成員時,向第二發(fā)布者和/或訂閱者發(fā)送使能消息,以及當(dāng)前組播報文的發(fā)送序號;第一發(fā)布者接收到第二發(fā)布者和/或訂閱者對使能消息的使能響應(yīng)消息時,將第二發(fā)布者和/或訂閱者設(shè)置為正式成員,向正式成員發(fā)送組播報文。通過使用本發(fā)明,實現(xiàn)了存在多個發(fā)布者的組播,且不同發(fā)布者能夠獨立控制訂閱者接收組播報文的時機。
文檔編號H04L12/18GK101605044SQ20091015802
公開日2009年12月16日 申請日期2009年7月16日 優(yōu)先權(quán)日2009年7月16日
發(fā)明者喬會來, 其 楊, 楊榮虎, 牟宣理, 蓋建華 申請人:杭州華三通信技術(shù)有限公司