论文部分内容阅读
随着移动网络与移动设备的快速发展,原本在PC端深受用户青睐的即时通信(Instant Message,IM)应用也开始向移动端发力。近年来移动端的IM应用软件百花齐放,虽然市场看似繁荣,但背后更多的是商业竞争。因此,IM应用产品所属的公司不同,所采用的的通信协议也就不一样,大部分公司采用的都是公司内自己定制的通信协议,那么不同公司的IM应用是不能相互通信的。这就造成了用户可能要在移动端安装多个IM应用才能满足不同的需求。而XMPP协议则解决了在异构系统之间通信的问题,它允许使用XMPP协议的不同客户端用户互加好友通信,这也是它能够成为主流的通信协议的原因之一。另外,XMPP是基于XML的协议,它本身所具有的灵活性、开源性和可扩展性也使它很适合用于移动端IM应用的开发。XMPP协议原本是为PC端设计的,所以在用于移动端时出现了一些缺陷,主要表现在如下几方面。移动设备的电池存储电量一般不大,而XMPP协议又是一个比较耗电的协议,需要通过对协议的耗电方面进行研究并优化改进,达到节省电量的目的。另外,移动网络存在不稳定性,特别是在弱网络环境下,XMPP协议以原有的扩展协议中的消息确认的方式不能够完全保证消息送达接收端,并且原有确认方式效率低下,即在弱网络环境下,这种方式是不完全合适的,需要通过研究对弱网络环境下消息确认方式加以优化改进。本课题针对上述问题,对XMPP协议进行分析研究,并提出解决方案。针对协议的耗电问题,通过研究分析发现,协议耗电的很大原因是客户端频繁的更新好友出席状态信息,致使移动设备长期处于活跃状态,而不能快速进入沉默状态。对于发现的问题,本文提出了场景适应耗电控制机制。将IM应用的使用情况分为三个场景,每个场景采用不同的出席状态信息更新策略,同时在客户端与服务器之间增加代理服务器,对出席状态信息进行缓存,对于缓存时间,是通过建模的方式得到缓存时间与节省电量之间的关系。而对于场景识别也进行了相应的研究,场景切换后就向服务器发送对应场景的标志位,以策应更换更新策略,达到省电的目的。针对消息确认问题,通过研究分析发现,XMPP协议中原有的消息确认机制采用发送一条消息进行一次确认的方式,这种方式在弱网络环境下效率很低,而且容易造成浪费信道资源,网络堵塞等。本文通过研究,提出基于分组的消息回执确认机制,在原有的消息节中增加相应属性,对消息进行编号,设计重传算法,通过批次确认的方式改善上述提到的问题。并对所提方案的消息发送、消息确认和消息超时与重传部分分别作了研究分析,以达到提高效率的目的。为了验证上述研究的可行性,本文设计并实现了基于优化后XMPP协议的在线客服系统。该系统能够实现客户与客服的信息交互、信息推送及商品浏览等功能,论文从客户端、服务器、数据库以及上述研究点等方面进行了详细设计与实现。最后设计了详细的实验方案,对在线客服系统的性能以及优化后的XMPP协议结果进行分析。系统运行及实验结果表明,在线客服系统功能得以实现,优化后的XMPP协议在电量控制及消息确认方面性能明显改善,课题取得了预期的效果。