(通信与信息系统专业论文)instlink客户端的研究与实现.pdf_第1页
(通信与信息系统专业论文)instlink客户端的研究与实现.pdf_第2页
(通信与信息系统专业论文)instlink客户端的研究与实现.pdf_第3页
(通信与信息系统专业论文)instlink客户端的研究与实现.pdf_第4页
(通信与信息系统专业论文)instlink客户端的研究与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(通信与信息系统专业论文)instlink客户端的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 作为互联网世界主要的沟通工具之一,即时通讯软件大有取代电子邮件成为 互联网上第一大应用的发展趋势。然而由于种种原因即时通讯软件的互联互通一 直难以实施,这在很大程度上给用户的自由沟通造成了障碍。 本文详细分析了即时通讯的关键技术及四种协议,为解决即时通讯软件互联 互通的问题,引入了基于x m l 的x m p p 协议。在深入研究x m p p 协议的基础上, 设计并实现了基于x m p p 的i n s t l i n k 客户端。基于j i n g l e 协议的信令系统的设计及 实现,使得会话两端可建立p 2 p 连接,并且会话连接和会话内容相独立,会话内 容可灵活的添加删除。 该系统支持即时通信,语音通话,数据会议,语音会议等功能,并支持多协 议的互通,达到在公网和局域网实际上网运行。 关键字:x m p pp 2 p 客户端信令设计 a b s t r a c t a st h ew o r l d sm a j o ri n t e r n e tc o m m u n i c a t i o nt o o l s ,i nt h ef u t u r e ,i m ( i n s t a n t m e s s a g i n g ) s o f t w a r ew i l lr e p l a c ee - m a i lo nt h ei n t e r n c tt ob e c o m et h ef i r s tm a j o r a p p l i c a t i o n h o w e v e r , d u et ov a r i o u sr e a s o n s ,i mi n t e r o p e r a b i l i t yh a sb e e nd i f f i c u l tt o i m p l e m e n t , i nl a r g ep a r tt h er e s u l to fo b s t a c l e st ot h eu s e r sf r e e d o m t oc o m m u n i c a t e i nt h i sp a p e r , ad e t a i l e da n a l y s i so fl mt e c h n o l o g ya n dt h ek e yt ot h ef o u rp r o t o c o l s , i no r d e rt os o l v et h ei ms y s t e mi n t e r o p e r a b i l i t y , i n t r o d u c et h ex m l - b a s e dx m p p p r o t o c 0 1 a f t e ra l li n - d e p t hs t u d yt h ex m p pp r o t o c o l ,d e s i g n e da n di m p l e m e n t e d h s t l i n kc l i e n tt h a ti sb a s e do nt h ex m p p b a s e do r lt h ej i n g l es i g n a l i n gs y s t e md e s i g n a n di m p l e m e n t a t i o n , m a k i n gs e s s i o ns i d e sc a l le s t a b l i s hp 2 pc o n n e c t i o n ,a ss e s s i o n c o n n e c ta n dc o n t e n to ft h es e s s i o ni n d e p e n d e n c e , s e s s i o nc o n t e n tc a r la d do rd e l e t e f l e x i b i l i t y t h es y s t e ms u p p o r t si n s t a n tm e s s a g i n g ,v o i c ec a l l s ,d a t ae o n f e r e n c i n g , v o i c e c o n f e r e n c i n ge t c i nb o t hp u b l i ca n dl o c a ln e t w o r k ,a n ds u p p o r t st h ee x c h a n g eo f m u l t i - p r o t o c o l ,t oa c h i e v et h ed e s i r e dr e q u i r e m e n t s k e y w o r d :x m p pp 2 pc l i e n ts i g n a ld e s i g n 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名逝垦摧f 吼 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文:学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密在年解密后适用本授权书。 本人签名: 导师签名:童刍生 日期:坐z :墨! ! 第一章绪论 第一章绪论 进入9 0 年代以来,随着电脑和互联网的普及,尤其是移动互联网的发展,标 志着以“联网、易用、时尚为特征的后p c 时代的到来使传统的3 c 被赋予了新 的含义,人们利用电脑和互联网的时间越来越多,以“社区( c o m m u n i t y ) 、“内容 ( c o n t e n t ) 、“商务( c o m m e r e e ) 为主要特征的即时通i ( i n s t a n tm e s a s g ei m ) ,最大 程度的体现了网络给人们生活带来的变化,使得人们的沟通更加方便、快捷。 1 1 研究的背景和意义 即时通讯川是一种在后p c 时代兴起的,以i n t e r n e t 网络及其他有线、无线网 络为基础的,在交互双方之间实时地传送语音、文字、图像等信号的通信方式。 与传统的通信方式相比,即时通讯具备快捷、廉价、隐蔽性等特点,在网络 上可以跨年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离 交流。从这点上讲,网络即时通讯的出现改变了人们的沟通方式和交友文化,大 大拓展了个人生活交流的空间。 即时通讯软件的媒体形式可以分为: ( 1 ) 文字:上网者能够对所选择的通讯对象发送文字信息并能即刻收到反馈, 这是i c s 最主要的功能,也是最基本的要求。 ( 2 ) 图形、图像:上网者能够通过i c s 在界面中传送图形、图像。 ( 3 ) 音频、视频:不少网站的即时通讯软件具有音频( 甚至视频) 通讯功能, 只要上网者的计算机配置了适当的设备和驱动程序,就可相互进行语音和影像通 讯。 从用户角度要求即时通讯软件应该具有在线查找、传送文件、留言、接发邮 件及记录通讯信息,有的即时通讯软件还可以在网上打传呼、发手机短信。优秀 的即时通讯软件应该保证反应及时、通信迅速、信息准确可靠;容量( 同时在线 人数) 大;语音等多媒体信号保真度高、无断续现象。功能较强的即时通讯软件 应该具有通过服务器中转和客户之间点对点联系两种路径的通讯方式。即时通讯 软件的覆盖范围分为局域网和互联网两种。局域网的即时通讯软件比较简单。互 联网因为涉及到网际关系,情况比较复杂,设计和实现时应采取适当技术,保证 即时通讯软件快捷、流畅【2 1 。 v o 口的即时通讯模式将成为未来国内乃至全球互联网p c p cv o m 市场的主 流。在娱乐、交流领域,可能会以文本和语音交流居多,而在商务领域,为追求 效率和诚信度,语音和视频的交流会是主要形式。 p 2 p 3 】【4 】是“p c e r - t o p e e r ( 点对点) 的缩写,它最直接的功能就是让用户可以 2 i n s t l i n k 客户端的研究与实现 直接连接到网络上的其他计算机,进行文件共享与交换。译为“对等网络 。即在 p 2 p 系统中所有节点是对等的,这些节点既是客户机同时又是服务器,称之为对等机, 这种对等计算模式具有诸如无中心、自组织以及高可扩展性等特征。 根据具体应用不同,可以把p 2 p 分为以下这些类型: ( 1 ) 提供文件和其它内容共享的p 2 p 网络,例如n a p s t e r 、g n u t e l l a 、e d o n k e y 、 e m u l e 、b i t t o r r e n t 等; ( 2 ) 挖掘p 2 p 对等计算能力和存储共享能力,例如s e t i h o m e 、a v a k i 、p o p u l a r p o w e r 等; ( 3 ) 基于p 2 p 方式的协同处理与服务共享平台,例如j x t a 、m a 沓、g r o o v e 、n e t m y s e r v i c e 等: ( 4 ) l l p 时通讯交流,包括i c q 、o l c q 、y a h o om e s s e n g e r 等; ( 5 ) 安全的p 2 p 通讯与信息共享,例如s k y p e 、c r o w d s 、o n i o nr o u t i n g 等。 与传统的分布式系统相比,p 2 p 技术具有无可比拟的优势,体现在如下几个方 面:非中心化,可扩展性,健壮性,高性f i l l 价格比,隐私保护,负载均衡。同时, p 2 p 技术具有广阔的应用前景,在即时通讯软件中采用p 2 p 技术将使软件的性能 和质量都得到大的提升。 作为互联网世界主要的沟通工具之一,即时通讯软件大有取代电子邮件成为 互联网上第一大应用的发展趋势。然而由于种种原因即时通讯软件的互联互通一 直难以实施,这在很大程度上给用户的自由沟通造成了障碍。 x m p p1 5 】【q ( 可扩展消息处理协议) 是基于可扩展标记语言( x m l ) 的协议, i n s t l i n k 是一个基于x m p p 协议的即时通讯应用,i n s t l i n k 最有优势的就是其通信协 议,可以和多种即时通讯软件对接。比如有第三方插件,能让i n s t l i n k 用户和m s n 、 y a h o o m e s s a g e r 、i c q 等即时通讯用户相互通讯,所以基于x m p p 设计并实现一个 即时通讯系统能很好的解决不同即时通讯软件间的互联互通问题。 1 2 研究现状 从1 9 9 6 年至今,即时通讯技术的发展历经了三个阶段: 即时通讯的第一个阶段,主要以1 9 9 6 年年底,4 个以色列人编写的i c q 为代 表,i c q 是基于i m p p ( 即时信息和空间协议) 的,由客户程序,w e b 服务器和 数据库3 部分组成。这个阶段的即时通讯软件只是提供最基本的文字交流和在线 状态服务,采用集中服务器交换信息,不仅增加成本,浪费资源而且不安全,是 即时通讯软件的雏形。 即时通讯的第二个阶段,属于即时通讯软件的发展期。随着互联网带宽的增 加,性能的改善和信号处理技术的提高,即时通讯开始支持语音、视频和多媒体 第一章绪论 3 业务,并且其性能在不断提高,质量已经达到了用户可以接受的水平。如采用g i p s 7 】 语音库的s k y p e 等软件所提供的基于即时通讯的互联网电话业务,其话音质量已 经超过了普通电话。在体系结构方面,从集中服务器向对等连接p 2 p 演化。这个 阶段的即时通讯软件有微软的m s n ,雅虎的m e s s e n g e r 和腾讯的q q 等。但每个 即时通讯软件用的各自的协议和客户端,使得两个不同即时通讯软件不能互通。 2 0 0 0 年,一个开源的应用软件和一个公开的标准协议x m p p 发布了。x m p p 协议是开源的x m l 0 1 】协议。x m l 是可读的文本格式,具有开放,灵活和易读写 等有点,而且大部分的编程语言如j a v a 也支持x m l 。通过x m l ,可轻松的建立 与非x m p p 即时通讯系统的网关,如s m s c ,m s n ,a o l ,y a h h o ,i c q 等。x m p p 网关位于服务器端,其主要功能是将x m p p 协议翻译为其他的协议,同样将其他 协议翻译为x m p p 协议。这样,x m p p 网关可屏蔽协议的差异性,使得x m p p 客 户端与其他协议的客户端通信跟x m p p 客户端之间的通信一样好。而且使用x m l 可有效的出席管理,可以提供异步、并行、可靠和近似实时通信。它还支持移动 出席管理和移动即时通讯。 不过要使即时通讯工具真正实现互联互通,能像e m a i l 那样不受服务提供商的 限制,可能还需要一个漫长的过程。但即时通讯互通已经是未来发展不可阻挡的 趋势。 1 3 论文的主要工作 本课题启发于通信软件实验室的研究项目。该项目的目的是研究并实现一个 基于x m p p 协议的即时通讯系统h l s t l i n l ( 。i n s t l i n k 可与其他即时通讯软件互联 互通,并实现j i n g l e 1 蛇3 1 协议使得可建立p 2 p 连接。本文从分析现有即时通讯的各 种协议,到选择用x m p p 协议作为此客户端平台的协议,最终实现了这个客户端 平台。 论文详细讨论了现有即时通讯的四种协议i m p p 、p r i m 、s i p ( s i m p l e ) 以及 x m p p 协议,并详细分析了x m p p 协议和x m p p 架构,通过分析x m p p 的特点, 得出解决即时通讯现在面临的问题的原因。 根据对x m p p 协议的分析,设计出客户端平台的各个主要模块,并详细介绍 了p 2 p 模块。 根据客户端平台的模块设计,实现了各个主要模块并实现了整个客户端平台, 并为上层界面提供了所需的a p i 函数。 论文所实现的客户端平台现已在实验室环境中运行,各个功能的使用均得到 很好的效果。 4 i n s t l i n k 客户端的研究与实现 1 4 论文内容安排 本文主要介绍了即时通讯的基本概念及相关协议,其中详细分析了x m p p 协 议,并在x m p p 协议的研究基础上,设计并实现了一个客户端平台。 第一章介绍了即时通讯系统的研究背景,即时通讯所面临的问题,从而得出 本文的研究意义。最后给出了全文内容的结构安排。 第二章介绍了即时通讯基本概念,特别是基于x m p p 的即时通讯模型。分析 了目前四种即时通讯协议,介绍了x m p p 协议的特点和x m p p 即时通讯系统的架 构。 第三章详细分析了x m p p 协议。其中包括x m p p 协议的由来,x m l 流以及三 种x m p p 消息节,即i q 节、p r e s e n c e 节和m e s s a g e 节,最后给出了一个成功建立 l 流的例子。 第四章根据对x m p p 协议的深入研究,设计出基于x m p p 的i n s t l i n k 客户端 平台的主要模块,并对其中的p 2 p 模块进行了详细的介绍。 第五章给出了i n s t l i n k 客户端平台的实现,并给出了关键的数据结构和提供给 上层的主要a p i 函数。 第六章总结本文的主要内容和贡献,概括文中介绍的关键技术及研究工作, 并在此基础上对下一步的工作做出一些展望。 第二章及时通讯技术概述 5 第二章即时通讯技术概述 互联网诞生于传统的电话网络,即时通讯可以说是互联网天然的应用之一。 目前即时通讯有四种协议:p r i m ,i m p p ,p r i m 和x m p p 。在本章将介绍一般的 和有x m p p 技术的即时通讯系统,并介绍了x m p p 即时通讯系统的基本架构。 2 1 即时通讯背景 即时通讯的想法已经存在了很长一段时间。所有即时通讯系统所拥有的特性, 如一对一聊天和群组聊天都已经在其它的互联网应用程序中实现。例如典型的 u n i xt a l k 应用程序在即时通讯系统出现之前,允许用户在互联网上进行交谈,而 群体交谈则在i r c ( i n t g a n e tr e l a yo h a t ) 应用程序中得以实现。 目前的即时通讯系统的创新是把分离的系统功能融合到一个可管理的消息平 台中。x m p p 做了更进一步的集成,建立了统一的消息地址( u n i v e r s a lm e s s a g i n g a d d r e s s ) 和在线状态( p r e s e n c e ) 【9 】【l o 】来简化通讯。在现有其他即时通讯系统中, 地址和在线状态只是在技术上简单相关。但是,建议是能将这两个概念合成一个 概念,因为这样将使应用更加简单,从而使得这种即时通讯系统流行,即使用的 简单化同时也会增加更多的使用人数。 即时通讯地址是e m a i l 地址的扩展。e m a i l 地址只能够用来接收电子邮件,而 即时通讯系统中使用一个即时通讯地址和许多消息类型结合在一起( 图2 1 ) 。在 一个即时通讯系统中,你可以使用一个即时通讯地址来接收消息、一对一聊天、 群组聊天等。 图2 1 即时通讯地址 6 i n s t l i n k 客户端的研究与实现 一对一聊天和群组聊天是会话式的,需要你和你聊天的对象同时在线。为了 使在线通讯更加便捷,当你在线可以进行聊天时,即时通讯将在线状态不断地通 知其他用户。 ,、 p r e s e n c e : a v a i l a b l e ,、 p r e s e n c e : b u s y 、l p r e s e n c e : s l e e p i n g lj , 天 厂、 p r e s e n c e : u n a v a i l a b l e 、l 图2 2 用户状态信息 以前的聊天软件如u n i xt a l k 应用程序工作原理就像电话一样缺少在线状态。 当需要交谈时,你呼叫对方的电话号码,希望对方能听到振铃,接通电话来和你 进行交谈。和电话系统不一样的是,在互连网上用户在线的几率会大幅度减少。 即时通讯系统最早是在单个用户群中流行起来的,其中a i m ( a o li n s t a n t m e s s e n g e r ) 最为成功。a i m 将即时通讯介绍给主流的用户,并通过大量的注册用户 来使用户接受这个技术。即时通讯在单个用户市场的持续增长,为即时通讯在企 业用户市场的发展提供了很多机会。尽管即时通讯系统在单个用户群中有很大市 场,但大部分开发人员对即时通讯系统能为企业提供服务有很大兴趣。首先,企 业与其盟友和其消费者的沟通决定着这个企业的生死,而即时通讯系统提供新的 通讯信道很适合这种多消息的业务。 即时通讯在企业最有前景的应用是在客户关系管理领域( c r m ) 或客户服务领 域。首先,即时通讯为企业和其客户提供了另一种的沟通方式,另外,即时通讯 还可使企业吸收客户的经验来提供更好的服务支持。 除了增加通信能力,即时通讯为企业节省了很多成本。j a b b e r 有限公司【| 7 】是一 家出售j a b b e r 软件和服务的公司,统计结果显示,在将即时通讯引进公司后,公 司成本显著下降了。 即时通讯给企业带来的便利不单单是两个个体之间消息的传递,还使得计算 机之间能相互通信,不管是企业内部计算机的通信,比如会计应用需要访问客户 服务数据库,或是合作伙伴在商业对商业( b 2 b ) 交流时,计算机之间的通信业务。 第二章及时通讯技术概述 7 如图2 3 为即时通讯系统在b 2 b 交流时的应用,其中包括大量的w e b 服务,比如 m i c r s o r n e t 。 i mm e s s a g e s 图2 3即时通讯系统在b 2 b 交流时的应用 x m p p 遵循即时通讯解决方案适合解决目前和未来的即时通讯需求。x m p p 不是特定的软件,它是开放、免费的用于建立即时通讯系统的协议簇。在现存的 消息系统中可以实现x m p p 协议来增加系统对x m p p 支持的特性。我们可以从头 来建立支持x m p p 的消息系统来支持迅速扩展的特性。你也可以利用已有的通过 标准x m p p 服务器的x m p p 网络来构建自己的应用程序( 图2 4 ) 。程序开发者可以 专注于应用程序的设计而由x m p p 系统负责底层的消息传送。一个显著的例子就 是下一代的文件共享应用和基于即时通讯系统之上的游戏开发。 例如,创建一个有上千上万人参加的大型在线游戏,通常的做法是同时创建游 戏的服务器端和客户端。游戏服务器将在线提供游戏服务,而客户端和游戏服务 器间的通讯需要你从头设计和实现。如果你使用即时通讯系统,游戏客户端创建 的私有数据将被封装在常规的即时通讯中。游戏可以通过现存的即时通讯网络( 如 x m p p 网络) 发送私有数据给其他游戏者。由于你的游戏底层是基于即时通讯网 络,所以可以拥有大量的游戏玩家。更重要的是,这样可以避免网络花费和创建、 维护游戏服务器的困扰。你利用即时通讯系统而不必担心消息的创建、路由和支 持大量的连接。这样就可以专注于游戏的创建,而网络的传输细节由即时通讯系 统解决。 8 i n s t l i n k 客户端的研究与实现 图2 4 基于x m p p 网络应用程序通讯模型 2 2 即时通讯四种协议简述 为了解决即时通讯的标准问题,i e l l p 成立了专门的工作小组,研究和开发与 即时通讯相关的协议。目前即时通讯有四种协议【2 5 】:即时信息和空间协议( i m p p ) 、 空间和即时信息协议( p r i m ) 、针对即时通讯和空间平衡扩充的进程开始协议 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 类似, 但已经不再使用了。 2 2 1i m p p 协议 i m p p 主要定义必要的协议和数据格式,用来构建一个具有空间接收、发布能 力的即时信息系统。到目前为止,这个组织已经出版了三个草案r f c ,但主要的 有两个:一个是针对站点空间和即时通讯模型的( r f c 2 7 7 8 ) ;:另- - 个是针对即时通讯 空间协议需求条件的( r f c 2 7 7 9 ) 。r f c 2 7 7 8 是一个资料性质的草案,定义了所有 p r e s e n c e 和即时通讯服务的原理。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 的状态变化通知给客户。 第二章及时通讯技术概述 9 2 2 2s i p ( s i m p l e ) 协议 s i p ( 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 中为终端制定的协议。s i p 一般考虑用在建立语音通话中,一旦连接以后, 依靠如实时协议( r t p ) 来进行实际上的语音发送。但s i p 不仅仅能被用在语音中, 也可以用于视频。s i m p l e 被定义为建立一个i m 进程的方法。s i m p l e 在2 0 0 2 年夏季得到额外的信任,目前,微软和i b m 都致力于在它们的即时通讯系统中实 现这个协议。 s i m p l e 小组致力于进程模式的操作,这将提升运行效率,使基于s i p 的机制 能够进行会议和三方电话交谈控制,也考虑到能和未来提供的许多新特性实现兼 容并提升表现能力。有了进程模式,s i m p l e 使用s i p 来建立一次进程,再利用 s d p ( 进程描述协议) 来实际传输即时通讯数据。 2 2 3x m p p 协议 x m p p 是一种基于x m l 的协议。x m p p 继承了在x m l 环境中灵活的发展性, 这表明x m p p 是可扩展的;x m p p 可以通过发送扩展的信息来处理用户的需求, 以及在x m p p 的顶端建立如内容发布系统和基于地址的服务等应用程序;x m p p 包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容 易建立客户应用程序或给一个配好系统添加功能。 在个人应用方面,a o l 和y a h o o 已经发展了大量用户,他们的产品都基于 x m p p 协议。对于新手来说,因为x m p p 是一个基于x m l 的协议,因此可以方便 的创建定制的应用和增加功能。由于x m l 可以轻易的通过防火墙,所以基于x m p p 的应用和即时信息服务不受防火墙的限制。 2 3x m p p 基本架构 x m p p 基于客户j j 务器体系结构嘲。x m p p 客户端只和在本域内的y d v i p p 服 务器通讯。x m p p 域把整个即时通讯系统分成不同的自治系统,这与大多数使用 一个中心服务器的即时消息系统形成了鲜明的对比。在x m p p 系统中,消息是从 发送者的客户端发送到发送端所在域的服务器,然后消息从发送端所在域服务器 发送到接收者所在域的服务器,最后消息由接收端所在域的服务器发送到最终的 接受者客户端。 l o i n s t l i n k 客户端的研究与实现 2 3 1 客户端服务器模式( c s ) x m p p 是基于客户端服务器模式【l l 】。在客户服务器体系结构中,客户端负责 显示信息给终端用户并处理用户的请求。信息从客户端发送到服务器,由服务器 预先定义好的服务来处理。 图2 5x m p p 的客户服务器体系结构 在x m p p 的客户端服务器模式当中,更偏向于设计成瘦客户端模式,大部分 的过程处理和即时通讯的逻辑处理都在服务器完成。瘦客户端意味着开发人员在 设计x m p p 客户端时有更大的自由空间,这样可使客户端来满足不同用户的需求。 瘦客户端也可满足在嵌入式系统或其他资源有限制的系统下开发。而客户端主要 是在于界面的开发,使界面趋于友好和人性化。最后,瘦客户端可以鼓励开发人 员在不同平台使用不同的语言开发出多种多样的客户端,从而促进x m p p 的快速 发展。 与分布式系统不同的是,这个瘦客户端服务器的体系结构是基于p 2 p 技术的。 这种体系结构可实现x m p p 域的集中控制,达到保证服务质量的目的,这在企业 加强公司通信机制时显得尤其重要。另外,由于即时通讯系统用于任务鉴定通知, 而不是用户之间直接通信,所以更高的服务质量能得到保障。 2 3 2 分布式网络 e m a i l 系统将不同的e m a i l 服务分配给不同的e m a i l 域,像e m a i l 系统一样,一 个x m p p 服务器管理一个x m p p 域。与e m a i l 域类似,x m p p 的域名也定义为一 个i n t e r n e t 域名。比如一个x m p p 服务器的域名为x i d i a n c s i ,则它将处理所有域 名为x i d i a n c s i 的x m p p 用户的输入、输出数据。x m p p 地址也就是x m p p1 d s 要 第二章及时通讯技术概述 求指定域名,域名放在 字符后,与e m a i l 地址一样。 图2 6x m p p 分布式消息模型 x m p p 的这种分布式服务架构使得一个x m p p 服务器只处理它自己用户和其 他x m p p 服务器的消息。一个小的x m p p 服务器可能只有一个用户,而消耗最少 的资源,而同时一个大的x m p p 服务器需要一个大的数据中心来支持成千上万的 用户。 每个x m p p 服务器只处理其自己域内的服务使得x m p p 网络可自由扩展,而 不受加入x m p p 网络的x m p p 服务器或x m p p 域数目的限制。因为若某个x m p p 服务器需要增加新用户,它只需提高自己的容量来处理这些新增的事务。你可根 据x m p p 服务器的资源大小来限制这个x m p p 域中的用户数。 这种分而自治的模式使得x m p p 参与者都平等,你不需要a o l 或m i c r o s o f t 来管理你自己的x m p p 系统。另外,它给予每个x m p p 域控制和管理它自己x m p p 即时通讯网络的权利,并鼓励各个x m p p 服务器互通。这也是e m a i l 系统能如此 流行的原因。 2 3 3 传输器( t r a n s p o r t ) 一个“t r a n s p o r t 是服务器上的一个模块,它在x m p p 服务器和其他非x m p p 即时通讯系统间起网关的作用。t r a n s p o r t 允许x m p p 用户连接到其他即时通讯系 统来发送和接收消息。x m p p 与其他不同的即时通讯系统建的消息传递是通过不 同的t r a n s p o r t 来实现的。图2 7 就给出了一个t r a n s p o r t 的例子。 1 2 i n s t l i n k 客户端的研究与实现 图2 7x m p p 使用传输器与f r e e p p 系统互通 例如,x m p p 服务器可通过x m p pi a x 2t r a n s p o r t 来桥接f r e e p p 系统。使得 x m p p 服务器与使用i a x 2 协议的a s t e r i s k 服务器互通,进而使属于这个x m p p 服 务器的客户端与a s t e r i s k 服务器的客户端,即f r e e p p 实现即时通讯。 2 3 4 数据格式 将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 ) 2 7 】作为x m p p 系统的标准数据格式【8 】是 x m p p 系统架构的核心部分,它最重要的作用是系统的底层可扩展性,并能表述 几乎任何一种结构化数据。( 特别地,x m p p 利用x m l 数据流进行c s 以及s s 的通信。x m l 数据流一般是由客户端发起至服务端) 。x m p p 严格遵守x m l 的同 时,不需要知道任何关于信息转发中介的信息:对于信息转发中介没有任何固有 的规定,也不需要任何关于信息转发中介的系统架构的知识。这也使得进行信息 传输的t r a n s p o r t 的实现成为可能,t r a n s p o r t 在x m p p 系统内部,就像x m p p 系统 中其它每一个组件一样,使用x m l 语言。 x m l 是一种类似于h t m l 的标记语言,但是x m l 是用来描述数据的,重点 是:什么是数据,如何存放数据。h t m l 是被设计用来显示数据的,重点是:显示 数据以及如何显示数据更好。x m l 的标记不是在x m l 中预定义的,你必须定义 自己的标记。它使用文档类型定义( d t d ) 或者模式( s c h e m a ) 来描述数据。x m l 发 展的非常迅速,这实在令人感到惊奇,有很多的软件开发商都采用了x m l 标准。 在未来的w e b 开发中,x m l 将和h t m l 一样受到重视,他们都是w e b 技术的基 础。x m l 将成为最普遍的数据操纵和数据传输的工具。其优点如下: 公开一作为w 3 c 的标准,x m l 的目标是取代在w e b 上使用的h t m l 。x m l 第二章及时通讯技术概述 1 3 将在以后的w e b 消息标准( s o a p 简单对象访问协议) 和图像标准( s v e 一 可扩展矢量图) 中使用。x m l 和x m p p 的设计和实现紧密的结合在一起; 简单设计x m l 的个主要目的就是最大程度的简化创建和解析x m l 格 式数据。这种简化使得构建和在应用中支持x m l 变得很容易。x m l 也允许x m p p 协议在其它平台上使用,例如嵌入式系统; 灵活x m l 是通用的数据格式化语言。它提供了一些机制,例如:模式 ( s c h e m a s ) ,文档类型定义( d t d ) ,名字空间来使用户很方便的创建自定义x m l 文档。x m p p 利用文档类型定义( d t d ) 和名字空间来保持这种灵活性,方便以 后用户扩展并兼容于x m p p 协议; 跨平台- 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 。 2 4 本章小结 本章首先介绍了即时通讯的背景知识,并简述了当前即时通讯所用的四种协 议,最后着重介绍了基于x m p p 协议即时通讯系统的基本架构。通过本章可以了 解到即时通讯的基本知识,并对其基本架构有一定的认识。 第三章x m p p 协议分析 1 5 第三章x m p p 协议分析 可扩展消息现场协议( x m p p ) 是一种基于x m l 流的支持实时聊天的协议。协 议的标准和语法主要是在1 9 9 9 年由当时的m a p 开源组织制定。在2 0 0 2 年,x m p p 即协议工作组开发一种名叫j a b b e r 的协议镞后被i e t f 采纳,并作为一种即时消息 的标准和技术作为x m p p 协议的工作组,目前测试版己经定义了x m p p1 0 版本的 核心内容。其中提供即时消息的扩展需要以及现场功能定义在r f c2 7 7 9 中。 3 1x m p p 简介 x m p p 为用于现场的消息路由处理的x m l 数据流协议,最近被确立为i e t f 标准。它是x m p p 即时通讯系统的基准协议技术,能为多网络间连接提供安全和 易于实现的编程语言环境。 x m p p 路由处理的内核采用国际惯常的逻辑寻址机制,代表格式为:节点 域 资源名。在x m p p 即时通讯系统中,这种模式被称为j a b b e ri d ( j i d ) 。其中,域可 在d n s 中查找,类似于电子邮件地址( 如s m t p 中与用户通信相关联的服务器) ; 节点可表示某即时通讯用户、一类应用或某项服务;资源名( r e s o u r c e ) 为一类连接 标识,能让某单一用户多次重复登录连接。 节点连接到服务器,服务器利用本地地址目录系统中的证书对其进行认证; 节点指定请求源,并让服务器告知某用户( 例如,用户通讯录中的某位朋友) 是否在 线。服务器查找、连接并进行相应的认证,让连接到会话社区的任何节点能够与 任何其它节点进行交互,而与本地服务器( 域) 无关。 x m p p 数据分节,即x m l 结构化数据中的数据块,它被标识为j i d ,同时还 可扩展为x m l 结构化数据。j a b b e r 软件基础( j s f ) 【l3 】为这类扩展处理的标准主体, 类似于w w w 协会对w 曲格式的标准化处理,但允许对格式进行修改。 x m l 另一重大用途是能通过各类应用实现现场实时信息处理。例如, c r m ( c u s t o m e rr e l a t i o n s h i pm a n a g e m e n t ) 或其它企业应用系统可作为x m p p 服务 器的客户端,服务器将所有应用视作同一实体,所有实体对x m p p 服务器来说都 是透明的,实体中的任何用户都可知晓其他用户是否在场并进行信息传输。 运用x m p p 作为通用传输层机制,驻留于某机构的所有应用程序,只要不突 破使用规则( 如加密) ,都能高效实现与其它应用程序间,或机构以外人员的通信。 在c r m 实际运用中,x m p p 能动态地将数据传输至最适宜的请求源,如某个经认 证的用户向手机发送短信息。 x m p p 目前已获得广泛配置,预计将有着极好的市场应用前景,因为它本身 是开放和透明的。x m p p 具备的x m l 设计环境能为开发者及系统架构设计人员提 1 6 i n s t l i n k 客户端的研究与实现 供更多的选择方案来构建接口、商务应用规则和逻辑处理进程,使各类传统和新 出现的网络应用实现即时通讯传输。 x m p p 的协议栈如下图所示,最底层的仍然是t c p 协议,往上依次是t l s ( 传 输层安全协议) ,s a s l ( 简单认证和安全层协议) ,x m p p 。t l s 通常由操作系统提 供。s a s l 通常由应用层提供,而x m p p 则是应用层本身。 x m p p s a s l t l s t c p 图3 1x m p p 协议栈 3 2x m p p 的基本概念 x m p p 信息不仅可以是简单的文本,而且可以携带复杂的数据和各种格式的 文件,这也就是说x m p p 不仅可以用在人与人之间的交流,而且可以实现软件与 软件或者软件与人之间的交流,x m p p 的这种功能大大扩展了即时通讯的应用范 围。 x m p p 所有的交换都发生在一个x m l 流的上下文,在x m p p 的x m l 流协议 中,包括了三个处于最顶层的元素( e l e m e n t ) :i q 、m e s s a g e 和p r e s e n c e 。这三个 元素通过属性( a t t r i b u t e ) e 和名字空间( n a m e s p a e e ) e 包含了更多更复杂的数据和各 种文件,这些元素、属性和名字空间一起组合成了x m p p 协议,以下对x m p p 协 议中的一些重要概念作一些简介。 3 2 1x m l 流 x m l 流和x m l 节点使得在线的用户之间的快速、异步的信息交换成为现实。 它们分别定义如下: x m l 流是网络当中两个实体之间进行信息交换的容器。一个x m l 流的开始 是以 为标签( 带有合适的属性和一些名字空间的声明) 并且以一个明确的 标签结束。在x m l 生命期间,x m p p 的客户端通过发送一个未绑定的 x m p p 元素与服务器协商来初始化他们之间的对话。然后通过标签 , 第三章x m p p 协议分析 1 7 , 为根标签进行会话。从初始化实体发送出去的流可以看成一个初 始化实体和接收实体之间的第一次“会话一。初始化流建立了一条从初始化实体到 接收实体之间的通道。为了进行信息交换接收实体必须返回一个响应流。 x m l 节点是一个离散的结构信息语法单元。它包含在x m l 流中并从一个实 体发往另个实体。这些x m l 节点存在于流节点 t - - 级。,x m l 节点起 始处放置于x m l 流的第一层,它的深度为1 ( 比如说 ) ,在节点结束的 地方也会有一个相应的节点结束标志( 比如说 ) 。一个x m l 节点也可以 包含子元素( 伴随着一定的属性,元素和x m l 数据) 来表达一些必要的信息。在 x m p p 协议中定义了三个节点它们是 , , 这三个节点 分别对应三个缺省的名字空间。这里要注意的一点就是,在进行传输层安全认证协 商时,简单授权和安全层协商或者服务器回拨过程中发送的x m l 元素不能看成 x m l 节点。 基本上,一个x m l 流相当于一个信封,信封里装着一个会话期间所有x m l 节,我们可以简单如下描述它: 图3 2x m l 流的描述 尽管它不是必须建立在一个t c p 连接( 如两个实体可以建立连接在另一个机制 1 8 i n s t l i n k 客户端的研究与实现 上如h t r p 轮询) 上,这个规范仅仅定义了x m p p 怎样绑定在t c p 上。在客户端与 服务器的通信中,服务器必须允许一个客户端共享一个t c p 连接,在这个连接上, 从客户端发送x m l 流到服务器或从服务器发送x m l 流到客户端。在服务器到服 务器的通信中,一个本地服务器必须用一个t c p 连接发送x m l 流到对方服务器, 另一个t c p 连接从对方服务器发送x m l 流到本地服务器,所以服务器与服务器 之间总共有两个t c p 连接。 3 2 2x m l 节 ( 1 ) m e s s a g e 节 节与其内的属性构成了用户之间聊天信息的包容体,也就是说用户 之间的聊天信息内容必然是包容在 节里面。表3 1 列出了m e s s a g e 节各 属性及子元素所表示的含义。 元素或属性说明 t o 信息目的用户的j i d ,也可以是群组聊天时的群组i d f r o m 发送该信息的用户j i d t y p e表示聊天的类型: t y p e = ”c h a t 表示是一对一的聊天 t y p e = ”g r o u p c h a t 表示是聊天室群聊 t y p e ; e

温馨提示

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

评论

0/150

提交评论