CN115827331A - 一种处理方法 - Google Patents
一种处理方法 Download PDFInfo
- Publication number
- CN115827331A CN115827331A CN202211699196.9A CN202211699196A CN115827331A CN 115827331 A CN115827331 A CN 115827331A CN 202211699196 A CN202211699196 A CN 202211699196A CN 115827331 A CN115827331 A CN 115827331A
- Authority
- CN
- China
- Prior art keywords
- workflow
- processed
- node
- processing
- module
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种处理方法,应用于处理系统,所述处理系统包括工作流管理模块、编排引擎模块和处理模块,方法包括:通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块;通过所述编排引擎模块确定所述目标工作流中的待处理节点,并将第一待处理信息发送至所述处理模块,所述第一待处理信息为指定类型的待处理节点所对应的待处理信息;通过所述处理模块对第一待处理信息进行处理,得到第一处理结果。通过处理系统中工作流管理模块、编排引擎模块和处理模块之间的相互配合,能够在保证数据一致性的同时,能够提高处理方法的通用性。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及一种处理方法。
背景技术
随着信息化的不断发展,各行各业均在进行数字化转型。无论是上层的应用系统还是支撑应用系统的底层基础设施、操作系统、中间件等在各行各业用户中种类较为繁多。故如何处理(如备份)越来越复杂且种类繁多的应用系统为当前亟需解决的问题。
现有的一些技术方案对应用系统中的子系统分别进行处理,并不能保证数据的一致性;一些技术方案对不同的应用系统分别开发对应的处理逻辑,处理成本较高,且通用性较差。
发明内容
本发明提供了一种处理方法,以在保证数据一致性的同时,能够提高处理方法的通用性。
根据本发明的一方面,提供了一种处理方法,应用于处理系统,所述处理系统包括工作流管理模块、编排引擎模块和处理模块,所述方法包括:
通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块,所述目标工作流为与所述处理请求对应的工作流;
通过所述编排引擎模块确定所述目标工作流中的待处理节点,并将第一待处理信息发送至所述处理模块,所述第一待处理信息为指定类型的待处理节点所对应的待处理信息;
通过所述处理模块对第一待处理信息进行处理,得到第一处理结果。
可选的,所述工作流管理模块包括规约管理单元,在所述通过所述工作流管理模块将所述处理请求和目标工作流发送至所述编排引擎模块之前,还包括:
通过所述规约管理单元接收工作流,对所述工作流进行合法性校验,并存储校验成功的工作流。
可选的,所述工作流管理模块还包括工作流管理单元,所述通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块,包括:
通过所述工作流管理单元在接收到客户端的处理请求后,获取存储的所述目标工作流;
通过所述工作流管理单元将所述处理请求和所述目标工作流发送至所述编排引擎模块。
可选的,所述编排引擎模块包括调度单元,所述通过所述编排引擎模块确定所述目标工作流中的待处理节点,并将第一待处理信息发送至所述处理模块,包括:
通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点,所述当前待处理节点为在当前处理周期进行处理的待处理节点;
通过所述调度单元判断所述当前待处理节点是否为指定类型的待处理节点;
通过所述调度单元在所述当前待处理节点为指定类型的待处理节点时,将第一待处理信息发送至所述处理模块。
可选的,在所述通过所述处理模块对第一待处理信息进行处理,得到第一处理结果之后,还包括:
通过所述处理模块将所述第一处理结果返回至所述调度单元;
通过所述调度单元接收所述处理模块返回的第一处理结果,并返回执行所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作,直到满足结束条件。
可选的,所述编排引擎模块还包括执行单元,所述方法还包括:
通过所述调度单元在所述当前待处理节点不为指定类型的待处理节点时,确定与当前待处理节点对应的目标执行单元;
所述调度单元将包含第二待处理信息的处理指令发送至所述目标执行单元。
可选的,所述方法还包括:
通过所述目标执行单元对所述第二待处理信息进行处理,得到第二处理结果,并将所述第二处理结果返回至所述调度单元;
通过所述调度单元接收所述目标执行单元返回的第二处理结果,并返回执行所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作,直到满足结束条件。
可选的,所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点,包括:
根据所述目标工作流的节点信息确定所述目标工作流中的当前节点;
判断所述当前节点是否为待处理节点,若是,则将所述当前节点确定为所述目标工作流中的当前待处理节点;若否,则返回执行所述根据所述目标工作流的节点信息确定所述目标工作流中的当前节点的操作。
可选的,所述处理系统还包括工作流创建模块,所述方法还包括:
通过所述工作流创建模块基于候选节点创建工作流,并将所述工作流发送至所述工作流管理模块。
可选的,所述候选节点包括预设节点和/或自定义节点。
可选的,所述候选节点包括资源节点,所述处理系统还包括资源管理服务模块,所述方法还包括:
通过所述资源管理服务模块存储所述资源节点的资源信息。
本发明实施例提供了一种处理方法,应用于处理系统,所述处理系统包括工作流管理模块、编排引擎模块和处理模块,通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块,所述目标工作流为与所述处理请求对应的工作流;通过所述编排引擎模块确定所述目标工作流中的待处理节点,并将第一待处理信息发送至所述处理模块,所述第一待处理信息为指定类型的待处理节点所对应的待处理信息;通过所述处理模块对第一待处理信息进行处理,得到第一处理结果。利用上述技术方案,通过处理系统中工作流管理模块、编排引擎模块和处理模块之间的相互配合,能够在保证数据一致性的同时,能够提高处理方法的通用性。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种处理方法的流程图;
图2是根据本发明实施例一提供的一种工作流定义模型的结构图;
图3是根据本发明实施例一提供的一种节点模型的结构图;
图4是根据本发明实施例二提供的一种处理方法的流程图;
图5是根据本发明实施例二提供的一种处理方法的结构图;
图6是根据本发明实施例二提供的一种工作流的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是根据本发明实施例一提供的一种处理方法的流程图,本实施例可适用于对系统进行处理的情况,该方法可以由处理装置来执行,该处理装置可以采用硬件和/或软件的形式实现,该处理装置可配置于处理系统中。
可以认为的是,在计算机应用的早期,应用系统通常是单机系统,且数据保存在单机的数据库系统中。在这种情形下,只需要对该单机数据库进行处理,如备份,即可完成对此应用系统的备份。
随着信息化的不断发展,各行各业都在进行数字化转型。稳态IT+敏态IT建设趋势越发明显,无论是上层的应用系统还是支撑应用系统的底层基础设施、操作系统、中间件等在各行各业用户中是种类繁多的。故如何处理越来越复杂且种类繁多的应用系统,是当前处理技术亟需解决的问题。
下述以备份为例进行描述:假设某产品AnyShare包括三个子系统:OSS网关、MongoDB和MySQL,而每个子系统又是一个分布式集群系统。那么对AnyShare进行一次完整、正确的备份,即要分别备份三个子系统中的数据,又要保证三个子系统间的数据一致性,缺一不可;否则由于恢复后的数据在三个子系统间不一致,会出现部分数据不可用、丢失等问题。
现有的技术中存在几类备份方法:第一类是对每个应用系统下面的子系统,分别进行备份,然而由于每个备份任务是独立的,故数据一致性得不到任何保障。
第二类是在深入理解各种应用系统实现原理的基础上,针对每个应用系统分别进行适配,即对每个不同的应用系统,分别开发其适用于该应用系统的备份逻辑。
示例性的,备份方法例如可以为:先启动OSS网关备份,但不必等待OSS网关备份完成就可以转入下一步骤;备份MongoDB,备份完成后再进行下一步骤;备份MySQL,备份完成后再进行下一步骤;通知OSS网关;等待OSS网关备份完成,当OSS网关备份完成后,AnyShare应用系统备份完成。
可以看出,此备份方法仅特定于AnyShare这个产品,并不适用于其它应用系统的备份,因此,此种方法需要针对每个应用系统开发专有的备份逻辑,费时费力,通用性较差。
第三类是要求应用系统部署在虚拟化平台上面,示例性的,备份方法例如还可以为:把AnyShare三个子系统所在虚拟机添加到一个组里;执行脚本,暂停虚拟机的IO操作,并对每个虚拟机创建快照;从快照读取数据进行备份。故此方法要求应用系统必须部署在虚拟机上面,并且备份的是整个虚拟主机,并不是单纯的应用系统。
综上所述,现有的处理方法并不能很好的解决复杂应用系统的处理问题,通用性较差。
基于此,本发明实施例提供了一种处理方法,能够满足不同种类、复杂应用系统的处理,具备较强的通用性。如图1所示,该方法包括:
S110、通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块,所述目标工作流为与所述处理请求对应的工作流。
工作流管理模块可以认为是处理系统中对工作流进行管理的模块,如负责管理发送的工作流、验证工作流的合法性以及处理客户端的工作流命令等,工作流命令包含但不限于:创建、编辑、删除、查询、启动、停止等。
处理请求可以是指客户端请求对工作流进行处理的请求,对工作流进行处理例如可以包括备份、恢复和/或数据一致性管理等;目标工作流则可以理解为工作流管理模块中与处理请求对应的工作流。
具体的,工作流管理模块在接收到客户端的处理请求后,可以将处理请求和目标工作流发送至编排引擎模块,以进行后续步骤的处理。可以认为的是,工作流管理模块可以存储有一个或多个工作流,以等待客户端的处理请求,当接收到客户端的处理请求后,则可将处理请求以及对应的目标工作流发送至编排引擎模块,来进行后续的处理。其中,工作流的来源不限,如可以由处理系统中其他模块创建并获取得到,也可以直接由其他系统输入得到,本实施例对此不作限定。
在一个实施例中,所述工作流管理模块包括规约管理单元,在所述通过所述工作流管理模块将所述处理请求和目标工作流发送至所述编排引擎模块之前,还包括:
通过所述规约管理单元接收工作流,对所述工作流进行合法性校验,并存储校验成功的工作流。
规约管理单元可以认为是工作流管理模块中对工作流进行校验的单元,用于对工作流进行合法性校验。
在一个实施方式中,在工作流管理模块将处理请求和目标工作流发送至编排引擎模块之前,工作流管理模块中的规约管理单元可以接收工作流,对工作流进行合法性校验,并将校验成功的工作流进行存储。此处不对工作流进行合法性校验的方式进行限定,如判断工作流是否满足预设的校验条件,如校验条件可以包括工作流定义模型和/或处理恢复业务规则约束等,工作流定义模型和处理恢复业务规则约束可以认为是相关人员预先设置的规则,用于对工作流进行合法性校验,本实施例不对工作流定义模型和处理恢复业务规则约束作进一步展开。
图2是根据本发明实施例一提供的一种工作流定义模型的结构图,如图2所示,工作流定义模型可以认为一个从入口(即开始节点)到出口(即结束节点)的有向无环图,每个节点都被视为图中的一个节点,各节点之间通过连接线连接起来,箭头所指向的节点被称为下游节点,箭尾连接的节点被称为上游节点,上游节点的数据允许传递给下游节点,例如资源节点2的数据被传递给节点3。
在一个实施例中,所述工作流管理模块还包括工作流管理单元,所述通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块,包括:
通过所述工作流管理单元在接收到客户端的处理请求后,获取存储的所述目标工作流;
通过所述工作流管理单元将所述处理请求和所述目标工作流发送至所述编排引擎模块。
工作流管理单元可以认为是工作流管理模块中对工作流进行管理的单元,如负责管理发送工作流以及处理客户端的处理请求等。
在一个实施方式中,工作流管理单元在接收到客户端的处理请求后,首先可以获取存储的工作流中与处理请求对应的目标工作流,如根据处理请求中的标识信息对目标工作流进行确定并获取;然后在获取到目标工作流后,将处理请求和目标工作流发送至编排引擎模块,以进行后续的处理。
S120、通过所述编排引擎模块确定所述目标工作流中的待处理节点,并将第一待处理信息发送至所述处理模块,所述第一待处理信息为指定类型的待处理节点所对应的待处理信息。
编排引擎模块可以认为是处理系统中对工作流进行编排的模块。在本实施例中编排引擎模块可以负责执行目标工作流。具体可以为:接收工作流管理模块的启动、停止命令(即处理请求)以及工作流定义(即目标工作流);解析工作流数据,产生新的工作流实例;从工作流的开始节点起,根据节点间的上下游关系、节点流转规则、节点执行规则、工作流执行进度等信息,循环的将可执行的节点放到调度队列中,并等待执行单元来取。此外,工作流在执行过程中产生的全部过程数据,都会被编排引擎持久化存储,在遭遇异常情况后,比如服务器断电等,也不会丢失数据。在该异常修复之后,编排引擎模块会从持久化存储中重新加载被中断的工作流,还原内存映射,继续执行工作流。
待处理节点可以是指目标工作流中将要进行处理的节点,待处理节点的个数不限,可以为一个或多个,具体情况可以根据工作流的实际内容进行确定;指定类型可以为预先指定的类型,在本实施例中,指定类型可以为用户定义的节点,如service节点;第一待处理信息可以为指定类型的待处理节点所对应的待处理信息,待处理信息可以理解为节点对应的信息,如节点标识等。
在本实施例中,编排引擎模块在接收到处理请求和目标工作流后,可以对目标工作流中的待处理节点进行确定,然后将待处理节点中指定类型的待处理节点对应的第一待处理信息发送至处理模块,以进行后续节点的处理。其中,确定待处理节点以及发送第一待处理信息至处理模块的过程不作限定,如编排引擎模块可以在接收到处理请求和目标工作流后,对目标工作流中所包含的所有节点进行判断,来得到所有的待处理节点,并将待处理节点中指定类型的待处理节点应的第一待处理信息发送至处理模块;编排引擎模块还可以依次从左至右对目标工作流中的节点进行判断,在当前节点确定为待处理节点后,再次对待处理节点的类型进行判断,并在判断后将指定类型的待处理节点对应的第一待处理信息发送至处理模块,然后继续对下一节点进行类似的判断,直至将目标工作流中所有节点判断完为止。
在一个实施方式中,确定目标工作流中待处理节点的具体手段不限,如可以根据节点的具体类型进行确定,也可以根据节点的节点标识进行确定等。
在一个实施方式中,发送第一待处理信息至处理模块的时机和个数不作限定,如可以在确定待处理节点之后,直接将第一待处理信息发送至处理模块,也可以在编排引擎模块接收到处理模块的任务请求时,将与任务请求对应的第一待处理信息发送至处理模块,任务请求可以用于处理模块请求是否有可执行的处理任务。还可以同时将一个或多个第一待处理信息发送至处理模块,本实施例对此不作限定。
S130、通过所述处理模块对第一待处理信息进行处理,得到第一处理结果。
处理模块可以认为是对第一待处理信息进行处理的模块;第一处理结果即为对第一待处理信息进行处理的结果。
具体的,当处理模块接收到编排引擎模块发送的第一待处理信息后,可以对第一待处理信息进行处理来得到第一处理结果。在本实施例中,处理模块可以包括一个或多个的业务Worker,每个业务Worker分别执行对应类型的处理任务。在处理模块接收到编排引擎模块发送的第一待处理信息后,可以根据第一待处理信息中的标识信息来对业务Worker进行确定,然后交由确定的业务Worker对第一待处理信息进行处理,以此得到第一处理结果。
示例性的,在一个实施方式中,在业务Worker启动的时候,业务Worker连接到编排引擎模块,来查询是否有可执行的任务,若有,则编排引擎模块向业务Worker返回待执行任务的详情(即第一待处理信息),业务Worker在接收到任务详情后,开始执行任务。在任务执行完成后,可以向编排引擎模块报告任务执行结果(即第一处理结果),同时请求下一个可执行的任务。
在一个实施方式中,业务Worker可以根据业务Worker所在服务器的工作负载,灵活的向编排引擎模块请求不定数量的可执行任务。例如,当业务Worker所在服务器的工作负载较轻时,一次可以请求多个可执行任务,反之,则可以请求一个可执行任务。在此基础上,极大地提高工作流的执行效率。
在一个实施方式中,为了避免在没有可执行任务的情况下,业务Worker频繁的向编排引擎模块发起轮询,编排引擎模块在此种情况下可以不立即反馈业务Worker没有可执行的任务,而是维持此连接不断开,直到有可执行任务到来时,才向业务Worker返回可执行任务。
本发明实施例一提供的一种处理方法,应用于处理系统,所述处理系统包括工作流管理模块、编排引擎模块和处理模块,所述方法包括:通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块,所述目标工作流为与所述处理请求对应的工作流;通过所述编排引擎模块确定所述目标工作流中的待处理节点,并将第一待处理信息发送至所述处理模块,所述第一待处理信息为指定类型的待处理节点所对应的待处理信息;通过所述处理模块对第一待处理信息进行处理,得到第一处理结果。利用该方法,通过处理系统中工作流管理模块、编排引擎模块和处理模块之间的相互配合,能够在保证数据一致性的同时,能够提高处理方法的通用性。
在一个实施例中,所述处理系统还包括工作流创建模块,所述方法还包括:
通过所述工作流创建模块基于候选节点创建工作流,并将所述工作流发送至所述工作流管理模块。
工作流创建模块可以用于创建工作流;候选节点可以认为是供工作流创建模块创建工作流的节点,候选节点的类型及来源不限。
在一个实施例中,所述候选节点包括预设节点和/或自定义节点。
预设节点可以是指预先配置的通用节点,为工作流的基础构成单元,预设节点可以包括不同类型的节点,如通知类节点或网关类节点等;自定义节点可以认为是用户自定义的节点。不同类型的节点可以实现不同的功能,通过不同类型节点的组合即可满足不同的业务需求。
在本步骤中工作流创建模块可以基于候选节点对工作流进行创建,然后将创建的工作流发送至工作流管理模块进行后续的合法性验证等,其中创建工作流的方法不限,只要能得到工作流即可。
示例性的,表1-4为本实施例提供的几类候选节点,如表1为事件/消息类节点,可以包括开始节点、结束节点、消息节点和定时器节点等。
表2为网关类节点,可以包括并行网关节点、并行网关同步节点、条件网关节点、多路选择网关节点、多路合并网关节点和事件网关节点等。
表3为业务类节点,可以包括脚本节点、Service节点和各种应用类节点等,其中,Service节点可以为自定义节点,即用户自定义的任意节点。
表4为通知类节点,可以包括邮件通知节点、短信通知节点和即时消息通知节点等。
编排引擎模块除了内置了大量的通用节点,还提供了通用的Service任务节点,可用于适配任意的应用系统,其业务参数支持使用JSON或者YAML格式,从而能够兼容任意应用的业务参数。
图3是根据本发明实施例一提供的一种节点模型的结构图,如图3所示,对于工作流中的某个节点而言,其节点信息可以包括名称、类型、提供者、上下游节点、输入/输出参数等,并依据这些节点信息用于后续的处理。
在一个实施方式中,建模器可以用于负责向用户提供构建工作流,基于此用户可以根据不同的业务场景构建不同流程的工作流。
构建工作流的过程例如可以为:在建模器中通过拖拽和连线方式构建由多个节点构成的基础工作流,并对该基础工作流中的各节点进行配置,以形成可用的自动化工作流。
构建工作流的过程例如还可以为:用户按照工作流的定义模型,手动编写工作流定义的JSON/YAMl文件;编写完成后,放到建模器指定的目录中,即可在建模器中看到已经定义好的工作流。还可以手动编写文件作为自定义节点,放入建模器中调用使用。
在一个实施例中,所述候选节点包括资源节点,所述处理系统还包括资源管理服务模块,所述方法还包括:
通过所述资源管理服务模块存储所述资源节点的资源信息。
资源管理服务模块可以认为是对资源进行管理的模块,例如资源管理服务模块中可以存储有各种资源信息,资源信息如包括各个资源平台的信息,资源平台如虚拟化平台、云平台、对象存储、云原生平台和/或物理主机等,资源信息可以包括:资源类型、资源访问地址、资源授权用户和/或资源类型等。
在一个实施方式中,候选节点中可以包括资源节点,在具体创建工作流时可以选取资源节点进行创建,之后即可使用资源节点绑定的资源信息进行该节点的处理。
实施例二
图4是根据本发明实施例二提供的一种处理方法的流程图,本实施例二在上述各实施例的基础上进行优化。在本实施例中,将通过所述编排引擎模块确定所述目标工作流中的待处理节点,并将第一待处理信息发送至所述处理模块进一步具体化为:通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点,所述当前待处理节点为在当前处理周期进行处理的待处理节点;通过所述调度单元判断所述当前待处理节点是否为指定类型的待处理节点;通过所述调度单元在所述当前待处理节点为指定类型的待处理节点时,将第一待处理信息发送至所述处理模块。
同时,本实施例二的所述编排引擎模块还包括执行单元,所述方法还包括:通过所述调度单元在所述当前待处理节点不为指定类型的待处理节点时,确定与当前待处理节点对应的目标执行单元;所述调度单元将包含第二待处理信息的处理指令发送至所述目标执行单元。
本实施例尚未详尽的内容请参考实施例一。
如图4所示,该方法包括:
S210、通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块。
S220、通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点。
其中,所述当前待处理节点为在当前处理周期进行处理的待处理节点,可以认为的是,在本实施例中,可以依次对待处理节点进行处理,即处理完成当前处理节点后,再对下一个待处理节点进行处理,当前处理周期即为当前的处理周期,当前待处理节点则为在当前处理周期需要处理的节点。调度单元可以认为是编排引擎模块中进行调度的单元,用于确定当前待处理节点并将第一待处理信息发送至处理模块。节点信息可以理解为目标工作流中各节点的信息,如节点的上下游关系、工作流执行进度等。
本步骤中调度单元可以根据目标工作流的节点信息来对目标工作流中的当前待处理节点进行确定,确定的过程可以根据节点的实际情况进行确定。
在一个实施例中,所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点,包括:
根据所述目标工作流的节点信息确定所述目标工作流中的当前节点;
判断所述当前节点是否为待处理节点,若是,则将所述当前节点确定为所述目标工作流中的当前待处理节点;若否,则返回执行所述根据所述目标工作流的节点信息确定所述目标工作流中的当前节点的操作。
具体的,在根据目标工作流的节点信息确定目标工作流中的当前待处理节点的过程中,可以先根据目标工作流的节点信息对目标工作流中的当前节点进行确定,然后判断当前节点是否为待处理节点,如果当前节点是待处理节点,说明当前节点需要处理,那么可以将当前节点确定为目标工作流中的当前待处理节点,以进行后续步骤的执行;如果当前节点不是待处理节点,说明当前节点不需要处理,则可以继续对下一个节点进行判断,返回执行根据目标工作流的节点信息确定目标工作流中的当前节点的操作,即将下一个节点作为当前节点,继续判断当前节点是否为待处理节点,并重复上述操作。
S230、通过所述调度单元判断所述当前待处理节点是否为指定类型的待处理节点,若是,则执行S240;若否,则执行S250-S260。
在确定了当前待处理节点后,可以再次对当前待处理节点的类型进行判断,例如判断当前待处理节点是否为指定类型的待处理节点,并根据判断的结果执行不同的步骤。
示例性的,如果当前待处理节点为指定类型的待处理节点,说明当前待处理节点为指定的节点,则可以执行步骤S240-S250,并返回执行步骤S220,直到满足结束条件。
如果当前待处理节点不为指定类型的待处理节点,说明当前待处理节点为除指定类型之外的其他类型的节点,则可以执行步骤S260-S270,并返回执行步骤S220,直到满足结束条件。
S240、通过所述调度单元将第一待处理信息发送至所述处理模块。
S250、通过所述处理模块对第一待处理信息进行处理,得到第一处理结果。
在一个实施例中,在所述通过所述处理模块对第一待处理信息进行处理,得到第一处理结果之后,还包括:
通过所述处理模块将所述第一处理结果返回至所述调度单元;
通过所述调度单元接收所述处理模块返回的第一处理结果,并返回执行所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作,直到满足结束条件。
可以认为的是,在处理模块对第一待处理信息进行处理,得到第一处理结果之后,处理模块可以将第一处理结果返回至调度单元;随后调度单元接收处理模块返回的第一处理结果后,可以继续返回执行通过调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作,直到满足结束条件。结束条件例如可以是当前节点为结束节点等。
S260、通过所述调度单元确定与所述当前待处理节点对应的目标执行单元。
在本实施例中,当前待备份节点为除指定类型之外的其他类型的节点,第二待处理信息则可以认为是当前待备份节点所对应的待处理信息。目标执行单元可以认为是编排引擎模块中与当前待处理节点对应的执行单元,用于对第二待处理信息进行处理。
本实施例中,在调度单元判断当前待处理节点不为指定类型的待处理节点后,可以对目标执行单元进行确定,随后将包含第二待处理信息的处理指令发送至目标执行单元,以指示目标执行单元进行处理。
S270、所述调度单元将包含第二待处理信息的处理指令发送至所述目标执行单元。
在一个实施例中,所述方法还包括:
通过所述目标执行单元对所述第二待处理信息进行处理,得到第二处理结果,并将所述第二处理结果返回至所述调度单元;
通过所述调度单元接收所述目标执行单元返回的第二处理结果,并返回执行所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作,直到满足结束条件。
第二处理结果即为目标执行单元对第二待处理信息进行处理的结果。
在一个实施方式中,目标执行单元接收到第二待处理信息后,可以进行处理,得到第二处理结果,然后将第二处理结果返回至调度单元;调度单元在接收到目标执行单元返回的第二处理结果后,可以返回执行根据目标工作流的节点信息确定目标工作流中的当前待处理节点的操作,直到满足结束条件。
本发明实施例二提供的一种处理方法,通过根据目标工作流的节点信息确定当前待处理节点,并判断当前待处理节点是否为指定类型的待处理节点,能够为不同的待处理节点提供不同的处理逻辑,从而能够在保证数据一致性的同时,提高处理的效率。
图5是根据本发明实施例二提供的一种处理方法的结构图,如图5所示,处理方法可以包括下述几个步骤:
(1)资源注册。首先可以将各种各样的资源注册到资源管理服务模块中,注册成功之后,资源管理服务模块会对注册成功的资源进行监测,以实时的更新资源状态(即通过所述资源管理服务模块存储所述资源节点的资源信息)。
(2)创建工作流。工作流创建模块可以使用建模器,通过鼠标拖拽、或者创建工作流定义JSON/YAML文件来创建工作流(即通过所述工作流创建模块基于候选节点创建工作流)。
(3)发布工作流。当发布工作流时,工作流管理模块中的规约管理器(即规约管理单元)会对工作流的合法性进行校验,只有通过合法性校验的工作流,才会发布成功并持久化到存储中(即通过规约管理单元接收工作流,对工作流进行合法性校验,并存储校验成功的工作流);未通过合法性校验的工作流发布不成功,修改后可以继续发布。
(4)调度工作流。工作流发布成功之后,可以启动运行工作流。启动时,编排引擎模块中的解析器会从存储中加载工作流并进行解析,产生内存映射;调度器(即调度单元)会根据该内存映射产生工作流实例,根据节点的上下游关系、节点流转规则、节点执行规则、工作流执行进度等信息,选出待执行的节点(即根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点,所述当前待处理节点为在当前处理周期进行处理的待处理节点),并将待执行的节点加入到待执行队列中,然后针对不同待执行节点的类型执行对应的操作(即判断所述当前待处理节点是否为指定类型的待备份节点;通过所述调度单元在所述当前待处理节点为指定类型的待备份节点时,将第一待处理信息发送至所述处理模块);否则,产生对应节点的执行器(即执行单元),将节点交由执行器执行(即通过所述调度单元在所述当前待处理节点不为指定类型的待备份节点时,确定与当前待处理节点对应的目标执行单元;所述调度单元将包含第二待处理信息的处理指令发送至所述目标执行单元)。
(5)执行Service节点任务(即处理模块)。当业务Worker准备好执行任务时,连接到编排引擎模块,询问是否有可以执行任务;编排引擎模块会根据业务Worker中的请求任务类型,从待执行的队列中取出匹配的节点任务(即第一待处理信息),发送给业务Worker(即处理模块);业务Worker在执行完成任务后,会向编排引擎模块报告任务已完成和执行结果(即通过所述处理模块将所述第一处理结果返回至所述调度单元)。
(6)进行下一轮调度。当编排引擎模块接收到业务Worker报告的任务已完成消息后,会根据当前节点任务的执行结果、上游节点、下游节点的执行状态,选择待执行的下游节点,进入新一轮的执行过程(即通过所述调度单元接收所述处理模块返回的第一处理结果,并返回执行所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作,直到满足结束条件)。
下面对本发明实施例提供的处理方法进行示例性的描述,假设AnyShare应用系统由OSS网关、MongoDB和MySQL三个子系统构成。
1.开发特定应用的处理恢复节点。
由于OSS网关是用户特有的应用系统组件,故需要开发OSS处理恢复业务节点(即候选节点)和业务Worker(即处理模块)。在本实施例中,建模器中可以使用通用的Service节点,并重命名为OSS节点来代表OSS网关应用,因此,不需要再额外开发特定的处理恢复业务节点。
开发OSS网关应用的处理恢复业务Worker只需要实现二个接口:循环的调用编排引擎(即编排引擎模块)的接口,请求当前可执行的OSS任务;当OSS处理或者恢复完成之后,向编排引擎报告已完成,并上报执行结果(即第一处理结果)。
2.资源统一管理
通常在灾备业务领域,有定义数据的来源为源数据端和数据指向的目的地为目的端。恢复的源数据端为对各类应用系统通过处理技术所处理产生的处理数据;目的端为对应用系统的处理数据演练到的目的地。
不同类型的应用系统,进行演练所需的演练资源的形态各不相同,有物理客户端、虚拟化平台、云平台、对象存储等。因此需要满足应用系统兼容普适性要求,需要解决处理恢复资源的统一管理的问题。
首先可以将虚拟化平台、云平台、对象存储、云原生平台、物理主机注册到资源管理模块,注册信息包括:资源类型、资源访问地址、资源授权用户、资源类型等。
然后资源管理模块监控到有资源注册成功后,可以从资源注册信息中提取出资源访问地址、资源授权用户,根据这些信息到对应的资源平台上采集资源信息。
继而在首次采集资源信息完成后,监听资源平台的变更信息,当资源平台有变更时,实时采集新的资源信息到处理系统中(即通过所述资源管理服务模块存储所述资源节点的资源信息)。
最后给已经采集到资源打上应用系统标签,用来表示该资源可以为哪些应用系统提供运行环境。
3.工作流的构建
各行各业的应用系统种类繁多,单一的灾备系统不可能涵盖所有应用系统的处理恢复,但是通常可以覆盖组成这些应用系统的组件的处理恢复,比如某应用系统的组件:数据库、中间件、配置文件等,可以对此类灾备系统不支持的应用系统通过组合编排的方式进行处理恢复。
首先,可以打开建模器,并点击“新建”,建模器将展开一个可编辑的画布;从右边的节点列表中依次拖到候选节点到画布中;各节点之间使用连接线连接起来;除开始节点和结束节点之外,可以设置各节点的参数。在全部完成之后,可以点击“发布”,建模器会将工作流的定义发送到工作流管理模块(即通过所述工作流创建模块基于候选节点创建工作流,并将所述工作流发送至所述工作流管理模块)。
图6是根据本发明实施例二提供的一种工作流的结构图,如图6所示,工作流可以包括开始节点、策略节点、OSS网关节点、MongoDB节点、MySQL节点、消息节点和结束节点,在设置OSS节点、MongoDB节点和MySQL节点的参数时,系统会根据应用类型、资源标签来进行自动的适配,来选择处理的目的地。
然后,工作流管理模块会对工作流进行合法性验证,验证通过后就会持久性(即通过所述规约管理单元接收工作流,对所述工作流进行合法性校验,并存储校验成功的工作流)。当工作流管理模块接收到“启动”命令之后,会从数据库中提取工作流定义,然后将该命令连同工作流定义,一并发送到编排引擎模块(即通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块)。
编排引擎模块中的调度器在接收到工作流命令之后,会根据工作流的定义产生工作流实例;调度器找到工作流的开始节点,并从开始节点,沿着连接线往前查找,找到第一个待执行的节点(即通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点,所述当前待处理节点为在当前处理周期进行处理的待处理节点;通过所述调度单元判断所述当前待处理节点是否为指定类型的待处理节点、;通过所述调度单元在所述当前待处理节点为指定类型的待处理节点时,将第一待处理信息发送至所述处理模块),在这里,是策略节点。由于策略节点并没有实例的业务逻辑,调度器会越过策略节点,继续往前查找,找到待执行的节点,在这里,是OSS节点。调度器产生OSS节点实例,并加入到待执行队列中,等待OSS Worker来取。由于OSS节点任务未执行完成,调度器暂停对工作流的调度。在等待一段时间之后,OSS Worker询问编排引擎是否有可执行的活动,此时,编排引擎会将OSS任务返回给OSS Worker(即通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点,所述当前待处理节点为在当前处理周期进行处理的待处理节点;通过所述调度单元判断所述当前待处理节点是否为指定类型的待处理节点;通过所述调度单元在所述当前待处理节点为指定类型的待处理节点时,将第一待处理信息发送至所述处理模块)。
当OSS Worker执行完成任务之后,会向编排引擎报告任务已执行完成,并上报执行结果(即通过所述处理模块将所述第一处理结果返回至所述调度单元)。
编排引擎调度器在接收到OSS Worker上报的结果之后,会更新OSS节点任务的执行状态为完成,并同步更新执行结果。若结果为成功,则调度器会继续去寻找OSS节点的下游节点(即通过所述调度单元接收所述处理模块返回的第一处理结果,并返回执行所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作),即MongoDB和MySQL二个节点,因为这二个节点都是OSS节点的直接下游节点。调度器产生MongoDB和MySQL这二个节点的节点任务,并把这二个任务加入到待执行队列中。
同样的,当MongoDB Worker和MySQL Worker来询问编排引擎是否有可执行的活动时,编排引擎会将这二个任务分别返回给MongoDB Worker和MySQL Worker。
类似的,当MongoDB Worker和MySQL Worker执行完成各自的任务之后,分别向编排引擎上报任务执行结果。
编排引擎调度器在接收到MongoDB Worker和MySQL Worker上报的结果之后,会更新MongoDB节点任务和MySQL节点任务的执行状态为完成,并同步更新执行结果。若结果为成功,则调度器会继续去寻找下游节点,即消息节点。由于消息节点的执行并不需要业务Worker的参与,因此,调度器产生消息节点任务后,直接交由编排引擎执行。在本实施例中,编排引擎会发送指定的消息给OSS Worker。
OSS Worker在接收到指定的消息后会继续执行剩余未执行完的业务逻辑直到完成,向编排引擎上报执行结果(即通过所述目标执行单元对所述第二待处理信息进行处理,得到第二处理结果,并将所述第二处理结果返回至所述调度单元)。
编排引擎调度器继续去寻找消息节点的下游节点,在这个实施例中,即为结束节点。此时,调度器结束该工作流的运行,以此完成整个工作流的处理(即通过所述调度单元接收所述目标执行单元返回的第二处理结果,并返回执行所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作,直到满足结束条件)。
可以看出,与现有技术相比,本发明实施例具有以下有益效果:
1.通过将各种各样的复杂应用系统进行分解,构造多个业务Worker节点,同时提供对这些业务Worker节点的编排能力,从而能够形成一种新的能力。利用这个新能力,来满足不同用户、不同应用系统、不同业务场景的处理恢复需求。
2.本发明提供的处理方法具备工作流中断可恢复能力。编排引擎会持久化工作流在执行过程中产生的过程数据,一旦发生任何异常导致工作流过程被中断,当该异常被修复后,编排引擎会从持久化存储中加载工作流执行的过程数据,在内存中重新创建工作流执行过程被中断的那个时刻的内存映射,从而能够继续推进工作流的执行。
3.本发明提供的处理方法是由业务Worker自主决定一次取多少个任务来执行,从而以一种简单、直接的方式实现了工作负载的控制。当业务Worker服务器工作负载高时,可以减少任务执行的数量;当工作负载高时,可以增加任务执行的数量。
4.本发明提供的处理技术不与任何应用系统绑定,因此具备较强的兼容各种应用系统的能力。
5.本发明提供的处理技术也不与任何基础设施绑定,比如虚拟化平台,因此具备较强的兼容各种运行环境的能力。
6.本发明内置了常用的应用系统的处理恢复能力,能够做到开箱即用。
7.本发明将不同应用系统处理流程中的公共部分抽象出来,形成独立的服务供不同业务使用,使得应用系统处理开发人员只需要专注于应用系统本身的处理恢复能力的开发,降低了开发难度,提高了处理的稳定性。
8.本发明提供的方法具备广泛的适用性。本发明并没有限定自定义的业务Worker的实现方式和实现内容,如具体编程语言,因此,本方法不仅可以用于处理恢复领域,也可以用于满足其它业务领域,比如灾难恢复演练、数据脱敏等。
Claims (11)
1.一种处理方法,其特征在于,应用于处理系统,所述处理系统包括工作流管理模块、编排引擎模块和处理模块,所述方法包括:
通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块,所述目标工作流为与所述处理请求对应的工作流;
通过所述编排引擎模块确定所述目标工作流中的待处理节点,并将第一待处理信息发送至所述处理模块,所述第一待处理信息为指定类型的待处理节点所对应的待处理信息;
通过所述处理模块对第一待处理信息进行处理,得到第一处理结果。
2.根据权利要求1所述的方法,其特征在于,所述工作流管理模块包括规约管理单元,在所述通过所述工作流管理模块将所述处理请求和目标工作流发送至所述编排引擎模块之前,还包括:
通过所述规约管理单元接收工作流,对所述工作流进行合法性校验,并存储校验成功的工作流。
3.根据权利要求2所述的方法,其特征在于,所述工作流管理模块还包括工作流管理单元,所述通过所述工作流管理模块在接收到客户端的处理请求后,将所述处理请求和目标工作流发送至所述编排引擎模块,包括:
通过所述工作流管理单元在接收到客户端的处理请求后,获取存储的所述目标工作流;
通过所述工作流管理单元将所述处理请求和所述目标工作流发送至所述编排引擎模块。
4.根据权利要求1所述的方法,其特征在于,所述编排引擎模块包括调度单元,所述通过所述编排引擎模块确定所述目标工作流中的待处理节点,并将第一待处理信息发送至所述处理模块,包括:
通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点,所述当前待处理节点为在当前处理周期进行处理的待处理节点;
通过所述调度单元判断所述当前待处理节点是否为指定类型的待处理节点;
通过所述调度单元在所述当前待处理节点为指定类型的待处理节点时,将第一待处理信息发送至所述处理模块。
5.根据权利要求4所述的方法,其特征在于,在所述通过所述处理模块对第一待处理信息进行处理,得到第一处理结果之后,还包括:
通过所述处理模块将所述第一处理结果返回至所述调度单元;
通过所述调度单元接收所述处理模块返回的第一处理结果,并返回执行所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作,直到满足结束条件。
6.根据权利要求4所述的方法,其特征在于,所述编排引擎模块还包括执行单元,所述方法还包括:
通过所述调度单元在所述当前待处理节点不为指定类型的待处理节点时,确定与所述当前待处理节点对应的目标执行单元;
所述调度单元将包含第二待处理信息的处理指令发送至所述目标执行单元。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
通过所述目标执行单元对所述第二待处理信息进行处理,得到第二处理结果,并将所述第二处理结果返回至所述调度单元;
通过所述调度单元接收所述目标执行单元返回的第二处理结果,并返回执行所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点的操作,直到满足结束条件。
8.根据权利要求4所述的方法,其特征在于,所述通过所述调度单元根据所述目标工作流的节点信息确定所述目标工作流中的当前待处理节点,包括:
根据所述目标工作流的节点信息确定所述目标工作流中的当前节点;
判断所述当前节点是否为待处理节点,若是,则将所述当前节点确定为所述目标工作流中的当前待处理节点;若否,则返回执行所述根据所述目标工作流的节点信息确定所述目标工作流中的当前节点的操作。
9.根据权利要求1所述的方法,其特征在于,所述处理系统还包括工作流创建模块,所述方法还包括:
通过所述工作流创建模块基于候选节点创建工作流,并将所述工作流发送至所述工作流管理模块。
10.根据权利要求9所述的方法,其特征在于,所述候选节点包括预设节点和/或自定义节点。
11.根据权利要求9所述的方法,其特征在于,所述候选节点包括资源节点,所述处理系统还包括资源管理服务模块,所述方法还包括:
通过所述资源管理服务模块存储所述资源节点的资源信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211699196.9A CN115827331A (zh) | 2022-12-28 | 2022-12-28 | 一种处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211699196.9A CN115827331A (zh) | 2022-12-28 | 2022-12-28 | 一种处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827331A true CN115827331A (zh) | 2023-03-21 |
Family
ID=85519025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211699196.9A Pending CN115827331A (zh) | 2022-12-28 | 2022-12-28 | 一种处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827331A (zh) |
-
2022
- 2022-12-28 CN CN202211699196.9A patent/CN115827331A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776147B2 (en) | Orchestration engine for migrating application data and application services using migration steps in migration component | |
US7779298B2 (en) | Distributed job manager recovery | |
US9262228B2 (en) | Distributed workflow in loosely coupled computing | |
AU2007289177B2 (en) | Dynamically configuring, allocating and deploying computing systems | |
US20170255886A1 (en) | Workflow execution | |
CN113569987A (zh) | 模型训练方法和装置 | |
CN111399897A (zh) | 基于kubernetes的应用发布方法以及系统 | |
Ganga et al. | A fault tolerent approach in scientific workflow systems based on cloud computing | |
CN112527489A (zh) | 一种任务调度方法、装置、设备及计算机可读存储介质 | |
CN106600226B (zh) | 用于优化流程管理系统的方法及装置 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN111190732A (zh) | 定时任务处理系统及方法、存储介质和电子设备 | |
CN111666141A (zh) | 任务调度方法、装置、设备及计算机存储介质 | |
Zheng et al. | Globalflow: A cross-region orchestration service for serverless computing services | |
US7979870B1 (en) | Method and system for locating objects in a distributed computing environment | |
CN109725916B (zh) | 流处理的拓扑结构更新系统和方法 | |
CN111147541B (zh) | 基于参数服务器的节点处理方法、装置、设备及存储介质 | |
CN116400987B (zh) | 持续集成方法、装置、电子设备及存储介质 | |
CN115827331A (zh) | 一种处理方法 | |
CN110874319A (zh) | 自动化测试方法、平台、设备及计算机可读存储介质 | |
CN113220480B (zh) | 分布式的数据任务跨云调度系统及方法 | |
WO2024139011A1 (zh) | 信息处理方法 | |
Schäfer et al. | Replication schemes for highly available workflow engines | |
CN112162840B (zh) | 一种基于中断重入机制的协程处理及管理方法 | |
CN110188008B (zh) | 作业调度主备切换方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |