数据实时性范文

2024-09-22

数据实时性范文(精选11篇)

数据实时性 第1篇

而以上几种视频数据均采用流媒体的方式传输。流媒体(Streaming Media),又叫流式媒体[1],是边传边播的媒体。边传边播是指媒体提供商在网络上传输媒体的“同时”,用户一边不断地接收并观看或收听被传输的媒体。“流”媒体的“流”指的是这种媒体的传输方式(流的方式),而并不是指媒体本身。

对流媒体进行加密,有以下几个重要的问题:

1)快速性和数据量增幅:流媒体的数据量往往非常大,如果不能有效控制加密内容的数量和加密方法,会消耗大量的计算资源,同时带来较大的加解密时延,故而影响流媒体数据传输的实时性要求;

2)格式兼容性:通常接收端在不解密的情况下要求能够顺利解密播放视频,这就需要在加密过程中不能改变视频本身的语法信息;

3)解密正确性:流媒体传输中是容许数据包丢失的,而这种情况下如何保证正确解密。

本文以流媒体视频编码标准MPEG为研究对象,分别从以上几个问题展开,设计出一套合理的强实时性视频数据加密的方案。内容安排如下:第二部分提出了视频加密算法,包括密钥产生方案和选择加密算法,给出了实验结果,并做出了相应的特性分析;第三部分就强实时性视频数据保密给出了完整的设计方案;第四部分对全文进行了总结。

1 MPEG的视频选择加密算法

1.1 密钥产生方案

混沌(chaos)是指确定性动力学系统因对初值敏感而表现出的不可预测的、类似随机性的运动。由于它对初值和系统参数极其敏感且具有遍历性等特点,使其非常适用于保密通信和数据安全领域。

现在利用混沌序列设计的加密算法有很多[3],但大多采用单混沌系统,这样虽加密速度较快,但算法相对简单,且密钥空间小,安全性不高。因此,本文提出了一种基于Logistic映射和Chebyshev映射的交叉混沌序列。相比单混沌系统,交叉混沌具有更大的不稳定性,密钥空间大,可再生,安全性高。定义如下:

其中,两个混沌映射各自的初始状态x0和y0以及系统参数和p都将作为密钥保存。

因为每次迭代产生的都是属于(-1,1)区间的小数,于是为了用于加密,我们尝试有下式来产生密钥流Kt:

我们首先将式(1)迭代300次,使序列进入混沌状态用于加密[7]。M为计算机中的浮点数的表示精度,这里我们取32,同时可以任意选取产生密钥流。

1.2 保持MPEG格式兼容的选择加密算法思想

在MPEG视频数据中,DC系数信息决定着整个视频图像的亮度和色度,AC系数决定着整个视频图像的轮廓,MV决定着视频图像的运动变化情况。因此,可以从视频数据中提取出DC系数、AC系数和MV同时进行加密,以满足保密需求。

1.2.1 加密DC系数

我们选择加密DC差分值经过VLI编码后的值。

1算法思想

在DPCM编码后会产生中间格式(s,a), 其中s是差分值所占的二进制位数,a是差分值本身。a采用VLI编码,得到a’。由于异或加密不会改变明文的位数,因此可以保持格式兼容。我们可以用式3加密差分值经过VLI编码后的值x,其中Kt为式2得到的密钥流,l为x所对应的二进制位数,x’为密文。

由于加密前后比特流的长度没有任何变化,不会影响压缩率。

1.2.2 加密AC系数

我们选择在行程编码后置乱块中所有Run-Length-Level的组合。

1算法思想

AC系数在行程编码之后产生的中间格式有两个符号,即Run-Length和AC系数值Level。若将Run-Length和Level看作组合R-L,在FLC与VLC编码之前,可以选择置乱块中所有R-L组合,这样每个块中数据被打乱,但压缩率不变。

可以采用以下的方式来进行置乱[4]:

为一个8×8 块中的m个R-L组合从1 到m依次分配序号,即RL1=1,RL2=2,...,RLn=m,并让i从m到2 依次递减。每次递减1,便由交叉混沌序列产生一个(0,1)区间的随机数W,由[i W]+1计算出j,同时交换RLi和RLj所对应的组合。其中,[·]表示向下取整。

1.2.3加密运动向量MV

我们选择加密除以forward_f之后的余数。

算法思想:

在运动向量的编码过程中,可以选择把所有FLC编码表合并,合并后的表项共有N=27-1=126项。这样,可以为合并表的每一项分配7bit的索引值i,加密索引值i得到i’,然后通过查找合并表中索引值i’所对应的代码来替换原始索引值i所对应的代码,以达到加密MV的目的。加密方法如式(4)所示。

由于运动向量在整个视频流中占的比例非常小,故加密前后的压缩率变化不大。

1.2.4 实验结果

本文选定,分别产生Logistic映射和Chebyshev映射,可得到加密效果如图1所示。

1.3 性能分析

1.3.1 速度

通过分析MPEG视频编码标准可以得到,DC系数和运动向量的数据量通常都不到原视频数据的2%。而非零AC系数个数通常占原视频数据的5%到15%之间。因此加密的数据量相对来说非常少。此外,加密运算只涉及简单的异或、赋值、交换、查表和加法操作,因此加密算法能够高效地实施。

1.3.2 压缩率

加密DC系数和AC系数的方法均不会改变其压缩率。而由于运动向量的数量极少,且加密前后的运动向量所占位数差异不超过6bit,因此加密运动向量后对压缩率的影响微乎其微。

1.3.3 格式兼容性

由于以上加密算法都未改变视频的数据格式和语法,且加密后不会产生不存在的代码字而破坏解码,因此在接收端,即使在未解密的情况下,仍能实现正确解码并播放视频。

1.3.4 安全性

视频加密算法的安全性取决于两方面——选择加密内容和密钥产生方法。因为我们选择直接关系着画面显示效果的DC、AC系数以及MV进行加密,足以实现画面的混乱以达到安全需求。就密钥产生方法而言,本文采用的是基于Logistic映射和Chebyshev映射的交叉混沌序列。这两个混沌映射各自的系统参数和p以及各自的初始状态x0和y0都作为密钥,每次迭代都会产生不同的伪随机数,因此不存在密钥重复的问题。且该交叉混沌序列对初值极其敏感,即使x0或y0改变很小,迭代数次后产生的伪随机序列都将变化巨大。

2 强实时性视频数据保密方案设计

对于强实时性流媒体视频应用的安全保密主要涉及两部分方案设计:第一是基于视频数据本身的安全性,在第二部分中我们已经提出了可用的选择加密方案;第二是传输过程的安全性,这涉及到传输协议的选用以及数据包丢失所引起的错误解密。

由于实时性流媒体视频数据的数据量往往很大,并且对时延和时延抖动均有较高的要求,因此可以选择RTP和RTCP协议作为流媒体网络传输协议[5]。

对于流媒体传输中数据丢失的情况,原则上要求只能丢失部分数据包,并且接收端仍然能够正确解密和播放。对于流密码加密来说,如果加密数据流与产生的密钥流无法同步,则之后的所有解密都会失败。

为了正确解密,可以为每一帧的user_data字段插入一32bit的随机数u。将交叉混沌序列迭代u次后用于每帧的数据加密。只要攻击者不知道流密码加密算法的密钥,即使获得了随机数u,也无法获取密钥流。当对安全性要求较高时,可采用128bit的随机数作为u。当网络传输较稳定时,基于对加密速度和数据量增幅的考虑,可以以图像组GOP为单位,在每一GOP的user_data字段中插入随机数u用于加密该GOP。如此这般,每一帧或图像组中出现的错误只会影响该帧或该图像组的播放,对其他帧或图像组不会有任何影响。

完整的强实时性视频数据保密方案设计如图2所示:

3 结语

天猫双十一销售额实时数据 第2篇

为了全面直观展现当天消费者购物场景和节日气氛,水立方会议报告厅搭建起了实时直播数字大屏,相比去年的13米长、6米高,今年的显示屏升级到了20米长、10米高。

直播大屏将提供实时信号,包括数据大盘、全球交易图、热卖品牌榜、菜鸟物流雷达预警等。

1分12秒交易额过10亿元

现场大屏幕提供的实时数据:

开场18秒,天猫交易额超过1亿元。

1分12秒,交易额就突破10亿,去年这个时间,交易额刚突破1亿元,今年第一分钟的交易额度增长了10倍。

1分45秒,数据显示天猫跨境贸易的交易额超过去年双11全天的数据。

5分钟,交易超过43亿元,是去年同期交易额的一倍多。

12分28秒,天猫交易额就超过了100亿元,而去年这个数字用了38分钟28秒。

31分钟,达到191亿元,是双11全天的交易额。

33分53秒,交易额超过200亿元。

1小时13分59秒,交易额突破300亿元。

转变二:实时互动进化数据分析 第3篇

对于内容出版商来说,如果只依赖于页面访问量和“喜欢”数等被动数据的话,那真应该跟职业运动界好好学习。就像迈克尔·刘易斯(Michael Lewis)的畅销书《点球成金》,这本书让棒球统计数据分析名声在外,并拍成了布拉德·皮特主演的电影。现在所有大的球队都靠先进的数据分析而不是简单的统计数字来捕捉球员价值。但在此以前,体育界分析工具一直停留在石器时代,直到奥克兰运动家队经理,布拉德·皮特扮演的比利·比恩(Billy Beane)和一小群数学奇才打破了人们原先对棒球的了解。

品牌和内容出版商为什么不追随这些先例,对自己内容的数据分析也来一场革命?如今,每个人都知道我们衡量内容的方式不够好,但就仅此而已了。就像比恩等人突破传统模式一样,一些内容出版商也在另辟蹊径,改变内容数据分析的现状。

网站流量分析公司Chartbeat:

关注互动数据

如果刘易斯要给品牌出版的现状和实验写一本畅销书的话,Chartbeat的CEO托尼·黑尔(Tony Haile)或许就是像比恩一样的角色。在内容与受众互动方面,他能够准确发现价值所在,这也是为什么Charbeat的客户包括美国80%的主要内容出版商,如高客传媒(Gawker Media)、《时代》周刊和《福布斯》。

“很多人觉得,盯数据盯得太紧不会带来高质量的新闻作品,”黑尔在网络杂志《沙龙》的一篇Charbeat报道中提到。“我觉得,如果你追踪的量度不对,那么这个说法是成立的。”但如果跟对了数据,像《纽约时报》和ESPN一样,Chartbeat成功地帮助出版商制作更高质量的内容,并进一步吸引了受众。

“因为页面访问量和点击量太二元,无法告诉你读者是否认为这个内容有趣,”Chartbeat品牌负责人劳林·贝内特(Lauryn Bennett)说。“看受众如何到某个页面,并通过追踪受众花的时间,试图打造忠诚的受众群,这会呈现更完整的互动情况。”

Chartbeat并没有改变内容,而是追踪能够告诉出版商某个特定时间内有多少读者在网站上、在读什么文章的实时数据。《沙龙》的文章提出Chartbeat是否能拯救新闻业的问题,但公司似乎更关心让出版商有可以自救的工具。

比如在社交方面,Chartbeat发现分享和人们是否阅读某篇文章之间没有关系。他们还发现,社交流量的高峰(下午3点到凌晨1点)和低谷(早晨5点到中午12点),并且82%的通过社交媒体到达网站的访客只会出现这么一次。这种对数据开发的专注,是其它想要改善互动现状的网站值得学习的。

新创媒体公司Upworthy:

关注分钟数

这家赚点击的公司估计一时半会儿得不到普利策奖,但Upworthy新的“关注分钟数”关注用户鼠标移动和点开标签页的情况,提供了用户一旦进入网站都在做些什么的具体信息。此外,公司还将每次访问数据根据不同推荐网站来源如Facebook、谷歌和Twitter,进行分解,结果发现,Facebook带来的互动程度最高,每次访问的关注分钟数约4.5分钟。

分析关注分钟数也从侧面证实了Chartbeat的理论,即人们是否阅读文章与是否在社交网站上分享没有关系。Upworthy的数据还发现一个有意思的地方:基本不读文章的和读完全文的人一样会去分享,而读了一半的人却不太可能分享。

快公司(Fast Company):

改变扁平逻辑

你可能没听说过“一截文章(Stub stories)”,但快公司希望改变讲故事的方式,围绕某一个话题写很多短小的帖子,形成相关文章的关联组合。比如,每次有关谷歌阅读器的新闻出来,就不需要重新写一遍导语和那些标准的细节,在关于某一个话题的同一个页面上,有很多短帖,用标题和边栏隔开,可以把它看成是没有止境的长篇写作过程。

“传统上文章之间是扁平的关系,”快公司数字部高级编辑克里斯·达能(Chris Dannen)说。“这就是一个问题,因为并不是所有文章都有相同的价值。”

作者希望有更多空间,在关键时刻展开某话题,哪怕只有一段的空间。“当有新闻价值的事情发生,我们有关于这个事件的各种资料供人们参考,”他说。“作者和读者都很喜欢这一点。”达能可以测量哪些帖子影响力最大,一旦快公司重新建构起这个层级关系,流失率就会下降,人们停留的时间也会大幅增加。

读推网Medium:

衡量TTR

Medium公司关注的数字:总阅读时间(Total Time Reading,TTR)。跟“关注分钟数”相似,但进行了优化,能够更多地揭示出版物和读者之间双向的关系。就像Medium产品科学家皮特·戴维斯(Pete Davies)在博客里写的,TTR是为了跟预期阅读时间直接关联。他写道,“用户花3分钟读了一篇6分钟长的帖子的一半,还是花2分钟读完一篇2分钟的帖子,哪个更好?”

Medium计划使用数据计算出一些因素,如多长的文章能够产生最大的TTR,每篇文章的预期阅读时间存在多大的误差等。有的出版物采用复杂的数据来抵消对其内容质量的批评,但Medium似乎更在意如何精简他们与读者的关系,剔除一切多余的东西。

如何衡量互动程度?

网络公司很喜欢数字,特别是让技术媒体蜂拥而至的大数据。

每个网络公司都应当有一些实在的量度,能够指导企业并体现其健康程度的指标。理想的情况是,一个数字就足够了。乔什·艾尔曼(Josh Elman)把它称为“唯一重要的数字”。在Medium,唯一重要的数字就是总阅读时间,TTR。

为什么只需要一个数字?

在网络公司之外,很多公司都用金钱来衡量成功。但媒体行业一直都不太一样。通常,广告商根据受众量付费。而衡量受众规模的技巧也很多:广播曾经用日记的方式,让听众写下他们什么时间听什么节目。纸媒则计算发行和销售的份数,然后猜测每份报纸被多少人读过。

当网络登场(电子商务还颇遥远),只有事件可以衡量,如页面浏览量以及后来的点击量。而Cookies(和谷歌分析工具)被广泛使用后,我们开始谈论用户。对于没有产生收入的新创公司来说,用户是唯一的资本:注册用户、注册人数以及最终的活跃用户。

“大数据”让人们可以衡量用户与某应用之间的全部的、以及每一次的互动。我们可以记录用户做了什么、用的什么设备、什么时间、以及持续多久。而且数据存储也很便宜,相对容易处理。

如今,可以获得的数据已经超过了所需。很多时候,不是收集的数据不够量,而是无法获得有用的。

所以,更多的数据不等于更好的。企业,至少是有收入模型的企业,仍然在向钱看。今天的海量数据帮助我们更好地理解是什么带来了收入。数据分析人员可以将早期用户互动(如营销活动、推荐来源等)和销售漏斗终端活动(如花钱或点击广告)联系起来。这个数据还可以对产品多样化和潜在的新收入来源有所启示。

没有收入的公司仍然需要优化,以换取宝贵的用户行为。对Medium来说,宝贵的行为就是让用户参与到这个平台。

参与互动是营销者近年一直挂在嘴边的词。当用户参与你的平台,你就获得了他们的关注。关注在今天是一种宝贵的资源。

对于“互动”究竟是什么以及应当如何衡量,甚至是否可以衡量有很多争论。当然,这取决于平台,以及你希望用户怎么使用他们的时间。

对于内容网站来说(如《纽约时报》),你希望人们阅读文章,然后下次再来读文章。

而一个相亲服务(如OkCupid)则要匹配用户。成功匹配量就会告诉你企业健康度。

数据实时性 第4篇

煤矿瓦斯监测数据联网在煤矿安全生产方面起着日益重要的作用,其应用可使煤矿管理部门对基层煤矿的瓦斯动态数据有一个实时、清晰的掌握和了解,从而可及时避免或防止煤矿安全事故的发生。瓦斯监测监控联网技术在全国煤炭行业的推广,将会有效预防及遏制煤矿瓦斯事故的发生,强化煤矿瓦斯的综合治理。动态数据的实时传输在瓦斯监测监控联网中起着至关重要的作用,网络上传软件使煤矿井下的各种数据信息实时传输到煤管局、煤监局等煤矿管理部门的网络中心平台[1,2],使煤矿管理部门实时掌握各煤矿井下的情况,极大地提高了煤矿的信息自动化和数字化管理水平。

笔者以VC++6.0为编程平台,利用Microsoft SQL Server 2005(兼容Microsoft SQL Server 2000等)数据库存储数据,基于TCP/IP的网络传输协议,开发了瓦斯监测数据实时传输软件,可为Web页面浏览提供实时准确的矿井瓦斯监测数据,进而实现煤矿管理部门对矿井的远程监控管理。

1 联网设计流程

煤矿井下瓦斯监测监控系统采集矿端瓦斯数据,通过各个监控系统生产厂家的数据采集软件,按照统一的数据协议格式,写进数据库或文件中,再由专门的上传软件把所需的数据进行处理后实时传输至上一级煤矿管理部门或煤矿安监部门的联网中心平台,进而对下辖的各矿井瓦斯数据进行实时跟踪、管理。其联网设计流程如图1所示。

整个框架按照采集层、存储层、监控管理层设计。基层为数据的采集层,数据经过采集传输然后存储至数据库服务器中,当终端机进行Web网页浏览时,调用数据库存储服务器中的数据,最后供终端机进行实时查看,对矿端进行实时远程监控管理。在联网系统中动态数据的实时传输起关键作用。

2 数据库的设计[3,3]

合理的数据库设计将大大节省服务器的资源占用量,消除数据冗余、避免数据异常等情况。根据联网框架的设计结构,将存储实时动态数据的数据库命名为KJMZ90,并且为每一个矿端生成一个数据库表,用来存储动态实时模拟量数据,其设计字段如下:

ID (每行自动增加的标识) 数据类型 int

MineBH (煤矿自己的编号) 数据类型 char

Point (矿端监控数据的测点号) 数据类型 char

PtMaxz (测点号在某一时间的最大值) 数据类型 char

PtMinz (测点号在某一时间的最小值) 数据类型 char

MaxSj (测点号取得最大值的时间) 数据类型 datatime

MinSj (测点号取得最小值的时间) 数据类型 datatime

表中所存储数据截图如图2所示。

3 动态数据的处理与传输[4]

3.1 数据库连接测试

在联网系统中,动态数据的传输与处理由上传软件来完成,其开发以VC++ 6.0为平台,数据存储用Microsoft SQL Server 2005数据库。在进行数据传输前,软件代码中首先要对所连接的指定数据库进行测试,如果测试连接成功就可以进行数据的传输,否则不能传输。测试数据库连接的函数主要用到 OnInitADOConn(),并且每隔一个数据传输周期如10 s,就测试检查一次是否与服务器的数据库连接成功,如此循环。在矿端与中心数据库服务器保持畅通情况下进行瓦斯数据的实时传输。

3.2 动态数据的提取和实时传输

各矿端不同生产厂家的监控系统按照所规定的数据协议格式,每隔一定时间如10 s,就提供上传所需的动态数据,然后再由上传软件对动态数据进行处理,上传至数据库服务器,以供各终端机浏览Web网页时调用。

上传软件分别对2个文本文件(一个为动态数据的测点定义文件且另一个为动态数据的实时更新文件)中的数据进行处理,并进行实时传输,存储在数据库服务器中,其中测点定义文件中的部分内容如下:

上传软件对以上各测点号动态实时数据的提取和处理,分别用到以下主要函数:Writedy()对测点号进行二次定义并传输到数据库服务器中的函数,WriteRealdata()处理及传输测点号实时数据的函数,WriteAlarm()处理及传输测点号报警数据的函数,WriteMz()处理及传输测点号最大(小)值的函数,UpRealData()更新测点号实时数据的函数,UpdataMz()更新测点号最大(小)值的函数等。对于动态数据的实时更新,利用定时器函数OnTimer(),以及设置循环时间函数SetTimer(),就可以对其他函数进行定时循环调用和数据传输,从而可以不间断地把矿端井下的实时监控数据源源不断地传输到数据库服务器进行存储,以供终端机浏览Web网页时调用。

4 Web网页的浏览

以上数据库的设计以及动态数据的实时传输和存储等,都是为终端机进行Web网页浏览各矿实时监测数据而准备的。

通过浏览Web网页,可以对每个矿端井下的瓦斯量、开停(关)量等传感器数据进行实时远程监控,以及实时数据查询、历史数据查询、实时语音(文字)报警及报警查询、某一测点数据的曲线查询、故障查询、各个煤矿通风系统图实时监测、各矿日(月)报表的打印以及查询等, 从而为煤矿安全监管部门进行远程管理提供有力的监督和快捷的平台,为预防重大瓦斯事故的发生提供重要的防范工具。图3即为Web网页进行实时动态数据监控的主界面。

5 结束语

煤矿瓦斯监测监控联网系统的应用,可以有效防止煤矿瓦斯事故的发生,提升煤矿安全生产水平,而联网系统中矿井动态数据的实时传输又起着关键而重要的作用,为Web网页的浏览提供实时准确的数据源,把矿端井下的监控数据,实时精确的数字信息呈现在各个终端机面前,从而使煤矿管理部门及时作出防范和处理决定,避免不必要的事故发生。

该系统已完成设计并经过实际测试验证,已应用于重庆、四川、陕西、山西、安徽、河南、河北、贵州等煤矿以及矿务局,如河南登封矿务局67个矿自2003年使用KJ90联网系统至今,共监测以及排除事故隐患3万多起,河北邯郸沙河矿务局自2004年使用至今,共监测出煤矿异常情况23 069起,排除多起事故隐患,挽回直接经济损失达1.2亿多元。

参考文献

[1]吴恂恂.煤矿瓦斯监测联网系统[D].天津:天津工业大学,2007.

[2]金晨泽.基于Multi-Agent的瓦斯联网系统的研究与应用[D].天津:天津工业大学,2007.

[3][美]Chuck Wood.Visual C++6.0数据库编程大全[M].北京:电子工业出版社,2000.

[3]刘锐宁,梁水,宋坤.Visual C++程序开发范例宝典[M].北京:人民邮电出版社,2009.

飞机实时监控数据挖掘方法研究 第5篇

飞机实时监控数据挖掘方法研究

通过数据挖掘技术分析与飞机运行和维护相关的.数据资源来研究一套能及时察觉、分类并预报故障的飞机实时监控系统(Aircraft Real-Time Monitoring & Troubleshooting System,AMTS),使其能够在优化飞机关键部件寿命的同时减少飞机运行和维护的费用.分析着手于历史维护经验库,结合飞机维护技术文档和相关数据挖掘算法,介绍了构建该系统的原理和方法,并初步实现利用飞机实时故障报文对飞行状态进行实时监控及故障诊断.

作 者:朱睿 郭隐彪 ZHU Rui GUO Yin-biao 作者单位:厦门大学机电工程系,福建,厦门,361005刊 名:厦门大学学报(自然科学版) ISTIC PKU英文刊名:JOURNAL OF XIAMEN UNIVERSITY(NATURAL SCIENCE)年,卷(期):46(5)分类号:V267 V247.5关键词:数据挖掘 实时监控 技术文档 历史经验

环境信息化中的实时数据库应用 第6篇

实时数据库的优势

大多数环境信息化系统的数据量都较为庞大,以环境监测和污染源监控管理系统为例,系统需要接入大量实时的污染源自动监控数据和环境质量自动监测数据,而常规数据处理方式会带来数据存储时间不长、精度不高、存取效率低下等诸多问题,而与此同时,数据量的增长与系统运行效率成反比,大幅增长的数据会逐步影响平台的正常运行。

为解决上述矛盾,人们在技术层面上一般采取构建分布式关系数据库集群的方案,这无疑会增加硬件构架的复杂性,并增加维护管理和设备投资成本。

针对以上问题,系统构架者可选择采用成熟的实时数据库产品及相关技术解决方案。实时数据库构建树状数据模型,能够提供大量、不间断的存储,支持多种压缩,存储容量大,提供大量数据挖掘分析功能,在高速、大量的存储时能够提供多并发的高速查询,弥补关系数据库在实时数据存储、分析、查询方面的不足,改善关系数据库应用过程中系统响应速度下降、系统崩溃等问题,大幅提高系统安全性和运行效能。

污染源在线监测与分析系统

“污染物治理设施过程(工况)在线监测及分析系统”(简称“污染源在线监测与分析系统”)是污染源自动监控系统的进一步深化,其从原有的“末端监测”基础,深入到污染治理设施的运行,通过抽取出代表设施运行的模型和工况参数,精确描述设施运行的状态,为提高自动监控数据有效性、优化治污设施运行,及环境监察执法、总量减排、排污收费等各种管理应用提供可靠的数据支撑,该系统采用的正是实时数据库产品及解决方案。

工况在线监测及分析系统是对污染治理设施运行全过程进行实时监控、分析、预警、核查和管理的一体化环保信息化管理平台。系统结构分为四层:采集层、网络层、数据层和应用层,数据直接来源于生产控制系统、治污设施控制系统和自动监控系统。

工况在线监测及分析系统主要满足了环境监管部门日常监管工作需要,可以实现重点污染企业污水、废气过程参数的实时查看、分析、报警和辅助决策,过程参数与污染源自动监控数据可进行一致性校验分析,支持环境执法、总量核定和排污统计等环保业务。

污染物治理设施过程(工况)在线监测及分析系统以实时数据库为基础,在工况验证分析、工况数据统计两个基础平台的支撑下,实现对工况数据的分析和应用,主要包括系统管理、实时监视、趋势分析、报警、工况统计、工况核定、总量核定、企业交互及报表分析等功能。

数据库结构设计

工况在线监测与分析系统数据库结构

工况在线监测及分析系统数据库按照分布式多级数据库方式进行设计,主要分为三个层次:前端工况过程数据库层、中心工况过程数据库层、中心工况应用数据库层。

前端工况过程数据库和中心工况过程数据(原始库与分析库)采用实时数据库,由于工况系统需要存储大量的数据,因此需在存储前进行数据压缩。实时数据库具有数据压缩功能,可以用非常小的空间来存储大量的数据,而且还能保持相当不错的数据精度。

前端工况数据库层由布置企业前端的工况现场前端工况数据库组成,它是分布式过程数据库的基础层。前端工况数据库的作用是在企业前端将全厂的工况数据做汇总,由于其布置在前端现场,存储数据只受现场采集设备、采集网络及现场供电情况的影响,故其完整性在整个系统中是最高的。

前端工况过程数据库还有一个重要的功能是通过数据转发模块向中心工况过程数据转发实时工况数据,转发模块在网络出现异常时会记录最后发送的记录情况,在网络恢复时会将网络中断时间内的历史工况数据回补到中心工况过程数据库中,从而保证中心工况过程数据库中工况数据的完整性。

中心工况过程数据库层由原始库和分析库两个工况过程数据库组成。原始库主要是存储、汇总与前端工况数据库一致的工况过程数据,同时采集参数名称也与工况现场完全一致。分析库主要是将原始库中的数据依据一定的标准化规则转换成工况分析所需要的数据,包括采集测点的标准化、采集参数的实时计算(换算)、实时分析结果的存储等。

实时数据库应用情况

实时数据库在数据采集、存储、显示、分析方面拥有显著优势,所以在工况在线监测与分析系统中得到了广泛应用。

数据处理能力:工况在线监测与分析系统数据庞大,要求数据库读取数据和存储数据的能力能跟上节奏,实时数据库具有海量数据处理能力,读取实时数据库的时间是毫秒级,同时支持百万级单数据库的容量。

实时工况监控:工况监测的一个重要功能就是实时监测,即将工况的实时数据真实准确地反映在工况实时图形界面上。工况实时图形界面不但要具备实时显示模拟量的数值变化,还要能显示开关量的变化情况,系统通过红、绿、黄颜色分别代表运行、停运、故障。

火电厂工况实时图形界面

趋势分析:实时数据库能准确记录数据的变化趋势,方便监测人员查询调阅历史数据变化趋势。实时数据库提供实时数据对比分析、历史数据对比分析、自定义趋势组、表格显示数据、数据导出、前进、后退、放大、缩小和打印等功能。

数据查询:主要针对采集的排污数据、状态数据、过程数据进行综合查询。

报表系统:报表工具基于J2EE的B/S报表平台,能够实现统计参数的在线配置、数据自动统计、报表模板定制及发布等功能。

工况报警:实时及历史报警可视化工具可以显示当前或过去某段时间内的报警详细信息,提供报警过滤、报警数据导出、报警鸣笛等功能。在火电厂工况系统中,报警主要分为网络报警、机组停运报警、脱硫设施停运报警、污染物偷排报警、超标报警报警、脱硫设施低负荷运行报警、脱硫系统参数异常报警。

工况数据关联性分析:主要依据实现定义的分析模型对工况进行综合分析,以电厂为例,可以判断发电机组、治污设施的运行情况是否正常、污染源监测数据是否可靠,及时发现发电机组生产过程、治污设施、监测系统中可能存在的异常情况,如偷排、治污设施虚假运行等。

关系数据库与实时数据库结合

当前,很多项目的数据层设计都采用关系数据库与实时数据库相结合,工况在线监测与分析系统中,前端工况过程数据库和中心工况过程数据(原始库与分析库)采用的是实时数据库,中心工况应用数据库层由通用关系型数据库来承担。

对于实时采集的数据需要能够进行数据分析,并与关系数据库进行数据交换,能够根据业务需求配置相关数据统计规则,定期统计、抽取实时数据库数据至关系数据库中,实时数据库的测点能够与关系数据库进行映射,构建实时数据库的横向业务关系模型,能够根据业务需求,实时地组织实时数据,构建关系模型,并提供给业务系统。

实时数据库是采用实时数据模型建立起来的数据库,用于处理不断更新、快速变化的数据,以及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,利用数据库技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时间驱动调度和资源分配算法,其主要应用于自动连续数据的监控,如电力、环保、石化、化工、钢铁、冶金、造纸、交通控制和证券金融等领域。

实时数据库与关系数据库的结合解决了连续自动数据采集所带来的并发性、高速存取、数据存储、系统性能等问题,同时也能利用关系数据中的对象关系、事务处理、自定义结构等来优化系统数据的利用。

实时数据图形化显示 第7篇

目前实时数据显示系统多采用C/S模式或传统B/S模式。C/S模式虽然响应速度较快,可以充分发挥胖客户端的优势。但是该模式缺少通用性的特点,业务变更和改变不够灵活,需要重新设计和开发,增加了维护和管理的难度。传统B/S模式具有分布式特点,业务扩展和系统维护简单方便,可以实现快速安装部署。但是该模式为同步模式,将刷新整个web页面,才能实时显示数据,会造成web页面的震动,不利于用户的分析观测。如果将这两个模式的优点结合起来将大大提高系统的整体性能。基于此,本文采用AJAX技术,利用jQuery框架和jQchart框架,实现基于AJAX模式的实时数据显示系统。

2 AJAX概述

AJAX(Asynchronous JavaScript and XML)这个概念最早是由Jesse James Garrett提出的。中文意思是异步的JavaScript与XML。它并不是一门新的语言或技术,而是几项技术按一定的方式组合在一起,在共同协作中发挥各自的作用。这些技术包括JavaScript、XHTML、CSS、DOM、XML、XSTL以及XMLHttpRequest[1]。可以使用XHTML和CSS标准化呈现;使用DOM(DocumentObjectMode1)进行动态显示和交互;使用XML和XSLT进行数据交换与处理;使用XMLHttpRequest与服务器进行异步通信;使用JavaScript绑定和处理所有数据。与传统的B/S模式(如图1所示)不同的AJAX模式(如图2所示)采用异步交互过程来实现数据的传送。AJAX在用户和服务器之间引入一个AJAX引擎,在会话的开始,浏览器加载一个AJAX引擎,这个引擎负责绘制用户界面以及与服务器端通信。

3 jQuery和jQchart框架

jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多JavaScript高手加入其team,包括来自德国的Jörn Zaefferer,罗马尼亚的Stefan Petre等等。jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是———WRITE LESS,DOMORE,写更少的代码,做更多的事情。它是轻量级的js库(压缩后只有21k),这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器(IE 6.0+,FF 1.5+,Safari 2.0+,Opera 9.0+)。j Query是一个快速的,简洁的JavaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可[2]。

jQchart是一个jQuery的插件,用来绘制图表的[3]。支持各种形状的图表。轻量级,但功能却不弱。

4 采集实时数据

企业所关注的实时数据可以是产品销售额、产品订单数、网站点击量以及网站会员数等等。现就采集产品销售额,举例说明。采集其他实时数据,可以仿照此方法。

采用元数据格式保存实时数据,元数据表设计如表1所示。在web服务器中建立php类meta,其成员函数有setMetaContent($key,$content),getMetaContent($key)。每当产品销售额有变化时,例如产品销售额变成为100000,则调用函数setMetaContent(“productSales”,100000),设置key为productSales对应content的值为100000。

在web服务器端新建一个php文件,文件中的php代码如下:

假设此php文件对应的url为:http://www.meta.com/getMetaContent.php,在客户端浏览器地址栏中输入此url即可显示当时的产品销售额,但是要刷新整个web页面,才能采集一次产品销售额。此时刷新了整个web页面,会造成web页面的震动,不利于用户的分析观测。下一步,我们可以采用AJAX技术,利用jQuery框架,刷新局部web页面。

在web服务器端新建一个html文件,文件中的JavaScript代码如下:

假设此html文件对应的url为:http://www.meta.com/getMetaContent.html,在客户端浏览器地址栏中输入此url即可显示当时的产品销售额,并且每10秒钟采集一次数据。此时刷新了web页面的局部,带来web页面的细微震动,但是数据是以文本形式显示,也不利于企业用户的分析观测。下一步我们可以采取j Qchart,图形化显示产品销售额。

5 图形化显示实时数据

函数setTimeout(),实现每隔一段时间调用相关的函数,刷新页面中的图表。调用jQuery框架中的AJAX函数$.get(),获取服务器端的数据。jQchart框架中的函数$('#myCanvas').jQchart(),实现绘制线形图。

图形化显示实时数据的关键JavaScript代码如下:

每10秒钟刷新一次web页面中的图形部分,j Qchart实时显示产品销售额的效果如图3所示。0秒对应的数据为现在的产品销售额,n秒对应的数据为过去n秒的数据。图3中能显示过去一分钟内的产品销售额。

6 结论

此系统能够灵活应对业务变更,使得维护和管理变得更加方便;局部刷新,不会造成web页面的震动,有利于用户的分析观测。笔者研究的基于A-JAX的实时数据图形化显示技术,已经成功应用于许多系统中,效果良好。

摘要:企业实时数据显示系统通常是采用基于C/S模式以及传统B/S模式。该文分析了基于这两种模式的实时数据显示系统的优缺点,结合两者的优点研究出一种基于AJAX模式的实时数据显示系统。此系统采用了jQuery框架和jQchart框架,解决了企业观测实时数据遇到的一些问题。

关键词:实时数据,AJAX,jQuery,jQchart,图形

参考文献

[1]王瑞玲.基于AJAX的企业信息管理系统的设计与实现计算机应用技术[D].天津:天津大学,2007.

[2]百度百科.jQuery百科名片[EB/PL].http://baike.baidu.com/view/1020297.htm.

实时数据库数据压缩算法探讨与改进 第8篇

实时数据库 (RTDB) 作为组态软件的核心, 保存着系统运行时产生的各种数据和信息。这些信息对管理层及时了解生产现场的实时情况、实现上层信息系统与底层控制系统的集成都具有重要意义。随着RTDB应用领域的不断扩展, 对它的研究也越来越深入, 其中如何存储与管理实时数据库中大量历史数据的问题也受到了更多的关注。

参考文献

[1]方来华, 吴爱国, 何熠.组态软件核心技术研究[J].化工自动化及仪表, 2004, 31 (1) :33-35.

[2]王伟, 刘文怡, 秦丽, 等.遥测数据实时压缩技术的设计与实现[J].仪器仪表学报, 2006, 27 (6) :2467-2469.

[3]张景涛, 王华, 王宏安.实时数据的存取与压缩[J].化工自动化及仪表, 2003, 30 (3) :47-50.

[4]徐新.增强型矢量数据压缩算法的设计与实现[J].计算机应用研究, 2007, 24 (12) :393-395.

[5]WELCH T A.A Technique for High Performance Data Com-pression[J].IEEE Computer, 1984, 17 (6) :8-18.

[6]黄豪佑, 董辉, 卢建刚.历史数据压缩算法在DSP上的实现[J].计算机测量与控制, 2006, 14 (12) :1686-1688.

Celona:实时数据迁移的专家 第9篇

传统的应用被淘汰, 数据需要从一个业务应用迁移到另一业务应用。服务器扩充带来最大的难题便是系统数据的迁移。数据迁移会带来长时间的系统停机, 这就意味着用户的业务会有比较长的中断时间, 在市场经济瞬息万变的今天, 时间的浪费就意味着机会的丧失。一种全新的数据迁移解决方案为市场所期盼, Celona的诞生可以说是众望所归。

Cel ona诞生于创新

成立于2005年的Celona科技公司是业界领先的业务核心数据迁移技术提供商。Celona为复杂的企业环境提供全面的数据集成解决方案。通过处理最大范围内的数据源, 帮助各种规模的公司和政府机构准确实现数据迁移, 从而为企业实现整体的数据价值。Celona总部位于伦敦, 在欧洲和亚洲设有办事处, 这些机构由经验丰富的数据迁移专家组成, 致力于支持IT机构商业应用的数据迁移和改进。

Celona的数据迁移解决方案以专为数据迁移而设计的创新型技术平台Celona Evolve为依托。这套解决方案可以使数据迁移、应用数据同步和商业应用同时进行。这意味着Celona的数据迁移解决方案可以在数据迁移过程中, 实时地管理数据和业务流程的变更, 满足客户最大的灵活性和灵敏性需求, 并且确保客户系统的零停机。公司的应用数据迁移方案比传统的ETL (数据的提取、传输、载入) 方案或者传统的数据复制方法提速90%, 并且比传统方法少50%的资源使用, 其低廉的迁移成本满足了用户使用最少的资金实现最大目标的愿望。另外, 得益于Celona Evolve的跟踪和追踪功能, IT部门可以实时地监控正在进行的数据迁移工程, 也可以使用Celona的模型和报告表实时地控制工程的每一个步骤。

Bloor研究中心主任Philip Howard称:“在商业应用上, Celona公司的Evolve平台是超越传统的数据迁移解决方案的。”

Cel ona Evol ve———改变传统数据迁移法则

Celona Evolve是新一代的数据迁移产品, 专门用于传统应用程序向新的商业平台领域的数据迁移。Celona Evolve为市场提供了全面的数据迁移解决方案, 支持多种数据平台。它帮助IT管理人员管理用户、数据、应用和数据迁移过程, 而不用任何停机, 并且风险极低。Celona Evolve的软件架构如右图所示, 主要包括迁移管理中心、智能迁移控制器、并发同步引擎和自适应迁移框架。

迁移管理中心

Celona Evolve数据迁移平台的核心是迁移管理中心, 它管理和控制着数据迁移过程的每个步骤。迁移管理中心提供一系列的图形用户界面, 帮助用户管理和控制迁移工程的各个环节, 控制面板供数据迁移管理者配置迁移的细节和迁移的具体操作。所提供的用户界面可实时地管理数据迁移过程, 并可对这一过程进行设计、调度和更改。Celona Evolve可管理的迁移过程使得操作系统、应用程序和数据更加安全, 提高了用户系统平台迁移的可靠性。

智能迁移控制器

Celona Evolve的智能迁移控制器是一个精密且智能化的数据流迁移系统。它由一系列核心组件构成, 可以全方位管理、调度、控制、跟踪迁移过程中的应用数据、依赖性的迁移系统以及状态数据。智能迁移控制器的核心组件主要包括业务数据集、依赖模型和状态模型。业务数据集可以按照公司相关业务的需求, 灵活地选择迁移策略;依赖模型用于确保系统间的数据转换顺序, 确保每个目标系统的独立、完整性需求;状态模型可确保在任何时刻, 整个迁移过程中的每一个托管项目都可被3600的完全控制、管理。

零停机迁移引擎

在数据迁移计划中, 延误是很普遍的现象。Bloor公司在2007年9月发表的一项研究结果发现, 在所有受访的数据迁移计划中, 有64%没能按时完成。而Celona Evolve不同于传统ETL, 它对数据的迁移过程是不分阶段进行的, 它采用前置作业环境, 保证在正式上线前完成数据的迁移, 所有可能导致停机的风险都被排除。另外, Celona Evolve让处理器与内存配合实现数据迁移和数据应用的同步, 管理应用程序和系统之间的迁移进程和数据流动, 因此不需要离线状态和离线数据存储, 确保在数据迁移过程中应用数据仍然可操作使用。

并发的同步引擎

当数据迁移时应用程序支持和驱动的业务流程被分离, 数据迁移与业务流程的不同步是导致数据迁移过程失败的重要原因。无论是单一或者多层次的业务流程, Celona Evolve都使用增量数据抽取功能 (CDC) 追踪修订、模拟和管理业务流程所需的数据, 确保在源应用和目标应用之间实现并发同步。同步引擎使源系统和目标系统中变更的数据迁移方法和指示保持总体同步。这种双向能力不仅可以减少迁移过程的风险, 还可对旧系统提供不间断的支持。Celona Evolve可实现从源系统到目标系统的端到端的双向同步, 保证迁移前后用户的系统平台以及应用中的所有数据———包括普通的数据、用户的帐户信息、链接等都不发生任何的改变, 这样当迁移完成后可以马上可以投入使用, 以满足客户实时控制的需求。

自适应迁移结构

在数据从传统源向新的应用目标或领域迁移过程中, Celona Evolve平台提供了一系列的应用程序适配器, 可柔性植入各种应用程序。正是这种模式的引入, 使Celona Evolve区别市场上其它的数据迁移类产品, 从而为客户定制满足要求的数据迁移架构。Celona Evolve的公用模式可以迁移包含较多交互数据的整体业务, 这些整体业务通常由很多相互联系的应用程序组成。另外, 对于需要从多重应用向多重应用迁移的业务, 公用模型也确保在迁移过程中, 使用最少的再造模型, 更多地重用模型, 减少迁移时间, 提高投资回报率。可变模型库的适应性的迁移框架中包含了源应用系统到目的应用系统的数据转换模型和数据映射规则。这种灵敏的转化方式使得源应用和目的应用之间的转化可被单独映射和修改。

数据迁移—Cel ona的选择

5种迁移方式

Celona Evolve数据迁移平台帮助客户开发各种不同的数据迁移方式。通过Celona的平台, 客户可以自由选择最适合自身的迁移方式, 确保正在构建的数据结构能够支持多个项目和项目类型, 并与现有系统及应用程序兼容。Celona提供了5种不同的迁移方式:

核心不移植的迁移———系统被移植到一个全新的环境中, 仅需要通过业务流程加入新的应用。虽然不用数据迁移, 但是某些数据需要在传统系统和新系统间进行双向同步。

基于事件的迁移———业务触发的数据迁移, 例如客户需要开发一种产品, 要求将新产品的数据从旧的系统迁移到新的应用。这种情况下, 只需要对数据进行迁移, 并且迁移被业务流程所控制。Celona公司的双向整体同步可以确保数据被复制到所有相关的系统和应用中。

增值的迁移———数据迁移的增值方式可以按照业务需求对原始数据进行切割筛选。数据的不同处理方式对应不同的业务变更优先级。业务迁移的过程完全按照目标系统进度, 确保整个过程中目标系统和原始系统的同步。

批量的迁移———在某一时间点将老系统数据完全移植到新系统中。使用这种迁移方式往往成本较低, 且不需要过渡解决方案。Celona通过整个迁移过程的总体同步和全方位的过程监控, 可提供源系统和目标系统的实时同步, 确保数据质量。

大爆炸式的迁移———飞跃式地迁移多个系统的大部分数据和所有的业务流程。使用Celona, 大爆炸式迁移的危险被降到最低, 因为Celona可以将数据迁移过程分为独立的系统、用户、业务流程的迁移。

数据质量保证

数据迁移的质量不光是新系统成功上线的重要前提, 同时也是新系统今后稳定运行的有力保障。成功的数据迁移可以有效地保障新系统的顺利运行, 能够继承珍贵的历史数据。相反, 质量低下的数据会破坏迁移后的新应用软件或系统。在数据迁移过程中, Celona Evolve业务数据集将向业务环境中加入数据, 它可以根据迁移的要求设定数据集, 根据业务转移计划校准数据迁移计划, 提供高水准的灵活性和灵敏性, 并且在整个迁移过程的任何阶段, 数据集都是可修改的。使用业务数据集, 即使在某些数据存在问题时, 迁移过程也可不必暂停, 迁移过程将集中在良好的数据上, 同时迁移结束后可继续处理不良数据。另外, Celona Evolve提供的管理界面, 可发现和解决迁移和同步中数据的错误和异常。在前期作业环境中可快速地识别和校正数据问题, 这也确保了数据的可靠性。

Cel ona的专业化之路

2009年Celona入选“技术媒体100强”公司和“红鲱鱼全球100强”公司, 成为了当前集聚技术和创意的公司中的一员。Celona的CMO Matt Hooper称:“我们很荣幸能入选“技术媒体100强”, 这肯定了Celona在应用数据迁移市场上的全球领先软件供应商的地位。在世界经济动荡的背景下, 在过去的12个月, 我们的业绩取得了显著性的增长, 获得了全球的很多新客户, 我们的实时企业软件平台Celona Evolve也更加专业化。”

在数据信息资源倍受重视的今天, Celona领先的数据迁移技术在市场竞争中具有很大的优势, 我们期待Celona在数据迁移的技术道路上取得更加辉煌的成就。

摘要:Celona是新一代的企业数据迁移软件服务供应商, 提供可扩张的自适应数据迁移解决方案 (支持多重迁移方式) , 它能够实现零停机业务的核心数据迁移, 为客户提供并支持集成的端到端的解决方案。借助Celona, 企业可以通过所拥有的信息资源获得更大的商业价值。

参考文献

基于实时等值面的体数据雕刻 第10篇

另一方面,传统的体数据绘制方法采用转移函数将体数据通过不同的特性,例如密度[5,6,9],进行分类。然而,当感兴趣的区域变得不规则,例如两种材料的交接处,或者包括不同的密度和倾斜度值,或者包括不规则形状的时候,转移函数就变得不实用。在这种情况下,体数据雕刻就显现出它的有效性和自由性。其主要思想是通过除掉任意区域,用户需要的区域就会被显露出来。体数据雕刻同时还能提供用户一个方便的虚拟工具来雕刻模型以达到艺术效果。这篇文章详细描述了体数据雕刻技术。

此外,为了给用户提供现实的反馈,雕刻结果应该被快速地更新和表达出来。当今的计算机显卡可以明显加速体数据绘制,相关的技术已经被广泛用于不同可视化应用中。因此,我们的系统中采用了硬件体数据绘制技术来现实雕刻结果。

本文的结构如下:第二部分介绍了相关工作,并列举了这些工作和本文的相同点及不同点。第三部分描述了我们的虚拟体数据雕刻方法,包括碰撞检测算法,简化的力反馈计算,数据修改机制,以及用于数据可视化的部分转移函数。第四部分介绍了我们的虚拟体数据雕刻系统的实现,并提供了一些雕刻的例子。第五部分是讨论和未来工作。

文献[8,9]中介绍了一个很好的交互力学生成的算法。在这种方法中,触觉界面点(HIP)和虚拟触觉界面点(VHIP)的概念被用来描述触觉界面的行为。然而,这些方法需要几何模型的建立。在我们的工作中,辅助点HIP和VHIP被直接用于体数据来辅助模拟物等值面的触觉界面交互。

文章[1]中首次提出了基于体数据的力反馈模型。作者根据相关的采样密度建立了一个力学转移方程。在本文中,我们采用了一个从虚拟弹簧防震器模型中推到出来的简化力反馈计算方法。

说明:中间的立方体中将虚拟体数据显示成物体;绿色的锥体是虚拟笔, 虚拟笔可以被移动和转动来实现不同的雕刻;力反馈的幅度可以从左边的白色小窗口中得到;用户可以通过改变黄色线的形状以及移动紫色的立方体来修改转移方程和数据点。

还有一些方法被用于虚拟体数据空间中的实时触觉雕刻, 例如文献[2-3]的工作。然而, 在这些方法中, 颜色数据被直接修改了。而且如果需要用转移方程将密度数据转换成颜色数据, 就会产生引进一些错误数据。而且, 通过他们的方法, 如果改变转换方程, 部分雕刻的结果会遗失。在我们的工作中提出的这个部分转移方程可以克服这些局限。

文献[4]中测定了用户计算机硬件上的体数据图形技术。二维和三维的纹理绘制方法都被详细地介绍到。虽然二维的纹理方法可以达到很高的更新速度, 但是这种方法产生了人造数据并且无法在转换视角的时候保证准确性。在我们的系统中,三维纹理视角方法被用来达到更高的准确度。在文章[4]中还提到了基于硬件的转移方程定义方法,包括颜色查找表方法和纹理读取方法。在本文的工作中,一个改进的颜色查找表方法,也就是部分转移方程,被提出并用于雕刻操作。

1 算法

在虚拟雕刻系统中,虚拟笔的针头位置会一直被获取和处理。我们的系统中采用一个虚拟设备来处理获取方程。这个设备可以将获取的数据流,包括位置和操作模式,传递到处理模块。本文中,我们将重点放在处理模块上。

首先,我们要明确体数据雕刻过程的主要问题是,给定一个等值面和密度数据,如何模拟雕刻工具穿透等值面的雕刻效果。这里,雕刻效果包括修改虚拟笔和等值面交叉区域的视觉表示(如颜色或透明度),以及其副产品,如触觉力反馈。

为了在虚拟环境中获得真实的效果, 有两个要求必须得到满足。第一, 所有的计算必须是实时的。也就是说, 一旦用户进行了一项操作, 结果要立刻被显示出来以达到给用户沉浸的效果。第二, 力反馈要和视觉表现有直接联系来保证触觉和视觉感觉的一致性。

我们的方法采用以下步骤来满足以上要求。

碰撞检测:当移动虚拟笔的时候,我们同步检测虚拟笔和等值面的相对位置。如果虚拟笔穿透等值面,碰撞就会发生。然后我们计算碰撞点。因为我们只需要一个很小区域等值面的信息,所以我们采用中间媒介的方法,而不是建造整个等值面,以此来大大地减少计算。

力反馈计算:当检测到碰撞时,触觉反馈计算需要满足两点要求:实时性和一致性。本文中利用一个简化的模型来估算力反馈(数量和方向)。本模型的采用仅需要很少的计算量,从而可以提高系统速度和系统性能。

数据修改:如果虚拟笔和物体有碰撞产生,交互区域的密度值就需要进行调整。密度值的改变可以通过部分转移方程来完成。通过颜色和透明度的变化来表示密度值的变化,最终达到雕刻效果。

数据虚拟化:为了实现实时的体数据绘制,我们采用了三维纹理硬件体数据绘制方法。这种方法能在保证性能的同时大大降低内存利用率。

本文方法的流程图如图2所示。下面我们将详细描述本文的主要技术。

1.1 基于中间媒介的碰撞检测

现今,已经有很多基于几何模型的技术被用于触觉绘制[8,10,11,12]。然而,直接应用这些方法来绘制有两大主要局限:

一个等值面应该由体数据中提取出来。任何的数据改变都可能会引起等值面的相应变化。如果每次体数据变化都重新生成等值面,计算复杂度就会很高。如果不重新生成,等值面的数据也应该根据体数据的变化而做相应的修改。但是这个方法存在等值面拓扑几何不一致的问题,所以需要一系列的操作来检测不一致,例如等值面自相交以及相应的措施来修补,例如表面划分(图3所示是一个简单的二维的例子)。也就是说,等值面生成是非常费时的操作。

自相交:我们用二维的曲面作为例子来说明这个问题。图a中黑色轮廓线是一个曲面。图b中虚拟笔穿透了曲面,红色的部分是新生成的曲面用来代替旧的蓝色部分的曲面。这是一个典形的曲面改变。图c所示是可能出现的问题。如果旧曲面被代替后,曲面自己被切断,就会产生错误的数据。这种错误会被检测到并将曲面分成两部分如图d所示。

通常等值面的结构很复杂,很难量化,从而使得触觉计算更加费时。正如我们提到的,对于碰撞检测,我们只需要考虑等值面上靠近虚拟笔的一个相对小的区域。所以,我们不需要建造整个等值面。根据这个观察,我们采用了中间媒介的方法[3]来检测碰撞。这种方法的基本原理是在碰撞区域生成一个小的法平面来近似所对应的实际等值面部分。然后计算对于这个法平面的碰撞点和力反馈。

我们将虚拟笔的针头称为HIP,笔和等值面的交界点称为VHIP。触觉设备可以实时地检测并输出HIP的位置。如果碰撞发生,我们需要计算VHIP的位置。具体算法描述如下:

第一步。用三次线型差值来计算HIP所在点的密度值。这个值等于当前体值或者一个介于当前HIP密度值和前一个HIP密度值之间的体值(如图4中绿色点所示)。这个值表示虚拟笔已经穿透等值面,碰撞发生了:

这里vnew, vold和v0表示当前HIP值,前一次HIP值和密度体值。

第二步。用线型差值来模拟有介于当前HIP和前一个HIP之间体值的点(图4中的红点)。然后得到法向量N。基本想法是用三次线型差值来模拟点的倾斜度;然后它的方向就是法向量[7]。之后,用法向量N通过这个点构建虚拟法平面P:

这里PI是用线型差值计算出的交互点,这个点同时对应于密度值等于体值的位置。这里,如果提供相应的快速硬件设备,虚拟平面会给用户产生平滑曲面的感觉。然而,低速的硬件会产生不平滑的曲面。

第三步。将当前HIP投影到平面P上。这里我们第一次计算从当前HIP到法平面的距离d来用做下一部分的力反馈计算:

然后投影出VHIP:

算法的基本思想很直接:我们用VHIP近似交叉点,这个点应该是离等值面上HIP最近的点。由此,我们可以达到视觉和触觉效果上的一致。

以上方法有下面几点假定。第一,采样系统可以高速得到虚拟笔的位置HIP。否则,有可能虚拟笔太快地穿透了一个很薄的体数据,而采样系统没有及时得到虚拟笔的位置。在这种情况,碰撞没有被检测到。第二,我们需要用两个连续的接近的HIP进行线性差值以取得好的近似值。第三,在体值附近的体数据值不能变动太频繁,否则结果就会有很大偏差。总之,这些假定满足得越好,系统结果就会越精确。

1.2 力反馈计算

触觉绘制研究了很多方法来从用户和系统的交互中决定力学结果。这些方法为虚拟现实系统增加了新的功能。通常,虚拟现实中的触觉绘制有两个要求:实时和视觉反馈的一致性。

文献[1]中讨论了在基于点的交互中感知到一个物体的力反馈计算模型:

这里,F表示在位置P上用户感觉的力;A是与体数据无关的周围力的向量和,例如重力或浮力;R (V) 是与速度成比例的减速力;S (N) 是和物体垂直的刚度力,其向量为N。这个通用模型是不同绘制方法的计算力的基本。

下面我们从实际应用角度来研究这个模型。A太细小而且难于计算。所以,在实际应用中A被视为一个不需要精确计算的常量。R (V) 和S (V) 的计算与应用有关。在交互系统中,力学模拟需要很快的计算来达到一致的视觉反馈,触觉反馈以及人体反映。因此,在本系统中,我们采用了一个利用最快线型计算的虚拟弹簧模型[3]来模拟力反馈。力反馈的振幅与新计算的VHIP和当前HIP之间的距离成比例。如图6所示,我们得到:

这里,d=HIP-VHIP(如图6所示),Vd是沿虚拟笔运动方向d的分向量,k和b是常量系数。根据这个模型,所得的力总有一个与表面法向量一致的方向。

2.3用三维纹理视点对准方法的硬件体数据绘制

基于不同切片对准方法的硬件体数据绘制技术大致可分为两类[4]。第一种是二维纹理物体对准方法。这种方法需要三个堆来存储沿着物体三个坐标方向的切片采样。在绘制过程中,和视点方向最接近的堆的切片被采用。针对所选的堆的切片,一些相应的双线性差值和合成操作会被进行。这种方法的优点是绘制性能非常高,因为双线性差值仅需要查找一个表格。然而,为了保存三个堆栈,这种方法需要很高的内存容量。而且,当转换视角方向时,会出现不理想的效果。

另一个方法是三维纹理视点对准方法。这种方法用一个单独的三维纹理来保存体数据。切片的方向总是和视点平行。因此,没有转换视角的不理想结果。这种方法应用相对较慢的三次线性差值。然而,因为结果图像的准确度是最重要的,提高三维纹理方法的速率就可以满足我们系统的要求,所以我们采用了这种方法并且得到了满意的结果。图7是我们系统中硬件体数据绘制的一个效果图。

1.4 通过部分转移方程的数据修改和可视化

不同的数据修改模式可以生成不同的雕刻效果。在文献[2,3]中定义了不同的雕刻模式,其主要机制是修改交互区域的数据点的值。可以用一个从旧值到新值的转换方程来表示:

Fnew (x) =aD+ (1-a) Fold (x)

这里x是体数据中的位置,a是线型系数,D是常数。

例如,为了模拟融化效果,我们使:

我们得到:VRGB_new (x) =VRGB_old (x) ,

说明所有的RGB值都保持不变;使:

我们得到:

这说明新的值在旧值附近是高斯分布。此外,我们可以用公式Rinner_density=Edensity∩Tdensity来表示密度改变的区域。这里R表示交互的区域,E表示体数据的区域,T表示笔的区域。

同样,我们可以用区域Rinner_density=Edensity∩Tdensity中的Vdensity_new (x) =0来定义剥去效果,用区域Rinner_RGB=ERGB∩TRGB中的VRGB_new (x) =DRGB来定义图绘效果。

以上的数据修改机制有两大局限。第一,这种方法分别处理密度值和颜色值。结果是使视觉参数中的透明度被密度值通过转换方程修改,而参数中的颜色值被直接修改。当原始体数据中包含密度值和颜色值时,这种方法很有效。然而,如果原始数据中只提供了密度值,颜色值通过密度信息映射得到时,就会有错误数据被引进。如图8所示,为了得到中间点的颜色值,我们需要将对所有角落上点的颜色值进行差值。这通常会使可视化图像的质量下降。第二,这种方法依靠转移方程,如果转移方程改变了就会造成前面的视觉结果的丢失。

对于第一种局限可以用后分类的方法替代。这种代替方法首先对所有角落上点的密度值进行差值,然后通过这个值用转移方程得到内部颜色点。这种方法可以生成更准确的图像。如果采用后分类方法,在修改数据的时候,我们可以直接改变密度值,而颜色和透明度值只能通过密度值来映射出来。

为了克服第二个局限,我们引进了一个部分转移方程。在我们的三维纹理硬件体数据绘制方法中,转移方程被定义为一维查找表,这个表由函数glColorTable () 保存。这个函数将查找表中的8位纹理像素用RGBA值来替换。如图9所示,我们将大小为256的查找表分成两部分:0到245被用于转移方程映射;246到255被保留用于数据修改。

部分转移方程的算法如下。第一,我们将原来的密度值映射到范围0到245。也就是说转移方程只用到了前246个单元;第二,我们将需要的最终颜色值和透明度值存在最右边的10个单元,从246到255。也就是说在修改数据前,所有的密度值被映射到前246个单元中。当修改数据时,我们将修改区域的值映射到246到255之间。这样我们给转移方程提供了一个接口,这个接口使用户不能修改左边10个单元。所以前面的雕刻结果会被保存。此外,我们还提供了一个接口,允许用户通过填写左边10个单元来定制所需要的颜色和透明度值。例如,如果用户想用黄色绘图,实体X会被放入查找表的保留区内;然后RGB值中的黄色会被填入X中;当修改数据时,我们只需要修改对应于实体X中黄色部分的密度值。

2 实现和结果

本文开发实现了一个用于直接操作体数据的虚拟体数据雕刻系统。这个系统是在Linux系统上开发,并配备了NVIDIA GeForce3显卡。由于没有触觉硬件设备,我们用VR Juggle来模拟触觉设备,并且绘制了小的窗口来显示力反馈。

在系统中(如图1所示),体数据在一个虚拟环境中被绘制成真实的物体。当用户触摸这个物体时,力反馈会被计算。用户可以选择不同的工具和不同的工具大小来装载和改变物体。我们还提供了一个绘图板,用户可以在这个绘图板上绘制不同形状的线来定义密度转移方程。移动绘图板下面的滑轮可以改变体数据的值。

当用户在体数据附近移动工具时,系统会进行碰撞检测并同步显示出来。如图10所示,红色的小球代表差值点;黄色的线代表法向量;粉色的四边形代表中间虚拟平面;小的篮球是VHIP,也就是接触点。实验结果表明接触点在视觉上非常接近虚拟笔的针头。左边粉色立方体的高度表示沿着黄色线方向的力反馈的强度。图11所示的是另一个位置的碰撞,这个力反馈强度和前一个例子不相同。

现在,我们的系统支持绘制,建造和剥去。绘制用新的颜色代替物体原有的颜色(如图12所示),建造可以将新的部分加到体数据中(如图13所示),剥去将体数据中原有的部分去掉(如图14所示)。工具的大小决定了这些操作的有效区域。工具大小可以在右边的五个立方体中选择。在我们的实验中,我们有三个不同的数据集,观察结果表明装载和显示体数据受体数据集大小的影响;但是一个单独的触觉控制不受数据集大小的影响。

4 结论和未来工作

体数据雕刻系统给用户提供一个直觉的方法,从而从体数据中通过视觉和触觉获取有用而复杂的信息。我们实现的体数据雕刻系统有以下功能:第一,我们提供了一个沉浸的虚拟雕刻系统,使用户可以通过视觉和触觉真实地操作和研究物体。第二,通过利用中间表示,我们简化了力反馈和硬件绘制。服务速度被大大提高,从而达到快速的使用户交互。第三,我们直接修改密度值,通过部分转移方程更新颜色和透明度,大大提高了图像质量。

我们的系统仍存在局限。第一,我们的实现是基于软件VR Juggler的。用鼠标控制限制了用户的学习,也影响了系统的使用。将来的工作是把系统移植到一个有数据操作手套的工作台上。第二,我们虽然计算了力反馈,但只显示了力反馈效果。如果有一个硬件触觉系统,我们可以很容易模拟真正的力。模拟相应的声音效果同样可以增强雕刻的沉浸感。第三,部分转移方程的方法被颜色查找表所限制。在当前的系统中,用户只能定义有限的10个实体。一些高端的图形卡允许更多的保留实体。另外,如果我们提供更多数据修改的操作模式,如搅动和融化,系统就会变得更加自由和强大。

摘要:体数据雕刻具有体数据绘制和触觉绘制共同的特性和优点。文章描述了一个体数据空间中的具有分离、绘制和构造功能的虚拟体数据雕刻系统。为了达到实时效果, 采用了中间媒介碰撞检测, 简化的力反馈以及三维数据可视化硬件绘制技术。这些技术可以在大大降低运算的同时保证尽量大的精确度。还引进了基于硬件8位颜色查找表的部分转移函数来生成准确的图像并获取更大的自由度。

珠宝数据实时采集与处理系统设计 第11篇

随着计算机及通讯技术的发展, 在珠宝质量检测中, 传统的目测, 手写记录统计数据的方法因为数据的准确性难以保证, 使用不方便, 数据结果也不能及时呈现给用户等弊病已逐渐被淘汰。当今精密测量仪中大多数都带有RS232串行通讯接口, 可以通过计算机的COM接口与智能测量仪器通信, 实现对仪器的控制和数据采集。本文将METTLER TOLEDO B-S/A系列电子天平直接与计算机连接起来, 通过专业化的软硬件接口技术, 利用Active X控件——Microsoft Communication控件, 方便的实现了Window环境下PC机与电子天平串行通信功能, 实现分析数据的自动采集, 建立珠宝检测数据库。根据管理业务的需要, 实现了珠宝数据打印与检索, 包括成批打印分级、鉴定、定名证书, 打印分析报表, 查询检测日期、样品编号、批号、样品品种、客户等信息。有效的缩短样品检测时间, 确保检测结果的准确性、权威性, 从而提高检测效率和整体管理水平。

2 系统的硬件设计

采用PC机及METTLER TOLEDO B-S/A系列天平。

接口的物理结构:天平采用RS-232接口9芯插座, 单向传送控制信号。波特率为9600bps, PC的COM口与天平的RS232口的接线采用对等方式, 传输线采用屏蔽电缆, 传输距离可达250英尺。

使用Windows平台下的ActiveX通讯控件——MSComm控件初始化天平设置并获取天平测量数据。

MSComm是一个COM组件, 它提供具体的方法和属性, 以实现天平的初始化及实现数据通讯, 当串口接收到信息时MSComm控件提供两种处理方法, 一种为查询方式, 一种为事件响应方式, 利用SetCommEvent () 函数设置串口响应事件。当响应事件发生时, 系统会激活OnComm () 事件。在On Comm () 事件中添加用户处理代码, 则可实现类似中断的串口事件处理。Iput Mode使程序方便地选择从缓冲区读取数据格式。

计算机COM口的初始化要和天平的设置完全一致。

3 数据库及开发平台

Windows平台下可选的数据库种类很多, 在实际开发的过程中, 根据使用单位的业务规模和安全因素, 选择了MS SQL 2000作为后台数据库。而.NET平台以其使用方便的人机界面, 强大的开发工具支持而成为开发平台的首选。

SQL Server.NET数据提供程序使用它自己的协议来与SQL Server进行通讯。由于它经过了优化, 可以直接访问SQL Server而不用添加OLE DB或开放式数据库连接 (ODBC) 层, 因此它是轻量的, 并具有良好的性能。

.NET平台对数据库的连接方式也有很多, 根据所使用的数据库类型, 或应用程序的使用策略不同而不同, 本系统考虑到数据的实时性, 安全性要求, 采用ADO.NET对MS SQL 2000数据库进行连接及操作, 安全性通过Window账户验证。

4 系统实现

4.1 应用程序模型

珠宝鉴定根据品名不同分为宝玉石, 钻石, 吊牌等三类, 每一类都有数量和性质不同的参数字段, 除了重量统一需要通过电子秤的串口向计算机传输外, 还有一些其他参数如折射率, 净度等在现有的设备条件下需要另行检测后手工输入, 所有数据的采集由应用程序统一处理, 之后由数据显示控件展示给用户, 并选择恰当的时间和方式对数据库进行更新。应用程序模型如左图所示。

4.2 数据采集

.NET数据提供程序用于连接到数据库、执行命令和检索结果。下表概括了组成.NET数据提供程序的四个核心对象。

ADO.NET假定一个用于数据访问的模型:打开一个数据库的连接, 获取数据或执行操作, 然后关闭该连接。ADO.NET为使用此模型提供两个基本的策略。一个模型是在数据集中存储数据, 这是断开与数据源的连接时可以使用的记录的内存中缓存。若要使用一个数据集, 必须先创建该数据集的实例, 然后使用数据适配器从数据源填充它。然后可以使用数据集中的数据。数据集在断开缓存中存储数据。数据集的结构类似于关系数据库的结构;它公开表、行和列的分层对象模型。另外, 它包含为数据集定义的约束和关系。本系统的大多数数据纪录的添加都使用这种模型, 如将宝石的一个记录值写入数据集宝石数据表的一行中, 而钻石和吊牌各自写入另外的表, 这些表共同构成珠宝记录数据集, 在进行入添加、修改、删除时都可以对这些表进行操作。

另一个策略是直接对数据库执行操作。在此模型中, 可使用包含SQL语句或对存储过程的引用的数据命令对象。然后可以打开一个连接, 执行命令以执行操作, 接着关闭连接。如果该命令返回结果集 (即该命令执行Select语句) , 则可以使用数据读取器获取数据, 数据读取器的功能类似于高效的只读游标。数据阅读器然后作为数据绑定的来源。某些珠宝类型的参数字段有相同之处, 如两件同属蓝宝石的待鉴定品在折射率, 吸收光谱, 光性特征等方面相同, 因此, 在添加此类鉴定物品时, 可用其他表关联这些字段, 以减少冗余, 这些相关表的修改更新可采用直接数据库操作的方式。

4.2 数据建库与显示

鉴定系统的用户界面由相应控件处理, 而数据更新由Windows窗体数据绑定结构和ADO.NET数据提供程序来处理。

针对不同的鉴定类型, 采用不同的数据收集用户界面, 除了重量参数通过串口从天平采集外, 某些参数如钻石的净度只有固定的几个级别, 采用可选的下拉框形式, 以方便用户添加记录。

另外, 本系统使用DataGrid控件在一系列行和列中显示数据。首先, 实例化数据集对象, 然后把珠宝记录数据集的单个表绑定到相应的DataGrid, 就可以把纪录数据显示在简单的行和列中, 就像在电子表格中一样。如果绑定数据集内的数据通过任何机制被更新, 数据绑定结构负责将更改从数据集发送到数据绑定控件, 该数据集内的数据可以通过DataGrid控件反映所做更改, 而不必用自己的代码显式更新。所以大多数数据特定的操作都是通过数据源而不是DataGrid来执行。

数据访问控件的绑定方式有两种, 在本系统中根据不同的情况都有使用:

1) 在设计器中将DataGrid控件数据绑定到单个表, 将该控件的DataSource属性设置为包含要绑定到的数据集的对象。将DataMember属性设置为要绑定到的表的名称。通常可以调用数据适配器的Fill方法从数据库中直接填充数据集。

2) 运行时将数据绑定到DataGrid控件, 需要编写代码来填充数据集, 调用DataGrid控件的SetDataBinding方法, 向其传递数据源和一个数据成员。如:

DataGrid1.SetDataBinding (DsDiamond, "Diamond")

通过珠宝参数数据集更新数据源是一个包含两个步骤的过程。

第一步是使用新记录更新数据集。这是将新纪录填充到内存中的过程。必须新建一个数据行并将其添加到数据表的DataRow集合中。调用数据表的NewRow方法来新建一个空记录, 该新记录将从数据表的DataColumnCollection继承其列结构, 例如:

Dim GemRow as DataRow=GemTable.NewRow,

对此纪录中的每一列从数据收集用户界面中获得并填充, 然后更新该新行, 就像它是现有记录一样。

当数据集填充了数据之后, 在将其发送回数据库之前, 通常会执行某种类型的数据操作。由于数据集中的每个记录都由一个DataRow对象来表示, 所以对从数据源填充的数据集中的记录更改通过更新和删除个别行来完成。另外, 通过将新的DataRow对象添加到DataTable对象的Rows集合中, 可以将新记录插入数据集。DataRow类包含RowState属性, 该属性的值指示自数据表首次从数据库加载后, 行是否已更改以及是如何更改的。RowState属性的可能值包括Deleted、Modified、New和Unchanged.

第二步则是将更改从数据集发送到数据库。

更新数据集的过程不会同时将更改直接写入基础数据源, 所以必须显式执行第二步。为了完成这一步骤, 我们调用曾用来填充数据集的同一个数据适配器的Update方法, 传递数据集的名称, 该数据集包含要写入数据库的值。数据适配器将根据数据集中行的RowState来执行适当的命令 (INSERT、UPDATE或DELETE) 。这些命令都通过Update方法将更改解析回数据源, 这样, 在我们将数据集发送到数据库的时候, 就无需将整个数据集回写到数据库中, 有效地提高了数据更新的效率。

当调用Update方法时, DataAdapter将分析已作出的更改并执行相应的命令 (INSERT、UPDATE或DELETE) 。当DataAdapter遇到对Data Row的更改时, 它将使用InsertCommand、UpdateCommand或DeleteCommand来处理该更改。如果DataTable映射到单个数据库表或从单个数据库表生成, 则可以利用CommandBuilder对象自动生成DataAdapter的DeleteCommand、InsertCommand和UpdateCommand。但本系统的数据表都由很多关联表构成, 因此, 在调用Update之前, 必须显式设置这些命令。

4.3 数据安全与更新

考虑到珠宝鉴定的数量比较大, 本系统应能同时在多台微机上在数据库的支持下工作, 这时, 怎样保证对数据库操作的安全与正确性, 就需要遵循一定的并发原则。本系统对同一数据库进行添加, 删除, 修改等操作时, 针对具体的使用情况, 采用了开放式并发控制, 这种并发方式, 只有当实际更新数据时, 数据库中待修改行才对其他用户不可用。更新将在数据库中检查该行并确定是否进行了任何更改。如果当某用户接收到来自数据库的值后, 另一用户在该用户试图修改该值之前即将其修改, 则认为发生了冲突。在开放式并发中, 只有在访问数据库时才设置并保持锁。这些锁将防止其他用户在同一时间更新记录。除了进行更新这一确切的时刻之外, 数据始终可用。我们通过版本方法 (实际版本号) 保证了这一点。

在版本号方法中, 要更新的记录必须具有一个包含版本号的列。当读取该记录时, 版本号将保存在客户端。然后, 将对该值进行部分更新。仅当WHERE子句中的值与记录上的值匹配时才进行更新。该方法的SQL表示形式为:

UPDATE Table1 SET Column1=@newvalue1, Column2=@newvalue2

WHERE RowVersion=@origRowVersionValue

如果版本号匹配, 则表明数据存储区中的记录未被更改, 并且可以安全地使用数据集中的新值对该记录进行更新。如果不匹配, 则将返回错误。通过编写代码, 实现了这种形式的并发检查和响应任何更新冲突。为了确保版本号的准确性, 在数据库表上设置触发器, 以便在发生对行的更改时, 对版本号进行更新。

5 结束语

利用VB.net下的ActiveX控件实现了在Windows2000/xp环境下微机与METTER TOLEDO B-S/A系列天平的通讯, 实现了天平数据自动采集、建库、汇总、打印与上报, 为测试的快速和准确性控制起到了积极作用, 实现了珠宝测量、鉴定、记录、打标及入库管理一体化, 提高了检测效率和整体管理水平。

参考文献

[1]范逸文等, Visual Basic与RS-232串行通信控制[M].北京:清华大学出版社, 2002.

[2]王仲文等, 精通串行通信[M].北京:电子工业出版社, 1995.

[3]METTER TOLEDO Reference manual about MT-SICS[梅特勒-托利多MT-SICS参考手册].

上一篇:数据对象接口下一篇:利用多媒体激发兴趣