本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理系統(tǒng)及方法。
背景技術(shù):
目前,大部分空調(diào)機組都會配套通信模塊(如GPRS模塊)進行機組數(shù)據(jù)監(jiān)控維護,隨著空調(diào)機組的出貨數(shù)量不斷增加,接收處理的機組數(shù)據(jù)并發(fā)也在日益增長,且后續(xù)實時數(shù)據(jù)和非實時數(shù)據(jù)在客戶端的使用場景更加廣泛,客戶端應(yīng)用包括例如PC端監(jiān)控軟件、手機應(yīng)用軟件、網(wǎng)頁和第三方應(yīng)用軟件等。
現(xiàn)有方案中,應(yīng)用服務(wù)器除了需要解析和存儲空調(diào)機組通信模塊傳輸回來的機組數(shù)據(jù)外,還要處理與監(jiān)控客戶端的連接關(guān)系、實時數(shù)據(jù)請求關(guān)系、以及監(jiān)控客戶端與空調(diào)機組的通信模塊的連接關(guān)系等,承載壓力大;且當數(shù)據(jù)庫或服務(wù)器內(nèi)容修改時,PC監(jiān)控程序、手機應(yīng)用軟件、網(wǎng)頁和第三方應(yīng)用軟件等的調(diào)用方法都要同時修改,費時費力。
此外,給第三方應(yīng)用軟件直連調(diào)用應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)時,必然要把服務(wù)器地址暴露在公網(wǎng)上,因此服務(wù)器也會存在一定的不安全因素。
隨著空調(diào)機組大數(shù)據(jù)時代的到來,需要監(jiān)控的機組數(shù)量也越來越多,現(xiàn)有的遠程智能服務(wù)中心已經(jīng)無法滿足龐大機組數(shù)量的監(jiān)控需求,開發(fā)一套可監(jiān)控大量機組的遠程智能服務(wù)中心數(shù)據(jù)處理系統(tǒng)已經(jīng)是迫在眉睫。
針對上述問題,目前尚未提出有效的解決方式。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種數(shù)據(jù)處理系統(tǒng)及方法,通過設(shè)置訂閱發(fā)布數(shù)據(jù)的數(shù)據(jù)中轉(zhuǎn)接口,由此去除了各種客戶端應(yīng)用與應(yīng)用服務(wù)器和數(shù)據(jù)庫的連接關(guān)系及各種關(guān)系的處理,減輕應(yīng)用服務(wù)器的運行壓力;進一步,統(tǒng)一空調(diào)機組的實時數(shù)據(jù)和歷史數(shù)據(jù)的獲取,減少服務(wù)器內(nèi)容修改導(dǎo)致其他應(yīng)用的不必要更改,進而實現(xiàn)通過統(tǒng)一接口兼容各種應(yīng)用空調(diào)機組數(shù)據(jù)的調(diào)用獲取,并提高數(shù)據(jù)庫和應(yīng)用服務(wù)器的安全性。
根據(jù)本發(fā)明的一個方面,提供一種數(shù)據(jù)處理系統(tǒng),包括:數(shù)據(jù)庫、與客戶端和所述數(shù)據(jù)庫通信連接的數(shù)據(jù)接口;其中,數(shù)據(jù)接口,接收來自客戶端的數(shù)據(jù)以發(fā)送到數(shù)據(jù)庫中對應(yīng)該數(shù)據(jù)的類型的數(shù)據(jù)頻道而進行數(shù)據(jù)發(fā)布,和/或,根據(jù)客戶端的數(shù)據(jù)請求而連接數(shù)據(jù)庫以獲取相應(yīng)所述請求的實時或非實時數(shù)據(jù)。
其中,應(yīng)用服務(wù)器,與機組和所述數(shù)據(jù)庫通信連接,將接收的來自機組的數(shù)據(jù)處理后發(fā)送至數(shù)據(jù)庫存儲,和/或,向機組發(fā)送從數(shù)據(jù)庫獲取的機組需要的數(shù)據(jù);所述來自機組的數(shù)據(jù)、所述機組需要的數(shù)據(jù)、所述來自客戶端的數(shù)據(jù)、所述請求的數(shù)據(jù)包括:實時數(shù)據(jù)和/或非實時數(shù)據(jù);和/或,數(shù)據(jù)接口包括數(shù)據(jù)接口服務(wù)器,其根據(jù)客戶端的數(shù)據(jù)請求而連接數(shù)據(jù)庫以獲取相應(yīng)所述請求的數(shù)據(jù)包括:根據(jù)客戶端的數(shù)據(jù)請求而建立客戶端與數(shù)據(jù)庫中的與該客戶端請求的數(shù)據(jù)的類型對應(yīng)的數(shù)據(jù)頻道的關(guān)系,并獲取該數(shù)據(jù)頻道上的實時數(shù)據(jù)以發(fā)布給該客戶端;和/或,根據(jù)客戶端的數(shù)據(jù)請求而連接數(shù)據(jù)庫,獲取請求的非實時數(shù)據(jù)。
其中,數(shù)據(jù)庫包括:用于存儲實時數(shù)據(jù)的實時數(shù)據(jù)庫和/或存儲非實時數(shù)據(jù)的歷史數(shù)據(jù)庫;所述實時數(shù)據(jù)庫基于訂閱-發(fā)布模式,在實時數(shù)據(jù)庫中建立數(shù)據(jù)頻道,發(fā)布的實時數(shù)據(jù)以數(shù)據(jù)類型進行區(qū)分存入對應(yīng)的數(shù)據(jù)頻道中;其中,訂閱-發(fā)布模式包括:實時數(shù)據(jù)通過數(shù)據(jù)分類而定義數(shù)據(jù)頻道,根據(jù)需要的數(shù)據(jù)的類型而訂閱對應(yīng)的數(shù)據(jù)頻道、和/或根據(jù)要發(fā)送的數(shù)據(jù)的類型將數(shù)據(jù)發(fā)布到對應(yīng)的數(shù)據(jù)頻道。
其中,數(shù)據(jù)接口服務(wù)器包括:數(shù)據(jù)訂閱實現(xiàn)模塊,根據(jù)客戶端的數(shù)據(jù)請求,其連接所述實時數(shù)據(jù)庫,從所述實時數(shù)據(jù)庫中訂閱與所述客戶端請求的實時數(shù)據(jù)的類型對應(yīng)的數(shù)據(jù)頻道,并記錄所述客戶端與對應(yīng)數(shù)據(jù)頻道的訂閱關(guān)系,以建立客戶端與數(shù)據(jù)頻道的關(guān)系;和/或,數(shù)據(jù)發(fā)布實現(xiàn)模塊,其連接所述實時數(shù)據(jù)庫,向所述實時數(shù)據(jù)庫中與客戶端需要發(fā)布的指定的實時數(shù)據(jù)的類型相對應(yīng)的數(shù)據(jù)頻道發(fā)布所述客戶端請求發(fā)送的實時數(shù)據(jù);和/或,應(yīng)用服務(wù)器包括:連接所述實時數(shù)據(jù)庫,向所述實時數(shù)據(jù)庫的數(shù)據(jù)頻道發(fā)布所述機組需要發(fā)布的實時數(shù)據(jù),從所述實時數(shù)據(jù)庫中訂閱所述機組需要訂閱的數(shù)據(jù)頻道;和/或,歷史數(shù)據(jù)庫,通過數(shù)據(jù)接口服務(wù)器,向客戶端提供客戶端請求的非實時數(shù)據(jù)。
其中,數(shù)據(jù)訂閱實現(xiàn)模塊,包括:基于客戶端的實時數(shù)據(jù)的獲取請求,獲取需要訂閱的數(shù)據(jù)的類型和機組標識,根據(jù)所述訂閱數(shù)據(jù)類型和機組標識向所述實時數(shù)據(jù)庫訂閱對應(yīng)的數(shù)據(jù)頻道,并記錄所述訂閱關(guān)系;和/或,基于記錄的訂閱關(guān)系,數(shù)據(jù)接口服務(wù)器接收實時數(shù)據(jù)庫中數(shù)據(jù)頻道推送的數(shù)據(jù),將數(shù)據(jù)推送至與數(shù)據(jù)頻道建立訂閱關(guān)系的客戶端;和/或,數(shù)據(jù)發(fā)布實現(xiàn)模塊,包括:基于所述實時數(shù)據(jù)的發(fā)送請求,獲取目標機組標識和請求發(fā)送的數(shù)據(jù)的類型,根據(jù)該數(shù)據(jù)的類型和目標機組標識向所述實時數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)頻道發(fā)布所述請求發(fā)送的實時數(shù)據(jù)。
其中,數(shù)據(jù)接口服務(wù)器還包括:數(shù)據(jù)訂閱取消實現(xiàn)模塊,其連接所述實時數(shù)據(jù)庫,在從所述實時數(shù)據(jù)庫中對所述對應(yīng)的數(shù)據(jù)頻道實現(xiàn)訂閱后,當從所述客戶端接收到取消數(shù)據(jù)訂閱的請求時,取消所述客戶端對請求取消訂閱的數(shù)據(jù)對應(yīng)的數(shù)據(jù)頻道的訂閱。
其中,所述數(shù)據(jù)訂閱取消實現(xiàn)模塊取消所述客戶端請求取消訂閱的數(shù)據(jù)對應(yīng)的數(shù)據(jù)頻道的訂閱包括:刪除所述客戶端與對應(yīng)頻道的訂閱關(guān)系,判斷所述對應(yīng)頻道是否還存在訂閱關(guān)系,如果是,則繼續(xù)接收所述對應(yīng)頻道推送的數(shù)據(jù);如果否,則從所述實時數(shù)據(jù)庫中取消所述數(shù)據(jù)接口服務(wù)器對所述對應(yīng)頻道的訂閱。
其中,所述實時數(shù)據(jù)庫為Redis數(shù)據(jù)庫;和/或,應(yīng)用服務(wù)器將處理后的實時數(shù)據(jù)存儲到Redis數(shù)據(jù)庫以發(fā)布到對應(yīng)實時數(shù)據(jù)的類型的數(shù)據(jù)頻道;其中,所述處理包括解析;數(shù)據(jù)接口服務(wù)器將發(fā)布到所述數(shù)據(jù)頻道的所述實時數(shù)據(jù)發(fā)送到所述數(shù)據(jù)頻道記錄的與其建立了對應(yīng)關(guān)系的客戶端,和/或,數(shù)據(jù)接口服務(wù)器根據(jù)客戶端實時數(shù)據(jù)發(fā)布請求而向Redis數(shù)據(jù)庫中相應(yīng)實時數(shù)據(jù)的類型的數(shù)據(jù)頻道發(fā)布來自該客戶端的實時數(shù)據(jù)。
其中,還包括:數(shù)據(jù)接口服務(wù)器從所述客戶端接收對所述非實時數(shù)據(jù)的訪問請求,從所述歷史數(shù)據(jù)庫獲取非實時數(shù)據(jù)返回給所述客戶端。
根據(jù)本發(fā)明的另一個方面,提供一種數(shù)據(jù)處理方法,包括:接收來自客戶端的數(shù)據(jù)以發(fā)送到數(shù)據(jù)庫中對應(yīng)該數(shù)據(jù)的數(shù)據(jù)頻道而進行數(shù)據(jù)發(fā)布;和/或,根據(jù)客戶端的數(shù)據(jù)請求而連接數(shù)據(jù)庫,以獲取相應(yīng)所述請求的數(shù)據(jù)。
其中,接收來自客戶端對與指定機組相關(guān)的指定數(shù)據(jù)的數(shù)據(jù)獲取或發(fā)送的請求;當所述請求為發(fā)送請求時,向所述數(shù)據(jù)庫中對應(yīng)該數(shù)據(jù)的類型和指定機組的數(shù)據(jù)頻道,發(fā)送所述請求發(fā)送的指定數(shù)據(jù);當所述請求為獲取請求時,從數(shù)據(jù)庫中取得所述請求獲取的實時或非實時數(shù)據(jù),并將所述取得的數(shù)據(jù)返回所述客戶端;其中,請求獲取的與所述指定機組相關(guān)的指定數(shù)據(jù)由與所述指定機組通信連接的應(yīng)用服務(wù)器發(fā)送至所述數(shù)據(jù)庫中存儲。
其中,當所述請求為獲取請求時,從數(shù)據(jù)庫中取得所述請求獲取的實時或非實時數(shù)據(jù),并將所述取得的數(shù)據(jù)返回所述客戶端,包括:如果請求獲取實時數(shù)據(jù),從所述數(shù)據(jù)庫中的實時數(shù)據(jù)庫中訂閱與所述請求獲取的實時數(shù)據(jù)對應(yīng)的數(shù)據(jù)頻道;記錄所述客戶端與所述對應(yīng)頻道的訂閱關(guān)系;接收所述訂閱的數(shù)據(jù)頻道推送的數(shù)據(jù);基于所述記錄的訂閱關(guān)系將數(shù)據(jù)返回與所述數(shù)據(jù)頻道建立訂閱關(guān)系的客戶端;和/或,如果請求獲取非實時數(shù)據(jù),則從數(shù)據(jù)庫中的歷史數(shù)據(jù)庫獲取非實時數(shù)據(jù),并將獲取的所述非實時數(shù)據(jù)返回給所述客戶端。
其中,還包括:向所述客戶端提供數(shù)據(jù)訂閱方法;從所述實時數(shù)據(jù)庫中訂閱與指定的實時數(shù)據(jù)對應(yīng)的數(shù)據(jù)頻道的步驟包括:基于所述實時數(shù)據(jù)的獲取請求,得到需要訂閱的數(shù)據(jù)類型和機組標識;根據(jù)所述訂閱數(shù)據(jù)類型和機組標識從所述實時數(shù)據(jù)庫訂閱對應(yīng)的頻道。
其中,當所述請求為發(fā)送請求時,向所述數(shù)據(jù)庫中對應(yīng)該數(shù)據(jù)的類型和指定機組的數(shù)據(jù)頻道,發(fā)送所述請求發(fā)送的指定數(shù)據(jù),包括:當發(fā)送的所述指定數(shù)據(jù)包括實時數(shù)據(jù)時,向所述數(shù)據(jù)庫中的實時數(shù)據(jù)庫中與所述指定的實時數(shù)據(jù)的類型和指定機組對應(yīng)的數(shù)據(jù)頻道,發(fā)布該實時數(shù)據(jù)。
其中,當發(fā)送的所述指定數(shù)據(jù)包括實時數(shù)據(jù)時,向所述數(shù)據(jù)庫中的實時數(shù)據(jù)庫中與所述指定的實時數(shù)據(jù)的類型和指定機組對應(yīng)的數(shù)據(jù)頻道,發(fā)布該實時數(shù)據(jù),包括:基于所述指定的實時數(shù)據(jù)的發(fā)送請求,獲取目標機組標識和需要發(fā)送的數(shù)據(jù)的類型,向所述實時數(shù)據(jù)庫中對應(yīng)該數(shù)據(jù)的類型和機組標識的數(shù)據(jù)頻道發(fā)布所述需要發(fā)送的數(shù)據(jù)。
其中:在從所述實時數(shù)據(jù)庫中對所述對應(yīng)的數(shù)據(jù)頻道實現(xiàn)訂閱后,當從所述客戶端接收到取消數(shù)據(jù)訂閱的請求時,刪除所述客戶端與對應(yīng)頻道的訂閱關(guān)系,判斷所述對應(yīng)頻道是否還存在訂閱關(guān)系,如果是,則繼續(xù)接收所述對應(yīng)頻道推送的數(shù)據(jù);如果否,則從所述實時數(shù)據(jù)庫中取消所述數(shù)據(jù)接口服務(wù)器對所述對應(yīng)頻道的訂閱。
其中,各方法步驟在權(quán)利要求1-9所述的數(shù)據(jù)處理系統(tǒng)中執(zhí)行。
其中,所述實時數(shù)據(jù)庫為Redis數(shù)據(jù)庫。
根據(jù)本發(fā)明提出的一種數(shù)據(jù)處理系統(tǒng)及方法,通過設(shè)置訂閱發(fā)布數(shù)據(jù)的中轉(zhuǎn)接口(如:數(shù)據(jù)接口服務(wù)器),由其來接管處理客戶端與應(yīng)用服務(wù)器和數(shù)據(jù)庫之間的數(shù)據(jù)通信,去除了各種客戶端應(yīng)用與應(yīng)用服務(wù)器和數(shù)據(jù)庫的連接關(guān)系及各種關(guān)系的處理,進而實現(xiàn)客戶端應(yīng)用(如:PC監(jiān)控程序、手機APP、網(wǎng)頁和第三方應(yīng)用)等調(diào)用數(shù)據(jù)的兼容,減輕了應(yīng)用服務(wù)器的運行壓力,并提高了數(shù)據(jù)庫和應(yīng)用服務(wù)器的安全性(如:避免了服務(wù)器地址的暴露)。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實施,以下以本發(fā)明的較佳實施例并配合附圖詳細說明如后。
附圖說明
構(gòu)成本發(fā)明的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
圖1示出了本發(fā)明的一種數(shù)據(jù)處理系統(tǒng)的一實施例的框架圖;
圖2示出了本發(fā)明的一種數(shù)據(jù)處理方法的一實施例的流程圖;
圖3示出了本發(fā)明的系統(tǒng)中數(shù)據(jù)接口服務(wù)器和實時數(shù)據(jù)庫的一實施例的框架圖;
圖4示出了本發(fā)明的方法中實時數(shù)據(jù)獲取的一實施例的流程圖;
圖5示出了本發(fā)明的方法中實時數(shù)據(jù)發(fā)送的一實施例的流程圖;
圖6示出了本發(fā)明的方法中實時取消數(shù)據(jù)訂閱的一實施例的流程圖;
圖7示出了本發(fā)明的系統(tǒng)中同時具有實時數(shù)據(jù)庫和非實時數(shù)據(jù)庫的一實施例的框圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明具體實施例及相應(yīng)的附圖對本發(fā)明技術(shù)方案進行清楚、完整地描述。顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1示出了本發(fā)明提供的一種數(shù)據(jù)處理系統(tǒng)的一實施例的結(jié)構(gòu)框架圖。如圖1所示,所述數(shù)據(jù)處理系統(tǒng)100包括應(yīng)用服務(wù)器130、數(shù)據(jù)接口110和數(shù)據(jù)庫120。
在一實施方式中,應(yīng)用服務(wù)器130可以與機組301、...、30n和數(shù)據(jù)庫120通信連接,從機組301、...、30n接收數(shù)據(jù),處理從機組301、...、30n接收到的數(shù)據(jù)(以空調(diào)機組為例:該處理包括但不限于解析處理傳輸回來的壓縮機組數(shù)據(jù)、對機組數(shù)據(jù)進行實時計算、等等),將處理后的數(shù)據(jù)發(fā)送至數(shù)據(jù)庫120進行存儲,并從所述數(shù)據(jù)庫120得到機組需要的數(shù)據(jù),向機組301、...、30n發(fā)送所述需要的數(shù)據(jù)。
在一實施方式中,數(shù)據(jù)接口110可以采用數(shù)據(jù)接口服務(wù)器。數(shù)據(jù)接口服務(wù)器110可以與客戶端201、...、20n和數(shù)據(jù)庫120通信連接,接收來自客戶端201、...、20n的數(shù)據(jù)以發(fā)送到數(shù)據(jù)庫120對應(yīng)數(shù)據(jù)類型的數(shù)據(jù)頻道而實現(xiàn)數(shù)據(jù)發(fā)布,和/或,根據(jù)客戶端201、...、20n的數(shù)據(jù)請求而連接數(shù)據(jù)庫120以獲取相應(yīng)所述請求的實時或非實時數(shù)據(jù)。如:從客戶端201、...、20n接收需要發(fā)布的數(shù)據(jù),將所述數(shù)據(jù)發(fā)送至數(shù)據(jù)庫120進行存儲,并從客戶端201、...、20n接收數(shù)據(jù)請求,從數(shù)據(jù)庫120得到被請求的數(shù)據(jù),向客戶端201、...、20n返回被請求的數(shù)據(jù)。由此,客戶端201、...、20n可以通過數(shù)據(jù)接口服務(wù)器110從數(shù)據(jù)庫120得到需要的機組301、...、30n的數(shù)據(jù)。
在本發(fā)明的實施例中機組301、...、30n以空調(diào)機組為例但不限于空調(diào)機組,當然也可以是任何其他電器機組,如洗衣機機組、冰箱機組。
隨著互聯(lián)網(wǎng)的發(fā)展,智能化的進程,大部分的商用空調(diào)機組都會配備通信模塊包括但不限于GPRS模塊以便進行機組數(shù)據(jù)監(jiān)控維護,通信模塊監(jiān)聽空調(diào)機組數(shù)據(jù),通過網(wǎng)絡(luò)傳輸經(jīng)過壓縮算法壓縮的機組數(shù)據(jù)。
進一步,應(yīng)用服務(wù)器130接收機組301、...、30n的通信模塊(如:GPRS模塊)傳輸回來的機組數(shù)據(jù),并處理這些數(shù)據(jù),所述處理包括但不限于解析傳輸回來的壓縮機組數(shù)據(jù)、對機組數(shù)據(jù)進行實時計算、等等,然后將處理后的數(shù)據(jù)發(fā)送至數(shù)據(jù)庫120進行存儲,和/或,向機組301、...、30n發(fā)送從數(shù)據(jù)庫120獲取的機組需要的數(shù)據(jù)。優(yōu)選地,機組數(shù)據(jù)和機組需要的數(shù)據(jù)均包括實時和/或非實時數(shù)據(jù)。
在一個實施方式中,在數(shù)據(jù)庫120中存儲機組數(shù)據(jù)時,例如:將機組標識(例如為機組的GPRS模塊的MAC地址)同時存儲,以便后續(xù)取用。
進一步,當客戶端201、...、20n需要得到機組301、...、30n的數(shù)據(jù)時,客戶端201、...、20n發(fā)送數(shù)據(jù)請求至數(shù)據(jù)接口服務(wù)器110,在客戶端數(shù)據(jù)請求中,例如包括需要得到的數(shù)據(jù)類型以及機組標識,由數(shù)據(jù)接口服務(wù)器110根據(jù)從客戶端數(shù)據(jù)請求中得到該數(shù)據(jù)類型以及機組標識,從數(shù)據(jù)庫120中取出對應(yīng)機組標識的對應(yīng)數(shù)據(jù)類型的數(shù)據(jù),然后將取得的數(shù)據(jù)返回給客戶端201、...、20n。
圖2示出了本發(fā)明的一種數(shù)據(jù)處理方法的一實施例的流程圖,所述方法可以應(yīng)用于數(shù)據(jù)接口,尤其是應(yīng)用于數(shù)據(jù)接口服務(wù)器,包括:
步驟S210,接收來自客戶端對與指定機組相關(guān)的指定數(shù)據(jù)的數(shù)據(jù)獲取或發(fā)送的請求;
當所述請求為獲取請求時,執(zhí)行步驟S211和步驟S212
步驟S211,從數(shù)據(jù)庫中取得請求獲取的數(shù)據(jù),
步驟S212,將取得的數(shù)據(jù)返回客戶端;
當所述請求為發(fā)送請求時,執(zhí)行步驟S213,
步驟S213,向數(shù)據(jù)庫發(fā)送所述請求發(fā)送的指定數(shù)據(jù)。
反過來,機組301、...、30n也可以通過應(yīng)用服務(wù)器110和數(shù)據(jù)庫120得到客戶端201、...、20n的數(shù)據(jù),例如客戶端201、...、20n下發(fā)的控制指令,例如廠家級參數(shù)修改下發(fā)指令。
客戶端201、...、20n以監(jiān)控中心PC為例,其將要下發(fā)給機組的數(shù)據(jù)發(fā)送至數(shù)據(jù)接口服務(wù)器110,數(shù)據(jù)接口服務(wù)器110將客戶端要下發(fā)的數(shù)據(jù)發(fā)送至數(shù)據(jù)庫,數(shù)據(jù)庫120存儲下發(fā)的數(shù)據(jù)。
優(yōu)選地,數(shù)據(jù)庫120在存儲由客戶端201、...、20n下發(fā)的數(shù)據(jù)時,同時存儲目標機組標識(例如GPRS模塊的Mac地址)。由此,應(yīng)用服務(wù)器110可以從數(shù)據(jù)庫取得針對目標機組的下發(fā)數(shù)據(jù),并將取得的下發(fā)數(shù)據(jù)發(fā)送給目標機組。
可見,通過設(shè)置數(shù)據(jù)接口服務(wù)器110,由數(shù)據(jù)接口服務(wù)器110來接管處理客戶端201、...、20n與應(yīng)用服務(wù)器130之間的數(shù)據(jù)通信,去除了各種客戶端應(yīng)用與應(yīng)用服務(wù)器的連接關(guān)系,使得應(yīng)用服務(wù)器可以專注于處理機組傳輸回來的機組數(shù)據(jù),減輕了應(yīng)用服務(wù)器的運行壓力,并無需提供數(shù)據(jù)庫和應(yīng)用服務(wù)器的地址,從而提高了數(shù)據(jù)庫和應(yīng)用服務(wù)器的安全性。
進一步地,應(yīng)用服務(wù)器130處理的從機組301、...、30n接收到的數(shù)據(jù)和/或數(shù)據(jù)接口服務(wù)器110從客戶端201、...、20n接收到的數(shù)據(jù)包括實時數(shù)據(jù)。數(shù)據(jù)庫120包括用于存儲所述實時數(shù)據(jù)的實時數(shù)據(jù)庫,所述實時數(shù)據(jù)庫基于訂閱、發(fā)布模式實現(xiàn),在實時數(shù)據(jù)庫中建立數(shù)據(jù)頻道,發(fā)布的實時數(shù)據(jù)以數(shù)據(jù)類型進行區(qū)分存入對應(yīng)的數(shù)據(jù)頻道中。其中,進一步地,訂閱-發(fā)布模式是實時數(shù)據(jù)通過數(shù)據(jù)分類而定義數(shù)據(jù)頻道,根據(jù)需要的數(shù)據(jù)的類型而訂閱對應(yīng)的數(shù)據(jù)頻道、和/或根據(jù)數(shù)據(jù)的類型將數(shù)據(jù)發(fā)布到對應(yīng)的數(shù)據(jù)頻道。
仍然以空調(diào)機組為例,機組301、...、30n會產(chǎn)生大量實時數(shù)據(jù),例如包括但不限于空調(diào)運行數(shù)據(jù)、機組通信模塊與服務(wù)器的連接狀態(tài)、機組主動上報的狀態(tài)(例如包括但不限于:機組發(fā)故障、機組正在調(diào)試、機組廠家參數(shù)被修改、機組處于亞健康狀態(tài)、機組主動請求連接狀態(tài))等。
應(yīng)用服務(wù)器130在處理(例如:解析)從機組301、...、30n的通信模塊例如GPRS模塊傳輸回來的數(shù)據(jù)的時候,也可能產(chǎn)生實時數(shù)據(jù),例如包括但不限于服務(wù)器錯誤信息提示(錯誤信息主要是服務(wù)器在解析數(shù)據(jù)、自動創(chuàng)建監(jiān)控工程過程中檢測到的錯誤提示)。
客戶端201、...、20n也可能產(chǎn)生實時數(shù)據(jù),例如包括但不限于廠家級參數(shù)修改下發(fā)指令或者其他控制指令(以空調(diào)機組為例:廠家級參數(shù)通常是空調(diào)機組出貨調(diào)試過程中設(shè)定好的一些機組可設(shè)置參數(shù),只有公司人員通過輸入指定密碼才能進行修改的機組參數(shù))。
進一步地,圖3示出了本發(fā)明的系統(tǒng)中數(shù)據(jù)接口服務(wù)器和實時數(shù)據(jù)庫的一實施例的結(jié)構(gòu)框圖。
在采用訂閱、發(fā)布模式實現(xiàn)的實時數(shù)據(jù)庫121中建立數(shù)據(jù)頻道1211、…、121n,并將上面所述的實時數(shù)據(jù)存入對應(yīng)頻道中。所述頻道例如為根據(jù)所述實時數(shù)據(jù)的類型來分類定義的。示例性地,頻道名稱例如設(shè)計為:首字母+數(shù)據(jù)類型碼(也可以叫功能碼)+“_”+機組標識(由于Mac地址全球唯一,因此,可以采用機組的通信模塊例如GPRS模塊的Mac地址作為機組的標識,當然不限于此,例如還可以采用IP地址,wifi地址等作為通信的地址,也可以采用機組編號,每個廠家生產(chǎn)的機組通常具有唯一編號)。其中,
首字母:代表發(fā)布者,客戶端為C,應(yīng)用服務(wù)器為S;
數(shù)據(jù)類型碼:空調(diào)運行數(shù)據(jù)為96、機組GPRS模塊與服務(wù)器的連接狀態(tài)為97、服務(wù)器錯誤信息提示為EE、廠家級參數(shù)修改下發(fā)指令為98和機組主動上報狀態(tài)為91;
機組標識:如GPRS模塊Mac地址,是每個GPRS監(jiān)控模塊中數(shù)據(jù)傳輸?shù)奈ㄒ粯俗R。
下面舉例說明,實時數(shù)據(jù)庫121為機組301的運行數(shù)據(jù)建立一個單獨的頻道,假設(shè)機組301的GPRS模塊Mac地址為“00-01-6C-06-A6-29”,則該頻道可以命名為:S96_00-01-6C-06-A6-29。實時數(shù)據(jù)庫121為客戶端201發(fā)放給機組301的廠家級參數(shù)修改下發(fā)指令建立一個單獨的頻道,則該頻道可以命名為:C98_00-01-6C-06-A6-29。
進一步地,為了實現(xiàn)客戶端的數(shù)據(jù)訂閱和發(fā)布,數(shù)據(jù)接口服務(wù)器110包括,數(shù)據(jù)訂閱實現(xiàn)模塊111和數(shù)據(jù)發(fā)布實現(xiàn)模塊112。
數(shù)據(jù)訂閱實現(xiàn)模塊111連接實時數(shù)據(jù)庫121,從所述實時數(shù)據(jù)庫121中訂閱所述客戶端201、...、20n請求的實時數(shù)據(jù)對應(yīng)的數(shù)據(jù)頻道,并記錄所述客戶端與對應(yīng)頻道的訂閱關(guān)系。
當客戶端請求獲取實時數(shù)據(jù)時,圖4示出了本發(fā)明的方法中實時數(shù)據(jù)獲取的一實施例的流程圖。
步驟S411,從數(shù)據(jù)庫120中的實時數(shù)據(jù)庫121中訂閱與請求獲取的實時數(shù)據(jù)對應(yīng)的數(shù)據(jù)頻道;
步驟S412,記錄客戶端與對應(yīng)頻道的訂閱關(guān)系;
步驟S413,接收訂閱的數(shù)據(jù)頻道推送的數(shù)據(jù);
步驟S414,基于記錄的訂閱關(guān)系將數(shù)據(jù)返回與數(shù)據(jù)頻道建立訂閱關(guān)系的客戶端。
優(yōu)選地,在步驟S411訂閱數(shù)據(jù)頻道之前,判斷數(shù)據(jù)接口服務(wù)器是否已經(jīng)訂閱過對應(yīng)頻道(步驟S410),如果已經(jīng)訂閱過,無需再次訂閱,直接跳轉(zhuǎn)至步驟S411。
優(yōu)選地,數(shù)據(jù)接口服務(wù)器110的所述數(shù)據(jù)訂閱實現(xiàn)模塊111基于所述實時數(shù)據(jù)的獲取請求,獲取需要訂閱的數(shù)據(jù)類型和機組標識例如GPRS模塊的Mac地址,根據(jù)所述訂閱數(shù)據(jù)類型和機組標識從實時數(shù)據(jù)庫121中訂閱對應(yīng)頻道。其中,數(shù)據(jù)接口服務(wù)器可以向客戶端提供數(shù)據(jù)訂閱方法,可以通過客戶端對實時數(shù)據(jù)的獲取請求觸發(fā)數(shù)據(jù)訂閱方法的調(diào)用。
在實時數(shù)據(jù)庫121中,實現(xiàn)對應(yīng)頻道的訂閱,例如在對應(yīng)頻道的訂閱者清單中添加數(shù)據(jù)接口服務(wù)器110為訂閱者。
下面舉示例以說明,例如當客戶端201需要監(jiān)控機組301的例如運行數(shù)據(jù),則客戶端201可以去訂閱運行數(shù)據(jù)對應(yīng)的頻道,客戶端201調(diào)用數(shù)據(jù)接口服務(wù)器110的數(shù)據(jù)訂閱方法,數(shù)據(jù)接口服務(wù)器110基于所述數(shù)據(jù)訂閱方法的調(diào)用,獲取要訂閱的數(shù)據(jù)類型為運行數(shù)據(jù)96,目標機組301標識例如Mac地址為“00-01-6C-06-A6-29”,于是,數(shù)據(jù)接口服務(wù)器110向?qū)崟r數(shù)據(jù)庫121訂閱包含上述關(guān)鍵信息的頻道(當然不限于此,數(shù)據(jù)接口服務(wù)器110可以根據(jù)頻道命名規(guī)則確定頻道名稱),實時數(shù)據(jù)庫121根據(jù)上述關(guān)鍵信息找到名稱為S96_00-01-6C-06-A6-29的頻道,在該頻道中添加數(shù)據(jù)接口服務(wù)器110為訂閱者。數(shù)據(jù)接口服務(wù)器110記錄客戶端201與頻道S96_00-01-6C-06-A6-29的訂閱關(guān)系。
進一步地,當建立訂閱關(guān)系后,實時數(shù)據(jù)庫121中當該頻道具有數(shù)據(jù)更新時,根據(jù)該頻道的訂閱者記錄,會將更新的數(shù)據(jù)推送給接口服務(wù)器110。數(shù)據(jù)接口服務(wù)器110接收實時數(shù)據(jù)庫121中數(shù)據(jù)頻道推送的數(shù)據(jù)(步驟S440),基于記錄的訂閱關(guān)系將數(shù)據(jù)推送至與所述頻道建立訂閱關(guān)系的客戶端(步驟S450),從而實現(xiàn)了數(shù)據(jù)獲取請求的數(shù)據(jù)返回。
例如,當頻道S96_00-01-6C-06-A6-29具有數(shù)據(jù)更新時,實時數(shù)據(jù)庫121查看該頻道的訂閱者列表,發(fā)現(xiàn)有數(shù)據(jù)接口服務(wù)110,于是將更新的數(shù)據(jù)推送至接口服務(wù)器110,接口服務(wù)器110根據(jù)記錄的訂閱關(guān)系,再將數(shù)據(jù)推送至訂閱客戶端201。
數(shù)據(jù)發(fā)布實現(xiàn)模塊112連接實時數(shù)據(jù)庫121,向?qū)崟r數(shù)據(jù)庫121發(fā)布客戶端請求發(fā)送的實時數(shù)據(jù)。
優(yōu)選地,圖5示出了本發(fā)明的方法中實時數(shù)據(jù)發(fā)送的一實施例的流程圖。
數(shù)據(jù)接口服務(wù)器110基于所述實時數(shù)據(jù)的發(fā)送請求,獲取目標機組標識(例如Mac地址)和請求發(fā)送的數(shù)據(jù)類型(步驟S510),向?qū)崟r數(shù)據(jù)庫121中對應(yīng)頻道發(fā)布所述請求發(fā)送的實時數(shù)據(jù)(步驟S511)。其中,數(shù)據(jù)接口服務(wù)器110可以向客戶端提供數(shù)據(jù)發(fā)布方法,可以通過客戶端對實時數(shù)據(jù)的發(fā)布請求觸發(fā)數(shù)據(jù)發(fā)布方法的調(diào)用。
例如,客戶端201需要向機組301推送廠家級參數(shù)修改下發(fā)指令時,客戶端201調(diào)用數(shù)據(jù)接口服務(wù)器110的數(shù)據(jù)發(fā)布方法,數(shù)據(jù)接口服務(wù)器110中數(shù)據(jù)發(fā)布實現(xiàn)模塊112基于數(shù)據(jù)發(fā)布方法的調(diào)用,取得目標機組301的標識如MAC地址為“00-01-6C-06-A6-29”和需要推送的數(shù)據(jù)類型為廠家級參數(shù)修改下發(fā)指令98,向?qū)崟r數(shù)據(jù)庫121中包括上述關(guān)鍵信息的頻道C98_00-01-6C-06-A6-29發(fā)布所述廠家級參數(shù)修改下發(fā)指令。
進一步地,數(shù)據(jù)接口服務(wù)器110還包括:數(shù)據(jù)訂閱取消實現(xiàn)模塊,其連接實時數(shù)據(jù)庫121,在從實時數(shù)據(jù)庫121中對對應(yīng)的數(shù)據(jù)頻道實現(xiàn)訂閱后,當從客戶端接收到取消數(shù)據(jù)訂閱的請求時,取消客戶端對請求取消訂閱的數(shù)據(jù)對應(yīng)的數(shù)據(jù)頻道的訂閱。
圖6示出了本發(fā)明的方法中實時取消數(shù)據(jù)訂閱的一實施例的流程圖,
步驟S610,刪除客戶端與對應(yīng)頻道的訂閱關(guān)系,
步驟S611,判斷對應(yīng)頻道是否還存在訂閱關(guān)系,
步驟S612,如果是,則繼續(xù)接收對應(yīng)頻道推送的數(shù)據(jù);
步驟S613,如果否,則從實時數(shù)據(jù)庫中取消數(shù)據(jù)接口服務(wù)器對對應(yīng)頻道的訂閱。
其中,數(shù)據(jù)接口服務(wù)器110可以向客戶端提供取消數(shù)據(jù)訂閱方法,可以通過客戶端對實時數(shù)據(jù)的訂閱取消請求觸發(fā)取消數(shù)據(jù)訂閱方法的調(diào)用。
進一步地,應(yīng)用服務(wù)器130連接實時數(shù)據(jù)庫121,向?qū)崟r數(shù)據(jù)庫121的數(shù)據(jù)頻道1211、…、121n發(fā)布機組301、...、30n需要發(fā)布的實時數(shù)據(jù),并從所述實時數(shù)據(jù)庫中訂閱機組301、...、30n需要訂閱的數(shù)據(jù)頻道。
例如,當機組301產(chǎn)生新的運行數(shù)據(jù)時,將新數(shù)據(jù)傳輸回應(yīng)用服務(wù)器130,應(yīng)用服務(wù)器130根據(jù)機組301的標識例如GPRS模塊的Mac地址“00-01-6C-06-A6-29”和數(shù)據(jù)類型(運行數(shù)據(jù)96),將新的運行數(shù)據(jù)發(fā)布到所述實時數(shù)據(jù)庫中數(shù)據(jù)頻道S96_00-01-6C-06-A6-29。
例如,當機組301需要訂閱針對自身的廠家級參數(shù)修改下發(fā)指令,則機組301請求應(yīng)用服務(wù)器130去實時數(shù)據(jù)庫中訂閱,應(yīng)用服務(wù)器130根據(jù)機組301的標識例如GPRS模塊的Mac地址00-01-6C-06-A6-29,以及訂閱數(shù)據(jù)類型(廠家級參數(shù)修改下發(fā)指令98),在實時數(shù)據(jù)庫121中訂閱頻道C98_00-01-6C-06-A6-29。
進一步地,當機組301通過應(yīng)用服務(wù)器130向?qū)崟r數(shù)據(jù)庫121訂閱了頻道C98_00-01-6C-06-A6-29,則在該頻道具有數(shù)據(jù)更新時,所述實時數(shù)據(jù)庫121查看該頻道的訂閱者列表,發(fā)現(xiàn)有應(yīng)用服務(wù)器130,于是將更新的數(shù)據(jù)推送至應(yīng)用服務(wù)130,應(yīng)用服務(wù)130再將更新數(shù)據(jù)推送至訂閱機組301。
通過采用訂閱發(fā)布模式來實現(xiàn)實時數(shù)據(jù)庫121,讓客戶端和機組主動去訂閱它們自己需要的數(shù)據(jù)頻道,應(yīng)用服務(wù)器只需要把解析好的空調(diào)機組數(shù)據(jù)發(fā)布到對應(yīng)數(shù)據(jù)頻道,從而實現(xiàn)去除應(yīng)用服務(wù)器上的客戶端應(yīng)用鏈接、數(shù)據(jù)請求等關(guān)系的處理,減少服務(wù)器運行壓力和提高服務(wù)器安全性,同時兼容多種應(yīng)用的空調(diào)數(shù)據(jù)的訪問調(diào)用。
優(yōu)選地,實時數(shù)據(jù)庫121為Redis數(shù)據(jù)庫,這種數(shù)據(jù)庫(內(nèi)存數(shù)據(jù)庫)具有很好的訂閱發(fā)布機制、可訂閱一個頻道并接收來自應(yīng)用服務(wù)器的完整的消息發(fā)布記錄,并且,其可以采用鍵-值對存儲系統(tǒng)而用于數(shù)據(jù)在內(nèi)存中的可持久化。
進一步地,應(yīng)用服務(wù)器130從機組301、...、30n接收到的數(shù)據(jù)包括非實時數(shù)據(jù),
數(shù)據(jù)庫120包括存儲所述非實時數(shù)據(jù)的歷史數(shù)據(jù)庫122,
所述歷史數(shù)據(jù)庫122通過接口服務(wù)器110向客戶端201、...、20n提供非實時數(shù)據(jù)。
非實時數(shù)據(jù)包括但不限于:工程詳細信息(包括:工程名稱、安裝位置、銷售公司等)、機組詳細信息(包括:機組類型、機組型號、機組條碼、維保日期等)、機組發(fā)生故障記錄信息(包括:發(fā)生故障機組信息、故障名稱、發(fā)生時間等)、機組運行數(shù)據(jù)等。
更進一步地,數(shù)據(jù)接口服務(wù)器110從所述客戶端接收對所述非實時數(shù)據(jù)的訪問請求,數(shù)據(jù)接口服務(wù)器110從歷史數(shù)據(jù)庫122中獲取非實時數(shù)據(jù),并將獲取的所述非實時數(shù)據(jù)返回給客戶端。其中,數(shù)據(jù)接口服務(wù)器110可以向客戶端提供非實時數(shù)據(jù)訪問方法,可以通過客戶端對非實時數(shù)據(jù)的訪問請求觸發(fā)非實時數(shù)據(jù)訪問方法的調(diào)用。
也就是說,當客戶端要訪問非實時數(shù)據(jù)時,客戶端調(diào)用接口服務(wù)器的非實時數(shù)據(jù)訪問方法,數(shù)據(jù)接口服務(wù)器110從歷史數(shù)據(jù)庫122中獲取客戶端所需要的非實時數(shù)據(jù),并將獲取的所述非實時數(shù)據(jù)返回給客戶端。
圖7示出了本發(fā)明的數(shù)據(jù)處理系統(tǒng)中同時具有實時數(shù)據(jù)庫和非實時數(shù)據(jù)庫的一實施例的框圖。
客戶端201~20n連接數(shù)據(jù)接口服務(wù)器110,從數(shù)據(jù)接口服務(wù)器110請求數(shù)據(jù)或者向數(shù)據(jù)接口服務(wù)器110發(fā)送數(shù)據(jù),
數(shù)據(jù)接口服務(wù)器110區(qū)分客戶端的數(shù)據(jù)請求是針對實時數(shù)據(jù)還是針對非實時數(shù)據(jù),當針對實時數(shù)據(jù)時,數(shù)據(jù)接口服務(wù)器110從實時數(shù)據(jù)庫121中訂閱實時數(shù)據(jù)或者向?qū)崟r數(shù)據(jù)庫121中發(fā)布實時數(shù)據(jù),實時數(shù)據(jù)庫121將訂閱的數(shù)據(jù)推送至數(shù)據(jù)接口服務(wù)器110,數(shù)據(jù)接口服務(wù)器110將數(shù)據(jù)返回客戶端;當數(shù)據(jù)請求是針對非實時數(shù)據(jù)時,數(shù)據(jù)接口服務(wù)器110從例如歷史數(shù)據(jù)庫122中取得非實時數(shù)據(jù)或者向歷史數(shù)據(jù)庫122發(fā)送非實時數(shù)據(jù),從歷史數(shù)據(jù)庫122取得的非實時數(shù)據(jù)返回給客戶端。
應(yīng)用服務(wù)器120連接機組301~30n的通信模塊,處理機組實時數(shù)據(jù)向?qū)崟r數(shù)據(jù)庫121的發(fā)布和從實時數(shù)據(jù)庫121訂閱機組所需的實時數(shù)據(jù),并將非實時數(shù)據(jù)存儲在歷史數(shù)據(jù)庫122中以供客戶端調(diào)用。
以上對本發(fā)明的數(shù)據(jù)處理系統(tǒng)及方法進行了描述。根據(jù)本發(fā)明的上述方案,通過設(shè)置訂閱和發(fā)布數(shù)據(jù)的數(shù)據(jù)中轉(zhuǎn)接口如:數(shù)據(jù)接口服務(wù)器,由數(shù)據(jù)接口服務(wù)器來接管處理客戶端與應(yīng)用服務(wù)器和數(shù)據(jù)庫之間的數(shù)據(jù)通信,去除了各種客戶端應(yīng)用與應(yīng)用服務(wù)器和數(shù)據(jù)庫的連接關(guān)系,也就去除了服務(wù)器對于客戶端與它的鏈接關(guān)系、實時數(shù)據(jù)請求關(guān)系和客戶端連接的GPRS模塊關(guān)系的處理減輕服務(wù)器的壓力,即讓服務(wù)器專注于機組的數(shù)據(jù)的解析運算和存儲而減輕了應(yīng)用服務(wù)器的運行壓力;同時提供統(tǒng)一接口地址(如:數(shù)據(jù)接口服務(wù)器)給各應(yīng)用調(diào)用實時數(shù)據(jù)和歷史數(shù)據(jù),利用統(tǒng)一接口兼容各種應(yīng)用機組數(shù)據(jù)的調(diào)用獲取、同時統(tǒng)一機組的實時數(shù)據(jù)和歷史數(shù)據(jù)的獲取,減少服務(wù)器內(nèi)容修改導(dǎo)致其他應(yīng)用的不必要更改;并且,避免了服務(wù)器和數(shù)據(jù)庫的實際地址暴露,提高了數(shù)據(jù)庫和應(yīng)用服務(wù)器的安全性。
需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。