CN105447643A - 一种面向云计算平台的科学工作流系统及方法 - Google Patents
一种面向云计算平台的科学工作流系统及方法 Download PDFInfo
- Publication number
- CN105447643A CN105447643A CN201510856917.6A CN201510856917A CN105447643A CN 105447643 A CN105447643 A CN 105447643A CN 201510856917 A CN201510856917 A CN 201510856917A CN 105447643 A CN105447643 A CN 105447643A
- Authority
- CN
- China
- Prior art keywords
- scientific
- computing environment
- software
- workflow
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种面向云计算平台的科学工作流系统及方法,通过定制模块的定制模块从显示层、工作流层、执行层、计算环境的定制;自动化部署模块根据定制模块的计算环境抽象描述,以及相应的科学软件自动化配置脚本将共同作用于计算环境的自动化部署过程;执行模块将科学工作流的各个计算步骤准确调度并运行在云端计算环境中。本发明能够为科研人员提供更加可定制化的科学工作流服务,能够根据科学实验需求定制科学工作流流程,并按需租用云平台中的计算资源,而且能够不受实验室机房计算资源的限制,不受手动安装软件工具来部署计算环境的限制,不需要手动跟踪并执行各个计算步骤,适用于对于大规模的科学数据分析任务。
Description
技术领域
本发明涉及面向云计算平台的科学工作流系统及方法,属于云计算领域,特别是对于大规模的科学数据分析任务问题。
背景技术
科学数据分析目前在多个科学研究领域(包括生物科学、气象科学以及高能物理科学等)都扮演着越来越重要的角色。每一个科学数据分析任务往往都包含多个计算步骤,每个计算步骤代表着一个数据分析处理过程。然而小规模科研团队或个人由于没有足够的计算机技术支持,使得他们在进行科学数据分析的时候遭遇到了障碍,主要体现在三个方面:(1)实验室机房计算资源的限制;(2)需要手动安装软件工具来部署计算环境;(3)需要手动跟踪并执行各个计算步骤。对于大规模的科学数据分析任务,这三个受限因素将会更加凸显。
目前科学工作流这一技术路线本身并不能解决计算资源受限以及手动部署计算环境这些问题,不存在工作流所需的计算环境精准的定制服务,以及不存在自动化的科学工作流计算环境的部署过程和科学工作流的执行过程。一些科学网关基于SaaS软件交付模式提供了面向社区的科学工作流服务框架,主要用于开发面向多租户的科学数据分析平台,但是它们不能为复杂的科学数据分析流程提供更为精准的定制服务。一个面向多租户的科学数据分析平台时,其最大的挑战是如何为科研人员在软件工具、数据分析流程甚至计算环境方面提供足够的定制功能。一些基于WebService的框架支持将数据分析应用程序部署在相应的计算中心中,并通过将这些应用程序封装为WebService的方式供科研人员来组装定制科学数据分析流程。这些软件框架虽然简化了定制的过程,使得能够以流水线化的方式来组装科学数据分析流程。但是这些科学网关无法提供同质化的运行时环境的定制,不能够为所有的科学数据分析流程提供同质化的运行时环境:相同的分布式计算资源和软件环境,即无法为具有多样性的科学数据分析实验提供具有针对性的运行时环境。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种面向云计算平台的科学工作流系统及方法,为科研人员提供可定制、自动化部署、自动化执行的科学工作流服务,科学工作流服务能够根据用户所定制的工作流以及计算资源需求在云平台中自动部署相应的计算环境并进行科学工作流。
本发明的技术解决方案:一种面向云计算平台的科学工作流系统,包括定制模块、自动化部署模块和执行模块,其中:
定制模块:包括显示层、工作流层、执行层和计算环境层四个层次的定制,其中显示层用于定制科学软件图形化工具;工作流层利用图形化工具定制科学工作流计算流程的各个计算步骤;执行层用于定制科学软件的命令行执行参数;计算环境层用定制计算环境抽象描述模板和科学软件的自动化配置脚本模板;通过计算环境抽象描述模板生成计算环境抽象描述,所述计算环境抽象描述是用于描述执行一个科学工作流计算流程所需的计算资源以及相应的科学软件;当科研人员定制完成一个科学工作流计算流程,并且选择所需的计算资源后(比如虚拟机个数以及虚拟机大小等),相应的计算环境抽象描述会自动生成;同时利用定制的科学软件自动化配置脚本模板,为自定义科学软件的安装以及配置过程提供依据,科研人员根据该模板来为具体的科学软件编写自动化配置脚本;计算环境抽象描述以及科学软件的自动化配置脚本共同奠定了计算环境自动化部署的基础;
自动化部署模块:接收来自定制模块的计算环境抽象描述,根据计算环境抽象描述,并利用相应的科学软件自动化配置脚本在指定的云计算平台中部署相应的云端计算环境,云端计算环境由多个虚拟机组成的一个计算集群,并安装配置所需的科学软件;
执行模块:在云端计算环境部署完后,调度服务和分布式资源管理服务;调度服务负责根据科研人员定制的科学工作流执行流程来调度各个科学计算步骤的先后执行顺序,以保证科学工作流的正确执行;分布式资源管理服务则负责管理虚拟机计算集群,将当前调度的计算任务分发到相应的计算资源中并以指定的方式执行,所述执行模块中的指定方式是指串行执行或并行执行。
所述定制模块中,显示层定制的科学软件的图形化工具具有多个通用的功能,包括用于设置执行参数的表单;科研人员通过科学软件图形化工具模板来定制具体的科学软件从而为科学工作流做定制基础,使科学软件能够以交互友好的图形化工具的形式呈现出来。
所述计算环境抽象描述模板包括两部分内容:一是计算资源(即虚拟机个数以及每台虚拟机的CPU核数等配置参数);二是软件环境(即所需的相应的科学软件集合)
采用以下描述的计算环境抽象描述语言模板表示如表1所示,计算环境抽象描述语言模板中根元素为“workspace”,代表了一个计算环境,其下有5个子元素“provider”、“vm_size”、“vm_number”、“description”和“run_list”:
“provider”:表示部署该计算环境的某一个具体的云计算平台;
“vm_size”:表示需要创建的虚拟机的大小;
“vm_number”:表示该计算环境拥有的虚拟机个数;
“description”:用于描述该计算环境的特征以及用途;
“run_list”:表示需要安装的科学软件的集合,每个科学软件用“package”元素表示,且其下的“name”元素用于表示该科学软件的名称,“version”元素用于指定该科学软件的版本号;
“provider”、“vm_size”和“vm_number”元素共同决定了计算环境的硬件特征,而“run_list”元素以及其下的“package”元素集合则决定了该计算环境的软件特征,即表明该计算环境能够服务的科学工作流计算流程。
所述定制模块中,执行层中定制科学软件的命令行执行参数包含多个可控参数,科研人员通过自定义这些执行参数来达到控制执行过程的目的。
所述定制模块中的科学软件的自动化配置脚本模板的根元素为“recipe”,表示一个科学软件安装配置的“配方”,其下有4个子元素:“name”、“version”、“dependencies”和“actions”如表2所示:
“name”:表示该科学软件的名称;
“version”:表示需要安装的版本号;
“dependencies”:表示该科学软件所依赖的其他应用软件,每个具体的应用软件用“dependency”元素表示,同时需要指定应用软件的名称和版本号;
“actions”:表示安装配置该科学软件的具体行为动作,包括:
“create_directory”:新建目录;
“create_user”:新建用户;
“download_package”:下载软件包;
“extract_package”:解压软件包;
“set_environment”:设置环境变量;
“shell_command”:允许直接执行shell命令,比如使用源码安装科学软件,则可以使用“make”命令对源码进行编译;
根据上述描述,定制模块得到的计算环境抽象描述,以及相应的科学软件自动化配置脚本将共同指导计算环境的自动化部署过程。
所述自动化部署模块包括:控制模块、云平台集群自动化部署管理工具Chef、Chef的第三方插件Spiceweasel、;其中控制模块基于Chef和Spiceweasel之上,是自动化部署模块的逻辑控制层,是整个核心;
控制模块:为逻辑控制层,接收来自定制模块的计算环境抽象描述,并调用控制模块中的服务将计算环境抽象描述转换成与指定云计算平台相关的Spiceweasel文件,同时负责与ChefServer进行通信;
Spiceweasel:用于帮助Chef批量管理基础设施的命令行工具,Chef提供的基于编程语言Ruby、文件格式JSON或文件格式YAML的描述语言能够帮助简化计算环境XML抽象描述到Chef的内置工具ChefKnife命令行程序的翻译过程;
ChefServer:负责与云计算平台进行通信,根据Spiceweasel文件在指定云计算平台上部署相应的计算环境,管理虚拟机的自动化创建与配置过程。
所述定制模块中利用图形化工具定制科学工作流计算流程的各个计算步骤的具体实现过程:一个科学工作流计算流程包含多个计算步骤以及这些计算步骤间的内在联系,将科学工作流计算流程形象化为一个DAG图(DirectAcyclicGraph,有向无环图),每个节点表示一个具体的计算步骤或科学软件,一个工作流包含多个软件,按照定制需求分步骤的执行不同的软件,每条边表示计算步骤间的先后执行顺序或数据流向,基于如下所示的工作流描述模板,科研人员能够利用科学软件的图形化工具来可视化地自定义科学工作流流程;为了保证科学工作流的各个计算步骤间的有序执行,基于DAG图以及上面提出的工作流执行流程描述语言;在该模式中构建了工作流执行流程描述模板如表3所示,工作流执行流程描述模板根元素为“workflow”,表示一个完整的科学工作流流程,其下有2个子元素:“task”和“connector”:
“task”:表示工作流中一个具体的科学工作流步骤,即一个科学软件的执行,其下“name”元素表示该计算步骤的名称,“command”元素表示具体的命令行执行程序;
“connector”:表示计算步骤间的先后执行顺序,其下的“origin”元素表示先行任务,“destination”元素表示后继任务,即只有当某任务的所有先行任务都执行完成之后,该任务才能够被调度执行。
所述执行模块具体实现过程为:
(1)指定任务运行的计算环境
调度服务将任务运行在指定的计算环境中,簹工作流的每个计算任务用“Job”对象来表示,其包含了用于执行某一个计算任务的所有具体信息,自动化部署模块会在配置完成之后返回当前所配置计算环境的详细信息,将当前科学工作流所包含的所有计算任务所对应“Job”对象的配置参数字段信息实时更新为当前指定计算环境的信息,并通过指定的jobplugin,即提供与分布式资源管理服务进行通信的命令行接口和shellplugin,即提供与远程计算集群进行通信的功能,将计算任务运行在指定的计算环境中;
(2)任务执行
采用部署有Torque分布式资源管理服务的计算集群进行通信,Torque作为portablebatchsystem项目的一个分支,能够对批处理作业以及计算资源进行有效地管理和调度,通过“qsub[shellscript]”指令提交的作业将会被分配到一台空闲的计算节点中进行运算,运算的过程即shellscript执行脚本的计算过程。
所述任务执行中,为了充分利用虚拟机计算集群的资源优势来提高运算速度,与Hadoop集群、MapReduce分布式计算框架进行结合,利用相应的Hadoop(一种大数据处理工具)插件,将计算任务发送到Hadoop集群中,并利用MapReduce(大数据处理工具的计算框架)分布式计算框架来加快任务的执行,通过HadoopStreaming(大数据处理工具的一种计算方式)的方式来执行科学软件,通过该部分执行科学工作流。
一种面向云计算平台的科学工作流实现方法,包括:定制、部署以及执行服务阶段,实现过程如下:
(1)定制阶段,通过分别从显示层、工作流层、执行层和计算环境层四个层次的定制,生成计算环境抽象描述与科学软件的自动化配置描述;
(2)自动化部署阶段,接收来自定制阶段的计算环境抽象描述与科学软件自动化配置脚本,将共同指导计算环境的自动化部署过程;
(3)执行服务阶段,当计算环境部署完成之后,将科学工作流的各个计算步骤准确调度并运行在云端计算环境中;读取科研人员定制的工作流执行流程,并负责调度各个计算步骤的执行顺序,同时对计算集群进行管理和调度。
本发明与现有技术相比的优点在于:
(1)本发明采用到云平台计算资源的定制技术,解决了实验室机房计算资源的限制,提升了现有科学数据分析平台计算能力不足的问题,为科学工作流系统提供了近于无限扩展的计算资源;
(2)结合云计算技术为科学工作流服务提供全方面的定制服务,为不同的科学数据分析流程提供个性化的具有针对性的运行时环境;解决了面向现有科学数据分析平台为科研人员在软件工具、数据分析流程无法精准定制的问题以及计算环境资源无法定制的问题;
(3)在云平台提供的基础性的虚拟机级服务,和运行科学工作流所需的计算环境条件的限制下,构建了基于云平台提供的虚拟机服务基础之上自动化配置管理服务并自动化的安装配置所需的软件环境,提供了自动化的部署与执行环境,为科研人员提供了一整套的自动化可定制科学工作流服务,提升了科学工作流系统的执行效率,加快了运行时间,并且极大的降低了科研人员的研究成本等。
附图说明
图1为本发明系统的体系结构图;
图2为本发明系统中自动化部署模块实现流程图;
图3为本发明执行模块流程图;
图4为本发明系统中部署模块调用相关服务的流程图;
图5为本发明系统中执行模块中任务运行图。
具体实施方式
下面结合附图及表进行详细说明。
表1为本发明系统中计算环境抽象描述语言模板;
表2为本发明系统中自动化部署模块中需调用的科学软件自动化配置脚本模板;
表3为本发明执行模块中工作流执行流程描述模板;
如图1所示,本发明面向云计算平台的科学工作流系统,包括:
定制模块:包括了四个层次的定制,该定制框架能够从显示层到计算环境层大大提高科学工作流平台各层次的可定制性:
1)显示层:定制科学软件图形化工具;
2)工作流层:利用图形化工具定制科学工作流计算流程的各个计算步骤;
3)执行层:定制科学软件的命令行执行参数;
4)计算环境层:选择计算资源,并定制科学软件的自动化配置脚本;
自动化部署模块:在面向云计算平台的科学工作流平台框架中,不同用户定制的科学工作流流程在云平台中都有其独立的计算环境,保证了不同用户间程序运行以及数据的隔离。在定制模块得到的计算环境抽象描述,以及相应的科学软件自动化配置脚本将共同指导计算环境的自动化部署过程。
如图2所示为自动化部署模块框架,在框架中,自动化部署模块负责接收来自定制阶段的计算环境抽象描述,并利用相应的科学软件自动化配置脚本在云平台上创建所需的虚拟机集群,并安装配置所需的科学软件;
执行模块:当计算环境部署完成之后,接下来的工作就是将科学工作流计算流程的各个计算步骤准确调度并运行在云计算环境中。
如图3所示是本发明提出的执行模块的框架。调度服务负责读取科研人员定制的工作流执行流程,并负责调度各个计算步骤的执行顺序。由于计算环境往往是由多个虚拟机组成的一个计算集群,因此需要有分布式资源管理服务(例如Torque、SGE或Condor等分布式资源管理工具)来对计算集群进行管理和调度。当前被调度的任务提交给分布式资源管理服务后,将被分配到指定的计算资源中以指定的方式执行(串行执行或并行执行等);
定制模块中,其主要包括了四个层次的定制:
(1)显示层的定制是通过图形化工具模板来实现的。图形化工具模板包括了许多通用的功能,包括用于设置执行参数的表单等。社区开发人员可以通过Web小工具模板来为具体的科学软件做定制,使科学软件能够以交互友好的Web小工具的形式呈现出来;
(2)工作流描述模板描绘了一个科学工作流流程所包含的各个计算步骤以及这些计算步骤间的内在联系,其可以被形象化为一个DAG图(DirectAcyclicGraph,有向无环图)。每个节点表示一个具体的计算步骤或科学软件,每条边表示计算步骤间的先后执行顺序或数据流向。基于工作流描述模板,科研人员能够利用科学软件的Web小工具来可视化地自定义科学工作流流程;
为了保证科学工作流的各个计算步骤间的有序执行,基于DAG图以及上面提出的工作流执行流程描述语言如表3所示。在该模式中,根元素为“workflow”,表示一个完整的科学工作流流程,其下有2个子元素:“task”和“connector”:
“task”:表示工作流中一个具体的科学工作流步骤,即一个科学软件的执行,其下“name”元素表示该计算步骤的名称,“command”元素表示具体的命令行执行程序;
“connector”:表示计算步骤间的先后执行顺序,其下的“origin”元素表示先行任务,“destination”元素表示后继任务,即只有当某任务的所有先行任务都执行完成之后,该任务才能够被调度执行。
(3)科学工作流的每个科学工作流步骤都需要具体的科学软件来完成,同时科学软件需要具体的命令行执行程序来启动。命令行执行程序模板为控制科学软件的执行提供了依据,其往往包含多个可控参数,科研人员可以通过自定义这些执行参数来达到控制执行过程的目的;
(4)计算环境是科学软件执行的载体,是整个科学工作流流程的根基。计算环境的抽象描述模板为计算环境的定制提供了依据,其主要描述了计算环境所需的硬件资源以及所需安装的科学软件。当科研人员定制完成科学工作流流程,并且选择所需的计算资源后(比如虚拟机个数以及虚拟机大小等),相应的计算环境抽象描述会自动生成。同时科学软件的自动化配置脚本模板为自定义科学软件的安装以及配置过程提供了依据,社区开发人员可以根据该模板来为具体的科学软件编写自动化配置脚本。计算环境抽象描述以及科学软件的自动化配置脚本共同奠定了计算环境自动化部署的基础;
基于XML的计算环境抽象描述语言,用于描述执行一个科学工作流流程所需的计算资源以及相应的科学软件。
计算环境描述包括两部分内容:1、硬件计算资源;2、所需要的软件环境。如下所示是该抽象描述语言的一个模板如表1所示。
在该模式中,根元素为“workspace”,代表了一个计算环境,其下有5个子元素“provider”、“vm_size”、“vm_number”、“description”和“run_list”:
“provider”:表示部署该计算环境的某一个具体的云平台,比如AmazonEC2或MicrosoftAzure等;
“vm_size”:表示需要创建的虚拟机的大小(CPU核数),比如“Small”表示一个核,“Medium”表示两个核,“Large”表示四个核等;
“vm_number”:表示该计算环境拥有的虚拟机个数;
“description”:用于描述该计算环境的特征以及用途等;
“run_list”:表示需要安装的科学软件集合,每个科学软件用“package”元素表示,且其下的“name”元素用于表示该科学软件的名称,“version”元素用于指定该科学软件的版本号。
“provider”、“vm_size”和“vm_number”元素共同决定了计算环境的硬件特征,而“run_list”元素以及其下的“package”元素集合则决定了该计算环境的软件特征,即表明该计算环境能够服务的科学工作流流程。
部署模块:部署系统的主要功能是根据计算环境抽象描述在指定的云平台中部署相应的计算环境。该部署系统主要包括以下几个重要的功能模块:
核心控制模块:部署系统的逻辑控制层,接收来自定制阶段的计算环境XML抽象描述,并调用相关转换服务将其转换成与指定云平台相关的Spiceweasel文件,同时负责与ChefServer进行通信;
Spiceweasel:用于帮助Chef批量管理基础设施的命令行工具,其提供的基于Ruby、JSON或YAML格式的描述语言能够帮助简化计算环境XML抽象描述到ChefKnife命令行程序的翻译过程;
ChefServer:负责与云平台进行通信,根据Spiceweasel文件在指定云平台上部署相应的计算环境,管理虚拟机的自动化创建与配置过程。
为了能够自动化安装配置科学软件(例如下载解压软件包,以及设置环境变量等),本发明设计了一种自动化配置描述语言,如下所示是该自动化配置描述语言的一个模板如表2所示。在该模式中,根元素为“recipe”,表示一个科学软件安装配置的“配方”,其下有4个子元素:“name”、“version”、“dependencies”和“actions”:
“name”:表示该科学软件的名称;
“version”:表示需要安装的版本号;
“dependencies”:表示该科学软件所依赖的其他应用软件,每个具体的应用软件用“dependency”元素表示,同时需要指定应用软件的名称和版本号;
“actions”:表示安装配置该科学软件的具体行为动作,包括:
“create_directory”:新建目录;
“create_user”:新建用户;
“download_package”:下载软件包;
“extract_package”:解压软件包;
“set_environment”:设置环境变量;
“shell_command”:允许直接执行shell命令,比如使用源码安装科学软件,则可以使用“make”命令对源码进行编译。
核心控制模块基于Chef和Spiceweasel(Chef的第三方插件)之上,是部署系统的逻辑控制层,是整个部署系统的核心。通过Chef配置管理工具来管理计算环境在云平台中的自动化创建与配置过程;Spiceweasel(Chef的第三方插件)批量管理其基础设施。将计算环境抽象描述转换成Spiceweasel描述文件,并负责与ChefServer进行通信,其同时还承担着维护各个计算环境及其虚拟机的状态等任务。
如图4所示是在定制并执行科学工作流过程中配置计算环境的过程。在定制科学工作流之前,科研人员能够预先定制所需的硬件计算资源并创建新的计算环境,如果有多个计算环境,则同时需要设置默认计算环境用于执行当前工作流。当科研人员完成科学工作流的定制之后,相应的计算环境XML抽象描述会自动生成,其描述了执行当前工作流所需要的软件环境。随后通过调用部署系统相关的WebService服务(例如bootstrap接口)将该计算环境抽象描述发送到部署系统,并完成相应的软件环境配置工作。其他相关的计算环境管理功能(例如停止指定计算环境、启动指定计算环境等)同样能够方便地通过调用部署系统的相关WebService服务(例如stop、start等接口)来完成。
Galaxy中其他相关的计算环境管理功能(例如停止指定计算环境、启动指定计算环境等)同样能够方便地通过调用部署系统的相关WebService服务(例如stop、start等接口)来完成。
执行模块的实现:主要包括两个功能部分:1、调度服务;2、分布式资源管理服务。调度服务主要负责根据科研人员定制的工作流执行流程来调度各个科学工作流步骤的先后执行顺序,以保证科学工作流的正确执行。分布式资源管理服务则负责管理虚拟机计算集群,将当前调度的计算任务分发到相应的计算资源中并以指定的方式执行。
下面的两个部分是阐述如何将任务运行在指定的计算环境中以及利用虚拟机计算集群的资源优势来提高运算速度。
(1)将任务运行在指定的计算环境中,工作流的每个计算任务用“Job”对象来表示,其包含了用于执行某一个计算任务的所有具体信息,部署模块会在配置完成之后返回当前所配置计算环境的详细信息,将当前科学工作流所包含的所有计算任务所对应“Job”对象的配置参数字段信息实时更新为当前指定计算环境的信息,并通过指定的jobplugin(提供与分布式资源管理服务进行通信的命令行接口)和shellplugin(提供与远程计算集群进行通信的功能)将计算任务运行在指定的计算环境中。完整的流程如图5所示,其与图4中的流程一起描述了如何定制、部署以及执行服务。该部分是对工作流执行流程的定义。
(2)为了充分利用虚拟机计算集群的资源优势来提高运算速度,开发了相应的Hadoop(一种大数据处理工具)插件,将计算任务发送到Hadoop集群中,并利用MapReduce(大数据处理工具的计算框架)分布式计算框架来加快任务的执行,通过HadoopStreaming(大数据处理工具的一种计算方式)的方式来执行科学软件,通过该部分执行科学工作流。
表1
provider | 表示部署该计算环境的某一个具体的云计算平台 |
vm_size | 表示需要创建的虚拟机的大小 |
vm_number | 表示该计算环境拥有的虚拟机个数 |
description | 表示描述该计算环境的特征以及用途 |
run_list | 表示需要安装的科学软件的集合 |
package | 表示每个科学软件 |
version | 表示科学软件的版本号 |
表2
name | 表示该科学软件的名称 |
version | 表示需要安装的版本号 |
dependencies | 表示该科学软件所依赖的其他应用软件 |
actions | 表示安装配置该科学软件的具体行为动作 |
create_directory | 新建目录8 --> |
create_user | 新建用户 |
download_package | 下载软件包 |
extract_package | 解压软件包 |
set_environment | 设置环境变量 |
shell_command | 允许直接执行shell命令 |
表3
task | 表示工作流中一个具体的科学计算步骤 |
connector | 表示计算步骤间的先后执行顺序 |
name | 表示该计算步骤的名称 |
command | 元素表示具体的命令行执行程序 |
origin | 元素表示先行任务 |
destination | 表示后继任务 |
Claims (10)
1.一种面向云计算平台的科学工作流系统,其特征在于:包括定制模块、自动化部署模块和执行模块,其中:
定制模块:包括显示层、工作流层、执行层和计算环境层四个层次的定制,其中显示层用于定制科学软件图形化工具;工作流层利用图形化工具定制科学工作流计算流程的各个计算步骤;执行层用于定制科学软件的命令行执行参数;计算环境层用定制计算环境抽象描述模板和科学软件的自动化配置脚本模板;通过计算环境抽象描述模板生成计算环境抽象描述,所述计算环境抽象描述是用于描述执行一个科学工作流计算流程所需的计算资源以及相应的科学软件;当科研人员定制完成一个科学工作流计算流程,并且选择所需的计算资源后,相应的计算环境抽象描述会自动生成;同时利用定制的科学软件自动化配置脚本模板,为自定义科学软件的安装以及配置过程提供依据,科研人员根据该模板来为具体的科学软件编写自动化配置脚本;计算环境抽象描述以及科学软件的自动化配置脚本共同奠定了计算环境自动化部署的基础;
自动化部署模块:接收来自定制模块的计算环境抽象描述,根据计算环境抽象描述,并利用相应的科学软件自动化配置脚本在指定的云计算平台中部署相应的云端计算环境,云端计算环境由多个虚拟机组成的一个计算集群,并安装配置所需的科学软件;
执行模块:在云端计算环境部署完后,调度服务和分布式资源管理服务;调度服务负责根据科研人员定制的科学工作流执行流程来调度各个科学计算步骤的先后执行顺序,以保证科学工作流的正确执行;分布式资源管理服务则负责管理虚拟机计算集群,将当前调度的计算任务分发到相应的计算资源中并以指定的方式执行,所述执行模块中的指定方式是指串行执行或并行执行。
2.根据权利要求1所述的面向云计算平台的科学工作流系统,其特征在于:所述定制模块中,显示层定制的科学软件的图形化工具具有多个通用的功能,包括用于设置执行参数的表单;科研人员通过科学软件图形化工具模板来定制具体的科学软件从而为科学工作流做定制基础,使科学软件能够以交互友好的图形化工具的形式呈现出来。
3.根据权利要求1所述的面向云计算平台的科学工作流系统,其特征在于:所述计算环境抽象描述模板包括两部分内容:一是计算资源;二是软件环境;
采用以下描述的计算环境抽象描述语言模板,计算环境抽象描述语言模板中根元素为“workspace”,代表了一个计算环境,其下有5个子元素“provider”、“vm_size”、“vm_number”、“description”和“run_list”:
“provider”:表示部署该计算环境的某一个具体的云计算平台;
“vm_size”:表示需要创建的虚拟机的大小;
“vm_number”:表示该计算环境拥有的虚拟机个数;
“description”:用于描述该计算环境的特征以及用途;
“run_list”:表示需要安装的科学软件的集合,每个科学软件用“package”元素表示,且其下的“name”元素用于表示该科学软件的名称,“version”元素用于指定该科学软件的版本号;
“provider”、“vm_size”和“vm_number”元素共同决定了计算环境的硬件特征,而“run_list”元素以及其下的“package”元素集合则决定了该计算环境的软件特征,即表明该计算环境能够服务的科学工作流计算流程。
4.根据权利要求1所述的面向云计算平台的科学工作流系统,其特征在于:所述定制模块中,执行层中定制科学软件的命令行执行参数包含多个可控参数,科研人员通过自定义这些执行参数来达到控制执行过程的目的。
5.根据权利要求1所述的面向云计算平台的科学工作流系统,其特征在于:所述定制模块中的科学软件的自动化配置脚本模板的根元素为“recipe”,表示一个科学软件安装配置的“配方”,其下有4个子元素:“name”、“version”、“dependencies”和“actions”,
“name”:表示该科学软件的名称;
“version”:表示需要安装的版本号;
“dependencies”:表示该科学软件所依赖的其他应用软件,每个具体的应用软件用“dependency”元素表示,同时需要指定应用软件的名称和版本号;
“actions”:表示安装配置该科学软件的具体行为动作,包括:
“create_directory”:新建目录;
“create_user”:新建用户;
“download_package”:下载软件包;
“extract_package”:解压软件包;
“set_environment”:设置环境变量;
“shell_command”:允许直接执行shell命令,比如使用源码安装科学软件,则可以使用“make”命令对源码进行编译;
根据上述描述,定制模块得到的计算环境抽象描述,以及相应的科学软件自动化配置脚本将共同指导计算环境的自动化部署过程。
6.根据权利要求1所述的面向云计算平台的科学工作流系统,其特征在于:所述自动化部署模块包括:控制模块、云平台集群自动化部署管理工具Chef、Chef的第三方插件Spiceweasel;
控制模块:为逻辑控制层,接收来自定制模块的计算环境抽象描述,并调用控制模块中的服务将计算环境抽象描述转换成与指定云计算平台相关的Spiceweasel文件,同时负责与ChefServer进行通信;
Spiceweasel:用于帮助Chef批量管理基础设施的命令行工具,Chef提供的基于编程语言Ruby、文件格式JSON或文件格式YAML的描述语言能够帮助简化计算环境XML抽象描述到Chef的内置工具ChefKnife命令行程序的翻译过程;
ChefServer:负责与云计算平台进行通信,根据Spiceweasel文件在指定云计算平台上部署相应的计算环境,管理虚拟机的自动化创建与配置过程。
7.根据权利要求1所述的面向云计算平台的科学工作流系统,其特征在于:所述定制模块中利用图形化工具定制科学工作流计算流程的各个计算步骤的具体实现过程:一个科学工作流计算流程包含多个计算步骤以及这些计算步骤间的内在联系,将科学工作流计算流程形象化为一个DAG图(DirectAcyclicGraph,有向无环图),每个节点表示一个具体的计算步骤或科学软件,一个工作流包含多个软件,按照定制需求分步骤的执行不同的软件,每条边表示计算步骤间的先后执行顺序或数据流向,基于如下所示的工作流描述模板,科研人员能够利用科学软件的图形化工具来可视化地自定义科学工作流流程;为了保证科学工作流的各个计算步骤间的有序执行,基于DAG图以及上面提出的工作流执行流程描述语言;在该模式中构建了工作流执行流程描述模板,工作流执行流程描述模板根元素为“workflow”,表示一个完整的科学工作流流程,其下有2个子元素:“task”和“connector”:
“task”:表示工作流中一个具体的科学工作流步骤,即一个科学软件的执行,其下“name”元素表示该计算步骤的名称,“command”元素表示具体的命令行执行程序;
“connector”:表示计算步骤间的先后执行顺序,其下的“origin”元素表示先行任务,“destination”元素表示后继任务,即只有当某任务的所有先行任务都执行完成之后,该任务才能够被调度执行。
8.根据权利要求1所述的面向云计算平台的科学工作流系统,其特征在于:所述执行模块具体实现过程为:
(1)指定任务运行的计算环境
调度服务将任务运行在指定的计算环境中,簹工作流的每个计算任务用“Job”对象来表示,其包含了用于执行某一个计算任务的所有具体信息,自动化部署模块会在配置完成之后返回当前所配置计算环境的详细信息,将当前科学工作流所包含的所有计算任务所对应“Job”对象的配置参数字段信息实时更新为当前指定计算环境的信息,并通过指定的jobplugin,即提供与分布式资源管理服务进行通信的命令行接口和shellplugin,即提供与远程计算集群进行通信的功能,将计算任务运行在指定的计算环境中;
(2)任务执行
采用部署有Torque分布式资源管理服务的计算集群进行通信,Torque作为portablebatchsystem项目的一个分支,能够对批处理作业以及计算资源进行有效地管理和调度,通过“qsub[shellscript]”指令提交的作业将会被分配到一台空闲的计算节点中进行运算,运算的过程即shellscript执行脚本的计算过程。
9.根据权利要求8所述的面向云计算平台的科学工作流系统,其特征在于:所述任务执行中,为了充分利用虚拟机计算集群的资源优势来提高运算速度,与Hadoop集群、MapReduce分布式计算框架进行结合,利用相应的Hadoop插件,将计算任务发送到Hadoop集群中,并利用MapReduce分布式计算框架来加快任务的执行,通过HadoopStreaming的方式来执行科学软件,通过该部分执行科学工作流。
10.一种面向云计算平台的科学工作流实现方法,其特征在于:包括定制、部署以及执行服务阶段,实现过程如下:
(1)定制阶段,通过分别从显示层、工作流层、执行层和计算环境层四个层次的定制,生成计算环境抽象描述与科学软件的自动化配置描述;
(2)自动化部署阶段,接收来自定制阶段的计算环境抽象描述与科学软件自动化配置脚本,将共同指导计算环境的自动化部署过程;
(3)执行服务阶段,当计算环境部署完成之后,将科学工作流的各个计算步骤准确调度并运行在云端计算环境中;读取科研人员定制的工作流执行流程,并负责调度各个计算步骤的执行顺序,同时对计算集群进行管理和调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510856917.6A CN105447643B (zh) | 2015-11-30 | 2015-11-30 | 一种面向云计算平台的科学工作流系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510856917.6A CN105447643B (zh) | 2015-11-30 | 2015-11-30 | 一种面向云计算平台的科学工作流系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105447643A true CN105447643A (zh) | 2016-03-30 |
CN105447643B CN105447643B (zh) | 2020-07-03 |
Family
ID=55557791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510856917.6A Active CN105447643B (zh) | 2015-11-30 | 2015-11-30 | 一种面向云计算平台的科学工作流系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105447643B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407472A (zh) * | 2016-11-01 | 2017-02-15 | 广西电网有限责任公司电力科学研究院 | 一种订单模式的大数据计算分析任务可视化编辑与管理系统 |
CN106557395A (zh) * | 2015-09-25 | 2017-04-05 | 云智慧(北京)科技有限公司 | 应用性能监控管理方法、系统及系统的应用方法 |
CN106789200A (zh) * | 2016-12-07 | 2017-05-31 | 国云科技股份有限公司 | 一种云平台自定义自动部署的方法 |
CN107678754A (zh) * | 2017-09-11 | 2018-02-09 | 深圳供电局有限公司 | 一种it资源交付系统及方法 |
CN107749867A (zh) * | 2017-09-05 | 2018-03-02 | 清华大学 | 数据中心/集群系统自组织的实现方法及系统 |
CN107784488A (zh) * | 2017-11-20 | 2018-03-09 | 吉林大学 | 一种松散耦合的业务流程管理系统 |
CN107943555A (zh) * | 2017-10-17 | 2018-04-20 | 华南理工大学 | 一种云计算环境下的大数据存储和处理平台及处理方法 |
CN107992364A (zh) * | 2017-10-31 | 2018-05-04 | 用友金融信息技术股份有限公司 | 作业调度方法及作业调度系统 |
CN108255501A (zh) * | 2017-12-29 | 2018-07-06 | 三盟科技股份有限公司 | 一种基于云计算环境下的应用引擎的管理方法及系统 |
CN108304394A (zh) * | 2018-02-08 | 2018-07-20 | 环宇爱译(北京)信息技术有限责任公司 | 翻译项目流程控制系统及其作业步骤时间配置方法 |
CN108647886A (zh) * | 2018-05-10 | 2018-10-12 | 深圳晶泰科技有限公司 | 科学计算流程管理系统 |
CN108900335A (zh) * | 2018-06-28 | 2018-11-27 | 泰康保险集团股份有限公司 | 基于Hadoop的工作流管理方法和装置 |
CN109002351A (zh) * | 2018-06-29 | 2018-12-14 | 国家超级计算天津中心 | 一种嵌套式工作流设置方法 |
CN110675216A (zh) * | 2019-09-03 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 一种账单数据生成方法及装置 |
CN112162727A (zh) * | 2020-09-16 | 2021-01-01 | 深圳晶泰科技有限公司 | 云端高性能科学计算工作流设计控制系统及用户图形界面 |
US11151151B2 (en) | 2018-12-06 | 2021-10-19 | International Business Machines Corporation | Integration template generation |
CN113535326A (zh) * | 2021-07-09 | 2021-10-22 | 粤港澳大湾区精准医学研究院(广州) | 一种基于高通量测序数据的计算流程调度系统 |
CN113791794A (zh) * | 2021-09-13 | 2021-12-14 | 天津大学 | 面向超算应用的算例自动部署方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279945A (zh) * | 2010-06-09 | 2011-12-14 | 中国电信股份有限公司 | 基于soa的业务级流程定制平台和方法 |
CN102567851A (zh) * | 2011-12-29 | 2012-07-11 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流数据布局方法 |
US20150039770A1 (en) * | 2011-02-09 | 2015-02-05 | Cliqr Technologies, Inc. | Apparatus, systems and methods for deployment and management of distributed computing systems and applications |
US20150212812A1 (en) * | 2014-01-29 | 2015-07-30 | Dell Products L.P. | Declarative and pluggable business logic for systems management |
CN104850405A (zh) * | 2015-05-25 | 2015-08-19 | 武汉众联信息技术股份有限公司 | 一种智能可配置工作流引擎及其实现方法 |
-
2015
- 2015-11-30 CN CN201510856917.6A patent/CN105447643B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279945A (zh) * | 2010-06-09 | 2011-12-14 | 中国电信股份有限公司 | 基于soa的业务级流程定制平台和方法 |
US20150039770A1 (en) * | 2011-02-09 | 2015-02-05 | Cliqr Technologies, Inc. | Apparatus, systems and methods for deployment and management of distributed computing systems and applications |
CN102567851A (zh) * | 2011-12-29 | 2012-07-11 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流数据布局方法 |
US20150212812A1 (en) * | 2014-01-29 | 2015-07-30 | Dell Products L.P. | Declarative and pluggable business logic for systems management |
CN104850405A (zh) * | 2015-05-25 | 2015-08-19 | 武汉众联信息技术股份有限公司 | 一种智能可配置工作流引擎及其实现方法 |
Non-Patent Citations (2)
Title |
---|
张园 等: "一种基于工作流的云系统自动化部署架构", 《电信科学》 * |
林小光 等: "基于构件组装的科学工作流架构的研究与实现", 《微电子学与计算机》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557395A (zh) * | 2015-09-25 | 2017-04-05 | 云智慧(北京)科技有限公司 | 应用性能监控管理方法、系统及系统的应用方法 |
CN106557395B (zh) * | 2015-09-25 | 2021-05-11 | 云智慧(北京)科技有限公司 | 应用性能监控管理方法、系统及系统的应用方法 |
CN106407472B (zh) * | 2016-11-01 | 2019-08-20 | 广西电网有限责任公司电力科学研究院 | 一种订单模式的大数据计算分析任务可视化编辑与管理系统 |
CN106407472A (zh) * | 2016-11-01 | 2017-02-15 | 广西电网有限责任公司电力科学研究院 | 一种订单模式的大数据计算分析任务可视化编辑与管理系统 |
CN106789200A (zh) * | 2016-12-07 | 2017-05-31 | 国云科技股份有限公司 | 一种云平台自定义自动部署的方法 |
CN107749867A (zh) * | 2017-09-05 | 2018-03-02 | 清华大学 | 数据中心/集群系统自组织的实现方法及系统 |
CN107749867B (zh) * | 2017-09-05 | 2020-04-24 | 清华大学 | 数据中心/集群系统自组织的实现方法及系统 |
CN107678754A (zh) * | 2017-09-11 | 2018-02-09 | 深圳供电局有限公司 | 一种it资源交付系统及方法 |
CN107678754B (zh) * | 2017-09-11 | 2020-11-17 | 深圳供电局有限公司 | 一种it资源交付系统及方法 |
CN107943555A (zh) * | 2017-10-17 | 2018-04-20 | 华南理工大学 | 一种云计算环境下的大数据存储和处理平台及处理方法 |
CN107943555B (zh) * | 2017-10-17 | 2021-11-23 | 华南理工大学 | 一种云计算环境下的大数据存储和处理平台及处理方法 |
CN107992364A (zh) * | 2017-10-31 | 2018-05-04 | 用友金融信息技术股份有限公司 | 作业调度方法及作业调度系统 |
CN107784488A (zh) * | 2017-11-20 | 2018-03-09 | 吉林大学 | 一种松散耦合的业务流程管理系统 |
CN108255501A (zh) * | 2017-12-29 | 2018-07-06 | 三盟科技股份有限公司 | 一种基于云计算环境下的应用引擎的管理方法及系统 |
CN108304394A (zh) * | 2018-02-08 | 2018-07-20 | 环宇爱译(北京)信息技术有限责任公司 | 翻译项目流程控制系统及其作业步骤时间配置方法 |
CN108647886A (zh) * | 2018-05-10 | 2018-10-12 | 深圳晶泰科技有限公司 | 科学计算流程管理系统 |
CN108647886B (zh) * | 2018-05-10 | 2021-07-13 | 深圳晶泰科技有限公司 | 科学计算流程管理系统 |
CN108900335A (zh) * | 2018-06-28 | 2018-11-27 | 泰康保险集团股份有限公司 | 基于Hadoop的工作流管理方法和装置 |
CN109002351A (zh) * | 2018-06-29 | 2018-12-14 | 国家超级计算天津中心 | 一种嵌套式工作流设置方法 |
CN111475271B (zh) * | 2018-06-29 | 2023-04-25 | 国家超级计算天津中心 | 一种基于外层计算节点的工作流设置方法 |
CN111475271A (zh) * | 2018-06-29 | 2020-07-31 | 国家超级计算天津中心 | 一种基于外层计算节点的工作流设置方法 |
US11151151B2 (en) | 2018-12-06 | 2021-10-19 | International Business Machines Corporation | Integration template generation |
CN110675216A (zh) * | 2019-09-03 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 一种账单数据生成方法及装置 |
CN112162727A (zh) * | 2020-09-16 | 2021-01-01 | 深圳晶泰科技有限公司 | 云端高性能科学计算工作流设计控制系统及用户图形界面 |
CN113535326A (zh) * | 2021-07-09 | 2021-10-22 | 粤港澳大湾区精准医学研究院(广州) | 一种基于高通量测序数据的计算流程调度系统 |
CN113535326B (zh) * | 2021-07-09 | 2024-04-12 | 粤港澳大湾区精准医学研究院(广州) | 一种基于高通量测序数据的计算流程调度系统 |
CN113791794A (zh) * | 2021-09-13 | 2021-12-14 | 天津大学 | 面向超算应用的算例自动部署方法及系统 |
CN113791794B (zh) * | 2021-09-13 | 2023-09-12 | 天津大学 | 面向超算应用的算例自动部署方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105447643B (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105447643A (zh) | 一种面向云计算平台的科学工作流系统及方法 | |
CN109286653B (zh) | 智能云工程平台 | |
US10324709B2 (en) | Apparatus and method for validating application deployment topology in cloud computing environment | |
Jayasinghe et al. | Expertus: A generator approach to automate performance testing in iaas clouds | |
CN100543701C (zh) | 一种实现嵌入式软件异常测试的方法及系统 | |
CN106933609B (zh) | Android应用程序安装包的生成方法及装置 | |
CN113032963B (zh) | 一种Simulink模型仿真加速方法及装置 | |
WO2011150777A1 (zh) | Web应用的开发装置及其开发方法 | |
CN104156265A (zh) | 定时任务的处理方法和处理装置 | |
CN109445323B (zh) | 一种基于web的分布式智能测控软件平台设计方法 | |
CN113779477A (zh) | 一种基于PaaS云平台的流水线发布方法及系统 | |
Silvano et al. | AutoTuning and Adaptivity appRoach for Energy efficient eXascale HPC systems: the ANTAREX Approach | |
CN110109684B (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
Wettinger et al. | Dyn tail-dynamically tailored deployment engines for cloud applications | |
Boob et al. | Automated instantiation of heterogeneous fast flow CPU/GPU parallel pattern applications in clouds | |
CN106484452A (zh) | 一种软件平台的统一配置管理方法和装置 | |
Khoshkbarforoushha et al. | Dimensions for evaluating cloud resource orchestration frameworks | |
Zúñiga-Prieto et al. | Incremental integration of microservices in cloud applications | |
CN115794355B (zh) | 任务处理方法、装置、终端设备及存储介质 | |
CN115421847A (zh) | 支持多引擎的研发运维平台和cicd流水线的管理方法及设备 | |
CN105373409A (zh) | 基于Hadoop的测试用例分布式测试方法及系统 | |
CN112685051A (zh) | 自动执行shell脚本的方法、装置、平台及存储介质 | |
CN109583071B (zh) | 一种基于云仿真的并行优化方法和系统 | |
CN114070764B (zh) | 网络功能虚拟化nfv测试方法、装置和系统 | |
CN113312429B (zh) | 区块链中的智能合约管理系统、方法、介质和产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |