APP下载

基于云通讯的监护系统多生理数据传输策略

2020-03-09刘继忠徐文斌谢毓顺刘鸿郑莉萍

南昌大学学报(工科版) 2020年4期
关键词:标识符校验上位

刘继忠,徐文斌,谢毓顺,刘鸿,郑莉萍

(南昌大学南昌市医工结合技术研究重点实验室,江西 南昌 330031)

随着计算机技术与通讯技术的不断发展,远程医疗技术也应运而生,并在医疗健康领域得到了广泛的应用与发展[1],远程医疗概念及其应用成果不断涌现[2]。远程医疗即应用远程通讯技术来交互式传递信息,以开展远距离医疗服务,是一种现代医学、计算机技术和通讯技术紧密结合的新型医疗服务模式[3]。远程医疗系统通讯技术主要有公共交换电话网络[4]、移动自组织网络[5]、卫星通信[6]和蜂窝移动通信网络[7]等,但这些通讯技术有着各自的不足之处,例如公共电话网络已基本淘汰;蜂窝移动通信网络噪声和干扰严重[8];移动自组织网络无法保证数据传输稳定性、可靠性[9];卫星通信存在通信容量小、不可靠等问题[10]。

因此针对生理参数数据远程实时传输过程中数据丢失、抗干扰能力不强、时延较大等问题,本文重点研究数据传输过程中的可靠性和安全性问题,提出基于云通讯平台的远程数据传输策略,实现多生理参数数据点对点的传输,提高了数据远程传输的效率,从而使健康监护系统更加可靠和有效。

1 监护系统架构与传输策略

1.1 远程监护系统架构

远程监护系统主要包括监护端、云通讯平台和远程监护端3部分[11],其结构如图1所示。监护端由PC(上位机)、硬件监测模块组成,实现多生理参数的采集显示以及网络传输。云通讯平台是监护端与远程监护端的通讯桥梁[12],监护系统通过云通讯技术实现实时数据的安全、准确、稳定传输。远程监护端是用户端,用户通过平台可远程实时监护患者的生理指标参数。远程监护系统数据传输包括2部分:1) 硬件监测模块与上位机的单向数据传输。2) 上位机到远程监护端的双向数据传输。本文探讨的数据传输策略是应用在上位机到远程监护平台之间的双向远程数据传输,监测模块到上位机之间的近距离数据传输不予讨论。

1.2 云通讯平台

上位机和远程监护端是系统的2个客户机,传统的客户机之间数据传输是通过服务器中转传输,效率低下而且数据传输时耗大,不能满足远程监护系统实时数据传输要求。针对数据实时传输问题,本文引入云通讯平台作为数据传输的媒介来实现监护系统的监护端与远程监护端的数据通信[13]。云通讯技术改变传统通过后台服务器传递数据的方式,利用用户设备中的socket直接连接传输,服务器保持通信双方之间的套接字连接即可。生理参数数据通过socket直接点对点传输,减少数据中转传输环节,确保了数据传输的准确性、实时性,提高了传输效率,可有效避免数据丢失、混乱问题,将传输时间损耗降到最低。同时,云通讯平台采用HTTPS底层传输和私有二进制通讯协议及加密算法数据传输全程加密,数据传输更加安全,实时传输技术架构图如图2。

1.3 传输机制

传输机制是远程数据传输策略的核心部分。本文基于云通讯技术,设计并实现了一套稳定可靠的远程数据传输机制,为监护系统多生理参数数据远程实时传输保驾护航。

1.3.1 数据传输通讯协议

根据云通讯平台和生理参数信号传输的特点,设计远程数据传输通讯协议时,需要考虑数据传输的实时性、连续性[14]、正确性和完整性。为提高远程通信双方的数据传输量和传输效率,降低网络的负载,通讯协议应尽可能地传输有效数据[15]。

协议的通讯报文类型主要有5种:上位机至远程监护端方向的请求报文、数据报文和结束报文,远程监护端至上位机方向的响应报文、反馈报文[16]。报文格式如图3所示。

报文类型标识符数据发送方通讯名数据接收方通讯名

(a) 请求报文

(b) 数据报文

(c) 响应报文

(d) 结束报文

请求报文用于确定远程监护端是否在线。当上位机发送请求报文至远程监护端后收到回应,那么说明远程监护端在线,可以建立通讯。请求报文只会在建立通讯时发送一次,在数据实时传输期间不会再次发送。请求报文由报文类型标识符、数据发送方通讯名、数据接收方通讯名组成,其中数据发送方通讯名与数据接收方通讯名是用于客户端之间身份确认,防止误请求,增加数据传输安全性。报文类型标识符如表1所示。

表1 报文类型标识符Tab.1 Message type identifier

数据报文是多生理参数数据传输时的载体,报文结构分为5部分:报文类型标识符、数据类型标识符、数据报文ID、数据包、校验值,其中数字报文ID是具有特定规律的连续字符串。数据报文采用数据定量的格式,即采集的生理数据个数达设定目标个数时就打包成生理数据包发送,监护结束时,未发送数据一次性打包发送,避免每采集一次就向远程监护端发送一次数据,提高效率和降低网络负载。数据类型标识符如表2所示。

表2 数据类型标识符Tab.2 Data type identifier

响应报文是远程监护端在线时,接收到上位机的请求报文后作出回应,表示平台在线。响应报文由报文类型标识符、8位随机数组成,其中8位随机数是临时随机产生的,由通信双发共同保存使用。

结束报文是监护结束后监护端发送的报文。当远程监护端接收到结束报文后,结束数据接收显示,做好下一次接收请求报文准备。结束报文由报文类型标识符、数据发送方通讯名、数据接收方通讯名组成,通讯名用于确认客户端身份,防止误结束。

反馈报文是为了保证数据完整性而设计的远程监护端请求,由报文类型标识符、补发重发标识符、数据报文ID以及发送次数组成。数据报文校验值校验不通过,远程监护端就会向上位机请求重发;数据报文丢失,远程监护端就会向上位机补发重发,反馈标识符如表3所示。

表3 反馈标识符Tab.3 Feedback identifier

1.3.2 数据加密校验机制

健康监护系统中,生理数据是监护对象的个人隐私,因此数据传输的安全性和可靠性尤为重要。在远程数据传输过程中,生理数据通过云通讯技术实现远距离的传输,相对安全可靠,但究其本质还是通过互联网线路传输,因此有必要对数据再加上一层保护。根据云通讯平台和监护系统的特点,在通讯过程中对数据报文进行必要的加密、校验来确保数据的安全性。

本文采用安全哈希算法(secure hash algorithm,SHA1)得到数据报文的数据摘要作为数据报文校验值。安全哈希算法的原理是对于任意长度小于264位的字符串数据,产生一个可用来验证数据正确性的160位数据摘要。在远程传输过程中,若是数据发生了变化,那么算法产生的数据摘要也会不一样。报文添加校验值之后,数据发送单元采用GZipStream算法无损压缩数据报文,让数据报文尽量紧凑,既保证了数据安全,又提高数据传输效率。

本文选择高级加密标准(advanced encryption standard,AES)对称加密算法对数据报文进行加密,AES算法的原理是基于排列和置换运算,排列是将数据重排, 置换是将某个数据单元替换成另外的单元[17]。同时,传输策略采用动态密钥技术,即系统临时随机生成AES需要的密钥,进一步加强数据传输的可靠性,提高了数据在传输过程中的被破解难度,数据加密校验机制流程图如图4所示。

1.3.3 反馈机制

为防止数据传输过程中因网络状况造成数据丢失或者数据被破坏,本文提出反馈机制,校验数据并向数据发送单元反馈,保证数据的完整性。

当远程监护端收到数据报文后,首先校对数据报文ID,当报文ID不连续时,即出现数据丢包的情况,远程监护端请求上位机补发缺失报文ID的数据报文,接收后再次校验,若报文ID连续,说明未出现数据丢包,则检验数据报文的校验值。校验值与重新计算的数据摘要一致,则接收该条数据报文,否则说明数据在传输过程中发生了改变,丢弃数据报文,请求上位机重新发送该报文ID的数据,接收后同样再次校验。若同一条数据报文未能通过校验次数达到设定值,那么通讯异常处理,反馈机制流程图如图5。

1.3.4 超时处理机制

本文设计了超时处理机制,防止通信过程中某一方因异常问题掉线,而另一方仍等待数据传输,占用系统设备和网络资源,提高通信效率。超时处理机制规定:从建立通讯到通讯结束的过程中,通信双方在最长时限1 min后,未收到数据响应,则通信双方进入超时处理,自行处理数据或结束通讯,例如上位机1 min内未收的到丢包反馈则可以删除1 min前缓存的数据;上位机发送请求报文后,等待1 min,未收到响应报文,则通讯结束;远程监护端在数据接收过程中,若1 min内未收到数据,则通讯结束。

1.3.5 多队列数据缓存机制

远程监护系统数据传输的特点是数据发送和接收数据的速率不一致,导致生理数据显示不具有连续性,本文设计并实现了多队列数据缓存机制,最大限度地保证了生理数据显示的连续性。

多队列数据缓存机制是基于生产者-消费者模式设计的。监护端生产数据,远程监护平台消费数据,生产者和消费者之间需设置一个缓冲区,作为一个中介。监护端把数据存入缓冲区,而远程监护端再以均匀的时间间隔从缓冲区取出数据进行显示分析,这样就保证了数据显示的连续性。同时考虑到生理数据种类较多,因此采用多缓存队列模式,同一类型数据存入同一队列,数据按照先进先出的原则,保证次序不混乱。

多队列缓存机制根据报文的紧急性划分等级,实现数据传输的多优先级队列设置[18],对于补发、重发数据报文与反馈报文这类紧急消息可直接改变队列的数据位置保证数据的连续性和传输效率[19]。

多队列缓存机制能够有效防止通讯双方收发速率不匹配造成的数据显示不连续、混乱问题。而且远程监护端可以直接从相应的缓存队列中读取特定类型的数据,提升数据“消费”能力,降低时延。缓存机制设置了2个通讯报文队列和多个生理数据报文队列,数据队列结构如图6。

2 远程数据传输实现

2.1 远程数据发送

上位机接入云通讯平台后,将上位机通讯名和目标通讯名生成请求报文,发送给远程监护端验证,等待远程监护端回应响应报文,若接收到响应报文,则分离出响应报文中的8位随机数作为加密算法的密钥。当上位机接收到硬件监测模块的生理数据个数达设定值,生成“报文类型标识符+数据类型标识符+数据报文ID+生理数据包”不完整的数据,采用安全哈希算法得到报文的160位数据摘要,作为数据报文校验值,形成完整的数据报文,然后采用GZipStream算法无损压缩数据报文,节约空间,最后采用AES对称加密算法,使用8位随机数对报文加密发送。

经过添加校验位、压缩、加密后的数据报文,通过云通讯技术发送给远程监护端,若是上位机未收到反馈报文,说明传输过程中数据未收到破坏或丢失,远程监护端接收成功,否则需要根据反馈报文的数据报文ID,从缓存队列中找到数据报文重新发送。发送数据流程图如图7所示。

2.2 远程数据接收

远程监护端接入云通讯平台后,接收到上位机的请求报文,分离出请求报文中双方的通讯名进行身份验证,防止误接收。身份验证通过后,随机生成8位随机数形成响应报文回应上位机,同时8位随机数作为数据报文的解密密钥保存。远程监护端接收到数据报文,首先对数据报文进行解密、解压,然后将数据报文ID、生理数据包、校验值分离,校对数据报文ID是否连续、校对数据摘要是否一致。若校验通过,说明生理数据在传输过程中保持完整,然后根据报文类型标识符,将数据存入相应的缓存队列中,否则将该条数据报文ID与反馈标识符、发送次数形成反馈报文,发给上位机,要求重发数据报文。如果该条数据报文ID发送次数达到3次,那么作通讯异常处理,远程监护端界面显示错误信息,提示用户。

同时,为实现生理参数数据的实时连续显示,远程监护端需要一个“工作者”实时监控缓存队列中的数据,当队列中缓存了数据时,“工作者”定时读取数据、刷新界面显示数据,这个“工作者”就是线程。远程监护端中有2类线程:用户界面线程和工作者线程,工作者线程是辅助线程,负责完成后台任务[20-21]。系统采用多线程技术,创建一个工作者线程,定时循环监控缓存队列中的数据。远程监护端接收数据流程图如图8所示。

3 系统测试

为验证本文提出的远程数据传输策略的有效性,将策略方法应用于远程监护系统,多次进行实例测试,检验数据传输的可靠性和实时性。广域网环境下,以心电信号数据传输为例,选择2台PC,一台作为上位机,另一台作为远程监护端,分别接入云通讯平台,在各种条件下,对硬件监测模块采集的心电信号数据进行远程实时数据传输测试。如图9是某次试验同一时刻截取的监护系统软件界面,其中图9(a)是上位机采集显示心电数据,并且同步向远程监护端发送数据的界面,图9(b)是远程监护端接收心电数据显示的界面,对比发现:在截取图片时间存在误差的情况下,图9(a)和(b)中的心电数据波形一致,波形平滑连续,无基漂,得到的心率数值也相等,数据延时较小,大概延迟半个心电波形。图10显示了数据在发送过程中的产生的时间延迟,数据包发送时延在100 ms上下浮动。

实验测试结果表明,网络状况良好的情况下,本文提出基于云通讯技术的传输策略在远程数据传输的准确性、完整性、连续性和实时性方面,都满足了多生理参数远程监护系统的要求,传输方法安全稳定。

4 结论

本文研究了远程监护系统在数据传输方面的问题,以实时传输和真实再现生理数据为目的,提出并实现了一种新的基于云通讯平台的监护系统多生理参数实时传输策略,重点研制了数据传输通讯协议、加密校验机制、反馈机制、多队列数据缓存机制等多种传输机制,提高了远程数据传输的安全性、准确性、完整性和实时性。策略方法经过远程监护系统一系列的实例测试,数据远程传输稳定、准确,论证了该方法满足监护系统多生理参数监护要求,提高了监护系统的稳定性和健壮性,在远程监护系统领域的发展前景远大。

猜你喜欢

标识符校验上位
基于底层虚拟机的标识符混淆方法
使用Excel朗读功能校验工作表中的数据
电能表在线不停电校验技术
DOI标识符查找文献的方法
基于区块链的持久标识符系统①
DOI标识符查找文献的方法
特斯拉 风云之老阿姨上位
精通文件校验的“门道”
基于ZigBee和VC上位机的教室智能监测管理系统
基于FPGA的CRC32校验查找表算法的设计