基于SOA的审批流程管理系统研究与实现专业:软件工程姓名:日期:2010.8.1内容概要课题研究背景及意义相关技术分析校务审批系统需求方案设计校务审批系统中审批流程的设计系统的具体实现未来的工作课题研究背景及意义在电子校务管理中最核心的是电子校务系统能够使用各种业务流程变化的能力,因为现在高等职业院校办学方式还在不断摸索中,因为校务也需要适应这种变化而不断变化,以往开发的校务管理系统是使用静态流程管理技术设计的,它所处理的业务流程是静态的,所以在现在多变的环境下,这种系统就越来越不满足当前的使用现状。因此需要开发具有高效,灵活,敏捷的业务流程管理系统,实施柔性化的管理方式来对校务进行管理,这个是未来电子校务发展的方向。课题研究背景及意义本课题的研究从建设柔性化的电子校务管理系统出发,使用SOA和业务流程管理两个设计思路,打造柔性化校务管理系统,让学校校务管理的服务者和使用这操作,按照流程化的方式进行操作,同时又可以避免由于业务流程变更而导致的系统不能在使用,改进工作手段、方式和流程,减轻各级管理部门和教学科研人员的工作负担,增强管理沟通能力,提高行政办公效率和水平,来满足当前高职院校中对办学提出的不断完善的要求。相关技术分析•SOA技术:面向对象的服务构架,一种架构模型,可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用,这些应用组件是通过接口进行连接起来的,•BPM:业务流程管理,解决了企业流程改变所带来的敏捷性,资源整合中优化的等问题,整个流程是:业务流程的发掘→业务流程设计→业务流程执行→业务流程管理维护以及业务流程优化通过SOA思想,采用面向服务的建模工具来确保业务流程服务活动的设计与实施,并从业务模型角度上提出完善业务流程活动的基本方法,本方案的方法可以整合多种业务系统,适用于在使用过程中需要对业务数据进行调整,买符合业务变化而需要作出快速响应的地方,发挥企业信息化的要求。基于SOA的BPM系统设计思想企业流程BPEL4WSBPMS流程层基本层中介层整个构架分为三层:业务层、服务层和数据层三层。业务层是针对使用的具体情况,有外部业务系统和内部业务系统,它们分别进行业务流程定义和业务流程执行,这两个系统通过WebService来与服务层进行联系。服务层是本系统的,主要由工作流引擎,服务总线和适配器组成。服务总线实现了工作流引擎和适配器之间的联系,保证整个系统能够正常的运行。第三层为数据层,它是来进行与底层数据库资源进行访问的,为底层数据库访问提供一个接口。基于SOA的BPM系统总体架构本系统是为山东东营职业技术学院设计、开发的办公自动化系统。山东东营职业技术学院办公系统主要任务是在各二级学院、教学管理、人事部门、财务和后勤部门之间进行公文传递,起到上传下达、信息沟通的目的,克服以前主要是通过人工传递文件,造成效率低下、实时性差等问题。经多次仔细调研以及和用户的交流明确了整个系统所要实现的主要目标:公文流转的自动化,归档的电子化,提高处室工作人员办公效率。网上审批系统简介审批业务流程分析从审批流程上来,大学校内审批流程通常可概况为事项目申报者申报填报,提交-----系负责人审批----院人事科审批----学院负责人/党委审批----校负责人/党委领导审批,根据审批事项的不同,审批流程可以是多比通用流程精简或复杂。系统管理员用例图分析系统管理员在校务审批平台上具有电子表单的定义,流程定义,流程发布和流程监控和统计。在行政审批平台上进行信息流动的是电子表单,这里可以按照不同的要求定义不同的模板后保存,在流程定义中按照流程的任务节点的权限进行设置,并且按照审批业务的轻重缓急设置为一般、紧急、特急,然后按照这些设置进行流程控制,系统流程和监控可以监控整个流程在某个节点的运行时间和运行状态。系统管理员流程定义流程发布usesuses电子表单定义监控/统计项目定义流程权限定义流程任务节点权限定义可定义每个节点的最长处理时间。根据紧急程度,该时间可分为如下几个级别:1、一般2、紧急3、特急启动流程时,可以指定紧急程度,缺省为“一般”。注:对超期流程,系统需要提示,或以不同的颜色区分usesuses行政审批用例图分析行政审批是与校务审批相关的所有人员,这里有教务处,科研处,院系领导灯,从行政审批的起始节点所参与的相关人员,可以传递给下一个相关人员,这里的用列有启动流程,处理待办任务,查看流程,设置代理人,查看通知的消息。审批人员处理待办任务查看流程usesuses启动流程查看通知消息转下一办理人usesuses设置代理人会签任务转派返回归档及发布作废(删除)审批、电子签名查看办理信息待办任务未完流程我启动的流程已归档流程所有流程收回任务催办发布OA中有设置代理人的功能需要进行集成usesextendsextendsextendsextendsextendsextendsextendsextendsextendsextendsextendsextendsextends外部用户用例图分析外部用户只能对平台特定开发的结构进行访问,这里有提交材料和超期审批提醒。外部用户接口提交审批材料超期审批提醒usesuses行政审批系统的服务模型各个服务模型之间不是孤立的、它们可能存在相互访问和调用的关系,而且服务的开发要坚持一定的原则。在开发服务时,要避免服务请求者依赖于服务提供者的状态;服务使用者看到的是服务的接口,其位置、实现技术以及当前的状态都是不可见的。系负责人审批院人事审批院负责人审批事项申报校负责人审批系统管理员流程定义审批系统的信息模型从业务流程的分析看出,系统中可能的信息载体是:申报表单和经过各个阶段审批的表单。审批系统部分信息模型中的业务实体如它们是数据模型中数据维护服务的实体,在业务服务操作时它们之间要有消息传递。系负责人审批院人事审批院负责人审批事项申报校负责人审批申报表单申报表单(审批一)申报表单(审批二)申报表单(审批表单三)申报表单(审批表单四)基于SOA的工作流架构基于SOA的工作流架构含有五部分,分别是注册表和信息库、可视化建模和管理工具、服务治理服务和代理、工作流管理、显示和用户交互管理。基于SOA的工作流管理系统的模型整个行政审批系统中工作流引擎是核心部分,通过对工作流引擎的设计后就可以按照定义进行柔性审批平台的设计,在进行工作流管理系统的设计中还是按照三层体系的结构进行:表示层、功能层和数据层。在该功能模块主要是实现审批平台中系统管理员中业务流程定义的功能,并把定义好的流程进行存放到数据库中。表示层是用户交互接口层面,这里提供给系统管理员一个图形拖放的接口来方便访问;业务层实现了工作流引擎的业务逻辑控制,以方便工作流程实例的建立、管理、协调及控制,它是整个系统协调工作的关键;数据层存放着与业务流程相关的数据,活动和服务。基于SOA的工作流管理系统的模型业务层表示层持久层流程建模界面启动和监控界面流程模板描述服务工作流模板列表服务工作流实例监控角色和权限管理消息事件管理历史记录管理流程定义数据库角色和权限数据库流程实例运行数据库流程实例历史数据库审批流程的设计JBossjBPM还拥有一套图形化的设计工具。这个设计器是一个图形化的业务流程定制工具。流程的部署jPDL的流程部署文件包含processdefinition.xml的定义部分和Java处理器的代码部分,这些文件可以被一起打包成.jpdl的zip格式包而后上传服务器端。这个过程可以在流程设计器界面的“deployment”标签页中操作。系统软件模块行政审批系统中可能的角色主要有:系统管理员、部门负责人(如财务主任、招生办主任)、校长、教师、学生等。下图是按照这些角色设计的功能模块图。行政审批系统网上申报申报平台查看审批状态事项审批审批模板自动回复自动驳回催办处理任务提醒工作委托查询统计申报信息查询审批平台流程定制表格、表单定制用户授权管理日志管理管理平台电子校务审批平台构架图电子校务行政审批平台功能模块系统架构SQLServer2005HibernateSpringIoCAOPWeb层:SpringMVC结构,JSP页面:login.jsp、Project.jsp、…业务控制器:providerController、HRController、…jBPM工作流管理系统DBInsertDao、DBremoveDao、DBchangeDao…映射文件ProjectInfo.hbm.xml、…前端控制器:DispatcherServlet登录验证日志管理流程监控系统参数设置管理平台审批平台申报平台电子校务审批平台构架分析(1)持久层利用Hibernate映射工具实现,封装所有与数据库交互操作。(2)中间逻辑层,在这里表现为Spring的业务控制器providerController、HRController等,通过Spring的IoC进行集成。这一层的事务管理、系统日志管理,也利用Spring框架的AOP功能进行。在持久层与业务层之间,有一DAO层,包括DBInsertDao、DBremoveDao、DbchangeDao等类,也由Spring的IoC进行组织。(3)前台控制器DispatcherServlet由Spring提供。在该校务行政审批系统中,所有的请求都由DispatcherServlet转发到业务控制器中。(4)前端Web层,采用的是SpringMVC结构,利用JSP作为视图。业务逻辑与事务管理功能的设计实现业务逻辑层负责事务管理,事务是所有企业应用系统的核心。本系统采用Spring提供的一套轻量级事务管理功能,事务管理分为编程式事务管理和声明式事务管理,而后者又有两种具体的实现形式,一个是通过通用的AOPProxyFactoryBean创建事务代理,另一种是将前者简化后的通过一站式TransactionProxyFactoryBean来创建事务代理,本系统采用了后者方式,不仅达到事务管理的要求又能简化各种配置。通过以下两步配置实现:首先配置事务管理器;然后在具体的业务逻辑类配置中,使用Spring的事务代理工厂bean进行创建,并配置前面的事务管理器属性及事务属性(值。数据访问对象的设计实现本系统中设计实现了一个通用的数据访问对象(DataAccessObjects)接口(IHibernateBaseDAO)和接口实现类(HibernateBaseDAO)。接口实现类则对这些接口的声明进行了实现。通过定义DAO组件,实现了数据访问与业务逻辑的分离,使用面向接口的设计原则降低了耦合度。接口实现类继承于HibernateDaoSupport类,这个类是Spring针对Hibernate下DAO类提供的一个工具类。Spring与Struts的集成本系统采用了服务定位器(servicelocator)的设计模式,把Spring与Struts进行集成。使Action类可以方便高效的调用业务逻辑层中方法。业务逻辑层对每一组业务逻辑Service方法提供一个ServiceLocator类,Action类在模块功能实现时,只需要引入对应的服务定位器获得所需调用业务逻辑接口。Spring与Hibernate的集成Spring与Hibernate的集成是通过对HibernateSessionFacotry的封装来实现的,使开发人员能更方便的使用Hibernate来操作数据。Spring通过统一的方式将数据持久层整合在一起,并且以统一的方式进行调用和事务管理,这样可以避免让具体的数据库操作渗透到业务逻辑层的代码中。系统的实现系统按照分层设计的思想,按照表示层、控制层、业务逻辑层、数据持久层分层次进行实现。下图是各个层次之间的关系。处理器映射HandlerMapping业务控制器ControllerproviderControlle