教学工作量管理系统的设计与实现
2016-06-29曾青松郭盛煌
曾青松 郭盛煌
摘要:教师工作量管理是整个教学信息管理系统的核心和基础。面对种类与数量繁多的数据和报表,手工处理方式已经很难跟上现代化管理的步伐。设计开发了一套教师工作量管理系统,快速地完成与教师工作量有关的各项数据统计工作,解决计算方法繁杂、工作效率低的问题,推动工作量管理更好的发展。
关键词: 教学工作量;需求分析;教务管理;系统分析;Web服务
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)13-0021-02
Abstract: Teaching workload management is the core task of teaching information management system. To handle a large amount of data and reports. It is very difficult to keep up with the modernization step with manual operation. This paper designed a teaching workload management system, which can quickly collect all data related to teachers' workload statistics work. It can promote the development of the workload management.
Key words: teacher workload; functional requirement; teaching management; system analysis; web service
1 背景
教师工作量管理是整个教学信息管理的核心和基础[1-2],传统的教学部门对工作量的统计一般采取Excel表格人工统计[3],这种方式虽然灵活,但是收集数据过程复杂,容易出错。并且对于历史数据查询不方便,对教师工作量没有有效的管理和统计分析,不能对课程安排做出合理的决策指导。
结合我校多年来的教务管理工作中教师工作量统计的实践经验,开发了教学工作量统计分析系统,推动了教师工作量管理更好的发展。系统能准确快速地完成与教师工作量有关的各项数据统计工作,解决计算方法繁杂、工作效率低的问题。
2 系统需求分析
一直以来,我校教师教学工作量的统计采用任课教师自己填报,经各系院教学秘书核对及主管领导审核后提交至教务处,教务处审核后存档并提交至学院人事处核算课酬。在这个过程的每一个环节中,工作量均采用手工计算,教师要记住繁杂的计算公式,还要统计每年的实际工作量,很显然,这种采用人工方式计算教师工作量不仅费时费力,而且很容易在统计过程中出错,许多老师也多次呼吁能尽快改变目前这种手工计算教学工作量的方式。
根据我校教学工作量管理的实际流程及一些特殊要求设计并开发出教师教学工作量管理系统,解决教师教学工作量管理的实际问题,系统的总体功能需要与现有的教务系统对接,获取教师的工作量原始数据,还需要与人事管理系统对接,输出工作量统计数据用于核算课酬。教师工作量管理系统的功能结构如图1所示。
3 系统设计
3.1 系统实现技术
教师工作量管理系统的整体架构采用B/S结构,教师客户端支持使用手机APP和微信访问,教务处和系部管理端使用浏览器访问。在调研现有教务系统功能的基础上,通过WebService实现了与现有的教务系统的对接[2],对现有系统的功能进行封装[4,5],提供教师基本工作量原始数据的查询,包含排课信息、调停课信息等。
根据学校实际工作的需求,对教师参与学校公益性工作量进行记录和统计,方便计算公益分。教师用户手机APP用户界面如图2所示。
3.1.1 用户访问控制机制
信息系统的开发已经变得越来越简单,但是每一次开发有很多的功能都是相同的,如访问权限控制。对一个多用户应用系统而言,系统的安全访问控制是必需的,系统的安全访问控制一般是通过用户认证和用户权限管理来实现。目前大致有三种安全模型:访问矩阵、基于角色的访问控制模型和多级模型[6]。系统采用基于角色的访问控制(RBAC-Role based access control),这些基础功能由OpenCenter框架提供,简化了编程工作,加速了项目实施的进度。
3.1.2 服务端实现技术
服务端采用PHP+MySQL,具体使用ThinkPHP 3.2.3作为开发框架。ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,为简化编程,选择基于ThinkPHP的开源快速开发框架OpenSNS,OpenCenter(http://www.opensns.cn/)是OpenSNS的基础,以ThinkPHP为基础,实现了应用程序开发的基本的通用功能,提供了注册登录、头像裁剪、单点登录、Auth授权、权限管理、扩展资料管理、等级头衔、自定义积分管理、用户行为日志机制、模块装卸、插件机制。OpenCenter使开发人员只需要专注于业务系统的开发。
3.1.3 客户端实现技术
PC版本的客户端采用HTML5+jQuery,采用Ajax方式远程调用统一的后端API方式实现,css框架使用Bootstrap 3。
教师客户端APP采用DCloud(http://dcloud.io/)的移动用户界面框架(Mobile User Interfac, MUI)。MUI是一套基于HTML 5开发移动APP的用户界面程序,可以方便开发出高性能App的框架,也是目前最接近原生App效果的框架,支持在线方式打包APP。它提供了丰富的APP开发常用的界面控件,并且对手机浏览器进行优化。借助于功能强大的HTML5 Plus模块,使得HTML5开发的APP在流行配置的手机上能够流畅地运行。开发出来的APP能够同时支持安卓和IOS系统,与开发原生的APP相比,节约了大量的时间,降低了程序开发的难度和维护的成本。经过少量的修改或者交叉编译方式可以快速的支持微信公众号应用。
3.2 系统接口设计
根据系统的功能需求,系统的客户端包含了传统的PC端、移动客户端APP(支持安卓和IOS系统)以及微信公众号应用。为提高系统的可扩展性和降低客户端的维护工作量,所有客户端调用统一的API。API的设计遵循以下原则:
1)提供密钥和token,确保数据不被篡改,系统拒绝接受伪造的访问请求。
2)读数据用HTTP get请求,修改数据用HTTP post请求。
3)提供统一的错误码。每个数字代表一种错误。错误分系统错误和业务逻辑错误,系统错误码统一从4001开始编号,业务逻辑错误统一从5001开始编号。
4)接口返回值格式统一结构,用JSON格式输出,包含状态码(错误码),错误信息和业务数据三个基本域,如果程序执行成功返回固定状态码“200”,如果出错则返回系统错误码或者业务错误码。例如:{code:200, message:成功获取用户数据, data:{uid:101, username:admin,…}}。
3.3 系统API访问机制
为提高系统的安全性,每个用户只能查询自己的数据,并且为了避免每次请求都进行身份验证和防止数据被篡改,系统在用户初次访问时候进行身份验证,密码通过MD5算法转换后发送到服务器,验证身份通过之后获取一个表明身份的token,服务端缓存相应的用户ID和登录时间数据,实现'a'=>b 和'b'=>a格式的缓存,也就是说可以根据token查询用户id和登录时间或者根据用户id查询token数据。另外为提高安全新,采用类似于微信的安全机制,产生一个32位的随机字符串用于加密生成token。生成token的核心代码如下:
private function getToken($uid, $appid, $appsecret, $cache_time=7200)
{
$key = $appid . '_' . $appsecret._.$uid;//或者自己定义一个规则
$nonce = $this->createNoncestr(32);//产生32位的随机字符串
$tmpArr = array($nonce, $appid, $appsecret);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
//这里做了缓存 'a'=>b 和'b'=>a格式的缓存
S($key, $tmpStr, $cache_time);//$cache_time=7200
S($tmpStr, $key, $cache_time);
S($key . '_uid', $uid, $cache_time);
return $tmpStr;//返回生成的TOKEN
}
其他的API调用的时候需要传递ID和获取到的token,服务器端每次请求要验证是否是用户本人的请求,确保数据不被非法访问。例如,获取用户信息的接口请求:http://xxx/api.php/getUserInfo/uid/101/token/b1b7bec6c9583a40b0d84fafa919ea357679068e,其中xxx表示服务器部署的路径,token在用户登录成功的时候返回到客户端,缓存起来方便其他的API调用。如果用户使用现有的token调用api的时候出现访问超时或者用户身份与获取token的用户身份不一致,服务端拒绝访问,返回4001错误,客户端要对每一次的API请求检查返回的错误代码,如果接收到4001错误则跳转到登录页面要求用户重新登录。
4 结束语
教务管理工作是高校教学管理的一个基本功能,目前实现了教学工作量的统计这一特定需求,后续还将继续完善该系统,尤其是教师客户端的功能,增加日常教务信息的查询和学生考核等方面的功能,使教师能够通过手机访问现有教务系统的主要功能,提高教师办公效率。
参考文献:
[1] 黄文武, 傅强, 罗卓笔. 高校教师教学工作量管理系统设计与实现[J]. 中国教育信息化·高教职教, 2014(8): 65-66.
[2] 田林琳, 洪伟. WebService在教学工作量管理系统中的应用研究[J]. 电脑知识与技术, 2015, 11(26).
[3] 邹俊. Excel在实践教学工作量统计中的应用[J]. 智能计算机与应用, 2014, 4(6): 112-113.
[4] 陈懿炜. 云计算环境下一站式教务管理系统的研究——以开放大学为例[J]. 中国成人教育, 2015(3): 28-30.
[5] 阎琦, 韩建群, 夏颖. 基于UML的高校教学日常管理系统的建模与实现[J]. 计算机技术与发展, 2014(4): 196-199.
[6 曾青松. 一种基于插件的管理信息系统框架的实现[J]. 番禺职业技术学院学报, 2008, 7(3): 56-59.