新四季網

訂閱通知的實現方法和裝置製造方法

2023-10-08 03:42:44 6

訂閱通知的實現方法和裝置製造方法
【專利摘要】本發明提供了一種訂閱通知的實現方法和裝置,所述方法包括:接收訂閱者的創建訂閱資源請求;根據所述創建訂閱資源請求創建訂閱資源;確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態,為所述創建的訂閱資源分配最新狀態標識;當所述被訂閱資源的狀態發生更新時,根據所述訂閱資源生成通知消息並發送給中間節點,所述通知消息包含所述更新後的被訂閱資源的狀態以及所述最新狀態標識,以便於所述中間節點接收到所述通知消息後,根據所述最新狀態標識在滿足消息發送條件時向所述訂閱者只發送根據所述訂閱資源生成的最新通知消息。使用本發明,能夠避免因為在一個連接中將多個根據同一訂閱資源發送的通知發送給訂閱者造成網絡資源和計算資源的浪費。
【專利說明】訂閱通知的實現方法和裝置
【技術領域】
[0001]本發明涉及機器通信(Machine-to-MachineCommunications, M2M)【技術領域】,尤其涉及訂閱通知的實現方法和裝置。
【背景技術】
[0002]機器通信(Machine-to-MachineCommunications, M2M)是一種以機器智能交互為核心的、網絡化的應用與服務。它通過在機器內部嵌入無線或有線通信模塊以及應用處理邏輯,實現無需人工幹預的數據通信,以滿足用戶對監控、指揮調度、數據採集和測量等方面的信息化需求。
[0003]圖1是一種典型的M2M系統架構。其中,各種終端(如傳感器)經過網關遠程接入到業務平臺,而各種裝載在終端上的應用(如電力抄表、智能交通等)則通過業務平臺所提供的業務能力獲取其他終端採集的數據或對其他終端進行遠程的控制和管理。網關和平臺都是公共服務實體(Common Services Entity, CSE),終端上的應用可以註冊到與該終端連接的網關上,所有網關均需要註冊到業務平臺上,該接收註冊的CSE稱為本地CSE,例如,圖1中應用I的本地CSE是網關A,應用2的本地CSE是網關B,網關A和B的本地CSE是業務平臺。註冊成功後,本地CSE將為註冊者創建註冊資源。
[0004]在某些M2M應用場景中,終端b上應用2希望持續了解另一終端a上的應用I的狀態變化,但又不希望頻繁的去詢問應用I。在目前的歐洲電信標準化協會(EuropeanTelecommunications Standards Institute, ETSI)所制定的 M2M 規範 TS102690 及TS102921中,提供了一種訂閱通知機制。即應用2訂閱應用I在其本地CSE (即網關A)上的註冊資源;當應用I產生改變時,向其本地CSE、即網關A更新註冊資源狀態,網關A根據所述註冊資源的狀態更新向應用2發送通知消息。其中,應用2稱為訂閱者,應用I在其本地CSE上的註冊資源稱為被訂閱資源,該被訂閱資源所在的CSE稱為託管公共服務實體(Hosting CSE)。Hosting CSE將根據訂閱者(即應用2)的訂閱請求創建訂閱資源,訂閱資源用於描述訂閱關係。訂閱資源的具體內容可以包括:被訂閱資源標識、通知發送地址;可選的,還包含訂閱條件等。同時在被訂閱資源中保存該被訂閱資源與訂閱資源之間的關聯關係。
[0005]上述場景中,網關A上報的通知消息經過其他CSE轉發給網關B,這裡以通知消息只經過一個CSE (即業務平臺)轉發給網關B為例,為了減少業務平臺與網關B的連接開銷,業務平臺在接收到來自網關A的上報信息後,確定如果是非緊急消息,將其在本地緩存。當接收到其他發送給網關B的緊急消息或緩存時間到期時,業務平臺與網關B建立連接,將緩存的消息一併發送。這種接收到來自其他CSE的消息並在本地緩存一段時間後再轉發到另一 CSE的機制稱為存儲轉發(Store and Forward, SAF)機制,在消息的發送過程中執行存儲轉發機制的CSE稱為中間節點,例如該場景中的業務平臺,消息在中間節點所緩存的時間稱為存儲轉發時延。
[0006]由於存儲轉發機制的存在,使得不同時間發送的多條通知消息可能在一個連接中到達訂閱者。例如:在上述的場景中,應用I用於產生天氣信息,應用2用於根據天氣為用戶提供生活提醒,需要實時了解天氣變化信息,因此訂閱應用1,從而創建訂閱資源I。當天氣信息發生更新時,氣象部門網關A根據訂閱資源I向應用2發送通知消息。由於關於天氣變化的通知屬於不緊急的通知消息,當通知消息到達業務平臺時,業務平臺根據存儲轉發策略緩存該通知消息。在通知消息的緩存期間,若天氣發生變化,業務平臺會接收網關A到根據訂閱資源I發送給應用2的新通知消息。現有訂閱通知機制中,這兩條通知消息可能在一個連接中達到應用2,即訂閱者在一個連接中可能接收到根據同一個訂閱資源發送的多條通知消息。但是,對某些訂閱者,應用2隻關心最新的天氣信息,因此較早時間發送的通知消息無效,從而導致網絡資源和訂閱者計算資源浪費。

【發明內容】

[0007]本發明的實施例提供的訂閱通知的實現方法和裝置,能夠避免因為在一個連接中將多個根據同一訂閱資源發送的通知消息同時發送給訂閱者造成網絡資源和計算資源的浪費。
[0008]第一方面,本發明實施例提供的實現訂閱通知的託管公共服務實體hostingCSE包括:接收單元,用於接收訂閱者的創建訂閱資源請求,所述創建訂閱資源請求中包含被訂閱資源的唯一標識;資源創建單元,用於根據所述接收單元接收到的創建訂閱資源請求而創建訂閱資源;確定單元,用於確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態;分配單元,用於在所述確定單元確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述資源創建單元創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態;生成單元,用於當所述被訂閱資源的狀態發生更新時,根據所述資源創建單元創建的訂閱資源生成通知消息,所述通知消息包含所述更新後的被訂閱資源的狀態以及所述分配單元分配的最新狀態標識,以便於中間節點接收到所述通知消息後,根據所述最新狀態標識在滿足消息發送條件時向所述訂閱者只發送根據所述訂閱資源生成的最新通知消息;發送單元,用於將所述生成單元生成的通知消息發送給所述中間節點。
[0009]在第一方面的第一種可能的實現方式中,所述確定單元用於確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體包括:所述確定單元,用於根據所述創建訂閱資源請求中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
[0010]在第一方面的第二種可能的實現方式中,所述確定單元用於確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體包括:所述確定單元,用於根據本地保存的與所述訂閱者相關策略信息中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
[0011]第二方面,本發明實施例提供的實現訂閱通知的中間節點包括:接收單元,用於接收到通知消息,所述通知消息包含更新後的被訂閱資源的狀態;確定單元,用於確定所述接收單元接收到的所述通知消息包含最新狀態標識;保存單元,用於保存所述接收單元接收到的所述通知消息;確定單元,還用於確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息;發送單元,用於根據所述最新狀態標識,在滿足消息發送條件時只發送所述最新通知消息。[0012]在第二方面的第一種可能的實現方式中,所述中間節點還包括查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的;所述保存單元,用於保存所述接收單元接收到的所述通知消息具體為:所述保存單元,用於將所述接收單元接收到的所述通知消息以替換所述查找單元查找到的所述其他通知消息的方式保存到本地;所述確定單元,還用於確定本地保存的根據所述訂閱資源生成的通知消息中的最新通知消息具體為:所述確定單元,還用於確定本地保存的根據所述訂閱資源生成的通知消息為最新通知消息。
[0013]在第二方面的第二種可能的實現方式中,所述中間節點還包括查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的;所述確定單元,還用於確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息具體為:所述確定單元,還用於確定本地保存的所述通知消息和所述查找單元查找到的所述其他通知消息中的最新通知消息。
[0014]結合第二方面的第一可能和第二可能的實現方式,在第三種可能的實現方式中,所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識;所述查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:所述查找單元,用於查找到本地保存的其他通知消息,所述接收單元接收到的所述通知消息和所述其他通知消息包含的最新狀態標識相同。
[0015]結合第二方面的第一可能和第二可能的實現方式,在第四種可能的實現方式中,所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識;所述查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:所述查找單元,用於查找到本地保存的其他通知消息,所述接收單元接收到的所述通知消息和所述其他通知消息包含的最新狀態標識以及消息發送源地址相同。
[0016]結合第二方面的第一可能和第二可能的實現方式,在第五種可能的實現方式中,所述查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源的生成具體為:所述查找單元,用於查找到本地保存的其他通知消息,所述接收單元接收到的所述通知消息和所述其他通知消息包含的訂閱資源通用資源標識符(Universal Resource Identifier, URI)相同。
[0017]第三方面,本發明實施例提供的訂閱通知的實現方法包括:接收訂閱者的創建訂閱資源請求,所述創建訂閱資源請求中包含被訂閱資源的唯一標識;根據所述創建訂閱請求創建訂閱資源;確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態,為所述創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態;當所述被訂閱資源的狀態發生更新時,根據所述訂閱資源生成通知消息並發送給中間節點,所述通知消息包含所述更新後的被訂閱資源的狀態以及所述最新狀態標識,以便於所述中間節點接收到所述通知消息後,根據所述最新狀態標識在滿足消息發送條件時向所述訂閱者只發送根據所述訂閱資源生成的最新通知消息。
[0018]在第三方面的第一種可能的實現方式中,所述確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體為:根據所述創建訂閱資源請求中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。[0019]在第三方面的第二種可能的實現方式中,所述確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體為:根據本地保存的與所述訂閱者相關策略信息中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
[0020]第四方面,本發明實施例提供的訂閱通知的實現方法包括:接收到通知消息,所述通知消息包含更新後的被訂閱資源的狀態,確定所述通知消息包含最新狀態標識;保存所述接收到的通知消息;確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息;根據所述最新狀態標識,在滿足消息發送條件時只發送所述最新通知消息。
[0021]在第四方面的第一種可能的實現方式中,所述保存所述接收到的通知消息具體包括:查找到本地保存有其他通知消息後,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的,將所述接收到的通知消息以替換所述其他通知消息的方式保存到本地;所述確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息具體包括:確定本地保存的根據所述訂閱資源生成的通知消息為最新通知消息。
[0022]在第四方面的第二種可能的實現方式中,所述確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息具體包括:查找到本地保存有其他通知消息後,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的,確定本地保存的所述通知消息和所述其他通知消息中的最新通知消息。
[0023]結合第四方面的第一可能和第二可能的實現方式,在第三種可能的實現方式中,所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識;所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新狀態標識相同。
[0024]結合第四方面的第一可能和第二可能的實現方式,在第四種可能的實現方式中,所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識;所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新狀態標識以及消息發送源地址相同。
[0025]結合第四方面的第一可能和第二可能的實現方式,在第五種可能的實現方式中,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的訂閱資源通用資源標識符(Universal Resource Identifier, URI)相同。
[0026]由上述本發明的實施例提供的技術方案可以看出,通過接收訂閱者的創建訂閱資源請求,根據所述創建訂閱請求創建訂閱資源;確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態,為所述創建的訂閱資源分配最新狀態標識;當所述被訂閱資源的狀態發生更新時,根據所述訂閱資源生成通知消息並發送給中間節點,所述通知消息包含所述最新狀態標識,以便於所述中間節點接收到所述通知消息後,根據所述最新狀態標識向訂閱者只發送根據所述訂閱資源生成的最新通知消息。對於只關心被訂閱資源最新狀態的訂閱者,可以避免在一個連接中將多個根據同一訂閱資源發送的通知消息同時發送給該訂閱者,從而節省網絡資源和該訂閱者的計算資源。【專利附圖】

【附圖說明】
[0027]為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0028]圖1為現有技術M2M系統結構示意圖;
[0029]圖2為本發明實施例提供的訂閱通知的實現系統結構圖;
[0030]圖3為本發明實施例提供的實現訂閱通知的Hosting CSE結構圖;
[0031]圖4為本發明實施例提供的實現訂閱通知的中間節點結構圖;
[0032]圖5為本發明一個實施例提供的訂閱通知的實現方法流程圖;
[0033]圖6為本發明另一個實施例提供的訂閱通知的實現方法流程圖;
[0034]圖7為本發明一個實施例提供的訂閱通知的實現信令流程圖;
[0035]圖8為本發明另一個實施例提供的訂閱通知的實現信令流程圖;
[0036]圖9為本發明實施例提供的基於計算機系統的Hosting CSE結構圖;
[0037]圖10為本發明實施例提供的基於計算機系統的中間節點結構圖。
【具體實施方式】
[0038]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0039]本發明實施例提供了一種訂閱通知的實現系統,參考圖2,所述訂閱通知的實現系統200包括:
[0040]託管公共服務實體hosting CSE201,用於接收訂閱者的創建訂閱資源請求,所述創建訂閱資源請求中包含被訂閱資源的唯一標識;根據所述創建訂閱請求創建訂閱資源;確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態,為所述創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態;當所述被訂閱資源的狀態發生更新時,根據所述訂閱資源生成通知消息並發送給中間節點,所述通知消息包含所述更新後的被訂閱資源的狀態以及所述最新狀態標識,以便於所述中間節點接收到所述通知消息後,根據所述最新狀態標識在滿足消息發送條件時向所述訂閱者只發送根據所述訂閱資源生成的最新通知消息;和
[0041]中間節點202,用於接收到通知消息,所述通知消息包含更新後的被訂閱資源的狀態,確定所述通知消息包含最新狀態標識;保存所述接收到的通知消息;確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息;根據所述最新狀態標識,在滿足消息發送條件時只發送所述最新通知消息。
[0042]其中,所述訂閱通知的實現系統200中的中間節點可以有一個或者多個,即中間節點可以連接到其他的中間節點,且它們在本發明的訂閱通知實現過程中執行的操作一樣。
[0043]本發明一個實施例提供了用於實現訂閱通知的託管公共服務實體HostingCSE,請參照圖3,該Hosting CSE300包括:
[0044]接收單元301,用於接收訂閱者的創建訂閱資源請求,所述創建訂閱資源請求中包含被訂閱資源的唯一標識;
[0045]資源創建單元302,用於根據所述接收單元301接收到的創建訂閱資源請求而創建訂閱資源;
[0046]確定單元303,用於確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態;
[0047]分配單元304,用於在所述確定單元303確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述資源創建單元302創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態;
[0048]生成單元305,用於當所述被訂閱資源的狀態發生更新時,根據所述資源創建單元創建的訂閱資源生成通知消息,所述通知消息包含所述更新後的被訂閱資源的狀態以及所述分配單元分配的最新狀態標識,以便於中間節點接收到所述通知消息後,根據所述最新狀態標識在滿足消息發送條件時向所述訂閱者只發送根據所述訂閱資源生成的最新通知消息;
[0049]發送單元306,用於將所述生成單元305生成的通知消息發送給所述中間節點。
[0050]可選的,確定單元303用於確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體包括:確定單元303,用於根據所述創建訂閱資源請求中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
[0051]可選的,確定單元303用於確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體包括:確定單元303,用於根據本地保存的與所述訂閱者相關策略信息中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
[0052]可選的,分配單元304用於在所述確定單元確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述資源創建單元創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態進一步包括:所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識。
[0053]可選的,分配單元304用於在所述確定單元確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述資源創建單元創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態進一步包括:所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識。
[0054]可選的,分配單元304用於在所述確定單元確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述資源創建單元創建的訂閱資源分配最新狀態,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態進一步包括:所有的訂閱資源具有相同的最新狀態標識。
[0055]可選的,發送單元306用於將所述生成單元生成的通知消息發送給所述中間節點具體包括:所述發送單元306,用於將所述生成單元305生成的通知消息直接封裝在HTTP消息中發送給所述中間節點,或者在根據所述通知消息生成存儲轉發資源的資源表述後,將所述資源表述封裝在Restful消息中發送給所述中間節點。
[0056]本發明一個實施例提供了用於實現訂閱通知的中間節點,請參照圖4,該中間節點400包括:
[0057]接收單元401,用於接收到通知消息,所述通知消息包含更新後的被訂閱資源的狀態;
[0058]確定單元402,用於確定所述接收單元401接收到的所述通知消息包含最新狀態標識;
[0059]保存單元404,用於保存所述接收單元401接收到的所述通知消息;
[0060]確定單元402,還用於確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息;
[0061]發送單元405,用於根據所述最新狀態標識,在滿足消息發送條件時只發送所述最新通知消息。
[0062]可選的,所述中間節點400還包括查找單元403,用於查找到本地保存有其他通知消息,所述其他通知消息和所述接收單元401接收到的通知消息是根據相同的訂閱資源生成的;所述保存單元404,用於保存所述接收單元401接收到的所述通知消息具體為:所述保存單元404,用於將所述接收單元401接收到的所述通知消息以替換所述查找單元403查找到的所述其他通知消息的方式保存到本地;所述確定單元402,還用於確定本地保存的根據所述訂閱資源生成的通知消息中的最新通知消息具體為:所述確定單元402,還用於確定本地保存的根據所述訂閱資源生成的通知消息為最新通知消息。
[0063]可選的,中間節點400還包括查找單元403,用於查找到本地保存有其他通知消息,所述其他通知消息和所述接收單元401接收到的通知消息是根據相同的訂閱資源生成的;所述確定單元402,還用於確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息具體為:所述確定單元402,還用於確定本地保存的所述通知消息和所述查找單元403查找到的所述其他通知消息中的最新通知消息。
[0064]可選的,所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識;所述查找單元403,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:所述查找單元403,用於查找到本地保存的其他通知消息,所述接收單元401接收到的所述通知消息和所述其他通知消息包含的最新狀態標識相同。
[0065]可選的,所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識;所述查找單元403,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:所述查找單元403,用於查找到本地保存的其他通知消息,所述接收單元401接收到的所述通知消息和所述其他通知消息包含的最新狀態標識以及消息發送源地址相同。
[0066]可選的,所述查找單元403,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:所述查找單元403,用於查找到本地保存的其他通知消息,所述接收單元401接收到的所述通知消息和所述其他通知消息包含的訂閱資源通用資源標識符(Universal Resource Identifier, URI)相同。
[0067]在M2M網絡中,M2M業務平臺可以是各計算機,具有處理器的設備。M2M網關和M2M終端在設備上沒有嚴格的區分,比如做網關的設備也可以做為終端,此外為各種終端設備,如手機,計算機,PDA,筆記本電腦,遠程控制器,家用電器,各種儀器儀表、傳感器等都可以做為M2M網絡的網關或終端。在上述模塊實施例中,所包括的各個模塊只是按照功能邏輯進行劃分的,但並不局限於上述的劃分,只要能夠實現相應的功能即可;另外,各功能模塊的具體名稱也只是為了便於相互區分,並不用於限制本發明的保護範圍。
[0068]本發明實施例提供了訂閱通知的實現方法,應用於部署被訂閱資源的託管公共服務實體Hosting CSE,請參照圖5,該方法包括:
[0069]步驟501:接收訂閱者的創建訂閱資源請求,所述創建訂閱資源請求中包含被訂閱資源的唯一標識。
[0070]步驟502:根據所述創建訂閱請求創建訂閱資源。
[0071]步驟503:確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態,為所述創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
[0072]具體的,確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態可以為:根據所述創建訂閱資源請求中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態,或者,根據本地保存的與所述訂閱者相關策略信息中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
[0073]具體的,所述最新狀態標識可以是一個用於識別所述訂閱資源且全局唯一的標識,或者,所述最新狀態標識可以是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識,或者,所有的訂閱資源具有相同的最新狀態標識。
[0074]步驟504:當所述被訂閱資源的狀態發生更新時,根據所述訂閱資源生成通知消息並發送給中間節點,所述通知消息包含所述更新後的被訂閱資源的狀態以及所述最新狀態標識,以便於所述中間節點接收到所述通知消息後,根據所述最新狀態標識在滿足消息發送條件時向所述訂閱者只發送根據所述訂閱資源生成的最新通知消息。
[0075]具體的,根據所述訂閱資源生成通知消息並發送給中間節點可以為:根據所述訂閱資源生成通知消息,並將所述通知消息直接封裝在HTTP消息中發送給中間節點,或者根據所述通知消息生成存儲轉發資源的資源表述,將所述資源表述封裝在Restful消息中發送給中間節點。
[0076]本發明另一個實施例提供了訂閱通知的實現方法,應用於轉發通知消息的中間節點,請參照圖6,該方法包括:
[0077]步驟601:接收到通知消息,所述通知消息包含更新後的被訂閱資源的狀態,確定所述通知消息包含最新狀態標識。
[0078]步驟602:保存所述接收到的通知消息。
[0079]步驟603:確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息。
[0080]可選的,當步驟602中保存所述接收到的通知消息具體包括:查找到本地保存有其他通知消息後,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的,將所述接收到的通知消息以替換所述其他通知消息的方式保存到本地;本步驟具體為:確定本地保存的根據所述訂閱資源生成的通知消息為最新通知消息。
[0081]可選的,本步驟具體為:查找到本地保存有其他通知消息後,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的,確定本地保存的所述通知消息和所述其他通知消息中的最新通知消息。[0082]其中,所述最新狀態標識具體為一個用於識別所述訂閱資源且全局唯一的標識,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新狀態標識相同;或者,所述最新狀態標識具體為一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新狀態標識以及消息發送源地址相同;或者,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的訂閱資源通用資源標識符(Universal Resource Identifier,URI)相同。
[0083]步驟604:根據所述最新狀態標識,在滿足消息發送條件時只發送所述最新通知消息。
[0084]在所述滿足消息發送條件時只發送所述最新通知消息之後,還包括將本地保存的根據所述訂閱資源生成的通知消息刪除。
[0085]本發明實施例提供了實現訂閱通知的信令流程圖,請參照圖7示。
[0086]在本實施例中,Appl註冊到其本地CSE上,該CSE為Appl創建註冊資源,並為該註冊資源分配ID,然後生成該註冊資源的URI,並將該註冊資源URI返回給Appl。其中該註冊資源ID是一個全局唯一的字符串,例如applicationl,註冊資源URI由註冊資源ID和該本地CSE的URI組成。因此,該註冊資源URI也是一個全局唯一的字符串,註冊資源ID和註冊資源URI均可以是該註冊資源的唯一標識。例如,在本實施例中Appl的本地CSE URI是 http://example, com/gateway I,貝1Ji亥註冊資源 URI 是 http://example, com/ gatewayl/applicationl。並且,Appl在註冊過程或註冊結束後設置該註冊資源的訪問權限,允許包含App2的其他用戶訪問、訂閱該註冊資源。在此,該本地CSE被稱作Appl的Hosting CSE。因此,當App2訪問該Hosting CSE時,可以發現Appl在Hosting CSE上的註冊資源,在獲取所述註冊資源的唯一標識後訂閱所述註冊資源,並且訂閱者App2希望每次接收到的是該註冊資源的最新狀態。具體的實現過程如下:
[0087]步驟701:訂閱者App2向自身的註冊網關CSE2發送創建訂閱資源請求,該創建訂閱資源請求中包含被訂閱資源的唯一標識以及訂閱者App2的唯一標識。
[0088]在本實施中,上述的被訂閱資源也就是Appl在Hosting CSE上的註冊資源,因此,上述被訂閱資源的唯一標識,也就是Appl在Hosting CSE上的註冊資源的唯一標識。
[0089]可選的,該創建訂閱資源請求中還可以包括訂閱條件。
[0090]可選的,App2通過在所述創建訂閱資源請求中包含指示信息,以指示訂閱者需要獲取的是被訂閱資源的最新狀態;或者App2事先訪問M2M業務提供商的設置系統,在配置策略信息中添加指示信息;又或App2在與M2M業務提供商籤約時,約定App2隻獲取被訂閱資源的最新狀態信息,M2M業務提供商在配置策略信息中添加指示信息;又或,對被訂閱資源來說其最新產生的數據才有意義,比如智能家居中用於顯示電器開關的狀態的數據,這樣被訂閱資源所在的Hosting CSE或M2M業務提供商會在配置策略信息中添加指示信息,以指示App2需要獲取的是被訂閱資源的最新狀態,所述配置策略信息可以保存在HostingCSE 上。
[0091]其中,在所述創建訂閱資源請求中或配置策略信息包含指示信息,以指示訂閱者需要獲取的是被訂閱資源的最新狀態,具體的可以是:通過在所述創建訂閱資源請求中或者配置策略信息中增加一個參數ItepeatCheck且該參數的值為指定的有效值來指示訂閱者需要獲取的是被訂閱資源的最新狀態,該參數可以是布爾型、整形、字符串類型或其他類型。例如,在本實施例中,增加的參數RepeatCheck為布爾型,當參數值為TRUE指示訂閱者只獲取被訂閱資源的最新狀態。
[0092]步驟702:CSE2接收到所述創建訂閱資源請求後,根據所述創建訂閱請求將所述創建訂閱請求轉發到具有Appl的註冊資源(即被訂閱資源)的Hosting CSE。具體的,CSE2通過該創建訂閱資源請求中攜帶的被訂閱資源唯一標識轉發到具有該被訂閱資源的Hosting CSE0
[0093]步驟703 =Hosting CSE接收到所述創建訂閱資源請求後創建訂閱資源,並在確定訂閱者需要獲取的是被訂閱資源的最新狀態後,為所述訂閱資源分配最新狀態標識。為該訂閱資源分配訂閱資源ID並生成訂閱資源URI,並保存該訂閱資源和被訂閱資源之間的關聯關係。
[0094]其中,分配的訂閱資源ID是一個在Hosting CSE中唯一的字符串,例如subscriptionB,訂閱資源URI由被訂閱資源URI和訂閱資源ID組成,因為被訂閱資源URI是一個全局唯一的字符串,故訂閱資源URI也是一個全局唯一的字符串。例如,在本實施例中,訂閱資源 URI 的值是 http://example, com/gateway 1/applicationl /subscriptionB。具體的,通過將創建的訂閱資源sub scr ip t i onB作為被訂閱資源app I i cat i on I的資源樹的子節點來保存subscriptionB和applicationl兩者之間的關聯關係。其中,所述創建的訂閱資源包括所述創建訂閱資源請求中攜帶的被訂閱資源的唯一標識和App2的唯一標識。可選的,當該創建訂閱資源請求中包含訂閱條件時,訂閱資源還包含該訂閱條件。
[0095]其中,所述Hosting CSE確定訂閱者需要獲取的是被訂閱資源的最新狀態具體為:根據所述創建訂閱資源請求中包含的指示信息確定App2需要獲取的是被訂閱資源的最新狀態,或者根據本地保存的與所述App2相關策略信息中包含的指示信息確定App2需要獲取的是被訂閱資源的最新狀態。具體的,所述Hosting CSE通過檢查所述創建訂閱資源請求中或所述策略信息中是否具有參數ItepeatCheck並且該參數是否為指定的有效值來判斷App2需要獲取的是被訂閱資源的最新狀態。例如,在本實施例中,通過確定攜帶布爾型參數ItepeatCheck且其值為True來確定App2需要獲取被訂閱資源的最新狀態。
[0096]在本實施例的第一個例子中,所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識。具體的,該全局唯一的最新狀態標識可以是訂閱資源URI,也可以是其他的字符串。
[0097]在本實施例的第二個例子中,所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識。具體的,該唯一的最新狀態標識可以是訂閱資源ID,也可以是其他的字符串。
[0098]在本實施例的第三個例子中,所有的訂閱資源具有相同的最新狀態標識,具體的,該最新狀態標識可以是一個指定字符串。
[0099]其中,在為所述訂閱資源分配最新狀態標識後,Hosting CSE可以將該最新狀態標識作為該訂閱資源的屬性或者創建一張表以保存該訂閱資源與該最新狀態標識的關聯關係O
[0100]步驟704:當Appl發生狀態更新時,向Hosting CSE發送狀態更新請求。
[0101]具體的,Appl發生狀態更新包括應用註銷和Appl屬性發生改變。具體的,所述狀態更新請求中包含Hosting CSE為Appl的註冊資源所分配的註冊資源URI。在本發明實施例中,所述註冊資源URI也就是被訂閱資源URI。
[0102]步驟705 =Hosting CSE接收到所述狀態更新請求後更新被訂閱資源的狀態,根據所述訂閱資源生成第一通知消息後發送給中間節點,並且在所述第一通知消息中包含所述更新後的被訂閱資源的狀態以及最新狀態標識。
[0103]具體地,該步驟包括=Hosting CSE接收到所述狀態更新請求後,根據所述狀態更新請求中攜帶的被訂閱資源URI,更新所述被訂閱資源的狀態。並且,Hosting CSE根據被訂閱資源與訂閱資源的對應關係找到所述訂閱資源,確定所述訂閱資源包含最新狀態標識後,根據所述訂閱資源生成第一通知消息,所述第一通知消息中包含發送源地址(即Hosting CSE URI)以及接收方地址(即App2URI)以及訂閱資源URI,並且,在所述第一通知消息中包含所述更新後的被訂閱資源的狀態以及所述最新狀態標識。具體的,該第一通知消息可以為原語格式的消息,其中發送源地址Hosting CSE UR1、接收方地址App2URI以及最新狀態標識包含在所述第一通知消息的屬性部分,訂閱資源URI以及更新後的被訂閱資源的狀態包含在所述第一通知消息的資源部分,可選的,所述第一通知消息的資源部分可以包含所述更新後的被訂閱資源。可選的,當所述訂閱資源中包含訂閱條件時,確定被訂閱資源狀態的改變滿足所述訂閱條件後才生成所述第一通知消息。其中,接收方地址可以是根據所述訂閱資源的ContactURI獲取的。Hosting CSE在生成第一通知消息後,查詢路由表獲取下一跳為中間節點後,將所述第一通知消息發送到所述中間節點。
[0104]本步驟中,在將第一通知消息發送給中間節點之前,Hosting CSE根據本地保存的發送配置信息確定第一通知消息的下發方式,具體的,可以採用以下兩種下發方式:方式1、直接將第一通知消息封裝在超文本轉移協議(HTTP-Hypertext transfer protocol,HTTP)消息中下發,例如,通過HTTP POST發送所述第一通知消息,優選的,將所述原語格式的第一通知消息的屬性部分封裝到HTTP的消息頭中,第一通知消息的資源部分封裝到HTTP的消息體中;方式2、根據第一通知消息生成存儲轉發資源的資源表述後,將生成的存儲轉發資源的資源表述封裝在Restful消息中下發,例如,生成〈delivery〉的資源表述,將第一通知消息作為〈delivery〉的資源表述的data屬性值,然後將所述〈delivery〉的資源表述封裝在Restful Create消息中下發。
[0105]步驟706:中間節點接收到所述第一通知消息並確定該第一通知消息中包含最新狀態標識後,檢查本地是否保存有與所述第一通知消息根據相同的訂閱資源生成的其他通知消息。在實施例中,由於這是Appl被訂閱後第一次狀態更新,因此,本地未保存有與所述第一通知消息根據相同的訂閱資源生成的其他通知消息,將所述第一通知消息保存在本地。
[0106]在上述提到的本實施例的第一個例子中,所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識,則中間節點檢查本地是否保存有與所述第一通知消息根據相同的訂閱資源生成的其他通知消息具體為:確定中間節點是否保存有和所述第一通知消息包含相同的最新狀態標識的其他通知消息。
[0107]在上述提到的本實施例的第二個例子中,所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識,則中間節點檢查本地是否保存有與所述第一通知消息根據相同的訂閱資源生成的其他通知消息具體為:確定中間節點是否保存有和所述第一通知消息包含相同的最新狀態標識以及消息發送源地址的其他通知消息。
[0108]在上述提到的本實施例的第三個例子中,所有的訂閱資源具有相同的最新狀態標識,則中間節點檢查本地是否保存有與所述第一通知消息根據相同的訂閱資源生成的其他通知消息具體為:確定中間節點是否保存有和所述第一通知消息包含相同的訂閱資源URI的其他通知消息。而且,在本實施例的第一個例子或第二個例子中,也可以採用該第三種方式檢查本地是否保存有和所述第一通知消息根據相同訂閱資源生成的其他通知消息。
[0109]在本實施例的第一個例子中,本步驟首先判斷出第一通知消息包含最新狀態標識後,對於每個其他通知消息,要對該消息內容進行一次解析以獲取最新狀態標識並進行一次判斷、即判斷該獲取到的最新狀態標識是否和第一通知消息包含的最新狀態標識相同;在本實施例的第二個例子中,本步驟首先判斷出第一通知消息包含最新狀態標識後,要進一步獲取第一通知消息包含的消息發送源地址,對於每個其他通知消息,要對該消息內容進行一次解析以獲取最新狀態標識和消息發送源地址並進行兩次判斷、即判斷該獲取到的最新狀態標識是否和第一通知消息包含的最新狀態標識相同以及該獲取到的消息發送源地址是否和第一通知消息包含的消息發送源地址相同;在本實施例的第三個例子中,本步驟首先判斷出第一通知消息包含最新狀態標識後,要進一步獲取第一通知消息包含的訂閱資源URI,對於每個其他通知消息,要對該消息內容進行一次解析以獲取訂閱資源URI並進行一次判斷、即判斷該獲取到的訂閱資源URI是否和第一通知消息包含的訂閱資源URI相同;因此,相比較而言,本實施例的第一個例子處理效率最高。
[0110]在步驟705中採用方式I下發第一通知消息時,所述檢查本地是否保存有與所述第一通知消息根據相同的訂閱資源生成的其他通知消息具體為:在緩存隊列中檢查是否保存有和所述第一通知消息根據相同的訂閱資源生成的其他通知消息;所述將所述第一通知消息保存在本地具體為:將第一通知消息保存在中間節點的緩存隊列中。中間節點包含多個緩存隊列,每個緩存隊列用於保存下一跳CSE相同的通知消息,並且根據中間節點的轉發存儲策略為所述緩存隊列設置關聯的定時器;當向所述緩存隊列中存放通知消息時,如果是該緩存隊列中的第一個通知消息,則在存放該通知消息後啟動所述緩存隊列的定時器。
[0111]在步驟705中採用方式2下發第一通知消息時,所述檢查本地是否保存有與所述第一通知消息根據相同的訂閱資源生成的其他通知消息具體為:在存儲轉發資源中檢查是否保存有和所述第一通知消息根據相同的訂閱資源生成的其他通知消息;所述將所述第一通知消息保存在本地具體為:在中間節點創建存儲轉發資源,將所述第一通知消息保存在所述存儲轉發資源的屬性中,例如,創建〈delivery〉資源,將第一通知消息保存在〈delivery〉資源的data屬性中。中間節點會根據轉發存儲策略為具有相同下一跳CSE的通知消息設置統一的定時器,並記錄所述定時器與所述CSE、包含所述通知消息的存儲轉發資源的關聯關係;每創建一個存儲轉發資源時,確定所述存儲轉發資源中包含的通知消息的下一跳為所述CSE後,在記錄信息中增加所述定時器與所述存儲轉發資源的關聯關係;當在記錄信息中增加定時器與存儲轉發資源的關聯關係時、如果是該記錄信息中的第一個存儲轉發資源則啟動所述定時器。
[0112]步驟707:Appl再次發生狀態更新,向Hosting CSE發送狀態更新請求。
[0113]該步驟的實現參考步驟704的詳細描述。
[0114]步驟708:Hosting CSE接收到所述狀態更新請求後更新被訂閱資源的狀態,根據所述訂閱資源生成第二通知消息後發送給中間節點,並且在所述第二通知消息中包含所述更新後的被訂閱資源的狀態以及最新狀態標識。
[0115]其中,該步驟中更新被訂閱資源狀態的描述參見步驟705 ;其中,Hosting CSE根據所述訂閱資源生成第二通知消息、並且在所述第二通知消息中包含所述更新後的被訂閱資源的狀態以及最新狀態標識的描述和步驟705中對第一通知消息的操作方式相同。
[0116]其中,Hosting CSE發送第二通知消息的方式和步驟705中發送第一通知消息的方式相同。
[0117]步驟707:中間節點接收到所述第二通知消息並確定包含最新狀態標識後,檢查本地是否保存有和所述第二通知消息根據相同的訂閱資源生成的其他通知消息。在本實施例中,前述已經保存了第一通知消息,中間節點確定所述第一通知消息和所述第二通知消息根據相同的訂閱資源生成後,將所述第二通知消息替換所述第一通知消息。
[0118]其中,中間節點檢查本地是否保存有和所述第二通知消息根據相同的訂閱資源生成的其他通知消息的實現方式,和步驟706中檢查本地是否保存有和所述第一通知消息根據相同的訂閱資源生成的其他通知消息的實現方式相同。
[0119]其中,當步驟708採用步驟705中的方式I下發第二通知消息時,所述將所述第二通知消息替換所述第一通知消息具體為:將緩存隊列中的所述第一通知消息替換為所述第二通知消息;當步驟708採用步驟705中的方式2下發第二通知消息時,所述將所述第二通知消息替換所述第一通知消息具體為:將存儲轉發資源中的所述第一通知消息替換為所述第二通知消息。
[0120]步驟710:當滿足消息發送條件時,中間節點將本地保存的通知消息發送給下一跳CSE,在本實施例中,本地保存的是第二通知消息,中間節點將所述第二通知消息發送給CSE2。
[0121]可選的,步驟706之後直接進入步驟710,即步驟706之後沒有收到根據所述訂閱資源生成的其他通知消息就滿足消息發送條件,本地保存的是第一通知消息,中間節點將所述第一通知消息發送給CSE2。
[0122]可選的,本步驟之前中間節點又接收到根據所述訂閱資源生成的一個或多個其他通知消息,本地保存的是所述其他通知消息中的最後一個,中間節點將所述其他通知消息中的最後一個發送給CSE2。
[0123]當步驟705中採用方式I下發第一通知消息時,該步驟具體為:當緩存隊列關聯的定時器到期後,將所述緩存隊列中保存的通知消息發送給下一跳CSE,並將所述緩存隊列關聯的定時器清零以及將所述緩存隊列中的通知消息刪除。
[0124]當步驟705中採用步驟2下發第一通知消息時,該步驟具體為:當存儲轉發資源關聯的定時器到期後,將所述記錄信息中記錄的所有存儲轉發資源包含的通知消息發送給下一跳CSE,並將所述存儲轉發資源關聯的定時器清零以及將所述存儲轉發資源刪除。
[0125]可選的,該中間節點將第二通知消息發送給CSE2前將經過第二中間節點,該第二中間節點將執行和本中間節點同樣的操作,這裡不再贅述。
[0126]步驟711:CSE2接收到第二通知消息後發送給App2。
[0127]具體的,網關CSE2根據第二通知消息的接收方地址判斷App2註冊在該網關上,直接將第二通知消息發送給App2。
[0128]在該實施例中,通過Hosting CSE確定訂閱者需要獲取的是被訂閱資源的最新狀態後,在發送給中間節點的通知消息中包含最新狀態標識,以便中間節點在確定接收到的通知消息中包含最新狀態標識後,替換掉本地保存的和所述通知消息根據相同的訂閱資源生成的已有通知消息,可以保證中間節點只轉髮根據所述訂閱資源生成的最新通知消息,從而避免了訂閱者在一個連接中接收到根據同一個訂閱資源發送的多條通知消息,節省了網絡資源和計算資源。
[0129]本發明另一個實施例提供了實現訂閱通知的信令流程圖,請參照圖8示。
[0130]在本實施例中,Appl註冊到其本地CSE上、設置註冊資源的訪問權限的過程參考圖7對應實施例的詳細描述。當App2訪問Hosting CSE時,可以發現Appl在Hosting CSE上的註冊資源,在獲取所述註冊資源的唯一標識後訂閱所述註冊資源,並且訂閱者App2希望每次接收到的是該註冊資源的最新狀態。具體的實現過程如下:
[0131]步驟801-步驟805:參考圖7對應實施例的步驟701-步驟705。
[0132]步驟806:中間節點將所述第一通知消息保存在本地。
[0133]具體的,所述將所述第一通知消息保存在本地的實現方式參考圖7對應實施例的步驟706中將第一通知消息保存在本地的描述。
[0134]步驟807-步驟808:參考圖7對應實施例的步驟707-步驟708。
[0135]步驟809:中間節點將所述第二通知消息保存在本地。
[0136]具體的,所述將所述第二通知消息保存在本地的實現方式參考圖7對應實施例的步驟706中將第一通知消息保存在本地的描述。
[0137]步驟810:當滿足消息發送條件時,中間節點確定本地保存的第一通知消息包含最新狀態標識後,檢查本地是否保存有和所述第一通知消息根據相同的訂閱資源生成的其他通知消息,將所述其他通知消息和第一通知消息中的最新通知消息發送給下一跳CSE。在本實施例中,本地保存的是第一通知消息和第二通知消息,中間節點確定第二通知消息是最新通知消息後,將所述第二通知消息發送給CSE2。
[0138]可選的,步驟806之後直接進入步驟810,即步驟806之後沒有收到根據所述訂閱資源生成的其他通知消息就滿足消息發送條件,本地只保存有第一通知消息,中間節點將所述第一通知消息發送給CSE2。
[0139]可選的,本步驟之前中間節點又收到根據所述訂閱資源生成的一個或多個其他通知消息,本地保存的是所述第一通知消息、第二通知消息和所述其他通知消息,中間節點將所述第一通知消息、第二通知消息和其他通知消息中的最新通知消息發送給CSE2。
[0140]當步驟805中採用方式I下發第一通知消息時,所述當滿足消息發送條件時具體為:當緩存隊列關聯的定時器到期後。
[0141]當步驟805中採用方式2下發第一通知消息時,所述當滿足消息發送條件時具體為:當存儲轉發資源關聯的定時器到期後。
[0142]具體的,所述檢查本地是否保存有和所述第一通知消息根據相同的訂閱資源生成的其他通知消息的實現參考圖7對應實施例的步驟706中對該操作的描述。
[0143]具體的,通知消息中包含時間戳信息,所述將所述其他通知消息和第一通知消息中的最新通知消息發送給下一跳CSE具體為:根據所述其他通知消息以及第一通知消息中包含的時間戳信息,將所述其他通知消息和第一通知消息中的最新通知消息發送給下一跳CSE。
[0144]具體的,該步驟中在將所述其他通知消息和第一通知消息中的最新通知消息發送給下一跳CSE之後,還包括將本地保存的所述其他通知消息和第一通知消息刪除
[0145]可選的,該中間節點將第二通知消息發送給CSE2前將經過第二中間節點,該第二中間節點將執行和本中間節點同樣的操作,這裡不再贅述。
[0146]步驟811:參考圖7對應實施例的步驟711。
[0147]在該實施例中,通過Hosting CSE確定訂閱者需要獲取的是被訂閱資源的最新狀態後,在發送給中間節點的通知消息中包含最新狀態標識,中間節點保存所述通知消息,當需要發送所述通知消息時,中間節點確定所述通知消息中包含最新狀態標識後,查找本地保存的和該通知消息根據相同的訂閱資源生成的其他通知消息,將該通知消息和其他通知消息中最新的通知消息下發,可以保證中間節點只轉髮根據所述訂閱資源生成的最新通知,從而避免了訂閱者在一個連接中接收到根據同一個訂閱資源發送的多條通知,節省了網絡資源和計算資源。
[0148]本發明實施例中的Hosting CSE可以基於計算機系統來實現,圖5、圖7、圖8所示的方法均可在基於計算機系統的Hosting CSE來實現。圖9示出了基於計算機系統來實現的Hosting CSE的實施例。本實施例中Hosting CSE可以包括:處理器901、存儲器902和通信接口 903,其中:
[0149]通信接口 903,用於與訂閱者和中間節點通信。Hosting CSE與訂閱者、中間節點之間交互的消息均通過通信接口 903發送和接收。具體地,通信接口 903用於接收訂閱者的創建訂閱資源請求以及向中間節點發送通知消息;存儲器902用於存儲程序指令;處理器901用於通信接口 903從訂閱者接收到創建訂閱資源請求之後,調用存儲器902中存儲的程序指令,執行以下操作:根據所述創建訂閱請求創建訂閱資源;確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態;當所述被訂閱資源發生更新時,根據所述訂閱資源生成通知消息並發送給中間節點,所述通知消息包含所述更新後的被訂閱資源的狀態以及所述最新狀態標識,以便於所述中間節點接收到所述通知消息後,根據所述最新狀態標識在滿足消息發送條件時向所述訂閱者只發送根據所述訂閱資源生成的最新通知消息。
[0150]其中,處理器901可以是中央處理器(central processing unit, CPU)、專用集成電路(application-specific integrated circuit, ASIC)等。其中,本實施例中的HostingCSE可以包括總線904。處理器901、存儲器902以及通信接口 903之間可通過總線904連接並通信。其中,存儲器902可以包括:隨機存取存儲器(random access memory, RAM),只讀存儲器(read-only memory, ROM),磁碟等具有存儲功能的實體。[0151]處理器901還可以用於執行方法實施例中圖5、圖7、圖8描述的Hosting CSE的各步驟,本發明實施例在此不再詳述。
[0152]本發明實施例中的中間節點可以基於計算機系統來實現,圖6、圖7、圖8所示的方法均可在基於計算機系統的中間節點來實現。圖10示出了基於計算機系統來實現的中間節點的實施例。本實施例中中間節點可以包括:處理器1001、存儲器1002和通信接口 1003,其中:
[0153]通信接口 1003,用於與上一跳CSE通信。中間節點與上一跳CSE之間交互的消息均通過通信接口 1003發送和接收。具體地,通信接口 1003用於從上一跳CSE接收通知消息;存儲器1002用於存儲程序指令;處理器1001用於通信接口 1003從上一跳CSE接收通知消息之後,調用存儲器1002中存儲的程序指令,執行以下操作:確定所述通知消息包含最新狀態標識;保存所述接收到的通知消息;確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息;根據所述最新狀態標識,在滿足消息發送條件時只發送所述最新通知消息。
[0154]其中,處理器1001可以是中央處理器(central processing unit, CPU)、專用集成電路(application-specific integrated circuit, ASIC)等。其中,本實施例中的中間節點可以包括總線1004。處理器1001、存儲器1002以及通信接口 1003之間可通過總線1004連接並通信。其中,存儲器1002可以包括:隨機存取存儲器(random access memory, RAM),只讀存儲器(read-only memory, ROM),磁碟等具有存儲功能的實體。
[0155]處理器1001還可以用於執行方法實施例中圖6、圖7、圖8描述的中間節點的各步驟,本發明實施例在此不再詳述。
[0156]以上所述,僅為本發明較佳的【具體實施方式】,但本發明的保護範圍並不局限於此,任何熟悉本【技術領域】的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應該以權利要求的保護範圍為準。
【權利要求】
1.一種實現訂閱通知的託管公共服務實體hosting CSE,其特徵在於,所述hostingCSE包括: 接收單元,用於接收訂閱者的創建訂閱資源請求,所述創建訂閱資源請求中包含被訂閱資源的唯一標識; 資源創建單元,用於根據所述接收單元接收到的創建訂閱資源請求而創建訂閱資源; 確定單元,用 於確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態; 分配單元,用於在所述確定單元確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述資源創建單元創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態; 生成單元,用於當所述被訂閱資源的狀態發生更新時,根據所述資源創建單元創建的訂閱資源生成通知消息,所述通知消息包含所述更新後的被訂閱資源的狀態以及所述分配單元分配的最新狀態標識,以便於中間節點接收到所述通知消息後,根據所述最新狀態標識在滿足消息發送條件時向所述訂閱者只發送根據所述訂閱資源生成的最新通知消息; 發送單元,用於將所述生成單元生成的通知消息發送給所述中間節點。
2.根據權利要求1所述的託管公共服務實體hostingCSE,其特徵在於,所述確定單元用於確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體包括:所述確定單元,用於根據所述創建訂閱資源請求中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
3.根據權利要求1所述的託管公共服務實體hostingCSE,其特徵在於,所述確定單元用於確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體包括:所述確定單元,用於根據本地保存的與所述訂閱者相關策略信息中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
4.根據權利要求1-3中任一所述的託管公共服務實體hostingCSE,其特徵在於,所述分配單元用於在所述確定單元確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述資源創建單元創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態進一步包括:所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識。
5.根據權利要求1-3中任一所述的託管公共服務實體hostingCSE,其特徵在於,所述分配單元用於在所述確定單元確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述資源創建單元創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態進一步包括:所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識。
6.根據權利要求1-3中任一所述的託管公共服務實體hostingCSE,其特徵在於,所述分配單元用於在所述確定單元確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態後,為所述資源創建單元創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態進一步包括:所有的訂閱資源具有相同的最新狀態標識。
7.根據權利要求1-6中任一所述的託管公共服務實體hostingCSE,其特徵在於,所述發送單元用於將所述生成單元生成的通知消息發送給所述中間節點具體包括:所述發送單元,用於將所述生成單元生成的通知消息直接封裝在HTTP消息中發送給所述中間節點,或者在根據所述通知消息生成存儲轉發資源的資源表述後,將所述資源表述封裝在Restful消息中發送給所述中間節點。
8.一種實現訂閱通知的中間節點,其特徵在於,所述中間節點包括: 接收單元,用於接收到通知消息,所述通知消息包含更新後的被訂閱資源的狀態; 確定單元,用於確定所述接收單元接收到的所述通知消息包含最新狀態標識; 保存單元,用於保存所述接收單元接收到的所述通知消息; 確定單元,還用於確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息;發送單元,用於根據所述最新狀態標識,在滿足消息發送條件時只發送所述最新通知消息。
9.根據權利要求8所述的中間節點,其特徵在於, 所述中間節點還包括查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述接收單元接收到的通知消息是根據相同的訂閱資源生成的; 所述保存單元,用於保存所述接收單元接收到的所述通知消息具體為:所述保存單元,用於將所述接收單元接收到的所述通知消息以替換所述查找單元查找到的所述其他通知消息的方式保存到本地; 所述確定單元,還用於確定本地保存的根據所述訂閱資源生成的通知消息中的最新通知消息具體為:所述確定單元,還用於確定本地保存的根據所述訂閱資源生成的通知消息為最新通知消息。
10.根據權利要求8所述的中間節`點,其特徵在於, 所述中間節點還包括查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述接收單元接收到的通知消息是根據相同的訂閱資源生成的; 所述確定單元,還用於確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息具體為:所述確定單元,還用於確定本地保存的所述通知消息和所述查找單元查找到的所述其他通知消息中的最新通知消息。
11.根據權利要求9或10所述的中間節點,其特徵在於, 所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識; 所述查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:所述查找單元,用於查找到本地保存的其他通知消息,所述接收單元接收到的所述通知消息和所述其他通知消息包含的最新狀態標識相同。
12.根據權利要求9或10所述的中間節點,其特徵在於, 所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識; 所述查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:所述查找單元,用於查找到本地保存的其他通知消息,所述接收單元接收到的所述通知消息和所述其他通知消息包含的最新狀態標識以及消息發送源地址相同。
13.根據權利要求9或10所述的中間節點,其特徵在於,所述查找單元,用於查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源的生成具體為:所述查找單元,用於查找到本地保存的其他通知消息,所述接收單元接收到的所述通知消息和所述其他通知消息包含的訂閱資源通用資源標識符(Universal ResourceIdentifier, URI)相同。
14.根據權利要求8所述的中間節點,其特徵在於,所述中間節點還包括刪除單元,用於在所述發送單元只發送所述最新通知消息之後將所述本地保存的根據所述訂閱資源生成的通知消息刪除。
15.一種訂閱通知的實現方法,其特徵在於,所述方法包括: 接收訂閱者的創建 訂閱資源請求,所述創建訂閱資源請求中包含被訂閱資源的唯一標識; 根據所述創建訂閱資源請求創建訂閱資源; 確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態,為所述創建的訂閱資源分配最新狀態標識,所述最新狀態標識用於指示所述訂閱者需要獲取的是所述被訂閱資源的最新狀態; 當所述被訂閱資源的狀態發生更新時,根據所述訂閱資源生成通知消息並發送給中間節點,所述通知消息包含所述更新後的被訂閱資源的狀態以及所述最新狀態標識,以便於所述中間節點接收到所述通知消息後,根據所述最新狀態標識在滿足消息發送條件時所述訂閱者只發送根據所述訂閱資源生成的最新通知消息。
16.根據權利要求15所述的方法,其特徵在於,所述確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體為:根據所述創建訂閱資源請求中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
17.根據權利要求15所述的方法,其特徵在於,所述確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態具體為:根據本地保存的與所述訂閱者相關策略信息中包含的指示信息確定所述訂閱者需要獲取的是所述被訂閱資源的最新狀態。
18.根據權利要求15-17中任一所述的方法,其特徵在於,所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識。
19.根據權利要求15-17中任一所述的方法,其特徵在於,所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識。
20.根據權利要求15-17中任一所述的方法,其特徵在於,所有的訂閱資源具有相同的最新狀態標識。
21.根據權利要求15-20中任一所述的方法,其特徵在於,所述根據所述訂閱資源生成通知消息並發送給中間節點包括:根據所述訂閱資源生成通知消息,並將所述通知消息直接封裝在HTTP消息中發送給中間節點,或者根據所述通知消息生成存儲轉發資源的資源表述,將所述資源表述封裝在Restful消息中發送給中間節點。
22.—種訂閱通知的實現方法,其特徵在於,所述方法包括: 接收到通知消息,所述通知消息包含更新後的被訂閱資源的狀態,確定所述通知消息包含最新狀態標識; 保存所述接收到的通知消息; 確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息;根據所述最新狀態標識,在滿足消息發送條件時只發送所述最新通知消息。
23.根據權利要求22中所述的方法,其特徵在於, 所述保存所述接收到的通知消息具體包括:查找到本地保存有其他通知消息後,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的,將所述接收到的通知消息以替換所述其他通知消息的方式保存到本地; 所述確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息具體包括:確定本地保存的根據所述訂閱資源生成的通知消息為最新通知消息。
24.根據權利要求22中所述的方法,其特徵在於,所述確定本地保存的根據訂閱資源生成的通知消息中的最新通知消息具體包括:查找到本地保存有其他通知消息後,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的,確定本地保存的所述通知消息和所述其他通知消息中的最新通知消息。
25.根據權利要求23或24所述的方法,其特徵在於, 所述最新狀態標識是一個用於識別所述訂閱資源且全局唯一的標識; 所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新狀態標識相同。
26.根據權利要求23或24所述的方法,其特徵在於, 所述最新狀態標識是一個用於識別所述訂閱資源且在託管公共服務實體hosting CSE上唯一的標識; 所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的最新狀態標識以及消息發送源地址相同。
27.根據權利要求23或24所述的方法,其特徵在於,所述查找到本地保存有其他通知消息,所述其他通知消息和所述通知消息是根據相同的訂閱資源生成的具體為:查找到本地保存的其他通知消息,所述通知消息和所述其他通知消息包含的訂閱資源通用資源標識符(Universal Resource Identifier, URI)相同。
28.根據權利要求22中所述的方法,其特徵在於,所述方法之後還包括:將所述本地保存的根據所述訂閱資源生成的通知 消息刪除。
【文檔編號】H04L29/08GK103618800SQ201310655509
【公開日】2014年3月5日 申請日期:2013年12月5日 優先權日:2013年12月5日
【發明者】肖芳英 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀