情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng)。在服務(wù)器端,將數(shù)據(jù)庫分為累積數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)和待錄緩存三個(gè)組;實(shí)時(shí)數(shù)據(jù)發(fā)生器讀取累積數(shù)據(jù),進(jìn)行條件選擇、傳輸排期和目標(biāo)判斷機(jī)制后,將當(dāng)期需要傳送的數(shù)據(jù)編譯加密后與其觸發(fā)器寫入實(shí)時(shí)數(shù)據(jù);數(shù)據(jù)錄入模塊在檢測到待錄緩存非空的情況下,對(duì)傳入的XML數(shù)據(jù)包進(jìn)行解析和可信度檢測機(jī)制,將包內(nèi)數(shù)據(jù)應(yīng)用于數(shù)據(jù)庫的累積數(shù)據(jù);傳輸引擎包括輸入終端和輸出終端對(duì)外界可見;預(yù)分析引擎與數(shù)據(jù)庫的實(shí)時(shí)數(shù)據(jù)建立連接;客戶端的后臺(tái)亦可采用與服務(wù)器端相同的傳輸引擎設(shè)計(jì)。本發(fā)明可以緩解網(wǎng)絡(luò)壓力并降低服務(wù)器的負(fù)載要求,彌補(bǔ)現(xiàn)有數(shù)據(jù)自動(dòng)化系統(tǒng)的實(shí)時(shí)性、安全性的不足。
【專利說明】情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種客戶端-服務(wù)器模式的數(shù)據(jù)自動(dòng)化架構(gòu),是一套基于情境化日程(時(shí)間、地點(diǎn)等條件)進(jìn)行綜合運(yùn)算,并且可以拓展適配任何類型的數(shù)據(jù)處理、輸入輸出終端進(jìn)行數(shù)據(jù)同步推送的實(shí)時(shí)觸發(fā)型模塊化數(shù)據(jù)系統(tǒng)。
【背景技術(shù)】
[0002]目前,公知的數(shù)據(jù)自動(dòng)化系統(tǒng)是由服務(wù)端軟硬件和客戶端軟硬件兩部分組成,分別運(yùn)行兩套完整的定制系統(tǒng)。數(shù)據(jù)按照實(shí)際需求進(jìn)行排列存儲(chǔ),存儲(chǔ)結(jié)構(gòu)因數(shù)據(jù)用途而異。使用此類的數(shù)據(jù)系統(tǒng)時(shí),服務(wù)器安裝商業(yè)化的通用數(shù)據(jù)庫套件直接供給數(shù)據(jù)或透過一個(gè)專門開發(fā)的網(wǎng)絡(luò)中繼軟件與客戶端進(jìn)行認(rèn)證和建立連接??蛻羰褂媒?jīng)過定制的客戶端軟件,接入服務(wù)器所在的內(nèi)網(wǎng)或互聯(lián)網(wǎng),以O(shè)DBC類接口連接數(shù)據(jù)庫,或者經(jīng)由特殊設(shè)計(jì)的通訊協(xié)議連接服務(wù)端中繼軟件并間接與數(shù)據(jù)庫建立連接。數(shù)據(jù)的交換以“獲取”的形式進(jìn)行,即客戶操作客戶端軟件,主動(dòng)向服務(wù)器發(fā)出數(shù)據(jù)獲取或修改請求。服務(wù)器端軟件在收到請求后對(duì)數(shù)據(jù)進(jìn)行存取操作,并以類似的協(xié)議和方式向客戶端提供反饋(執(zhí)行結(jié)果或獲取的數(shù)據(jù))。另一種常用的數(shù)據(jù)存取方式經(jīng)由一臺(tái)單獨(dú)設(shè)置的網(wǎng)頁服務(wù)器連接到數(shù)據(jù)服務(wù)器:當(dāng)客戶通過網(wǎng)頁方式登錄網(wǎng)站時(shí),網(wǎng)頁服務(wù)器虛擬出一個(gè)客戶實(shí)例,并以網(wǎng)頁的形式傳達(dá)用戶指令和反饋數(shù)據(jù)訪問的結(jié)果。然而,這類數(shù)據(jù)系統(tǒng)由于數(shù)據(jù)服務(wù)器通過監(jiān)聽指令的方式對(duì)數(shù)據(jù)做出操作,并不能自主做出實(shí)時(shí)的數(shù)據(jù)推送操作;如采用客戶端或網(wǎng)頁服務(wù)器反復(fù)請求數(shù)據(jù)的方式,則會(huì)非常容易導(dǎo)致服務(wù)器系統(tǒng)過載;同時(shí),由于用戶界面的各元素與相關(guān)數(shù)據(jù)結(jié)構(gòu)緊密對(duì)應(yīng),各個(gè)模塊(包括數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)處理算法和用戶界面)的拓展難度很大,尤其是用戶被局限于僅僅使用客戶端作為數(shù)據(jù)修改訪問的惟一途徑,而由于此類系統(tǒng)的高度集成封閉特性,修改功能意味著重新開發(fā)整個(gè)系統(tǒng)的二次成本。
【發(fā)明內(nèi)容】
[0003]為了緩解網(wǎng)絡(luò)壓力并降低服務(wù)器的負(fù)載要求,彌補(bǔ)現(xiàn)有數(shù)據(jù)自動(dòng)化系統(tǒng)的實(shí)時(shí)性、安全性的不足,本發(fā)明提供一種情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng)。
[0004]本發(fā)明的技術(shù)方案如下:
[0005]一種情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng),在服務(wù)器端,
[0006]設(shè)置一個(gè)數(shù)據(jù)庫,將數(shù)據(jù)庫分為累積數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)和待錄緩存三個(gè)組,其中,累積數(shù)據(jù)用于存儲(chǔ)既有的數(shù)據(jù)基礎(chǔ),實(shí)時(shí)數(shù)據(jù)用于存儲(chǔ)當(dāng)期準(zhǔn)備進(jìn)行推送的數(shù)據(jù)與傳輸計(jì)劃,待錄緩存用于存儲(chǔ)已經(jīng)輸入并即將錄入累積數(shù)據(jù)組的數(shù)據(jù);
[0007]設(shè)置一個(gè)實(shí)時(shí)數(shù)據(jù)發(fā)生器,實(shí)時(shí)數(shù)據(jù)發(fā)生器用于讀取累積數(shù)據(jù),結(jié)合系統(tǒng)內(nèi)部的規(guī)則和拓展模塊所要求的條件篩選出需要進(jìn)行傳送的數(shù)據(jù);在進(jìn)行傳輸計(jì)劃排期和目標(biāo)判斷機(jī)制后,將當(dāng)期需要傳送的數(shù)據(jù)編譯為XML格式的數(shù)據(jù)包,加密后與其觸發(fā)器寫入數(shù)據(jù)庫的實(shí)時(shí)數(shù)據(jù)部分;
[0008]設(shè)置一個(gè)數(shù)據(jù)錄入模塊,數(shù)據(jù)錄入模塊在檢測到待錄緩存非空的情況下,自隊(duì)列開頭解開傳入的XML數(shù)據(jù)包,并對(duì)其準(zhǔn)確性和可信度進(jìn)行評(píng)估確認(rèn);在確認(rèn)完畢后將包內(nèi)數(shù)據(jù)應(yīng)用于數(shù)據(jù)庫的累積數(shù)據(jù)部分,同時(shí)將回執(zhí)寫入實(shí)時(shí)數(shù)據(jù)模塊的傳輸隊(duì)列,通知該數(shù)據(jù)包的來源運(yùn)行結(jié)果;
[0009]設(shè)置一個(gè)傳輸引擎,傳輸引擎包括一個(gè)輸入終端和一個(gè)輸出終端對(duì)外界可見;設(shè)置一個(gè)傳輸緩存,傳輸緩存包括一個(gè)傳出緩存和一個(gè)傳入緩存;設(shè)置一個(gè)預(yù)分析引擎,預(yù)分析引擎與數(shù)據(jù)庫的實(shí)時(shí)數(shù)據(jù)建立連接;輸出時(shí),預(yù)分析引擎通過對(duì)實(shí)時(shí)數(shù)據(jù)中傳輸觸發(fā)器進(jìn)行輪詢,結(jié)合外部條件確認(rèn)需要發(fā)送的數(shù)據(jù)包;預(yù)分析引擎同時(shí)打開準(zhǔn)備傳輸?shù)臄?shù)據(jù)包,確認(rèn)是否有需要外部數(shù)據(jù)源轉(zhuǎn)發(fā)的信息,啟動(dòng)對(duì)應(yīng)的驅(qū)動(dòng)程序請求外部數(shù)據(jù)源,并將這些數(shù)據(jù)一同匯入輸出的數(shù)據(jù)流;傳送的數(shù)據(jù)流根據(jù)硬件或操作系統(tǒng)的固有機(jī)制進(jìn)入傳出緩存,最后由輸出終端負(fù)責(zé)定向送到指定的目標(biāo);輸入時(shí),輸入終端接收到傳送的數(shù)據(jù)流,數(shù)據(jù)流根據(jù)硬件或操作系統(tǒng)的固有機(jī)制進(jìn)入傳入緩存;預(yù)分析引擎讀入數(shù)據(jù)頭,判斷該數(shù)據(jù)的目標(biāo)是外部目標(biāo)還是數(shù)據(jù)庫;如數(shù)據(jù)屬于拓展模塊定義的外部目標(biāo),將直接轉(zhuǎn)發(fā)數(shù)據(jù)給相應(yīng)的驅(qū)動(dòng)程序,從而轉(zhuǎn)向送出系統(tǒng);如數(shù)據(jù)屬于數(shù)據(jù)庫,則將編譯好的數(shù)據(jù)包存入待錄緩存。
[0010]所述累積數(shù)據(jù)包括用戶數(shù)據(jù)和所有基于情境的數(shù)據(jù)列表,其中包括用戶可自定義的各種情境的描述和終端節(jié)點(diǎn)的描述;累積數(shù)據(jù)庫組內(nèi)所有的數(shù)據(jù)表?xiàng)l目均有惟一標(biāo)示符進(jìn)行標(biāo)記,并作為表示數(shù)據(jù)關(guān)系的獨(dú)一方式;每一個(gè)數(shù)據(jù)表均鏈接到另一個(gè)數(shù)據(jù)表中的條目;如有表中一個(gè)條目需要鏈接至多個(gè)目標(biāo)條目時(shí),則建立一個(gè)鏈接表,放置兩列分別存放重復(fù)的源和對(duì)象的標(biāo)示符;累積數(shù)據(jù)還包括各個(gè)拓展模塊的登記與配置、數(shù)據(jù)系統(tǒng)的設(shè)置。
[0011]所述實(shí)時(shí)數(shù)據(jù)包括已連接的輸入輸出節(jié)點(diǎn)注冊列表、當(dāng)期需要向外輸出的數(shù)據(jù)隊(duì)列與輸出觸發(fā)器列表;其中,已編譯好的數(shù)據(jù)包以加密的XML形式和密鑰一同存入數(shù)據(jù)隊(duì)列,并標(biāo)注標(biāo)示符以供觸發(fā)器列表引用;每個(gè)觸發(fā)器除了綁定一個(gè)數(shù)據(jù)包以外,同時(shí)標(biāo)明該數(shù)據(jù)包被發(fā)送的條件和目標(biāo);觸發(fā)條件一并寫入XML數(shù)據(jù)包的文件頭。
[0012]所述待錄緩存負(fù)責(zé)暫時(shí)存放輸入的未處理的數(shù)據(jù)包。
[0013]在客戶端,后臺(tái)采用和服務(wù)器端相同的傳輸引擎設(shè)計(jì);客戶端選擇實(shí)時(shí)輸入和輸出數(shù)據(jù)并直接作出反應(yīng),或者通過私有數(shù)據(jù)庫緩存數(shù)據(jù);自行定義目標(biāo)驅(qū)動(dòng)程序,以解析和生成數(shù)據(jù)包,并負(fù)責(zé)從其自定義的任何信息源匯入數(shù)據(jù)及對(duì)這些信息源分發(fā)數(shù)據(jù);采用私有數(shù)據(jù)庫緩存數(shù)據(jù)的客戶端,由一個(gè)簡化的預(yù)分析引擎負(fù)責(zé)數(shù)據(jù)庫的計(jì)劃管理,并在觸發(fā)器的條件滿足是按需激活目標(biāo)驅(qū)動(dòng)程序。
[0014]本發(fā)明的有益技術(shù)效果是:
[0015]本發(fā)明以情境(時(shí)間、地點(diǎn)、相關(guān)人員等)為核心框架,在數(shù)據(jù)結(jié)構(gòu)和服務(wù)器-客戶端軟件的結(jié)構(gòu)上對(duì)實(shí)時(shí)推送數(shù)據(jù)和附加功能模塊專門進(jìn)行優(yōu)化。以公知的數(shù)據(jù)庫軟件為基礎(chǔ),因此現(xiàn)有的數(shù)據(jù)系統(tǒng)亦可轉(zhuǎn)換為該上述的結(jié)構(gòu)。通過服務(wù)器端數(shù)據(jù)處理軟件分開存儲(chǔ)已計(jì)劃的實(shí)時(shí)推送數(shù)據(jù)、緩存和累積性數(shù)據(jù),避免客戶端的分別向服務(wù)器請求數(shù)據(jù),保證了各個(gè)客戶端接收的數(shù)據(jù)由服務(wù)器同步生成、發(fā)出,實(shí)現(xiàn)了一站式的實(shí)時(shí)數(shù)據(jù)處理,并確保數(shù)據(jù)的安全隔離、不被外接任意訪問。
[0016]同時(shí),為了確保數(shù)據(jù)傳輸?shù)倪^程中不存在僵尸節(jié)點(diǎn)篡改數(shù)據(jù)的可能性,并且為數(shù)據(jù)系統(tǒng)節(jié)點(diǎn)功能、表現(xiàn)形式的拓展提供可能性,本發(fā)明在服務(wù)器端和客戶端采用了獨(dú)立的數(shù)據(jù)傳輸模塊,使用統(tǒng)一、標(biāo)準(zhǔn)化的數(shù)據(jù)格式和接口傳輸各個(gè)類型的數(shù)據(jù),并與數(shù)據(jù)的最終作用目標(biāo)進(jìn)行連接。服務(wù)端的輸出終端負(fù)責(zé)按照實(shí)時(shí)數(shù)據(jù)庫中的要求按時(shí)、定向分發(fā)所有數(shù)據(jù),而輸入終端負(fù)責(zé)分析外界客戶端輸入的數(shù)據(jù),并針對(duì)其目標(biāo)進(jìn)行分揀、轉(zhuǎn)發(fā)或存入數(shù)據(jù)庫的待錄緩存。對(duì)于各個(gè)數(shù)據(jù)源、分發(fā)目標(biāo)、數(shù)據(jù)格式和處理算法,允許用戶自行編寫驅(qū)動(dòng)程序模塊,以腳本或機(jī)器碼的形式插入到各個(gè)數(shù)據(jù)處理傳輸模塊中進(jìn)行功能拓展。使用集成化的傳輸端也保證了整個(gè)傳輸和處理過程與數(shù)據(jù)最終目的無關(guān),只需更改驅(qū)動(dòng)程序即可實(shí)現(xiàn)數(shù)據(jù)的不同利用方式??蛻舳藢?duì)數(shù)據(jù)進(jìn)行的任何操作也僅限以請求的方式發(fā)送至服務(wù)器,只有當(dāng)服務(wù)器的輸入模塊許可、存入待錄緩存并進(jìn)一步分析后方可影響累積數(shù)據(jù)的內(nèi)容。
[0017]綜上所述,本發(fā)明確保了情境化數(shù)據(jù)庫與客戶端交互的實(shí)時(shí)性,并保證了服務(wù)器端的數(shù)據(jù)庫與外界安全隔離,防止數(shù)據(jù)被竊取或篡改。統(tǒng)一集成化的數(shù)據(jù)處理保證了處理系統(tǒng)的輕量化和同步性、穩(wěn)定性。同時(shí),通過驅(qū)動(dòng)程序的概念,可以對(duì)數(shù)據(jù)庫的內(nèi)容、外部數(shù)據(jù)源和數(shù)據(jù)目標(biāo)進(jìn)行定義,確保的數(shù)據(jù)和使用數(shù)據(jù)的節(jié)點(diǎn)的靈活性和多樣性。這在現(xiàn)今的物聯(lián)網(wǎng)和云計(jì)算領(lǐng)域滿足了許多核心需求,如統(tǒng)一的數(shù)據(jù)引擎不僅能對(duì)累積性的數(shù)據(jù)作出分析操作,也能實(shí)時(shí)對(duì)數(shù)據(jù)流進(jìn)行處理和定向轉(zhuǎn)發(fā)。同時(shí),客戶端的數(shù)據(jù)節(jié)點(diǎn)不僅可以是計(jì)算機(jī)的另一個(gè)軟件,還可以為計(jì)算機(jī)到物理計(jì)算設(shè)備(如物聯(lián)網(wǎng)微控制器)的接口 ;輕量化版本的數(shù)據(jù)引擎甚至可以運(yùn)行在ARM、AVR等嵌入式系統(tǒng)上,從而將傳感器等的數(shù)據(jù)直接匯總至服務(wù)器端數(shù)據(jù)庫;通過用戶定義的拓展驅(qū)動(dòng)程序向服務(wù)器提供算法,輸出的數(shù)據(jù)流可直接作用于物理設(shè)備上(如電動(dòng)機(jī)、門鎖、電器開關(guān)等)。
【專利附圖】
【附圖說明】
[0018]圖1是本發(fā)明系統(tǒng)的宏觀結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0019]下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】做進(jìn)一步說明。
[0020]本發(fā)明系統(tǒng)的宏觀結(jié)構(gòu)參見圖1。
[0021]在服務(wù)器端,為了提高服務(wù)器端數(shù)據(jù)處理效率和安全性,本發(fā)明采用以下的解決方案:
[0022]首先,數(shù)據(jù)庫被分為三個(gè)主要組:累積數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)和待錄緩存,分別用于存儲(chǔ)既有的數(shù)據(jù)基礎(chǔ)、當(dāng)期準(zhǔn)備進(jìn)行推送的數(shù)據(jù)與傳輸計(jì)劃、已經(jīng)輸入并即將錄入累積數(shù)據(jù)組的數(shù)據(jù)。
[0023]其中,累積數(shù)據(jù)包括用戶數(shù)據(jù)和所有基于情境的數(shù)據(jù)列表(如基于時(shí)間段的實(shí)時(shí)事件列表,地點(diǎn)列表,基于截止時(shí)間的待辦事項(xiàng)列表等),其中包括用戶可自定義的各種情境(如相關(guān)設(shè)備,相關(guān)用戶組等)的描述和終端節(jié)點(diǎn)的描述。累積數(shù)據(jù)庫組內(nèi)所有的數(shù)據(jù)表?xiàng)l目均有惟一標(biāo)不符(UUID)進(jìn)行標(biāo)記,并作為表不數(shù)據(jù)關(guān)系的獨(dú)一方式。每一個(gè)數(shù)據(jù)表均需要通過一定的方式鏈接到另一個(gè)數(shù)據(jù)表中的條目,如事件涉及到相關(guān)用戶與地點(diǎn)、固定的終端節(jié)點(diǎn)與地點(diǎn)相綁定等。如有表中一個(gè)條目需要鏈接至多個(gè)目標(biāo)條目時(shí)(如一個(gè)事件影響到多個(gè)相關(guān)用戶),則建立一個(gè)鏈接表,放置兩列分別存放重復(fù)的源和對(duì)象的標(biāo)示符。綁定鏈接的最終目的是在實(shí)際查找時(shí)特定的SQL腳本可以在所有表格間自動(dòng)路由,從而整合各個(gè)情境和各方面內(nèi)容來得出完整的結(jié)果。累積數(shù)據(jù)還包括各個(gè)拓展模塊的登記與配置、數(shù)據(jù)系統(tǒng)的設(shè)置。
[0024]實(shí)時(shí)數(shù)據(jù)包括已連接的輸入輸出節(jié)點(diǎn)注冊列表(用戶憑據(jù)、地點(diǎn)、IP地址等描述節(jié)點(diǎn)的數(shù)據(jù))、當(dāng)期需要向外輸出的數(shù)據(jù)隊(duì)列與輸出觸發(fā)器列表。其中,已編譯好的數(shù)據(jù)包以加密的XML形式和密鑰一同存入數(shù)據(jù)隊(duì)列,并標(biāo)注UUID標(biāo)示符以供觸發(fā)器列表引用。每個(gè)觸發(fā)器除了綁定一個(gè)數(shù)據(jù)包(XML文本或十六進(jìn)制封包)以外,同時(shí)標(biāo)明該數(shù)據(jù)包被發(fā)送的條件(立即觸發(fā)、定時(shí)觸發(fā)、外部消息觸發(fā)或一般條件觸發(fā),如特定的人員上線)和目標(biāo)。為方便客戶端驗(yàn)證數(shù)據(jù)的時(shí)效性,觸發(fā)條件一并寫入XML數(shù)據(jù)包的文件頭。
[0025]待錄緩存負(fù)責(zé)暫時(shí)存放輸入的未處理的數(shù)據(jù)包。
[0026]在系統(tǒng)的實(shí)時(shí)運(yùn)作過程中,由一個(gè)專門的實(shí)時(shí)數(shù)據(jù)發(fā)生器讀取累積數(shù)據(jù),結(jié)合系統(tǒng)內(nèi)部的規(guī)則和拓展模塊所要求的條件,篩選出需要進(jìn)行傳送的數(shù)據(jù)。其在進(jìn)行傳輸計(jì)劃排期和目標(biāo)判斷(組合各個(gè)相同的數(shù)據(jù)合并為一個(gè)廣播任務(wù))機(jī)制后,將當(dāng)期需要傳送的數(shù)據(jù)編譯為XML格式的分別數(shù)據(jù)包,加密后與其觸發(fā)器寫入數(shù)據(jù)庫的實(shí)時(shí)數(shù)據(jù)部分。對(duì)于事件列表中條件為周期性重復(fù)的事件、由拓展模塊定義條件的事件,將會(huì)根據(jù)定義的算法排入傳輸隊(duì)列。實(shí)時(shí)數(shù)據(jù)發(fā)生器只有在進(jìn)入新一個(gè)運(yùn)行周期或是累積數(shù)據(jù)已經(jīng)發(fā)生改變時(shí)才會(huì)激活。(當(dāng)數(shù)據(jù)發(fā)生改變時(shí),實(shí)時(shí)數(shù)據(jù)發(fā)生器會(huì)優(yōu)先準(zhǔn)備刷新已更改的部分,盡可能避免重新掃描數(shù)據(jù)庫的內(nèi)容)。
[0027]對(duì)于進(jìn)入待錄緩存的數(shù)據(jù),一個(gè)單獨(dú)的數(shù)據(jù)錄入模塊在檢測到其非空的情況下會(huì)自隊(duì)列開頭解開傳入的XML數(shù)據(jù)包,并對(duì)其準(zhǔn)確性(簽名和校驗(yàn)和)和可信度(認(rèn)證信息和數(shù)據(jù)正確性,如潛在的導(dǎo)致系統(tǒng)故障的無效數(shù)據(jù)和與系統(tǒng)沖突的數(shù)據(jù))進(jìn)行評(píng)估確認(rèn)。在確認(rèn)完畢后將包內(nèi)數(shù)據(jù)應(yīng)用于數(shù)據(jù)庫的累積數(shù)據(jù)部分,同時(shí)將回執(zhí)寫入實(shí)時(shí)數(shù)據(jù)模塊的傳輸隊(duì)列,通知該數(shù)據(jù)包的來源運(yùn)行結(jié)果。如同一來源的數(shù)據(jù)被反復(fù)確認(rèn)為無效信息,安全機(jī)制會(huì)停止處理其信息,并對(duì)來源的客戶端發(fā)出掛起通知,其后不再接受該來源的數(shù)據(jù),也不對(duì)其回執(zhí)。
[0028]傳輸方面,系統(tǒng)不使用公知的數(shù)據(jù)庫網(wǎng)絡(luò)訪問方式對(duì)數(shù)據(jù)進(jìn)行傳輸,而是采用專門的傳輸引擎以確保數(shù)據(jù)不對(duì)外透明。傳輸引擎有一個(gè)輸入終端和一個(gè)輸出終端對(duì)外界可見;一個(gè)輸入和輸出預(yù)分析引擎與數(shù)據(jù)庫的實(shí)時(shí)數(shù)據(jù)建立連接。
[0029]輸出時(shí),預(yù)分析引擎通過對(duì)實(shí)時(shí)數(shù)據(jù)中傳輸觸發(fā)器進(jìn)行輪詢,結(jié)合外部條件(時(shí)間和實(shí)時(shí)數(shù)據(jù)中其他的狀態(tài)數(shù)據(jù))確認(rèn)需要發(fā)送的數(shù)據(jù)包。如檢測到特定的廣播數(shù)據(jù)包有部分目標(biāo)下線或因其他原因不可聯(lián)系,則傳輸引擎可以更改傳輸隊(duì)列,將未傳出的部分新建條目;對(duì)于已經(jīng)過期但無法傳送的條目,將觸發(fā)標(biāo)記改為實(shí)時(shí)傳輸;按系統(tǒng)偏好設(shè)置超出有效時(shí)長的將該條目直接從隊(duì)列移除。預(yù)分析引擎同時(shí)打開準(zhǔn)備傳輸?shù)臄?shù)據(jù)包,確認(rèn)是否有需要外部數(shù)據(jù)源轉(zhuǎn)發(fā)的信息(如:引用了外部文件服務(wù)器的數(shù)據(jù)包,需要文件服務(wù)器同時(shí)傳輸相應(yīng)的文件),啟動(dòng)對(duì)應(yīng)的驅(qū)動(dòng)程序請求外部數(shù)據(jù)源,并將這些數(shù)據(jù)一同匯入輸出的數(shù)據(jù)流。傳送的數(shù)據(jù)流根據(jù)硬件或操作系統(tǒng)的固有機(jī)制進(jìn)入傳出緩存,最后由輸出終端負(fù)責(zé)定向送到指定的目標(biāo)。
[0030]對(duì)于輸入的數(shù)據(jù),數(shù)據(jù)流根據(jù)硬件或操作系統(tǒng)的固有機(jī)制進(jìn)入傳入緩存,首先傳入預(yù)分析引擎會(huì)讀入數(shù)據(jù)頭,及時(shí)判斷該數(shù)據(jù)的目標(biāo)是數(shù)據(jù)庫還是外部目標(biāo)。對(duì)于拓展模塊定義的外部目標(biāo),將直接轉(zhuǎn)發(fā)數(shù)據(jù)給相應(yīng)的驅(qū)動(dòng)程序,從而轉(zhuǎn)向送出系統(tǒng)(如將文件上傳至文件服務(wù)器)。如數(shù)據(jù)屬于數(shù)據(jù)庫,則將編譯好的數(shù)據(jù)包存入待錄緩存。
[0031]在客戶端,為了提高客戶端傳輸安全性和系統(tǒng)可拓展性,本發(fā)明采用以下的解決方案:
[0032]為保證客戶端的多樣化,系統(tǒng)除可以使用定制的標(biāo)準(zhǔn)客戶端,亦可以自定義客戶端的前臺(tái),包括數(shù)據(jù)源和輸出目標(biāo)??蛻舳说暮笈_(tái)采用和服務(wù)器端相同的傳輸引擎設(shè)計(jì)(其中的預(yù)分析引擎替換為簡化的預(yù)分析引擎)。客戶端可以選擇實(shí)時(shí)輸入和輸出數(shù)據(jù)并直接作出反應(yīng),或者通過私有數(shù)據(jù)庫緩存數(shù)據(jù)(私有數(shù)據(jù)庫對(duì)于按計(jì)劃作出操作的緩存數(shù)據(jù)包是必要的)??蛻舳丝梢宰孕卸x目標(biāo)驅(qū)動(dòng)程序,以解析和生成數(shù)據(jù)包,并負(fù)責(zé)從其自定義的任何信息源(如另一個(gè)軟件,文件目標(biāo),程序的前臺(tái),自動(dòng)化系統(tǒng)的串行通信口等)匯入數(shù)據(jù)及對(duì)這些信息源分發(fā)數(shù)據(jù)。采用私有數(shù)據(jù)庫緩存數(shù)據(jù)的客戶端,由一個(gè)簡化的預(yù)分析引擎負(fù)責(zé)數(shù)據(jù)庫的計(jì)劃管理,并在觸發(fā)器的條件滿足是按需激活目標(biāo)驅(qū)動(dòng)程序。
[0033]以上所述的僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明不限于以上實(shí)施例??梢岳斫猓绢I(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和構(gòu)思的前提下直接導(dǎo)出或聯(lián)想到的其他改進(jìn)和變化,均應(yīng)認(rèn)為包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng),其特征在于:在服務(wù)器端, 設(shè)置一個(gè)數(shù)據(jù)庫,將數(shù)據(jù)庫分為累積數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)和待錄緩存三個(gè)組,其中,累積數(shù)據(jù)用于存儲(chǔ)既有的數(shù)據(jù)基礎(chǔ),實(shí)時(shí)數(shù)據(jù)用于存儲(chǔ)當(dāng)期準(zhǔn)備進(jìn)行推送的數(shù)據(jù)與傳輸計(jì)劃,待錄緩存用于存儲(chǔ)已經(jīng)輸入并即將錄入累積數(shù)據(jù)組的數(shù)據(jù); 設(shè)置一個(gè)實(shí)時(shí)數(shù)據(jù)發(fā)生器,實(shí)時(shí)數(shù)據(jù)發(fā)生器用于讀取累積數(shù)據(jù),結(jié)合系統(tǒng)內(nèi)部的規(guī)則和拓展模塊所要求的條件篩選出需要進(jìn)行傳送的數(shù)據(jù);在進(jìn)行傳輸計(jì)劃排期和目標(biāo)判斷機(jī)制后,將當(dāng)期需要傳送的數(shù)據(jù)編譯為XML格式的數(shù)據(jù)包,加密后與其觸發(fā)器寫入數(shù)據(jù)庫的實(shí)時(shí)數(shù)據(jù)部分; 設(shè)置一個(gè)數(shù)據(jù)錄入模塊,數(shù)據(jù)錄入模塊在檢測到待錄緩存非空的情況下,自隊(duì)列開頭解開傳入的XML數(shù)據(jù)包,并對(duì)其準(zhǔn)確性和可信度進(jìn)行評(píng)估確認(rèn);在確認(rèn)完畢后將包內(nèi)數(shù)據(jù)應(yīng)用于數(shù)據(jù)庫的累積數(shù)據(jù)部分,同時(shí)將回執(zhí)寫入實(shí)時(shí)數(shù)據(jù)模塊的傳輸隊(duì)列,通知該數(shù)據(jù)包的來源運(yùn)行結(jié)果; 設(shè)置一個(gè)傳輸引擎,傳輸引擎包括一個(gè)輸入終端和一個(gè)輸出終端對(duì)外界可見;設(shè)置一個(gè)傳輸緩存,傳輸緩存包括一個(gè)傳出緩存和一個(gè)傳入緩存;設(shè)置一個(gè)預(yù)分析引擎,預(yù)分析引擎與數(shù)據(jù)庫的實(shí)時(shí)數(shù)據(jù)建立連接;輸出時(shí),預(yù)分析引擎通過對(duì)實(shí)時(shí)數(shù)據(jù)中傳輸觸發(fā)器進(jìn)行輪詢,結(jié)合外部條件確認(rèn)需要發(fā)送的數(shù)據(jù)包;預(yù)分析引擎同時(shí)打開準(zhǔn)備傳輸?shù)臄?shù)據(jù)包,確認(rèn)是否有需要外部數(shù)據(jù)源轉(zhuǎn)發(fā)的信息,啟動(dòng)對(duì)應(yīng)的驅(qū)動(dòng)程序請求外部數(shù)據(jù)源,并將這些數(shù)據(jù)一同匯入輸出的數(shù)據(jù)流;傳送的數(shù)據(jù)流根據(jù)硬件或操作系統(tǒng)的固有機(jī)制進(jìn)入傳出緩存,最后由輸出終端負(fù)責(zé)定向送到指定的目標(biāo);輸入時(shí),輸入終端接收到傳送的數(shù)據(jù)流,數(shù)據(jù)流根據(jù)硬件或操作系統(tǒng)的固有機(jī)制進(jìn)入傳入緩存;預(yù)分析引擎讀入數(shù)據(jù)頭,判斷該數(shù)據(jù)的目標(biāo)是外部目標(biāo)還是數(shù)據(jù)庫;如數(shù)據(jù)屬于拓展模塊定義的外部目標(biāo),將直接轉(zhuǎn)發(fā)數(shù)據(jù)給相應(yīng)的驅(qū)動(dòng)程序,從而轉(zhuǎn)向送出系統(tǒng);如數(shù)據(jù)屬于數(shù)據(jù)庫,則將編譯好的數(shù)據(jù)包存入待錄緩存。
2.根據(jù)權(quán)利要求1所述情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng),其特征在于:所述累積數(shù)據(jù)包括用戶數(shù)據(jù)和所有基于情境的數(shù)據(jù)列表,其中包括用戶可自定義的各種情境的描述和終端節(jié)點(diǎn)的描述;累積數(shù)據(jù)庫組內(nèi)所有的數(shù)據(jù)表?xiàng)l目均有惟一標(biāo)示符進(jìn)行標(biāo)記,并作為表示數(shù)據(jù)關(guān)系的獨(dú)一方式;每一個(gè)數(shù)據(jù)表均鏈接到另一個(gè)數(shù)據(jù)表中的條目;如有表中一個(gè)條目需要鏈接至多個(gè)目標(biāo)條目時(shí),則建立一個(gè)鏈接表,放置兩列分別存放重復(fù)的源和對(duì)象的標(biāo)示符;累積數(shù)據(jù)還包括各個(gè)拓展模塊的登記與配置、數(shù)據(jù)系統(tǒng)的設(shè)置。
3.根據(jù)權(quán)利要求1所述情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng),其特征在于:所述實(shí)時(shí)數(shù)據(jù)包括已連接的輸入輸出節(jié)點(diǎn)注冊列表、當(dāng)期需要向外輸出的數(shù)據(jù)隊(duì)列與輸出觸發(fā)器列表;其中,已編譯好的數(shù)據(jù)包以加密的XML形式和密鑰一同存入數(shù)據(jù)隊(duì)列,并標(biāo)注標(biāo)示符以供觸發(fā)器列表引用;每個(gè)觸發(fā)器除了綁定一個(gè)數(shù)據(jù)包以外,同時(shí)標(biāo)明該數(shù)據(jù)包被發(fā)送的條件和目標(biāo);觸發(fā)條件一并寫入XML數(shù)據(jù)包的文件頭。
4.根據(jù)權(quán)利要求1所述情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng),其特征在于:所述待錄緩存負(fù)責(zé)暫時(shí)存放輸入的未處理的數(shù)據(jù)包。
5.根據(jù)權(quán)利要求1所述情境化定向?qū)崟r(shí)雙向推送同步處理系統(tǒng),其特征在于:在客戶端,后臺(tái)采用和服務(wù)器端相同的傳輸引擎設(shè)計(jì);客戶端選擇實(shí)時(shí)輸入和輸出數(shù)據(jù)并直接作出反應(yīng),或者通過私有數(shù)據(jù)庫緩存數(shù)據(jù);自行定義目標(biāo)驅(qū)動(dòng)程序,以解析和生成數(shù)據(jù)包,并負(fù)責(zé)從其自定義的任何信息源匯入數(shù)據(jù)及對(duì)這些信息源分發(fā)數(shù)據(jù);采用私有數(shù)據(jù)庫緩存數(shù)據(jù)的客戶端,由一個(gè)簡化的預(yù)分析引擎負(fù)責(zé)數(shù)據(jù)庫的計(jì)劃管理,并在觸發(fā)器的條件滿足是按需激活目標(biāo)驅(qū)動(dòng)程序。
【文檔編號(hào)】G06F17/30GK104239505SQ201410465827
【公開日】2014年12月24日 申請日期:2014年9月12日 優(yōu)先權(quán)日:2014年9月12日
【發(fā)明者】何苗 申請人:何苗