服务聚合、聚合服务的执行方法、装置和电子设备与流程

文档序号:19827779发布日期:2020-02-04 12:03阅读:275来源:国知局
服务聚合、聚合服务的执行方法、装置和电子设备与流程

本申请涉及计算机技术领域,尤其涉及一种服务聚合、聚合服务的执行方法、装置和电子设备。



背景技术:

在数据即服务的开发应用中,已实现从数据元对象快速发布成服务的方法,但是对于已发布的服务进行聚合还没有很好的处理方法。对于一个多业务逻辑的业务需求,需要调用多个服务时,需要通过代码来实现多个服务之间的调用逻辑,软件代码开发及维护成本较高。



技术实现要素:

本申请实施例的目的是提供一种服务聚合、聚合服务的执行方法、装置和电子设备,能够通过无代码模式建立服务之间的关系,进而减少软件代码开发及维护成本。

为解决上述技术问题,本申请实施例是这样实现的:

第一方面,本申请实施例提供一种服务聚合方法,包括:

响应连接操作而输出关系设置框;

接收通过所述关系设置框而设置的多个被聚合服务之间的关系数据;

将所述关系数据和所述关系数据对应的多个被聚合服务保存为服务组合,并将所述服务组合作为一个聚合服务。

在一种可能实现方式中,所述关系设置框为可视化编辑窗口。

在一种可能实现方式中,所述关系数据,包括:被聚合服务的执行顺序、参数来源、执行条件、行合并信息、列合并信息和数据过滤中的一种或多种。

在一种可能实现方式中,在所述响应连接操作而输出关系设置框的步骤之前,还包括:

接收通过拖拽方式而输入的连接操作。

第二方面,本发明实施例提供一种聚合服务的执行方法,包括:

接收调用端发送的调用聚合服务请求;

查找所述调用聚合服务请求对应的聚合服务;所述聚合服务为采用第一方面所述的一种服务聚合方法生成的服务组合;

解析所述聚合服务,获得若干个动作指令;

执行所述聚合服务对应的所有动作指令,获得返回数据;

将所述返回数据发送给所述调用端。

在一种可能实现方式中,所述接收调用端发送的调用聚合服务请求,包括:

接收调用端通过post方式发送的调用聚合服务请求。

在一种可能实现方式中,在所述执行所述聚合服务对应的所有动作指令,获得返回数据的步骤之前,还包括:

将所述调用聚合服务请求中的post数据包分配给所述聚合服务中的每一个被聚合服务。

在一种可能实现方式中,所述执行所述聚合服务对应的所有动作指令,包括:

将所述聚合服务对应的所有动作指令打包成一个事务包;

执行所述事务包。

第三方面,本发明实施例提供一种服务聚合装置,包括:

设置输出模块,用于响应连接操作而输出关系设置框;

数据接收模块,用于接收通过所述关系设置框而设置的多个被聚合服务之间的关系数据;

服务存储模块,用于将所述关系数据和所述关系数据对应的多个被聚合服务保存为服务组合,并将所述服务组合作为一个聚合服务。

第四方面,本发明实施例提供一种聚合服务的执行装置,包括:

请求接收模块,用于接收调用端发送的调用聚合服务请求;

服务查找模块,用于查找所述调用聚合服务请求对应的聚合服务;所述聚合服务为采用第一方面所述的一种服务聚合方法生成的服务组合;

服务解析模块,用于解析所述聚合服务,获得若干个动作指令;

指令执行模块,用于执行所述聚合服务对应的所有动作指令,获得返回数据;

数据返回模块,用于将所述返回数据发送给所述调用端。

第五方面,本申请实施例提供一种电子设备,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现如第一方面和第二方面中所述的方法所执行的操作。

本发明实施例提供的技术方案带来的有益效果至少可以包括:

通过输出关系设置框,使用户可直接在关系设置框中设置多个服务之间的关系,实现无代码模式建立服务之间的关系,能够减少软件代码开发及维护的成本。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本发明实施例提供的一种服务聚合方法的流程图;

图2是本发明实施例提供的一个聚合服务的示意图;

图3是本发明实施例提供的一种聚合服务的执行方法的流程图;

图4是本发明实施例提供的一种聚合服务的配置关系的示意图;

图5是本发明实施例提供的一种事务包执行过程的流程图;

图6是本发明实施例提供的一种服务聚合装置的示意图;

图7是本发明实施例提供的一种聚合服务的执行装置的示意图;

图8是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

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

为便于理解,先对本发明的名词进行解释:

本发明中的服务指最小单位的api(applicationprogramminginterface)。

聚合服务是指多个服务聚合在一起,形成的服务组合;聚合服务中参与聚合的服务为被聚合服务。例如,服务a、服务b和服务c组合成聚合服务d,则服务a、服务b和服务c均为被聚合服务。

事务包是由聚合服务解析出来的所有动作指令打包而成的,该所有动作指令可以是在不同被聚合服务上执行,每个被聚合服务中的动作指令执行过程可以看作为一个子事务。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本发明提供的一种服务聚合方法的流程图,该方法用于服务器,本实施例的方法包括:

步骤s101:响应连接操作而输出关系设置框。

步骤s102:接收通过所述关系设置框而设置的多个被聚合服务之间的关系数据。

步骤s103:将所述关系数据和所述关系数据对应的多个被聚合服务保存为服务组合,将所述服务组合作为一个聚合服务。

通过向用户输出关系设置框,使用户可直接在关系设置框中设置多个服务之间的关系,实现无代码模式建立服务之间的关系,能够减少软件代码开发及维护的成本。

在本发明提供的一个具体实施例中,关系设置框可以为可视化编辑窗口。该窗口可支持文字编辑,也可支持公式编辑。例如,服务a输出1+服务a输出2=服务b输入1,该公式表示服务a输出的一个参数1和服务a输出的另一个参数2作为服务b的一个输入参数1。例如,服务b的输入还可以是服务a输出的一个参数和全局变量。

响应连接操作而输出关系设置框的方法可以为:响应通过拖拽方式而输入的连接操作,进而跳出关系设置框。具体过程可以为:用户点击a原子(最小单位)的api,拖拽指向另一个b原子api,形成连接关系,并跳出关系设置框,其中,连接关系可以通过两者之间的线条来表示。在关系设置框中可以通过文字或者公式的形式描述两个api之间的关系数据。

在本发明提供的一个具体实施例中,在该可视化编辑窗口,用户可以设置多个被聚合服务的关系数据。该关系数据可以包括:被聚合服务的执行顺序、参数来源、执行条件、行合并信息、列合并信息和数据过滤等中的一种或多种。

通过设置参数来源,可对不同被聚合服务的输入参数建立关系,该关系也可通过公式建立。这样,通过配置前一个被聚合服务执行的结果传入下一个被聚合服务的输入参数,可形成父子服务关系。

其中,行合并信息和列合并信息是指被聚合服务的输出参数之间的关系数据。数据过滤是指对服务的输入数据进行过滤,进而选择需要的输入数据。

在本发明提供的一个具体实施例中,一个关系设置框中可以设置至少两个被聚合服务的关系数据。被聚合服务也可以为多个服务组合的聚合服务,进而形成一个更大的聚合服务。一个关系设置框中的关系数据和该关系数据对应的多个被聚合服务组成服务组合,该服务组合为一个聚合服务,如图2所示为一个聚合服务,包括服务a、服务b和服务d,该服务a、服务b和服务d均为被聚合服务。其中,服务a也可以为服务a和服务b聚合的服务组合。

在服务聚合过程中,每形成一个聚合服务都会对应有相应的标识,当一个服务聚合过程需要用到另一个聚合服务时,可根据对应的聚合服务的标识设置关系数据,进而明确每一个聚合过程中所需要的输入数据。

在确定好服务组合后,需要将该聚合服务进行保存,便于调用者调用。

图3为本发明提供的一种聚合服务的执行方法的流程图,与图1所示的服务聚合方法配合使用,该方法用于服务器,包括:

步骤s201:接收调用端发送的调用聚合服务请求。

步骤s202:查找所述调用聚合服务请求对应的聚合服务。

步骤s203:解析所述聚合服务,获得若干个动作指令。

步骤s204:执行所述聚合服务对应的所有动作指令,获得返回数据。

步骤s205:将所述返回数据发送给所述调用端。

由于服务器保存有多个聚合服务,当服务器接收到调用端发送的调用聚合服务请求后,需要根据该调用聚合服务请求查找该调用聚合服务请求调用的是哪个聚合服务,确定聚合服务之后,就需要执行该聚合服务。

在服务器中设置有数据库,数据库中保存有每个聚合服务和对应的请求标识,当接收到调用聚合服务请求后,可根据该聚合服务请求中的请求标识识别聚合服务。例如,调用聚合服务请求的url。

在本发明提供的一个具体实施例中,调用者在调用服务时,可以通过post方式进行调用,也就是说调用端向服务器发送的调用聚合服务请求中包含有post数据包,该post数据包中携带有需要调用的聚合服务和需要调用的数据。调用端在调用聚合服务时,聚合服务会依次调用该聚合服务中所有的被聚合服务,每个被聚合服务的输入参数可能相同,也可能不同,因此,聚合服务需要将post数据包中的数据进行拆分,分发给对应的被聚合服务。

确定完聚合服务,分发完post数据包之后,就可以对该聚合服务进行执行,具体执行过程如下:

第一步:解析聚合服务,获得若干个动作指令,该若干个动作指令可形成一个动作指令列表,便于记录;

第二步:执行所述聚合服务对应的所有动作指令,获得返回数据;执行聚合服务对应的所有动作指令的具体方法为:

将解析出的该聚合服务对应的所有动作指令打包成一个事务包;由于该所有的动作指令对应有不同的被聚合服务,每个被聚合服务是不同的服务,因此,可将每个被聚合服务对应的动作指令打包为一个子事务进行执行;也就是说事物包可以包括有多个子事物。聚合服务的关系数据中设置有多个被聚合服务的执行顺序,该被聚合服务的执行顺序也就是对应的子事务的执行顺序。对事务包进行执行时,按执行顺序依次调用被聚合服务并执行对应的子事务。若执行过程发生异常时,则执行事务回滚;若执行过程全部正常,则执行各个子事务的提交指令。

在执行聚合服务的过程中,可将执行过程写入系统日志。例如,事务包日志和子事务日志等。

执行结束后,获得返回数据,再将返回数据发送至调用端。

下面举例来说明具体方案:

如图4所示,提供了一种聚合服务的配置关系示意图,该聚合服务包括被聚合服务a、被聚合服务b和被聚合服务c;被聚合服务c的执行结果为被聚合服务a的输入参数,对被聚合服务a和被聚合服务b的执行结果进行列合并或行合并,获得最终返回数据。

如图5所示,提供了一种事务包执行过程的流程图,子事务1预执行被聚合服务a中的指令,提前预执行被聚合服务a,能够加快被聚合服务a的执行过程;子事务2执行被聚合服务a的指令,并获得返回数据;子事务3执行被聚合服务b中的指令并返回数据;子事务4对子事务2和子事务3的返回数据进行合并,若子事务4执行成功,则执行各个子事务的commit指令,若执行失败,则执行子事务的回滚指令。其中,子事务2和子事务3可设置有先后顺序,也可同时进行。

图6为本发明实施例提供的一种服务聚合装置的示意图,参见图6,该装置包括:设置输出模块101、数据接收模块102和服务存储模块103。

设置输出模块101,用于响应连接操作而输出关系设置框;

数据接收模块102,用于接收通过所述关系设置框而设置的多个被聚合服务之间的关系数据;

服务存储模块103,用于将所述关系数据和所述关系数据对应的多个被聚合服务保存为服务组合,并将所述服务组合作为一个聚合服务。

在本发明提供的一个具体实施例中,所述关系设置框为可视化编辑窗口。

在本发明提供的一个具体实施例中,所述关系数据,包括:被聚合服务的执行顺序、参数来源、执行条件、行合并信息、列合并信息和数据过滤中的一种或多种。

在本发明提供的一个具体实施例中,在所述响应连接操作而输出关系设置框的步骤之前,还包括:

接收通过拖拽方式而输入的连接操作。

需要说明的是:上述实施例提供的服务聚合装置在聚合服务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的接口生成装置与接口生成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图7为本发明实施例提供的一种聚合服务的执行装置的示意图,参见图7,该装置包括:请求接收模块201、服务查找模块202、服务解析模块203、指令执行模块204和数据返回模块205。

请求接收模块201,用于接收调用端发送的调用聚合服务请求;

服务查找模块202,用于查找所述调用聚合服务请求对应的聚合服务;所述聚合服务为采用本实施例提供的一种服务聚合方法所生成的服务组合;

服务解析模块203,用于解析所述聚合服务,获得若干个动作指令;

指令执行模块204,用于执行所述聚合服务对应的所有动作指令,获得返回数据;

数据返回模块205,用于将所述返回数据发送给所述调用端。

在本发明提供的一个具体实施例中,所述请求接收模块201,具体用于:

接收调用端通过post方式发送的调用聚合服务请求。

在本发明提供的一个具体实施例中,在所述执行所述聚合服务对应的所有动作指令,获得返回数据之前,还包括:

将所述调用聚合服务请求中的post数据包分配给所述聚合服务中的每一个被聚合服务。

在本发明提供的一个具体实施例中,所述指令执行模块204,具体用于:

打包单元,用于将所述聚合服务对应的所有动作指令打包成一个事务包;

执行单元,用于执行所述事务包,获得返回数据。

需要说明的是:上述实施例提供的聚合服务的执行装置在调用服务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据调用装置与数据调用方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

需要说明的是,本发明实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤s101和步骤s102的执行主体可以为设备1,步骤s103的执行主体可以为设备2;又比如,步骤s101的执行主体可以为设备1,步骤s102和步骤s103的执行主体可以为设备2;等等。实施例2和实施例3同上。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

图8是本申请的一个实施例电子设备的结构示意图。请参考图8,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成服务聚合装置和聚合服务的执行装置。处理器,执行存储器所存放的程序,并具体用于执行服务聚合操作和聚合服务的执行操作。

上述如本申请图6所示实施例揭示的服务聚合装置执行的方法以及图7所示实施例揭示的聚合服务的执行装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图1的方法,并实现服务聚合装置在图6所示实施例的功能,该电子设备还可执行图3的方法,并实现数据调用装置在图7所示实施例的功能,本申请实施例在此不再赘述。

当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现服务聚合和聚合服务执行的操作。

总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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