论文部分内容阅读
随着智能移动终端设备的迅速发展,智能手机,平板电脑等已经成为了人们生活中必不可少的一部分。移动互联网和移动应用在给我们的生活带来便利的同时也给服务器推送技术带来了新的挑战。服务器推送技术在保证信息的实时性的同时还要考虑到移动网络的不稳定性,移动终端设备的CPU处理能力较低,内存有限等问题。因此移动平台需要一种简洁的,实时的,高并发性的的推送技术。本文在对android平台下的服务器推送技术进行研究的基础上,对传输的协议和服务器推送模式做了改进,实现了一种高性能的推送模型,本文所做的具体工作如下:(1)对轻量级的发布/订阅协议MQTT(消息队列遥测传输协议)进行了扩展,客户端会在每个心跳周期中发送一条PINGREQ消息到服务器端。本文对PINGREQ消息的保留比特位进行重新定义,以此对客户端硬件设备的类型进行区分。(2)Comet模型通过在服务器端和客户端之间维持http长连接的方式实现了主动推送的服务器技术,但由于它在服务器端维护了太多的连接,使得服务器端的线程利用率不高,服务器性能低下。目前,主流的是通过NIO技术来解决Comet模型存在的服务器性能较低问题。但NIO技术实现的是同步I/O模型,在数据读写阶段还有改进的空间,因此本文根据Java SE7平台提出的新特性设计了一种新的异步I/O模型,模型中事件分离只负责对异步I/O读写操作进行注册,而真正的I/O读写操作是交由底层操作系统来完成。本文将Java提供的API封装为AsynchronousAccept、AsynchronousTransmission、AsynchronousGroupManagement、AsynchronousHandler四类用于在comet模型中调用,实现了 comet模式下的异步推送模型。(3)论文将扩展后的轻量级MQTT协议和基于Comet模式下的异步推送模型运用到Android平台下钢铁交易应用程序中。并通过测试验证了此推送模型在高并发状态下具有更低的资源占用率,更高的的稳定性和更好的实时性。