国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種M2M環(huán)境下的語義流處理方法及裝置與流程

      文檔序號:12597363閱讀:295來源:國知局
      一種M2M環(huán)境下的語義流處理方法及裝置與流程

      本發(fā)明涉及大數(shù)據(jù)處理領(lǐng)域,特別涉及一種M2M環(huán)境下的語義流處理方法及裝置。



      背景技術(shù):

      物聯(lián)網(wǎng),即M2M(Machine-To-Machine,機器對機器)環(huán)境下,包括多種不同的設(shè)備,例如各式各樣的感知設(shè)備,如RFID(Radio Frequency Identification,射頻識別)設(shè)備、各種傳感器設(shè)備、智能手機、智能家居、穿戴式設(shè)備,等等。

      不同的設(shè)備功能各異,所對應(yīng)的數(shù)據(jù)格式和數(shù)據(jù)標準等都不盡相同,并且,不同設(shè)備所提供的數(shù)據(jù)的相關(guān)接口、格式、協(xié)議等大部分是自定義的,缺乏統(tǒng)一的標準,這使得在物聯(lián)網(wǎng)中,大量的資源和數(shù)據(jù)無法共享,從而無法得到充分的利用,這將重蹈以往“信息孤島”的覆轍,是實現(xiàn)真正的“物物相連”的物聯(lián)網(wǎng)的巨大障礙。因此,如何較為有效地處理物聯(lián)網(wǎng)設(shè)備在數(shù)據(jù)方面的異構(gòu)性,也成為一個亟需解決的問題。



      技術(shù)實現(xiàn)要素:

      本發(fā)明實施例提供一種M2M環(huán)境下的語義流處理方法及裝置,用于解決物聯(lián)網(wǎng)中資源和數(shù)據(jù)無法共享的技術(shù)問題。

      第一方面,提供一種M2M環(huán)境下的語義流處理方法,包括:

      接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句;所述至少一個普通語義流數(shù)據(jù)中的每個普通語義流數(shù)據(jù)均對應(yīng)于預(yù)設(shè)語義,所述語義流查詢語句中攜帶查詢請求,所述查詢請求用于查詢所述至少一個普通語義流數(shù)據(jù)所攜帶的信息;

      對所述語義流查詢語句進行解析,并根據(jù)解析的結(jié)果生成查詢窗口;

      在所述查詢窗口中,根據(jù)所述查詢請求,針對所述至少一個普通語義流數(shù)據(jù)進行查詢。

      結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,接收至少一個普通語義流數(shù)據(jù),包括:

      接收一個或多個終端設(shè)備發(fā)送的所述至少一個普通語義流數(shù)據(jù);或

      接收一個或多個終端設(shè)備發(fā)送的至少一個普通數(shù)據(jù);按照所述預(yù)設(shè)語義對所述至少一個普通數(shù)據(jù)進行語義標注,得到所述至少一個普通語義流數(shù)據(jù)。

      結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,對所述語義流查詢語句進行解析,并根據(jù)解析的結(jié)果生成查詢窗口,包括:

      對所述語義流查詢語句進行解析,并根據(jù)解析得到的窗口參數(shù)生成所述查詢窗口。

      結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式或第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,

      在接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句之后,還包括:

      將所述至少一個普通語義流數(shù)據(jù)分別進行離散化,得到至少一個離散語義流數(shù)據(jù);

      在所述查詢窗口中,根據(jù)所述查詢請求,針對所述至少一個普通語義流數(shù)據(jù)進行查詢,包括:

      在所述查詢窗口中,根據(jù)所述查詢請求,針對所述至少一個離散語義流數(shù)據(jù)進行查詢。

      結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,在得到至少一個離散語義流數(shù)據(jù)之后,還包括:

      將所述語義流查詢語句所對應(yīng)的M個離散語義流數(shù)據(jù)合并為第一離散語 義流數(shù)據(jù);所述M個離散語義流數(shù)據(jù)為所述至少一個離散語義流數(shù)據(jù)的子集。

      結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式至第四種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,在針對所述至少一個普通語義流數(shù)據(jù)進行查詢之后,還包括:

      輸出查詢結(jié)果語義流數(shù)據(jù),所述查詢結(jié)果語義流數(shù)據(jù)承載查詢結(jié)果。

      結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式至第五種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,所述方法還包括:

      確定第一節(jié)點設(shè)備傳輸?shù)牡谝粩?shù)據(jù)有誤;所述第一節(jié)點設(shè)備為Spark集群中的任一設(shè)備;

      向所述第一節(jié)點設(shè)備發(fā)送第一故障通知消息,所述第一故障通知消息用于通知所述第一節(jié)點設(shè)備,所述第一數(shù)據(jù)有誤。

      結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第一方面的第七種可能的實現(xiàn)方式中,所述方法還包括:

      在基礎(chǔ)設(shè)施節(jié)點發(fā)生故障時,接收至少一個節(jié)點設(shè)備發(fā)送的第二故障通知消息,并根據(jù)所述第二故障通知消息確定傳輸給所述至少一個節(jié)點設(shè)備的至少一個第二數(shù)據(jù)有誤;

      根據(jù)RDD對應(yīng)的世系圖,重新獲取至少一個第二數(shù)據(jù);

      將所述重新獲取的至少一個第二數(shù)據(jù)分別發(fā)送給所述至少一個節(jié)點設(shè)備。

      第二方面,提供一種M2M環(huán)境下的語義流處理裝置,所述裝置位于Spark集群中的基礎(chǔ)設(shè)施節(jié)點中;所述裝置包括:

      接收模塊,用于接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句;所述至少一個普通語義流數(shù)據(jù)中的每個普通語義流數(shù)據(jù)均對應(yīng)于預(yù)設(shè)語義,所述語義流查詢語句中攜帶查詢請求,所述查詢請求用于查詢所述至少一個普通語義流數(shù)據(jù)所攜帶的信息;

      生成模塊,用于對所述語義流查詢語句進行解析,并根據(jù)解析的結(jié)果生成查詢窗口;

      查詢模塊,用于在所述查詢窗口中,根據(jù)所述查詢請求,針對所述至少一個普通語義流數(shù)據(jù)進行查詢。

      結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述接收模塊用于:

      接收一個或多個終端設(shè)備發(fā)送的所述至少一個普通語義流數(shù)據(jù);或

      接收一個或多個終端設(shè)備發(fā)送的至少一個普通數(shù)據(jù);按照所述預(yù)設(shè)語義對所述至少一個普通數(shù)據(jù)進行語義標注,得到所述至少一個普通語義流數(shù)據(jù)。

      結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,所述生成模塊用于:

      對所述語義流查詢語句進行解析,并根據(jù)解析得到的窗口參數(shù)生成所述查詢窗口。

      結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式或第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述裝置還包括離散化模塊;

      所述離散化模塊用于:在所述接收模塊接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句之后,將所述至少一個普通語義流數(shù)據(jù)分別進行離散化,得到至少一個離散語義流數(shù)據(jù);

      所述查詢模塊用于:在所述查詢窗口中,根據(jù)所述查詢請求,針對所述至少一個離散語義流數(shù)據(jù)進行查詢。

      結(jié)合第二方面的第三種可能的實現(xiàn)方式,在第二方面的第四種可能的實現(xiàn)方式中,所述裝置還包括合并模塊,用于:

      在所述離散化模塊得到至少一個離散語義流數(shù)據(jù)之后,將所述語義流查詢語句所對應(yīng)的M個離散語義流數(shù)據(jù)合并為第一離散語義流數(shù)據(jù);所述M個離散語義流數(shù)據(jù)為所述至少一個離散語義流數(shù)據(jù)的子集。

      結(jié)合第二方面的第一種可能的實現(xiàn)方式至第四種可能的實現(xiàn)方式中的任 一種可能的實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,所述裝置還包括輸出模塊,用于:

      在所述查詢模塊針對所述至少一個普通語義流數(shù)據(jù)進行查詢之后,輸出查詢結(jié)果語義流數(shù)據(jù),所述查詢結(jié)果語義流數(shù)據(jù)承載查詢結(jié)果。

      結(jié)合第二方面的第一種可能的實現(xiàn)方式至第五種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,所述裝置還包括確定模塊和發(fā)送模塊;

      所述確定模塊,用于確定第一節(jié)點設(shè)備傳輸?shù)牡谝粩?shù)據(jù)有誤;所述第一節(jié)點設(shè)備為所述Spark集群中的任一設(shè)備;

      所述發(fā)送模塊,用于向所述第一節(jié)點設(shè)備發(fā)送第一故障通知消息,所述第一故障通知消息用于通知所述第一節(jié)點設(shè)備,所述第一數(shù)據(jù)有誤。

      結(jié)合第二方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第二方面的第七種可能的實現(xiàn)方式中,所述裝置還包括獲取模塊和發(fā)送模塊;

      所述接收模塊還用于:在所述基礎(chǔ)設(shè)施節(jié)點發(fā)生故障時,接收至少一個節(jié)點設(shè)備發(fā)送的第二故障通知消息,并根據(jù)所述第二故障通知消息確定傳輸給所述至少一個節(jié)點設(shè)備的至少一個第二數(shù)據(jù)有誤;

      所述獲取模塊用于:根據(jù)RDD對應(yīng)的世系圖,重新獲取至少一個第二數(shù)據(jù);

      所述發(fā)送模塊用于:將所述重新獲取的至少一個第二數(shù)據(jù)分別發(fā)送給所述至少一個節(jié)點設(shè)備。

      第三方面,提供一種M2M環(huán)境下的語義流處理裝置,所述裝置位于Spark集群中的基礎(chǔ)設(shè)施節(jié)點中;所述裝置包括:

      存儲器,用于存儲指令;

      接收器,用于接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句;所述至少一個普通語義流數(shù)據(jù)中的每個普通語義流數(shù)據(jù)均對應(yīng)于預(yù)設(shè)語義,所 述語義流查詢語句中攜帶查詢請求,所述查詢請求用于查詢所述至少一個普通語義流數(shù)據(jù)所攜帶的信息;

      處理器,用于執(zhí)行所述指令,對所述語義流查詢語句進行解析,并根據(jù)解析的結(jié)果生成查詢窗口;在所述查詢窗口中,根據(jù)所述查詢請求,針對所述至少一個普通語義流數(shù)據(jù)進行查詢。

      結(jié)合第三方面,在第三方面的第一種可能的實現(xiàn)方式中,

      所述接收器用于:接收一個或多個終端設(shè)備發(fā)送的所述至少一個普通語義流數(shù)據(jù);或

      所述接收器用于:接收一個或多個終端設(shè)備發(fā)送的至少一個普通數(shù)據(jù);所述處理器用于:按照所述預(yù)設(shè)語義對所述至少一個普通數(shù)據(jù)進行語義標注,得到所述至少一個普通語義流數(shù)據(jù)。

      結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式,在第三方面的第二種可能的實現(xiàn)方式中,所述處理器用于:

      對所述語義流查詢語句進行解析,并根據(jù)解析得到的窗口參數(shù)生成所述查詢窗口。

      結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式或第二種可能的實現(xiàn)方式,在第三方面的第三種可能的實現(xiàn)方式中,所述處理器還用于:

      在所述接收器接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句之后,將所述至少一個普通語義流數(shù)據(jù)分別進行離散化,得到至少一個離散語義流數(shù)據(jù);

      在所述查詢窗口中,根據(jù)所述查詢請求,針對所述至少一個離散語義流數(shù)據(jù)進行查詢。

      結(jié)合第三方面的第三種可能的實現(xiàn)方式,在第三方面的第四種可能的實現(xiàn)方式中,所述處理器還用于:

      在得到至少一個離散語義流數(shù)據(jù)之后,將所述語義流查詢語句所對應(yīng)的M個離散語義流數(shù)據(jù)合并為第一離散語義流數(shù)據(jù);所述M個離散語義流數(shù)據(jù)為 所述至少一個離散語義流數(shù)據(jù)的子集。

      結(jié)合第三方面的第一種可能的實現(xiàn)方式至第四種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第三方面的第五種可能的實現(xiàn)方式中,所述裝置還包括發(fā)送器;

      所述發(fā)送器用于:在所述處理器針對所述至少一個普通語義流數(shù)據(jù)進行查詢之后,輸出查詢結(jié)果語義流數(shù)據(jù),所述查詢結(jié)果語義流數(shù)據(jù)承載查詢結(jié)果。

      結(jié)合第三方面的第一種可能的實現(xiàn)方式至第五種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第三方面的第六種可能的實現(xiàn)方式中,

      所述處理器還用于:確定第一節(jié)點設(shè)備傳輸?shù)牡谝粩?shù)據(jù)有誤;所述第一節(jié)點設(shè)備為Spark集群中的任一設(shè)備;

      所述發(fā)送器還用于:向所述第一節(jié)點設(shè)備發(fā)送第一故障通知消息,所述第一故障通知消息用于通知所述第一節(jié)點設(shè)備,所述第一數(shù)據(jù)有誤。

      結(jié)合第三方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第三方面的第七種可能的實現(xiàn)方式中,

      所述接收器還用于:在所述基礎(chǔ)設(shè)施節(jié)點發(fā)生故障時,接收至少一個節(jié)點設(shè)備發(fā)送的第二故障通知消息,并根據(jù)所述第二故障通知消息確定傳輸給所述至少一個節(jié)點設(shè)備的至少一個第二數(shù)據(jù)有誤;

      所述處理器還用于:根據(jù)RDD對應(yīng)的世系圖,重新獲取至少一個第二數(shù)據(jù);

      所述發(fā)送器還用于:將所述重新獲取的至少一個第二數(shù)據(jù)分別發(fā)送給所述至少一個節(jié)點設(shè)備。

      第四方面,提供一種基礎(chǔ)設(shè)施節(jié)點,包括如前任一方面所述的M2M環(huán)境下的語義流處理裝置。

      本發(fā)明實施例提供了一種預(yù)設(shè)語義,從而可以將各設(shè)備的數(shù)據(jù)按照該預(yù)設(shè)語義進行轉(zhuǎn)換,例如接收的至少一個普通語義流數(shù)據(jù)來自于多個設(shè)備,不同的設(shè)備對應(yīng)的數(shù)據(jù)結(jié)構(gòu)、格式等不同,但是按照本發(fā)明中的方式,可以將來自不 同終端設(shè)備的不同格式的數(shù)據(jù)先按照預(yù)設(shè)語義,標注為具有同一語義結(jié)構(gòu)的語義流數(shù)據(jù),從而可以對不同設(shè)備的數(shù)據(jù)進行處理,使得大量的資源和數(shù)據(jù)能夠有效實現(xiàn)共享,從而得到充分的利用,提高了資源利用率,也給物聯(lián)網(wǎng)的真正實現(xiàn)提供了解決方案。

      另外,實時性是物聯(lián)網(wǎng)領(lǐng)域應(yīng)用的一個重要需求,包括交通導(dǎo)航、打車應(yīng)用、智能停車、災(zāi)難檢測等都需要嚴格的實時性保證,對于這類實時性較強的數(shù)據(jù),其價值會隨著時間的流逝而減少,如果無法對其進行及時分析和響應(yīng),那么便很可能會錯過一個機會,或者遺漏一個潛在的威脅。本發(fā)明實施例中,將各設(shè)備的數(shù)據(jù)標注為流數(shù)據(jù)進行處理(例如標注為普通語義流數(shù)據(jù)),并且會通過窗口進行處理,從而提高了數(shù)據(jù)處理過程的實時性,盡量使每個實時性數(shù)據(jù)的價值都能夠得到體現(xiàn),避免資源浪費。

      附圖說明

      圖1為oneM2M定義的M2M功能架構(gòu);

      圖2為本發(fā)明實施例中M2M環(huán)境下的語義流處理方法的流程圖;

      圖3為本發(fā)明實施例中一個家庭場景下的M2M架構(gòu)示意圖;

      圖4為本發(fā)明實施例中基礎(chǔ)設(shè)施節(jié)點中包括的M2M環(huán)境下的語義流處理裝置的示意圖;

      圖5為本發(fā)明實施例中基于RDD對應(yīng)的世系圖的Dstream容錯機制示意圖;

      圖6為本發(fā)明實施例中M2M環(huán)境下的語義流處理裝置的結(jié)構(gòu)框圖;

      圖7為本發(fā)明實施例中M2M環(huán)境下的語義流處理裝置的結(jié)構(gòu)示意圖。

      具體實施方式

      為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中 的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

      本發(fā)明實施例的技術(shù)方案,基于oneM2M標準。oneM2M,旨在建立統(tǒng)一的業(yè)務(wù)層的M2M技術(shù)標準,其中包含M2M設(shè)備服務(wù)和數(shù)據(jù)的語義增強相關(guān)的技術(shù)標準。oneM2M標準組織的總體目標是創(chuàng)造M2M通信的業(yè)務(wù)層的開放標準,以促進建立一個集成各種設(shè)備和服務(wù)的未來網(wǎng)絡(luò),使M2M業(yè)務(wù)可互操作,也使得M2M應(yīng)用可以共享基礎(chǔ)業(yè)務(wù)并獨立于網(wǎng)絡(luò)實現(xiàn)。

      M2M可應(yīng)用在不同的行業(yè)中,例如醫(yī)療保健、運輸、能源、安全和監(jiān)控、家庭自動化與控制等。例如,在能源行業(yè)中,一個智能計量系統(tǒng)的設(shè)備部署方案,一些智能計量設(shè)備(如電表,燃氣表,水表)可以通過網(wǎng)關(guān)連接到數(shù)據(jù)中心,就構(gòu)成一個M2M。

      例如請參見圖1,為oneM2M定義的M2M功能架構(gòu)。本發(fā)明實施例中,將M2M中的設(shè)備稱為M2M設(shè)備。

      在圖1中,M2M包括兩個域,分別為Field Domain(場域)和Infrastructure Domain(基礎(chǔ)設(shè)施域)。

      Field Domain,由M2M終端設(shè)備、M2M網(wǎng)關(guān)、傳感與激勵(S&A)設(shè)備、M2M局域網(wǎng)絡(luò)等部分組成。

      Infrastructure Domain,由Application Infrastructure(應(yīng)用基礎(chǔ)設(shè)施)與M2M Service Infrastructure(服務(wù)基礎(chǔ)設(shè)施)組成。

      例如,局域網(wǎng)絡(luò)中可以包含NSE;網(wǎng)關(guān)可以包含NSE,也可能會包含AE和CSE;M2M終端設(shè)備、傳感與激勵設(shè)備可能包含AE和CSE,等等。

      M2M AE(Application Entity,應(yīng)用實體)與M2M CSE(Common Services Entity,普通服務(wù)實體)通過Mca參考點進行通信。在Filed Domain中的CSE與Infrastructure Domain的CSE通過Mcc參考點通信,對于所屬不同Service Provider(服務(wù)提供商)的Infrastructure node(基礎(chǔ)設(shè)施節(jié)點)上的CSE,可通過Mcc’參考點通信(圖1中未示出具體與哪些設(shè)備進行通信)。CSE與 NSE(Underlying Network Service Entity,基礎(chǔ)網(wǎng)絡(luò)服務(wù)實體)通過Mcn參考點進行通信。

      圖1架構(gòu)中,定義如下:

      AE:提供端到端的M2M解決方案的應(yīng)用邏輯。例如可以提供遠端血壓血糖監(jiān)控、遠端抄表等應(yīng)用邏輯。

      CSE:包含一組oneM2M規(guī)定的服務(wù)功能,該服務(wù)功能通過Mca參考點和Mcc參考點開放給其他實體。CSE提供的服務(wù)功能包括:Data Management(數(shù)據(jù)管理)、Device Management(設(shè)備管理)、M2M Subscription Management(物聯(lián)網(wǎng)訂閱管理)、Location Services(定位服務(wù))等。CSE提供的每個服務(wù)功能,在邏輯上可以理解為一個CSF(Common Service Function,普通服務(wù)功能)。在一個CSE中,有些CSF是必選的,有些CSF是可選的。在一個CSF內(nèi)又可以包括一個或多個子功能,同樣的,在一個CSF中,有些子功能是可選的,有些子功能是必選的。

      NSE:給CSE提供服務(wù)。其提供的服務(wù)可以包括:Device Management、location Services、Device Triggering(設(shè)備觸發(fā))等。

      Mca參考點:AE和CSE之間的接口,也稱為參考點。該參考點使AE能夠使用CSE提供的業(yè)務(wù)(即具有CSE提供的能力),并使CSE能夠反向與AE通信。CSE具體通過Mca參考點向AE提供哪些業(yè)務(wù)(即如前所述的服務(wù)功能),取決于CSE所支持的服務(wù)功能。另外,AE和CSE并不一定位于同一個實體設(shè)備上。

      Mcc參考點:CSE之間的通信接口,也稱為參考點。Mcc參考點使得一個CSE能使用另一個CSE所提供的服務(wù)功能,而這個服務(wù)功能可能是另一個CSE具有而該一個CSE不具有的,當然也可能是該一個CSE本身所具有的。兩個CSE之間的Mcc參考點需要被不同的M2M物理實體所支持。

      Mcn參考點:CSE與NSE之間的接口,也稱為參考點。使CSE能使用承載網(wǎng)絡(luò)提供給上層的業(yè)務(wù)。這里所述的業(yè)務(wù)不同于承載網(wǎng)絡(luò)的基礎(chǔ)的網(wǎng)絡(luò)業(yè)務(wù) (任何兩個M2M物理節(jié)點之間交換的信息都默認會使用傳輸和連接性的業(yè)務(wù),這些業(yè)務(wù)被看作是基礎(chǔ)的網(wǎng)絡(luò)業(yè)務(wù))。Mcn參考點的實例化取決于底層網(wǎng)絡(luò)提供的能力。

      目前M2M通信可以基于有線方式,無線方式包括蜂窩網(wǎng)和短距,其中3GPP蜂窩網(wǎng)是廣泛使用的一種方式。

      本發(fā)明實施例中的裝置可以構(gòu)建于具有高可擴展性的Spark(一種大數(shù)據(jù)分布式處理框架)集群計算平臺之上,利用其高效的實時流式處理框架Spark Streaming,將輸入的語義流建模為DStream(Discretized Stream,離散流),進而通過其滑動窗口原理來連續(xù)的計算單個時間間隔內(nèi)的結(jié)果,并對重復(fù)利用的中間結(jié)果或者背景知識庫進行緩存以支持高效的查詢和推理。

      另外,本文中術(shù)語“系統(tǒng)”和“網(wǎng)絡(luò)”在本文中常被可互換使用。本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,如無特殊說明,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。

      下面結(jié)合說明書附圖對本發(fā)明實施例作進一步詳細描述。

      請參見圖2,本發(fā)明實施例提供一種M2M環(huán)境下的語義流處理方法,所述方法的流程描述如下。

      步驟201:接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句;至少一個普通語義流數(shù)據(jù)中的每個普通語義流數(shù)據(jù)均對應(yīng)于預(yù)設(shè)語義,語義流查詢語句中攜帶查詢請求,查詢請求用于查詢至少一個普通語義流數(shù)據(jù)所攜帶的信息。

      例如請參考圖3,為一個家庭場景下的M2M架構(gòu),本發(fā)明實施例中的方法以該架構(gòu)為例,圖2流程的執(zhí)行主體可以是圖3中的基礎(chǔ)設(shè)施節(jié)點(Infrastructure Node,IN),即,圖2的各個步驟可以是由圖3中的基礎(chǔ)設(shè)施節(jié)點完成。

      圖3中以6個終端設(shè)備為例,分別為圖3中的終端設(shè)備1、終端設(shè)備2、終端設(shè)備3、終端設(shè)備4、終端設(shè)備5和終端設(shè)備6,這些終端設(shè)備,例如可以是手機、PAD(平板電腦)、傳感器、空氣凈化器、空調(diào)、智能電視、智能冰箱等等不同的設(shè)備。這些終端設(shè)備均通過Mcc參考點連接到基礎(chǔ)設(shè)施節(jié)點,另外,各終端設(shè)備也可以通過Mcc參考點連接,當然,各終端設(shè)備可視情況確定具體與哪些終端設(shè)備連接。其中,基礎(chǔ)設(shè)施節(jié)點屬于Infrastructure Domain,各終端設(shè)備屬于Field Domain。

      包括AE、物理實體在內(nèi)的所有節(jié)點,首先需要向本地的CSE注冊為抽象實體。在圖3架構(gòu)中,就是各個終端設(shè)備需要首先向基礎(chǔ)設(shè)施節(jié)點進行注冊。同時,通過語義引擎,所有節(jié)點向包含了設(shè)備和服務(wù)信息的基礎(chǔ)設(shè)施節(jié)點中的語義信息倉庫注冊抽象實體。

      例如,每個傳感器所對應(yīng)生成的數(shù)據(jù)通過相關(guān)的接口輸入oneM2M系統(tǒng)的基礎(chǔ)設(shè)施節(jié)點,在基礎(chǔ)設(shè)施節(jié)點內(nèi)部會被注冊為一個抽象實體,以供語義混聚之用。在本發(fā)明實施例的架構(gòu)中,各終端設(shè)備的數(shù)據(jù)實際輸入到了Spark集群,在Spark中,使用DStream來表示對數(shù)據(jù)流的高級抽象,因此本發(fā)明實施例中,將流入Spark集群的語義流數(shù)據(jù)也可稱為“Semantic-Dstream(離散語義流)”。在概念上,一個抽象實體與一個Semantic-DStream相對應(yīng)。

      基礎(chǔ)設(shè)施節(jié)點的CSE,即IN-CSE,由兩個主要的功能模塊構(gòu)成,一個功能模塊是語義信息倉庫,另一個功能模塊是語義引擎。其中,語義信息倉庫的功能是通過Spark集群實現(xiàn)的,利用Spark集群提供的面向DStream的多種操作接口,如map(映射)、filter(過濾)、union(聯(lián)合)、join(連接)、transform(變換)、及reduce(還原)等接口,可以方便地對語義流數(shù)據(jù)進行映射、過濾、取并、連接、聚集等操作,滿足語義混聚的需求。語義引擎負責解析來自IN-CSE外部的AE對某個資源的語義查詢請求,協(xié)調(diào)語義信息倉庫實施語義混聚,將語義混聚后的結(jié)果返回給相應(yīng)的AE。

      各個終端設(shè)備在注冊到基礎(chǔ)設(shè)施節(jié)點后(向基礎(chǔ)設(shè)施節(jié)點進行注冊),可 以實時將數(shù)據(jù)發(fā)送給基礎(chǔ)設(shè)施節(jié)點。例如,溫度傳感器在注冊到基礎(chǔ)設(shè)施節(jié)點后,可以實時將采集到的溫度值發(fā)送給基礎(chǔ)設(shè)施節(jié)點。

      可選的,本發(fā)明實施例中,接收至少一個普通語義流數(shù)據(jù),包括:

      接收一個或多個至少一個終端設(shè)備發(fā)送的至少一個普通語義流數(shù)據(jù);或

      接收一個或多個至少一個終端設(shè)備發(fā)送的至少一個普通數(shù)據(jù);按照預(yù)設(shè)語義對至少一個普通數(shù)據(jù)進行語義標注,得到至少一個普通語義流數(shù)據(jù)。

      本發(fā)明實施例中,各個終端設(shè)備所采用的數(shù)據(jù)結(jié)構(gòu)、語義等可能不同,因此涉及到要將各個不同語義的數(shù)據(jù)標注為具有同一語義的數(shù)據(jù)的問題。這個語義標注過程可以由基礎(chǔ)設(shè)施節(jié)點完成,或者也可以由各終端設(shè)備自己完成。

      例如,語義標注過程可以通過Proxies(一種代理程序)完成,那么該代理程序可以安裝在基礎(chǔ)設(shè)施節(jié)點中,或者也可以安裝在各個終端設(shè)備中。如果安裝在基礎(chǔ)設(shè)施節(jié)點中,那么各終端設(shè)備發(fā)送給基礎(chǔ)設(shè)施節(jié)點的數(shù)據(jù)(本發(fā)明實施例中將來自終端設(shè)備的、進行標注之前的數(shù)據(jù)稱為普通數(shù)據(jù))就可能具有不同的語義、數(shù)據(jù)結(jié)構(gòu)等,基礎(chǔ)設(shè)施節(jié)點接收到之后再分別通過代理程序進行語義標注,得到相應(yīng)的普通語義流數(shù)據(jù)。而如果該代理程序安裝在各個終端設(shè)備中,那么終端設(shè)備在要向基礎(chǔ)設(shè)施節(jié)點發(fā)送普通數(shù)據(jù)時,先通過代理程序?qū)ζ胀〝?shù)據(jù)進行標注,之后再將標注后得到的普通語義流數(shù)據(jù)發(fā)送給基礎(chǔ)設(shè)施節(jié)點,這樣,基礎(chǔ)設(shè)施節(jié)點接收到的就都是遵循同一語義的語義流數(shù)據(jù),無需再進行標注,直接可以進行處理。

      本發(fā)明實施例中,預(yù)設(shè)語義可以是指Spark集群所支持的語義,普通語義流數(shù)據(jù)可以是指RDF(Resource Description Framework,資源描述框架)。其中,Spark集群本身是不支持語義的,本發(fā)明實施例中在Spark集群上進行了二次開發(fā),令開發(fā)后的Spark集群支持語義。本領(lǐng)域技術(shù)人員知曉,本發(fā)明如果也可以構(gòu)建在其他平臺上,那么預(yù)設(shè)語義自然就是與相應(yīng)的新平臺所對應(yīng)的語義。例如,若將本發(fā)明構(gòu)建在JENA(一種框架)平臺上,則預(yù)設(shè)語義例如可以是OWL(Web Ontology Language,網(wǎng)絡(luò)本體語言),等等。

      本發(fā)明實施例中,若普通語義流數(shù)據(jù)是RDF,則語義流查詢語句可以是C-SPARQL(Simple Protocol and RDF Query Language,查詢語言和數(shù)據(jù)獲取協(xié)議)。C-SPARQL支持在RDF流上對查詢語句的注冊和連續(xù)執(zhí)行。

      C-SPARQL使用了不同類型的窗口。以窗口中所包含的三元組數(shù)目定義的是物理窗口,以窗口的時間間隔定義的是邏輯窗口為例。多次相同的查詢可以被注冊為一個query(查詢),C-SPARQL引擎會周期性的執(zhí)行這條查詢,每當這條查詢被執(zhí)行時,查詢結(jié)果就會被更新。查詢也可以被注冊為流的形式,這樣的輸出結(jié)果也是一個流,可作為其他查詢語句的輸入,或者也可以輸入到其他設(shè)備中。

      本發(fā)明實施例中,至少一個普通語義流數(shù)據(jù),可以來自一個或多個終端設(shè)備,其中,一個終端設(shè)備可以對應(yīng)一個普通語義流數(shù)據(jù),或者也可以對應(yīng)多個普通語義流數(shù)據(jù)。語義流查詢語句,可以來自一個AE,而AE可以位于不同的終端設(shè)備上。其中,一個終端設(shè)備可以包括一個AE,或者也可以包括多個AE,那么,一個終端設(shè)備可以只通過一個AE向基礎(chǔ)設(shè)施節(jié)點發(fā)送一個語義流查詢語句,或者可以通過一個AE向基礎(chǔ)設(shè)施節(jié)點發(fā)送多個語義流查詢語句,或者也可以通過多個AE向基礎(chǔ)設(shè)施節(jié)點分別發(fā)送多個語義流查詢語句。具有AE的終端設(shè)備,可以是向基礎(chǔ)設(shè)施節(jié)點發(fā)送普通語義流數(shù)據(jù)的其中一個終端設(shè)備,或者也可以是沒有向基礎(chǔ)設(shè)施節(jié)點發(fā)送普通語義流數(shù)據(jù)的終端設(shè)備,只要該終端設(shè)備是之前注冊到基礎(chǔ)設(shè)施節(jié)點的終端設(shè)備即可。

      本發(fā)明實施例中,普通語義流數(shù)據(jù)和語義流查詢語句所遵循的語義不同,所承載的信息也不同,例如,普通語義流數(shù)據(jù)承載的可能是描述信息,例如是傳感器所檢測到的某個參數(shù)的參數(shù)值,而語義流查詢語句承載的是查詢信息,或者也可以稱為查詢請求,查詢請求用于查詢相應(yīng)的信息,例如需要查詢當前室內(nèi)溫度。

      可選的,本發(fā)明實施例中,基礎(chǔ)設(shè)施節(jié)點接收至少一個普通語義流數(shù)據(jù),以及接收語義流查詢語句,這兩個接收過程可以按照任意順序完成,當然,間 隔的時間不能過長,因為本發(fā)明實施例中的架構(gòu)是實時性較強的架構(gòu),暫不支持查詢歷史數(shù)據(jù)。因此,如果在接收至少一個普通語義流數(shù)據(jù)之后再接收語義流查詢語句,而兩次接收過程的間隔較長,可能至少一個普通語義流數(shù)據(jù)已經(jīng)因為過時而被丟棄,這樣就無法完成查詢了。

      步驟202:對語義流查詢語句進行解析,并根據(jù)解析的結(jié)果生成查詢窗口。

      可選的,本發(fā)明實施例中,對語義流查詢語句進行解析,并根據(jù)解析的結(jié)果生成查詢窗口,包括:

      對語義流查詢語句進行解析,并根據(jù)解析得到的窗口參數(shù)生成查詢窗口。

      本發(fā)明實施例中,語義流查詢語句中不僅攜帶有查詢請求,還可以攜帶有窗口參數(shù),例如,窗口參數(shù)可以包括windowLength(窗口長度)、slidingInterval(窗口滑動間距)等參數(shù),基礎(chǔ)設(shè)施節(jié)點可以按照解析得到的窗口參數(shù)對應(yīng)的參數(shù)值在Spark集群中初始化窗口長度和窗口滑動間距,即生成相應(yīng)的窗口,本發(fā)明實施例中將該窗口稱為查詢窗口。

      步驟203:在查詢窗口中,根據(jù)查詢請求,針對至少一個普通語義流數(shù)據(jù)進行查詢。

      本發(fā)明實施例中,解析好的查詢請求被轉(zhuǎn)換成DStream上的一系列查詢操作,根據(jù)查詢窗口的特性,周期性地執(zhí)行這一系列查詢操作,并產(chǎn)生相應(yīng)的查詢結(jié)果。

      可選的,本發(fā)明實施例中,在接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句之后,還包括:

      將至少一個普通語義流數(shù)據(jù)分別進行離散化,得到至少一個離散語義流數(shù)據(jù);

      在查詢窗口中,根據(jù)查詢請求,針對至少一個普通語義流數(shù)據(jù)進行查詢,包括:

      在查詢窗口中,根據(jù)查詢請求,針對至少一個離散語義流數(shù)據(jù)進行查詢。

      因為Spark集群的底層是以批處理的形式來處理所有類型的數(shù)據(jù)的,包括 流式數(shù)據(jù)也是如此,因此,為了使待處理的流數(shù)據(jù)滿足Spark集群的底層的處理要求,需要將連續(xù)的語義流數(shù)據(jù)離散化,那么后面,查詢請求所針對的也就是離散后的語義流數(shù)據(jù),即離散語義流數(shù)據(jù),也即Semantic-Dstream。一個離散語義流數(shù)據(jù)的內(nèi)容是一串按一定時間跨度劃分的時間片批次,每個批次中包含在該時間段內(nèi)流入的RDF三元組。

      可選的,本發(fā)明實施例中,在得到至少一個離散語義流數(shù)據(jù)之后,還包括:

      將語義流查詢語句所對應(yīng)的M個離散語義流數(shù)據(jù)合并為第一離散語義流數(shù)據(jù);M個離散語義流數(shù)據(jù)為至少一個離散語義流數(shù)據(jù)的子集。

      依照語義流混聚需求,通過DStream上的union操作,將所需的若干條含有關(guān)聯(lián)語義信息的離散語義流數(shù)據(jù)并成一條關(guān)聯(lián)離散語義流數(shù)據(jù),本發(fā)明實施例中將其稱為第一離散語義流數(shù)據(jù)。沒有關(guān)聯(lián)需求(即不存在關(guān)聯(lián)語義信息)的離散語義流數(shù)據(jù)無需合并。

      普通語義流數(shù)據(jù)中可以攜帶語義標注信息,比如,不同的傳感器在某一時刻的采樣值對應(yīng)的語義流數(shù)據(jù)可能會附加上位置、采樣的時間等等語義標注信息。

      具體兩個普通語義流數(shù)據(jù)是否相互關(guān)聯(lián),即是否具有關(guān)聯(lián)語義信息,是按需求而定的,具體可以是根據(jù)語義流查詢語句中攜帶的查詢請求而定。

      例如,在圖3架構(gòu)中,終端設(shè)備1向基礎(chǔ)設(shè)施節(jié)點發(fā)送了語義流查詢語句,該語義流查詢語句攜帶的查詢請求用于查詢當前時刻家中所有臥室的溫度,那么假設(shè)家中有兩個臥室,則根據(jù)該查詢請求可以確定,設(shè)置在這兩個臥室中的溫度傳感器輸入到基礎(chǔ)設(shè)施節(jié)點中的當前采樣值對應(yīng)的普通語義流數(shù)據(jù)就是相互關(guān)聯(lián)的,而設(shè)置在客廳、廚房的溫度傳感器或其他終端設(shè)備輸入到基礎(chǔ)設(shè)施節(jié)點中的采樣值對應(yīng)的普通語義流數(shù)據(jù)就不具有關(guān)聯(lián)語義信息。也就是說,普通語義流數(shù)據(jù)之間相互關(guān)聯(lián),具體可以認為是普通語義流數(shù)據(jù)與查詢請求相互關(guān)聯(lián),即普通語義流數(shù)據(jù)與查詢請求具有關(guān)聯(lián)語義信息。

      可選的,本發(fā)明實施例中,在針對至少一個普通語義流數(shù)據(jù)進行查詢之后, 還包括:

      輸出查詢結(jié)果語義流數(shù)據(jù),查詢結(jié)果語義流數(shù)據(jù)承載查詢結(jié)果。

      在針對至少一個普通語義流數(shù)據(jù)進行查詢之后,可以得到查詢結(jié)果,那么同樣可以將查詢結(jié)果承載在一個語義流數(shù)據(jù)中進行輸出,本發(fā)明實施例中將該語義流數(shù)據(jù)稱為查詢結(jié)果語義流數(shù)據(jù)。具體的可以是將查詢結(jié)果語義流數(shù)據(jù)發(fā)送給向基礎(chǔ)設(shè)施節(jié)點發(fā)送該語義流查詢語句的設(shè)備,或者也可以是將查詢結(jié)果語義流數(shù)據(jù)發(fā)送給特定的設(shè)備,本發(fā)明對于查詢結(jié)果語義流數(shù)據(jù)的用途及去向不作限制。

      例如,請參見圖4,基礎(chǔ)設(shè)施節(jié)點中可以包括一個M2M環(huán)境下的語義流處理裝置,該M2M環(huán)境下的語義流處理裝置可以包括以下模塊:接收器(Receiver)、合并器、解析器、執(zhí)行器、及語義流窗口化模塊。接收器的作用是將連續(xù)的語義流數(shù)據(jù)轉(zhuǎn)換成離散語義流數(shù)據(jù)。合并器主要用于合并具有關(guān)聯(lián)語義信息的離散語義流數(shù)據(jù),以得到所需要的關(guān)聯(lián)離散語義流數(shù)據(jù),可以看到,圖4中有三路離散語義流數(shù)據(jù)具有關(guān)聯(lián)語義信息(圖4是以三路為例,在實際應(yīng)用中,接收器轉(zhuǎn)換得到的離散語義流數(shù)據(jù)可能有一路或多路,那么,如果接收器轉(zhuǎn)換得到的離散語義流數(shù)據(jù)有多路,則具有關(guān)聯(lián)語義信息的離散語義流數(shù)據(jù)就可能有兩路或多路),有一路普通語義流數(shù)據(jù)與其他三路離散語義流數(shù)據(jù)不具有關(guān)聯(lián)語義信息(這里的一路也是舉例,在實際應(yīng)用中,不具有關(guān)聯(lián)語義信息的離散語義流數(shù)據(jù)的數(shù)量可能的取值范圍為:是大于等于0的整數(shù)),因此合并器只對三路離散語義流數(shù)據(jù)進行合并,而另外一路離散語義流數(shù)據(jù)直接進入語義流窗口化模塊。解析器用于解析語義流查詢語句,并且將解析得到的查詢請求對應(yīng)的一系列查詢操作注冊到執(zhí)行器中,執(zhí)行器周期性的執(zhí)行查詢請求對應(yīng)的一系列查詢操作,得到并輸出查詢結(jié)果語義流數(shù)據(jù)。

      在分布式環(huán)境下,由于Infrastructure Domain中包括的節(jié)點設(shè)備的數(shù)目較多,每個節(jié)點設(shè)備都比較容易遭遇故障(這里的故障主要是指軟件故障),那么,如果節(jié)點設(shè)備的可靠性不能滿足需求,就意味著一旦系統(tǒng)中某個節(jié)點設(shè)備 發(fā)生錯誤,將會影響到這個時間片內(nèi)整個系統(tǒng)的處理流程,造成結(jié)果的缺失甚至是錯誤,因此,節(jié)點設(shè)備的恢復(fù)和容錯能力對于流式處理過程顯得異常重要。

      為了提高流數(shù)據(jù)處理的可靠性,本發(fā)明實施例采用基于RDD(Resilient Distributed Dataset,彈性分布式數(shù)據(jù)集)的世系圖容錯機制,通過跟蹤和記錄RDD中的RDF三元組的各種transformation(變換)操作,根據(jù)世系圖關(guān)系快速重建丟失的語義流數(shù)據(jù),這使得系統(tǒng)能夠在很短的時間內(nèi)恢復(fù)正常,從而提高語義流數(shù)據(jù)處理的可靠性。其中,RDD是Spark集群的基本數(shù)據(jù)抽象模型。

      可選的,本發(fā)明實施例中,所述方法還包括:

      確定第一節(jié)點設(shè)備傳輸?shù)牡谝粩?shù)據(jù)有誤;所述第一節(jié)點設(shè)備為Spark集群中的任一設(shè)備;

      向第一節(jié)點設(shè)備發(fā)送第一故障通知消息,第一故障通知消息用于通知第一節(jié)點設(shè)備,第一數(shù)據(jù)有誤。

      這里的第一節(jié)點設(shè)備可以是Spark集群中的任一設(shè)備,并且,第一節(jié)點設(shè)備可以是位于Infrastructure Domain中。即,當Spark集群中的一個節(jié)點設(shè)備(本發(fā)明實施例中將其稱為第一節(jié)點設(shè)備)發(fā)生故障時,Spark集群中的全部或部分正常運行的節(jié)點設(shè)備(例如其中包括基礎(chǔ)設(shè)施節(jié)點)可以參與第一節(jié)點設(shè)備的故障恢復(fù)工作。舉例來說,如果第一節(jié)點設(shè)備發(fā)生故障,例如第一節(jié)點設(shè)備向Spark集群中的其他節(jié)點設(shè)備發(fā)送了數(shù)據(jù)(這里的數(shù)據(jù)可能是普通數(shù)據(jù),也可能是語義流數(shù)據(jù),本發(fā)明不作限制,本發(fā)明實施例中將第一節(jié)點設(shè)備發(fā)送給基礎(chǔ)節(jié)點設(shè)備的數(shù)據(jù)稱為第一數(shù)據(jù)),那么其他節(jié)點設(shè)備可能會發(fā)現(xiàn)第一節(jié)點設(shè)備發(fā)送的數(shù)據(jù)有誤,那么其他節(jié)點設(shè)備可以通知第一節(jié)點設(shè)備(本發(fā)明實施例中將基礎(chǔ)設(shè)施節(jié)點通知第一節(jié)點設(shè)備關(guān)于第一數(shù)據(jù)有誤的消息稱為第一故障通知消息),從而第一節(jié)點設(shè)備可以重新獲取這些數(shù)據(jù),這也就相當于第一節(jié)點設(shè)備恢復(fù)出錯前的狀態(tài),只要能恢復(fù)第一節(jié)點設(shè)備出錯前的狀態(tài),然后可以根據(jù)運行日志重新計算相關(guān)partition中的內(nèi)容,就可以使第一節(jié)點設(shè)備重新跟上其他節(jié)點設(shè)備的計算步伐,使整個Spark集群的運行狀態(tài)恢復(fù)正常。

      例如請參見圖5,為基于RDD對應(yīng)的世系圖的DStream容錯機制示意圖。圖中的一個矩形框代表一個RDD,每個矩形框中的一個圓圈代表一個partition(部分),每個partition中包含若干RDF三元組。某一時刻,一個RDD下所有partition中的所有RDF三元組在概念上作為一個整體進行處理,但實際上,每個partition會分布到不同的節(jié)點設(shè)備上進行處理。其中,圖5中的橫向箭頭表示時間軸,例如,第一列矩形框?qū)?yīng)的時刻為t1,第二列矩形框?qū)?yīng)的時刻為t2,表示離散語義流數(shù)據(jù)是按照時間流動的。

      圖5中,partition之間的向下的一個箭頭表示一個操作,世系圖以partition為粒度,記錄前后的一系列操作。

      可選的,本發(fā)明實施例中,所述方法還包括:

      在基礎(chǔ)設(shè)施節(jié)點發(fā)生故障時,接收至少一個節(jié)點設(shè)備發(fā)送的第二故障通知消息,并根據(jù)第二故障通知消息確定傳輸給至少一個節(jié)點設(shè)備的至少一個第二數(shù)據(jù)有誤;

      根據(jù)RDD對應(yīng)的世系圖,重新獲取至少一個第二數(shù)據(jù);

      將重新獲取的至少一個第二數(shù)據(jù)分別發(fā)送給至少一個節(jié)點設(shè)備。

      即,如果是Spark集群中的基礎(chǔ)設(shè)施節(jié)點發(fā)生故障,那么如果基礎(chǔ)設(shè)施節(jié)點傳輸給Spark集群中的其他節(jié)點設(shè)備的數(shù)據(jù)有誤,其他節(jié)點設(shè)備也同樣,會向基礎(chǔ)設(shè)施節(jié)點通知,接收的數(shù)據(jù)有誤(本發(fā)明實施例中將其他節(jié)點設(shè)備通知基礎(chǔ)設(shè)施節(jié)點關(guān)于接收的數(shù)據(jù)有誤的消息稱為第二故障通知消息。本發(fā)明實施例中將其他節(jié)點設(shè)備接收到的基礎(chǔ)設(shè)施節(jié)點發(fā)送的數(shù)據(jù)均稱為第二數(shù)據(jù),需要說明的是,不同節(jié)點設(shè)備接收到的第二數(shù)據(jù)可能相同也可能不同),基礎(chǔ)設(shè)施節(jié)點在接收到第二故障通知消息后,可以根據(jù)世系圖,以及基礎(chǔ)設(shè)施節(jié)點最近的一系列操作,恢復(fù)基礎(chǔ)設(shè)施節(jié)點最近的正常狀態(tài)信息,從而重新獲取其他節(jié)點設(shè)備所對應(yīng)的第二數(shù)據(jù),也就相當于基礎(chǔ)設(shè)施節(jié)點排除故障。

      DStream通過世系圖來跟蹤一系列操作的步驟,以重建丟失的RDD中的RDF三元組,而無需另外備份。當Spark集群中的一個節(jié)點設(shè)備遭遇錯誤需要恢 復(fù)時,Spark集群中的其他正常運行的節(jié)點設(shè)備可以根據(jù)世系圖來重計算該發(fā)生錯誤的節(jié)點設(shè)備最近的狀態(tài)(即正常工作狀態(tài)),例如可以包括恢復(fù)最近時刻RDD中每個partition下的三元組內(nèi)容。并且,本發(fā)明實施例中的容錯機制還可以進行并行恢復(fù),即,Spark集群中的所有正常節(jié)點設(shè)備都可參與故障節(jié)點設(shè)備恢復(fù)的重計算工作,在恢復(fù)一個故障節(jié)點設(shè)備的狀態(tài)的同時,參與恢復(fù)的節(jié)點設(shè)備仍然可以接收并處理新流入的RDF三元組,這有效的保證了本發(fā)明實施例中的系統(tǒng)具有高的容錯能力和可靠性。

      請參見圖6,基于同一發(fā)明構(gòu)思,本發(fā)明實施例提供一種M2M環(huán)境下的語義流處理裝置,該裝置可以位于Spark集群中,較佳的,該裝置可以位于Spark集群中的基礎(chǔ)設(shè)施節(jié)點中,另外,該裝置與圖3所示的裝置可以是同一裝置。在一種可能的情況下,該裝置可以是基礎(chǔ)設(shè)施節(jié)點本身,在另一種可能的情況下,該裝置可以是基礎(chǔ)設(shè)施節(jié)點中所包括的功能模塊。該裝置可以包括接收模塊601、生成模塊602和查詢模塊603。

      接收模塊601,用于接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句;至少一個普通語義流數(shù)據(jù)中的每個普通語義流數(shù)據(jù)均對應(yīng)于預(yù)設(shè)語義,語義流查詢語句中攜帶查詢請求,查詢請求用于查詢至少一個普通語義流數(shù)據(jù)所攜帶的信息;

      生成模塊602,用于對語義流查詢語句進行解析,并根據(jù)解析的結(jié)果生成查詢窗口;

      查詢模塊603,用于在查詢窗口中,根據(jù)查詢請求,針對至少一個普通語義流數(shù)據(jù)進行查詢。

      可選的,本發(fā)明實施例中,接收模塊601用于:

      接收一個或多個終端設(shè)備發(fā)送的至少一個普通語義流數(shù)據(jù);或

      接收一個或多個終端設(shè)備發(fā)送的至少一個普通數(shù)據(jù);按照預(yù)設(shè)語義對至少一個普通數(shù)據(jù)進行語義標注,得到至少一個普通語義流數(shù)據(jù)。

      可選的,本發(fā)明實施例中,生成模塊602用于:

      對語義流查詢語句進行解析,并根據(jù)解析得到的窗口參數(shù)生成查詢窗口。

      可選的,本發(fā)明實施例中,所述裝置還包括離散化模塊;

      離散化模塊用于:在接收模塊601接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句之后,將至少一個普通語義流數(shù)據(jù)分別進行離散化,得到至少一個離散語義流數(shù)據(jù);

      查詢模塊603用于:在查詢窗口中,根據(jù)查詢請求,針對至少一個離散語義流數(shù)據(jù)進行查詢。

      可選的,本發(fā)明實施例中,所述裝置還包括合并模塊,用于:

      在離散化模塊得到至少一個離散語義流數(shù)據(jù)之后,將語義流查詢語句所對應(yīng)的M個離散語義流數(shù)據(jù)合并為第一離散語義流數(shù)據(jù);M個離散語義流數(shù)據(jù)為至少一個離散語義流數(shù)據(jù)的子集。

      可選的,本發(fā)明實施例中,所述裝置還包括輸出模塊,用于:

      在查詢模塊603針對至少一個普通語義流數(shù)據(jù)進行查詢之后,輸出查詢結(jié)果語義流數(shù)據(jù),查詢結(jié)果語義流數(shù)據(jù)承載查詢結(jié)果。

      可選的,本發(fā)明實施例中,所述裝置還包括確定模塊和發(fā)送模塊;

      確定模塊,用于確定第一節(jié)點設(shè)備傳輸?shù)牡谝粩?shù)據(jù)有誤;第一節(jié)點設(shè)備為Spark集群中的任一設(shè)備;

      發(fā)送模塊,用于向第一節(jié)點設(shè)備發(fā)送第一故障通知消息,第一故障通知消息用于通知第一節(jié)點設(shè)備,第一數(shù)據(jù)有誤。

      可選的,本發(fā)明實施例中,所述裝置還包括獲取模塊和發(fā)送模塊;

      接收模塊601還用于:在基礎(chǔ)設(shè)施節(jié)點發(fā)生故障時,接收至少一個節(jié)點設(shè)備發(fā)送的第二故障通知消息,并根據(jù)第二故障通知消息確定傳輸給至少一個節(jié)點設(shè)備的至少一個第二數(shù)據(jù)有誤;

      獲取模塊用于:根據(jù)RDD對應(yīng)的世系圖,重新獲取至少一個第二數(shù)據(jù);

      發(fā)送模塊用于:將重新獲取的至少一個第二數(shù)據(jù)分別發(fā)送給至少一個節(jié)點設(shè)備。

      請參見圖7,基于同一發(fā)明構(gòu)思,本發(fā)明實施例提供另一種M2M環(huán)境下的語義流處理裝置,該裝置可以位于Spark集群中,較佳的,該裝置可以位于Spark集群中的基礎(chǔ)設(shè)施節(jié)點中,另外,該裝置與圖3、圖6所示的裝置可以是同一裝置。在一種可能的情況下,該裝置可以是基礎(chǔ)設(shè)施節(jié)點本身,在另一種可能的情況下,該裝置可以是基礎(chǔ)設(shè)施節(jié)點中所包括的功能模塊。該裝置可以包括存儲器701、處理器702和接收器703。存儲器701和接收器703可以分別與處理器702連接,具體的,存儲器701和接收器703可以通過同一總線與處理器702連接,或者也可以分別通過相應(yīng)的連接線與處理器702連接。

      存儲器701,用于存儲處理器702執(zhí)行任務(wù)所需的指令;

      接收器703,用于接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句;至少一個普通語義流數(shù)據(jù)中的每個普通語義流數(shù)據(jù)均對應(yīng)于預(yù)設(shè)語義,語義流查詢語句中攜帶查詢請求,查詢請求用于查詢至少一個普通語義流數(shù)據(jù)所攜帶的信息;

      處理器702,用于執(zhí)行存儲器701存儲的指令,對語義流查詢語句進行解析,并根據(jù)解析的結(jié)果生成查詢窗口;在查詢窗口中,根據(jù)查詢請求,針對至少一個普通語義流數(shù)據(jù)進行查詢。

      可選的,本發(fā)明實施例中,

      接收器703用于:接收一個或多個終端設(shè)備發(fā)送的至少一個普通語義流數(shù)據(jù);或

      接收器703用于:接收一個或多個終端設(shè)備發(fā)送的至少一個普通數(shù)據(jù);處理器702用于:按照預(yù)設(shè)語義對至少一個普通數(shù)據(jù)進行語義標注,得到至少一個普通語義流數(shù)據(jù)。

      可選的,本發(fā)明實施例中,處理器702用于:

      對語義流查詢語句進行解析,并根據(jù)解析得到的窗口參數(shù)生成查詢窗口。

      可選的,本發(fā)明實施例中,處理器702還用于:

      在接收器703接收至少一個普通語義流數(shù)據(jù),以及,接收語義流查詢語句 之后,將至少一個普通語義流數(shù)據(jù)分別進行離散化,得到至少一個離散語義流數(shù)據(jù);

      在查詢窗口中,根據(jù)查詢請求,針對至少一個離散語義流數(shù)據(jù)進行查詢。

      可選的,本發(fā)明實施例中,處理器702還用于:

      在得到至少一個離散語義流數(shù)據(jù)之后,將語義流查詢語句所對應(yīng)的M個離散語義流數(shù)據(jù)合并為第一離散語義流數(shù)據(jù);M個離散語義流數(shù)據(jù)為至少一個離散語義流數(shù)據(jù)的子集。

      可選的,本發(fā)明實施例中,所述裝置還包括與處理器702連接的發(fā)送器;發(fā)送器與接收器703可以是同一功能模塊,該功能模塊具有信息收發(fā)功能,或者,發(fā)送器與接收器703可以是不同的功能模塊;

      發(fā)送器用于:在處理器702針對至少一個普通語義流數(shù)據(jù)進行查詢之后,輸出查詢結(jié)果語義流數(shù)據(jù),查詢結(jié)果語義流數(shù)據(jù)承載查詢結(jié)果。

      可選的,本發(fā)明實施例中,

      處理器702還用于:確定第一節(jié)點設(shè)備傳輸?shù)牡谝粩?shù)據(jù)有誤;第一節(jié)點設(shè)備為Spark集群中的任一設(shè)備;

      發(fā)送器還用于:向第一節(jié)點設(shè)備發(fā)送第一故障通知消息,第一故障通知消息用于通知第一節(jié)點設(shè)備,第一數(shù)據(jù)有誤。

      可選的,本發(fā)明實施例中,

      接收器703還用于:在基礎(chǔ)設(shè)施節(jié)點發(fā)生故障時,接收至少一個節(jié)點設(shè)備發(fā)送的第二故障通知消息,并根據(jù)第二故障通知消息確定傳輸給至少一個節(jié)點設(shè)備的至少一個第二數(shù)據(jù)有誤;

      處理器702還用于:根據(jù)RDD對應(yīng)的世系圖,重新獲取至少一個第二數(shù)據(jù);

      發(fā)送器還用于:將重新獲取的至少一個第二數(shù)據(jù)分別發(fā)送給至少一個節(jié)點設(shè)備。

      可選的,本發(fā)明實施例還提供一種基礎(chǔ)設(shè)施節(jié)點,該基礎(chǔ)設(shè)施節(jié)點可以包 括如前所述的M2M環(huán)境下的語義流處理裝置。前面介紹過,在一種可能的情況下,M2M環(huán)境下的語義流處理裝置可以是基礎(chǔ)設(shè)施節(jié)點本身,在另一種可能的情況下,M2M環(huán)境下的語義流處理裝置可以是基礎(chǔ)設(shè)施節(jié)點中所包括的功能模塊。

      本發(fā)明實施例提供了一種預(yù)設(shè)語義,從而可以將各設(shè)備的數(shù)據(jù)按照該預(yù)設(shè)語義進行轉(zhuǎn)換,例如接收的至少一個普通語義流數(shù)據(jù)來自于多個設(shè)備,不同的設(shè)備對應(yīng)的數(shù)據(jù)結(jié)構(gòu)、格式等不同,但是按照本發(fā)明中的方式,可以將來自不同終端設(shè)備的不同格式的數(shù)據(jù)先按照預(yù)設(shè)語義,標注為具有同一語義結(jié)構(gòu)的語義流數(shù)據(jù),從而可以對不同設(shè)備的數(shù)據(jù)進行處理,使得大量的資源和數(shù)據(jù)能夠有效實現(xiàn)共享,從而得到充分的利用,提高了資源利用率,也給物聯(lián)網(wǎng)的真正實現(xiàn)提供了解決方案。

      另外,實時性是物聯(lián)網(wǎng)領(lǐng)域應(yīng)用的一個重要需求,包括交通導(dǎo)航、打車應(yīng)用、智能停車、災(zāi)難檢測等都需要嚴格的實時性保證,對于這類實時性較強的數(shù)據(jù),其價值會隨著時間的流逝而減少,如果無法對其進行及時分析和響應(yīng),那么便很可能會錯過一個機會,或者遺漏一個潛在的威脅。本發(fā)明實施例中,將各設(shè)備的數(shù)據(jù)標注為流數(shù)據(jù)進行處理(例如標注為普通語義流數(shù)據(jù)),并且會通過窗口進行處理,從而提高了數(shù)據(jù)處理過程的實時性,盡量使每個實時性數(shù)據(jù)的價值都能夠得到體現(xiàn),避免資源浪費。

      所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能單元的劃分進行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。

      在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可 以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。

      所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。

      另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。

      所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或processor(處理器)執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、ROM(Read-Only Memory,只讀存儲器)、RAM(Random Access Memory,隨機存取存儲器)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

      以上所述,以上實施例僅用以對本申請的技術(shù)方案進行了詳細介紹,但以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想,不應(yīng)理解為對本發(fā)明的限制。本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1