组件化服务与业务流程提取模型

发布-流程管理网 | 查看- | 发表时间-2009-10-27

黄俊峰 全春来 周翔 来源:万方数据 e-works

0 引言
为了使得客户业务需求和软件实现一致,软件开发团队力求找到正确的适合团队的软件开发过程。开发团队必须将当前客户业务需求映射成一组技术问题、操作问题、组织问题相互关联的组件。因为客户业务在不断地变化,需求变化有多快,软件变化就应该有多快,为达到这个目标,开发团队需要一定的工具和分析方法支持。软件工程已将软件开发过程划分为不同阶段,规范了各阶段的任务。但是,各个软件组织在软件分析与设计方法论上并不统一,都存在一套符合自身组织特点的分析与设计方法论。
软件分析与设计经历了面向过程、面向对象、面向组件和面向服务4个阶段。
本文从面向服务分析与设计(SOAD)原理的角度出发,着眼于为软件开发团队提供需求分析、服务与业务流程提取的方法,以使得软件系统能够灵活应对客户不断变化的业务需求的目的。
1 面向服务分析与设计原理
11 SOA
面向服务的体系结构(service.orientedarchitecture,SOA)是一个软件架构模型,它将应用程序的不同功能单元(称为服务)通过之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。这种具有中立的接口定义(没有强制绑定到特定的实现技术上)的特征称为服务之间的松散耦合。
SOA的实现必须实现松散耦合、粗粒度、位置和传输协议透明3个基本要素。
从近几年SOA项目实现的经验,各个软件组织总结定义了适合自己的面向服务分析与设计方法,比如IBM的面向服务的建模与架构B1(service oriented modeling and architecture,SOMA)等。不难看出,这些组织所谓的面向服务分析与设计原理脚具有共同特征,那就是组合了诸如面向对象的分析与设计(object-oriented analysis and design,OOAD)和业务流程建模(business process modeling,BPM)这样的现有开发流程和表示法,并补充了一些新的理论。面向服务分析与设计(SOAD)的主要内容是:领域分析、服务粒度设计、标识和定义服务、服务分类和聚合、服务获取和知识代理、流程中间相遇。
12软件组织面临的实际问题
经过近几年的发展,SOA从提出概念阶段发展到初步实践阶段。各大软件厂商、标准组织不断推出相关的规范、标准、产品,在很大程度上推动了SOA的发展、完善了SOA。但是,软件组织还是面临着不少问题。虽然SOA的思想在很早就已经提出,但是其真正的发展还是从近几年开始的。到目前为止,世界上不同软件厂商对其的理解和定义还未达到一致。这样导致SOA没有统一的理论。尽管有关SOA的各种规范、标准正如春笋般推出,但是离SOA形成成熟、统一的理论还有很大距离。这是因为SOA的发展、完善,不仅需要技术标准的支持,还需要方法论的指导。在SOA的方法论领域,也就是面向服务分析与设计方面,也是发展程度不一样的情况,各大软件厂商根据自身对SOA的理解,吸取之前软件开发分析设计的经验,归纳总结出适合自身实践的方法。这些方法在一定程度上还不完备。
2 组件化服务和业务流程提取模型(CSBPEM)
为解决上述提及的问题,通过对软件分析设计理论和方法的深入分析,在服务提取方法中加入图形元素,应用分而治之思想,对业务流程进行分层分析,将系统服务的提取过程规范化,从而提出组件化服务和业务流程提取模型(component service and business process extraction model,CSBPEM)。通过使用这个模型,降低面向服务软件系统的分析设计难度,提高设计分析的直观性、层次性、规范性。
21 CSBPEM简介
组件化服务和业务流程提取模型(component service and business process extraction model,CSBPEM)是在软件设计过程中,基于需求分析得出业务流程,将业务流程分析分解、抽取服务组件的模型。在这个模型中,横向表示业务能力,纵向表示责任划分。横纵向交汇点为一个组件服务。对于相同的组件服务,后一个组件服务通过q”标识,表示可以重用之前的服务,如图l所示。
22 CSBPEM详细说明
下文详细说明CSBPEM中各种元素的含义。(1)责任,是一个简单用来区分服务组件在系统中的作用的框架,它包括表示、控制、执行3层。表示,是指该服务组件在系统中起到用户接口的作用。这个层面上的组件为其它组件提供信息展示界面,以及获取人机交互的信息。这些组件可能触发其它业务组件的运行。一般,软件开发环境集成各种用户界面接口,不用系统为其单独开发,当然,有一些特殊用途的表示层服务组件还是需要专门开发的。控制,是指流程控制。这些位于中间的服务组件的职能就是成为“表示”和“执行”之间的调度和制约,就如同交通灯似的,规划车辆的通行方向。控制同时也是系统业务流程的实现。根据SOA的原理,业务流程也是一种服务组件,大的业务流程还能够继承小的业务流程。因此,控制中的一些服务组件可以由若干子服务组件构成。
执行,是指完成一定功能的业务行为。它们是系统的最小业务活动,是系统最宝贵的资产,它们能够被其它组件或者终端客户重复使用。这个层面的组件是系统复用程度最高的部分。
 (2)业务能力,业务能力是对提供给用户的业务价值种类的一种描述的架构。这种描述应该简单明了,符合逻辑。构成的描述应该符合所有活动的实际,而且这些活动应该相互独立。因此,模型中的每一列为不同的业务流程。他们在分析时可以单独进行,亦可以与之前分析过的业务流程进行比较,借鉴分析,以达到查遗补漏甚至更正之前的设计。业务能力应该因系统的差异而互不相同。
 (3)服务组件,一个服务组件存在的目的是由它能够为其它服务组件创造的价值来决定的。每个服务组件都会完成互不相同的活动任务来达到它的业务目的,并且与其它服务组件合作,完成某一特殊的业务。独立的业务情况一样,每个服务组件提供业务服务的同时也接收业务服务。在本模型中,已经定义过的服务组件通过¨”标识。这样在分析整个系统之后,将所有没有带“.”的服务组件列成列表,形成最终的服务候选列表。
23 CSBPEM使用过程
根据上述CSBPEM的定义,概括了使用这种模型进行服务与业务流程的提取过程,具体步骤如下:
(1)获取业务流程:通过用例分析将用户需求转化成准确的业务流程描述。使用CSBPEM本质是将一个复杂的系统从整体分解成业务流程组,每个业流程由一组服务组成。基于服务的自包含特性,使分析迭代进行,逐层细化,从而得到业务流程。
(2)初始化业务流程CSBPEM图:针对每一个流程,从表示、控制、执行3个角度进行分析,提取服务。
(3)标识相同服务:在分析,提取服务的过程中,归纳并判断服务是否在前面的业务流程分析中已经存在,如果已经存在,通过¨”标识。“)获取业务流程候选列表:通过迭代分析,完成业务流程的服务分析和服务提取,得到业务流程候选列表,如图2所示。
24 CSBPEM模型使用实例
以奥运安保指挥系统的视频调用业务流程和门禁视频联动业务流程为例,通过CSBPEM使用过程,得到门禁视频应用组件化服务框图,以此说明CSBPEM的用法,如图3所示。
3 CSBP说明
通过使用实例可以看出CSBPEM能够作为一种发现、提取服务与业务流程的一种方法。它具有以下优点:
(1)CSBPEM分层清晰而全面,从责任的角度将服务规划到表示层、控制层、执行层3个层面,覆盖了软件的所有层面。
(2)CSBPEM灵活性、隔离性好。对于软件开发来说,用户接口和业务流程需求是多变的,将表示层和控制层单独分离出来,起到隔离变化的作用。如果用户希望的接121发生改变,只需要改变或者增加用户接121服务,对于执行层提供数据的服务根本不需要改变:如果业务流程发生改变,那么只要改变控制层的相关业务流程服务,如果执行层的服务能够满足改变的业务流程需求,那么直接将需要的服务编排即可,否则增加相应的执行层的服务,然后再进行服务编排以满足新的业务需求。能够降低系统耦合度能够提高系统的灵活性。
(3)CSBPEM可以用于系统各个层级服务的分析和发现过程。从获取系统的子系统,到获取业务流程,到获取最小单元的业务活动,甚至到获取服务中的组件,均可使用这个模型。这个特点充分发挥了SOA思想,那就是“随需而变,灵活应对”。因为服务是自包含的,也就是说,服务之间没有依赖关系。只要具有这个特点,那么就能利用迭代思想,将多个服务封装成更大粒度的服务,形成业务流程:将多个业务流程封装成更大的业务流程。形成子系统;可以这样无限的迭代组合下去,达到“随需而变,灵活应对”。
由于目前只在奥运安保指挥系统中应用,组件化服务和业务流程提取模型还需要在展现业务流程、模型的组成元素不丰富等方面不断完善,在多个项目开发过程中不断改进。
4 结束语
本文通过对SOA实现的基本要素、SOAD的研究内容及在SOA项目实践中面临的问题进行分析,提出了一种服务和业务流程的分析和提取方法——组件化服务和业务流程提取模型(CSBPEM)。这种模型层次性好、灵活性好、隔离性好,降低了服务分析和提取的难度。特别地,这个模型能够用于系统分析设计的不同层级,比如应用到获取系统的子系统、获取业务流程、获取最小单元的业务活动甚至获取服务中的组件等。这个模型还在奥运安保指挥系统中得到应用,同业务流程、获取最小单元的业务活动甚至获取服务中的组件等。这个模型还在奥运安保指挥系统中得到应用,同时,也希望这个模型能够在更多的实践中得到验证和改进。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门文章
最近评论
访客留言
京ICP备09031912号-13 京公网安备110112000845号 | 流程管理网
POWER BY Z-Blog