一种不限开发语言的混合任务编排引擎的方法转让专利

申请号 : CN202211108615.7

文献号 : CN115202641B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙飞唐有智曾天虎梁雄艳王晓晓

申请人 : 深圳联友科技有限公司

摘要 :

本发明提供了一种不限开发语言的混合任务编排引擎的方法,包括以下步骤:S1,用户端根据业务任务要实现的场景开发对应的应用程序,并将开发完成的所有的应用程序打包上传到平台上,通过应用管理模块进行统一管理,用户根据场景流程编排剧本并将剧本与场景关联,将要执行的业务任务参数发送至服务端;S2,服务端接收到所述业务任务参数后,并进行相关业务任务创建与数据存储,然后将要执行的业务任务参数发送至任务控制中心;本发明的优势在于对平台调用的脚本程序不再有任何的限制,执行引擎的语言环境用户可以根据模版进行自由选择,不再局限于产品本身的开发语言;每个用户可以选择自己熟悉或者易上手的开发语言快速开展工作。

权利要求 :

1.一种不限开发语言的混合任务编排引擎的方法,其特征在于,所述方法包括以下步骤:

S1,用户端根据业务任务要实现的场景开发对应的应用程序,并将开发完成的所有的应用程序打包上传到平台上,通过应用管理模块进行统一管理,用户根据场景流程编排剧本并将剧本与场景关联,将要执行的业务任务参数发送至服务端;

S2,服务端接收到所述业务任务参数后,进行相关业务任务创建与数据存储,然后将要执行的业务任务参数发送至任务控制中心;

S3,所述任务控制中心获取业务任务参数后进行业务任务参数提取,得到要执行的剧本、IP数据、执行方式,并按照剧本的执行顺序将第一个节点的节点任务发送任务队列后进行执行,当第一节点任务执行完成后,将结果返回任务控制中心,任务控制中心根据执行的结果数据中的状态判断后续节点是否执行,如果此节点的执行结果数据中的状态为成功,则获取剧本的后续节点,进行后续节点任务分发,如果此节点的执行结果数据中的状态为失败,则停止后续节点执行,依次循环上述判断,直到剧本执行完成;

S4,多语言任务执行引擎中心根据任务控制层发送的业务任务加载指定的脚本程序,并调用应用程序脚本执行的服务,完成任务的调用执行后通过任务控制中心分发根据待执行的节点开发语言类型,将要执行的任务发送到其对应的任务队列中,由多语言任务执行引擎中心监听服务获取到要执行的任务,完成节点的任务执行并返回执行结果至任务控制中心。

2.根据权利要求1所述的不限开发语言的混合任务编排引擎的方法,其特征在于,在所述步骤S1中,所述场景至少包括IP封禁的场景,用户端在平台上建立一个IP封禁的场景,用户根据场景流程编排剧本将剧本与IP封禁的场景关联,同时在新建的场景中输入要封禁的IP并将要执行的业务任务参数发送至服务端。

3.根据权利要求2所述的不限开发语言的混合任务编排引擎的方法,其特征在于,所述步骤S2还包括以下步骤:S21,所述服务端对接收到的所述业务任务参数进行数据校验及初始化后将要执行的业务任务参数发送至任务控制中心。

4.根据权利要求3所述的不限开发语言的混合任务编排引擎的方法,其特征在于,在所述步骤S21中,所述数据校验包括对数据类型、参数必填等校验,所述初始化包括增加用户基本信息、任务环境数据等数据插入。

5.根据权利要求1所述的不限开发语言的混合任务编排引擎的方法,其特征在于,在所述步骤S3中,所述任务控制中心包括任务启动控制与任务逻辑控制中心。

6.根据权利要求5所述的不限开发语言的混合任务编排引擎的方法,其特征在于,所述步骤S3还包括以下步骤:S31,所述任务控制中心获取所述业务任务参数后,所述任务启动控制根据要执行的业务任务参数启动任务。

7.根据权利要求6所述的不限开发语言的混合任务编排引擎的方法,其特征在于,所述步骤S3还包括以下步骤:S32,启动任务后所述任务启动控制解析所述业务任务参数,得到用户执行的剧本ID、剧本初始化参数、任务执行方式定时或定量,并将解析后的用户执行的剧本ID、剧本初始化参数、任务执行方式定时或定量数据返回到任务启动控制,所述任务启动控制在任务启动时进行任务执行的参数解析,根据接收到的参数进行再次解析,并提取任务执行相关的参数,然后根据参数发起任务执行启动剧本执行。

8.根据权利要求7所述的不限开发语言的混合任务编排引擎的方法,其特征在于,所述步骤S3还包括以下步骤:S33,启动剧本执行后所述任务逻辑控制中心解析剧本,得到程序脚本,按照剧本的执行顺序依次执行,识别各个节点的开发语言,并根据各个节点的脚本程序语言将对应的任务发送至对应的任务队列,准备执行。

9.根据权利要求8所述的不限开发语言的混合任务编排引擎的方法,其特征在于,所述步骤S3还包括以下步骤:S34,节点任务执行完成后,将结果返回任务逻辑控制中心,所述任务逻辑控制中心根据此节点的执行结果数据中的状态判断后续节点是否执行,如果此节点的执行结果数据中的状态为成功,则获取剧本的后续节点,进行后续节点任务分发至对应的任务队列,通过各自的语言引擎进行任务执行并完成各个节点的任务执行,如此循环上述步骤,如果此节点的执行结果数据中的状态为失败,则停止后续节点执行。

10.根据权利要求1所述的不限开发语言的混合任务编排引擎的方法,其特征在于,所述方法还包括步骤S5,用于将步骤S1至步骤S4中的平台数据、任务执行过程记录以及多语言执行的脚本程序进行数据存储。

说明书 :

一种不限开发语言的混合任务编排引擎的方法

技术领域

[0001] 本发明涉及信息技术及数据业务技术领域,更具体地说,涉及一种不限开发语言的混合任务编排引擎的方法。

背景技术

[0002] SOAR(Security Orchestration, Automation and Response,安全编排自动化与响应),由Gartner最早2015年提出,主要为了解决(但不限于)安全响应问题的解决方案,是一种从各种来源获取输入,并应用工作流来联动各个安全设备、应用、服务等完成特定的安全运营流程,使安全流程能自动执行从而提高安全响应速度。脚本程序,是开发人员根据SOAR产品提供的开发规范开发用以联动安全设备、服务、系统的代码程序,用来完成特定的安全业务流程(如防火墙封禁IP的动作脚本程序化)。剧本,是一个完整的业务流程集合,由各个节点通过拖拽、连线组合在一起,使按照一定的方向从开始执行,直到最后结束的过程。
[0003] SOAR要能联动各个安全设备、服务、系统,则需要开发人员进行需求调研后,针对设备、服务、系统进行脚本程序开发,完成联动所需要的程序编码,最后将程序打包后上传到SOAR平台,供平台调用。
[0004] 在当前的SOAR产品中,目前企业遇到的问题主要如下:
[0005] 以往的企业环境中,安全运营的工作主要依赖人工登录安全设备进行告警查看、分析,发现异常后进行安全处置,但是在非工作日则处于无人看守的状态,安全告警、事件严重滞后,导致无法快速规避、止损,所以现在很多企业开始引入SOAR技术来解决此缺陷。SOAR产品研发,其中最重要的部分就是任务执行引擎,用来执行用户编排后的各种不同的安全业务流程,并执行各个节点的不同设备、应用、服务的脚本程序,这时就涉及到开发语言支持的问题,选择了一种语言就意味着客户侧的所以脚本程序必须使用这种开发语言,就会存在不自由、受限制的情况。
[0006] 开发语言的限制一方面是SOAR产品本身的开发语言限制,另一方面是由于产品架构的原因导致。SOAR产品本身的语言(主要指后端服务语言)是单一的,这是必然的,但是任务执行引擎支持的可执行的脚本程序的语言应该是开放的、自由的,这样可以让用户根据自己的实际情况选择合适自己的开发语言来完成自己的脚本程序,这就需要在产品架构上做突破。

发明内容

[0007] 本发明要解决的技术问题在于,针对上述技术方案存在的不足,提供一种对平台调用的脚本程序不再有任何的限制,执行引擎的语言环境用户可以根据模版进行自由选择,不再局限于产品本身的开发语言的不限开发语言的混合任务编排引擎的方法。
[0008] 本发明提供一种不限开发语言的混合任务编排引擎的方法,所述方法包括以下步骤:
[0009] S1,用户端根据业务任务要实现的场景开发对应的应用程序,并将开发完成的所有的应用程序打包上传到平台上,通过应用管理模块进行统一管理,用户根据场景流程编排剧本并将剧本与场景关联,将要执行的业务任务参数发送至服务端;
[0010] S2,服务端接收到所述业务任务参数后,进行相关业务任务创建与数据存储,然后将要执行的业务任务参数发送至任务控制中心;
[0011] S3,所述任务控制中心获取业务任务参数后进行业务任务参数提取,得到要执行的剧本、IP数据、执行方式,并按照剧本的执行顺序将第一个节点的节点任务发送任务队列后进行执行,当第一节点任务执行完成后,将结果返回任务控制中心,任务控制中心根据执行的结果数据中的状态判断后续节点是否执行,如果此节点的执行结果数据中的状态为成功,则获取剧本的后续节点,进行后续节点任务分发,如果此节点的执行结果数据中的状态为失败,则停止后续节点执行,依次循环上述判断,直到剧本执行完成;
[0012] S4,多语言任务执行引擎中心根据任务控制层发送的业务任务加载指定的脚本程序,并调用应用程序脚本执行的服务,完成任务的调用执行后通过任务控制中心分发根据待执行的节点开发语言类型,将要执行的任务发送到其对应的任务队列中,由多语言任务执行引擎中心监听服务获取到要执行的任务,完成节点的任务执行并返回执行结果至任务控制中心。
[0013] 在本发明所述的不限开发语言的混合任务编排引擎的方法中;在所述步骤S1中,所述场景至少包括IP封禁的场景,用户端在平台上建立一个IP封禁的场景,用户根据场景流程编排剧本将剧本与IP封禁的场景关联,同时在新建的场景中输入要封禁的IP并将要执行的业务任务参数发送至服务端。
[0014] 在本发明所述的不限开发语言的混合任务编排引擎的方法中;所述步骤S2还包括以下步骤:
[0015] S21,所述后端服务对接收到的所述业务任务参数进行数据校验及初始化后将要执行的业务任务参数发送至任务控制中心。
[0016] 在本发明所述的不限开发语言的混合任务编排引擎的方法中;在所述步骤S21中,所述数据校验包括对数据类型、参数必填等校验,所述初始化包括增加用户基本信息、任务环境数据等数据插入。
[0017] 在本发明所述的不限开发语言的混合任务编排引擎的方法中;在所述步骤S3中,所述任务控制中心包括任务启动控制与任务逻辑控制中心。
[0018] 在本发明所述的不限开发语言的混合任务编排引擎的方法中;所述步骤S3还包括以下步骤:
[0019] S31,所述任务控制中心获取所述业务任务参数后,所述任务启动控制根据要执行的业务任务参数启动任务。
[0020] 在本发明所述的不限开发语言的混合任务编排引擎的方法中;所述步骤S3还包括以下步骤:
[0021] S32,启动任务后所述任务启动控制解析所述业务任务参数,得到用户执行的剧本ID、剧本初始化参数、任务执行方式定时或定量,并将解析后的用户执行的剧本ID、剧本初始化参数、任务执行方式定时或定量数据返回到任务启动控制,所述任务启动控制在任务启动时进行任务执行的参数解析,根据接收到的参数进行再次解析,并提取任务执行相关的参数,然后根据参数发起任务执行启动剧本执行。
[0022] 在本发明所述的不限开发语言的混合任务编排引擎的方法中;所述步骤S3还包括以下步骤:
[0023] S33,启动剧本执行后所述任务逻辑控制中心解析剧本,得到程序脚本,按照剧本的执行顺序依次执行,识别各个节点的开发语言,并根据各个节点的脚本程序语言将对应的任务发送至对应的任务队列,准备执行。
[0024] 在本发明所述的不限开发语言的混合任务编排引擎的方法中;所述步骤S3还包括以下步骤:
[0025] S34,节点任务执行完成后,将结果返回任务逻辑控制中心,所述任务逻辑控制中心根据此节点的执行结果数据中的状态判断后续节点是否执行,如果此节点的执行结果数据中的状态为成功,则获取剧本的后续节点,进行后续节点任务分发至对应的任务队列,通过各自的语言引擎进行任务执行并完成个节点的任务执行,如此循环上述步骤,如果此节点的执行结果数据中的状态为成功失败,则停止后续节点执行。
[0026] 在本发明所述的不限开发语言的混合任务编排引擎的方法中;所述方法还包括步骤S5,用于将步骤S1至步骤S4中的平台数据、任务执行过程记录以及多语言执行的脚本程序进行数据存储。
[0027] 本发明的不限开发语言的混合任务编排引擎的方法,本发明的优势在于对平台调用的脚本程序不再有任何的限制,执行引擎的语言环境用户可以根据模版进行自由选择,不再局限于产品本身的开发语言。每个用户可以选择自己熟悉或者易上手的开发语言快速开展工作。

附图说明

[0028] 图1是本发明一种不限开发语言的混合任务编排引擎的方法的流程示意图。

具体实施方式

[0029] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0030] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、的方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0031] 如图1所示,提供一种不限开发语言的混合任务编排引擎的方法,该方法包括以下步骤:
[0032] S1,用户端根据业务任务要实现的场景开发对应的应用程序,并将开发完成的所有的应用程序打包上传到平台上,通过应用管理模块进行统一管理,用户根据场景流程编排剧本并将剧本与场景关联,将要执行的业务任务参数发送至服务端;
[0033] S2,服务端接收到业务任务参数后,进行相关业务任务创建与数据存储,然后将要执行的业务任务参数发送至任务控制中心;
[0034] S3,任务控制中心获取业务任务参数后进行业务任务参数提取,得到要执行的剧本、IP数据、执行方式,并按照剧本的执行顺序将第一个节点的节点任务发送任务队列后进行执行,当第一节点任务执行完成后,将结果返回任务控制中心,任务控制中心根据执行的结果数据中的状态判断后续节点是否执行,如果此节点的执行结果数据中的状态为成功,则获取剧本的后续节点,进行后续节点任务分发,如果此节点的执行结果数据中的状态为失败,则停止后续节点执行,依次循环上述判断,直到剧本执行完成;
[0035] S4,多语言任务执行引擎中心根据任务控制层发送的业务任务加载指定的脚本程序,并调用应用程序脚本执行的服务,完成任务的调用执行后通过任务控制中心分发根据待执行的节点开发语言类型,将要执行的任务发送到其对应的任务队列中,由多语言任务执行引擎中心监听服务获取到要执行的任务,完成节点的任务执行并返回执行结果至任务控制中心。
[0036] 在一实施例中,在步骤S1中,场景至少包括IP封禁的场景,用户端在平台上建立一个IP封禁的场景,用户根据场景流程编排剧本将剧本与IP封禁的场景关联,同时在新建的场景中输入要封禁的IP并将要执行的业务任务参数发送至服务端。
[0037] 在一实施例中,步骤S2还包括以下步骤:
[0038] S21,后端服务对接收到的业务任务参数进行数据校验及初始化后将要执行的业务任务参数发送至任务控制中心。
[0039] 在一实施例中,在步骤S21中,数据校验包括对数据类型、参数必填等校验,初始化包括增加用户基本信息、任务环境数据等数据插入。
[0040] 在一实施例中,在步骤S3中,任务控制中心包括任务启动控制与任务逻辑控制中心。
[0041] 在一实施例中,步骤S3还包括以下步骤:
[0042] S31,任务控制中心获取业务任务参数后,任务启动控制根据要执行的业务任务参数启动任务。
[0043] 在一实施例中,步骤S3还包括以下步骤:
[0044] S32,启动任务后任务启动控制解析业务任务参数,得到用户执行的剧本ID、剧本初始化参数、任务执行方式定时或定量,并将解析后的用户执行的剧本ID、剧本初始化参数、任务执行方式定时或定量数据返回到任务启动控制,任务启动控制在任务启动时进行任务执行的参数解析,根据接收到的参数进行再次解析,并提取任务执行相关的参数,然后根据参数发起任务执行启动剧本执行。
[0045] 在一实施例中,步骤S3还包括以下步骤:
[0046] S33,启动剧本执行后任务逻辑控制中心解析剧本,得到程序脚本,按照剧本的执行顺序依次执行,识别各个节点的开发语言,并根据各个节点的脚本程序语言将对应的任务发送至对应的任务队列,准备执行。
[0047] 在一实施例中,步骤S3还包括以下步骤:
[0048] S34,节点任务执行完成后,将结果返回任务逻辑控制中心,任务逻辑控制中心根据此节点的执行结果数据中的状态判断后续节点是否执行,如果此节点的执行结果数据中的状态为成功,则获取剧本的后续节点,进行后续节点任务分发至对应的任务队列,通过各自的语言引擎进行任务执行并完成个节点的任务执行,如此循环上述步骤,如果此节点的执行结果数据中的状态为成功失败,则停止后续节点执行。
[0049] 在一实施例中,方法还包括步骤S5,用于将步骤S1至步骤S4中的平台数据、任务执行过程记录以及多语言执行的脚本程序进行数据存储。
[0050] 本发明是基于Gartner提出的SOAR的理念进行实际情况调研后设计出来的,该系统主要包括业务任务流程编排、任务自动执行、脚本程序三个大的功能模块,为用户提供自由编排任务流程、自动化执行和响应安全流程和告警,同时由于脚本程序是平台的核心基础数据,这部分数据也是平台的目的所在,将企业的各种业务系统、安全设备、应用服务、情报数据进行联动,从而完成高效的完成业务场景,因此为了方便用户更自由的选择开发语言来完成脚本程序的开),将业务任务执行引擎部分与平台服务进行了独立拆分,通过任务队列来分布式任务引擎,各个任务节点可以通过使用系统的开发语言模版快速启动需要的开发语言模版,从而完成所需要的语言执行环境。
[0051] 具体的,一个完整的业务流程剧本,是由多个节点组合、串联起来形成的,其中每个节点都代表了一个安全设备、业务系统、应用服务等,由工程师根据业务需要针对这一安全设备、业务系统、应用服务等开发出来的脚本程序。剧本运行时,由业务触发,通过任务控制中心分发,最后由多语言混合任务引擎进行执行各个节点的脚本程序。这些应用程序可能不是一个人开发的,也可能是产品官方预先提供了一部分通用的,由客户工程师再开发一些特定的应用,或者由各个项目组开发各自应用系统的脚本程序,最后上传由平台统一调度,因此平台需要具备多语言支持的能力。
[0052] 其中以Python为例,其他开发语言同理;通过将Python的开发语言环境,独立部署安装在服务端,任务控制中心是python监听服务,用来监听从任务控制中心发送的任务队列,如果出现任务后,根据任务参数调用对应的Python脚本程序,多语言任务执行引擎存储各个Python脚本程序,会根据调用的任务脚本ID获取加载对应的Python代码文件,传递参数进行执行。
[0053] 本发明实施例提供的一种不限开发语言的混合任务编排引擎的方法的有益效果至少在于:
[0054] 1、采用多语言执行环境设计,语言基础模版功能,通过语言模版及任务队列方式,做到一个剧本的执行可以分布到多种环境执行,最后返回统一结果到控制中心。
[0055] 2、对平台调用的脚本程序不再有任何的限制,执行引擎的语言环境用户可以根据模版进行自由选择,不再局限于产品本身的开发语言。每个用户可以选择自己熟悉或者易上手的开发语言快速开展工作。
[0056] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0057] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如 ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0058] 因此,以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,本发明的保护范围应该以权利要求的保护范围为准。