多部门协同合作下在职研究生管理平台的设计与实现
2015-12-02高志同来天平王素美彭一明
高志同, 沈 苗, 来天平, 王素美, 彭一明
(北京大学计算中心,北京 100871)
0 引 言
在职研究生的全称为在职攻读硕士专业学位研究生,是非学历研究生的一种类型,非学历研究生教育是学历研究生教育的有益补充.近年来,北京大学的非学历研究生教育取得了稳步发展,无论从招生人数到教学质量都得到了较大程度的提高.
在职研究生的培养管理模式比较复杂,主要涉及的业务流程为:基本信息维护、学籍卡维护、注册、异动、课程、执行计划、选课、成绩、培养方案、个人培养计划、培养审查等.同时,分管的业务部门也较多,包括院系、学籍管理、教学管理和培养管理部门等,每个部门均负责不同的业务流程,但同一个业务往往需要多个部门共同配合才能完成,例如:当教学管理部门进行学生选课管理时,需参考其个人培养计划的数据信息,而学生的个人培养计划数据的维护权限则属于培养管理部门,这时就需要两个部门协同工作,共享数据信息,共同完成选课任务.因此,较理想的在职研究生培养管理系统不仅要能够全方位记录学生培养管理的全过程,保证数据信息的完整性、准确性和安全性,更应实现学生、导师等参与者与各管理部门之间的协同互动,有效适应目前高校学生管理的发展需求.
1 当前系统的问题
目前,北京大学在职研究生所使用的信息化系统(以下简称“旧系统”)并不能达到上述目标,主要体现在:
(1)无法实现数据共享:旧系统将学生的所有业务划分为三大类型:学籍管理、教学管理和培养管理,并分别开发了三套系统:学籍管理系统、教学管理系统和培养管理系统,各部门拥有相应系统的操作权限,但只能查询维护各自分管系统内的数据,无法实现共享,导致的后果是部门间无法直接通过系统数据查询了解业务进度,只能通过传统的电话或邮件方式沟通信息,效率低下,影响了学生业务的有序开展和过程问题的及时解决.
(2)功能划分不合理:旧系统中的角色划分只有相关管理者和教务员,该方式使教务员承担了学生和导师在系统中的全部工作,如自主选课、异动申请、成绩录入等,增加了教务员的工作内容和职责;另一方面,由于缺少学生和导师的直接参与,使得系统中的错误数据不能及时发现并被改正,无法确保数据的准确性,也为数据信息的统计和整理带来了不便.
(3)权限控制不严格:旧系统内部分重要数据由管理者和教务员共同控制维护(包括结束学业年月、学籍状态等),对于某些重要数据双方具有相同的管理权限,缺少对教务员角色权限的限定,如:教务员不应具有修改学生姓名、性别、院系信息的权限,该现状可能会导致教务员误操作和某些“越权”情况的发生,造成系统数据的不准确和不匹配.
(4)扩展性差:旧系统采用C/S架构,其特点是可维护性较差,对于需求经常发生细微变化的学生业务来说,其扩展能力非常有限.
2 解决方案
基于旧系统存在的不足,我校亟需开发适合在职研究生业务需求的培养管理系统,本文结合近年来北京大学信息化建设方面的相关经验,提出以下解决方案:
(1)高度的系统集成
将学籍管理、教学管理和培养管理三部分内容进行集成,采用统一数据库,共同构建在职研究生培养管理平台,各业务部门通过该平台可以实现系统数据信息的交互查询,从而进行数据间共享,为多部门协同办公创造了便利条件.如:在教学管理部门对学生选课数据进行维护时,需要解决相同专业的学生选课权限不同的问题,在新系统中,该问题产生的原因可以直接通过查看培养管理模块中学生的个人培养计划或学籍管理模块中的学籍信息来明确,而在旧系统中,只能通过各分管部门提供相关内部数据来分析该情况产生的具体原因,繁复了工作流程,降低了工作效率.因此,通过对各管理部门业务功能的集成,能够有效促进其工作的协同配合,缩短部分工作流程,提高管理工作的效率,学生数据信息得到充分共享的同时,实现了对在职研究生数据信息集中、高效、便捷的管理.
(2)严格、灵活的功能权限控制和数据权限控制
管理平台对各种角色权限进行了较为严格的控制,主要是通过北京大学统一身份认证系统中的功能操作权限和基本数据权限控制来实现[3].
功能操作权限为每种角色定义了可访问的页面集合,即用户登录管理平台后可见的功能菜单和功能页面.通过对功能权限的优化配置,可以对各个角色的操作权限进行明确的划分,防止出现“越权”情况的发生,例如,通过配置教学管理者角色的功能权限,可以限制其在能够访问教学管理模块中操作页面的同时,只能访问培养管理模块中的某些查询统计页面(非操作类页面),防止对业务分管外的数据进行修改.
数据权限控制则定义了每种角色所能访问数据的属性,其主要作用是在通过数据库获取数据后,根据该角色数据权限的配置信息,对数据进行过滤,将不符合条件的进行剔除.在该管理平台中,主要为教务员角色配置glxsdm(管理系所代码)属性,确保教务员只能获取其所管理院系的学生数据,进一步保证了数据的安全性.
管理平台的功能权限控制和数据权限控制均为配置型功能,能够达到灵活有效的控制效果,即在角色的权限发生变化时,无需修改系统代码,对其配置信息进行相应的调整即可.
(3)多角色多部门间的协同与互动
相比旧系统,在职研究生管理平台中增加了学生和导师两种角色.学生作为平台中重要的参与者,是诸多业务的发起者,例如异动、学籍卡维护、选课等,同时还可在平台中实时查看自己的基本信息、选课信息、成绩等各项数据.导师在系统中能够查看自己所开设的课程信息以及选课名单,并能够为学生录入成绩,方便导师掌握自己学生的选课、学分完成情况等,对学生的培养过程起到一定的监控作用.
两种角色的加入,一方面能够使学生和导师真正参与到整个培养环节中来,增强角色间、部门间的协作与配合;同时,学生和导师可以自主完成原来需要教务员在系统中代替其操作的业务(选课、异动申请、成绩录入等),责任分工更加明确,也在一定程度上减轻了教务员的工作负担;第三,实现学生和导师对自身相关信息的查询,能够及时发现平台中的错误数据,进一步保证其准确性,同时使相关业务部门的服务理念更加人性化,也是我校信息化建设具体成果的展现.
以异动申请为例,旧系统和管理平台的流程图分别如图1和图2所示.
从两张流程图对比可以看出,学生角色不仅提高了学生在培养过程中的自主性,针对某些特定业务,还能够有效地优化业务流程,提高工作效率.
3 平台架构和设计实现
3.1 功能描述
由上述的解决方案,在职研究生管理平台主要分为学籍管理、教学管理和培养管理三大模块,其主要的功能模型图如图3所示.
图1 旧系统的异动流程
图2 在职研究生管理平台的异动流程
图3 在职研究生管理平台功能模型图
学籍管理包括学生基本信息管理、注册管理和异动管理三个模块,以学生学籍数据为核心,主要完成学生基本信息的维护,学生注册流程的管理以及学习过程中各种异动的申请、审核和生效等功能.
教学管理包括课程管理、执行计划管理、选课管理和成绩管理四个子模块,围绕学生的教学流程,主要负责课程库的维护,每学期执行计划的申请、审核等流程管理,学生选课以及对选课结果的维护,成绩的录入及查询等跟学生教学过程相关的功能.
培养管理包括研究方向管理、培养方案管理、个人培养计划管理和培养审查管理四个模块,该模块通过教务员为学生制定并分配培养方案,并为每个学生生成个人培养计划来指导学生的选课和教学管理,最后以个人培养计划为标准,对每个学生的学分完成情况、毕业论文情况等进行培养审查,判断该学生是否具备答辩资格.
系统还包括报表打印、管理设置等功能,为管理部门提供相关报表统计打印和系统设置等服务.
3.2 平台架构
管理平台采用B/S架构,其架构图如图4所示,根据用户角色的不同,提供了两个登录入口:管理部门和教务员从学生系统登陆,学生和导师从校内门户登陆.管理平台通过北京大学统一身份认证系统对账户进行认证,认证通过后,各个角色再由功能权限控制模块来获取相应的操作菜单[3].
学籍管理、教学管理和培养管理是整个管理平台的核心模块,各个角色在相应模块中根据自己的需求来进行各项业务操作,通过互相协同工作,共同完成学生整个培养过程.在用户通过数据库获取数据之后,系统会通过数据权限控制机制对数据进行过滤,保证每种角色只能获取其权限范围内的数据,防止越权操作,保证数据安全.
同时,在职研究生管理平台与招生系统、非学历研究生学位管理系统等都有着紧密的联系,系统中也会根据不同的需求来设计不同的数据交换方式,保证数据的实时准确性.
图4 系统架构图
3.3 实现技术
平台采用了一种轻量级企业应用Web2.0开发框架:Beehive+ExtJs+Json,这是一种典型的MVC模型,具有高效的数据传输速度、较好的用户体验以及很强的扩展性,特别适用于局域网下管理信息系统的开发[2],其模型图如图5所示.
图5 MVC模型图
表现层采用ExtJs实现,ExtJs是基于Ajax技术的具体开发框架,本质上是一系列的Javascript包,包含了例如Form、Grid、Window、Combobox等大量的UI组建模型,提供了丰富的用户界面[4],具有功能强大、编程相对简单的特点.
控制层采用Beehive中的Controller实现,Beehive是一个Apache项目,用于简化J2EE以及Web服务编程,其支持JPF(java page flow)、控件技术、基于Java Specification Request(JSR)181的Web服务三大功能[5].Controller本质上是一个Java类,主要作用是供ExtJs进行调用,根据页面提供的参数进行逻辑处理之后,将要传送的数据以Json格式写入Response对象发送至客户端,然后前台利用ExtJs进行解析处理.
模型层包括数据层和业务层两部分,数据层主要通过Beehive中的JDBC来访问数据库,获取数据或者进行数据更新;而业务层采用Beehive中自定义的控件技术来实现,本质上是Java中的一组接口及其实现,还可以通过对具体的方法定义特殊属性来实现事务处理.在模型层中,业务层一般由控制层的Controller直接调用,然后通过数据层访问数据库的接口来实现数据查询或处理.
4 结束语
在职研究生管理平台已于2014年5月份正式上线运行,已为数千名在职研究生的培养管理提供了服务,通过学生和各管理部门之间的协同合作,有效地优化了管理业务流程,提高了业务部门的工作效率和工作质量;另一方面,平台较为严格的功能和数据权限控制,能够有效阻止管理角色的“越权”操作,对于数据的变动亦可做到有据可查,保证了数据信息的安全性、完整性和准确性.
多部门协同合作下的研究生管理平台建设是对高校在职研究生管理工作的重要实践和有益尝试,可供兄弟高校在相关的管理工作中参考.
[1] 吴洁.专业学位研究生管理系统研究与设计[J].电脑与信息技术,2012,20(6):35-37.
[2] 来天平,欧阳荣斌,王素美,等.一种轻量级企业应用Web2.0开发框架——Beehive+ExtJs+Json[J].实验技术与管理,2011,28(4):296-298.
[3] 王素美,王倩宜,来天平等.数字化校园中跨部门离校系统的设计与实现[J].通信学报,2013,34(Z2):148-152.
[4] ExtJs.中文资讯站[EB/OL].[2014-06-22].http://extjs.org.cn.
[5] Apache Beehive[EB/OL].[2014-06-22].http://beehive.apache.org.