论文部分内容阅读
自从1996年世界上第一款即时通讯软件ICQ问世以来,即时通讯软件已经在世界范围内得到了普及,在我国更是成为了互联网的第一大应用。经过了十几年的发展,虽然各种即时通讯软件的市场占有率不相同,但是在功能和使用方法方面却趋于相同,人们也逐渐养成了相似的使用习惯。本文描述了一款适合在企业中使用的即时通讯软件的开发过程,这款软件的功能除了提供即时消息的收发、图像和文件的传输、消息到达提醒、用户状态提醒、离线消息、自定义用户头像等常用的即时通讯软件的基本功能之外,还可以通过编写扩展模块的方式对功能进行扩展,例如对即时消息的内容进行过滤、将即时消息发送到用户手机、与企业的办公自动化系统进行整合从而将办公自动化系统发送的特定消息发送到即时通讯系统等功能。这款即时通讯软件分为客户端和服务器两部分,使用C++语言进行编写,系统结构以C/S结构为主,P2P结构为辅,其中P2P结构仅用于客户端之间传输文件等二进制数据。服务器端使用了Linux的epoll多路复用I/模型进行开发,运行于Linux系统平台;客户端使用Visual C-+进行开发,运行于Windows平台。服务器和客户端之间使用TCP协议进行通讯,客户端之间使用TCP协议以及专门为这套系统开发的私有协议RUTP进行通讯,客户端和服务器之间使用消息交换数据。服务器端使用数据库保存用户数据,默认使用MySql数据库管理系统,服务器端编写了一个标准的访问数据库的基类,通过使用面向对象的继承性和多态性机制,实现了对不同类型的数据库的支持。本文总共分为七章:第一章对项目背景以及目的和意义进行描述;第二章进行技术分析,重点对epoll I/O机制的工作原理和性能进行了描述;还对系统设计所使用到的重要技术,包括通讯协议、套接字编程、加密等技术进行了简单的描述;第三章描述的是需求分析,主要包括功能性需求分析、非功能性需求分析以及根据系统的功能进行了模块的划分。第四章描述了系统设计的过程,主要工作是使用UML对系统进行建模,包括建立用例模型,绘制出用例图;建立静态模型,绘制出类图;建立动态模型,绘制出时序图、状态图和活动图;绘制出部署图;最后还对数据库进行建模,根据功能建立表的结构并且画出E-R图。第五章是系统实现,分别对主服务器、数据流传输服务器和客户端的实现过程进行了描述,画出重要模块的流程图并且给出了一些重要的实现代码。第六章是系统测试,从功能、性能、易用性、可靠性、兼容性以及安全性等方面对系统进行测试,最后给出了测试结果。在第七章对本文进行总结和展望,描述了系统某些在功能上需要完善的地方以及将来的可能的发展方向。