




已阅读5页,还剩78页未读, 继续免费阅读
(信息与通信工程专业论文)基于jabber协议的嵌入式即时通信客户端的设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 即时通信是一种用户进行在线实时通信的技术。通过即时通信功能,可知道 亲友是否正在线上并与他们即时通信。即时通信技术依托于一系列的相关协议, 其中j a b b e r 协议采用分布式网络体系结构和模块化的、可扩展的系统架构,使得 开发变得简单,而且易于实现功能的扩展,在许多领域中得到了广泛的应用。 即时通信在嵌入式领域发展较为迅速。目前流行的嵌入式即时通信软件大部 分是基于s y m b i a n 、p p c 和p a l mo s 等商用操作系统,在免费的c l i n u x 操作系 统上的应用非常少。本文的目标是在l t c l i n u x 操作系统上设计一个即时通信的客 户端软件。由于j a b b e r 协议是开源协议,因此本设计采用了j a b b e r 协议。 本设计的硬件平台采用了f r e e s c a l em c f 5 3 2 9 e v b 开发板。在设计中,使用 m i c r o w i n d o w s 和f l t k 作为图形库,而且采用了模块化的设计思路,对客户端进 行了分层设计,有利于将该客户端移植到其他嵌入式平台中。本设计实现了即时 通信的基本功能,满足了嵌入式终端对即时通信的需要。 本文首先介绍了即时通信的相关背景和j a b b e r 协议的相关知识,主要包括 x m l 元素、联系人列表和会话的建立,并对本项目的嵌入式软硬件平台进行了介 绍;本文重点介绍了j a b b e r 客户端模块化的分层设计,详细分析了每个模块的接 口和各种j a b b e r 协议功能的实现方案,并对将来的功能扩展给出了建议;本文还 给出了该终端的测试方案和测试结果,测试结构表明该j a b b e r 协议客户端能较好 的满足嵌入式即时通信的需要;最后,对本课题进行了总结,并指出了进一步研 究的方向。 关键词:即时通信,j a b b e r 协议,嵌入式系统 a b s t r a c t a b s t r a c t i n s t a n tm e s s a g ei st h et e c h n o l o g yt os u p p o r to n l i n ec o m m u n i c a t i o nf o ri t s c u s t o m e r s w i t hi n s t a n tm e s s a g e ,ac u s t o m e rc a nk n o ww h e t h e rh i ss u b s c r i b e r sa r e o n l i n ea n dc o m m u n i c a t ew i t ht h e m i n s t a n tm e s s a g ei sb a s e do nas e r i a lo fp r o t o c o l s j a b b e rp r o t o c o lu s e sd i s t r i b u t i o nn e t w o r ka r c h i t e c t u r ea n dm o d u l a r i z e de x p a n s i v e s y s t e ma r c h i t e c t u r e ,w h i c hm a k e si te a s yt od e v e l o pa n de x p a n s e i nm a n yf i l e d s i n s t a n tm e s s a g ed e v e l o p sv e r yf a s ti nt h ef i e l do fe m b e d d e da p p l i c a t i o n t h e p o p u l a re m b e d d e di n s t a n tm e s s a g ec l i e n t sa r em o s t e l yb a s e do ns y m b i a n ,p p c ,p a l m o sa n do t h e rc o m e r c i a lo p e r a t i o ns y s t e m sr a t h e rt h a no p e n - s o u r c es y s t e m sl i k e l a c l i n u x t h eg o a lo ft h i sp a p e ri st od e s i g na ne m b e d d e di n s t a n tm e s s a g ec l i e n tt h a t c a nr u no nl a c l i n u x t h i sc l i e n tu s e sj a b b e rp r o t o c o la sw h i c hi sa no p e ns o u r c e p r o t o c 0 1 t h i sc l i e n tu s e sf r e e s c a l em c f 5 3 2 9 e v be v a l u a t i o nb o a r d 觞i t sh a r d w a r e p l a t f o r m w eu s em i c r o w i n d o w sa n df l t kt od e s i g ni t sg r a p h i cu s e ri n t e r f a c e t h i s d e s i g ni sd e s i g n e dw i t hs e v e r a ll a y e r sa n di t se a s yt ob ep o r t e dt oo t h e re m b e d d e d p l a t f o r m t h i sc l i e n tc o n t a i n st h ef o u n d a t i o n a lf u n c t i o n so fi n s t a n tm e s s a g ea n dm e e t s t h eb a s i cn e e do fe m b e d d e dt e r m i n a l ,s oi ti sv a l u a b l ei nb o t he c o n o m yp r o s p e c ta n d t e c h n o l o g yp r o s p e c t a tf i r s t , t h i sp a p e ri n t r o d u c e dt h eb a c k g r o u n do fi n s t a n tm e s s a g ea n dk n o w l e d g e o fj a b b e rp r o t o c o l , w h i c hi n c l u d e sx m le l e m e n t s ,r o s t e ra n de s t a b l i s h m e n to f s e s s i o n t h e n ,t h i sp a p e ri n t r o d u c e dt h ee m b e d d e dp l a t f o r mo fh a r d w a r ea n ds o f t w a r e t h i sp a p e rd e s c r i b e dt h em o d u l a r i z e dd e s i g no fc l i e n t ,m o s t l yf o c u s e do nt h ea p i sa n d i m p l e m e n to fe a c hm o d u l e t h i sp a p e ra l s od e s c r i b e dt h et e s tp l a na n dt h er e s u l t a t l a s t ,t h i sp a p e rm a d eas u m m a r yo ft h ed e s i g na n dg a v es o m es u g g e s t i o n sf o rf u r t h e r d e v e l o p m e n t k e y w o r d s : i n s t a n tm e s s a g e ,j a b b e r , e m b e d d e ds y s t e m 图表目录 图1 1 图1 2 图2 1 图2 2 图2 3 图2 - 4 图3 1 图3 - 2 图3 3 图3 - 4 图3 5 图3 - 6 图3 7 图3 8 图4 1 图4 - 2 图4 3 图4 - 4 图4 5 图4 6 图4 7 图4 8 图4 9 图禾1 0 图4 1 l 图4 1 2 图4 1 3 图4 1 4 图4 1 5 图5 1 图5 2 图5 3 图5 - 4 图5 5 图5 石 图5 7 图5 8 图表目录 全球即时通信用户规模l 中国即时通信用户规模2 j a b b e r 的c s 结构模型1 0 两个使用不同服务器用户之间的连接l l 传输器工作图1 2 w i l d f i r e 服务器运行截图1 8 c o l d f i r em c um c f 5 3 2 9 框图2 l m c f 5 3 2 9 e v b 开发板2 2 板载监视器d b u 窑界面2 2 l t i b 运行截图2 4 j _ t c l i n u x 配置窗i i 2 6 m i c r o w i n d o w s 体系结构2 7 f l u i d 界面3 0 f l u i d 生成代码流程3 0 本课题的总体结构3l 客户端分层结构3 2 j a b b e r 客户端模块设计框图3 2 t c p 连接与其他模块的调度关系3 5 x 池工作示意图3 7 g u i 模块窗口转换图4 4 消息处理模块与g u i 模块示意图4 5 g u i 模块和事件处理模块示意图4 6 j a b b e r 客户端类图4 7 s a s l 认证流程4 9 会话建立流程5 0 更新在线状态流程图5l 添加联系人流程图5 3 发送消息流程图5 5 注册流程图5 7 测试连接拓扑图一j 。6 4 硬件平台实物图6 5 客户端运行屏幕显示图6 6 客户端注册数据截图6 7 添加联系人数据截图6 8 允许订阅数据截图6 9 删除联系人数据截图6 9 用户更改状态数据截图7 0 v 电子科技大学硕士学位论文 图5 - 9 收到联系人状态更新消息截图7 0 图5 1 0 消息数据截图7 l 图5 1 lg a i m 与j c l i e n t 聊天界面7 2 表2 - 1 中哆p e 的可用值1 3 表2 - 2 q b t y p e 的可用值1 4 表5 1 测试平台设置6 4 v i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的 说明并表示谢意。 签名: 日期:占年f 月) e l 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位 签名: 遵守此规定) 。 聊签名楸乙 日期刁盘9a 年厂月7 7 日 第一章引言 1 1 即时通信发展概况 第一章引言 随着计算机技术和通信技术的飞速发展,即时通信( i n s t a n tm e s s a g e ) 成为人们 日常交流的一种重要手段。即时通信是一种用户进行在线实时通信的工具。大部 分的即时通讯服务提供了状态信息的特性显示联系人名单,联系入是否在线 及能否与联系人交谈。透过即时通信功能,你可以知道你的亲友是否正在线上及 与他们即时通信。 即时通信( i m ) 软件的历史并不久远,但是它一诞生,就立即受到网民的喜爱, 并风靡全球。1 9 9 6 年7 月,四位以色列籍的年轻人成立了m i r a b i l i s 公司,并于同 年1 1 月推出了全世界第一个即时通信软件i c q ,意为“is e e k y o u ”,简称i c q t 。 从作为世界第一个即时通信软件的i c q 诞生之日起,i m 迅速发展,紧随其后,腾 讯q q 、微软m s n 、美国在线a o l 、搜q 、新浪u c 、雅虎通等i m 软件相继推出1 2 j 。 图1 - 1 全球即时通信用户规模 目前,使用各种即时通信系统进行网上交流的用户还在不断增加。根据行业 研究机构r a d i c a t ig r o u p 公n 今年发布的预测报告,到2 0 0 3 年,全球的即时通信 用户账户已经达到了5 9 亿户。到2 0 0 7 年,全球即时通信用户帐号数将增长到 电子科技大学硕士学位论文 1 4 3 9 亿,年平均增长率为2 5 t 。 从1 9 9 9 年2 月腾讯q q 的第一个版本上线以来,经过几年的发展,中国即时 通信市场已经具有了较大规模,在 2 0 0 4 年中国即时通信研究报告中表明,2 0 0 4 年中国有即时通信用户6 2 7 2 万人,2 0 0 5 年达到8 2 6 7 万人,2 0 0 6 年将达到1 0 3 3 4 万人。 图1 - 2 中国即时通信用户规模 1 2 即时通信标准及应用 通过即时通信提供的感知服务,用户能够知道在他她的联系列表中好友的状 态,知道他们是在线、忙碌或离线。即时通信系统能够跨越整个因特网,因此全 世界范围内的用户都能够相互通信。即时通信也能够在内部使用,例如在公司或 实验室。即时消息系统为用户提供其他用户的相关信息,并且也提供大量的通信 手段【3 1 。 为了解决即时通信的标准问题,i e t f 成立了专门的工作小组,研究和开发与 i m 相关的协议1 4 1 。目前l m 主要有四种基本协议:即时信息和在线检测协议 ( 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 现在已经基本不再使用。 i m p p 主要定义必要的协议和数据格式,用来构建一个具有在线接收、发布 能力的即时信息系统。最初研发i m p p 是为了创建一种标准化的协议,现在,i m p p 2 第一章引言 已经发展成为基本协议单元,定义所有i m 协议应该支持的核心功能集。到目前 为止,这个组织已经出版了三个草案r f c ,但主要的有两个:一个是针对站点在 线和即时通信模型的( r f c 2 7 7 8 ) ;另一个是针对即时通信在线协议需求条件的 ( r f c 2 7 7 9 ) 。 s i m p l e 是目前为止制定的较为完善的一个。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 一般考虑用在建立语音通 话中。目前,微软和i b m 都致力于在它们的即时通信系统中实现这个协议。 x m p p 是种基于x m l 的协议【5 1 【6 】。x m p p 继承了在x m l 环境中灵活的发展 性,这表明x m p p 是可扩展的;x m p p 可以通过发送扩展的信息来处理用户的需求, 以及在x m p p 的顶端建立如内容发布系统和基于地址的服务等应用程序;x m p p 包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容 易建立客户应用程序或给一个配好系统添加功能。 x m p p 目前在免费源代码开放j a b b e ri m 系统中被广泛采用。2 0 0 2 年,这个 产品有超过5 万的下载量,这使x m p p 拥有成千上万的j a b b e r 开发者,以及大约 数万台配置的服务器和超过百万的终端用户。在个人应用方面,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 的应用和即时信息服务不受防火墙的限 制。j a b b e r 协议便是基于x m p p 的协议: 除了上面介绍的几个i e t f 标准协议之外,有些公司也自己推出了自己定义 的即时通信协议,比较有名的是m i c r o s o f t 公司的m s nm e s s a g e r 协议和腾讯公司 的q q 协议等。 下面介绍几种常用的即时通信软件: 1 2 1i c q 1 9 9 6 年7 月成立的m i r a b i l i s 公司于同年1 1 月推出了全世界第一款即时通讯 软件i c q ( 目前i c q 已经归a o l 旗下所有) ,取意为”我在找你”:”is e e ky o u ”, 简称i c q 。 这款软件一经推出,即刻全球响应,凭借着前所未有的创意很快在全世界拥 有了大批的用户,即使在当时互联网不太发达的亚洲,市场用户量也占到了7 0 , 在国内更是占到了8 0 。1 9 9 8 年,i c q 以4 亿美元被a o l 公司收购。 3 电子科技大学硕士学位论文 i c q 使用的是i m p p 协议。i c q 也有嵌入式的客户端,可以应用在p p c 和p a l m o s 操作系统上。 1 2 2q q q q 最早问世于1 9 9 9 年,名字叫做o i c q ,即o p e ni c q ,后来因为版权原因 更名为q q 。 q q 最早是仿照i c q 开发的即时通信软件,由于功能更加贴近中国用户,抓 住了中国互联网发展的契机,在2 0 0 0 年底用户达到了1 0 0 0 万用户,并一直占领 了中国在线即时通讯8 0 以上的市场。 q q 使用的协议是自主开发的,客户端由腾讯公司开发,几乎涵盖了所有的 消费领域,在嵌入式领域主要支持s m a r t p h o n e 、p p c 、s y m b i a n 、p a l mo s 等操作 系统。 1 2 3m s nm e s s a g e r m s nm e s s a g e r 是由微软公司开发的即时通信软件,其客户端与w i n d o w s 系统紧密整合,加之其运行稳定、简单易用以及全世界通用性强等特点,使得它 一经推出,用户数量即以几何数量的增加。 微软公司还提供的m s n 的开发a p i 并在其网站上向全世界公布了m s n 的通 信协议。这令众多开发者为m s n 拓展功能和对客户进行更个性化的服务成为可 能,例如著名的m s np l u s 就是一款通过m s na p i 开发的m s n 功能扩展插件, 目前已经为众多m s n 使用者所接收。 支持m s n 的客户端非常多,除了微软官方的客户端,世界各地的爱好者也 开发了功能强大的插件,而且也有支持各种手机和p d a 的嵌入式版本。 1 2 4g o o g l et a l k g o o g l et a l k 简称g t a l k ,由g o o g l e 公司开发,它可以进行文字聊天以及电脑 对电脑的语音连接通话,此举进步激化了g o o g l e 和雅虎,微软以及美国在线之 间的竞争。 g o o g l et a l k 的一个优势是,它能够与其它即时通讯软件服务进行连接。由于 g o o g l et a l k 是基于j a b b e r 开源标准,这种标准允许用户和其它的即时讯息系统相 连,比如苹果电脑的i c h a t ,g a i m ,t r i l l i a np r o 以及p s i 。 4 第一章引言 g o o g l e 公司只开发了p c 上的g o o g l et a l k 客户端。由于j a b b e r 是开源协议, 通过第三方的支持j a b b e r 协议的客户端也可以登录g o o g l et a l k ,比较著名的是 j a v a 版本的r e p o t o 和m g t a l k 。 1 3 本论文的工作内容和目标 即时通信软件发展至今,功能已经非常强大了,作为一种具有强大生命力的 网络应用模式,在不同软硬件平台和不同网络条件下的应用成为即时通信软件发 展的一个重要趋势。 在桌面应用领域,j a b b e r 协议的开源性和扩展性使其得到了极大的发展,但 是在嵌入式系统中,由于操作系统和硬件平台的多样性,j a b b e r 协议的应用有较 大的局限性。随着新一代智能型3 c ( c o m p u t e r , c o m m u n i c a t i o n ,c o n s u m e r ) 合一的 嵌入式系统进入了一个崭新的智能化、网络化的发展阶段,嵌入式操作系统及其 应用软件也得到了空前的发展与繁荣。依托嵌入式终端的便携性和移动型,即时 通信以一种实时而又灵活的交互通信方式满足了人们随时随地交流的要求,成为 嵌入式应用中的热门领域。 在嵌入式应用领域,目前流行的即时通信软件大部分是基于s y m b i a n 、p p c 和p a l mo s 等商用操作系统,在免费的i x c l i n u x 操作系统上的应用非常少。本文 提出了一种方案,在开源的l a c l i n u x 操作系统上,利用j a b b e r 协议构建一个支持 j a b b e r 协议的即时通信客户端j c l i e n t ,满足了嵌入式系统对即时通信功能的需要。 本文是基于j a b b e r 协议的嵌入式即时通信客户端的设计,目标是以j a b b e r 协 议为基础,参考当前流行的即时消息技术,在嵌入式系统中设计具有即时通信功 能的客户端。 该客户端需要满足如下的要求: l 、即时消息功能:即用户可以通过该客户端与其他用户发送即时消息。 2 、订阅功能:用户可以通过客户端向服务器进行联系人订阅。 3 、状态更新功能:用户可以通过客户端得知联系人的在线状态。 4 、注册功能:用户可以通过该客户端向服务器进行帐号注册和更改密码等服 务。 本设计的硬件平台采用f r e e s c a l e 公司的m c f5 3 2 9 e v b 开发板,操作系统采 用l a c l i n u x - 2 6 ,利用m i c r o w i n d o w s + f l n x 的图形引擎库设计图形用户界面 ( g u i ) 。采用分层模式来设计客户端,使得该客户端具有良好的层次结构,便于移 5 电子科技大学硕士学位论文 植和进行二次开发。 本论文的后续章节安排如下: 第二章介绍了即时通信与j a b b e r 协议的基本知识。 第三章介绍了嵌入式即时客户端的软硬件开发平台。 第四章在j a b b e r 协议基础上设计客户端,具体包括客户端的分层设计、模块 划分与实现、总体实现,并对客户端没有实现的功能提出部分建议。 第五章主要通过测试来验证客户端的功能。 第六章是全文总结及研究展望。 6 第二章j a b b e r 协议 2 1j a b b e r 技术概述 第二章j a b b e r 协议 j a b b e r 协议是一系列源代码开放的、以x m l ( t h ee x t e n s i b l em a r k u pl a n g u a g e ) 元素来传递结构化信息的协议( x m p p ) 【5 1 6 11 7 1 。j a b b e r 协议已经于2 0 0 4 年1 月3 0 日成为i e t f ( i n t e r n e te n g i n e e r i n gt a s kf o r c e ) 的标准。个人和企业的即时通信是它 的一个主要应用领域。 2 1 1j a b b e r 技术特点 所有j a b b e r 信息都是以x m l 为基础的,对于需要交换x m l 格式内容的 开发者特别有吸引力。因为x m l 已经成为了在应用间推荐的交换格式,所以 j a b b e r 自然就成为了一种受欢迎的协议。j a b b e r 作为一个开发平台是特别具有优 势的,它很容易扩展来满足任何应用的要求。只使用x m l 为每种应用扩展协议 的能力,使得j a b b e r 很容易通过编程实现和理解。 j a b b e r 系统是一个分布式系统( d i s t r i b u t e ds y s t e m ) ,即j a b b e r 服务器是分 布在网络各处的。分布式服务器的概念在存储转发的电子邮件系统里是很普通的。 邮件在一个分布式环境里运作,每台服务器控制自己的资源,但是如果需要,它 能与外在的系统进行通信。j a b b e r 服务器利用开放的x m i 协议来进行s 2 s ( s e r v e r t os e r v e 0 通信,就像在c 2 s ( c l i e n tt os e r v e r ) 一样。相比之下,大多数的i m 系统 使用了只是支持c 2 s 通信的协议,因此j a b b e r 服务器具有更大的灵活性。在i a b b e r 服务器互连的网络中,安全是很重要的,由于这个原因,i a b b e r 包含了一个回复 ( d i a lb a c k ) 协议,通过它提供一种方法来验证连接的双方是相互信任的,从而确保 $ 2 s 通信的真实性。这个协议阻止了人为的中间攻击和主机欺骗( h o s ts p o o f i n g ) 。 j a b b e r 协议是公开的,程序则开放源代码。它作为i e t f ( i n t e m e t e n g i n e e r i n gt a s kf o r c e ) 的一个草案,定义了客户端和服务器端的交互要使用x m l 流。普通消息类型,如改变存在状态,传递消息内容或查询更新应用则用每个指 定的命名空间来建立。开发者也可以根据需要建立用来表示其它结构化的信息的 命名空间。 7 电子科技大学硕士学位论文 存在( p r e s e n c e ) 在整个持久连接中。通过持久连接的有效维持,j a b b e r 协 议一直有在网络中维持存在和可用信息的能力。存在和可用信息的使用是对实时 消息应用的一个重要的区分。不像原来的存储转发体系,一个具有存在能力的系 统能够即时地处理当前连接的输入消息。存在对于即时消息通信是一个优点,因 为它包含用户的状态,位置和设备的限制。j a b b e r 允许建立并行的t c p 套接字连 接对所有连接土二的客户端和服务器端。一旦建立连接,则只有当状态改变,例 如存在的改变,通过这个连接传输数据。既然这个连接是持久的,那么设置、认 证、状态查找功能都不用每次都重复执行。这种持久的套接字的连接使得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 1 2j a b b e r 基本概念 l 、j a b b e r 代号( j i d ) : 在j a b b e r 里,有许多不同的实体需要进行相互通信,j i d 是内外结合的表示这 些实体的独特信息1 8 。j i d 的关键特性包括: 1 ) 唯一确定进行即时消息和在线信息状态通信的独立对象或实体; 2 1 用户很容易记住他们并在真实世界中表达; 3 ) 他们很灵活以至于可以包容其它i m 和在线信息状态表。 每一个j a b b e ri d ( 或j i d ) 包括一套有序的元素。j i d 由域、节点、数据流格式 的资源组成:【n o d e 】 d o m a i n r e s o u r c e 。 j a b b e ri d 元素有以下定义:域名是第一标识符,它表明实体连接的j a b b e r 服 务器,每一个可用的j a b b e r 域名都应拥有一个完整的域名;节点是第二标识符, 它表明“用户”本身,所有的节点都对应一个精确的域;资源是可选的第三标识 符,所有资源都属于一个节点。 2 、订阅( s u b s c r i p t i o n s ) : 一个j a b b e r 实体可以订阅其他j a b b e r 实体的在线信息,一个订阅本质上是被订 阅者同意发送在线状态改变给订阅者,这个信息同时存储在订阅者和被订阅者的 名单中 9 1 。订阅包括一下几种类别,这些类别存放在包含实体的名单上: t o 一一发送在线状态信息给你的实体; f 而m 二一从你这里获得在线状态信息的实体; 8 第二章j a b b e r 协议 b o t h 一一既发送在线信息状态,又获取在线信息状态; n o n e 一一既不获取在线信息状态,又不发送在线信息状态。 3 、联系人列表( r o s t e o : j a b b e r n 艮务器包含一个所有用户的订阅信息组成的名单,这个名单被命名为 联系人列表【5 】,很像其他i m 系统中的“好友列表”。j a b b e r 的花名册存放在服务器 上,这样用户就可以自由的从一个地方到另一个地方,从一台计算机到另一台计 算机自由的调用它。j a b b e r 服务器根据用户意愿对联系人列表上的对应订阅关系 进行允许、拒绝等操作。联系人列表还包括一些用户特殊的其它信息,比如用户 的昵称,以及用户所属的群组,这些信息可以通过客户端调用适当接口显示花名 册时显现出来。 4 、x m l : 通过x m l ,使得在两个获得彼此授权的实体之间,异步交换低负载的结构化 信息成为可能。x m l 在j a b b e r 协议中具有两个基本概念,x m l 流和x m l 元素【5 】。 x m l 流的定义:一个x m l 流是一个容器,包含了两个实体之间通过网络交 换的x m l 元素。一个x m l 流由一个x m l 打开标签 开始,以一个x m l 关闭标签 结尾。在流的整个生命周期,初始化它的实体可以通过流发 送大量的x m l 元素,用于会话的建立或交换结构化信息。 x m l 元素的定义:一个x m l 元素是一个实体通过x m l 流向另一个实体发 送的结构化信息。一个x m l 元素直接存在于根元素 的下一级。任何x m l 元素都是从一个x m l 流的下一级的某个打开标签( 如 ) 开始,到相应 的关闭标签f 如 ) 。一个x m l 元素可以包含子元素,例如相关的属性、 元素和x m l 字符数据等,用来表达完整的信息。在j a b b e r 协议中,x m l 元素 仅限于 、 和 元素。 基本上,一个x m l 流相当于一个会话期间所有x m l 节的一个信封。我们可 以简单的把它描述成下图所示: 9 电子科技大学硕士学位论文 2 1 3j a b b e r 基本架构 1 、客户端服务端( c l i e n t s e r v e r ) j a b b e r 是一个典型的c s ( 客户端服务端) 架构9 1 ,就是说在大多数情况下, c l i e n t 间通讯时,消息都是通过s e r v e r 传递的采用这种架构,是为了简化c l i e n t ,将 大多数工作放在s e r v e r 进行。 图2 - 1j a b b e r 的c s 结构模型 2 、分布式网络( d i s t r i b u t e dn e t w o r k ) j a b b e r 的网络体系是模仿e - m a i l 系统的。每一个用户都有自己的本地服务器, 并从该服务器上接收信息,消息和在线信息在这些服务器之间传输【1 0 1 。每一个 j a b b e r y j 臣务器都独立于其他j a b b e r j 艮务器,并且拥有其自身的用户列表。两个服务 器通过一个叫做“e t h e r x ”的组件交换信息,这个组件与本地服务器和远程的e t h e r x 第一章j a b b e r 协议 组件通信当一个客户给一个不在同一服务器的发送消息时,这个消息的传递如 图2 - 2 所示。 p 一昏。晤 图2 两个使用不同服备器用户之删的连接 3 、模块化的服务器端删e d u l a r s e r v 盯) j a b b e r 服务器遵循两个主要法则: 监听客户端连接,并直接与客户端应用程序通信 与其他j a b b e r 服务嚣通信 j a b b e r 服务器被设计成模块化由不同的代码包构成这些代码包分别处理 类似用户认证、数据存储等。另外服务器可以通过附加服务来进行扩展。一个 模块化的例子就是通过j a b b e r x m l 翻译成其他协议的独立“k a n s p o r t ”( 传输器】, 可以实现j a b b e r 消息系统与非j a b b e r 消息系统之间进行消息和在线信息的交流。 4 、简单的客户端( s i m p l ec l i e n t ) j a b b e r 系统的一个设计标准是必须支持简单的客户端事实上,j a b b e t 系统 架构对客户端只有根少的几个限制。一个j a b b e r 客户端必须支持的功能有: 通过t c p 套接字与j a b b e r 服务器进行通信 解析组织好的x m l 信息包 理解消息数据类型 j a b b e r 将复杂性从客户端转移到服务器端,这使得客户端编写变得非常容易, 更新系统功能也同样变得容茹。j a b b e r 客户端与服务靖通过x m l 在t c p 套接字 的5 2 2 2 | ;【上端口进行通信而不需要客户端之间直接进行通信。在实际应用中 许多低阶的客户端功能( 如解析x m l 理解基本的j a b b e f x m l 元素 、 似渺和 i q 一已经包吉在j a b b e r 客户端共库中,这样可以让客户端的开发 人员更多的注重用户界面的开发。 电子科技大学硕士学位论文 5 、传输器( t r a n s p o r t s ) : 一个“t r a n s p o r t ”就是运行在服务器上的一个程序,它在j a b b e r 服务器和其 他非j a b b e r 即时通信系统间起网关的作用。t r a n s p o r t 允许j a b b e r 用户连接到其他 即时通信系统来发送和接收消息。j a b b e r 与其他不同的i m 系统建的消息传递是 通过不同的t r a n s p o r t 来做的。如j a b b e r 用户与m s n 和i c q 用户之间交换消息采 用的t r a n s p o r t 是不同的。 图2 3 传输器工作图 6 、数据格式( x m ld a t af o r m a tx m l ) x m l 是j a b b e r 系统架构的核心部分【1 叭,它最重要的作用是系统的底层可扩展 性,并能表述几乎任何一种结构化数据( 特别地,j a b b e r 利用x m l 数据流进行c s 以及s s 的通信。x m l 数据流一般是由客户端发起至服务端) 。j a b b e r 严格遵守x m l 的同时,不需要知道任何关于信息转发中介的信息:对于信息转发中介没有任何 固有的规定,也不需要任何关于信息转发中介的系统架构的知识。这也使得进行 信息传输的传输器的实现成为可能。而在j a b b e r 系统内部,就像j a b b e r 系统中其它 每一个组件一样,传输器使用x m l 语言。 2 2j a b b e r 协议关键技术 本节重点介绍j a b b e r 协议中的几个重要的技术。 2 2 1x m l 元素 j a b b e r 体系的不同实体之间相互传输数据使用x m l 流【5 1 。在两个实体的连接 期间,x m l 流将从一个实体传送到另一个实体。实体间有三个顶层的x m l 元素: 、 和 ,每一个都包含属性和子元素。 1 、 元素 元素在j a b b e r 开放x m l 协议三个顶级元素中被用来包个j a b b e r 用 户间互相发送消息内容,或者两个j a b b e r i d s 之间更一般的消息【6 】。 j a b b e r 协议支持几种不同的消息,这些消息通过 的“t y p e ”属性来 1 2 第二章j a b b e r 协议 进行区分。下面就是“哆p e ”属性的有效值: 【d e f a u l t 表示本消息是一个普通消息; c h a t 表示消息需要被一个接一个的显示在聊天界面上; g r o u p c h a t 表示本消息需要在一个聊天室的界面中进行显示; e r r o r 表示消息被描述成一个错误条件。 除了“t y p e ”属性, 元素还有属性“f r o m ”和“t o ” 分别表示消息发送者与接受者的地址;“i d ”属性是作为消息的一个唯一标志, 它由j a b b e r 客户端或客户库生成,客户端用它来为跟踪消息进行标识。“i d ”是可 选的,并且在系统的别的地方是不可用的。 还可以包含一个或者多个 子元素,其子元素主要有: :表示消息的话题,类似于e m a i l 消息的话题: :为了跟踪某次会话中的消息,用户产生的一个标识; :消息体的内容: :当错误发生时,一个标准的错误包被包括在消息体中; :为一个消息提供一个交替的名字空间: :元素作为一个扩展机制来使用,或发送从服务器发送命令给客户 端,或从一个客户端发送命令到另一个客户端。 2 、 元素 元素提供关于一个j a b b e r 实体的可用性信息【6 】。任何一个通过一个 j a b b e ri d 确认的实体可以与另一个实体进行在线状态信息的通信,这种通信大多 以订阅在线状态信息的方式进行。 p r e s e n c e 协议主要有两项重要的任务,第一,更新用户的当前状态;第二, 管理订阅用户当前状态的行为。所有实体表现出的在线状态不是“可用”就是“不 可用。“可用”状态表示发送者可以立即收到消息。“不可用”状态表示发送者不 能在当前时间收到任何数据。默认情况下,所有 元素除非包含t y p e = “u n a v a i l a b l e ”属性外,都表示“可用”。“可用”的具体形式可以通过 和 子元素进行指定。 l 拘“t y p e ”属性根据不同目的使用。 的“f r o m ”属性和 “t o ”属性与前面介绍的相类似; 的“i d ”属性为在线状态请求包配置 唯一的验证符。 电子科技大学硕士学位论文 a v a i l a b l e状态更新用户可以接收信息 u n a v a i l a b l e状态更新用户不可以接收信息 s u b s c r i b e当前状态订阅请求管理 请求订阅一个用户当前状 态 u n s u b s c r i b e 当前状态订阅请求管理请求取消一个用户当前状 态的订阅 s u b s c r i b e d 当前状态订阅请求管理发送者授权对方订阅自己 的当前状态 u n s u b s c r i b e d当前状态订阅请求管
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长春电子科技学院《燃气输配工程》2024-2025学年第一学期期末试卷
- 皖江工学院《小学语文教材教法》2024-2025学年第一学期期末试卷
- 青海高等职业技术学院《税法二》2024-2025学年第一学期期末试卷
- 湖南软件职业技术大学《民国史》2024-2025学年第一学期期末试卷
- 江西交通职业技术学院《生物分离工程理论》2024-2025学年第一学期期末试卷
- 江苏旅游职业学院《消防工程实验》2024-2025学年第一学期期末试卷
- 山东大学《病理生理学》2024-2025学年第一学期期末试卷
- 鄂尔多斯职业学院《环境工程基础实验》2024-2025学年第一学期期末试卷
- 福建农业职业技术学院《Illustato图形设计》2024-2025学年第一学期期末试卷
- 新疆师范高等专科学校《生活中的生物学》2024-2025学年第一学期期末试卷
- 《中小企业员工激励机制存在的问题及完善对策研究》4000字
- 第1章 汽车4S店概述
- 呼兰河传完整版课件
- 医疗器械监管实务
- 旅游景区反恐防爆应急预案
- 实验室隐患排查培训
- 九年级化学第三单元课题1分子和原子人教新课标版省公开课获奖课件说课比赛一等奖课件
- 浪潮iqt在线测评题及答案
- 中外运社招在线测评题
- 森林防火条例
- GB/T 18802.331-2024低压电涌保护器元件第331部分:金属氧化物压敏电阻(MOV)的性能要求和试验方法
评论
0/150
提交评论