CN117076007B - 降低中台架构代码侵入的方法、装置及中台系统 - Google Patents
降低中台架构代码侵入的方法、装置及中台系统 Download PDFInfo
- Publication number
- CN117076007B CN117076007B CN202311339368.6A CN202311339368A CN117076007B CN 117076007 B CN117076007 B CN 117076007B CN 202311339368 A CN202311339368 A CN 202311339368A CN 117076007 B CN117076007 B CN 117076007B
- Authority
- CN
- China
- Prior art keywords
- target
- service
- executable file
- identifier
- feedback information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 115
- 230000008569 process Effects 0.000 claims abstract description 43
- 230000006870 function Effects 0.000 claims description 123
- 230000004044 response Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000012423 maintenance Methods 0.000 abstract description 10
- 230000009545 invasion Effects 0.000 abstract description 6
- 238000011161 development Methods 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 6
- 244000046052 Phaseolus vulgaris Species 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000010485 coping Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种降低中台架构代码侵入的方法、装置及中台系统,涉及计算机技术领域,该方法包括:在运行目标业务的过程中,若运行到目标业务的目标流程,则获取目标流程中设置的目标配置标识,并通过配置中心获取与目标配置标识相对应的目标服务标识;基于目标服务标识获取目标可执行文件,并根据目标可执行文件的运行结果,完成目标流程。本申请提供的降低中台架构代码侵入的方法、装置及中台系统,通过将自定义功能与中台架构剥离的方式,降低引入自定义功能时对中台架构的代码侵入,极大地提高中台架构的扩展能力,降低了中台架构的维护成本。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种降低中台架构代码侵入的方法、装置及中台系统。
背景技术
随着互联网技术的发展,各种项目的功能越来越丰富,项目之间相互耦合、重复的功能或代码也越来越多。
在相关技术中,为了避免开发人员重复开发,业界提出了“中台”架构,能够面向特定行业打造专属的“中台”架构。例如,政务中台、工业中台、交通中台、警务中台等。能够将行业专属的功能或者架构集成到“中台”架构中,通过业务拆分来降低系统的复杂性。
然而,当在“中台”架构中引入第三方自定义功能时,需要在特定位置预留钩子函数,导致“中台”架构遭受代码侵入的影响,不仅破坏了“中台”架构高内聚的设计思想,也提高了维护成本。
发明内容
本申请的目的是提供一种降低中台架构代码侵入的方法、装置及中台系统,通过将自定义功能与中台架构剥离的方式,降低引入自定义功能时对中台架构的代码侵入,极大地提高中台架构的扩展能力,降低了中台架构的维护成本。
第一方面,本申请提供一种降低中台架构代码侵入的方法,包括:
在运行目标业务的过程中,若运行到目标业务的目标流程,则获取目标流程中设置的目标配置标识,并通过配置中心从Faas平台中获取到与目标配置标识相对应的目标服务标识;基于目标服务标识获取目标可执行文件,并根据目标可执行文件的运行结果,完成目标流程;其中,目标可执行文件为:基于Faas平台中与目标服务标识所对应的目标自定义代码编译生成的可执行文件;目标自定义代码:通过目标服务标识从Faas平台中获取到的自定义代码。
可选地,获取目标流程中设置的目标配置标识之前,方法还包括:在目标流程中需要引入目标功能的目标位置设置目标配置标识;在配置中心中将目标配置标识与Faas平台中的目标服务标识建立关联关系;其中,目标功能为目标可执行文件所能实现的功能;目标服务标识用于调用目标服务;目标服务为:Faas平台中用于获取目标自定义代码,或者,获取基于目标自定义代码编译生成的目标可执行文件的服务。
可选地,通过配置中心从Faas平台中获取到与目标配置标识相对应的目标服务标识,包括:向配置中心发送服务标识获取请求;其中,服务标识获取请求包括:目标配置标识;服务标识获取请求用于指示配置中心从Faas平台中获取与目标配置标识所对应的目标服务标识。
可选地,向配置中心发送服务标识获取请求之后,方法还包括:接收配置中心反馈的第一反馈信息;其中,第一反馈信息包括:目标服务标识。
可选地,向配置中心发送服务标识获取请求之后,方法还包括:接收配置中心反馈的第二反馈信息;响应于第二反馈信息,触发执行第一异常策略;其中,第二反馈信息用于指示配置中心未获取到与目标配置标识对应的服务标识;第一异常策略为:未获取到目标服务标识时所执行的策略。
可选地,基于目标服务标识获取目标可执行文件,并根据目标可执行文件的运行结果,完成目标流程,包括:检查本地缓存中是否存在目标可执行文件,并在本地缓存中存在目标可执行文件的情况下,根据目标可执行文件的运行结果,完成目标流程。
可选地,基于目标服务标识获取目标可执行文件,并根据目标可执行文件的运行结果,完成目标流程,包括:检查本地缓存中是否存在目标可执行文件,并在本地缓存中未存在目标可执行文件的情况下,向Faas平台发送服务调用请求;其中,服务调用请求包括:目标服务标识。
可选地,向Faas平台发送服务调用请求之后,方法还包括:接收Faas平台反馈的第三反馈信息;第三反馈信息包括:目标自定义代码;响应于第三反馈信息,对目标自定义代码执行编译操作,生成目标可执行文件,并根据目标可执行文件的运行结果,完成目标流程,以及将目标可执行文件存储到本地缓存中。
可选地,向Faas平台发送服务调用请求之后,方法还包括:接收Faas平台反馈的第四反馈信息;第四反馈信息包括:目标可执行文件; 根据目标可执行文件的运行结果,完成目标流程,并将目标可执行文件存储到本地缓存中。
可选地,向Faas平台发送服务调用请求之后,方法还包括:接收Faas平台反馈的第五反馈信息;第五反馈信息用于指示调用目标服务失败;响应于第五反馈信息,触发执行第二异常策略;其中,第二异常策略为:调用目标服务失败时所执行的策略。
可选地,根据目标可执行文件的运行结果,完成目标流程,包括:运行目标可执行文件,并获取目标可执行文件的运行结果;将目标可执行文件的运行结果反馈至目标流程,以完成目标流程。
第二方面,本申请还提供一种中台系统,包括:中台,函数即服务Faas平台,以及介于中台与Faas平台之间的配置中心;中台,用于在运行目标业务的过程中,若运行到目标业务的目标流程,则获取目标流程中设置的目标配置标识,并通过配置中心从Faas平台中获取到与目标配置标识相对应的目标服务标识;中台,还用于基于目标服务标识获取目标可执行文件,并根据目标可执行文件的运行结果,完成目标流程;其中,目标可执行文件为:基于Faas平台中与目标服务标识所对应的目标自定义代码编译生成的可执行文件;目标自定义代码:通过目标服务标识从Faas平台中获取到的自定义代码。
可选地,中台,具体用于向配置中心发送服务标识获取请求;其中,服务标识获取请求包括:目标配置标识;服务标识获取请求用于指示配置中心从Faas平台中获取与目标配置标识所对应的目标服务标识。
可选地,配置中心,用于响应于服务标识获取请求,在获取到配置中心存储的与目标配置标识相关联的目标服务标识的情况下,向配置中心发送第一反馈信息;其中,第一反馈信息包括:目标服务标识。
可选地,配置中心,用于响应于服务标识获取请求,在未获取到与目标配置标识相关联的服务标识的情况下,向配置中心发送第二反馈信息;第二反馈信息用于指示配置中心未获取到与目标配置标识对应的服务标识;中台,还用于在接收到第二反馈信息的情况下,执行第一异常策略;其中,第一异常策略为:未获取到目标服务标识时所执行的策略。
可选地,中台,具体用于检查本地缓存中是否存在目标可执行文件,并在本地缓存中存在目标可执行文件的情况下,根据目标可执行文件的运行结果,完成目标流程。
可选地,中台,具体用于检查本地缓存中是否存在目标可执行文件,并在本地缓存中未存在目标可执行文件的情况下,向Faas平台发送服务调用请求;其中,服务调用请求包括:目标服务标识。
可选地,Faas平台,还用于响应于服务调用请求,调用与目标服务标识所对应的目标服务,并在调用目标服务成功的情况下,向中台发送第三反馈信息;第三反馈信息包括:目标自定义代码;中台,具体用于在接收到第三反馈信息的情况下,对目标自定义代码执行编译操作,生成目标可执行文件,并根据目标可执行文件的运行结果,完成目标流程,以及将目标可执行文件存储到本地缓存中。
可选地,Faas平台,还用于响应于服务调用请求,调用与目标服务标识所对应的目标服务,并在调用目标服务成功的情况下,向中台发送第四反馈信息;第四反馈信息包括:目标可执行文件;中台,具体用于在接收到第四反馈信息的情况下,根据目标可执行文件的运行结果,完成目标流程,并将目标可执行文件存储到本地缓存中。
可选地,Faas平台,还用于响应于服务调用请求,调用与目标服务标识所对应的目标服务,并在调用目标服务失败的情况下,向中台发送第五反馈信息;第五反馈信息用于指示调用目标服务失败;中台,还用于在接收到第五反馈信息的情况下,触发执行第二异常策略;其中,第二异常策略为:调用目标服务失败时所执行的策略。
可选地,中台,具体用于运行目标可执行文件,并获取目标可执行文件的运行结果;中台,具体还用于将目标可执行文件的运行结果反馈至目标流程,以完成目标流程。
第三方面,本申请还提供一种降低中台架构代码侵入的装置,包括:
获取模块,用于在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;所述获取模块,还用于基于所述目标服务标识获取目标可执行文件;执行模块,用于根据所述目标可执行文件的运行结果,完成所述目标流程;其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码。
可选地,所述装置还包括:设置模块;所述设置模块,用于在所述目标流程中需要引入目标功能的目标位置设置所述目标配置标识;所述设置模块,还用于在配置中心中将所述目标配置标识与所述Faas平台中的所述目标服务标识建立关联关系;其中,所述目标功能为所述目标可执行文件所能实现的功能;所述目标服务标识用于调用所述目标服务;所述目标服务为:所述Faas平台中用于获取所述目标自定义代码,或者,获取基于所述目标自定义代码编译生成的所述目标可执行文件的服务。
可选地,所述装置还包括:发送模块;所述发送模块,用于向所述配置中心发送服务标识获取请求;其中,所述服务标识获取请求包括:所述目标配置标识;所述服务标识获取请求用于指示所述配置中心从所述Faas平台中获取与所述目标配置标识所对应的目标服务标识。
可选地,所述获取模块,具体用于接收所述配置中心反馈的第一反馈信息;其中,所述第一反馈信息包括:所述目标服务标识。
可选地,所述获取模块,具体用于接收所述配置中心反馈的第二反馈信息;所述执行模块,还用于响应于所述第二反馈信息,触发执行第一异常策略;其中,所述第二反馈信息用于指示所述配置中心未获取到与所述目标配置标识对应的服务标识;所述第一异常策略为:未获取到所述目标服务标识时所执行的策略。
可选地,所述执行模块,具体用于检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中存在所述目标可执行文件的情况下,根据所述目标可执行文件的运行结果,完成所述目标流程。
可选地,所述发送模块,还用于检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中未存在所述目标可执行文件的情况下,向所述Faas平台发送服务调用请求;其中,所述服务调用请求包括:所述目标服务标识。
可选地,所述获取模块,具体用于接收所述Faas平台反馈的第三反馈信息;所述第三反馈信息包括:所述目标自定义代码;所述执行模块,具体用于响应于所述第三反馈信息,对所述目标自定义代码执行编译操作,生成所述目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程,以及将所述目标可执行文件存储到所述本地缓存中。
可选地,所述获取模块,具体用于接收所述Faas平台反馈的第四反馈信息;所述第四反馈信息包括:所述目标可执行文件;所述执行模块,具体用于根据所述目标可执行文件的运行结果,完成所述目标流程,并将所述目标可执行文件存储到所述本地缓存中。
可选地,所述获取模块,具体用于接收所述Faas平台反馈的第五反馈信息;所述第五反馈信息用于指示调用所述目标服务失败;所述执行模块,还用于响应于所述第五反馈信息,触发执行第二异常策略;其中,所述第二异常策略为:调用所述目标服务失败时所执行的策略。
可选地,所述执行模块,具体用于运行所述目标可执行文件,并获取所述目标可执行文件的运行结果;所述执行模块,具体还用于将所述目标可执行文件的运行结果反馈至所述目标流程,以完成所述目标流程。
第四方面,本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述第一方面中任一种所述降低中台架构代码侵入的方法的步骤。
第五方面,本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面中任一种所述降低中台架构代码侵入的方法的步骤。
第六方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一种所述降低中台架构代码侵入的方法的步骤。
本申请提供的降低中台架构代码侵入的方法、装置及中台系统,在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;之后,基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程。如此,通过将自定义功能与中台架构剥离的方式,降低引入自定义功能时对中台架构的代码侵入,不仅极大地提高中台架构的扩展能力,还降低了中台架构的维护成本。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的传统架构与中台架构示意图;
图2是本申请提供的相关技术中中台引用自定义功能的流程示意图;
图3是本申请提供的中台系统的架构示意图;
图4是本申请提供的降低中台架构代码侵入的方法的流程示意图;
图5是本申请提供的获取服务标识的流程示意图;
图6是本申请提供的Faas平台中服务标识与自定义代码之间的关系图;
图7是本申请提供的中台系统的各部分之间的交互流程示意图;
图8是本申请提供的降低中台架构代码侵入的装置的结构示意图;
图9是本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
以下针对本申请实施例所涉及的专业术语进行说明解释:
中台:是一个以服务为导向的组织架构和技术架构。它致力于将企业内部的各个业务系统整合和协同起来,构建一个共享的、可扩展的核心平台,通过提供标准化的基础设施、共享的业务能力和数据资源,为企业业务创新和数字化转型提供支持。中台的核心思想是将各个业务系统抽象为独立的业务能力,并通过一个统一的中间层进行统一管理和调度。中台的架构通常包括数据中台、应用中台和技术中台。数据中台负责整合和管理企业内外的数据资源,应用中台提供标准化的业务功能和服务,技术中台则为业务系统提供统一的技术基础设施和支持。
中台的好处包括降低系统集成的复杂性、提高业务灵活性和创新能力、加快业务交付速度等。通过建设中台,企业可以更好地应对市场变化,快速构建和调整业务能力,提升整体竞争力。
服务供给接口(Service Provider Interface,SPI):是Java平台提供的一种服务提供者扩展机制,它允许开发者定义接口(或抽象类)和对应的实现,以及在运行时动态地将不同的实现注入到应用程序中。
SPI机制涉及三个主要组成部分:服务接口、服务提供者和服务加载器。服务接口:提供一种抽象定义,描述了一组相关的操作或功能。它通常是一个Java接口或抽象类,用于定义一系列规范和方法。服务提供者:服务接口的具体实现,开发者可以根据具体需求自行实现服务接口。每个服务提供者需要提供一个实现类,并在类路径下提供一个特定的配置文件(通常命名为META-INF/services/接口全限定名),其中列出了该服务接口的实现类。服务加载器:用于加载和查找服务提供者的机制。服务加载器会在运行时搜索并加载对应服务接口的实现类。Java平台提供了一套标准的服务加载器API(java.util.ServiceLoader),可以通过它来实现服务加载。在应用程序运行时,服务加载器会根据定义的服务接口,从类路径下对应的配置文件中读取服务提供者的实现类名称,并通过反射机制实例化这些实现类对象。开发者可以利用服务加载器获取特定的服务实例,从而使用相应的功能。SPI机制的优势在于它的扩展性和灵活性。开发者可以根据需要定义和扩展服务接口,提供不同的实现。这种松耦合的设计使得应用程序更易于维护和拓展,同时也方便了第三方开发者通过实现服务接口来集成和扩展应用程序的功能。SPI机制在很多Java框架和库中得到广泛应用,如Java JDBC、JavaMail等。
钩子函数:是消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。
无服务Serverless:是一种云计算架构模式,它使开发者可以构建和运行应用程序而无需关心底层的服务器管理。在传统的应用部署模式中,开发者需要自己配置和管理服务器的硬件和软件,而在Serverless架构中,这些工作被云服务提供商托管和管理。在Serverless架构中,开发者只需要编写应用程序代码,并将其部署到云服务提供商的平台上。云服务提供商会根据实际的请求和负载来自动动态分配资源,并且只为实际使用的资源付费。这意味着开发者无需关心服务器的数量、配置和管理,可以更专注于应用程序的开发和功能实现。
Serverless架构具有弹性和灵活性,可以自动缩放以应对不同的负载需求,同时也提供了高可用和容错能力。开发者可以根据实际需求进行按量付费,避免了闲置资源的浪费。同时,Serverless还提供了一些额外的功能和服务,如事件驱动的计算、自动触发和扩展等,使开发者能够更快速、高效地构建和部署应用程序。
函数即服务(Function as a Service,FaaS):FaaS是云服务的一种形式,它是一种事件驱动的计算模型,将开发人员的重点放在函数代码的编写上,而无需关心底层的服务器和基础设施。在FaaS中,开发人员只需将函数代码上传到云平台,而无需关注函数运行的容器、网络和资源管理等底层细节。云平台会负责根据事件的触发情况自动调用相应的函数,并将结果返回。
FaaS的主要特点包括:无服务器架构:FaaS隐藏了底层的服务器和基础设施,开发人员只需专注于函数的编写和逻辑的实现,无需管理服务器的运维和扩展。事件驱动:FaaS函数是通过事件触发的,可以根据数据变更、定时触发或API调用等事件来触发函数的执行。弹性扩展:FaaS可以根据请求的负载自动进行弹性扩展,保证函数能够处理高并发的请求。按需计费:FaaS采用了按需计费的模式,只有在函数真正被触发执行时才会产生费用,有效降低了资源的浪费。使用FaaS可以使开发人员更加聚焦于函数代码的开发和业务逻辑的实现,而无需关注底层的运维和扩展。FaaS适用于一些需要快速响应事件触发的场景,如无缝扩展、数据处理、后台任务等。它能帮助开发人员提高开发效率、降低成本,并提供高度可扩展的计算能力。
后端即服务(Backend as a Service,BaaS):是云服务的一种形式,它提供了用于移动应用和Web应用的后端功能。BaaS平台可以让开发人员在构建应用程序时更专注于前端开发,而无需关注后端的复杂性。BaaS提供了数据库管理、用户认证、推送通知、文件存储和实时数据同步等功能,为开发人员提供了方便快捷的后端服务。通过使用BaaS,开发人员可以节省时间和资源,并加快应用程序的开发速度。
BaaS通常提供了以下核心功能:数据库管理:BaaS提供了存储和管理应用程序数据的功能,通常支持多种类型的数据库,如关系型数据库和NoSQL数据库。用户认证和管理:BaaS提供了用户认证和授权的功能,开发人员可以轻松地管理用户账户和权限,确保应用程序的安全性。文件存储:BaaS提供了文件存储功能,开发人员可以将应用程序所需的文件(如图片、视频或文档)存储在云端,并通过API进行访问和管理。推送通知:BaaS可以集成推送通知服务,开发人员可以向应用程序的用户发送各种通知,如消息、提醒或更新等。实时数据同步:BaaS提供实时数据同步功能,可以使应用程序的不同实例之间实现数据的即时更新和同步。使用BaaS可以帮助开发人员减少后端开发的工作量,加快应用程序的上线速度,并降低开发和维护的成本。同时,BaaS还能提供基础设施的扩展性和可靠性,保证应用程序在高流量和故障情况下的正常运行。总之,BaaS是一种方便、快捷且高效的云服务形式,可支持开发人员构建强大的应用程序。
以下针对相关技术中存在的引入自定义功能时对中台的代码侵入过多的技术问题进行详细的说明解释:
在相关技术中,传统应用通常各个应用之间相互独立,存在相同功能重复开发的问题,极大地提高了开发成本和维护成本。如图1所示,应用1和应用2之间存在相同的功能1,应用1和应用3之间存在相同的功能2,应用1、应用2和应用3之间存在相同的功能3。在开发过程中,功能1和功能2会重复开发两次,功能3会重复开发三次,造成了极大的浪费。
为了解决相关技术中的上述技术问题,提出了中台架构,如图1所示,该中台架构集成了功能1、功能2、功能3以及其他功能,所有功能仅需要开发一次,便可以多次使用。即根据实际需求调用中台架构中所包含的功能,便可以快速孵化出不同的应用,极大地提高了开发效率,降低了开发和维护成本。
然而,中台架构同样存在一定的问题,例如,当某个项目(一个应用表示一个项目,一个项目可以包含多个业务,一个业务可以由多个流程组成)需要根据实际需求引入第三方自定义功能时,相关技术中的做法是在中台的特定位置预留钩子函数,在具体项目落地时,再在这些钩子函数中引用第三方自定义功能。
虽然第三方自定义功能的代码放在了中台之外,但是这些大量的钩子函数也是放在了中台架构之内。如图2所示,为相关技术中引入第三方自定义功能的流程示意图。中台架构通常是利用Spring框架的SPI机制做自定义第三方功能引入,通过SPI机制将自定义的第三方功能代码入口加入到Spring的Bean扫描路径中,在项目启动时,Spring就会根据扫描路径将这些自定义的第三方功能代码封装成Bean,并加入到Bean容器中,使用时再根据配置的具体Bean的名字从Bean容器集合中检索出对应的Bean对象,再调用其中自定义的第三方功能。
如图2所示的引入第三方自定义功能的流程,中台与第三方应用包相结合的方式会破坏中台的完整性,需要在中台内部设置很多的钩子函数,而这些钩子函数对中台来说没有任何业务意义,只是单纯的用来设置第三方功能的入口,而且在打包运行时,还需要解压缩包、合包、再压缩包等操作,中间还可能会出现包冲突的问题,对整个项目流程来说很不友好。
针对相关技术中存在的上述技术问题,本申请实施例提供了一种基于Serverless的降低中台架构代码侵入的方法,能够通过将自定义功能与中台架构剥离的方式,降低引入自定义功能时对中台架构的代码侵入,不仅极大地提高中台架构的扩展能力,还降低了中台架构的维护成本。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的降低中台架构代码侵入的方法进行详细地说明。
如图3所示,为本申请实施例提供的降低中台架构代码侵入的方法所应用的中台系统,该系统包括:中台,函数即服务Faas平台,以及介于所述中台与所述Faas平台之间的配置中心。配置中心和Faas平台的设置都是为了降低对中台架构的代码侵入,即所有的流程都尽量独立于中台之外。
示例性地,为了能够实现本申请实施例提供的降低中台架构代码侵入的方法,在执行该方法之前,需要对如图3所示的中台系统进行配置,具体包括以下步骤401和步骤402:
步骤401、在目标流程中需要引入目标功能的目标位置设置所述目标配置标识。
示例性地,上述目标流程为目标业务所包含的多个业务中需要引入第三方自定义功能(即上述目标功能)的流程。
示例性地,上述目标功能为第三方自定义功能,该目标功能为中台中未包含的功能,例如,该功能可以为:用于查询当前天气情况的天气查询功能、用于通过行政编码查询行政区域的功能、以及用于进行特定数据处理的数据处理功能等。
示例性地,为了在目标流程中引入目标功能,需要在目标位置设置目标配置标识,该目标位置为目标流程的代码中需要使用该目标功能的运行结果的位置,目标流程在获取到该目标功能的运行结果后,才能够继续执行后续流程。
步骤402、在配置中心中将所述目标配置标识与所述Faas平台中的所述目标服务标识建立关联关系。
其中,所述目标功能为所述目标可执行文件所能实现的功能;所述目标服务标识用于调用目标服务;所述目标服务为:用于获取所述目标自定义代码,或者,获取基于所述目标自定义代码编译生成的所述目标可执行文件的服务。
示例性地,在目标流程的目标位置设置目标配置标识之后,还需要在配置中心建立目标配置标识与目标服务的关联关系,以便中台能够通过目标配置标识从目标配置中心获取到该目标服务标识。
需要说明的是,在Faas平台中,每个服务均有对应的服务标识,通过服务标识可以调用Faas平台中对应的服务。
如图4所示,本申请实施例提供的一种降低中台架构代码侵入的方法,该方法可以包括下述步骤403和步骤404:
步骤403、在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识。
示例性地,上述目标业务为中台所支持的多个业务中的任一个,上述目标流程为目标业务所包含的多个流程中的任一个,为了实现该目标流程,需要在该目标流程中引入第三方自定义功能。
示例性地,上述目标配置标识用于从Faas平台获取与目标配置标识相对应的目标服务标识。该目标服务标识用于调用Faas平台中对应的目标服务,即中台可以通过该目标服务标识调用Faas平台中的目标服务。调用该目标服务的目的是为了获取目标自定义代码,并基于该自定义代码编译生成目标可执行文件。
在一种可能的实现方式中,为了避免目标服务标识的获取影响到中台正常流程的运行,同时,也为了降低对中台架构的代码侵入,如图2所示,可以在中台系统中添加配置中心代理,专门用于与配置中心通信。该中台可以为基于Baas后端服务构建的中台,上述配置中心代理可以为该Baas后端服务中添加的外部服务。
举例说明,基于图3所示的中台系统,如图5所示,当中台的流程2需要使用第三方自定义功能时,可以在流程2的指定位置设置配置标识(即上述目标配置标识),当运行到流程2时,中台可以获取到流程2内设置的配置标识,并凭借该配置标识通过中台内设置的配置中心代理从配置中心获取流程2所需的能够实现自定义功能的自定代码所对应的服务标识(即上述目标服务标识)。该服务标识为配置中心基于配置标识从Faas平台中获取到的。
具体地,上述步骤403中获取目标服务标识的步骤,可以包括以下步骤403a1:
步骤403a1、向所述配置中心发送服务标识获取请求;
其中,所述服务标识获取请求包括:所述目标配置标识;所述服务标识获取请求用于指示所述配置中心从所述Faas平台中获取与所述目标配置标识所对应的目标服务标识。
示例性地,中台可以通过配置中心代理向配置中心发送服务标识获取请求,以获取配置中心与目标配置标识关联存储的目标服务标识。
示例性地,配置中心在接收到中台发送的服务标识获取请求之后,便可以将与目标配置标识关联存储的目标服务标识发送至中台。
具体地,上述步骤403a1之后,上述步骤403获取目标服务标识的步骤,还可以包括以下步骤403a2:
步骤403a2、接收所述配置中心反馈的第一反馈信息。
其中,所述第一反馈信息包括:所述目标服务标识。
示例性地,配置中心在接收到中台发送的服务标识获取请求之后,在配置中心存储有与所述目标配置标识相关联的目标服务标识的情况下,向配置中心发送第一反馈信息,该第一反馈信息中携带有获取到的目标服务标识。
具体地,上述步骤403a1之后,上述步骤403获取目标服务标识的步骤,还可以包括以下步骤403a3和步骤403a4:
步骤403a3、接收所述配置中心反馈的第二反馈信息。
步骤403a4、响应于所述第二反馈信息,触发执行第一异常策略。
其中,所述第二反馈信息用于指示所述配置中心未获取到与所述目标配置标识对应的服务标识;所述第一异常策略为:未获取到所述目标服务标识时所执行的策略。
示例性地,配置中心在接收到中台发送的服务标识获取请求之后,在配置中心未存储有与所述目标配置标识相关联的服务标识的情况下,向配置中心发送第二反馈信息,该第二反馈信息用于指示所述配置中心未获取到与所述目标配置标识对应的服务标识。
示例性地,中台在接收到配置中心发送的第二反馈信息后,表示出现异常情况,此时,便可以采取预设的异常应对策略来进行异常的处理。上述异常应对策略可以包括以下任一项:使用默认值,使用空值,终止流程并生成错误日志等,具体的异常应对策略可以根据实际任务需求进行设置和调整。
步骤404、基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程。
其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码。
示例性地,上述目标可执行文件为基于自定义代码编译生成的可执行文件,上述自定义代码为实现目标流程中第三方自定义功能的代码。
示例性地,中台在获取到目标服务标识之后,便可以基于该目标服务标识获取到能够实现上述目标功能的目标可执行文件,并基于该目标可执行文件的运行结果完成目标流程。
示例性地,在中台从配置中心获取到目标服务标识之后,中台可以通过以下三种方式来基于该目标服务标识获取到目标可执行文件:
方式1:
在方式1中,中台可以通过该目标服务标识,调用Faas平台上与该目标服务标识对应的目标服务,通过该目标服务,可以获取到能够实现上述目标功能的目标自定义代码,之后,便可以基于该目标自定义代码编译生成目标可执行文件。
具体地,上述步骤404,可以包括以下步骤404a1:
步骤404a1、检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中未存在所述目标可执行文件的情况下,向所述Faas平台发送服务调用请求。
其中,所述服务调用请求包括:所述目标服务标识。
示例性地,若在之前运行目标流程的过程中,已经编译并生成了所需的目标可执行文件,便可以将生成的目标可执行文件存储在本地缓存中,以便后续再次运行目标流程时,能够直接运行该目标可执行文件,而不需要进行重复编译。
示例性地,当本地缓存中未存储有目标可执行文件时,便可以基于目标服务标识,向Faas平台发送服务调用请求,以调用Faas平台的目标服务。
具体地,上述步骤404a1之后,上述步骤404,还可以包括以下步骤404a2和步骤404a3:
步骤404a2、接收所述Faas平台反馈的第三反馈信息。
其中,所述第三反馈信息包括:所述目标自定义代码。
步骤404a3、响应于所述第三反馈信息,对所述目标自定义代码执行编译操作,生成所述目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程,以及将所述目标可执行文件存储到所述本地缓存中。
示例性地,Faas平台在接收到该服务调用请求之后,便可以将能够实现目标功能的目标自定义代码发送至中台。中台在接收到该目标自定义代码后,便可以通过编译的方式生成目标可执行文件,同时运行该目标可知文件,并将运行结果反馈给目标流程,进而完成目标流程。
示例性地,中台在根据目标自定义代码编译生成目标可执行文件之后,还可以将该目标可执行文件存储到本地缓存中,以便后续运行目标流程时,能够省去编译步骤。
举例说明,如图6所示,Faas平台上的每个服务均有对应的服务标识,中台可以通过Faas平台的服务标识来调用不同的服务,不同的服务可以反馈给平台不同的自定义代码。即中台可以通过服务标识调用对应的服务,以获取所需的自定义代码。
如此,可以避免自定义代码的重复编译,减少了多次编译带来的性能损耗,在一定程度上提高了系统的运行效率。
方式2:
在方式2中,中台可以通过该目标服务标识,调用Faas平台上与该目标服务标识对应的目标服务,通过该目标服务,可以直接获取到能够实现上述目标功能的目标可执行文件,即编译并生成目标可执行文件的过程放在了Faas平台执行。
具体地,上述步骤404a1之后,上述步骤404,还可以包括以下步骤404a4和步骤404a5:
步骤404a4、接收所述Faas平台反馈的第四反馈信息。
其中,所述第四反馈信息包括:所述目标可执行文件。
步骤404a5、根据所述目标可执行文件的运行结果,完成所述目标流程,并将所述目标可执行文件存储到所述本地缓存中。
示例性地,当Faas平台在接收到上述服务调用请求之后,便可以利用目标自定义代码直接编译生成目标可执行文件,并将该目标可执行文件发送至中台。即目标服务的作用是直接在Faas平台编译生成目标可执行文件,而无需向中台发送目标自定义代码。
示例性地,中台在接收到该目标可执行文件之后,便可以直接运行,省去了编译步骤,避免因编译过程出现问题导致的流程阻塞的情况出现。
如此,可以进一步降低对中台架构的代码侵入,且将编译过程放在Faas平台,可以避免因代码错误导致的中台流程出现阻塞的情况。
方式3:
在方式3中,中台可以通过该目标服务标识检查本地缓存中是否存储有与该目标服务标识所对应的目标可执行文件,若存在,则可以直接运行并获取运行结果,省去了与Faas平台进行数据交互的步骤。
具体地,上述步骤404a1之后,上述步骤404,还可以包括以下步骤404a6:
步骤404a6、检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中存在所述目标可执行文件的情况下,根据所述目标可执行文件的运行结果,完成所述目标流程。
示例性地,中台可以通过目标服务标识来检查本地缓存中是否存在目标可执行文件,例如,该目标可执行文件可以以目标服务标识进行命名,利用目标服务标识在Faas平台的唯一性,避免了重名文件的出现。
在一种可能的实现方式中,若中台在通过目标服务标识调用Faas平台的目标服务时出现失败的情况,则需要执行对应的异常策略。
具体地,上述步骤404a1之后,上述步骤404,还可以包括以下步骤404b1和步骤404b2:
步骤404b1、接收所述Faas平台反馈的第五反馈信息。
其中,所述第五反馈信息用于指示调用所述目标服务失败。
步骤404b2、响应于所述第五反馈信息,触发执行第二异常策略。
其中,所述第二异常策略为:调用所述目标服务失败时所执行的策略。
示例性地,当中台在通过目标服务标识调用Faas平台的目标服务之后,Faas平台未获取到所需的目标自定义代码或者目标可执行文件,则可以直接向中台发送第五反馈信息。
示例性地,中台在接收到该第五反馈信息之后,表示无法获取到目标可执行文件,也就无法获取到目标可执行文件的运行结果。此时,中台需要执行对应的异常应对策略。
示例性地,上述第二异常策略与上述第一异常策略相似,均可以根据实际业务需求来进行设置和调整。
如此,可以在中台调用Faas平台的服务出现异常情况时,也能够及时进行处理,避免出现流程中断的情况。
具体地,上述步骤404中根据所述目标可执行文件的运行结果完成所述目标流程的步骤,可以包括以下步骤404c1和步骤404c2:
步骤404c1、运行所述目标可执行文件,并获取所述目标可执行文件的运行结果。
步骤404c2、将所述目标可执行文件的运行结果反馈至所述目标流程,以完成所述目标流程。
示例性地,上述目标可执行文件可以为class文件,也可以为动态链接库(DynamicLink Library,dll)文件,该目标可执行文件的类型与中台所使用的开发语言有关。以上述目标可执行文件为class文件为例,可以通过使用java命令的方式调用并执行class文件,并获取该class文件反馈的运行结果。
示例性地,在获取到目标可执行文件的运行结果后,便可以基于该目标可执行文件的运行结果完成目标流程。
需要说明的是,由于本申请中的中台系统将第三方功能独立与中台之外,因此,可以在第三方功能中引入与中台内功能包版本不一致的功能,且不会出现功能包冲突。例如,中台中使用的某个功能的功能包版本为1.1,而Faas平台中该功能的功能包版本为1.2,将Faas平台中的该功能作为第三方自定义功能进行引用,不会出现功能包版本冲突的问题。
需要说明的是,如图3所示,中台可以通过配置中心代理实现中台与配置中心之间的数据交互,也可以通过服务调用模块实现中台与Faas平台之间的数据交互,同时,开发人员仅需要维护配置中心代理和服务调用模块即可,极大的降低了对中台架构的代码侵入,使中台架构始终保持相对独立。在中台的具体流程中,可以通过特定函数来触发配置中心代理与配置中心之间的数据交互,以及服务调用模块与Faas平台之间的数据交互,开发人员仅需要输入不同的参数(例如,不同的配置标识)即可,而无需像相关技术中使用钩子函数时,为每个事件编写不同的功能实现代码。
本申请实施例提供的降低中台架构代码侵入的方法,在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;之后,基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程。如此,通过将自定义功能与中台架构剥离的方式,降低引入自定义功能时对中台架构的代码侵入,不仅极大地提高中台架构的扩展能力,还降低了中台架构的维护成本。
需要说明的是,本申请实施例提供的降低中台架构代码侵入的方法,执行主体可以为降低中台架构代码侵入的装置,或者该降低中台架构代码侵入的装置中的用于执行降低中台架构代码侵入的方法的控制模块。本申请实施例中以降低中台架构代码侵入的装置执行降低中台架构代码侵入的方法为例,说明本申请实施例提供的降低中台架构代码侵入的装置。
需要说明的是,本申请实施例中,上述各个方法附图所示的。降低中台架构代码侵入的方法均是以结合本申请实施例中的一个附图为例示例性的说明的。具体实现时,上述各个方法附图所示的降低中台架构代码侵入的方法还可以结合上述实施例中示意的其它可以结合的任意附图实现,此处不再赘述。
下面对本申请提供的降低中台架构代码侵入的装置进行描述,下文描述的与上文描述的降低中台架构代码侵入的方法可相互对应参照。
如图3所示的中台系统结构示意图,本申请实施例提供的中台系统,各个部分的功能和作用具体包括:
所述中台,用于在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;所述中台,还用于基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程;其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码。
可选地,所述中台,具体用于向所述配置中心发送服务标识获取请求;其中,所述服务标识获取请求包括:所述目标配置标识;所述服务标识获取请求用于指示所述配置中心从所述Faas平台中获取与所述目标配置标识所对应的目标服务标识。
可选地,所述中台,具体用于向所述配置中心发送服务标识获取请求;其中,所述服务标识获取请求包括:所述目标配置标识;所述服务标识获取请求用于指示所述配置中心从所述Faas平台中获取与所述目标配置标识所对应的目标服务标识。
可选地,所述配置中心,用于响应于所述服务标识获取请求,在获取到所述配置中心存储的与所述目标配置标识相关联的目标服务标识的情况下,向所述配置中心发送第一反馈信息;其中,所述第一反馈信息包括:所述目标服务标识。
可选地,所述配置中心,用于响应于所述服务标识获取请求,在未获取到与所述目标配置标识相关联的服务标识的情况下,向所述配置中心发送第二反馈信息;所述第二反馈信息用于指示所述配置中心未获取到与所述目标配置标识对应的服务标识;所述中台,还用于在接收到所述第二反馈信息的情况下,执行第一异常策略;其中,所述第一异常策略为:未获取到所述目标服务标识时所执行的策略。
可选地,所述中台,具体用于检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中存在所述目标可执行文件的情况下,根据所述目标可执行文件的运行结果,完成所述目标流程。
可选地,所述中台,具体用于检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中未存在所述目标可执行文件的情况下,向所述Faas平台发送服务调用请求;其中,所述服务调用请求包括:所述目标服务标识。
可选地,所述Faas平台,还用于响应于所述服务调用请求,调用与所述目标服务标识所对应的目标服务,并在调用所述目标服务成功的情况下,向所述中台发送第三反馈信息;所述第三反馈信息包括:所述目标自定义代码;所述中台,具体用于在接收到所述第三反馈信息的情况下,对所述目标自定义代码执行编译操作,生成所述目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程,以及将所述目标可执行文件存储到所述本地缓存中。
可选地,所述Faas平台,还用于响应于所述服务调用请求,调用与所述目标服务标识所对应的目标服务,并在调用所述目标服务成功的情况下,向所述中台发送第四反馈信息;所述第四反馈信息包括:所述目标可执行文件;所述中台,具体用于在接收到所述第四反馈信息的情况下,根据所述目标可执行文件的运行结果,完成所述目标流程,并将所述目标可执行文件存储到所述本地缓存中。
可选地,所述Faas平台,还用于响应于所述服务调用请求,调用与所述目标服务标识所对应的目标服务,并在调用所述目标服务失败的情况下,向所述中台发送第五反馈信息;所述第五反馈信息用于指示调用所述目标服务失败;所述中台,还用于在接收到所述第五反馈信息的情况下,触发执行第二异常策略;其中,所述第二异常策略为:调用所述目标服务失败时所执行的策略。
可选地,所述中台,具体用于运行所述目标可执行文件,并获取所述目标可执行文件的运行结果;所述中台,具体还用于将所述目标可执行文件的运行结果反馈至所述目标流程,以完成所述目标流程。
举例说明,基于图3,如图7所示,为本申请实施例提供的降低中台架构代码侵入的方法的具体流程示意图。该流程包括以下步骤:①当运行到流程2时,将流程2中目标位置设置的配置标识发送至配置中心代理;②配置中心代理向配置中心发送服务标识获取请求;③配置中心根据服务标识获取请求中携带的配置标识,查找到对应的服务标识,并将该服务标识反馈给配置代理中心;④配置代理中心将该服务标识发送给服务调用模块;⑤服务调用模块基于该服务标识调用Faas平台中对应的服务;⑥Faas平台将对应的自定义代码或者编译生成好的可执行文件发送给服务调用模块(即中台);⑦中台运行该可执行文件,并将结果反馈给流程2,以便完成流程2。
需要说明的是,图7所示的示例为本申请中降低中台架构代码侵入的方法的一种示例,除此之外,本申请中降低中台架构代码侵入的方法还可以根据上述针对本申请中降低中台架构代码侵入的方法的描述得到其他不同的示例。
图8为本申请实施例提供的降低中台架构代码侵入的装置的结构示意图,如图8所示,具体包括:
获取模块801,用于在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;所述获取模块801,还用于基于所述目标服务标识获取目标可执行文件;执行模块802,用于根据所述目标可执行文件的运行结果,完成所述目标流程;其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码。
可选地,所述装置还包括:设置模块;所述设置模块,用于在所述目标流程中需要引入目标功能的目标位置设置所述目标配置标识;所述设置模块,还用于在配置中心中将所述目标配置标识与所述Faas平台中的所述目标服务标识建立关联关系;其中,所述目标功能为所述目标可执行文件所能实现的功能;所述目标服务标识用于调用所述目标服务;所述目标服务为:所述Faas平台中用于获取所述目标自定义代码,或者,获取基于所述目标自定义代码编译生成的所述目标可执行文件的服务。
可选地,所述装置还包括:发送模块;所述发送模块,用于向所述配置中心发送服务标识获取请求;其中,所述服务标识获取请求包括:所述目标配置标识;所述服务标识获取请求用于指示所述配置中心从所述Faas平台中获取与所述目标配置标识所对应的目标服务标识。
可选地,所述获取模块801,具体用于接收所述配置中心反馈的第一反馈信息;其中,所述第一反馈信息包括:所述目标服务标识。
可选地,所述获取模块801,具体用于接收所述配置中心反馈的第二反馈信息;所述执行模块802,还用于响应于所述第二反馈信息,触发执行第一异常策略;其中,所述第二反馈信息用于指示所述配置中心未获取到与所述目标配置标识对应的服务标识;所述第一异常策略为:未获取到所述目标服务标识时所执行的策略。
可选地,所述执行模块802,具体用于检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中存在所述目标可执行文件的情况下,根据所述目标可执行文件的运行结果,完成所述目标流程。
可选地,所述发送模块,还用于检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中未存在所述目标可执行文件的情况下,向所述Faas平台发送服务调用请求;其中,所述服务调用请求包括:所述目标服务标识。
可选地,所述获取模块801,具体用于接收所述Faas平台反馈的第三反馈信息;所述第三反馈信息包括:所述目标自定义代码;所述执行模块802,具体用于响应于所述第三反馈信息,对所述目标自定义代码执行编译操作,生成所述目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程,以及将所述目标可执行文件存储到所述本地缓存中。
可选地,所述获取模块801,具体用于接收所述Faas平台反馈的第四反馈信息;所述第四反馈信息包括:所述目标可执行文件;所述执行模块802,具体用于根据所述目标可执行文件的运行结果,完成所述目标流程,并将所述目标可执行文件存储到所述本地缓存中。
可选地,所述获取模块801,具体用于接收所述Faas平台反馈的第五反馈信息;所述第五反馈信息用于指示调用所述目标服务失败;所述执行模块802,还用于响应于所述第五反馈信息,触发执行第二异常策略;其中,所述第二异常策略为:调用所述目标服务失败时所执行的策略。
可选地,所述执行模块802,具体用于运行所述目标可执行文件,并获取所述目标可执行文件的运行结果;所述执行模块802,具体还用于将所述目标可执行文件的运行结果反馈至所述目标流程,以完成所述目标流程。
本申请提供的降低中台架构代码侵入的装置,在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;之后,基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程。如此,通过将自定义功能与中台架构剥离的方式,降低引入自定义功能时对中台架构的代码侵入,不仅极大地提高中台架构的扩展能力,还降低了中台架构的维护成本。
图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行降低中台架构代码侵入的方法,该方法包括:在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程;其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码。
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的降低中台架构代码侵入的方法,该方法包括:在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程;其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码。
又一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的降低中台架构代码侵入的方法,该方法包括:在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程;其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (22)
1.一种降低中台架构代码侵入的方法,其特征在于,应用于中台系统,所述中台系统包括:中台,函数即服务Faas平台,以及介于所述中台与所述Faas平台之间的配置中心,所述方法包括:
在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;
基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程;
其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码;所述目标配置标识为所述目标流程中需要引入目标功能的目标位置设置的标识;所述目标服务标识用于调用所述目标服务;所述目标服务为:所述Faas平台中用于获取所述目标自定义代码,或者,获取基于所述目标自定义代码编译生成的所述目标可执行程序的服务。
2.根据权利要求1所述的方法,其特征在于,所述获取所述目标流程中设置的目标配置标识之前,所述方法还包括:
在所述目标流程中需要引入目标功能的目标位置设置所述目标配置标识;
在配置中心中将所述目标配置标识与所述Faas平台中的所述目标服务标识建立关联关系;
其中,所述目标功能为所述目标可执行文件所能实现的功能。
3.根据权利要求1所述的方法,其特征在于,所述通过所述配置中心获取与所述目标配置标识相对应的目标服务标识,包括:
向所述配置中心发送服务标识获取请求;
其中,所述服务标识获取请求包括:所述目标配置标识;所述服务标识获取请求用于指示所述配置中心从所述Faas平台中获取与所述目标配置标识所对应的目标服务标识。
4.根据权利要求3所述的方法,其特征在于,所述向所述配置中心发送服务标识获取请求之后,所述方法还包括:
接收所述配置中心反馈的第一反馈信息;
其中,所述第一反馈信息包括:所述目标服务标识。
5.根据权利要求3所述的方法,其特征在于,所述向所述配置中心发送服务标识获取请求之后,所述方法还包括:
接收所述配置中心反馈的第二反馈信息;
响应于所述第二反馈信息,触发执行第一异常策略;
其中,所述第二反馈信息用于指示所述配置中心未获取到与所述目标配置标识对应的服务标识;所述第一异常策略为:未获取到所述目标服务标识时所执行的策略。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程,包括:
检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中存在所述目标可执行文件的情况下,根据所述目标可执行文件的运行结果,完成所述目标流程。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程,包括:
检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中未存在所述目标可执行文件的情况下,向所述Faas平台发送服务调用请求;
其中,所述服务调用请求包括:所述目标服务标识。
8.根据权利要求7所述的方法,其特征在于,所述向所述Faas平台发送服务调用请求之后,所述方法还包括:
接收所述Faas平台反馈的第三反馈信息;所述第三反馈信息包括:所述目标自定义代码;
响应于所述第三反馈信息,对所述目标自定义代码执行编译操作,生成所述目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程,以及将所述目标可执行文件存储到所述本地缓存中。
9.根据权利要求7所述的方法,其特征在于,所述向所述Faas平台发送服务调用请求之后,所述方法还包括:
接收所述Faas平台反馈的第四反馈信息;所述第四反馈信息包括:所述目标可执行文件;
根据所述目标可执行文件的运行结果,完成所述目标流程,并将所述目标可执行文件存储到所述本地缓存中。
10.根据权利要求7所述的方法,其特征在于,所述向所述Faas平台发送服务调用请求之后,所述方法还包括:
接收所述Faas平台反馈的第五反馈信息;所述第五反馈信息用于指示调用所述目标服务失败;
响应于所述第五反馈信息,触发执行第二异常策略;
其中,所述第二异常策略为:调用所述目标服务失败时所执行的策略。
11.根据权利要求1所述的方法,其特征在于,所述根据所述目标可执行文件的运行结果,完成所述目标流程,包括:
运行所述目标可执行文件,并获取所述目标可执行文件的运行结果;
将所述目标可执行文件的运行结果反馈至所述目标流程,以完成所述目标流程。
12.一种中台系统,其特征在于,所述系统包括:中台,函数即服务Faas平台,以及介于所述中台与所述Faas平台之间的配置中心;
所述中台,用于在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;
所述中台,还用于基于所述目标服务标识获取目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程;
其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码;所述目标配置标识为所述目标流程中需要引入目标功能的目标位置设置的标识;所述目标服务标识用于调用所述目标服务;所述目标服务为:所述Faas平台中用于获取所述目标自定义代码,或者,获取基于所述目标自定义代码编译生成的所述目标可执行程序的服务。
13.根据权利要求12所述的系统,其特征在于,
所述中台,具体用于向所述配置中心发送服务标识获取请求;
其中,所述服务标识获取请求包括:所述目标配置标识;所述服务标识获取请求用于指示所述配置中心从所述Faas平台中获取与所述目标配置标识所对应的目标服务标识。
14.根据权利要求13所述的系统,其特征在于,
所述配置中心,用于响应于所述服务标识获取请求,在获取到所述配置中心存储的与所述目标配置标识相关联的目标服务标识的情况下,向所述配置中心发送第一反馈信息;
其中,所述第一反馈信息包括:所述目标服务标识。
15.根据权利要求13所述的系统,其特征在于,
所述配置中心,用于响应于所述服务标识获取请求,在未获取到与所述目标配置标识相关联的服务标识的情况下,向所述配置中心发送第二反馈信息;所述第二反馈信息用于指示所述配置中心未获取到与所述目标配置标识对应的服务标识;
所述中台,还用于在接收到所述第二反馈信息的情况下,执行第一异常策略;
其中,所述第一异常策略为:未获取到所述目标服务标识时所执行的策略。
16.根据权利要求12所述的系统,其特征在于,
所述中台,具体用于检查本地缓存中是否存在所述目标可执行文件,并在所述本地缓存中未存在所述目标可执行文件的情况下,向所述Faas平台发送服务调用请求;
其中,所述服务调用请求包括:所述目标服务标识。
17.根据权利要求16所述的系统,其特征在于,
所述Faas平台,还用于响应于所述服务调用请求,调用与所述目标服务标识所对应的目标服务,并在调用所述目标服务成功的情况下,向所述中台发送第三反馈信息;所述第三反馈信息包括:所述目标自定义代码;
所述中台,具体用于在接收到所述第三反馈信息的情况下,对所述目标自定义代码执行编译操作,生成所述目标可执行文件,并根据所述目标可执行文件的运行结果,完成所述目标流程,以及将所述目标可执行文件存储到所述本地缓存中。
18.根据权利要求16所述的系统,其特征在于,
所述Faas平台,还用于响应于所述服务调用请求,调用与所述目标服务标识所对应的目标服务,并在调用所述目标服务成功的情况下,向所述中台发送第四反馈信息;所述第四反馈信息包括:所述目标可执行文件;
所述中台,具体用于在接收到所述第四反馈信息的情况下,根据所述目标可执行文件的运行结果,完成所述目标流程,并将所述目标可执行文件存储到所述本地缓存中。
19.根据权利要求16所述的系统,其特征在于,
所述Faas平台,还用于响应于所述服务调用请求,调用与所述目标服务标识所对应的目标服务,并在调用所述目标服务失败的情况下,向所述中台发送第五反馈信息;所述第五反馈信息用于指示调用所述目标服务失败;
所述中台,还用于在接收到所述第五反馈信息的情况下,触发执行第二异常策略;
其中,所述第二异常策略为:调用所述目标服务失败时所执行的策略。
20.一种降低中台架构代码侵入的装置,其特征在于,应用于中台系统,所述中台系统包括:中台,函数即服务Faas平台,以及介于所述中台与所述Faas平台之间的配置中心,所述装置包括:
获取模块,用于在运行目标业务的过程中,若运行到所述目标业务的目标流程,则获取所述目标流程中设置的目标配置标识,并通过所述配置中心获取与所述目标配置标识相对应的目标服务标识;
所述获取模块,还用于基于所述目标服务标识获取目标可执行文件;
执行模块,用于根据所述目标可执行文件的运行结果,完成所述目标流程;
其中,所述目标可执行文件为:基于所述Faas平台中与所述目标服务标识所对应的目标自定义代码编译生成的可执行文件;所述目标自定义代码:通过所述目标服务标识从所述Faas平台中获取到的自定义代码;所述目标配置标识为所述目标流程中需要引入目标功能的目标位置设置的标识;所述目标服务标识用于调用所述目标服务;所述目标服务为:所述Faas平台中用于获取所述目标自定义代码,或者,获取基于所述目标自定义代码编译生成的所述目标可执行程序的服务。
21.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至11任一项所述降低中台架构代码侵入的方法的步骤。
22.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至11中任一项所述降低中台架构代码侵入的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311339368.6A CN117076007B (zh) | 2023-10-17 | 2023-10-17 | 降低中台架构代码侵入的方法、装置及中台系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311339368.6A CN117076007B (zh) | 2023-10-17 | 2023-10-17 | 降低中台架构代码侵入的方法、装置及中台系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117076007A CN117076007A (zh) | 2023-11-17 |
CN117076007B true CN117076007B (zh) | 2024-02-02 |
Family
ID=88713838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311339368.6A Active CN117076007B (zh) | 2023-10-17 | 2023-10-17 | 降低中台架构代码侵入的方法、装置及中台系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117076007B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298733A (zh) * | 2014-09-30 | 2015-01-21 | 广州华多网络科技有限公司 | 一种服务功能实现方法及服务功能实现装置 |
CN111262897A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务调用路由处理方法、装置及系统 |
CN112491948A (zh) * | 2020-10-12 | 2021-03-12 | 大家信科有限责任公司 | 非侵入式的单体应用微服务化方法、装置及计算机设备 |
CN116260878A (zh) * | 2023-03-02 | 2023-06-13 | 北京算立科技有限公司 | 一款基于分布式计算、存储的全域业务结构服务化的业务中台系统 |
CN116414370A (zh) * | 2022-12-26 | 2023-07-11 | 中国电信股份有限公司 | 基于低代码的平台构建方法、装置、介质及电子设备 |
CN116755754A (zh) * | 2023-04-18 | 2023-09-15 | 中电金信技术有限公司 | 服务接口生成方法、装置及电子设备 |
-
2023
- 2023-10-17 CN CN202311339368.6A patent/CN117076007B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298733A (zh) * | 2014-09-30 | 2015-01-21 | 广州华多网络科技有限公司 | 一种服务功能实现方法及服务功能实现装置 |
CN111262897A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务调用路由处理方法、装置及系统 |
CN112491948A (zh) * | 2020-10-12 | 2021-03-12 | 大家信科有限责任公司 | 非侵入式的单体应用微服务化方法、装置及计算机设备 |
CN116414370A (zh) * | 2022-12-26 | 2023-07-11 | 中国电信股份有限公司 | 基于低代码的平台构建方法、装置、介质及电子设备 |
CN116260878A (zh) * | 2023-03-02 | 2023-06-13 | 北京算立科技有限公司 | 一款基于分布式计算、存储的全域业务结构服务化的业务中台系统 |
CN116755754A (zh) * | 2023-04-18 | 2023-09-15 | 中电金信技术有限公司 | 服务接口生成方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117076007A (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9253265B2 (en) | Hot pluggable extensions for access management system | |
US8788565B2 (en) | Dynamic and distributed queueing and processing system | |
US20100162226A1 (en) | Zero downtime mechanism for software upgrade of a distributed computer system | |
CN109614167B (zh) | 一种管理插件的方法和系统 | |
CN111352653B (zh) | 基于PaaS云平台服务器的系统开发方法及服务器 | |
US8380788B2 (en) | System and method for providing user context support in a native transaction platform | |
US8924947B2 (en) | Direct deployment of static content | |
CN112433863A (zh) | 微服务调用方法、装置、终端设备以及存储介质 | |
CN114640610B (zh) | 基于云原生的服务治理方法、装置及存储介质 | |
CN115357403A (zh) | 一种用于任务调度的微服务系统及任务调度方法 | |
US20090172463A1 (en) | Method, system and machine accessible medium of a reconnect mechanism in a distributed system (cluster-wide reconnect mechanism) | |
CN112787999A (zh) | 跨链调用方法、装置、系统与计算机可读存储介质 | |
US10592277B2 (en) | System and method for determining the success of a cross-platform application migration | |
CN102572954B (zh) | 一种漫游清算服务调度方法、中间件及系统 | |
CN101236510B (zh) | 一种ejb集群的失败恢复处理方法及系统 | |
CN114978936A (zh) | 一种共享服务平台的升级方法、系统及存储介质 | |
CN114546648A (zh) | 任务处理方法及任务处理平台 | |
CN110287267A (zh) | 一种跨节点的数据处理方法及装置 | |
US11093309B1 (en) | Communication hub for information technology (IT) services | |
CN112099921B (zh) | 基于JVM的Java应用系统预热方法及系统 | |
CN117076007B (zh) | 降低中台架构代码侵入的方法、装置及中台系统 | |
CN112565340B (zh) | 分布式应用的服务调度方法、装置、计算机系统及介质 | |
CN115829715A (zh) | 一种银行业交易调度中台控制方法和银行业交易调度中台 | |
CN116954810A (zh) | 容器应用实例的创建方法、系统、存储介质及程序产品 | |
CN113077241A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |