论文部分内容阅读
近年来由于婴儿失窃事件在一些医院时有发生,给医院、被盗婴儿家庭各方面都带来了灾难性的后果,从而也成为社会高度关注的热点问题。本文借鉴国内外现有的解决方案,设计采用的RFID标签,集成了红外温度检测及震动检测传感器,开发了针对医院妇产科和新生儿科的母婴安全监护(Maternal-infantsafety and surveillance,MISS)系统。系统利用局域网连接医院数据库,实现婴儿安全数据与常规医院信息系统的信息融合。
在监控区域内,布设RFID网络,即在病房、走廊以及各个出入通道口布置RFID阅读器。佩戴电子标签的新生儿或者母亲通过病房或者走廊时,系统会实时记录新生儿的体温、标签状态及位置,当系统判断出可能出现的盗婴或者抱错发生时,系统将启动警报装置。病人出院后,将母婴所使用的标签在系统中进行注销。
本系统采用集成了双温度传感模块和震动传感器模块的有源RFID电子标签,其通讯频率在2.45GHz,支持双向通讯。阅读器采用一种支持长距离和高速度读写的微波型固定式阅读器,工作频率为2.45GHz,配有RS-232串行接口和RJ-45网络接口,采用防碰撞算法实现对多个标签同时进行识别。
为了克服传统C/S结构的局限性,本文设计了基于三层C/S结构的MISS系统,将原本部分或全部封装在客户端的逻辑计算,转移到应用服务器中进行。客户端不用直接访问数据库,既保证了数据的安全性,也为系统维护降低了花销。我们将MISS系统自底向上分为三个层次,分别是:数据访问层、业务逻辑层和表示层。
数据访问层也就是数据服务器,负责与硬件数据采集设备(阅读器和电子标签)的数据通讯以及将采集到的数据存储到数据库中。业务逻辑层的出现是与两层C/S结构主要的不同,它是C/S结构的核心,负责数据分析与过滤、事件处理与封装、指令传递与管理等功能。业务逻辑层的模块化结构包括应用程序所需要的大部分计算与处理过程,并且负责数据访问层与表示层之间的访问与通信。表示层的职责是提供与用户的交互界面,为用户提供婴儿体温及位置等状态信息,并把用户指令翻译成操作语言,根据用户指令调用相应的业务接口,将指令传递给业务逻辑层。表示层实际上就是客户端,它只和应用服务器进行数据通讯,而不需要直接访问数据库,避免了非授权用户恶意更改或破坏数据。
针对本系统中阅读器和电子标签的数量都比较大,可能存在很多冗余和非法数据,若计算机直接处理来自阅读器的标签信息数据,会造成系统的运行效率降低。针对这个问题,本文采取RFID中间件结构解决采集设备的数据信息与应用程序之间数据通讯问题。
应用程序服务器端在数据接收阶段和数据处理阶段都使用到了多线程技术,但数据接收多线程与数据处理多线程存在显著差别。数据接收多线程设计的目的是通过Socket与阅读器通信,其生存周期与Socket链路连接周期相同,因而线程的生存周期比较长。数据接收多线程维护着一个管理线程和多个与阅读器通信的连接线程。连接线程作为上位机终端以TCP Socket长连接方式介入阅读器通信。在Socket通信过程中,阅读器作为通信的服务端,上位机作为通信的客户端,连接管理由客户端维护。数据处理多线程设计的目的是为了处理标签采集数据,它维护着一个管理线程和一个线程池。管理线程创建、管理线程池,并从缓冲队列中提取标签采集数据交给线程池,由线程池分配空闲线程负责执行数据处理任务。
在数据流实时处理系统中,不可避免的涉及到大量的数据库操作,本文使用的数据库连接池作为缓存对象池来解决大量线程频繁访问数据库所带来的并发、效率问题。应用程序服务器端在系统初始化时建立一些空闲连接放入连接池中备用,当有线程的数据库连接访问请求时,直接从连接池申请一个数据库连接,数据库调用完成之后,则把数据库连接重新放入连接池中而不直接关闭。当连接减少时,管理器则关闭一些空闲连接,维持着连接池最小数据库连接数目,避免空闲期间维护大量连接所带来的的系统资源消耗。
MISS系统将标签的实时信息数据存储到数据库中,查询时间是随着数据量的增加而增加的。也就是说,随着标签信息的不断插入,数据库的单个表的存储量随之增加,势必会影响查询及插入的响应速度。为了缩短响应时间,本文可以通过控制查询的行数来提高查询速度。本文模拟了批量循环存储200万条数据的过程中,从不备份与备份后查询时间的对比,可以明显看出备份后的查询速度要比没有备份的查询速度提高很多。