錢勝永 馬吉平
(新疆疏勒縣69018部隊(duì) 新疆 844200)
隨著信息數(shù)據(jù)采集站快速增多,加之信息數(shù)據(jù)采集站點(diǎn)對所采集信息必須進(jìn)行同步上傳,大量的數(shù)據(jù)浪涌需要進(jìn)行快速的處理。因此設(shè)計(jì)一種快速、準(zhǔn)確的數(shù)據(jù)處理技術(shù)成為必須迫在眉睫的問題。
前期各個(gè)地區(qū)的信息數(shù)據(jù)采集站點(diǎn)的數(shù)量不多,軟件對于數(shù)據(jù)處理的速度沒有太大的需求。由于各個(gè)區(qū)域的自動(dòng)站點(diǎn)的數(shù)量不斷增加,各個(gè)站點(diǎn)間的密度也不斷增大,如果依照我國信息數(shù)據(jù)采集站發(fā)布的相關(guān)規(guī)定對采集站點(diǎn)進(jìn)行建設(shè),區(qū)域內(nèi)站點(diǎn)的數(shù)量就會(huì)急劇增加,如果在運(yùn)用原有的數(shù)據(jù)接收和處理的方法,很明顯以往的中心處理軟件不能快速的對數(shù)據(jù)進(jìn)行接收和處理,滿足不了各個(gè)機(jī)構(gòu)的需要并會(huì)導(dǎo)致數(shù)據(jù)丟失的情況。業(yè)務(wù)性的軟件對于系統(tǒng)在運(yùn)行過程中是否穩(wěn)定、可靠有很大的要求,下文簡述的軟件設(shè)計(jì)重點(diǎn)針對這些問題給予一定的解決方案。
數(shù)據(jù)的緩存技術(shù)就是指運(yùn)用應(yīng)用程序把一些經(jīng)常訪問的數(shù)據(jù)或者需要消耗很長的時(shí)間才能創(chuàng)建的數(shù)據(jù)都存儲(chǔ)到內(nèi)存中,以此來改善系統(tǒng)的整體性能。系統(tǒng)的核心模塊可以完整的體現(xiàn)系統(tǒng)的整體性能它可以為各個(gè)自動(dòng)站觀測數(shù)據(jù)騰出足夠的緩存地帶,促使管理機(jī)制由數(shù)據(jù)接收和數(shù)據(jù)處理并發(fā)讀寫數(shù)據(jù)緩存的形成。由于原來的無人值守信息數(shù)據(jù)采集站比較少,不運(yùn)用緩存技術(shù)數(shù)據(jù)也可以正常的進(jìn)行處理,傳統(tǒng)的數(shù)據(jù)接收處理的流程如下:
把Zdz(1)、Zdz(2)…Zdz(n)表示為n個(gè)自動(dòng)信息數(shù)據(jù)采集站,Zdzdata(1)、Zdzdata(2)…Zdzdata(n)表示為n個(gè)的自動(dòng)站的采集數(shù)據(jù)。由于各地的信息數(shù)據(jù)采集站數(shù)量的不斷增多,隨著而來的是大批量的并發(fā)數(shù)據(jù)產(chǎn)生,假如這個(gè)時(shí)候數(shù)據(jù)處理模塊不能及時(shí)的進(jìn)行處理,就有可能導(dǎo)致數(shù)據(jù)的丟失,致使對于所傳來資料的接收和處理沒有一定的可靠性。緩存技術(shù)的應(yīng)用可以把數(shù)據(jù)的接收和處理劃分為兩個(gè)互相獨(dú)立的工作流程,緩存模塊則相當(dāng)于一個(gè)中介,在進(jìn)行數(shù)據(jù)的接收和處理的時(shí)候只要和中介進(jìn)行聯(lián)系,確保了接收和處理出現(xiàn)時(shí)域上的沖撞。在圖1中,用Buffer(1)、Buffer(2)…Buffer(n)表示擁有第n個(gè)緩存的空間。例如:在對數(shù)據(jù)Zdzdata(i)進(jìn)行接收存儲(chǔ)的過程時(shí),其余的自動(dòng)站的接收數(shù)據(jù)的線程不用非要排隊(duì)等待存儲(chǔ),這時(shí)的緩存就像一個(gè)較大的蓄水池,當(dāng)數(shù)量較大的水涌入之時(shí),該蓄水池還可以吧沒能及時(shí)流出去的水暫存在蓄水池中。當(dāng)出現(xiàn)正進(jìn)行處理的數(shù)據(jù)正好讀取這個(gè)數(shù)據(jù)的緩存區(qū)域 Buffer(i),為了對這個(gè)緩存的數(shù)據(jù)進(jìn)行讀取必須得把相關(guān)的存儲(chǔ)步驟釋放Buffer(i)鎖之后才可以進(jìn)行,確保全部的數(shù)據(jù)可以快速及時(shí)處理緩存區(qū)域的過程中不會(huì)出現(xiàn)數(shù)據(jù)丟失的情況。
把數(shù)據(jù)的接收線程個(gè)緩存模塊進(jìn)行交互的目的就是實(shí)現(xiàn)對數(shù)據(jù)的存儲(chǔ)。第一步,要找到一個(gè)比較大的存儲(chǔ)位置,依照數(shù)據(jù)的先后順序存儲(chǔ)到緩存的位置,等候數(shù)據(jù)處理線程對數(shù)據(jù)進(jìn)行提取。這個(gè)線程運(yùn)用VB語言設(shè)置的源代碼如下;
Clobal databuf(9999)所找尋緩存空間的大小是 10000;Clobal W tPointerAt把握整體的變量,在指針中寫入;Winsockl.CetData TenpBUF,vbByte,bytesTotal,實(shí)施數(shù)據(jù)的接受,并對變量進(jìn)行賦值;databuf(W tPointerAt)=TempBuf寫入到緩存中去;If W tPointerAt=10000Then如若指針?biāo)傅姆较蚴蔷彺娴奈捕?,那么指向開始;W tPointerAT=0,End If。
這里所講述的數(shù)據(jù)處理就是把所接受過來的原始信息數(shù)據(jù)采集站數(shù)據(jù)加以轉(zhuǎn)換變?yōu)樾畔?shù)據(jù)采集站臺(tái)所需要的產(chǎn)品流程。對于信息數(shù)據(jù)采集站的原始數(shù)據(jù)進(jìn)行處理是一個(gè)比較復(fù)雜的流程,加以處理后的產(chǎn)品可以得到廣泛的使用,數(shù)據(jù)處理線程的重要任務(wù)就是對于數(shù)據(jù)進(jìn)行處理。、數(shù)據(jù)的處理線程會(huì)按照數(shù)據(jù)的先后順序?qū)ζ溥M(jìn)行存放在緩存的位置,等到數(shù)據(jù)處理結(jié)束以后對這個(gè)區(qū)域的緩存數(shù)據(jù)進(jìn)行清理。數(shù)據(jù)處理線程的 VB語言的源代碼如下所示:
Dim TempBuf( )AS Byte對臨時(shí)的變量進(jìn)行定義;Global RdPointer AT 設(shè)置整體的變量值,進(jìn)行指針的讀??;TempBuf=datdbuf(RdPointerAt)=“”對緩存中的數(shù)據(jù)進(jìn)行讀??;databuf(RdPointerAt)對讀取過后緩存中的數(shù)據(jù)進(jìn)行清除;If RdPointerAt<>W tPointerAt Then判斷指針的讀取和寫入是否相等(不等);RdPointerAt=RdPointerAt+1這時(shí)指針向下移一個(gè)位置;If RdPointerAt=10000Then可以找出能對10000個(gè)站點(diǎn)進(jìn)行儲(chǔ)存的數(shù)據(jù)空間,RdPointerAt=0如果出現(xiàn)存儲(chǔ)空間已滿的情況,程序就從新開始,End If。
基于信息數(shù)據(jù)采集站分布較廣,數(shù)據(jù)的傳輸也是同步上傳的運(yùn)行,可以設(shè)計(jì)大批量的并發(fā)數(shù)據(jù)處理的系統(tǒng)加以運(yùn)用。該系統(tǒng)對大批量的實(shí)時(shí)或者并發(fā)數(shù)據(jù)進(jìn)行快速及時(shí)的接收和處理,運(yùn)用的過程比較安全穩(wěn)定,從無導(dǎo)致數(shù)據(jù)丟失損壞的情況,對于處理過后的數(shù)據(jù)結(jié)果非常準(zhǔn)確,解決了信息數(shù)據(jù)采集站大批量的浪涌數(shù)據(jù)進(jìn)行及時(shí)的處理。
大批量并發(fā)數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)可以快速及時(shí)的把大量的信息數(shù)據(jù)采集站采集的數(shù)據(jù)進(jìn)行同步的上傳,數(shù)據(jù)進(jìn)行接收的結(jié)果準(zhǔn)確。運(yùn)行的過程比較安全、可靠、滿足了各部門對于數(shù)據(jù)接收處理的需求,保障各部門的數(shù)據(jù)分析和處理更加的及時(shí)、準(zhǔn)確。
[1]亓開元,趙卓峰等,針對高速數(shù)據(jù)流的大規(guī)模數(shù)據(jù)實(shí)時(shí)處理方法[J].計(jì)算機(jī)學(xué)報(bào).2012(03).
[2]崔慎智,陳志泊.基于多代理和多優(yōu)先隊(duì)列的短信實(shí)時(shí)并發(fā)算法[J].計(jì)算機(jī)工程.2011(03).
[3]丁治明,高需.面向物聯(lián)網(wǎng)海量傳感器采樣數(shù)據(jù)管理的數(shù)據(jù)庫集群系統(tǒng)框架[J].計(jì)算機(jī)學(xué)報(bào).2012(06).
[4]彭商濂,李戰(zhàn)懷,陳群,李強(qiáng).在線-離線數(shù)據(jù)流上復(fù)雜事件檢測[J].計(jì)算機(jī)學(xué)報(bào).2012(03).
[5]胡永利,孫艷豐,尹寶才.物聯(lián)網(wǎng)信息感知與交互技術(shù)[J].計(jì)算機(jī)學(xué)報(bào).2012(06).