大批量并发数据实时处理技术探讨

2014-03-19 07:08钱胜永马吉平
网络安全技术与应用 2014年4期
关键词:指针线程数据处理

钱胜永 马吉平

(新疆疏勒县69018部队 新疆 844200)

0 引言

随着信息数据采集站快速增多,加之信息数据采集站点对所采集信息必须进行同步上传,大量的数据浪涌需要进行快速的处理。因此设计一种快速、准确的数据处理技术成为必须迫在眉睫的问题。

1 简析数据功能的需求

前期各个地区的信息数据采集站点的数量不多,软件对于数据处理的速度没有太大的需求。由于各个区域的自动站点的数量不断增加,各个站点间的密度也不断增大,如果依照我国信息数据采集站发布的相关规定对采集站点进行建设,区域内站点的数量就会急剧增加,如果在运用原有的数据接收和处理的方法,很明显以往的中心处理软件不能快速的对数据进行接收和处理,满足不了各个机构的需要并会导致数据丢失的情况。业务性的软件对于系统在运行过程中是否稳定、可靠有很大的要求,下文简述的软件设计重点针对这些问题给予一定的解决方案。

2 系统总体结构的设计

2.1 应用数据缓存技术

数据的缓存技术就是指运用应用程序把一些经常访问的数据或者需要消耗很长的时间才能创建的数据都存储到内存中,以此来改善系统的整体性能。系统的核心模块可以完整的体现系统的整体性能它可以为各个自动站观测数据腾出足够的缓存地带,促使管理机制由数据接收和数据处理并发读写数据缓存的形成。由于原来的无人值守信息数据采集站比较少,不运用缓存技术数据也可以正常的进行处理,传统的数据接收处理的流程如下:

把Zdz(1)、Zdz(2)…Zdz(n)表示为n个自动信息数据采集站,Zdzdata(1)、Zdzdata(2)…Zdzdata(n)表示为n个的自动站的采集数据。由于各地的信息数据采集站数量的不断增多,随着而来的是大批量的并发数据产生,假如这个时候数据处理模块不能及时的进行处理,就有可能导致数据的丢失,致使对于所传来资料的接收和处理没有一定的可靠性。缓存技术的应用可以把数据的接收和处理划分为两个互相独立的工作流程,缓存模块则相当于一个中介,在进行数据的接收和处理的时候只要和中介进行联系,确保了接收和处理出现时域上的冲撞。在图1中,用Buffer(1)、Buffer(2)…Buffer(n)表示拥有第n个缓存的空间。例如:在对数据Zdzdata(i)进行接收存储的过程时,其余的自动站的接收数据的线程不用非要排队等待存储,这时的缓存就像一个较大的蓄水池,当数量较大的水涌入之时,该蓄水池还可以吧没能及时流出去的水暂存在蓄水池中。当出现正进行处理的数据正好读取这个数据的缓存区域 Buffer(i),为了对这个缓存的数据进行读取必须得把相关的存储步骤释放Buffer(i)锁之后才可以进行,确保全部的数据可以快速及时处理缓存区域的过程中不会出现数据丢失的情况。

2.2 缓存模块和数据的接收交互

把数据的接收线程个缓存模块进行交互的目的就是实现对数据的存储。第一步,要找到一个比较大的存储位置,依照数据的先后顺序存储到缓存的位置,等候数据处理线程对数据进行提取。这个线程运用VB语言设置的源代码如下;

Clobal databuf(9999)所找寻缓存空间的大小是 10000;Clobal W tPointerAt把握整体的变量,在指针中写入;Winsockl.CetData TenpBUF,vbByte,bytesTotal,实施数据的接受,并对变量进行赋值;databuf(W tPointerAt)=TempBuf写入到缓存中去;If W tPointerAt=10000Then如若指针所指的方向是缓存的尾端,那么指向开始;W tPointerAT=0,End If。

2.3 缓存模块和数据的处理交互

这里所讲述的数据处理就是把所接受过来的原始信息数据采集站数据加以转换变为信息数据采集站台所需要的产品流程。对于信息数据采集站的原始数据进行处理是一个比较复杂的流程,加以处理后的产品可以得到广泛的使用,数据处理线程的重要任务就是对于数据进行处理。、数据的处理线程会按照数据的先后顺序对其进行存放在缓存的位置,等到数据处理结束以后对这个区域的缓存数据进行清理。数据处理线程的 VB语言的源代码如下所示:

Dim TempBuf( )AS Byte对临时的变量进行定义;Global RdPointer AT 设置整体的变量值,进行指针的读取;TempBuf=datdbuf(RdPointerAt)=“”对缓存中的数据进行读取;databuf(RdPointerAt)对读取过后缓存中的数据进行清除;If RdPointerAt<>W tPointerAt Then判断指针的读取和写入是否相等(不等);RdPointerAt=RdPointerAt+1这时指针向下移一个位置;If RdPointerAt=10000Then可以找出能对10000个站点进行储存的数据空间,RdPointerAt=0如果出现存储空间已满的情况,程序就从新开始,End If。

2.4 软件的实现

基于信息数据采集站分布较广,数据的传输也是同步上传的运行,可以设计大批量的并发数据处理的系统加以运用。该系统对大批量的实时或者并发数据进行快速及时的接收和处理,运用的过程比较安全稳定,从无导致数据丢失损坏的情况,对于处理过后的数据结果非常准确,解决了信息数据采集站大批量的浪涌数据进行及时的处理。

3 结束语

大批量并发数据实时处理系统可以快速及时的把大量的信息数据采集站采集的数据进行同步的上传,数据进行接收的结果准确。运行的过程比较安全、可靠、满足了各部门对于数据接收处理的需求,保障各部门的数据分析和处理更加的及时、准确。

[1]亓开元,赵卓峰等,针对高速数据流的大规模数据实时处理方法[J].计算机学报.2012(03).

[2]崔慎智,陈志泊.基于多代理和多优先队列的短信实时并发算法[J].计算机工程.2011(03).

[3]丁治明,高需.面向物联网海量传感器采样数据管理的数据库集群系统框架[J].计算机学报.2012(06).

[4]彭商濂,李战怀,陈群,李强.在线-离线数据流上复杂事件检测[J].计算机学报.2012(03).

[5]胡永利,孙艳丰,尹宝才.物联网信息感知与交互技术[J].计算机学报.2012(06).

猜你喜欢
指针线程数据处理
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
基于C#线程实验探究
垂悬指针检测与防御方法*
基于国产化环境的线程池模型研究与实现
为什么表的指针都按照顺时针方向转动
浅谈linux多线程协作
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
Matlab在密立根油滴实验数据处理中的应用
浅析C语言指针