家庭安防系统数据通信问题的研究

时间:2020-09-10 16:58:07 通信工程毕业论文 我要投稿

家庭安防系统数据通信问题的研究

  【摘 要】当今社会,家庭的安全防盗成为了重大的问题,为了维护家庭的生命财产安全,及时发现危险情况,安装一套家庭安防系统是很有必要的,家庭安防系统的重点在于安防数据的通信,以便实时预警。本文阐述了安防系统的整个数据通信过程,并对具体的通信部分提出了解决方案,有利于实现更加安全、高效率的安防系统。

家庭安防系统数据通信问题的研究

  【关键词】家庭安防;数据通信;Mina框架;WebService技术;手机推送

  引言

  随着社会经济的飞速发展,社会结构和社会治安都日趋复杂,入室抢窃、偷盗等诸多社会问题时有发生,使得人们对家庭生命财产的安全越来越重视。为了满足人们对家庭安全防范的更高要求,及时发现入室抢劫等危险情况,并在第一时间内迅速通知给用户,将险情遏制在萌芽阶段,从而更好的保护住宅用户的利益。家庭安防系统应运而生,家庭安防系统的研究,可以使用户跨越时间、空间的阻隔进行远程监控工作[1],提高了住宅的安全防盗性能,可以有效的保护用户的生命财产安全,具有较高的应用价值。

  家庭安防系统是基于网络的,系统功能实现的重点在于数据通信,数据通信是通信技术和计算机技术相结合而产生的一种新的通信方式。需要把文本、图像、视频、音频等元素与二进制数据进行转换传输。本文在实现了一套家庭安防系统的基础上,着重对系统的数据通信问题做出研究,并提供了一套有效的解决方案。

  1 开发工具简介

  1.1 MyEclipse

  MyEclipse是一个功能十分强大的企业级集成开发环境,是在eclipse的基础上集成自己的插件开发而成的,主要用于Java还有Java EE和移动应用的开发。MyEclipse拥有完备的编码、调试、测试和发布功能,完整支持HTML, CSS, Javascript, Struts, JSF, SQL, Hibernate。MyEclipse在结构上可以被分为7类特征:(1)J2EE模型;(2)WEB开发工具;(3)EJB开发工具;(4)应用程序服务器的连接器;(5)J2EE项目部署服务;(6)数据库服务;(7)MyEclipse整合帮助。MyEclipse通过各种各样的的插件来提供以上的功能。MyEclipse具有模块化的结构,能够对任一模块实现单独的升级和扩展。

  1.2 Android

  Android是一种操作系统,是基于Linux开发而成,开放源码,它主要被使用于移动设备,如平板电脑和智能手机。Anroid平台对第三方软件是完全开放的,开发者可以更加自由的在平台上开发程序。Android系统是不收费的,这样可以节省开发者开发的成本。Android平台主要拥有5大特点:(1)开放性:Android联盟允许所有的移动终端设备厂商加入到 Android平台;(2)摆脱运营商的制约:用户能够更方便地去连接网络,减少了运营商对用户的束缚;(3)硬件选择更加丰富:众多的Android设备厂商提供了五花八门、功能各式各样的产品;(4)开发商不会受到任何的限制:Android平台拥有一个非常宽泛、十分自由的生态环境,使得开发商不会被太多的条条框框而阻扰;(5)Google应用:Android平台设备可以非常方便的'使用Google服务。

  2 系统功能简介

  家庭安防系统主要由三部分组成,硬件端采集系统、服务器管理系统和手机移动终端。硬件端利用温度传感器、振动传感器与摄像头,实现对家庭安全防盗信息的采集;服务器端对数据进行存储分析;手机端对数据进行展示,以及防盗报警。系统主要功能是实现对家庭内部的监控,能够采集家庭内的温度、振动、图像信息,并且能将这些信息发送到服务器上。当家庭内有异常(陌生人非正常进入)时,可以检测出异常,然后通过服务器将报警信息发送到用户的手机上。用户可以通过手机登录服务器来查看家中的温度、振动、图像信息,并且可以发送特定的指令信息给服务器,修改家庭内监控网络的一些参数(采集频率、开关状态等)。

  3 通信功能实现

  家庭安防系统的数据通信功能主要分为三个模块:(1)硬件端与服务器端通信:硬件端网关把采集的数据分析压缩后上传到服务器端,服务器端向硬件端发送监控参数设置信息;(2)服务器端与手机端通信:服务器端对硬件端上传的数据进行存储分析,向手机端提供数据调用的展示和异常时的报警,手机端向服务器端设置监控参数;(3)服务器端与PC客户端通信:服务器端向PC客户端提供数据调用的展示,PC客户端向服务器端传送数据操作生成的数据信息。具体的系统数据通信框架如图1。

  图1 系统数据通信框架图

  3.1 硬件端与服务器端通信

  家庭安防系统面对的用户群非常广泛,同一时间需要支持大量的硬件端数据上传,而且数据上传的频率非常高,因此,服务器需要支持大规模的并发连接。传统的Socket通信是阻塞的、非异步的,连接数较多将会出现资源不足的情况,程序响应出现延迟,甚至崩溃。Apache Mina是一个网络通信应用框架,也就是说,它主要是基于UDP/IP和TCP/IP协议栈的通信框架,我们可以使用Mina 快速的开发高性能并且高扩展性的网络通信应用,Mina 提供了基于事件驱动和异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型[2]。messageReceived是Mina中用于接收消息的方法,在此方法中进行消息的处理。核心代码如下:

  public void messageReceived(IoSession session, Object message)

  throws Exception {

  IoBuffer buffer = (IoBuffer) message;

  Context ctx = getContext(session);

  byte[] b = new byte[buffer.limit()];

  buffer.get(b);

  System.out.println(b.length);

  DataOutputStream dos = ctx.getDos();

  boolean isopen = ctx.isIsopen();

  System.out.println(isopen);

  int len = b.length;

  for(int k=0;k  ...

  }

  }

  3.2 服务器端与手机端通信

  3.2.1 WebService调用

  WebService是一种跨编程语言和跨操作系统平台的远程调用技术[3],WebService使用HTTP协议进行数据传输,采用XML格式来封装数据(在XML中要说明调用远程服务对象的什么方法,传递的是什么参数,还有服务对象会返回什么结果)。家庭安防系统服务器端将已经开发好的功能和数据发布到网络上某个地址,手机客户端通过访问这个地址获取所需的功能。WebService发布的核心代码如下: