亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種向Web頁(yè)面高效傳輸及推送報(bào)警數(shù)據(jù)方法與流程

文檔序號(hào):11180724閱讀:870來(lái)源:國(guó)知局
一種向Web頁(yè)面高效傳輸及推送報(bào)警數(shù)據(jù)方法與流程

本發(fā)明屬于計(jì)算機(jī)通訊技術(shù)領(lǐng)域,特別涉及一種向web頁(yè)面高效傳輸及推送報(bào)警數(shù)據(jù)方法。



背景技術(shù):

在能源、化工等生產(chǎn)自動(dòng)化及信息系統(tǒng)等行業(yè),分布著大量的傳感器及其信息處理模塊,這些模塊往往會(huì)產(chǎn)生大量的報(bào)警數(shù)據(jù),這些報(bào)警數(shù)據(jù)要求秒級(jí)或毫秒級(jí)發(fā)送給運(yùn)行監(jiān)控人員,以前這些報(bào)警數(shù)據(jù)的處理和展示都由下位機(jī)來(lái)實(shí)現(xiàn),所以只有在生產(chǎn)現(xiàn)場(chǎng)能收到報(bào)警信息。但是隨著信息技術(shù)的不斷發(fā)展,要求能夠在裝有瀏覽器的任意一臺(tái)電腦上收到所有下位機(jī)的報(bào)警數(shù)據(jù)。要解決多個(gè)下位機(jī)報(bào)警數(shù)據(jù)到任意web頁(yè)面的實(shí)時(shí)通訊問(wèn)題,需要引入web服務(wù)器作為中轉(zhuǎn),這樣就要解決報(bào)警數(shù)據(jù)從下位機(jī)到web服務(wù)器再到web頁(yè)面的實(shí)時(shí)通訊問(wèn)題。

下位機(jī)到web服務(wù)器的數(shù)據(jù)傳輸有兩種基礎(chǔ)通訊協(xié)議即tcp和udp,tcp是面向連接的可靠的數(shù)據(jù)通訊技術(shù),udp是非連接的不可靠的數(shù)據(jù)通訊技術(shù)(局域網(wǎng)穩(wěn)定性好的特點(diǎn)的決定了udp在局域網(wǎng)內(nèi)同樣相對(duì)可靠),因?yàn)椴恍枰趥鬏斍敖⑦B接所以u(píng)dp比tcp傳輸效率高,尤其是針對(duì)突發(fā)的小數(shù)據(jù)量傳輸,報(bào)警數(shù)據(jù)的突發(fā)性、數(shù)據(jù)量小及實(shí)時(shí)性要求高的特點(diǎn)決定了用udp協(xié)議最合適,本發(fā)明在udp協(xié)議的基礎(chǔ)上增加了確認(rèn)機(jī)制克服了udp的缺點(diǎn)。

web服務(wù)器到web頁(yè)面的數(shù)據(jù)傳輸是通過(guò)http協(xié)議,其本質(zhì)上是構(gòu)建在tcp協(xié)議之上的應(yīng)用層協(xié)議,http協(xié)議的基本模式是web頁(yè)面發(fā)送請(qǐng)求然后web服務(wù)器響應(yīng)并傳輸數(shù)據(jù),這種模式顯然不適合報(bào)警數(shù)據(jù)發(fā)生時(shí)實(shí)時(shí)推送給web頁(yè)面,因?yàn)閣eb頁(yè)面不知道報(bào)警數(shù)據(jù)什么時(shí)候發(fā)生,但是可以采用一種變通的方式,即web頁(yè)面發(fā)送請(qǐng)求后web服務(wù)器暫時(shí)不響應(yīng),只有報(bào)警數(shù)據(jù)發(fā)生時(shí)才響應(yīng),如果web服務(wù)器一直不響應(yīng)則web頁(yè)面會(huì)在超時(shí)后重新發(fā)送請(qǐng)求建立連接,這種方式web頁(yè)面一直跟web服務(wù)器保持連接所以叫長(zhǎng)連接技術(shù)。dwr就是支持這種長(zhǎng)連接技術(shù)的開(kāi)源框架,該框架能夠在服務(wù)器端獲得web頁(yè)面連接會(huì)話,并能調(diào)用會(huì)話頁(yè)面中的javascript腳本。

json是一種輕量級(jí)的數(shù)據(jù)交換格式,本質(zhì)是一個(gè)字符串,可以直接被javascript解析成數(shù)據(jù)對(duì)象,廣泛應(yīng)用于jsp頁(yè)面(一種web頁(yè)面)與java服務(wù)器(一種web服務(wù)器如tomcat服務(wù)器)的交互。



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

本發(fā)明的目的是

提出一種向web頁(yè)面高效傳輸及推送報(bào)警數(shù)據(jù)方法,

其特征在于,包含如下步驟:

步驟1:下位機(jī)把報(bào)警數(shù)據(jù)封裝成udp數(shù)據(jù)包,包中包含版本號(hào)、報(bào)警時(shí)間、系統(tǒng)號(hào)、分組號(hào)、報(bào)警點(diǎn)編號(hào)和報(bào)警類(lèi)型和報(bào)警值,然后與發(fā)送時(shí)間、發(fā)送計(jì)數(shù)作為一個(gè)對(duì)象放入發(fā)送隊(duì)列,準(zhǔn)備發(fā)送;其中udp數(shù)據(jù)包格式為:(1)版本號(hào)為1字節(jié),用于系統(tǒng)升級(jí)時(shí)能兼容不同版本的數(shù)據(jù)包;(2)報(bào)警時(shí)間,年月日時(shí)分秒各1字節(jié)共6字節(jié),年份2000算第0年;(3)系統(tǒng)號(hào)為1字節(jié),下位機(jī)唯一標(biāo)識(shí);(4)分組號(hào)為1字節(jié),用于區(qū)分同一時(shí)間報(bào)警的多個(gè)數(shù)據(jù)包,因?yàn)閡dp數(shù)據(jù)包不宜過(guò)大所以一個(gè)數(shù)據(jù)包最多含64個(gè)報(bào)警數(shù)據(jù)(實(shí)際很少超過(guò)64個(gè));(5)報(bào)警數(shù)量為1字節(jié);(6)報(bào)警點(diǎn)編號(hào)為2字節(jié);(7)報(bào)警類(lèi)型為1字節(jié),包括越上限、越下限和變化率過(guò)快3種,分別用0、1、2代表;(8)報(bào)警值,浮點(diǎn)型4個(gè)字節(jié)。數(shù)據(jù)包中的報(bào)警點(diǎn)編號(hào)、報(bào)警類(lèi)型和報(bào)警值根據(jù)報(bào)警數(shù)量可循環(huán)多次;

步驟2:下位機(jī)使用獨(dú)立的發(fā)送線程依次取出發(fā)送隊(duì)列中對(duì)象,向web服務(wù)器發(fā)送其中的udp數(shù)據(jù)包,同時(shí)記錄發(fā)送時(shí)間,發(fā)送計(jì)數(shù)加1;

步驟3:web服務(wù)器接收和解析下位機(jī)發(fā)過(guò)來(lái)的報(bào)警數(shù)據(jù)udp數(shù)據(jù)包;

步驟4:web服務(wù)器解析成功后給下位機(jī)發(fā)送確認(rèn)信號(hào),確認(rèn)信號(hào)仍然使用udp數(shù)據(jù)包的形式,包中含報(bào)警時(shí)間、系統(tǒng)號(hào)、分組號(hào);

步驟5:下位機(jī)使用獨(dú)立的接收線程接收確認(rèn)數(shù)據(jù)包,包中的報(bào)警時(shí)間、系統(tǒng)號(hào)和分組號(hào)能唯一定位報(bào)警數(shù)據(jù)對(duì)象,下位機(jī)會(huì)從發(fā)送隊(duì)列中刪除該對(duì)象以避免重復(fù)發(fā)送;

步驟6:下位機(jī)會(huì)定時(shí)檢測(cè)發(fā)送隊(duì)列,如不為空則會(huì)判斷發(fā)送對(duì)象的上次發(fā)送時(shí)間是否超時(shí),如超時(shí)且發(fā)送計(jì)數(shù)少于3次則再次發(fā)送該數(shù)據(jù)包,如發(fā)送計(jì)數(shù)達(dá)到3次應(yīng)將該對(duì)象從發(fā)送隊(duì)列中刪除;

步驟7:web服務(wù)器接收并正確解析數(shù)據(jù)包后,會(huì)把同一時(shí)間的報(bào)警數(shù)據(jù)組合成一個(gè)json格式數(shù)據(jù)對(duì)象,對(duì)象中包含了報(bào)警時(shí)間、系統(tǒng)號(hào),報(bào)警對(duì)象數(shù)組,報(bào)警對(duì)象中包含報(bào)警點(diǎn)編號(hào)、報(bào)警類(lèi)型和報(bào)警值;

步驟8:web頁(yè)面向web服務(wù)器發(fā)送一次長(zhǎng)連接請(qǐng)求;

步驟9:web服務(wù)器和web頁(yè)面建立連接并獲取web頁(yè)面會(huì)話,并采用直接web遠(yuǎn)程通信技術(shù)向web頁(yè)面會(huì)話推送json格式數(shù)據(jù)對(duì)象;

步驟10:web頁(yè)面內(nèi)的腳本負(fù)責(zé)解析json數(shù)據(jù)對(duì)象并展示到web頁(yè)面上。

本發(fā)明的有益效果是本發(fā)明包括下位機(jī)到web服務(wù)器的高效數(shù)據(jù)傳輸技術(shù)和web服務(wù)器到web頁(yè)面的實(shí)時(shí)數(shù)據(jù)推送技術(shù)兩部分。把報(bào)警數(shù)據(jù)自下位機(jī)經(jīng)由web服務(wù)器高效實(shí)時(shí)推送到web頁(yè)面上。明顯加快下位機(jī)經(jīng)由web服務(wù)器到web頁(yè)面的通訊效率,傳統(tǒng)數(shù)據(jù)通訊時(shí)間最少需要2秒,而本發(fā)明只需要0.5秒,并且支持多個(gè)下位機(jī)和多個(gè)web頁(yè)面同時(shí)應(yīng)用。

附圖說(shuō)明

圖1為報(bào)警數(shù)據(jù)傳輸及推送系統(tǒng)數(shù)據(jù)流轉(zhuǎn)示意圖;

圖2為報(bào)警數(shù)據(jù)傳輸及推送系統(tǒng)流程圖。

具體實(shí)施方式

本發(fā)明提供一種向web頁(yè)面高效傳輸及推送報(bào)警數(shù)據(jù)方法,下面結(jié)合附圖和實(shí)施例予以說(shuō)明。

本發(fā)明中包含有下位機(jī)、web服務(wù)器和web頁(yè)面等組件,報(bào)警數(shù)據(jù)由下位機(jī)傳輸給web服務(wù)器然后推送到web頁(yè)面上顯示,報(bào)警數(shù)據(jù)流轉(zhuǎn)示意圖如圖1所示,具體實(shí)施說(shuō)明如下:

1.在下位機(jī)中報(bào)警數(shù)據(jù)被封裝成udp數(shù)據(jù)包,數(shù)據(jù)包包含有版本號(hào)、報(bào)警時(shí)間、系統(tǒng)號(hào)、分組號(hào)、報(bào)警點(diǎn)對(duì)象數(shù)組,報(bào)警對(duì)象包含報(bào)警編號(hào)、報(bào)警類(lèi)型、報(bào)警值,udp包示例:01[版本號(hào)為1]11040a0c0808[報(bào)警時(shí)間2017-04-1012:08:08,包中數(shù)據(jù)用16進(jìn)制]01[系統(tǒng)號(hào)為1]00[分組號(hào)為0]00010000000320[編號(hào)為1的報(bào)警點(diǎn)類(lèi)型為0報(bào)警值為800]00020100000064[編號(hào)為2的報(bào)警點(diǎn)類(lèi)型為1報(bào)警值為100]。udp封裝好后加入發(fā)送時(shí)間和發(fā)送計(jì)數(shù)放到發(fā)送隊(duì)列中等待發(fā)送,然后激活發(fā)送線程發(fā)送udp數(shù)據(jù)包。

2.下位機(jī)在啟動(dòng)時(shí)創(chuàng)建端口號(hào)為7001的udp服務(wù)端口接收web服務(wù)器發(fā)送回來(lái)的確認(rèn)信號(hào),確認(rèn)信號(hào)包含報(bào)警時(shí)間、系統(tǒng)號(hào)、分組號(hào)能唯一定位發(fā)送隊(duì)列中的發(fā)送對(duì)象,然后從發(fā)送隊(duì)列中刪除該對(duì)象以避免重復(fù)發(fā)送。

3.web服務(wù)器啟動(dòng)時(shí)不僅建立端口為8080的http協(xié)議服務(wù)端口,而且會(huì)建立端口號(hào)為7002的udp服務(wù)端口,8080端口用于響應(yīng)web網(wǎng)頁(yè)訪問(wèn)請(qǐng)求,7002端口用于接收下位機(jī)發(fā)送過(guò)來(lái)的udp數(shù)據(jù)包。

4.web服務(wù)器向web頁(yè)面推送的json數(shù)據(jù)對(duì)象格式為:報(bào)警時(shí)間,系統(tǒng)號(hào),報(bào)警點(diǎn)對(duì)象數(shù)組,報(bào)警點(diǎn)對(duì)象包含報(bào)警點(diǎn)編號(hào)、報(bào)警類(lèi)型和報(bào)警數(shù)據(jù)三個(gè)字段,示例{"alarmtime":"2017-01-0100:00:00","sysno":1,"alarmobjs":[{"code":"001","type":0,"value":800},{"code":"002","type":1,"value":100}]}為包含了兩個(gè)報(bào)警點(diǎn)數(shù)據(jù)的json對(duì)象,其中type代表報(bào)警類(lèi)型,取值含義分別為,0-越上限、1-越下限、2-變化率過(guò)快。

5.web頁(yè)面中包含了兩段javascript腳本,一段用于跟web服務(wù)器建立長(zhǎng)連接,一段用于json對(duì)象的解析和數(shù)據(jù)展示。

6.web服務(wù)器到web網(wǎng)頁(yè)的實(shí)時(shí)數(shù)據(jù)推送具體實(shí)現(xiàn)過(guò)程如下:1)引入dwr(directwebremoting)開(kāi)源框架,并配置可向web頁(yè)面提供服務(wù)的java類(lèi);2)web網(wǎng)頁(yè)向web服務(wù)器發(fā)送一次長(zhǎng)連接請(qǐng)求,實(shí)際上就是在web網(wǎng)頁(yè)加載時(shí)調(diào)用請(qǐng)求java服務(wù)類(lèi)的javascript腳本;3)java服務(wù)類(lèi)獲取web頁(yè)面連接會(huì)話,并調(diào)用web頁(yè)面中一段json對(duì)象解析和展示的javascript腳本;4)web頁(yè)面運(yùn)行json對(duì)象解析和展示腳本把報(bào)警數(shù)據(jù)顯示在瀏覽器上。

本實(shí)施例中下位機(jī)用pascal語(yǔ)言進(jìn)行開(kāi)發(fā),實(shí)際可以用任意一種支持udp通訊的語(yǔ)言開(kāi)發(fā)。web服務(wù)器使用tomcat作服務(wù)器,服務(wù)端代碼使用java語(yǔ)言開(kāi)發(fā),web頁(yè)面為jsp類(lèi)型的頁(yè)面,內(nèi)嵌javascript腳本,本實(shí)施實(shí)例部署了2個(gè)下位機(jī),1個(gè)web服務(wù)器和5個(gè)瀏覽器終端,下位機(jī)和web終端運(yùn)行在windows7操作系統(tǒng)環(huán)境,web服務(wù)器運(yùn)行在win2008操作系統(tǒng)環(huán)境。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1