实现远程过程调用的方法和客户端装置以及服务器装置制造方法及图纸

技术编号:14487049 阅读:88 留言:0更新日期:2017-01-27 10:43
本发明专利技术提供一种实现远程过程调用的方法和客户端装置以及服务器装置,有助于在处理远程方法调用请求时对于可变对象的处理的准确性并且提高返回请求结果的效率。该方法包括:客户端对方法调用请求进行序列化然后发送给服务器,该方法调用请求中包含方法调用参数信息和预设的对象类定义;所述服务器对所述对象类定义进行反序列化,然后按照所述对象类定义和所述方法调用参数信息处理所述方法调用请求从而得到处理结果,然后将该处理结果按照所述对象类定义进行封装后再进行序列化,再将封装和序列化后的处理结果返回给所述客户端;所述客户端对收到的序列化的处理结果进行反序列化。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别地涉及一种实现远程过程调用的方法和客户端装置以及服务器装置
技术介绍
随着远程过程调用协议RPC(RemoteProcedureCallProtocol)在互联网服务器间信息交互的普遍应用,使得信息并发和处理过程有了飞速进步。RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。在请求信息的数据传输过程中需要进行序列化,可以采用一些序列化服务框架来完成,目前常用的序列化服务框架例如Thrift(相关信息可参考http://thrift.apache.org/tutorial/)等,存在的主要问题是对可变对象的序列化不具备很好的支持,从而导致对象在一方被序列化之后由另一方反序列化时出现不一致的情况,这样一来,被请求方返回的对象内容有可能不满足调用方的需求。
技术实现思路
有鉴于此,本专利技术提供一种实现远程过程调用的方法和客户端装置以及服务器装置,有助于在处理远程方法调用请求时对于可变对象的处理的准确性并且提高返回请求结果的效率。为实现上述目的,根据本专利技术的一个方面,提供了一种处理拣货信息的方法。本专利技术的实现远程过程调用的方法包括:客户端对方法调用请求进行序列化然后发送给服务器,该方法调用请求中包含方法调用参数信息和预设的对象类定义;所述服务器对所述对象类定义进行反序列化,然后按照所述对象类定义和所述方法调用参数信息处理所述方法调用请求从而得到处理结果,然后将该处理结果按照所述对象类定义进行封装后再进行序列化,再将封装和序列化后的处理结果返回给所述客户端;所述客户端对收到的序列化的处理结果进行反序列化。可选地,所述对象类定义是由JSON定义。可选地,所述方法调用请求是基于远程过程调用协议的请求。根据本专利技术的另一方面,提供了一种实现远程过程调用的客户端装置。本专利技术的实现远程过程调用的客户端装置包括:客户端发送模块,用于对方法调用请求进行序列化然后发送给服务器,该方法调用请求中包含方法调用参数信息和预设的对象类定义;客户端接收模块,用于对所述服务器返回的序列化的处理结果进行反序列化;其中所述序列化的处理结果是所述服务器对所述对象格式进行反序列化之后按照所述对象类定义和所述方法调用参数信息处理所述方法调用请求从而得到处理结果然后再将该处理结果按照所述对象类定义进行封装后再进行序列化而得到。可选地,所述对象类定义是由JSON定义。可选地,所述方法调用请求是基于远程过程调用协议的请求。根据本专利技术的又一方面,提供了一种实现远程过程调用的服务器装置。本专利技术的实现远程过程调用的服务器装置包括:服务端接收模块,用于接收客户端发送的序列化的方法调用请求,该方法调用请求中包含方法调用参数信息和预设的对象类定义;处理模块,用于对所述对象类定义进行反序列化,然后按照所述对象类定义和所述方法调用参数信息处理所述方法调用请求从而得到处理结果,然后将该处理结果按照所述对象类定义进行封装后再进行序列化;服务端发送模块,用于封装和序列化后的处理结果返回给所述客户端。可选地,所述对象类定义是由JSON定义。可选地,所述方法调用请求是基于远程过程调用协议的请求。根据本专利技术的技术方案,客户端对方法调用请求进行序列化然后发送给服务器,该方法调用请求中包含方法调用参数信息和预设的对象类定义,服务器对所述对象类定义进行反序列化,然后按照所述对象类定义和所述方法调用参数信息处理所述方法调用请求从而得到处理结果,然后将该处理结果按照所述对象类定义进行封装后再进行序列化,再将封装和序列化后的处理结果返回给所述客户端,所述客户端对收到的序列化的处理结果进行反序列化,这种方式对于客户端发来的方法调用请求,服务器仅对其中的对象类定义进行反序列化,并不对方法调用参数信息进行反序列化,这是因为服务器已经得到对象类定义,能够直接定位到需要返回对象的类型和结果,这种做法有助于保证向方法调用方返回其所需的对象信息,还能够减少反序列化的工作量,并减少生成静态代码和静态数据类型等操作。另外按照上述步骤的做法,对于同一个方法,可以灵活定义需要返回的对象信息,这种方式在现实中,对于可变对象,无需重复编写方法代码,可以采用已有方法代码,再添加不同的对象类定义即可,这样无需另行编写方法代码,减轻开发人员工作量。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施方式的实现远程过程调用的方法的主要步骤的示意图;图2是根据本专利技术实施方式的实现远程过程调用的客户端装置的基本组成部分的示意图;图3是根据本专利技术实施方式的实现远程过程调用的服务器装置的基本组成部分的示意图。具体实施方式以下结合附图对本专利技术的示范性实施方式做出说明,其中包括本专利技术实施方式的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施方式做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。在本专利技术的实施方式中,客户端在向服务器发送方法调用请求时,将预设的对象类定义一并发送给服务器,使服务器根据该对象类定义进行返回结果的封装和序列化。以下结合图1加以说明,图1是根据本专利技术实施方式的实现远程过程调用的方法的主要步骤的示意图。如图1所示,该方法主要包括如下的步骤S11至步骤S17。步骤S11:客户端对方法调用请求进行序列化然后发送给服务器。该方法调用请求中包含方法调用参数信息和预设的对象类定义。可采用JSON(JSON)来定义,JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。本专利技术的实施方式中,可采用的JSON文件形式例如:{\类型\:\此处指包名\,\名称\:\此处指类名\,\别名\:[\此处指别名,用于动态生成对象\],\作用域\:[{\名称\:\value\,\类型\:\long\本文档来自技高网...
实现远程过程调用的方法和客户端装置以及服务器装置

【技术保护点】
一种实现远程过程调用的方法,其特征在于,包括:客户端对方法调用请求进行序列化然后发送给服务器,该方法调用请求中包含方法调用参数信息和预设的对象类定义;所述服务器对所述对象类定义进行反序列化,然后按照所述对象类定义和所述方法调用参数信息处理所述方法调用请求从而得到处理结果,然后将该处理结果按照所述对象类定义进行封装后再进行序列化,再将封装和序列化后的处理结果返回给所述客户端;所述客户端对收到的序列化的处理结果进行反序列化。

【技术特征摘要】
1.一种实现远程过程调用的方法,其特征在于,包括:客户端对方法调用请求进行序列化然后发送给服务器,该方法调用请求中包含方法调用参数信息和预设的对象类定义;所述服务器对所述对象类定义进行反序列化,然后按照所述对象类定义和所述方法调用参数信息处理所述方法调用请求从而得到处理结果,然后将该处理结果按照所述对象类定义进行封装后再进行序列化,再将封装和序列化后的处理结果返回给所述客户端;所述客户端对收到的序列化的处理结果进行反序列化。2.根据权利要求1所述的实现远程过程调用的方法,其特征在于,所述对象类定义是由JSON定义。3.根据权利要求1或2所述的实现远程过程调用的方法,其特征在于,所述方法调用请求是基于远程过程调用协议的请求。4.一种实现远程过程调用的客户端装置,其特征在于,包括:客户端发送模块,用于对方法调用请求进行序列化然后发送给服务器,该方法调用请求中包含方法调用参数信息和预设的对象类定义;客户端接收模块,用于对所述服务器返回的序列化的处理结果进行反序列化;其中所述序列化的处理结果是所述服务器对所述对象格式进行反序列...

【专利技术属性】
技术研发人员:刘恩英
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1