发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种传感器数据备份方法及***,用于解决现有技术中汇聚节点在传感器数据备份过程中避免中断运行的问题。
为实现上述目的及其他相关目的,本发明提供一种传感器数据备份方法,方法包括:
汇聚节点获取其管辖的传感器节点的OID标识前缀;
所述汇聚节点将所述传感器节点的OID标识前缀与需备份的目标传感器节点的OID标识前缀进行匹配,如果匹配成功,识别所述传感器节点上传的传感器数据为需备份的传感器数据;
所述汇聚节点向预设的备份服务器发送备份准备获取请求,以使所述备份服务器根据所述备份准备获取请求返回备份准备响应;
所述备份服务器接收所述汇聚节点发送的备份准备获取请求,向所述汇聚节点发送备份准备响应,以使所述汇聚节点根据所述备份准备响应处理传感器数据备份请求;
所述汇聚节点接收所述备份准备响应后,如果所述备份准备响应为备份准备成功响应,就向所述备份服务器发送传感器数据备份请求的报文;
所述备份服务器配置有存储空间,所述存储空间的存储地址与汇聚节点内存的内存地址一一对应;
所述备份服务器解析所述传感器数据备份请求的报文后,通过内置的存储接口,将所述需备份的传感器数据备份在与所述需备份的传感器数据在所述汇聚节点内存存放的内存地址相对应的存储地址上。
优选地,在所述的方法中,在汇聚节点获取其管辖的传感器节点的OID标识前缀之前,所述方法还包括:
所述汇聚节点连接管理服务器,下载需备份的目标传感器节点的OID标识前缀。
优选地,在所述的方法中,所述备份准备获取请求是获取备份准备状态的请求,所述备份准备响应是备份准备状态的响应。
优选地,在所述的方法中,所述备份服务器接收所述汇聚节点发送的备份准备获取请求,向所述汇聚节点发送备份准备响应,以使所述汇聚节点根据所述备份准备响应处理传感器数据备份请求,具体为:
所述备份服务器通过状态变量Backup State记录备份准备状态,为避免备份准备操作产生冲突,如果有一个备份准备操作正在进行,就不允许进行另外一个备份准备的操作,当接收到备份准备请求时,获取当前备份准备状态,如果备份准备状态为空闲的状态,就向所述汇聚节点发送所述备份准备成功响应,并将备份准备状态置为忙碌的状态,以使所述汇聚节点根据所述备份准备成功响应处理传感器数据备份请求。
优选地,在所述的方法中,所述汇聚节点向预设的备份服务器发送备份准备获取请求,以使所述备份服务器根据所述备份准备获取请求返回备份准备响应,具体为:
所述汇聚节点获取预设的备份时间,当到达所述备份时间时,向预设的备份服务器发送备份准备获取请求,以使所述备份服务器根据所述备份准备获取请求返回备份准备响应。
为实现上述目的及其他相关目的,本发明提供了一种传感器数据备份的***,***包括汇聚节点和备份服务器,所述汇聚节点包括获取模块、匹配模块、发送模块、接收模块,所述备份服务器包括响应模块、配置模块、备份模块;
所述获取模块用于获取其管辖的传感器节点的OID标识前缀;
所述匹配模块用于将所述传感器节点的OID标识前缀与需备份的目标传感器节点的OID标识前缀进行匹配,如果匹配成功,识别所述传感器节点上传的传感器数据为需备份的传感器数据;
所述发送模块用于向预设的备份服务器发送备份准备获取请求,以使所述备份服务器根据所述备份准备获取请求返回备份准备响应;
所述接收模块用于接收所述汇聚节点发送的备份准备获取请求,向所述汇聚节点发送备份准备响应,以使所述汇聚节点根据所述备份准备响应处理传感器数据备份请求;
所述响应模块用于接收所述备份准备响应后,如果所述备份准备响应为备份准备成功响应,就向所述备份服务器发送传感器数据备份请求的报文;
所述配置模块用于配置有存储空间,所述存储空间的存储地址与汇聚节点内存的内存地址一一对应;
所述备份模块用于解析所述传感器数据备份请求的报文后,通过内置的存储接口,将所述需备份的传感器数据备份在与所述需备份的传感器数据在所述汇聚节点内存存放的内存地址相对应的存储地址上。
进一步地,在所述的***中,所述汇聚节点,还包括:
连接模块,用于连接管理服务器,下载需备份的目标传感器节点的OID标识前缀。
进一步地,在所述的***中,所述备份准备获取请求是获取备份准备状态的请求,所述备份准备响应是备份准备状态的响应。
进一步地,在所述的***中,所述响应模块,具体用于所述备份服务器通过状态变量Backup State记录备份准备状态,为避免备份准备操作产生冲突,如果有一个备份准备操作正在进行,就不允许进行另外一个备份准备的操作,当接收到备份准备请求时,获取当前备份准备状态,如果备份准备状态为空闲的状态,就向所述汇聚节点发送所述备份准备成功响应,并将备份准备状态置为忙碌的状态,以使所述汇聚节点根据所述备份准备成功响应处理传感器数据备份请求。
进一步地,在所述的***中,所述备份模块,具体用于:获取预设的备份时间,当到达所述备份时间时,向预设的备份服务器发送备份准备获取请求,以使所述备份服务器根据所述备份准备获取请求返回备份准备响应。
如上所述,本发明的一种传感器数据备份方法及***,具有以下有益效果:
每次只需要备份一个存储地址的内容,无需中断汇聚节点的运行,因此有效减小传感器数据备份过程中对汇聚节点的影响,能减轻汇聚节点备份传感器数据的负担。
具体实施方式
本申请提供一种传感器数据备份方法及***,包括汇聚节点和备份服务器。请参阅图1,本发明提供一种传感器数据备份方法,详述如下:
S101,汇聚节点获取其管辖的传感器节点的OID标识前缀;
其中,在无线传感器网络中,汇聚节点连接很多传感器节点,通过传感器节点获取传感器数据。
其中,OID标识前缀就是OID(Object Identifier,对象标识符又称为物联网域名)的前缀。一个领域的传感器节点存在一个OID标识前缀。不同领域的传感器节点的OID标识前缀不同。
S102,所述汇聚节点将所述传感器节点的OID标识前缀与需备份的目标传感器节点的OID标识前缀进行匹配,如果匹配成功,识别所述传感器节点上传的传感器数据为需备份的传感器数据;
其中,汇聚节点预先存储需备份的目标传感器节点的OID标识前缀。
其中,汇聚节点可以连接管理服务器,下载需备份的目标传感器节点的OID标识前缀。
其中,用户也可以通过本地的客户端,在所述汇聚节点添加需备份的目标传感器节点的OID标识前缀。
其中,如果匹配成功,识别所述传感器节点上传的传感器数据为需备份的传感器数据,这样的好处是,不用在汇聚节点存储传感器节点的设备标识,这样可以减少录入传感器节点的设备标识的步骤,可以有效节省工作量,另外,替换容易,都是基于同一个OID标识前缀接入的传感器节点,无论是硬件还是软件功能,需要推出新的传感器节点,都可以直接替换同一个OID标识前缀接入的新的传感器节点,这样替换起来很方便,能有效节省替换时间和替换的工作。
S103,所述汇聚节点向预设的备份服务器发送备份准备获取请求,以使所述备份服务器根据所述备份准备获取请求返回备份准备响应;
需说明的是,所述汇聚节点在接收传感器数据的过程中,会将已接收的该传感器数据的数据流在内存中进行缓存,当缓存该传感器数据的数据流大小达到多个数据块的大小时,获取预设的备份时间,当到达所述备份时间时,向预设的备份服务器发送备份准备获取请求,以使所述备份服务器根据所述备份准备获取请求返回备份准备响应。
其中,多个数据块的大小能设置成5个数据块的大小,因为数据块是64MB,如果设置一个或两个数据块的大小时,会频繁获取预设的备份时间,这样会增加汇聚节点的工作量,当然,用户可以根据组网的实际情况,自行设置数据块的数量,在此不做限制。
相应地,预设的备份时间,用户也可以根据组网的实际情况,自行设置,在此不做限制。
其中,所述备份准备获取请求是获取备份准备状态的请求,所述备份准备响应是备份准备状态的响应。
其中,备份准备获取请求的数据部分携带有获取状态变量BackupState的指令,指令能被自定义,比如,定义为:content=request.form.get('BackupState')/获取BackupState的请求参数。
S104,所述备份服务器接收所述汇聚节点发送的备份准备获取请求,向所述汇聚节点发送备份准备响应,以使所述汇聚节点根据所述备份准备响应处理传感器数据备份请求;
相应地,备份准备响应也携带有状态变量BackupState。
需说明的是,汇聚节点接收状态变量后,能通过状态变量识别出备份准备响应的种类。
比如,汇聚节点接收状态变量后,如果备份准备响应中BackupState的值为000,就识别该备份准备响应为备份准备成功响应,识别备份服务器为空闲状态,如果备份准备响应中BackupState的值为111,就识别该备份准备响应为备份准备失败响应,识别备份服务器为忙碌状态。
需说明的是,所述备份服务器还用于获取当前备份准备状态,如果所述备份准备状态为忙碌的状态,就发送所述备份准备失败响应,以使所述汇聚节点根据所述备份准备失败响应,停止处理传感器数据备份请求,等待预设时间后重新向所述备份服务器提交备份准备获取请求。
S105,所述汇聚节点接收所述备份准备响应后,如果所述备份准备响应为备份准备成功响应,就向所述备份服务器发送传感器数据备份请求的报文;
所述汇聚节点还用于接收所述备份准备响应后,如果所述备份准备响应为备份准备失败响应,就停止处理传感器数据备份请求,等待预设时间后重新向所述备份服务器提交备份准备获取请求。
S106,所述备份服务器配置有存储空间,所述存储空间的存储地址与汇聚节点内存的内存地址一一对应;
S107,所述备份服务器解析所述传感器数据备份请求的报文后,通过内置的存储接口,将所述需备份的传感器数据备份在与所述需备份的传感器数据在所述汇聚节点内存存放的内存地址相对应的存储地址上。
需说明的是,所述备份服务器解析所述传感器数据备份请求的报文后,产生一个数据写入请求,获取所述数据写入请求对应的写数据通道的接收端地址,将所述接收端地址修改为所述需备份的传感器数据在所述汇聚节点内存存放的内存地址相对应的存储地址,这样能建立起所述写数据通道的发送端地址与所述需备份的传感器数据在所述汇聚节点内存存放的内存地址相对应的存储地址之间的数据通道,调用内置的存储接口在所述数据通道中传输所述需备份的传感器数据,将所述需备份的传感器数据备份在与所述需备份的传感器数据在所述汇聚节点内存存放的内存地址相对应的存储地址上。由于在数据通道中传输需备份的传感器数据又快又稳定,因此通过数据通道能给需备份的传感器数据的传输带来高性能保障。
为便于说明,以写数据通道的发送端地址为地址1、写数据通道的接收端地址为地址2、所述需备份的传感器数据在所述汇聚节点内存存放的内存地址相对应的存储地址为地址A为例,举例如下:
备份服务器解析传感器数据备份请求的报文后,产生一个数据写入请求,获取数据写入请求对应的写数据通道的接收端地址,即地址2,将地址2修改为地址A,这样能建立起写数据通道的地址2与地址A之间的数据通道,调用内置的存储接口在数据通道中传输需备份的传感器数据,将需备份的传感器数据备份在地址A上。
需说明的是,所述备份服务器通过构造函数创建设定的存储空间,并通过malloc函数、calloc函数划分存储空间的大小,使得存储空间的大小等于汇聚节点内存的内存大小。
其中,malloc函数、calloc函数均为动态内存分配函数。
为便于说明,举例如下:
工作人员可以使用所述备份服务器的客户端,在客户端的图形用户界面输入设定的存储空间的大小,备份服务器调用构造函数,通过构造函数创建设定的存储空间,并通过malloc、calloc函数划分存储空间的大小,使得存储空间的大小等于汇聚节点内存的内存大小。
其中,备份服务器建立起汇聚节点内存的内存地址和存储空间的存储地址的映射,让汇聚节点内存的内存地址和存储空间的存储地址一一对应。这样,每次只需要备份一个存储地址的内容,无需中断汇聚节点的运行,因此能有效减小传感器数据备份过程中对汇聚节点的影响。
比如:所述备份服务器解析所述传感器数据备份请求的报文后,需备份的传感器数据为DATA1,DATA1在所述汇聚节点内存的内存地址为M2,M2对应的存储地址为C3,这样,备份服务器将DATA1备份到C3上,使得C3上的传感器数据与M2上的传感器数据相同,这样就备份完成了,而且这样每次备份时,所述汇聚节点与备份服务器之间只传送DATA1,因此传送的数据量少,不影响汇聚节点的正常运行。
需说明的是,所述汇聚节点接收所述备份准备响应后,如果所述备份准备响应为备份准备成功响应,就向所述备份服务器发送传感器数据备份请求的报文,具体为:
所述汇聚节点接收所述备份准备响应后,解析所述备份准备响应,如果所述备份准备响应为备份准备成功响应,就按JSON或YAML协议格式,将所述汇聚节点的设备标识、所述需备份的传感器数据、所述需备份的传感器数据在所述汇聚节点内存存放的内存地址进行格式化编码,生成传感器数据备份请求的报文,向所述备份服务器发送传感器数据备份请求的报文。
综上所述,备份服务器对所述存储空间发起读取请求时,可以读取到存储地址对应的内存地址中的内容,一方面,备份服务器读取的存储地址的内容与汇聚节点内存地址中的内容相同,实现了传感器数据的备份,另一方面,每次只需要备份一个存储地址的内容,无需中断汇聚节点的运行,因此有效减小传感器数据备份过程中对汇聚节点的影响,能减轻汇聚节点备份传感器数据的负担,同时提高了汇聚节点备份的灵活性。
请参阅图2,本发明提供一种传感器数据备份的***,***包括汇聚节点和备份服务器,所述汇聚节点包括获取模块、匹配模块、发送模块、接收模块,所述备份服务器包括响应模块、配置模块、备份模块;
所述获取模块用于获取其管辖的传感器节点的OID标识前缀;
所述匹配模块用于将所述传感器节点的OID标识前缀与需备份的目标传感器节点的OID标识前缀进行匹配,如果匹配成功,识别所述传感器节点上传的传感器数据为需备份的传感器数据;
所述发送模块用于向预设的备份服务器发送备份准备获取请求,以使所述备份服务器根据所述备份准备获取请求返回备份准备响应;
所述接收模块用于接收所述汇聚节点发送的备份准备获取请求,向所述汇聚节点发送备份准备响应,以使所述汇聚节点根据所述备份准备响应处理传感器数据备份请求;
所述响应模块用于接收所述备份准备响应后,如果所述备份准备响应为备份准备成功响应,就向所述备份服务器发送传感器数据备份请求的报文;
所述配置模块用于配置有存储空间,所述存储空间的存储地址与汇聚节点内存的内存地址一一对应;
所述备份模块用于解析所述传感器数据备份请求的报文后,通过内置的存储接口,将所述需备份的传感器数据备份在与所述需备份的传感器数据在所述汇聚节点内存存放的内存地址相对应的存储地址上。
综上所述,本发明每次只需要备份一个存储地址的内容,无需中断汇聚节点的运行,因此有效减小传感器数据备份过程中对汇聚节点的影响,能减轻汇聚节点备份传感器数据的负担。所以,本发明有效克服了现有技术中的种种缺点而具有高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。