APP下载

基于业务表单松耦合的工作流架构设计与实现

2016-09-12郝赫王国娟李天宇李猛

电子设计工程 2016年4期
关键词:表单网关页面

郝赫,王国娟,李天宇,李猛

(1.国网信通产业集团 北京中电普华信息技术有限公司,北京 100192;2.国网上海市电力公司信息通信公司 上海 200436)

基于业务表单松耦合的工作流架构设计与实现

郝赫1,王国娟1,李天宇2,李猛1

(1.国网信通产业集团 北京中电普华信息技术有限公司,北京 100192;2.国网上海市电力公司信息通信公司 上海 200436)

为了有效地控制表单(元素)在工作流节点的可见性,减少维护或传输表单副本的数量,通过对表单模块化的定义,提出了一种基于业务表单松耦合的工作流架构。该架构由三个功能模块组成:表单模块、流程模块和基础权限模块。模块独立协作,基础权限模块通过页面权限和页面字段权限控制表单(元素)在流程节点的可见性。该架构已经在实际生产中得到应用,最后通过对工作流表单实现流程的剖析和实例讲解,验证了该架构的有效性、便捷性和灵活性。

工作流;业务表单;模块化;可见性

工作流管理联盟 (Workflow Management Coalition,WfMC)给出了工作流定义。工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列预定义的规则来传递文档、信息或任务,并使得此过程在不同的执行者之间自动传递与执行[1]。随着Web系统广泛应用于社会各行业,尤其是对各个行业的信息管理产生了举足轻重的作用。这就要求工作流不仅能够传递Web表单信息,而且能够定制Web业务表单以及控制Web表单元素的可见性。为了满足上述要求,本文首先基于业务表单基本定义,从表单和工作流结合的角度,重新对表单进行了定义。然后从新定义中,引出了一种松耦合的工作流架构,该架构不是简单地通过副本的思想解决表单元素的可见性[2-3],它通过模块化的思想,把控制表单可见性功能提取出来,组成一个基础权限模块,用来控制表单(元素)的可见性,同时它包含组织机构、用户、角色、资源等信息,为表单模块和流程模块的运行提供基础支撑。

1 表单定义

1.1 基本定义

定义1 表单F={fi|i=1,2,…,M}由表单域fi组成(在工作流业务系统中,表单域对应每个工作流节点),fi={en|n=1,2,…,N},en表示表单中的基本元素,如文本框、下拉框、复选框等元素[4]。

定义1仅从业务表单的角度给出定义,下面将基于表单基本定义,从表单和工作流结合的角度,重新定义表单。

1.2 模块化定义

定义2 表单F={fb,fp,fi|i=1,2,…,M},其中fb为业务表单域,fp为表单(元素)访问权限域,它们完全独立于流程,fb={en|n=1,2,…,N},en表示业务表单域中的基本元素,fp={fo,fu,fr,fe},其中,fo,fu,fr,fe分别表示组织机构、用户、角色、资源等,组织机构用于支撑整个工作流业务系统的组织架构,用户就是工作流业务系统中实际使用者,角色与资源相结合可以控制用户对工作流业务系统的操作以及表单元素的可见性。fi为流程相关表单域,也称为相关数据域,它是工作流规则判断参数,工作流路由选择的依据。fi={fcontex,farg},其包括流程上下文和业务变量。fcontex包括流程实例、活动实例、工作项等,业务变量farg决定路由的选择。

定义2中,将表单分为3个部分:业务表单域、表单(元素)访问权限域和流程相关表单域。业务表单域只包含业务元素,且整个业务流程中只有一个业务表单域,称其为完备业务表单域,它包含了所有需要在流程节点输入的信息,其元素在各个流程节点的可见性通过表单(元素)访问权限域实现。表单(元素)访问权限域通过把资源(包含表单资源和表单元素资源)分配给角色,然后把不同的角色赋予相应的用户,就可以控制业务表单(元素)的可见性。这样只需要在数据库中存储一份业务表单域,不需要存储或传递多个副本[2-3],可以避免因为数据库字段值修改造成的数据一致性问题。同时它把业务表单域和表单域元素的可见性进行了物理分离,逻辑上更加清晰。流程相关表单域中的流程上下文归属于流程一侧,业务变量不需要存储,可以从业务表单域中直接或者通过运算提取出来,流程相关表单域信息可以通过API或者Web Service在表单和流程之间传递。

基于定义2,通过将表单划分为3个部分:业务表单域、表单(元素)访问权限域和流程相关表单域,从而引出了一种基于业务表单松耦合的工作流架构[2-3],它包含 3个功能模块:表单模块、流程模块和基础权限模块。表单模块用于业务表单的建模、展示、调度和持久化等;流程模块用于工作流的建模、展示、调度、监控和持久化等;基础权限模块作为整个工作流架构的基础服务层,为表单模块和流程模块提供元数据(组织机构、用户、角色、资源等)支撑,同时具备控制表单(元素)在流程节点的可见性功能。

2 工作流架构

由图 1工作流架构[6-9]和表单定义2可知:把工作流表单系统分成3个独立的功能模块:流程模块、表单模块和基础权限模块。业务表单域归属在表单模块;表单(元素)访问权限域fp归属在基础权限模块,fp组成部分fo,fu,fr,fe分别对应基础权限模块的组织机构、用户、角色、资源等;相关数据域fi归属于流程模块和表单模块的交互信息,流程上下文fcontex来源于流程模块的建模信息,业务变量farg来源于表单模块的实时运行信息。

流程模块主要控制业务表单在各个流程节点的流转,它包括规则引擎、路由引擎、流程引擎等功能[10-11]。规则引擎是路由引擎工作的基础,它从流程上下文、业务变量等相关数据中获取必要的数据作为决策数据源,然后通过流程模型预定义的规则表达式计算出结果,最后把结果传递给路由引擎。路由引擎根据规则引擎计算结果和路由网关的类型(单一网关、并行网关、多路网关等),最终做出路由选择。流程引擎负责对业务流程解析、调度、执行,在规则引擎和路由引擎基础上,驱动业务表单在不同流程节点流转,它包含流程的启动、挂起、结束等功能以及工作项的新建、拒绝、撤回、代理、委托、改派、暂停、取消等功能。

图1 工作流架构Fig.1 Workflow architecture

表单模块提供业务表单制定、数据录入与展示界面,同时提供业务逻辑实现、数据持久化的接口功能[12-13]。表单模块只负责业务信息管理,流程流转全部交付给流程负责,交互信息(流程上下文、业务变量等相关信息)通过API或者Web Service接口实现。表单(元素)的可见性交付给基础权限模块负责。

基础权限模块控制权限分为两个层次:页面权限和页面字段权限。页面权限是用来控制整个页面的可见性,而页面字段权限则是控制页面里面的字段的可见性。页面权限是通过页面资源和角色[14-15]来控制的,页面权限的级别分为可见与不可见两种。页面字段权限是通过资源和标签来实现的,页面字段权限级别分为不可见、只读和可编辑3种。当用户A、B、C都拥有页面资源的角色时,他们就都可以查看到整个页面,页面字段权限在页面每个字段前添加<bsp:permit id=”<%=attribueName%>”permissionType=”<%=value%>”default PermissionType=”<%=defaultValue%>”>标签。标签<bsp: permit>的id值为数据库字段名,权限类型permissionType值有3个选项invisible、read-only和editable,基础权限模块根据页面字段权限分配结果,不同页面字段权限的角色获取不同的值,最终实现页面字段权限的控制。为了减少页面字段权限分配的繁琐工作,标签属性defaultPermissionType可以统一为表单设置一个默认值。当permissionType值为空时,默认值起作用;否则permissionType起作用。

3 系统应用

下面给出运用图1工作流架构实现工作流建模和业务表单定制以及表单(元素)可见性控制的过程。

步骤1对流程进行建模,根据实际的业务场景,确定活动的数量、网关类型以及流程规则,绘制出工作流程图。流程建模包含四个要素:事件、活动、网关和连线。事件包含(消息)开始事件、结束事件和终止事件等,(消息)开始事件是流程启动的入口点,结束事件表示一个流程分支的结束,终止事件表示终止整个流程的执行,即所有正在执行的活动均会被终止。活动包括人工活动和自动活动等,它是流程图中的一个流程节点,人工活动表示一个人机交互的业务处理单元,自动活动表示一个由系统自动完成的业务逻辑或第三方提供的服务。网关就是路由选择,分为单一网关、并行网关和多路网关,它们的区别在于路由选择的情景不一样,单一网关具有排它性,同时只有一条路径是可行的;并行网关是指多条路径同时满足条件时,才能通过;多路网关是指有一条路径满足条件时,就可以通过,它和单一网关的区别是多路网关不具有排它性。连线就是把事件、活动、网关连接起来,构成完整的工作流程图,每条连线包含流程规则。

图2 工作流业务表单实现流程Fig.2 Workflow processes to achieve business forms

步骤2确定每个活动节点的表单域。即确定每个活动节点上的表单元素以及可见性。每个活动节点对应一个表单域。

步骤3合并表单域。互斥表单域是两个及以上活动节点的角色(或用户)相同,且表单元素的数目或者可见性不同。首先,列出这个工作流程图中的所有角色(或用户),相同的角色(或用户)合并为一个;其次,分别列举出各个角色(或用户)的互斥表单域,互斥表单域的个数一般为该角色(或用户)的活动节点数据;再次,求出所有角色(或用户)的互斥表单域数目的最大值,具有最大互斥表单域数目的角色(用户)称为基准角色(用户),基准角色(用户)的表单域称为基准表单域;最后,把其它角色(或用户)的互斥表单域合并到基准表单域中,合并的原则是就近原则,就近原则有两层含义:一是在工作流程图中到基准表单域节点的物理距离(单位为活动节点个数)近;二是与基准表单域页面字段权限属性(不可见、只读和可编辑)相近。所有角色(或用户)互斥表单域合并完后,就形成了扩展表单域,扩展表单域的数目等于基准表单域的数目。

有种比较典型的工作流场景:工作流程图不具有互斥表单域,即工作流程图各个活动节点的角色(或用户)互不相同。如图3合并表单域中的右边一条分支,其处理如图 3所示,把所有活动节点的表单域合并成一个扩展表单域。

图3 合并表单域Fig.3 Consolidation form fields

步骤4按照模块化定义处理表单域。所有扩展表单域的表单元素的集合构成业务表单(注意不包含表单元素的可见性),即定义2中的fb业务表单域。业务表单的可见性通过访问权限域控制,其原理是通过页面权限和页面字段权限实现,页面权限控制的对象就是一个扩展表单域,即扩展表单域是页面控制权限的最小单元,而同一个扩展表单域的表单元素可见性通过页面字段权限来控制。相关数据域中的业务变量来源于工作流程活动节点表单域,而活动节点表单域就是扩展表单域在该活动节点角色上的映射。

步骤5由步骤4模块化定义处理表单域后,输出结果分为3部分:业务表单、访问权限和相关数据。业务表单生成持久化模型;访问权限通过页面权限和页面权限字段来控制表单(元素)的可见性;查看相关数据域中的业务变量是否影响到工作流程图流程规则和路由选择,如果有影响,则修改被影响的工作流程图中元素(活动、网关和连线等)的属性,完善工作流程图。

4 结束语

文中从表单和工作流结合的角度,基于表单的基本定义,对表单物理含义进行深入研究后,给出了表单的模块化定义,进而引出松耦合的工作流架构。该架构不仅能够传递Web表单信息,而且能够定制Web业务表单以及清晰简便地控制Web表单元素的可见性。本文最后给出了该工作流架构实现上述功能的流程图以及实例。另外,文中流程架构的基础权限模块可以与流程模块和表单模块分别组合,形成工作流平台和业务表单平台。

[1]Workflow Management Coalition.Workflow management coalition terminology and glossary[R].Technical Report,WfMC2 TC2101 l,Brussels:Workflow Management Coalition,1996.

[2]唐文忠,莫伟栋.基于共享模型的工作流表单系统设计[J].北京航空航天大学学报,2008,34(4):391-395.

[3]陈丹,王勇,王瑛.基于工作流的科研协同平台的研究与实现[J].计算机工程与设计,2014,35(3):791-797.

[4]丁苍峰.轻量级工作流引擎架构设计[J].电子设计工程,2011,19(6):20-22.

[5]孙承爱,王蕊,王晓雯.基于Flex的动态工作流建模工具的设计与实现[J].计算机应用与软件,2013,30(9):134-136.

[6]陈儒,肖刚,张元鸣,等.基于事务规则的面向服务工作流模型研究[J].计算机应用与软件,2014,31(6):5-9.

[7]徐瑞军.基于XForms的所见即所得的电子表单工具设计与实现[D].北京:北京交通大学,2008.

[8]张靖康,石宇良,王海豹.扩展的RBAC权限管理模型的设计与研究[J].电子设计工程,2013,21(3):50-53.

Design and implementation of the loose coupling workflow architecture based on business form

HAO He1,WANG Guo-juan1,LI Tian-yu2,LI Meng1
(1.Beijing China Power Information Technology Co.Ltd,Beijing 100192,China;2.Information and Communication Company,State Grid Shanghai Municipal Electric Power Company,Shanghai 200436,China)

In order to control the visibility of the form (element)in the workflow nodes effectively and reduce the number of copies of the form maintained or transferred,a business form loose coupling architecture of workflow is put forward based on the modularized definition of the form.The architecture consists of three functional modules:the form module,process module,basic permissions module.Three modules are independent and collaborative.Basic permissions module controls the visibility of the form (elements)through the page (field)permissions.The architecture has been applied in the practical production.Finally effectiveness,convenience and flexibility of the proposed architecture is verified through process analysis and instance interpretation of workflow implementation.

workflow;business form;modularize;visibility

TP

A

1674-6236(2016)04-0137-03

2015-04-02 稿件编号:201504011

郝 赫(1980—),男,北京人,硕士,高级工程师。研究方向:电力信息化建设。

猜你喜欢

表单网关页面
刷新生活的页面
电子表单系统应用分析
基于图表示和匹配的表单定位与提取
信号系统网关设备的优化
浅谈网页制作中表单的教学
移动页面设计:为老人做设计
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计
动态表单技术在教学管理中的应用*