本申请提供了远程服务调用方法、装置及系统,方法及装置均可应用在客户端及服务器,客户端配置多个连接池,每个连接池均各自与一服务器对应,当接收到服务调用模块发送的服务调用请求时,在多个服务器中,确定空闲的目标服务器,在目标服务器对应的连接池中,获取空闲的目标长连接,当目标长连接为有效状态时,利用目标长连接,将服务调用请求发送至与目标服务器,触发目标服务器调用与服务调用请求对应的服务,以获得调用结果,并触发目标服务器返回调用结果,并将调用结果发送至服务调用模块。与现有技术相比,本发明专利技术中,服务调用模块向远程服务器发送服务调用请求,且可以选择任意一服务器作为请求对象,提高了服务调用的稳定性及安全性。
【技术实现步骤摘要】
—种远程服务调用方法、装置及系统
本专利技术涉及软件
,尤其是一种远程服务调用方法、装置及系统。
技术介绍
在软件领域中,应用程序的开发模式通常为单一运行包模式,即应用程序开发生成的代码封装在至少一个工程源码包内,而所有的工程源码包必须在同一运行环境内运行,且均使用同一数据库系统。 然而,对运行环境及数据库系统的上述单一性要求,使得应用程序的一个服务调用模块在实现功能时,只能调用本地的服务实现模块。也就是说,服务调用模块与服务实现模块必须集成在同一台计算机系统中,当该计算机系统出现问题后,对服务调用模块及服务实现模块均产生影响,因此,服务调用的稳定性较差且安全性较低。
技术实现思路
有鉴于此,本专利技术提供了一种远程服务调用方法、装置及系统,用以解决现有技术中服务调用的稳定性较差且安全性较低的技术问题。为实现所述目的,本专利技术提供的技术方案如下: 一种远程服务调用方法,应用于客户端,所述客户端配置有多个连接池,每个所述连接池均各自与一服务器对应,所述方法包括: 当接收到服务调用模块发送的服务调用请求时,在多个所述服务器中,确定空闲的目标服务器; 在所述目标服务器对应的连接池中,获取空闲的目标长连接; 当所述目标长连接为有效状态时,利用所述目标长连接,将所述服务调用请求发送至与所述目标服务器,触发所述目标服务器调用与所述服务调用请求对应的服务,以获得调用结果,并触发所述目标服务器返回所述调用结果; 将所述调用结果发送至所述服务调用模块。 上述的远程服务调用方法,优选地,所述在多个所述服务器中,确定空闲的目标服务器,包括: 利用轮询算法,在多个所述服务器中,确定空闲的目标服务器。 上述的远程服务调用方法,优选地,所述在多个所述服务器中,确定空闲的目标服务器,包括: 在预先设置的第一堆栈中,确定空闲的目标服务器;其中,所述第一堆栈中包含有多个目标服务器。 上述的远程服务调用方法,优选地,在所述目标服务器对应的连接池中,获取空闲的目标长连接之后,所述方法还包括: 当所述目标长连接为异常状态时,将所述目标服务器从第一堆栈移至预先设置的第二堆栈中; 当所述目标服务器对应连接池中的任意一长连接为有效状态时,将所述目标服务器从所述第二堆栈移至所述第一堆栈。 上述的远程服务调用方法,优选地,所述在所述目标服务器对应的连接池中,获取空闲的目标长连接,包括: 利用轮询算法,在所述目标服务器对应的连接池中,获取空闲的目标长连接。 上述的远程服务调用方法,优选地,在所述将所述调用结果发送至所述应用程序之前,还包括: 当接收到所述目标服务器返回的调用结果时,将所述目标长连接释放回对应的连接池。 本专利技术还提供了一种远程服务调用方法,应用于服务器,所述方法包括: 当接收到客户端发送的服务调用请求时,提取所述服务调用请求中的服务名称及调用参数; 依据所述服务名称及调用参数,调用所述服务请求对应的服务,以获得调用结果。 本专利技术还提供了一种远程服务调用装置,应用于客户端,所述客户端配置有多个连接池,每个所述连接池均各自与一服务器对应,所述装置包括: 目标服务器确定单元,用于当接收到服务调用模块发送的服务调用请求时,在多个所述服务器中,确定空闲的目标服务器; 目标长连接获取单元,用于在所述目标服务器对应的连接池中,获取空闲的目标长连接; 目标服务调用单元,用于当所述目标长连接为有效状态时,利用所述目标长连接,将所述服务调用请求发送至与所述目标服务器,触发所述目标服务器调用与所述服务调用请求对应的服务,以获得调用结果,并触发所述目标服务器返回所述调用结果; 调用结果返回单元,用于将所述调用结果发送至所述服务调用模块。 本专利技术还提供了一种远程服务调用装置,应用于服务器,所述方法包括: 名称参数提取单元,用于当接收到客户端发送的服务调用请求时,提取所述服务调用请求中的服务名称及调用参数; 目标服务调用单元,用于依据所述服务名称及调用参数,调用所述服务请求对应的服务,以获得调用结果。 本专利技术还提供了一种远程服务调用系统,包括上述应用在客户端的远程服务调用装置及应用在服务器远程服务调用装置。 由以上技术方案可知,本专利技术提供的远程服务调用方法、装置及系统,方法及装置均可以分别应用在客户端及服务器,客户端配置有多个连接池,每个连接池均各自与一服务器对应,当接收到服务调用模块发送的服务调用请求时,在多个服务器中,确定空闲的目标服务器,在目标服务器对应的连接池中,获取空闲的目标长连接,当目标长连接为有效状态时,利用目标长连接,将服务调用请求发送至与目标服务器,触发目标服务器调用与服务调用请求对应的服务,以获得调用结果,并触发目标服务器返回调用结果,并将调用结果发送至服务调用模块。与现有技术相比,本专利技术中,服务调用模块向远程服务器发送服务调用请求,且可以选择任意一服务器作为请求对象,提高了服务调用的稳定性及安全性。 【附图说明】 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。 图1为本专利技术实施例提供的应用在客户端的远程服务调用方法的流程图; 图2为本专利技术实施例提供的应用在客户端的远程服务调用方法的另一流程图; 图3为本专利技术实施例提供的应用在客户端的远程服务调用方法的又一流程图; 图4为本专利技术实施例提供的应用在服务器的远程服务调用方法的又一流程图; 图5为本专利技术实施例提供的应用在客户端的远程服务调用装置的结构框图; 图6为本专利技术实施例提供的应用在服务器的远程服务调用装置的结构框图。 【具体实施方式】 下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。 本专利技术提供的远程服务调用方法应用在客户端,客户端配置有多个连接池,每个连接池各自与一个服务器对应。需要说明,本专利技术设置有多个服务器,每个服务器均可实现服务调用模块的调用请求。也就是说,多个服务器之间互为备份,实现了服务调用请求的负载均衡。相较于现有技术中将应用程序的调用请求实现模块集成在一台计算机而言,本实施例可提高服务调用的稳定性及安全性。 基于上述提供的客户端及多个服务器的系统架构,本专利技术实施例提供了一种远程服务调用方法。参见图1,其示出了该方法的流程,该流程具体包括: 步骤SlOl:当接收到服务调用模块发送的服务调用请求时,在多个所述服务器中,确定空闲的目标服务器。 其中,服务调用模块是客户端应用程序中的一个模块,当该模块需要调用远程服务模块时,生成服务调用请求,其中,服务调用请求中包含有需要调用的服务的名称及参数。将服务调用请求发送到本方法的执行主体,当本方法的执行主体接收到该服务调用请求时,需要在设置的多个服务器中,查找一个当前处于空闲状态的服务器,确定为目标服务本文档来自技高网...
【技术保护点】
一种远程服务调用方法,其特征在于,应用于客户端,所述客户端配置有多个连接池,每个所述连接池均各自与一服务器对应,所述方法包括:当接收到服务调用模块发送的服务调用请求时,在多个所述服务器中,确定空闲的目标服务器;在所述目标服务器对应的连接池中,获取空闲的目标长连接;当所述目标长连接为有效状态时,利用所述目标长连接,将所述服务调用请求发送至与所述目标服务器,触发所述目标服务器调用与所述服务调用请求对应的服务,以获得调用结果,并触发所述目标服务器返回所述调用结果;将所述调用结果发送至所述服务调用模块。
【技术特征摘要】
1.一种远程服务调用方法,其特征在于,应用于客户端,所述客户端配置有多个连接池,每个所述连接池均各自与一服务器对应,所述方法包括: 当接收到服务调用模块发送的服务调用请求时,在多个所述服务器中,确定空闲的目标服务器; 在所述目标服务器对应的连接池中,获取空闲的目标长连接; 当所述目标长连接为有效状态时,利用所述目标长连接,将所述服务调用请求发送至与所述目标服务器,触发所述目标服务器调用与所述服务调用请求对应的服务,以获得调用结果,并触发所述目标服务器返回所述调用结果; 将所述调用结果发送至所述服务调用模块。2.根据权利要求1所述的远程服务调用方法,其特征在于,所述在多个所述服务器中,确定空闲的目标服务器,包括: 利用轮询算法,在多个所述服务器中,确定空闲的目标服务器。3.根据权利要求1所述的远程服务调用方法,其特征在于,所述在多个所述服务器中,确定空闲的目标服务器,包括: 在预先设置的第一堆栈中,确定空闲的目标服务器;其中,所述第一堆栈中包含有多个目标服务器。4.根据权利要求3所述的远程服务调用方法,其特征在于,在所述目标服务器对应的连接池中,获取空闲的目标长连接之后,所述方法还包括: 当所述目标长连接为异常状态时,将所述目标服务器从第一堆栈移至预先设置的第二堆栈中; 当所述目标服务器对应连接池中的任意一长连接为有效状态时,将所述目标服务器从所述第二堆栈移至所述第一堆栈。5.根据权利要求1所述的远程服务调用方法,其特征在于,所述在所述目标服务器对应的连接池中,获取空闲的目标长连接,包括: 利用轮询算法,在所述目标服务器对应的连接池中,获取空闲的目标长连接。6.根据...
【专利技术属性】
技术研发人员:李七生,胡斌,冯维,姜一维,
申请(专利权)人:杭州高达软件系统股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。