一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型的制作方法
【專利摘要】本發(fā)明公開了一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,屬于通信【技術(shù)領(lǐng)域】,該發(fā)布訂閱中間件模型包括以下幾個組成部分:發(fā)布/訂閱中間件基礎(chǔ)模型;訂閱中間件中的消息格式、流程和訂閱條件過濾器;發(fā)布中間件中的消息格式、流程和節(jié)點間消息傳遞機(jī)制;用于處理發(fā)布/訂閱中間件錯誤信息的容錯機(jī)制。與現(xiàn)有技術(shù)相比,本發(fā)明基于REST架構(gòu),相比于SOAP和WDSL,使用雙向節(jié)點,減少功能模塊數(shù)量,同時,通過對泛在網(wǎng)中的信息的生產(chǎn)者和消費者之間設(shè)置一個中間件來進(jìn)行交互,在實現(xiàn)泛在網(wǎng)中多對多的通信方式的同時,信息消費者能夠通過中間件,及時、可靠地得到發(fā)布的感興趣消息,使得消息的生產(chǎn)者和訂閱者在時間、空間上完全解耦。
【專利說明】—種基于RESTfuI的泛在網(wǎng)發(fā)布訂閱中間件模型
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于通信【技術(shù)領(lǐng)域】,涉及一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型。
【背景技術(shù)】
[0002]傳統(tǒng)的通信模式(如客戶機(jī)/服務(wù)器,RPC調(diào)用,消息隊列等),發(fā)送消息然后等待響應(yīng),使得消息的請求者和發(fā)送者在時間上,空間上存在著緊耦合的關(guān)系,面對大規(guī)模的分布式系統(tǒng)顯得力不從心。通過使用發(fā)布訂閱的中間件模型,可以讓消息的生產(chǎn)者和訂閱者在時間,空間上完全解耦,實現(xiàn)多對多的通信方式。而REST作為一種設(shè)計Web服務(wù)的方法,其對專有中間件(例如某個應(yīng)用程序服務(wù)器)的依賴比基于SOAP和WSDL的方法更少。將這REST和中間件結(jié)合起來可以得到更好的訂閱/發(fā)布模型。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明的目的在于提供一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型。
[0004]為達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
[0005]一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,包括以下幾個組成部分:發(fā)布/訂閱中間件基礎(chǔ)模型;訂閱中間件中的消息格式、流程和訂閱條件過濾器;發(fā)布中間件中的消息格式、流程和節(jié)點間消息傳遞機(jī)制;用于處理發(fā)布/訂閱中間件錯誤信息的的容錯機(jī)制。
[0006]進(jìn)一步,所述基礎(chǔ)模型由以下幾個部分組成:1)發(fā)布/訂閱中間件模型中的成員;2)發(fā)布/訂閱中間件模型的主要活動角色;3)發(fā)布/訂閱中間件模型管理單元;
[0007]所述模型中的成員主要是事件主題,事件主題可以由參與者中的發(fā)布者進(jìn)行發(fā)布,也可以能由參與者中的訂閱者提出;
[0008]所述模型的主要活動角色是發(fā)布者與訂閱者,兩者的關(guān)系是相對于事件主題而言的,發(fā)布者和訂閱者的注冊方式通過泛在網(wǎng)統(tǒng)一的標(biāo)識方式進(jìn)行規(guī)范化管理;
[0009]所述中間件模型管理單元,包含了主要的通信特征,并封裝了 REST傳輸協(xié)議、REST消息編碼、REST通信模式、可靠性、安全性、事務(wù)管理及互操作性等主要元素,定義各類REST傳輸協(xié)議的抽象接口,包括回調(diào)接口和服務(wù)綁定。
[0010]進(jìn)一步,所述訂閱中間件中的消息格式由以下幾個部分構(gòu)成:訂閱中間件消息類型、訂閱ID、訂閱命令、訂閱消息傳輸位置、訂閱消息優(yōu)先級、訂閱時間戳和反饋消息;
[0011]所述訂閱ID指與訂閱者一一對應(yīng);訂閱中間件消息類型包括了訂閱客戶端中登錄、注冊、注銷消息以及系統(tǒng)中的訂閱和響應(yīng)消息;訂閱命令指判斷是否發(fā)送訂閱條件以及訂閱者對訂閱條件的更新、取消;訂閱消息傳輸位置與功能模塊或中間節(jié)點對應(yīng),并對傳輸路徑緩存記錄;訂閱消息優(yōu)先級是指在超出服務(wù)器負(fù)載情況下,消息傳遞需要有先后順序,可以用收費的方式實現(xiàn);訂閱時間戳用于記錄訂閱消息存在于系統(tǒng)的時間,時間過長會被刪除;反饋消息由匹配到的發(fā)布內(nèi)容和系統(tǒng)返回的錯誤提醒組成,錯誤提醒包括了訂閱條件出錯和系統(tǒng)/網(wǎng)絡(luò)出錯。
[0012]進(jìn)一步,所述訂閱中間件流程,通過以下四個步驟進(jìn)行:步驟一:訂閱者進(jìn)行注冊,由此進(jìn)入訂閱客戶端;步驟二:用戶在客戶端中提出訂閱條件并發(fā)送給訂閱管理器;步驟三:訂閱管理器將訂閱條件發(fā)送到數(shù)據(jù)庫,在其中匹配訂閱條件;步驟四:數(shù)據(jù)庫在匹配過后將結(jié)果經(jīng)由訂閱管理器傳送到訂閱客戶端;
[0013]訂閱客戶端是指用戶查找訂閱信息時的操作平臺;訂閱管理器的功能是存儲和檢索訂閱條件,將訂閱條件轉(zhuǎn)化為與數(shù)據(jù)庫相容的REST數(shù)據(jù),并提供REST服務(wù)接口進(jìn)行訂閱或退訂服務(wù);數(shù)據(jù)庫中包含有訂閱條件過濾器,用以提高匹配效率。
[0014]進(jìn)一步,所述訂閱條件過濾器用于對經(jīng)泛在網(wǎng)統(tǒng)一的標(biāo)識方式標(biāo)識后的主題進(jìn)行篩選;所述訂閱條件過濾器的主要功能為匹配訂閱條件,篩選時就訂閱條件進(jìn)行拆分,區(qū)分訂閱條件中名詞與名詞之間的重要性程度,以更重要的名詞作為條件進(jìn)行篩選,篩選結(jié)果排在次要名詞篩選的結(jié)果之前,或者建立多級過濾器,由訂閱者自行選擇,進(jìn)一步減少篩選次數(shù);
[0015]所述的訂閱條件過濾器在具體設(shè)計時還應(yīng)考慮篩選時間、篩選空間以及事件數(shù)據(jù)本身的更新,篩選時間就是訂閱者在輸入訂閱條件以后得到結(jié)果的時間,空間是指數(shù)據(jù)存儲的空間,事件數(shù)據(jù)更新就是指發(fā)布者新發(fā)布的數(shù)據(jù)和訂閱者增加或者取消的訂閱。
[0016]進(jìn)一步,所述發(fā)布中間件消息格式采用REST風(fēng)格,由發(fā)布消息頭和發(fā)布消息體構(gòu)成;其中發(fā)布消息頭包括了發(fā)布ID、發(fā)布中間件消息類型、發(fā)布命令、發(fā)布消息傳輸位置、權(quán)限和發(fā)布時間戳;發(fā)布消息體包括了發(fā)布內(nèi)容和反饋信息;
[0017]發(fā)布ID指與發(fā)布者一一對應(yīng);發(fā)布中間件消息類型包括了發(fā)布客戶端中登錄、注冊、注銷消息、系統(tǒng)中的發(fā)布、響應(yīng)消息以及發(fā)布者控制和發(fā)布內(nèi)容是否為公共信息;發(fā)布命令指判斷是否發(fā)送發(fā)布內(nèi)容以及發(fā)布者對發(fā)布內(nèi)容的更新、取消;發(fā)布消息傳輸位置與功能模塊或中間節(jié)點對應(yīng),并對傳輸路徑緩存記錄;權(quán)限是指在分為發(fā)布者權(quán)限與發(fā)布內(nèi)容權(quán)限;發(fā)布者權(quán)限高低與發(fā)布內(nèi)容被訂閱次數(shù)多少掛鉤,發(fā)布內(nèi)容權(quán)限指發(fā)布者對發(fā)布內(nèi)容可見性的限定;發(fā)布時間戳用于記錄發(fā)布消息存在于系統(tǒng)的時間,時間過長會被刪除;反饋消息由訂閱情況和系統(tǒng)返回的錯誤提醒組成,訂閱情況指訂閱者對于發(fā)布內(nèi)容的訂閱次數(shù)以及后續(xù)要求,錯誤提醒包括了發(fā)布內(nèi)容出錯和系統(tǒng)/網(wǎng)絡(luò)出錯。
[0018]進(jìn)一步,所述發(fā)布中間件流程包括以下四個步驟:步驟一:發(fā)布者在發(fā)布注冊管理器進(jìn)行注冊;步驟二:發(fā)布者在發(fā)布客戶端進(jìn)行事件或者主題的發(fā)布;步驟三:發(fā)布的內(nèi)容通過發(fā)布管理器傳送到數(shù)據(jù)庫;步驟四:數(shù)據(jù)庫存儲發(fā)布內(nèi)容;
[0019]所述發(fā)布注冊管理器首先提供發(fā)布者進(jìn)行注冊;發(fā)布客戶端是發(fā)布者的開發(fā)并傳送結(jié)果的平臺,發(fā)布管理器存儲發(fā)布內(nèi)容并轉(zhuǎn)化為與數(shù)據(jù)庫相容的格式,提供REST發(fā)布服務(wù)接口用以管理來自發(fā)布客戶端的通知發(fā)布請求信息;數(shù)據(jù)庫保存有價值的發(fā)布內(nèi)容等待訂閱條件的匹配。
[0020]進(jìn)一步,所述的基于RESTful的泛在網(wǎng)發(fā)布/訂閱中間件消息傳遞機(jī)制,采用RESTful標(biāo)識類型對每一個節(jié)點的位置進(jìn)行標(biāo)識;并包含有各類REST傳輸網(wǎng)絡(luò)協(xié)議,并可以添加驗證碼保證安全性;節(jié)點位于每個功能模塊中間,幫助消息在其中相互傳遞;相比于SOAP中節(jié)點只能單向傳輸,REST中的節(jié)點能夠達(dá)到雙向傳輸:可以從上一級接收消息發(fā)送到下一級,也可以從下一級接收消息返回上一級,減少節(jié)點數(shù)量,簡化系統(tǒng)。
[0021]所述發(fā)布/訂閱中間件消息傳遞機(jī)制中的節(jié)點是消息傳遞機(jī)制中的最小邏輯組成,且每個節(jié)點相互獨立,消息傳遞時,節(jié)點根據(jù)消息命令,進(jìn)行一個或者多個節(jié)點間傳遞;
[0022]所述節(jié)點由三個部分組成:接收器、傳輸系統(tǒng)、發(fā)送器;接收器接收命令消息并將訂閱信息發(fā)送給傳輸系統(tǒng);傳輸系統(tǒng)通過命令消息進(jìn)行判斷如何進(jìn)行下一步傳送,并將命令消息發(fā)送給接收器。
[0023]傳送原則就是信息傳送方式以及傳送路徑,多數(shù)情況下需經(jīng)過一些中間節(jié)點的處理,發(fā)送信息才能夠到達(dá)指定節(jié)點;傳送原則也包含了當(dāng)出現(xiàn)了錯誤,不能夠傳送到目的節(jié)點時的解決方案:可選擇把消息先傳送到后備處理節(jié)點,或者暫存到規(guī)定的緩存隊列中,等待繼續(xù)傳送的命令消息。
[0024]進(jìn)一步,所述的泛在網(wǎng)發(fā)布/訂閱中間件容錯機(jī)制由三個方面組成:硬件容錯機(jī)制、軟件容錯機(jī)制及傳輸容錯機(jī)制;
[0025]所述的硬件容錯機(jī)制采用狀態(tài)評估系統(tǒng),中間件在運行時可能會出現(xiàn)硬件故障,通過在C/S模式下運用心跳信號機(jī)制實現(xiàn)對系統(tǒng)的維護(hù);
[0026]所述的軟件容錯機(jī)制采用日志系統(tǒng),軟件運行日志主要用于開發(fā)調(diào)試階段和軟件交付使用階段提供快速跟蹤、定位錯誤位置的工具,為調(diào)試、排故提供了有效手段,通過將日志信息分級,出現(xiàn)錯誤時從最低級信息開始發(fā)送給管理人員,不能解決就傳送較高的信息,實現(xiàn)快速解決問題;
[0027]所述的傳輸容錯機(jī)制,傳送過程中如果出現(xiàn)了異常,判斷出是錯誤信息就直接丟棄,判斷出需要繼續(xù)傳送,就選擇最短的一條鏈路,如果必須經(jīng)過某些節(jié)點,就進(jìn)行多次選擇。
[0028]本發(fā)明的有益效果在于:本發(fā)明提供了一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,與現(xiàn)有技術(shù)相比,本發(fā)明基于REST架構(gòu),相比于SOAP和WDSL,使用雙向節(jié)點,減少功能模塊數(shù)量,同時,通過對泛在網(wǎng)中的信息的生產(chǎn)者和消費者之間設(shè)置一個中間件來進(jìn)行交互,在實現(xiàn)泛在網(wǎng)中多對多的通信方式的同時,信息消費者能夠通過中間件,及時、可靠地得到發(fā)布的感興趣消息,使得消息的生產(chǎn)者和訂閱者在時間、空間上完全解耦。
【專利附圖】
【附圖說明】
[0029]為了使本發(fā)明的目的、技術(shù)方案和有益效果更加清楚,本發(fā)明提供如下附圖進(jìn)行說明:
[0030]圖1為泛在網(wǎng)發(fā)布/訂閱中間件關(guān)系圖;
[0031]圖2為泛在網(wǎng)發(fā)布/訂閱中間件訂閱條件過濾器示意圖;
[0032]圖3為泛在網(wǎng)發(fā)布/訂閱中間件節(jié)點及路由機(jī)制示意圖;
[0033]圖4為泛在網(wǎng)發(fā)布/訂閱中間件流程示意圖。
【具體實施方式】
[0034]下面將結(jié)合附圖,對本發(fā)明的優(yōu)選實施例進(jìn)行詳細(xì)的描述。
[0035]本發(fā)明實施例的一種基于RESTful的泛在網(wǎng)發(fā)布/訂閱中間件模型,該基于RESTful的泛在網(wǎng)發(fā)布與訂閱中間件由以下幾部分組成:
[0036]發(fā)布/訂閱中間件基礎(chǔ)模型;
[0037]訂閱中間件中的消息格式、流程和訂閱條件過濾器;
[0038]發(fā)布中間件中的消息格式、流程和節(jié)點間消息傳遞機(jī)制;
[0039]用于處理發(fā)布/訂閱中間件錯誤信息的的容錯機(jī)制。
[0040]基于RESTful的“發(fā)布/訂閱”模式不僅能夠在同一時間提供一對多、多對一以及多對多的異步通信模式,而且它能解除泛在網(wǎng)中用戶在時間和空間上的限制,即松耦合,這正是大規(guī)模分布式網(wǎng)絡(luò)系統(tǒng)所要求的。
[0041]I)本發(fā)明實施例的發(fā)布/訂閱中間件基礎(chǔ)模型中成員關(guān)系如圖1所示:
[0042]1.1)發(fā)布/訂閱中間件模型中成員包括參與者、管理單元和主題等,其中主題是主要對象,由參與者創(chuàng)建或者關(guān)注主題可以有多個。
[0043]1.2)模型的主要活動角色為參與者,其可創(chuàng)建任何自己關(guān)注的主題。其中一部分的人作為發(fā)布者通過數(shù)據(jù)發(fā)送模塊,發(fā)布自己能夠提供的信息或者能力;另一部分作為訂閱者在這其中選擇自己感興趣的信息或能力。
[0044]作為優(yōu)化方案,發(fā)布者、訂閱者的注冊方式可以通過泛在網(wǎng)統(tǒng)一標(biāo)識方式進(jìn)行規(guī)范化管理,方便兩者的查詢和聯(lián)系,提供更大的合作空間。
[0045]1.3)管理單元:包含了主要的通信特征;封裝了 REST傳輸協(xié)議:不僅包括了 SOAP和WSLD包括的HTTP和XML,還有HTML、URI等;封裝了 REST消息編碼、REST通信模式、可靠性、安全性、事務(wù)管理及互操作性等主要元素;定義各類REST傳輸協(xié)議的抽象接口,包括回調(diào)接口、服務(wù)綁定等,實現(xiàn)與多種應(yīng)用系統(tǒng)之間的互操作,使得發(fā)布/訂閱系統(tǒng)能在泛在網(wǎng)的任意網(wǎng)絡(luò)類型里面使用。
[0046]2)訂閱中間件消息格式、訂閱中間件流程及訂閱條件過濾器
[0047]2.1)作為優(yōu)化方案,訂閱中間件消息格式運用了 REST風(fēng)格,由以下訂閱消息頭和訂閱消息體構(gòu)成;其中消息頭包括了訂閱ID、訂閱消息類型、訂閱命令、消息傳輸位置、訂閱消息優(yōu)先級和訂閱時間戳;消息體包括了訂閱條件和反饋信息。
[0048]2.1.1)訂閱消息頭
[0049]SubID (訂閱ID):8字節(jié),與訂閱者注冊賬號——對應(yīng);
[0050]SubMSGType (訂閱消息類型):3字節(jié),001表示登錄,010表示注冊,011表示注銷,100表示訂閱,101表示響應(yīng)。
[0051]SubOrder (訂閱命令):2字節(jié),00表示發(fā)送訂閱條件,01表示不發(fā)送訂閱條件:訂閱者在登陸狀態(tài)下進(jìn)行發(fā)送,訂閱者注銷或退出時不發(fā)送,并刪除此時的訂閱命令;10表示對訂閱條件的更新,11表示訂閱者取消訂閱。
[0052]SubMSGPosition (訂閱消息傳輸位置):4字節(jié),與訂閱客戶端、訂閱管理器以及它們的中間節(jié)點對應(yīng),并對傳輸路徑緩存記錄。
[0053]SubMSGPriority (訂閱消息優(yōu)先級):2字節(jié),在超出服務(wù)器負(fù)載或負(fù)載大的情況下,消息傳遞需要有先后順序。
[0054]作為優(yōu)化方案,上述優(yōu)先級的處理可以通過收費的方式實現(xiàn):在服務(wù)器忙碌時收費用戶的優(yōu)先級高于未收費的用戶:00表示免費用戶,01表示初級會員,10表示中級會員,11表示高級會員,等級依次提高;具體來說:收費用戶不僅優(yōu)先級高,還可以擁有更多的訂閱緩存空間,會對提高在服務(wù)器上訂閱請求保存的時間,并且如果處于離線狀態(tài),系統(tǒng)會保存相應(yīng)的通知或者匹配到的內(nèi)容,再次上線時,系統(tǒng)自動取出該消息并發(fā)送給收費用戶。
[0055]SubTimestamp (訂閱時間戳)'2字節(jié),用于記錄訂閱消息存在于系統(tǒng)的時間,并設(shè)定最高保存時長Tl與之相比較,大于Tl會丟棄消息,訂閱者等級越高,Tl的值越大。
[0056]2.1.2)訂閱消息體
[0057]SubRequirement (訂閱條件):訂閱者提出的訂閱條件保存其中;
[0058]FeedbackMSG (反饋信息):由匹配到的發(fā)布內(nèi)容和系統(tǒng)返回的錯誤提醒組成;匹配到的發(fā)布內(nèi)容指與訂閱條件基本相符的內(nèi)容;錯誤提醒包括了訂閱條件出錯和系統(tǒng)/網(wǎng)絡(luò)出錯,反饋給訂閱者相關(guān)信息及處理方法。
[0059]2.2)作為優(yōu)化方案,訂閱中間件流程如圖4所示:
[0060]步驟一:訂閱者進(jìn)行注冊,由此進(jìn)入訂閱客戶端;
[0061]步驟二:用戶在客戶端中提出訂閱條件并發(fā)送給訂閱管理器;
[0062]步驟三:訂閱管理器將訂閱條件發(fā)送到數(shù)據(jù)庫,在其中匹配訂閱條件;
[0063]步驟四:數(shù)據(jù)庫在匹配過后將結(jié)果經(jīng)由訂閱管理器傳送到訂閱客戶端。
[0064]作為優(yōu)化方案,整個消息傳輸過程中使用REST協(xié)議進(jìn)行傳輸。訂閱客戶端是指用戶查找訂閱信息時的操作平臺;訂閱管理器的功能是存儲和檢索訂閱條件,將訂閱條件轉(zhuǎn)化為與數(shù)據(jù)庫相容的REST數(shù)據(jù),并提供REST服務(wù)接口進(jìn)行訂閱或退訂服務(wù)。數(shù)據(jù)庫中包含有訂閱條件過濾器,用以提高匹配效率。
[0065]2.3)作為優(yōu)化方案,如圖2,訂閱條件過濾器的性能主要體現(xiàn)在對訂閱者提出的訂閱條件的內(nèi)容匹配,主要應(yīng)考慮以下幾點:
[0066]I)篩選對訂閱條件進(jìn)行拆分;2)區(qū)分訂閱條件中名詞與名詞之間的重要性程度,以更重要的名詞作為條件進(jìn)行篩選,篩選結(jié)果排在次要名詞篩選的結(jié)果之前;3)篩選時同樣的內(nèi)容只需過濾一次,主要內(nèi)容大多在名詞上有了體現(xiàn),所以可以排除很多不必要的內(nèi)容,從而減少篩選次數(shù);4)建立多級過濾器,可以在拆分后的名詞搜索結(jié)果中繼續(xù)檢索,或者訂閱者可以每次對一個關(guān)鍵詞進(jìn)行搜索,這樣可以進(jìn)一步減少篩選次數(shù)。
[0067]作為優(yōu)化方案,設(shè)計訂閱條件過濾器主要考慮的因素還有篩選時間、篩選空間以及事件數(shù)據(jù)更新。
[0068]進(jìn)一步,需要篩選的時間就是訂閱者在輸入訂閱條件以后得到結(jié)果的時間;空間是指數(shù)據(jù)存儲的空間;事件數(shù)據(jù)更新指發(fā)布者新發(fā)布的數(shù)據(jù)和訂閱者增加或取消的訂閱。
[0069]進(jìn)一步,可利用泛在網(wǎng)的大量數(shù)據(jù)和RESTful的各類標(biāo)記語言(例如URI)作為基礎(chǔ),進(jìn)行數(shù)據(jù)分塊整理,根據(jù)歷史檢索記錄把信息進(jìn)行分類,這樣不僅能獲得最大化的數(shù)據(jù)存儲,也為篩選時提供更精確的導(dǎo)向。
[0070]3)發(fā)布中間件消息格式、發(fā)布中間件流程和中間件中節(jié)點間消息傳遞機(jī)制
[0071]3.1)作為優(yōu)化方案,發(fā)布中間件消息格式運用了 REST風(fēng)格,由以下發(fā)布消息頭和發(fā)布消息體構(gòu)成;其中發(fā)布消息頭包括了發(fā)布ID、發(fā)布消息類型、發(fā)布命令、消息傳輸位置、權(quán)限和發(fā)布時間戳;發(fā)布消息體包括了發(fā)布內(nèi)容和反饋信息。
[0072]3.1.1)發(fā)布消息頭
[0073]PubID (發(fā)布ID):8字節(jié),與發(fā)布者注冊賬號 對應(yīng);
[0074]PubMSGType (發(fā)布消息類型):3字節(jié),001表示登錄,010表示注冊,011表示注銷,100表不訂閱,101表不響應(yīng),110表不發(fā)布者對發(fā)布內(nèi)容的修改的控制信息,111表不發(fā)布者發(fā)出的所有用戶可見的公共信息。
[0075]PubOrder (發(fā)布命令):2字節(jié),00表示發(fā)送發(fā)布內(nèi)容,01表示不發(fā)送發(fā)布內(nèi)容:發(fā)布通過審核且檢查后沒有重復(fù)的內(nèi)容,不符合條件的不進(jìn)行發(fā)布;10表示對發(fā)布內(nèi)容的更新,11表示發(fā)布者取消發(fā)布。
[0076]PubMSGPosition (發(fā)布消息傳輸位置):4字節(jié),與功能模塊或中間節(jié)點對應(yīng),并對傳輸路徑緩存記錄。
[0077]Permission (權(quán)限):4字節(jié),分為發(fā)布者權(quán)限與發(fā)布內(nèi)容權(quán)限;發(fā)布者權(quán)限高地與發(fā)布內(nèi)容被訂閱次數(shù)多少掛鉤,發(fā)布者權(quán)限高會在審核發(fā)布內(nèi)容時獲得快速通道,減少過程耗時并盡早發(fā)布;發(fā)布內(nèi)容權(quán)限指發(fā)布者對發(fā)布內(nèi)容可見性的限定:可以設(shè)定為只有收費用戶甚至中、高級訂閱者才能訂閱,也可以設(shè)定為所有訂閱者可見。
[0078]PubTimestamp (發(fā)布時間戳):2字節(jié),用于記錄發(fā)布消息存在于系統(tǒng)的時間,并設(shè)定最長保存時長T2與之相比較,在T2間無任何響應(yīng)會刪除發(fā)布消息,發(fā)布者權(quán)限越高,T2的值越大。
[0079]3.1.2)發(fā)布消息體
[0080]PubContent (發(fā)布內(nèi)容):發(fā)布者的發(fā)布內(nèi)容保存其中;
[0081]FeedbackMessage (反饋信息):由訂閱情況和系統(tǒng)返回的錯誤提醒組成;訂閱情況指訂閱者對于發(fā)布內(nèi)容的訂閱次數(shù)以及后續(xù)要求;錯誤提醒包括了發(fā)布內(nèi)容未通過和系統(tǒng)/網(wǎng)絡(luò)出錯,反饋給發(fā)布者相關(guān)信息及處理方法。
[0082]3.2)作為優(yōu)化方案,發(fā)布中間件流程如圖4所示:
[0083]步驟一:發(fā)布者在發(fā)布注冊管理器進(jìn)行注冊;
[0084]步驟二:發(fā)布者在發(fā)布客戶端進(jìn)行事件或者主題的發(fā)布;
[0085]步驟三:發(fā)布的內(nèi)容通過發(fā)布管理器傳送到數(shù)據(jù)庫;
[0086]步驟四:數(shù)據(jù)庫存儲發(fā)布內(nèi)容。
[0087]作為優(yōu)化方案,發(fā)布者注冊管理器首先提供發(fā)布者進(jìn)行注冊。注冊后可以進(jìn)行存儲、檢索、查找REST服務(wù)接口以及注銷服務(wù),還接受來自訂閱客戶端的查詢;發(fā)布客戶端是發(fā)布者的開發(fā)并傳送結(jié)果的平臺:不僅包括了電腦操作系統(tǒng)如Windows、Linux、MacOS,還包括了各類android軟件平臺、APPStore以及運營商的自建平臺;發(fā)布管理器存儲發(fā)布內(nèi)容并轉(zhuǎn)化為與數(shù)據(jù)庫相容的格式,還提供了 REST發(fā)布服務(wù)接口用以管理來自發(fā)布客戶端的通知發(fā)布請求信息;傳送過程中系統(tǒng)會對發(fā)布內(nèi)容與已發(fā)布的內(nèi)容進(jìn)行比較,刪除重復(fù)或者無用的內(nèi)容,保存有價值的發(fā)布內(nèi)容等待訂閱條件的匹配。數(shù)據(jù)庫中還記錄發(fā)布內(nèi)容存在于系統(tǒng)的時間,并設(shè)定最長保存時長T3,在T3間無任何訂閱情況會刪除此條發(fā)布內(nèi)容,發(fā)布者權(quán)限越高,T3的值越大。
[0088]3.3)本發(fā)明實施例的中間件中節(jié)點間消息傳遞機(jī)制,如圖3所示,其特征在于:
[0089]作為優(yōu)化方案,本發(fā)明采用了 RESTful標(biāo)識類型對每一個節(jié)點的位置進(jìn)行標(biāo)識。
[0090]作為優(yōu)化方案,節(jié)點的位置信息由RESTful標(biāo)識進(jìn)行統(tǒng)一編碼。
[0091]作為優(yōu)化方案,節(jié)點位于每個功能模塊中間,幫助消息在其中相互傳遞;相比于SOAP中節(jié)點只能單向傳輸,REST中的節(jié)點能夠達(dá)到雙向傳輸:可以從上一級接收消息發(fā)送到下一級,也可以從下一級接收消息返回上一級,減少節(jié)點數(shù)量,簡化系統(tǒng)。[0092]進(jìn)一步,由于傳輸載體不同,節(jié)點中位置信息的還應(yīng)該包含有各類REST傳輸網(wǎng)絡(luò)協(xié)議以配合節(jié)點間的傳輸,若需要進(jìn)行保密或者防止惡意軟件增加系統(tǒng)負(fù)荷,可以添加驗證碼等附加信息。
[0093]進(jìn)一步,節(jié)點是消息傳遞機(jī)制中的最小邏輯組成,它的內(nèi)部環(huán)境以及構(gòu)成與外部環(huán)境甚至其他節(jié)點都沒有必然聯(lián)系,每個節(jié)點相互獨立。
[0094]進(jìn)一步,消息傳遞時,節(jié)點根據(jù)消息命令,進(jìn)行一個或者多個節(jié)點間傳遞。
[0095]作為優(yōu)化方案,節(jié)點由三個部分組成:接收器、傳輸系統(tǒng)、發(fā)送器。
[0096]進(jìn)一步,消息傳遞機(jī)制的特征在于,包括以下三個步驟:步驟一:接受器在收到命令消息時,判斷需要使用的節(jié)點,將用戶需求信息(訂閱條件)發(fā)送給對應(yīng)一個或者都過節(jié)點的傳輸系統(tǒng);步驟二:傳輸系統(tǒng)經(jīng)過一定的處理傳送到發(fā)送器;步驟三:發(fā)送器根據(jù)輸出命令信息將用戶需求信息發(fā)送到目的節(jié)點。
[0097]進(jìn)一步,需要注意的是,信息轉(zhuǎn)發(fā)過后在一定的時間范圍內(nèi)會緩存在節(jié)點中,如果其他節(jié)點收到命令轉(zhuǎn)發(fā)相同信息,就會被舍棄,從以前的節(jié)點開始轉(zhuǎn)發(fā),這樣可以避免不必要的轉(zhuǎn)發(fā)。
[0098]4)發(fā)布/訂閱中間件容錯機(jī)制
[0099]作為優(yōu)化方案,發(fā)布/訂閱中間件容錯機(jī)制由三個方面組成:硬件容錯機(jī)制、軟件容錯機(jī)制及傳輸容錯機(jī)制。
[0100]4.1)硬件容錯機(jī)制:狀態(tài)評估系統(tǒng)對于硬件檢測有較好的效果。其特征在于:中間件在使用時并不只是處于被動(靜態(tài))模式,一旦一些較為復(fù)雜的軟件或者過多的軟件在其中運行時可能會出現(xiàn)硬件故障。當(dāng)出現(xiàn)這種情況,就立即進(jìn)行收集并評估狀態(tài)反饋給管理人員。同時系統(tǒng)會根據(jù)當(dāng)時使用情況調(diào)用備用服務(wù)器或者流量控制,保證系統(tǒng)正常運行。
[0101]作為優(yōu)化方案,狀態(tài)評估系統(tǒng)在C/S模式下通過心跳機(jī)制實現(xiàn),步驟如下:
[0102]步驟一:將服務(wù)端駐留在各類硬件中,收集工作狀態(tài),存儲在心跳信號中;
[0103]步驟二:根據(jù)服務(wù)器繁忙或空閑狀態(tài),設(shè)定較長或較短的間隔時間,將心跳信號通過節(jié)點發(fā)送到管理人員的客戶端;
[0104]步驟三:如果在一定時間內(nèi)沒有收到心跳信號,表示硬件已經(jīng)出現(xiàn)問題(斷線或損壞),管理人員應(yīng)立即進(jìn)行檢查修復(fù),并且修復(fù)完成后保證心跳信號恢復(fù)運行。
[0105]4.2)軟件容錯機(jī)制:日志系統(tǒng)適于用軟件錯誤機(jī)制。其特征在于:軟件運行日志主要用于開發(fā)調(diào)試階段和軟件交付使用階段提供快速跟蹤、定位錯誤位置的工具,為調(diào)試、排故提供了有效手段。日志系統(tǒng)中的信息包括了進(jìn)入退出信息、軟件運行狀態(tài)、其它重要信息(例如,本節(jié)點發(fā)布、訂閱的主題名,訂閱方的IP、端口等)以及錯誤信息;通過設(shè)定信息輸出的級別控制來決定要輸出的信息種類與數(shù)量:A所有信息、B軟件運行狀態(tài)狀態(tài)及錯誤信息、C錯誤信息;軟件出現(xiàn)錯誤時根據(jù)歷史記錄傳送最少的信息到控制臺進(jìn)行解決,如果沒有出現(xiàn)過的錯誤按照C — B — A的順序進(jìn)行信息傳輸,信息越少傳輸速度越快,有利于問題快速解決。
[0106]4.3)傳輸容錯機(jī)制:在大多數(shù)情況下,只有經(jīng)過必要的中間節(jié)點進(jìn)行處理后,發(fā)送信息才能夠到達(dá)指定位置。傳送過程中如果出現(xiàn)了錯誤,就不能夠傳送到目標(biāo)位置時。如圖3所示,解決方案:選擇把消息先傳送到后備處理節(jié)點,或暫存到規(guī)定的緩存隊列中,等待繼續(xù)傳送的命令消息。情況I)判斷出是錯誤信息就直接丟棄;情況2)需要繼續(xù)傳送,就選擇最短的一條鏈路。如果必須經(jīng)過某些節(jié)點,就進(jìn)行多次選擇。
[0107]最后說明的是,以上優(yōu)選實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管通過上述優(yōu)選實施例已經(jīng)對本發(fā)明進(jìn)行了詳細(xì)的描述,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以在形式上和細(xì)節(jié)上對其作出各種各樣的改變,而不偏離本發(fā)明權(quán)利要求書所限定的范圍。
【權(quán)利要求】
1.一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,其特征在于:包括以下幾個組成部分:發(fā)布/訂閱中間件基礎(chǔ)模型;訂閱中間件中的消息格式、流程和訂閱條件過濾器;發(fā)布中間件中的消息格式、流程和節(jié)點間消息傳遞機(jī)制;用于處理發(fā)布/訂閱中間件錯誤信息的的容錯機(jī)制。
2.根據(jù)權(quán)利要求1所述的一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,其特征在于:所述基礎(chǔ)模型由以下幾個部分組成:1)發(fā)布/訂閱中間件模型中的成員;2)發(fā)布/訂閱中間件模型的主要活動角色;3)發(fā)布/訂閱中間件模型管理單元; 所述模型中的成員主要是事件主題,事件主題可以由參與者中的發(fā)布者進(jìn)行發(fā)布,也可以能由參與者中的訂閱者提出; 所述模型的主要活動角色是發(fā)布者與訂閱者,兩者的關(guān)系是相對于事件主題而言的,發(fā)布者和訂閱者的注冊方式通過泛在網(wǎng)統(tǒng)一的標(biāo)識方式進(jìn)行規(guī)范化管理; 所述中間件模型管理單元,包含了主要的通信特征,并封裝了 REST傳輸協(xié)議、REST消息編碼、REST通信模式、可靠性、安全性、事務(wù)管理及互操作性等主要元素,定義各類REST傳輸協(xié)議的抽象接口,包括回調(diào)接口和服務(wù)綁定。
3.根據(jù)權(quán)利要求1所述的一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,其特征在于:所述訂閱中間件中的消息格式由以下幾個部分構(gòu)成:訂閱中間件消息類型、訂閱ID、訂閱命令、訂閱消息傳輸位置、訂閱消息優(yōu)先級、訂閱時間戳和反饋消息; 所述訂閱ID指與訂閱者一一對應(yīng);訂閱中間件消息類型包括了訂閱客戶端中登錄、注冊、注銷消息以及系統(tǒng)中的訂閱和響應(yīng)消息;訂閱命令指判斷是否發(fā)送訂閱條件以及訂閱者對訂閱條件的更新、取 消;訂閱消息傳輸位置與功能模塊或中間節(jié)點對應(yīng),并對傳輸路徑緩存記錄;訂閱消息優(yōu)先級是指在超出服務(wù)器負(fù)載情況下,消息傳遞需要有先后順序;訂閱時間戳用于記錄訂閱消息存在于系統(tǒng)的時間,時間過長會被刪除;反饋消息由匹配到的發(fā)布內(nèi)容和系統(tǒng)返回的錯誤提醒組成,錯誤提醒包括了訂閱條件出錯和系統(tǒng)/網(wǎng)絡(luò)出錯。
4.根據(jù)權(quán)利要求1所述的一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,其特征在于:所述訂閱中間件流程,通過以下四個步驟進(jìn)行:步驟一:訂閱者進(jìn)行注冊,由此進(jìn)入訂閱客戶端;步驟二:用戶在客戶端中提出訂閱條件并發(fā)送給訂閱管理器;步驟三:訂閱管理器將訂閱條件發(fā)送到數(shù)據(jù)庫,在其中匹配訂閱條件;步驟四:數(shù)據(jù)庫在匹配過后將結(jié)果經(jīng)由訂閱管理器傳送到訂閱客戶端; 訂閱客戶端是指用戶查找訂閱信息時的操作平臺;訂閱管理器的功能是存儲和檢索訂閱條件,將訂閱條件轉(zhuǎn)化為與數(shù)據(jù)庫相容的REST數(shù)據(jù),并提供REST服務(wù)接口進(jìn)行訂閱或退訂服務(wù);數(shù)據(jù)庫中包含有訂閱條件過濾器,用以提高匹配效率。
5.根據(jù)權(quán)利要求4所述的一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,其特征在于:所述訂閱條件過濾器用于對經(jīng)泛在網(wǎng)統(tǒng)一的標(biāo)識方式標(biāo)識后的主題進(jìn)行篩選;所述訂閱條件過濾器的主要功能為匹配訂閱條件,篩選時就訂閱條件進(jìn)行拆分,區(qū)分訂閱條件中名詞與名詞之間的重要性程度,以更重要的名詞作為條件進(jìn)行篩選,篩選結(jié)果排在次要名詞篩選的結(jié)果之前,或者建立多級過濾器,由訂閱者自行選擇,進(jìn)一步減少篩選次數(shù); 所述的訂閱條件過濾器在具體設(shè)計時還應(yīng)考慮篩選時間、篩選空間以及事件數(shù)據(jù)本身的更新,篩選時間就是訂閱者在輸入訂閱條件以后得到結(jié)果的時間,空間是指數(shù)據(jù)存儲的空間,事件數(shù)據(jù)更新就是指發(fā)布者新發(fā)布的數(shù)據(jù)和訂閱者增加或者取消的訂閱。
6.根據(jù)權(quán)利要求1所述的一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,其特征在于:所述發(fā)布中間件消息格式采用REST風(fēng)格,由發(fā)布消息頭和發(fā)布消息體構(gòu)成;其中發(fā)布消息頭包括了發(fā)布ID、發(fā)布中間件消息類型、發(fā)布命令、發(fā)布消息傳輸位置、權(quán)限和發(fā)布時間戳;發(fā)布消息體包括了發(fā)布內(nèi)容和反饋信息; 發(fā)布ID指與發(fā)布 者一一對應(yīng);發(fā)布中間件消息類型包括了發(fā)布客戶端中登錄、注冊、注銷消息、系統(tǒng)中的發(fā)布、響應(yīng)消息以及發(fā)布者控制和發(fā)布內(nèi)容是否為公共信息;發(fā)布命令指判斷是否發(fā)送發(fā)布內(nèi)容以及發(fā)布者對發(fā)布內(nèi)容的更新、取消;發(fā)布消息傳輸位置與功能模塊或中間節(jié)點對應(yīng),并對傳輸路徑緩存記錄;權(quán)限是指在分為發(fā)布者權(quán)限與發(fā)布內(nèi)容權(quán)限;發(fā)布者權(quán)限高低與發(fā)布內(nèi)容被訂閱次數(shù)多少掛鉤,發(fā)布內(nèi)容權(quán)限指發(fā)布者對發(fā)布內(nèi)容可見性的限定;發(fā)布時間戳用于記錄發(fā)布消息存在于系統(tǒng)的時間,時間過長會被刪除;反饋消息由訂閱情況和系統(tǒng)返回的錯誤提醒組成,訂閱情況指訂閱者對于發(fā)布內(nèi)容的訂閱次數(shù)以及后續(xù)要求,錯誤提醒包括了發(fā)布內(nèi)容出錯和系統(tǒng)/網(wǎng)絡(luò)出錯。
7.根據(jù)權(quán)利要求1所述的一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,其特征在于:所述發(fā)布中間件流程包括以下四個步驟:步驟一:發(fā)布者在發(fā)布注冊管理器進(jìn)行注冊;步驟二:發(fā)布者在發(fā)布客戶端進(jìn)行事件或者主題的發(fā)布;步驟三:發(fā)布的內(nèi)容通過發(fā)布管理器傳送到數(shù)據(jù)庫;步驟四:數(shù)據(jù)庫存儲發(fā)布內(nèi)容; 所述發(fā)布注冊管理器首先提供發(fā)布者進(jìn)行注冊;發(fā)布客戶端是發(fā)布者的開發(fā)并傳送結(jié)果的平臺,發(fā)布管理器存儲發(fā)布內(nèi)容并轉(zhuǎn)化為與數(shù)據(jù)庫相容的格式,提供REST發(fā)布服務(wù)接口用以管理來自發(fā)布客戶端的通知發(fā)布請求信息;數(shù)據(jù)庫保存有價值的發(fā)布內(nèi)容等待訂閱條件的匹配。
8.根據(jù)權(quán)利要求1所述的一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,其特征在于:所述的基于RESTful的泛在網(wǎng)發(fā)布/訂閱中間件消息傳遞機(jī)制,采用RESTful標(biāo)識類型對每一個節(jié)點的位置進(jìn)行標(biāo)識;并包含有各類REST傳輸網(wǎng)絡(luò)協(xié)議,并可以添加驗證碼保證安全性;節(jié)點位于每個功能模塊中間,幫助消息在其中相互傳遞; 所述發(fā)布/訂閱中間件消息傳遞機(jī)制中的節(jié)點是消息傳遞機(jī)制中的最小邏輯組成,且每個節(jié)點相互獨立,消息傳遞時,節(jié)點根據(jù)消息命令,進(jìn)行一個或者多個節(jié)點間傳遞; 所述節(jié)點由三個部分組成:接收器、傳輸系統(tǒng)、發(fā)送器;接收器接收命令消息并將訂閱信息發(fā)送給傳輸系統(tǒng);傳輸系統(tǒng)通過命令消息進(jìn)行判斷如何進(jìn)行下一步傳送,并將命令消息發(fā)送給接收器。
9.根據(jù)權(quán)利要求1所述的一種基于RESTful的泛在網(wǎng)發(fā)布訂閱中間件模型,其特征在于:所述的泛在網(wǎng)發(fā)布/訂閱中間件容錯機(jī)制由三個方面組成:硬件容錯機(jī)制、軟件容錯機(jī)制及傳輸容錯機(jī)制; 所述的硬件容錯機(jī)制采用狀態(tài)評估系統(tǒng),中間件在運行時可能會出現(xiàn)硬件故障,通過在C/S模式下運用心跳信號機(jī)制實現(xiàn)對系統(tǒng)的維護(hù); 所述的軟件容錯機(jī)制采用日志系統(tǒng),軟件運行日志主要用于開發(fā)調(diào)試階段和軟件交付使用階段提供快速跟蹤、定位錯誤位置的工具,為調(diào)試、排故提供了有效手段,通過將日志信息分級,出現(xiàn)錯誤時從最低級信息開始發(fā)送給管理人員,不能解決就傳送較高的信息,實現(xiàn)快速解決問題; 所述的傳輸容錯機(jī)制,傳送過程中如果出現(xiàn)了異常,判斷出是錯誤信息就直接丟棄,判斷出需要繼續(xù)傳送, 就選擇最短的一條鏈路,如果必須經(jīng)過某些節(jié)點,就進(jìn)行多次選擇。
【文檔編號】H04L29/08GK103944924SQ201410205763
【公開日】2014年7月23日 申請日期:2014年5月15日 優(yōu)先權(quán)日:2014年5月15日
【發(fā)明者】張鵬, 程方, 蔣明浪, 盧毓岑, 朱建虎, 史濤, 張瑞 申請人:重慶郵電大學(xué)