服務(wù)端通知消息的發(fā)送方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及物聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種服務(wù)端通知消息的發(fā)送方法及裝 置。
【背景技術(shù)】
[0002] Alljoyn是一種基于C/S架構(gòu)的設(shè)備之間點(diǎn)對(duì)點(diǎn)通信框架,Alljoyn由總線(Bus Daemon)和終端節(jié)點(diǎn)組成。總線是Alljoyn應(yīng)用通過(guò)API(ApplicationProgramming Interface,應(yīng)用程序編程接口)進(jìn)行通信的媒介。發(fā)布API的Alljoyn應(yīng)用是服務(wù)端,消 費(fèi)的是客戶端。舉例來(lái)說(shuō),支持Alljoyn的手機(jī)控制支持Alljoyn的冰箱,冰箱提供了控制 溫度、模式等服務(wù),而手機(jī)作為客戶端來(lái)調(diào)用這些服務(wù),因此冰箱上運(yùn)行的Alljoyn應(yīng)用被 稱為服務(wù)(Service),而運(yùn)行在手機(jī)上的Alljoyn應(yīng)用被稱為客戶端(Client)。
[0003] Alljoyn應(yīng)用(服務(wù)或客戶端應(yīng)用)通過(guò)"總線對(duì)象"來(lái)實(shí)現(xiàn)對(duì)外暴露API,可以 這樣理解,一個(gè)Alljoyn應(yīng)用可以用一個(gè)總線對(duì)象來(lái)表示。總線對(duì)象是一個(gè)Alljoyn應(yīng)用 的具體實(shí)現(xiàn)形式。大部分情況下,一個(gè)應(yīng)用只有一個(gè)總線對(duì)象,而一個(gè)總線對(duì)象包括一個(gè)或 多個(gè)接口,接口實(shí)際上就是一個(gè)應(yīng)用的具體功能邏輯實(shí)現(xiàn)。舉例來(lái)說(shuō),冰箱具有調(diào)節(jié)溫度、 各種模式設(shè)置、開(kāi)關(guān)機(jī)等功能;其中冰箱的Alljoyn應(yīng)用,由一個(gè)總線對(duì)象來(lái)表示,而這個(gè) 總線對(duì)象包括三個(gè)接口:調(diào)節(jié)溫度接口、模式設(shè)置接口和開(kāi)關(guān)機(jī)接口。接口中又可以包含三 個(gè)成員:方法(Method)、信號(hào)(Signal)和屬性(Property)。其中Property代表了實(shí)體對(duì) 外可見(jiàn)的狀態(tài)。
[0004] 現(xiàn)有技術(shù)中,服務(wù)端接口的狀態(tài)(屬性)發(fā)生改變時(shí),Alljoyn會(huì)根據(jù)屬性的標(biāo)注 值來(lái)發(fā)送變化的信息,特別是當(dāng)該屬性為模擬量時(shí),如溫度、濕度、功率等,并且在變化時(shí)需 要產(chǎn)生通知消息的情況下,Alljoyn會(huì)產(chǎn)生海量的通知消息,不僅嚴(yán)重消耗了服務(wù)端的設(shè)備 資源,而且由于產(chǎn)生的海量通知消息,也會(huì)嚴(yán)重?fù)p耗客戶端應(yīng)用所在設(shè)備資源,造成設(shè)備的 過(guò)載。
【發(fā)明內(nèi)容】
[0005] 鑒于現(xiàn)有技術(shù)的缺陷,本發(fā)明目的在于提供一種服務(wù)端通知消息的發(fā)送方法及裝 置,用以解決現(xiàn)有服務(wù)端裝置產(chǎn)生過(guò)多的通知消息導(dǎo)致的網(wǎng)絡(luò)帶寬消耗以及服務(wù)端裝置和 客戶端裝置系統(tǒng)過(guò)載的問(wèn)題。
[0006] -方面,本發(fā)明提供一種服務(wù)端通知消息的發(fā)送方法,包括:
[0007] 采集接口的屬性值,并監(jiān)控采集的屬性值是否滿足發(fā)送條件;當(dāng)采集的屬性值滿 足發(fā)送條件時(shí),將攜帶有滿足發(fā)送條件時(shí)的屬性值的通知消息發(fā)送給客戶端。
[0008] 進(jìn)一步,所述方法還包括:
[0009] 當(dāng)采集的屬性值不滿足發(fā)送條件時(shí),獲取距前次向客戶端發(fā)送通知消息的時(shí)長(zhǎng); 當(dāng)獲取的時(shí)長(zhǎng)大于預(yù)設(shè)的時(shí)長(zhǎng)時(shí),將攜帶有大于預(yù)設(shè)時(shí)長(zhǎng)時(shí)的屬性值的通知消息發(fā)送給客 戶端。
[0010] 進(jìn)一步,所述監(jiān)控采集的屬性值是否滿足發(fā)送條件的步驟,具體包括:
[0011] 監(jiān)控采集的屬性值相對(duì)于前次通知消息中攜帶的屬性值的變化幅度是否超過(guò)預(yù) 設(shè)變化幅度;當(dāng)超過(guò)時(shí),判定為滿足發(fā)送條件;當(dāng)未超過(guò)時(shí),判定為不滿足發(fā)送條件。
[0012] 進(jìn)一步,所述變化幅度具體為屬性變化步長(zhǎng)或者為屬性變化百分比。
[0013] 進(jìn)一步,所述監(jiān)控采集的屬性值相對(duì)于前次通知消息中攜帶的屬性值的變化幅度 是否超過(guò)預(yù)設(shè)變化幅度的步驟之前,還包括:
[0014] 預(yù)設(shè)緩存閾值,監(jiān)控采集的屬性值相對(duì)于前次通知消息中攜帶的屬性值的變化幅 度與預(yù)設(shè)變化幅度的比值是否達(dá)到所述緩存閾值,當(dāng)達(dá)到時(shí),獲取到達(dá)緩存閾值時(shí)的屬性 值。
[0015] 進(jìn)一步,所述方法還包括:
[0016] 當(dāng)將攜帶有滿足發(fā)送條件時(shí)的屬性值的通知消息或者將攜帶有大于預(yù)設(shè)時(shí)長(zhǎng)時(shí) 的屬性值的通知消息發(fā)送給客戶端失敗時(shí),將到達(dá)緩存閾值時(shí)的屬性值攜帶在通知消息中 向客戶端發(fā)送。
[0017] 另一方面,本發(fā)明還提供一種服務(wù)端裝置,包括:
[0018] 監(jiān)控單元,用于采集接口的屬性值,及監(jiān)控采集的屬性值是否滿足發(fā)送條件,當(dāng)采 集的屬性值滿足發(fā)送條件時(shí),觸發(fā)信息發(fā)送單元將攜帶有滿足發(fā)送條件時(shí)的屬性值的通知 消息發(fā)送給客戶端;
[0019] 消息發(fā)送單元,用于根據(jù)所述監(jiān)控單元的觸發(fā)將通知消息發(fā)送給客戶端。
[0020] 進(jìn)一步,所述監(jiān)控單元,還用于當(dāng)采集的屬性值不滿足發(fā)送條件時(shí),獲取距前次向 客戶端發(fā)送通知消息的時(shí)長(zhǎng);當(dāng)獲取的時(shí)長(zhǎng)大于預(yù)設(shè)的時(shí)長(zhǎng)時(shí),觸發(fā)信息發(fā)送單元將攜帶 有大于預(yù)設(shè)時(shí)長(zhǎng)時(shí)的屬性值的通知消息發(fā)送給客戶端。
[0021] 進(jìn)一步,所述監(jiān)控采集的屬性值是否滿足發(fā)送條件具體包括:
[0022] 監(jiān)控采集的屬性值相對(duì)于前次通知消息中攜帶的屬性值的變化幅度是否超過(guò)預(yù) 設(shè)變化幅度;當(dāng)超過(guò)時(shí),判定為滿足發(fā)送條件;當(dāng)未超過(guò)時(shí),判定為不滿足發(fā)送條件。
[0023] 進(jìn)一步,所述變化幅度具體為屬性變化步長(zhǎng)或者為屬性變化百分比。
[0024] 進(jìn)一步,所述監(jiān)控單元,還用于預(yù)設(shè)緩存閾值;監(jiān)控采集的屬性值相對(duì)于前次通 知消息中攜帶的屬性值的變化幅度與預(yù)設(shè)變化幅度的比值是否達(dá)到所述緩存閾值,當(dāng)達(dá)到 時(shí),獲取到達(dá)緩存閾值時(shí)的屬性值。
[0025] 進(jìn)一步,所述消息發(fā)送單元,還用于當(dāng)將攜帶有滿足發(fā)送條件時(shí)的屬性值的通知 消息或者將攜帶有大于預(yù)設(shè)時(shí)長(zhǎng)時(shí)的屬性值的通知消息發(fā)送給客戶端失敗時(shí),將到達(dá)緩存 閾值時(shí)的屬性值攜帶在通知消息中向客戶端發(fā)送。本發(fā)明有益效果如下:本發(fā)明通過(guò)控制 通知消息產(chǎn)生及發(fā)送的頻率,有效地解決了發(fā)送方發(fā)送海量通知消息造成的系統(tǒng)過(guò)載、網(wǎng) 絡(luò)帶寬消耗以及接收方裝置過(guò)載的問(wèn)題。
【附圖說(shuō)明】
[0026] 圖1是本發(fā)明實(shí)施例中一種服務(wù)端通知消息的發(fā)送方法的主流程圖;
[0027] 圖2是本發(fā)明實(shí)施例中一種服務(wù)端通知消息的發(fā)送方法的詳細(xì)流程圖;
[0028] 圖3是本發(fā)明實(shí)施例中一種服務(wù)端裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0029] 為了解決現(xiàn)有服務(wù)端裝置產(chǎn)生過(guò)多的通知消息導(dǎo)致的網(wǎng)絡(luò)帶寬消耗以及服務(wù)端 裝置和客戶端裝置系統(tǒng)過(guò)載的問(wèn)題,本發(fā)明提供了一種服務(wù)端通知消息的發(fā)送方法及裝 置,以下結(jié)合附圖以及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具 體實(shí)施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
[0030] 實(shí)施例一
[0031] 本發(fā)明實(shí)施例提供一種服務(wù)端通知消息的發(fā)送方法,包括:
[0032] S101,采集接口的屬性值,并監(jiān)控采集的屬性值是否滿足發(fā)送條件。其中,監(jiān)控采 集的屬性值是否滿足發(fā)送條件,具體包括:
[0033] 監(jiān)控采集的屬性值相對(duì)于前次通知消息中攜帶的屬性值的變化幅度是否超過(guò)預(yù) 設(shè)變化幅度;
[0034] 當(dāng)超過(guò)時(shí),判定為滿足發(fā)送條件;
[0035] 當(dāng)未超過(guò)時(shí),判定為不滿足發(fā)送條件。變化幅度具體為屬性變化步長(zhǎng)或者為屬性 變化百分比。
[0036] S102,當(dāng)采集的屬性值滿足發(fā)送條件時(shí),將攜帶有滿足發(fā)送條件時(shí)的屬性值的通 知消息發(fā)送給客戶端。
[0037]S103,當(dāng)采集的屬性值不滿足發(fā)送條件時(shí),不發(fā)送通知消息,或者獲取距前次向客 戶端發(fā)送通知消息的時(shí)長(zhǎng);當(dāng)獲取的時(shí)長(zhǎng)大于預(yù)設(shè)的時(shí)長(zhǎng)時(shí),將攜帶有大于預(yù)設(shè)時(shí)長(zhǎng)時(shí)的 屬性值的通知消息發(fā)送給客戶端。
[0038] 由于當(dāng)某些屬性值的快速變化,無(wú)法監(jiān)測(cè)到精準(zhǔn)的變化值,或者總線對(duì)象的監(jiān)測(cè) 線程由于阻塞或沒(méi)有按照既定流程執(zhí)行等原因?qū)е聦y帶有滿足發(fā)送條件時(shí)的屬性值的 通知消息發(fā)送給客戶端失敗,或者將攜帶有大于預(yù)設(shè)時(shí)長(zhǎng)時(shí)的屬性值的通知消息發(fā)送給客 戶端失敗,此時(shí)本發(fā)明實(shí)施例將會(huì)從調(diào)度隊(duì)列中的讀取達(dá)到緩存閾值時(shí)的屬性值發(fā)送出 去。
[0039] 也就是說(shuō),監(jiān)控采集的屬性值相對(duì)于前次通知消息中攜帶的屬性值的變化幅度是 否超過(guò)預(yù)設(shè)變化幅度的步驟之前,還包括:
[0040] 預(yù)設(shè)緩存閾值,監(jiān)控采集的屬性值相對(duì)于前次通知消息中攜帶的屬性值的變化幅 度與預(yù)設(shè)變化幅度的比值是否達(dá)到所述緩存閾值,當(dāng)達(dá)到時(shí),獲取到達(dá)緩存閾值時(shí)的屬性 值。
[0041] 此時(shí),本發(fā)明實(shí)施例的方法還包括:當(dāng)將攜帶有滿足發(fā)送條件時(shí)的屬性值的通知 消息或者將攜帶有大于預(yù)設(shè)時(shí)長(zhǎng)時(shí)的屬性值的通知消息發(fā)送給客戶端失敗時(shí),將到達(dá)緩存 閾值時(shí)的屬性值攜帶在通知消息中向客戶端發(fā)送。
[0042] 本發(fā)明實(shí)施例中服務(wù)端為可以與客戶端進(jìn)行數(shù)據(jù)交互及處理的智能設(shè)備,例如智 能冰箱、智能空調(diào)、智能電視等。
[0043] 以下以空調(diào)為例,采用Alljoyn技術(shù)對(duì)本發(fā)明實(shí)施例方法進(jìn)行詳細(xì)描述。
[0044] 空調(diào)的溫度傳感器能夠監(jiān)測(cè)到室內(nèi)溫度的變化,當(dāng)溫度發(fā)生變化后,空調(diào)的 Alljoyn應(yīng)用(服務(wù))會(huì)向手機(jī)的Alljoyn應(yīng)用(客戶端)發(fā)送通知