发布信息

SAAS扩展应用的调用方法、装置以及电子设备与流程 专利技术说明

作者:admin      2022-12-06 20:33:14     391



计算;推算;计数设备的制造及其应用技术saas扩展应用的调用方法、装置以及电子设备技术领域1.本技术涉及软件即服务技术领域,尤其是涉及一种saas扩展应用的调用方法、装置以及电子设备。背景技术:2.在基于软件即服务(software-as-a-service,saas)的多租户系统中,平台承载了成百上千的租户的核心业务,而由于面对企业客户的业务特点,决定了每个租户都有或多或少的个性化定制需求,随着租户数量的急剧增加,定制的需求会越来越多,需要维护的内容也越来越多,导致服务效率低下。3.因此,对于现有技术存在着现有的saas多租户系统为用户提供个性化服务的服务效率较低的技术问题。技术实现要素:4.本技术的目的在于提供一种saas扩展应用的调用方法、装置以及电子设备,以缓解现有的saas多租户系统为用户提供个性化服务的服务效率较低的技术问题。5.第一方面,本技术实施例提供了一种saas扩展应用的调用方法,所述方法包括:6.获取客户端的应用请求,确定所述应用请求对应的目标saas扩展应用;7.确定所述目标saas扩展应用对应的远程服务类型;8.基于所述远程服务类型,构建扩展服务引用;9.通过所述扩展服务引用对所述目标saas扩展应用进行远程调用;10.为所述客户端提供所述目标saas扩展应用的应用服务。11.在一个可能的实现中,所述获取客户端的应用请求,确定所述应用请求对应的目标saas扩展应用,包括:12.通过扩展点加载拦截模块获取客户端的应用请求;13.基于所述应用请求,通过租户配置平台和扩展服务注册中心确定所述应用请求对应的目标saas扩展应用。14.在一个可能的实现中,在所述获取客户端的应用请求,确定所述应用请求对应的目标saas扩展应用之后,还包括:15.通过扩展点代理模块对所述目标saas扩展应用是否存在于远程服务端进行判断;16.若判断结果为否,则对所述目标saas扩展应用进行本地调用;17.若判断结果为是,则对所述目标saas扩展应用对应的远程服务类型进行确定。18.在一个可能的实现中,所述确定所述目标saas扩展应用对应的远程服务类型,包括:19.通过扩展点路由模块确定所述目标saas扩展应用对应的远程服务类型。20.在一个可能的实现中,所述基于所述远程服务类型,构建扩展服务引用,包括:21.基于所述远程服务类型构建扩展服务引用,并将所述扩展服务引用存储于远程服务缓存模块。22.在一个可能的实现中,还包括:23.对所述远程服务缓存模块中是否存储有所述扩展服务引用进行检测;24.若检测结果为是,则从所述远程服务缓存中获取所述扩展服务引用,并通过所述扩展服务引用对所述目标saas扩展应用进行远程调用。25.在一个可能的实现中,所述远程服务类型包括下述任意一项或多项:26.dubbo服务、feign服务。27.第二方面,本技术实施例提供了一种saas扩展应用的调用装置,所述装置包括:28.获取模块,用于获取客户端的应用请求,确定所述应用请求对应的目标saas扩展应用;29.确定模块,用于确定所述目标saas扩展应用对应的远程服务类型;30.构建模块,用于基于所述远程服务类型,构建扩展服务引用;31.调用模块,用于通过所述扩展服务引用对所述目标saas扩展应用进行远程调用;32.提供模块,用于为所述客户端提供所述目标saas扩展应用的应用服务。33.第三方面,本技术实施例提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。34.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述第一方面所述的方法的步骤。35.本技术实施例带来了以下有益效果:36.本技术实施例提供了一种saas扩展应用的调用方法、装置以及电子设备,首先获取客户端的应用请求,确定应用请求对应的目标saas扩展应用,之后确定目标saas扩展应用对应的远程服务类型,基于远程服务类型,构建扩展服务引用,从而通过扩展服务引用对目标saas扩展应用进行远程调用,为客户端提供目标saas扩展应用的应用服务。本方案中,根据用户需求构建扩展服务引用,从外部的saas应用市场远程调用用户所需求的扩展应用服务,避免了根据用户的需求单独进行开发编程,实现了对于用户定制化需求的高效支持,显著缩短开发和测试周期,提升系统稳定性、降低研发成本,缓解了现有的saas多租户系统为用户提供个性化服务的服务效率较低的技术问题。附图说明37.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。38.图1为本技术实施例提供的一种saas扩展应用的调用方法的流程示意图;39.图2为本技术实施例提供的一种saas扩展应用的调用系统的结构示意图;40.图3为本技术实施例提供的一种saas扩展应用的调用方法的具体实施流程示意图;41.图4为本技术实施例提供的一种saas扩展应用的调用装置的结构示意图;42.图5为本技术实施例提供的一种电子设备的结构示意图。具体实施方式43.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。44.本技术实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。45.在基于saas的多租户系统中,平台承载了成百上千的租户的核心业务,决定了每个租户都有或多或少的个性化定制需求,随着租户数量的急剧增加,定制的需求会越来越多,通常情况下,当租户数量在10个以下时,可以通过硬编码方式实现,比如:在代码中增加条件分支,来实现不同租户的功能路由,这种方法有个非常致命的问题在于,当租户的数量越来越多后,代码的可维护性会变得越来越差,最终会演变成无法维护。不仅如此,每个不同的租户一旦增加了定制功能需求,为了系统的稳定性,上线前测试人员不得不将所有租户的相关功能全部进回归验证测试,租户越多,需要回归的时间越长,显然,这种方式不利于多租户场景下系统的扩展性要求,而且,支撑大量租户时,将所有个性化逻辑运行在一个java虚拟机中,也不利于系统的稳定性和健壮性。46.现有技术主要有两种解决方案,第一种为通过租户路由方式实现,但是该实现需要将租户耦合到具体的代码中,当未来租户越来越多时,一个相同的逻辑多个租户共享时,被标注了cxrouter的类均需要增加租户标识,容易出现漏加,同时扩展性不够灵活,开发过程中,仍然需要面向租户编程,后期的开发成本会越来越高、交付效率会大大下降、新人入手的成本也会很高。第二种为通过在功能模块中增加条件分支实现多租户功能的路由,但是随着租户数量的增加,模块代码的维护会变得越来越困难、需要开发的周期和测试回归的周期会越来越长,直到模块不具备可维护性。47.基于此,本技术实施例提供了一种saas扩展应用的调用方法、装置以及电子设备,通过本技术实施例所提供的方法可以缓解现有的saas多租户系统为用户提供个性化服务的服务效率较低的技术问题。48.下面结合附图对本技术实施例进行进一步的介绍。49.图1为本技术实施例提供的一种saas扩展应用的调用方法的流程示意图。如图1所示,该方法包括:50.步骤s110,获取客户端的应用请求,确定应用请求对应的目标saas扩展应用。51.示例性的,如图2所示,系统包括saas服务平台、扩展点包、saas应用时长、租户配置平台以及扩展点服务注册中心。其中,saas服务平台是运行saas应用的环境,在该环境下部署了多个应用实例,saas应用实现扩展点包中提供的接口,作为标准产品中的默认功能实现;扩展点包即为各个系统可以扩展开发的java接口以及依赖的java beans构成的jar包文件;saas应用市场用于实现扩展点中接口的应用的部署环境;租户配置平台用于配置租户基于某个扩展点由哪个应用提供扩展服务;扩展点服务注册中心,用于保存扩展应用上提供的扩展服务,供saas应用调用。saas应用实现扩展点包中提供的接口,作为标准产品中的默认功能实现,之后由扩展服务应用实现扩展点包中提供的接口,并发布为应用部署到应用市场,扩展应用部署后,系统自动将服务提供者注册到扩展服务注册中心,通过租户配置平台,配置一个具体的扩展点的应用提供方。52.在实际应用中,系统中的saas服务平台首先接收来自客户端的应用请求,如果saas服务平台中包括该应用服务,则直接本地调用。如果saas服务平台中不包括该应用服务,则将其确定为目标saas扩展应用。53.步骤s120,确定目标saas扩展应用对应的远程服务类型。54.示例性的,系统在确定应用请求对应的目标saas扩展应用后,可以进一步的对目标saas扩展应用对应的远程服务类型进行确定,例如dubbo服务或是feign服务。55.步骤s130,基于远程服务类型,构建扩展服务引用。56.示例性的,系统可以根据不同的服务类型进行扩展服务引用的构建。例如,如果远程服务提供方服务发布类型为dubbo,则通过dubbo服务构建模块构建dubbo服务引用;如果远程服务提供方服务发布类型为feign,则通过feign服务构建模块构建feign服务引用。57.步骤s140,通过扩展服务引用对目标saas扩展应用进行远程调用。58.示例性的,saas应用通过租户配置信息从扩展点注册中心读取扩展点服务提供方详细信息,运行过程中调用saas应用市场中扩展应用提供的扩展点服务,完成对于目标saas扩展应用进行远程调用。59.步骤s150,为客户端提供目标saas扩展应用的应用服务。60.示例性的,系统完成对于目标saas扩展应用进行远程调用后,可以为客户端提供相对应的应用服务。61.本技术实施例中,首先获取客户端的应用请求,确定应用请求对应的目标saas扩展应用,之后确定目标saas扩展应用对应的远程服务类型,基于远程服务类型,构建扩展服务引用,从而通过扩展服务引用对目标saas扩展应用进行远程调用,为客户端提供目标saas扩展应用的应用服务,根据用户需求构建扩展服务引用,从外部的saas应用市场远程调用用户所需求的扩展应用服务,避免了根据用户的需求单独进行开发编程,实现了对于用户定制化需求的高效支持,显著缩短开发和测试周期,提升系统稳定性、降低研发成本,缓解了现有的saas多租户系统为用户提供个性化服务的服务效率较低的技术问题。62.下面对上述步骤进行详细介绍。63.在一些实施例中,上述步骤s110具体可以包括如下步骤:64.步骤a),通过扩展点加载拦截模块获取客户端的应用请求。65.步骤b),基于应用请求,通过租户配置平台和扩展服务注册中心确定应用请求对应的目标saas扩展应用。66.示例性的,如图3所示,用户从浏览器端(客户端)发起应用请求,应用请求通过系统内部的扩展点加载拦截模块,在扩展点加载拦截模块中,通过从租户配置平台拉取该租户的配置的远程扩展点实现元数据,并通过租户配置平台和扩展服务注册中心确定应用请求对应的目标saas扩展应用。67.通过使系统利用扩展点加载拦截模块获取客户端的应用请求,并基于应用请求,通过租户配置平台和扩展服务注册中心确定应用请求对应的目标saas扩展应用,可以较为精准的确定用户所请求的个性化服务类型,进而可以根据该类型进行下一步的处理,提高了为用户提供个性化服务的服务效率。68.在一些实施例中,在上述步骤s110之后,该方法还可以包括如下步骤:69.步骤c),通过扩展点代理模块对目标saas扩展应用是否存在于远程服务端进行判断。70.步骤d),若判断结果为否,则对目标saas扩展应用进行本地调用。71.步骤e),若判断结果为是,则对目标saas扩展应用对应的远程服务类型进行确定。72.示例性的,如图3所示,在系统确定应用请求对应的目标saas扩展应用后,系统可以通过扩展点代理模块判断当前扩展点是否有对应的远程服务实现,如果没有远程实现,则执行本地容器java虚拟机中的默认实现类。如果存在远程实现,则判断服务远程服务提供方的类型,进而便于进行远程服务的调用。73.通过使系统通过扩展点代理模块对目标saas扩展应用是否存在于远程服务端进行判断,若判断结果为否,则对目标saas扩展应用进行本地调用,若判断结果为是,则对目标saas扩展应用对应的远程服务类型进行确定,不仅确保了用户可以得到对应的个性化服务,还可以提高为用户提供个性化服务的服务效率。74.在一些实施例中,上述步骤s120具体可以包括如下步骤:75.步骤f),通过扩展点路由模块确定目标saas扩展应用对应的远程服务类型。76.示例性的,如图3所示,系统可以通过扩展点路由模块判断服务远程服务提供方的类型。例如,可以通过扩展点路由模块判断远程服务提供方服务发布类型为dubbo或是feign,进而可以针对性的构建对应的服务引用。77.通过使系统利用扩展点路由模块确定目标saas扩展应用对应的远程服务类型,可以较为准确的判断出远程服务类型,进而可以准确的实现远程服务调用,提高服务效率。78.在一些实施例中,上述步骤s130具体可以包括如下步骤:79.步骤g),基于远程服务类型构建扩展服务引用,并将扩展服务引用存储于远程服务缓存模块。80.示例性的,如图3所示,系统可以基于远程服务类型构建扩展服务引用。例如,如果远程服务提供方服务发布类型为dubbo,则通过dubbo服务构建模块构建dubbo服务引用,并完成服务的调用;如果远程服务提供方服务发布类型为feign,则通过feign服务构建模块构建feign服务引用,并完成服务的调用。在构建对应的扩展服务引用后,系统可以将扩展服务引用存储于远程服务缓存模块,以便于后期可以直接从远程服务缓存模块直接调用,无需重新进行构建,提高服务效率。81.基于上述步骤g),该方法还可以包括如下步骤:82.步骤h),对远程服务缓存模块中是否存储有扩展服务引用进行检测。83.步骤i),若检测结果为是,则从远程服务缓存中获取扩展服务引用,并通过扩展服务引用对目标saas扩展应用进行远程调用。84.示例性的,如图3所示,系统中的扩展路由模块优先从远程服务缓存模块中读取远程服务对象,即扩展服务引用。如果远程服务缓存模块存储有扩展服务引用,则直接进行调用。如果远程服务缓存模块中没有存储有扩展服务引用,则基于远程服务类型,构建扩展服务引用。例如通过dubbo服务构建模块或feign服务构建模块进行服务引用对象的构建。85.通过使系统首先对远程服务缓存模块中是否存储有扩展服务引用进行检测,若检测结果为是,则从远程服务缓存中获取扩展服务引用,并通过扩展服务引用对目标saas扩展应用进行远程调用,从而可以避免资源的浪费,还可以减少响应时间,有效的提高为用户提供个性化服务的服务效率。86.在一些实施例中,远程服务类型包括下述任意一项或多项:87.dubbo服务、feign服务。88.通过使远程服务类型包括多种,可以使得功能更加丰富,可以远程调用更多种类的服务类型,为用户提供更加全面的服务,有效的提高为用户提供个性化服务的服务效率。89.图4为本技术实施例提供的一种saas扩展应用的调用装置的结构示意图。如图4所示,saas扩展应用的调用400包括:90.获取模块401,用于获取客户端的应用请求,确定应用请求对应的目标saas扩展应用;91.确定模块402,用于确定目标saas扩展应用对应的远程服务类型;92.构建模块403,用于基于远程服务类型,构建扩展服务引用;93.调用模块404,用于通过扩展服务引用对目标saas扩展应用进行远程调用;94.提供模块405,用于为客户端提供目标saas扩展应用的应用服务。95.在一些实施例中,获取模块401具体用于:96.通过扩展点加载拦截模块获取客户端的应用请求;97.基于应用请求,通过租户配置平台和扩展服务注册中心确定应用请求对应的目标saas扩展应用。98.在一些实施例中,该装置还可以包括:99.判断模块,用于获取客户端的应用请求,确定应用请求对应的目标saas扩展应用之后,通过扩展点代理模块对目标saas扩展应用是否存在于远程服务端进行判断;100.若判断结果为否,则对目标saas扩展应用进行本地调用;101.若判断结果为是,则对目标saas扩展应用对应的远程服务类型进行确定。102.在一些实施例中,确定模块402具体用于:103.通过扩展点路由模块确定目标saas扩展应用对应的远程服务类型。104.在一些实施例中,构建模块403具体用于:105.基于远程服务类型构建扩展服务引用,并将扩展服务引用存储于远程服务缓存模块。106.在一些实施例中,该装置还可以包括:107.检查模块,用于对远程服务缓存模块中是否存储有扩展服务引用进行检测;108.若检测结果为是,则从远程服务缓存中获取扩展服务引用,并通过扩展服务引用对目标saas扩展应用进行远程调用。109.在一些实施例中,远程服务类型包括下述任意一项或多项:110.dubbo服务、feign服务。111.本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容。112.本发明实施例提供了一种电子设备,具体的,该电子设备包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被处理器运行时执行如上实施方式的任一项的方法。113.图5为本发明实施例提供的一种电子设备的结构示意图,该电子设备包括:处理器501,存储器502,总线503和通信接口504,处理器501、通信接口504和存储器502通过总线503连接;处理器501用于执行存储器502中存储的可执行模块,例如计算机程序。114.其中,存储器502可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口504(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。115.总线503可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。116.其中,存储器502用于存储程序,处理器501在接收到执行指令后,执行程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器501中,或者由处理器501实现。117.处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。118.本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见前述方法实施例,在此不再赘述。119.功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。120.最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部