美章网 资料文库 企业信息微型流系统设计范文

企业信息微型流系统设计范文

企业信息微型流系统设计

中小企业作为最大的企业群体,在企业信息化建设方面存在迫切需求的同时,也对信息化解决方案提出了独特的要求。一方面中小企业希望系统能灵活易用,支持快速部署。另一方面又希望信息化服务的价格比较低廉,而且大量传统中小企业对软件的高额开发和维护成本缺少足够的认识,这样在信息化解决方案中尽可能地使用一些轻量级的解决方案。

我们在长期的中小企业信息化实践中,逐渐采用了一套微型的工作流系统,在开发和部署轻量级的前提下,为中小企业的信息化保留了足够的灵活性和可用性。微型工作流系统同样提供了比较完整的工作流体系结构,主要包括:数据存储,流程引擎,表单生成器,可视化流程设计器。

一、数据存储设计

工作流系统的数据存储设计主要考虑流程数据存取模型,即如何组织流程模板中定义的数据,如何存取流程数据。设计的另外一个方面是设计工作流系统本身运行所需要的其他数据。

1.数据存储设计概述

数据存储设计中对工作流系统必不可少的数据表分为三个部分:

(1)组织机构表

(2)流程系统支撑表

流程注册表:存放目前系统中部署的流程及其信息;

流程任务表:存放系统中所有的流程任务;

通知信息表:存放系统邮件,系统通知等;

流程角色表:存放所有流程中的角色;

角色用户映射表:存放角色映射的具体用户。

(3)流程数据表

流程数据表:流程数据表用来存放已部署流程的流程数据;

签批数据表:存放所有流程签批数据。

2.流程数据存取模型

流程支持的数据类型很多,为了增加系统的灵活性,系统通过配置文件来决定数据类型在流程数据库创建时使用的数据字段类型。这个特性还可以规避数据库类型对系统的限制,在部署不同数据库时可以修改该配置文件来映射到该数据库的自动类型定义。比如使用Oracle数据库时可以如下定义:

text=varchar2(500)

list=varchar2(32)

其中等式左边是模板中使用的数据类型,右边是创建流程数据表时使用的数据库字段类型。

二、模板系统

模板是表达流程的载体,其表达能力,扩充能力和可读性在微型工作流应用中显得非常重要。我们采用XML标注语言作为模板描述语言。XML目前在数据交换,配置文件等应用方面应用非常广泛,几乎所有的开发平台都很好的支持XML,同时XML作为标注语言非常易于扩充,方便编辑和部署。模板系统包括两个大的方面:流转关系和数据描述。

为了方便说明,下面是截取的模板的DTD片段:

流程模板中定义如下关系:顺序,并行,条件分支,跳转。

Sequence:定义顺序关系。

Parallel:定义并行关系。

If:定义条件分支。

任务包括两种:task元素定义人工执行任务,agent元素定义各种自动执行的任务,而且可以通过agent元素扩展流程中的各种个性化需求。比如目前最常用的一些功能都可以通过定义不同的agent元素,引入到工作流定义中:操作外部业务数据,Email发送,短信提醒,文件操作等。

三、流程引擎

引擎作为系统运转的核心,我们可以将引擎系统分为如下三个主要部分:模板加载器,流程管理器,流程驱动器。

1.模板加载器

模板加载器的功能是分析模板文件,将模板配置的流程变为内部模型存储在流程管理器中。由于流程支持流转方式的嵌套,比如并行流作为顺序流的一个环节,而条件分支流又作为并行流的一个环节。引擎内部使用树结构作为流程内部的存储实体,下面是一个内部存储结构的示意图:

图流程内部存储结构(Inter-StructureOfWorkflowTemplate)

从图中可以看出,该存储结构是一种递归的形式,所以模板的解析算法也采用了递归的方法。

2.流程管理器

流程管理器主要完成已配置流程的内部模型维护和管理。系统启动时会有一个加载所有已配置模板的过程,在该过程中模板加载器会将所有的模板进行解析和转换,将转换完成的内部模型注册到流程管理器中,流程管理器保证和维护了流程模板的最新版本在内存中的映像。

3.流程驱动器

流程驱动器的主要功能是按照流程内部模型驱动流程实例流转。通过上述的内部模型存储结构可以看出,流程内部模型是一个树状结构,所有的叶节点是可执行环节,非叶节点是逻辑控制的容器类节点。

流程驱动器也采用单体模式设计,所有操作都是线程安全的。

四、表单生成器

表单生成器解决工作任务执行时如何创建给用户的工作表单的问题,主要包含两个大的方面:表单布局和表单数据操作。表单布局是小型工作流系统和大型工作流系统的重要区别之一。本系统的表单布局和大型工作流系统有如下重要区别:

1.用户不能自定义表单布局,仅仅能在模板中通过Style属性控制控件样式;

2.用户不能添加自定义的图形,图标等内容;

3.用户在流程部署后不能调整数据的顺序。

五、可视化流程设计器

本系统也提供了一个可视化的流程设计器。流程设计器为模板提供了一个图形化的编辑功能。虽然直接编辑模板是最方便快捷的方式,不过对用户的计算机水平有较高的要求,在一般的中小企业中没有专门的IT人员,所以需要提供一个可视化的流程设计器来简化模板的配置工作。

六、结束语

本文讨论了在中小企业的应用中可用的一种工作流系统设计。实践中我们采用.net平台完成了整个系统的开发,采用技术完成了表单生成器。整个系统的开发规模为10个人月,在实践中取得了很好的效果,下面是实践中的具体情况:

1.企业规模:600人

2.部署流程规模:40个

3.流程平均部署时间:3天

4.日均处理流程数:>120个

5.日均处理任务数:>1000个

用户通过部署工作流系统大大缩短了流程的部署时间,同时大大降低了开发和拥有成本。