发明名称 |
基于TCP/ UDP的远程过程调用RPC的方法 |
摘要 |
基于传输控制协议TCP/用户数据报协议UDP的远程过程调用RPC的方法,用于包括服务器端和客户端的网络系统;所述客户端借助基于TCP/ UDP的套接字Socket与服务器端建立链接。本发明通过底层方法实现了远程方法调用,能够应用于远程数据访问,实现数据库的逻辑业务中间件。本发明涉及到的远程方法访问与具体应用无关,只要能够开发基于TCP/UDP的应用的开发语言,开发工具都能够实现远程方法的调用,服务器端与客户端可以使用不同的开发工具和语言分别实现。本发明极大的简化了系统的部署和实现,对于架构一个客户端Client/服务器端Server模式应用起到了基础框架的作用。 |
申请公布号 |
CN103116520B |
申请公布日期 |
2016.07.06 |
申请号 |
CN201210432628.X |
申请日期 |
2012.11.02 |
申请人 |
深圳键桥通讯技术股份有限公司 |
发明人 |
资浩;袁训明;李月彬 |
分类号 |
G06F9/46(2006.01)I;H04L29/06(2006.01)I |
主分类号 |
G06F9/46(2006.01)I |
代理机构 |
深圳市睿智专利事务所 44209 |
代理人 |
陈鸿荫 |
主权项 |
一种基于传输控制协议TCP/用户数据报协议UDP的远程过程调用RPC的方法,用于包括服务器端和客户端的网络系统;所述客户端借助基于传输控制协议TCP/用户数据报协议UDP的套接字Socket与服务器端建立链接;其特征在于所述方法包括如下步骤:在服务器端建立系统对象池和系统线程池;所述系统对象池内保存有用于完成过程调用的系统接口对象,所述系统接口对象被分配唯一的对象标识码ID,以及唯一的接口标识码ID;从而根据对象标识码ID和接口标识码ID能够唯一地确定系统接口对象;所述系统线程池包括至少两个能够同时并行工作的工作线程;从而令服务器端与客户端能够按照以下步骤完成远程过程调用RPC,A. 客户端将调用主体输入的过程调用数据封装为调用数据包,该调用数据包包括对象标识码ID、接口标识码ID和用于完成过程调用需要的设置参数;B. 步骤A所述客户端借助套接字Socket建立与服务器端的链接;C. 客户端将步骤A所述调用数据包发送至服务器端;D. 服务器端根据收到的调用数据包中的对象标识码ID和接口标识码ID在系统对象池中找到相应的系统接口对象以及接口对象执行方法;E. 服务器端在对象池中找到空闲的工作线程,将步骤D找到的系统接口对象、接口对象执行方法和所述调用数据包中的设置参数输入至工作线程,启动工作线程执行系统接口对象的处理过程;F. 服务器端将工作线程执行系统接口对象的结果以返回参数包的形式发送至客户端;G. 客户端根据收到的返回参数包针对调用主体执行相应操作;服务器端的所述线程池中还包括连接工作线程,那么所述步骤D包括如下分步骤,D21. 启动连接工作线程;D22. 将接收到调用数据包排序,并依次对每个调用数据包执行分步骤D23,分步骤D24,以及步骤E,步骤F;D23. 判断收到的调用数据包中的对象标识ID和接口标识码ID是否合法;如果判断合法进行分步骤D24;如果判断不合法将过程调用不成功的结果以返回参数包的形式发送至客户端,执行步骤G;D24. 服务器端根据步骤C收到的调用数据包中的对象标识码ID和接口标识码ID在系统对象池中找到相应的系统接口对象以及接口对象执行方法;进而所述步骤E包括如下分步骤,E1. 服务器端搜索对象池中是否有空闲的工作线程,如果有空闲的工作线程,执行分步骤E2;如果没有空闲的工作线程,将调用数据包保持在连接工作线程的排序队列中,返回分步骤D22;E2. 服务器端在对象池中找到空闲的工作线程,将步骤D24找到的系统接口对象、需要执行的接口对象执行方法和所述调用数据包中的设置参数输入至工作线程,启动工作线程执行系统接口对象的处理过程。 |
地址 |
518057 广东省深圳市南山区高新技术工业村R3-A栋6楼 |