论文导读:工作流的概念起源于办公自动化领域。构件和基于构件的软件开发是目前软件工程领域研究的热点。基于以上的考虑,本文探讨如何把构件技术应用到工作流系统的开发中去,分析了工作流技术,采用了构件技术对工作流系统进行了分析,在此基础上抽象出相关工作流构件,并讨论了如何构建工作流构件,继而搭建工作流系统。
关键词:工作流,构件,构件技术
1. 引言
工作流的概念起源于办公自动化领域。它是针对日常工作中的固有程序活动而提出的一个概念,通过将工作分解成己定义的任务、角色,并按照一定的规则和过程来执行分解出的任务,并对任务的执行进行监控,以达到提高办公效率的目的[1]。工作流是实现计算机辅助协同工作的工具,能实现工作流程的全部或部分自动管理功能。便于工作的规范化,便于人员、资源的合理配置、工作流程的监督、审查并能提高工作效率。各单位、企业的业务流程随着市场环境的因素需要较为频繁的改变,因此使用者对于工作流系统的灵活性、柔性和扩展性提出了更高的要求。构件和基于构件的软件开发是目前软件工程领域研究的热点。基于构件的方法使得大型分布式软件系统的开发和维护变得更为简单,可以提高软件的复用性、扩展性和软件开发效率。基于以上的考虑,本文探讨如何把构件技术应用到工作流系统的开发中去,分析了工作流技术,采用了构件技术对工作流系统进行了分析,在此基础上抽象出相关工作流构件,并讨论了如何构建工作流构件,继而搭建工作流系统。
2. 工作流技术和软构件技术
工作流通过将具体的工作分解成多个任务、角色,通过一定的规则和过程,监控、约束任务的执行。构件技术是将应用模型,分解成低耦合、高内聚的模块,通过各个模块之间的调用实现业务功能。两种技术都需要对应用进行分解,并易于结合,把构件应用到工作流系统的开发上能明显提高软件的复用性、扩展性和软件开发效率。
2.1 工作流技术
为了实现不同工作流产品之间的互操作,工作流管理联盟(WfMC)在工作流管理系统和工作流的体系结构等方面制定了一系列的标准。工作流管理联盟(WfMC)给出的工作流系统参考模型描绘了抽象的工作流管理系统的功能组成部件和接口,该参考模型能满足工作流系统的产品应该具有的主要功能特征。工作流管理联盟(WfMC)并没有对工作流系统的每个功能部件给出具体实现,它可以在不同的软硬件平台上采用不同的方法和技术来实现。WfMC定义的关于工作流的参考模型的主要组成部分和接口如图1[2]。

图1 WfMC工作流参考模型
其中工作流引擎是工作流参考模型的核心部分,它驱动工作流系统中数据的流动和所有流程的正常流转。
2.2 软构件技术
2.2.1 构件的定义
构件,是基于构件的软件开发中最基本的概念。论文大全。构件被定义为一个独立发布的功能部分,可以通过它的接口访问它的服务。整个定义强调了三个重要方面:第一,它将构件定义为一个可交付的软件单元;第二,构件会提供一些有用的功能,这些功能集合到一起能够满足一些软件需求。这些功能的设计符合一些设计准则。第三,构件通过接口提供服务。基于构件的开发方法中,强调把构件接口和构件分离,以满足构件之间实现可装配、可替换、可组合的需要。论文大全。
通过对工作流系统的分析和对构件的定义,在此我们从构件的组成角度将构件模型分为对外可见的规约部分和对外不可见的实现部分。所以,将构件模型定义为:
构件:=<构件规约,构件实现>
由于构件规约必须对外可见,所以由接口描述,包括构件供外部使用的接口(IP)和构件所需的外部接口(IR)。于是有:构件规约:=<IP,IR>
本文规范了软件构件的表示,对软件构件进行形式化描述:
软件构件形式化描述为一个三元组(description,specification,implementation),其中
description对构件进行描述,specification表示构件的规约,implementation表示了构件的具体实现。以上三个元素包含了构件标识、规约、实现方面的属性,各构件需按照这三
种属性进行描述。论文大全。
description用一个五元组来描述,描述的属性有id(构件编号),name(构件名称) ,function-description(构件功能描述),create-info(构件创建信息:作者,时间,版次),interface-define(构件接口的定义)
specification用一个二元组来描述,描述的属性有IP(构件供外部使用的接口),IR(构件所需的外部接口)
2.2.2 工作流构件的构建
构件是一个抽象的概念,并不局限于一个方法或者一组业务功能的集合。构件按照其构成可以分成不同粒度的构件,它们支持不同层次的复用[3]。
本文基于作者参与开发的OA系统的实际需要,对其中工作流模块的构件集合进行分类,并形成层次,按层次引用构件。从构件层次和类型的角度,描述各类型构件之间关系如下:
构件库 : :=(构件包,构件)
构件包 :: =(业务构件、数据构件、计算构件、展现构件、页面构件)
从上面的描述可以看出,构件库由两种元素组成,构件包可以包含一组构件,是构件集合中的最大组织单位,是构件的最大复用单位。构件是构件集合的主要部分,共分业务构件、数据构件、运算构件、展现构件、页面构件5种,如图2所示。外部模块对构件的引用采用按层访问的方式:构件包.构件。

图2 工作流构件层次及类型图
. 业务构件
业务构件是指用于完成多个运算逻辑的逻辑流程的相关构件
. 数据构件
数据构件指用于完成数据模型定义,管理和数据操作的相关构件。一些基础的数据操作都抽象出来。
. 运算构件
运算构件指系统中最底层的构件,用于完成特定的业务计算和程序集成的相关构件,运算构件中包含的运算逻辑是标准的Java方法。
. 展现构件
展现构件是指用于控制业务流转与页面交互的构件,在系统中展现构件采用.XML文件描述方式组装业务构件、页面构件,来描述一个完整的功能。
. 页面构件
页面构件是指用于完成用户交互界面生成及页面集成的相关构件,页面构件可以是标准J2EE展现层的构件,如JsP,Tag等。
3. 基于构件技术的工作流系统的构建
工作流系统把过程管理从应用软件中分离出来,抽象成层次分明的模块,减少了对特定应用环境的依赖,为软件复用提供了潜在的支持。采用构件技术对工作流系统进行研究,构建工作流构件,并搭建支撑工作流运行的平台,实现完整意义上的基于构件技术的工作流系统是可行的。
在2.2.2所构建的工作流构件的基础上,作者从软件层次的角度上,基于构件的应用架构又按照三层B/S结构和J2EE 的设计思想对工作流系统进行抽象形成了不同层次的构件元素,由上而下分为用户界面层、展现构件层、业务构件层、运算构件层、数据模型层。同时,引入了具备较强扩展能力的数据总线技术,实现各个层次之间的数据传递。各个构件层次的作用和特征描述如下:
. 数据模型层
数据模型层主要实现业务数据访问逻辑与企业系统数据源的分离,并同时提供统一的数据访问接口,降低了对数据库的依赖和偶合关系,提升了应用在数据层次的扩展能力。
. 运算构件层
运算构件层是对计算机处理操作的构件化封装。应用架构将计算机处理进行抽象形成一个独立的层次,通过基础构件库提供的丰富构件,基本上业务处理所需要的计算功能都己经提供了。
. 业务构件层
业务构件层主要实现应用逻辑的处理过程,其实现方式是通过构件组装环境将许多运算构件(基础性构件)组合成复杂的业务处理过程(应用逻辑),实现具体的业务逻辑。
. 展现构件层
展现构件层是连接用户界面与业务处理的中间层次,处理页面构件之间的交互。展现构件将用户提交的数据传递给相应的逻辑层构件进行调用,根据处理的结果,再定位到另一个用户界面,并把业务处理的结果传递到相应页面上。
从整体实现框架来看,系统的架构如图3所示

图3 基于构件的工作流系统架构图
应用架构的表示层为客户端应用支持构件。表示层的客户端应用支持构件是工作流系统提供给外部的接口,主要实现用户需要的系统功能,如用户工作流定义,用户列表查询等,是工作流系统的核心构件。应用层的工作流控制构件提供了工作流执行服务功能,例如:流程的实例化、流程的监控与管理等;数据层是指工作流运行服务构件采用的数据存储方式,使用关系型数据库实现,用来保存构件产生的各种信息。
4. 结束语
在软件工程研究领域,软件复用是提高软件生产效率和质量的有效途径,这已成为业内共识.软件构件技术是软件复用领域发展迅速的一个分支,己成为支持软件复用的核心技术。构件技术的不断发展与成熟为软件开发提供了新的方法学。对于存在大量可分离逻辑和高度可复用逻辑的系统,采用基于构件的开发方法来实现工作流系统是可行的。论文以作者参与过的办公自动化系统为研究背景,借鉴工作流技术方面的研究成果和己有工作流产品的成功设计经验,提出了把工作流技术和构件技术结合起来,以构造企业工作流系统的设计方案,分析了如何采用构件化的技术来架构工作流系统.
参考文献:
[l] 高建波.基于J2EE架构的OA系统的工作流的建模与研究,西安电子科技大学,硕
士论文 2005.
[2] Workflow Management Coalition:
The workflow ReferenceModel (WfMC-TC00-l003Issuel.l),1995.
[3]AlanW.Brown,大规模基于构件的软件开发.北京:机械工业出版社,2003.
|