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