2009-08-11 09:48:37 来源:e-works
前两篇文章我们分别探讨了OA软件的热门应用:MVC和SOA架构,这次我们来说说一个好玩的技术:PUSH(推技术)。它并不像前两者那样拥有众多粉丝,却实实在在的让OA软件具有了一种更优异的性能表现。
所谓PUSH技术是一种基于客户服务器机制,由服务器主动的将信息发往客户端的技术,本质在于让信息去主动的寻找用户。它并不是最近才产生的,早在1996年Internet兴起时就产生了PUSH技术来获取网上信息,但由于网络应用的特点,它并没有PULL(拉技术--由客户机主动请求信息)使用得广泛。
近几年,随着基于WEB的软件的兴起,以及软件客户端数量的剧增,PUSH技术在软件开发中找到了自己的用武之地,我们来看看:
OA软件的性能主要影响在两个方面:
1) 数据量大的时候,检索的速度比较慢,导致CPU占用率过高。
2) 一般的OA系统都有消息的刷新功能。但都是通过客户端每隔一段时间向服务器提出刷新消息请求,即采用拉的技术。
这样,当有上百个用户同时在线,每20秒刷新一下,而每一次刷新就会检索数据库,这样就会导致如果有100个用户在线,服务器需要进行60/20*100=300次数据库刷新。如果数据量稍大一些,服务器CPU根本就承受不了。
所以,当使用高峰期或者用户数增多的时候,服务器CPU占用率会迅速飙升到100%(要是股票也这么涨就好了),这时候你会发现通过OA传递一份文件还不如你亲自拿过去更快。有的网管会抱怨网络带宽不够,或者服务器太老,甚至怀疑哪个小子在用BT,其实没发现是软件的问题。
对于此问题,一般解决的方式有以下两种:
1) 增加CPU由一个加为二个或四个,或提高CPU的频率,甚至用多机集群技术。
2) 提高刷新的时间间隔,如20秒刷新一次,改为2分钟甚至5分钟刷新一次。
第一种解决方案会增加硬件的成本和维护的成本,会让问题变得越来越复杂,最后失控。
第二种解决方案能够减少6倍的CPU负载,但是会影响到消息的实时性,用起来很不方便,失去了软件办公快捷化的真谛。
因此,以上两种方案并不会从根本上解决CPU占用的问题,随着在线人数的增多,这个问题将越来越明显,一系列连锁反应将会发生:
CPU占用率持续100%;
客户端连接不上服务器;
文件传输缓慢异常;
不断掉线;
同事抱怨;
老板生气;
血压升高;
抓狂;
……
事实上,有很多客户因为软件的性能问题而导致了应用的功能越来越少,次数越来越少,最后不了了之。
魔高一尺,道高一丈,华天OA采用PUSH技术就很好的解决了这个问题:
华天OA通过服务器中间件技术实现了推的技术,只有对于某个客户有消息(通知消息、审批消息、待办消息)来时,才会向客户端推送消息提醒。这种方式,使整个系统只有一个线程在处理数据库刷新。
PUSH技术大大地提高了华天OA的性能。因为,只有消息来时,客户端才与服务器通信,对于系统而言,实际上,大多数时间是没有新消息的,这就保证了:既能在第一时间接收信息,又能大大降低服务器负载,从而达到性能的最佳化。
采用华天OA这种技术架构的OA软件非常适合采用PUSH技术,为什么呢?
1、采用JAVA编程语言:地球人都知道,用JAVA开发的软件速度慢,特别是大型的JAVA应用,多线程的时候,非常能够磨练一个人的耐性。但这些年来JAVA的速度还是在不断的提升,PUSH技术起到的作用不是关键性的,却是简单、有效的。
2、具有OA小助手:现在一些厂家的OA软件都有小助手功能,如华天、新思创、用友致远等,小助手是一个简单实用的工具,让用户在不影响工作的情况下跟系统保持实时连接,但显然,客户端对服务器不断的刷新,严重增加了服务器的负载,这就像DOC攻击一样,所以大型企业都不得不关闭了这个工具。PUSH技术能够很好的解决这个问题,客户端虽然挂在服务器上,但不需要向服务器发出请求,服务器会把消息主动推送给客户端。
使用OA软件的目的就是为了提高工作效率,别系统上去了,效率下来了,要想事后不抓狂,就要事前多比较、多测试。对于PUSH这样的技术,实现起来并不复杂,只是看厂家是否用心了。实用的OA软件,需要的就是这样实用的技术。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。
