高考举国关注,网上阅卷牵涉到千万考生的前途命运,责任重大,必须确保毫无疏漏,这要求系统必须绝对稳定、可靠、安全、易用。那么,这是如何实现的?谁在保障支撑?
2005年15省(市)高考网上阅卷系统架构图
1. 稳定
一个阅卷点要负荷几千万条数据,上千名教师同时阅卷,Apusic是如何做到的呢?
一般多任务的处理通过现代操作系统的多线程能力完成:传统的IO模式为阻塞式服务器,为任一用户的IO请求开一个线程进行处理,因为IO操作过于缓慢,系统不得不阻塞此线程使其处于等状态,然后通过上下文切换服务其他线程。如果并发用户多数量大,服务器内存在大量线程,由于操作系统能力所致,系统这时不堪重负、非常不稳定,极易崩溃。
Apusic应用服务器在处理并发请求时,用线程池处理多并发用户的请求:Apusic服务器使用NIO异步IO,为大规模并发用户的IO通量提供保证,Apusic的IO系统在请求到来时,并不立即开一个线程给服务,只是监听其注册的通道,在完成IO操作并准备好数据后,在需要计算服务时才将任务交由系统进行服务,有效降低了系统在服务大并发用户时所需的资源,极大提高了稳定性。
Apusic IO工作原理
整个网上阅卷系统都是在局域网内实现,与外网相隔。此外,从传统的C/S二级结构向B/S三层结构转化也使阅卷系统更加稳定。金蝶Apusic应用服务器中间件在B/S结构的运行中起到了关键作用。
2. 可靠
"传统的C/S结构是用户端与数据库直接相连。每个用户端都要安装软件整个系统才能启动。此外,用户端直接访问数据库也给网络带来很大的负担,经常会出现死机。"曾在每个实施高考网上阅卷省的现场作过技术支持的金蝶中间件有限公司的开发工程师们说。
由金蝶Apusic应用服务器支撑的B/S浏览器模式采用三层结构:底层数据库、应用服务器和用户端。用户端不需要安装软件,使用浏览器就能与数据库相连,并且不会残留信息,通过应用服务器处理就能全部储存在数据库。
(1)JDBC连接池
传统C/S应用每一个客户端直接连接数据库,消耗大量资源,不能满足大并发用户的需求。而基于应用服务器的三层应用,应用服务器维护一个动态连接池连接数据库,能够在并发用户间重用连接,并随并发压力动态变化,显著减少资源消耗;连接池缓存技术缓存数据库数据,有效减少对数据库的压力。在原来的系统不能承受的压力下,Apusic应用服务器可以轻松完成任务;使用应用服务器的事务服务,还可以完成多个异种数据库的分布式事务的处理能力。
数据库连接池工作原理
(2)负载均衡
[url=file:///D:/工作/市场工作/公司宣传/市场快报/2005/7/7/网页/7/text/text4.htm#AA2][/url]以往的两层应用,应用逻辑分散在数据库或客户端中难以开发和维护,水平伸缩性差,当负载达到超出服务器能力时,不能通过简单增加服务器来增加处理能力。使用应用服务器的三层应用,应用以组件形式部署在应用服务器中,维护升级容易,并能做到不停机热部署;当负载超出一个服务器计算能力时,可通过简单添加服务器获得更强计算能力,而应用服务器的负载均衡器能自动将用户的请求分发到各服务器,即使服务器群中有服务器失效也不影响系统的服务,而获得高可靠性。
应用服务器负载均衡的应用集群功能在阅卷中大显身手:阅卷期间,每个阅卷点的不同科目、不同题目的阅卷老师时刻都在提交评分,而且老师换班休息系统不停,这就意味着系统时刻都要接受几千万数量级的大并发事务处理请求。这时,主应用服务器负载均衡器在收到请求时,自动根据应用集群(集群中的不同应用服务器)的负荷情况自动分配,使得每个请求随时都得到响应,不出现任何中断、差错。"应用服务器恰到好处地分流处理了并发事务和并发访问,减轻了数据库的压力。"金蝶中间件技术支持部经理不无自豪地说。
除了稳定、可靠外,对系统来说,Aspuic应用服务器还具备安全和快速开发的优秀特点。
3. 安全
Aspuic应用服务器提供对SSL/TLS数据加密的支持,阅卷时在网上传输的是经过加密的数据,再结合Apusic自主实现的RSA、DES、消息摘要和数字签名等算法实现,可以获得超出国外对中国加密位数出口限制的加密能力。
4. 开发快速方便
高考阅卷系统的组长模块表示层复杂,用户操作性很强,如果采用B/S技术,浏览器显得力不从心。因此这一模块的表示层还得采用传统的GUI技术(如Delphi/VB等),然而整个系统的业务逻辑层和数据层采用了J2EE容器技术,如何才能把传统的GUI和J2EE容器无缝的集成在一起呢?Apusic已经为这一类的应用提供了解决方案,那就是采用Web Services技术。Apusic Web Services解决方案具有如下优点:良好的互操作性,快速地序列化和反序列化数据对象,易于开发和调试。互操作性保证Apusic容器和GUI平滑的连接;快速的编码解码能力保证GUI能够及时地获得数据、确保应用能及时响应。SOAP消息的动态日志技术确保开发人员及时发现问题、无须采用TCP Trace等冷日志工具。在开发基于数据库的Web Services应用时,开发人员只需关心数据库表的设计,开发人员只需指定Datasouce和要发布成Web Services的数据库表,Apusic DB2WS工具自动把对数据库表的操作转换成Web Services Operation,并且发布成Web Services,开发人员无需编写基本数据库操作的代码。
传统C/S需要在每个客户端安装客户端软件,如果有数百个以上客户端维护困难。而B/S应用使用浏览器做为客户端,不需安装客户端软件,使用方式与浏览Web相同,培训成本低,多数用户极短时间就可掌握使用。
开发上服务器端使用JSP、Servlet等标准技术,这些技术使用广泛开发人员容易掌握;Java定义的组件开发方式有利于快速开发,同时有许多开源的框架如Struts已有许多成功应用。
应用服务器中间件在网上阅卷中扮演了"后台"的角色。一个考点的网上阅卷系统一天至少要支持2000万个并发事务的精确处理;同时,阅卷老师会从数据库中调出试题,再将分数提交给后台数据库。这对系统支撑平台(应用服务器中间件)的并发访问控制事务处理能力、峰值计算能力和负载均衡能力等指标都提出了极高的要求"阅卷现场网络是比较畅通的,有的老师一根手指敲分数,一根手指敲回车,一天下来能改六七万道题目。"从实际运行来看,效果是比较理想的。
稳定、可靠,这是举国关注的高考对网上阅卷系统的最显著要求。而事实无疑交出了一份完美的答卷:由金蝶Apusic中间件支撑的网上阅卷系统应用几年来,在多次全国统一考试网上阅卷中无一例差错。这让教育部对在各类考试中推广网上阅卷底气十足,在即将进行的中考阅卷工作中,也将大规模使用。