老人远程智能看护系统的设计与实现
2019-01-22龙丹刘欣赖帝超
龙丹,刘欣,赖帝超
(桂林电子科技大学信息科技学院,桂林 541004)
0 引言
随着时代的发展,世界人口老龄化越来越严重,老年人人口达到了一定的规模和程度。年轻人平日里需要上班工作,无法及时了解家中老年人的身体状况,家中老年人一旦出现异常状况不能及时通知自己的子女亲戚,因此老年人群的健康状况看护问题尤为受到社会关注,随着人口老龄化的推进,该问题也随之成为了社会各界所面临的一大难题。本文以移动互联网、App终端、云计算等技术为支撑,以方便看护人了解老年人身体状况为目标,提出了一个以硬件设备和App终端为基础的移动智能监护App,希望能够以更低成本、更高效率的方式协助家属看护人对老年人的身体状况进行实时监控与交互。
1 需求描述及运作流程
老人智能安全管家移动端App主要用于接收服务器发出的消息并根据该消息给用户做出不同的响应(App消息推送警告、短信警告、电话语音警告等)。同时能够查看服务器端提供的各种信息,如老人身体状况数据、GPS定位数据、视频监控设备查看等。系统整体运作流程如图1所示。
图1 整体运作流程
2 系统功能划分
系统功能划分如下:
(1)服务器端
①App和服务器间的通信
设计多个Servlet对App端提交的JSON数据包进行解包分析,每个Servlet分别对应一种不同的处理功能,解包后对数据库进行操作,操作结束后打包数据包回传至App端。
②服务器和数据库间的通信
通过建立一个集合类将所有对数据库的操作封装至一个类中,在使用时只需要新建该类的类对象,而后调用类的方法即可完成对数据库的连接、增删查改等操作。
③用户数据库
用户数据库下有多个用户数据表,将用户常用数据与不常用数据分割开,提升查询效率,减小服务器负担。用户数据库下有帐号表(USER)、用户资料表(US⁃ER_INFO)、身体状况(HEALTH_INFO)、GPS定位经纬度信息表(GPS_INFO)。
④消息推送服务
HEALTH_INFO表数据更新的同时,推送消息至相应的账户中,从而达到通知用户的效果。
App、服务器和数据库间的通信流程如图2所示。
图2 App、服务器和数据库间的通信流程
(2)App端
①账号登录注册页面
用户登录或注册账号(账号密码使用MD5加密,数据库不保存明文数据)
②状态查看页面
硬件端用户实时状态数据查看(身体状态数据、GPS定位、视频设备查看等)、当前状态警告等。
③发现页面
主要用于产品推广、介绍等。
④我的页面
用户在本页面可进行更改、查看帐号信息、联系客服等功能。
App页面结构如图3所示:
图3 App页面结构
3 编写以及运行环境
系统的编写以及运行环境如下:
(1)服务端
服务端运行于Windows 10系统,利用Eclipse编写,使用JSP+Servlet技术连接MySQL数据库。
(2)App端
Android客户端使用Windows 10平台上的An⁃droid Studio进行编写,基于Android 5.1系统并使用Android系统手机进行实机测试。
4 详细设计
4.1 服务端详细设计
(1)Login Servlet设计
Login servlet用于接收App端发送的登录数据包信息,在接收到App端传送的数据包后,会对数据库进行查询,获取与当前数据包中帐号信息相匹配的字段,获取字段后对密码进行判断,密码相对应则进行帐号信息的获取,通过account字段查询用户信息表(US⁃ER_INFO)中相对应的信息,获取后将数据打包为JSON数据包,并添加登录成功验证字段“验证成功”,如果登录失败则返回空数据包并添加登录失败验证字段“验证失败”。
(2)Register servlet设计
Register Servlet用于接收App端发送的注册信息,在接收到App端传送的数据包后,对数据库中的帐号表(USER)进行查询,查询不出结果时将注册输入的信息插入至数据库的帐号表(USER)以及帐号信息表(USER_INFO)中,并返回注册成功验证字段“注册成功”,反之则返回“注册失败”。
(3)Health Servlet设计
Health Servlet用于接收App端发送的身体状况查询,在接收到App端发送的数据包后,对数据库中的身体状况表(HEALTH_INFO)进行查询,并对查询地得到的数据进行打包处理,然后回传至App端。
(4)SqlConnection类
SqlConnection类有多个方法,用于处理数据库的数据,类中的方法分别为:
①connectDatabase()用于连接数据库;
②loginData()用于处理登录时所需要对数据库进行的操作操作结束后返回JSON数据包;
③registerData()用于处理注册时所需要对数据库进行的操作,操作结束后返回JSON数据包;
④healthData()用于处理获取身体状况信息时所需要对数据库进行的操作,操作结束后返回JSON数据包;
(5)checkHealth Servlet设计
checkHealth servlet用于接收App端发送的身体状况查询,在接收到App端发送的数据包后,对数据库中的身体状况表(HEALTH_INFO)进行查询,查询结束后向App端返回state状态数据。
4.2 客户端App详细设计
(1)登录模块
客户端登录界面,登录界面能进行注册、登录、修改密码等操作。
用户打开登录界面时,系统会检测本用于存储自动登录帐号信息的缓存文件loginCache,当存在该文件时,系统自动发送登录信息至服务端请求帐号密验证,验证成功则跳转至主界面,验证失败则不做任何操作。当用户勾选自动登录时,点击登录并且登录成功后会将当前帐号与加密密码数据储存至本地缓存文件loginCache当中。
用户在登录时需要输入账号密码,然后点击登录按钮。点击登录按钮后,App会将帐号和加密密码信息发送至服务端进行验证。为保证用户的密码安全,App会先获取密码框中的内容,在获取到的内容基础上添加额外字段,随后将修改后的字段发送至加密类中进行MD5加密,再将加密后的密文打包至数据库中发送至服务端进行验证。
(2)注册模块
用户通过登录页面点击注册按钮进入注册。用户在注册页面输入相关信息并点击提交按钮后,系统会检测是否勾选同意协议选项,未勾选该选项则无法注册并提示用户。
(3)位置查询模块
用户在主界面进入位置查询页面时,App端向服务器发送数据包,服务器接收到数据包后,将数据包中的帐号信息在经纬度表中进行查询,并将经纬度信息打包回传至App端。用户在位置查询页面停留时,系统会进行多次经纬度获取请求,每次查询到信息后都将重新重绘地图描点信息。
位置查询模块使用高德地图的2D地图SDK。高德开放平台目前开放了Android地图SDK以及An⁃droid地图SDK专业版两套地图SDK工具。高德地图Android SDK是一套地图开发调用接口,开发者可以轻松地在自己的Android应用中加入地图相关的功能,包括:地图显示(含室内、室外地图)、与地图交互、在地图上绘制、兴趣点搜索、地理编码、离线地图等功能。
高德地图Android SDK专业版是在Android SDK已有服务的基础上,新增支持了自定义地图在线加载、自定义地图元素纹理等功能,便于开发者完成基于自身场景的更深层、更个性化地图的开发需求。V4.0.0开始,除了支持手机设备外,还支持Android Wear。
(4)修改帐号信息模块
用户在我的页面点击帐号设置选项进入帐号信息修改界面。进入页面时从本地文件中读取对应的帐号缓存信息并显示在界面中,用户点击信息列表中对应的项目时弹出编辑框修改信息。用户每次修改信息后都会先将信息存储在本地文件中,在用户退出当前界面时触发帐号信息缓存上传,系统将本地缓存文件中的帐号信息上传至服务器,由服务器写入更新用户的设置。
(5)联系我们模块
用户在我的页面点击联系我们选项进入联系界面。进入该页面用户填写相应输入框的内容点击提交按钮时,App端通过系统绑定的邮箱向客服邮箱发送包含用户填写的内容为正文邮件。客服可通过用户填写的邮箱信息进行邮件答复。
(6)状态监控模块
用户在进入App的主页面后,App会在后台创建一个后台服务,用于向服务器持续请求获取HEALTH_INFO中的身体状况字段,当获取字段与上一次不相同时,会对主页面的状态显示进行视图更新,并发出通知栏消息提示,从而实现异常警报机制。
系统实现的部分截图如图4所示。
5 结语
随着移动智能终端、大数据、云计算、4G等高新技术的迅猛发展,使得远程看护老年人变得可行。本文提出了移动智能看护人系统的设计方案以及系统的实现方案,在服务器与数据库平台上,完成了其中的服务器与App的通信、服务器与数据库之间读写等功能的设计与实现,在基于Android的移动智能终端上,设计实现了身体状况浏览、异常状态提醒、硬件用户位置查询等功能,为智能看护人系统的实现提供了一种可行的思路和方法。
图4 系统实现的部分截图