一种基于BPEL语言构建数据密集型工作流引擎的方法及其系统技术方案

技术编号:9990876 阅读:101 留言:0更新日期:2014-05-02 04:03
一种基于BPEL语言构建数据密集型工作流引擎的方法及其系统,包括建立基于规则的模型转换框架;建立部署执行层面的转换框架;根据Hadoop工作流模型生成BPEL流程模型,部署到BPEL引擎执行。本发明专利技术支持采用BPEL语言定义复杂的Hadoop工作流;方便企业将Hadoop工作流集成入企业内部系统或者将企业内部服务集成入Hadoop工作流,可以满足企业在业务流程中处理海量数据的需求。

【技术实现步骤摘要】
【专利摘要】一种基于BPEL语言构建数据密集型工作流引擎的方法及其系统,包括建立基于规则的模型转换框架;建立部署执行层面的转换框架;根据Hadoop工作流模型生成BPEL流程模型,部署到BPEL引擎执行。本专利技术支持采用BPEL语言定义复杂的Hadoop工作流;方便企业将Hadoop工作流集成入企业内部系统或者将企业内部服务集成入Hadoop工作流,可以满足企业在业务流程中处理海量数据的需求。【专利说明】一种基于BPEL语言构建数据密集型工作流引擎的方法及其系统
本专利技术涉及一种基于BPEL语言构建数据密集型工作流引擎的方法及其系统,尤其涉及一种面向Hadoop平台的数据密集型工作流引擎的构建方法及其系统,其通过特定的模型转换方法将Hadoop工作流转换成BPEL语言描述的服务并采用BPEL引擎来调度执行,属于计算机软件领域。
技术介绍
随着大数据时代的到来,数据密集型计算在学术界和工业界引起强烈关注。据IDC的一项调查报告中指出:在当今企业中80%的数据都是非结构化数据,这些数据每年都按指数增长60%。大数据将挑战企业的存储架构、数据中心的基础设施等,越来越多的企业面临着处理大数据的急迫需求。MapReduce框架以处理海量数据的高效性和简单性,受到工业界和学术界的广泛关注。它的开源实现Hadoop具有简单性、容错性和可扩展性,是目前最成功的数据密集型云计算平台。用户可以提交多个MapReduce Job到Hadoop集群,其中一个 MapReduceJob 由多个 Map Task 和多个 Reduce Task 组成。Hadoop 集群中的 JobTracker节点担当调度器的职责,负责这些MapReduce Job分派到各个Task Tracker节点上执行。一个Hadoop工作流可以用一个有向无环图(DAG)来表示,节点代表MapReduceJob,边代表MapReduce Job间的数据依赖关系。以下所说的工作流和Job都代表Hadoop工作流和MapReduce Job。与单个MapReduce Job相比,Hadoop工作流能表达更复杂的数据处理逻辑,因而吸引了越来越多的研究者研究。起初,一些科学工作流系统如Kelper, Pegasus, Swift, ASKAL0N都支持Job的并行执行,但是并没有和Hadoop进行集成。随后,Deniel Goodman在Martlet编程模型中提出了 map, f1dr和flodl的构造,并声明Martlet的抽象特性可以使用户采用并行编程方法进行数据分析而不需要考虑细节。Xubo Fei, Shiyong Lu等首次提出一种可以使用的MapReduce的科学工作流编译框架。Jianwu Wang, Deniel Crawl等人米用Kelper与Hadoop相集成的方法,实现一个具有图形化界面的通用数据密集型共组流系统。同时,针对一些专有的领域,也出现了支持MapReduce的工作流模型,如MRGIS是专门处理地理信息系统的数据,CloudBurs算法适应于生物学领域。Cascading, hamake, Azkaban 等系统也是基于 MapReduce 的工作流系统。Cascading更类似一种编程语言,使用了“pipe and filters”(管道和过滤)来定义数据处理进程,支持分隔,合并,分组和排序操作。Hamake是一种轻量级的客户端工具,使用fold和foreach进行增量的数据处理。Azkaban还并不成熟,它提供友好的用户界面和基于时间的调度功能。Nova是一种基于pig/hadoop的工作流系统,主要用来处理实时数据。Nova基于HDFS块的原子性,不断的跟踪的数据集,独立调度作业的不同部分,持续处理流式数据。CloudWF支持运行由MapReduce和遗留的非MapReduce程序构成的工作流,将工作流中的数据集以及数据集之间的依赖关系分别作为一个独立的执行单元,用Hbase来储存工作流和执行单元的信息,采用轮询的方式来更新信息执行工作流。现有的Hadoop工作流系统所使用的工作流语言提供了一些可选择的节点类型和控制逻辑关系,并且具有不同程度的监视和调度功能。但是存在以下几方面的问题:(I)工作流描述语言异构,工作流互操作困难。已有的Hadoop工作流系统都采用自定义的工作流描述语言,不同的工作流系统生成的Hadoop工作流实例很难集成或者通信。企业通过对海量级别的数据报表处理,对结果进行分析做出相应的销售策略等。工作流需要调用企业内部的数据资源系统,又要使用Hadoop平台来存储和清理数据。传统的工作流系统难以与Hadoop平台通信,而现有的Hadoop工作流系统也不能调用企业已有系统提供的Web服务作为活动节点。(2) Hadoop工作流表达能力较弱,支持简单的控制逻辑。极少数系统如Oozie支持fork、decision、join操作,而大部分都不支持高级的控制关系。对于需要处理复杂应用的用户必须手工编写和管理这些具有复杂逻辑的Hadoop工作流,这不仅是耗时,并且是充满麻烦的。(3) Hadoop工作流扩展性较差,支持的节点类型有限。Hadoop工作流系统只支持固定的几种节点类型,用户很难集成自己的应用到Hadoop工作流中去。企业处理海量数据所涉及到的操作类型往往包含自定义的操作,这些活动类型是现有的Hadoop工作流系统无法支持的,这将局限Hadoop工作流来构建数据密集型应用。
技术实现思路
本专利技术的技术问题:克服上面分析的现有技术的不足,提供一种基于BPEL语言构建数据密集型工作流引擎的方法及其系统,采用标准的BPEL语言来描述工作流,并且支持复杂的业务逻辑,相比于现有的Hadoop工作流,本系统可以支持扩展节点类型。本专利技术的技术方案为:一种基于规则的Hadoop工作流模型与BPEL模型的映射方法,支持采用BPEL语言定义复杂的Hadoop工作流,能够与传统工作流系统的交互,实现数据密集型工作流系统的构建,包括以下各步骤:(I)建立基于规则的模型转换框架,具体实现为:(11)定义Hadoop工作流元模型和BPEL服务的元模型;(12)根据语义建立Hadoop工作流元模型与BPEL流程元模型的映射规则,即Hadoop工作流元模型中的分支fork元素对应于BPEL流程元模型中的flow元素,Hadoop工作流元模型中的活动元素对应于BPEL服务元模型中的伙伴链接;(2)根据映射规则,建立从Hadoop工作流模型到BPEL流程模型的模型转换算法,具体实现如下:(21)采用的转换策略是自顶向下的,每个Hadoop工作流模型表示为有向无环图,转换后,输出为BPEL流程模型;(22)每个Hadoop工作流模型包含一个StartVnode和一个EndVnode作为工作流的开始和结束节点;(23)统计所有的输入元素,为BPEL模型添加Variables元素,然后依次提取Hadoop工作流模型中节点对象进行翻译,判断其类型,若是活动节点,则将其翻译成基本的活动,若是控制节点,则首先翻译赋值语句,然后根据控制节点类型,翻译为不同的控制节点对象,重复这个过程,直到Hadoop工作流模型所有元素处理完毕,得到BP本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:刘杰叶丹朱锋魏峻
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1