杨刚 高伟 薛挺
摘 要: 针对传统社区老人监护系统采用本地部署方式导致形成“数据孤岛”、维护困难等现象,结合云计算的数据共享、免运维等特性,提出基于云平台的社区老人监护系统。在此基础上首先介绍基于云平台的层次化设计的总体框架;然后研究基于新浪云平台应用开发的关键技术,对云数据库、云推送及监护数据健康分析等关键技术进行详细描述;最后给出基于云计算的社区老人监护系统的部署和应用,并分别展示了在Web端和Android客户端的应用。测试表明,该系统能有效监护老人日常身体健康指标和紧急状况,并适时推送消息和定位信息,对老人就医和养老起到了很好的指导意义。
关键词: 云平台; 社区老人监护; 云数据库; 云推送; 健康分析; 数据共享
中图分类号: TN931+.3?34; TP311; TP392 文献标识码: A 文章编号: 1004?373X(2018)20?0014?04
Abstract: In allusion to the phenomena such as data island and maintenance difficulty caused by the local deployment mode in the traditional community elderly monitoring system, a community elderly monitoring system based on cloud platform is proposed, combining with the characteristics of cloud computing such as data sharing and free of operating maintenance. On this basis, the overall framework of the hierarchical design based on the cloud platform is presented. The key technologies of application development based on the Sina App Engine (SAE) platform are studied. The key technologies such as cloud database, cloud push, and health analysis of monitoring data are described in detail. The deployment and application of the community elderly monitoring system based on cloud computing are presented. Applications on the Web terminal and Android clients are displayed respectively. The test results show that the system can effectively monitor the daily health indicators and emergency situations of the elderly, push messages and positioning information timely, and play a good guiding significance for medical treatment and health care of the elderly.
Keywords: cloud platform; community elderly monitoring; cloud database; cloud push; health analysis; data sharing
随着我国人口老龄化趋势加剧及人们健康意识的提高,对老人日常生理指标、突发事件及慢性病的监护变得尤为重要[1?2]。而目前能被大规模使用的社区老人监护系统寥寥无几,一方面是因为本地部署复杂、成本高、后期维护困难等;另一方面是存储在本地的数据得不到共享,例如医院等单位不能访问这些数据作为老人看病、养老的依据等,从而导致形成“数据孤岛”[3]。
近年来,随着云计算、物联网等技术的快速发展,推动“智慧城市”快速发展,社区作为城市的重要组成部分,实现“智慧社区”是“智慧城市”的基础[4?7]。部署到云平台上的社区老人监护系统,可以根据实际需要购买和调整基础资源配置,其既能利用云平台部署方便、成本低且有专人维护等优势,又可满足共享用户数据、推送消息、快速响应用户请求等方面的诉求[8?11]。
根据上述分析,开发了一个基于云平台社区老人监护系统。该系统通过云平台把底层数据采集端和上层终端应用连接起来,将底层采集数据解析并存储在云平台数据库中,当上层终端发送请求时,云服务器端对数据进行处理并将结果返回给请求端。此外还对部分数据进行实时分析,在紧急情况时,应用云平台消息推送机制给终端发送告警。在此基础上,采用Web端和Android端相结合的上层终端管控方式,为社区老人监护提供了一种新思路。
目前国内云计算平台主要包括阿里云、百度云、新浪云等。考虑PaaS(Platform as a Service)云平台用户只需关注自身应用开发,而不用考虑服务器环境搭建问题,并結合稳定性、性价比、后期运维等因素,该系统选取目前国内最大的PaaS平台新浪云(SAE)作为社区老人监护系统的云端依托,并采用SAE支持的Java语言实现。其整体架构由老人数据采集层、云计算平台层、服务端功能实现层以及手机和Web终端应用层等组成,如图1所示。
数据采集层将采集到的数据封装成json格式并通过服务器端Servlet定义的Restful类型接口上传到云平台。服务端功能实现层利用云平台资源实现系统主要功能,其中云端交互模块实现跟云对接的南北向接口开发,是南向接收传感器采集数据,北向响应事件请求、主动推送消息的基础;用户管理实现监护人、社区管理员以及老人个人信息的管理;数据库存储模块实现老人的身体指标数据、老人个人信息、监护人信息等存储;功能服务模块是对身体指标数据、GPS定位信息进行分析,判断是否有紧急状况发生;Web和手机终端适配模块是接收处理上层触发的事件,主动推送消息等。
前台客户端选用Android客户端和Web客户端开发监护人和社区管理员应用,客户端的请求和响应消息管理器通过HTTP协议跟服务端Servlet进行消息交互,并采用json格式实现数据互传。消息管理器一方面监控客户端用户操控事件,触发服务端数据库读写以及数据分析等操作,同时还监控服务器消息推送事件,对两种事件中服务端发送的json数据进行解析,并结合前端资源文件显示在客户端。
2.1 云数据库技术
云数据库相比传统数据库具有便捷、安全、数据共享方便等优势。由于本系统访问云数据库频繁,所以在选择云数据库的基础上又从数据库的连接和数据库表设计上进一步优化数据库。
本系统采用c3p0连接池来解决资源消耗严重的问题,具体使用步骤如下:
1) 导入c3p0.jar,mchange?commons.jar。
2) 在類目录下加入c3p0的配置文件:c3p0?config.xml,主要配置driverClass,jdbcUrl,user,password等参数。
3) 通过newComboPooledDataSource()方法在工具类静态代码块中创建数据连接池。
然后可以通过工具类写好的连接方法从数据源中获取数据库连接。
在数据存储方面,根据系统需求设计了4个主要的数据库表:
tbl_elderlyInfo表:存储老年人的个人信息,包括姓名、身份证号、手机号、监护人姓名和家庭住址等;
tbl_equipmentInfo表:存储设备以及使用设备的老人和老人监护人的绑定关系,包括设备ID、老人ID、监护人ID等;
tbl_dynamicDataInf表:存储定时上报的老人实时动态数据,包括设备ID、经纬度、姿态角、更新时间等;
tbl_physiologicalDataInfo表:存储手动触发上报的老人生理指标数据,包括设备ID、血压、心率、更新时间等。
2.2 云推送技术
与传统社区老人监护系统相比,本系统可以在老人出现紧急状况,或需要推送健康分析结果和养老建议时,通过云平台的推送功能向Android和Web客户端推送消息。
2.2.1 Android客户端推送
Android客户端推送是通过监护系统服务器端调用云平台的API接口实现,消息先存到新浪云,再由新浪云的推送服务投递到监护人的手机。其中新浪云的Android Push SDK,对外的调用类只有一个PushManager,通过这个类可以打开、关闭、刷新Push的通道。Push通道以TCP长连接的形式存在,保证数据送达的及时性。
在Android应用中添加SinaPush Android SDK,为Android App增加推送功能,具体推送的步骤如下:
1) 导入SDK中的SinaPush_{version}_SAE_release.jar包。
2) 在应用的AndroidManifest.xml中添加相关权限和配置服务。
3) 在调用所有接口前,先进行初始化,且初始化只需要调用一次,代码如下:
PushManager manager = PushManager. getInstance(getApplicationContext());
4) 接收push消息,SDK收到push消息后会发出一个notification,当监护人点击notification时,会跳转到在acts字段中设置好的界面上。
2.2.2 Web客户端推送
2.3 健康数据分析
部署在云平台上的监护系统具有弹性扩容的特点,这为大数据存储和计算提供了资源。经过对采集到的大量数据分析得出,人的生理指标(如血压、心率等)数据和健康状况息息相关,综合分析这些指标可以有效预判老人的健康状况并向监护人推送告警信息,系统采用有向图描述这些关系。
生理指标与疾病的关系图(PI?D)可以用来判断一个人是否处于健康状态。PI?D定义为V和E的集合:PI?D={V,E}。其中V指的是顶点集,每个顶点代表生理指标的一个范围或一个疾病名称,用vi=(type,value)表示,如果type=0说明vi是生理指标范围,type=1则vi是疾病名称。E指的是边集,每条边代表不同疾病之间的关系或生理指标与疾病之间的关系,用eij=
从图2中可以看出高血压和心律失常是相关的,所以如果检测到高血压症状,就需要更好地监测与心律失常相关的其他指标。
3.1 SAE应用系统部署
本地开发并验证系统功能正常后,即可将应用系统部署到SAE平台,主要步骤如下:
1) 创建新应用。注册新浪账号并登录到SAE平台主页:http://sae.sina.com.cn,点击“创建新应用”,在弹出界面设置二级域名、应用名称和资源配置等信息。
2) 应用系统部署。本地验证功能正常后,在 Eclipse 中点击新浪插件中的sina web services ?>Deploy按钮, 在弹出框中对账号和应用程序的标题进行设置,点击确定,该插件自动将应用系统的相关内容打包、上传并部署至SAE平台。
3) 应用系统在线访问。部署完成后, 即可通过“创建新应用”中填写的域名即可訪问应用系统,例如本文系统的URL为:http://health.applinzi.com。
4) 应用系统监测。SAE为开发人员提供了管理自己新建应用的统一平台,如数据、版本管理、访问量等,开发人员可以方便地监控自己应用的运行及使用情况。
3.2 Web客户端应用展示
Web客户端主要功能包括:设备管理、老人健康档案管理、生理指标管理、地图显示、阈值设置、告警查询等应用界面,如图3所示。其中设备管理实现设备注册、删除等操作,并能查看设备和绑定的老人信息及对应监护人的相关联信息;老人健康档案管理可以录入和查看老人个人信息、监护人信息以及历史疾病等;生理指标管理实现老人血压、心率等数据的查看;通过阈值设置界面对老人的生理指标和实时动态数据设置阈值,如果超过设定值,则在告警查询界面能看到新增一条阈值超限告警;如果健康分析预判可能有疾病也会发送告警信息,并提供养老建议;地图显示能实时跟踪老人位置信息,有助于在紧急状况发生时对老人采取救援。
Android客户端主要功能类似Web端,只是手机端用户只能操作已绑定的老人数据,避免数据泄露。
指标界面可以查看生理指标和跌倒状况信息;地图界面实现电子围栏设置以及日常跟踪定位;个人信息界面可以绑定多个被监护人,并可以在不同的绑定对象间自由切换,该界面还能查询告警信息,以便及时了解被监护人的身体健康和安全状况。
本文分析了传统社区老人监护系统的发展现状和存在的问题,提出基于云平台的社区老人监护系统。该系统有效发挥了云计算平台的技术优势,实现数据的分布式共享存储和访问,从而避免“数据孤岛”的现象。未来通过采集更多的身体健康指标数据,利用大数据技术深入挖掘各指标间的相互关系,并在保证数据安全的前提下最大程度共享,可以在老人就医、个性化养老建议、医疗保健等方面发挥更大优势,并最终发展成为集监控、医疗与养老于一身的综合性应用系统。
参考文献
[1] 周光清,吴书裕,薛冰冰,等.基于物联网的社区健康管理平台设计与实现[J].医疗卫生装备,2014,35(8):53?56.
ZHOU Guangqing, WU Shuyu, XUE Bingbing, et al. Design and implementation of community health management platform based on Internet of Things [J]. Chinese medical equipment journal, 2014, 35(8): 53?56.
[2] XU Boyi, XU Lida, CAI Hongming. Architecture of M?health monitoring system based on cloud computing for elderly homes application [C]// Proceedings of Enterprise Systems Conference. Shanghai: IEEE, 2015: 40?50.
[3] 范炜玮,赵东升,王松俊.基于云计算的区域医疗信息共享平台的设计与实现[J].军事医学,2015,39(4):257?260.
FAN Weiwei, ZHAO Dongsheng, WANG Songjun.A cloud computing based implementation of regional medical information sharing [J]. Military medical sciences, 2015, 39(4): 257?260.
[4] 张式富,姜涛,吴效明.基于B/S的智慧社区健康监护管理系统软件的设计与实现[J].计算机应用与软件,2014,31(3):4?6.
ZHANG Shifu, JIANG Tao, WU Xiaoming. Design and implementation of health care management system software in intelligent community based on B/S [J]. Computer applications & software, 2014, 31(3): 4?6.
[5] 宫艳雪,武智霞,郑树泉,等.面向智慧社区的物联网架构研究[J].计算机工程与设计,2014,35(1):344?349.
GONG Yanxue, WU Zhixia, ZHENG Shuquan, et al. Research on IoT architecture for smart community [J]. Computer engineering and design, 2014, 35(1): 344?349.
[6] DOUKAS C, MAGLOGIANNIS I. Managing wearable sensor data through cloud computing [C]// Proceedings of 2011 IEEE Third International Conference on Cloud Computing Technology and Science. Athen: IEEE, 2012: 440?445.
[7] WEI Nuo, SHU Minglei, ZHANG Chongqing. Intelligent health perception system based on cloud computing [C]// Proceedings of 2015 International Conference on Computational Intelligence and Communication Networks. Jabalpur: IEEE, 2016: 894?897.
[8] 邓仲华,宋秀芬.信息资源云的数据监护研究[J].图书馆学研究,2014(17):45?52.
DENG Zhonghua, SONG Xiufen. Research on data monitoring of information resource cloud [J]. Research on library science, 2014(17): 45?52.
[9] 朱雯.基于移动互联网的个人健康管理软件设计与实现[D].成都:電子科技大学,2017.
ZHU Wen. Design and implementation of personal health management system based on the mobile network [D]. Chengdu: University of Electronic Science and Technology of China, 2017.
[10] 承骁,白光伟,华志翔,等.云代理的移动消息推送服务[J].小型微型计算机系统,2016,37(8):1661?1666.
CHENG Xiao, BAI Guangwei, HUA Zhixiang, et al. Cloud?based broker for mobile message pushing [J]. Journal of Chinese computer systems, 2016, 37(8): 1661?1666.
[11] 陆佳炜,王辰昊,肖刚,等.面向多源异构数据的云推送平台的研究与应用[J].计算机科学,2016,43(z1):533?537.
LU Jiawei, WANG Chenhao, XIAO Gang, et al. Research and application of cloud push platform based on multi?source heterogeneous data [J]. Computer science, 2016, 43(S1): 533?537.