一种跨语言跨平台算法移植及运行调用管理系统技术方案

技术编号:38610009 阅读:8 留言:0更新日期:2023-08-26 23:39
本发明专利技术涉及大数据任务调度引擎技术领域,具体涉及一种跨语言跨平台算法移植及运行调用管理系统,该系统包括策略调度模块和策略编排模块,策略调度模块包括数据存储单元以及调度引擎单元,策略编排模块包括策略模型单元、策略任务单元以及策略变量单元,策略变量单元包括策略变量,策略任务单元用于定义碎片化的可复用逻辑,策略模型单元用于将策略任务编排为能够实现业务算法的DAG流程并建立策略模型,在本方案中,通过SVG+Canvas技术实现了DAG流程的可视化编排,以及具体的编排控制流程;定义了策略变量、策略任务、策略调度等概念,通过大数据任务调度引擎的扩展实现了主流编程语言及脚本的运行环境支撑。语言及脚本的运行环境支撑。语言及脚本的运行环境支撑。

【技术实现步骤摘要】
一种跨语言跨平台算法移植及运行调用管理系统


[0001]本专利技术涉及大数据任务调度引擎
,具体涉及一种跨语言跨平台算法移植及运行调用管理系统。

技术介绍

[0002]各行各业的深度信息化建设都离不开专业算法的支持,煤炭行业也是如此,从简单如数据协议及格式解析、数据统计,到具体专业的数据分析、数据预测、跨系统的预警告警,再到基于AI的图像识别、深度专业应用等,都离不开具体算法的支撑。传统信息化建设中,项目中的算法往往与项目本身深度绑定,需要使用项目开发的编程语言、依赖项目部署的操作系统及运行环境、需要对项目架构和开发模式有具体的了解,但由于特定算法需要依赖大量的深度专业知识,通常需要寻找外部专家团队进行参与提供算法,再由内部团队进行消化理解,编程实现,这样使得项目的建设周期和成本都大大增加。
[0003]通常情况下,实现行业或领域内的专业算法需要IT技术团队与行业/领域专家团队或院校进行深度合作,由专家团队或院校提出相关算法,或根据自身技术能力通过擅长的编程语言或技术实现算法,再由IT技术团队根据自身项目的技术要求和运行环境限制进行具体的实现或移植,通使用的技术包括java、c/c++、python、nodejs、shell脚本、mapReduce、spark、flink等等,涉及到的数据存储系统通常包括关系型数据库、Redis等缓存、Kafka消息队列、HDFS分布式存储、HBase列式存储以及Hive等,涉及到的环境及平台通常包括了物理机环境、虚拟机环境、容器环境、大数据环境等等,可见涉猎技术非常广泛。
[0004]随着大数据技术的不断成熟,市面上出现了大量的大数据技术培训机构,为大数据领域带来了大量的新鲜血液,但由于大数据技术与传统的IT技术(如web开发、java后台开发、前端技术)等有着巨大的差异,因此大数据的人才往往在系统架构、面向对象、逻辑抽象/复用等方面缺乏经验。而项目中很多算法具有相似的部分,甚至有些跨行业的项目也有共通的逻辑,但公共的算法往往是碎片化的,是整体算法的一小部分,因此如何能使得大数据技术人员能够有效的积累并复用这些公共的碎片化算法将为后续的项目节省大量的开发成本。
[0005]综上所述,如何能在不同项目中更加有效的组织外部专家团队、大数据技术人才、传统IT技术人员,并实现基于碎片化算法和逻辑的不断积累是未来项目深度增加与成本降低的关键。

技术实现思路

[0006]针对现有技术中存在的不足,本专利技术目的是提供一种能够提高跨领域合作效率,使得各方能够使用自身熟悉的编程语言来实现具体算法,而无需为每个项目所使用的编程技术所限制,最终降低成本并形成算法资产库,最大化商业价值的跨语言跨平台算法移植及运行调用管理系统。
[0007]为解决上述技术问题,本专利技术提供的技术方案是:一种跨语言跨平台算法移植及
运行调用管理系统,该系统包括策略调度模块和策略编排模块,所述策略调度模块包括数据存储单元以及调度引擎单元,所述策略编排模块包括策略模型单元、策略任务单元以及策略变量单元;
[0008]所述策略变量单元包括若干个策略变量,所述策略变量用于定义特定任务中可复用的参数,并同时定义参数的名称、类型以及默认值;
[0009]所述策略任务单元用于定义碎片化的可复用逻辑,所述策略变量单元将所述策略变量输入到所述策略任务单元和所述策略模型单元中,所述策略任务单元根据接收得到的所述策略变量建立策略任务,并将策略任务输入到所述策略模型单元中;
[0010]所述策略模型单元用于将策略任务编排为能够实现业务算法的DAG流程并建立策略模型,所述调度引擎单元根据所述策略模型单元建立的策略模型进行调度执行。
[0011]进一步地,所述调度引擎单元通过三种方式调度执行,分别为基于cron格式的定时执行、基于事件的触发执行和手动执行。
[0012]进一步地,同一个所述策略模型可通过不同的调度执行方式反复执行。
[0013]进一步地,在单体的策略任务编写完成后,所述策略任务单元将其打包为可执行单元。
[0014]进一步地,所述策略模型单元的DAG流程支持单体策略任务的串行执行和并行执行,对于串行任务,上级任务的输出是下级任务的输入,对于并行任务,所有并行任务执行结束后才继续执行后续任务。
[0015]进一步地,在策略模型单元编排的过程中,配置每个单体任务的变量值。
[0016]与现有技术相比,本方案具备的显著优点有:
[0017]在本技术方案中,通过SVG+Canvas技术实现了DAG流程的可视化编排,以及具体的编排控制流程;同时,本方案定了策略变量、策略任务、策略调度等概念,通过大数据任务调度引擎的扩展实现了主流编程语言及脚本的运行环境支撑。
附图说明
[0018]附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:
[0019]图1为本专利技术的整体架构示意图;
[0020]图2为策略任务支持的语言/脚本示意图;
[0021]图3为策略任务定义的输入/输出结构示意图;
[0022]图4为流程中的并行执行和串行执行的任务示意图;
[0023]图5为可视化的进行DAG流程编排操作示意图;
[0024]图6为在不同策略模型中复用策略任务的情况示意图;
[0025]图7为在同一策略模型中,通过不同参数复用同一策略任务的情况示意图;
[0026]图8为整体算法优化升级后的策略模型示意图;
[0027]图9为基于cron格式的定时策略启动策略模型示意图;
[0028]图10为策略模型的监控管理示意图。
具体实施方式
[0029]以下结合附图对本专利技术的优选实例进行说明,应当理解,此处所描述的优选实例仅用于说明和解释本专利技术,并不用于限定本专利技术。
[0030]如图1所示,本专利技术所述的跨语言跨平台算法移植及运行调用管理系统,包括策略调度模块和策略编排模块,其中策略调度模块包括数据存储单元以及调度引擎单元,策略编排模块包括策略模型单元、策略任务单元以及策略变量单元。
[0031]策略变量单元包括若干个策变量,策略变量用于定义特定任务中可服用的参数,如用于鉴权的用户名和密码、告警上下限等等。策略变量定义了参数的名称和类型以及默认值,具体变量值可以在策略任务以及策略模型中进行具体配置。
[0032]策略任务单元用于定义碎片化的可复用逻辑,是整体算法中的一部分,如登陆外部系统获取token、通过采样值计算曲线或面的某个具体插值算法、基于四级阈值或某个特定预警告警判断的逻辑等。策略任务可以使用运行时策略变量,使得逻辑更具扩展性和复用性。同时策略任务需要确定好输入和输出格式,以实现不同策略任务之间的上下衔接和部分升级替换。
[0033]单体策略任务支持且不限于如下语言和脚本:Java程序、Python程序、C/C++程序、Nodejs程序、Shel本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跨语言跨平台算法移植及运行调用管理系统,其特征在于,该系统包括策略调度模块和策略编排模块,所述策略调度模块包括数据存储单元以及调度引擎单元,所述策略编排模块包括策略模型单元、策略任务单元以及策略变量单元;所述策略变量单元包括若干个策略变量,所述策略变量用于定义特定任务中可复用的参数,并同时定义参数的名称、类型以及默认值;所述策略任务单元用于定义碎片化的可复用逻辑,所述策略变量单元将所述策略变量输入到所述策略任务单元和所述策略模型单元中,所述策略任务单元根据接收得到的所述策略变量建立策略任务,并将策略任务输入到所述策略模型单元中;所述策略模型单元用于将策略任务编排为能够实现业务算法的DAG流程并建立策略模型,所述调度引擎单元根据所述策略模型单元建立的策略模型进行调度执行。2.根据权利要求1所述的跨语言跨平台算法移植及运行调用管理系统,其特征在于...

【专利技术属性】
技术研发人员:范文杰张泽辉杨海峰
申请(专利权)人:北京凡米物联科技有限公司
类型:发明
国别省市:

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

1