CN112637318A - 一种面向存储完整性的智能网关系统、装置及其控制方法 - Google Patents
一种面向存储完整性的智能网关系统、装置及其控制方法 Download PDFInfo
- Publication number
- CN112637318A CN112637318A CN202011500846.3A CN202011500846A CN112637318A CN 112637318 A CN112637318 A CN 112637318A CN 202011500846 A CN202011500846 A CN 202011500846A CN 112637318 A CN112637318 A CN 112637318A
- Authority
- CN
- China
- Prior art keywords
- data
- gateway
- equipment
- program
- management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明属于智能网关技术领域,公开了一种面向存储完整性的智能网关系统、装置及其控制方法,所述面向存储完整性的智能网关系统包括:WebApp模块、综合管理模块、故障恢复模块、数据管理模块和云模块;所述面向存储完整性的智能网关装置包括:网关树莓派、设备树莓派、传感器如镜头与雷达、智能手表以及云存储。本发明以Java为主开发语言,实现了智能网关系统,用于老人健康信息系统中的数据管理与设备管理。本发明数据完整性的实现依靠线程安全的队列设计以及多项故障恢复机制;对于多线程的性能优化也提升了系统的稳定性,保障了数据的安全;通过环境模拟与实地应用的方式,对智能网关系统进行了系统测试,测试结果符合预期。
Description
技术领域
本发明属于智能网关技术领域,尤其涉及一种面向存储完整性的智能网关系统、装置及其控制方法。
背景技术
目前,随着物联网的发展,物联网开始深入到人类生活的方方面面,小至一盏灯,都可能作为网络的一个节点。人们可以通过终端设备去控制物联网设备以及随时随地获取信息。而物联网网关在整个物联网体系中,扮演着重要的角色,它是沟通感知网络和通信网络的桥梁。在家庭环境中,网关是管理整个家庭物联网的中枢系统。网关下属的节点只需负责数据的获取、将数据传输至网关以及提供控制的接口,通过网关获取整个家庭物联网的数据以及控制所有物联网设备。
社会正越来越关注老人的健康问题。得益于深度学习与智能穿戴设备的发展,我们可以通过传感器获取特定的数据,再使用工具从数据中获取有关老人健康相关的信息。如通过深度镜头获取深度图像数据,识别出老人姿态;通过雷达获取点云数据,再提取出老人的步态、步速等信息;通过智能手表获取心率、加速度和气压等数据,综合分析后获取老人的健康信息。
云服务与云存储的应用越来越广泛,将算力从本地转移到云上正成为趋势。这降低了本地的性能需求,本地只需负责将数据完整地上传至云端,并在数据完成处理后下载数据至本地。在这个过程中,数据的存储完整性至关重要。数据不完整,数据获取间隔不稳定,将导致后续数据处理时无法得到正确的健康信息。严重地,可能导致大范围的数据丢失,从而无法进行数据分析。
物联网在全球范围内得到了广泛应用。而随着物联网的扩展,企业发现自己面临着集成众多设备和协议的挑战,其中许多设备和协议具有不同的电源和连接要求。这种混合可能还包括传统技术。物联网网关正在成为构建强大的物联网以及在边缘计算场景中提供计算能力的重要组成部分。作为典型应用场景的家庭物联网网关,也已经有了不少市场化的产品。
1984年,世界上第一栋智能建筑诞生。其后,世界各国都提出了各种智能家居的方案,其核心就是家庭物联网。家庭物联网网关作为连接各设备的枢纽,可以完成家庭网络设备于外部设备的信息交换。早在几年以前,Intel就提出“数字家庭”的概念。“数字家庭”其中一个目标就是要把PC域和CE域有机的结合起来,充分利用PC强大的管理、存储和处理能力,并结合CE的舒适性和易用性。使数字化的媒体内容可以灵活方便的在众多的设备上进行分享,达到“任何地方、任何时间、任何设备”的目标。这时PC就是物联网的网关。有些物联网设备由于其本身没有支持IP协议,不具备直接接入物联网的能力,需要通过网关进行协议转换,比如蓝牙设备和Bigbee设备。
国外的几家科技巨头公司已经发布了自己的家庭物联网控制中心设备和陪配套服务,如谷歌发布的Google Home,由该设备控制联动家庭物联网设备,其本身还具有显示屏幕,可以代替手机的部分功能,可以通过语音控制设备;苹果发布的智能家居平台HomeKit,开发者通过该套件开发能够使用iPhone控制家庭物联网设备的软件,将手机作为一个家庭物联网网关。三星发布的智能网关,提供了WiFi以及有线双网接入,用户可以通过智能网关控制多品类的智能家居设备。
我国国内物联网整体规模已达近两万亿元,物联网应用场景向各个领域拓展。其中家庭领域与普通用户的关系最为密切。有数据预测2025年家庭物联网的规模将达到两千八百亿美元。在家庭物联网方面,该市场份额最大的米家智能多模网关已经实现通过Bigbee、WiFi与蓝牙等通讯方式控制家庭中的其他物联网设备,执行部分自动化场景。该网关为一个通用的设备而非专门针对某一需求开发,其更偏向于控制各设备,而非作为数据中转的核心。另国内有一些关于物联网网关的研究。王倩等人提出了一种“一主多从”的物联网网关系统,将网关作为主设备,其管理的设备作为从设备,将从设备采集的数据汇聚到主设备进行统一管理,提升系统的抗干扰能力和可拓展性。罗俊海等人设计了一种物联网网关系统,它为连接它的下属网络设备提供了接入的节点,同时对节点发送的数据作了统一的封装,为中间件或者应用程序提供统一格式的数据,使上层应用只需关注数据本身,屏蔽了各传感器实体以及接入网络的具体形式。但是,现有网关系统均无法满足存储完整性的要求。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有网关系统无法跨系统跨协议收集数据。
(2)现有网关系统在带宽不足信道争抢情况下,数据丢失现象较为严重。
(3)现有网关系统均无法在保证数据完整的前提下长久稳定运行。
解决以上问题及缺陷的难度为:
(1)现有物联网设备的系统和数据协议各异,跨系统跨协议采集数据困难,且多源异构数据的完整性很难保证。
(2)大量物联网设备给网关系统的稳定性带来极大挑战,如带宽不足、信道争抢、数据丢失等,有限资源的竞争严重影响了网关系统的稳定性。
(3)多源异构数据的随机性是保证数据完整性最大的难点,数据抵达网关的时间及数据量均很随机,对网关系统的冲击较大。
解决以上问题及缺陷的意义为:
(1)在统一数据采集架构下收集多源异构数据,降低数据清洗校验存储难度,为数据完整提供支撑;
(2)针对有限资源竞争问题,提出资源拆分优化组合模型,降低资源竞争时数据丢失的可能性,为数据完整性提供保障;
(3)针对多源异构数据的随机性,提出数据采集存储任务拆解优化算法,在保证数据完整性的前提下,为网关系统的长久稳定运行提供保证。
发明内容
针对现有技术存在的问题,本发明提供了一种面向存储完整性的智能网关系统、装置及其控制方法。
本发明是这样实现的,一种面向存储完整性的智能网关系统的控制方法,所述面向存储完整性的智能网关系统的控制方法包括:
通过WebApp模块提供API与Web页面,实现可视化界面与应用程序接口;其中,所述API为服务老人健康系统提供接口,所述接口包括设备控制、数据相关、基本信息、网关管理及其他接口;所述Web页面包括概览、数据、视频、上传、日志、设置、计划任务和关机;
通过综合管理模块实现对设备与网关的管理,提供WLAN管理、设备管理、网关管理、缓存管理及计划任务管理;
通过故障恢复模块提供硬件或者软件异常后程序保护数据的策略,通过一系列恢复策略恢复程序的正常运行,实现数据存储的完整性;
通过数据管理模块实现数据获取及数据处理;其中,数据获取包括从云上获取数据与从设备获取数据;数据处理用于对数据进行简单处理;
通过云模块提供上传中心和下载中心;最后对智能网关程序的每个模块进行功能测试与故障测试。
进一步,所述面向存储完整性的智能网关系统的控制方法还包括:通过物联网设备获取老人的各项体征数据,包括心率、步速、步态、姿态;使用深度学习的方法从原始数据中提取信息,最终分析老人的健康状况。
进一步,所述WebApp模块中,API为服务老人健康系统提供的接口,包括:
(1)设备控制:包括基本控制与ROS相关控制;基本控制是指对设备进行关机、重启、停止服务、启动服务的基本操作;ROS相关控制是指对设备上的ROS程序进行重启、停止、启动的操作;
(2)数据相关:包括数据获取、数据处理与数据管理;数据获取是指根据Topic名称、MAC地址、起始时间、持续时间、是否解码以及数据频率从网关获取符合条件的数据;数据处理是指对数据进行初步加工后再获取数据,如将原始彩色图像数据转换为视频、对图像数据进行解码;数据管理是指对本地或者云上的数据进行管理,如查看云存储数据的文件列表与上传时间,删除云上特定时间段的数据;
(3)基本信息:基本信息包括网关基本信息、设备基本信息、缓存基本信息与日志;网关基本信息包括网关当前的CPU使用率,已使用的内存容量,总内存容量,已使用的磁盘容量,总磁盘容量,当前网络速度,网关网络相关信息,包括网关MAC地址,网关IP,网关名称,已连接到网关的设备列表;设备基本信息有设备IP地址,设备MAC地址,设备名,设备无线网络连接时间,设备无线网络连接速度,设备当前是否已连接,设备拥有的Topic列表,包括Topic名,Topic类型,Topic帧率,Topic压缩类型以及是否订阅;ROS主服务是否正常运行;缓存基本信息包括网关已订阅Topic对应的缓存当前使用量以及预设最大容量;此外,基本信息还包括上传队列当前使用量,云上的Topic配置列表,计划任务中网管程序睡眠与唤醒的时间;
所述API均需通过访问对应的URL与对应的GET/POST方法,带上所需的参数,如无误,则以文件形式或者Json字符串格式返回结果;
所述WebApp模块中,所述Web页面包括:
(1)概览:实时显示网关基本信息,CPU使用率,硬盘使用率,硬盘已使用的容量与总容量,内存使用率,内存已使用的容量与总容量,实时网速;以动态折现图的形式,显示7分钟内所有缓存的使用情况,并支持简单管理,如删除缓存;
(2)数据:提供数据下载与简单数据管理功能,以可视化的形式显示所有Topic及其基本信息,包括名称、类型、帧率以及压缩类型;选中需要的Topic后,选择日期以及起始时间与结束时间,选择是否解码后,开始多线程下载,并在同个页面显示下载列表;每个下载项都显示进度条,下载支持暂停/恢复下载,取消下载;下载完成后,保存文件到当前客户端,还可以直接删除云端对应的数据;
(3)视频:提供图像数据转为为视频的功能;选择日期、起始时间与结束时间后,程序将下载对应的彩色图像数据并转化为视频,该过程同数据中一致,在同页面显示任务进度条;任务完成后,选择下载视频或者直接在网页内嵌播放器中播放该视频;
(4)上传:提供数据上传功能;该功能为处理后的数据上传到服务器提供上传接口;选择Topic、日期以及文件列表即可上传所有文件到网关;网关将所有文件线保存到磁盘并加入上传队列;
(5)日志:提供日志查看功能;显示网关实时的日志或者历史日志;历史日志需要选择时间,选择时间后,将显示半小时内的日志,该过程网关程序将从服务器获取数据;
(6)设置:提供Topic设置功能;在该页面,对网关对应的Topic配置表进行增删改,修改后,点击确认按钮,网关检查无误后,上传配置至云;
(7)计划任务:提供睡眠时间和唤醒时间的设置功能;
(8)关机:提供关闭网关树莓派的功能;关闭网关之前,网关将尝试关闭所有的下属设备。
进一步,所述综合管理模块的处理方法包括:
(1)WLAN管理
WLAN管理模块负责WLAN相关的活动管理以及对WiFI进行控制;WLAN管理器支持扫描已连接网关树莓派热点的WiFI设备,获取网络基本信息,包括设备MAC地址、设备IP地址、设备名、网络连接时间与网络连接速度;对扫描到的新设备,WLAN管理器将其保存到WLAN表中,其他模块可以通过MAC地址、IP地址中的一项获取整个设备的网络信息;
WLAN管理器还支持重启Hostapd程序,即热点控制程序,完成对热点的的重启;另外,WLAN管理器还支持根据MAC屏蔽某些设备,使其无法连接到网关树莓派热点;当然,也支持解封设备;
(2)设备管理
设备管理负责管理网关下属设备;支持对设备进行重启、关机、暂停服务、启动服务、通过SSH获取设备信息、控制ROS的启动与关闭、检查ROS服务运行的状态、为设备设置故障恢复策略的功能;
设备管理模块是网关程序的核心模块,通过周期性的WiFi扫描来获取已连接的设备列表,对旧设备进行检查,为新设备分配监视程序与开启新的订阅数据的线程,并使设备管理模块与程序中其他模块解耦合;
(3)网关管理
网关管理模块负责管理网关树莓派本身,包括对网关进行重启,对网关程序进行重启,以及获取CPU使用率的基本信息;
(4)缓存管理
缓存管理模块负责管理所有缓存;其他模块通过向缓存管理器注册来新建缓存,或者通过MAC与Topic类型获取对应的缓存;
每个缓存都支持根据条件从缓存中获取数据,包括数据的起始时间,频率,持续时间;
(5)计划任务管理
计划任务模块负责管理网关程序的休眠时间与唤醒时间;可以在休眠之后与唤醒之后设定任务;本程序中,在休眠之后,将上传本地配置至云,结束所有数据接收的进程,暂停下载,暂停缓存写入文件到本地磁盘,但不停止上传;程序唤醒之后,将会重启网管程序,程序启动后,将从云端下载配置,然后检查已连接的设备,对每个设备进行Topic订阅以及分配监视进程;
所述故障恢复模块中的数据存储完整性包括:
(1)缓存设计
缓存是网关程序的核心功能,实时接收来自设备的数据,并将数据写入磁盘中,客户端通过API从缓存中获取最新的数据;
采用双缓存结构,新接收的数据将会加入到新缓存中,而新缓存中较旧的数据将被转移到旧缓存中,旧缓存的数据量达到阈值就会触发文件写入机制,将一定数量的数据写入到文件中,并在旧缓存中删除这些数据;
对于写入文件的数据,新来数据添加到新缓存的队尾;旧缓存每隔一段时间,从新缓存的队头获取新数据,新缓存则删除对应内容,旧缓存满后,将一定数量的数据从其队头依次删除并写入到磁盘中;
(2)上传队列设计
网关程序接收到的所有数据、网关与设备的信息与日志都需要上传到云端;不同的线程会产生不同的文件,为统一控制,需要有一个统一管理上传的机制;为此程序设定了一个上载中心,管理所有上传任务;上载中心的核心是维护一个上传队列,该队列的每个元素都是一个文件单元,其属性包括文件的名称,文件的本地路径,文件的云端路径;其他模块只需向上载中心注册一个文件上传任务,后续就由上载中心完成该任务;上载中心接收到新任务后会将文件单元添加到上传队列队尾,并更新上传队列的总存储容量;程序设定了一个阈值,当待上传容量超出该阈值后,删除队头的部分数据;
上载中心不断从上传队列的队首获取文件单元,尝试上传对应的文件,成功则从队列中删除该文件,并删除对应的本地文件;失败则将该元素从队头删除,并重新添加到队尾;同时,上载中心在程序休眠的时候不停止工作;
所述故障恢复模块的信息处理包括:
(1)设备管理器的WiFi扫描线程每隔20秒扫描一次已连接的设备,一旦发现新设备,就为该设备注册设备管理号,并开始订阅数据;同时扫描线程对旧设备进行ROS服务端口检测,如果连接不上,就通知该设备对应的错误监视对象设备存在问题;
(2)错误监视;每个设备在创建时期都会被分配一个错误监视对象;每个错误监视对象都对一个Topic订阅分配一个错误计数线程;每隔10秒,该进程从订阅者线程中读取一个错误标志,如果为假,则对错误计数加一;如果为真,则清零错误计数,同时对该错误标志设置假;错误计数累计达到八次后将会对该设备开启错误处理流程;
(3)错误处理流程;每个错误监视对象都有一个服务重启计数,在重启次数小于或者等于3时,进行ROS服务重启流程;如果大于3,则进行重启设备流程,并在完成之后对服务重启计数清零;
(4)ROS服务重启流程;启动后,先结束对应设备的所有订阅,然后关闭错误计数线程,通过SSH对设备ROS服务进行重启,发送命令后等待一分钟,再尝试连接ROS端口,成功后重新开始订阅所有Topic;
(5)设备重启流程;启动后,先结束对应设备的所有订阅,然后关闭错误计数线程,通过SSH对设备进行重启,发送命令后等待两分钟,再尝试连接ROS端口,成功后重新开始订阅所有Topic;
所述故障恢复模块中的故障及其恢复策略包括:
(1)WIFi掉线:暂停订阅线程,文件写入和文件上传继续工作,下一次扫描到连线后重新订阅并开始接收数据;
(2)WiFi未掉线,设备ROS服务中断:尝试重启ROS服务,累计三次重启服务后仍接收不到数据则重启设备;
(3)网关重启,设备未重启,导致设备ROSbridge不知道网关重启,再次订阅失败:减小Session有效时间,网关尝试连接后,一段时间内仍未收到消息,就重启ROS服务,以判断session为依据;
(4)网络环境差或者网关断网:每次错误将未成功的数据重新加入上传队列,错误次数超过20次时,提示该问题;
(5)上传带宽小于网关接收设备的带宽时,设置一个队列,积压的文件数量超过100时,继续接收数据,并从队列删除旧数据,保整队列长度不超过100;另外,程序在非活动时间也会继续上传未上传的数据;
(6)断电:缓存中保留的部分数据丢失,但已写入文件的数据不丢失,来电后继续上传数据。
进一步,所述数据管理模块中的数据获取包括:
(1)从云上获取数据
从云上获取数据,是作为一个任务,作为API提供给客户端;每次获取都需要向任务中心注册一个任务,注册信息包括需要下载数据的类型与时间;任务中心将会启动这个任务,开始下载云上符合条件的数据,将所有数据合并为一个文件,返回给客户端这个文件的URL地址;
(2)从设备获取数据
从设备获取数据主要有两种方式:订阅方式与提供上传接口;
订阅方式由订阅者模块完成;设备管理器为每个Topic都分配了一个订阅者对象;每个订阅者对象创建时都会尝试向设备ROS订阅指定的Topic,然后开始接收数据,每收到一组数据,加入到对应的缓存中,设置错误标记为真;
所述数据管理模块中的数据处理包括:
(1)压缩数据;对对图像进行无损压缩;
(2)数据封装;每个Topic的数据类型不同,组成结构也不同,对每条收到的数据,程序进行数据封装;为每条数据增加时间戳,根据数据类型不同对数据进行Json化处理;
(3)解码数据;部分从云上下载的数据是经过压缩加Base64编码后的数据,客户端通过网关直接获取这些原始数据或直接让网关程序对这些数据进行解码加解压后获取直接可用的数据;
(4)转换为视频;网关程序还提供将图像数据转化为视频的功能;图像数据包括深度图像与彩色图像;对于过时的数据,采用视频存储方式。
进一步,所述云模块的信息处理包括:
(1)上传中心,上传本地文件到云端;
(2)下载中心,从云端下载文件,支持多线程下载;主要结构是一个下载队列组;下载中心向外提供一个下载的接口,程序调用该接口后,向下载中心注册了一个下载任务,任务参数需要包括一个回调、文件源路径和目标路径;回调包含了下载完成时需要执行的动作;下载中心在下载队列组中选择合适的队列添加该下载任务,尽可能保证所有队列的下载任务数量相同;对每一个下载队列,都开启一个下载线程,不断从队头取下载任务,根据任务的源文件路径从云端下载对应的文件;下载完成后,执行回调函数。
本发明的另一目的在于提供一种执行所述面向存储完整性的智能网关系统的控制方法的面向存储完整性的智能网关系统,所述面向存储完整性的智能网关系统包括:
WebApp模块,用于提供API与Web页面,实现可视化界面与应用程序接口;其中,所述API为服务老人健康系统提供接口,所述接口分为五类:设备控制、数据相关、基本信息、网关管理及其他接口;所述Web页面分为八个子页面:概览、数据、视频、上传、日志、设置、计划任务和关机;
综合管理模块,用于实现对设备与网关的管理,提供WLAN管理、设备管理、网关管理、缓存管理及计划任务管理;
故障恢复模块,用于提供硬件或者软件异常后程序保护数据的策略,通过一系列恢复策略恢复程序的正常运行,实现数据存储的完整性;
数据管理模块,用于实现数据获取及数据处理;其中,数据获取包括从云上获取数据与从设备获取数据;数据处理用于对数据进行简单处理;
云模块,用于提供上传中心和下载中心。
进一步,所述面向存储完整性的智能网关系统还包括:智能手表数据采集应用,用于采集老人的体征数据,发送到网关;
所述智能手表数据采集应用包括;
表盘界面模块,是手表应用的主界面;用于显示有时钟、网络连接状态、充电状态、传感器实时数据,缓冲使用量的信息;
数据采集模块,用于调用智能手表的传感器,进行数据采集,包含心率、气压、加速度、陀螺仪这四种数据;采用固定的频率采集数据,将数据存入缓冲中,缓冲满后,写入到文件,清空缓冲;数据采集仅在老人佩戴上手表时进行,在摘下手表时数据采集将暂停;
设备监测模块,用于获取手表的当前状态,包括是否佩戴、当前的活动类型、是否连接到网络、是否正在充电以及手表的当前电量;当手表满足连接到无线网络与正在充电两个条件后,程序将开始上传文件流程;
日志系统模块,用于记录手表的基本信息,包括电量、动作类型与手表活动;
上传文件模块,用于上传采集到的数据到网关;该模块仅在同时满足连接到网络与充电两个条件时激活;激活后,程序首先开始搜索网关IP,通过遍历同网段下IP的8088端口,尝试寻找网关的IP地址,如果没有找到,则不执行上传过程;找到网关IP地址后,程序从文件管理模块获取需要上传的数据文件列表和日志文件列表,调用网关的上传文件接口进行上传,每个文件上传完成后都会被删除;
文件管理模块,用于管理本地的数据文件与日志文件,向其他模块提供其源路径。
本发明的另一目的在于提供一种运行所述的面向存储完整性的智能网关系统的面向存储完整性的智能网关装置,所述面向存储完整性的智能网关装置包括:网关树莓派、设备树莓派、传感器如镜头与雷达、智能手表以及云存储;
树莓派:采用树莓派4b 4GB内存版本;搭载Linux ubuntu 5.3.0-10**-raspi2操作系统,同时安装有机器人操作系统ROS;网关树莓派将自身WLAN网卡作为无线热点,采用5Ghz频段的无线热点,并带有自动信道选择功能;
深度镜头:型号为Intel RealSense系列镜头,同时拍摄深度图像与彩色图像;
雷达:雷达型号为3irobotix的Delta-1A型激光雷达,采集雷达点云数据;
智能手表:共有两款智能手表,华为Watch 2与小米智能手表,都安装有WeaROS中国版操作系统;
每个传感器都连接到各自的树莓派,智能手表不连接树莓派,而直接连接网关;网关树莓派与设备树莓派之前采用无线连接方式,设备树莓派连接网关热点;网关通过有线连接方式连接到英特网,最终与云存储相连。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述的面向存储完整性的智能网关系统的控制方法。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明以Java为主开发语言,shell为脚本语言,设计与实现了智能网关系统,用于老人健康信息系统中的数据管理与设备管理。
(1)对智能网关系统做了需求分析,根据老人信息系统的要求总结出了两大主要功能,即数据管理与设备管理。数据管理包括对老人体征数据的采集、上传、下载与处理;设备管理包括对网关与设备进行管理。
(2)设计与实现了智能网关系统。系统总体上分为硬件与软件两大部分。软件部分包括四大模块与两项针对数据完整性设计的策略。四大模块分别为WebApp模块、综合管理模块、数据管理模块与云模块;两项策略为故障恢复策略与性能优化策略。在功能的具体实现上,客户端主要通过HTTP的特定URL与网关系统进行交互,数据采用Json格式或者文件流的形式;网关对设备的控制通过运行预先编写的Shell脚本来达到。数据完整性的实现依靠线程安全的队列设计以及多项故障恢复机制;对于多线程的性能优化也提升了系统的稳定性,一定程度上保障了数据的安全。
(3)通过环境模拟与实地应用的方式,对智能网关系统进行了系统测试。测试结果符合预期。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的面向存储完整性的智能网关系统结构框图;
图中:1、WebApp模块;2、综合管理模块;3、故障恢复模块;4、数据管理模块;5、云模块。
图2是本发明实施例提供的面向存储完整性的智能网关系统的控制方法流程图。
图3是本发明实施例提供的硬件总体架构图。
图4是本发明实施例提供的网关软件总体架构图。
图5是本发明实施例提供的API组成示意图。
图6是本发明实施例提供的缓存结构图。
图7是本发明实施例提供的智能手表数据采集应用架构示意图。
图8是本发明实施例提供的MVC模式示意图。
图9是本发明实施例提供的设备管理扫描线程流程图。
图10是本发明实施例提供的缓存工作流程图。
图11是本发明实施例提供的计划任务流程图。
图12是本发明实施例提供的订阅者流程图。
图13是本发明实施例提供的错误监视流程图。
图14是本发明实施例提供的上传中心工作流程图。
图15是本发明实施例提供的下载中心工作流程图。
图16是本发明实施例提供的网关数据流向示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种面向存储完整性的智能网关系统、装置及其控制方法,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的面向存储完整性的智能网关系统包括:WebApp模块1、综合管理模块2、故障恢复模块3、数据管理模块4和云模块5。
WebApp模块1,用于提供API与Web页面,实现可视化界面与应用程序接口;其中,所述API为服务老人健康系统提供接口,所述接口分为五类:设备控制、数据相关、基本信息、网关管理及其他接口;所述Web页面分为八个子页面:概览、数据、视频、上传、日志、设置、计划任务和关机。
综合管理模块2,用于实现对设备与网关的管理,提供WLAN管理、设备管理、网关管理、缓存管理及计划任务管理。
故障恢复模块3,用于提供硬件或者软件异常后程序保护数据的策略,通过一系列恢复策略恢复程序的正常运行,实现数据存储的完整性。
数据管理模块4,用于实现数据获取及数据处理;其中,数据获取包括从云上获取数据与从设备获取数据;数据处理用于对数据进行简单处理。
云模块5,用于提供上传中心和下载中心。
如图2所示,本发明实施例提供的面向存储完整性的智能网关系统的控制方法包括以下步骤:
S101,通过WebApp模块提供API与Web页面,实现可视化界面与应用程序接口;其中,所述API为服务老人健康系统提供接口,所述接口包括设备控制、数据相关、基本信息、网关管理及其他接口;所述Web页面包括概览、数据、视频、上传、日志、设置、计划任务和关机。
S102,通过综合管理模块实现对设备与网关的管理,提供WLAN管理、设备管理、网关管理、缓存管理及计划任务管理。
S103,通过故障恢复模块提供硬件或者软件异常后程序保护数据的策略,通过一系列恢复策略恢复程序的正常运行,实现数据存储的完整性。
S104,通过数据管理模块实现数据获取及数据处理;其中,数据获取包括从云上获取数据与从设备获取数据;数据处理用于对数据进行简单处理。
S105,通过云模块提供上传中心和下载中心;最后对智能网关程序的每个模块进行功能测试与故障测试。
本发明实施例提供的面向存储完整性的智能网关装置包括:网关树莓派、设备树莓派、传感器如镜头与雷达、智能手表以及云存储。
树莓派:采用树莓派4b 4GB内存版本;搭载Linux ubuntu 5.3.0-10**-raspi2操作系统,同时安装有机器人操作系统ROS。网关树莓派将自身WLAN网卡作为无线热点,采用5Ghz频段的无线热点,并带有自动信道选择功能。
深度镜头:型号为Intel RealSense系列镜头,可同时拍摄深度图像与彩色图像。
雷达:雷达型号为3irobotix的Delta-1A型激光雷达,可采集雷达点云数据。
智能手表:共有两款智能手表,华为Watch 2与小米智能手表,都安装有WeaROS中国版操作系统。
下面结合实施例对本发明的技术方案作进一步的描述。
1、面向存储完整性的智能网关设计与实现--摘要
物联网的应用越来越广泛,将物联网应用至老人健康领域,使用传感器获取老人的体征数据,并应用深度学习等方法进行数据处理,这使老人的健康状况获取成为可能。网关作为沟通感知网络和通信网络的桥梁,在物联网中扮演者重要的角色。通过网关,我们可以获取物联网的数据与控制物联网中的设备。
针对老人健康信息系统,研究设计与实现了智能网关,面向存储完整性设计。网关为系统中的其他组件提供了应用程序接口,使其可以通过智能网关获取数据与控制设备。
从需求出发,智能网关共设计了四大模块。WebApp模块,实现了可视化界面与应用程序接口;综合管理模块,实现了对设备与网关的管理;数据管理模块,实现了对数据的处理与获取;云模块,实现了数据的上传与下载。针对存储完整性设计了一种结构--缓存,两类策略--故障恢复与性能优化。故障恢复提供了硬件或者软件异常后程序保护数据的策略,性能优化提高了程序运行的效率与稳定性。所有模块通过Java编写实现。
本发明最后对智能网关程序的每个模块进行了功能测试与故障测试,系统测试的结果与预期一致。
老人健康信息系统,通过物联网设备获取老人的各项体征数据,使用深度学习等方法从原始数据中提取信息,最终分析老人的健康状况。本智能网关系统作为老人健康信息系统的一部分,结合物联网与云存储,从传感器获取原始数据上传至云和从云端获取数据,并尽最大可能保障数据的存储完整性。同时提供API和可视化界面,为客户端提供需要的数据和控制的接口。
本系统的主要内容是设计一个智能网关系统,在家庭场景或者小型公共场所场景内工作。该网关负责自动管理下属的设备与收集各设备的传感器数据,将数据完整上传至云端。同时,该网关还预留了应用程序接口(API),客户端与网页可以通过特定的URL从网关获取数据,包括实时数据、本地数据与云端数据;也可以获取设备与网关的基本信息,手动对设备与网关进行控制。
2、智能网关需求分析
对智能网关系统进行需求分析。本系统的主要功能是数据管理与控制管理设备,从这两个功能出发,本系统的需求可以分为数据获取与数据处理、数据存储完整性保障、提供应用程序接口、设备信息获取与控制、故障与自动恢复。
2.1数据获取与数据处理
2.1.1数据获取
分析老人健康状况需要获取老人的体征数据,包括心率、步速、步态、姿态。部分数据需要从原始数据进行分析处理后得到。原始数据根据设备可分为三大类:第一类是镜头类,包括深度图像和彩色图像,结合深度学习方法和OpenPose框架,可以从彩色RGB数据或者深度数据中获得老人的姿态数据;第二类是雷达类,雷达的点云数据,通过对点云数据进行加工,可以获取老人的步态、步速、行走轨迹等信息;第三类是智能手表数据,包括心率、加速度、气压和陀螺仪的数据,对后三者进行综合分析,可以获取老人行走的姿态、步速等信息。原始数据的由传感器产生,本系统涉及的传感器有:深度镜头上的RGB传感器与深度传感器,智能手表上的陀螺仪传感器、气压传感器、心率传感器以及加速度传感器,雷达传感器。传感器并没有数据发送的功能,因此需要连接在具有网络传输功能的设备上。
本系统采用了树莓派4b连接传感器,并使用ROS(机器人操作系统)管理对原始数据的采集与发送过程。在ROS中,每个设备运行的实例都被称为节点。节点可以提供某种数据或能力,如从传感器中获取数据并处理,所有数据都会通过节点发布。其他程序可以通过向节点订阅一个Topic(主题)来获取数据,Topic订阅后,节点每次从传感器获取到新数据,都会向所有订阅该节点的Topic发布数据。但该方式只能让本地应用获取数据。而雷达、镜头与网关并不在同一树莓派上,需要通过网络方式传输数据。网络传输分为有线和无线两种,考虑到设备较多,采用有线网络方式局限性较大,选择无线网络方式传输数据。在设备树莓派上,需要一个中间程序将数据发送出去,本系统选择使用ROSbridge。
ROSbridge可用于非ROS系统与ROS系统进行通信,它将基于Json格式指定数据内容的网络请求来调用ROS的功能,通过WebSocket进行数据的传输,实现了外部系统与ROS的解耦合,让外部系统可以基于任意语言开发。网关程序采用Java语言,因此采用了JROSbridge作为订阅设备Topic与获取数据的中间件。
智能手表不同于ROS设备,其采用谷歌的WeaROS系统,需要专门开发采集数据的应用,并在合适的时间,通过主动上传方式向网关发送原始数据。通过以上中间件和传感器,本系统可以从网关通过无线方式获取到老人的各项体征数据。
2.1.2数据处理
根据老人健康信息系统的需求,网关应提供数据的基本处理能力,使系统中的其他组件能专注于数据的后续处理。对此,本系统应支持对原始数据进行简单处理,包括以下几个方面。
(1)数据压缩。原始彩色图像数据和深度图像数据较大,而家庭用户上传带宽有限,使用原始数据上传必然会造成接收速度大于上传速度,最后大量丢失数据。而根据数据处理的需求又不能对数据造成损失,因此需要采用无损压缩的方法。
(2)数据封装。原始数据不包含时间戳数据,网关需要对每一条数据都加上时间戳,便于后续程序的处理。
(3)数据的简单可视化。系统预留接口,可将本地或者云上的雷达点云数据、深度图像数据、彩色图像数据转化为视频,节省空间,方便预览。
(4)数据的选取。上传到云上的数据是以原始频率固定条数一份,系统应支持以不同于数据原始频率获取数据,还需要支持按时间段选取。最终将多条符合要求的数据组装成一个文件。
2.2数据存储完整性保障
数据是网关程序的核心,保障数据的存储完整性至关重要。对于本系统来说,存储完整性包括接收数据时的完整性、从内存中写入本地磁盘时的完整性还有从本地上传至云时的完整性。
2.2.1接收数据时的完整性
接收数据是最容易丢失数据的一环。由于采用无线方式传输数据,传输过程中可能遇到网络不佳的情况导致部分数据丢失。为减少由于物理传输导致的问题,需要先分析造成网络不佳的原因有哪些。本系统由于采用网关树莓派启用AP,下属设备连接网关AP,来构建局域网,在同一网段没有其他设备干扰。但在家庭或者小型公共场所环境中,同时存在大量无线信号,信道冲突比较严重,在实际测试中信道选择会对传输过程产生比较大的影响。尽量减少信道冲突,需要网关支持自动信道选择(ACS)功能。
数据的接收不是一个传输速度一致的过程,如程序采用单线程结构将数据直接传至云端,会出现部分时间在接收数据部分时间在上传数据的情况,导致上传时丢失新的数据,网关需要解决这种速度不一致的问题。
2.2.2数据写入本地磁盘时的完整性
缓存是解决速度不匹配问题的一种方案,而缓存结构一般在内存中,内存的容量是有限的,程序需要在合适的时机将缓存中的部分内容写入容量较大的磁盘中,并释放这部分的内容。由于写入磁盘的过程较为耗时,采用单一缓存结构时,需要锁住整个缓存,新来的数据无法载入缓存中,造成部分数据丢失。为解决该问题,需要引入双缓存结构。双缓存包括新旧两部分,其中新缓存接收来自设备的数据,旧缓存则提供向磁盘写入的数据,分离写入和接收的过程,在一定程度上减少了冲突,保障了数据的完整性。
2.2.3数据上传至云时的完整性
本地文件都应上传至云端,在上传的过程中,会遇到网络不佳的情况,造成上传速度缓慢或者部分文件上传失败。程序应当对上传失败的内容进行重新上传;对于网络不佳的情况,可以选择在空闲时段上传,如深夜。在确保已经完整上传至云端后,可以删除本地文件,释放空间。
2.3应用程序接口
网关程序提供了API(应用程序接口),本地程序或者终端设备可以通过URL与GET/POST方法从网关获取网关与设备的信息、各设备与云上的数据,也可以对网关或者设备进行控制。
2.3.1信息获取
网关程序应提供网关与设备的信息。对于网关,需要提供网关下列信息:
(1)基本信息:当前的CPU使用率,已使用的内存容量,总内存容量,已使用的磁盘容量,总磁盘容量,当前网络速度。
(2)网络相关信息:网关MAC地址,网关IP,网关名称,已连接到网关的设备列表。
(3)数据相关:网关已订阅Topic对应的缓存当前使用量以及预设最大容量;上传队列当前使用量。
对于设备,需要提供以下信息:
(1)网络相关信息:设备IP地址,设备MAC地址,设备名,设备无线网络连接时间,设备无线网络连接速度,设备当前是否已连接。
(2)ROS相关信息:设备拥有的Topic列表,包括Topic名,Topic类型,Topic帧率,Topic压缩类型以及是否订阅;ROS主服务是否正常运行。
此外,网关还应提供运行日志的接口。运行日志包含了程序运行时的各种信息、警告与错误信息,通过日志,可以详细分析网关与设备运行的状态,在遇到问题时排除故障。
2.3.2数据获取
本地程序或者客户端可以通过URL访问网关来获取实时数据或者云上的数据。程序应提供数据接口,客户端通过URL请求字段中提供Topic名字、设备MAC地址、数据的起始时间、持续时间、数据的频率与是否解码,程序找到符合条件的数据,生成文件,返回给客户端。由于上传的文件是固定条数为一文件,数据的频率也是固定的,程序在处理时需要下载相应时间段的所有数据并对数据进行转换与解码等,这个步骤较为耗时,为提高下载速度,需要采用多线程等方法加速该过程。此外,为应对严重耗时的任务,应提供一个任务进度的接口,客户端可以通过该接口获取任务实时进度,并在任务完成后获取结果。另外,程序还应提供数据的初步处理结果。提供一个接口,根据设备MAC地址、起始时间与持续时间,返回对应的数据处理后的结果。
2.3.3网关与设备控制
程序应提供接口,使客户端可以通过API对网关与设备进行控制,这些控制包括以下内容。
(1)对于网关,应提供:
1.网关重启、关机、服务重启的基本控制;
2.设定计划任务,包括程序休眠的时间与唤醒的时间,在休眠期间,程序部分模块停止工作;
3.已连接WiFi设备的控制,包括禁止或者允许哪些设备连接到网关;
4.ROS相关的控制,包括订阅或者取消订阅Topic,设置获取Topic的频率;
5.网关程序相关的控制,包括开启和关闭上传,开启或者关闭下载,启用或者停用缓存。
(2)对于设备,应提供:
1.设备重启、关机、服务重启的基本控制。
2.ROS相关的控制,包括ROS服务的启动与停止,Topic的发布。
2.3.4其他
网关程序还应提供一些额外的API。
上传接口。对于智能手表,系统为WeaROS,无法采用ROS Topic的方式获取数据,需要网管程序提供上传接口,客户端给出关键字,网管处理请求,开始接收文件,文件接收完成后加入上传队列。同样的,对于老人健康信息系统,可以使用该接口上传综合处理后的数据。
云端数据管理。提供对云端数据的简单管理,如获取云端文件列表以及对应的上传时间,以便分析数据的完整性与网络情况。另外,还需提供云端数据删除接口,对已完成分析处理后的原始数据进行删除。
2.4故障与自动恢复
网关及其下属设备在运行过程中,由于内在因素如程序本身的运行错误、硬件错误;外在因素,如网络问题、断电等导致系统无法正常运行时,需要程序在可行范围内对故障进行自动恢复。
2.4.1网络故障
在以无线为传输方式的系统中最常见的网络错误就是WiFi断流或者WiFi掉线。WiFi断流表现为WiFi仍处于连接状态,但是无法传输数据,或者数据包严重丢失,这种情况大多数是由于硬件本身的原因。WiFi断线表现为WiFi连接断开,无法传输数据,也无法对设备进行控制,这种情况常发生在WiFi环境复杂的地方,由于信道干扰严重,WiFi时断时续。
另外常见的网络故障就是网关无法连接互联网或者连接速度极为缓慢。这种情况与多方因素有关,最常见就是路由器的故障和运营商的故障。这两种故障会导致文件在一段时间内总是上传失败。
2.4.2软件与硬件故障
长时间运行的软硬件难免会出现未知的问题。网关程序是一个多线程的程序,在运行过程中可能发生多线程竞争、资源冲突、死锁等问题导致程序崩溃或者卡死。而对于设备上的ROS系统,也可能出现无法从传感器获取设数据,ROS程序崩溃等问题。
大多数问题都可以通过重启程序或者设备来解决。网关程序应通过某种策略对设备进行监测,在监测到异常时对设备进行相应的处理。而对于网关自身,通过定期重启自身程序来避免发生因长时间运行导致的错误;另外,日志是记录程序运行状态的必要手段,应尽可能详细地记录日志,在长时间的测试中通过分析日志找到程序崩溃或者发生死锁的原因,并对程序进行改进,减少错误的发生。
2.4.3断电
断电不可避免,断电后网关和设备都无法工作。但程序应至少保证断电前的数据完整性。缓存中的数据应尽快写入磁盘,在来电后,这些已经写入磁盘的文件应该加入上传队列。
2.5对网关系统进行了需求分析,分析了网关所需的功能,主要有数据获取于处理与设备控制的。还分析了可能遇到的故障,以及故障产生的原因。
3、智能网关系统设计
3.1智能网关总体架构设计
总体上智能网关系统可以分为硬件和软件两个部分。
3.1.1硬件总体架构
网关系统涉及的硬件包括网关树莓派、设备树莓派、传感器如镜头与雷达、智能手表以及云存储。每个传感器都连接到各自的树莓派,智能手表不连接树莓派,而直接连接网关。网关树莓派与设备树莓派(智能手表)之前采用无线连接方式,设备树莓派(智能手表)连接网关热点。网关通过有线连接方式连接到英特网,最终与云存储相连。
硬件总体架构图如图3所示。
3.1.2软件总体架构图
网关核心软件可分为五大模块:WebApp模块,硬件管理模块,故障恢复模块,数据管理模块,云模块。网关软件总体架构图如图4所示。
3.2网关系统详细设计
3.2.1硬件构成
树莓派:本系统的所有树莓派型号统一为树莓派4b 4GB内存版本;安装操作系统为Linux ubuntu 5.3.0-10**-raspi2,同时安装有ROS(机器人操作系统)。网关树莓派将自身WLAN网卡作为无线热点,为减少信道冲突,采用5Ghz频段的无线热点,并带有自动信道选择(ACS)功能。
深度镜头:型号为Intel RealSense系列镜头,可同时拍摄深度图像与彩色图像。
雷达:雷达型号为3irobotix的Delta-1A型激光雷达,可采集雷达点云数据。
智能手表:共有两款智能手表,华为Watch 2与小米智能手表,都安装有WeaROS中国版操作系统。
3.2.2WebApp模块设计
WebApp模块包含两大功能,提供API与Web页面。
1.API
本程序为服务老人健康系统,提供了丰富的接口。所有接口大致可以分为五大类:设备控制,数据相关,基本信息,网关管理,其他。
(1)设备控制:包括基本控制与ROS相关控制。基本控制是指对设备进行关机、重启、停止服务、启动服务等基本操作;ROS相关控制是指对设备上的ROS程序进行重启、停止、启动的操作。
(2)数据相关:包括数据获取、数据处理与数据管理。数据获取是指根据Topic名称、MAC地址、起始时间、持续时间、是否解码以及数据频率从网关获取符合条件的数据。数据处理是指对数据进行初步加工后再获取数据,如将原始彩色图像数据转换为视频、对图像数据进行解码。数据管理是指对本地或者云上的数据进行管理,如查看云存储数据的文件列表与上传时间,删除云上特定时间段的数据。
(3)基本信息:基本信息包括网关基本信息、设备基本信息、缓存基本信息与日志。网关基本信息包括网关当前的CPU使用率,已使用的内存容量,总内存容量,已使用的磁盘容量,总磁盘容量,当前网络速度,网关网络相关信息,包括网关MAC地址,网关IP,网关名称,已连接到网关的设备列表。设备基本信息有设备IP地址,设备MAC地址,设备名,设备无线网络连接时间,设备无线网络连接速度,设备当前是否已连接,设备拥有的Topic列表,包括Topic名,Topic类型,Topic帧率,Topic压缩类型以及是否订阅;ROS主服务是否正常运行。缓存基本信息包括网关已订阅Topic对应的缓存当前使用量以及预设最大容量。此外,基本信息还包括上传队列当前使用量,云上的Topic配置列表,计划任务中网管程序睡眠与唤醒的时间。
以上所有API,都需通过访问对应的URL与对应的GET/POST方法,带上所需的参数,如无误,则以文件形式或者Json字符串格式返回结果。
API组成如图5所示。
2.Web页面
为提高可用性,本网关软件提供了一个可视化的网管管理界面,采用网页的形式。
网页共分为八个子页面:概览、数据、视频、上传、日志、设置、计划任务和关机。
(1)概览:实时显示网关基本信息,CPU使用率,硬盘使用率,硬盘已使用的容量与总容量,内存使用率,内存已使用的容量与总容量,实时网速。以动态折现图的形式,显示7分钟内所有缓存的使用情况,并支持简单管理,如删除缓存。
(2)数据:提供数据下载与简单数据管理功能。以可视化的形式显示所有Topic及其基本信息,包括名称、类型、帧率以及压缩类型。选中需要的Topic后,选择日期以及起始时间与结束时间,选择是否解码后,可以开始多线程下载,并在同个页面显示下载列表。每个下载项都显示进度条,下载支持暂停/恢复下载(断点续传),取消下载。下载完成后,可以保存文件到当前客户端,还可以直接删除云端对应的数据。
(3)视频:提供图像数据转为为视频的功能。选择日期、起始时间与结束时间后,程序将下载对应的彩色图像数据并转化为视频,该过程同数据中一致,在同页面显示任务进度条。任务完成后,可以选择下载视频或者直接在网页内嵌播放器中播放该视频。
(4)上传:提供数据上传功能。该功能为处理后的数据上传到服务器提供上传接口。选择Topic、日期以及文件列表即可上传所有文件到网关。网关将所有文件线保存到磁盘并加入上传队列。
(5)日志:提供日志查看功能。可以显示网关实时的日志或者历史日志。历史日志需要选择时间,选择时间后,将显示半小时内的日志,该过程网关程序将从服务器获取数据,可能会消耗一定的时间。
(6)设置:提供Topic设置功能。在该页面,可以对网关对应的Topic配置表进行增删改,修改后,点击确认按钮,网关检查无误后,上传配置至云。
(7)计划任务:提供睡眠时间和唤醒时间的设置功能。
(8)关机:提供关闭网关树莓派的功能。关闭网关之前,网关将尝试关闭所有的下属设备。
3.2.3数据存储完整性设计
在需求分析中,已经提出了对存储完整性的一些要求。在网关程序中,采用了多种方式来保障数据的存储完整性。
1.缓存设计
缓存是网关程序的核心功能,它实时接收来自设备的数据,并将数据写入磁盘中,客户端还可以通过API从缓存中获取最新的数据。
为保证数据的完整性,本网关系统采用了一种双缓存结构,新接收的数据将会加入到新缓存中,而新缓存中较旧的数据将被转移到旧缓存中,旧缓存的数据量达到阈值就会触发文件写入机制,将一定数量的数据写入到文件中,并在旧缓存中删除这些数据,保证缓存的总数据量,维持在一个相对稳定的水平。在缓存到磁盘这一过程中,程序因为线程安全,必须对缓存所在的对象进行加锁。采用单一缓存结构,在写入过程中,新来的数据无法添加到缓存中。由于从内存到内存的速度远大于从内存写入磁盘的速度,采用双缓存结构,可以避免单缓存结构中因为等待文件写入完成所消耗的时间,大大减少新来的数据丢失的概率。
对于写入文件的数据,还需要保证其有序性。网关程序的缓存采用了一种特殊的结构--队列。队列的特性是从队头删除,从队尾加入,正好符合对于数据有序性的要求。新来的数据只需添加到新缓存的队尾。旧缓存每隔一段时间,就从新缓存的队头获取新数据,新缓存则删除对应内容,旧缓存满后,将一定数量的数据从其队头依次删除并写入到磁盘中。
缓存结构图如图6所示。
2.上传队列设计
网关程序接收到的所有数据、网关与设备的信息与日志都需要上传到云端。不同的线程会产生不同的文件,为统一控制,需要有一个统一管理上传的机制。为此程序设定了一个上载中心,管理所有上传任务。上载中心的核心是维护一个上传队列,该队列的每个元素都是一个文件单元,其属性包括文件的名称,文件的本地路径,文件的云端路径。其他模块只需向上载中心注册一个文件上传任务,后续就由上载中心完成该任务。上载中心接收到新任务后会将文件单元添加到上传队列队尾,并更新上传队列的总存储容量。为避免文件过多,导致本地磁盘满,程序设定了一个阈值,当待上传容量超出该阈值后,删除队头的部分数据,使总容量降低到安全的水平,而新来的数据可以继续加到上传队列中。实际就是用新数据代替旧数据。
上载中心不断从上传队列的队首获取文件单元,尝试上传对应的文件,成功则从队列中删除该文件,并删除对应的本地文件;失败则将该元素从队头删除,并重新添加到队尾。
上载中心在程序休眠的时候不停止工作,这也是为了保障数据的存储完整性。非休眠时段可能会积压部分数据,在休眠时间,程序停止接收数据时,上传机制仍然工作,可以一定程度保证数据不丢失。
3.故障恢复机制
由于软硬件故障造成的数据接收暂停,程序应用了一些故障恢复机制来尽快恢复数据的获取,尽可能缩短数据丢失的时间。
3.2.4综合管理
综合管理由五个子模块构成:WLAN管理,设备管理,网关管理,缓存管理,计划任务管理。
1.WLAN管理
WLAN管理模块负责WLAN相关的活动管理以及对WiFI进行控制。WLAN管理器支持扫描已连接网关树莓派热点的WiFI设备,获取网络基本信息,包括设备MAC地址、设备IP地址、设备名、网络连接时间与网络连接速度。对扫描到的新设备,WLAN管理器将其保存到WLAN表中,其他模块可以通过MAC地址、IP地址中的一项获取整个设备的网络信息。
WLAN管理器还支持重启Hostapd程序,即热点控制程序,来完成对热点的的重启。另外,WLAN管理器还支持根据MAC屏蔽某些设备,使其无法连接到网关树莓派热点。当然,也支持解封这些设备。
2.设备管理
设备管理负责管理网关下属设备。支持对设备进行重启、关机、暂停服务、启动服务、通过SSH获取设备信息、控制ROS的启动与关闭、检查ROS服务运行的状态、为设备设置故障恢复策略等功能。
设备管理模块是网关程序的核心模块,它通过周期性的WiFi扫描来获取已连接的设备列表,然后对旧设备进行检查,为新设备分配监视程序与开启新的订阅数据的线程。为了保证该模块的稳定运行,程序用了一些方式来使设备管理模块与程序中其他模块解耦合。
3.网关管理
网关管理模块负责管理网关树莓派本身,包括对网关进行重启,对网关程序进行重启,以及获取CPU使用率等基本信息。
4.缓存管理
缓存管理模块负责管理所有缓存。其他模块通过向缓存管理器注册来新建缓存,或者通过MAC与Topic类型来获取对应的缓存。
每个缓存都支持根据条件从缓存中获取数据,包括数据的起始时间,频率,持续时间。
5.计划任务管理
计划任务模块负责管理网关程序的休眠时间与唤醒时间。可以在休眠之后与唤醒之后设定任务。本程序中,在休眠之后,将上传本地配置至云,结束所有数据接收的进程,暂停下载,暂停缓存写入文件到本地磁盘,但不停止上传。程序唤醒之后,将会重启网管程序,程序启动后,将从云端下载配置,然后检查已连接的设备,对每个设备进行Topic订阅以及分配监视进程。
3.2.5故障恢复
故障恢复模块是保障数据的存储完整性的重要模块,确保程序能够长时间运行。
程序通过一系列的策略来尽可能恢复程序的正常运行。
(1)设备管理器的WiFi扫描线程每隔20秒扫描一次已连接的设备,一旦发现新设备,就为该设备注册设备管理号,并开始订阅数据;同时扫描线程对旧设备进行ROS服务端口检测,如果连接不上,就通知该设备对应的错误监视对象设备存在问题。
(2)错误监视。每个设备在创建时期都会被分配一个错误监视对象。每个错误监视对象都对一个Topic订阅分配一个错误计数线程。每隔10秒,该进程从订阅者线程中读取一个错误标志,如果为假,则对错误计数加一;如果为真,则清零错误计数,同时对该错误标志设置假。错误计数累计达到八次后将会对该设备开启错误处理流程。
(3)错误处理流程。每个错误监视对象都有一个服务重启计数,在重启次数小于或者等于3时,会进行ROS服务重启流程。如果大于3,则进行重启设备流程,并在完成之后对服务重启计数清零。
(4)ROS服务重启流程。启动后,先结束对应设备的所有订阅,然后关闭错误计数线程,通过SSH对设备ROS服务进行重启,发送命令后等待一分钟,再尝试连接ROS端口,成功后重新开始订阅所有Topic。
(5)设备重启流程。启动后,先结束对应设备的所有订阅,然后关闭错误计数线程,通过SSH对设备进行重启,发送命令后等待两分钟,再尝试连接ROS端口,成功后重新开始订阅所有Topic。
可能遇到的故障和恢复策略。
(1)WIFi掉线:暂停订阅线程,文件写入和文件上传继续工作,下一次扫描到连线后重新订阅并开始接收数据;
(2)WiFi未掉线,设备ROS服务中断:尝试重启ROS服务,累计三次重启服务后仍接收不到数据则重启设备。
(3)网关重启,设备未重启,会导致设备ROSbridge不知道网关重启,再次订阅失败:减小Session有效时间,网关尝试连接后,一段时间内仍未收到消息,就重启ROS服务,这一步以判断session为依据。
以上方案可以保证最少30秒,最长两分钟内恢复数据接收过程。
(4)网络环境差或者网关断网:网络差时会导致上传错误,每次错误都会将未成功的数据重新加入上传队列,错误次数超过20次时,会提示该问题。
(5)上传带宽小于网关接收设备的带宽时,会导致文件积压,目前设置了一个队列,积压的文件数量超过100时,继续接收数据,并从队列删除旧数据,保整队列长度不超过100。另外,程序在非活动时间(晚上1-4点)也会继续上传未上传的数据。
(6)断电:缓存中保留的部分数据丢失,但已写入文件的数据不丢失,来电后继续上传数据。
3.2.6数据管理
数据管理模块一共有两个功能,数据获取与数据处理。其中,数据获取包括从云上获取数据与从设备获取数据。
(1)从云上获取数据
从云上获取数据,是作为一个任务,该功能主要时作为API提供给客户端。每次获取都需要向任务中心注册一个任务,注册信息包括需要下载数据的类型与时间。任务中心将会启动这个任务,开始下载云上符合条件的数据,将所有数据合并为一个文件,返回给客户端这个文件的URL地址。
(2)从设备获取数据
从设备获取数据主要有两种方式:订阅方式与提供上传接口。
订阅方式由订阅者模块完成。设备管理器为每个Topic都分配了一个订阅者对象。每个订阅者对象创建时都会尝试向设备ROS订阅指定的Topic,然后开始接收数据,每收到一组数据,都将其加入到对应的缓存中,然后设置错误标记为真。上传接口已在API模块中介绍。
数据处理模块负责对数据进行简单处理。
(1)压缩数据。原始图像数据占用的空间较大,程序将对对图像进行无损压缩以节省空间。实际测试中,压缩对于常用环境下的图像能节省80%以上的存储空间。
(2)数据封装。每个Topic的数据类型不同,组成结构也不同,对每条收到的数据,程序都需要先进行数据封装。首先为每条数据增加时间戳,根据数据类型不同对数据进行Json化处理。
(3)解码数据。部分从云上下载的数据是经过压缩加Base64编码后的数据,客户端可以通过网关直接获取这些原始数据,也可以直接让网关程序对这些数据进行解码加解压后获取直接可用的数据。
(4)转换为视频。网关程序还提供将图像数据转化为视频的功能。图像数据包括深度图像与彩色图像。实际测试中,转换为视频可以节省超过95%的容量占用,而且再从视频流中获取数据帧的质量也接近原图像。对于过时的数据,采用视频存储方式,可以节省大量空间。
3.2.7云
云模块包含两个子模块,上传中心与下载中心。
(1)上传中心
上传中心的主要功能就是上传本地文件到云端,其主要结构就是上传队列,已在数据完整性设计中介绍。
(2)下载中心
下载中心的主要功能就是从云端下载文件,支持多线程下载。其主要结构是一个下载队列组。下载中心向外提供了一个下载的接口,程序调用该接口后,向下载中心注册了一个下载任务,任务参数需要包括一个回调、文件源路径和目标路径;回调包含了下载完成时需要执行的动作。下载中心在下载队列组中选择合适的队列添加该下载任务,尽可能保证所有队列的下载任务数量相同。对每一个下载队列,都开启一个下载线程,不断从队头取下载任务,根据任务的源文件路径从云端下载对应的文件;下载完成后,执行回调函数。
3.3智能手表数据采集应用设计
智能手表采集应用的主要功能就是采集老人的体征数据,在合适的时机发送到网关。
3.3.1智能手表数据采集应用总体架构设计
智能手表数据采集应用包含六个模块:表盘界面、数据采集、设备监测、日志系统、上传文件、文件管理。
智能手表数据采集应用架构如图7所示。
3.3.2智能手表数据采集应用详细设计
1.表盘界面
表盘界面是手表应用的主界面。显示有时钟、网络连接状态、充电状态、传感器实时数据,缓冲使用量等信息。
2.数据采集
数据采集模块负责调用智能手表的传感器,进行数据采集。包含心率、气压、加速度、陀螺仪这四种数据。该模块采用固定的频率采集数据,将数据存入缓冲中,缓冲满后,写入到文件,清空缓冲。
数据采集仅在老人佩戴上手表时进行,在摘下手表时数据采集将暂停。
3.设备监测
设备监测模块的功能是获取手表的当前状态,包括是否佩戴、当前的活动类型、是否连接到网络、是否正在充电以及手表的当前电量。
当手表满足连接到无线网络与正在充电两个条件后,程序将开始上传文件流程。
4.日志系统
日志系统记录手表的基本信息,包括电量、动作类型与手表活动。
5.上传文件
上传文件模块负责上传采集到的数据到网关。该模块仅在同时满足连接到网络与充电两个条件时激活。激活后,程序首先开始搜索网关IP,通过遍历同网段下IP的8088端口,尝试寻找网关的IP地址,如果没有找到,则不执行上传过程。找到网关IP地址后,程序从文件管理模块获取需要上传的数据文件列表和日志文件列表,调用网关的上传文件接口进行上传,每个文件上传完成后都会被删除。
6.文件管理
文件管理模块负责管理本地的数据文件与日志文件,向其他模块提供其源路径。
3.4对智能网关系统进行了系统设计,包括总体设计与每个模块的详细设计,针对需求分析中的所有功能进行了相对应的设计。另外,还对智能手表数据采集应用做了设计。
4、智能网关系统的实现
4.1硬件实现
4.1.1智能网关系统硬件设备
树莓派:树莓派4b 4GB内存版本;搭载Ubuntu 18.04TLS for raspberry 4系统。
4.1.2固件制作
网关与设备都采用树莓派4b,需要制作固件。固件应配置完成程序运行所需的所有环境、服务、教程程序以及程序本体。
固件基于Ubuntu 18.04TLS for raspberry 4。
(1)安装ROS系统及软件依赖。
ROS与Ubuntu 19.10for raspberry存在兼容性问题,尝试从源码编译失败换用兼容性更好的Ubuntu 18.04。
安装ROS完毕,运行ROScore,测试安装正确。
(2)安装雷达驱动
雷达型号为Birobotix公司的Delta-1A雷达。
通过ROS的catkin编译工具安装雷达驱动。
(3)安装深度镜头驱动
镜头型号为Intel的RealSense系列,需要安装RealSense SDK,由于raspberry不支持apt包管理安装,需要从源码编译。安装SDK后下载RealSense for ROS的驱动,使用Catkin编译后,测试命令:
$sudo ROSlaunch realsense2_camera rs_camera.launch
(4)装载网关程序
将网关程序安装到固定位置,以Systelctl服务的形式注册该网关程序,以便系统管理。
(5)配置热点
安装Hostapd与Dnsmasq,配置相关文件,配置路由转发策略。使网关热点可用,并将所有连接到AP的请求转发到以太网卡上。
(6)装载脚本文件
将网关程序运行所需的脚本文件放置到指定位置。
(7)制作固件
编写脚本命令,写入img镜像。用fdisk查看该镜像,经过测试该镜像可用。
4.1.3注意事项
硬件的安装具有一定的限制。
(1)受树莓派天线性能限制,开启5G热点后,网关树莓派与设备的距离不能超过10米。
(2)镜头的安装位置应尽可能拍摄到整个房间。
(3)雷达放置在地面上,前部无遮挡。
(4)智能手表需要设置连接到网关或者与网关同网段的无线路由器。
4.2软件实现
4.2.1WebApp实现
WebApp模块采用Springboot MVC实现。
1.网页
程序使用JSP编写了可视化页面,并使用注解来完成对URL的解析和Mapping。
MVC模式示意图如图8所示。
程序收到主页访问请求后,根据参数MAC地址,从服务器下载配置,生成Topic表,对页面进行更新后返回给客户端。
2.API
API通过URL形式开放给客户端。
表1网关API详细信息
4.2.2综合管理模块实现
1.WLAN管理
WLAN管理器的实现依靠执行Linux命令与对命令执行结果来实现。已连接WiFi设备扫描的实现:
执行$iw dev wlan0 station dump
对结果进行文本分析,获取所有已连接设备的MAC地址、连接时间、连接速度。
执行cat/var/lib/misc/dnsmasq.leases,获取连接到网关的所有设备的MAC、IP、设备名称。
将以上两组结果进行拼接,可以得到每个设备的详细信息。
对WiFi设备的屏蔽和启用是通过修改hostapd.deny文件来实现,在该文件中添加设备的Mac地址即可禁用设备,从该文件中删除Mac地址即可启用设备。
2.设备管理
设备管理中心启动后会创建一个WiFi扫描线程,该线程每隔20秒进行一次设备扫描。
设备管理扫描线程流程图如图9所示。
设备管理中心通过SSH连接设备,然后执行命令来获取信息、控制设备。
对设备服务状态的状态判断是通过监听服务的端口,设定一个超时的时限,在时限内建立了连接则表明服务正常运行,反之服务可能出了故障。
3.网关管理
网关管理中心通过运行本地命令与脚本来控制网关的重启、热点的开关、服务的开关、获取网关基本信息等。
表2网关管理命令
4.缓存管理
缓存工作流程图如图10所示。
5.计划任务
计划任务的定时任务通过Springboot自带的Scheduled管理实现。
计划任务流程图如图11所示。
4.2.3数据管理模块实现
1.数据处理
数据处理包括数据封装、数据压缩与解压与视频转换。
数据封装成Json格式,便于后续流程解析。
数据压缩主要对图像数据进行压缩,采用PNG算法。
视频转换使用了Xuggle库,将PNG图片还原为位图后根据时间戳添加到视频轨中。
2.数据获取
数据获取相关的两个主要流程是订阅者与错误监视。
订阅者流程图如图12所示,错误监视流程图如图13所示。
4.2.4云模块实现
1.上传中心
上传中心工作流程图如图14所示。
2.下载中心
下载中心工作流程图如图15所示。
4.2.5性能优化与线程安全
网关程序采用了多线程结构,每个模块独立运行。为提升程序运行的稳定性与性能,在程序的编写过程中,采用了一些优化技术与策略。
1.锁优化
在一些共享模块中,某些变量被高频访问,同时它们的修改需要确保无误,在多线程的环境中,需要对这些变量加锁,如添加synchronized关键字实现。但多个线程同时访问变量时,会造成资源的竞争,同时只有一个线程访问该变量,而其他线程被阻塞。实际测试中,当添加锁后,部分线程可能会因为长久得不到资源而发生无法意料的错误,或者整个流程因为中间某部被阻塞导致工作暂停。严重降低了程序的性能与稳定性。
程序采用了CAS对高频访问的变量进行优化。CAS即比较并交换compare andswap,CAS是CPU指令级别的操作,它具有原子性。CAS的操作在CPU中完成,而无需通过操作系统对锁的裁定,这大大降低了锁的开销。在Java中JDK提供了CAS的原生支持。对于链表,同样可用应用CAS。
虽然CAS是硬件级别的操作,但其仍具有一定的开销。在程序优化过程中,优化逻辑,尽可能减少对高频访问变量的写入操作,设置辅助标志,降低锁的使用。
2.模块独立运行
在复杂流程中,同时会涉及多个模块的使用。多余过耦合的情况,如果某个模块发生了错误,会导致整个流程都处于死等状态。本程序中,WiFI扫描-订阅-错误监视过程就是一个典型的例子。
在初代版本中,通过WiFI扫描模块去控制订阅过程,而错误监视与订阅者高度耦合,交叉控制,WiFI扫描线程等待订阅者线程反馈消息后再执行下一步操作。这种方案最终导致实际测试过程中出现错误监视常常因为线程优先级的问题无法监测出数据,订阅者线程因为故障无法回馈给WiFI扫描线程信息,导致WiFi扫描一直处于死等状态。严重地,还会因为错误监测线程一直检测到无消息错误而反复重新订阅,而旧的订阅者可能因为与错误监视存在交叉引用导致Java虚拟机未能及时回收资源,最终造成内存爆炸或者CPU使用率满的情况。
改进版本,模块解耦合,使每个模块只负责自己的工作,相互之间仅通过信号--标志变量来交流。WiFi扫描线程只负责寻找设备与初始化新设备;订阅者线程仅负责接收消息;错误监视线程负责对订阅者线程的监视,通过访问订阅者线程的错误标志来判断数据接收是否正常进行。在这种结构中,一个设备出现问题,不会导致WiFi扫描线程暂停,而错误监视程序能很快通过错误标志知道设备出现问题而进行错误处理流程。在实际测试中,采用这种方案大大提高了程序的可靠性。
3.线程安全的容器
本程序中,有几个比较常用的数据结构,如Hashmap和队列,在单线程应用中,对于它们的访问是串行的。但在多线程程序中,可能存在多个线程同时访问一个结构。最常见的,在一个线程对hashmap进行遍历的时候,另一个线程对该hashmap做了插入或者删除操作,造成了hashmap前后的不一致。这种情况就可能会使该hashmap产生一个环结构,导致下次遍历的时候发生死循环。这种hashmap就称为非线程安全的。为解决该问题,需要用到线程安全的容器,JDK中提供了Hashmap与队列的线程安全版本,即ConcurrentHashmap与ConcurrentQueue,它们通过在内部对修改内部变量的方法如put添加锁实现。在JDK1.8版本之后,采用了CAS+synchronized关键字来保证线程安全,相对于之前版本的自旋锁与阻塞锁进一步提高了性能。
本程序的缓存结构、上传队列与下载队列,就用到了ConcurrentQueue;在缓存管理中心、WLAN管理中心、设备管理中心等处使用了ConcurrentHashmap。
4.2.6数据流向
网关数据流向如图16所示。
4.3从硬件与软件两方面,讲述了系统的具体实现。
讲述了从硬件设备、环境的搭建到软件各模块的实现,以及性能优化。给出了一些模块的具体实现流程图、API的实际使用方法、功能的编写过程与实际实现方法。
5、智能网关系统测试
5.1测试环境
测试设备
网管系统;3台树莓派4b,一台Intel RealSense镜头,一台3irobotix Delta-1A型激光雷达,一只华为Watch2。
客户端:Surface Pro 5设备,BitviseSSH、Chrome 80浏览器。
环境搭建:
在3个树莓派中刷入固件,其中,两个为设备固件,一个为网关固件。
在刷入固件的两个树莓派中分别导入镜头配置与雷达配置,配置WiFi,分别插上镜头与雷达。
将树莓派连上显示器,尝试启动树莓派,观察树莓派是否能正常运行。如果能正常进入系统,说明硬件无故障。
通过命令$service ROS status查看ROS服务运行状态。
通过命令$service gateway status查看网关服务运行状态。
两者都无误说明网关系统可以正常运行。
将镜头树莓派安装到房间里合适的位置。
将雷达放置到合适的位置。
将网关树莓派通过网线连接至路由器。
将华为手表连接到家庭路由器。
使用Bitvise SSH Client连接到网管树莓派。
至此,测试环境已经配置完成。
5.2 WebApp测试
5.2.1网页功能
访问http://192.168.1.105:8088/?mac=dca632494990
查看mac为dca632494990的设备的网关管理界面。
1.主页
网关管理主页展示了网关的基本信息,CPU使用率,硬盘使用量,内存使用率,实时网速等信息;还以动态折线图的方式显示了每个缓存的使用情况,每5秒更新一次,缓存使用情况动态折线图。
2.数据页面。
数据页面显示所有Topic详细信息,提供下载选择卡。点击开始下载后在下方显示下载列表,支持多个下载任务同时进行。
下载选项中,从左到右分别为暂停/恢复下载,取消下载,从网管下载文件到本地,删除网关上的临时文件,从云端删除已下载的数据。
3.视频页面
视频页面中,选择时间后点击开始下载后,程序将从云端获取对应时段的数据并将其转化为视频。
下载完成后,可以选择下载视频,也可以选择直接在视频页面中预览视频。
4.上传页面
在上传页面选择主题、日期和文件后,点击上传就会开始往云上上传文件,上传成功后在云管理页面可以看到文件已上传。
5.日志页面
日志页面可以查看实时日志或者云端的历史日志。
实时日志每隔20秒更新一次。
历史日志选择日志和时间后从云端下载,显示所选时间往后半小时内的日志,显示6月4日16:30-17:00之间的日志。
6.设置页面
在设置页面可以对配置进行修改,点击提交按钮后,网关会收到修改后的配置,检查无误后上传至服务器。
7.计划任务
在计划任务页面可以设置睡眠时间和唤醒时间。
8.关机
点击关机按钮,网关树莓派将关机。
5.2.2API
因程序API较多,挑选几个典型的API作为测试。测试采用Postman发送请求和接收数据。
(1)获取网关基本信息
URL:http://192.168.1.105:8088/gateway/info
方法类型:GET
参数:无
(2)获取缓存中的日志数据
URL:http://192.168.1.105:8088/api/data
方法类型:POST
参数:start_time、frame、count、topic、ip
(3)关闭ROS服务
URL:http://192.168.1.105:8088/ROS/stop
请求类型:POST
参数:ip
测试结果中的status为100代表该操作成功。
(4)获取网关配置
URL:http://192.168.1.105:8088/api/config/get
请求类型:GET
参数:无
5.3综合管理模块测试
5.3.1WLAN管理
本测试通过API展示。
(1)获取设备列表
URL:http://192.168.1.105:8088/api/wlan
结果:
结果返回了一个JsonArray,每个元素都是一个设备,包含了一些网络的基本信息。
(2)获取指定ip的设备的信息
URL:http://192.168.1.105:8088/api/wlan?ip=localhost&mac=
结果:
结果返回了本机的网络信息。
5.3.2设备管理
本测试通过API展示。
(1)所有设备信息获取
URL:http://192.168.1.105:8088/api/device/list
结果:
(2)设备控制示例,重启设备
URL:http://192.168.1.105:8088/api/device/reboot
结果:
{
“status”:100
}
重启后SSH断开。
(3)WiFi扫描测试
通过日志观察WiFi扫描过程,开始扫描后,程序获取到了一个设备local,然后对这个设备进行扫描,通过WLAN管理器获取了该设备的网络信息,然后再通过SSH从该设备获取Topic配置,成功后打印在log中;对配置中的Topic列表进行遍历订阅,并为该设备分配了一个错误监视,错误监视对每个订阅进行监视,如图中的/echo_back主题;因为设备列表只有一个设备,这一趟的扫描完成,WiFi扫描线程休眠20秒。
5.3.3网关管理测试
(1)获取网关基本信息
URL:http://192.168.1.105:8088/gateway/info
结果:
(2)管理网关-重启
URL:http://192.168.1.105:8088/gateway/reboot
结果:
{
“status”:100
}
Status为100表示操作成功。
5.3.4缓存管理测试
(1)获取所有缓存信息
URL:http://192.168.1.105:8088/caches
结果:
(2)从缓存获取数据
URL:http://192.168.1.105:8088/api/data?ip=localhost&start_time=2020-06-05
01:57:00.000&topic=/echo_back&count=1000&frame=1
5.3.5计划任务测试
测试中设定了睡眠时间为1点,唤醒时间为4点。可通过查看云端文件上传情况来观察该过程。
5.4故障恢复测试
该测试通过模拟一些故障来测试程序的自动恢复能力。
(1)ROS服务异常
手动停止ROS服务。
执行命令$service ROS stop
从停止ROS服务后的网关日志中可以看出网关程序的错误监视已经发现了有一段时间没有从设备获取到消息,它先停止监视该设备下属的所有订阅,接下来尝试去重启ROS服务。
网关尝试重启设备ROS服务后,ROS被成功重启,程序接下来重新开始监视设备的订阅,并重新订阅Topics。缓存动态折线图中可以看出,2:49左右,ROS服务停止导致缓存容量不再变化,中间程序重启恢复了ROS服务,到2:51左右缓存容量开始变化。
5.5数据管理
5.5.1数据获取
数据获取方式有两种,第一种是同步方式,客户端请求数据,并一直等待服务器下载完成后获取结果。另一种是异步方式,客户端请求数据,服务器收到请求后在后台下载数据,客户端通过查询进度的方式来知道下载的情况。网页测试中的数据页面采用的是异步方式,这里不再重复展示。
同步方式获取数据:
从云端获取mac地址为dca632494990的网关的log日志,范围为6月5日0点开始的100条数据。
URL:http://192.168.1.105:8088/api/download
5.5.2数据处理
(1)压缩与解压数据
从云端获取6月5日开始的100秒内的彩色镜头数据作为测试数据。
未解压数据通过数据获取接口从云端获取,decode参数设置未false。
解压数据同样通过数据获取接口从云端获取,decode参数设置未true,其他参数保持不变。
(1)图像转化为视频
已在网页测试的视频页面中有重复测试。
5.6云模块测试
5.6.1上传中心测试
已在网页测试的上传页面有重复测试。
5.6.2下载中心测试
已在网页测试的数据页面、视频页面有重复测试。
5.7手表采集数据程序测试
开启手表数据采集程序后,正常佩戴华为手表使用一天后,将它放到充电器上充电,此时手表程序会搜索网关ip,搜到后开始上传数据。
观察云端文件列表,可以发现网关已经接收到了数据并上传到了云上。
5.8通过环境模拟与操作模拟完成了对网关系统所有模块的测试。客户端能通过网关获取到设备的数据和对设备进行控制。通过网页能进行数据的管理;在系统发生故障后,程序能自动恢复;数据上传与下载均能正常运行。测试结果符合预期。
6、结果
本发明以Java为主开发语言,shell为脚本语言,设计与实现了智能网关系统,用于老人健康信息系统中的数据管理与设备管理。本发明完成的研究工作如下:
(1)对智能网关系统做了需求分析,根据老人信息系统的要求总结出了两大主要功能,即数据管理与设备管理。数据管理包括对老人体征数据的采集、上传、下载与处理;设备管理包括对网关与设备进行管理。
(2)设计与实现了智能网关系统。系统总体上分为硬件与软件两大部分。软件部分包括四大模块与两项针对数据完整性设计的策略。四大模块分别为WebApp模块、综合管理模块、数据管理模块与云模块;两项策略为故障恢复策略与性能优化策略。在功能的具体实现上,客户端主要通过HTTP的特定URL与网关系统进行交互,数据采用Json格式或者文件流的形式;网关对设备的控制通过运行预先编写的Shell脚本来达到。数据完整性的实现依靠线程安全的队列设计以及多项故障恢复机制;对于多线程的性能优化也提升了系统的稳定性,一定程度上保障了数据的安全。
(3)通过环境模拟与实地应用的方式,对智能网关系统进行了系统测试。测试结果符合预期。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种面向存储完整性的智能网关系统的控制方法,其特征在于,所述面向存储完整性的智能网关系统的控制方法包括:
通过WebApp模块提供API与Web页面,实现可视化界面与应用程序接口;其中,所述API为服务老人健康系统提供接口,所述接口包括设备控制、数据相关、基本信息、网关管理及其他接口;所述Web页面包括概览、数据、视频、上传、日志、设置、计划任务和关机;
通过综合管理模块实现对设备与网关的管理,提供WLAN管理、设备管理、网关管理、缓存管理及计划任务管理;
通过故障恢复模块提供硬件或者软件异常后程序保护数据的策略,通过一系列恢复策略恢复程序的正常运行,实现数据存储的完整性;
通过数据管理模块实现数据获取及数据处理;其中,数据获取包括从云上获取数据与从设备获取数据;数据处理用于对数据进行简单处理;
通过云模块提供上传中心和下载中心;最后对智能网关程序的每个模块进行功能测试与故障测试。
2.如权利要求1所述的面向存储完整性的智能网关系统的控制方法,其特征在于,所述面向存储完整性的智能网关系统的控制方法还包括:通过物联网设备获取老人的各项体征数据,包括心率、步速、步态、姿态;使用深度学习的方法从原始数据中提取信息,最终分析老人的健康状况。
3.如权利要求1所述的面向存储完整性的智能网关系统的控制方法,其特征在于,所述WebApp模块中,API为服务老人健康系统提供的接口,包括:
(1)设备控制:包括基本控制与ROS相关控制;基本控制是指对设备进行关机、重启、停止服务、启动服务的基本操作;ROS相关控制是指对设备上的ROS程序进行重启、停止、启动的操作;
(2)数据相关:包括数据获取、数据处理与数据管理;数据获取是指根据Topic名称、MAC地址、起始时间、持续时间、是否解码以及数据频率从网关获取符合条件的数据;数据处理是指对数据进行初步加工后再获取数据,如将原始彩色图像数据转换为视频、对图像数据进行解码;数据管理是指对本地或者云上的数据进行管理,如查看云存储数据的文件列表与上传时间,删除云上特定时间段的数据;
(3)基本信息:基本信息包括网关基本信息、设备基本信息、缓存基本信息与日志;网关基本信息包括网关当前的CPU使用率,已使用的内存容量,总内存容量,已使用的磁盘容量,总磁盘容量,当前网络速度,网关网络相关信息,包括网关MAC地址,网关IP,网关名称,已连接到网关的设备列表;设备基本信息有设备IP地址,设备MAC地址,设备名,设备无线网络连接时间,设备无线网络连接速度,设备当前是否已连接,设备拥有的Topic列表,包括Topic名,Topic类型,Topic帧率,Topic压缩类型以及是否订阅;ROS主服务是否正常运行;缓存基本信息包括网关已订阅Topic对应的缓存当前使用量以及预设最大容量;此外,基本信息还包括上传队列当前使用量,云上的Topic配置列表,计划任务中网管程序睡眠与唤醒的时间;
所述API均需通过访问对应的URL与对应的GET/POST方法,带上所需的参数,如无误,则以文件形式或者Json字符串格式返回结果;
所述WebApp模块中,所述Web页面包括:
(1)概览:实时显示网关基本信息,CPU使用率,硬盘使用率,硬盘已使用的容量与总容量,内存使用率,内存已使用的容量与总容量,实时网速;以动态折现图的形式,显示7分钟内所有缓存的使用情况,并支持简单管理,如删除缓存;
(2)数据:提供数据下载与简单数据管理功能,以可视化的形式显示所有Topic及其基本信息,包括名称、类型、帧率以及压缩类型;选中需要的Topic后,选择日期以及起始时间与结束时间,选择是否解码后,开始多线程下载,并在同个页面显示下载列表;每个下载项都显示进度条,下载支持暂停/恢复下载,取消下载;下载完成后,保存文件到当前客户端,还可以直接删除云端对应的数据;
(3)视频:提供图像数据转为为视频的功能;选择日期、起始时间与结束时间后,程序将下载对应的彩色图像数据并转化为视频,该过程同数据中一致,在同页面显示任务进度条;任务完成后,选择下载视频或者直接在网页内嵌播放器中播放该视频;
(4)上传:提供数据上传功能;该功能为处理后的数据上传到服务器提供上传接口;选择Topic、日期以及文件列表即可上传所有文件到网关;网关将所有文件线保存到磁盘并加入上传队列;
(5)日志:提供日志查看功能;显示网关实时的日志或者历史日志;历史日志需要选择时间,选择时间后,将显示半小时内的日志,该过程网关程序将从服务器获取数据;
(6)设置:提供Topic设置功能;在该页面,对网关对应的Topic配置表进行增删改,修改后,点击确认按钮,网关检查无误后,上传配置至云;
(7)计划任务:提供睡眠时间和唤醒时间的设置功能;
(8)关机:提供关闭网关树莓派的功能;关闭网关之前,网关将尝试关闭所有的下属设备。
4.如权利要求1所述的面向存储完整性的智能网关系统的控制方法,其特征在于,所述综合管理模块的处理方法包括:
(1)WLAN管理
WLAN管理模块负责WLAN相关的活动管理以及对WiFI进行控制;WLAN管理器支持扫描已连接网关树莓派热点的WiFI设备,获取网络基本信息,包括设备MAC地址、设备IP地址、设备名、网络连接时间与网络连接速度;对扫描到的新设备,WLAN管理器将其保存到WLAN表中,其他模块可以通过MAC地址、IP地址中的一项获取整个设备的网络信息;
WLAN管理器还支持重启Hostapd程序,即热点控制程序,完成对热点的的重启;另外,WLAN管理器还支持根据MAC屏蔽某些设备,使其无法连接到网关树莓派热点;当然,也支持解封设备;
(2)设备管理
设备管理负责管理网关下属设备;支持对设备进行重启、关机、暂停服务、启动服务、通过SSH获取设备信息、控制ROS的启动与关闭、检查ROS服务运行的状态、为设备设置故障恢复策略的功能;
设备管理模块是网关程序的核心模块,通过周期性的WiFi扫描来获取已连接的设备列表,对旧设备进行检查,为新设备分配监视程序与开启新的订阅数据的线程,并使设备管理模块与程序中其他模块解耦合;
(3)网关管理
网关管理模块负责管理网关树莓派本身,包括对网关进行重启,对网关程序进行重启,以及获取CPU使用率的基本信息;
(4)缓存管理
缓存管理模块负责管理所有缓存;其他模块通过向缓存管理器注册来新建缓存,或者通过MAC与Topic类型获取对应的缓存;
每个缓存都支持根据条件从缓存中获取数据,包括数据的起始时间,频率,持续时间;
(5)计划任务管理
计划任务模块负责管理网关程序的休眠时间与唤醒时间;可以在休眠之后与唤醒之后设定任务;本程序中,在休眠之后,将上传本地配置至云,结束所有数据接收的进程,暂停下载,暂停缓存写入文件到本地磁盘,但不停止上传;程序唤醒之后,将会重启网管程序,程序启动后,将从云端下载配置,然后检查已连接的设备,对每个设备进行Topic订阅以及分配监视进程;
所述故障恢复模块中的数据存储完整性包括:
(1)缓存设计
缓存是网关程序的核心功能,实时接收来自设备的数据,并将数据写入磁盘中,客户端通过API从缓存中获取最新的数据;
采用双缓存结构,新接收的数据将会加入到新缓存中,而新缓存中较旧的数据将被转移到旧缓存中,旧缓存的数据量达到阈值就会触发文件写入机制,将一定数量的数据写入到文件中,并在旧缓存中删除这些数据;
对于写入文件的数据,新来数据添加到新缓存的队尾;旧缓存每隔一段时间,从新缓存的队头获取新数据,新缓存则删除对应内容,旧缓存满后,将一定数量的数据从其队头依次删除并写入到磁盘中;
(2)上传队列设计
网关程序接收到的所有数据、网关与设备的信息与日志都需要上传到云端;不同的线程会产生不同的文件,为统一控制,需要有一个统一管理上传的机制;为此程序设定了一个上载中心,管理所有上传任务;上载中心的核心是维护一个上传队列,该队列的每个元素都是一个文件单元,其属性包括文件的名称,文件的本地路径,文件的云端路径;其他模块只需向上载中心注册一个文件上传任务,后续就由上载中心完成该任务;上载中心接收到新任务后会将文件单元添加到上传队列队尾,并更新上传队列的总存储容量;程序设定了一个阈值,当待上传容量超出该阈值后,删除队头的部分数据;
上载中心不断从上传队列的队首获取文件单元,尝试上传对应的文件,成功则从队列中删除该文件,并删除对应的本地文件;失败则将该元素从队头删除,并重新添加到队尾;同时,上载中心在程序休眠的时候不停止工作;
所述故障恢复模块的信息处理包括:
(1)设备管理器的WiFi扫描线程每隔20秒扫描一次已连接的设备,一旦发现新设备,就为该设备注册设备管理号,并开始订阅数据;同时扫描线程对旧设备进行ROS服务端口检测,如果连接不上,就通知该设备对应的错误监视对象设备存在问题;
(2)错误监视;每个设备在创建时期都会被分配一个错误监视对象;每个错误监视对象都对一个Topic订阅分配一个错误计数线程;每隔10秒,该进程从订阅者线程中读取一个错误标志,如果为假,则对错误计数加一;如果为真,则清零错误计数,同时对该错误标志设置假;错误计数累计达到八次后将会对该设备开启错误处理流程;
(3)错误处理流程;每个错误监视对象都有一个服务重启计数,在重启次数小于或者等于3时,进行ROS服务重启流程;如果大于3,则进行重启设备流程,并在完成之后对服务重启计数清零;
(4)ROS服务重启流程;启动后,先结束对应设备的所有订阅,然后关闭错误计数线程,通过SSH对设备ROS服务进行重启,发送命令后等待一分钟,再尝试连接ROS端口,成功后重新开始订阅所有Topic;
(5)设备重启流程;启动后,先结束对应设备的所有订阅,然后关闭错误计数线程,通过SSH对设备进行重启,发送命令后等待两分钟,再尝试连接ROS端口,成功后重新开始订阅所有Topic;
所述故障恢复模块中的故障及其恢复策略包括:
(1)WIFi掉线:暂停订阅线程,文件写入和文件上传继续工作,下一次扫描到连线后重新订阅并开始接收数据;
(2)WiFi未掉线,设备ROS服务中断:尝试重启ROS服务,累计三次重启服务后仍接收不到数据则重启设备;
(3)网关重启,设备未重启,导致设备ROSbridge不知道网关重启,再次订阅失败:减小Session有效时间,网关尝试连接后,一段时间内仍未收到消息,就重启ROS服务,以判断session为依据;
(4)网络环境差或者网关断网:每次错误将未成功的数据重新加入上传队列,错误次数超过20次时,提示该问题;
(5)上传带宽小于网关接收设备的带宽时,设置一个队列,积压的文件数量超过100时,继续接收数据,并从队列删除旧数据,保整队列长度不超过100;另外,程序在非活动时间也会继续上传未上传的数据;
(6)断电:缓存中保留的部分数据丢失,但已写入文件的数据不丢失,来电后继续上传数据。
5.如权利要求1所述的面向存储完整性的智能网关系统的控制方法,其特征在于,所述数据管理模块中的数据获取包括:
(1)从云上获取数据
从云上获取数据,是作为一个任务,作为API提供给客户端;每次获取都需要向任务中心注册一个任务,注册信息包括需要下载数据的类型与时间;任务中心将会启动这个任务,开始下载云上符合条件的数据,将所有数据合并为一个文件,返回给客户端这个文件的URL地址;
(2)从设备获取数据
从设备获取数据主要有两种方式:订阅方式与提供上传接口;
订阅方式由订阅者模块完成;设备管理器为每个Topic都分配了一个订阅者对象;每个订阅者对象创建时都会尝试向设备ROS订阅指定的Topic,然后开始接收数据,每收到一组数据,加入到对应的缓存中,设置错误标记为真;
所述数据管理模块中的数据处理包括:
(1)压缩数据;对对图像进行无损压缩;
(2)数据封装;每个Topic的数据类型不同,组成结构也不同,对每条收到的数据,程序进行数据封装;为每条数据增加时间戳,根据数据类型不同对数据进行Json化处理;
(3)解码数据;部分从云上下载的数据是经过压缩加Base64编码后的数据,客户端通过网关直接获取这些原始数据或直接让网关程序对这些数据进行解码加解压后获取直接可用的数据;
(4)转换为视频;网关程序还提供将图像数据转化为视频的功能;图像数据包括深度图像与彩色图像;对于过时的数据,采用视频存储方式。
6.如权利要求1所述的面向存储完整性的智能网关系统的控制方法,其特征在于,所述云模块的信息处理包括:
(1)上传中心,上传本地文件到云端;
(2)下载中心,从云端下载文件,支持多线程下载;主要结构是一个下载队列组;下载中心向外提供一个下载的接口,程序调用该接口后,向下载中心注册了一个下载任务,任务参数需要包括一个回调、文件源路径和目标路径;回调包含了下载完成时需要执行的动作;下载中心在下载队列组中选择合适的队列添加该下载任务,尽可能保证所有队列的下载任务数量相同;对每一个下载队列,都开启一个下载线程,不断从队头取下载任务,根据任务的源文件路径从云端下载对应的文件;下载完成后,执行回调函数。
7.一种执行权利要求1~6任意一项所述面向存储完整性的智能网关系统的控制方法的面向存储完整性的智能网关系统,其特征在于,所述面向存储完整性的智能网关系统包括:
WebApp模块,用于提供API与Web页面,实现可视化界面与应用程序接口;其中,所述API为服务老人健康系统提供接口,所述接口分为五类:设备控制、数据相关、基本信息、网关管理及其他接口;所述Web页面分为八个子页面:概览、数据、视频、上传、日志、设置、计划任务和关机;
综合管理模块,用于实现对设备与网关的管理,提供WLAN管理、设备管理、网关管理、缓存管理及计划任务管理;
故障恢复模块,用于提供硬件或者软件异常后程序保护数据的策略,通过一系列恢复策略恢复程序的正常运行,实现数据存储的完整性;
数据管理模块,用于实现数据获取及数据处理;其中,数据获取包括从云上获取数据与从设备获取数据;数据处理用于对数据进行简单处理;
云模块,用于提供上传中心和下载中心。
8.如权利要求7所述的控制方法的面向存储完整性的智能网关系统,其特征在于,所述面向存储完整性的智能网关系统还包括:智能手表数据采集应用,用于采集老人的体征数据,发送到网关;
所述智能手表数据采集应用包括;
表盘界面模块,是手表应用的主界面;用于显示有时钟、网络连接状态、充电状态、传感器实时数据,缓冲使用量的信息;
数据采集模块,用于调用智能手表的传感器,进行数据采集,包含心率、气压、加速度、陀螺仪这四种数据;采用固定的频率采集数据,将数据存入缓冲中,缓冲满后,写入到文件,清空缓冲;数据采集仅在老人佩戴上手表时进行,在摘下手表时数据采集将暂停;
设备监测模块,用于获取手表的当前状态,包括是否佩戴、当前的活动类型、是否连接到网络、是否正在充电以及手表的当前电量;当手表满足连接到无线网络与正在充电两个条件后,程序将开始上传文件流程;
日志系统模块,用于记录手表的基本信息,包括电量、动作类型与手表活动;
上传文件模块,用于上传采集到的数据到网关;该模块仅在同时满足连接到网络与充电两个条件时激活;激活后,程序首先开始搜索网关IP,通过遍历同网段下IP的8088端口,尝试寻找网关的IP地址,如果没有找到,则不执行上传过程;找到网关IP地址后,程序从文件管理模块获取需要上传的数据文件列表和日志文件列表,调用网关的上传文件接口进行上传,每个文件上传完成后都会被删除;
文件管理模块,用于管理本地的数据文件与日志文件,向其他模块提供其源路径。
9.一种运行如权利要求7所述的面向存储完整性的智能网关系统的面向存储完整性的智能网关装置,所述面向存储完整性的智能网关装置包括:网关树莓派、设备树莓派、传感器如镜头与雷达、智能手表以及云存储;
树莓派:采用树莓派4b 4GB内存版本;搭载Linux ubuntu 5.3.0-10**-raspi2操作系统,同时安装有机器人操作系统ROS;网关树莓派将自身WLAN网卡作为无线热点,采用5Ghz频段的无线热点,并带有自动信道选择功能;
深度镜头:型号为Intel RealSense系列镜头,同时拍摄深度图像与彩色图像;
雷达:雷达型号为3irobotix的Delta-1A型激光雷达,采集雷达点云数据;
智能手表:共有两款智能手表,华为Watch 2与小米智能手表,都安装有WeaROS中国版操作系统;
每个传感器都连接到各自的树莓派,智能手表不连接树莓派,而直接连接网关;网关树莓派与设备树莓派之前采用无线连接方式,设备树莓派连接网关热点;网关通过有线连接方式连接到英特网,最终与云存储相连。
10.一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施如权利要求1~6任意一项所述的面向存储完整性的智能网关系统的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011500846.3A CN112637318B (zh) | 2020-12-17 | 2020-12-17 | 一种面向存储完整性的智能网关系统、装置及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011500846.3A CN112637318B (zh) | 2020-12-17 | 2020-12-17 | 一种面向存储完整性的智能网关系统、装置及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112637318A true CN112637318A (zh) | 2021-04-09 |
CN112637318B CN112637318B (zh) | 2022-09-30 |
Family
ID=75317400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011500846.3A Active CN112637318B (zh) | 2020-12-17 | 2020-12-17 | 一种面向存储完整性的智能网关系统、装置及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637318B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113370211A (zh) * | 2021-06-25 | 2021-09-10 | 深圳市拓普智造科技有限公司 | 一种机器人及其远程控制方法和系统 |
CN113449234A (zh) * | 2021-05-11 | 2021-09-28 | 中国人民解放军63729部队 | 一种数据多级订阅与发布的方法 |
CN113746710A (zh) * | 2021-08-30 | 2021-12-03 | 广东全诚信息科技有限公司 | 一种基于智能中控系统的中继网关控制系统及方法 |
CN113821163A (zh) * | 2021-07-30 | 2021-12-21 | 黄山罗米测控技术有限公司 | 一种物联网数据采集网关离线状态高效缓存历史数据方法 |
CN114125056A (zh) * | 2022-01-26 | 2022-03-01 | 山东融为信息科技有限公司 | 一种用于物联网设备的网关控制系统、方法及网关设备 |
CN114415603A (zh) * | 2021-12-08 | 2022-04-29 | 哈尔滨工业大学(威海) | 面向智慧养老的分布式数据调度监测系统、方法、终端 |
CN114520788A (zh) * | 2022-04-20 | 2022-05-20 | 创思(广州)电子科技有限公司 | 一种带有存储节点的自检式信息传输控制算法 |
CN114531485A (zh) * | 2021-12-28 | 2022-05-24 | 望海康信(北京)科技股份公司 | 数据传输方法、系统及相应设备和存储介质 |
CN114866404A (zh) * | 2022-04-06 | 2022-08-05 | 深圳市灵动高科电子有限公司 | 智能网关灾难恢复方法、装置、电子设备以及存储介质 |
CN115296958A (zh) * | 2022-06-28 | 2022-11-04 | 青岛海尔科技有限公司 | 设备控制任务的分发方法、装置、存储介质及电子装置 |
CN116431356A (zh) * | 2023-06-13 | 2023-07-14 | 中国人民解放军军事科学院系统工程研究院 | 一种基于智能网卡的云网络缓存加速方法与系统 |
CN118193331A (zh) * | 2024-05-17 | 2024-06-14 | 天津南大通用数据技术股份有限公司 | 一种针对不同主机的安全外壳协议连接的连接管理方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559279A (zh) * | 2013-11-07 | 2014-02-05 | 深信服网络科技(深圳)有限公司 | 云存储加速方法及装置 |
CN105095683A (zh) * | 2015-09-25 | 2015-11-25 | 上海大羊数据技术有限公司 | 一种健康管理系统 |
US20160277217A1 (en) * | 2015-03-18 | 2016-09-22 | Proeasy Network Solutions Co., Ltd. | Home control gateway and home control method thereof |
CN106094534A (zh) * | 2016-05-23 | 2016-11-09 | 深圳市汉科电子股份有限公司 | 一种可穿戴设备智能手表控制的智能家居系统 |
CN108989234A (zh) * | 2018-06-04 | 2018-12-11 | 重庆工商职业学院 | 物联网关通信系统 |
CN110192380A (zh) * | 2017-09-29 | 2019-08-30 | 甲骨文国际公司 | 用于管理区块链云服务的系统和方法 |
CN209525930U (zh) * | 2019-01-30 | 2019-10-22 | 郑州大学 | 一种基于云计算的智能健康监测系统 |
-
2020
- 2020-12-17 CN CN202011500846.3A patent/CN112637318B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559279A (zh) * | 2013-11-07 | 2014-02-05 | 深信服网络科技(深圳)有限公司 | 云存储加速方法及装置 |
US20160277217A1 (en) * | 2015-03-18 | 2016-09-22 | Proeasy Network Solutions Co., Ltd. | Home control gateway and home control method thereof |
CN105095683A (zh) * | 2015-09-25 | 2015-11-25 | 上海大羊数据技术有限公司 | 一种健康管理系统 |
CN106094534A (zh) * | 2016-05-23 | 2016-11-09 | 深圳市汉科电子股份有限公司 | 一种可穿戴设备智能手表控制的智能家居系统 |
CN110192380A (zh) * | 2017-09-29 | 2019-08-30 | 甲骨文国际公司 | 用于管理区块链云服务的系统和方法 |
CN108989234A (zh) * | 2018-06-04 | 2018-12-11 | 重庆工商职业学院 | 物联网关通信系统 |
CN209525930U (zh) * | 2019-01-30 | 2019-10-22 | 郑州大学 | 一种基于云计算的智能健康监测系统 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449234A (zh) * | 2021-05-11 | 2021-09-28 | 中国人民解放军63729部队 | 一种数据多级订阅与发布的方法 |
CN113370211A (zh) * | 2021-06-25 | 2021-09-10 | 深圳市拓普智造科技有限公司 | 一种机器人及其远程控制方法和系统 |
CN113821163A (zh) * | 2021-07-30 | 2021-12-21 | 黄山罗米测控技术有限公司 | 一种物联网数据采集网关离线状态高效缓存历史数据方法 |
CN113746710A (zh) * | 2021-08-30 | 2021-12-03 | 广东全诚信息科技有限公司 | 一种基于智能中控系统的中继网关控制系统及方法 |
CN113746710B (zh) * | 2021-08-30 | 2023-05-26 | 广东全诚信息科技有限公司 | 一种基于智能中控系统的中继网关控制系统及方法 |
CN114415603B (zh) * | 2021-12-08 | 2024-08-23 | 哈尔滨工业大学(威海) | 面向智慧养老的分布式数据调度监测系统、方法、终端 |
CN114415603A (zh) * | 2021-12-08 | 2022-04-29 | 哈尔滨工业大学(威海) | 面向智慧养老的分布式数据调度监测系统、方法、终端 |
CN114531485A (zh) * | 2021-12-28 | 2022-05-24 | 望海康信(北京)科技股份公司 | 数据传输方法、系统及相应设备和存储介质 |
CN114125056B (zh) * | 2022-01-26 | 2022-05-06 | 山东融为信息科技有限公司 | 一种用于物联网设备的网关控制系统、方法及网关设备 |
CN114125056A (zh) * | 2022-01-26 | 2022-03-01 | 山东融为信息科技有限公司 | 一种用于物联网设备的网关控制系统、方法及网关设备 |
CN114866404A (zh) * | 2022-04-06 | 2022-08-05 | 深圳市灵动高科电子有限公司 | 智能网关灾难恢复方法、装置、电子设备以及存储介质 |
CN114520788A (zh) * | 2022-04-20 | 2022-05-20 | 创思(广州)电子科技有限公司 | 一种带有存储节点的自检式信息传输控制算法 |
CN114520788B (zh) * | 2022-04-20 | 2022-07-15 | 创思(广州)电子科技有限公司 | 一种带有存储节点的自检式信息传输控制方法 |
CN115296958A (zh) * | 2022-06-28 | 2022-11-04 | 青岛海尔科技有限公司 | 设备控制任务的分发方法、装置、存储介质及电子装置 |
CN115296958B (zh) * | 2022-06-28 | 2024-03-22 | 青岛海尔科技有限公司 | 设备控制任务的分发方法、装置、存储介质及电子装置 |
CN116431356A (zh) * | 2023-06-13 | 2023-07-14 | 中国人民解放军军事科学院系统工程研究院 | 一种基于智能网卡的云网络缓存加速方法与系统 |
CN116431356B (zh) * | 2023-06-13 | 2023-08-22 | 中国人民解放军军事科学院系统工程研究院 | 一种基于智能网卡的云网络缓存加速方法与系统 |
CN118193331A (zh) * | 2024-05-17 | 2024-06-14 | 天津南大通用数据技术股份有限公司 | 一种针对不同主机的安全外壳协议连接的连接管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112637318B (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112637318B (zh) | 一种面向存储完整性的智能网关系统、装置及其控制方法 | |
Tolle et al. | Design of an application-cooperative management system for wireless sensor networks | |
Kushwaha et al. | Oasis: A programming framework for service-oriented sensor networks | |
Cao et al. | Challenges and opportunities in edge computing | |
CN102868736A (zh) | 一种云计算监控框架设计及实现方法及云计算处理设备 | |
US11418414B2 (en) | Method for coordinating a plurality of device management servers | |
CN112306887B (zh) | 程序测试分发方法及其相应的装置、设备、介质 | |
Silva et al. | PRISMA: A publish-subscribe and resource-oriented middleware for wireless sensor networks | |
CN104899274A (zh) | 一种内存数据库高效远程访问方法 | |
Orsini et al. | CloudAware: empowering context‐aware self‐adaptation for mobile applications | |
Benedetto et al. | MobiCOP: a scalable and reliable mobile code offloading solution | |
CN109743399B (zh) | 一种体检中心多任务调度的内外网数据传输方法及系统 | |
Jiang et al. | Design of software-defined gateway for industrial interconnection | |
CN115115329A (zh) | 一种面向智能生产线的制造中间件及云制造架构 | |
CN114415603A (zh) | 面向智慧养老的分布式数据调度监测系统、方法、终端 | |
CN114756357B (zh) | 一种基于jvm的非阻塞分布式计划任务调度方法 | |
US11245769B2 (en) | Service-oriented internet of things platform and control method therefor | |
CN116132519A (zh) | 设备管理方法、装置和可读存储介质 | |
Vasconcelos et al. | An adaptive middleware for opportunistic mobile sensing | |
CN106550002A (zh) | 一种paas云托管系统及方法 | |
CN213581775U (zh) | 一种智能家居系统 | |
CN112199617B (zh) | 业务数据刷新、推送方法及其装置、设备、介质 | |
CN106231694A (zh) | 一种嵌入式无线传感网络网关 | |
Austad et al. | net_chan: Deterministic network channels for distributed real-time systems | |
CN108418725B (zh) | 一种用于网络监控的方法、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |