
2008-1-8 02:25
datamann
基于eXtremeDB/eXtremeWS的主动式B/S架构的实时数据显示系统
基于eXtremeDB/eXtremeWS的主动式B/S架构的实时数据显示系统
关键词
实时数据显示,eXtremeDB实时数据库,B/S架构,eXtremeWS实时Web服务器
1. 概述
通过B/S架构进行数据显示与监控有很多有点,如使用简单,无程序安装、维护的工作;非常灵活,客户端可以在任何硬件上通过IE浏览器就能够实现;对嵌入式系统而言,由于常常没有显示设备,B/S架构的显示方式更有必要。因此,B/S架构在很多数据监控系统里面得到了应用。在实时数据管理系统,由于实时数据的更新速度非常快,通常的B/S模式不能够适应于实时数据的显示。eXtremeDB一改过去B/S架构软件运行的方法,不是由客户端向服务器要数据的时候才提供,而是由eXtremeWS主动将数据推送到客户端;要改变推送数据,客户才发送消息通知eXtremeWS服务器。这样,由eXtremeDB实时数据库/eXtremeWS实时Web服务器构成的主动式实时数据显示架构则正好满足了这方面的需求。
2. 结构框架
基于eXtremeDB实时数据库/eXtremeWS实时Web服务器的系统框架极其简单:
[url=http://space.itpub.net/batch.download.php?aid=858][img]http://space.itpub.net/attachments/2008/01/12612235_200801080244451.gif[/img][/url]
3. 设计步骤
这样,软件设计就包括以下几个步骤:
客户端IE浏览权页面设计,图形用控件显示
[list]
[*]页面嵌入控件用VC6或VS 2005设计
[*]页面用eXtremeWS SDK工具转换
[*]实时数据服务器端程序设计,网页包含其中
[*]服务器端程序设置成系统服务或自启动程序
[/list][url=http://space.itpub.net/batch.download.php?aid=859][img]http://space.itpub.net/attachments/2008/01/12612235_200801080244452.gif[/img][/url]
基于eXtremeDB/eXtremeWS的B/S架构软件设计路线图
[list]
[*] 客户端页面显示方式设计:使用Dreamweaver或Microsoft Office做页面设计。页面设计的时候,在需要图形显示的地方注明控件位置;控件通过VC++6.0或Visual Studio 2005等工具设计。
[/list][indent]页面设计示例如下:
[/indent][url=http://space.itpub.net/batch.download.php?aid=860][img]http://space.itpub.net/attachments/2008/01/12612235_200801080244453.gif[/img][/url]
[list]
[*] 客户端的页面通过eXtremeWS的工具转化为C/C++程序可包含的信息,包含在服务器端程序中
[*] 实时数据服务器端程序设计:使用eXtremeDB实时数据库及eXtremeWS实时Web服务器SDK设计实时数据服务器端软件
[/list]4. 部署与使用
将实时数据服务器端eXtremeDB/eXtremeWS程序设为系统服务或启动时运行程序就完成了服务器端的部署;客户端通过IE浏览权登陆到服务器端,就可以显示实时数据。如果登陆密码限制,第一个页面会显示登陆要求;如果页面上有图形显示,客户端第一次访问的时候会从服务器端下载控件。这就完成了客户端部署。
2008-1-8 07:27
Agmle
看上去很一般!!!:xu:
2008-1-8 09:10
xuejinn
全够全面支持WE显示,理论和方法实现都是不错的.
2008-1-8 11:40
datamann
内行看门道哦!
你不是反对口水、要说“公道话”吗?请你从技术角度说明为什么很一般?很不一般的是什么,做过对比,让大家瞧瞧。
2008-1-8 11:54
tom_111
我不是厂商,也只不过是个内存数据库爱好者、研究者,接触altibase内存数据库产品比较多!datamann小弟你别着急啊!!!每个人的所好你是不可以强求的!!!
2008-1-8 19:46
datamann
tom, 这样说来,以后您多谈谈altibase,少给别的产品下结论--您觉得如何?
2008-1-9 11:32
lmx66768
我觉得这种架构,其他数据库也能现!!关键是性能!
有性能数据吗? //loadruner 测试过大用户并发就好了!
// 感谢楼主拿出好东东来分享。
2008-1-9 14:28
datamann
您有点看出门道来了。这里面有几点可看之处:
1. eXtremeDB数据库服务器一端是没有显示器的,当然就没有任何维护一类的问题了
2. 通常的网页是被动式的,就是你访问网页,网页就给您数据。如果是实时系统的话,这个网页是不断变化的,那被打式B/S就累了。
3. 就是您现在说的性能。eXtremeWS Webserver可以达到10毫米一级。用其它webserver可能也能建立这种主动B/S架构的实时数据显示系统,但性能和开发方便性、使用方便性就不一定了。
2008-1-9 16:40
lmx66768
10毫秒级的话,我觉得瓶颈是不是在网络上。其他内存数据库也能达到。
如果是非实时的业务我想磁盘数据库在批量提交的情况下也能达到这个性能。
2008-1-9 16:50
datamann
这个性能不是数据库的性能,10毫秒对实时数据库是相当低的。网络是主要问题;其次是在网络速度许可范围内的Webserver速度。您是否使用过Apache、IIS、Slinger一类的Webserver做一个能够达到10毫秒速度的B/S应用系统出来?如果您曾经做出过的话,把您当时的指标贴出来。
这是一个。再一个的话,这个工程的要点更在于免维护上。机器一启动后,实时数据库应用程序作为就自启动;实时数据库一经运行后,就不再需要维护。就是您说的第七条了。
所有,真正的看点在这样的一个场景:系统是24x7运行的,无人看管;在一定距离外,设备巡查员要监控系统的运行状态;设备巡查员是流动的,监视端要灵活...这个场景可能和altibase用户的计费场景不太一样。
2008-1-10 11:01
lmx66768
INSERT 应用测试。//虽然是应用,但是是个简单插入的测试。
1. 虚拟用户数为1
ALTIBASE 中循环1000次
Transaction Name Minimum Average Maximum //单位为应该是秒吧,你可以用loadruner 测试看看。
Action_Transaction 0.006 0.017 0.227
Altibase
操作系统 AIX 5.3 64bit
CPU 1.2 G *4
内存 8 G
tomcat
操作系统 Windows xp
CPU Inter 3.0G
内存 1 G
// 仅供参考,因为拿别人的B/S应用改的,比较粗糙。只能想说明B/S架构其他WEBSERVER 应该也能达到10毫秒级。
个人认为主要还是网络瓶颈。
-------------------------------------------------------------------------------------------------------------------------------
另外您一直在说0维护!
其实很多系统上线稳定后,都只是做一些基本的监控,也是7*24小时运行,没有什么可维护的。
除非系统发生变化,可能需要对系统的一些参数进行配置、维护。
2008-1-10 11:35
datamann
上面的时间数据是altibase每事务1000条的情形吗?这是很正常的。实时数据库达到毫秒级是理所当然的,尤其是在服务器上。
eXtremeWS还可以把速度提高上去,但应用中不需要更高的速度,所有没有去做。(这是通信卫星监控的一个示例,实际上要复杂得多)。确实,受限于网络和http协议,速度不可能提得过高;并且,人眼分辨率有限,实际中显示的速度也不必太快。
这里说的免维护,和您说的免维护是有区别的。您说的免维护是系统稳定工作后就不必维护了;我说的免维护是完全没有提供可维护的条件(就是此前我说的场景了)。所有,整个设计的出发点是以这个场景为基础的。
我把这个贴出来,是给大家一个参考,就是在这样的场景下,通过eXtremeDB/eXtremeWS的主动B/S架构能够达到我们的目的。不是为了炫耀eXtremeDB有多快、eXtremeWS有多快,而是为了说明这个方案可以在多么苛刻的条件下达到让人满意的效果。
在电信计费系统的场景下,B/S架构也是有意义的,但不是唯一的,可能也不是首选的;在我说的场景下,这可能是唯一的或首选的了。
看起来您做了不少工程。
2008-1-10 13:14
lmx66768
不是每个事物1000条,是逐条提交。总共就做了1000条的简单测试。
-------------------------------------------------
你说的0维护,我听着很玄!
听起来,一挥而就。
简单想一下,Oracle 这么优秀的数据库,也是需要维护的,你不用维护?!
希望以后有机会亲自了解一下!!!!
2008-1-10 13:25
datamann
在这个问题上,我就说一些题外话了。您技术还是挺好的,但对这种场景的可能接触不多:航电、舰电等等很大硬实时设备的本身就没有显示终端,而数据又很大、很复杂(比如非表格结构化数据),就要用到实时数据库。这样的场景就要求数据库在逻辑上就不必进行维护。
这种类型的实时数据库,我们是称为普适性实时数据库。eXtremeDB在普适性数据管理方面是非常优秀的。
2008-1-11 13:57
datamann
[color=RoyalBlue]INSERT 应用测试。//虽然是应用,但是是个简单插入的测试。
1. 虚拟用户数为1
ALTIBASE 中循环1000次
Transaction Name Minimum Average Maximum //单位为应该是秒吧,你可以用loadruner 测试看看。
Action_Transaction 0.006 0.017 0.227
Altibase
操作系统 AIX 5.3 64bit
CPU 1.2 G *4
内存 8 G
tomcat
操作系统 Windows xp
CPU Inter 3.0G
内存 1 G
// 仅供参考,因为拿别人的B/S应用改的,比较粗糙。只能想说明B/S架构其他WEBSERVER 应该也能达到10毫秒级。[/color]
[color=Red]大问题!同一个insert测试,1000次里面时间可以相差38倍!这是什么实时数据库啊?!!!实时数据库的“实时性”的定义是期限内完成,是在“准”的基础上的“快”。请您说明一下altibase是怎么理解实时数据库的实时性的。[/color]
[[i] 本帖最后由 datamann 于 2008-1-14 19:40 编辑 [/i]]
2008-1-14 17:07
lmx66768
[size=4][color=Blue][size=7][size=2][color=Red]那个测试主要瓶颈在网络,webserver的性能。[/color][/size][size=2]
临时在比较乱的网络上做的。
我只想告诉你,你们的b\s结构性能并不比别人的快!!!
[/size]
[/size]
[/color][/size]
[[i] 本帖最后由 lmx66768 于 2008-1-15 09:19 编辑 [/i]]
2008-1-14 17:15
lmx66768
我做过很多测试,有很多不确定因素,所以其中的max 有很多不确定性。
我为了说明extremeDB 并不比别人的快,这样的系统结构影响性能的瓶颈是网络,草草的做了个测试说明问题。
但是有人却拿这个做文章!
本来以为这个人还说点技术,还贴出一些有用的东西,跟这个人答茬实在是一个失误。
2008-1-14 18:02
lmx66768
这个是我刚刚做的测试,两个节点间sock的发包的测试。
这个比我上次测试的环境要好。两台aix 机器间,1000m网。
测试数据为每秒发包的个数。每个包大小128k 。
大家可以看到下面网络性能跳跃的地方。
最快发包数为668个/s ,最慢为68个/s
最快1/668 s 一个包 ,最慢1/68 s一个包
他们间的性能差距是9倍多。
-------------------------------------------
DATA SIZE = 131072
DATE = [20080114174438] [515] : ACK
DATE = [20080114174439] [667] : ACK
DATE = [20080114174440] [667] : ACK
DATE = [20080114174441] [643] : ACK
DATE = [20080114174442] [668] : ACK
DATE = [20080114174443] [666] : ACK
DATE = [20080114174444] [667] : ACK
DATE = [20080114174445] [666] : ACK
DATE = [20080114174446] [667] : ACK
DATE = [20080114174447] [665] : ACK
DATE = [20080114174448] [663] : ACK
DATE = [20080114174449] [664] : ACK
DATE = [20080114174450] [662] : ACK
DATE = [20080114174451] [552] : ACK
DATE = [20080114174452] [164] : ACK
DATE = [20080114174453] [68] : ACK
DATE = [20080114174454] [500] : ACK
-----------------------------------------------
我测试是网络并不是我独自用的,我也没有刻意在其他人用的忙得时候去测试。
性能发生跳跃根据测试系统,测试环境不同,有很多变数。
我已经尽力说明了。也有点累! 希望您能从技术角度认真思考!
2008-1-14 18:08
lmx66768
我只是说明网络并不稳定,这个并不一定是网络忙,也有可能是其他因数。
我以前就碰到过,两个节点,专线1000m网络,但是性能跳跃的很厉害,又IBM工程师请求了更高级别的支持才解决的问题。
还有我做的测试,128k 发一个包,并不能模仿b/s 测试环境真正的网络跳跃差距。
2008-1-14 18:11
datamann
altibase有没有本地编程模式?就是eXtremeDB所说的“嵌入”或timesten所说的“直链”模式?在这个模式下,网络不确定性可以被踢出。在这个模式下,性能晃动性可以降低到什么程度?如果没有本地编程模式,将C/S放到同一个机器,看看晃动性情况如何。
多谢您了!
页:
[1]
2
3

Powered by ITPUB论坛