一种远程过程调用方法和系统技术方案

技术编号:4155300 阅读:236 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种远程过程调用方法和系统,包括:通信模块,用于为RPC提供底层通信机制;序列化模块,用于对传输的消息进行序列化和反序列化;调度模块,用于对整个RPC调用进行调度,包括对异步调用的管理、超时机制、事务机制;编译模块,用于为接口定义文件(IDL)、用户头文件、桩(stub)文件三者之间的转换提供支持。克服了Web?Service在效率,异步调用方面的不足,并且与具有平台无关,用户代码中心简单易用等特点。

Remote procedure call method and system

The invention discloses a remote procedure call system and method, communication module for providing communication mechanism for RPC; serialization module, serialize and deserialize for transmission of messages; scheduling module for scheduling the RPC calls, including asynchronous call management, timeout mechanism, transaction mechanism; compile module for interface definition file (IDL), user header files, file conversion between pile (stub) of the three support. Overcome Web? Service is inefficient in terms of asynchronous invocation, and has nothing to do with platform independence, user code Center, simple and easy to use, and so on.

【技术实现步骤摘要】

本专利技术涉及IPTV(Internet Protocol Television,交互式网络电视)技术,尤其 涉及网元之间的通信技术。
技术介绍
IPTV即交互式网络电视,是一种利用宽带有线电视网,集互联网、多媒体、通讯等 多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。用户 在家中可以有两种方式享受IPTV服务(l)计算机,(2)网络机顶盒+普通电视机)。它能 够很好地适应当今网络飞速发展的趋势,充分有效地利用网络资源。IPTV既不同于传统的 模拟式有线电视,也不同于经典的数字电视。因为,传统的和经典的数字电视都具有频分 制、定时、单向广播等特点;尽管经典的数字电视相对于模拟电视有许多技术革新,但只是 信号形式的改变,而没有触及媒体内容的传播方式。 IPTV是利用计算机或机顶盒+电视完成接收视频点播节目、视频广播及网上冲浪 等功能。它采用高效的视频压縮技术,使视频流传输带宽在800Kb/s时可以有接近DVD的 收视效果(通常DVD的视频流传输带宽需要3Mb/s),对今后开展视频类业务如因特网上视 频直播、远距离真视频点播、节目源制作等来讲,有很强的优势,是一个全新的技术概念。 现有的IPTV系统中,网元之间的通信往往采用Web Service的模式,或者是自定 义的通信协议。 Web Service的模式的缺点是效率问题,虽然Web Service能够很好的解决异构问 题,但是对于电信级应用,对通信的要求体现在高效,异步等方面,这些都是Web Service做 不到的;而自定义协议也存在开发成本,协议的稳定性等问题。 Web Service的一个缺点就是同步调用,这是使用http协议的结果,假如服务器 端是一个长过程的调用,那么Web Service就得阻塞在那里。为了避免这种情况,可以让 Web Service立即返回,并在调用完成之后回调,但是这种方式增加了程序设计的复杂度。 因此,随着数字电视技术的发展,如何提高异步调用效率,成为急待解决的问题。
技术实现思路
本专利技术目的在于提供一种远程过程调用RPC(Remote Procedlure Call)系统,克 服了 WebService在效率,异步调用方面的不足,并且具有与平台无关,用户代码中心简单 易用等特点。 为解决本专利技术的技术问题,本专利技术公开一种远程过程调用系统,包括通信模块,序列化模块,调度模块和编译模块,其中,所述序列化模块,调度模块和编译模块均与所述通信模块连接,通过所述通信模块与其他通信设备通信,其中 所述通信模块,用于为RPC提供底层通信机制; 所述序列化模块,用于对传输的消息进行序列化和反序列化; 所述调度模块,用于对整个RPC调用进行调度,包括对异步调用的管理、超时机制、事务机制; 所述编译模块,用于为接口定义文件(IDL)、用户头文件、桩(stub)文件三者之间 的转换提供支持。 较优的,所述底层通信机制包括传输控制协议(TCP)和流控制传输协议(SCTP)。 较优的,所述编译模块用于编译头文件为IDL,再由IDL生成客户端和服务器端的 桩。 较优的,所述编译模块用于将头文件编译为接口定义语言文件、客户端桩代码和 服务器端桩代码;用于将接口定义语言文件生成Protocol Buffer的序列化代码,用于将 序列化代码和服务器端桩代码,客户端桩代码分别编译成为服务器端桩和客户端桩,其中 所述客户代码和服务器代码分别链接自己的桩,成为完整的客户端程序和服务器端程序。 为解决本专利技术的技术问题,本专利技术还公开一种远程过程调用方法,其中,包括 对传输的消息进行序列化和反序列化; 在接口定义文件(IDL)、用户头文件、桩(stub)文件三者之间的进行转换; 对整个RPC调用进行调度,包括对异步调用的管理、超时机制、事务机制。 较优的,所述在接口定义文件(IDL)、用户头文件、桩(stub)文件三者之间的进行 转换具体包括 编译头文件为IDL,再由IDL生成客户端和服务器端的桩。 较优的,所述在接口定义文件(IDL)、用户头文件、桩(stub)文件三者之间的进行 转换具体包括 将头文件编译为接口定义语言文件、客户端桩代码和服务器端桩代码; 将接口定义语言文件生成Protocol Buffer的序列化代码; 将序列化代码和服务器端桩代码,客户端桩代码分别编译成为服务器端桩和客户 端桩; 其中,所述客户代码和服务器代码分别链接自己的桩,成为完整的客户端程序和服务器端程序。 较优的,还包括 函数调用的所有形参,封装在一个以函数名为基础命名的结构体中,称为根 (root)结构体; 以结构体为单位,做内存的序列化处理; 建立一个哈希表,将结构体类型和内存指针为哈希的key,结构体的内存为哈希的 从根结构体开始遍历,存储所有的子结构体,跳过在哈希表中的结构体,处理至RPC所支持的最基本数据结构为止。 与现有技术相比,本专利技术具有如下有益效果 本专利技术公开一种远程过程调用(RPC)方法和系统,克服了Web Service在效率,异 步调用方面的不足,并且具有与平台无关,用户代码中心简单易用等特点。附图说明 图1为本专利技术实施例的一种基于Google Protocol Buffer的RPC通信系统结构示意图; 图2为本专利技术实施例的RPC在序列化调用参数时的一个示例图; 图3为本专利技术实施例的用户使用RPC的一个示意图; 图4为本专利技术实施例的远程过程调用RPC系统的结构示意图。具体实施例方式本专利技术一种远程过程调用(RPC)方法和系统,克服了 Web Service在效率,异步调 用方面的不足,并且具有与平台无关,用户代码中心简单易用等特点。 远程过程调用RPC协议, 一种通过网络从远程计算机程序上请求服务,而不需 要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP (Transmission ControlProtocol,传输控制协议)或UDP(User Datagram Protocol,用户数据报协议),为 通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使 得开发包括网络分布式多程序在内的应用程序更加容易。 图1为本专利技术实施例的一种基于Google Protocol Buffer的RPC通信系统结构 示意图,该系统包括调用服务器ll,服务器12和客户机13,其中服务器12和客户机13均 与调用服务器11通信连接。调用服务器11内装有服务程序l,服务器12内装有服务程序 2,客户机13内装有客户程序。 其中,调用服务器11处于多个网段,它可以连接客户机13与服务器12,客户机13 想要调用服务器12中服务程序2,但是由于它和服务器12之间没有路由,所以无法调用。 但是通过RPC命名机制的支持,客户机13可以对服务调用服务器11发起调用,由调用服务 器11负责调用服务器12中的服务程序2,并将调用的结果返回给客户机13。 图2为本专利技术实施例的RPC在序列化调用的形式参数时的示例图,假设此调用的 参数只有结构体A,那么序列化必须把结构体A所涉及到得所有内存都保存下来,发给服务 端,RPC的序列化模块42对结构体A进行了遍历,这是一个递归的调用,因为事先不能确本文档来自技高网
...

【技术保护点】
一种远程过程调用系统,其特征在于,包括:通信模块,序列化模块,调度模块和编译模块,其中,所述序列化模块,调度模块和编译模块均与所述通信模块连接,通过所述通信模块与其他通信设备通信,其中所述通信模块,用于为RPC提供底层通信机制;所述序列化模块,用于对传输的消息进行序列化和反序列化;所述调度模块,用于对整个RPC调用进行调度,包括对异步调用的管理、超时机制、事务机制;所述编译模块,用于为接口定义文件(IDL)、用户头文件、桩(stub)文件三者之间的转换提供支持。

【技术特征摘要】
一种远程过程调用系统,其特征在于,包括通信模块,序列化模块,调度模块和编译模块,其中,所述序列化模块,调度模块和编译模块均与所述通信模块连接,通过所述通信模块与其他通信设备通信,其中所述通信模块,用于为RPC提供底层通信机制;所述序列化模块,用于对传输的消息进行序列化和反序列化;所述调度模块,用于对整个RPC调用进行调度,包括对异步调用的管理、超时机制、事务机制;所述编译模块,用于为接口定义文件(IDL)、用户头文件、桩(stub)文件三者之间的转换提供支持。2. 如权利要求l所述的系统,其特征在于,所述底层通信机制包括传输控制协议(TCP) 和流控制传输协议(SCTP)。3. 如权利要求1所述的系统,其特征在于,所述编译模块用于编译头文件为IDL,再由 IDL生成客户端和服务器端的桩。4. 如权利要求3所述的系统,其特征在于,所述编译模块用于将头文件编译为接口定 义语言文件、客户端桩代码和服务器端桩代码;用于将接口定义语言文件生成Protocol Buffer的序列化代码,用于将序列化代码和服务器端桩代码,客户端桩代码分别编译成为 服务器端桩和客户端桩,其中所述客户代码和服务器代码分别链接自己的桩,成为完整的 客户端程序和服务器端程序。5. —种远程过程调用方法,其特征在于,包括 对传输的消息进行序列...

【专利技术属性】
技术研发人员:李昌盛
申请(专利权)人:深圳创维数字技术股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1