Linux即时通讯软件设计与实现文献综述
2020-04-12 16:24:40
即时通讯(Instant messaging,简称IM)是一个终端服务,允许两人或多人使用网路,能够即时的传递文字讯息、档案、语音以及进行视频交流。即时通讯按使用用途分为企业即时通讯和网站即时通讯,根据装载的对象又可分为手机即时通讯和PC即时通讯。手机即时通讯代表是短信,网站、视频即时通讯如:米聊、YY语音、QQ、微信、百度hi、新浪UC、阿里旺旺、网易泡泡、网易CC、比邻、盛大ET、移动飞信、企业飞信等应用形式。
现如今即时通讯业务呈现蓬勃发展之势,其中最为流行的QQ 已经是家喻户晓了。但是在公司内网使用的即时通讯软件相对来说还比较少,使用QQ作为公司通讯手段未尝不可,但由于通讯过程需要经过公网,具有一定的不稳定、不安全的因素。因此,人们致力于架设出一种集多种功能于一体的即时通讯系统, 通过架设的系统,可以满足公司内部人员多方面交流的需要,使大中型企业的员工能够顺利、即时的进行在线交流及发送各种通知、邮件,并进行文件的共享,从而更好、更顺利、高效地工作。 而且这套系统是在公司内部的服务器中运行的,所有资料都是保存在自己公司内部的服务器中,因此不但方便查找及管理,而且对公司内部资料也有很好的安全保密作用。基于Linux的IM在这种迫切的市场需求下应运而生。
本次毕业设计旨在实现一个基于Linux系统的C/S架构的IM产品。开发拟采用C/C 语言技术,基于GTK 库,使用Glade 3.0图形开发工具以及MySQL作为开发环境。为满足较好的人机交互,提高系统的工作效率,拟采用MVC设计模式,重点使用套接字(Socket)、多线程技术以及XMPP协议实现一个类似QQ的企业内部通讯系统。
以下是相关概念以及软件的简介:
1.Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
2.GTK(GIMP Toolkit)是一套跨多种平台的图形工具包,按LGPL许可协议发布的。虽然最初是为GIMP写的,但目前已发展为一个功能强大、设计灵活的一个通用图形库。特别是被GNOME选中使得GTK 广为流传,成为Linux下开发图形界面的应用程序的主流开发工具之一,当然GTK 并不要求必须在Linux上,事实上,目前GTK 已经有了成功的windows版本。GTK虽然是用C语言写的,但是您可以使用你熟悉的语言了使用GTK,因为GTK 已经被绑定到几乎所有流行的语言上,如:C , Guile, Perl, Python, TOM, Ada95, Objective C, Free Pascal, and Eiffel。
3.MySQL是一个完全多线程,支持多语言,多处理器的中、小型关系型数据库管理系统,它使用标准的SQL语言(结构化查询语言),支持多种存储引擎。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。另外,它体积小,拥有总体成本低等优点。
4.Glade是一个相当不错的图形界面设计工具,使用Glade可以使得基于GTK Toolkit及GNOME桌面环境的UI开发变得更加快速和便捷。用Glade设计的用户界面(User Interface)是以XML格式的文件保存的,它们可以通过GTK 对象GtkBuilder被应用程序动态地载入。通过GtkBuilder,Glade XML文件可以被许多编程语言使用,包括:C、C 、C#、Vala、Java、Perl、Python,等等。而且,Glade是在GNU GPL许可证(GNU GPL License)下的免费软件。
5.Socket通常也称作"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。以J2SDK-1.3为例,Socket和ServerSocket类库位于java .net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
6.XMPP协议的英文全称是:Extensible Messaging and Presence Protocol,翻译成中文就是:可扩展通讯和表示协议。该协议是基于可扩展标记语言(XML)的,在常用开放协议Jabber的基础上发展而来。XMPP定义了客户端、服务器和网关三大主体,XMPP发展到现在,基于XMPP的通讯几乎能够在上述任意两个主体间进行,即使不同的通讯系统也依然可以通讯,这使得XMPP得到广泛的运用。