许子乾 余蜀宜 沙 莉
针对目前高校各类教务证明手工或半自动打印带来的效率低下、容易出错等问题,设计了可扩展的高校教务自助打印服务系统。系统利用ADO.NET 和Microsoft Office 二次开发技术设计了可配置的、高效、灵活的多源报表生成方式,开发者通过系统提供的配置功能即可自行生成大部分证明报表,节约了开发成本。实际应用表明,设计的系统具有良好的灵活性和扩展性,能满足各类高校对教务证明自助打印的需求。
自助服务技术指提供一种技术平台,使用户在没有服务人员的直接参与下能够独立地生产完成需要的服务,满足自己的需求。通过自助服务技术,用户不再是被动的接收服务,而是直接参与到产品生产过程中,快速和便利地获得所需要的服务,既节约了成本,也提高了工作效率。目前各大高校对于各类教务证明的打印大多采用手工填写或者调用教务管理系统已有功能来实现,进行半自动化的打印和输出,工作繁琐且不能保证实时性。将自助服务应用于各类教务证明的打印,实现无人工干预的自助打印,可以最大限度地满足学生需求,将管理人员从单一、繁杂的日常工作中解脱出来。虽然各个高校的教务证明格式和要求各不相同,但具有共性特征,通过计算机手段建立灵活的数据获取方式实现可扩展的教务证明自助服务机制,节约开发成本,便于推广应用。
可扩展的高校教务自助服务系统首要的问题需要解决不同数据源的问题,因为面对不同的高校,使用的教务数据库各不相同,必须采用一种通用性数据库连接方式以适应不同的数据库类型。系统使用的解决方案是采用.net平台的ADO.NET 数据访问标准,ADO.NET 是微软提供的用于与各类数据源进行访问和交互的面向对象类库,它的优势就在于通用性,ADO.NET 提供了ODBC,OleDB 等多种协议来满足不同数据源的访问要求。系统利用ADO.NET 开发通用的数据库组件,并对常见的数据库操作进行抽象和封装,实现跨平台的数据访问机制(图1)。
ADO.NET 集成了数据连接、数据命令、数据读取等常规的数据操作工具,并以统一的格式对外发布,使得开发者无需考虑具体的数据库类型,提高了开发效率,从数据库底层解决了可扩展性的要求。
Office 系列软件是微软开发的用于办公的系列软件,因为微软操作系统垄断性的地位,Office 系列软件已经成为现代办公不可或缺的工具之一。Office 系列的功能非常强大,而大多数企事业单位的具体使用人员只是用它来进行简单的文字处理和表格制作,很多功能都没有发挥作用,但从使用习惯和实际工作而言,无法要求人人都成为Office 软件专家,这就需要在已有的Office 软件基础上进行二次开发,开发更加贴近用户习惯和使用方式的产品。本系统考虑使用Office 软件进行开发的原因还有三点:1)降低开发和系统实际部署成本:由于Office 的使用面非常广泛,且基础模块功能强大,对研发周期的缩短和部署以及使用人员的培训提供了很大的便利性。2)稳定性高:office 软件是一款主流的办公软件,其开发公司微软公司也是计算机界的巨头,所以具有很高的稳定性,且更新非常及时,据相关资料统计从1993 年发售3.0 版本以来,截止2013 年发布2013 版本,共11 个版本,各单项软件百余个,已经成为windows 平台的必备软件之一。3)兼容性强:高校教务信息化并非一蹴而就,在信息化之前很多的档案,文字等都采用纸质的形式保存。而在信息化之后由于工作的需要和安排,很多学校已经开展了纸质档案的信息化工作,而这项工作绝大部分都利用office 来完成。系统必须考虑这些单独存档的电子信息的数据读取功能,直接采用以往通过office 保存的数据资料,实现历史数据的共享和交互。
图1 ADO.NET 访问机制
图2 自助服务网络控制体系
自助服务系统设计初衷就是减少人工操作,但任何软硬件都受周围环境影响,诸如线路、网络等条件的改变都会对系统运行产生影响。因此建立一个有效的远程控制机制,捕捉每一台终端机器的实时状态,才能真正实现自助化服务。远程控制的技术核心在于网络互通,对于高校来说,利用已有的校园网络即可快速、稳定、安全的实现多个自助终端的监控,再利用系统设计的预警机制,做到实时监控、预警,网络控制体系如图2 所示。
自助服务客户端采用分布式管理,可能分散在不同的区域。采用一个主服务器为中心节点,通过区域交换机与对应的自助服务客户端相连接,整个控制网络处于校园网内,通过校园总控防火墙与因特网相连,实现安全的远程访问机制。
整个系统由项目设置、数据对接、报表生成、数据库管理、打印控制、日志预警六部分组成(图3),其中项目设置、数据对接、报表生成是系统可扩展性实现的关键模块,使各高校能根据自己的要求自定义证明的数据、格式和打印条件;数据库管理、打印控制模块提供多种数据接口和控制方式,满足主流的数据库应用和控制需求。相比常规的业务系统,自助服务系统对日志记录的要求更高,而教务自助打印系统由于打印机易耗性较高且业务量大,在进行常规日志记录的同时需要实时监测机器状态并及时预警。
项目设置
项目设置模块用于自助服务项目的管理,用户可以灵活的设置需要打印的服务项目,是系统可扩展性得以实现的关键。项目设置模块由项目定义、数据获取和项目收费三大部分组成。项目定义主要实现对证明项目基本信息的定义和存储,如证明的名称、项目说明、证明的收费标准。数据获取实现各个项目数据抓取方式的定义,用户可以选择SQL 语句直接查询、视图建立和调用存储过程三种方式,通过与后台数据库的连接,达到项目数据获取的目的。项目收费用于定义每个项目的收费方式,结合目前大多数高校的收费规定和实际情况,提供单价式和阶梯式两类收费方式,并提供按时段收费、按数量收费和临时免费三种计费策略。
图3 系统总体设计图
数据对接
数据对接模块控制整个系统数据走向,其主要功能是实现各个项目数据内容的生成。数据对接模块由数据生成和字段映射两部分组成;数据生成通过调用数据获取模块的数据抓取方式,生成该证明所需的数据列表;字段映射建立数据表中的字段与报表字段之间的对应关系,为后期报表数据填充做准备。
报表生成
管理员通过报表生成模块可以生成任意格式的报表,并与已有的项目对接。模块采用入门级Microsoft Office Excel 软件作为开发工具,方便易用,兼容性强且灵活度高,也易于日常维护。该模块包括报表结构设计、数据填充、页面设置及封装设置四个部分组成。结构设计通过调用Microsoft Office 接口,完整继承Excel 的大部分功能,用户进行报表结构设计时完全等同于操作一张excel表格,操作简便易学。数据填充通过对报表信息单元格位置的获取,结合数据对接模块的字段映射功能,实现数据字段对报表的填充。页面设置通过调用Microsoft Office接口与操作系统API 函数实现每一种打印报表打印设置,包括样式设置、纸盒设置、打印机选择及打印效果设置等。封装模块实现对数据的加密处理,因为excel 是一种常规、开放的数据格式,为保证各项教务证明的严肃性和保密性,通过封装模块对所有生成的excel 报表进行加密封装,防止因系统被侵入造成的数据被篡改和丢失,所有的excel报表在数据提取完成后即时生成pdf 快照并销毁,既保证数据安全又留存了即时打印信息以备查。
数据库管理
数据库管理模块用于与教务、财务系统进行对接,针对目前各大高校实际情况,目前提供Oracle、Sql Server、Access 三种主流的数据库对接接口。因为自助服务系统依托于教务系统、财务系统等外部系统,所以设计数据校验模块对外部数据进行系统校验,只有满足系统设定的条件,校验通过才能进行下一步的数据提取等操作。防止因为外部系统数据结构更改造成的系统错误。考虑到国内高校实际情况,系统设计了一卡通和现金收费接口,在满足收费功能的同时,实现系统对接。
打印控制
打印控制模块负责随时捕捉打印机状态,监控本机与打印机之间的通信。因为打印机加纸操作只能通过人工方式来完成,而自助服务又是24h 开机状态,因此为了避免因打印机缺纸、卡纸等造成的系统中断,通过打印控制模块的纸张监控功能随时监控纸盒状态,并通过份数管理,用户自行设定剩余量阈值来控制系统的关闭和打开。同时提供打印机管理模块,用户可以对打印机进行基本的配置。
实时预警
实时预警模块相对于整个自助服务系统独立运行,利用远程控制的原理实现各个服务终端的状态的监控,监控的内容包括:网络通信状态、软件运行状态、客户端界面捕捉、客户端打印机状态及、其他业务系统通信状态等,并通过日志记录。用户通过设定各类预警的条件,实现客户端的预警功能,通过声音、颜色的变化随时提醒管理员。
用户登录
用户登录模块为系统初始化完成之后的显示窗体,也是整个系统开始界面。自助服务系统对用户体验和健壮性要求很高,在设计用户登录模块时首先考虑了各个关键功能初始化的预判。系统运行后,首先进行数据库、网络和负载外部设置(读卡器、收费器、打印机等)的状态测试,如果成功则展示完整的用户登录界面,否则将打开相应的配置界面或信息提示,等待用户配置成功或修复完成后,再显示完整的登录界面。界面显示后,用户通过触摸输入或刷卡等验证操作进入系统,登录成功后,系统再进行功能识别,根据用户的身份(学生?教师?)开放相应的功能菜单,登录流程如图4。
数据提取
图4 用户登录流程图
数据提取模块通过用户选择的相应功能、实现功能选项与实际报表的数据对接。首先通过读取相应的报表内容要求,提取报表的格式和字段需求;其次利用数据库的数据挖掘功能,建立数据库字段与报表字段的映射关系,再通过不同的数据获取方式(数据视图、存储过程、SQL提取等)获得数据列表;最后结合格式需求对预设的证明模板进行数据填充,生成报表文件,完成整个报表的数据提取,具体的提取流程如图5。
系统验证及打印
系统验证的目的是实现自助服务有序控制,数据提取的报表首先通过pdf 快照的形式展现到,以供用户查看。当用户输入了需要打印的份数后,系统根据设置的验证条件(计费或份数控制)和打印机及纸盒状态、判断其是否能够成功打印,并给出提示。当用户进行了满足验证条件的操作(如付费或更改份数)后,再实现打印操作,系统通过与打印机的通信获取判断是否打印成功,并即时记录到系统日志中,完成整个自助打印服务。完整的流程如图6。
图5 数据提取流程图
图6 系统验证及打印流程图
系统开发工具采用Microsoft visual studio 2010,支持Microsoft Office2007 及以上版本,开发框架为.NetFramework3.5,目前已成功应用到南京林业大学、东南大学、盐城师范学院的本科生管理,通过系统配置和少量的界面修改,实现了大部分教务证明的自助打印功能,节约了开发时间和成本,极大的提高了开发效率。
三所高校系统硬件为一台普通的PC 机,具体配置如表1 所示,均为目前主流配置,因自助打印机负载的外部设置较多,选取600W 多核电源;考虑到系统响应问题,选取固态硬盘提高响应速度。
表1 软硬件配置表
目前使用的三所高校中,利用本系统都实现了中英文成绩单、在读证明等需求面广量大的教务证明的自助打印,其中盐城师范学院利用已有的系统配置功能实现了全部打印项目,东南大学的“出国成绩单”和南京林业大学的“教室借用表”因为数据获取方式和工作流程的特殊性,不能完全通过系统配置功能实现,进行了少量的二次开发。外部系统对接方面,南京林业大学与校园一卡通和现金收费系统均实现了对接,东南大学实现了一卡通对接,而盐城师范学院只使用了现金收费系统,详细使用情况如表2 所示,系统界面如图7-8。
图7 教务自助服务系统界面(南京林业大学)
图8 教务自助服务系统界面(南京林业大学中文成绩单)
表2 自助服务系统使用情况表
可扩展的高校教务自助打印服务系统以Microsoft visual studio 2010 为开发工具,通过ADO.NET 技术支持多源数据库,利用Microsoft office 二次开发技术设计了各类教务证明自动生产模式,具有高度的扩展性。系统通过用户登录、数据提取、系统验证及打印构造完整的自助打印服务流程,并应用于实际案例,在实现了快速开发、节约开发成本的同时满足了不同用户的个性化需求。