一、引言
高校资产已经成为一所高校科研水平、现代化建设,以及创新性建设的重要标志。在资金有限、设备更新较快较多的情况下,高校会出现资金数额无法满足实验室建设需求的情况,因此合理地投放资金成为了高校资产管理最为核心的问题。那么,什么是建设的重要依据呢?实验设备信息采集系统就是建设的重要依据。通过系统采集到的设备使用率这个有效指标,除了能够解决实验室建设、设备投资优化等问题外,还可以作为实验室兼并重组的重要依据。所以实验设备的使用情况作为一种有效的信息,在实验室建设优化等方面具有重要意义,同时,对于设备信息的采集也是一个实验室管理者值得研究的问题。
为了实现信息的采集,以及将采集来的信息以可视化的图形图像界面展现给用户,本文所讨论的系统基于B/S和C/S两种模式,在采集端以基于PC或其他智能终端C/S的架构实现信息的采集,在信息汇总端采用B/S模式架构,将设备的使用信息以Web浏览方式显示给用户。
二、系统总体设计
(一)系统总体结构
整个系统包含三个服务器,分别是应用服务器、数据库服务器、Web服务器(图1所示)。
1.应用服务器
基于C/S模式架构,与前端的客户机协同工作。负责监听客户机发出的消息,将客户机采集到的信息通过数据库服务器写入数据库中。该子系统为整个系统的核心模块,负责信息的采集工作。该子系统在设计时必须充分考虑到影响采集质量的因素,如并发性访问、海量数据、消息传递机制等。
2.数据库服务器
连接该系统唯一的数据库,用于和数据库之间的交互,任何访问数据库的操作必须经过该服务器,此外该服务器还具有访问合法性检查、数据定期备份等功能。
3.Web服务器
为用户提供与信息查询相关的Web服务,该子系统是典型的基于B\S模式架构的,以J2EE框架实现,并采用MVC经典模型,整合了当前流行框架Struts+Hibernate+Spring(SSH),在数据的持久化、信息查询的高效性等方面作了相关优化处理。
(二)数据库设计方案
注:为了降低问题的复杂性,本文讨论的实验设备暂为微型计算机。因为任何设备若要对其进行智能化监控必须绑定一个智能终端,如:PDA,PPC,MT等。
数据库作为该系统的核心,所有的记录信息都保存在数据仓库中。此外,数据模型设计的好坏很大程度上影响着系统的执行效率。
通过需求分析可知(图2所示),该系统涉及到实验室、PC终端、学生、班级、课程、教师、记录(学生记录和教师记录)八类对象,映射到数据库中为相应的八张核心表。在所有表中最重要的是学生记录表,因为该记录是学生使用微机的重要凭证,其中的记录需保存学生一次上机的起始时间。微机的使用率、学生的到课率等相关信息都依据该记录。为了提高系统性能,对学生记录表不设置任何外键,只通过学生的学号和微机的物理地址(MAC地址)关联。
三、优化措施
(一)冲突优化
由于此系统的工作环境属于高并发性环境,最坏的情况为所有机房的所有微机都在同一时刻与信息采集服务器通信,当然服务器同一时刻不可能同时处理这些通信请求,于是便产生了冲突。虽然,数据库连接池模型可以有效地提高工作效率,使CPU能够充分利用有限的时间片,在尽量短的时间内处理尽量多的请求,但是仍旧无法完全避免同一时刻的通信请求。
退避算法的提出能够有效解决这种冲突问题(图3所示)。每当客户机向服务器发出通信请求时,都会启动一个计时线程记录客户机的等待时间和冲突的次数,如果客户机发出请求后服务器超过5秒应答认为请求超时,冲突次数(n)加一,之后等待2n秒后再加上2n乘以一个0到1的随机数,最后取整得到延迟时间S,等待S秒后再重新发送通信请求,当冲突次数达到8后认为与服务器失去连接,并将相关消息返回到客户端。
经实际测试,在100台机器的测试环境下,当设定等待时间为5秒,最大冲突次数为8时,在1小时内通过退避算法有效避免冲突671次,且冲突数最高为3,即在100个随机并发环境下单机持续冲突的次数不超过3。等待时间(T)=2n+2n×Random(秒)。
(二)线程池并发性处理
由于服务器在接收到客户机消息的同时还会进行数据库操作,因而使用线程池模型(图4所示)能够显著提高服务器的效率。当服务器接收到客户端的消息后,根据消息的内容创建一个任务模型(TaskModel)用来处理相关业务,然后把任务传递给线程池处理,当线程池中的活动线程达到最大时任务进入等待队列等候处理,否则从线程池中取出一个就绪线程处理该任务。
该线程池模型同时设置了线程池活动线程数量(corePoolSize)、最大线程数量(maximumPoolSisze)、等待队列的最大长度(workQueueSize)、当等待队列达队满时对新到线程采取的策略(policy)、线程池的最长保持时间(keepAliveTime)参数。
四、信息采集解决方案
(一)学生端信息采集
当学生上机登录系统时(图5所示),系统向服务器发送登录信息,经过验证后在数据库中写入相关条目并向客户端返回该条目在数据库中的唯一标识rid,之后只要该学生没有退出客户端,客户端便每隔一段时间向服务器发送更新信息,服务器便根据此rid更新该条目的最后时间为当前时间。该学生此次登录的总时间为最后时间—登录时间。
(二)教师端信息采集
当教师登录客户端时(图6所示),经过服务器验证信息,若验证通过则返回该教师的班级和课程给客户端,客户端收到后供教师选择,当教师正确选择后向服务器发送选择信息,服务器便将此信息记录到数据库当中。教师此条登录信息具有重要意义,服务器根据该记录通过时间和班级两个字段就可以关联到该机房当前正在上该老师课的所有学生。
五、结论
(一)B/S信息查询框架
由于该系统涉及到的业务逻辑较为复杂,同时为了确保数据的一致性和准确性,该系统采用三层结构,即表现层、业务层,持久层(图7所示)。用户通过浏览器将请求发送给表现层,表现层根据请求的业务,将请求传递给相关的业务层,业务层完成相关的业务逻辑并通过持久层来进行数据持久化操作。 (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)