一种设备管理命令发布方法及管理设备与流程

文档序号:17355492发布日期:2019-04-09 21:37阅读:252来源:国知局
一种设备管理命令发布方法及管理设备与流程

本发明涉及通信技术领域,特别涉及一种设备管理命令发布方法,本发明同时还涉及一种管理设备。



背景技术:

现有技术中,对于客户端的实时监测采用ajax(asynchronousjavascriptandxml,异步javascript和xml)长轮询技术,客户端向服务器发送ajax请求,服务器接到请求后保持住连接,直到服务器有新消息时,服务器才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求,无法直接做到服务器直接向客户端推送,服务器保持连接会消耗资源,返回数据顺序无保证,难于管理维护。并且长轮询造成系统资源占用大,且不稳定,延迟高,很容易造成命令丢失。

在实际生活中,随着互联网技术的飞速发展,在物联网的设备新的问题不断出现,对物联网设备的实时监管维护提出了新的需求,如实现设备的统一调度,设备远程参数更新,设备远程程序升级,设备远程参数调节等。这些需求的第一前提就是实时化批量处理,因此,如何通过管理设备实现批量设备的实时命令下达已经成为急需解决的技术问题。



技术实现要素:

本发明提供一种基于signalr模块设备管理命令发布方法,用以解决现有设备远程维护系统资源占用大,不稳定,延迟高的问题,所述方法应用于设有signalr模块的管理设备,该方法包括:

所述管理设备根据需要发送至被管理设备的命令生成待发送的指令信息;

所述管理设备对所述被管理设备当前的连接状态进行检测;

若所述被管理设备当前为离线状态,所述管理设备将所述待发送的指令信息进行本地存储,并定期对所述被管理设备当前的连接状态进行检测以及获取新生成的指令信息;

若所述被管理设备当前为在线状态,所述管理设备通过所述signalr模块将所述待发送的指令信息发送至所述被管理设备,并在所述被管理设备执行完毕所述指令信息后将所述指令信息中的指令状态修改为已执行。

优选地,所述管理设备中预设数据库,所述管理设备根据需要发送至被管理设备的命令生成指令信息,具体为:

所述管理设备根据所述命令在所述数据库中添加所述指令信息,所述指令信息包含所述被管理设备的标识、所述命令的内容、类型以及所述指令状态。

优选地,所述标识具体为所述被管理设备在处于在线状态时与所述管理设备生成的通讯标识字段且与所述被管理设备唯一对应,所述管理设备对所述被管理设备当前的连接状态进行检测,具体为:

所述管理设备判断所述数据库中是否存在所述通讯标识字段;

若是,所述管理设备确认所述被管理设备当前为在线状态;

若否,所述管理设备确认所述被管理设备当前为离线状态。

优选地,所述管理设备通过所述signalr模块将所述指令信息发送至所述被管理设备,具体为:

所述管理设备基于所述通讯标识字段与所述被管理设备建立signalr连接;

所述管理设备调用所述signalr模块发送所述指令信息至所述被管理设备。

优选地,在所述管理设备设有管理客户端,在所述管理设备根据需要发送至被管理设备的命令生成指令信息之前,还包括:

所述管理设备在所述管理客户端中展示当前所有的可管理设备;

所述管理设备根据用户选择的一个或多个可管理设备以及所述用户输入的一个或多个命令获取需要发送至被管理设备的命令。

相应的,本申请还提出了一种基于signalr模块管理设备,包括:

生成模块,根据需要发送至被管理设备的命令生成待发送的指令信息;

检测模块,对所述被管理设备当前的连接状态进行检测;

离线处理模块,若所述被管理设备当前为离线状态,将所述待发送的指令信息进行本地存储,并定期对所述被管理设备当前的连接状态进行检测以及获取新生成的指令信息;

在线处理模块,若所述被管理设备当前为在线状态,通过所述signalr模块将所述待发送的指令信息发送至所述被管理设备,并在所述被管理设备执行完毕所述指令信息后将所述指令信息中的指令状态修改为已执行。

相应的,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的设备管理命令发布方法。

相应的,本发明还提出了一种计算机程序产品,其特征在于,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行如上所述的设备管理命令发布方法。

通过应用本申请的技术方案,若所述被管理设备当前为离线状态,所述管理设备将所述待发送的指令信息进行本地存储,并定期对所述被管理设备当前的连接状态进行检测以及获取新生成的指令信息,若所述被管理设备当前为在线状态,所述管理设备通过所述signalr模块将所述待发送的指令信息发送至所述被管理设备,基于采用signalr技术,在设备管理命令发布过程中减少了系统资源占用,实现设备实时远程维护,提高了工作效率。

附图说明

图1为本申请提出的一种设备管理命令发布方法的流程示意图;

图2为本申请具体实施例中设备管理命令发布方法具体操作流程示意图;

图3为本申请提出的一种管理设备的结构示意图;

图4为本申请具体实施例中管理设备的结构示意图。

具体实施方式

如背景技术所述,现有技术在采用ajax长轮询对设备监测管理中系统资源占用大,不稳定,延迟高,很容易造成命令丢失。

为解决上述问题,本申请实施例提出了一种设备管理命令发布方法。该方案基于signalr通信技术进行设备管理命令发布,减少系统资源占用,实现设备实时远程维护,提高了工作效率。

如图1所示,为上述设备管理命令发布方法的流程示意图,该方法包括如下步骤:

步骤s101,所述管理设备根据需要发送至被管理设备的命令生成待发送的指令信息。

如上所述,本申请中的命令是以指令信息的形式由管理设备发送至被管理设备的,根据需要发送至被管理设备的命令,管理设备会生成相应的待发送指令信息。

为使所述命令与指令信息相对应,在本申请的优选实施例中,所述管理设备中预设数据库,所述管理设备根据需要发送至被管理设备的命令生成指令信息,具体为:

所述管理设备根据所述命令在所述数据库中添加所述指令信息,所述指令信息包含所述被管理设备的标识、所述命令的内容、类型以及所述指令状态。

在本申请的具体应用场景中,管理设备发布指令的同时会在数据库新增相应的指令数据,该指令数据包含接收命令的设备的标识,命令类型,命令内容和指令状态,其中指令状态默认为“新命令”状态。

举例来说,所述命令内容包括但不限于:执行更新参数、更新节目、更新定时、音量调节、亮度调节、电源开关、音量开关、升级程序、设备重启等操作。

在此需要说明的是,以上优选实施例的方案仅为本申请所提出的一种具体实现方案,其他实现根据需要发送至被管理设备的命令生成待发送的指令信息的方式均属于本申请的保护范围。

步骤s102,所述管理设备对所述被管理设备当前的连接状态进行检测。

如上所述,管理设备会对被管理设备的当前连接状态进行检测,确认被管理设备为在线状态或离线状态。

为使管理设备对被管理设备当前的连接状态进行准确检测,在本申请的优选实施例中,所述标识具体为所述被管理设备处于在线状态时与所述管理设备生成的通讯标识字段且与所述被管理设备唯一对应,所述管理设备对所述被管理设备当前的连接状态进行检测,具体为:

所述管理设备判断所述数据库中是否存在所述通讯标识字段;

若是,所述管理设备确认所述被管理设备当前为在线状态;

若否,所述管理设备确认所述被管理设备当前为离线状态。

如上所述,所述管理设备通过判断所述数据库中是否存在与所述被管理设备唯一对应的通讯标识字段,进而判断所述被管理设备为在线状态或离线状态。

在本申请的具体应用场景中,所有被管理设备会有一个signalr的唯一通讯标识字段,该标识是通讯双方建立连接的唯一标识,当设备在线时,会产生这个唯一标识并保存在数据库。

在此需要说明的是,以上优选实施例的方案仅为本申请所提出的一种具体实现方案,其他实现管理设备对所述被管理设备当前的连接状态进行检测的方式均属于本申请的保护范围。

步骤s103,若所述被管理设备当前为离线状态,所述管理设备将所述待发送的指令信息进行本地存储,并定期对所述被管理设备当前的连接状态进行检测以及获取新生成的指令信息。

如上所述,当所述被管理设备为离线状态时,所述管理设备会将待发送的指令信息进行本地存储,所述管理设备还会定期检测被管理设备的连接状态以及获取新生成的指令信息。

在本申请的具体应用场景中,若管理设备判断被管理设备为离线状态,由于无法与signalr建立实时通讯,管理设备会将命令临时保存在本地存储中,当被管理设备在线时,管理设备会轮询本地存储中的指令信息,如果判断有指令状态为“新命令”的指令,则将该指令信息发送至被管理设备。

在此需要说明的是,以上优选实施例的方案仅为本申请所提出的一种具体实现方案,其他实现被管理设备当前为离线状态时,管理设备将所述待发送的指令信息进行本地存储的方式均属于本申请的保护范围。

步骤s104,若所述被管理设备当前为在线状态,所述管理设备通过所述signalr模块将所述待发送的指令信息发送至所述被管理设备,并在所述被管理设备执行完毕所述指令信息后将所述指令信息中的指令状态修改为已执行。

如上所述,当所述被管理设备为在线状态时,所述管理设备通过signalr模块将待发送的指令信息发送给所述被管理设备,所述被管理设备接收指令信息后执行所述指令信息,并在执行完毕后将指令状态修改为已执行。

为使管理设备通过signalr模块发送指令信息至被管理设备,在本申请的优选实施例中,所述管理设备通过所述signalr模块将所述指令信息发送至所述被管理设备,具体为:

1)、所述管理设备基于所述通讯标识字段与所述被管理设备建立signalr连接;

2)、所述管理设备调用所述signalr模块发送所述指令信息至所述被管理设备。

在本申请的具体应用场景中,管理设备打开网站连接到signalr模块,准备通过signalr模块进行信息获取,管理设备检测浏览器是否支持javascript(一种直译式脚本语言),并提示用户允许使用javascript;signalr模块判断管理设备是否支持websocket(基于tcp的全双工通信协议)技术,若支持则采用websocket技术发送消息,若不支持,则采用sse(streamingsimdextensions,指令集)、ie9(internetexplorer9,ie浏览器9)、长轮询技术等其他技术发送消息;管理设备选用当前浏览器支持的协议,将被管理设备的id(identity,帐号)、ip(internetprotocol,网络协议)地址作为标识通过自身的消息处理服务模块发送至signalr模块;所述管理设备基于所述标识与所述被管理设备建立signalr连接。

在本申请的具体应用场景中,被管理设备执行所述指令信息,执行完毕后,被管理设备会将指令状态的更改情况通知web端,web端更改数据库中的设备指令状态。

在此需要说明的是,以上优选实施例的方案仅为本申请所提出的一种具体实现方案,其他实现管理设备与所述被管理设备建立signalr连接的方式均属于本申请的保护范围。

为了便于用户针对选定设备发送特定命令,在本申请的优选实施例中,在所述管理设备设有管理客户端,在所述管理设备根据需要发送至被管理设备的命令生成指令信息之前,还包括:

1)、所述管理设备在所述管理客户端中展示当前所有的可管理设备;

2)、所述管理设备根据用户选择的一个或多个可管理设备以及所述用户输入的一个或多个命令获取需要发送至被管理设备的命令。

在本申请的具体应用场景中,在发布指令之前,所述管理设备会针对命令的发送方式对指令信息进行编辑。管理客户端有设备管理列表,显示了所有可管理设备,可在设备管理列表进行多选操作,并且选择需要执行的命令下拉框,实现针对多设备发送单一命令。或者在管理客户端还包括设备编辑页面,在该设备编辑页面可以针对单一设备进行编辑发送多个命令。

在此需要说明的是,以上优选实施例的方案仅为本申请所提出的一种具体实现方案,其他实现管理设备获取待发送的命令的方式均属于本申请的保护范围。

通过应用本申请的技术方案,若所述被管理设备当前为离线状态,所述管理设备将所述待发送的指令信息进行本地存储,并定期对所述被管理设备当前的连接状态进行检测以及获取新生成的指令信息,若所述被管理设备当前为在线状态,所述管理设备通过所述signalr模块将所述待发送的指令信息发送至所述被管理设备,基于采用signalr技术,在设备管理命令发布过程中减少了系统资源占用,实现设备实时远程维护,提高了工作效率。

为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。

signalr是为asp.net(activeserverpage.net,微软公司推出的新一代脚本语言)开发人员提供的一个库,可以简化开发人员将实时web(worldwideweb,全球广域网)功能添加到应用程序的过程。实时web功能是指这样一种功能:当客户端处于连接状态时服务器可以立即向其推送内容,而不是让服务器等待客户端请求新的数据。signalr将与客户端进行实时通信,这样既好用,而且也有足够的扩展性。以前用户需要刷新页面或使用ajax轮询才能实现的实时显示数据,现在只要使用signalr,就可简单实现。因此,本发明基于signalr技术,在命令发布过程中减少了系统资源占用,实现设备实时远程维护,提高了工作效率。

本发明实施例提供了一种设备管理命令发布方法,通过将signalr通信技术与windows硬件设备模块相结合,使用windows系统api(applicationprogramminginterface,应用程序编程接口)控制设备动作,如声音调节、亮度调节、开关机、屏幕调整以及串口功能,达到物联网初步效果,实现远程维护设备,提高运维人员的工作效率。

本发明实施例中的设备管理命令发布方法,分为单台设备管理命令发布和批量设备管理命令发布,并可针对单台被管理设备发布多个不同的命令。发布的命令会先保存进数据库,然后被轮询线程获取,如果被管理设备在线会立即执行相关操作,如果被管理设备不在线,当被管理设备在线后会获取指令状态为“新命令”的命令并执行相关操作。其中,发布的命令包括更新参数、更新节目、更新定时、音量调节、亮度调节、电源开关、音量开关、升级程序、设备重启等。本发明实现了web端和被管理设备的实时通信功能,以及被管理设备离线后的命令处理,本发明采用即时signalr的开源模块,其中signalr是一个开源的点对点通讯技术。

本发明实施例具体操作流程如图2所示,以下结合图2对本方法操作流程作进一步说明。

a)web端指令发布。web端向被管理设备发布指令,在发布指令的同时会在数据库新增相应的指令数据,该指令数据包含接收指令的被管理设备的标识,命令类型,命令内容和指令状态,其中指令状态默认为“新命令”状态。

其中,在发布指令之前,web端会针对命令的发送方式对指令信息进行编辑。在web端有设备管理列表,显示了所有被管理设备,可在设备管理列表进行多选操作,并且选择需要执行的命令下拉框,实现针对多个被管理设备发送单一命令。或者,在web端还包括设备编辑页面,在该设备编辑页面可以针对单一被管理设备进行编辑发送多个命令。

b)web端发送指令信息。在添加数据库之后,web端调用signalr模块进行指令信息发送,判断被管理设备是否在线,若被管理设备在线,通过与signalr建立连接,将指令信息发送到被管理设备。

在此之前,所有被管理设备会有一个signalr的唯一通讯标识字段,该标识是通讯双方建立连接的唯一标识,当被管理设备在线时,会产生这个唯一标识并保存在数据库。该唯一标识的生成过程可以为:web端打开网站连接到signalr模块,准备通过signalr模块进行信息获取,web端检测浏览器是否支持javascript,并提示用户允许使用javascript;signalr模块判断web端是否支持websocket技术,若支持则采用websocket技术发送消息,若不支持,则采用sse、ie9、长轮询技术等其他技术发送消息;web端选用当前浏览器支持的协议,将被管理设备id、ip地址作为标识通过自身的消息处理服务模块发送至signalr模块;web端基于所述标识与被管理设备建立signalr连接。

websocket是html5(超文本5.0)提供的新的api,可以在web网页与服务器端建立socket连接,当websocket可用时(即浏览器支持html5),signalr使用websocket,当不支持时,signalr将使用其它技术来保证达到相同的效果。signalr也提供了非常简单易用的高阶api,使服务器端可以单个或批量调用客户端上的javascript函数,并且非常方便地进行连接管理,例如客户端连接到服务器端,断开连接,客户端分组,以及客户端授权,使用signalr都非常容易实现。websocket是signalr的理想传输方式,因为它能够最高效地使用服务器的内存、能实现客户端和服务器之间的全双工通信,但它也有最严格的环境需求:websocket要求服务器是windowsserver2012或windows8以及.netframework4.5。

c)被管理设备执行指令。被管理设备接收到从signalr发出的指令信息,根据指令信息的内容执行相应的操作,包括但不限于:执行更新参数、更新节目、更新定时、音量调节、亮度调节、电源开关、音量开关、升级程序、设备重启等操作。

d)变更被管理设备的指令状态。被管理设备针对命令执行完成后,会触发被管理设备当前的指令状态的更改,包括但不限于:已更新,已调节,已开关,已升级,已重启等。

e)通知web端更改指令状态。被管理设备将指令状态的更改情况通知web端,web端更改数据库中的被管理设备指令状态。

其中,在上述步骤b)中,若web端判断被管理设备为离线状态,由于无法与signalr建立实时通讯,web端会将命令临时保存在本地存储中,当被管理设备在线时,web端会轮询本地存储中的指令信息,如果判断有指令状态为“新命令”的指令,则将通过调用signalr模块将该指令信息发送至被管理设备,并继续进行上述步骤c)-e)的操作。

通过应用本申请的技术方案,若所述被管理设备当前为离线状态,所述管理设备将所述待发送的指令信息进行本地存储,并定期对所述被管理设备当前的连接状态进行检测以及获取新生成的指令信息,若所述被管理设备当前为在线状态,所述管理设备通过所述signalr模块将所述待发送的指令信息发送至所述被管理设备,基于采用signalr技术,在设备管理命令发布过程中减少了系统资源占用,实现设备实时远程维护,提高了工作效率。

为了达到以上技术目的,本申请提出了一种基于signalr模块管理设备,如图3所示,包括:

生成模块301,根据需要发送至被管理设备的命令生成待发送的指令信息;

检测模块302,对所述被管理设备当前的连接状态进行检测;

离线处理模块303,若所述被管理设备当前为离线状态,将所述待发送的指令信息进行本地存储,并定期对所述被管理设备当前的连接状态进行检测以及获取新生成的指令信息;

在线处理模块304,若所述被管理设备当前为在线状态,通过所述signalr模块将所述待发送的指令信息发送至所述被管理设备,并在所述被管理设备执行完毕所述指令信息后将所述指令信息中的指令状态修改为已执行。

在具体的应用场景中,如图4所示,还包括:

添加模块401,根据所述命令在所述数据库中添加所述指令信息,所述指令信息包含所述被管理设备的标识、所述命令的内容、类型以及所述指令状态。

在具体的应用场景中,还包括:

判断模块402,所述标识具体为所述被管理设备在处于在线状态时与所述管理设备生成的通讯标识字段且与所述被管理设备唯一对应,所述管理设备对所述被管理设备当前的连接状态进行检测,具体为:

判断所述数据库中是否存在所述通讯标识字段;

若是,确认所述被管理设备当前为在线状态;

若否,确认所述被管理设备当前为离线状态。

在具体的应用场景中,还包括:

发送模块403,通过所述signalr模块将所述指令信息发送至所述被管理设备,具体为:

基于所述通讯标识字段与所述被管理设备建立signalr连接;

调用所述signalr模块发送所述指令信息至所述被管理设备。

在具体的应用场景中,还包括,

命令获取模块404,在所述管理设备设有管理客户端,在所述管理设备根据需要发送至被管理设备的命令生成指令信息之前,

在所述管理客户端中展示当前所有的可管理设备;

根据用户选择的一个或多个可管理设备以及所述用户输入的一个或多个命令获取需要发送至被管理设备的命令。

通过应用本申请的技术方案,若所述被管理设备当前为离线状态,所述管理设备将所述待发送的指令信息进行本地存储,并定期对所述被管理设备当前的连接状态进行检测以及获取新生成的指令信息,若所述被管理设备当前为在线状态,所述管理设备通过所述signalr模块将所述待发送的指令信息发送至所述被管理设备,基于采用signalr技术,在设备管理命令发布过程中减少了系统资源占用,实现设备实时远程维护,提高了工作效率。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括以若干指令的形式使一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解装置中的模块可以按照实施场景描述分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

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