服务调用代理控制系统、方法、服务器及可读存储介质与流程

文档序号:16200036发布日期:2018-12-08 06:31阅读:195来源:国知局
服务调用代理控制系统、方法、服务器及可读存储介质与流程

本说明书实施例涉及互联网技术领域,尤其涉及一种服务代理调用控制系统及方法、服务器及可读存储介质。

背景技术

随着互联网技术成熟,测试手段也日渐丰富。测试不仅仅局限于实现输入输出,大量对应用定制化甚至平台化的测试系统应运而生。测试系统需要代替业务系统执行一些服务逻辑,从而推进某个业务逻辑的进行;或是模拟一些复杂场景,封装一些校验逻辑。



技术实现要素:

本说明书实施例提供及一种服务代理调用控制系统及方法、服务器及可读存储介质。

第一方面,本说明书实施例提供一种服务调用代理控制系统,用于利用代理系统实现为外部系统调用业务系统中的至少一个服务;

所述外部系统,用于向所述代理系统发起针对至少一个服务的调用请求;

所述代理系统,用于根据所述调用请求,通过预先封装的所述至少一个服务对应的服务接口,调用所述业务系统中所述至少一个服务的业务逻辑代码,并将所述业务逻辑代码提供给所述外部系统;

所述业务系统,用于提供所述至少一个服务的业务逻辑代码,并支持所述代理系统读取所述业务逻辑代码。

第二方面,本说明书实施例提供一种服务调用代理方法,用于利用代理系统实现为外部系统调用业务系统中的至少一个服务,所述方法包括:

接收外部系统发起的针对至少一个服务的调用请求;

根据所述调用请求,通过预先封装的所述至少一个服务对应的服务接口,调用所述业务系统中所述至少一个服务的业务逻辑代码,并将所述业务逻辑代码提供给所述外部系统。

第三方面,本说明书实施例提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述服务调用代理的步骤。

第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述服务调用代理的步骤。

本说明书实施例有益效果如下:

本说明书实施例通过一个代理系统,代理了全部的服务,但是服务的实现并不在代理系统内实现,而是例如通过spi机制在业务系统中读库bundle中实现;业务系统不需要开放服务,只要实现代理系统的服务即可,避免了开放服务带来的风险,以及侵入业务逻辑带来的风险;业务系统的服务实现逻辑,还具有一定自由度,可以完成几个业务系统之间执行顺序的编排能力。

附图说明

图1为本说明书实施例的服务调用代理控制系统场景示意图;

图2为本说明书实施例第一方面提供的服务调用代理控制系统结构示意图;

图3为本说明书实施例第一方面提供的服务调用代理控制系统一个实例实现流程图;

图4为本说明书实施例第一方面提供的服务调用代理控制系统一个实例中代理系统封装服务接口示意图;

图5为本说明书实施例第二方面提供的服务调用代理方法流程图;

图6为本说明书实施例第三方面提供的服务调用代理控制服务器结构示意图。

具体实施方式

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。

为了保证测试工具的客观有效,业务逻辑的执行或者模拟,都必须采用系统原生代码来执行。因而需要开放这些业务逻辑的服务。但是往往基于系统设计的封装和内聚要求,这些功能模块是不对外开放服务的。针对这一难题,本说明书实施例实现了一种利用代理封装服务依赖而又不侵入应用系统的,灵活、快速、统一的服务封装依赖方案。

参见图1,为本说明书实施例的服务调用代理控制系统场景示意图。外部系统101可以是多个(如图1中外部系统1、外部系统2、……、外部系统n),例如,具体应用中,外部系统101可以是指测试工具平台;代理系统102是连接外部系统101和业务系统103的系统,其作用是响应于外部系统101的请求,代理实现业务系统103的业务逻辑;业务系统102可以是多个不同的业务系统(如图1中业务系统1、业务系统2、……、业务系统n)(处理不同的业务),其与代理系统102具有接口调用关系,允许代理系统102调用外部系统101请求的业务逻辑。

可以理解,外部系统101、代理系统102、业务系统103是从上至下的三层系统,其中,第1层外部系统101与第2层代理系统102之间存在服务依赖关系,第2层代理系统102与第3层业务系统103之间存在服务注册关系,第3层业务系统103中进行服务编排(如图1中业务系统3与业务系统4存在多个服务相互调用)。

请参见图2,为本说明书实施例第一方面提供的服务调用代理控制系统结构示意图。该服务调用代理控制系统200,用于利用代理系统202实现为外部系统201调用业务系统203中的至少一个服务;

外部系统201例如可以是测试工具平台,是使用者(例如是外部应用),其主要用于向代理系统202发起针对业务系统203中至少一个服务的调用请求;其中,每个服务可以理解是一个功能模块,例如,在每个业务系统203中存储并实现有多个功能模块,从而实现各个服务。

代理系统202,是本说明书实施例中为了避免直接开放业务系统203权限,从而设置的一个系统,其主要目的在于代替业务系统203实现服务的业务逻辑,从而为外部系统201所用。具体实现中,代理系统202与业务系统203之间通过预先设置的接口,从而在代理系统202调用业务系统203中的服务。可以理解,代理系统202用于根据调用请求,通过预先封装的至少一个服务对应的服务接口,调用业务系统203中至少一个服务的业务逻辑代码,并将业务逻辑代码提供给外部系统203;

业务系统203是被测试的系统,例如是一个新上的网络平台系统。业务系统203用于提供至少一个服务的业务逻辑代码,并支持代理系统202代理业务逻辑代码。

在一种可选方式中,代理系统202具体包括:

外部系统通信单元2021,用于与外部系统201通信,包括从外部系统201接收调用请求,以及向外部系统201提供业务逻辑代码;

服务接口封装单元2022,用于声明服务接口,并将声明的接口参数打包成服务接口文件并存储;其中,服务接口文件被业务系统203引入从而使得代理系统202可代理到所述业务逻辑代码。

其中:服务接口封装单元2022可以具体用于:确定接口名、调用方法、接入参数、返回参数、参数类型、注释参数中的一项或多项。

在一种可选方式中,业务系统203包括:

业务逻辑存储单元2031,用于存储至少一个服务的业务逻辑代码;

服务注册单元2032,用于查找到代理系统202生成的服务接口文件,并通过对服务接口文件进行参数配置,将业务逻辑代码引入服务接口文件。

在一种可选方式中,代理系统202,根据各个服务的调用请求的顺序,依次实现对各服务对应的业务逻辑代码的代理。其中,各个服务可以来自一个业务系统203,也可以来自不同的业务系统203。对于调用不同业务系统203的服务,即代理系统202实现了跨业务系统202多个服务互相之间的调用。

参见图3,为本说明书实施例第一方面提供的服务调用代理控制系统一个实例实现流程图。在该实例的实现流程中,示意出了两个服务(服务a和服务b)的调用过程。针对每个服务的调用过程,主要包括如下三个步骤:

步骤1:外部系统向代理系统发起服务调用请求。

外部系统的需求是调用业务系统内部的某个或某些服务(某个或某些功能模块),其中如果是调用多个模块,则模块间有一些业务关联,实现时要进行一些顺序编排。

步骤2:代理系统与业务系统通过接口调用,实现被请求服务的业务逻辑的代理。

下面从代理系统与业务系统两个方面具体介绍。

(1)代理系统,代理了下游业务系统的业务逻辑,对上外部系统提供服务门面。外部系统使用的全部服务都封装在这里,作为下层业务系统的代理。

具体实现:

(1.1)、创建一个可以用于跨平台远程调用的框架。例如,创建一个基本的spring框架系统(spring是一种java应用的开源框架),做到能提供ws服务(webservice,是一种跨平台远程调用技术)。

(1.2)、根据所要代理的服务,声明服务接口,接口中包含接口名、接入参数、返回参数类型、注释等,其中,如果返回对象是复杂对象,也需要创建这个对象。接口的结构示意图可如图4所示。

(1.3)、将服务对应的接口参数等信息打包成服务接口文件并存储。例如,用mvn工具(apachemaven,是一个jar包管理工具),把代理系统声明的接口和参数对象所在bean(描述java的软件组件模型)打成jar包,并且上传maven(项目对象模型)库。例如,可以将jar包存储在代理系统本地(例如代理服务器)上。

(2)业务系统,通过对服务接口文件进行参数配置,将业务逻辑代码引入服务接口文件。

具体实现:

例如,通过配置maven的xml(可扩展标记语言)参数中dependencies标签(dependencies标签是maven管理第三方包的基础元素,用来指定依赖的jar包版本信息),依赖代理系统的jar包,业务系统用maven编译后就可以引入这些jar包。

其中,业务系统可通过添加一个独立bundle(一个bundle就是一个独立的java工程,可理解为代码以文件夹形式存储),代码不需要发布上线,只需要部署到业务层服务器。并且新bundle需要配置到ace(ace是java管理后台管理模板,java工程要在容器中启动需要配置进去),容器启动时能加载起来。独立bundle新增代理系统声明的类,并利用spi(serviceproviderinterface,服务提供者发现)机制在方法内实现具体逻辑。可见,本说明书实施例实现接口逻辑时,只需要调用业务系统内部服务(模块)的简单执行代码。

步骤3:代理系统将服务的业务逻辑返回给外部系统。

至此,即通过代理系统为外部系统调用了业务系统的服务:第1层(外部系统)调用第2层(代理系统)接口,通过spi机制执行第3层(业务系统)的接口实现逻辑;接口返回由第2层代理进行返回。

其中,如前所述的,本说明书实施例可以实现多个业务系统之间多个服务间的调用。例如,当某个测试需要依赖多个服务(模块),则通过调用不同的模块,从而实现一些处理逻辑返回结果。因为所有业务系统都通过代理系统提供了服务,所以这种多模块的调用也可以跨系统,在几个业务系统之间互相调用。

比如:“s接口需要调用a业务系统的x接口获得订单号,再把订单号传给b也系统的y接口处理订单,完成一定的业务逻辑,并返回订单处理后的新状态”。那么这个实现逻辑的基本结构可如下所示:

开始——>调用a.x——>返回订单号p——>调用b.y(参数:订单号p)——>返回订单p的状态——>接口返回订单p的状态。

可见,本说明书实施例提供的服务调用代理控制系统中,通过一个代理系统,代理了全部的服务,但是服务的实现并不在代理系统内实现,而是例如通过spi机制在业务系统中读库bundle中实现;业务系统不需要开放服务,只要实现代理系统的服务即可,避免了开放服务带来的风险,以及侵入业务逻辑带来的风险;业务系统的服务实现逻辑,还具有一定自由度,可以完成几个业务系统之间执行顺序的编排能力。

本说明书实施例中,外部系统只需要依赖一个代理系统,不需要对接那么多业务系统,而代理系统对接多个业务系统是可以扩展和复用的,一次接入永久受益;由代理系统统一提供服务,避免了业务系统开放服务的缺点,业务系统的业务逻辑仍旧保持内聚和私有,不会存在任何风险。业务系统通过spi机制实现内部逻辑的编排实现,采用的是独立类模块来实现,和原生代码完全隔离,不会侵入也不会影响,做到了对业务系统的安全保证;同时,业务逻辑还是调用原生代码实现,保证了测试结果的真实反应和有效性。

第二方面,基于同一发明构思,本说明书实施例提供一种服务调用代理方法,请参考图5,包括:

s501:接收外部系统发起的针对至少一个服务的调用请求;

s502:根据调用请求,通过预先封装的至少一个服务对应的服务接口,调用业务系统中所述至少一个服务的业务逻辑代码,并将业务逻辑代码提供给外部系统。

在一种可选方式中,所述方法还包括:声明所述服务接口,并将声明的接口参数打包成服务接口文件并存储;其中,所述从所述业务系统调用所述至少一个服务的业务逻辑代码包括:通过所述服务接口文件被所述业务系统引入,从而调用所述业务逻辑代码。

在一种可选方式中,所述声明所述服务接口包括:确定接口名、调用方法、接入参数、返回参数、参数类型、注释参数中的一项或多项。

在一种可选方式中,所述通过所述服务接口文件被所述业务系统引入包括:所述业务系统查找到所述代理系统生成的所述服务接口文件,并通过对所述服务接口文件进行参数配置,将所述业务逻辑代码引入所述服务接口文件。

在一种可选方式中,所述方法还包括:根据各个服务的调用请求的顺序,依次实现对各服务对应的业务逻辑代码的调用。

第三方面,基于与前述实施例中服务调用代理同样的发明构思,本发明还提供一种服务器,如图6所示,包括存储器604、处理器602及存储在存储器604上并可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现前文所述服务调用代理的任一方法的步骤。

其中,在图6中,总线架构(用总线600来代表),总线600可以包括任意数量的互联的总线和桥,总线600将包括由处理器602代表的一个或多个处理器和存储器604代表的存储器的各种电路链接在一起。总线600还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口606在总线600和接收器601和发送器603之间提供接口。接收器601和发送器603可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器602负责管理总线600和通常的处理,而存储器604可以被用于存储处理器602在执行操作时所使用的数据。

第四方面,基于与前述实施例中服务调用代理的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述服务调用代理的任一方法的步骤。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。

显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

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