楊剛 高偉 薛挺


摘 要: 針對傳統社區老人監護系統采用本地部署方式導致形成“數據孤島”、維護困難等現象,結合云計算的數據共享、免運維等特性,提出基于云平臺的社區老人監護系統。在此基礎上首先介紹基于云平臺的層次化設計的總體框架;然后研究基于新浪云平臺應用開發的關鍵技術,對云數據庫、云推送及監護數據健康分析等關鍵技術進行詳細描述;最后給出基于云計算的社區老人監護系統的部署和應用,并分別展示了在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.