楊剛 高偉 薛挺
摘 要: 針對(duì)傳統(tǒng)社區(qū)老人監(jiān)護(hù)系統(tǒng)采用本地部署方式導(dǎo)致形成“數(shù)據(jù)孤島”、維護(hù)困難等現(xiàn)象,結(jié)合云計(jì)算的數(shù)據(jù)共享、免運(yùn)維等特性,提出基于云平臺(tái)的社區(qū)老人監(jiān)護(hù)系統(tǒng)。在此基礎(chǔ)上首先介紹基于云平臺(tái)的層次化設(shè)計(jì)的總體框架;然后研究基于新浪云平臺(tái)應(yīng)用開發(fā)的關(guān)鍵技術(shù),對(duì)云數(shù)據(jù)庫(kù)、云推送及監(jiān)護(hù)數(shù)據(jù)健康分析等關(guān)鍵技術(shù)進(jìn)行詳細(xì)描述;最后給出基于云計(jì)算的社區(qū)老人監(jiān)護(hù)系統(tǒng)的部署和應(yīng)用,并分別展示了在Web端和Android客戶端的應(yīng)用。測(cè)試表明,該系統(tǒng)能有效監(jiān)護(hù)老人日常身體健康指標(biāo)和緊急狀況,并適時(shí)推送消息和定位信息,對(duì)老人就醫(yī)和養(yǎng)老起到了很好的指導(dǎo)意義。
關(guān)鍵詞: 云平臺(tái); 社區(qū)老人監(jiān)護(hù); 云數(shù)據(jù)庫(kù); 云推送; 健康分析; 數(shù)據(jù)共享
中圖分類號(hào): TN931+.3?34; TP311; TP392 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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
隨著我國(guó)人口老齡化趨勢(shì)加劇及人們健康意識(shí)的提高,對(duì)老人日常生理指標(biāo)、突發(fā)事件及慢性病的監(jiān)護(hù)變得尤為重要[1?2]。而目前能被大規(guī)模使用的社區(qū)老人監(jiān)護(hù)系統(tǒng)寥寥無(wú)幾,一方面是因?yàn)楸镜夭渴饛?fù)雜、成本高、后期維護(hù)困難等;另一方面是存儲(chǔ)在本地的數(shù)據(jù)得不到共享,例如醫(yī)院等單位不能訪問這些數(shù)據(jù)作為老人看病、養(yǎng)老的依據(jù)等,從而導(dǎo)致形成“數(shù)據(jù)孤島”[3]。
近年來(lái),隨著云計(jì)算、物聯(lián)網(wǎng)等技術(shù)的快速發(fā)展,推動(dòng)“智慧城市”快速發(fā)展,社區(qū)作為城市的重要組成部分,實(shí)現(xiàn)“智慧社區(qū)”是“智慧城市”的基礎(chǔ)[4?7]。部署到云平臺(tái)上的社區(qū)老人監(jiān)護(hù)系統(tǒng),可以根據(jù)實(shí)際需要購(gòu)買和調(diào)整基礎(chǔ)資源配置,其既能利用云平臺(tái)部署方便、成本低且有專人維護(hù)等優(yōu)勢(shì),又可滿足共享用戶數(shù)據(jù)、推送消息、快速響應(yīng)用戶請(qǐng)求等方面的訴求[8?11]。
根據(jù)上述分析,開發(fā)了一個(gè)基于云平臺(tái)社區(qū)老人監(jiān)護(hù)系統(tǒng)。該系統(tǒng)通過(guò)云平臺(tái)把底層數(shù)據(jù)采集端和上層終端應(yīng)用連接起來(lái),將底層采集數(shù)據(jù)解析并存儲(chǔ)在云平臺(tái)數(shù)據(jù)庫(kù)中,當(dāng)上層終端發(fā)送請(qǐng)求時(shí),云服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行處理并將結(jié)果返回給請(qǐng)求端。此外還對(duì)部分?jǐn)?shù)據(jù)進(jìn)行實(shí)時(shí)分析,在緊急情況時(shí),應(yīng)用云平臺(tái)消息推送機(jī)制給終端發(fā)送告警。在此基礎(chǔ)上,采用Web端和Android端相結(jié)合的上層終端管控方式,為社區(qū)老人監(jiān)護(hù)提供了一種新思路。
目前國(guó)內(nèi)云計(jì)算平臺(tái)主要包括阿里云、百度云、新浪云等??紤]PaaS(Platform as a Service)云平臺(tái)用戶只需關(guān)注自身應(yīng)用開發(fā),而不用考慮服務(wù)器環(huán)境搭建問題,并結(jié)合穩(wěn)定性、性價(jià)比、后期運(yùn)維等因素,該系統(tǒng)選取目前國(guó)內(nèi)最大的PaaS平臺(tái)新浪云(SAE)作為社區(qū)老人監(jiān)護(hù)系統(tǒng)的云端依托,并采用SAE支持的Java語(yǔ)言實(shí)現(xiàn)。其整體架構(gòu)由老人數(shù)據(jù)采集層、云計(jì)算平臺(tái)層、服務(wù)端功能實(shí)現(xiàn)層以及手機(jī)和Web終端應(yīng)用層等組成,如圖1所示。
數(shù)據(jù)采集層將采集到的數(shù)據(jù)封裝成json格式并通過(guò)服務(wù)器端Servlet定義的Restful類型接口上傳到云平臺(tái)。服務(wù)端功能實(shí)現(xiàn)層利用云平臺(tái)資源實(shí)現(xiàn)系統(tǒng)主要功能,其中云端交互模塊實(shí)現(xiàn)跟云對(duì)接的南北向接口開發(fā),是南向接收傳感器采集數(shù)據(jù),北向響應(yīng)事件請(qǐng)求、主動(dòng)推送消息的基礎(chǔ);用戶管理實(shí)現(xiàn)監(jiān)護(hù)人、社區(qū)管理員以及老人個(gè)人信息的管理;數(shù)據(jù)庫(kù)存儲(chǔ)模塊實(shí)現(xiàn)老人的身體指標(biāo)數(shù)據(jù)、老人個(gè)人信息、監(jiān)護(hù)人信息等存儲(chǔ);功能服務(wù)模塊是對(duì)身體指標(biāo)數(shù)據(jù)、GPS定位信息進(jìn)行分析,判斷是否有緊急狀況發(fā)生;Web和手機(jī)終端適配模塊是接收處理上層觸發(fā)的事件,主動(dòng)推送消息等。
前臺(tái)客戶端選用Android客戶端和Web客戶端開發(fā)監(jiān)護(hù)人和社區(qū)管理員應(yīng)用,客戶端的請(qǐng)求和響應(yīng)消息管理器通過(guò)HTTP協(xié)議跟服務(wù)端Servlet進(jìn)行消息交互,并采用json格式實(shí)現(xiàn)數(shù)據(jù)互傳。消息管理器一方面監(jiān)控客戶端用戶操控事件,觸發(fā)服務(wù)端數(shù)據(jù)庫(kù)讀寫以及數(shù)據(jù)分析等操作,同時(shí)還監(jiān)控服務(wù)器消息推送事件,對(duì)兩種事件中服務(wù)端發(fā)送的json數(shù)據(jù)進(jìn)行解析,并結(jié)合前端資源文件顯示在客戶端。
2.1 云數(shù)據(jù)庫(kù)技術(shù)
云數(shù)據(jù)庫(kù)相比傳統(tǒng)數(shù)據(jù)庫(kù)具有便捷、安全、數(shù)據(jù)共享方便等優(yōu)勢(shì)。由于本系統(tǒng)訪問云數(shù)據(jù)庫(kù)頻繁,所以在選擇云數(shù)據(jù)庫(kù)的基礎(chǔ)上又從數(shù)據(jù)庫(kù)的連接和數(shù)據(jù)庫(kù)表設(shè)計(jì)上進(jìn)一步優(yōu)化數(shù)據(jù)庫(kù)。
本系統(tǒng)采用c3p0連接池來(lái)解決資源消耗嚴(yán)重的問題,具體使用步驟如下:
1) 導(dǎo)入c3p0.jar,mchange?commons.jar。
2) 在類目錄下加入c3p0的配置文件:c3p0?config.xml,主要配置driverClass,jdbcUrl,user,password等參數(shù)。
3) 通過(guò)newComboPooledDataSource()方法在工具類靜態(tài)代碼塊中創(chuàng)建數(shù)據(jù)連接池。
然后可以通過(guò)工具類寫好的連接方法從數(shù)據(jù)源中獲取數(shù)據(jù)庫(kù)連接。
在數(shù)據(jù)存儲(chǔ)方面,根據(jù)系統(tǒng)需求設(shè)計(jì)了4個(gè)主要的數(shù)據(jù)庫(kù)表:
tbl_elderlyInfo表:存儲(chǔ)老年人的個(gè)人信息,包括姓名、身份證號(hào)、手機(jī)號(hào)、監(jiān)護(hù)人姓名和家庭住址等;
tbl_equipmentInfo表:存儲(chǔ)設(shè)備以及使用設(shè)備的老人和老人監(jiān)護(hù)人的綁定關(guān)系,包括設(shè)備ID、老人ID、監(jiān)護(hù)人ID等;
tbl_dynamicDataInf表:存儲(chǔ)定時(shí)上報(bào)的老人實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù),包括設(shè)備ID、經(jīng)緯度、姿態(tài)角、更新時(shí)間等;
tbl_physiologicalDataInfo表:存儲(chǔ)手動(dòng)觸發(fā)上報(bào)的老人生理指標(biāo)數(shù)據(jù),包括設(shè)備ID、血壓、心率、更新時(shí)間等。
2.2 云推送技術(shù)
與傳統(tǒng)社區(qū)老人監(jiān)護(hù)系統(tǒng)相比,本系統(tǒng)可以在老人出現(xiàn)緊急狀況,或需要推送健康分析結(jié)果和養(yǎng)老建議時(shí),通過(guò)云平臺(tái)的推送功能向Android和Web客戶端推送消息。
2.2.1 Android客戶端推送
Android客戶端推送是通過(guò)監(jiān)護(hù)系統(tǒng)服務(wù)器端調(diào)用云平臺(tái)的API接口實(shí)現(xiàn),消息先存到新浪云,再由新浪云的推送服務(wù)投遞到監(jiān)護(hù)人的手機(jī)。其中新浪云的Android Push SDK,對(duì)外的調(diào)用類只有一個(gè)PushManager,通過(guò)這個(gè)類可以打開、關(guān)閉、刷新Push的通道。Push通道以TCP長(zhǎng)連接的形式存在,保證數(shù)據(jù)送達(dá)的及時(shí)性。
在Android應(yīng)用中添加SinaPush Android SDK,為Android App增加推送功能,具體推送的步驟如下:
1) 導(dǎo)入SDK中的SinaPush_{version}_SAE_release.jar包。
2) 在應(yīng)用的AndroidManifest.xml中添加相關(guān)權(quán)限和配置服務(wù)。
3) 在調(diào)用所有接口前,先進(jìn)行初始化,且初始化只需要調(diào)用一次,代碼如下:
PushManager manager = PushManager. getInstance(getApplicationContext());
4) 接收push消息,SDK收到push消息后會(huì)發(fā)出一個(gè)notification,當(dāng)監(jiān)護(hù)人點(diǎn)擊notification時(shí),會(huì)跳轉(zhuǎn)到在acts字段中設(shè)置好的界面上。
2.2.2 Web客戶端推送
2.3 健康數(shù)據(jù)分析
部署在云平臺(tái)上的監(jiān)護(hù)系統(tǒng)具有彈性擴(kuò)容的特點(diǎn),這為大數(shù)據(jù)存儲(chǔ)和計(jì)算提供了資源。經(jīng)過(guò)對(duì)采集到的大量數(shù)據(jù)分析得出,人的生理指標(biāo)(如血壓、心率等)數(shù)據(jù)和健康狀況息息相關(guān),綜合分析這些指標(biāo)可以有效預(yù)判老人的健康狀況并向監(jiān)護(hù)人推送告警信息,系統(tǒng)采用有向圖描述這些關(guān)系。
生理指標(biāo)與疾病的關(guān)系圖(PI?D)可以用來(lái)判斷一個(gè)人是否處于健康狀態(tài)。PI?D定義為V和E的集合:PI?D={V,E}。其中V指的是頂點(diǎn)集,每個(gè)頂點(diǎn)代表生理指標(biāo)的一個(gè)范圍或一個(gè)疾病名稱,用vi=(type,value)表示,如果type=0說(shuō)明vi是生理指標(biāo)范圍,type=1則vi是疾病名稱。E指的是邊集,每條邊代表不同疾病之間的關(guān)系或生理指標(biāo)與疾病之間的關(guān)系,用eij=
從圖2中可以看出高血壓和心律失常是相關(guān)的,所以如果檢測(cè)到高血壓癥狀,就需要更好地監(jiān)測(cè)與心律失常相關(guān)的其他指標(biāo)。
3.1 SAE應(yīng)用系統(tǒng)部署
本地開發(fā)并驗(yàn)證系統(tǒng)功能正常后,即可將應(yīng)用系統(tǒng)部署到SAE平臺(tái),主要步驟如下:
1) 創(chuàng)建新應(yīng)用。注冊(cè)新浪賬號(hào)并登錄到SAE平臺(tái)主頁(yè):http://sae.sina.com.cn,點(diǎn)擊“創(chuàng)建新應(yīng)用”,在彈出界面設(shè)置二級(jí)域名、應(yīng)用名稱和資源配置等信息。
2) 應(yīng)用系統(tǒng)部署。本地驗(yàn)證功能正常后,在 Eclipse 中點(diǎn)擊新浪插件中的sina web services ?>Deploy按鈕, 在彈出框中對(duì)賬號(hào)和應(yīng)用程序的標(biāo)題進(jìn)行設(shè)置,點(diǎn)擊確定,該插件自動(dòng)將應(yīng)用系統(tǒng)的相關(guān)內(nèi)容打包、上傳并部署至SAE平臺(tái)。
3) 應(yīng)用系統(tǒng)在線訪問。部署完成后, 即可通過(guò)“創(chuàng)建新應(yīng)用”中填寫的域名即可訪問應(yīng)用系統(tǒng),例如本文系統(tǒng)的URL為:http://health.applinzi.com。
4) 應(yīng)用系統(tǒng)監(jiān)測(cè)。SAE為開發(fā)人員提供了管理自己新建應(yīng)用的統(tǒng)一平臺(tái),如數(shù)據(jù)、版本管理、訪問量等,開發(fā)人員可以方便地監(jiān)控自己應(yīng)用的運(yùn)行及使用情況。
3.2 Web客戶端應(yīng)用展示
Web客戶端主要功能包括:設(shè)備管理、老人健康檔案管理、生理指標(biāo)管理、地圖顯示、閾值設(shè)置、告警查詢等應(yīng)用界面,如圖3所示。其中設(shè)備管理實(shí)現(xiàn)設(shè)備注冊(cè)、刪除等操作,并能查看設(shè)備和綁定的老人信息及對(duì)應(yīng)監(jiān)護(hù)人的相關(guān)聯(lián)信息;老人健康檔案管理可以錄入和查看老人個(gè)人信息、監(jiān)護(hù)人信息以及歷史疾病等;生理指標(biāo)管理實(shí)現(xiàn)老人血壓、心率等數(shù)據(jù)的查看;通過(guò)閾值設(shè)置界面對(duì)老人的生理指標(biāo)和實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)設(shè)置閾值,如果超過(guò)設(shè)定值,則在告警查詢界面能看到新增一條閾值超限告警;如果健康分析預(yù)判可能有疾病也會(huì)發(fā)送告警信息,并提供養(yǎng)老建議;地圖顯示能實(shí)時(shí)跟蹤老人位置信息,有助于在緊急狀況發(fā)生時(shí)對(duì)老人采取救援。
Android客戶端主要功能類似Web端,只是手機(jī)端用戶只能操作已綁定的老人數(shù)據(jù),避免數(shù)據(jù)泄露。
指標(biāo)界面可以查看生理指標(biāo)和跌倒?fàn)顩r信息;地圖界面實(shí)現(xiàn)電子圍欄設(shè)置以及日常跟蹤定位;個(gè)人信息界面可以綁定多個(gè)被監(jiān)護(hù)人,并可以在不同的綁定對(duì)象間自由切換,該界面還能查詢告警信息,以便及時(shí)了解被監(jiān)護(hù)人的身體健康和安全狀況。
本文分析了傳統(tǒng)社區(qū)老人監(jiān)護(hù)系統(tǒng)的發(fā)展現(xiàn)狀和存在的問題,提出基于云平臺(tái)的社區(qū)老人監(jiān)護(hù)系統(tǒng)。該系統(tǒng)有效發(fā)揮了云計(jì)算平臺(tái)的技術(shù)優(yōu)勢(shì),實(shí)現(xiàn)數(shù)據(jù)的分布式共享存儲(chǔ)和訪問,從而避免“數(shù)據(jù)孤島”的現(xiàn)象。未來(lái)通過(guò)采集更多的身體健康指標(biāo)數(shù)據(jù),利用大數(shù)據(jù)技術(shù)深入挖掘各指標(biāo)間的相互關(guān)系,并在保證數(shù)據(jù)安全的前提下最大程度共享,可以在老人就醫(yī)、個(gè)性化養(yǎng)老建議、醫(yī)療保健等方面發(fā)揮更大優(yōu)勢(shì),并最終發(fā)展成為集監(jiān)控、醫(yī)療與養(yǎng)老于一身的綜合性應(yīng)用系統(tǒng)。
參考文獻(xiàn)
[1] 周光清,吳書裕,薛冰冰,等.基于物聯(lián)網(wǎng)的社區(qū)健康管理平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].醫(yī)療衛(wèi)生裝備,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ì)算的區(qū)域醫(yī)療信息共享平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].軍事醫(yī)學(xué),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的智慧社區(qū)健康監(jiān)護(hù)管理系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,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] 宮艷雪,武智霞,鄭樹泉,等.面向智慧社區(qū)的物聯(lián)網(wǎng)架構(gòu)研究[J].計(jì)算機(jī)工程與設(shè)計(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] 鄧仲華,宋秀芬.信息資源云的數(shù)據(jù)監(jiān)護(hù)研究[J].圖書館學(xué)研究,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òng)互聯(lián)網(wǎng)的個(gè)人健康管理軟件設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),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] 承驍,白光偉,華志翔,等.云代理的移動(dòng)消息推送服務(wù)[J].小型微型計(jì)算機(jī)系統(tǒng),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] 陸佳煒,王辰昊,肖剛,等.面向多源異構(gòu)數(shù)據(jù)的云推送平臺(tái)的研究與應(yīng)用[J].計(jì)算機(jī)科學(xué),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.