客户端与服务端进行通讯的方法及装置与流程

文档序号:14722322发布日期:2018-06-17 20:46阅读:188来源:国知局

本发明涉及通讯技术领域,特别是涉及一种客户端与服务端进行通讯的方法及装置。



背景技术:

目前客户端与服务端传输数据中,常用的做法是异步调用超文本传输协议(HyperTextTransferProtocol,简写HTTP)请求,传送JavaScript对象表示法(JavaScriptObjectNotation,简写JSON)格式的数据。客户端领域有很多HTTP框架可以实现HTTP的请求,例如Volley、HttpClient等等。而在web后端领域,有大量的模型-视图-控制器(ModelViewController,简写MVC)框架,例如Struts,Springmvc等等;这些工具都给开发者带来了极大的便利,客户端和服务端之间的数据传输一般采用的是JSON数据格式,双方定义好相关接口和参数后进行开发。

但是,客户端需要为每个接口编写大量繁琐的与业务不是太相关的代码,例如JSON数据解析、出错处理等等。



技术实现要素:

本发明主要解决的技术问题是提供一种客户端与服务端进行通讯的方法及装置,能够减少开发者处理网络数据的大量代码,大大提高开发效率。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种客户端与服务端进行通讯的方法,包括:根据客户端与服务端的接口协议,预设远程过程调用框架,其中,所述远程过程调用框架包括各类接口文件,每个所述接口文件内分别配置有远程过程调用对象,且在所述远程过程调用对象目录下进一步配置参数对象和对应的结果对象;接收所述客户端发起的、进行远程过程调用的请求,所述远程过程调用框架调取匹配的远程过程调用对象,以把响应的参数对象的数据转换成网络数据,并发送;接收所述服务端响应请求并回传的响应数据,所述远程过程调用对象接收响应数据并将所述响应数据转换成结果对象数据,响应给所述客户端。

其中,所述每个所述接口文件内分别配置远程过程调用对象的步骤,包括:在每个所述接口文件内分别为每一个远程过程调用对象指定唯一的ID,以通过所述ID获取所述远程过程调用对象;所述在所述远程过程调用对象目录下进一步配置参数对象和对应的结果对象的步骤,包括:在所述远程过程调用对象目录下,为所述参数对象和对应的所述结果对象分别指定唯一的ID。

其中,所述方法还包括:配置是否使用缓存模块,并配置缓存的策略。

其中,所述方法还包括:当配置结合缓存使用异步模式时,若所述缓存模块中保存有所述响应数据,则所述远程过程调用对象直接将所述响应数据转换成结果对象数据,响应给所述客户端。

其中,所述方法还包括:当配置为使用同步模式,并设置超时值时,则进入阻塞模式,在所述超时值之内,若接收到所述服务端回传的所述响应数据,则将所述响应数据转换成结果对象数据,并响应给所述客户端,若没有接收到所述服务端回传的所述响应数据,则将标记超时的无数据响应给所述客户端。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种客户端与服务端进行通讯的装置,所述装置包括:框架预设模块,用于根据客户端与服务端的接口协议,预设远程过程调用框架,其中,所述远程过程调用框架包括各类接口文件,每个所述接口文件内分别配置有远程过程调用对象,且在所述远程过程调用对象目录下进一步配置参数对象和对应的结果对象;对象调取模块,用于接收所述客户端发起的、进行远程过程调用的请求,所述远程过程调用框架调取匹配的远程过程调用对象,以把响应的参数对象的数据转换成网络数据,并发送;响应数据模块,用于接收所述服务端响应请求并回传的响应数据,所述远程过程调用对象接收响应数据并将所述响应数据转换成结果对象数据,响应给所述客户端。

其中,所述预设模块具体用于在每个所述接口文件内分别为每一个远程过程调用对象指定唯一的ID,以通过所述ID获取所述远程过程调用对象;在所述远程过程调用对象目录下,为所述参数对象和对应的所述结果对象分别指定唯一的ID。

其中,所述装置还包括缓存配置模块,所述缓存配置模块用于配置是否使用缓存模块,并配置缓存的策略。

其中,所述装置还包括第一操作模块,所述第一操作模块用于当配置结合缓存使用异步模式时,若所述缓存模块中保存有所述响应数据,则所述远程过程调用对象直接将所述响应数据转换成结果对象数据,响应给所述客户端。

其中,所述装置还包括第二操作模块,所述第二操作模块用于当配置为使用同步模式,并设置超时值时,则进入阻塞模式,在所述超时值之内,若接收到所述服务端回传的所述响应数据,则将所述响应数据转换成结果对象数据,并响应给所述客户端,若没有接收到所述服务端回传的所述响应数据,则将标记超时的无数据响应给所述客户端。

本发明的有益效果是:区别于现有技术的情况,本发明根据客户端与服务端的接口协议,预设远程过程调用框架,远程过程调用框架包括各类接口文件,每个接口文件内分别配置有远程过程调用对象,且在远程过程调用对象目录下进一步配置参数对象和对应的结果对象;接收客户端发起的、进行远程过程调用的请求,远程过程调用框架调取匹配的远程过程调用对象,以把响应的参数对象的数据转换成网络数据,并发送;接收服务端响应请求并回传的响应数据,远程过程调用对象接收响应数据并将响应数据转换成结果对象数据,响应给客户端。由于通过预设远程过程调用框架,将参数对象数据、结果对象数据与网络数据之间的转换交由远程过程调用对象处理,通过这种方式,能够减少开发者处理网络数据的大量代码,大大提高开发效率,而且,把面向过程的网络处理转换成面向对象的编程模式,便于理解业务逻辑。

附图说明

图1是本发明客户端与服务端进行通讯的方法一实施方式的流程图;

图2是现有技术中客户端与服务端进行通讯的架构示意图;

图3是本发明客户端与服务端进行通讯的方法中远程过程调用框架的总体架构一示意图;

图4是本发明客户端与服务端进行通讯的方法中远程过程调用框架的总体架构另一示意图;

图5是本发明客户端与服务端进行通讯的装置一实施方式的结构示意图;

图6是本发明客户端与服务端进行通讯的一实体装置的结构示意图。

具体实施方式

下面结合附图和实施方式对本发明进行详细说明。

参阅图1,图1是本发明客户端与服务端进行通讯的方法一实施方式的流程图,该包括:

步骤S101:根据客户端与服务端的接口协议,预设远程过程调用框架,其中,远程过程调用框架包括各类接口文件,每个接口文件内分别配置有远程过程调用对象,且在远程过程调用对象目录下进一步配置参数对象和对应的结果对象。

随着当前计算机、或服务器的横向扩展,一台计算机或服务器不能提供所有的应用或业务,因此通常是多台计算机或服务器为客户端提供应用或业务。也即是客户端与多个服务端直接进行交互,交互的信息或数据均是互相之间能够直接解析、识别的信息或数据。通常情况下,服务端变化不是特别大,客户端的形式变化多样,为了与服务端进行通讯,客户端的开发人员除了针对特定的业务进行开发外,还需要编写大量繁琐的、与业务不是太相关的代码。

因此,在本申请中,客户端和服务端首先协商接口协议,在接口协议确定后,预先设置远程过程调用框架,客户端只需要针对具体的业务发出请求,通过远程过程调用框架调用远程过程调用对象即可,细节的过程由远程过程调用对象完成。

请参见图2,图2是现有技术中客户端与服务端进行通讯的架构示意图,从图2中,可以看到,客户端和服务端是直接进行通讯的。

请参见图3,图3是本发明客户端与服务端进行通讯的方法中远程过程调用框架的总体架构示意图,从图3中,可以看到,远程过程调用框架3连接在客户端1和服务端2之间,客户端1和服务端2之间的通讯是通过远程过程调用框架3实现的。远程过程调用框架3包括各类接口文件31,每个接口文件31内分别配置有远程过程调用对象311,而且在远程过程调用对象目录下进一步配置参数对象3111和对应的结果对象3112。每一个远程过程调用对象311可以对应每一个具体的实际应用或业务,因此,通过这种方式,开发人员可以仅仅关注需要开发的应用或业务,将其他与应用或业务无关的代码编写留给远程过程调用对象311。

步骤S102:接收客户端发起的、进行远程过程调用的请求,远程过程调用框架调取匹配的远程过程调用对象,以把响应的参数对象的数据转换成网络数据,并发送。

网络数据可以是指各种符合网络传输的格式、可以直接在网络上进行传输的数据。例如,JSON数据、XML数据等等。

当客户端发起远程过程调用的请求时,远程过程调用框架根据该请求确定需要调用哪个对应的远程过程调用对象,在确定后,调取与该请求匹配的远程过程调用对象,通过该远程过程调用对象把响应该请求的参数对象的数据转换成网络数据,并发送给服务端。因此,参数对象的数据转换成网络数据的任务由客户端移交给远程过程调用对象,从而减少开发者处理网络数据的大量代码,大大提高开发效率,而且,把面向过程的网络处理转换成面向对象的编程模式,便于理解业务逻辑。

步骤S103:接收服务端响应请求并回传的响应数据,远程过程调用对象接收响应数据并将响应数据转换成结果对象数据,响应给客户端。

当服务端响应客户端的请求而回传响应数据时,远程过程调用对象即可以接收该响应数据,并将该响应数据转换成结果对象数据,从而响应给客户端。

响应数据是网络数据,服务器可以识别的,结果对象数据不是网络数据,是客户端可以识别的,因此,远程过程调用对象将服务端回传的响应数据转换成客户端能够识别的结果对象数据,并响应给客户端。

本发明实施方式根据客户端与服务端的接口协议,预设远程过程调用框架,远程过程调用框架包括各类接口文件,每个接口文件内分别配置有远程过程调用对象,且在远程过程调用对象目录下进一步配置参数对象和对应的结果对象;接收客户端发起的、进行远程过程调用的请求,远程过程调用框架调取匹配的远程过程调用对象,以把响应的参数对象的数据转换成网络数据,并发送;接收服务端响应请求并回传的响应数据,远程过程调用对象接收响应数据并将响应数据转换成结果对象数据,响应给客户端。由于通过预设远程过程调用框架,将参数对象数据、结果对象数据与网络数据之间的转换交由远程过程调用对象处理,通过这种方式,能够减少开发者处理网络数据的大量代码,大大提高开发效率,而且,把面向过程的网络处理转换成面向对象的编程模式,便于理解业务逻辑。

其中,每个接口文件内分别配置远程过程调用对象的步骤,包括:在每个接口文件内分别为每一个远程过程调用对象指定唯一的ID,以通过ID获取远程过程调用对象。

在远程过程调用对象目录下进一步配置参数对象和对应的结果对象的步骤,包括:在远程过程调用对象目录下,为参数对象和对应的结果对象分别指定唯一的ID。

每一个远程过程调用对象对应一个应用或业务等,采取措施保证这种一一对应的关系即可,例如:采用列表的形式进行一一对应,采用目录树的形式进行一一对应等。在本实施方式中,远程过程调用对象、参数对象和对应的结果对象分别都有唯一的ID,通过这些唯一的ID,即可分别获取远程过程调用对象、参数对象和对应的结果对象。

其中,远程过程调用对象的子节点是每一个接口的统一资源定位符(UniformResourceLocator,简写URL),远程过程调用对象的目录下需要索引参数(parameter)对象和结果(result)对象。parameter对象可以是JAVA的基本类型,也可以是对象类型,可以是继承关系。result对象可以是JAVA的基本类型,也可以是对象类型,可以是继承关系。

其中,该方法还包括:配置是否使用缓存模块,并配置缓存的策略。在这种情况下,远程过程调用框架的总体架构示意图请参见图4,在图4中,服务端2返回的响应数据可以缓存在缓存模块32中,以备需要时,直接从缓存模块32中读取响应数据。

在此基础上,该方法还包括:当配置结合缓存使用异步模式时,若缓存模块中保存有响应数据,则远程过程调用对象直接将响应数据转换成结果对象数据,响应给客户端。通过这种方式,可以节约用户等待的时间,提高效率。

如果直接配置为使用异步模式,没有设置优先使用缓存数据,则该远程过程调用对象把响客户端请求的参数对象的数据转换成网络数据,发送给服务端后,不再专门等待服务端的响应数据,该远程过程调用对象也可以执行其他客户的请求,当服务端返回响应数据时,该远程过程调用对象接收响应数据并将响应数据转换成结果对象数据,响应给客户端。

实际应用中,在使用异步模式时,可以配置同步模式为错误,即采用同步的思想进行异步的网络请求处理方案,这样配置后,逻辑更加清晰。

其中,该方法还包括:当配置为使用同步模式,并设置超时值时,则进入阻塞模式,在超时值之内,若接收到服务端回传的响应数据,则将响应数据转换成结果对象数据,并响应给客户端,若没有接收到服务端回传的响应数据,则将标记超时的无数据响应给客户端。或者,当超时后,可以读取缓存模块中的响应数据。

本发明中远程过程调用框架属于开放性的、可扩展性框架,各种特性均可以由开发者自己定义配置,使用方面相对自由。

参见图5,图5是本发明客户端与服务端进行通讯的装置一实施方式的结构示意图,本实施方式的装置可以执行上述方法中的步骤,有关内容的详细说明请参见上述方法部分,在此不再赘叙。该装置包括:框架预设模块101、对象调取模块102以及响应数据模块103。

框架预设模块101用于根据客户端与服务端的接口协议,预设远程过程调用框架,其中,远程过程调用框架包括各类接口文件,每个接口文件内分别配置有远程过程调用对象,且在远程过程调用对象目录下进一步配置参数对象和对应的结果对象。

对象调取模块102用于接收客户端发起的、进行远程过程调用的请求,远程过程调用框架调取匹配的远程过程调用对象,以把响应的参数对象的数据转换成网络数据,并发送。

响应数据模块103用于接收服务端响应请求并回传的响应数据,远程过程调用对象接收响应数据并将响应数据转换成结果对象数据,响应给客户端。

本发明实施方式根据客户端与服务端的接口协议,预设远程过程调用框架,远程过程调用框架包括各类接口文件,每个接口文件内分别配置有远程过程调用对象,且在远程过程调用对象目录下进一步配置参数对象和对应的结果对象;接收客户端发起的、进行远程过程调用的请求,远程过程调用框架调取匹配的远程过程调用对象,以把响应的参数对象的数据转换成网络数据,并发送;接收服务端响应请求并回传的响应数据,远程过程调用对象接收响应数据并将响应数据转换成结果对象数据,响应给客户端。由于通过预设远程过程调用框架,将参数对象数据、结果对象数据与网络数据之间的转换交由远程过程调用对象处理,通过这种方式,能够减少开发者处理网络数据的大量代码,大大提高开发效率,而且,把面向过程的网络处理转换成面向对象的编程模式,便于理解业务逻辑。

其中,预设模块具体用于在每个接口文件内分别为每一个远程过程调用对象指定唯一的ID,以通过ID获取远程过程调用对象;在远程过程调用对象目录下,为参数对象和对应的结果对象分别指定唯一的ID。

其中,该装置还包括缓存配置模块,缓存配置模块用于配置是否使用缓存模块,并配置缓存的策略。

其中,该装置还包括第一操作模块,第一操作模块用于当配置结合缓存使用异步模式时,若缓存模块中保存有响应数据,则远程过程调用对象直接将响应数据转换成结果对象数据,响应给客户端。

其中,该装置还包括第二操作模块,第二操作模块用于当配置为使用同步模式,并设置超时值时,则进入阻塞模式,在超时值之内,若接收到服务端回传的响应数据,则将响应数据转换成结果对象数据,并响应给客户端,若没有接收到服务端回传的响应数据,则将标记超时的无数据响应给客户端。

参见图6,图6是本发明客户端与服务端进行通讯的一实体装置的结构示意图。该装置包括:处理器11、存储器12、接收器13、发送器14、数据总线15。

处理器11用于根据客户端与服务端的接口协议,预设远程过程调用框架,其中,所述远程过程调用框架包括各类接口文件,每个所述接口文件内分别配置有远程过程调用对象,且在所述远程过程调用对象目录下进一步配置参数对象和对应的结果对象。

存储器12用于存储处理器11配置好的各类接口文件。

接收器13用于接收所述客户端发起的、进行远程过程调用的请求。

处理器11用于调取存储在存储器12中的、匹配的远程过程调用对象,以把响应的参数对象的数据转换成网络数据,并控制发送器14发送给服务端。

接收器13还用于接收所述服务端响应请求并回传的响应数据,处理器11用于调用远程过程调用对象接收响应数据,并将所述响应数据转换成结果对象数据,控制发送器14响应给所述客户端。

本发明实施方式根据客户端与服务端的接口协议,预设远程过程调用框架,远程过程调用框架包括各类接口文件,每个接口文件内分别配置有远程过程调用对象,且在远程过程调用对象目录下进一步配置参数对象和对应的结果对象;接收客户端发起的、进行远程过程调用的请求,远程过程调用框架调取匹配的远程过程调用对象,以把响应的参数对象的数据转换成网络数据,并发送;接收服务端响应请求并回传的响应数据,远程过程调用对象接收响应数据并将响应数据转换成结果对象数据,响应给客户端。由于通过预设远程过程调用框架,将参数对象数据、结果对象数据与网络数据之间的转换交由远程过程调用对象处理,通过这种方式,能够减少开发者处理网络数据的大量代码,大大提高开发效率,而且,把面向过程的网络处理转换成面向对象的编程模式,便于理解业务逻辑。

其中,处理器11具有用于在每个所述接口文件内分别为每一个远程过程调用对象指定唯一的ID,以通过所述ID获取所述远程过程调用对象;在所述远程过程调用对象目录下,为所述参数对象和对应的所述结果对象分别指定唯一的ID。

其中,处理器11还用于配置是否使用缓存模块,并配置缓存的策略。

其中,处理器11还用于当配置结合缓存使用异步模式时,若所述缓存模块中保存有所述响应数据,则调取所述远程过程调用对象直接将所述响应数据转换成结果对象数据,控制发送器14响应给所述客户端。

其中,处理器11还用于当配置为使用同步模式,并设置超时值时,则进入阻塞模式,在所述超时值之内,若接收器13接收到所述服务端回传的所述响应数据,则将所述响应数据转换成结果对象数据,并控制发送器14响应给所述客户端,若接收器13没有接收到所述服务端回传的所述响应数据,则控制发送器14将标记超时的无数据响应给所述客户端。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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