
本发明涉及rpc通信技术领域,具体为一种基于rtos的rpc通信方法。
背景技术:
rtos有别于linux、android和windows系统,它体积小巧、功能简单,常用于物联网、工控等领域;而其受制于软、硬件体积小巧,运算能力不足和应用范围狭窄等方面,各类新技术、新架构与新应用对其提供的支持非常有限,目前rtos经网络收发消息通常使用http1.0/http1.1或是json传输协议进行通信,上述的通信方式存在的弊端很多,例如:网络连接不能复用,连接过程不能长时间保持,且因其包含重复的头部信息,以及未能有效编码压缩和二进制化,使得发送、接收的数据量增大,导致整体的信息冗余,继而造成网络传输延迟大、数据吞吐量低和传输效率差等缺点;
为了解决上述缺陷,现提供一种技术方案。
技术实现要素:
本发明的目的在于提供一种基于rtos的rpc通信方法,本发明是依据linux、android和windows系统,将其引入至嵌入式实时操作系统领域,并将上述技术相结合,再融入自身设计的交互逻辑与流程,实现数据的高效编码压缩,并依据protobuf编解码协议和长连接可复用的http/2网络传输协议,经远程过程调用架构,实现嵌入式客户端与服务器端之间进行消息的高效、快速、低延迟和类似于本地函数调用的直观、便捷的通信方法。
本发明所要解决的技术问题如下:
如何通过一种有效的方式,来解决现有的rtos经网络收发消息通常使用http1.0/http1.1或是json传输协议进行通信,上述的通信方式存在的弊端很多,例如:网络连接不能复用,连接过程不能长时间保持,且因其包含重复的头部信息,以及未能有效编码压缩和二进制化,使得发送、接收的数据量增大,导致整体的信息冗余,继而造成网络传输延迟大、数据吞吐量低和传输效率差等缺点的问题。
本发明的目的可以通过以下技术方案实现:
一种基于rtos的rpc通信方法,包括如下步骤:
步骤一,client端调用clientstub提供的函数接口,将client端的数据请求消息封包成proto文件格式并传输至下一级的protobuf进行处理;
步骤二,protobuf则将封包成proto文件格式的数据请求消息依据protobuf协议,先对其执行文本格式化,再对其执行文本序列化,得到二进制通信数据,进而能够为网络传输提供体积极小的二进制通信数据,提升数据处理速率;
步骤三,将经文本格式化、文本序列化所得到的二进制通信数据传输至网络处理模块,并对其进行http/2协议封包,且依据增量信息对其进行头部压缩,将发生变更的头部信息携带并传输至server端;
步骤四,server端则据此将其解包,并将经文本格式化、文本序列化所得到的二进制通信数据,来依据protobuf协议对其进行文本反序列化,还原client端传输的文本格式信息,并将其发送至serverstub进行处理;
步骤五,serverstub则将实时接收到的经文本反序列化的文本格式信息进行解析,据此调用本地服务处理客户端发来的请求,并由serverstub将其再次封包成proto文件格式,依据protobuf协议来执行文本序列化,以生成二进制通信数据并发送至网络处理模块,且将其封包成http/2协议格式,并将数据消息反馈至server端;
步骤六,server端在接收到实时的数据消息后,对其进行重组、解析并获取文本序列化的二进制通信数据,依据protobuf协议对其进行文本反序列化,得到文本格式数据,并将其反馈至clientstub进行处理;
步骤七,clientstub则将实时接收到的文本格式数据进行解析,并将其导入至proto文件格式类对象,再将结果反馈至最初的调用server端,以完成整个rpc函数接口的调用过程。
进一步的,所述client端等同于客户端;server端等同于服务器端;rtos等同于实时操作系统。
进一步的,所述通信处理过程的接口调用被封装于stub内,且将其分别置于服务器和运行rtos的嵌入式客户端,即分别为serverstub和clientstub,以提供对通信内容的封装、解析与数据消息的处理和结果的反馈。
进一步的,所述通信处理过程所定义的数据消息结构为proto文件格式,该文件格式有别于json、xml等解析语言,是一种更加易用、高效的文件格式,经protoc可执行文件,可将数据消息结构自动导出成类对象,并提供对其内的所有成员变量的接口调用,实现消息体的构造、存取和解析。
进一步的,所述文本格式化后的proto文件格式的数据请求消息经md5加密,以防止数据请求消息在发送前或传输时损坏。
进一步的,所述lwip提供rtos的网络功能支持,client端在发送数据给server端之前,将建立http/2connect通道,并依据ip、port和安全认证信息创建所需配置。
本发明的有益效果:
本发明是应用于嵌入式实时操作系统的客户端与服务器端之间的rpc通信方式;http/2网络传输协议提供了可复用、长期保持和二进制化的传输方式;protobuf协议提供了高压缩比、高效率的二进制编解码方案;rpc架构提供了类似于本地函数调用及结果返回的消息传输机制;
且依据linux、android和windows系统,将其引入至嵌入式实时操作系统领域,并将上述技术相结合,再融入自身设计的交互逻辑与流程,实现数据的高效编码压缩,并依据protobuf编解码协议和长连接可复用的http/2网络传输协议,经远程过程调用架构,实现嵌入式客户端与服务器端之间进行消息的高效、快速、低延迟和类似于本地函数调用的直观、便捷的通信方法,大大提升了基于实时操作系统的客户端与服务器端间的通讯实时性,降低网络资源的占用比例,简化本地调用的数据处理流程,有利于业务层扩展和维护的便利性。
附图说明
为了便于本领域技术人员理解,下面结合附图对本发明作进一步的说明;
图1为本发明的流程图。
具体实施方式
如图1所示,一种基于rtos的rpc通信方法,包括如下步骤:
步骤一,client端调用clientstub提供的函数接口,将client端的数据请求消息封包成proto文件格式并传输至下一级的protobuf进行处理;
步骤二,protobuf则将封包成proto文件格式的数据请求消息依据protobuf协议,先对其执行文本格式化,再对其执行文本序列化,得到二进制通信数据,进而能够为网络传输提供体积极小的二进制通信数据,提升数据处理速率;
步骤三,将经文本格式化、文本序列化所得到的二进制通信数据传输至网络处理模块,并对其进行http/2协议封包,且依据增量信息对其进行头部压缩,将发生变更的头部信息携带并传输至server端;
步骤四,server端则据此将其解包,并将经文本格式化、文本序列化所得到的二进制通信数据,来依据protobuf协议对其进行文本反序列化,还原client端传输的文本格式信息,并将其发送至serverstub进行处理;
步骤五,serverstub则将实时接收到的经文本反序列化的文本格式信息进行解析,据此调用本地服务处理客户端发来的请求,并由serverstub将其再次封包成proto文件格式,依据protobuf协议来执行文本序列化,以生成二进制通信数据并发送至网络处理模块,且将其封包成http/2协议格式,并将数据消息反馈至server端;
步骤六,server端在接收到实时的数据消息后,对其进行重组、解析并获取文本序列化的二进制通信数据,依据protobuf协议对其进行文本反序列化,得到文本格式数据,并将其反馈至clientstub进行处理;
步骤七,clientstub则将实时接收到的文本格式数据进行解析,并将其导入至proto文件格式类对象,再将结果反馈至最初的调用server端,以完成整个rpc函数接口的调用过程;
其中,client端等同于客户端;server端等同于服务器端;rtos等同于实时操作系统;
其中,通信处理过程的接口调用被封装于stub内,且将其分别置于服务器和运行rtos的嵌入式客户端,即分别为serverstub和clientstub,以提供对通信内容的封装、解析与数据消息的处理和结果的反馈;
其中,通信处理过程所定义的数据消息结构为proto文件格式,该文件格式有别于json、xml等解析语言,是一种更加易用、高效的文件格式,经protoc可执行文件,可将数据消息结构自动导出成类对象,并提供对其内的所有成员变量的接口调用,实现消息体的构造、存取和解析;
其中,文本格式化后的proto文件格式的数据请求消息经md5加密,以防止数据请求消息在发送前或传输时损坏;
其中,lwip提供rtos的网络功能支持,client端在发送数据给server端之前,将建立http/2connect通道,并依据ip、port和安全认证信息创建所需配置。
工作原理:在实时操作系统领域,受制于嵌入式软、硬件环境的局限性,实时操作系统对于c及c++各类特性和功能模块的支持非常有限,难以找到现有的高效易用的完整rpc通信方式,只能基于现有的软、硬件环境和编程语言支持级别重新开发;而利用嵌入式的网络支持模块lwip、使用http/2传输协议,并引入了google的protobuf现有技术,来一同设计rpc调用框架和流程,且将上述元素有机结合与整合,在实时操作系统上实现一套完整的rpc通信方式,最终达到高效率、低资源占用、低延迟和远程似本地的过程调用通信效果,大大提升了基于实时操作系统的客户端与服务器端间的通讯实时性,降低网络资源的占用比例,简化本地调用的数据处理流程,有利于业务层扩展和维护的便利性。
以上内容仅仅是对本发明结构所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
本发明提出了一种基于RTOS的RPC通信方法,通过使用protobuf协议进行数据压缩和HTTP/2协议进行网络传输,解决了传统HTTP1.0/1.1和JSON传输协议的效率低下和延迟问题。该方法实现了数据的高效编码压缩,减少了信息冗余,提高了数据吞吐量和传输效率,降低了网络传输延迟,适用于物联网和工控领域的嵌入式系统。
1739

被折叠的 条评论
为什么被折叠?



