工做流是企业应用开发过程当中很是重要的一部分,几乎常见的管理、业务类系统都与工做流有千丝万缕的联系。java
工做流做为应用系统的一部分,根据角色、分工和条件的不一样,来解决信息传递路由、内容等级问题的核心解决方案。数据库
经常使用的工做流应包含节点管理、流向管理、流程样例等基础功能。编程
优秀的企业应用,其美观大方的系统界面是最基础的部分;数据库之间的信息交换是必备条件;而保证应用系统的功能性、契合性、稳定性和易维护性则是重中之重。架构
考虑到后期的维护性,能够采用模块化和结构化应用程序,这样在业务流程发生变化时(决策权改变、组织结构变更)能迅速产生全新业的务逻辑。并且,若是应用程序缺少完备高效的逻辑层(一般由工做流引擎实现),就会容易出现信息的路由错误和运行效率低下这一类问题。编程语言
在架构上,面向服务的体系结构,是一个组件模型,它将应用程序的不一样功能单元经过这些服务之间定义的接口和契约联系起来。接口定义采用中立方式进行,它独立于硬件、系统和编程语言。工做流引擎使得构建在这类系统中的服务,能够统一通用的方式进行交互。模块化
LeaRun标准工做流引擎spa
在早前,不少企业都迫切须要一套灵活的OA工做流机制,因而有愈来愈多人开始利用Domino来构建;后来当ASP.NET出现时,你们犹如醍醐灌顶通常,各集团高层都开始要求使用工做流引擎实现企业流程审批信息化。设计
基于市场的实际需求,咱们最开始开发了标准的ASP.NET企业级工做流引擎(LeaRun),并得到相关认证,各项指标及客户反映都不错,因此随后的java平台也延续了其设计思想:接口
首先定义流程步骤,主要包括:操做的接口地址、操做参数、操做类型(起始操做、中间操做)。其目的是为每一个操做设置好相关关系,在定义流程时便可选用设置好的流程步骤。路由
其次定义操做的参数,是除接口地址外的另外一必须项。
再次是定义流程操做步骤之间的关系。即定义一个流程中每一个操做步的前驱、后继的操做。
而后定义流程,其内容包括基本信息和流程定义中的各操做步骤、流转规则。流程基本信息无需赘述。流程步骤定义比较复杂,设置定义步骤类型(起始、中间、终结),入口步骤、出口步骤、通知模式、人员、角色、通知发送的内容。
以后定义涉及跳步的状况,如需根据不一样参数提交到相应的步骤进行审批,这里叫作流程步骤变迁规则设置。其须要设置的内容:原步骤、目标步骤、变迁方向(正/负)、条件规则(判断“与”、“或”运算)。接着设置参数、值、比较条件。
最后管理受权。该项较简单,判断被提交的人是否处于受权状态,从而进行相关处理。
上述所说是流程的大体逻辑,实际编写过程当中考虑的状况会更为复杂,如需案例参考,请搜索“力软”进行查看。
Windy.