论文部分内容阅读
传统的用户主动向服务器拉取信息的方式存在诸多不足,例如浪费了用户的时间和流量、增加服务器的压力、降低处理效率等;而服务器推送技术可以帮助用户节省流量和电能,移动设备和3G网络的普及给推送服务带来了更大的发展空间。然而,由于Android官方提供的推送服务C2DM (Cloud to Device Messaging,云端消息推送服务)在国内有诸多使用限制,本文旨在搭建一个面向Android移动操作系统的稳定、易拓展的推送服务平台,为公司的各业务系统提供消息推送服务。在云推送服务的构建过程中,首先,笔者参与了消息推送方案和推送平台总体的设计工作。其次,笔者独立完成了推送需求的收集、分析和推送管理控制台的原型界面设计;在设计与实现阶段,笔者独立完成了用户设备管理模块、APP管理模块、客户端连接管理模块、消息推送管理模块、服务监控模块的设计与开发,并参与完成了数据库设计和客户端SDK的设计与开发。在测试阶段,笔者独立完成了系统的功能测试和所有模块的单元测试。本文所设计的基于MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议的推送方案以服务的方式提供消息推送功能,同一个设备上的移动应用共享一个长连接,这样可以有效节省手机资源以及服务器连接数。用户设备管理模块负责管理设备相关的信息,维护设备与应用、设备与用户的关系。客户端连接管理模块是推送服务的基础模块,长连接的维护对服务器在高并发连接的处理能力和性能上有很高的要求,因此该模块采用了基于NIO (Non-Blocking IO,非阻塞I0)和Reactor模式的网络服务器设计,并实现了异步消息推送机制,确保本文的推送服务具有较高的性能。消息推送管理模块包括消息推送和推送统计功能,服务监控模块提供系统关键接口、服务器、消息队列的状态监控。目前,该推送服务处于试运行阶段,笔者所负责的模块功能稳定、运行正常,达到了预期目标。