(电路与系统专业论文)基于XMPP协议的即时通讯系统的研究[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)基于XMPP协议的即时通讯系统的研究[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)基于XMPP协议的即时通讯系统的研究[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)基于XMPP协议的即时通讯系统的研究[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)基于XMPP协议的即时通讯系统的研究[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩86页未读 继续免费阅读

(电路与系统专业论文)基于XMPP协议的即时通讯系统的研究[电路与系统专业优秀论文].pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 基于x m p p 协议的即时通讯系统的研究 专业:电路与系统专业作者:招俏春指导老师:李榕 随着互联网的普及和发展,即时通讯已经成为人们交流的重要手段。目前有许多的 i m 系统,如a o li m 、y a k o oi m 和m s ni m ,它们使用了不同的技术,而且它们互不兼容。 x m p p j a b b e r 的提出打破了传统即时通信系统之间无法实现互联互通的局面。x m p p 对于 即时通信是一个开放的基于x m l 的数据模型和协议,采用了分布式的网络体系机构,模 块化可扩展的系统架构,使得扩展它的功能变得简单。 本设计利用j a b b e r x m p p 的体系结构,构建了一个基于x m p p 协议的即时通信系统, 包括即时通信系统的客户端和服务器。其中服务器采用开源的j a b b e r 服务器o p e n f i r e , 客户端基于x m p p 核心及扩展协议利用g o o g et a l k 的开发包1 i b j i n g l e 进行研究开发。 设计了一个与o p e n f i r e 互联通信的客户端系统,实现与客户音的文字、语音、视频、 文件及实时数据通信功能;研究了x m p p 协议及其在协同通讯领域的应用。 本文介绍了即时通讯的现状、发展趋势,分析了客户端软件的开发环境和所要用到 的几个相关技术。在此基础上设计出基于x m p p 协议的能与j a b b e r 服务器o p e n f i r e 实 现互通的客户端软件的总体架构和基本模型,并对即时通讯客户端的具体设计进行了全 方位的阐述:在x m p p 流通信基础上的文字通信及扩展的群组通讯;基于j e p 扩展协议 j i n g l e 协议完善了系统功能,进行了客户问的p 2 p ( p e e r - t o p e e r ,点对点) 连接扩展, 从而实现了可靠的实时语音视频、文件、实时数据等p 2 p 通信。另外还对客户端设计中 的几个关键问题,网络安全机制和带n a t 的防火墙穿越等方面的进行了较为深入的研究, 并论述了本系统所采用的方案。最后总结了本设计的工作与成果,并提出下一阶段的研 究设想。 关键词:j a b b e r ,x m p p ,即时通讯,p 2 p ,n a t a b s t r a c t r e s e a r c h0 fln s t a n tm e s s a gin gs y s t e m b a s e do nx m p pp r o t o c o l m a j o r :c i r c u i ta n ds y s t e mn a m e :q i a o c h u nz h a os u p e r v i s o r :r o n gl i a st h en e t w o r kt e c h n o l o g yb l o o m s ,i n s t a n tm e s s a g i n g ( i m ) h a sa l r e a d yb e c o m ea n i m p o r t a n tw a y f o rp e o p l et oe x c h a n g ei n f o r m a t i o n t h e r ea r em a n yi ms y s t e m ss u c ha sa o l m ,y a h o oi ma n dm s ni m ,t h e yu s ed i f f e r e n tt e c h n o l o g i e sa n dt h e ya r en o tc o m p a t i b l e x m p p j a b b e rp r o t o c o lb r e a k st h es i t u a t i o nt h a tt r a d i t i o n a li n s t a n tm e s s a g i n gs y s t e m sc a n t i n t e r o p e r a t ew i t he a c ho t h e r x m p pf o ri n s t a n tm e s s a g i n gi sa no p e nd a t am o d e la n dx m l b a s e dp r o t o c 0 1 i th a s d i s t r i b u t e dn e t w o r ka r c h i t e c t u r ea n de x t e n s i b l ef r a m e w o r k t h e s ec h a r a c t e r i s t i c so fx m p p p r o t o c o lm a k ea d d i n gn e wf u n c t i o n sm o r ee a s i l y t h i sd e s i g nb u i l d sa ni n s t a n tm e s s a g i n gs y s t e mi n c l u d i n gt h es e r v e ra n dc l i e n tb a s e do n x m p p p r o t o c 0 1 u s i n gt h ej a b b e r x m p ps y s t e ma r c h i t e c t u r e i tu s e st h eo p e n s o u r c ej a b b e r s e r v e ro p e n f i r ef o rt h es e r v e r , r e s e a r c h e sa n dd e v e l o p st h ec l i e n ts y s t e mb a s e do nt h ex m p p c o r ea n dt h ee x t e n s i v ep r o t o c 0 1 u s i n gg o o g l e t a lk t sd e v e l o p e dp a c k a g el i b ji n g l e t h i sc l i e n t c a nc o n n e c tt oo p e n f i r e ,a n dc o m m u n i c a t e sw i t ho t h e r si nt e x t ,a n d j o ,v i d e o ,f i l ea n do t h e r r e a lt i m ed a t a i td o e sd o m er e s e a r c ho nx m p p p r o t o c o la n di t sa p p l i c a t i o nc o c o m m u n i c a t i o n a r e a t h i sp a p e ri n t r o d u c e st h es t a t u sq u oa n dl a t e s td e v e l o p m e n to fi n s t a n t m e s s a g i n g , a n a l y s e st h ed e v e l o p i n ge n v i r o n m e n ta n dr e l a t e dt e c h n o l o g i e s i td e s c r i b e st h ef r a m e w o r k d e s i g na n dt h ep a r t i t i o no ft h ef u n c t i o nm o d u l e so ft h i ss y s t e m t h e nb a s e do nt h i s ,t h et h e s i s e x p l a i n st h ef u n c t i o nm o d u l e si nd e t a i l ,i n c l u d i n gt h a t ,t h et e x tc o m m u n i c a t i o nb a s e do nt h e x m p ps t a n z ac o m m u n i c a t i o n ,a n dt h ee x t e n s i v eg r o u pt a l k ;t h ep e r f e c t i o no ft h es y s t e m , c o m p l e t i n gt h ep 2 p ( p e e r - t o p e e r ) e x t e n s i o nb a s e do nt h ej i n g l ej e pp r o t o c o l s ,r e a l i z i n gt h e r e l i a b l ep 2 pc o m m u n i c a t i o no fr e a l t i m ea u d i o ,v i d e o ,f i l ea n do t h e rd a t a i na d d i t i o n ,t h i s t h e s i sg i v e st h es o l u t i o n so fs e v e r a lm o s ti m p o r t a n ti s s u e s ,r e g a r d i n gt h es e c u r i t ym e c h a n i s m , i tu s e st l sa n ds a s lp r o t o c o lt og u a r a n t e et h es e c u r i t yo ft h i ss y s t e m ;t od e a lw i t ht h e p r o b l e m si nn a it r a v e r s a l t h i st h e s i sd o c u m e n t sa n dr e s e a r c h e ss o m en a tt r a v e r s a l t e c h n i q u e sa n di n t r o d u c e sas i m p l e s tb u tm o s tr o b u s ta n dp r a c t i c a lt e c h n i q u e f i n a l l y , i tg i v e s ac o n c l u s i o no ft h i st h e s i sa n dp u r p o s e st h en e x ts t a g et a s k s k e yw o r d :j a b b e r , x m p p , i n s t a n tm e s s a g i n g ,p 2 p , n a t i i i 华南师范大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 每 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文 的研究做出重要贡献的个人和集体,均已在文中以明确的方式标明。 本人完全意识到此声明的法律结果由本人承担。 论文作者签名: 赤浠杀 日期:跏g 年,月嬲日 学位论文使用授权声明 本人完全了解华南师范大学有关收集、保留和使用学位论文的规 定,即:研究生在校攻读学位期间论文工作的知识产权单位属华南师 范大学。学校有权保留并向国家主管部门或其指定机构送交论文的电 子版和纸质版,允许学位论文被检索、查阅和借阅。学校可以公布学 位论文的全部或部分内容,可以允许采用影印、缩印、数字化或其他 复制手段保存、汇编学位论文。( 保密的论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密范围,在年后解密适用 本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授权 书。 论文作者签名: 日期:趴牌 袁附茅 d - 月越日 导师签名:一 日期:啡j 一月坊日 基于x m p p 协议的即时通讯系统的研究 1 1 即时通信研究背景 第一章绪言 1 1 1 即时通信简介 即时通讯( i n s t a n tm e s s a g i n g ,简称i m ) 是一个终端服务,允许两人或多人使用网 络即时地传递文字信息、文件、语音与视频交流。它是一种使人们能在网上识别在线用 户并与他们实时交换消息的技术。即时通讯被认为比电子邮件更具有自发性,甚至能在 进行实时文本对话的同时浏览网上信息。作为使用频率最高的网络软件,即时通讯已被 认为是现代交流方式的新象征。 为了解决即时通讯的标准问题,i e t f ( i n t e r n e t 工程任务组) 成立了专门的工作小 组,研究和开发与即时通讯相关的协议。目前即时通讯主要有四种协议:即时信息和空 间协议( i m p p ) 、空间和即时信息协议( p r i m ) 、针对即时通讯和空间平衡扩充的进程开始 j 协议s i p ( s i m p l e ) 以及可扩展的即时通讯和出席协议( x m p p ) 。 p r i m 与x m p p 、s i m p l e 类似,但已经不再使用。 o i m p p 协议主要定义必要的协议和数据格式,用来构建一个具有空间接收、发布能力 的即时通讯系统。到目前为止,已经出版了三个草案r f c ,但主要的有两个:一个是针 对站点空间和即时通讯模型的r f c 2 7 7 8 ,一个资料性质的草案,定义了所有p r e s e n c e 和i m 服务的原理;另一个是针对即时通讯空问协议需求条件的r f c 2 7 7 9 ,定义了i m p p 的最小需求条件,还就p r e s e n c e 服务定义了一些条款,如运行的命令、信息的格式以 及p r e s e n c e 服务器如何把p r e s e n c e 的状态变化通知给客户。 s i m p l e 是目前为止制定的较为完善的一个协议。s i m p l e 和x m p p 都符合r f c 2 7 7 8 和 r f c 2 7 7 9 。s i m p l e 计划利用s i p 来发送p r e s e n c e 信息。s i p 是i e t f 中为终端制定的协 议,一般用在建立语音通话中。一旦建立连接,就可以依靠实时协议( r t p ) 来进行实际 上的语音发送。但s i m p l e 不仅仅能被用在语音中,也可以用于视频。s i m p l e 被定义为 建立一个即时通讯进程的方法。 x m p p 是一种基于x m l 的协议,它继承了x m l 在环境中的灵活发展性。可以通过发送 挂十x m p p 协议的即时通讯系统的研究 扩展的信息来处理用户的需求,以及在x m p p 的顶端建立如内容发布系统和基于地址的 服务等应用程序。而且,x m p p 包含了针对服务器端的软件协议,使之能与另一个系统进 行通话,这使得开发者更容易建立客户端应用程序或给一个配好的系统添加功能。 x m p p 目前在免费源代码开放j a b b e r 即时通讯系统中被广泛采用。x m p p 拥有数以千 计的j a b b e r 开发者,以及大约数万台配置的服务器和超过百万的终端用户。在x m p p 能 够成为统一标准前,还需要努力克服它本身的缺点。对于网络协同工作者而言,需要加 强安全性和互连性。 1 1 2 即时通信发展现状 在即时通讯行业中,即使不把企业产品考虑在内,各个国家的公用即时通讯产品也 有数十种,这些产品可能又有不同语言的版本,并且还可能提供在不同操作系统上运行 的版本,而同一个产品的不同语言、不同操作系统的版本之问,功能又不完全一样,因 此按照此方法来列举即时通讯产品,可能达千种以上。为了方便起见,可以将这些产品 按照运营商和规模大小来区分,这样可以把范围缩d , n 五到六个最主要的i m 产品。在 美国的a i m 、i c q 、m s nm e s s e n g e r 和y a h o om e s s e n g e r ;还有中国的q q 和欧洲的s k y p e 。 这六个产品中除了s k y p e 之外,其余五个产品的运营商都是公开上市的公司,分别为: a o l ( 美国在线) 同时拥有a i m 和i c q ,2 0 0 3 年以后,a i m 用户和i c o 用户之间实现了互联 互通;微软公司,是m s nm e s s e n g e r 的运营商;y a h o o 公司,是y a h o om e s s e n g e r 的运 营商;腾讯公司,是q q 的运营商。 除了以上六个产品之外,2 0 0 5 年互联网巨孽g o o g l e 公司新推出的即时通讯产品: g o o g l et a l k ,在业界也产生了不小的影响。关于全球互联网上即时通讯市场的容量, 一般用注册用户数来度量,根据国外著名的互联网市场研究公司r a d i c a t i g r o u p 公布的 预测报告,从2 0 0 3 年到2 0 0 8 年的i m 注册用户数量番了三番: 2 0 0 6 年1 2 月1 9 日,中国互联网络信息中心( c n n i c ) 发布2 0 0 6 年中国即时通信市 场调查报告热点数据1 1 0 1 。该报告通过对北京、上海、广州、武汉、成都、西安六城 市的电话抽样调查,对即时通信这一市场的发展现状、社会影响、存在问题进行了深入 分析。c n n i c 调查显示,六城市的即时通信市场,q q 以5 5 9 5 的比例占据垄断地位,位 居第二位的m s n 市场份额占1 7 8 1 。 1 1 3 即时通信发展趋势 近年来公共互联网上的即时通讯发展迅猛,并向着未来通信和协作的主要模式演化。 2 基于x m p p 协议的即时通讯系统的研究 这种演化主要表现为:从文本向话音、视频和多媒体演化;从固定网络向无线移动演化; 从个人通信向企业即时通信和协作演化;体系结构方面从集中服务器向对等连接p 2 p 演 化;从专门系统向开放系统演化,推动实现不同系统的互通。总体看,是从即时通讯向 新一代统一消息演化。 随着互联网带宽的增加,性能的改善和信号处理技术的提高,即时通讯开始支持语 音、视频和多媒体业务,并且其性能在不断提高,质量已经达到了用户可以接受的水平。 如采用g i p s 语音库的s k y p e 和g o o g l et a l k 等软件所提供的基于即时通信的互联网电 话业务,其话音质量已经超过了普通电话。这些都为即时通讯向统一消息演化提供了技 术基础。 早期的即时通讯系统,是通过即时通讯服务器实现信息交换,但采用集中服务器交 换信息,不仅增加成本,浪费资源而且不安全。目前即时通讯系统已经向对等连接模式 p 2 p 演化。与此同时消息格式使用x m l ,具有有效的出席管理,可以提供异步、并行、 可靠和近似实时通信。它支持移动出席管理和移动即时通讯。使用i e t f ( i n t e r n e t 工程 任务组) 标准保证互通互用。 目前阻碍即时通讯发展的主要障碍是标准和协议的不统一,妨碍了不同系统之间的 互通和互操作。目前i e t f f 正在发展即时通讯和检测出席的标准x m p p ( 可扩展的即时通 讯和出席协议) ,己经取得了显著的进展。 对于未来即时通讯和实时协作,不同的厂商有不同的观点。a o l 认为下一代即时通 讯和相关服务将源自一个无所不在的网络平台,a o l 将提供这种智能网络;而微软则认 为,最主要的发展将围绕终端用户特别是基于p c 的综合通信发生,办公室通信业务将 包含电话、即时通讯、文件共享、视频和w e b 会议等的协同工作,为此微软将提供具有 话音,屏幕和计算能力的基于s i p 的办公室通信服务器;s u n 主张下一代通信系统的根 是门户、出席和身份,企业w e b 门户将负责确认出席和身份管理,以保证协同工作的安 全性。实际上它们是各自根据自己的所长提出了问题的一个侧面,而未来的即时消息和 实时协作将是上述各种技术的综合。 总体来说,未来即时通讯是向新一代统一消息演化。它将充分利用互联网协议基层 设施来降低通信成本提高生产力,将具有源自即时通讯的概念,如出席等,即时通信的 好友列表和出席消息可以统一各种通信服务;基本思想是采用通信管理来取代一般的可 管理的通信,用户到达一个地方时消息也跟到那里,可以使用户尽快得到信息,尽快做 基于x m p p 协议的即时通讯系统的研究 出响应。即时通讯将成为未来通信和实时协作的主流模式,从建立新的人际关系到提高 工作效率都将发挥巨大的作用。 1 2 选题来源 本课题来源于本人参加的南方医科大学网络中心做的一个网络医疗影像系统,这个 系统利用了一个通用的网络即时通信平台做为其应用系统p a c s 的通讯平台。 本设计主要针对其底层的即时通信平台来对x m p p j a b b e r 协议进行了研究,实现和 扩展。 1 3 课题意义及工作内容 随着i n t e m e t 的迅猛发展,移动的即时通讯服务会是一大热点。它的主要好处是使 访问即时通讯服务变得更加普遍,让用户在任何时候都能够交互及时消息和保存即时信 息,而不需要受空间上的限制。 当前阻碍即时通讯服务发展的最大瓶颈不是互联互通,而是不开放源代码。向统一 标准发展必然是即时通信的发展趋势,目前己形成基于s i p 的s i m p l e 和基于开放源码 的x m p p 两大阵营,最近传来消息,x m p p 已被确立为i e t f 标准不少人认为即时通 讯领域必将最终由x m p p 协议一统天下。本方研究设计了一个基于x m p p j a b b e r 协议 架构的能与开源j a b b e r 服务器o p e n f i r e 互联通信的客户端系统,从而实现一个分布式的 即时通信系统。 这个客户客户端软件遵循x m p p 协议,实现了基本的即时通信功能文本通信,并对 其进行了扩展实现了p 2 p 的多媒体通信,包括语音、视频、文件及实时数据等。另外本 文还对即时通信的两个难点:网络安全及n a t 防火墙的穿越进行了研究并提出了有效 的解决方案。论文结构如下: 第一章为绪言,介绍了项目的背景和意义。 第二章x m p p j a b b e r 简述,介绍了系统的架构和协议。 第三章系统的总体设计,从总体上阐述了系统的总体实现方案,包括开源服务器的 选取以及客户端软件的总体设计。 第四章客户端的实现,详细绍了客户端软件的各个功能的实现及软件的组织。 第五章客户端系统设计中的难点分析,分析了系统实现中的两个难点网络安全以及 n a t 防火墙的穿越问题。 第六章总结,概括了本论文完成工作的情况。 4 耩十x m p p 协议的即时通讯系统的研究 第二章x 即p j a b b e r 简述 2 1x m p p j a b b e r 的引入及发展 ) ( m p p 由j a b b e r 软件基金会开发,最早在j a b b e r 上实现,其实它是j a b b e r 的核心 协定,所以x m p p 有时被误称为j a b b e r 协议。j a b b e r 是一个基于x m p p 协议的i m 应用, 除j a b b e r 之外,x m p p 还支持很多应用。 j a b b e r 是著名的l i f l u x 即时通讯服务服务器,由j e r e m i em i l l e r 在1 9 9 8 年丌始的 一个免费、开源的项目,用于提供给m s n 、y a h o o 的i m 服务。与m s n ,q q ,y a h o o 等众多 网络通讯工具不同的是,它是一个自由开源软件,能让用户自己架设即时通讯服务器, 可以在i n t e r n e t 上应用,也可以在局域网中应用。j a b b e r 最有优势的就是其通信协议, 可以和多种即时通讯对接。比如有第三方插件,能让j a b b e r 用户和m s n 、i c o 等i m 用 户相互通讯。 x m p p 目前在免费源代码开放j a b b e ri m 系统中被广泛采用,其拥有成千的j a b b e r 丌发者,以及大约数万台配置的服务器和超过百万的终端用户。现在j a b b e r 服务器软 件已具备了非常好的稳定性和可扩展性。因为服务器可免费下载,在全球范围里已形成 了一个分布式的公共j a b b e r 服务器网络,使用j a b b e r 服务的用户数也迅速增长。2 0 0 3 年,j a b b e r 用户超过了i c q ,2 0 0 5 年g o o g l et a l k 的加入更令j a b b e r 的发展充满活力。 在几年前i m 市场开始膨胀时,其标准成为热点问题。当时,有两个尚未成熟的标准 被提交到i e t f :基于s i p ( 会话初始协议) 电话协议的s i m p l e 和基于x m l 的x m p p 。随后, 更多的厂商开始作出选择:微软和i b m 支持s i p 和s i m p l e ,而x m p p 则获得j a b b e r 、g o o g l e 苹果、惠普和法国电信的支持。0 5 年,x m p p 终于获得i e f t 的正式认可,而s i m p l e 还 在i e t f 的完善过程中。 g o o g l e 加入x m p p 无疑改变了i m 标准之争的格局。g o o g l e 对外表示,他们致力于实 现开放式的通信,因此选择一种开放的、基于x m l 的标准是符合逻辑的选择。现在的t a l k 同时允许支持x m p p 标准的客户端链接到g o o g l e 的i m 服务上。目前这个清单上已经有 h d i u m 、i c h a t 、g a i m 和t r il li a n 。g a r t n e r 研发总监a li e nw e i n e r 表示:“如果g o o g l e 有了足够的市场份额,它将带来主要i m 玩家的互联互通。” 5 基于x m p p 协议的即时通讯系统的研究 x m p p 所获得的支持还来自其他公司。苹果公司今年年初开始在最新的“老虎版”o s x 中支持该协议,s u n 公司三月份同时开始在“j a v a 系统 即时通信工具中提供x m p p 的支持。 2 2x m p p j a b b e r 技术 2 2 1x m p p j a b b e r 体系结构 j a b b e r 是基于i e t f 草拟标准e x t e n s i b l em e s s a g ea n dp r e s e n c ep r o t o c o l ( x m p p ) 的开放式即时消息传递和现场服务协议,用的是客户端一服务端的系统架构,而不是其 他一些即时消息系统使用的客户端一客户端的系统架构。所有从一个客户端到另一个客 户端的j a b b e r 消息和数据都必须通过服务端。如图所示。 拟m p 哪狲回 二一 二i i e x m p p 客户 图2 1x m p p 框架图 j a b b e r 在设计上很大程度上沿袭了i n t e r n e t 上最成功的消息系统:即e m a i l ,其 整体框架如上图所示,有三种实体:x m p p 客户端、x m p p 服务器、x m p p 协议网关。由图可 知服务器同时承担了客户端信息记录,连接管理和信息路由等功能;x m p p 服务器间相互 通信,形成一个使用x m p p 协议的服务器组成的分布式网络,连接这个网络的客户端, 6 笨十x m p p 协议的即时通讯系统的研究 可以像接收消息一样发送消息给同一个服务器或其他i n t e r n e t 上的服务器上的用户; 负责) ( m p p 与非x m p p 系统互联的实现就是协议网关,承担着与异构即时通信系统的互联 互通,异构系统可以包括s m s ,m s n ,i c q 等。基本的网络形式是单客户端通过t c p i p 连接到服务器,然后在之上传输x m l 信息。 服务器 服务器在x m p p 通讯的智能抽象层。它的主要责任是: ( 1 ) 管理从服务器到其它实体的会话,以x m l 流格式在已授权的客户端、服务器以及其 它实体间来回传送信息。 ( 2 ) 通过x m l 流在实体问路由具有合适地址的x m l 节。 ( 3 ) 大多数与) ( m p p 兼容的服务器设想有能力存储客户端的数据( 如:存储使用x m p p 即 时消息和存在协议的用户列表) ;在这种情况下,x m l 数据由服务器代表客户端直接处理, 并不路由到其它实体。 客户端 大多数客户端通过t c p 连接直接连到服务器,并且使用) ( m p p 协议,充分利用由服务 器及任何相关服务所提供的功能。分别代表认证客户端的多个资源( 请求源) 可以同时连 到一台服务器上,而每种请求源通过使用编址方案定义的x m p p 编址的请求源标识符( 例 如:n o d e d o m a i n h o m e 和n o d e d o m a i n w o r k ) 来加以区别。客户端与服务器的推荐连接 端口为5 2 2 2 。 网关 网关是具有特定目的、服务器端侧的一种服务功能,它的主要功能是将x m p p 协议翻 译成外部消息系统所使用的协议( 非x m p p ) ,也可将数据翻译回x m p p 。 2 2 2 煳p p j a b b e r 技术特点 客户端n 务端 x m p p 使用的是客户端一服务端的系统架构,所有从一个客户端发给另一个客户端的 x m p p 消息和数据都必须通过服务端。任何一个客户端都可以通过商议与另一个客户端自 由地建立一个直接地连接,但这些连接只用于特殊服务地应用。一些实例被鼓励建立这 种连接,比如文件传输,但这些实例必须先通过一个客户端一服务端形式进行协商,才 能建立( 见后面的p 2 p 数据通信) 。 分布式网络 7 幕十x m p p 协议的即时通讯系统的研究 x m p p 地网络体系是模仿e - m a i l 系统的。每一个用户都有自己的本地服务器,并从 该服务器上接收信息,消息和在线信息在这些服务器之间传输;可以添加任意数目的 x m p p 服务器,这些服务器接受客户端的连接,并与其它x m p p 服务器进行通信。每一x m p p 服务器都独立于其他x m p p 服务器,并且拥有其自身的用户列表。通过i n t e r n e t ,任一 x m p p 服务器都可以与其他x m p p 服务器进行通话。每一个用户都与一个特殊服务器相对 应,x m p p 地址和e - m a i l 地址的形式是一样的,如:p e t e r j a b b e r l t a l k 。 模块化的服务器端 x m p p 服务器遵循两个主要法则:监听客户端连接,并直接与客户端应用程序通信; 与其他x m p p 服务器通信。 x m p p 开源服务器被设计成模块化,由各个不同的代码包构成,这些代码包分别处理 类似用户认证、数据存储( 离线消息,花名册,用户信息等) 等等。另外,服务器可以通 过附加服务来进行扩展,如完整的安全策略,允许服务器组件的连接或客户端选择,通 向其他消息系统的网关。 一个模块化的例子就是通过x m p px m l 翻译成其他协议的独立t r a n s p o r t ”( 传输器) , 可以实现x m p p 消息系统与非x m p p 消息系统之间进行消息和在线信息的交流。这些传输 器并不是服务器内核,相反,它们是很容易添加到服务器内核服务器端程序,为终端用 户提供更强大的功能服务。 简单的客户端 x m p p 系统的一个设计标准是必须支持简单的客户端( 如同t e l n e t 连接一样简单 的客户端) 。事实上,x m p p 系统架构对客户端只有很少的几个限制,一个) ( m p p 客户 端必须支持的功能有: ( 1 ) 通过t c p 套接字与x m p p 服务器进行通信 ( 2 ) 解析组织好的x m l 信息包 ( 3 ) 理解消息数据类型 x m p p 将复杂性从客户端转移到服务器端。这使得客户端编写变得非常容易( 个证 据就是今天出现了种类繁多的客户端) ,更新系统功能也同样变得容易( 这样,就不用强 迫用户去下载新的客户端) 。x m p p 客户端与服务端通过x m l 在t c p 套接字的5 2 2 2 以上端 口进行通信,而不需要客户端之间直接进行通信。在实际应用中,许多低阶的客户端功 能( 如解析x m l ,理解基本的x m p px m l 语言类似 , , 己经 基于x m p p 协议的即时通讯系统的研究 包含在j a b b e r 客户端类库中,这样可以让客户端的开发人员更多的注重用户界面的开 及o x m l 的数据格式 x m l 是x m p p 系统架构的核心部分,它最重要的作用是系统的底层可扩展性,并 能表述几乎任何一种结构化数据( 特别地,x m p p 利用x m l 数据流进行客户端- n 务 器端、服务器端一服务器端的通信) 。x m l 数据流一般是由客户端发起至服务端,x m l 数据流的有效时间直接与用户的在线会话有效时间相关联。 x m p p 严格遵守x m l 的同时,不需要知道任何关于信息转发中介的信息:对于信息转 发中介没有任何固有的规定,也不需要任何关于信息转发中介的系统架构的知识。这都 是可能的,在另一方面,这也使得提供与第三方服务( 如:i r c ,i c q ,a i m ) 进行信息传输 的传输器的实现成为可能。而在x m p p 系统内部,就像x m p p 系统中其它每一个组件一样, 传输器使用x m l 语言。 2 2 3 ) ( m p p j a b b e r 技术优点 ( 1 ) 开放性,x m p p 协议是免费的、开放的、公有的、容易被理解的协议;同时还有多样 客户端、服务器、组件与代码库的实现,其中有很多是开源。 ( 2 ) 标准化,i e t f 已正式以x m p p 来确认了这个基于x m l 流的即时通信协议 ( 3 ) 可靠性,1 9 9 8 起x m p p 开始被开发,到实现已经相当稳定;有数以千计的开发者在 x m p p 技术上工作,有数以万计的x m p p 服务器在i n t e r n e t 上行动,有百万计的用户在使 o 用x m p p 即时通信工具。 ( 4 ) 分布式,x m p p 的框架与e - m a i1 类似,所以每一个人都可以运行各自的x m p p 服务, 来进行他们自己的组织与管理的i m 体验。 ( 5 ) 安全性,任何一个x m p p 服务器都与公共的x m p p 网络独立的,通过s a s l 与t l s 来 建立安全连接。 ( 6 ) 可扩展性,基于x m l 的x m p p 可以很方便地让用户在其上面扩展他自己的功能;对 于一些通用的扩展,由j a b b e r 软件组织来进行维护。 ( 7 ) 灵活性,x m p p 的程序可以超越i m 的范畴,可以用来进行网络管理、内容同步、协 同工具、文件共享、游戏与远程系统监控等。 2 3x m p p 协议 9 皋于x m p p 协议的即时通讯系统的研究 2 3 1x m l 技术 x m l 是e x t e n s i b l em a r k u pl a n g u a g e 的缩写,意为可扩展的标记语言。x m l 是互联 网联盟制定的一种通用语言规范,是全新的描述结构化数据的语言。除了在w e b 页面上 广泛的应用以外,x m lj 下在逐渐成为支持数据交换的一种标准,适用于许多重要领域, 例如在对等通信间实现传输机制。它是x m p p 系统架构的核心部分,它最重要的作用是 系统的底层可扩展性,并能表述几乎任何一种结构化数据。x m l 语言的优势可以概括为: ( 1 ) 公开性,作为w 3 c 的标准,x m l 的目标是取代在w e b 上使用的h t m l 。x m l 将在以后 的w e b 消息标准( s o a p _ 简单对象访问协议) 和图像标准( s v g 一可扩展矢量图) 中使用。 x m l 和x m p p 的设计和实现紧密的结合在一起。 ( 2 ) 灵活性,x m l 是通用的数据格式化语言。它提供了一些机制,例如:模式( s c h e m a s ) , 文档类型定义( d t d ) ,名字空间( n a m e s p a e e ) 来使用户很方便的创建自定义x m i 。文档。x m p p 利用文档类型定义和名字空间来保持这种灵活性,方便以后用户扩展并兼容x m p p 协议。 ( 3 ) 简单性,设计x m l 的一个主要目的就是最大程度的简化创建和解析x m l 格式数据, 这种简化使得构建和在应用中支持x m l 变得很容易。x m l 也允许x m p p 协议在其它平台上 使用,例如嵌入式系统。 ( 4 ) 互操作性,x m l 文档是简单的,带标记的文本文件,可以在网络上传送,并且可以 在任何平台上读取。x m l 支持不同的编程语言和操作系统。常见的编程语言有j a v a , c c + + ,d e l p h i p a s c a l ,p e r l 等。而且x m l 支持用于字符编码的许多主要标准,使其可 以在不同的计算环境中使用。 ( 5 ) 自描述性,x m l 文档通常包含一个文档类型声明,x m l 文档中的数据可以被任何能 够对x m l 数据进行解析的应用所提取,分析和处理,并以所需要的格式显示。 2 3 2x m p p 基本数据结构 客户端软件是以x m p p 协议为基础所设计的即时通讯客户端,因此在数据结构和通讯 架构方面都是基于x m p p 协议进行设计的。下面将对系统设计中所要用到的关键数据结 构进行介绍。 地址空间: 使用x m p p 协议通信,必须是有统一的寻址方案,且符合r f c 2 3 9 6 ( 统一资源标识) 。 由于历史原因,一个x m p p 实体的地址被称为j a b b e ri d e n t i f i e r 或j i d 。一个合法的 j i d 包括一组排列好的元素:域名( d o m a i ni d e n t i f i e r ) ,节点名( n o d ei d e n t i f i e r ) 和 l o 基于x m p p 协议的即时通讯系统的研究 资源名( r e s o u r c ei d e n t i f i e r ) 。 j i d = n o d e ” ” d o m a i n “”r e s o u r c e d o m a in = f q d n a d d r e s s lit e r a l f q d n = ( s u b d o m a i n i ,l c ( “ s u b d o m a i n ) ) s u b d o m a i n = ( i n t e r n a t i o n a l i z e dd o m a i nl a b e l ) a d d r e s s - 1it e r a l = i p v 4 a d d r e s s i p v 6 a d d r e s s 所有j i d 都是基于上述的结构。类似 这种结构,最常用来标 识一个即时消息用户,这个用户所连接的服务器,以及这个用户用于连接的资源( 比如 特定类型的客户端软件) 。不过,节点类型不是客户端也是有可能的,比如一个用来提 供多用户聊天服务的特定聊天室,地址可以是 ( 这里r o o m 是聊天室 的名字而s e r v i c e 是多用户聊天服务的主机名) ,而加入了这个聊天室的某个特定的 用户的地址则是 ( 这里n i c k ,是用户在聊天室的昵称) 。许多 其他的j i d 类型都是可能的( 例如 ,可能是一个服务器端的脚本或服 务) 。 x m l 流与x m l 节: x m l 流,一个x m l 流是一个容器,包含了两个实体之间通过网络交换的x m l 元素。 一个x m l 流是由一个x m l 打开标签 开始的,流的结尾则是一个x m l 关闭标签 ( s t r e a m ) 。在流的整个生命周期,初始化它的实体可以通过流发送大量的x m l 元素, 用于流的握手或x m l 节。“初始的流”由初始化实体和接收实体握手,从接收实体来看, 它就是那个初始实体的“会话”。初始化流允许从初始化实体到接收实体的单向通信; 为了使接收实体能够和初始实体交换信息,接收实体必须发起一个反向的握手( 应答 流) 。 x m l 节,一个x m l 节是一个实体通过x m l 流向另一个实体发送的结构化信息中的一 个离散的语义单位。一个x m l 节直接存在于根元素 s t r e a m ) 的下一级,任何x m l 节都 是从一个x m l 流的下一级的某个打开标签开始,到相应的关闭标签。一个x m l 节可以包 含子元素,以表达完整的信息。 在x m l 上下文的数据流中,) ( m p p 开放的x m l 协议包括三个顶级x m l 元素: 、 和 ( i n f o q u e r y ) 。每一个元素通过属性和名字空间包含大量的数据, 这些属性和名字空间都是x m p p 协议的组成部分( 但不包括为特殊应用的名字空间应用) 。 基于x m p p 协议的即时通讯系统的研究 ( 1 ) 元素 元素是x m p p 开放x m l 协议三个顶级元素中的一个。它被用来包含两个 x m p p 用户间互相发送消息内容,或者两个j a b b e ri d s 之间更一般的消息。它有一些相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论