基于SOA科学工作流引擎关键技术的设计与实现

2015-06-09 21:52田欣黄媛洁司忠平北京工商大学
科学中国人 2015年8期
关键词:实例架构流程

田欣,黄媛洁,司忠平北京工商大学

基于SOA科学工作流引擎关键技术的设计与实现

田欣,黄媛洁,司忠平北京工商大学

通过对SOA及科学工作流系统进行分析,提出了基于SOA架构的科学工作流系统模型,并在此模型的基础上探究了科学工作流引擎的关键技术,提出了基于结构元的深度遍历算法以及工作流执行算法。并以实例验证了科学工作流建模、解析和执行过程。

SOA;工作流引擎;映射算法;解析算法

引言

SOA(Services Oriented Architecture)即面向服务架构,它的核心是将系统的每一个功能模块都进行封装并定义为服务,其它服务可以通过接口进行调用。鉴于SOA架构对松耦合系统支持的特点[1],本文将SOA架构应用到科学工作流系统[2]之中并提出了基于SOA架构的科学工作流系统模型,如图1所示。

工作流引擎是科学工作流系统的核心,其作用就是将界面上抽象的流程图进行解析,生成中间件可以处理的信息以方便集群进行计算。在图1中,中间件的映射BPEL语言模块与工作流语言解析模块构成了此模型的工作流引擎。这两个模块的关键技术即工作流引擎的关键技术,包括:(1)界面流程语言到工作流语言的映射算法;(2)工作流语言的解析算法。本文所采用的界面流程语言为BPMN(Business Process Model and Notation)[3],工作流语言为BPEL(Business ProcessExecution Language)[4]。

图1 基于SOA架构的科学工作流系统模型

通过对科学工作流引擎关键技术的研究,本文提出了:

(1)鉴于SOA架构对松耦合系统支持的特点,本文将SOA架构应用到科学工作流系统之中并提出了基于SOA架构的科学工作流系统模型,如图1所示。

(2)通过对映射算法进行比较[5-7],提出了一种基于结构元的深度遍历算法,并将目前两种主要的业务流程规范标准:基于有向图的BPMN和基于块结构语言BPEL用于科学工作流的映射算法中。

(3)对工作流执行算法进行研究,提出一种迭代解析算法,将BPEL的不同关键字进行不同的处理,通过迭代算法得到的数据进行计算,得到可视化的界面。

基于结构元的深度遍历算法

综合BPMN和BPEL两种高级建模语言的优缺点,可知模型转化是业务流程建模的关键。BPMN使用的是直观的图形来描述所需要的工作流程,而BPEL则使用块结构语言来描述流程,两种不同层次语言的转换是具有挑战性的。

结构元概念

结构元即控制模式,它是BPMN流程模型的组成单元,由不同BPMN元素排列组合而成,所有的BPMN流程模型都可以由这些结构元组合嵌套而成。把BPMN流程模型转变为由结构元表示的流程模型,不但简化了流程模型的复杂程度,而且降低了映射的难度。本文采用了分支结构元、并行结构元、顺序结构元和循环结构元,如图2所示。

图2 四种结构元

映射算法原理

本文将结构元的思想与深度遍历算法融合在一起,用于BPMN流程模型到BPEL的转换算法。这是一种分层分解BPMN模型的策略,算法的主要思想是将整个BPMN流程看成一个顺序结构的流程,流程结构为{开始节点,子流程,结束节点}。算法首先从根节点开始深度遍历BPMN流程树,若后继结点是任务节点,则将其添加到顺序结构元中,若后继结点为一个网关节点,顺序结构元遍历完成,并将此路由节点相对应的路由合并节点之间的所有节点归为相对应的结构元,继而深度优先遍历[8]其结构元内部的节点,当遍历到此结构元的合并节点时,该结构元的映射结束,继续遍历其后续节点,递归完成后,则遍历完整条BPMN流程树,深度遍历结束。映射的结果即为BPEL代码。

工作流执行算法

在执行BPEL语言时,会创建一个流程实例,在本文科学工作流管理系统中,如果执行的为节点,则执行对应的实例模块的操作。如果执行的为节点,则给每个分支建立线程来并行执行,等待每个分支线程都执行完毕后再开始执行该节点的后继节点。如果执行的为节点,则得到while的循环条件,按照条件循环执行子流程。如果执行的为节点,则得到switch的每个分支条件,执行满足条件的子流程。执行流程如图3所示。

图3 工作流执行算法流程

下面将结合图4来展示工作流执行算法的执行过程,图5为图4基于结构元的深度遍历算法得到的BPEL代码中的并行部分代码。而图6是执行算法结束后的对于此部分代码,工作流执行算法的执行过程是:

(1)节点为flow,给每个分支建立线程,并行执行sequence1和sequence2子流程,遍历后继节点。

(2)sequence1的后继节点为switch,得到switch的每个分支条件,判断条件选择执行子流程sequence3还是sequence4,遍历后继节点;同时,sequence2的后继节点为invoke,执行该实例模块对应的操作,回溯到flow节点,等待其他的并行线程完成。

(3)sequence3/sequence4的后继节点为invoke,执行该实例模块对应的操作,回溯到flow节点,等待其他的并行线程完成。

(4)当flow节点的子线程全部执行完毕,遍历后继节点。

实例分析

本文以科学计算可视化中的一个三维渲染可视化科学工作流程为例进行说明,科学工作流如图4所示。

图4 科学工作流程实例

图5 实例BPEL代码

本文实例中三维立体图的显示借助了VTK(visualization tool⁃kit)来实现,图6为在VTK中科学工作流实例的显示效果。

图6 科学工作流BPEL映射实例效果图

结论

通过对SOA及科学工作流系统进行分析,提出了基于SOA架构的科学工作流系统模型,并在此模型的基础上探究了科学工作流引擎的关键技术,提出了基于结构元的深度遍历算法以及工作流执行算法。并以实例验证了科学工作流建模、解析和执行过程。

[1]钱振刚、邵子华,20世纪中国文学名作导读[M],北京:作家出版社,1998

[2]New to SOA and web services[EB/OL].http://www-128.ibm. com/developerworks/webservices/newto/,2005-06-14.

[3]Zhang H,Fan X,Zhang R,etal.Extending BPEL2.0 forGrid-Based Scientific Workflow Systems[C]//Asia-Pacific Services Comput⁃ing Conference,2008.APSCC'08.IEEE.IEEE,2008:757-762.

[4]White S.Using BPMN tomodel a BPEL process[J].BPTrends, 2005,3(3):1-18.

[5]Yu GE,Zhao P,Di L,etal.BPELPower—A BPEL execution engine for geospatial web services[J].Computers&Geosciences, 2012,47:87-101.

[6]魏明,夏永霖,魏峻.BPMN到BPEL 2.0的模型转换方法[J].计算机应用研究,2008,25(11):3363-3366.

[7]Dumas M.Case study:BPMN to BPELmodel transformation[C]//5th International Workshop on Graph-Based Tools–GraBaTs. 2009.

[8]Recker JC,Mendling J.On the translation between BPMN and BPEL:Conceptualmismatch between processmodeling languages [C]//The 18th International Conference on Advanced Information Sys⁃tems Engineering.Proceedings of Workshops and Doctoral Consor⁃tium.NamurUniversity Press,2006:521-532.

[9]Downey R G,FellowsM R.Depth-First Search and the Plehn–Voigt Theorem[M]//Fundamentals of Parameterized Complexity. Springer London,2013:291-300.

田欣(1989-),男,山东聊城,北京工商大学,学生,硕士研究生研究方向:信息可视化。

猜你喜欢
实例架构流程
吃水果有套“清洗流程”
功能架构在电子电气架构开发中的应用和实践
基于B/S架构的图书管理系统探究
构建富有活力和效率的社会治理架构
与元英&宫胁咲良零距离 from IZ*ONE
违反流程 致命误判
四川省高考志愿填报流程简图
VoLTE时代智能网架构演进研究
完形填空Ⅱ
完形填空Ⅰ