您现在的位置: 论文网 >> 教育论文 >> 学科教育论文 >> 基于工作流的教学管理系统的设计与实现论文

基于工作流的教学管理系统的设计与实现

出处:论文网
时间:2015-01-30

基于工作流的教学管理系统的设计与实现

  0.引言

  随着我国教育事业的不断发展,中等职业院校的规模越来越大,拥有多个校区甚至是不在同一城市的多个校区的院校也已经出现了,并且学校内部的部门分工也越来越细,部门也越来越多。一项任务往往需要多个部门的配合协作,甚至多个校区之间的协同配合才能完成,这就使得可以支撑多部门协同工作的信息平台成为一项迫切需求。

  目前随着中职院校信息化建设的深入开展,不少院校部门都引入了电子办公系统,无纸化办公也渐渐成为一种潮流,但是各个部门引入的系统往往只针对本部门的特殊需求,并且系统之间往往并不能互通,导致数据信息不能在部门之间流转共享,使得需要多部门协作的工作开展起来较为不便。

  针对现有系统存在的这些不足,本文以JBPM工作流引擎为核心组件,设计并实现了一个B/S架构的教学管理系统,为学校各部门提供了一个统一的管理平台,为部门间的协同办公提供了一个沟通管理渠道,避免因校区分散或是业务系统独立带来的种种弊端,将大大的提高工作效率。

  1.工作流

  1.1工作流引擎

  工作流的概念起源于生产组织和办公自动化领域,根据工作流管理联盟(WfMC)的定义:工作流是一类能够完成或者部分完成自动执行的经营过程,根据一系列过程规则,文档、信息或任务能够在不同的执行者之间传递、执行。工作流是针对日常工作中具有固定程序的活动而提出的一种概念,其目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率,降低成本的目的。图1描述了WfMC提出的工作流参考模型的主要组件和接口[1]。

  1.2 JBPM工作流引擎

  Java Business Process Management是一个以流程图为导向的工作流管理系统,覆盖了业务流程管理、工作流、服务协作等领域的一个开源项目[2]。它的优势是将业务流程复杂的系统结构清晰化,提供系统运行的灵活性,解耦系统业务流程,流程独立,可以使用工具定义和建模,利于跟踪、监控、管理和调度。

  根据WFMC制定的参考模型,联系教学管理系统的实际需求,可知教学管理系统中最重要的部分就是如何以工作流引擎为基础,创建一个工作流协同控制中心。工作流引擎是为工作流实例提供运行时期的执行环境软件服务器或引擎。它负责解释过程定义、控制流程实例、为流程的活动导航、参与者签名和退出、确定任务项目,实现用户意图、提供接口,支持用户交互、维护工作流控制数据和工作流相关数据、提供调用外部程序的接口、提供控制、管理和审查功能[3]。

  2.系统需求分析和总体设计

  2.1框架设计

  系统作为大型的综合管理系统,使用的用户类型较多,包括在校师生,行政管理员,社团负责人等。较广的服务范围覆盖决定了用户的需求往往会随着时间的推移而改变,如涉及到系统功能的扩充,用户业务变动,数据对象变动等。因此本系统考虑采用B/S架构来设计,如图2所示。

  第一层为数据链路层(DAL),也称其为持久层,功能主要是访问数据库对原始数据进行操作。第二层为业务逻辑层(BLL),该层是整个三层结构的核心层次,对具体问题的业务逻辑实现。根据用户的需求对数据链路层的数据进行整合和加工并反馈回用户表示层。第三层为用户表示层(USL),客户端只包含一个通用的Web浏览器,用户通过浏览器来使用系统。使用这种架构,当用户需求改变时,我们只需要修改业务逻辑层的实现代码,用户使用仍然只需要通过浏览器,并不需要下载更新包来升级系统,因此这种架构能提供较好的用户体验。

  2.2系统功能模块设计

  系统主要由图3中展示的功能模块组成。

  登陆模块:负责用户的登陆验证,然后根据不同的用户权限跳转相应的用户界面,不同的用户可操作的功能是不同的。

  教务管理:模块功能包括校内课程安排,老师向其授课班级学生布置作业,发送通知,学生可以使用该模块来选课,提交课程作业等。

  社团中心:服务于各个社团,用户可以申请创建社团,等社团中心管理员账户审批通过后新社团则正式成立,社团创建人可以在社团内部创建不同管理权限的用户级别,可以向学校学生用户发出加入邀请。

  任务中心:可以用来查看自己的任务、给下属用户安排任务、查询自己接收到的任务和自己安排下去的任务。

  审批模块:包括出差审批,报销审批,活动申请等功能。

  工作协同:模块用于管理跨部门的一些需要合作的任务,使不同部门紧密有效的共同协作完成一项任务。

  另外,报表导出,附件上传,消息提醒,手机短信等模块作为基础服务模块,在系统的其他模块中,通过接口直接调用这些服务,使系统的整体耦合性较好。

  3.系统详细设计与实现

  系统采用J2EEB/S架构,用户通过浏览器访问系统。采用Tomcat作为Web服务器,遵循MVC设计模式,表现层采用Structs,控制层采用Spring,模型层则采用Hibernate,因为JBPM工作流引擎本身也使用Hibernate帮助其管理数据库。底层数据库采用MySQL5.5.27,开发IDE采用Eclipse Juno。

  3.1流程封装

  首先需要对业务工作流流程进行定义,考虑本系统存在的流程多为单线流程,即同一时间内不会存在两个同时进行的流程分支。因此,我们将每个系统流程固化为一个双链表来存储。本系统主要是在当前流程节点处操作,而双链表的特性正好符合系统的需求。具体设计如图4所示。   在物理数据模型中每个流程节点都有各自的唯一流程标识符PID,同时还具备指向上一个流程节点的指针Pre和下一个流程节点的指针Next。每条数据记录中还存储了当前处理人的信息,包括处理时间、接收时间、处理人标识符等。

  在设计中,每个流程节点封装在Node类中,其中包含了节点的具体信息,每种流程配备专有的Iterator。通过Iterator可以方便的对当前表单流程进行增、删、改、查。如 next()作用是将指针指向下一个流程节点,并返回该节点对象;pre()的作用是将指针指向上一个流程节点,并返回该节点对象;isFirst()的作用是判断是否为最后一个节点。Iterator中还包含两个节点指针,分别为向前遍历指针和向后遍历指针,其保存了当前节点的标识符PID。

  CooperationWorkflow、PlanWorkflow、TaskWorkflow为三类表单流程实例对象,他们都继承了Workflow抽象类。图中仅以PlanWorkflow为例展示了具体设计。初始化实例时,将流程标识符PID作为参数传入,构造函数就会调用初始化函数获取已存在表单的当前流程节点信息,然后根据所返回的历史记录编号初始化实例内部参数。当没有传入PID时,初始化函数就会在数据库中以链表形式插入流程历史记录,并返回新流程的首节点地址。流程实例内部封装了节点操作对象NodeOperator,通过该对象可以方便的对节点进行增、删、改操作。

  3.2 JBMP工作流持久化

  一项需要多人参与才能完成的业务流往往需要很长的时间才能运行完毕,因此这个工作流实例不可能常驻内存中,于是我们需要对工作流实例进行持久化,就是将工作流的一些运行状态和参数保存起来,持久化到数据库或一个文件中。本文系统采用数据库方式来持久化工作流。

  在MySQL数据库中新建一个数据库,首先将mysql的驱动程序mysql-connector-java-5.1.7-bin.jar与jta-1.1.jar(hibernate持久化需要用到这个jar,否则报错)放在classpath路径下。编辑src/main/config/jbpm.cfg.xml,这个文件是整个jbpm的主配置文件,其缺省什么都没有,所以仅可以运行jbpm的流程,但是不能做持久化,要做持久化必须配置这个文件。

  4.结语

  本文详细介绍了工作流技术,并针对中职院校现有信息系统的不足,基于工作流技术设计了一个教学管理系统。文章介绍了系统的整体框架设计和各功能模块设计,以Eclipse为开发工具实现了该系统。自上线以来,系统运行情况良好。 [科]

基于工作流的教学管理系统的设计与实现

论文搜索
关键字:实现 教学 管理 系统 设计 工作
最新学科教育论文
软件工程专业“计算机网络”课程实验教学研
“赛教学训”四位一体化的物联网工程专业人
浅议幼儿美术趣味教学及创新能力的培养
如何利用奥尔夫音乐教学法培养幼儿的创造力
解读体育游戏在初中体育教学中的应用及影响
如何在美术教学中营造快乐的氛围
微积分慕课教学资源与应对策略探究
浅析在德育课教学中如何灌输团队观念
MOOC引领下中学历史课程多元化教学模式研究
“情感过滤”假设对大学英语听力教学探讨
热门学科教育论文
浅谈语文教学中学生创造力的培养
变“教师教,学生学”为“教师教学生学”
素质教育与小学语文教学
小学“语文综合性学习”实践初探
素质教育和小学语文教学改革
现代体育课堂教学重在创新
浅谈《体育课程标准》与体育教师观念的转变
电教手段优化体育教学
陶行知健身思想研究
简论现代游泳技术与训练的发展方向