面向大規(guī)模終端設(shè)備的在線數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式計(jì)算終端(包含計(jì)算機(jī)、嵌入式設(shè)備)的網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,具體涉及一種面向大規(guī)模終端設(shè)備的在線數(shù)據(jù)傳輸方法。
【背景技術(shù)】
[0002]計(jì)算終端(包含計(jì)算機(jī)、嵌入式設(shè)備)的廣泛應(yīng)用,帶來(lái)了終端設(shè)備能網(wǎng)絡(luò)統(tǒng)一控制的難題。針對(duì)十萬(wàn)臺(tái)以上的大規(guī)模計(jì)算終端而言,由于計(jì)算終端必然存在設(shè)備覆蓋面廣、數(shù)量龐大,使得由于數(shù)據(jù)量龐大不能全局統(tǒng)一管理,使得統(tǒng)一管理變得異常困難?,F(xiàn)有技術(shù)一般采用如下的局域網(wǎng)內(nèi)管理少數(shù)或者廣域網(wǎng)管理部分兩種方式來(lái)實(shí)現(xiàn)計(jì)算終端的在線管理:(1)通過(guò)局域網(wǎng)內(nèi)部使用長(zhǎng)連接方式長(zhǎng)期保持占有網(wǎng)絡(luò)鏈路。例如,通過(guò)服務(wù)器計(jì)算機(jī)直接與局域網(wǎng)內(nèi)綁定終端鏈路通信,比如ip或者mac地址方式,強(qiáng)行記錄鏈路信息,直接發(fā)送命令方式,但是這種方式不能跨網(wǎng)段或者廣域網(wǎng)等大容量終端的使用,只能維護(hù)200臺(tái)以下終端的信息量,而且一旦網(wǎng)絡(luò)出現(xiàn)例如廣播等網(wǎng)絡(luò)風(fēng)暴或者臨時(shí)交換機(jī)出錯(cuò)等問(wèn)題則不可避免的造成控制的癱瘓。(2)遠(yuǎn)程的終端設(shè)備通過(guò)配置所在的路由器,映射端口方式,使得終端可以廣域網(wǎng)控制。這種方法通過(guò)廣域網(wǎng)的短連接控制,隨時(shí)使用時(shí)候現(xiàn)去通過(guò)服務(wù)器發(fā)送到各個(gè)終端的請(qǐng)求鏈接,得到tcp/ip返回之后在進(jìn)行控制,但是由于其使用服務(wù)器查找終端方式,一旦網(wǎng)絡(luò)不穩(wěn)定,就會(huì)無(wú)從查找,而后失去控制。現(xiàn)有技術(shù)會(huì)造成服務(wù)器端大量的發(fā)送請(qǐng)求指令來(lái)完成通信,本發(fā)明將請(qǐng)求連接壓力分散在每個(gè)終端,對(duì)于終端設(shè)備來(lái)說(shuō)根本不會(huì)有影響,而可以節(jié)省大量的服務(wù)器運(yùn)算,而且一旦服務(wù)器查找終端的指令沒(méi)有到達(dá)就會(huì)出現(xiàn)控制不了終端設(shè)備。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問(wèn)題是提供一種能夠大幅度減少服務(wù)器壓力、不需要再使用建立服務(wù)器集群方式解決大容量阻塞問(wèn)題、工程費(fèi)用低、在一個(gè)服務(wù)器上管理也節(jié)約了數(shù)據(jù)的重復(fù)交互、用戶體驗(yàn)更好更快的面向大規(guī)模終端設(shè)備的在線數(shù)據(jù)傳輸方法。
[0004]為解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:
[0005]一種面向大規(guī)模終端設(shè)備的在線數(shù)據(jù)傳輸方法,其包括以下步驟:
[0006]I)在終端設(shè)備上建立心跳發(fā)送機(jī)制,通過(guò)心跳發(fā)送機(jī)制定時(shí)向服務(wù)器發(fā)送心跳信號(hào)告訴服務(wù)器端隨時(shí)可以調(diào)用本終端,同時(shí)等待服務(wù)器返回的心跳響應(yīng)信號(hào),如果超時(shí)沒(méi)有收到服務(wù)器返回的心跳響應(yīng)信號(hào),則向更新連接鏈路請(qǐng)求;如果終端設(shè)備需要訪問(wèn)服務(wù)器上的數(shù)據(jù)庫(kù),則向服務(wù)器發(fā)送數(shù)據(jù)庫(kù)請(qǐng)求;
[0007]2)在服務(wù)器中預(yù)先建立用于緩存終端設(shè)備通信請(qǐng)求的網(wǎng)絡(luò)緩沖池,所述網(wǎng)絡(luò)緩沖池中存儲(chǔ)有用于記錄每一個(gè)終端設(shè)備的唯一標(biāo)示號(hào)的快速解析表;在運(yùn)行狀態(tài)下,服務(wù)器通過(guò)后臺(tái)在網(wǎng)絡(luò)緩沖池中取出一個(gè)處理終端設(shè)備發(fā)送的通信請(qǐng)求作為當(dāng)前請(qǐng)求,跳轉(zhuǎn)執(zhí)行步驟3);
[0008]3)服務(wù)器判斷終端設(shè)備發(fā)送的通信請(qǐng)求的類(lèi)型,如果通信請(qǐng)求為心跳信號(hào),則跳轉(zhuǎn)執(zhí)行步驟4);如果通信請(qǐng)求為更新連接鏈路請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟5);如果通信請(qǐng)求為數(shù)據(jù)庫(kù)請(qǐng)求,跳轉(zhuǎn)執(zhí)行步驟6);
[0009]4)服務(wù)器向終端設(shè)備返回心跳響應(yīng)信號(hào),檢查快速解析表判斷是否能夠找到匹配的唯一標(biāo)示號(hào),如果未找到匹配的唯一標(biāo)示號(hào)則判定為非法信息并丟棄,服務(wù)器通過(guò)后臺(tái)在網(wǎng)絡(luò)緩沖池中取出下一個(gè)處理終端設(shè)備發(fā)送的通信請(qǐng)求作為當(dāng)前請(qǐng)求,跳轉(zhuǎn)執(zhí)行步驟3);如果找到匹配的唯一標(biāo)示號(hào),則在內(nèi)存中建立或者更新匹配的唯一標(biāo)示號(hào)關(guān)聯(lián)的終端設(shè)備的在線狀態(tài)信息,將對(duì)應(yīng)的終端設(shè)備記錄為在線終端設(shè)備,保存最后一次與該終端設(shè)備通信的數(shù)據(jù)鏈路;跳轉(zhuǎn)執(zhí)行步驟7);
[0010]5)服務(wù)器檢查快速解析表判斷是否能夠找到匹配的唯一標(biāo)示號(hào),如果未找到匹配的唯一標(biāo)示號(hào)則判定為非法信息并丟棄,服務(wù)器通過(guò)后臺(tái)在網(wǎng)絡(luò)緩沖池中取出下一個(gè)處理終端設(shè)備發(fā)送的通信請(qǐng)求作為當(dāng)前請(qǐng)求,跳轉(zhuǎn)執(zhí)行步驟3);如果找到匹配的唯一標(biāo)示號(hào),則在內(nèi)存中建立或者更新匹配的唯一標(biāo)示號(hào)關(guān)聯(lián)的終端設(shè)備的在線狀態(tài)信息,將對(duì)應(yīng)的終端設(shè)備記錄為在線終端設(shè)備,保存最后一次與該終端設(shè)備通信的數(shù)據(jù)鏈路;跳轉(zhuǎn)執(zhí)行步驟7);
[0011]6)服務(wù)器檢查快速解析表判斷是否能夠找到匹配的唯一標(biāo)示號(hào),如果未找到匹配的唯一標(biāo)示號(hào)則判定心跳信號(hào)為非法請(qǐng)求并丟棄,如果找到匹配的唯一標(biāo)示號(hào)則進(jìn)一步判斷內(nèi)存中是否保存有最后一次與該終端設(shè)備通信的數(shù)據(jù)鏈路,如果有則根據(jù)所述數(shù)據(jù)鏈路與對(duì)應(yīng)的終端設(shè)備建立連接并響應(yīng)數(shù)據(jù)庫(kù)請(qǐng)求,否則基于非阻塞線程機(jī)制的方式放棄對(duì)應(yīng)的終端設(shè)備的數(shù)據(jù)庫(kù)請(qǐng)求;跳轉(zhuǎn)執(zhí)行步驟7);
[0012]7)服務(wù)器定時(shí)檢查內(nèi)存中各個(gè)終端設(shè)備的在線狀態(tài)信息,如果超出指定時(shí)間沒(méi)有收到某個(gè)終端設(shè)備心跳信號(hào),則刪除該終端設(shè)備在內(nèi)存中的在線狀態(tài)信息,將對(duì)應(yīng)的終端設(shè)備記錄為斷線終端設(shè)備;服務(wù)器通過(guò)后臺(tái)在網(wǎng)絡(luò)緩沖池中取出下一個(gè)處理終端設(shè)備發(fā)送的通信請(qǐng)求作為當(dāng)前請(qǐng)求,跳轉(zhuǎn)執(zhí)行步驟3)。
[0013]本發(fā)明面向大規(guī)模終端設(shè)備的在線數(shù)據(jù)傳輸方法具有下述優(yōu)點(diǎn):本發(fā)明在終端設(shè)備上加入心跳發(fā)送機(jī)制,在一定的間隔時(shí)間內(nèi)向服務(wù)器發(fā)送在線信號(hào),告訴服務(wù)器端隨時(shí)可以調(diào)用本終端。在服務(wù)器制作一個(gè)網(wǎng)絡(luò)緩沖池,里面僅僅記錄終端的唯一標(biāo)示號(hào),在后臺(tái)處理終端的間隔請(qǐng)求信號(hào),長(zhǎng)時(shí)間沒(méi)有得到請(qǐng)求的標(biāo)識(shí)號(hào)則記錄為斷線終端,如啟用需要控制的終端,則服務(wù)器端的心跳連接池中取到該唯一標(biāo)識(shí)號(hào),通過(guò)這個(gè)通道采用tcp/ip協(xié)議建立與終端的通信,確保通信的可靠性的基礎(chǔ)上能及時(shí)的與終端通信。終端設(shè)備在多次請(qǐng)求無(wú)服務(wù)器返回信息的情況下,不是發(fā)送在線信號(hào)的信息而是發(fā)送請(qǐng)求服務(wù)器更新連接鏈路,發(fā)送一個(gè)請(qǐng)求連接,服務(wù)器得到該該請(qǐng)求信息后重新啟用這個(gè)終端,因此能夠解決十萬(wàn)臺(tái)以上的大規(guī)模終端設(shè)備同時(shí)在線導(dǎo)致的網(wǎng)絡(luò)擁堵問(wèn)題,能夠增加服務(wù)器計(jì)算機(jī)的有效訪問(wèn)終端數(shù)量的技術(shù)問(wèn)題,通過(guò)執(zhí)行計(jì)算機(jī)程序?qū)崿F(xiàn)對(duì)終端設(shè)備訪問(wèn)性能的改進(jìn),反映的是利用虛擬緩沖存儲(chǔ)空間,將對(duì)遠(yuǎn)程設(shè)備的訪問(wèn)轉(zhuǎn)換為對(duì)服務(wù)器上的緩沖的訪問(wèn),利用的是遵循自然規(guī)律的技術(shù)手段,獲得終端設(shè)備對(duì)數(shù)據(jù)的訪問(wèn)不受服務(wù)器網(wǎng)絡(luò)帶寬容量限制的技術(shù)效果,本發(fā)明通過(guò)網(wǎng)絡(luò)緩沖池方式將現(xiàn)有技術(shù)的長(zhǎng)連接和短連接進(jìn)行優(yōu)化統(tǒng)一,終端和緩沖池之間使用短連接,使用終端在一定間隔時(shí)間內(nèi)發(fā)送在線狀態(tài),而緩沖池與服務(wù)器(同一個(gè)服務(wù)器內(nèi)的程序)之間使用長(zhǎng)連接,保證隨時(shí)的快速調(diào)用,將終端信息簡(jiǎn)化為只維護(hù)一個(gè)終端的唯一標(biāo)識(shí)號(hào)與對(duì)應(yīng)的鏈路的保存,服務(wù)器只需要查找到唯一標(biāo)示號(hào),就可以立刻得到鏈路的通信,加大了超大容量終端數(shù)據(jù)的訪問(wèn)范圍,能夠大幅度減少服務(wù)器壓力、不需要再使用建立服務(wù)器集群方式解決大容量阻塞問(wèn)題、工程費(fèi)用低、在一個(gè)服務(wù)器上管理也節(jié)約了數(shù)據(jù)的重復(fù)交互、用戶體驗(yàn)更好更快。
【附圖說(shuō)明】
[0014]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0015]圖1為本發(fā)明實(shí)施例的基本流程結(jié)構(gòu)示意圖。
[0016]圖2為本發(fā)明實(shí)施例中服務(wù)器的邏輯框架結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0017]下面結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)闡述,以使本發(fā)明的優(yōu)點(diǎn)和特征能更易于被本領(lǐng)域技術(shù)人員理解,從而對(duì)本發(fā)明的保護(hù)范圍做出更為清楚明確的界定。
[0018]如圖1所示,本實(shí)施例面向大規(guī)模終端設(shè)備的在線數(shù)據(jù)傳輸方法包括以下步驟:
[0019]I)在終端設(shè)備上建立心跳發(fā)送機(jī)制,通過(guò)心跳發(fā)送機(jī)制定時(shí)向服務(wù)器發(fā)送心跳信號(hào)告訴服務(wù)器端隨時(shí)可以調(diào)用本終端,同時(shí)等待服務(wù)器返回的心跳響應(yīng)信號(hào),如果超時(shí)沒(méi)有收到服務(wù)器返回的心跳響應(yīng)信號(hào),則向更新連接鏈路請(qǐng)求;如果終端設(shè)備需要訪問(wèn)服務(wù)器上的數(shù)據(jù)庫(kù),則向服務(wù)器發(fā)送數(shù)據(jù)庫(kù)請(qǐng)求;
[0020]2)在服務(wù)器中預(yù)先建立用于緩存終端設(shè)備通信請(qǐng)求的網(wǎng)絡(luò)緩沖池,所述網(wǎng)絡(luò)緩沖池中存儲(chǔ)有用于記錄每一個(gè)終端設(shè)備的唯一標(biāo)示號(hào)的快速解析表;在運(yùn)行狀態(tài)下,服務(wù)器通過(guò)后臺(tái)在網(wǎng)絡(luò)緩沖池中取出一個(gè)處理終端設(shè)備發(fā)送的通信請(qǐng)求作為當(dāng)前請(qǐng)求,跳轉(zhuǎn)執(zhí)行步驟3);
[0021]3)服務(wù)器判斷終端設(shè)備發(fā)送的通信請(qǐng)求的類(lèi)型,如果通信請(qǐng)求為心跳信號(hào),則跳轉(zhuǎn)執(zhí)行步驟4);如果通信請(qǐng)求為更新連接鏈路請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟5);如果通信請(qǐng)求為數(shù)據(jù)庫(kù)請(qǐng)求,跳轉(zhuǎn)執(zhí)行步驟6);
[0022]4)服務(wù)器向終端設(shè)備返回心跳向應(yīng)信號(hào),檢查快速解析表判斷是否能夠找到匹配的唯一標(biāo)示號(hào),如果未找到匹配的唯一標(biāo)示號(hào)則判定為非法信息并丟棄,服務(wù)器通過(guò)后臺(tái)在網(wǎng)絡(luò)緩沖池中取出下一個(gè)處理終端設(shè)備發(fā)送的通信請(qǐng)求作為當(dāng)前請(qǐng)求,跳轉(zhuǎn)執(zhí)行步