论文部分内容阅读
随着互联网技术的飞速发展和硬件技术的逐渐提升,近年来,以iPad、iphone以及Android手机为代表的移动智能设备取得了巨大的发展,其用户数量增长迅速。传统拉取消息的方式已经不能满足实际应用当中对信息获取及时性、耗电量以及网络环境等方面的要求,需要使用推送的方式来传递消息,MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议就是专为这种情况设计的一种即时通讯协议[1]。本文研究并设计了一个基于MQTT协议的消息推送系统。发布者客户端基于windows平台开发,订阅者客户端基于Android平台开发,由于不同平台采用的编码方式不一样,在消息推送的时候会出现中文等其他语言的文字兼容问题,由于MQTT协议被设计为一种轻量级传输协议,并没有对消息推送进行加密控制,开发的系统存在一定的安全问题。本文主要进行了如下工作:(1)本文首先重点研究了MQTT协议的工作原理,然后研究了几大主流消息中间件技术,最后决定采用Apache Apollo作为消息推送服务器,采用J2SE技术编写发布者客户端代码,采用Android技术编写订阅者客户端代码,由于Eclipse Paho开源项目对MQTT协议提供了实现,因此,本文也重点研究了Eclipse Paho开源项目并使用Eclipse Paho API提供的接口完成消息推送功能。针对客户端不同平台的文字兼容问题,本文在不同的平台上采用统一字符编码方式改进系统,在系统开发的过程中使用统一字符编码的方式能够解决不同平台的文字兼容问题。(2)针对轻量化加密问题,由于MQTT协议考虑到轻量化需求,并没有采用内置加密的方式,而是直接发送原文字节码,这样的确存在安全性问题。本文在充分考虑到轻量化和加密两个问题上引入轻量级加密算法TEA算法,TEA算法能够有效的兼容轻量化需求和加密需求,运用32轮不同的移位和易或运算加密数据,并且得到的密文数据大小比原文数据不会多于8个字节,很好的满足了轻量级加密需求。本文引入TEA加密算法改进系统,使得系统具有一定的安全性。最后在搭建的消息推送平台上实现了服务端和客户端功能,并给予实验验证系统功能,结果表明采用统一字符编码方式开发系统解决了文字兼容问题,引入TEA算法后网络中传输的数据是密文数据,在一定程度上提高了系统的安全性。