龍丹,劉欣,賴帝超
(桂林電子科技大學(xué)信息科技學(xué)院,桂林 541004)
隨著時(shí)代的發(fā)展,世界人口老齡化越來越嚴(yán)重,老年人人口達(dá)到了一定的規(guī)模和程度。年輕人平日里需要上班工作,無法及時(shí)了解家中老年人的身體狀況,家中老年人一旦出現(xiàn)異常狀況不能及時(shí)通知自己的子女親戚,因此老年人群的健康狀況看護(hù)問題尤為受到社會(huì)關(guān)注,隨著人口老齡化的推進(jìn),該問題也隨之成為了社會(huì)各界所面臨的一大難題。本文以移動(dòng)互聯(lián)網(wǎng)、App終端、云計(jì)算等技術(shù)為支撐,以方便看護(hù)人了解老年人身體狀況為目標(biāo),提出了一個(gè)以硬件設(shè)備和App終端為基礎(chǔ)的移動(dòng)智能監(jiān)護(hù)App,希望能夠以更低成本、更高效率的方式協(xié)助家屬看護(hù)人對(duì)老年人的身體狀況進(jìn)行實(shí)時(shí)監(jiān)控與交互。
老人智能安全管家移動(dòng)端App主要用于接收服務(wù)器發(fā)出的消息并根據(jù)該消息給用戶做出不同的響應(yīng)(App消息推送警告、短信警告、電話語音警告等)。同時(shí)能夠查看服務(wù)器端提供的各種信息,如老人身體狀況數(shù)據(jù)、GPS定位數(shù)據(jù)、視頻監(jiān)控設(shè)備查看等。系統(tǒng)整體運(yùn)作流程如圖1所示。
圖1 整體運(yùn)作流程
系統(tǒng)功能劃分如下:
(1)服務(wù)器端
①App和服務(wù)器間的通信
設(shè)計(jì)多個(gè)Servlet對(duì)App端提交的JSON數(shù)據(jù)包進(jìn)行解包分析,每個(gè)Servlet分別對(duì)應(yīng)一種不同的處理功能,解包后對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,操作結(jié)束后打包數(shù)據(jù)包回傳至App端。
②服務(wù)器和數(shù)據(jù)庫(kù)間的通信
通過建立一個(gè)集合類將所有對(duì)數(shù)據(jù)庫(kù)的操作封裝至一個(gè)類中,在使用時(shí)只需要新建該類的類對(duì)象,而后調(diào)用類的方法即可完成對(duì)數(shù)據(jù)庫(kù)的連接、增刪查改等操作。
③用戶數(shù)據(jù)庫(kù)
用戶數(shù)據(jù)庫(kù)下有多個(gè)用戶數(shù)據(jù)表,將用戶常用數(shù)據(jù)與不常用數(shù)據(jù)分割開,提升查詢效率,減小服務(wù)器負(fù)擔(dān)。用戶數(shù)據(jù)庫(kù)下有帳號(hào)表(USER)、用戶資料表(US?ER_INFO)、身體狀況(HEALTH_INFO)、GPS定位經(jīng)緯度信息表(GPS_INFO)。
④消息推送服務(wù)
HEALTH_INFO表數(shù)據(jù)更新的同時(shí),推送消息至相應(yīng)的賬戶中,從而達(dá)到通知用戶的效果。
App、服務(wù)器和數(shù)據(jù)庫(kù)間的通信流程如圖2所示。
圖2 App、服務(wù)器和數(shù)據(jù)庫(kù)間的通信流程
(2)App端
①賬號(hào)登錄注冊(cè)頁面
用戶登錄或注冊(cè)賬號(hào)(賬號(hào)密碼使用MD5加密,數(shù)據(jù)庫(kù)不保存明文數(shù)據(jù))
②狀態(tài)查看頁面
硬件端用戶實(shí)時(shí)狀態(tài)數(shù)據(jù)查看(身體狀態(tài)數(shù)據(jù)、GPS定位、視頻設(shè)備查看等)、當(dāng)前狀態(tài)警告等。
③發(fā)現(xiàn)頁面
主要用于產(chǎn)品推廣、介紹等。
④我的頁面
用戶在本頁面可進(jìn)行更改、查看帳號(hào)信息、聯(lián)系客服等功能。
App頁面結(jié)構(gòu)如圖3所示:
圖3 App頁面結(jié)構(gòu)
系統(tǒng)的編寫以及運(yùn)行環(huán)境如下:
(1)服務(wù)端
服務(wù)端運(yùn)行于Windows 10系統(tǒng),利用Eclipse編寫,使用JSP+Servlet技術(shù)連接MySQL數(shù)據(jù)庫(kù)。
(2)App端
Android客戶端使用Windows 10平臺(tái)上的An?droid Studio進(jìn)行編寫,基于Android 5.1系統(tǒng)并使用Android系統(tǒng)手機(jī)進(jìn)行實(shí)機(jī)測(cè)試。
(1)Login Servlet設(shè)計(jì)
Login servlet用于接收App端發(fā)送的登錄數(shù)據(jù)包信息,在接收到App端傳送的數(shù)據(jù)包后,會(huì)對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,獲取與當(dāng)前數(shù)據(jù)包中帳號(hào)信息相匹配的字段,獲取字段后對(duì)密碼進(jìn)行判斷,密碼相對(duì)應(yīng)則進(jìn)行帳號(hào)信息的獲取,通過account字段查詢用戶信息表(US?ER_INFO)中相對(duì)應(yīng)的信息,獲取后將數(shù)據(jù)打包為JSON數(shù)據(jù)包,并添加登錄成功驗(yàn)證字段“驗(yàn)證成功”,如果登錄失敗則返回空數(shù)據(jù)包并添加登錄失敗驗(yàn)證字段“驗(yàn)證失敗”。
(2)Register servlet設(shè)計(jì)
Register Servlet用于接收App端發(fā)送的注冊(cè)信息,在接收到App端傳送的數(shù)據(jù)包后,對(duì)數(shù)據(jù)庫(kù)中的帳號(hào)表(USER)進(jìn)行查詢,查詢不出結(jié)果時(shí)將注冊(cè)輸入的信息插入至數(shù)據(jù)庫(kù)的帳號(hào)表(USER)以及帳號(hào)信息表(USER_INFO)中,并返回注冊(cè)成功驗(yàn)證字段“注冊(cè)成功”,反之則返回“注冊(cè)失敗”。
(3)Health Servlet設(shè)計(jì)
Health Servlet用于接收App端發(fā)送的身體狀況查詢,在接收到App端發(fā)送的數(shù)據(jù)包后,對(duì)數(shù)據(jù)庫(kù)中的身體狀況表(HEALTH_INFO)進(jìn)行查詢,并對(duì)查詢地得到的數(shù)據(jù)進(jìn)行打包處理,然后回傳至App端。
(4)SqlConnection類
SqlConnection類有多個(gè)方法,用于處理數(shù)據(jù)庫(kù)的數(shù)據(jù),類中的方法分別為:
①connectDatabase()用于連接數(shù)據(jù)庫(kù);
②loginData()用于處理登錄時(shí)所需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行的操作操作結(jié)束后返回JSON數(shù)據(jù)包;
③registerData()用于處理注冊(cè)時(shí)所需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行的操作,操作結(jié)束后返回JSON數(shù)據(jù)包;
④healthData()用于處理獲取身體狀況信息時(shí)所需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行的操作,操作結(jié)束后返回JSON數(shù)據(jù)包;
(5)checkHealth Servlet設(shè)計(jì)
checkHealth servlet用于接收App端發(fā)送的身體狀況查詢,在接收到App端發(fā)送的數(shù)據(jù)包后,對(duì)數(shù)據(jù)庫(kù)中的身體狀況表(HEALTH_INFO)進(jìn)行查詢,查詢結(jié)束后向App端返回state狀態(tài)數(shù)據(jù)。
(1)登錄模塊
客戶端登錄界面,登錄界面能進(jìn)行注冊(cè)、登錄、修改密碼等操作。
用戶打開登錄界面時(shí),系統(tǒng)會(huì)檢測(cè)本用于存儲(chǔ)自動(dòng)登錄帳號(hào)信息的緩存文件loginCache,當(dāng)存在該文件時(shí),系統(tǒng)自動(dòng)發(fā)送登錄信息至服務(wù)端請(qǐng)求帳號(hào)密驗(yàn)證,驗(yàn)證成功則跳轉(zhuǎn)至主界面,驗(yàn)證失敗則不做任何操作。當(dāng)用戶勾選自動(dòng)登錄時(shí),點(diǎn)擊登錄并且登錄成功后會(huì)將當(dāng)前帳號(hào)與加密密碼數(shù)據(jù)儲(chǔ)存至本地緩存文件loginCache當(dāng)中。
用戶在登錄時(shí)需要輸入賬號(hào)密碼,然后點(diǎn)擊登錄按鈕。點(diǎn)擊登錄按鈕后,App會(huì)將帳號(hào)和加密密碼信息發(fā)送至服務(wù)端進(jìn)行驗(yàn)證。為保證用戶的密碼安全,App會(huì)先獲取密碼框中的內(nèi)容,在獲取到的內(nèi)容基礎(chǔ)上添加額外字段,隨后將修改后的字段發(fā)送至加密類中進(jìn)行MD5加密,再將加密后的密文打包至數(shù)據(jù)庫(kù)中發(fā)送至服務(wù)端進(jìn)行驗(yàn)證。
(2)注冊(cè)模塊
用戶通過登錄頁面點(diǎn)擊注冊(cè)按鈕進(jìn)入注冊(cè)。用戶在注冊(cè)頁面輸入相關(guān)信息并點(diǎn)擊提交按鈕后,系統(tǒng)會(huì)檢測(cè)是否勾選同意協(xié)議選項(xiàng),未勾選該選項(xiàng)則無法注冊(cè)并提示用戶。
(3)位置查詢模塊
用戶在主界面進(jìn)入位置查詢頁面時(shí),App端向服務(wù)器發(fā)送數(shù)據(jù)包,服務(wù)器接收到數(shù)據(jù)包后,將數(shù)據(jù)包中的帳號(hào)信息在經(jīng)緯度表中進(jìn)行查詢,并將經(jīng)緯度信息打包回傳至App端。用戶在位置查詢頁面停留時(shí),系統(tǒng)會(huì)進(jìn)行多次經(jīng)緯度獲取請(qǐng)求,每次查詢到信息后都將重新重繪地圖描點(diǎn)信息。
位置查詢模塊使用高德地圖的2D地圖SDK。高德開放平臺(tái)目前開放了Android地圖SDK以及An?droid地圖SDK專業(yè)版兩套地圖SDK工具。高德地圖Android SDK是一套地圖開發(fā)調(diào)用接口,開發(fā)者可以輕松地在自己的Android應(yīng)用中加入地圖相關(guān)的功能,包括:地圖顯示(含室內(nèi)、室外地圖)、與地圖交互、在地圖上繪制、興趣點(diǎn)搜索、地理編碼、離線地圖等功能。
高德地圖Android SDK專業(yè)版是在Android SDK已有服務(wù)的基礎(chǔ)上,新增支持了自定義地圖在線加載、自定義地圖元素紋理等功能,便于開發(fā)者完成基于自身場(chǎng)景的更深層、更個(gè)性化地圖的開發(fā)需求。V4.0.0開始,除了支持手機(jī)設(shè)備外,還支持Android Wear。
(4)修改帳號(hào)信息模塊
用戶在我的頁面點(diǎn)擊帳號(hào)設(shè)置選項(xiàng)進(jìn)入帳號(hào)信息修改界面。進(jìn)入頁面時(shí)從本地文件中讀取對(duì)應(yīng)的帳號(hào)緩存信息并顯示在界面中,用戶點(diǎn)擊信息列表中對(duì)應(yīng)的項(xiàng)目時(shí)彈出編輯框修改信息。用戶每次修改信息后都會(huì)先將信息存儲(chǔ)在本地文件中,在用戶退出當(dāng)前界面時(shí)觸發(fā)帳號(hào)信息緩存上傳,系統(tǒng)將本地緩存文件中的帳號(hào)信息上傳至服務(wù)器,由服務(wù)器寫入更新用戶的設(shè)置。
(5)聯(lián)系我們模塊
用戶在我的頁面點(diǎn)擊聯(lián)系我們選項(xiàng)進(jìn)入聯(lián)系界面。進(jìn)入該頁面用戶填寫相應(yīng)輸入框的內(nèi)容點(diǎn)擊提交按鈕時(shí),App端通過系統(tǒng)綁定的郵箱向客服郵箱發(fā)送包含用戶填寫的內(nèi)容為正文郵件??头赏ㄟ^用戶填寫的郵箱信息進(jìn)行郵件答復(fù)。
(6)狀態(tài)監(jiān)控模塊
用戶在進(jìn)入App的主頁面后,App會(huì)在后臺(tái)創(chuàng)建一個(gè)后臺(tái)服務(wù),用于向服務(wù)器持續(xù)請(qǐng)求獲取HEALTH_INFO中的身體狀況字段,當(dāng)獲取字段與上一次不相同時(shí),會(huì)對(duì)主頁面的狀態(tài)顯示進(jìn)行視圖更新,并發(fā)出通知欄消息提示,從而實(shí)現(xiàn)異常警報(bào)機(jī)制。
系統(tǒng)實(shí)現(xiàn)的部分截圖如圖4所示。
隨著移動(dòng)智能終端、大數(shù)據(jù)、云計(jì)算、4G等高新技術(shù)的迅猛發(fā)展,使得遠(yuǎn)程看護(hù)老年人變得可行。本文提出了移動(dòng)智能看護(hù)人系統(tǒng)的設(shè)計(jì)方案以及系統(tǒng)的實(shí)現(xiàn)方案,在服務(wù)器與數(shù)據(jù)庫(kù)平臺(tái)上,完成了其中的服務(wù)器與App的通信、服務(wù)器與數(shù)據(jù)庫(kù)之間讀寫等功能的設(shè)計(jì)與實(shí)現(xiàn),在基于Android的移動(dòng)智能終端上,設(shè)計(jì)實(shí)現(xiàn)了身體狀況瀏覽、異常狀態(tài)提醒、硬件用戶位置查詢等功能,為智能看護(hù)人系統(tǒng)的實(shí)現(xiàn)提供了一種可行的思路和方法。
圖4 系統(tǒng)實(shí)現(xiàn)的部分截圖