一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于ZeroCICE实现的高性能网络通信库的制作方法

2022-07-23 05:31:25 来源:中国专利 TAG:

一种基于zeroc ice实现的高性能网络通信库
技术领域
1.本发明涉及计算机软件领域,尤其涉及的是一种基于zeroc ice实现的高性能网络通信库。


背景技术:

2.在分布式隐私计算网络中,每个计算任务涉及多个节点进程,每个节点的节点进程都是动态启动的,节点进程既是一个服务端(接收客户端发送的数据),也是一个客户端(向服务端发送数据),任务计算过程中,节点进程之间需要进行频繁的通信,如果任务计算过程中,出现数据丢失或不完整,任务则会失败,所以需要在任务计算过程中,对其进行监控,保证网络连接正常以及异常恢复,来保证通讯数据的完整性。
3.那么如何在计算任务过程中保证网络连接,异常自动恢复和数据的完整性等问题,是现有技术急需解决的。
4.并且,目前的rpc框架,如grpc在通讯过程中都是“一应一答”的方式,通讯过程的数据都是实时获取的,没有缓存数据,不能根据需求获取数据。
5.因此,现有技术存在缺陷,需要改进。


技术实现要素:

6.本发明所要解决的技术问题是:提供一种基于zeroc ice的高性能和支持代理服务,可以快速的创建参与计算任务的节点的网络拓扑,使用者可以不用关心内部实现和维护网络连接状态,只管像调用本地函数一样调用rpc接口,则可以协同完成计算任务的高性能网络通信库。
7.本发明的技术方案如下:一种基于zeroc ice实现的高性能网络通信库,包括:使用zeroc ice的通讯架构作为高性能网络通信库的底层框架;用于根据配置创建网络拓扑连接的网络拓扑连接创建程序;用于保证通信过程中数据完整性的数据重发程序;将通讯过程的数据进行保存,并在使用时取出数据的数据读取和存储程序。
8.应用于上述技术方案,所述的基于zeroc ice实现的高性能网络通信库中,所述zeroc ice的通讯架构包括icegrid服务和glacier2路由防火墙,所述底层框架在计算任务启动时,节点进程的服务自动分配端口并启动监听,将其服务器的ip和端口绑定在指定adapterid和servantid上然后注册到icegrid服务上,glacier2通过该指定adapterid和servantid从icegrid服务找到指定的对应的服务器,进行消息转发。
9.应用于上述各个技术方案,所述的基于zeroc ice实现的高性能网络通信库中,所述网络拓扑连接创建程序包括:使第一通讯方的第一高性能网络通信库与第二通讯方的第二glacier2路由防火墙连接,并且,使第二通讯方的第二网络通信库与第一通讯方的第一glacier2路由防火墙连接,从而建立起第一通讯方与第二通讯方的网络拓扑连接,其中,第一通讯方和第二通讯方分别为隐私计算网络中的任意通讯方。
10.应用于上述各个技术方案,所述的基于zeroc ice实现的高性能网络通信库中,所
述数据重发程序包括如下步骤:步骤a1:客户端向服务端发送数据和服务请求,步骤a2:服务端收到数据和服务请求后,处理服务请求并保存数据,并返回响应状态0给客户端;步骤a3:客户端等待响应,并计算周期任务剩余超时时间t,然后判断t是否为0,否则继续判断响应状态是否为0,是则发送成功。
11.应用于上述各个技术方案,所述的基于zeroc ice实现的高性能网络通信库中,步骤a3中,在判断响应状态不是为0时,则休眠一设定时间段t后,返回继续执行步骤a1,其中t《t。
12.应用于上述各个技术方案,所述的基于zeroc ice实现的高性能网络通信库中,所述数据读取和存储程序包括:每个服务端每次接受到来自客户端的数据后,根据预设缓存规则将数据保存在缓存中;并且,每个服务端根据需求从缓存中获取数据,并将获取过的数据将从缓存中删除。
13.应用于上述各个技术方案,所述的基于zeroc ice实现的高性能网络通信库中,所述预设缓存规则为将对应客户端的nodeid msgid作为关键词key进行保存;并且,从缓存中获取数据时是调用服务端的receive接口,并以nodeid msgid作为关键词key从缓存中获取数据。
14.应用于上述各个技术方案,所述的基于zeroc ice实现的高性能网络通信库中,所述数据重发程序是使用创建zeroc ice存根对象的方式,保存客户端和服务端的长连接。
15.应用于上述各个技术方案,所述的基于zeroc ice实现的高性能网络通信库中,所述数据读取和存储程序是使用哈希map和queue容器组合来保存数据。
16.应用于上述各个技术方案,所述的基于zeroc ice实现的高性能网络通信库中,所述高性能网络通信库设置为一个可拔插组件。
17.本发明的有益效果为:
18.本发明使用zeroc ice作为通讯框架,实现数据发送的rpc接口send。通过数据重发程序支持网络等异常时数据重发和超时等功能,保证数据的完整性和程序的健壮性。网络拓扑连接创建程序支持根据配置创建网络拓扑连接;配置还可以包括证书文件,保证通讯的安全性。并且,使用创建zeroc ice存根对象的方式,保存客户端和服务端的长连接,实现客户端和服务端的高效通讯和网络异常断开后自动恢复的功能。使用哈希map和queue容器组合来保存数据,可以保证数据的接收顺序,实现数据的高效存储和读取,基于zeroc ice技术框架,可以快速的创建参与计算任务的节点的网络拓扑,使用者可以不用关心内部实现和维护网络连接状态,只管像调用本地函数一样调用rpc接口,则可以协同完成计算任务,通信效率高。
附图说明
19.图1为本发明中网zeroc ice底层通讯框架程序的执行连接示意图;
20.图2为本发明中网络拓扑连接创建程序的执行连接示意图;
21.图3为本发明中数据重发程序的执行流程示意图;
22.图4为本发明中数据读取和存储程序的执行连接示意图。
具体实施方式
23.以下结合附图和具体实施例,对本发明进行详细说明。
24.本实施例提供了一种基于zeroc ice实现的高性能网络通信库,包括:使用zeroc ice的通讯架构作为高性能网络通信库的底层框架;用于根据配置创建网络拓扑连接的网络拓扑连接创建程序;用于保证通信过程中数据完整性的数据重发程序;将通讯过程的数据进行保存,并在使用时取出数据的数据读取和存储程序。
25.其中,zeroc ice使用紧凑、高效的二进制协议来最小化cpu和带宽消耗,使用ice的idl slice定义客户端和服务器之间的通讯规范;而grpc使用proto协议,在消息数据序列化和反序化时影响效率。基于zeroc ice的高性能和支持代理服务,所以选用了zeroc ice作为本实施例高性能网络通信库(简称channel sdk)的底层通讯框架。
26.ice是rpc通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源中间件,特别适合于当前互联网领域中一个平台存在多种开发语言编程;ice通过与编程语言无关的中立语言slice(specification language fro ice)来描述服务的接口,从而达到对象接口与其实现想分离的目的;不需要像grpc那样使用proto协议作为客户端和服务端的idl来描述服务及方法的请求参数和响应结构及消息数据序列化(影响通信效率),并且grpc使用的是http2协议,其编码和传输机制效率远远低于长连接的socket模式,所以选择zeroc ice作为通信框架,大大提升了channel sdk的通信效率。
27.并且,如图1所示,所述zeroc ice的通讯架构包括icegrid服务和glacier2路由防火墙,底层框架在计算任务启动时,各节点进程的服务自动分配端口并启动监听,将其服务器的ip和端口绑定在指定adapterid和servantid上然后注册到icegrid服务上,glacier2路由防火墙通过该指定adapterid和servantid从icegrid服务找到指定的对应的服务器,进行消息转发。其中,adapterid和servantid分别是服务器的数据适配id和伺服对象id。
28.如此,每个参与方(节点),在计算任务启动时,会启动本节点进程,节点进程的服务即会自动分配端口并启动监听,然后进程将服务器的ip和端口绑定在指定adapterid和servantid上然后注册到icegrid服务上,glacier2路由防火墙则可以通过指定adapterid和servantid从icegrid找到指定的对应的服务器,进行消息转发;节点进程作为客户端创建和其他节点进程所在代理服务连接的存根对象,客户端通过此对象向对端进行发送数据。其中,每个参与方可以是客户端和/或服务端;每个参与方将其服务器的ip和端口绑定在指定adapterid和servantid上然后注册到自己方zeroc ice架构的icegrid服务上。
29.如图2所示,所述网络拓扑连接创建程序包括:使第一通讯方p0的第一高性能网络通信库与第二通讯方p1的第二glacier2路由防火墙连接,并且,使第二通讯方的第二网络通信库与第一通讯方的第一glacier2路由防火墙连接,从而建立起第一通讯方与第二通讯方的网络拓扑连接;其中,第一通讯方和第二通讯方分别为隐私计算网络中的任意通讯方,即为隐私计算网络中的任意节点,隐私计算网络中的其他通讯方采用与第一通讯方p0和第二通讯方p1相同的网络拓扑连接创建程序进行相互之间的两两连接,在任意一个计算任务中,参与计算任务的两个或两个以上的通讯方相互之间两两连接后,多个通讯方可以建立起一个小型的拓扑网络。
30.其中,第一通信方p0和第二通信方p1均为分布式隐私计算网络中的节点,在参与计算任务时,即为参与方,第一通讯方p0和第二通讯方p1为客户端或服务端,其内部均设置
有本发明实施例的高性能网络通信库channel sdk、以及zeroc ice架构,如此,通过第一通讯方p0的第一高性能网络通信库与第二通讯方p1的第二glacier2路由防火墙连接,第二glacier2路由防火墙在第二icegrid服务上找到到对应的第二通讯方p1的ip和端口,从而可以实现将第一通讯方p0的消息和数据转发给第二通讯方p1;同样,通过第二通讯方p1的第二高性能网络通信库与第一通讯方p0的第一glacier2路由防火墙连接,第一glacier2路由防火墙在第一icegrid服务上找到到对应的第一通讯方p0的ip和端口,从而可以实现将第二通讯方p1的消息和数据转发给第一通讯方p0;如此,在家里完成所有节点的网络拓扑连接后,可以实现消息和数据在各参与方中相互传递。
31.并且,计算任务过程中,必须保证数据的完整性,否则计算任务不能成功执行;所以每一次发送数据都必须保证是发送成功;如图3所示,所述数据重发程序包括如下步骤:步骤a1:客户端向服务端发送数据和服务请求,步骤a2:服务端收到发送的数据和服务请求后,处理服务请求并保存数据,并返回响应状态0给客户端;步骤a3:客户端等待响应,并计算周期任务剩余超时时间t,然后判断t是否为0,否则继续判断响应状态是否为0,是则发送成功。其中,周期任务时间为根据实际需要设置,并且,步骤a3中,在判断响应状态不是为0时,则休眠一设定时间段t后,返回继续执行步骤a1,其中t《t。如此,通过支持异常时数据重发和超时等功能,保证数据的完整性和程序的健壮性。
32.另外,如图4所示,所述数据读取和存储程序包括:每个服务端每次接受到来自客户端的数据后,根据预设缓存规则将数据保存在缓存中;并且,每个服务端根据需求从缓存中获取数据,并将获取过的数据将从缓存中删除。其中,所述预设缓存规则为将对应客户端的nodeid msgid作为关键词key进行保存;并且,从缓存中获取数据时是调用服务端的receive接口,并以nodeid msgid作为关键词key从缓存中获取数据。如此,每个服务端可能需要接收多个客户端或者单个客户端多次发送的数据,服务端将这些数据有规则的,例如nodeid msgid作为key保存在缓存当中;服务端根据需求,调用服务端的receive接口,并以nodeid msgid作为key从缓存中获取数据;被获取过的数据将从缓存中删除。其中,nodeid和msgid是客户端的两个id,其中,nodeid为节点标识,msgid为通信类型标识;从而可以实现支持多个客户端同时向一个服务端发送数据,服务端的rpc接口响应后,缓存数据,并根据需求读取缓存中的数据;使用者只需要像调函数一样方便就能是实现数据传输和访问。
33.另外,所述数据重发程序是使用创建zeroc ice存根对象的方式,保存客户端和服务端的长连接,实现客户端和服务端的高效通讯和网络异常断开后自动恢复的功能。
34.并且,所述数据读取和存储程序是使用哈希map和queue容器组合来保存数据,如此,可以保证数据的接收顺序,实现数据的高效存储和读取。
35.并且,本实施例的所述高性能网络通信库设置为一个可拔插组件,如此,可以通过拔插的方式直接在节点进程中使用,安装和使用都非常方便。
36.本实施例高性能网络通信库是在zeroc ice框架上进行封装,通过配置创建网络拓扑,将通讯过程的数据进行保存,使用时取出数据;并且zeroc ice框架中的代理服务是以组件形式进行组合使用,在现有的框架下,使用者需要添加组合代码才能实现代理服务;而channel sdk很好的解决了这个问题,支持多个客户端同时向一个服务端发送数据,服务端的rpc接口响应后,缓存数据,并根据需求读取缓存中的数据;使用channel sdk只需要配置glacier2和icegrid的ip和port等信息,不需要修改代码,使用者不需要深入了解其中的
原理,即可使用代理服务。
37.本实施例高性能网络通信库借助稳定且高效的rpc框架,实现点对点高性能的通讯,并在整个通讯过程中,需要保证数据的完整性,安全性和网络健壮性以及实现数据的高效缓存机制。其中zeroc ice使用紧凑、高效的二进制协议(grpc使用proto协议,在消息数据序列化和反序化时影响效率)来最小化cpu和带宽消耗,使用ice的idl slice定义客户端和服务器之间的通讯规范。
38.本实施例高性能网络通信库适当扩展,可以用于任何点对点高性能通讯的场景;并且,网络通讯服务在it行业使用相当广泛,使用本实施例高性能网络通信库channel sdk,程序员不需要关心在多并发和复杂网络环境下,发送数据的丢失和连接断开等问题即可实现高性能的网络通讯。
39.以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献