远程服务请求方法、响应方法、请求装置与响应装置制造方法

文档序号:7822176阅读:146来源:国知局
远程服务请求方法、响应方法、请求装置与响应装置制造方法
【专利摘要】本发明提供了一种远程服务请求方法、一种远程服务响应方法、一种远程服务请求装置和一种远程服务响应装置,其中,所述远程服务请求方法包括:根据接收到的接口创建命令,使用工厂模式在所述终端上创建远程服务调用接口;通过所述远程服务调用接口向服务器发送请求。通过本发明的技术方案,可以解除应用与远程服务调用技术之间的耦合,使应用可以透明的切换远程调用技术,保证服务远程调用的灵活性和扩展性,并确保服务的客户端与服务端之间的协议版本兼容性。
【专利说明】远程服务请求方法、响应方法、请求装置与响应装置

【技术领域】
[0001]本发明涉及远程【技术领域】,具体而言,涉及一种远程服务请求方法、一种远程服务响应方法、一种远程服务请求装置和一种远程服务响应装置。

【背景技术】
[0002]随着云计算的发展,企业应用的架构及部署模式,逐渐从单服务器软件包的方式,发展为多服务器在线服务的方式,应用内及应用之间的服务调用,也从本地调用的方式,大量地切换为跨服务器的远程调用方式。
[0003]目前有很多支持远程调用的技术,如java RMI (Research In Mot1n) ,MS XML (微软的 XML 语言解析器)、web service (远程服务)、RESTful (Representat1nal StateTransfer,基于架构样式的网络系统)、Thrift (软件架构)、Avro (数据序列化的系统)、MessagePack (消息包)、Protocol Buffers ( 一种数据交换的格式)等,但是用户很难在设计实现之初,就选用一种正确的适合自身应用的技术,同时也很难实现服务的扩展和版本控制,而如果引入ESB (Enterprise Service Bus,企业服务总线),则又显得过于笨重。
[0004]因此,如何解除应用与远程服务调用技术之间的耦合,使应用可以透明的切换远程调用技术,如何保证服务远程调用的灵活性和扩展性,如何保证服务的客户端与服务端之间的版本兼容性,成为亟待解决的问题。


【发明内容】

[0005]本发明正是基于上述技术问题,提出了一种新的技术方案,可以解除应用与远程服务调用技术之间的耦合,使应用可以透明的切换远程调用技术,保证服务远程调用的灵活性和扩展性,并确保服务的客户端与服务端之间的协议版本兼容性。
[0006]有鉴于此,本发明的一方面提出了一种远程服务请求方法,用于终端,包括:根据接收到的接口创建命令,使用工厂模式在所述终端上创建远程服务调用接口 ;通过所述远程服务调用接口向服务器发送请求。
[0007]在该技术方案中,通过使用工厂模式在终端(客户端)上创建远程服务调用接口,可以对服务调用的各种细节处理,包括远程调用技术、请求参数、返回结果、执行时间、错误码、错误信息等信息的处理,以使应用程序的调用更加透明和方便,另外,由于采用工厂模式将远程调用技术的选择进行了封装,这使得应用程序与远程服务调用技术之间完全解耦,使终端与服务器之间的远程调用技术的扩展和切换变得非常容易。
[0008]在上述技术方案中,优选地,所述请求包括以下信息中的至少一种:协议版本、应用域、请求头和请求体。
[0009]在该技术方案中,协议版本用于使服务器解析请求信息,可以使服务器明确客户端的请求的所属协议版本,以使服务器可以兼容不同协议版本的请求,并将不同版本的协议请求转发至不同的版本服务;应用域用于使服务器区分不同的应用程序,便于服务器对客户端不同的应用程序的请求进行准确转发;请求头保存了请求的控制信息,包括请求命令、同步异步等,请求体保存请求的数据信息,因此,通过对请求头进行扩展,可以满足个性化的需求,提高远程调用的灵活性,例如:对客户端进行服务鉴权时,客户端可以在请求头中加入token(标识)信息,以由服务器调用统一的服务入口进行鉴权,然后再分发给各个具体的服务,避免通过各个服务鉴权的问题,降低系统的耦合度,提升服务的响应能力。
[0010]本发明的另一方面提出了一种远程服务响应方法,用于服务器,所述服务器与上述技术方案中的终端相连接,包括:接收所述终端的请求;根据所述请求中包括的信息,对所述请求进行处理,并将处理结果通过所述远程服务调用接口返回至所述终端,以响应所述请求,其中,所述处理结果包括:响应头和响应体,以及所述响应头包括:所述请求的执行信息,所述响应体包括:所述请求的数据信息。
[0011]在该技术方案中,该处理结果中的响应头保存了请求的执行信息,包括错误码、错误信息、执行时间等,响应体保存了请求的数据信息;响应头采用key-value (哈希结构)的结构,可以由应用程序进行扩展,响应体的结构完全由应用程序决定,而通过将处理结果分为响应头和响应体返回至终端,则可以使终端用户更加清楚请求的整个处理过程和处理结果,有利于提高用户的使用体验。
[0012]另外,由于终端与服务器之间的请求响应是通过经过工厂模式封装的远程服务调用接口,因此,远程调用技术或服务器支持的协议版本发生变化时,均不会涉及到远程服务调用接口的改变,这使得终端侧支持服务的在线升级,当然,终端侧即便与服务器的版本协议不进行同步升级,也可以确保服务的客户端与服务端之间的协议版本兼容性。
[0013]在上述技术方案中,优选地,所述根据所述请求中包括的信息,对所述请求进行处理,具体包括:获取所述请求中包括的协议版本,根据所述协议版本对所述请求进行解析,以读取所述请求中包括的其他信息,其中,所述其他信息包括:应用域、请求头和请求体中的任一种信息。
[0014]在该技术方案中,通过获取请求中的协议版本,可以使服务器使用正确的协议版本对该请求进行解析,以读取出终端发出的请求中的其他信息,这为服务器对终端的请求做出及时正确的响应奠定了必要的基础。
[0015]在上述技术方案中,优选地,所述根据所述请求中包括的信息,对所述请求进行处理,具体还包括:根据所述请求中包括的所述协议版本和/或所述应用域,将所述请求分发至至少一个服务处理器,并控制所述至少一个服务处理器按照预设顺序依次对所述请求进行处理。
[0016]在该技术方案中,通过根据请求中包括的协议版本和/或应用域,可以将该请求分发至与该请求相对应的至少一个服务处理器,并使该至少一个服务处理器按照链的请求处理机制对该请求依次进行处理,以避免将该请求分发至一个综合服务处理器进行处理,从而提高请求的处理速率和正确率;当然,由于每个请求对应一组不同的服务处理器而非一个固定的综合的服务处理器,因此,这提高了远程调用的灵活性,也使得远程调用具有扩展性。
[0017]本发明的再一方面提出了一种远程服务请求装置,用于终端,包括:创建单元,根据接收到的接口创建命令,使用工厂模式在所述终端上创建远程服务调用接口 ;发送单元,通过所述远程服务调用接口向服务器发送请求。
[0018]在该技术方案中,通过使用工厂模式在终端(客户端)上创建远程服务调用接口,可以对服务调用的各种细节处理,包括远程调用技术、请求参数、返回结果、执行时间、错误码、错误信息等信息的处理,以使应用程序的调用更加透明和方便,另外,由于采用工厂模式将远程调用技术的选择进行了封装,这使得应用程序与远程服务调用技术之间完全解耦,使终端与服务器之间的远程调用技术的扩展和切换变得非常容易。
[0019]在上述技术方案中,优选地,所述请求包括以下信息中的至少一种:协议版本、应用域、请求头和请求体。
[0020]在该技术方案中,协议版本用于使服务器解析请求信息,可以使服务器明确客户端的请求的所属协议版本,以使服务器可以兼容不同协议版本的请求,并将不同版本的协议请求转发至不同的版本服务;应用域用于使服务器区分不同的应用程序,便于服务器对客户端不同的应用程序的请求进行准确转发;请求头保存了请求的控制信息,包括请求命令、同步异步等,请求体保存请求的数据信息,因此,通过对请求头进行扩展,可以满足个性化的需求,提高远程调用的灵活性,例如:对客户端进行服务鉴权时,客户端可以在请求头中加入token(标识)信息,以由服务器调用统一的服务入口进行鉴权,然后再分发给各个具体的服务,避免通过各个服务鉴权的问题,降低系统的耦合度,提升服务的响应能力。
[0021]本发明的又一方面提出了一种远程服务响应装置,用于服务器,所述服务器与上述技术方案中的终端相连接,所述装置包括:接收单元,接收所述终端的请求;处理单元,根据所述请求中包括的信息,对所述请求进行处理,并将处理结果通过所述远程服务调用接口返回至所述终端,以响应所述请求,其中,所述处理结果包括:响应头和响应体,以及所述响应头包括:所述请求的执行信息,所述响应体包括:所述请求的数据信息。
[0022]在该技术方案中,该处理结果中的响应头保存了请求的执行信息,包括错误码、错误信息、执行时间等,响应体保存了请求的数据信息;响应头采用key-value (哈希结构)的结构,可以由应用程序进行扩展,响应体的结构完全由应用程序决定,而通过将处理结果分为响应头和响应体返回至终端,则可以使终端用户更加清楚请求的整个处理过程和处理结果,有利于提高用户的使用体验。
[0023]另外,由于终端与服务器之间的请求响应是通过经过工厂模式封装的远程服务调用接口,因此,远程调用技术或服务器支持的协议版本发生变化时,均不会涉及到远程服务调用接口的改变,这使得终端侧支持服务的在线升级,当然,终端侧即便与服务器的版本协议不进行同步升级,也可以确保服务的客户端与服务端之间的协议版本兼容性。
[0024]在上述技术方案中,优选地,所述处理单元具体用于:获取所述请求中包括的协议版本,根据所述协议版本对所述请求进行解析,以读取所述请求中包括的其他信息,其中,所述其他信息包括:应用域、请求头和请求体中的任一种信息。
[0025]在该技术方案中,通过获取请求中的协议版本,可以使服务器使用正确的协议版本对该请求进行解析,以读取出终端发出的请求中的其他信息,这为服务器对终端的请求做出及时正确的响应奠定了必要的基础。
[0026]在上述技术方案中,优选地,所述处理单元具体还用于:根据所述请求中包括的所述协议版本和/或所述应用域,将所述请求分发至至少一个服务处理器,并控制所述至少一个服务处理器按照预设顺序依次对所述请求进行处理。
[0027]在该技术方案中,通过根据请求中包括的协议版本和/或应用域,可以将该请求分发至与该请求相对应的至少一个服务处理器,并使该至少一个服务处理器按照链的请求处理机制对该请求依次进行处理,以避免将该请求分发至一个综合服务处理器进行处理,从而提高请求的处理速率和正确率;当然,由于每个请求对应一组不同的服务处理器而非一个固定的综合的服务处理器,因此,这提高了远程调用的灵活性,也使得远程调用具有扩展性。
[0028]通过上述技术方案,可以解除应用与远程服务调用技术之间的耦合,使应用可以透明的切换远程调用技术,保证服务远程调用的灵活性和扩展性,并确保服务的客户端与服务端之间的协议版本兼容性。

【专利附图】

【附图说明】
[0029]图1示出了根据本发明的实施例的远程服务请求方法的流程示意图;
[0030]图2示出了根据本发明的实施例的远程服务响应方法的流程示意图;
[0031]图3示出了根据本发明的实施例的远程服务请求装置的结构示意图;
[0032]图4示出了根据本发明的实施例的远程服务响应装置的结构示意图;
[0033]图5A示出了根据本发明的实施例的由终端和服务器组成的远程服务系统的结构示意图;
[0034]图5B示出了根据本发明的实施例的终端和服务器之间的请求、响应的处理过程示意图;
[0035]图5C示出了根据本发明的实施例的由服务器对终端的请求进行分发的过程示意图。

【具体实施方式】
[0036]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0037]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0038]图1示出了根据本发明的实施例的远程服务请求方法的流程示意图。
[0039]如图1所示,根据本发明的实施例的远程服务请求方法,包括:步骤102,根据接收到的接口创建命令,使用工厂模式在所述终端上创建远程服务调用接口 ;步骤104,通过所述远程服务调用接口向服务器发送请求。
[0040]在该技术方案中,通过使用工厂模式在终端(客户端)上创建远程服务调用接口,可以对服务调用的各种细节处理,包括远程调用技术、请求参数、返回结果、执行时间、错误码、错误信息等信息的处理,以使应用程序的调用更加透明和方便,另外,由于采用工厂模式将远程调用技术的选择进行了封装,这使得应用程序与远程服务调用技术之间完全解耦,使终端与服务器之间的远程调用技术的扩展和切换变得非常容易。
[0041]在上述技术方案中,优选地,所述请求包括以下信息中的至少一种:协议版本、应用域、请求头和请求体。
[0042]在该技术方案中,协议版本用于使服务器解析请求信息,可以使服务器明确客户端的请求的所属协议版本,以使服务器可以兼容不同协议版本的请求,并将不同版本的协议请求转发至不同的版本服务;应用域用于使服务器区分不同的应用程序,便于服务器对客户端不同的应用程序的请求进行准确转发;请求头保存了请求的控制信息,包括请求命令、同步异步等,请求体保存请求的数据信息,因此,通过对请求头进行扩展,可以满足个性化的需求,提高远程调用的灵活性,例如:对客户端进行服务鉴权时,客户端可以在请求头中加入token(标识)信息,以由服务器调用统一的服务入口进行鉴权,然后再分发给各个具体的服务,避免通过各个服务鉴权的问题,降低系统的耦合度,提升服务的响应能力。
[0043]图2示出了根据本发明的实施例的远程服务响应方法的流程示意图。
[0044]如图2所示,根据本发明的实施例的远程服务响应方法,包括:步骤202,接收所述终端的请求;步骤204,根据所述请求中包括的信息,对所述请求进行处理,并将处理结果通过所述远程服务调用接口返回至所述终端,以响应所述请求,其中,所述处理结果包括:响应头和响应体,以及所述响应头包括:所述请求的执行信息,所述响应体包括:所述请求的数据信息。
[0045]在该技术方案中,该处理结果中的响应头保存了请求的执行信息,包括错误码、错误信息、执行时间等,响应体保存了请求的数据信息;响应头采用key-value (哈希结构)的结构,可以由应用程序进行扩展,响应体的结构完全由应用程序决定,而通过将处理结果分为响应头和响应体返回至终端,则可以使终端用户更加清楚请求的整个处理过程和处理结果,有利于提高用户的使用体验。
[0046]另外,由于终端与服务器之间的请求响应是通过经过工厂模式封装的远程服务调用接口,因此,远程调用技术或服务器支持的协议版本发生变化时,均不会涉及到远程服务调用接口的改变,这使得终端侧支持服务的在线升级,当然,终端侧即便与服务器的版本协议不进行同步升级,也可以确保服务的客户端与服务端之间的协议版本兼容性。
[0047]在上述技术方案中,优选地,所述根据所述请求中包括的信息,对所述请求进行处理,具体包括:获取所述请求中包括的协议版本,根据所述协议版本对所述请求进行解析,以读取所述请求中包括的其他信息,其中,所述其他信息包括:应用域、请求头和请求体中的任一种信息。
[0048]在该技术方案中,通过获取请求中的协议版本,可以使服务器使用正确的协议版本对该请求进行解析,以读取出终端发出的请求中的其他信息,这为服务器对终端的请求做出及时正确的响应奠定了必要的基础。
[0049]在上述技术方案中,优选地,所述根据所述请求中包括的信息,对所述请求进行处理,具体还包括:根据所述请求中包括的所述协议版本和/或所述应用域,将所述请求分发至至少一个服务处理器,并控制所述至少一个服务处理器按照预设顺序依次对所述请求进行处理。
[0050]在该技术方案中,通过根据请求中包括的协议版本和/或应用域,可以将该请求分发至与该请求相对应的至少一个服务处理器,并使该至少一个服务处理器按照链的请求处理机制对该请求依次进行处理,以避免将该请求分发至一个综合服务处理器进行处理,从而提高请求的处理速率和正确率;当然,由于每个请求对应一组不同的服务处理器而非一个固定的综合的服务处理器,因此,这提高了远程调用的灵活性,也使得远程调用具有扩展性。
[0051]图3示出了根据本发明的实施例的远程服务请求装置的结构示意图。
[0052]如图3所示,根据本发明的实施例的远程服务请求装置300,包括:创建单元302,根据接收到的接口创建命令,使用工厂模式在所述终端上创建远程服务调用接口 ;发送单元304,通过所述远程服务调用接口向服务器发送请求。
[0053]在该技术方案中,通过使用工厂模式在终端(客户端)上创建远程服务调用接口,可以对服务调用的各种细节处理,包括远程调用技术、请求参数、返回结果、执行时间、错误码、错误信息等信息的处理,以使应用程序的调用更加透明和方便,另外,由于采用工厂模式将远程调用技术的选择进行了封装,这使得应用程序与远程服务调用技术之间完全解耦,使终端与服务器之间的远程调用技术的扩展和切换变得非常容易。
[0054]在上述技术方案中,优选地,所述请求包括以下信息中的至少一种:协议版本、应用域、请求头和请求体。
[0055]在该技术方案中,协议版本用于使服务器解析请求信息,可以使服务器明确客户端的请求的所属协议版本,以使服务器可以兼容不同协议版本的请求,并将不同版本的协议请求转发至不同的版本服务;应用域用于使服务器区分不同的应用程序,便于服务器对客户端不同的应用程序的请求进行准确转发;请求头保存了请求的控制信息,包括请求命令、同步异步等,请求体保存请求的数据信息,因此,通过对请求头进行扩展,可以满足个性化的需求,提高远程调用的灵活性,例如:对客户端进行服务鉴权时,客户端可以在请求头中加入token (标识)信息,以由服务器调用统一的服务入口进行鉴权,然后再分发给各个具体的服务,避免通过各个服务鉴权的问题,降低系统的耦合度,提升服务的响应能力。
[0056]图4示出了根据本发明的实施例的远程服务响应装置的结构示意图。
[0057]如图4所示,根据本发明的实施例的远程服务响应装置400,包括:接收单元402,接收所述终端的请求;处理单元404,根据所述请求中包括的信息,对所述请求进行处理,并将处理结果通过所述远程服务调用接口返回至所述终端,以响应所述请求,其中,所述处理结果包括:响应头和响应体,以及所述响应头包括:所述请求的执行信息,所述响应体包括:所述请求的数据信息。
[0058]在该技术方案中,该处理结果中的响应头保存了请求的执行信息,包括错误码、错误信息、执行时间等,响应体保存了请求的数据信息;响应头采用key-value (哈希结构)的结构,可以由应用程序进行扩展,响应体的结构完全由应用程序决定,而通过将处理结果分为响应头和响应体返回至终端,则可以使终端用户更加清楚请求的整个处理过程和处理结果,有利于提高用户的使用体验。
[0059]另外,由于终端与服务器之间的请求响应是通过经过工厂模式封装的远程服务调用接口,因此,远程调用技术或服务器支持的协议版本发生变化时,均不会涉及到远程服务调用接口的改变,这使得终端侧支持服务的在线升级,当然,终端侧即便与服务器的版本协议不进行同步升级,也可以确保服务的客户端与服务端之间的协议版本兼容性。
[0060]在上述技术方案中,优选地,所述处理单元404具体用于:获取所述请求中包括的协议版本,根据所述协议版本对所述请求进行解析,以读取所述请求中包括的其他信息,其中,所述其他信息包括:应用域、请求头和请求体中的任一种信息。
[0061]在该技术方案中,通过获取请求中的协议版本,可以使服务器使用正确的协议版本对该请求进行解析,以读取出终端发出的请求中的其他信息,这为服务器对终端的请求做出及时正确的响应奠定了必要的基础。
[0062]在上述技术方案中,优选地,所述处理单元404具体还用于:根据所述请求中包括的所述协议版本和/或所述应用域,将所述请求分发至至少一个服务处理器,并控制所述至少一个服务处理器按照预设顺序依次对所述请求进行处理。
[0063]在该技术方案中,通过根据请求中包括的协议版本和/或应用域,可以将该请求分发至与该请求相对应的至少一个服务处理器,并使该至少一个服务处理器按照链的请求处理机制对该请求依次进行处理,以避免将该请求分发至一个综合服务处理器进行处理,从而提高请求的处理速率和正确率;当然,由于每个请求对应一组不同的服务处理器而非一个固定的综合的服务处理器,因此,这提高了远程调用的灵活性,也使得远程调用具有扩展性。
[0064]图5A示出了根据本发明的实施例的由终端和服务器组成的远程服务系统的结构示意图;图5B示出了根据本发明的实施例的终端和服务器之间的请求、响应的处理过程示意图;图5C示出了根据本发明的实施例的由服务器对终端的请求进行分发的过程示意图。
[0065]下面将结合图5A至图5C详细说明本发明的技术方案:
[0066]如图5A所示,由终端和服务器组成的远程服务系统500包括:终端502和服务器504,其中,终端502包括:协议模块5022、请求模块5024 ;服务器504包括:响应模块5042、服务分发模块5044,通过远程服务系统500能够非常方便地实现远程服务的调用,满足远程服务调用的灵活性、扩展性,且使使用不同应用程序的终端502和服务器504实现了远程调用技术的完全解耦,使应用程序能够更专注于自身的业务逻辑。
[0067]下面将详细介绍远程服务系统500的特征:
[0068]1、通用的服务调用协议设计,保证了远程服务系统500的稳定性,并且能够使用各种远程调用技术,同时提高了应用程序的灵活性扩展能力。
[0069]2、封装、简化了服务器504调用的各种细节处理,包括对远程调用技术、请求参数、返回结果、执行时间、错误码、错误信息等信息的处理,使调用更加透明和方便。
[0070]3、服务器504在分发服务请求时,基于链的请求处理机制,使应用程序的服务端,可以非常容易地扩展对服务请求的应用逻辑的处理能力。
[0071]4、基于插件机制的请求预处理和后处理,可以非常容易的扩展不同应用的个性化需求,如服务鉴权、数据权限控制、请求日志记录、请求次数统计、请求转发、请求失败报警等,类似于AOP (Aspect Oriented Programming,面向方面编程)技术。
[0072]5、支持协议版本和应用域,使来自不同版本的不同应用程序的请求,可以被正确地分发到相应版本的服务上。
[0073]下面将详细介绍远程服务系统500的工作原理:
[0074]1、应用通讯协议
[0075]协议分请求和响应两个部分。
[0076]请求模块5024将请求分为协议版本、应用域、请求头和请求体,协议版本用于服务端解析请求信息,应用域用于区分不同的应用,便于服务端转发请求,请求头保存了请求的控制信息,包括请求命令、同步异步等,请求体保存了请求的数据信息。请求头采用key-value的结构,可以由应用进行扩展,请求体的结构完全由应用决定。
[0077]响应模块5042将请求的响应部分分为响应头和响应体,其中,响应头保存了返回的执行信息,包括错误码、错误信息、执行时间等,响应体保存了返回的数据信息。响应头采用key-value的结构,可以由应用进行扩展,响应体的结构完全由应用决定。
[0078]协议模块5022将协议以JSON为默认传输格式,因为协议格式对于应用是透明的,所以也可以替换为XML或其他自定义的格式。
[0079]2、远程服务的调用机制(即终端和服务器之间的请求、响应的处理过程,如图5B所示)
[0080]在终端502侧:
[0081 ] 利用工厂模式,创建远程服务调用接口,服务请求方通过该接口,将服务请求发送到服务端。
[0082]远程服务调用接口的具体实现过程取决于终端502与服务器504之间采用的远程调用技术,而远程调用技术的选择通过工厂进行了封装,与服务请求方完全解耦,使远程调用技术的扩展和切换变得非常容易。
[0083]在服务器504侧:
[0084]服务器504在得到请求后,会先检查协议版本,然后使用相应版本的协议解析,获取请求中的应用域、请求头和请求体等信息。
[0085]然后基于插件机制,进行服务请求的预处理,例如服务鉴权、数据权限控制、异步分发等。
[0086]预处理之后,对于需要执行的请求,将交给服务器504的分发机制,以对请求进行处理。
[0087]处理完毕后,仍会插件机制对该请求进行服务请求的后处理,例如日志记录、请求统计、请求转发、失败报警等。
[0088]最后,根据返回的响应头和响应体,将数据返回给终端502。
[0089]3、服务的分发模块5044的分发机制(其具体过程如图5C所示)
[0090]服务分发模块5044,在得到服务请求后,会根据请求中的应用域和协议版本,将请求发送给相应版本的服务处理器。
[0091]服务处理器是一组实现了服务处理接口的类,需要应用的服务方进行实现,并声明在配置文件当中,以配合应用和版本控制。
[0092]调用服务处理器时,采用基于链的请求处理机制,使每个请求可以经过多个服务处理器进行处理,便于增加新的应用处理逻辑。
[0093]服务请求处理完毕,最终会根据协议,进行返回结果的打包。对于异常情况,返回结果中会包含错误码和错误信息。
[0094]以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,可以解除应用与远程服务调用技术之间的耦合,使应用可以透明的切换远程调用技术,保证服务远程调用的灵活性和扩展性,并确保服务的客户端与服务端之间的协议版本兼容性。
[0095]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种远程服务请求方法,用于终端,其特征在于,包括: 根据接收到的接口创建命令,使用工厂模式在所述终端上创建远程服务调用接口 ; 通过所述远程服务调用接口向服务器发送请求。
2.根据权利要求1所述的远程服务请求方法,其特征在于, 所述请求包括以下信息中的至少一种:协议版本、应用域、请求头和请求体。
3.—种远程服务响应方法,用于服务器,其特征在于,所述服务器与权利要求1中的终端相连接,所述方法包括: 接收所述终端的请求; 根据所述请求中包括的信息,对所述请求进行处理,并将处理结果通过所述远程服务调用接口返回至所述终端,以响应所述请求,其中,所述处理结果包括:响应头和响应体,以及所述响应头包括:所述请求的执行信息,所述响应体包括:所述请求的数据信息。
4.根据权利要求3所述的远程服务响应方法,其特征在于, 所述根据所述请求中包括的信息,对所述请求进行处理,具体包括: 获取所述请求中包括的协议版本,根据所述协议版本对所述请求进行解析,以读取所述请求中包括的其他信息,其中,所述其他信息包括:应用域、请求头和请求体中的任一种信息。
5.根据权利要求4所述的远程服务响应方法,其特征在于, 所述根据所述请求中包括的信息,对所述请求进行处理,具体还包括: 根据所述请求中包括的所述协议版本和/或所述应用域,将所述请求分发至至少一个服务处理器,并控制所述至少一个服务处理器按照预设顺序依次对所述请求进行处理。
6.一种远程服务请求装置,用于终端,其特征在于,包括: 创建单元,根据接收到的接口创建命令,使用工厂模式在所述终端上创建远程服务调用接口 ; 发送单元,通过所述远程服务调用接口向服务器发送请求。
7.根据权利要求6所述的远程服务请求装置,其特征在于, 所述请求包括以下信息中的至少一种:协议版本、应用域、请求头和请求体。
8.—种远程服务响应装置,用于服务器,其特征在于,所述服务器与权利要求6中的终端相连接,所述装置包括: 接收单元,接收所述终端的请求; 处理单元,根据所述请求中包括的信息,对所述请求进行处理,并将处理结果通过所述远程服务调用接口返回至所述终端,以响应所述请求,其中,所述处理结果包括:响应头和响应体,以及所述响应头包括:所述请求的执行信息,所述响应体包括:所述请求的数据信肩、O
9.根据权利要求8所述的远程服务响应装置,其特征在于, 所述处理单元具体用于: 获取所述请求中包括的协议版本,根据所述协议版本对所述请求进行解析,以读取所述请求中包括的其他信息,其中,所述其他信息包括:应用域、请求头和请求体中的任一种信息。
10.根据权利要求9所述的远程服务响应装置,其特征在于, 所述处理单元具体还用于: 根据所述请求中包括的所述协议版本和/或所述应用域,将所述请求分发至至少一个服务处理器,并控制所述至少一个服务处理器按照预设顺序依次对所述请求进行处理。
【文档编号】H04L29/08GK104410702SQ201410742949
【公开日】2015年3月11日 申请日期:2014年12月8日 优先权日:2014年12月8日
【发明者】徐铭 申请人:畅捷通信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1