您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 基于linux的跨平台即时通讯系统
中文题目:基于linux的跨平台即时通讯系统(系统实现部分)英文题目:Linux-basedcross-platforminstantmessagingsystem(SystemImplementation)目录1环境...................................................41.1.XMPP..............................................41.2Ubuntu(服务器系统)..............................61.3Openfire(服务器)................................71.4Spark(客户端)...................................71.5Mysql(数据库)...................................71.6Apache(web服务器)...............................91.7Java(运行环境).................................102系统实现..............................................102.1操作系统安装.....................................102.2Java环境安装.....................................132.3Openfire安装.....................................142.4Mysql安装........................................142.5Apache安装.......................................152.6PHP安装..........................................162.7全局配置.........................................163结束语................................................264致谢..................................................275.参考文献..............................................27摘要当前即时通讯业务正在不断兴起,QQ的使用已经是相当普遍了。但是在公司内网使用的即时通讯工具软件相对来说还比较少。使用QQ作为通讯公司手段未尝不可,但是因为过程需要经过公网,所以带有一定的不稳定因素。其实,在linux系统下已经有了一套相对成熟的即时通讯系统实现方案,并且具有开源免费及跨平台(Windows,Linux,MacOS)。所以,在公司内部安装和使用即时通讯软件工具非常有利于提高公司的工作效率,因此,我们致力于够架设出一种集多种功能于一体的应用系统。通过我们架设的应用系统,可以满足公司内部人员多方面交流的需要,使大中型企业的员工能够顺利、即时的进行即时在线交流及发送各种通知、邮件,并进行文件的共享,从而更好、更顺利、高效地工作。由于我们这套系统是在公司内部的服务器中运行的,因此,所有资料都是保存在自己公司内部的服务器中,不但方便查找及管理,而且对公司内部资料也有很好的安全保密作用。关键词:Linux;跨平台;局域网,即时通讯系统实现1环境1.1.XMPP历史XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分;核心的XML流传输协议基于XML流传输的即时通讯扩展应用XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。XMPP的扩展协议Jingle使得其支持语音和视频。Q等有功能完整,完善等先进性。XMPP的扩展协议Jingle使得其支持语音和视频。基本网络结构XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。如下图,Jabber网络由若干个服务器组成[2],每个服务器可以给众多客户端提供服务,服务器之间通过Internet相互连接。该网络中还存在一个网关服务器,负责协议的转换,以和其他的即时消息系统进行互联。功能传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行苻的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,也方便了开发和查错。而XMPP的核心部分就是一个在网络上分片断发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。所以可以说,XMPP用TCP传的是XML流。1.2Ubuntu(服务器系统)Ubuntu是2004年9月首次公布的。虽然相对来说Ubuntu是发行较晚的Linux发行版,该项目没有其他linux发行版本早,但是其邮件列表很快被用户的渴望和热情的开发者讨论所填满。在随后几年中,Ubuntu成长为最流行的桌面Linux发行版,它朝着发展一种“易用和免费”的桌面操作系统做出了极大的努力和贡献,能够与市场上任何一款个人操作系统相竞争。是什么因素使得Ubuntu取得如此巨大的成功呢?首先,该项目是由MarkShuttleworth,一位充满魅力的南非富翁,Debian的开发者和前世界第二太空游客所创建(他创建的的IsleofMan-basedCanonicalLtd公司目前仍然是一个商业项目)。其次,Ubuntu从一开始就从其他类似Linux发行计划的失败中吸取教训并避免重蹈他们的错误,—它创造了一个优秀的以网络为基础的Wiki风格的文档,用专业的方法为最终用户创建了错误报告反馈机制。第三,得益于其富裕的创始人,Ubuntu能够给所有互联网上感兴趣的用户发放免费CD,从而促进了Ubuntu发行版的迅速扩大。在技术方面,Ubuntu是基于Debian的发行版,包含一些著名的软件包,如GNOME,Firefox和OpenOffice.org其最新版本的更新。它有一个可预测的每6个月发布的时间表,有时发布有长期技术支持的LTS版,一般为3–5年的安全更新支持,这取决于版本(非LTS版的技术支持期为18个月)的支持。Ubuntu的其他特殊功能还包括一个可安装的liveCD,美术创作和桌面主题,Windows用户迁移助手,支持最新新的技术,如3D桌面效果,易于安装的ATi和NVIDIA显卡驱动以及无线设备驱动的支持等,并按需支持非免费或专利授权的媒体编解码器。主页:来源:马恩岛(位于英格兰岛和爱尔兰岛之间)IsleofMan桌面:GNOME类型:Beginners,Desktop,Server,LiveMedium,Netbooks处理器架构:i386,powerpc,sparc64,x86_64基于何种发行:Debian优点:固定的发布周期和支持期限;易于初学者学习;丰富的文档,包括官方和用户贡献的。缺点:缺乏与Debian的兼容性软件包管理:高级包管理工具(APT)的使用deb包这里我采用的是UbuntuServer9.101.3Openfire(服务器)Openfire(原来的Wildfire)是一个跨平台(支持WINDOWS、LINUX、MAC平台),采用Java开发,一个在开源GPL和商业双许可的实时协作(RTC)服务器基于XMPP(Jabber)协议。Openfire安装和使用都非常简单,并利用Web进行管理,而且还有非常高的安全性和性能。单台服务器可支持上万并发用户。同时通过插件,可以在客户端登录MSN,Yahoo,ICQ等即时通讯平台。这里我们使用的版本是Openfire3.5.1,linux版本1.4Spark(客户端)Spark是一个开放源码,跨平台专为企业和组织等客户的优化的IM客户端软件。它的特性支持集组聊天,电话集成的功能和强大的安全性。它还提供了整个卓越的终端用户体验的功能,如在线拼写校验,聊天室标签、交谈记录等。由于业界上有所共识,如果企业内部部署IM使用Openfire+Spark是最佳的组合,于是我决定采用Spark作为客户端。这里我使用的版本是Spark2.5.8,Windows版本1.5Mysql(数据库)简介MySQL图标MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。这导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。MySQL这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的MontyWidenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。MySQL的概述MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的官方网站的网址是:编写,并使用了多种编译器进行测试,保证源代码的可移植性2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4.支持多线程,充分利用CPU资源5.优化的SQL查询算法,有效地提高查询速度6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、
本文标题:基于linux的跨平台即时通讯系统
链接地址:https://www.777doc.com/doc-4920542 .html