一种应用服务的实现方法、实现装置和存储介质与流程

文档序号:25733163发布日期:2021-07-06 18:41阅读:57来源:国知局
一种应用服务的实现方法、实现装置和存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种应用服务的实现方法、实现装置和存储介质。



背景技术:

saas系统(software-as-a-service)是一种通过internet提供软件的模式。服务提供商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向服务提供商定购所需的应用软件服务,并按定购的服务数量和使用时长向服务提供商支付费用,以通过互联网获得服务提供商提供的服务。使用saas系统,用户不需要再购买软件,只需要向服务提供商租用基于互联网的软件,来管理企业经营活动。且无需对软件进行维护,服务提供商会全权管理和维护软件。



技术实现要素:

本申请的各实施例提供了一种应用服务的实现方法、实现装置和存储介质,有助于减少重复开发逻辑,提升应用服务的实现效率。

在一个实施例中,一种方法包括:

获取用户的服务请求,其中,服务请求携带用户标识;

调用用于实现该服务请求的领域过程编排文件,对获取到的服务请求对应的至少一个应用服务流程进行编排,并在实现该应用服务流程时,基于与该应用服务流程对应的服务请求所携带的用户标识,在业务扩展包集合中筛选出与该用户标识对应的至少一个业务扩展包;

调用筛选出的至少一个业务扩展包实现与服务请求相应的应用服务流程。

可选地,基于获取到服务请求中包含的至少一个子服务请求,领域过程编排文件分别调用用于实现该子服务请求的领域能力模块,其中,子服务请求携带与对应的服务请求相应的用户标识;

领域能力模块对实现该子服务请求的至少一个业务模块进行执行流程排序,以实现该子服务请求对应的应用服务流程。

可选地,各个业务模块按照执行流程实现对应的子用户服务请求时,基于用户标识,在扩展包集合中查询标记相同的该用户标识的至少一个业务扩展包,并在查询到时,调用该业务扩展包作为对应的业务模块之一进行并行或次序调用,和/或,替换该业务模块为查询到的业务扩展包并进行调用。

可选地,当未在业务扩展包集合中查询到标记相同的该用户标识的业务扩展包时,获取该子用户请求对应的服务请求的请求属性信息,请求属性信息用于表示预设为该服务请求调用的至少一个业务扩展包;

在业务扩展包集合中调用与请求属性信息对应的至少一个业务扩展包。

在另一个实施例中,提供了一种应用服务的实现装置,该实现装置包括:

获取模块,用于获取用户的服务请求,其中,服务请求携带用户标识;

编排模块,用于调用用于实现该服务请求的领域过程编排文件,对获取到的服务请求对应的至少一个应用服务流程进行编排,并在实现该应用服务流程时,基于与该应用服务流程对应的服务请求所携带的用户标识,在业务扩展包集合中筛选出与该用户标识对应的至少一个业务扩展包;

调用模块,调用筛选出的至少一个业务扩展包实现与服务请求相应的应用服务流程。

可选地,编排模块还用于:

基于获取到服务请求中包含的至少一个子服务请求,领域过程编排文件分别调用用于实现该子服务请求的领域能力模块,其中,子服务请求携带与对应的服务请求相应的用户标识;

领域能力模块对实现该子服务请求的至少一个业务模块进行执行流程排序,以实现该子服务请求对应的应用服务流程。

可选地,编排模块还用于:

各个业务模块按照执行流程实现对应的子用户服务请求时,基于用户标识,在扩展包集合中查询标记相同的该用户标识的至少一个业务扩展包,并在查询到时,调用该业务扩展包作为对应的业务模块之一进行并行或次序调用,和/或,替换该业务模块为查询到的业务扩展包并进行调用。

可选地,编排模块还用于:

当未在业务扩展包集合中查询到标记相同的该用户标识的业务扩展包时,获取该子用户请求对应的服务请求的请求属性信息,请求属性信息用于表示预设为该服务请求调用的至少一个业务扩展包;

在业务扩展包集合中调用与请求属性信息对应的至少一个业务扩展包。

在本申请的另一个实施例中,提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时引发所述处理器执行上述的一种应用服务的实现方法中的各个步骤。

在本申请的另一个实施例中,提供了一种终端设备,包括处理器,所述处理器用于执行上述一种应用服务的实现方法中的各个步骤。

基于上述实施例,基于本申请,可以获取用户的服务请求,其中,服务请求携带用户标识,并且,调用用于实现该服务请求的领域过程编排文件,对获取到的服务请求对应的至少一个应用服务流程进行编排,并在实现该应用服务流程时,基于与该应用服务流程对应的服务请求所携带的用户标识,在业务扩展包集合中筛选出与该用户标识对应的至少一个业务扩展包,最后,调用筛选出的至少一个业务扩展包实现与服务请求相应的应用服务流程。本申请实施例通过将实现服务请求的各个应用服务流程对应的业务扩展包进行引入式调用,不再对业务扩展包部分的业务逻辑进行开发。同时,不同用户对应的业务扩展包各自调用,减少了业务逻辑杂糅,提升了应用服务的实现效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请的一个实施例中的应用服务的实现方法的示例性架构示意图;

图2示出了本申请的一个实施例提供的一种应用服务的实现方法的流程示意图;

图3为本申请实施例提供的一种应用服务的实现方法的具体流程的示意图;

图4为本申请实施例提供的一种应用服务的实现方法的业务逻辑流转的示意图;

图5示出了本申请实施例一种应用服务的实现装置的示意图;

图6示出了本申请实施例所提供的一种终端设备的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语″第一〞、″第二〞、″第三〞、″第四〞等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语″包括〞和″具有〞以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。

基于现有技术中的问题,本申请实施例提供了一种应用服务的实现方法,可以适用于计算机技术领域。图1为本申请的一个实施例中的应用服务的实现方法的示例性架构示意图。其中,如图1所示,本申请实施例的适用场景主要为saas系统。可选地,在服务实现的架构层面,系统在接收到用户的服务请求时,应用层11对接收的服务请求进行协调,具体化实现该服务请求的至少一个应用服务流程。一个应用服务流程可以调用多个应用程序接口(plicationprogramminginterface,api)层13发布的业务模块实现。一个应用服务流程的具体实现过程由领域服务层12的领域能力模块对业务逻辑进行定义和执行流程的排序。相应地,api层13发布的业务模块对应的服务接口为对应的领域能力模块执行业务逻辑,实现应用服务流程。

如图1所示,一个服务请求对应一个具体化的应用服务流程,可以理解应用服务流程为描述对应与服务请求的具体操作从开始到结束的每一个执行流程。一个应用服务流程经过领域过程编排文件编排后,可以对应多个领域能力模块(领域能力模块1、领域能力模块2、…领域能力模块n)。一个领域能力模块用于描述应用服务流程中的每个执行流程的细化操作。如用户的服务请求为在购物车进行商品结算,则在应用层11对该服务请求进行具体化应用服务流程为商品金额计算→支付操作→生成订单。其中每个执行流程可以在领域服务层12由对应的领域能力模块进行编排。进而,调用api层13的各个业务模块(业务模块1、业务模块2、…、业务模块k)对应的服务接口实现。其中,一个领域能力模块的执行流程可以调用多个业务模块实现。

图2示出了本申请的一个实施例提供的一种应用服务的实现方法的流程示意图。其中,可以包括如下步骤:

步骤s101,获取用户的服务请求,其中,服务请求携带用户标识。

本步骤中,本申请实施例中的服务请求可以为saas系统中的用户需要实现的服务请求,如使用于互联网交易场景中的服务请求,可以为查询交易、购物车结算、联系客户等具体服务请求。其中,获取的服务请求携带有对应的用户标识。

步骤s102,调用用于实现该服务请求的领域过程编排文件,对获取到的服务请求对应的至少一个应用服务流程进行编排,并在实现该应用服务流程时,基于与该应用服务流程对应的服务请求所携带的用户标识,在业务扩展包集合中筛选出与该用户标识对应的至少一个业务扩展包。

本步骤中,基于获取的服务请求,在应用层对接收的服务请求进行协调,具体化实现该服务请求的至少一个应用服务流程。其中,每个服务请求可以包含多个服务子请求,每个服务自请求可以对应一个应用服务流程。因此,每个服务请求可以对应至少一个应用服务流程。

针对每个应用服务流程,由领域服务层的领域能力模块对业务逻辑进行定义和执行流程的排序,以实现该应用服务流程。其中,在领域服务层中调用领域过程编排文件对每个子服务请求对应的应用服务流程进行调用编排。可选地,可以调用领域服务层中的一个领域能力模块对该应用服务完整的业务逻辑进行编排,使得可以按照业务逻辑调用api层中业务模块对领域能力模块编排的业务逻辑进行执行,以实现服务请求对应的完整的应用服务流程。

在前述情况下,服务请求可以通过携带用户标识在执行对应的应用服务流程时在预先设置的业务扩展包集合中,筛选出与该用户标识对应的至少一个业务扩展包。其中,业务扩展包与业务模块属于同级概念。不同的是,业务扩展包可以由第三方或者用户自己开发维护,通过接口连接与本申请实施例中的系统进行通信,用以执行应用服务流程中的全部或部分业务逻辑。业务扩展包可以标记与相应的服务请求相同的用户标识。另外,业务模块可以由本申请实施例中的系统开发维护,用以执行应用服务流程中的全部或部分业务逻辑。

步骤s103,调用筛选出的至少一个业务扩展包实现与服务请求相应的应用服务流程。

本步骤中,本申请实施例中当业务扩展包集合中存在与服务请求所携带的用户标识相同标识的业务扩展包时,调用该业务扩展包实现与服务请求相应的应用服务流程。

基于上述实施例,可以获取用户的服务请求,其中,服务请求携带用户标识,并且,调用用于实现该服务请求的领域过程编排文件,对获取到的服务请求对应的至少一个应用服务流程进行编排,并在实现该应用服务流程时,基于与该应用服务流程对应的服务请求所携带的用户标识,在业务扩展包集合中筛选出与该用户标识对应的至少一个业务扩展包,最后,调用筛选出的至少一个业务扩展包实现与服务请求相应的应用服务流程。本申请实施例通过将实现服务请求的各个应用服务流程对应的业务扩展包进行引入式调用,不再对业务扩展包部分的业务逻辑进行开发。同时,不同用户对应的业务扩展包各自调用,减少了业务逻辑杂糅,提升了应用服务的实现效率。

图3为本申请实施例提供的一种应用服务的实现方法的具体流程的示意图。其中,该部分可以包括如下步骤:

步骤s201,获取服务请求,并获取其中的子服务请求。

本步骤中,以本申请实施例为例,在互联网交易场景下,获取到的服务请求可以包含多个执行流程的组。其中每个执行流程对应一个自服务请求。如用户请求为″商品结算〞时,该服务请求对应的应用服务流程的执行流程可以包含″创建订单〞→″计算结算金额〞→″买家支付〞→″支付校验〞等执行流程。每个执行流程都可以作为一个子服务请求。

另外,每个服务请求携带用户标识,相应地,每个子服务请求携带相同的用户标识,

步骤s202,领域过程编排文件对服务请求进行领域能力模块的编排。

本步骤中,基于获取到服务请求中包含的至少一个子服务请求,领域过程编排文件分别调用用于实现该子服务请求的领域能力模块,其中,子服务请求携带与对应的服务请求相应的用户标识。

可选地,用户请求对应一个领域服务,其中,领域服务可以通过领域过程编排文件调用多个领域能力模块进行编排。编排可基于可扩展标记语言(extensiblemarkuplanguage,xml)或流程引擎,每个领域能力模块为该领域服务下的典型业务。按照用户服务请求包含的子服务请求,领域过程编排文件为每个子服务请求编排对应的领域能力模块。

步骤s203,领域能力模块对子服务请求需要进行的执行流程进行业务模块的编排。

本步骤中,领域能力模块对实现该子服务请求的至少一个业务模块进行执行流程排序,以实现该子服务请求对应的应用服务流程。可选地,子服务请求中的执行流程可以由多个业务模块实现。如″买家支付〞的执行流程,可以调用银联支付对应的业务模块执行,也可以调用微信支付对应的业务模块执行。可以理解的是,该例是并行调用业务模块的示例,也可以按照执行流程中的顺序进行业务模块的次序调用。

业务模块一般设置于api层,因此,领域能力模块对子服务请求需要进行的执行流程进行业务模块的编排,以配置实现该子服务请求的业务模块对应的服务接口的调用次序。

步骤s204,业务扩展包集合中是否包含用户标识相同的业务扩展包。

本步骤中,一般地,saas系统设计或为用户间完全隔离,或为同一运行环境,不同用户的业务逻辑通过if-else判断分支;或有不同用户的业务逻辑掺杂在一起。针对该问题,本申请实施例提供一种预设的业务扩展包集合。其中,该业务扩展包集合与业务模块的功能一致,用于实现用户的业务逻辑。不同的是,业务模块一般由系统开发维护,具有一般性。而业务扩展包可以由第三方或者用户开发维护,具有个性化的业务逻辑实现。如″买家支付〞的执行流程,系统提供的对应业务模块的业务逻辑可能是银联支付。此时,业务扩展包可以基于用户的需求配置为支付宝支付或者微信支付。个性化的业务扩展包可以标记对应的用户标识。

基于前述,各个业务模块按照执行流程实现对应的子用户服务请求时,基于用户标识,在扩展包集合中查询标记相同的该用户标识的至少一个业务扩展包。

步骤s205,调用查询到用户标识相同的业务扩展包。

本步骤中,在查询到标记有与服务请求携带的用户标识时,调用该业务扩展包作为对应的业务模块之一进行并行或次序调用,和/或,替换该业务模块为查询到的业务扩展包并进行调用。

这里,个性化的业务扩展包可以与业务模块同时保留,以实现该执行流程。也可以替换该业务模块为查询到的业务扩展包并进行调用。

步骤s206,调用请求属性信息对应的至少一个业务扩展包。

本步骤中,当未在业务扩展包集合中查询到标记相同的该用户标识的业务扩展包时,获取该子用户请求对应的服务请求的请求属性信息,请求属性信息用于表示预设为该服务请求调用的至少一个业务扩展包。以及,在业务扩展包集合中调用与请求属性信息对应的至少一个业务扩展包。

可选地,若业务扩展包集合中不存在与用户请求对应的用户标识时,获取该子用户请求对应的服务请求的请求属性信息。其中,可以为各个用户可能执行的用户请求预设请求属性信息,请求属性信息为该用户可执行的服务请求的基础属性,如可以设置行业类作为请求属性信息。例针对互联网交易中的生鲜类交易,可以为该行业类配置温度控制的业务扩展包。当获取的请求属性信息为该行业类时,调用请求属性信息对应的至少一个业务扩展包。

上述步骤s205和步骤s206中,调用业务扩展包时,根据用户标识路由到实现运行用户的业务逻辑代码。

另外,整体实现框架可选择springboot容器,业务模块的实现可依赖springboot的自动配置,以减少引入业务扩展包时的额外配置。其中,可以自定义注解@autowireextension在业务扩展包的实现类上,使用该注解,会将实现类注入到springboot容器中。其中,如业务扩展包的服务接口somebizextension,可配置用户1的业务扩展包的服务接口为sometenant1bizextensionlmpl,用户2的业务扩展包的服务接口为sometenant2bizextensionlmpl。使用自定义注解@autowireextension可以根据业务扩展包的服务接口somebizextension生成动态代理类,代理类以用户标识为键值,缓存业务扩展包。

领域能力模块中调用的业务扩展包的服务接口,若用户标识不同,一般由独立的jar包提供,并引入到当前执行流程中。另外,整体模块部署时,可根据不同集群,选择性依赖部分或全部用户的业务扩展包。

图4为本申请实施例提供的一种应用服务的实现方法的业务逻辑流转的示意图。其中应用层中的服务请求1(其它服务请求2至服务请求n的流转方式与服务请求1相似,在此不再赘述)可以包含多个子用户服务请求(子用户服务请求1、子用户服务请求2、…子用户服务请求m)。领域服务层可以调用领域服务层中的一个领域能力模块(领域能力模块1、领域能力模块2、…领域能力模块m)对该应用服务完整的业务逻辑进行编排,使得可以按照业务逻辑按照对应的业务模块的服务接口(业务模块1的服务接口、业务模块2的服务接口、…、业务模块k的服务接口)调用api层中业务模块(业务模块1、业务模块2、…、业务模块k)对领域能力模块编排的业务逻辑进行执行,以实现服务请求对应的完整的应用服务流程。

综上,本申请实施例通过上述方法,实现一种应用服务的实现方法。通过将实现服务请求的各个应用服务流程对应的业务扩展包放置在第三方进行开发和维护,并进行引入式调用,不再对业务扩展包部分的业务逻辑进行开发。并且,不同用户的业务逻辑代码部署时可插拔。同时,不同用户对应的业务扩展包各自调用,不同用户的业务逻辑的变更不影响其他用户的业务逻辑,减少了业务逻辑杂糅,实现了一种动态且可扩展的领域服务实现方法,提升了应用服务的实现效率。

基于与前文所述的应用服务的实现方法的同一发明构思,图5示出了本申请实施例还提供的一种应用服务的实现装置的示意图。如图5所示,该实现装置可以包括:

获取模块51,用于获取用户的服务请求,其中,服务请求携带用户标识;

编排模块52,用于调用用于实现该服务请求的领域过程编排文件,对获取到的服务请求对应的至少一个应用服务流程进行编排,并在实现该应用服务流程时,基于与该应用服务流程对应的服务请求所携带的用户标识,在业务扩展包集合中筛选出与该用户标识对应的至少一个业务扩展包;

调用模块53,调用筛选出的至少一个业务扩展包实现与服务请求相应的应用服务流程。

本实施例中,获取模块51、编排模块52和调用模块53的具体功能和交互方式,可参见图2对应的实施例的记载,在此不再赘述。

可选地,编排模块52还用于:

基于获取到服务请求中包含的至少一个子服务请求,领域过程编排文件分别调用用于实现该子服务请求的领域能力模块,其中,子服务请求携带与对应的服务请求相应的用户标识;

领域能力模块对实现该子服务请求的至少一个业务模块进行执行流程排序,以实现该子服务请求对应的应用服务流程。

可选地,编排模块52还用于:

各个业务模块按照执行流程实现对应的子用户服务请求时,基于用户标识,在扩展包集合中查询标记相同的该用户标识的至少一个业务扩展包,并在查询到时,调用该业务扩展包作为对应的业务模块之一进行并行或次序调用,和/或,替换该业务模块为查询到的业务扩展包并进行调用。

可选地,编排模块52还用于:

当未在业务扩展包集合中查询到标记相同的该用户标识的业务扩展包时,获取该子用户请求对应的服务请求的请求属性信息,请求属性信息用于表示预设为该服务请求调用的至少一个业务扩展包;

在业务扩展包集合中调用与请求属性信息对应的至少一个业务扩展包。

图6示出了本申请实施例所提供的一种终端设备的示意图。如图6所示,本申请的又一实施例还提供一种终端设备,其可以包括处理器601,其中,处理器601用于执行上述一种用于语音应答的模板学习方法和一种用于语音应答的信息生成方法的步骤。从图6中还可以看出,上述实施例提供的终端设备还包括非瞬时计算机可读存储介质602,该非瞬时计算机可读存储介质602上存储有计算机程序,该计算机程序被处理器601运行时执行上述一种用于语音应答的模板学习方法和一种用于语音应答的信息生成方法的步骤。实际应用中,该终端设备可以是一台或多台计算机,只要包括上述计算机可读介质和处理器即可。

具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘和flash等,该存储介质上的计算机程序被运行时,能够执行上述的一种用于语音应答的模板学习方法和一种用于语音应答的信息生成方法中的各个步骤。实际应用中,所述的计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或多个程序被执行时,能够执行上述的一种用于语音应答的模板学习方法和一种用于语音应答的信息生成方法中的各个步骤。

根据本申请公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本申请保护的范围。在本申请公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

本申请附图中的流程图和框图,示出了按照本申请公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标注的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本申请公开的范围。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行变更或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些变更、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1