APP下载

基于MQTT协议与Android技术的跨平台访客管理系统

2017-03-30王成王跃

物联网技术 2017年3期

王成+王跃

摘 要:随着访客管理系统在企事业单位的逐步应用,实现了来访人员的信息化管理,但传统的单机访客系统仍然存在信息传递不及时、使用流程复杂等缺陷。文中设计了一种新型访客管理系统,在原有基于.NET平台访客管理系统的基础上,综合应用MQTT协议及Android技术构建跨平台的访客消息实时推送服务系统,实现了来访人员信息的及时传递,简化了访客管理系统使用流程。

关键词:MQTT;Android;访客管理系统;.NET

中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2017)03-00-03

0 引 言

近年来,随着社会的不断发展进步,信息化手段已逐漸渗透至社会各个领域。门卫和前台对来访人员进行登记管理是安全保卫工作的重要环节也是第一环节。然而迄今为止,我国政府机关部门、事业单位抑或绝大部分管理较完善的企业,其安全保卫及前台来访接待工作却基本停留在手工书写阶段,有些单位虽然购买了访客管理系统,但由于系统使用过程复杂,导致来访人员信息无法及时传递给受访人,该系统常常处于闲置状态。

针对以上问题,本文提出了基于MQTT协议与Android技术访客管理系统的设计方案,在原先已经开发的基于.NET平台访客管理系统应用的基础之上,考虑现有Android系统在移动终端广泛应用的情况,综合应用物联网及时通信协议及移动终端技术实现跨平台的来访人员信息的实时推送功能。

1 系统架构设计

该访客管理系统架构主要由四个子系统组成,分别为基于.NET的访客管理系统、基于JavaServlet的服务器系统、基于MQTT协议的Apollo服务器系统和基于Android的访客数据查询系统。平台的基本结构如图1所示。

当有新访客时,完整的访客系统使用流程如下:

(1)访客需要先在门卫处登录访客管理系统进行来访登记,完成登记资料填写后,数据会被保存至数据库服务器。

(2)系统自动给受访人的Android终端发送一个通知消息,告知受访人有访客来访。

(3)受访人打开Android终端的访客数据查询系统,查看访客信息并处理访问请求。

(4)访客管理系统接收到访客准许进入提醒后,门卫管理人员通知访客可以进入。至此,基本流程执行完毕。

访客系统的完整业务流程如图2所示。

2 基于MQTT的消息推送技术简介

消息推送是指从服务器端向移动终端发送连接请求,传输特定的信息。例如一些新闻客户端,每隔一段时间都会收到一条或多条通知,这就是从服务器端传来的推送消息。

MQTT协议是IBM开发的一个即时通信协议,该协议支持所有平台,可以将所有物联网设备和外部连接起来,被用作传感器和致动器的通信协议。将其作为消息推送协议的基本原理是:使用消息代理服务器(Message Broker),客户端连接上消息代理服务器,跟服务器协商可以接受哪些类型的消息,同时也可以发布自己的消息,这些消息根据协议内容可以被其它客户端收到。基于MQTT协议消息收发流程如图3所示。

3 系统实现

3.1 通知功能的实现

3.1.1 Apollo服务器的安装和配置

想要实现基于MQTT的消息推送功能,必须先配置Message Broker服务器,这里选择服务器Apollo1.7来搭建环境。具体搭建主要分为如下几步:

(1)去官方网站下载最新版的Apollo1.7服务器;

(2)运行apollo.cmd 创建服务器实例;

(3)在服务器实例的文件夹下配置参数;

(4)运行apollo-broker.cmd run开启服务器,在浏览器中输入服务器的IP地址,即可访问Apollo服务器界面;

(5)输入之前配置好的用户名和密码参数,即可访问Apollo Console控制台。

3.1.2 MQTT客户端的实现

使用WebService服务器系统向Android端发送通知,可将其看成两个MQTT 客户端之间的通信过程,消息在传播过程中经过了Message Broker服务器的转发,所以需要在WebService服务器系统和Android端分别配置MQTT客户端。两边代码实现过程基本一致,都要在工程中导入mqtt-client-0.4.0.jar的类库,然后使用工具类实现MQTT功能。

3.2 服务器功能模块的实现

WebService服务器系统的功能模块主要分为4部分,分别为响应终端HTTP服务请求模块、访问数据库模块、将数据转换为JSON格式的模块和实现MQTT功能的模块。

响应终端HTTP服务请求模块主要通过继承和扩展Java Servlet类来实现。在程序中设定响应HTTP请求的方式,并对不同的请求参数设置不同的操作流程。数据转换为JSON格式模块,主要对从数据库中取得的原始数据按照一定格式转换为JSON格式,以便于在网络中传输。实现该功能可以使用json-lib-jdk.jar开发包,其中有对应JSON数据类型的各种工具类,可以简化开发过程。

3.3 访客平台的实现

基于.NET的访客管理系统作为整个系统的主要数据来源和管理平台,其本身就是一套单独的系统,因此这里只简单介绍与本项目相关的功能模块。

(1)访客信息登记功能。该功能主要用来记录访客登记信息,并将这些信息存储到数据库中,Android终端设备可以通过WebService服务来间接获取该数据。基于.NET的访客管理系统演示界面如图4所示。

(2)发送访客来访信息功能。该功能通过WebService服务器系统发出请求,用以给受访人的Android客户端发送通知消息,消息中包含了受访人的ID标识,客户端通过ID标识可以查询该访客的信息。Android终端收到通知信息的界面如图5所示。

3.4 Android客户端功能

Android客户端的功能主要分为4个模块,即Activity模块、JSON工具类模块、HTTP工具类模块和MQTT功能模块。

(1)Activity是Android程序的组件之一,主要用于提供界面。程序中除有View的组件定义外,还有访问数据库的HTTP响应请求操作和MQTT消息推送通知操作,这两项操作都耗时較久。新版本的Android系统中不允许在主线程中执行这种耗时较久的操作,因此只能新起两个线程来分别执行。线程之间需要使用Handler进行数据通信,所以Activity中除主线程之外,还有两个子线程可同时进行异步操作。Activity起始界面和数据查询后的界面如图6所示。

(2)JSON工具类模块的主要功能是为对因WebService服务器响应数据请求操作传递而来的JSON格式数据进行解析,将JSON格式数据转换为自定义格式的数据。同WebService服务器使用JSON开发类库一样,使用标准的JSON格式转换功能时要导入对应的开发包。

(3)HTTP工具类模块的主要功能是向WebService服务器请求HTTP服务,通过GET方式加上不同的参数形式进行对数据库数据的查询和添加请求。当该请求有正确响应时,数据以字节流的方式从服务器传递过来,使用HTTP工具类将字节流转换为数据,并以接口方式提供给Activity调用。

(4)MQTT功能模块的主要功能与WebService服务器系统上实现MQTT客户端的功能类似,主要用来接收WebService服务器端以MQTT协议方式发送的消息,并以Android通知消息方式在终端通知栏中显示。MQTT功能模块必须另起一个新线程,该线程通过Handler与Activity通信。

4 结 语

随着物联网技术的高速发展及移动终端技术的广泛应用,人们对信息传递的及时性要求越来越高。本文提出的跨平台访客管理系统在充分调研了各个领域对于来访人员管理实际需求的基础上,采用基于MQTT的物联网通信协议与Android终端开发技术解决传统访客管理系统信息传递不及时的缺陷,用以提高对来访人员的管理效率。

参考文献

[1] Lee S, Kim H, Hong D, et al. Correlation analysis of MQTT loss and delay according to QoS level[C].Information Networking (ICOIN).Bangkok,2013:714-717.

[2]王楠,宋飞,周华春.一种基于Android平台的即时通信方案[J].计算机应用与软件,2013 ,30(4):107-109,148.

[3]屈赟,陶晡,王克俭,等.基于Android的果树病虫害信息推送系统的设计[J].科技通报,2016,32(5):86-90.

[4]杨晴龙,王晓田,陈三,等.基于Android平台的集成查询系统的设计与实现[J].物联网技术,2016,6(1):73-75.

[5]吉东,崔忠伟,马虹.基于Web的高校团委信息管理系统设计与实现[J].物联网技术,2016,6(6):112-113.

[6]黄鹏宇.嵌入式停车场管理系统设计与实现[D].成都:电子科技大学,2011.

[7]周开利,黎娟,刘江豪.基于物联网的开放实验室信息管理系统[J].物联网技术,2014,4(7):85-87.

[8]姜妮.基于MQTT的信息推送系统设计与实现[D].北京:中国科学院大学,2015.