一种全域集成编排流协议生成方法及执行方法
文献发布时间:2023-06-19 19:32:07
技术领域
本发明涉及数据结构技术领域,特别是涉及一种全域集成编排流协议生成方法及执行方法。
背景技术
集成编排流程系统利用预定的逻辑交互元素结点,通过对多个元素结点排布及元素结点间拖拽连线,在画布上绘制出一个完整的业务流转逻辑。为了使该画布中的内容能进行保存、修改,以及传递给后端服务按编排的逻辑执行,该画布中的内容实质上是与一份前端协议做映射,并在元素结点排布及连线编辑完成时,生成或修改对应的协议。
随着业务的发展,集成编排流程系统有着更加复杂的交互场景和应用边界,传统通过简单拖拉布局及字段输入所生成的结构化xml或json协议已经不能满足要求,表现为:
1.结构化协议无法被后端服务直接执行,需要先进行xml或json解析,并按预定字段和结构,查找对应的逻辑函数,再赋值执行,执行效率低下。
2.调试阶段,结构化协议也只能在后端服务进行测试,频繁的调测,特别是多人开发时,占用服务器资源,无法利用前端浏览器分布式的资源优势。
3.在调试过程中,结构化协议无法进行比如单步,当前变量值输出等常用调试手段,每次调试均需完整执行。
4.结构化协议既然依赖于后端服务执行,就无法脱离固有的执行环境,在云边端一体的协同环境下,无法充分利用边端和移动端的执行资源优势。
5.结构化协议为描述性语言,需要经过一系列的处理,被特定语言,比如java,开发的解析器解析后方能执行,其他环境,比如iOS,需要开发另外开发解析器。
发明内容
基于此,本发明的目的在于,提供一种全域集成编排流协议生成方法及执行方法,无需对具体的平台用户进行负责的角色及全域集成编排流协议生成及执行,可根据实际发生的业务记录,转换为全域集成编排流协议生成及执行规则。
第一方面,本发明提供一种全域集成编排流协议生成方法,所述方法由画布控制器和协议生成器执行,所述方法包括以下步骤:
画布控制器初始化画布;
画布控制器响应于结点设置指令,生成对应的结点参数,并将所述结点参数传递至所述协议生成器;
所述协议生成器根据所述结点参数生成结点协议,并将所述结点协议保存至主函数中的拓扑结构中;
所述画布控制器用于根据所述拓扑结构更新画布。
进一步地,所述结点设置指令包括以下至少一项:
触发结点设置指令、触发结点编辑指令、过程结点设置指令、过程结点编辑指令、逻辑结点编辑指令和循环结点编辑指令。
进一步地,画布控制器响应于结点设置指令,生成对应的结点参数,包括:
所述画布控制器响应于结点设置指令,查询可用的结点;
如果为第一次查询,所述画布控制器调用所述协议生成器,获取结点查询接口协议,并把查询接口协议通过函数注入函数接口加入到在主函数中;
所述画布控制器调用结点查询接口协议,从服务器获取权限范围内的结点;
所述画布控制器将获取到的结点传递至所述画布,在所述画布生成编辑弹窗;
所述画布控制器根据用户的编辑指令,生成所述编辑指令对应的结点参数。
进一步地,当所述结点设置指令为过程结点设置指令时,所述画布控制器将获取到的结点传递至所述画布,在所述画布生成编辑弹窗之后,还包括:
获取用户的编辑指令;
如果所述用户编辑的过程结点需要账号认证,所述画布控制器调用对应的第三方服务进行账号认证;
所述画布控制器获取第三方服务的认证结果,并将所述认证结果和认证参数传递至协议生成器;
所述协议生成器根据所述认证参数,生成加密的认证协议,并在主函数的全局变量中保存。
进一步地,当所述结点设置指令为逻辑结点编辑指令时,所述协议生成器根据所述结点参数生成结点协议,并将所述结点协议保存至主函数中的拓扑结构中,包括:
所述协议主函数把逻辑表达式协议中的逻辑表达式提取出来形成集合,连同逆向获取到的过程结点编辑参数,返回给画布;
所述画布控制器在所述画布构建逻辑判断结点编辑框,并把逆向获取到的过程结点编辑参数作为编辑过程中的语法智能提示语使用;
获取用户的编辑指令,使用所述主函数将所述编辑指令对应的编辑结果与逻辑协议合并,生成逻辑结点协议;
根据所述逻辑结点协议,更新拓扑结构,查找原连线两结点,在其中加入新结点,并根据编辑的判断条件,生成若干条分支,所有分支都与原子结点相连。
进一步地,所述协议生成器根据所述结点参数生成结点协议,并将所述结点协议保存至主函数中的拓扑结构中,包括:
所述协议生成器对所述结点参数进行校验;
校验通过后,所述协议生成器根据所述结点参数生成结点协议;
将所述结点协议保存至主函数中的拓扑结构中。
进一步地,还包括步骤:
响应于用户的保存指令,得到编排好的协议。
第二方面,本发明还提供一种协议执行方法,其特征在于,包括以下步骤:
获取依照如本发明第一方面任一方法生成的协议;
将所述协议在Node.js运行环境的服务端执行。
进一步地,还包括以下步骤:
将所述协议通过执行引擎在前端浏览器进行调试。
本发明提供的一种全域集成编排流协议生成方法及执行方法,基于JavaScript构造的集成流编排协议,可运行于v8、JavaScriptCore为核心的Chrome浏览器或node.js上,后者为非常成熟且被广泛使用的运行环境;得益于Chrome浏览器的支持,可直接应用浏览器的调试能力;并因为JavaScript可运行于任意有JavaScript运行时的环境中,可突破终端应用边界。
在实际使用中,1.无需对协议进行转换,可以直接被执行;2.调试阶段可以脱离服务器,在前端集成流编排系统中完成必要的调试工作;3.支持开发人员熟知的调试方式;4.协议的运行不依赖特定环境且可跨平台。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1为本发明提供的一种全域集成编排流协议生成方法的步骤示意图;
图2为一个实施例中初始化画布的流程示意图;
图3为一个实施例中配置触发结点的流程示意图;
图4为一个实施例中配置过程结点的流程示意图;
图5为一个实施例中编辑逻辑结点的流程示意图;
图6为一个实施例中编辑循环结点的流程示意图;
图7为一个实施例中生成执行协议的流程示意图;
图8为一个实施例中所生成的执行协议后处理流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在一个具体的应用场景中,本申请提供的一种全域集成编排流协议生成方法基于JavaScript构造。具体的,该方法由画布、画布控制器、协议生成器3个部分完成。
1、画布用于对用户呈现“画布”界面,用户可在画布界面通过点选新增、修改、删除结点等指令,进行协议的编排。
2、画布控制器用于接受和响应用户在画布界面的操作指令,与协议生成器进行数据的调用和交换,并控制画布界面的更新变化。
3、协议生成器用于接收画布控制器的调用和数据交换,生成、修改用户的编排的协议。
针对背景技术中的问题,本申请实施例提供一种全域集成编排流协议生成方法,该方法由画布控制器为主体执行,如图1所示,该方法包括以下步骤:
S01:画布控制器初始化画布。
具体的,画布控制器响应于画布初始化指令,调用协议生成器生成协议主函数,并通过所述协议主函数在画布生成起始结点与终止结点。
实际应用中,如图2所示,主函数返回到画布控制器,被画布控制器中的JavaScript引擎加载,同时通过主函数中的结点描述函数,取出起始结点与终止结点,交给画布绘制。
优选的,所述协议主函数包括:
结点描述函数,用于获取指定结点的类型、值以及文字描述属性;
函数注入函数,用于后继在编排过程中,向主函数动态加入新函数;
结点操作函数,用于新增、修改和删除结点,改变结点之间的关系,在生成主函数的过程中,会预先初始化起始结点和终止结点,并在拓扑结构中描述其关系。
S02:画布控制器响应于结点设置指令,生成对应的结点参数,并将所述结点参数传递至所述协议生成器。
在一个优选的实施例中,包括以下子步骤:
S021:所述画布控制器响应于结点设置指令,查询可用的结点;
S022:如果为第一次查询,所述画布控制器调用所述协议生成器,获取结点查询接口协议,并把查询接口协议通过函数注入函数接口加入到在主函数中;
S023:所述画布控制器调用结点查询接口协议,从服务器获取权限范围内的结点;
S024:所述画布控制器将获取到的结点传递至所述画布,在所述画布生成编辑弹窗;
S025:所述画布控制器根据用户的编辑指令,生成所述编辑指令对应的结点参数。
当所述结点设置指令为过程结点设置指令时,所述画布控制器将获取到的结点传递至所述画布,在所述画布生成编辑弹窗之后,还包括步骤:
S026:获取用户的编辑指令;
S027:如果所述用户编辑的过程结点需要账号认证,所述画布控制器调用对应的第三方服务进行账号认证;
S028:所述画布控制器获取第三方服务的认证结果,并将所述认证结果和认证参数传递至协议生成器;
S029:所述协议生成器根据所述认证参数,生成加密的认证协议,并在主函数的全局变量中保存。
S03:所述协议生成器根据所述结点参数生成结点协议,并将所述结点协议保存至主函数中的拓扑结构中。
优选的,包括以下子步骤:
S031:所述协议生成器对所述结点参数进行校验;
S032:校验通过后,所述协议生成器根据所述结点参数生成结点协议;
S033:将所述结点协议保存至主函数中的拓扑结构中。
在其他的实施例中,当所述结点设置指令为逻辑结点编辑指令时,还包括以下子步骤:
S034:所述协议主函数把逻辑表达式协议中的逻辑表达式提取出来形成集合,连同逆向获取到的过程结点编辑参数,返回给画布;
S035:所述画布控制器在所述画布构建逻辑判断结点编辑框,并把逆向获取到的过程结点编辑参数作为编辑过程中的语法智能提示语使用;
S036:获取用户的编辑指令,使用所述主函数将所述编辑指令对应的编辑结果与逻辑协议合并,生成逻辑结点协议;
S037:根据所述逻辑结点协议,更新拓扑结构,查找原连线两结点,在其中加入新结点,并根据编辑的判断条件,生成若干条分支,所有分支都与原子结点相连。
S04:所述画布控制器用于根据所述拓扑结构更新画布。
优选的,还包括步骤:
S05:响应于用户的保存指令,得到编排好的协议。
在一个优选的实施例中,所述结点设置指令包括:触发结点设置指令、触发结点编辑指令、过程结点设置指令、过程结点编辑指令、逻辑结点编辑指令和循环结点编辑指令。
具体的,如图3-图7所示,一个完整的全域集成编排流协议生成步骤包括:
1.集成流编排系统画布初始化,会通过画布控制器调用协议生成器,生成协议主函数,协议主函数包含以下几部分:结点描述函数,用于获取某个指定结点的类型、值、文字描述等属性;函数注入函数,用于后继在编排过程中,往主函数动态加入新函数;结点操作函数,用于新增、修改、删除结点,改变结点之间的关系,在生成主函数的过程中,会预先初始化起始结点和终止结点,并在拓扑结构中描述其关系。主函数返回到画布控制器,被画布控制器中的JavaScript引擎加载,同时通过主函数中的结点描述函数,取出起始结点与终止结点,交给画布绘制。
2.画布初始化后,可以进行后继的编排操作。点选触发节点,进行触发节点配置。触发结点调用画布控制器,查询可用的触发结点,第一次查询,画布控制器会调用协议生成器,获取触发结点查询接口协议,并把查询接口协议通过主函数注册函数接口加入到在主函数中,画布控制器调用触发结点查询接口协议,从服务器获取权限范围内的触发结点。获取到的触发结点,会交给画布,弹窗进行选择。经选择后的触发结点,会进入编辑状态,用户通过界面元素的编辑后,参数会传递到协议生成器,协议生成器对传到过来的参数做校验,所有参数校验通过后,生成触发结点协议,保存至主函数中的拓扑结构中,并更新画布。
3.触发结点设置完毕后,可进行过程结点设置。点选两结点间连线,进行过程节点配置。
画布连线调用画布控制器,查询可用的过程结点,第一次查询,画布控制器会调用协议生成5器,获取过程结点查询接口协议,并把查询接口协议通过主函数注册函数接口加入到在主函
数中,画布控制器调用过程结点查询接口协议,从服务器获取权限范围内的过程结点。获取到的过程结点,会交给画布,弹窗进行选择。经选择后的过程结点,会进入编辑状态,在这个过程中,部分过程结点在后继服务器执行中需要,账号认证,故在书账号认证后,画布控
制器会调用对应的第三方服务进行账号认证,并把认证的结果返回,画布控制器把认证的结0果及认证参数,交给协议生成器,生成加密的认证协议,并在主函数的全局变量中保存。用
户对界面元素编辑后,相关参数及认证协议会传递到协议生成器,协议生成器对传到过来的参数做校验,所有参数校验通过后,生成过程结点协议,修改主函数中的拓扑结构,并更新画布。
4.集成流编排过程中,可编辑逻辑结点。点击连线上的添加按钮,选择添加逻辑判断结5点。触发画布控制器中的主函数逻辑。主函数从当前连线的拓扑结构中,逆向提取出过程结
点所编辑的参数,同时主函数调用协议生成器,从协议生成器中取出逻辑协议模板,及所有已经定义的逻辑表达式协议。首次使用,这两者会被缓存于主函数中。主函数会把逻辑表达式协议中的逻辑表达式提取出来形成集合,连同逆向获取到的过程结点编辑参数,返回给画
布。画布除了构建逻辑判断结点编辑框外,还把返回的内容,作为编辑过程中的语法智能提0示语使用,提供便捷编写。编辑完毕,编辑结果回传到控制器。主函数把编辑结果与逻辑协
议合并,生成逻辑结点协议。接着更新拓扑结构,查找原连线两结点,在其中加入新结点,并根据编辑的判断条件,生成若干条分支,所有分支都与原子结点相连,最后通知画布更新。
5.集成流编排过程中,可编辑循环结点。点击连线上的添加按钮,选择添加循环结点。
触发画布控制器中的主函数逻辑。主函数从当前连线的拓扑结构中,逆向提取出过程结点所5编辑的参数,同时主函数调用协议生成器,从协议生成器中取出循环协议模板,及所有已经
定义的逻辑表达式协议。首次使用,这两者会被缓存于主函数中。主函数会把逻辑表达式协议中的逻辑表达式提取出来形成集合,连同逆向获取到的过程结点编辑参数,返回给画布。
画布除了构建循环结点编辑框外,还把返回的内容,作为编辑过程中的语法智能提示语使用,
提供便捷编写。编辑完毕,编辑结果回传到控制器。主函数把编辑结果与循环协议合并,生0成循环结点协议。接着更新拓扑结构,查找原连线两结点,在其中加入循环结点与循环单分
支,最后通知画布更新。
6.循环以上3、4、5步,可完成整个编排流的编辑,其中,过程结点既可以嵌套于逻辑判断结点中,也可以嵌套于循环结点中,循环结点可以嵌套于逻辑判断结点中,逻辑判断结点也能嵌套于循环结点中。
7.编辑完毕,按保存生成执行协议。
第二方面,本申请实施例还提供一种协议执行方法,如图8所示,包括以下步骤:
S1:获取依照本申请第一方面任一方法生成的协议。
S2:将所述协议在Node.js运行环境的服务端执行。
S3:将所述协议通过执行引擎在前端浏览器进行调试。
本发明提供的一种全域集成编排流协议生成方法及执行方法,基于JavaScript构造的集成流编排协议,可运行于v8、JavaScriptCore为核心的Chrome浏览器或node.js上,后者为非常成熟且被广泛使用的运行环境;得益于Chrome浏览器的支持,可直接应用浏览器的调试能力;并因为JavaScript可运行于任意有JavaScript运行时的环境中,可突破终端应用边界。
在实际使用中,1.无需对协议进行转换,可以直接被执行;2.调试阶段可以脱离服务器,在前端集成流编排系统中完成必要的调试工作;3.支持开发人员熟知的调试方式;4.协议的运行不依赖特定环境且可跨平台。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
- 一种基于银行业务流的智能合约生成与执行的方法
- 一种业务流模板、业务流生成方法及装置
- 工作流执行方法、工作流编排方法及电子设备
- 工作流生成方法、工作流执行方法以及工作流执行系统