一种应急设备远程管理方法
文献发布时间:2023-06-19 11:00:24
技术领域
本发明涉及应急广播技术领域,特别指一种应急设备远程管理方法。
背景技术
应急广播的应急设备(通信设备)种类繁多,包括应急广播县级适配器、应急广播乡镇适配器、应急广播音柱、收扩机以及IP话筒等,所有的应急设备运行都依赖一些参数的设置,例如锁定频点、设备音量、资源编码、网口设置、平台配置等参数。
传统上,服务端利用简单网络管理协议(SNMP)对各应急设备进行管理,但简单网络管理协议不能传输大量的数据,数据结构也需要服务端和应急设备或者客户端协商好,不能进行良好的扩展,且采用简单网络管理协议的连接是不能加密的,存在安全隐患。传统上也存在利用TR069协议对各应急设备进行管理的方法,TR069协议虽然高效、安全、通用性好,但TR069协议复杂度高,在应急设备和客户端上还需要集成对应的协议,扩展数据也需要服务端和应急设备或者客户端协商修改,虽然配置信息可以及时更新,但在应用层的扩展上显得不够灵活。基于上述缺点,导致前端的应急设备在使用过程中,当用户不懂操作或误操作时,无法安全、便捷的远程对应急设备进行管理。
因此,如何提供一种应急设备远程管理方法,实现提升应急设备远程管理的安全性以及便捷性,成为一个亟待解决的问题。
发明内容
本发明要解决的技术问题,在于提供一种应急设备远程管理方法,实现提升应急设备远程管理的安全性以及便捷性。
本发明是这样实现的:一种应急设备远程管理方法,包括如下步骤:
步骤S10、服务端基于UDP协议对各开机的应急设备进行身份认证后,建立长连接;
步骤S20、服务端基于TCP协议对各客户端进行身份认证后,建立连接;
步骤S30、服务端接收客户端发送的JSON格式的请求命令,将所述请求命令转发给对应的应急设备,接收应急设备发送的JSON格式的反馈数据并转发给对应的客户端,完成应急设备的远程管理;
所述步骤S10与步骤S20不分先后顺序。
进一步地,所述步骤S10具体包括:
步骤S11、各应急设备开机后,将本机预设的序列号以及特征字符串通过UDP协议发送给服务端;
步骤S12、服务端接收所述序列号以及特征字符串,并查找数据库中是否存在对应的所述序列号以及特征字符串,若是,则应急设备身份认证通过,并进入步骤S13;若否,则应急设备身份认证不通过,并结束流程;
步骤S13、服务端创建一应急设备列表,获取应急设备的IP地址、UDP地址以及UDP端口,将所述IP地址、UDP地址、UDP端口、序列号以及特征字符串存储至应急设备列表;
步骤S14、服务端预设一次数阈值n以及一心跳周期,其中n为正整数;服务端将所述心跳周期发送给应急设备,应急设备基于所述心跳周期向服务端发送心跳数据;
步骤S15、服务端判断n个心跳周期内是否接收到所述心跳数据,若是,则生成设备在线的设备状态,保持心跳长连接,并将所述设备状态存储至应急设备列表;若否,则生成设备离线的设备状态,并将所述设备状态存储至应急设备列表。
进一步地,所述步骤S11中,所述序列号以及特征字符串具有唯一性。
进一步地,所述步骤S14中,所述心跳数据采用二进制编码。
进一步地,所述步骤S14中,所述心跳数据携带UDP地址、UDP端口、序列号以及特征字符串。
进一步地,所述步骤S20具体包括:
步骤S21、客户端基于TCP协议向服务端发送连接请求;所述连接请求携带用户名和密码;
步骤S22、服务端接收到所述连接请求后,判断所述连接请求是否仅包含用户名和密码,若是,则进入步骤S23;若否,则结束流程;
步骤S23、服务端查找数据库中是否存在对应的所述用户名和密码,若是,则客户端身份认证通过,并进入步骤S24;若否,则客户端身份认证不通过,并结束流程;
步骤S24、服务端预设一时间阈值t以及一个数阈值m,其中t和m均为正整数;服务端获取客户端的IP地址,判断相同IP地址客户端连接服务端的个数是否超过m个,若否,则进入步骤S25;若是,则断开与客户端的连接,并结束流程;
步骤S25、服务端判断客户端在t秒时间内是否有发送数据,若是,则保持与客户端的连接;若否,则断开与客户端的连接,并结束流程。
进一步地,所述步骤S22中,所述密码采用非对称加密算法进行加密。
进一步地,所述步骤S30具体包括:
步骤S31、服务端创建一缓冲列表;服务端接收客户端发送的JSON格式的请求命令,获取客户端的客户端地址,并将所述请求命令与客户端地址的对应关系存储至缓冲列表中;所述请求命令为设备状态查询命令、设备监控命令、参数设置命令或者应急设备TCP连接命令;
步骤S32、服务端判断所述请求命令的类型,若为设备状态查询命令,则进入步骤S33;若为设备监控命令,则进入步骤S34、若为参数设置命令,则进入步骤S35;若为应急设备TCP连接命令,则进入步骤S36;
步骤S33、服务端基于设备状态查询命令中携带的查询关键字,模糊查询所述应急设备列表中的设备状态,将设备状态为设备在线的应急设备对应的UDP地址、UDP端口以及序列号用非对称加密算法加密生成密文,并进入步骤S37;
步骤S34、服务端基于设备监控命令中携带的监控规则对应急设备进行监控,当监控到所述应急设备列表中对应的应急设备的设备状态发送变化时,将变化后的设备状态以及对应的UDP地址、UDP端口、序列号用非对称加密算法加密生成密文,并进入步骤S37;
步骤S35、服务端将所述参数设置命令转发给对应的应急设备,应急设备执行接收的所述参数设置命令后,向服务端发送JSON格式的反馈数据,服务端将反馈数据用非对称加密算法加密生成密文,并进入步骤S37;
步骤S36、服务端基于应急设备TCP连接命令携带的序列号,与对应的应急设备建立TCP连接,并将对应的TCP地址以及TCP端口用非对称加密算法加密生成密文,并进入步骤S37;
步骤S37、服务端利用Base64编码对密文进行压缩,再基于所述缓冲列表将压缩后的密文转发给对应的客户端。
进一步地,所述步骤S34中,所述监控规则为序列号范围。
进一步地,所述非对称加密算法为RSA/ECB/PKCS1Padding。
本发明的优点在于:
1、通过序列号以及特征字符串对应急设备进行身份认证,基于UDP协议保存心态连接;通过用户名和用非对称加密算法进行加密的密码对客户端进行身份认证,相同IP地址客户端连接服务端的个数不能超过m个,客户端在t秒时间内无发送数据则断开连接,极大的提升了应急设备和客户端登录的安全性;且应急设备与服务端,客户端与服务端之间通信的数据均先用非对称加密算法加密,再用Base64编码进行压缩,即进行了双重加密,极大的提升了数据传输的安全性,最终极大的提升了应急设备远程管理的安全性。
2、通过客户端、服务端以及应急设备间采用JSON格式进行交互,具备良好的扩展性,服务端不用关心应急设备和客户端的应用逻辑,只负责转发客户端和应急设备间的数据,客户端和应急设备可根据业务逻辑的扩展灵活的修改参数,进而极大的提升了应急设备远程管理的便捷性,当用户不懂操作或误操作应急设备时,可以安全、便捷的远程对应急设备进行管理。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1是本发明一种应急设备远程管理方法的流程图。
图2是本发明服务端与应急设备建立连接的流程图。
图3是本发明服务端与客户端建立连接的流程图。
图4是本发明的硬件架构示意图。
具体实施方式
本申请实施例中的技术方案,总体思路如下:服务端对客户端以及应急设备的登录连接进行身份认证,且相同IP地址客户端连接服务端的个数不能超过m个,客户端在t秒时间内无发送数据则断开连接,对交互的数据先用非对称加密算法加密,再用Base64编码进行压缩,以提升应急设备远程管理的安全性;通过采用JSON格式进行客户端、服务端以及应急设备间的交互,以提升应急设备远程管理的便捷性。
请参照图1至图4所示,本发明一种应急设备远程管理方法的较佳实施例,包括如下步骤:
步骤S10、服务端基于UDP协议对各开机的应急设备进行身份认证后,建立长连接;
步骤S20、服务端基于TCP协议对各客户端进行身份认证后,建立连接;所述客户端为电脑、手机等智能设备;
步骤S30、服务端接收客户端发送的JSON格式的请求命令,将所述请求命令转发给对应的应急设备,接收应急设备发送的JSON格式的反馈数据并转发给对应的客户端,完成应急设备的远程管理;
利用可扩展的JSON格式进行参数设置和获取,设置和获取的命令结点为cmd_type,设置参数的属性值为set_xxx,获取参数的属性值为get_xxx,其中xxx为某一类型参数的集合,且JSON格式只有一级,方便上层对参数业务逻辑的处理。
所述步骤S10与步骤S20不分先后顺序。
服务端设有一存储有序列号、特征字符串、用户名、密码的数据库。
所述步骤S10具体包括:
步骤S11、各应急设备开机后,将本机预设的序列号以及特征字符串通过UDP协议发送给服务端;通常情况下,TCP协议的连接会更加可靠,但服务端和应急设备在网络情况比较恶劣的情况下,需要很复杂的逻辑来维护TCP连接,为了简化维护逻辑,因此采用UDP协议,但在客户端发送应急设备TCP连接命令时,可转换为TCP连接;
步骤S12、服务端接收所述序列号以及特征字符串,并查找数据库中是否存在对应的所述序列号以及特征字符串,若是,则应急设备身份认证通过,并进入步骤S13;若否,则应急设备身份认证不通过,并结束流程;通过比对所述序列号以及特征字符串,即采用双重认证的方式,极大的提高了安全性;
步骤S13、服务端创建一应急设备列表,获取应急设备的IP地址、UDP地址以及UDP端口,将所述IP地址、UDP地址、UDP端口、序列号以及特征字符串存储至应急设备列表;若有相同的序列号以及特征字符串,不同的IP地址、UDP地址以及UDP端口的应急设备上线,说明原应急设备短线重连了,更新对应的IP地址、UDP地址以及UDP端口;
步骤S14、服务端预设一次数阈值n以及一心跳周期,其中n为正整数;服务端将所述心跳周期发送给应急设备,应急设备基于所述心跳周期向服务端发送心跳数据;所述次数阈值n优选为3;
步骤S15、服务端判断n个心跳周期内是否接收到所述心跳数据,若是,则生成设备在线的设备状态,保持心跳长连接,并将所述设备状态存储至应急设备列表;若否,则生成设备离线的设备状态,并将所述设备状态存储至应急设备列表。
所述步骤S11中,所述序列号以及特征字符串具有唯一性。
所述步骤S14中,所述心跳数据采用二进制编码;所述心跳数据不进行加密,以提高服务端交互的性能。
所述步骤S14中,所述心跳数据携带UDP地址、UDP端口、序列号以及特征字符串。
所述步骤S20具体包括:
步骤S21、客户端基于TCP协议向服务端发送连接请求;所述连接请求携带用户名和密码;
步骤S22、服务端接收到所述连接请求后,判断所述连接请求是否仅包含用户名和密码,若是,则进入步骤S23;若否,则结束流程;
步骤S23、服务端查找数据库中是否存在对应的所述用户名和密码,若是,则客户端身份认证通过,并进入步骤S24;若否,则客户端身份认证不通过,并结束流程;
步骤S24、服务端预设一时间阈值t以及一个数阈值m,其中t和m均为正整数;服务端获取客户端的IP地址,判断相同IP地址客户端连接服务端的个数是否超过m个,若否,则进入步骤S25;若是,则断开与客户端的连接,并结束流程,避免数据非法注入并占用连接数;所述时间阈值t优选为10秒,所述个数阈值m优选为2;
步骤S25、服务端判断客户端在t秒时间内是否有发送数据,若是,则保持与客户端的连接;若否,则断开与客户端的连接,并结束流程。
所述步骤S22中,所述密码采用非对称加密算法进行加密。
所述步骤S30具体包括:
步骤S31、服务端创建一缓冲列表;服务端接收客户端发送的JSON格式的请求命令,获取客户端的客户端地址,并将所述请求命令与客户端地址的对应关系存储至缓冲列表中;所述请求命令为设备状态查询命令、设备监控命令、参数设置命令或者应急设备TCP连接命令;由于应急设备可能基于UDP协议或者TCP协议进行连接,因此,转发需要借助所述缓冲列表,来处理客户端的请求命令;当所述请求命令执行完成后,删除所述缓冲列表中对应的数据;
步骤S32、服务端判断所述请求命令的类型,若为设备状态查询命令,则进入步骤S33;若为设备监控命令,则进入步骤S34、若为参数设置命令,则进入步骤S35;若为应急设备TCP连接命令,则进入步骤S36;
步骤S33、服务端基于设备状态查询命令中携带的查询关键字,模糊查询所述应急设备列表中的设备状态,将设备状态为设备在线的应急设备对应的UDP地址、UDP端口以及序列号用非对称加密算法加密生成密文,并进入步骤S37;模糊查询即查找包含查询字段的所有内容,例如模糊查询abc,查询结果可能为abc、abc1、abc345、uhgabc4、u8abc6等;
步骤S34、服务端基于设备监控命令中携带的监控规则对应急设备进行监控,当监控到所述应急设备列表中对应的应急设备的设备状态发送变化时,将变化后的设备状态以及对应的UDP地址、UDP端口、序列号用非对称加密算法加密生成密文,并进入步骤S37;
步骤S35、服务端将所述参数设置命令转发给对应的应急设备,应急设备执行接收的所述参数设置命令后,向服务端发送JSON格式的反馈数据,服务端将反馈数据用非对称加密算法加密生成密文,并进入步骤S37;
步骤S36、服务端基于应急设备TCP连接命令携带的序列号,与对应的应急设备建立TCP连接,并将对应的TCP地址以及TCP端口用非对称加密算法加密生成密文,并进入步骤S37;
步骤S37、服务端利用Base64编码对密文进行压缩,再基于所述缓冲列表将压缩后的密文转发给对应的客户端。
所述步骤S34中,所述监控规则为序列号范围或者其他筛选条件。
所述非对称加密算法为RSA/ECB/PKCS1Padding,其中ECB和PKCS1Padding均表示RSA算法的参数。
综上所述,本发明的优点在于:
1、通过序列号以及特征字符串对应急设备进行身份认证,基于UDP协议保存心态连接;通过用户名和用非对称加密算法进行加密的密码对客户端进行身份认证,相同IP地址客户端连接服务端的个数不能超过m个,客户端在t秒时间内无发送数据则断开连接,极大的提升了应急设备和客户端登录的安全性;且应急设备与服务端,客户端与服务端之间通信的数据均先用非对称加密算法加密,再用Base64编码进行压缩,即进行了双重加密,极大的提升了数据传输的安全性,最终极大的提升了应急设备远程管理的安全性。
2、通过客户端、服务端以及应急设备间采用JSON格式进行交互,具备良好的扩展性,服务端不用关心应急设备和客户端的应用逻辑,只负责转发客户端和应急设备间的数据,客户端和应急设备可根据业务逻辑的扩展灵活的修改参数,进而极大的提升了应急设备远程管理的便捷性,当用户不懂操作或误操作应急设备时,可以安全、便捷的远程对应急设备进行管理。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
- 一种应急设备远程管理方法
- 一种电力通信设备维护检修远程授权管理方法、设备及计算机存储介质