一种面向云计算平台的科学工作流系统及方法

文档序号:9688103阅读:326来源:国知局
一种面向云计算平台的科学工作流系统及方法
【技术领域】
[0001] 本发明设及面向云计算平台的科学工作流系统及方法,属于云计算领域,特别是 对于大规模的科学数据分析任务问题。
【背景技术】
[0002] 科学数据分析目前在多个科学研究领域(包括生物科学、气象科学W及高能物理 科学等)都扮演着越来越重要的角色。每一个科学数据分析任务往往都包含多个计算步骤, 每个计算步骤代表着一个数据分析处理过程。然而小规模科研团队或个人由于没有足够的 计算机技术支持,使得他们在进行科学数据分析的时候遭遇到了障碍,主要体现在Ξ个方 面:(1)实验室机房计算资源的限制;(2)需要手动安装软件工具来部署计算环境;(3)需要 手动跟踪并执行各个计算步骤。对于大规模的科学数据分析任务,运Ξ个受限因素将会更 加凸显。
[0003] 目前科学工作流运一技术路线本身并不能解决计算资源受限W及手动部署计算 环境运些问题,不存在工作流所需的计算环境精准的定制服务,W及不存在自动化的科学 工作流计算环境的部署过程和科学工作流的执行过程。一些科学网关基于SaaS软件交付模 式提供了面向社区的科学工作流服务框架,主要用于开发面向多租户的科学数据分析平 台,但是它们不能为复杂的科学数据分析流程提供更为精准的定制服务。一个面向多租户 的科学数据分析平台时,其最大的挑战是如何为科研人员在软件工具、数据分析流程甚至 计算环境方面提供足够的定制功能。一些基于Web Service的框架支持将数据分析应用程 序部署在相应的计算中屯、中,并通过将运些应用程序封装为Web Service的方式供科研人 员来组装定制科学数据分析流程。运些软件框架虽然简化了定制的过程,使得能够W流水 线化的方式来组装科学数据分析流程。但是运些科学网关无法提供同质化的运行时环境的 定制,不能够为所有的科学数据分析流程提供同质化的运行时环境:相同的分布式计算资 源和软件环境,即无法为具有多样性的科学数据分析实验提供具有针对性的运行时环境。

【发明内容】

[0004] 本发明技术解决问题:克服现有技术的不足,提供一种面向云计算平台的科学工 作流系统及方法,为科研人员提供可定制、自动化部署、自动化执行的科学工作流服务,科 学工作流服务能够根据用户所定制的工作流W及计算资源需求在云平台中自动部署相应 的计算环境并进行科学工作流。
[000引本发明的技术解决方案:一种面向云计算平台的科学工作流系统,包括定制模块、 自动化部署模块和执行模块,其中:
[0006]定制模块:包括显示层、工作流层、执行层和计算环境层四个层次的定制,其中显 示层用于定制科学软件图形化工具;工作流层利用图形化工具定制科学工作流计算流程的 各个计算步骤;执行层用于定制科学软件的命令行执行参数;计算环境层用定制计算环境 抽象描述模板和科学软件的自动化配置脚本模板;通过计算环境抽象描述模板生成计算环 境抽象描述,所述计算环境抽象描述是用于描述执行一个科学工作流计算流程所需的计算 资源W及相应的科学软件;当科研人员定制完成一个科学工作流计算流程,并且选择所需 的计算资源后(比如虚拟机个数W及虚拟机大小等),相应的计算环境抽象描述会自动生 成;同时利用定制的科学软件自动化配置脚本模板,为自定义科学软件的安装W及配置过 程提供依据,科研人员根据该模板来为具体的科学软件编写自动化配置脚本;计算环境抽 象描述W及科学软件的自动化配置脚本共同奠定了计算环境自动化部署的基础;
[0007] 自动化部署模块:接收来自定制模块的计算环境抽象描述,根据计算环境抽象描 述,并利用相应的科学软件自动化配置脚本在指定的云计算平台中部署相应的云端计算环 境,云端计算环境由多个虚拟机组成的一个计算集群,并安装配置所需的科学软件;
[0008] 执行模块:在云端计算环境部署完后,调度服务和分布式资源管理服务;调度服务 负责根据科研人员定制的科学工作流执行流程来调度各个科学计算步骤的先后执行顺序, W保证科学工作流的正确执行;分布式资源管理服务则负责管理虚拟机计算集群,将当前 调度的计算任务分发到相应的计算资源中并W指定的方式执行,所述执行模块中的指定方 式是指串行执行或并行执行。
[0009] 所述定制模块中,显示层定制的科学软件的图形化工具具有多个通用的功能,包 括用于设置执行参数的表单;科研人员通过科学软件图形化工具模板来定制具体的科学软 件从而为科学工作流做定制基础,使科学软件能够W交互友好的图形化工具的形式呈现出 来。
[0010] 所述计算环境抽象描述模板包括两部分内容:一是计算资源(即虚拟机个数W及 每台虚拟机的CPU核数等配置参数);二是软件环境(即所需的相应的科学软件集合)
[0011] 采用W下描述的计算环境抽象描述语言模板表示如表1所示,计算环境抽象描述 语言模板中根元素为"workspace",代表了一个计算环境,其下有5个子元素"provider"、 vm_size 、 vm_number 、 description 才口 run_list :
[0012] "provider":表示部署该计算环境的某一个具体的云计算平台;
[001引 "vm_size":表示需要仓幡的虚拟机的大小;
[0014] "vmjiumber":表示该计算环境拥有的虚拟机个数;
[0015] "description":用于描述该计算环境的特征W及用途;
[0016] "run_list":表示需要安装的科学软件的集合,每个科学软件用"package"元素表 示,且其下的"name"元素用于表示该科学软件的名称,"version"元素用于指定该科学软件 的版本号;
[0017] "provider"、"vm_size"和"vm_numbe;r"元素共同决定了计算环境的硬件特征,而 "run_list"元素 W及其下的"package"元素集合则决定了该计算环境的软件特征,即表明 该计算环境能够服务的科学工作流计算流程。
[0018] 所述定制模块中,执行层中定制科学软件的命令行执行参数包含多个可控参数, 科研人员通过自定义运些执行参数来达到控制执行过程的目的。
[0019] 所述定制模块中的科学软件的自动化配置脚本模板的根元素为"recipe",表示一 个科学软件安装配置的"配方',其下有4个子元素:"name"、"version"、"dependencies"和 "actions"如表2所示:
[0020] "name":表示该科学软件的名称;
[0021 ] "version":表示需要安装的版本号;
[0022] "dependencies":表示该科学软件所依赖的其他应用软件,每个具体的应用软件 用"dependency"元素表示,同时需要指定应用软件的名称和版本号;
[0023] "actions":表示安装配置该科学软件的具体行为动作,包括:
[0024] "create_directory":新建目录;
[00巧]"create_use;r":新建用户;
[0026] "download_package":下载软件包;
[0027] "extract_package":解压软件包;
[0028] "set_envi;ronment":设置环境变量;
[0029] "shell_comman(T :允许直接执行shell命令,比如使用源码安装科学软件,则可W 使用"make"命令对源码进行编译;
[0030] 根据上述描述,定制模块得到的计算环境抽象描述,W及相应的科学软件自动化 配置脚本将共同指导计算环境的自动化部署过程。
[0031] 所述自动化部署模块包括:控制模块、云平台集群自动化部署管理工具化ef、^ef 的第Ξ方插件Spiceweasel、;其中控制模炔基于Chef和Spiceweasel之上,是自动化部署模 块的逻辑控制层,是整个核屯、;
[0032] 控制模块:为逻辑控制层,接收来自定制模块的计算环境抽象描述,并调用控制模 块中的服务将计算环境抽象描述转换成与指定云计算平台相关的Spiceweasel文件,同时 负责与化ef Server进行通信;
[0033] Spiceweasel:用于帮助化e巧比量管理基础设施的命令行工具,化ef提供的基于编 程语言Ruby、文件格式JS0N或文件格式YAML的描述语言能够帮助简化计算环境XML抽象描 述到化ef的内置工具化ef Knife命令行程序的翻译过程;
[0034]化ef Server:负责与云计算平台进行通信,根据Spiceweasel文件在指定云计算 平台上部署相应的计算环境,管理虚拟机的自动化创建与配置过程。
[0035] 所述定制模块中利用图形化工具定制科学工作流计算流程的各个计算步骤的具 体实现过程:一个科学工作流计算流程包含多个计算步骤W及运些计算步骤间的内在联 系,将科学工作流计算流程形象化为一个DAG图(Direct A巧clic Graph,有向无环图),每 个节点表示一个具体的计算步骤或科学软件,一个工作流包含多个软件,按照定制需求分 步骤的执行不同的软件,每条边表示计算步骤间的先后执行顺序或数据流
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1