本發(fā)明涉及電子技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)通信方法及數(shù)據(jù)通信裝置。
背景技術(shù):
數(shù)據(jù)分發(fā)服務(wù)(DDS-Data Distribution Service)是新一代分布式實(shí)時(shí)通信中間件技術(shù)規(guī)范,采用發(fā)布/訂閱架構(gòu),以數(shù)據(jù)為中心,提供豐富的Qos策略,由對(duì)象管理組織(OMG)制定,用于解決實(shí)時(shí)分布式系統(tǒng)中的數(shù)據(jù)分發(fā)實(shí)時(shí)性、靈活性和Qos控制等問(wèn)題。以該技術(shù)規(guī)范為基礎(chǔ)產(chǎn)生了諸多數(shù)據(jù)分發(fā)服務(wù)中間件,為分布式系統(tǒng)中各節(jié)點(diǎn)間通信提供了新的手段。目前,數(shù)據(jù)分發(fā)服務(wù)中間件已在發(fā)達(dá)國(guó)家中的艦船控制、數(shù)字電視系統(tǒng)、飛行模擬器和軍隊(duì)網(wǎng)絡(luò)系統(tǒng)中得到廣泛使用。
在現(xiàn)有的基于數(shù)據(jù)分發(fā)服務(wù)的數(shù)據(jù)通信方法中,整個(gè)分布式服務(wù)系統(tǒng)的配置信息只能由本機(jī)程序使用,非本機(jī)程序無(wú)法直接使用,這樣,當(dāng)分布式系統(tǒng)中組成節(jié)點(diǎn)過(guò)多時(shí),本機(jī)程序需要?jiǎng)?chuàng)建和維護(hù)配置信息的數(shù)目和工作量都會(huì)上升。
可見(jiàn),現(xiàn)有技術(shù)中的基于數(shù)據(jù)分發(fā)服務(wù)的數(shù)據(jù)通信方法存在配置信息維護(hù)的工作量較大的技術(shù)問(wèn)題。
進(jìn)一步,當(dāng)分布式系統(tǒng)中缺少數(shù)據(jù)流量控制并且其通信數(shù)據(jù)過(guò)多導(dǎo)致數(shù)據(jù)處理速度和數(shù)據(jù)接收速度不匹配時(shí),會(huì)導(dǎo)致數(shù)據(jù)延時(shí)處理、數(shù)據(jù)丟失或者程序內(nèi)存無(wú)限增長(zhǎng)從而崩潰,影響分布式系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性。
可見(jiàn),現(xiàn)有的基于數(shù)據(jù)分發(fā)服務(wù)的數(shù)據(jù)通信方法在通信數(shù)據(jù)過(guò)多時(shí)存在實(shí)時(shí)性和穩(wěn)定性差的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種數(shù)據(jù)通信方法及數(shù)據(jù)通信裝置,用于解決現(xiàn)有技術(shù)中的基于數(shù)據(jù)分發(fā)服務(wù)的數(shù)據(jù)通信方法存在配置信息維護(hù)的工作量較大的技術(shù)問(wèn)題,實(shí)現(xiàn)增加配置管理的靈活性、減輕配置信息維護(hù)的工作量的技術(shù)效果。
本申請(qǐng)實(shí)施例一方面提供了一種數(shù)據(jù)通信方法,應(yīng)用于數(shù)據(jù)通信裝置中,包括:
為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù);
加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象;
為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū);
基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信。
可選的,所述配置庫(kù)信息包括初始化配置信息和/或運(yùn)行參數(shù)配置信息和/或數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息和/或Qos策略配置信息。
可選的,所述基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,包括:
獲取所述初始化配置信息;
基于所述初始化配置信息確定所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息的獲取類型,其中,所述獲取類型包含本機(jī)類型或遠(yuǎn)程類型;
從與所述獲取類型相對(duì)應(yīng)的第一配置庫(kù)中獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;
基于所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息創(chuàng)建所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象。
可選的,所述從與所述獲取類型相對(duì)應(yīng)的配置庫(kù)中獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息,包括:
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為本機(jī)類型,則從與所述第i個(gè)節(jié)點(diǎn)對(duì)應(yīng)第i個(gè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;或
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為遠(yuǎn)程類型,則從第i個(gè)預(yù)設(shè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息。
可選的,所述為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū),包括:
依次取j為1至N,獲取所述N個(gè)節(jié)點(diǎn)中的第j個(gè)節(jié)點(diǎn)的第j個(gè)運(yùn)行參數(shù)配置信息,基于所述第j個(gè)運(yùn)行參數(shù)配置信息配置與所述第j個(gè)節(jié)點(diǎn)對(duì)應(yīng)的第j個(gè)數(shù)據(jù)緩沖區(qū),在j為N時(shí),獲取N個(gè)數(shù)據(jù)緩沖區(qū),其中,所述N個(gè)數(shù)據(jù)緩沖區(qū)中的每個(gè)數(shù)據(jù)緩沖區(qū)為具有數(shù)據(jù)流控制能力的數(shù)據(jù)緩沖區(qū)。
可選的,所述運(yùn)行參數(shù)配置信息包括減速閾值、與所述減速閾值對(duì)應(yīng)的第一持續(xù)時(shí)間閾值、恢復(fù)閾值及與所述恢復(fù)閾值對(duì)應(yīng)的第二持續(xù)時(shí)間閾值。
可選的,所述基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信,包括:
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),將所述數(shù)據(jù)放置于與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理并通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象發(fā)送所述數(shù)據(jù);或
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)接收數(shù)據(jù)時(shí),通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象將所述數(shù)據(jù)寫(xiě)入與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理,獲取所述數(shù)據(jù)。
可選的,所述通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理,包括:
所述第一數(shù)據(jù)緩沖區(qū)根據(jù)所述數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行組裝處理,以及對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整。
可選的,所述對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整,包括:
對(duì)所述第一數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)讀寫(xiě)速度和數(shù)據(jù)緩沖數(shù)目進(jìn)行采樣,獲得采樣結(jié)果;
根據(jù)所述采樣結(jié)果實(shí)時(shí)計(jì)算所述數(shù)據(jù)讀寫(xiě)速度的算數(shù)平均值及第一數(shù)據(jù)緩沖數(shù)目;
判斷所述第一數(shù)據(jù)緩沖數(shù)目是否超過(guò)所述減速閾值;
在所述第一數(shù)據(jù)緩沖數(shù)目超過(guò)所述減速閾值時(shí),獲取與所述第一數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第一持續(xù)時(shí)長(zhǎng);
判斷所述第一持續(xù)時(shí)長(zhǎng)是否超過(guò)所述第一持續(xù)時(shí)間閾值;
在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述第一持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第一速度控制信息,以減少所述發(fā)送方的數(shù)據(jù)發(fā)送速度,使所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)處理速度大于數(shù)據(jù)接收速度,從而減少數(shù)據(jù)緩沖數(shù)目,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)讀寫(xiě)速度平衡。
可選的,在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送速度控制信息之后,所述方法還包括:
獲取所述第一數(shù)據(jù)緩沖區(qū)中的第二數(shù)據(jù)緩沖數(shù)目;
判斷所述第二數(shù)據(jù)緩沖數(shù)目是否低于所述恢復(fù)閾值;
在所述第二數(shù)據(jù)緩沖數(shù)目低于所述恢復(fù)閾值時(shí),獲取與所述第二數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第二持續(xù)時(shí)長(zhǎng);
判斷所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述持續(xù)時(shí)間閾值;
在所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第二速度控制信息,恢復(fù)數(shù)據(jù)發(fā)送速度,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)傳輸性能平衡。
本申請(qǐng)實(shí)施例另一方面還提供了一種數(shù)據(jù)通信裝置,包括:
配置單元,用于為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù);
數(shù)據(jù)分發(fā)服務(wù)對(duì)象創(chuàng)建單元,用于加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象;
數(shù)據(jù)緩沖區(qū)創(chuàng)建單元,用于為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū);
數(shù)據(jù)傳輸單元,用于基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信。
可選的,所述配置庫(kù)信息包括初始化配置信息和/或運(yùn)行參數(shù)配置信息和/或數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息和/或Qos策略配置信息。
可選的,所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象創(chuàng)建單元具體用于:
獲取所述初始化配置信息;
基于所述初始化配置信息確定所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息的獲取類型,其中,所述獲取類型包含本機(jī)類型或遠(yuǎn)程類型;
從與所述獲取類型相對(duì)應(yīng)的第一配置庫(kù)中獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;
基于所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息創(chuàng)建所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象。
可選的,所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象創(chuàng)建單元具體用于:
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為本機(jī)類型,則從與所述第i個(gè)節(jié)點(diǎn)對(duì)應(yīng)第i個(gè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;或
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為遠(yuǎn)程類型,則從第i個(gè)預(yù)設(shè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息。
可選的,所述數(shù)據(jù)緩沖區(qū)創(chuàng)建單元具體用于:
依次取j為1至N,獲取所述N個(gè)節(jié)點(diǎn)中的第j個(gè)節(jié)點(diǎn)的第j個(gè)運(yùn)行參數(shù)配置信息,基于所述第j個(gè)運(yùn)行參數(shù)配置信息配置與所述第j個(gè)節(jié)點(diǎn)對(duì)應(yīng)的第j個(gè)數(shù)據(jù)緩沖區(qū),在j為N時(shí),獲取N個(gè)數(shù)據(jù)緩沖區(qū),其中,所述N個(gè)數(shù)據(jù)緩沖區(qū)中的每個(gè)數(shù)據(jù)緩沖區(qū)為具有數(shù)據(jù)流控制能力的數(shù)據(jù)緩沖區(qū)。
可選的,所述運(yùn)行參數(shù)配置信息包括減速閾值、與所述減速閾值對(duì)應(yīng)的第一持續(xù)時(shí)間閾值、恢復(fù)閾值及與所述恢復(fù)閾值對(duì)應(yīng)的第二持續(xù)時(shí)間閾值。
可選的,所述數(shù)據(jù)傳輸單元具體用于:
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),將所述數(shù)據(jù)放置于與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理并通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象發(fā)送所述數(shù)據(jù);或
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)接收數(shù)據(jù)時(shí),通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象將所述數(shù)據(jù)寫(xiě)入與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理,獲取所述數(shù)據(jù)。
可選的,所述數(shù)據(jù)傳輸單元具體用于:
所述第一數(shù)據(jù)緩沖區(qū)根據(jù)所述數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行組裝處理,以及對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整。
可選的,所述數(shù)據(jù)傳輸單元具體用于:
對(duì)所述第一數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)讀寫(xiě)速度和數(shù)據(jù)緩沖數(shù)目進(jìn)行采樣,獲得采樣結(jié)果;
根據(jù)所述采樣結(jié)果實(shí)時(shí)計(jì)算所述數(shù)據(jù)讀寫(xiě)速度的算數(shù)平均值及第一數(shù)據(jù)緩沖數(shù)目;
判斷所述第一數(shù)據(jù)緩沖數(shù)目是否超過(guò)所述減速閾值;
在所述第一數(shù)據(jù)緩沖數(shù)目超過(guò)所述減速閾值時(shí),獲取與所述第一數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第一持續(xù)時(shí)長(zhǎng);
判斷所述第一持續(xù)時(shí)長(zhǎng)是否超過(guò)所述第一持續(xù)時(shí)間閾值;
在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述第一持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第一速度控制信息,以減少所述發(fā)送方的數(shù)據(jù)發(fā)送速度,使所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)處理速度大于數(shù)據(jù)接收速度,從而減少數(shù)據(jù)緩沖數(shù)目,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)讀寫(xiě)速度平衡。
可選的,所述數(shù)據(jù)傳輸單元還用于:
獲取所述第一數(shù)據(jù)緩沖區(qū)中的第二數(shù)據(jù)緩沖數(shù)目
判斷所述第二數(shù)據(jù)緩沖數(shù)目是否低于所述恢復(fù)閾值;
在所述第二數(shù)據(jù)緩沖數(shù)目低于所述恢復(fù)閾值時(shí),獲取與所述第二數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第二持續(xù)時(shí)長(zhǎng);
判斷所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述第二持續(xù)時(shí)間閾值;
在所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述第二持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第二速度控制信息,恢復(fù)數(shù)據(jù)發(fā)送速度,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)傳輸性能平衡。
本申請(qǐng)實(shí)施例中的上述一個(gè)或多個(gè)技術(shù)方案,至少具有如下一種或多種技術(shù)效果:
一、由于本申請(qǐng)實(shí)施例中的技術(shù)方案,采用為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù);加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象;為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū);基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信的技術(shù)手段,這樣,所述數(shù)據(jù)通信裝置中的各個(gè)節(jié)點(diǎn)都設(shè)置有與之對(duì)應(yīng)的配置庫(kù),從而用戶可以根據(jù)需要使每個(gè)節(jié)點(diǎn)都擁有整個(gè)裝置所需的配置信息,實(shí)現(xiàn)對(duì)配置信息的分散管理;或者使指定的節(jié)點(diǎn)擁有整個(gè)裝置所需的配置信息,而其余節(jié)點(diǎn)只擁有少量配置信息,實(shí)現(xiàn)對(duì)配置信息的集中管理;或者使整個(gè)裝置中的部分節(jié)點(diǎn)采用分散管理配置信息的方式,另外一部分節(jié)點(diǎn)采用集中管理配置信息的模式,實(shí)現(xiàn)混合管理模式,從而有效解決了現(xiàn)有技術(shù)中的基于數(shù)據(jù)分發(fā)服務(wù)的數(shù)據(jù)通信方法存在配置信息維護(hù)的工作量較大的技術(shù)問(wèn)題,實(shí)現(xiàn)了增加配置管理的靈活性,減輕配置信息維護(hù)的工作量的技術(shù)效果。
二、由于本申請(qǐng)實(shí)施例中的技術(shù)方案,采用所述第一數(shù)據(jù)緩沖區(qū)根據(jù)所述數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行組裝處理,以及對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整以及采用對(duì)所述第一數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)讀寫(xiě)速度和數(shù)據(jù)緩沖數(shù)目進(jìn)行采樣,獲得采樣結(jié)果;根據(jù)所述采樣結(jié)果實(shí)時(shí)計(jì)算所述數(shù)據(jù)讀寫(xiě)速度的算數(shù)平均值及第一數(shù)據(jù)緩沖數(shù)目;判斷所述第一數(shù)據(jù)緩沖數(shù)目是否超過(guò)所述減速閾值;在所述第一數(shù)據(jù)緩沖數(shù)目超過(guò)所述減速閾值時(shí),獲取與所述第一數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第一持續(xù)時(shí)長(zhǎng);判斷所述第一持續(xù)時(shí)長(zhǎng)是否超過(guò)所述持續(xù)時(shí)間閾值;在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第一速度控制信息,以減少所述發(fā)送方的數(shù)據(jù)發(fā)送速度,使所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)處理速度大于數(shù)據(jù)接收速度,從而減少數(shù)據(jù)緩沖數(shù)目,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)讀寫(xiě)速度平衡的技術(shù)手段,這樣,將數(shù)據(jù)緩沖區(qū)隔離出數(shù)據(jù)處理功能和數(shù)據(jù)收發(fā)功能,同時(shí)對(duì)數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控,控制數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)量,從而解決了數(shù)據(jù)接收和處理相互影響問(wèn)題和緩沖區(qū)中數(shù)據(jù)收發(fā)速度不勻?qū)е聰?shù)據(jù)延時(shí)處理、數(shù)據(jù)丟失或者程序內(nèi)存無(wú)限增長(zhǎng)從而崩潰,影響分布式系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性的技術(shù)問(wèn)題,實(shí)現(xiàn)提高系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性的技術(shù)效果。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例。
圖1為本申請(qǐng)實(shí)施例一中提供的一種數(shù)據(jù)通信方法的流程圖;
圖2為本申請(qǐng)實(shí)施例一中所述數(shù)據(jù)通信裝置的第一種網(wǎng)絡(luò)拓?fù)鋱D;
圖3為本申請(qǐng)實(shí)施例一中所述數(shù)據(jù)通信裝置的第二種網(wǎng)絡(luò)拓?fù)鋱D;
圖4為本申請(qǐng)實(shí)施例一中步驟S102的具體實(shí)現(xiàn)方式流程圖;
圖5為本申請(qǐng)實(shí)施例二中提供的一種數(shù)據(jù)通信裝置的結(jié)構(gòu)框圖;
圖6為本申請(qǐng)實(shí)施例二中的所述數(shù)據(jù)通信裝置的詳細(xì)結(jié)構(gòu)框圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供一種數(shù)據(jù)通信方法及數(shù)據(jù)通信裝置,用于解決現(xiàn)有技術(shù)中的基于數(shù)據(jù)分發(fā)服務(wù)的數(shù)據(jù)通信方法存在配置信息維護(hù)的工作量較大的技術(shù)問(wèn)題,實(shí)現(xiàn)增加配置管理的靈活性、減輕配置信息維護(hù)的工作量的技術(shù)效果。
本申請(qǐng)實(shí)施例中的技術(shù)方案為解決上述的技術(shù)問(wèn)題,總體思路如下:
一種數(shù)據(jù)通信方法,應(yīng)用于數(shù)據(jù)通信裝置中,包括:
為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù);
加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象;
為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū);
基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信。
在上述技術(shù)方案中,采用為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù);加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象;為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū);基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信的技術(shù)手段,這樣,所述數(shù)據(jù)通信裝置中的各個(gè)節(jié)點(diǎn)都設(shè)置有與之對(duì)應(yīng)的配置庫(kù),從而用戶可以根據(jù)需要使每個(gè)節(jié)點(diǎn)都擁有整個(gè)裝置所需的配置信息,實(shí)現(xiàn)對(duì)配置信息的分散管理;或者使指定的節(jié)點(diǎn)擁有整個(gè)裝置所需的配置信息,而其余節(jié)點(diǎn)只擁有少量配置信息,實(shí)現(xiàn)對(duì)配置信息的集中管理;或者使整個(gè)裝置中的部分節(jié)點(diǎn)采用分散管理配置信息的方式,另外一部分節(jié)點(diǎn)采用集中管理配置信息的模式,實(shí)現(xiàn)混合管理模式,從而有效解決了現(xiàn)有技術(shù)中的基于數(shù)據(jù)分發(fā)服務(wù)的數(shù)據(jù)通信方法存在配置信息維護(hù)的工作量較大的技術(shù)問(wèn)題,實(shí)現(xiàn)了增加配置管理的靈活性,減輕配置信息維護(hù)的工作量的技術(shù)效果。
為了更好的理解上述技術(shù)方案,下面通過(guò)附圖以及具體實(shí)施例對(duì)本發(fā)明技術(shù)方案做詳細(xì)的說(shuō)明,應(yīng)當(dāng)理解本申請(qǐng)實(shí)施例以及實(shí)施例中的具體特征是對(duì)本發(fā)明技術(shù)方案的詳細(xì)的說(shuō)明,而不是對(duì)本發(fā)明技術(shù)方案的限定,在不沖突的情況下,本申請(qǐng)實(shí)施例以及實(shí)施例中的技術(shù)特征可以相互結(jié)合。
實(shí)施例一
請(qǐng)參考圖1,為本申請(qǐng)實(shí)施例一中提供的一種數(shù)據(jù)通信方法,應(yīng)用于數(shù)據(jù)通信裝置中,所述方法包括:
S101:為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù);
S102:加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象;
S103:為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū);
S104:基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信。
在具體實(shí)施過(guò)程中,所述數(shù)據(jù)通信裝置具體可以是基于數(shù)據(jù)分發(fā)服務(wù)系統(tǒng)的通信裝置,如圖2所示,所述數(shù)據(jù)通信裝置中的N個(gè)節(jié)點(diǎn)由邊緣節(jié)點(diǎn)和中間節(jié)點(diǎn)組成,中間節(jié)點(diǎn)將邊緣節(jié)點(diǎn)分割成不同的通信網(wǎng)絡(luò),在同一通信網(wǎng)絡(luò)中的邊緣節(jié)點(diǎn)和相鄰的中間節(jié)點(diǎn)可以直接通信,不在同一通信網(wǎng)絡(luò)的邊緣節(jié)點(diǎn)通信需要通過(guò)中間節(jié)點(diǎn)的轉(zhuǎn)發(fā)。通過(guò)設(shè)置配置信息,指定數(shù)據(jù)的轉(zhuǎn)發(fā)通路,使邊緣節(jié)點(diǎn)發(fā)送的數(shù)據(jù)可以通過(guò)中間節(jié)點(diǎn)轉(zhuǎn)發(fā)到其它通信網(wǎng)絡(luò)中的邊緣節(jié)點(diǎn)處。
在本申請(qǐng)實(shí)施例一中,所述數(shù)據(jù)通信裝置可以提供以下三種配置信息的管理模式:
1、分散管理模式,即N個(gè)節(jié)點(diǎn)中每個(gè)節(jié)點(diǎn)都分別擁有所述數(shù)據(jù)通信裝置所需的配置信息,這種模式下節(jié)點(diǎn)無(wú)需從其它節(jié)點(diǎn)獲取信息,適合節(jié)點(diǎn)少、配置信息簡(jiǎn)單的情況;
2、集中管理模式,即N個(gè)節(jié)點(diǎn)中的指定節(jié)點(diǎn)擁有所述數(shù)據(jù)通信裝置所需的配置信息,其余節(jié)點(diǎn)則只擁有少量配置信息,用于獲取所需的其余配置信息,構(gòu)成“客戶端-服務(wù)器”結(jié)構(gòu),這些節(jié)點(diǎn)通過(guò)默認(rèn)的數(shù)據(jù)主題與服務(wù)節(jié)點(diǎn)通信獲取指定配置信息,適合節(jié)點(diǎn)多、配置信息繁雜的情況,將數(shù)據(jù)進(jìn)行集中統(tǒng)一配置管理;
3、混合管理模式,即結(jié)合分散管理模式和集中管理模式的特點(diǎn),N個(gè)節(jié)點(diǎn)中的一部分節(jié)點(diǎn)采用分散管理模式,另一部分節(jié)點(diǎn)采用集中管理模式,用戶可以根據(jù)自身情況來(lái)選擇設(shè)置。
本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際使用需求選擇合適的配置信息管理模式,通過(guò)設(shè)置配置庫(kù)信息,改變所述數(shù)據(jù)通信裝置中各節(jié)點(diǎn)的通信拓?fù)浣Y(jié)構(gòu),從而使各節(jié)點(diǎn)間可直接通信,如圖3所示,部分節(jié)點(diǎn)也可以作為中間節(jié)點(diǎn)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),使部分非中間節(jié)點(diǎn)間可直接通信,與其它非中間節(jié)點(diǎn)間通信通過(guò)中間節(jié)點(diǎn)實(shí)現(xiàn)。
在采用本申請(qǐng)實(shí)施例一中的方法進(jìn)行數(shù)據(jù)通信時(shí),首先執(zhí)行步驟S101,即:為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù)。
在本申請(qǐng)實(shí)施例一中,所述配置庫(kù)信息包括初始化配置信息和/或運(yùn)行參數(shù)配置信息和/或數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息和/或Qos策略配置信息。
在具體實(shí)施過(guò)程中,所述配置庫(kù)用于保存配置信息,如,控制節(jié)點(diǎn)的通信初始化方式,提供節(jié)點(diǎn)通信參數(shù),設(shè)置數(shù)據(jù)結(jié)構(gòu)信息、數(shù)據(jù)分發(fā)服務(wù)對(duì)象定義和Qos策略,通過(guò)配置信息構(gòu)造系統(tǒng)通信結(jié)構(gòu)。
配置庫(kù)初始狀態(tài)下只存在部分配置信息,包括數(shù)據(jù)通信裝置間通信對(duì)象設(shè)置和裝置中各模塊所需的初始默認(rèn)參數(shù),而數(shù)據(jù)分發(fā)相關(guān)配置需要用戶定制,比如數(shù)據(jù)域、數(shù)據(jù)主題、發(fā)送對(duì)象、接收對(duì)象和相關(guān)Qos策略等。
在執(zhí)行完成步驟S101之后,本申請(qǐng)實(shí)施例中的方法便執(zhí)行步驟S102,即:加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象。
在本申請(qǐng)實(shí)施例一中,請(qǐng)參考圖4,步驟S102的具體實(shí)現(xiàn)方式如下:
S401:獲取所述初始化配置信息;
S402:基于所述初始化配置信息確定所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息的獲取類型,其中,所述獲取類型包含本機(jī)類型或遠(yuǎn)程類型;
S403:從與所述獲取類型相對(duì)應(yīng)的第一配置庫(kù)中獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;
S404:基于所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息創(chuàng)建所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象。
在本申請(qǐng)實(shí)施例一中,步驟S303的具體實(shí)現(xiàn)方式如下:
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為本機(jī)類型,則從與所述第i個(gè)節(jié)點(diǎn)對(duì)應(yīng)第i個(gè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;或
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為遠(yuǎn)程類型,則從第i個(gè)預(yù)設(shè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息。
在具體實(shí)施過(guò)程中,所述N個(gè)節(jié)點(diǎn)中各節(jié)點(diǎn)從配置信息中獲取初始化信息后,查詢分發(fā)對(duì)象定義信息和Qos測(cè)試信息的獲取類型,根據(jù)所述獲取類型確定是從本節(jié)點(diǎn)配置庫(kù)中獲取通信所需信息還是從其它節(jié)點(diǎn)處獲取,根據(jù)獲取的配置信息,設(shè)置通信參數(shù),注冊(cè)支持的數(shù)據(jù)結(jié)構(gòu),創(chuàng)建并管理給定的數(shù)據(jù)分發(fā)服務(wù)各對(duì)象并應(yīng)用指定的Qos策略。所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象具體可以為:數(shù)據(jù)域(Domain Participant)、主題(Topic)、發(fā)布者(Publisher)、訂閱者(Subscriber)、寫(xiě)者(Writer)、讀者(Reader)和監(jiān)聽(tīng)者(Listener)這些對(duì)象。在創(chuàng)建各數(shù)據(jù)分發(fā)服務(wù)對(duì)象后,還可以為各個(gè)對(duì)象分配唯一標(biāo)記并分類存儲(chǔ)。同時(shí),通過(guò)Qos策略為數(shù)據(jù)分發(fā)服務(wù)中各對(duì)象設(shè)置(如數(shù)據(jù)域?qū)ο?、主題對(duì)象、發(fā)送對(duì)象、監(jiān)聽(tīng)對(duì)象等)所需的規(guī)范自身行為的參數(shù),如數(shù)據(jù)可靠性類型、歷史數(shù)據(jù)保存類型、資源限制、發(fā)送窗口大小、是否支持組播和組播地址等。
在執(zhí)行完成步驟S102之后,本申請(qǐng)實(shí)施例中的方法便執(zhí)行步驟S103,即:為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū)。
在本申請(qǐng)實(shí)施例一中,步驟S103的具體實(shí)現(xiàn)方式如下:
依次取j為1至N,獲取所述N個(gè)節(jié)點(diǎn)中的第j個(gè)節(jié)點(diǎn)的第j個(gè)運(yùn)行參數(shù)配置信息,基于所述第j個(gè)運(yùn)行參數(shù)配置信息配置與所述第j個(gè)節(jié)點(diǎn)對(duì)應(yīng)的第j個(gè)數(shù)據(jù)緩沖區(qū),在j為N時(shí),獲取N個(gè)數(shù)據(jù)緩沖區(qū),其中,所述N個(gè)數(shù)據(jù)緩沖區(qū)中的每個(gè)數(shù)據(jù)緩沖區(qū)為具有數(shù)據(jù)流控制能力的數(shù)據(jù)緩沖區(qū)。
其中,所述運(yùn)行參數(shù)配置信息包括減速閾值、與所述減速閾值對(duì)應(yīng)的第一持續(xù)時(shí)間閾值、恢復(fù)閾值及與所述恢復(fù)閾值對(duì)應(yīng)的第二持續(xù)時(shí)間閾值。
在具體實(shí)施過(guò)程中,沿用上述例子,當(dāng)數(shù)據(jù)通信裝置為每個(gè)節(jié)點(diǎn)的創(chuàng)建了各數(shù)據(jù)分發(fā)服務(wù)對(duì)象之后,數(shù)據(jù)通信裝置便需要對(duì)每個(gè)節(jié)點(diǎn)設(shè)置對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)。在本申請(qǐng)實(shí)施例中,所述數(shù)據(jù)緩沖區(qū)被分成發(fā)送數(shù)據(jù)緩沖區(qū)和接收數(shù)據(jù)緩沖區(qū)。所述發(fā)送數(shù)據(jù)緩沖區(qū)負(fù)責(zé)發(fā)送數(shù)據(jù)的寫(xiě)入管理和讀取管理,監(jiān)控?cái)?shù)據(jù)讀寫(xiě)情況,控制讀寫(xiě)速度;所述接收數(shù)據(jù)緩沖區(qū)負(fù)責(zé)接收數(shù)據(jù)的寫(xiě)入管理和讀取管理,監(jiān)控?cái)?shù)據(jù)讀寫(xiě)情況,控制讀寫(xiě)速度。
在執(zhí)行完成步驟S103之后,本申請(qǐng)實(shí)施例中的方法便執(zhí)行步驟S104,即:基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信。
在本申請(qǐng)實(shí)施例一中,步驟S104的具體實(shí)現(xiàn)方式如下:
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),將所述數(shù)據(jù)放置于與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理并通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象發(fā)送所述數(shù)據(jù);或
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)接收數(shù)據(jù)時(shí),通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象將所述數(shù)據(jù)寫(xiě)入與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理,獲取所述數(shù)據(jù)。
在本申請(qǐng)實(shí)施例一中,所述通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理,包括:
所述第一數(shù)據(jù)緩沖區(qū)根據(jù)所述數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行組裝處理,以及對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整。
在具體實(shí)施過(guò)程中,沿用上述例子,當(dāng)數(shù)據(jù)通信裝置為各個(gè)節(jié)點(diǎn)創(chuàng)建的數(shù)據(jù)分發(fā)服務(wù)對(duì)象及數(shù)據(jù)緩沖區(qū)之后,各個(gè)節(jié)點(diǎn)間便可以進(jìn)行數(shù)據(jù)通信。在發(fā)送數(shù)據(jù)時(shí),首先將發(fā)送數(shù)據(jù)寫(xiě)入到發(fā)送數(shù)據(jù)緩沖區(qū),然后根據(jù)數(shù)據(jù)類型和數(shù)據(jù)內(nèi)容決定發(fā)布信息,如,數(shù)據(jù)發(fā)送范圍和所需發(fā)送對(duì)象,從而將數(shù)據(jù)和與之對(duì)應(yīng)的發(fā)布信息提交給匹配的數(shù)據(jù)分發(fā)服務(wù)對(duì)象進(jìn)行發(fā)送;在接收數(shù)據(jù)時(shí),首先通過(guò)數(shù)據(jù)分發(fā)服務(wù)對(duì)象中的監(jiān)聽(tīng)對(duì)象獲取接收數(shù)據(jù),通過(guò)接收數(shù)據(jù)緩沖區(qū)對(duì)接收數(shù)據(jù)進(jìn)行組裝,獲取所述接收數(shù)據(jù)。
同時(shí),數(shù)據(jù)緩沖區(qū)還需要實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)緩沖區(qū)中數(shù)據(jù)讀寫(xiě)情況。在本申請(qǐng)實(shí)施例一中,所述對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整,包括:
對(duì)所述第一數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)讀寫(xiě)速度和數(shù)據(jù)緩沖數(shù)目進(jìn)行采樣,獲得采樣結(jié)果;
根據(jù)所述采樣結(jié)果實(shí)時(shí)計(jì)算所述數(shù)據(jù)讀寫(xiě)速度的算數(shù)平均值及第一數(shù)據(jù)緩沖數(shù)目;
判斷所述第一數(shù)據(jù)緩沖數(shù)目是否超過(guò)所述減速閾值;
在所述第一數(shù)據(jù)緩沖數(shù)目超過(guò)所述減速閾值時(shí),獲取與所述第一數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第一持續(xù)時(shí)長(zhǎng);
判斷所述第一持續(xù)時(shí)長(zhǎng)是否超過(guò)所述第一持續(xù)時(shí)間閾值;
在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述第一持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第一速度控制信息,以減少所述發(fā)送方的數(shù)據(jù)發(fā)送速度,使所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)處理速度大于數(shù)據(jù)接收速度,從而減少數(shù)據(jù)緩沖數(shù)目,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)讀寫(xiě)速度平衡。
在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送速度控制信息之后,所述方法還包括:
獲取所述第一數(shù)據(jù)緩沖區(qū)中的第二數(shù)據(jù)緩沖數(shù)目
判斷所述第二數(shù)據(jù)緩沖數(shù)目是否低于所述恢復(fù)閾值;
在所述第二數(shù)據(jù)緩沖數(shù)目低于所述恢復(fù)閾值時(shí),獲取與所述第二數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第二持續(xù)時(shí)長(zhǎng);
判斷所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述第二持續(xù)時(shí)間閾值;
在所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述第二持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第二速度控制信息,恢復(fù)數(shù)據(jù)發(fā)送速度,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)傳輸性能平衡。
在具體實(shí)施過(guò)程中,如果數(shù)據(jù)緩沖區(qū)的讀取速度小于寫(xiě)入速度,未處理數(shù)據(jù)數(shù)量超過(guò)減速閾值,則控制寫(xiě)入速度小于讀取速度,設(shè)置數(shù)據(jù)控制標(biāo)志(所述數(shù)據(jù)控制標(biāo)志為數(shù)據(jù)緩沖區(qū)中的一個(gè)標(biāo)記參數(shù),用于記錄數(shù)據(jù)緩沖區(qū)是否進(jìn)行過(guò)數(shù)據(jù)調(diào)控操作),減少未處理數(shù)據(jù)數(shù)量,如果未處理數(shù)據(jù)數(shù)量低于恢復(fù)閾值且數(shù)據(jù)控制標(biāo)志被設(shè)置,則控制寫(xiě)入速度與讀取速度相匹配,從而使所述數(shù)據(jù)通信裝置在保證傳輸數(shù)據(jù)的速度的同時(shí)也能夠確保數(shù)據(jù)不會(huì)發(fā)生丟失,提高所述數(shù)據(jù)通信裝置的穩(wěn)定性。
實(shí)施例二
基于與本申請(qǐng)實(shí)施例一相同的發(fā)明構(gòu)思,請(qǐng)參考圖5,為本申請(qǐng)實(shí)施例二提供一種數(shù)據(jù)通信裝置,包括:
配置單元10,用于為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù);
數(shù)據(jù)分發(fā)服務(wù)對(duì)象創(chuàng)建單元20,用于加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象;
數(shù)據(jù)緩沖區(qū)創(chuàng)建單元30,用于為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū);
數(shù)據(jù)傳輸單元40,用于基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信。
在本申請(qǐng)實(shí)施例二中,配置單元10用于實(shí)現(xiàn)配置信息的保存和管理;數(shù)據(jù)分發(fā)服務(wù)對(duì)象創(chuàng)建單元20實(shí)現(xiàn)數(shù)據(jù)分發(fā)服務(wù)中數(shù)據(jù)域(DomainParticipant)、主題(Topic)、發(fā)布者(Publisher)、訂閱者(Subscriber)、寫(xiě)者(Writer)、讀者(Reader)和監(jiān)聽(tīng)者(Listener)這些對(duì)象的創(chuàng)建和管理,是數(shù)據(jù)發(fā)布、數(shù)據(jù)接收、配置查詢的核心;所述數(shù)據(jù)緩沖區(qū)可以分為發(fā)送數(shù)據(jù)緩沖區(qū)和接收數(shù)據(jù)緩沖區(qū),在所述數(shù)據(jù)通信裝置中還可以設(shè)置數(shù)據(jù)發(fā)布接口和數(shù)據(jù)接收接口,所述數(shù)據(jù)發(fā)布接口從發(fā)送數(shù)據(jù)緩沖區(qū)中獲取并處理數(shù)據(jù),將處理后數(shù)據(jù)提交給指定寫(xiě)者對(duì)象進(jìn)行發(fā)送;數(shù)據(jù)接收接口接收監(jiān)聽(tīng)者對(duì)象提供的接收數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行處理組裝,將組裝完成的數(shù)據(jù)提交給接收數(shù)據(jù)緩沖區(qū)保存;發(fā)送數(shù)據(jù)緩沖區(qū)提供數(shù)據(jù)讀寫(xiě)接口,接收程序提供的數(shù)據(jù),讓數(shù)據(jù)發(fā)布接口讀取其中數(shù)據(jù),根據(jù)數(shù)據(jù)緩沖數(shù)目或者控制信息控制數(shù)據(jù)的讀寫(xiě)速度;接收數(shù)據(jù)緩沖區(qū)保存數(shù)據(jù)接收模塊寫(xiě)入的數(shù)據(jù),并提供數(shù)據(jù)讀取接口供程序獲取數(shù)據(jù)和速度控制功能控制數(shù)據(jù)讀取速度,根據(jù)數(shù)據(jù)緩沖數(shù)目和控制信息控制數(shù)據(jù)讀取速度,請(qǐng)參考圖5,為本申請(qǐng)實(shí)施例二中的所述數(shù)據(jù)通信裝置的詳細(xì)結(jié)構(gòu)框圖。
在本申請(qǐng)實(shí)施例二中,所述數(shù)據(jù)通信裝置中的各個(gè)節(jié)點(diǎn)間采用平行結(jié)構(gòu),各節(jié)點(diǎn)間可直接通信,如圖3所示。配置信息可集中在指定節(jié)點(diǎn)中管理,也可分散在各節(jié)點(diǎn)中,通過(guò)配置信息設(shè)置各節(jié)點(diǎn)所支持的數(shù)據(jù)類型、支持的數(shù)據(jù)域及其下包含的發(fā)送接收數(shù)據(jù)類型,使數(shù)據(jù)能夠通過(guò)所述數(shù)據(jù)通信裝置的中間件分發(fā)并被指定節(jié)點(diǎn)接收。
在本申請(qǐng)實(shí)施例二中,所述數(shù)據(jù)通信裝置由邊緣節(jié)點(diǎn)和中間節(jié)點(diǎn)組成,中間節(jié)點(diǎn)將邊緣節(jié)點(diǎn)分割成不同的通信網(wǎng)絡(luò),在同一通信網(wǎng)絡(luò)中的邊緣節(jié)點(diǎn)和相鄰的中間節(jié)點(diǎn)可以直接通信,不在同一通信網(wǎng)絡(luò)的邊緣節(jié)點(diǎn)通信需要通過(guò)中間節(jié)點(diǎn)的轉(zhuǎn)發(fā),如圖2所示。通過(guò)設(shè)置配置信息,指定數(shù)據(jù)的轉(zhuǎn)發(fā)通路,使邊緣節(jié)點(diǎn)發(fā)送的數(shù)據(jù)可以通過(guò)中間節(jié)點(diǎn)轉(zhuǎn)發(fā)到其它通信網(wǎng)絡(luò)中的邊緣節(jié)點(diǎn)處。
在本申請(qǐng)實(shí)施例二中,所述配置庫(kù)信息包括初始化配置信息和/或運(yùn)行參數(shù)配置信息和/或數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息和/或Qos策略配置信息。
在本申請(qǐng)實(shí)施例二中,數(shù)據(jù)分發(fā)服務(wù)對(duì)象創(chuàng)建單元20具體用于:
獲取所述初始化配置信息;
基于所述初始化配置信息確定所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息的獲取類型,其中,所述獲取類型包含本機(jī)類型或遠(yuǎn)程類型;
從與所述獲取類型相對(duì)應(yīng)的第一配置庫(kù)中獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;
基于所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息創(chuàng)建所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象。
在本申請(qǐng)實(shí)施例二中,數(shù)據(jù)分發(fā)服務(wù)對(duì)象創(chuàng)建單元20具體用于:
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為本機(jī)類型,則從與所述第i個(gè)節(jié)點(diǎn)對(duì)應(yīng)第i個(gè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;或
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為遠(yuǎn)程類型,則從第i個(gè)預(yù)設(shè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息。
在本申請(qǐng)實(shí)施例二中,數(shù)據(jù)緩沖區(qū)創(chuàng)建單元30具體用于:
依次取j為1至N,獲取所述N個(gè)節(jié)點(diǎn)中的第j個(gè)節(jié)點(diǎn)的第j個(gè)運(yùn)行參數(shù)配置信息,基于所述第j個(gè)運(yùn)行參數(shù)配置信息配置與所述第j個(gè)節(jié)點(diǎn)對(duì)應(yīng)的第j個(gè)數(shù)據(jù)緩沖區(qū),在j為N時(shí),獲取N個(gè)數(shù)據(jù)緩沖區(qū),其中,所述N個(gè)數(shù)據(jù)緩沖區(qū)中的每個(gè)數(shù)據(jù)緩沖區(qū)為具有數(shù)據(jù)流控制能力的數(shù)據(jù)緩沖區(qū)。
在本申請(qǐng)實(shí)施例二中,所述運(yùn)行參數(shù)配置信息包括減速閾值、與所述減速閾值對(duì)應(yīng)的第一持續(xù)時(shí)間閾值、恢復(fù)閾值及與所述恢復(fù)閾值對(duì)應(yīng)的第二持續(xù)時(shí)間閾值。
在本申請(qǐng)實(shí)施例二中,數(shù)據(jù)傳輸單元40具體用于:
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),將所述數(shù)據(jù)放置于與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理并通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象發(fā)送所述數(shù)據(jù);或
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)接收數(shù)據(jù)時(shí),通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象將所述數(shù)據(jù)寫(xiě)入與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理,獲取所述數(shù)據(jù)。
在本申請(qǐng)實(shí)施例二中,數(shù)據(jù)傳輸單元40具體用于:
所述第一數(shù)據(jù)緩沖區(qū)根據(jù)所述數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行組裝處理,以及對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整。
在本申請(qǐng)實(shí)施例二中,數(shù)據(jù)傳輸單元40具體用于:
對(duì)所述第一數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)讀寫(xiě)速度和數(shù)據(jù)緩沖數(shù)目進(jìn)行采樣,獲得采樣結(jié)果;
根據(jù)所述采樣結(jié)果實(shí)時(shí)計(jì)算所述數(shù)據(jù)讀寫(xiě)速度的算數(shù)平均值及第一數(shù)據(jù)緩沖數(shù)目;
判斷所述第一數(shù)據(jù)緩沖數(shù)目是否超過(guò)所述減速閾值;
在所述第一數(shù)據(jù)緩沖數(shù)目超過(guò)所述減速閾值時(shí),獲取與所述第一數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第一持續(xù)時(shí)長(zhǎng);
判斷所述第一持續(xù)時(shí)長(zhǎng)是否超過(guò)所述第一持續(xù)時(shí)間閾值;
在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述第一持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第一速度控制信息,以減少所述發(fā)送方的數(shù)據(jù)發(fā)送速度,使所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)處理速度大于數(shù)據(jù)接收速度,從而減少數(shù)據(jù)緩沖數(shù)目,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)讀寫(xiě)速度平衡。
在本申請(qǐng)實(shí)施例二中,數(shù)據(jù)傳輸單元40還用于:
獲取所述第一數(shù)據(jù)緩沖區(qū)中的第二數(shù)據(jù)緩沖數(shù)目
判斷所述第二數(shù)據(jù)緩沖數(shù)目是否低于所述恢復(fù)閾值;
在所述第二數(shù)據(jù)緩沖數(shù)目低于所述恢復(fù)閾值時(shí),獲取與所述第二數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第二持續(xù)時(shí)長(zhǎng);
判斷所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述第二持續(xù)時(shí)間閾值;
在所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述第二持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第二速度控制信息,恢復(fù)數(shù)據(jù)發(fā)送速度,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)傳輸性能平衡。
本申請(qǐng)實(shí)施例二中所述數(shù)據(jù)通信裝置提供數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、配置管理、數(shù)據(jù)分發(fā)服務(wù)中間件交互接口這些功能,采用標(biāo)準(zhǔn)化的結(jié)構(gòu)設(shè)計(jì),無(wú)需或者修改相關(guān)數(shù)據(jù)處理代碼,目標(biāo)軟件中數(shù)據(jù)發(fā)送功能與數(shù)據(jù)發(fā)送緩沖區(qū)連接、數(shù)據(jù)處理功能與數(shù)據(jù)接收緩沖區(qū)連接,即可集成到目標(biāo)軟件中,使系統(tǒng)中各構(gòu)成軟件可以集成所述數(shù)據(jù)通信裝置,提高配置信息維護(hù)效率、開(kāi)發(fā)效率和系統(tǒng)部署速度,降低開(kāi)發(fā)費(fèi)用。通過(guò)集成本發(fā)明中各個(gè)單元,通信裝置的結(jié)構(gòu)可以通過(guò)設(shè)置配置庫(kù)信息得到靈活修改,請(qǐng)參考圖6。
通過(guò)本申請(qǐng)實(shí)施例中的一個(gè)或多個(gè)技術(shù)方案,可以實(shí)現(xiàn)如下一個(gè)或多個(gè)技術(shù)效果:
一、由于本申請(qǐng)實(shí)施例中的技術(shù)方案,采用為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù);加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象;為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū);基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信的技術(shù)手段,這樣,所述數(shù)據(jù)通信裝置中的各個(gè)節(jié)點(diǎn)都設(shè)置有與之對(duì)應(yīng)的配置庫(kù),從而用戶可以根據(jù)需要使每個(gè)節(jié)點(diǎn)都擁有整個(gè)裝置所需的配置信息,實(shí)現(xiàn)對(duì)配置信息的分散管理;或者使指定的節(jié)點(diǎn)擁有整個(gè)裝置所需的配置信息,而其余節(jié)點(diǎn)只擁有少量配置信息,實(shí)現(xiàn)對(duì)配置信息的集中管理;或者使整個(gè)裝置中的部分節(jié)點(diǎn)采用分散管理配置信息的方式,另外一部分節(jié)點(diǎn)采用集中管理配置信息的模式,實(shí)現(xiàn)混合管理模式,從而有效解決了現(xiàn)有技術(shù)中的基于數(shù)據(jù)分發(fā)服務(wù)的數(shù)據(jù)通信方法存在配置信息維護(hù)的工作量較大的技術(shù)問(wèn)題,實(shí)現(xiàn)了增加配置管理的靈活性,減輕配置信息維護(hù)的工作量的技術(shù)效果。
二、由于本申請(qǐng)實(shí)施例中的技術(shù)方案,采用所述第一數(shù)據(jù)緩沖區(qū)根據(jù)所述數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行組裝處理,以及對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整以及采用對(duì)所述第一數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)讀寫(xiě)速度和數(shù)據(jù)緩沖數(shù)目進(jìn)行采樣,獲得采樣結(jié)果;根據(jù)所述采樣結(jié)果實(shí)時(shí)計(jì)算所述數(shù)據(jù)讀寫(xiě)速度的算數(shù)平均值及第一數(shù)據(jù)緩沖數(shù)目;判斷所述第一數(shù)據(jù)緩沖數(shù)目是否超過(guò)所述減速閾值;在所述第一數(shù)據(jù)緩沖數(shù)目超過(guò)所述減速閾值時(shí),獲取與所述第一數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第一持續(xù)時(shí)長(zhǎng);判斷所述第一持續(xù)時(shí)長(zhǎng)是否超過(guò)所述持續(xù)時(shí)間閾值;在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第一速度控制信息,以減少所述發(fā)送方的數(shù)據(jù)發(fā)送速度,使所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)處理速度大于數(shù)據(jù)接收速度,從而減少數(shù)據(jù)緩沖數(shù)目,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)讀寫(xiě)速度平衡的技術(shù)手段,這樣,將數(shù)據(jù)緩沖區(qū)隔離出數(shù)據(jù)處理功能和數(shù)據(jù)收發(fā)功能,同時(shí)對(duì)數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控,控制數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)量,從而解決了數(shù)據(jù)接收和處理相互影響問(wèn)題和緩沖區(qū)中數(shù)據(jù)收發(fā)速度不勻?qū)е聰?shù)據(jù)延時(shí)處理、數(shù)據(jù)丟失或者程序內(nèi)存無(wú)限增長(zhǎng)從而崩潰,影響分布式系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性的技術(shù)問(wèn)題,實(shí)現(xiàn)提高系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性的技術(shù)效果。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
具體來(lái)講,本申請(qǐng)實(shí)施例中的數(shù)據(jù)通信方法對(duì)應(yīng)的計(jì)算機(jī)程序指令可以被存儲(chǔ)在光盤(pán),硬盤(pán),U盤(pán)等存儲(chǔ)介質(zhì)上,當(dāng)存儲(chǔ)介質(zhì)中的與數(shù)據(jù)通信方法對(duì)應(yīng)的計(jì)算機(jī)程序指令被一電子設(shè)備讀取或被執(zhí)行時(shí),包括如下步驟:
為所述數(shù)據(jù)通信裝置的N個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)設(shè)置配置庫(kù)信息,其中,N為大于等于2的整數(shù);
加載并解析所述配置庫(kù)信息,基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,獲取N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象;
為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū);
基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信。
可選的,所述存儲(chǔ)介質(zhì)中存儲(chǔ)的配置庫(kù)信息包括初始化配置信息和/或運(yùn)行參數(shù)配置信息和/或數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息和/或Qos策略配置信息。
可選的,所述存儲(chǔ)介質(zhì)中存儲(chǔ)的與步驟:基于所述配置庫(kù)信息創(chuàng)建與所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的一組數(shù)據(jù)分發(fā)服務(wù)對(duì)象,對(duì)應(yīng)的計(jì)算機(jī)程序指令在被執(zhí)行時(shí),包括:
獲取所述初始化配置信息;
基于所述初始化配置信息確定所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息的獲取類型,其中,所述獲取類型包含本機(jī)類型或遠(yuǎn)程類型;
從與所述獲取類型相對(duì)應(yīng)的第一配置庫(kù)中獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;
基于所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息創(chuàng)建所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象。
可選的,所述存儲(chǔ)介質(zhì)中存儲(chǔ)的與步驟:從與所述獲取類型相對(duì)應(yīng)的配置庫(kù)中獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息,對(duì)應(yīng)的計(jì)算機(jī)程序指令在被執(zhí)行時(shí),包括:
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為本機(jī)類型,則從與所述第i個(gè)節(jié)點(diǎn)對(duì)應(yīng)第i個(gè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息;或
依次取i為1至N,確定所述N個(gè)節(jié)點(diǎn)中的第i個(gè)節(jié)點(diǎn)的所述獲取類型為遠(yuǎn)程類型,則從第i個(gè)預(yù)設(shè)配置庫(kù)獲取所述第i個(gè)節(jié)點(diǎn)的第i個(gè)數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及Qos策略配置信息,在i為N時(shí),獲取所述數(shù)據(jù)分發(fā)服務(wù)對(duì)象配置信息及所述Qos策略配置信息。
可選的,所述存儲(chǔ)介質(zhì)中存儲(chǔ)的與步驟:為所述每個(gè)節(jié)點(diǎn)配置數(shù)據(jù)緩沖區(qū),獲取N個(gè)數(shù)據(jù)緩沖區(qū),對(duì)應(yīng)的計(jì)算機(jī)程序指令在被執(zhí)行時(shí),包括:
依次取j為1至N,獲取所述N個(gè)節(jié)點(diǎn)中的第j個(gè)節(jié)點(diǎn)的第j個(gè)運(yùn)行參數(shù)配置信息,基于所述第j個(gè)運(yùn)行參數(shù)配置信息配置與所述第j個(gè)節(jié)點(diǎn)對(duì)應(yīng)的第j個(gè)數(shù)據(jù)緩沖區(qū),在j為N時(shí),獲取N個(gè)數(shù)據(jù)緩沖區(qū),其中,所述N個(gè)數(shù)據(jù)緩沖區(qū)中的每個(gè)數(shù)據(jù)緩沖區(qū)為具有數(shù)據(jù)流控制能力的數(shù)據(jù)緩沖區(qū)。
可選的,所述存儲(chǔ)介質(zhì)中存儲(chǔ)的運(yùn)行參數(shù)配置信息包括減速閾值、與所述減速閾值對(duì)應(yīng)的第一持續(xù)時(shí)間閾值、恢復(fù)閾值及與所述恢復(fù)閾值對(duì)應(yīng)的第二持續(xù)時(shí)間閾值。
可選的,所述存儲(chǔ)介質(zhì)中存儲(chǔ)的與步驟:基于所述N組數(shù)據(jù)分發(fā)服務(wù)對(duì)象及所述N個(gè)數(shù)據(jù)緩沖區(qū)進(jìn)行數(shù)據(jù)通信,對(duì)應(yīng)的計(jì)算機(jī)程序指令在被執(zhí)行時(shí),包括:
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),將所述數(shù)據(jù)放置于與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理并通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象發(fā)送所述數(shù)據(jù);或
在所述N個(gè)節(jié)點(diǎn)中任意一個(gè)節(jié)點(diǎn)接收數(shù)據(jù)時(shí),通過(guò)與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)分發(fā)服務(wù)對(duì)象將所述數(shù)據(jù)寫(xiě)入與所述節(jié)點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)緩沖區(qū)中,通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理,獲取所述數(shù)據(jù)。
可選的,所述存儲(chǔ)介質(zhì)中存儲(chǔ)的與步驟:通過(guò)所述第一數(shù)據(jù)緩沖區(qū)對(duì)所述數(shù)據(jù)進(jìn)行處理,對(duì)應(yīng)的計(jì)算機(jī)程序指令在被執(zhí)行時(shí),包括:
所述第一數(shù)據(jù)緩沖區(qū)根據(jù)所述數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行組裝處理,以及對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整。
可選的,所述存儲(chǔ)介質(zhì)中存儲(chǔ)的與步驟:對(duì)所述數(shù)據(jù)的讀寫(xiě)速度進(jìn)行監(jiān)控及調(diào)整,對(duì)應(yīng)的計(jì)算機(jī)程序指令在被執(zhí)行時(shí),包括:
對(duì)所述第一數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)讀寫(xiě)速度和數(shù)據(jù)緩沖數(shù)目進(jìn)行采樣,獲得采樣結(jié)果;
根據(jù)所述采樣結(jié)果實(shí)時(shí)計(jì)算所述數(shù)據(jù)讀寫(xiě)速度的算數(shù)平均值及第一數(shù)據(jù)緩沖數(shù)目;
判斷所述第一數(shù)據(jù)緩沖數(shù)目是否超過(guò)所述減速閾值;
在所述第一數(shù)據(jù)緩沖數(shù)目超過(guò)所述減速閾值時(shí),獲取與所述第一數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第一持續(xù)時(shí)長(zhǎng);
判斷所述第一持續(xù)時(shí)長(zhǎng)是否超過(guò)所述第一持續(xù)時(shí)間閾值;
在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述第一持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第一速度控制信息,以減少所述發(fā)送方的數(shù)據(jù)發(fā)送速度,使所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)處理速度大于數(shù)據(jù)接收速度,從而減少數(shù)據(jù)緩沖數(shù)目,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)讀寫(xiě)速度平衡。
可選的,所述存儲(chǔ)介質(zhì)中還存儲(chǔ)有另外一些計(jì)算機(jī)程序指令,所述另外一些計(jì)算機(jī)指令在與步驟:在所述第一持續(xù)時(shí)長(zhǎng)超過(guò)所述持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送速度控制信息執(zhí)行之后被執(zhí)行,包括:
獲取所述第一數(shù)據(jù)緩沖區(qū)中的第二數(shù)據(jù)緩沖數(shù)目
判斷所述第二數(shù)據(jù)緩沖數(shù)目是否低于所述恢復(fù)閾值;
在所述第二數(shù)據(jù)緩沖數(shù)目低于所述恢復(fù)閾值時(shí),獲取與所述第二數(shù)據(jù)緩沖數(shù)目對(duì)應(yīng)的第二持續(xù)時(shí)長(zhǎng);
判斷所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述第二持續(xù)時(shí)間閾值;
在所述第二持續(xù)時(shí)長(zhǎng)超過(guò)所述第二持續(xù)時(shí)間閾值時(shí),向所述數(shù)據(jù)的發(fā)送方發(fā)送第二速度控制信息,恢復(fù)數(shù)據(jù)發(fā)送速度,以維持所述第一數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)傳輸性能平衡。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。