[发明专利]一种远程过程调用方法、装置、设备及介质有效
申请号: | 201910271974.6 | 申请日: | 2019-04-04 |
公开(公告)号: | CN109981674B | 公开(公告)日: | 2021-08-17 |
发明(设计)人: | 陈俊超 | 申请(专利权)人: | 北京信而泰科技股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F9/54 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 远程 过程 调用 方法 装置 设备 介质 | ||
1.一种远程过程调用装置,其特征在于,所述装置包括:
消息发送模块、消息接收模块、管理模块、网络模块、编解码模块以及代码生成模块;
所述网络模块,用于与对端设备建立连接,并维护所述连接;
所述代码生成模块,用于根据远程过程调用消息模板生成第一代码和第二代码,所述第一代码用于将符合所述远程过程调用消息模板的用户数据封装成远程过程调用请求,所述第二代码用于将解码后的远程过程调用消息解析成符合所述远程过程调用消息模板的用户数据;
所述管理模块,用于向所述消息发送模块发送所述远程过程调用请求;
所述消息发送模块,用于将所述远程过程调用请求封装成数据结构存储在消息队列中,在检测到所述消息队列中有消息需要处理时,从所述消息队列的头部取出第一个远程过程调用请求,并向所述编解码模块发送所述远程过程调用请求;
所述编解码模块,用于对所述远程过程调用请求进行编码,并在所述远程过程调用请求编码后的长度大于预设长度时进行分片,每个分片具有分片标志位,用于表征该分片是否为远程过程调用消息的所有分片中的最后一个分片,然后按照分片向所述消息发送模块发送编码后的数据,以使所述消息发送模块通过所述网络模块向所述对端设备发送所述编码后的数据;
所述管理模块,还用于若需要所述对端设备的响应,则注册消息处理者;
所述消息接收模块,用于监听所述远程过程调用消息,接收到所述远程过程调用消息时,调用所述编解码模块进行解码,向所述管理模块发送解码后的消息,以使所述管理模块根据所述远程过程调用消息的序列号向对应的消息处理者发送解码后的消息。
2.根据权利要求1所述的远程过程调用装置,其特征在于,所述编解码模块具体用于:
若所述远程过程调用请求编码后的长度大于预设长度,则在编码后的长度达到预设长度时,即向所述消息发送模块发送编码后的数据,并将所述分片标志位设置为表征当前分片不是完整远程过程调用消息的所有分片中的最后一片,然后继续执行所述编码步骤,直至编码后的长度不大于所述预设长度时,向所述消息发送模块发送编码后的数据,并将所述分片标志位设置为表征当前分片是完整远程过程调用消息的所有分片中的最后一片。
3.根据权利要求1所述的远程过程调用装置,其特征在于,所述编解码模块具体用于:
所述数据结构为定长数据时,将其编码为数据类型和原始数据;
所述数据结构为非定长数据时,将其编码为数据类型、数据长度和原始数据。
4.根据权利要求1所述的远程过程调用装置,其特征在于,所述编解码模块预先申请内存缓存区用于保存编码后的数据,所述内存缓存区的大小是根据分片的字节数和最大定长数据编码后的字节数而确定的。
5.根据权利要求1至4任意一项所述的装置,其特征在于,所述装置还包括:
日志模块,用于记录本端设备和所述对端设备之间的远程过程调用消息。
6.一种远程过程调用方法,其特征在于,应用于如权利要求1至5任一项所述的远程过程调用装置,所述方法包括:
根据符合远程过程调用消息模板的用户数据,调用代码生成模块生成的第一代码生成远程过程调用请求;
将所述远程过程调用请求封装成数据结构存储在消息队列中,在检测到所述消息队列中有消息需要处理时,从所述消息队列的头部取出第一个远程过程调用请求,对所述远程过程调用请求进行编码;
在所述远程过程调用请求编码后的长度大于预设长度时进行分片,并按照分片发送编码后的数据;
其中,每个分片具有分片标志位,用于表征该分片是否为所述远程过程调用消息的所有分片中的最后一个分片。
7.根据权利要求6所述的方法,其特征在于,所述远程过程调用请求编码后的长度大于预设长度时,则在编码后的长度达到预设长度时,即发送编码后的数据,并将所述分片标志位设置为表征当前分片不是完整远程过程调用消息的所有分片中的最后一片,然后继续执行所述编码步骤,直至编码后的长度不大于所述预设长度时,发送编码后的数据,并将所述分片标志位设置为表征当前分片是完整远程过程调用消息的所有分片中的最后一片。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信而泰科技股份有限公司,未经北京信而泰科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910271974.6/1.html,转载请声明来源钻瓜专利网。