谭钦红,黄茂碟,张作运
(重庆邮电大学 通信与信息工程学院,重庆 400065)
摘要:根据现有信息处理方式,设计了基于Android的情报管理系统。情报管理系统通过网络实时上传采集的情报信息,管理员及时处理并下发指令,APP用户根据指令进行处理并将结果反馈给管理员从而形成闭合的信息处理方式。紧急情况下手机客户端直接与后台管理端进行视频直播,更加快捷地做出处理措施。详细阐述了系统的总体构架,介绍了系统的功能模块和具体实现,对系统进行测试,并提出系统需要完善的地方。
关键词:Android;情报管理系统;JAX-WS;视频通话
中图分类号:TN919.82文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.02.030
引用格式:谭钦红,黄茂碟,张作运.基于Android的情报管理系统设计与实现[J].微型机与应用,2017,36(2):100-103.
0引言
随着 “互联网+”[1]时代的到来,传统行业中情报信息处理方式显得有些过时,如民警执法、事故现场指挥救援等采集的情报信息往往是事后处理,导致信息滞留,采集设备也因行业不同使应用场景受限。本文基于互联网技术,采用全新信息处理模式,设计了基于Android[2]的情报管理系统。选用开源MySQL[3]关系型数据库放置在网络服务端,通过Web Service技术进行数据传输,利用线程及流媒体技术进行视频数据传输,实现信息及时上传处理并利用Android平台扩展应用场景,达到了较好的情报管理效果。
1系统总体架构
1.1系统简介
情报管理系统主要包括后台数据存储服务器、手机端(包括手机客户端和手机服务端)和后台管理端三部分,其系统架构图如图1所示。手机端采集情报信息上传至后台管理端,后台管理端处理采集信息下发指令给手机端,手机端用户根据指令内容完成相应动作并进行反馈从而完成一条闭合的信息处理。情报信息数据在两大服务器中进行处理。系统接入互联网,实时将现场音视频图像回传给后台管理端,将手机变成随身携带的监控点,弥补传统监控设备有图像没声音,无法实时上传视频图像等问题。
1.2系统设计
情报管理系统手机端由Android平台开发完成,手机端采用C/S[4]架构将应用程序分为手机客户端、手机服务端两部分,手机服务端与数据存储服务器进行数据交互;后台管理端由.NET[5]平台开发完成,后台管理端访问数据存储服务器获得数据。
通过调用JAXWS[6]服务来发布使用Web Service框架的手机服务端,简化了Java技术开发和部署Web Service的工作。手机客户端采集情报信息通过HTTP协议访问Tomcat发布的Web Service服务器接口将信息存入数据库,将图片存入FTP服务器并将图片路径写入数据库中。后台管理端通过访问数据库得到情报信息,进行分析并下发处理指令写入数据库中,同时接收手机客户端通过Socket连接请求的实时视频传输。情报管理系统数据流图如图2所示。
2系统设计与实现
情报管理系统主要有三大功能模块:情报模块、指令模块、视频图传模块。情报模块包括后台管理端的情报管理和手机端的情报采集,两者共同完成情报信息的管理以及采集;指令模块包括后台管理端的指令管理和手机端的指令处理,两者共同完成实时指令的处理;视频图传模块实现一对多的通信模式,后台管理端可以同时接受多个手机客户端发起的视频连接请求,实时监听完成视频传输,并在视频通话结束后把视频存入FTP服务器中将视频路径写入数据库。
2.1情报模块
该模块手机客户端通过HTTP方法上传情报信息,情报信息包括情报标题、情报内容、发生时间和地点,以及选择图片作为附件等,同时手机客户端用户可以查看历史上传情报。从后台管理端,管理员可以查看相应的情报信息,实时监听手机端是否上传情报。
2.1.1情报模块手机端实现
完成该模块功能需要在程序中申明INTERNET权限让APP应用接入网络,申明调用手机摄像头拍照和操作权限允许APP应用拍照以及操作手机图库照片,APP应用实现完整信息上传。
在手机客户端定义InformToServer类,利用HTTP的POST请求方法实现客户端与服务器之间的数据传输。访问服务端Web Service接口的方法如下:HttpPost httpPost = new HttpPost(urlAddress)创建POST请求方法,并且在List<NameValuePair> params 数组中附加上传手机服务端数据,最后使用httpPost.setEntity(new UrlEncodedFormEntity(para))方法将数据上传至手机服务端。手机服务端使用request.getParameter()方法获得数据并对数据进行处理存入数据库。最后手机客户端使用ht.getEntity()方法获得手机服务端反馈。
在手机客户端创建基于JAXWS的InformActivity客户端类,在手机服务端创建基于JAXWS的Upload服务端类,实现WSDL对Web Service接口的定义。手机客户端通过访问手机服务端指定Web Service的wsdlURL(访问路径)和QName(命名空间)完成图片信息的上传。
2.1.2情报模块后台管理端实现
该模块后台管理端将实时监听手机端上传情报信息条数,提醒管理员系统中存在未处理情报。
点击主界面“情报管理”按钮,通过mysql.mySqlCommand.ExecuteReader()方法访问数据库,将返回的数据在ListView控件中显示。管理员可以按照指定日期的时间段、所属机构以及情报信息状态查询情报内容。管理员根据上传的情报内容做出正确处理措施并将以指令方式下达给APP用户,通过new Order(order_ID, inform_ID)方法跳转到指令下发界面进行下发操作。
2.2指令模块
该模块中手机客户端主动向手机服务端请求查询后台管理端下发的指令信息,后台下发的指令内容插入MySQL数据库中,手机服务端访问数据库,将数据反馈给手机客户端,利用ListView控件将信息显示在APP界面上,并根据指令信息进行情报反馈。
2.2.1指令模块手机端实现
点击APP应用主界面的“新指令”按钮,使用HTTP的POST请求访问手机服务端的Web Service接口。手机服务端反馈数据较多,将采用JSON数组形式进行返回。首先将从数据库中获得的数据以键值对的方式存入HashMap散列表中,接着调用JSONObject类将HashMap对象转成Jason数组反馈给手机客户端。手机客户端以Jason格式接收数据再进行处理。
APP主界面中将实时显示未读指令条数,提醒APP用户及时查看新指令并对指令进行反馈。该功能将在手机客户端设置一个定时任务,不断轮询手机服务端得到最新数据[7],实现方法如下:Timer timer = new Timer()创建定时器,TimerTask task = new TimerTask()创建执行任务,利用timer.schedule(task, 0, 3000)执行定时任务。
2.2.2指令模块后台管理端实现
后台管理端的指令功能包括指令管理和指令模板两个模块。指令管理即为管理员下达新指令,指令模板将日常事件生成样板,在下达新指令时选择即可。模块内容可根据日期、状态或者标题进行查询,同时可完成新建与删除操作。后台管理端指令下发流程如图3所示。
2.3视频图传模块
该模块中手机客户端将直接与后台管理端进行网络连接完成视频通话[8],此通信方式实现了视频传输实时性高、传输效率高等。情报管理系统可实现多个手机客户端与后台管理端通话,同时进行多个场景的视频监控。手机客户端与后台管理端交互的数据流向如图2虚线标识部分所示。该模块采用传输控制协议[9](Transmission Control Protocol,TCP)协议建立连接实现Socket通信。
(1)手机客户端视频请求
Socket通信前对APP应用中视频通话的视频质量进行设置。首先在程序中申明调用使用手机摄像头拍照权限对摄像头进行初始化,设置视频宽度、视频高度等影响视频质量因素的值。完成视频通话准备工作后新开线程建立TCP连接,实现方法如下:client=new Socket(serverUrl,serverPort)定义MyThread对象方法,Thread th = new MyThread()实例化MyThread对象,th.start()执行连接请求。
(2)后台管理端接收请求并存储视频
后台管理端接收来自手机客户端的TCP请求,点击打开视频播放器实现与手机用户视频通话,在视频通话结束后将视频存入FTP服务器并在数据库中写入视频存放地址,以便回放历史视频查看。为了完成多个场景下视频监控,后台管理端同时开启多个Socket线程接收手机客户端的视频请求。实现方法如下:
实例化名SocketServer对象,名为server;
调用server对象的接入函数,数据流接收函数,中断函数;
开始监听server对象;
(3)后台管理端视频回放
每次视频通话结束后台管理端会将视频存入FTP服务器,访问数据库得到视频存储地址对视频进行回放,为事件处理提供有利证据。系统需要在指定管理员身份下查看相关视频录像。该功能的伪代码如下:
获得历史视频存储地址lvi;
实例化名为vlc的视频播放对象;
设置vlc的名称:lvi.SubItems[3].Text;
开始播放视频;
3系统功能测试
系统手机服务端由MyEclipse、Tomcat、JDK、MySQL开发完成,手机客户端由Eclipse、JDK、Android SDK、ADT开发完成,后台管理端由Visual Studio开发完成。基于系统开发环境以及系统框架的设计,首先在xampp中开启MySQL服务,其次打开系统后台管理端可执行文件,并在MyEclipse软件中启动Tomcat服务器开启系统手机服务端,为手机客户端提供可访问Web Service接口。最后将情报管理系统手机APP的安装文件apk安装到Android手机终端,进行系统测试。
(1)系统主界面
系统主界面的呈现方式对于用户体验是至关重要的,简单大方的UI设计方便用户快速定位到所需功能。在手机端和后台管理端的主界面都直接设置了系统功能模块按钮,用户点击按钮即可跳转对应功能模块,进入系统主界面流程如图4所示。
(2)情报和指令模块
情报模块和指令模块是相互关联的功能模块。手机客户端采集情报上传,后台管理端根据情报信息下发处理指令,手机端对指令信息进行情报反馈,因此情报与指令模块测试一起进行。进入模块流程如图5所示。
(3)视频图传模块
视频图传是系统开发的核心,要求视频清晰,对该模块进行测试。APP应用接入网络并调用手机摄像头进行视频录入与后台管理端进行Socket连接完成实时通话,视频通话流程如图6所示。
4结论
情报管理系统应用解决了传统行业中的信息滞留问题,同时将随身携带的手机变成监控点、定位点,节约了不少设备资金。这样的系统取代了传统行业中的情报信息处理方式,随时随地采集信息,实时上传,及时处理。此外,系统还需要进一步完善,做到Android手机端之间的信息共享。
参考文献
[1] 宁家骏.“互联网+”行动计划的实施背景、内涵及主要内容[J]. 电子政务, 2015(6):32-38.
[2] LEE J K, LEE J Y. Android programming techniques for improving performance[C]. 2011 3rd International Conference on Awareness Science and Technology (ICAST2011), 2011:386389.[3] CABRAL S K. MySQL 5.5: improving on the world’s most popular open source database[J]. Database Trends and Applications, 2011, 25(3):30.
[4] 陈俊斌.C/S与B/S结合的软件体系结构[J]. 电子技术与软件工程,2015(3):68-69.
[5] 王海燕.C#.NET下三层架构数据库应用系统开发[J]. 计算机技术与发展,2012,22(6):78-81.
[6] 彭邦伦.利用JAX—WS开发Web Service[J]. 电脑编程技巧与维护, 2008(12):21-23.
[7] 倪红军.基于Android平台的消息推送研究与实现[J]. 实验室研究与探索, 2014,33(5):99-100.
[8] 邓蕊.基于Android的视频监控的研究与实现[D]. 西安:西安电子科技大学,2012.
[9] Xiong Yonghua, Wu Min, Jia Weijia. Delay prediction for realtime video adaptive transmisson over TCP[J]. Journal of Multimedia, 2010,5(3):216-223.