工作流管理系统FlowStep的开发和改进报告人:孙达指导导师:张钢项目背景介绍工作流技术发展情况工作流管理系统简介工作流管理系统产生背景企业经营过程工作流的概念工作流管理系统工作流管理系统的主要产品工作流管理系统的产生背景提高办公效率和生产效率是提高企业竞争力的重要基础市场竞争的日益激烈要求企业对其业务过程能够进行快速的重组面向市场和客户要求企业采用过程管理提高其管理水平企业经营过程定义“一个经营过程是为了实现企业某个经营目标的一个过程,它在部分或者全部组织机构和人员的参与下,利用企业资源(包括所需的处理设备、通信设备、计算机硬件、软件等等),按照预先确定的规则,在参与者和组织机构之间进行文档、信息、任务的传递和处理(包括经营决策),从而实现预定的经营目标。”企业经营过程描述这个经营过程要做什么?即其目的或想达到的目标是什么?这个经营过程是如何完成的,有那些任务并经过那些步骤完成?这个经营过程有谁参与完成,有那些部门参与?(人)这个经营过程用了那些方式或手段来完成?(物)工作流的基本概念工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行。在实际情况中可以更广泛地把凡是由计算机软件系统(工作流管理系统)控制其执行的过程都称为工作流。工作流管理系统“工作流管理系统是支持企业经营过程高效执行并监控其执行过程的计算机软件系统。”为企业的业务系统运行提供一个软件支撑环境,非常类似于在单个计算机上的操作系统支撑的范围比较大、环境比较复杂,所以也有人称工作流管理系统是业务操作系统(BOS-BusinessOperatingSystem)。工作流管理系统的主要产品IBM的工作流产品Flowmark的应用IBM的MQSeriesWorkFlowActionTechnologies公司的MetroFileNet公司的VisualWorkFloJetForm公司的InTempo目前的工作基础已经完成的部分目前的工作基础对国内外工作流技术发展的了解几类工作流产品的参考华孚公司企业信息化工程,天津招生考试院中考远程录取系统软件项目抽象出企业业务流程的一般模型开发出了工作流管理系统FlowStep的框架工作流管理系统FlowStepFlowStep是一个基于Web的,采用Java技术实现的分布式工作流管理系统。1.基于Web2.Java实现3.分布式FlowStep的结构工作流管理控制台工作流引擎XML文件解析器工作流管理控制台工作流管理控制台是提供给用户的管理界面,通过web浏览器访问的web程序对业务流程进行建模管理业务流程执行进度参与业务流程的用户工作流引擎FlowStep系统的核心对过程定义中的任务执行部分解析执行分布式部署在不同的主机上一类人工任务型引擎六种自动任务型引擎(Script,Query,Or,Call,Condition,Input)XML文件解析器JavaApplication从工作流参考模型的角度看,属于工作流执行服务的组成部分。对表示业务流程和任务的XML文件进行解析,生成新的任务XML文件FlowStep的执行过程建模工具进行建模,过程定义为XML文件解析过程定义XML文件实例化该过程,生成过程实例文件解析过程实例文件,生成活动任务文件工作流引擎解析执行任务继续下面任务流程结束FlowStep的不足没有专门的建模工具支持任务类型少,还不能投入实际使用不支持用户自定义任务过程定义结构复杂,不方便对企业任务进行建模论文主要任务需要解决的问题建模工具Web程序,可以通过浏览器进行远程访问。JSP,JavaServlet实现对XML文件的解析。DOM,SAX包支持用户自定义任务过程定义例子Start(00000)Input(00001)00001End(00002)00002从用户处获得变量Y的值一个输入任务taskactivityid00001/activityidactivityname“Call”/activitynameactivitytypetype=“call”callprocessid00001/callprocessidcallvariablesvariablevariablenamey/variablenamereturnvariablenamey/returnvariablenam/variable/callvariablesoutvariablenamey/outvariablenameoutvariabletypeint/outvariabletypeouttransitionid00002/outtransitionid/activitytype/task增加支持的任务类型原有的六种任务类型(Script,Query,Or,Call,Condition,Input)增加And,Nothing,Show,Insert,Delete,Update类型任务开发相应的And,Nothing,Show,Insert,Delete,Update类型工作流引擎FlowStep外部逻辑为企业自主开发任务提供接口属于一类特殊任务(Custom),由专门的引擎解释执行支持分布式与任务模块无关外部逻辑的实现方法用会话EJB来进行任务开发。可以实现任务模块化和远程调用与任务EJB有关的信息以XML文件形式保存,供Custom类型工作流引擎解析两种实现策略两种实现策略规定EJB(任务)入口方法,引擎自动寻找这个入口方法,类似于Java和C中的main()用户自定义入口方法名,将方法名写入XML文件中,由引擎解析决定执行相应方法规定入口方法名任务开发中可以设置一个“基”EJB,其中实现入口方法,再由这个EJB去调用其他EJB,完成相应任务容易实现,结构清晰,只需提供任务EJB信息,过程定义简单对用户要求大,需按规定结构设计任务EJB用户自定义入口方法引擎解析出用户定义的方法名称,执行实现复杂,不但要求提供EJB信息,还要给出相应的方法名称对用户要求少,可以任意指定入口方法名称定义新的过程定义规范原有过程定义规范过于复杂根据业务流程,重新定义表示规范,简化过程定义形式难度很大,需要对系统核心进行大规模改造时间进度安排2003.5-2004.6阅读相关参考文献,准备各方面资料和数据2003.7-2003.12参与开发FlowStep系统2004.2-2004.3对FlowStep进行测试分析,找出不足,确定研究方向和解决对策;2004.4-2004.9完成FlowStep的建模工具部分开发;增加支持任务类型;开发FlowStep外部任务逻辑;规范化FlowStep结构,使其成为一个较为完善的工作流管理系统;2004.10-2004.12完成论文TheEndThanks!