论文部分内容阅读
随着信息技术和网络通信技术的发展,即时通信系统的应用得到了飞速的发展,各种即时通信产品层出不穷,比较典型的有QQ、MSN、GTALK等,它们的出现使得在以网络为载体的新世纪出现了一种全新的交流方式,极大地提高了人们交流的效率,同时降低了交流的成本。但是,当今的各个即时通信系统采用了各自不同的协议,使不同系统用户之间无法交流,XMPP(Extensible Messaging and Presence Protocol,可扩展消息和出席信息协议)的出现解决了这一难题。本文研究了XMPP协议的技术及其体系结构,深入探讨了XMPP协议的地址空间、数据的传输结构、以及通信链路的建立过程等。通过对比各种传统的即时通信系统,分析了XMPP协议的优势。XMPP是一个由开源组织制定的、基于XML语言的协议,其开放特性使开发者之间能够互相竞争,促进了即时通信领域技术的进步与发展,同时改变了以往的即时通信系统之间无法互联的状况。基于XMPP协议的系统支持分布式的结构和模块化的系统架构,因此,易于对系统的功能进行扩展。正是具有以上优点,基于XMPP协议的即时通信系统成为网络信息化进程中必不可少的一部分。通过对XMPP协议的深入研究和即时通信系统的特点深入分析,本文设计与实现了基于XMPP协议的即时通信系统。该即时通信系统的开发以开源软件系统Ejabberd为服务器,并采用Gloox库作为客户端软件开发的基础。Ejabberd是基于XMPP协议的即时通信服务器,采用Erlang/OTP开发,其特点是跨平台、容错、集群和模块化。它是目前可扩展性最好的一种XMPP服务器,支持分布式服务器,具有容错处理能力。Gloox是使用C++编写的跨平台的XMPP协议客户端基础库,提供了完善的XMPP协议的底层通信支持,封装了XMPP核心协议所规定的大部分XMPP通信规范,使开发者不用再纠缠于底层通信的细节。本文设计的即时通信系统基于模块化的思想,便于功能的扩展和二次开发。该系统采用XML语言作为网络数据传输语言,从而使客户端摆脱了语言的束缚,实现了客户端的多元化。在基于XMPP协议的XML节传输技术基础上实现了即时通信的消息收发、名册管理、出席信息的交换等基本功能的基础上,并模拟了与其他即时通信系统进行交互的过程。通过系统测试表明本文设计与实现的基本系统功能完整、稳定,界面友好简洁,满足即时通信系统的基本功能和需求,并基于XMPP协议验证了与其他即时通信系统互联互通的功能。