论文部分内容阅读
即时通讯的出现丰富了人们的日常生活与工作,它满足了人们随时随地沟通的需求。随着智能设备的普及,移动即时通讯应用的用户量迎来了大爆发。移动即时通讯应用在得到广泛应用的同时也存在着不少的挑战,主要表现在两个方面:一方面是传统的即时通讯协议在设计之初并没有考虑移动设备的特性,移动设备种类繁多、处理能力参差不齐、续航时间较短、联网资费昂贵等,这些协议在移动应用中表现并不理想;另一方面是移动即时通讯应用的开发过程中存在着诸多的难点,保证通讯环境的稳定、消息有序达到、消息的即时性、消息并发处理等,这些难点的存在使得开发人员无法将主要精力放在业务逻辑开发上,从而增加了开发成本,降低了开发效率。本文基于上述挑战出发,设计了一个针对移动设备的即时通讯协议用于降低通信过程中的电量和流量消耗;另外设计并实现一个即时通讯服务端框架,可有效降低应用的开发难度。论文首先研究了传统的即时通讯协议与技术,对各类通讯技术进行了对比,并指出了协议在移动即时通讯中存在的问题。其次,重点研究了基于发布/订阅模式的MQTT协议,分析得出该协议适用于移动设备环境。再次,基于MQTT协议设计了针对移动设备的即时通讯协议MQTT-IM,并使用Protobuf作为数据交换优化技术对其协议报文进行编码,进一步降低数据传输中的报文大小。然后,通过分析常用的即时通讯应用,识别出即时通讯核心业务流程,并给出了相应的用例图;接下来采用面向对象设计的方法,给出了即时通讯服务端框架的整体架构设计,从上至下分为业务逻辑层、职责链层、通信调度层;之后介绍了服务端框架各个组件的接口设计及各组件间的调用关系;服务端框架主要介绍了主题订阅、即时消息通讯、出席信息呈现等核心功能的实现过程,并对报文编解码方式的选择、负责报文处理的责任链、业务处理方法的选择、数据库实现的选择等四个可变点的实现进行了详细的描述,这些可变点的存在是框架良好的扩展性和易用性的重要保障。最后,采用本文设计的即时通讯服务端框架实现了一个应用案例,通过对应用案例的测试,给出了客户端在电量和流量方面的使用情况,验证了框架及协议的节能优势。