脑浆门:基于工作流技术的构件模型研究 - 基于整合的业务流程管理CI-BPM - CSDN博客

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 02:43:59
基于工作流技术的构件模型研究 收藏
基于构件的软件开发方法是软件复用的有效手段。构件是一个带有契约化接口和显式上下文依赖的组装单元,它能被独立发布且可以被第三方组装?。构件模型是对构件本质特征及构件间关系的抽象描述,它关注构件的接口,封装构件的实现细节,是构件组装的依据和保证,并为构件的不同生产者和使用者提供一个为大家所接受的一致性描述悼J。当前的构件是基于面向对象的方法构造的,主要关注实体间通信机制的刻画,不适合建模实体间相互作用的规则和动态过程,导致了构件在业务流程建模上能力不足p1。工作流技术是当前实现业务流程建模的有效技术手段。
  1 构件模型
    至今,在学术界和产业界已出现多种构件模型。按构件模型所要解决的问题不同,可分为描述型、规约型和实现型。描述型构件模型以构件的管理为目标,通过综合的方式描述构件,代表性的有REB00T、ALDAF、uDM和BIDM模型H1。它们并不关注构件如何实现业务流程功能。规约型构件模型以描述构件的功能(行为)为主要目标,代表性的有3C、RE—S0LVE和JBCOM模型都是基于面向对象的思想设计的。侧
重于构件功能接口建模,并没探讨构件业务流程建模方法。实
现型构件模型以如何具体实现构件为主要目标,通常将业务实体问相互作用的规则和动态过
程通过硬编码的方式封装成对象的方法,当业务流程发生变更
时,往往需要对构件进行代码级上的修改。
    本文提出的工作流构件模型是一种与JavaBean/EJB实现型模型相容且具有构件描述功能的规约型构件模型。
    WCM构件模型从下列lO个方面来对构件进行建模。
    构件描述:表示构件的基本信息,多采用名词来表示。
    构件接口:表示构件的输Ⅳ输出接口规范。
    构件实现:表示实现构件功能的构件体的位置信息。
    构件结构:表示复合构件的组成方式。
    可配置属性集:表示构件可通过配置改变的属性信息。
    文档信息:表示构件的文档位置信息。
    刻面信息:表示构件用于检索的分类属性。
    领域特征:表示领域构件所具备的领域特征属性。
    工作流规约:表示实现业务流程功能的工作流构件的业务流程定义和实现方式。
    待扩展项目:表示构件的扩展属性。
    WCM将构件分为工作流构件和非工作流构件(传统面向对象技术构造的构件)两类。工作流规约属性是对典型构件模型的工作流扩展,是构件工作流特性的集中体现,当且仅当构件是工作流构件时才具备该属性。
  2 工作流过程建模理论分析
    2.1 工作流过程定义元素分析
    工作流技术利用信息技术为企业的经营过程提供了一个从模型分析、建立、管理、仿真到运行的完整框架,是实现业务流程管理与控制的一项关键性技术。利用工作流技术开发应用系统的典型方式如下:业务人员依据工作流过程定义规范;定义业务逻辑和规则,专业开发人员开发具体的应用逻辑;最后工作流引擎通过解析业务逻辑和规则,按特定顺序调用业务流程应用逻辑,最终实现业务流程的自动化。业务逻辑和规则的定义过程即利用工作流技术对业务流程建模的过程;业务逻辑和规则的定义在工作流技术中称为工作流过程定义。
    工作流管理联盟认为工作流过程定义(wo舳ow pmces8definition)是对工作流的静态描述,是对业务流程中所有信息的抽象表示。工作流过程定义¨1通常包括过程描述(descrip—tion)、业务流程中的所有活动(activity)、活动之间的导航规则、参与者、被调用的应用程序(application)以及工作流相关数据(data)六个元素。工作流过程定义各元素的关系如图l所示。      过程描述是对工作流过程惟一标志符、名称和解决的问题等信息的描述;活动表示需要由一些相关资源处理,或者由计算机应用程序处理的任务集合;导航规则用于将活动相互联系起来,实现活动之间的导航,表明活动之间的逻辑跳转顺序和条件。参与者描述了在过程定义中各个活动所需要的参与者;被调用的应用程序表示各个活动执行时所需的外部应用,由活动触发执行;工作流相关数据是指那些在流程运行期间,各个流程实例内创建及使用的数据,这些数据可被参与者、应用程序、活动和导航规则所访问。
    2.2工作流过程控制分析
    工作流过程定义当中,活动的触发和流程跳转过程如图2所示。首先,由参与者触发一个活动,被触发的活动调用实现相应功能的应用程序,实现具体业务功能,并由工作流引擎更改与活动执行结果相关的工作流相关数据;其次,活动执行完毕后,工作流引擎解析导航规则,导航规则读取工作流相关数据,获取上一个活动的执行结果,判断下一个可由参与者触发的活动路径。      工作流过程定义通过导航规则控制活动之间的执行顺序,实现对业务逻辑的控制。对于业务流程之间的嵌套,则通过引入一类特殊的活动——子流程来实现。子流程是一类特殊的工作流过程定义,可映射成其他工作流过程定义中的一个活动节点。当执行到子流程节点时,触发子流程执行,待子流程执行完毕,回到父流程继续执行下一个节点。通过子流程机制,工作流技术实现了工作流过程定义之间的嵌套和连接。活动与子流程之间的关系如图3所示。    3 基于工作流技术的构件模型建立
    3.1 设计原理
    本文从构件的独立性、封装性和组装性哺1这三个需求出发,对工作流过程定义模型元素进行分析,得出工作流过程定义模型在构件中的实现形式。本文称实现具体业务流程功能的构件为业务流程构件。构件的独立性要求业务流程构件作为一个独立的实体,应包含完成业务流程功能的所有元素,可独立运行。工作流过程定义组成元素中的参与者、应用程序、活动、工作流相关数据和导航规则是完成一个业务流程所必备的元素,因此,在业务流程构件模型当中将引入这五个元素。而过程描述所拥有的工作流过程惟一标志符、名称和功能描述等属性,可作为检索业务流程构件的辅助依据,因此也将其引入构件模型,在构件描述属性中表示。
    构件的封装性要求业务流程构件仅需提供构件的基本控制接口,屏蔽构件实现细节。业务流程构件仅以web服务的形式对外提供启动业务流程和获取流程执行结果的操作接口,而实现业务流程功能的各种构件组成元素对于构件使用者是不可见的。构件的组装性要求业务流程构件之间可进行组装。活动是工作流过程定义中最基本的组装功能单元;导航规则是用于组装活动的基本元素;流程是一类能实现完整业务流程功能的单元。被映射成活动的流程称为子流程,是大粒度的组装功能单元。因此,分别定义代表活动、导航规则和流程元素的构件。3.2 模型定义
    经过上述对工作流过程定义模型中数据元素、流程控制方法,以及业务流程构件的独立性、封装性和组装性的分析,得出工作流构件的定义。定义1 工作流构件是一类包含工作流过程定义元素,运行时需要工作流运行环境支撑的业务流程构件。工作流构件可分为流程构件、单活动构件和导航规则构件三类。定义2流程构件是能够实现完整业务流程功能,封装了业务流程的定义和相关应用程序实现体的工作流构件。定义3单活动构件是仅能够实现业务流程中的一个活动功能,封装了业务流程的一个活动定义和活动相关应用程序实现体的工作流构件。定义4导航规则构件是能够实现业务流程活动跳转功能,仅封装活动定义和活动间导航规则,不指定活动具体实现的工作流构件。      流程构件和导航规则构件均可通过将活动定义映射成其他工作流构件的方式引用其他工作流构件,实现工作流构件间的组装。但流程构件是在特定业务流程定义下对构件进行组装,而导航规则构件则是从一般的活动跳转逻辑出发对构件进行组装。三类工作流构件间的关系如图4所示。工作流构件与非工作流构件的区别在于,工作流构件实现了工作流规约属性,并在构件描述中表明了构件类型为工作流构件。为了提高构件模型描述文件的可读性,工作流规约的详细信息以工作流规约文件的形式单独表示。在构件模型描述中仅指定工作流构件类别和工作流规约文件的文件名。下面给出工作流规约主要元素的BNF范式描述:
    工作流规约::=(工作流构件类别>(工作流规约文件名)
    工作流规约文件:.=<流程构件规约)I(单活动构件规约)I(导航规则构件规约)
    流程构件规约::=<公共属性){活动}{导航规则}{参与者}{应用程序}{工作流相关数据}
    单活动构件规约::=(公共属性)<活动>{参与者}(应用程序){工作流相关数据}
    导航规则构件规约::=<公共属性){活动}{导航规则}{工作流相关数据}
    活动::=<公共属性){参与者标志符}<应用程序标志符>{活动输入参数}{活动输出参数}
    导航规则::-(公共属性)(条件)(起始活动标志符)(结束活动标志符)
    参与者::=(公共属性)(参与者类型)
    应用程序::=(公共属性)(应用程序类型){应用程序参数}
    工作流相关数据:.-(公共属性)<数据类型)[缺省值]
    公共属性::=<标志符)[名称][描述]
    其中::=表示定义为;尖括号()内包含的为必选项;方括号[]内包含的为可选项;花括号{}内包含的为可重复。至无数次的项目;l表示在其左、右两边任意一项;双引号中的字(“word”)代表这些字符本身。为了便于对构件模型进行形式化描述,在wcM构件模型BNF范式的基础上,wcM利用xML语言作为构件模型描述文件和工作流规约文件的表现形式。
    3.3 物理实现
    工作流构件的物理实现方式如图5所示。工作流构件以Web服务的形式对外提供触发构件开始运行(st甜)和获取构件运行结果(getResult)的操作接口。这个方法调用工作流引擎提供的接口,解析工作流规约文件术.cwf,从而实例化一个工作流构件对象,发起一次业务流程运行。如果业务流程运行结束时有返值,getResult将返回工作流构件的运行结果,为工作流构件的组装提供工作流相关数据。实例化后的工作流构件通过工作流引擎解析工作流规约文件.cwf,调用内置资源实现业务功能。内置资源是指实现活动功能所需要的应用程序和数据结构,有JavaBeaIl、EJB、web senrice和xML文件等具体实现形式。co血g.xIlll是工作流构件的参数配置文件,用于配置构件的系统运行参数。非工作流构件对工作流构件的调用是通过调用工作流构件以web服务形式提供的构件基本操作接口实现的;工作流构件对非工作流构件的调用是通过对工作流规约文件s.cwf进行配置实现的;工作流构件对工作流构件的调用是通过对工作流规约文件.cwf进行配置实现的,配置方法是将工作流规约文件*.cwf中的活动映射成被调用的工作流构件。工作流构件运行所需要的工作流运行支撑环境,通过在应用系统运行环境中加入构件化的工作流引擎来提供。
    3.4 实例研究
    通过领域分析获取人事干部任免流程的活动图,为了直接将活动图映射成为工作流构件,在uML活动图中添加活动参与者元素。将活动图中的参与者、活动与活动之间的关系分别映射成工作流构件的工作流规约文件当中的参与者、活动和导航规则;工作流构件的相关应用程序可以是以构件、web service等形式存在的程序;将活动可能用到的输入输出参数定义成工作流相关数据。干部任免流程活动图与工作流规约文件元素之间的映射关系如图6所示。干部任免流程工作流构件物理实现如图7所示。      4 工作流构件模型的意义
    与传统的构件模型相比,工作流构件模型具有下列优点:
    a)提高了业务流程构件变更的灵活性。传统的业务流程构件通过硬编码或连接子编码的方式控制各个业务功能之间的跳转。当业务流程需要变更时,往往需要在代码级上对业务流程的实现进行修改。而工作流构件将业务功能的执行主体与实现代码进行了分离;将控制流程跳转的元素抽象成工作流相关数据和导航规则两类元素,实现了业务功与控制逻辑分离的目标。因此,当业务流程需要变更时,仅需要更改相应的参与者、应用程序、工作流相关数据定义或导航规则配置,无须对整个流程的实现进行修改。
    b)丰富了业务流程构件的组装形式。传统业务流程构件的组装一般通过编写连接子代码或通过调用构件输入/输出接口实现构件的组装。而工作流构件只需将构件中的活动定义映射成特定的工作流构件,即可实现工作流构件间的快速组装。
    c)降低了大粒度业务流程构件的复杂度。由于引入了子流程的概念,并由此产生了将活动定义映射成特定的工作流构件的组装机制,使得复杂的业务流程构件可以轻易地被拆分成多个更为简单的子流程构件,而子流程构件仍然可进一步细分为更简单的子流程构件,实现了对大粒度业务流程构件复杂性的分解。
  5 结束语
    本文将工作流中业务流程建模技术应用到构件模型当中,提出了工作流构件模型的概念。经过在其他子系统中的应用,证明了工作流构件具有较为灵活的流程建模能力。本文仅完成了构件模型的设计和物理实现,今后还将研究工作流构件的识别和自动化组装方法。发表于 @ 2009年03月11日 15:12:00 | 评论( 0 ) | 编辑| 举报| 收藏 旧一篇:业务流程再造理论的起源、演进及发展趋势 | 新一篇:通过LotusScrpit调用IE COM的方法
查看最新精华文章 请访问博客首页相关文章
工作流系统的开发理解InforFlow工作流模型工作流系统开发体系(转摘)工作流术语和定义jBPM可扩展性分析(针对jBPM3.0)工作流介绍什么是工作流工作流管理系统的概念介绍本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ihri6988/archive/2009/03/11/3980384.aspx