Linkman的学习记录

学习记录,兴趣方面:实时数据库、MES、SIS、工控软件、C++编程、人机界面、嵌入式软件、可视化等

VC知识库BLOG 首页 新随笔 联系 聚合 登录
  100 Posts :: 16 Stories :: 441 Comments :: 0 Trackbacks

留言簿(22)

随笔分类

随笔档案

文章分类

文章档案

传说中的名人

我的链接

朋友

搜索

最新评论

阅读排行榜

评论排行榜

2008年11月19日 #

爱好和平的人士,总希望自己生活在一个没有战争没有竞争没有危机的社会,美其名曰和平主义者,这类人士,总生活在理想中,而在现实中痛苦。如果某一天上帝突然出现了,实现了这些和平主义者的梦想,这世界会不会就真的美好了呢?

我们可以想象一下,人们肯定会兴高彩烈一番,然后呢?

有一部科幻小说,描述的就是这样一个社会,未来的某一天,聪明的人们发明了全虚拟现实软件,只要将插头插在身上,就可以一直享受和平美好幸福快感的生活,于是,人们象迷恋鸦片一样迷恋上这个没有战争没有竞争没有危机的世界,他们变成了一具具行尸走肉。

这些一动不动的人们,他们选择了快乐选择了安宁选择了享受,同时也选择了逃避选择了麻目选择了脆弱。这种快乐,从旁观者的角度看,是那么的可笑,就好象我们从旁观者的角度,看待一个个呆坐在网吧中快乐地上网的人。

如果世界一直美好下去,我们不能指责他们的选择,但是,如果世界突然又改变了,他们怎么办?他们还能改变回去吗?

陶渊明描述了一个美好的世外桃园,那里的世界,一切都是美丽的,时间都是缓慢的,不知有汉,无论魏晋,问题是,汉魏晋不会因为他们的无知而消息,外面的世界终究有一天会将他们改变。而他们需要改变时,他们还有没有改变的勇气和能力?我们可以想象一下,在桃园中生活了100代之后的后人们,他们还想不想走出桃园?还敢不敢走出桃园?还能不能起出桃园?

达尔文提出,物竞天择,适者生存,这个观点不只是适用于生物界,同样适应于整个人类;不只是适用于宏观的大社会,同样适用于每个个体。只有那些勇于面对危机敢于克服困难的人,才能生存下去。

危机有大有小,大到战争,小到自己遇到的挫折,很多危机和困难降临在我们头上时,我们无法幸免,对于这些无法避免的危机,我们想了也白想,人力不能胜天。但是,谁能告诉我,什么叫不能避免,什么又叫能够避免呢?在事情真正发生之前,谁能知道它的危害到底有多大?谁又能知道时间有多长?谁又能告诉我们,这次能不能挺得过去?

想那么多有什么用?当原子弹正打中你的脑门,你只能哀叹自己的幸运指数太低,当原子弹在你十公里之外炸开时,你还活着,就必须要应对危机,否则,你会失去活下去的希望。

世界不总是美好的,经济发展是有周期性的,人们总会遇到不顺心的事情,我们不要责骂老天,我们也逃避不了,只有面对,只有解决,才能继续前行。对危机的惧怕是每个人的天性,能否应对危机则是个体的磨砺和自信。面对可能的危机,我们准备好了吗?

经济危机要来了,聪明者如马云要去冬眠了,豪放者如陈志列要去冬泳了,渺小的我们该怎么办呢?想起小时侯的一篇课文,寒号鸟说:多咯咯,多咯咯,寒风冻死我,明天就垒窝。我们该不会是那只唱歌的鸟吧。

后记:这次经济危机,现在北京还感受不明显,虽然2008年的中国多灾多难,但总能给人们希望。对我个人而言,2008年也是多经磨难的一年,现在最困难的时间已过去了,但还是需要应对很多困难和危机,但是,我相信能面对能处理能挺过去。世界局势我控制不了,国家大事我监管不了,尽量做好自己的事情,应对好日常生活和工作中的小危机,保护好自己以及家人和朋友,独立寒秋,笑对寒冬,尽人事而听天命,该来的都来吧,我不怕!

发表于 2008-11-19 00:03 Linkman的学习记录 阅读(1438) | 评论 (5)编辑 收藏

本章讨论“使用分布式实时数据库服务器解决超大容量实时和历史数据访问”的问题。

在开发远程移动监控系统时,一般有两种技术路线,一种是直接开发针对特定行业特定应用的系统,另一种是选用组态软件进行二次开发,这两种技术路线各有优缺点。当管理功能是远程移动监控系统的主要功能点,或者监控对象具有非常独特的行业特性,直接开发应用系统是一种合理的选择。而当监控功能是远程移动监控系统的主要功能点时,选用合适的组态软件,可以减少投入成本,缩短项目周期、提高系统稳定性,减少失败风险。

不管采取以上哪种技术路线,都不可避免地要对一个问题进行决策:如何保存采集到的数据。保存的概念包括三个方面:内存中保存的实时数据,磁盘上保存的历史数据,针对实时数据和历史数据的访问接口。可以选择的方案有五种:

1、组态软件本身的内存和历史数据库(或模块);
2、自定义的内存和文件格式;
3、关系数据库;
4、实时数据库;
5、关系数据库+实时数据库;

针对以上两种不同的技术路线,可以选择不同的数据保存方案,当需要采集和保存的数据点达到一定的规模时,就需要采用方案4或方案5,在我的上一篇文章《实时数据库与组态软件的市场定位之异同》中,提到了依据工程总点数和需保存的总点数来决定是使用实时数据库还是组态软件,在远程移动监控系统中,当系统的点数规模超出了组态软件能处理的范围时,关系数据库也同样不能处理。

还是以那个重型机械厂的项目为例说明,如果按照每台车辆每10秒向上传送一次数据,每次传送100个数据,车辆总数按50000台计算。
如果采用Oracle关系数据库来存贮实时和历史数据。对数据的保存有两种方式,这两种方式也决定了上层Oracle数据库的数据表设计方案。

第一种方案是每个车辆设备的数据用一条记录来表示,每条记录有100个字段,这样设计的好处是采集服务器操作ORACLE服务器的事务数比较小,平均每秒钟的插入事务数为50000*5/60=4167条。该方式的缺点是,对不同的DTU需要设计不同的数据表;数据不能被压缩,磁盘空间占用非常大,如果每条记录按1K来计算,则一年需占用的磁盘空间为:356*24*60*60/5*50000*1024=293335G,再加上索引等辅助内容,整个系统一年所占用的磁盘空间约为400000G。

第二种方案是每个车辆设备的数据用多条记录来表示,每条记录只记录该DTU中某一个具体的数据点,这样处理,Oracle服务器的事务数达到每秒钟50000*100*5/60=416667次,在这种情况下,对数据可以采取一些压缩处理,系统一年所占用的磁盘空间与第一种方案相比,可以减少到1/10左右,约为40000G。

不管是采用以上的哪一种方案,都存在单位时间的读写次数达到系统处理上限,系统容量超出系统上限等困难,导致系统无法使用。可以通过引入网格数据库,或重新规划需保存的历史数据等方式解决这些难点问题,但都存在缺点,不是价格高,就是不得不损失相应功能。

引入实时数据库,只能部分解决此问题,举例说明,如果使用我们的实时数据库,单台服务器只能处理5000台左右车辆设备的数据采集和保存问题(经过定制改造,如果不改造,单服务器只能处理1000台车辆设备,该问题的瓶颈不在于性能,而在于点数限制,目前我们的标准实时数据库单台服务器只支持126000个数据点),仍不能处理高达50000台车辆设备。

这时,需要使用分布式实时数据库服务器来解决超大容量实时和历史数据访问,如下图所示(图略)。

可以看到,单台服务器处理5千台设备,处理的数据点为50万个,10台实时服务器能处理5万台设备,处理的总数据点为500万个,调度服务器对这10台服务器进行调度,使得10台服务器对外部而言(包括采集服务器和客户端)是透明的,外部只看到一台能处理500万数据点的大型实时数据库。

要实现一个分布式分布式实时数据库服务器,可能做得非常复杂,但对于大型远程移动监控系统中,可以简化处理,当然,这需要实时数据库支持层次点系统、设备模块、在线修改等功能的辅助支持,关于这方面的内容,在下一章中加以说明。

发表于 2008-11-19 00:01 Linkman的学习记录 阅读(1128) | 评论 (0)编辑 收藏