一种基于流程模型的构件组装方法

2015-12-27 07:37邢莹师本慧陈金勇
计算机与网络 2015年8期
关键词:调用业务流程构件

邢莹师本慧陈金勇

(中国电子科技集团公司第五十四研究所,河北石家庄050081)

一种基于流程模型的构件组装方法

邢莹师本慧陈金勇

(中国电子科技集团公司第五十四研究所,河北石家庄050081)

为了实现构件组装的规范性与灵活性,提出了一种基于流程模型的构件组装方法。在分析了构件组装机制与组装方式的基础上,创建了流程模型以维护业务流程,给出了基于流程模型的构件设计方案,设计了功能构件与流程控制构件,并采用基于流程模型的构件组装技术实现了卫星。测处理系统,同时总结了其优势。

构件业务流程构件组装流程控制构件

1 引言

目前主流构件模型都是面向对象的[1],如CORBA[2]、COM[3]等公共构件对象模型规范都着重规范构件之间的交互,将构件接口、描述语言标准化,为构件规范性的实现提供了基础,但并没有对构件之间的关联关系进行约束,也没有统一的构件组装与系统集成规范[4]。因此现在有许多针对构件组装的实现机制与方法的研究,从数据流[5]、工作流[6]和业务对象等方面进行构件组装的研究[7],但这些构件组装方法无法适用于大量数据交互、多任务重构、流程灵活扩展等情况。

因此本文提出了一种基于流程模型的构件组装方法,建立业务节点模型对业务对象进行建模,以元数据为驱动,通过流程模型实现业务功能与业务流程的分离,达到业务流程的灵活配置、业务功能服务的定制等目的。

2 构件的组装方式

构件组装实际上是通过建立构件之间的调用关系使用构件来构造软件系统。构件组装机制对构件的调用关系和依赖关系进行定义与管理从而达到构件连接和集成的需要。构件的组装涉及多个构件,由于各软件系统的业务需要,各个构件之间调用关系存在着多样性:构件调用关系分为顺序调用、并行调用、选择调用以及循环调用等4种调用方式[8]。

顺序调用是指一个构件P执行完成功能后直接调用另一个构件Q执行任务,这一过程的实现对应着构件的顺序组装。在进行构件的顺序组装时要实现构件接口的匹配与连接,调用的构件P与被调用的构件Q之间接口方向、参数等属性相匹配。构件P调用构件Q提供的服务。在顺序调用的过程中,每个构件只能调用一个构件,一个构件也只能被一个构件调用。

并行调用是指一个构件M执行完成功能后同时调用构件P和构件Q两个构件,这一过程的实现对应着构件的并行组装。在进行构件的并行组装时要实现构件M与构件P、构件Q的接口匹配与连接。

选择调用是指一个构件M执行完成功能后有选择地调用另一个构件,如条件满足则调用构件P,若不满足条件则调用构件Q,这一过程的实现对应着构件的选择组装。在进行构件的选择组装时要实现构件M与构件P或构件M与构件Q的接口匹配与连接。

循环调用是指单个构件或多个构件组成的复合构件进行多次自身调用直至满足条件,跳出循环,这一过程的实现对应着构件的循环组装,与选择组装过程类似。

3 流程模型

为了便于构件的组装,本文设计了流程模型以规范软件系统中的业务流程,实现对构件组装顺序进行定义和管理,将业务逻辑与功能实现分离,最终实现根据业务定制服务的构件组装。流程模型是对业务流程定义的基本元素和规则的抽象,并加以一般性描述,用于指导业务流程管理与构件组装过程建模。在流程模型中,一系列业务流程节点构成一个业务流程,其中每个节点都与一个构件对应关联。业务流程的执行就是流程中各个构件按次序被调用以实现业务功能的过程。流程模型负责管理控制业务流程,构件负责实现功能,因此流程模型的设计将流程逻辑从业务功能中剥离出来,有利于服务的定制与业务的重构。

业务节点是组成业务流程的基本单元,流程模型由一个或多个业务节点组成,每个业务节点对应绑定一个构件。当一个业务流程需要多个构件协作完成时,流程模型不仅是这些构件对应的节点模型集合,而且同时为节点模型的调用次序提供上下文环境,包括按序调用各个节点模型的相关数据。流程模型的组成如图1所示。

图1 流程模型构成图

流程模型由节点模型和调用策略组成。业务节点表示待组装的构件,负责绑定构件、维护构件的上下文与业务流程上下文关系。调用策略包括顺序调用、并行调用、选择调用和循环调用等4种方式以及调用条件。节点模型中包含了流程节点与构件的关联关系、构件执行的上下文等信息,图2为流程模型逻辑运行图。

图2 流程模型逻辑运行图

4 构件设计

基于流程模型进行构件组装是流程控制与构件化软件思想结合的产物,以流程模型的方式对构件调用与组装进行灵活的构建与配置,从而达到软件系统构件化的目标。在基于流程模型的构件组装机制中,构件模型、构件接口与流程模型共同形成了规范标准,构件模型为构件组装提供基石,构件接口连接是构件组装的实现,而流程模型为构件组装提供了组织管理的方式。因此本文设计了功能构件和流程控制构件2种构件以完成软件系统的实现。功能构件用于完成系统的基本功能,同时向流程控制构件注册其提供的服务,而流程控制构件负责管理功能构件的调用顺序,从而达到流程控制的目的,实现业务流程的定制。功能构件的定义如下:

每个构件都必须声明一个基本接口BaseInterface,用于向流程控制构件声明自身所提供的服务,同时提供获取与当前构件应用相关的构件,启动相应构件,加载相应资源以及获取当前构件的扩展和扩展点的功能。在流程控制构件的设计中,采用流程模型建立业务流程完成对功能构件的服务顺序调用,采用业务流程链表的形式实现功能构件的顺序调用,最终完成构件组装。图3为流程控制构件的流程模型。

图3 构件组装机制

在流程模型中,每个业务节点对应着一个功能构件,节点的连接顺序实际上就是功能构件的调度顺序。因此,在业务节点中应声明其节点本身信息、对应的功能构件的信息、功能构件部署的IP地址、端口号以及TCP链接还是UPD链接,同时还在业务节点中保存业务流程链表信息。由于构件有顺序、并行或循环等多种组装模式,业务节点模型用后节点集合维护着多个后节点信息。业务节点的定义如下:

在构件组装与软件集成的过程中,流程控制构件首先要读取流程模型中业务流程信息,对在已声明服务的功能构件中进行服务对偶和接口连接,创建业务流程链表,设置功能构件调度顺序,创建功能构件运行环境,并传递给流程首节点的功能构件,以元数据驱动工作流程,同时元数据为业务功能提供数据源。

5 构件组装的应用

由于。测处理系统中数据量大,如果。测处理流程采用消息传递机制负责各个构件之间的交互通信,则会出现等待数据时内存浪费和网络拥堵,因此在研制卫星。测处理系统的过程中,采用了构件化的思想进行系统的设计与软件的开发,在进行系统集成与构件组装时采用基于流程模型的构件组装。

图4 卫星。测处理系统的构件组成图

卫星。测处理系统是处理卫星下传。测数据,进行卫星运行状态监视的系统,有着处理数据量大、处理的实时性要求高等特点。卫星。测处理系统由功能构件和流程控制构件组成,其中功能构件负责实现。测数据接收、处理等业务功能,而流程控制构件将基于流程模型对功能构件进行组装。卫星。测处理系统体系结构如图4所示。

卫星。测处理系统中所有功能构件都遵循功能构件规范实现,并通过BaseInterface()接口将本功能构件的接口标识、提供的服务以及构件运行的上下文等信息注册到流程控制构件中,流程控制构件通过对接口标识表的管理维护,可对各个功能构件的服务进行对偶,并进行接口连接。同时流程控制构件基于流程模型,对。测数据处理流程进行配置,建立。测数据处理的业务流程链表并在各个功能构件中进行传递完成。测数据处理的业务流程。

在对。测数据处理进行流程建模时,结合已开发的构件库,使用可视化流程编辑界面对。测处理流程进行配置,调度。测数据处理的各个功能构件,以完成构件的组装与系统的集成,同时将业务流程以XML文件的形式保存,以供流程控制构件读取。图5为流程模型的可视化编辑界面。

6 构件组装的意义

与以往的构件组装模式相比,基于流程模型的构件组装机制具有以下优势:

⑴支持业务流程的重构

传统构件组装在控制各个业务功能流转时一般以连接子的形式实现,当更改业务流程时需要对代码进行改动。而基于流程模型的构件组装结合构件库使用图形化的流程编辑界面之间修改业务流程,通过流程控制构件完成各个功能构件的服务对偶与接口连接,为构件使用者屏蔽了构件组装实现的细节。

⑵提高了系统处理效率

基于流程模型的构件组装将业务流程以流程链表的形式传递给流程开始节点,同时流程链表在各个功能构件间接口进行交互,即流程开始后流程控制构件不再负责流程消息的传递,减少了构件之间交互操作,降低了构件的等待空闲,适用于如卫星。测处理等大规模数据的处理过程。

⑶提供了新型构件的组装思路

传统的构件组装机制一般以连接子或接口调用的形式实现。而基于流程模型的构件组装通过将流程模型中节点模型映射到相应的功能构件就可实现构件的灵活组装。

⑷降低粒度,提高重用性

流程模型的创建可简化构件中的业务流程,从而原有完成某项业务的复杂构件可被细分为多个实现单一功能的简单构件,这些简单构件能通过不同的流程模型组装成能实现不同业务功能的复合构件,在一定程度上提高了已开发构件的重用性。

7 结束语

本文在研究了构件组装、流程控制等技术后,提出了一种基于流程模型的构件组装机制,为按照公共构件对象模型规范创建的构件的一种组装的方法,实现了构件组装的灵活重构与功能扩展。同时,给出了基于流程模型组装构件的优势,并经过图形化组装方式快速集成各个型号的卫星。测处理系统,证明了基于流程模型的构件组装的可行性。

[1]Xiang JL,Yang J,Mei H.ABC-Tool—An architecture-based component composition.Journal of Computer Research And Development,2004,41(6):956?964(in Chinese with English abstract).

[2]夏榆滨.软件构件技术[M].北京:清华大学出版社,2011.

[3]Gossler G,Sifakis J.Composition for component-based modeling.Science of Computer Programming,2005,55(1-3): 161-183.

[4]Service Component Architecture[EB/OL].[2013-03-12]. http://zh.wikipedia.oig/wiki/SCA

[5]陈章,陈志刚.Intemet环境下一种基于数据流的构件组装模型[J].小型微型计算机系统.2006,27(10):1865-1870.

[6]李海波,战德臣,徐晓飞.基于工作流引擎的构件组装体系结构[J].软件学报,2006,17(6):1401-1410.

[7]Mayer A,McGough S,Furmento N,Lee W,Newhouse S, Darlington J.ICENI dataflow and workflow:Composition and scheduling in space and time.In:UK e-Science All Hands Meeting.2003.627-634.http://www.nesc.ac. uk/events/ahm2003/AHMCD/pdf/132.pdf.

[8]廖昕,陈松乔,孙莹.可复用构件组装技术研究[J].计算技术与自动化,2004,3(2):788-792.

A Component Assembly Method Based on Process Model

XING Ying,SHI Ben-hui,CHEN Jin-yong
(The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)

In order to implement the normalization and flexibility of component assembly,this paper proposes a component assembly method based on process model.By analyzing component assembly mechanism and assembly method,this paper creates a process model to maintain the business process,gives the component design plan based on the process model,designs the functional component and the flow-controlled component,uses the component assembly technology based on process model to implement the satellite telemetry processing system,and summaries its advantages.

component;business flow;component assembly;flow-controlled component

TP319

A

1008-1739(2015)08-41-4

定稿日期:2015-03-26

猜你喜欢
调用业务流程构件
RPA机器人助业务流程智能化
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
企业财务管理、业务流程管理中整合ERP之探索
基于财务业务流程再造的ERP信息系统构建探析
建筑构件
建筑构件
基于系统调用的恶意软件检测技术研究
建筑构件
建筑构件