设备状态的确定方法、装置、网关及存储介质与流程

文档序号:25054552发布日期:2021-05-14 13:45阅读:117来源:国知局
设备状态的确定方法、装置、网关及存储介质与流程

1.本申请涉及物联网技术领域,具体而言,涉及一种设备状态的确定方法、装置、网关及存储介质。


背景技术:

2.随着物联网技术的快速发展,为了使采用不同传输协议的设备之间实现互联互通,网关充当了一个翻译器的角色,用以不同的通信协议、数据格式或语言的设备之间的数据传输。
3.现阶段,设备通过网络接入物联网的网关服务,上报心跳和业务数据。系统根据设备的最后活跃时间来判断设备是否在线,其中,设备的最后活跃时间为设备最后一次上报心跳数据或业务数据的时间。
4.然而,对于一些设备来说,例如采用长连接、不定时上报业务数据且无心跳数据的设备,采用现有判断设备是否在线的准确度不高。


技术实现要素:

5.本申请的目的在于,针对上述现有技术中的不足,提供一种设备状态的确定方法、装置、网关及存储介质,以解决现有技术中设备状态判断的准确度不高的问题。
6.为实现上述目的,本申请实施例采用的技术方案如下:
7.第一方面,本申请一实施例提供了一种设备状态的确定方法,所述方法包括:
8.从第一数据库中获取目标接入设备的状态信息、最后活跃时间以及所述目标接入设备对应的目标网关服务副本的状态信息,其中,每个接入设备对应一个网关服务副本,所述最后活跃时间为所述目标接入设备最后一次上报心跳数据或业务数据的时间;
9.根据所述目标接入设备的状态信息、最后活跃时间以及所述目标网关服务副本的状态信息,确定所述目标接入设备的设备状态,所述设备状态用于指示所述目标接入设备是否在线。
10.可选地,所述根据所述目标接入设备的状态信息、最后活跃时间以及所述目标网关服务副本的状态信息,确定所述目标接入设备的设备状态,包括:
11.若所述目标接入设备的状态信息为已接入状态、所述最后活跃时间与当前时间之间的时间间隔小于或等于所述目标接入设备对应的预设间隔,且所述目标网关服务副本的状态信息为已接入状态,则确定所述设备状态为在线状态。
12.若存在至少一项未接入事项时,确定所述设备状态为离线状态,其中,所述未接入事项包括:所述目标接入设备的状态信息为未接入状态、所述最后活跃时间与当前时间之间的时间间隔大于所述目标接入设备对应的预设间隔、所述目标网关服务副本的状态信息为未接入状态。
13.可选地,所述方法还包括:
14.通过网关服务对应的软件开发工具包,监测所述目标接入设备的状态信息、所述
最后活跃时间、所述目标网关服务副本的状态信息,以及所述目标接入设备和所述目标网关服务副本之间的关联关系;
15.将所述目标接入设备的状态信息、所述最后活跃时间、所述目标网关服务副本的状态信息,以及所述目标接入设备和所述目标网关服务副本之间的关联关系存储至所述第一数据库。
16.可选地,若所述设备状态为在线状态,所述方法还包括:
17.通过预设的网关总线服务接口接收后台系统发送的设备命令,所述设备命令中包括所述目标接入设备的标识;
18.根据所述目标接入设备的标识,从所述第一数据库中查询所述目标接入设备对应的所述目标网关服务副本;
19.通过所述目标网关服务副本向所述目标接入设备发送所述设备命令,以及接收所述目标接入设备反馈的所述设备命令对应的执行结果,并将所述执行结果存储至第二数据库。
20.可选地,所述设备命令中还包括:命令执行结果回调接口地址,所述方法还包括:
21.通过所述命令执行结果回调接口地址向所述后台系统发送所述执行结果。
22.可选地,所述通过所述目标网关服务副本向所述目标接入设备发送所述设备命令之前,还包括:
23.将所述设备命令和所述目标网关服务副本之间的关联关系以及所述设备命令存储至所述第二数据库;
24.通过所述目标网关服务副本按预设周期向所述目标网关服务副本对应的网关总线服务副本请求获取所述设备命令,所述网关总线服务副本用于从所述第二数据库中获取所述设备命令。
25.可选地,所述通过所述目标网关服务副本按预设周期向所述目标网关服务副本对应的网关总线服务副本请求获取所述设备命令之前,还包括:
26.通过网关服务对应的软件开发工具包提供的接口为所述目标网关服务副本配置所述预设周期;
27.所述通过所述目标网关服务副本向所述目标接入设备发送所述设备命令,包括:
28.通过网关服务对应的软件开发工具包提供的接口注册设备命令回调函数;
29.通过所述软件开发工具包调用所述设备命令回调函数,以向所述目标接入设备发送所述设备命令。
30.第二方面,本申请另一实施例提供了一种设备状态的确定装置,所述装置包括:
31.获取模块,用于从第一数据库中获取目标接入设备的状态信息、最后活跃时间以及所述目标接入设备对应的目标网关服务副本的状态信息,其中,每个接入设备对应一个网关服务副本,所述最后活跃时间为所述目标接入设备最后一次上报心跳数据或业务数据的时间;
32.处理模块,用于根据所述目标接入设备的状态信息、最后活跃时间以及所述目标网关服务副本的状态信息,确定所述目标接入设备的设备状态,所述设备状态用于指示所述目标接入设备是否在线。
33.可选地,所述处理模块,具体用于:
34.若所述目标接入设备的状态信息为已接入状态、所述最后活跃时间与当前时间之间的时间间隔小于或等于所述目标接入设备对应的预设间隔,且所述目标网关服务副本的状态信息为已接入状态,则确定所述设备状态为在线状态。
35.若存在至少一项未接入事项时,确定所述设备状态为离线状态,其中,所述未接入事项包括:所述目标接入设备的状态信息为未接入状态、所述最后活跃时间与当前时间之间的时间间隔大于所述目标接入设备对应的预设间隔、所述目标网关服务副本的状态信息为未接入状态。
36.可选地,所述处理模块,还用于:
37.通过网关服务对应的软件开发工具包,监测所述目标接入设备的状态信息、所述最后活跃时间、所述目标网关服务副本的状态信息,以及所述目标接入设备和所述目标网关服务副本之间的关联关系;
38.存储模块,用于将所述目标接入设备的状态信息、所述最后活跃时间、所述目标网关服务副本的状态信息,以及所述目标接入设备和所述目标网关服务副本之间的关联关系存储至所述第一数据库。
39.可选地,若所述设备状态为在线状态,所述装置还包括:
40.接收模块,用于通过预设的网关总线服务接口接收后台系统发送的设备命令,所述设备命令中包括所述目标接入设备的标识;
41.所述处理模块,还用于根据所述目标接入设备的标识,从所述第一数据库中查询所述目标接入设备对应的所述目标网关服务副本;
42.发送模块,用于通过所述目标网关服务副本向所述目标接入设备发送所述设备命令,以及接收所述目标接入设备反馈的所述设备命令对应的执行结果,并将所述执行结果存储至第二数据库。
43.可选地,所述设备命令中还包括:命令执行结果回调接口地址,所述发送模块,还用于:
44.通过所述命令执行结果回调接口地址向所述后台系统发送所述执行结果。
45.可选地,所述存储模块,还用于:
46.将所述设备命令和所述目标网关服务副本之间的关联关系以及所述设备命令存储至所述第二数据库;
47.通过所述目标网关服务副本按预设周期向所述目标网关服务副本对应的网关总线服务副本请求获取所述设备命令,所述网关总线服务副本用于从所述第二数据库中获取所述设备命令。
48.可选地,所处理模块,还用于:
49.通过网关服务对应的软件开发工具包提供的接口为所述目标网关服务副本配置所述预设周期;
50.所述发送模块,具体用于:
51.通过网关服务对应的软件开发工具包提供的接口注册设备命令回调函数;
52.通过所述软件开发工具包调用所述设备命令回调函数,以向所述目标接入设备发送所述设备命令。
53.第三方面,本申请另一实施例提供了一种网关,包括:处理器、存储器和总线,所述
存储器存储有所述处理器可执行的机器可读指令,当网关运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行上述第一方面任一项所述的方法。
54.第四方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一项所述的方法。
55.本申请提供了一种设备状态的确定方法、装置、网关及存储介质,其中,该方法包括:从第一数据库中获取目标接入设备的状态信息、最后活跃时间以及目标接入设备对应的目标网关服务副本的状态信息,其中,每个接入设备对应一个网关服务副本,最后活跃时间为目标接入设备最后一次上报心跳数据或业务数据的时间,根据目标接入设备的状态信息、最后活跃时间以及目标网关服务副本的状态信息,确定目标接入设备的设备状态,设备状态用于指示目标接入设备是否在线。本申请通过综合考虑目标接入设备的状态信息、最后活跃时间以及目标网关服务副本的状态信息,来确定目标接入设备的状态信息,提高了设备状态判断的准确度。
附图说明
56.为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
57.图1示出了本申请实施例提供的设备状态的物联网系统的架构示意图;
58.图2示出了本申请实施例提供的设备状态的确定方法的流程示意图一;
59.图3示出了本申请实施例提供的设备状态的确定方法的流程示意图二;
60.图4示出了本申请实施例提供的设备状态的确定方法的流程示意图三;
61.图5示出了本申请实施例提供的设备状态的确定方法的流程示意图四;
62.图6示出了本申请实施例提供的设备状态的确定方法的流程示意图五;
63.图7示出了本申请实施例提供的设备状态的确定装置的结构示意图;
64.图8示出了本申请实施例提供的网关的结构示意图。
具体实施方式
65.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
66.另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的
范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
67.需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
68.目前,常见的物联网设备类型如表1所示:
[0069][0070]
表1
[0071]
由表1可知,对于第8种设备,采用短连接、不定时上报业务数据且无心跳数据,无法得知设备的状态,故暂不考虑获取这种设备的状态。
[0072]
对于第4种设备,采用长连接、不定时上报业务数据且无心跳数据,采用根据设备的最后活跃时间来判断设备是否在线的方案并不准确,其中,最后活跃时间指的是最后一次上报心跳或业务数据的时间。
[0073]
对于其余几种设备定时上报业务数据或心跳数据的间隔并不一致,基于现有采用固定间隔来判断设备是否在线,会导致误判,若在系统内部维护每种设备的间隔,则会增加系统的复杂性。
[0074]
此外,执行设备命令时,系统直接将命令下发至设备网关服务,如果在短时间内发起大量执行命令的请求,会导致设备网关服务压力过大,影响日常业务。而设备网关服务存在多副本时,系统发送的设备命令会随机选择其中一个副本,如果该设备连接了其他副本,会导致设备命令执行失败。
[0075]
基于上述问题,本申请提供的设备状态的确定方法,通过综合考虑目标接入设备的状态信息、最后活跃时间以及目标网关服务副本的状态信息,来确定目标接入设备的状态信息,提高了设备状态判断的准确度。
[0076]
图1示出了本申请实施例提供的设备状态的物联网系统的架构示意图,如图1所示,包括:接入设备100、网关200以及后台系统300。
[0077]
在物联网系统中,该方案可以应用于环保监测领域,其中,接入设备100可以为大气监测设备、摄像头等,大气监测设备例如可以包括大气监测标准站、水质监测标准站等,后台系统300可以为环保监测系统,网关200用于实现接入设备100和后台系统300之间的数
据传输。
[0078]
在一种可能的实际应用中,后台系统300可以通过网关200向接入设备发送设备命令,该设备命令可以用于请求接入设备100进行水质监测,接入设备100可以通过网关200向后台系统反馈水质监测结果。
[0079]
当然,该方案也可以应用到其他物联网场景,在此不做限制。
[0080]
需要说明的是,网关200可以配置有网关服务、网关总线服务等软件服务。其中,网关200可以通过网关总线服务和后台系统连接,以及通过网关服务和接入设备100连接,网关总线服务和网关服务连接。
[0081]
网关服务用于接入各种类型的设备,支持多种类型的网关服务,支持多副本,单个网关服务副本连接一个网关总线服务副本。
[0082]
网关总线服务用于连接网关服务和后台系统,支持多副本,单个网关总线服务副本可连接多个网关服务。
[0083]
后台系统用于从网关总线服务获取设备状态、通过网关总线服务执行设备命令,以及提供回调接口以接收设备命令执行结果。
[0084]
其中,多种类型的网关服务指的是接入设备和网关服务之间的连接协议可以是多种类型的协议,网关服务的多副本指的是网关服务划分为多个网关服务副本,也即多个网关服务进程;同样地,网关总线服务的多副本指的是网关总线服务划分为多个网关总线服务副本,也即多个网关总线服务进程。这样,若在短时间内发起大量执行命令的请求,由于存在多个网关服务副本和多个网关总线服务副本,可以通过不同的网关服务副本和网关总线服务副本执行对应的命令,从而可以降低网关在处理大量请求时的压力;设备网关服务可控制设备命令执行速度,避免负载过高影响日常业务;网关服务以及网关总线服务均支持横向扩展,解决了网关服务多副本情况下系统执行设备命令无法定位到设备的问题。
[0085]
另外,所有网关总线服务副本共用同一套数据管理(postgresql)数据库和远程字典服务(remote dictionary server,redis)数据库。其中,postgresql数据库用于存储设备命令以及设备命令执行结果,redis数据库用于存储设备的状态信息、设备最后活跃时间、网关服务副本的状态信息、接入设备与网关服务副本之间的关联关系。
[0086]
需要说明的是,网关200还可以配置有网关服务对应的软件开发工具包(software development kit,sdk),用于提供网关服务接入网关总线服务的基础设备,降低网关服务接入网关总线服务的成本,这是因为网服务存在多个网关服务副本,网关总线服务存在多个网关总线服务副本,那么在多个网关服务副本分别连接对应的网关总线服务副本时,通过sdk可以统一维护每个网关服务副本和对应的网关总线服务副本之间的grpc连接,在网关服务副本和网关总线服务副本成功建立连接之后,还可以向网关总线服务副本自动上报网关服务副本已接入设备的指示消息。
[0087]
作为一种示例,参见图1,网关服务划分为网关服务副本1、网关服务副本2以及网关服务副本3,网关总线服务划分为网关总线服务副本1、网关总线服务副本2,网关服务副本1和网关服务副本2分别和网关总线服务副本1通过google远程过程调用(google remote procedure call,grpc)连接,网关服务副本3和网关总线服务副本2通过grpc连接,网关总线服务和后台系统300通过超文本传输协议(hypertext transfer protocol,http)连接。网关服务对应的sdk提供了网关服务与网关总线服务交互的功能,也就是,网关服务和网关
总线服务之间的grpc连接由sdk自动维护。
[0088]
另外,所有网关总线服务副本,也即网关总线服务共用资源,包括数据管理(postgresql)数据库和远程字典服务(remote dictionary server,redis)数据库。
[0089]
下面结合几个具体实施例对本申请的设备状态的确定方法进行详细说明。
[0090]
图2示出了本申请实施例提供的设备状态的确定方法的流程示意图一,本实施例的执行主体可以为图1实施例中的网关200。如图2所示,该方法可以包括:
[0091]
s101、从第一数据库中获取目标接入设备的状态信息、最后活跃时间以及目标接入设备对应的目标网关服务副本的状态信息。
[0092]
s102、根据目标接入设备的状态信息、最后活跃时间以及目标网关服务副本的状态信息,确定目标接入设备的设备状态。
[0093]
第一数据库可以为图1实施例中的redis数据库,第一数据库中存储有多个接入设备的状态信息、最后活跃时间以及每个接入设备对应的网关服务副本的状态信息,每个接入设备对应一个网关服务副本,接入设备的数量包括但不限于一个。
[0094]
可以监测多个接入设备的状态信息、最后活跃时间以及接入设备对应的网关服务副本的状态信息,并以最新一次时间获取到的多个接入设备的状态信息、最后活跃时间以及接入设备对应的网关服务副本的状态信息更新第一数据库。
[0095]
需要说明的是,状态信息用于指示接入设备是否接入对应的网关服务副本,包括已接入状态和未接入状态两种状态。
[0096]
接入设备的最后活跃时间为接入设备最后一次上报心跳数据或业务数据的时间,其中,心跳数据是每隔一段时间向互联的另一方发送一个很小的数据包,业务数据例如可以为大气监测标准站上报的污染物数据(pm2.5、pm10、so2等)。
[0097]
接入设备对应的网关服务副本的状态信息用于指示接入设备对应的网关服务副本网关服务副本是否接入对应的网关总线服务副本,包括已接入状态和未接入状态两种状态。
[0098]
其中,目标接入设备可以为物联网系统中的任意一个接入设备,例如可以为大气监测标准站或者水质监测标准站。
[0099]
在实际应用中,若要确定目标接入设备的设备状态,则目标网关服务副本对应的网关总线服务副本可以从第一数据库中获取目标接入设备的状态信息、最后活跃时间以及目标接入设备对应的目标网关服务副本的状态信息,然后根据目标接入设备的状态信息、最后活跃时间以及目标网关服务副本的状态信息,确定目标接入设备的设备状态,设备状态用于指示目标接入设备是否在线。
[0100]
目标接入设备的状态信息用于指示目标接入设备是否接入目标网关服务副本,目标网关服务副本的状态信息用于指示目标网关服务副本是否接入对应的网关总线服务副本,目标接入设备的最后活跃时间为目标接入设备最后一次上报心跳数据或业务数据的时间。
[0101]
需要说明的是,目标接入设备的设备状态包括在线状态和离线状态两种状态,若目标接入设备的最后活跃时间与当前时间之间的时间间隔大于预设间隔,则可以确定目标接入设备的设备状态为离线状态,也即无法向目标接入设备发送设备命令,也就是说,后台系统到目标接入设备之间的通信是不通的。当然,若目标接入设备的设备状态为在线状态,
说明后台系统可以向目标接入设备发送设备命令,也即后台系统到目标接入设备之间的通信是畅通的。
[0102]
本实施例的设备状态的确定方法,包括:从第一数据库中获取目标接入设备的状态信息、最后活跃时间以及目标接入设备对应的目标网关服务副本的状态信息,其中,每个接入设备对应一个网关服务副本,最后活跃时间为目标接入设备最后一次上报心跳数据或业务数据的时间,根据目标接入设备的状态信息、最后活跃时间以及目标网关服务副本的状态信息,确定目标接入设备的设备状态,设备状态用于指示目标接入设备是否在线。通过综合考虑目标接入设备的状态信息、最后活跃时间以及目标网关服务副本的状态信息,来确定目标接入设备的状态信息,提高了设备状态判断的准确度。
[0103]
图3示出了本申请实施例提供的设备状态的确定方法的流程示意图二,如图3所示,步骤s101之前,该方法还可以包括:
[0104]
s201、通过网关服务对应的软件开发工具包,监测目标接入设备的状态信息、最后活跃时间、目标网关服务副本的状态信息,以及目标接入设备和目标网关服务副本之间的关联关系。
[0105]
s202、将目标接入设备的状态信息、最后活跃时间、目标网关服务副本的状态信息,以及目标接入设备和目标网关服务副本之间的关联关系存储至第一数据库。
[0106]
其中,网关服务对应的软件开发工具包可以为图1实施例中的接入网关总线服务的软件开发工具包(software development kit,sdk)。
[0107]
通过sdk可以监测目标接入设备的状态信息、最后活跃时间,并通过sdk提供的上报设备状态的接口,将目标接入设备的状态信息、最后活跃时间上报至第一数据库中进行存储。
[0108]
另外,通过sdk还可以自动维护目标网关服务副本和网关总线服务副本之间的连接,在目标网关服务副本和网关总线服务副本成功连接之后,还可以将目标网关服务副本的状态信息以及目标接入设备和目标网关服务副本之间的关联关系上报至第一数据库中进行存储。
[0109]
其中,将目标接入设备和目标网关服务副本之间的关联关系存储至第一数据库的目的在于,后续在接收到设备命令时,需要根据该关联关系确定目标接入设备对应的目标网关服务副本,以便通过目标网关服务副本将设备命令转发至目标接入设备,这样,可以解决现有技术中,在设备网关服务存在多副本时,设备命令选择的网关服务副本和设备连接的网关服务副本不是同一个,导致设备命令执行失败的问题。
[0110]
需要说明的是,sdk还可以具有根据目标接入设备的最后活跃时间来判断目标接入设备是否在线的功能,具体地,sdk可以启动定时任务扫描目标接入设备,若目标接入设备的最后活跃时间与当前时间之间的时间间隔超过目标接入设备对应的预设时间间隔,则可以自动上报目标接入设备为离线状态。
[0111]
本实施例的设备状态的确定方法,通过预设的软件开发工具包,监测目标接入设备的状态信息、最后活跃时间、目标网关服务副本的状态信息,以及目标接入设备和目标网关服务副本之间的关联关系,将目标接入设备的状态信息、最后活跃时间、目标网关服务副本的状态信息,以及目标接入设备和目标网关服务副本之间的关联关系存储至第一数据库。本实施例通过预设的软件开发工具包可以监测目标接入设备的状态信息、最后活跃时
间、目标网关服务副本的状态信息,便于后续判断设备状态。
[0112]
图4示出了本申请实施例提供的设备状态的确定方法的流程示意图三,如图4所示,步骤s102可以包括:
[0113]
s1021、若目标接入设备的状态信息为已接入状态、最后活跃时间与当前时间之间的时间间隔小于或等于目标接入设备对应的预设间隔,且目标网关服务副本的状态信息为已接入状态,则确定设备状态为在线状态。
[0114]
s1022、若存在至少一项未接入事项时,确定设备状态为离线状态,其中,未接入事项包括:目标接入设备的状态信息为未接入状态、最后活跃时间与当前时间之间的时间间隔大于目标接入设备对应的预设间隔、目标网关服务副本的状态信息为未接入状态。
[0115]
通过目标网关服务副本对应的网关总线服务副本可以从第一数据库查询,获取目标接入设备的状态信息、最后活跃时间以及目标网关服务副本的状态信息,若目标接入设备的状态信息为已接入状态、最后活跃时间与当前时间之间的时间间隔小于或等于目标接入设备对应的预设间隔,且目标网关服务副本的状态信息为已接入状态,则确定设备状态为在线状态。
[0116]
也就是说,只有在满足目标接入设备的状态信息为已接入状态、最后活跃时间与当前时间之间的时间间隔小于或等于目标接入设备对应的预设间隔,且目标网关服务副本的状态信息为已接入状态的情况下,方可确定目标接入设备的设备状态为在线状态。
[0117]
若存在至少一项未接入事项时,确定设备状态为离线状态,其中,未接入事项包括:目标接入设备的状态信息为未接入状态、最后活跃时间与当前时间之间的时间间隔大于目标接入设备对应的预设间隔、目标网关服务副本的状态信息为未接入状态。
[0118]
需要说明的是,目标接入设备对应的预设间隔可以为目标接入设备与网关服务网络连接方式对应的预设间隔,参见图1,示出了8种连接方式,每种连接方式对应有相应的预设间隔,这样,可在各个网关服务灵活设置预设间隔,解决了现有技术中采用固定间隔来判断设备是否在线,会导致误判的问题。
[0119]
当然,对于每种连接方式对应的预设间隔可以根据实际情况选取,本实施例对此不做特别限定。
[0120]
本实施例的设备状态的确定方法,若目标接入设备的状态信息为已接入状态、最后活跃时间与当前时间之间的时间间隔小于或等于目标接入设备对应的预设间隔,且目标网关服务副本的状态信息为已接入状态,则确定设备状态为在线状态,若存在至少一项未接入事项时,确定设备状态为离线状态,其中,未接入事项包括:目标接入设备的状态信息为未接入状态、最后活跃时间与当前时间之间的时间间隔大于目标接入设备对应的预设间隔、目标网关服务副本的状态信息为未接入状态。通过该方式可以准确确定目标接入设备的设备状态。
[0121]
可选地,网关总线服务还提供有设备状态查询接口,以使后台系统通过设备状态查询接口查询目标接入设备的设备状态,若设备状态为在线状态,则还可以下发设备命令。下面结合图5实施例进行说明。
[0122]
图5示出了本申请实施例提供的设备状态的确定方法的流程示意图四,如图5所示,若设备状态为在线状态,该方法还可以包括:
[0123]
s301、通过预设的网关总线服务接口接收后台系统发送的设备命令。
[0124]
s302、根据目标接入设备的标识,从第一数据库中查询目标接入设备对应的目标网关服务副本。
[0125]
预设的网关总线服务接口可以为目标网关服务副本对应的网关总线服务副本提供的服务接口,后台系统通过网关总线服务副本提供的网关总线服务接口可以向网关总线服务副本下发设备命令,设备命令中包括目标接入设备的标识。也就是说,目标网关服务副本对应的网关总线服务副本可以通过该网关总线服务接口接收后台系统发送的设备命令,然后根据目标接入设备的标识,从第一数据库中的关联关系中查询确定目标接入设备对应的目标网关服务副本。
[0126]
s303、通过目标网关服务副本向目标接入设备发送设备命令,以及接收目标接入设备反馈的设备命令对应的执行结果,并将执行结果存储至第二数据库。
[0127]
通过目标网关服务副本向目标接入设备发送设备命令,设备命令用于请求目标接入设备执行相应的操作,并获取该设备命令对应的执行结果,以设备命令用于请求目标接入设备进行水质监测为例,该设备命令对应的执行结果可以为水质监测结果。
[0128]
目标接入设备获取到该设备命令对应的执行结果之后,还可以通过目标网关服务副本向目标网关服务副本对应的网关总线服务副本发送该设备命令对应的执行结果,相应的,通过网关总线服务副本即可接收目标接入设备反馈的设备命令对应的执行结果,并将该设备命令对应的执行结果存储至第二数据库,第二数据库可以为图1实施例中的postgresql数据库。
[0129]
可选地,步骤s303之前,还可以将设备命令和目标网关服务副本之间的关联关系存储至第二数据库,也就是,将设备命令和目标网关服务副本关联起来,便于后续目标网关服务副本按预设周期向目标网关服务副本对应的网关总线服务副本请求获取设备命令,网关总线服务副本用于从第二数据库中获取设备命令。
[0130]
便于后续查询该设备命令是由哪个网关服务副本进行转发的。
[0131]
可选地,设备命令中还包括:命令执行结果回调接口地址,该方法还包括:
[0132]
通过命令执行结果回调接口地址向后台系统发送执行结果。
[0133]
后台系统下发的设备命令中还包括命令执行结果回调接口地址,那么在目标接入设备将该设备命令的执行结果存储至第二数据库时,还可以调用命令执行结果回调接口地址向后台系统发送执行结果,以使后台系统获取到该设备命令对应的执行结果。
[0134]
本实施例的设备状态的确定方法,通过预设的网关总线服务接口接收后台系统发送的设备命令,根据目标接入设备的标识,从第一数据库中查询目标接入设备对应的目标网关服务副本,通过目标网关服务副本向目标接入设备发送设备命令,以及接收目标接入设备反馈的设备命令对应的执行结果,并将执行结果存储至第二数据库。在本实施例中,若目标接入设备为在线状态,则还可以通过目标网关服务副本向目标接入设备发送设备命令,并通过目标网关副本接收目标接入设备反馈的设备命令对应的执行结果,通过目标接入设备对应的目标网关副本实现设备命令的下发,进而使得设备网关服务可控制设备命令执行速度,避免负载过高影响日常业务。
[0135]
图6示出了本申请实施例提供的设备状态的确定方法的流程示意图五,如图6所示,步骤s303之前,该方法还可以包括:
[0136]
s401、将设备命令和目标网关服务副本之间的关联关系以及设备命令存储至第二
数据库。
[0137]
s402、通过目标网关服务副本按预设周期向目标网关服务副本对应的网关总线服务副本请求获取设备命令,网关总线服务副本用于从第二数据库中获取设备命令。
[0138]
在通过目标网关服务副本向目标接入设备发送设备命令之前,目标网关服务副本对应的网关总线服务副本还可以将设备命令和目标网关服务副本之间的关联关系以及设备命令存储至第二数据库,第二数据库可以为图1实施例中的postgresql数据库,也就是说,将该设备命令和目标网关服务副本之间的关联关系以及设备命令进行缓存。
[0139]
然后,通过目标网关服务副本按照预设周期向目标网关服务副本对应的网关总线服务副本请求获取待执行设备命令列表,其中,目标网关服务副本对应的网关总线服务副本用于从第二数据库中获取设备命令,待执行设备命令列表中包括该设备命令。具体地,网关总线服务副本根据目标网关服务副本的标识,查询第二数据库中存储的关联关系,以获取目标网关服务副本对应的设备命令。
[0140]
由于多个网关总线服务副本共用第一个数据库和第二数据库,采用上述方法可以保证网关服务副本总能获取到自己所连接的接入设备需要执行的设备命令,并且只能获取到自己所连接设备需要执行的设备命令。
[0141]
需要说明的是,预设周期可以根据实际情况选择,本实施例对此不做特别限定。
[0142]
可选地,步骤s402之前,该方法还可以包括:
[0143]
通过网关服务对应的软件开发工具包提供的接口为目标网关服务副本配置预设周期。
[0144]
其中,网关服务对应的软件开发工具包可以为图1实施例中的接入网关总线服务的软件开发工具包(software development kit,sdk)。
[0145]
具体地,可以通过该软件开发工具提供的接口为目标网关服务副本配置预设周期,其中,该预设周期为目标网关服务副本定时向对应的网关总线副本请求获取设备命令的周期,也就是说,通过sdk启动定时任务自动拉取设备命令。
[0146]
通过目标网关服务副本向目标接入设备发送设备命令,包括:
[0147]
通过网关服务对应的软件开发工具包提供的接口注册设备命令回调函数;通过软件开发工具包调用设备命令回调函数,以向目标接入设备发送设备命令。
[0148]
其中,设备命令回调函数用于执行设备命令,也即向目标接入设备发送设备命令。目标网关服务副本通过该软件开发工具包提供的接口可以注册设备命令回调函数,目标网关服务获取到设备命令之后,可以通过该软件开发工具包调用该设备命令回调函数,以向目标接入设备发送该设备命令。也就是说,通过sdk调用该命令回调函数以执行设备命令。
[0149]
本实施例的设备状态的确定方法,将设备命令和目标网关服务副本之间的关联关系以及设备命令存储至第二数据库,通过目标网关服务副本按预设周期向目标网关服务副本对应的网关总线服务副本请求获取设备命令,网关总线服务副本用于从第二数据库中获取设备命令。由于多个网关总线服务副本共用第一个数据库和第二数据库,因此可以保证网关服务副本总能获取到自己所连接的接入设备需要执行的设备命令,并且只能获取到自己所连接设备需要执行的设备命令,解决现有技术中,设备网关服务存在多副本时,设备命令选择的网关服务副本和设备连接的网关服务副本不是同一个,导致设备命令执行失败的问题,也即解决了网关服务多副本情况下系统执行设备命令无法定位到设备的问题。
[0150]
图7示出了本申请实施例提供的设备状态的确定装置的结构示意图,设备状态的确定装置可以集成在网关200中。如图7所示,设备状态的确定装置50包括:
[0151]
获取模块501,用于从第一数据库中获取目标接入设备的状态信息、最后活跃时间以及所述目标接入设备对应的目标网关服务副本的状态信息,其中,每个接入设备对应一个网关服务副本,所述最后活跃时间为所述目标接入设备最后一次上报心跳数据或业务数据的时间;
[0152]
处理模块502,用于根据所述目标接入设备的状态信息、最后活跃时间以及所述目标网关服务副本的状态信息,确定所述目标接入设备的设备状态,所述设备状态用于指示所述目标接入设备是否在线。
[0153]
可选地,所述处理模块502,具体用于:
[0154]
若所述目标接入设备的状态信息为已接入状态、所述最后活跃时间与当前时间之间的时间间隔小于或等于所述目标接入设备对应的预设间隔,且所述目标网关服务副本的状态信息为已接入状态,则确定所述设备状态为在线状态。
[0155]
若存在至少一项未接入事项时,确定所述设备状态为离线状态,其中,所述未接入事项包括:所述目标接入设备的状态信息为未接入状态、所述最后活跃时间与当前时间之间的时间间隔大于所述目标接入设备对应的预设间隔、所述目标网关服务副本的状态信息为未接入状态。
[0156]
可选地,所述处理模块502,还用于:
[0157]
通过网关服务对应的软件开发工具包,监测所述目标接入设备的状态信息、所述最后活跃时间、所述目标网关服务副本的状态信息,以及所述目标接入设备和所述目标网关服务副本之间的关联关系;
[0158]
存储模块503,用于将所述目标接入设备的状态信息、所述最后活跃时间、所述目标网关服务副本的状态信息,以及所述目标接入设备和所述目标网关服务副本之间的关联关系存储至所述第一数据库。
[0159]
可选地,若所述设备状态为在线状态,所述装置还包括:
[0160]
接收模块504,用于通过预设的网关总线服务接口接收后台系统发送的设备命令,所述设备命令中包括所述目标接入设备的标识;
[0161]
所述处理模块,还用于根据所述目标接入设备的标识,从所述第一数据库中查询所述目标接入设备对应的所述目标网关服务副本;
[0162]
发送模块505,用于通过所述目标网关服务副本向所述目标接入设备发送所述设备命令,以及接收所述目标接入设备反馈的所述设备命令对应的执行结果,并将所述执行结果存储至第二数据库。
[0163]
可选地,所述设备命令中还包括:命令执行结果回调接口地址,所述发送模块505,还用于:
[0164]
通过所述命令执行结果回调接口地址向所述后台系统发送所述执行结果。
[0165]
可选地,所述存储模块503,还用于:
[0166]
将所述设备命令和所述目标网关服务副本之间的关联关系以及所述设备命令存储至所述第二数据库;
[0167]
通过所述目标网关服务副本按预设周期向所述目标网关服务副本对应的网关总
线服务副本请求获取所述设备命令,所述网关总线服务副本用于从所述第二数据库中获取所述设备命令。
[0168]
可选地,所处理模块502,还用于:
[0169]
通过网关服务对应的软件开发工具包提供的接口为所述目标网关服务副本配置所述预设周期;
[0170]
所述发送模块505,具体用于:
[0171]
通过网关服务对应的软件开发工具包提供的接口注册设备命令回调函数;
[0172]
通过所述软件开发工具包调用所述设备命令回调函数,以向所述目标接入设备发送所述设备命令。
[0173]
本实施例的设备状态的确定装置的实现过程和实现原理,可以参见上述方法实施例提供的设备状态的确定方法,在此不再赘述。
[0174]
图8示出了本申请实施例提供的网关的结构示意图,如图8所示,网关200包括:处理器210、存储器220和总线230,所述存储器220存储有所述处理器210可执行的机器可读指令,当网关200运行时,所述处理器210与所述存储器220之间通过总线230通信,所述处理器210执行所述机器可读指令,以执行上述方法实施例。
[0175]
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例。
[0176]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0177]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0178]
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1