通信方法、系统、控制端、被控制端、设备及存储介质与流程

文档序号:21982779发布日期:2020-08-25 19:19阅读:212来源:国知局
通信方法、系统、控制端、被控制端、设备及存储介质与流程

本发明涉及通信领域,特别是涉及一种通信方法、系统、控制端、被控制端、设备及存储介质。



背景技术:

随着科技的发展,涌现了越来越多的电子设备。有的电子设备本身具有联网能力,能够通过路由器与服务器进行通信,有的电子设备(例如蓝牙设备)则需要网关角色才能实现与服务器的通信。例如,支持wi-fi通信功能的电子设备能够通过路由器主动上报数据,蓝牙设备则需要网关角色才能实现与服务器的通信。

在电子设备与服务器进行通信的功能异常,或者由于电子设备的通信功能的限制,使得电子设备需要网关角色才能实现与服务器的通信的情况下,如何选取合适的网关角色,以实现电子设备与服务器的通信,是目前急需解决的一个问题。



技术实现要素:

本发明的一个目的在于提供一种通信方案,以解决上述问题。

根据本发明的第一个方面,提供了一种通信方法,包括:与被控制端建立连接的控制端集群中的第一控制端向控制端集群中的至少部分第二控制端发送控制请求,控制请求用于表征第一控制端期望经由其实现被控制端与服务器的通信;接收第二控制端针对控制请求作出的决策结果,决策结果用于表征第二控制端是否同意控制请求;基于决策结果,判断控制请求是否成功。

可选地,控制请求包括第一控制端的属性信息,决策结果是由第二控制端基于属性信息作出的。

可选地,属性信息是能够表征第一控制端的优劣情况的属性信息。

可选地,属性信息包括:第一控制端与服务器之间的通信协议的第一版本信息;和/或第一控制器与被控制端之间的通信协议的第二版本信息。

可选地,决策结果是由第二控制端基于属性信息和第一控制端发送控制请求的系统时间作出。

可选地,基于决策结果判断控制请求是否成功的步骤包括:在同意控制请求的决策结果的数量大于预定阈值的情况下,判定控制请求成功;或者在存在不同意控制请求的决策结果的情况下,判定控制请求失败。

可选地,该方法还包括:在判定控制请求成功的情况下,经由第一控制端实现被控制端与服务器的通信。

可选地,该方法还包括:在判定控制请求成功的情况下,第一控制端周期性地向控制端集群中的其他控制端发送心跳信息。

可选地,该方法还包括:第一控制端从被控制端获取至少部分第二控制端的连接信息,其中,第一控制端基于连接信息向第二控制端发送控制请求。

可选地,连接信息包括:第二控制端的地址和端口信息;和/或第二控制端支持的通信协议。

可选地,被控制端为不能与服务器通信的物联网设备,控制端集群为本地场景中能够与服务器通信的控制端的集合。

根据本发明的第二个方面,还提供了一种通信方法,包括:与被控制端建立连接的控制端集群中的第二控制端接收控制端集群中的至少一个第一控制端发送的控制请求,控制请求用于表征第一控制端期望经由其实现被控制端与服务器的通信;针对控制请求作出决策,以得到决策结果,决策结果用于表征第二控制端是否同意控制请求;向第一控制端发送决策结果。

可选地,针对控制请求作出决策的步骤包括:将控制请求所对应的控制端与第二控制端进行比较,以判断控制请求所对应的控制端是否优于第二控制端;在判定控制请求所对应的控制端优于第二控制端的情况下,同意控制请求。

可选地,控制请求包括第一控制端的属性信息,决策结果是由第二控制端基于属性信息作出的。

可选地,针对控制请求作出决策的步骤包括:第二控制端将属性信息与自身属性信息进行比较,其中,在自身属性信息优于属性信息的情况下,第二控制端不同意控制请求。

可选地,属性信息是能够表征第一控制端的优劣情况的属性信息。

可选地,属性信息包括:第一控制端与服务器之间的通信协议的第一版本信息;和/或第一控制器与被控制端之间的通信协议的第二版本信息。

可选地,决策结果是由第二控制端基于属性信息和第一控制端发送控制请求的系统时间作出的。

可选地,第二控制端还向控制端集群中的其他控制端发送控制请求,比较属性信息的步骤包括:第二控制端将发送的控制请求中的版本信息与接收到的控制请求中的版本信息进行比较,在第二控制端发送的控制请求中的版本信息优于接收到的控制请求中的版本信息的情况下,第二控制端不同意控制请求;在第二控制端发送的控制请求中的版本信息与接收到的控制请求中的版本信息相当的情况下,第二控制端将其发送的控制请求中的系统时间与接收到的控制请求中的系统时间进行比较,在第二控制端发送的控制请求中的系统时间先于接收到的控制请求中的系统时间的情况下,第二控制端不同意控制请求。

可选地,该方法还包括:在决策结果为第二控制端不同意控制请求的情况下,第二控制端向控制端集群中的其他控制端发送控制请求。

可选地,被控制端为不能与服务器通信的物联网设备,控制端集群为本地场景中能够与服务器通信的控制端的集合。

根据本发明的第三个方面,还提供了一种通信方法,包括:被控制端接收控制端发送的连接建立请求;响应于连接建立成功,将与被控制端建立连接的控制端集群中的至少部分控制端的连接信息分别通知给至少部分控制端中的每一个。

可选地,该方法还包括:在连接建立成功后,接收控制端发送的针对连接变化事件的订阅请求,将与被控制端建立连接的控制端集群中的至少部分控制端的连接信息分别通知给至少部分控制端中的每一个的步骤包括:向订阅连接变化事件的控制端通知控制端集群中至少部分控制端的连接信息。

可选地,连接信息包括:地址和/或端口信息;和/或控制端支持的通信协议。

根据本发明的第四个方面,还提供了一种通信系统,包括:被控制端和与被控制端建立连接的控制端集群,控制端集群包括多个控制端,控制端集群中的第一控制端向控制端集群中的至少部分第二控制端发送控制请求,控制请求用于表征第一控制端期望经由其实现被控制端与服务器的通信,第一控制端接收第二控制端针对控制请求作出的决策结果,决策结果用于表征第二控制端是否同意控制请求,第一控制端基于决策结果,判断控制请求是否成功。

根据本发明的第五个方面,还提供了一种控制端,控制端与被控制端建立连接,控制端向与被控制端建立连接的控制端集群中的至少部分其他控制端发送控制请求,控制请求用于表征控制端期望经由其实现被控制端与服务器的通信;控制端接收其他控制端针对控制请求作出的决策结果,决策结果用于表征其他控制端是否同意控制请求;控制端基于决策结果,判断控制请求是否成功。

可选地,控制端还接收其他控制端发送的控制请求,针对接收到的控制请求作出决策,并发送决策结果,决策结果用于表征控制端是否同意控制请求。

根据本发明的第六个方面,还提供了一种控制端,控制端与被控制端建立连接,控制端接收与被控制端建立连接的控制端集群中的至少一个其他控制端发送的控制请求,控制请求用于表征其他控制端期望经由其实现被控制端与服务器的通信,控制端针对控制请求作出决策,以得到决策结果,并发送决策结果,决策结果用于表征控制端是否同意控制请求。

根据本发明的第七个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本发明第一个方面至第三个方面中任一个方面述及的方法。

根据本发明的第八个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本发明第一个方面至第三个方面中任一个方面述及的方法。

本发明可以从与被控制端建立连接的控制端集群中选出合适的(例如可以选出功能相对完善的)控制端充当被控制端的网关角色,实现被控制端与服务器的通信。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出了根据本发明一实施例的应用场景的示意图。

图2示出了根据本发明一实施例的通信方法的示意性流程图。

图3示出了根据本发明另一实施例的通信方法的示意性流程图。

图4示出了根据本发明一实施例的通信系统的结构示意性方框图。

图5示出了一种具体应用场景中的示意性流程图。

图6示出了根据本发明一实施例可用于实现上述通信方法的数据处理的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

随着物联网技术的发展,物与物之间的通信愈加频繁。在电子设备需要网关角色才能实现与服务器的通信的情况下,可以利用本地场景中能够与服务器通信的终端充当网关角色,来实现电子设备与服务器的通信。

在本发明中,需要网关角色才能实现与服务器的通信的电子设备可以称为被控制端,与被控制端连接且可以充当被控制端的网关角色以实现被控制端与服务器的通信的终端可以称为控制端。被控制端可以视为本地通信场景中被动接收数据、被动调整自身功能的一方,控制端可以视为本地通信场景中主动发送数据(包括向服务器上传被控制端的数据和下发服务器的数据给被控制端),展示被控制端信息的一方。

图1示出了本发明的一种应用场景的示意图。

被控制端10可以是本身不具备与服务器30进行通信的能力,不能与服务器30通信的电子设备。例如,被控制端10可以是仅支持短距离通信协议的电子设备,如蓝牙设备。

被控制端10也可以是与服务器30的通信出现异常(也即正常情况下能够与服务器通信)的电子设备。例如,被控制端10可以是支持远距离网络通信(如wi-fi通信)的电子设备,正常情况下其可以通过路由器(或基站)与服务器30通信。

被控制端10可以是但不限于智能手机、平板电脑等便携式设备,另外,被控制端10也可以是物联网设备,如可以是工业领域中的探测设备,也可以是洗衣机、冰箱、空调、音箱等智能家居设备,还可以是互联网汽车等其他类型的物联网设备。

服务器30可以是能够通过网络访问提供交互服务所需信息的任何服务器。在本发明中,服务器30可以用于接收被控制端10上传的数据,并向被控制端10下发数据以对其进行控制。

控制端集群20可以是本地场景中与被控制端10建立连接的所有控制端的集合。控制端集群20可以包括一个或多个控制端。控制端集群20中的各个控制端均与被控制端10建立连接。例如,控制端可以通过被控制端10提供的接口与被控制端10建立连接。

控制端可以是一个独立的电子设备,如可以是固定的路由器(或基站),也可以是支持远距离网络通信(如wi-fi通信)的电子设备,也可以是能够通过路由器(或基站)与服务器30通信的设备,另外控制端也可以是安装在电子设备(如手机)中的应用程序(app)。

控制端可以通过网络40(路由器或其他网关角色)与服务器30通信。网络40可以是广义上的用于信息传递的网络,可以包括一个或多个通信网络,诸如无线通信网络、因特网、私域网、局域网、城域网、广域网或是蜂窝数据网络等。由此,可以利用控制端集群20中的控制端充当被控制端10的网关角色,来实现被控制端10与服务器30的通信。

如图1所示,在与被控制端10连接的控制端集群20包括多个控制端的情况下,就形成了一个由多个控制端和单一被控制端组成的本地网络环境,需要从这多个控制端中选择一个控制端来充当被控制端10的网关角色,来实现被控制端10与服务器30的通信。

由于各个控制端的属性不同,链接方式(可能使用蓝牙,wifi等)、版本更新节奏均可能存在一定的差异,使得控制端集群中不同控制端的性能不同,可能存在功能不完善的控制端。为此,本发明提出,可以从控制端集群20中选择一个功能较为完善(也即性能较好)的控制端充当被控制端10的网关角色,来实现被控制端10与服务器30的通信。

控制端集群中的每个控制端都可以向控制端集群中的至少部分其他控制端发送控制请求。控制请求用于表征第一控制端期望经由其实现被控制端与服务器的通信。在本公开中,控制请求可以形象地称为“竞选请求”,也即控制端集群中的每个控制端都可以作为竞选者,向控制端集群中的至少部分其他控制端发送竞选请求。

为了便于描述,发送控制请求的控制端可以称为“第一控制端”,接收控制请求的控制端可以称为“第二控制端”。同一个控制端既可以作为第一控制端向其他控制端发送控制请求,也可以作为第二控制端接收其他控制端发送的控制请求。

1、控制请求的发送时机

可以在有新的控制端加入,或者控制端集群中的控制端的数量超过预定数量,或者在先前确定的用于充当被控制端的网关角色的控制端(也即之前选出来的控制端)不再存活的情况下,触发控制请求的发送。也可以设定选举周期,周期性地触发控制请求的发送。关于控制请求的具体触发方式,本发明不做限定。

2、控制请求的发送者

控制请求的发送者可以是控制端集群中的每个控制端,也可以是控制端集群中的部分控制端。

作为本发明的一个示例,可以从控制端集群中随机选取一个或多个控制端作为第一控制端,向其他控制端发送控制请求。或者也可以从控制端集群中有针对性地选取部分控制端作为第一控制端,向其他控制端发送控制请求。例如,可以由先前曾经作为第一控制端,或者先前曾经充当被控制端的网关角色的控制端(也即先前曾经选出来的控制端)发送控制请求。

作为本发明的另一个示例,控制端集群中的每个控制端都可以向其他控制端发送控制请求。也就是说,每个控制端既作为第一控制端向其他控制端发送控制请求,还同时作为第二控制端接收来自其他控制端的控制请求。

3、判断控制请求是否成功

第二控制端在接收到第一控制端发送的控制请求后,可以根据预先设定的决策原则进行决策,并向第一控制端发送决策结果,决策原则也可以形象地称为“投票原则”,决策结果也可以形象地称为“投票结果”。作为示例,决策原则可以设计为,将接收到的控制请求所对应的控制端与自身进行比对,如果控制请求所对应的控制端优于自身,则同意控制请求,投赞同票,否则不同意控制请求,投反对票。

第一控制端在接收到第二控制端的决策结果后,可以根据预先设定的竞选原则确定其控制请求是否成功。控制请求成功也可以形象地称为“竞选成功”,控制请求成功则表明可以由发送该控制请求的控制端充当被控制端的网关角色,实现被控制端与服务器的通信,控制请求失败,则表明由其他的控制端充当被控制端的网关角色,实现被控制端与服务器的通信。

作为示例,判断原则可以设计为,根据同意控制请求的决策结果的数量(也即赞同票的数量),判断控制请求是否成功,判断原则也可以形象地称为“竞选原则”。例如,可以将得到的赞同票最多的控制请求判定为成功,也可以在得到赞同票的数值(或比例)大于预先设定的阈值的情况下,判定控制请求成功。另外,判断原则也可以设计为,如果存在反对票,则控制请求失败,如果不存在反对票,则控制请求成功。

在由控制端集群中的部分控制端发送控制请求,且判断原则为“如果存在反对票,则控制请求失败”的情况下,未发送控制请求且投反对票的控制端可以作为第一控制端向其他控制端发送控制请求。如此,如果首次发送控制请求的控制端都竞选失败,则可以根据投反对票的控制端发送的控制请求,继续选择,从而最终可以选出一个最优的控制端充当被控制端的网关角色,来实现被控制端与服务器的通信。

需要说明的是,在已经选出控制端充当被控制端的网关角色的情况下,对于投反对票的控制端所发送的控制请求,可以无视无效。举例来说,假设控制端集群包括控制端1、控制端2、控制端3以及控制端4,控制端1、控制端2分别向其他控制端发送控制请求。针对控制端1的控制请求,控制端2投反对票,控制端3投反对票,控制端4投赞同票,那么控制端3可以作为第一控制端,向控制端1、2、4分别发送控制请求,如果针对控制端2的控制请求,控制端1、3、4分别投赞同票,那么控制端2竞选成功,此时对于控制端3发送的控制请求,其他控制端可以不再考虑。

也就是说,在选出控制端,或者在选出的控制端存活的情况下,不再为被控制端选择新的控制端充当网关角色。为了维护选出的控制端,控制请求成功的控制端可以周期性地向其他控制端发送心跳包,以告知其存活状态。在控制请求成功的控制端处于存活状态下,其他控制端不发送控制请求,或者这期间发送的控制请求无效,即不再针对控制请求进行决策。

至此就从控制端集群中选择控制端充当被控制端的网关角色的实现流程做了简要说明,下面结合附图做进一步示例性说明。

图2示出了根据本发明一实施例的通信方法的示意性流程图。其中,图2所示的方法可以由第一控制端执行。

参见图2,在步骤s210,与被控制端建立连接的控制端集群中的第一控制端向控制端集群中的至少部分第二控制端发送控制请求,控制请求用于表征第一控制端期望经由其实现被控制端与服务器的通信。

控制端集群中的每个控制端都可以作为第一控制端,向其他控制端发送控制请求。作为示例,可以在有新的控制端加入,或者控制端集群中的控制端的数量超过预定数量,或者在先前确定的用于充当被控制端的网关角色的控制端(也即之前选出来的控制端)不再存活的情况下,由控制端集群中的任意一个控制端(或任意几个控制端,或每一个控制端)作为第一控制端,发起控制请求。

为了选出功能更为完善的控制端,第一控制端所发送的控制请求可以包括属性信息。属性信息可以是能够表征第一控制端的优劣情况的属性信息,属性信息可以形象地称为“竞选信息”。例如,属性信息可以包括第一控制端与服务器之间的通信协议的第一版本信息,也可以包括第一控制器与被控制端之间的通信协议的第二版本信息。另外,属性信息还可以包括控制端的硬件参数、系统版本等能够表征其优劣情况的信息。

可选地,第一控制端所发送的控制请求中还可以包括系统时间,系统时间可以是第一控制端发出控制请求的时间(可以是绝对时间)。

在步骤s220,接收第二控制端针对控制请求作出的决策结果。

决策结果用于表征第二控制端是否同意控制请求,也即决策结果可以是赞同票或反对票。第二控制端在接收到控制请求后,可以基于控制请求中的属性信息和/或时间信息(如上文述及的系统时间),作出决策,以确定是否同意该控制请求,并向第一控制端发送与作出的决策相应的决策结果。

在步骤s230,基于决策结果,判断控制请求是否成功。

可以通过多种方式判断控制请求是否成功。例如,可以根据少数服从多数的原则,在同意控制请求的决策结果的数量(或比例)大于预定阈值的情况下,判定控制请求成功,否则判定控制请求失败。再例如,也可以根据最优原则,在接收到的决策结果中存在不同意控制请求的决策结果(也即存在反对票)的情况下,判定控制请求失败,否则判定控制请求成功。

控制请求成功的第一控制端可以充当被控制端的网关角色,由该控制端实现被控制端与服务器的通信,如可以由该控制端将被控制的数据上传到服务器,也可以将服务器下发的数据发送至被控制端。并且,控制请求成功的第一控制端可以周期性地向控制端集群中的其他控制端发送心跳信息,以告知其他控制端当前充当被控制端的网关角色的控制端(也即选出来的控制端)的存活状态。

第一控制端可以从被控制端获取第二控制端的连接信息,由此第一控制端可以基于连接信息向第二控制端发送控制请求。其中,连接信息可以包括但不限于第二控制端的地址(ip地址)和端口信息、第二控制端支持的通信协议(例如蓝牙、zigbee)等等。

图3示出了根据本发明另一实施例的通信方法的示意性流程图。其中,图3所示的方法可以由第二控制端执行。

参见图3,在步骤s310,与被控制端建立连接的控制端集群中的第二控制端接收控制端集群中的至少一个第一控制端发送的控制请求。控制请求中可以包括第一控制端的属性信息,关于属性信息的具体内容可以参见上文相关描述,此处不再赘述。

在步骤s320,针对控制请求作出决策,以得到决策结果,决策结果用于表征第二控制端是否同意控制请求。

第二控制端在接收到控制请求后,可以将控制请求所对应的控制端与自身进行比较,以判断控制请求所对应的控制端是否优于第二控制端。如果控制请求所对应的控制端优于自身,则投赞同票,否则投反对票。此处述及的比较主要是指性能方面的比较,如可以在版本性能方面进行比较。以控制请求包括属性信息为例,第二控制端可以将属性信息与自身属性信息进行比对,以确定控制请求所对应的控制端是否优于自身。其中,自身属性信息是指第二控制端的与属性信息所表征的含义的维度相同的信息。例如,在属性信息包括第一控制端的版本信息的情况下,自身属性信息是指第二控制端的版本信息。其中,版本信息可以是指控制端与服务器之间的通信协议的版本信息,也可以是指控制端与被控制端之间的通信协议的版本信息,还可以是指应用版本信息等其他类型的版本信息,此处不再赘述。

在第二控制端也作为第一控制端向其他控制端发送控制请求的情况下,第二控制端可以将接收到的属性信息与发送的控制请求中的属性信息进行比较,在接收到的属性信息优于自身发出的控制请求中的属性信息的情况下,投赞同票,否则投反对票。

以属性信息包括版本信息,控制请求中还包括系统时间为例,第二控制端可以首先将其版本信息与接收到的控制请求中的版本信息进行比较,在第二控制端的版本信息优于接收到的控制请求中的版本信息的情况下,第二控制端不同意控制请求。在第二控制端的版本信息与接收到的控制请求中的版本信息相当的情况下,第二控制端将其发送的控制请求中的系统时间与接收到的控制请求中的系统时间进行比较,在第二控制端发送的控制请求中的系统时间先于接收到的控制请求中的系统时间的情况下,第二控制端不同意控制请求。

在步骤s330,向第一控制端发送决策结果。

如上文所述,在由控制端集群中的部分控制端发送控制请求,且判断原则为“如果存在反对票,则控制请求失败”的情况下,未发送控制请求且投反对票的控制端可以作为第一控制端向其他控制端发送控制请求。如此,如果首次发送控制请求的控制端都竞选失败,则可以根据投反对票的控制端发送的控制请求,继续选择,从而最终可以选出一个最优的控制端充当被控制端的网关角色,来实现被控制端与服务器的通信。

因此,在第二控制端投反对票的情况下,如果第二控制端未发送控制请求,第二控制端还可以向其他控制端发送控制请求。

至此,结合图2、图3分别就控制请求的发送和接收做了详细说明。需要说明的是,第一控制端是指控制请求的发送方,第二控制端是指控制请求的接收方,而同一控制端既可以向其他控制端发送控制请求,也可以接收来自其他控制端的控制请求。因此,图2、图3所示的方法可以由同一控制端执行。

图4示出了根据本发明一实施例的通信系统的结构示意性方框图。

如图4所示,通信系统400包括被控制端410和多个控制端(图中示出的控制端1、控制端2、控制端n,n为大于1的自然数)。各个控制端分别与被控制端410连接,这多个控制端就构成了上文述及的控制端集群。控制端可以是与被控制端同属于本地场景中的终端,因此控制端集群和被控制端410构成的通信系统可以视为本地通信场景中的系统。

被控制端410可以接收控制端发送的连接建立请求,以与控制端建立连接。并响应于连接建立成功,将与被控制端建立连接的控制端集群中的至少部分控制端的连接信息分别通知给至少部分控制端中的每一个。

作为示例,在每次新的连接建立成功后,被控制端410可以接收新建立连接的控制端发送的针对连接变化事件的订阅请求。由此,每次在新的连接建立成功后,被控制端410可以向所有订阅连接变化事件的控制端通知控制端集群中至少部分控制端的连接信息。

控制端可以向与被控制端建立连接的控制端集群中的至少部分其他控制端发送控制请求,接收其他控制端针对控制请求作出的决策结果,并基于决策结果,判断控制请求是否成功。

另外,控制端还可以接收其他控制端发送的控制请求,针对接收到的控制请求做出决策结果,并发送决策结果,决策结果用于表征控制端是否同意控制请求。

也就是说,同一控制端可以作为第一控制端向与被控制端建立连接的控制端集群中的至少部分其他控制端发送控制请求,也可以作为第二控制端接收其他控制端发送的控制请求。

关于控制端可以执行的操作可以参见上文相关描述,此处不再赘述。

本发明可以应用于多个控制端和单一被控制端构成的本地网络场景,可以从多个控制端中选举出一个控制端,充当被控制端的网格角色,通过其代理实现被控制端与服务器的通信(如数据上报),以使得被控制具备信息同步给云端的功能。

图5示出了一种具体应用场景中的示意性流程图。

参见图5,步骤1-5示出了控制端1与被控制端建立连接的流程。

在步骤1,控制端1请求和被控制端建立连接。

在步骤2,被控制端返回连接建立成功。

在步骤3,控制端1订阅被控制端的连接变化事件,以使得在有新的控制端与被控制端建立连接时,可以从被控制端获取新的控制端的连接信息,或者在有控制端与被控制端断开连接时,可以从被控制端获知断开连接的控制端的信息。

在步骤4,被控制端返回订阅成功。

被控制端通知所有控制端有新的控制端链接建立成功,包含所有已链接控制端的ip和端口信息。如图5所示,所有控制端包括控制端1,因此在步骤5,被控制端向控制端1通知控制端1的连接信息,包括控制端1的ip和端口信息。

步骤6-11示出了控制端2与被控制端建立连接的流程。

在步骤6,控制端2请求和被控制端建立连接。

在步骤7,被控制端返回连接建立成功。

在步骤8,控端端2订阅被控制端的链接变化事件。

在步骤9,被控制端返回订阅成功。

被控制端通知所有控制端有新的控制端链接建立成功,包含所有已链接控制端的ip和端口信息。如图5所示,所有控制端包括控制端1和控制端2。因此,被控制端通过执行步骤10、步骤11,分别向控制端1、控制端2通知所有已连接控制端(控制端1和控制端2)的连接信息,包括所有已连接的控制端的ip和端口信息。

步骤12-17示出了投票选举过程。

在步骤12,控制端1向控制端2发起投票请求。投票请求也即上文述及的控制请求,投票请求中包括控制端1的版本号、系统时间。

在步骤13,控制端2比较投票请求的数据,按照版本高低,系统时钟长短来确定是否给控制端1投票。控制端2可以将投票请求的数据与自身的版本信息进行比较,以确定是否给控制端1投票,具体的投票过程可以参见上文相关描述,此处不再赘述。

在步骤14,控制端2返回决策结果给控制端1。

在步骤15,控制端1确认是否竞选成功。可选地,可以根据是否有控制端投反对票来决定,即在存在反对票的情况下,竞选失败,在没有反对票的情况下,竞选成功。

在步骤16,控制端1确认竞选成功后,通知所有其他的控制端。

在步骤17,控制端2收到通知后,和控制端1建立心跳链接,保持监听。如果控制端1掉线,则剩下的控制端可以重新发起选举,可以重复步骤12到步骤17,从剩下的控制端中选举新的控制端作为被控制端的网关角色。

本发明通过被控制端向控制端通告所有与被控制端连接的控制端的连接信息的方式,使得与被控制端建立连接的控制端间可以建立连接,从而为控制端间的协商选举提供实现基础。通过选举,则可以选举出功能相对完善的控制端充当被控制端的网关角色,实现被控制端与服务器的通信,可以避免有缺陷的控制端充当被控制端的网关角色。

图6示出了根据本发明一实施例可用于实现上述通信方法的数据处理的计算设备的结构示意图。

参见图6,计算设备600包括存储器610和处理器620。

处理器620可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器620可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器620可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。

存储器610可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器620或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器610可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器610可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器610上存储有可执行代码,当可执行代码被处理器620处理时,可以使处理器620执行上文述及的通信方法。

上文中已经参考附图详细描述了根据本发明的通信方法、系统、控制端、被控制端及计算设备。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1