所谓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软件,需要的就是这样实用的技术。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7699723/viewspace-621646/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7699723/viewspace-621646/