(计算机应用技术专业论文)基于jabber的im系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于jabber的im系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于jabber的im系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于jabber的im系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于jabber的im系统的研究与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机应用技术专业论文)基于jabber的im系统的研究与实现.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文 第l 页 摘要 即时消息( i m ) 就是一种实时发送简短信息到在线用户的一种手段。即时 消息结合了两个关键的技术一即时消息传递和存在信息一已经在互联网| j 很 流行,并且产生了许多有趣的服务和特色。现在,即时消息服务正朝着移动 领域发展,移动的即时消息增添了许多更吸引用户的特色。移动的即时消息 主要的好处是访问即时消息服务变得更普遍,意味着用户能够交互即时消息 和存在信息,不只是在电脑前。 作者在术文中引入了即时消息系统如何支持移动性。设计了一个支持移 动的即时消息系统原型一j c h a t ,它具有新的特点和功能。开源软件j a b b e r 和 它的开放的x m l 消息协议作为一个基本的即时消息的框架。在这个框架 i , 增加了支持无线设备用户的重要功能。j c h a t 为移动电话和桌面电脑提供客户 端应用程j 笋,它们分刖是用j a v a2m i c r oe d i t i o n 和j a v a2s t a n d a r de d i t i o n 作 为开发工具的。 j c h a t 原型的基本特点是提供给用户具有扩展的感知信息。在存在的系统 中,移动用户在不同的环境和设置中可能不能获得感知信息。在j c h a t 原型 巾,感知信息沿着三个不同的轴一存在,设备和内容。扩展的感知信息对于 在移动环境中的用户改进通信是重要的。 系统使用j a b b e r 设计和实现,扩展j a b b e r 支持移动性。 研究了如下几个方面: 真正的瘦客户端的处理,通过减少客j 、端的处理和通信 单用户的多个同时活动的客户端 在存在感知协议里位置信息的集成 对接收者,目标没备和位置的透明和不透明的消息的支持 关键词:即时消息;j a b b e r 软件基础;x m l 西南交通大学硕士研究生学位论文第页 a b s t r a c t i n s t a n tm e s s a g i n g ( i m ) i saw a yo fs e n d i n gs h o r t ,s i m p l em e s s a g e st h a ta r e d e l i v e r e d i m m e d i a t e l yt o o n l i n eu s e r s i n s t a n t m e s s a g i n gc o m b i n e s t w ok e y t e c h n o l o g i e s - i n s t a n tm e s s a g e d e l i v e r y a n d p r e s e n c e i n f o r m a t i o n i n s t a n t m e s s a g i n gs e r v i c e sh a v ep r o v e np o p u l a ro n t h ei n t e r n e ta n dh a v eg i v e nb i r t ht oa r a n g eo f o t h e ri n t e r e s t i n gs e r v i c e sa n df e a t u r e s n o w , i n s t a n tm e s s a g i n gs e r v i c e s a r em o v i n gt ot h em o b i l ed o m a i nt h eb e n e f i t so fm o b i l i t ya d d san u m b e ro f f e a t u r e st om a k ei te v e nm o r ea t t r a c t i r et ot h eu s e rt h em a i na d d e db e n e f i t si st h a t a c c e s st oi ms e r v i c e sb e c o m e s u b i q u i t o u s ,m e a n i n g t h a tau s e rc a na c c e s sp r e s e n c e i n f o r m a t i o na n de x c h a n g ei mm e s s a g e s ,n o to n l yw h e ns e a t e di nf r o n to fa d e s k t o pp c i nt h i s t h e s i s ,t h e a u t h o rh a ss t u d i e dh o ws u p p o r tf o r m o b i l i t y c a nb e i n t r o d u c e di ni ms y s t e m s n e wf e a t u r e sa n df u n c t i o n a l i t yi sd e m o n s t r a t e di na p r o t o t y p ei m p l e m e n t a t i o no f a n1 m s y s t e mw i t hm o b i l i t ys u p p o r t j c h a tt h eo p e n s o u r c es o f t w a r ej a b b e ra n di t s o p e nx m lm e s s a g ep r o t o c o l i s u s e da sa f r a m e w o r kf o rb a s i ci m f u n c t i o r m l i t y u p o n t h i sf r a m e w o r kw ea d d e dt h i s f u n c t i o n a l i t yf o u n di m p o r t a n tt os u p p o r tu s e r so nw i r e l e s sd e v i c e sj c h a tp r o v i d e s c l i e n t a p p l i c a t i o n sf o rm o b i l ep h o n e sa n dd e s k t o pp c s ,d e v e l o p e dw i t hj a v a2 m i c r oe d i t i o na n dj a v a2s t a n d a r d e d i t i o n ,r e s p e c t i v e l y p r o v i d i n gu s e r s w i t he x t e n d e da w a r e n e s si n f o r m a t i o n i saf u n d a m e n t a l f e a t u r eo ft h ej c h a tp r o t o t y p em o b i l eu s e r sc a nb ei nd i f f e r e n te n v i r o n m e n t sa n d s e t t i n g s n o t c a p t u r e db y t h ea w a r e n e s si n f o r m a t i o n a v a i l a b l ei n e x i s t i n g s y s t e m s t h ea w a r e n e s si n f o r m a t i o ni nj c h a ti ss t r u c t u r e da l o n gt h r e ei n d e p e n d e n t a x e s p r e s e n c e ,d e v i c e sa n dc o n t e x t e x t e n d e da w a r e n e s si n f o r m a t i o ni s i m p o r t a n t t ot m p r o v ec o m m u n i c a t i o nb e t w e e n u s e r si nm o b i l ee n v i r o n m e n t s t h es y s t e mi s d e s i g n e da n di m p l e m e n t e du s i n gj a b b e le x t e n d e dt oi a b b e r s u p p o r tm o b i l i t y s e v e r a la r e a sa r et ob ei n v e s t i g a t e d : 。h a n d l i n g o f v e r y t h i n c l i e n t s ,b yr e d u c i n g c l i e n t p r o c e s s i n g a n d c o m m u n i c a t i o n 西南交通大学硕士研究生学位论文第页 m u l t i p l es i m u l t a n e o u s l ya c t i v ec l i e n t sf o rs i n g l ep e r s o n i n t e g r a t i o no f l o c a t i o n i n f o r m a t i o ni np r e s e n c e a w a r e n e s s p r o t o c o l s u p p o r tf o rb o t ht r a n s p a r e n t a n d o p a q u em e s s a g i n g w i t hr e s p e c tt or e c i p i e n t t a r g e td e v i c ea n d l o c a t i o n k e y w o r d s :i n s t a n tm e s s a g i n g ( i m ) ;j a b b e rs o f t w a r ef o u d a t i o n ;x m l 西南交通大学硕士研究生学位论文 第1 页 1 1 研究的目的和意义 第l 章绪论 即时消息服务正朝着移动领域发硬,移动的即时消息增添了许多吏吸引_ l 户的特色。移动的即时消息主要的好处是防问即时消息服务变得更普遍,意味 着用户在任何时候都能够交互即时消息和存在信息,不只是在电脑前。随着因 特网的迅猛发展,移动的即时消息服务会是一大热点。 现在一些即时消息服务通过提供在移动电话j 二的即时消息客户端来支持 移动性。一些即时消息服务还支持短消息服务,使得用户可以通过移动电话与 好友交流。支持移动性的即时消息服务在早期是不可用的。当一个用户要发送 消息或与朋友聊天的手段就是使用台式电脑。随着即时消息服务支持移动性 后,用户现在能够使川无线设备来进行交流。 许多即时消息服务现在也提供支持无线设备的即时消息客户端,但是对于 服务的功能却做得很少。作者认为对r 即时消息服务,为了提供更好的移动性 只是提供移动的客户端是坷i 够的。为_ :厂在一个移动环境中更好的使用即时消 息,服务器的功能应该提高。当即时消息在一个移动环境时,以下是应该考虑 的关键问题。 无线设备和即时消息客户端 为_ r 支持移动性,第一个要解决的问题就是要使无线设备能够使用即时消 息服务。现在一些即时消息服务已经扩展了这个功能。然而这也经常包含使j u 一些技术如s m s ( s h o r tm e s s a g es e r v i c e ) 军l lw a p ( w i r e l e s s a p p l i c a t i o np r o t o c 0 1 ) 。, 感知信息 用户不通过桌面电脑使用即时消息,意味着用户在其它地方仍然能够连接 到即时消息服务器。这就要通过即时消息系统提供的感知信息来反映。 本文研究的目的就是提出一个即时消息的系统原型。这个原型应该提供给 用户从无线设备和互联网两种手段来访问即时消息服务。 西南交通大学硕士研究生学位论文 第2 页 1 。2 即时消息概述 即时消息传递大概有超过2 0 年的历史。进a 目i j 时消息传递的第一个大玩 家是a o l ,它发行了自己版本的作为个组件的即时消息传递器,此组件用 于管理所有的输入和输出消息和朋友列表。众所周知,此组件叫b u d d yl i s t 。 不久,m i c r o s o f t 和y a h o o ! 随之跟进。m s n 和y a h o o ! 即时消息以其与众不 同的新服务特性出现在市场上。在早期,即时消息传递仪限制在公告板的快速 消息( s p l a s h i n gm e s s a g e ) 中使用。逐渐地,即时消息传递成为年青人的主要 兴趣所在。郾对消息传递是不同年龄群尤其是年青人之间相互通信的最常用的 手段。 直到1 9 9 0 年,即时消息传递的状况同构思之初相比没有什么显著的变化, 主要是因为即时消息传递还没有弓l 起人们的重视。随着因特网突然的流行和类 似语音邮件( v o i c e m a i l ) 和在线传递( o n l i n et r a n s m i s s i o n ) 新技术的到来,社 会各界开始认真关注即时消息传递了。i n t e m e t 不仅使即时消息传递的用户数 量持续增长,也使即时消息的港能得以体现即尽可能消除其限制,全力丌发 其可能有的功能。 和电予女口件( e m a i l ) 不同,即时消息传递允许用户之间通过网络自然交 互。即时消息的这个特性对于访问远程的用户特别有用。企业家经常受益于即 时消息传递的这个特性,他们可以访问远程的人们并与他们进行交流,即时消 息传递非常好的满足- j 4 电q j 的要求。因为他们不需要花费大量的时问写电子邮 件而只需等待传递以及确认消息,因而节省,时间。 由r 在即时消息传递中引入了通知之类的新想法,因而用广可以随时保持 通知状态。这样的通知特性包括通知用户来了新邮件或移动电话嘟嘟响( 提示 来了最新股票报价信息) 。 在商业界,即时消息传递的作用相当大,因为它能快速而低成本地传递消 息。使用b u 时消息传递包含文本的字符串比通过电话或当面提交要便宜和灵活 得多。 1 3 本文的主要工作目标和工作内容 本文的t 作目标是以j a b b e r 为基础,参考当前流行的即时消息技术,定 西南交通大学硕士研究生学位论文第3 页 义个支持感知和移动性的即时消息系统的原型j c h a t ,通过描述这个系统原 型,也为未来在即时消息的研究打下良好的基础。 为了验证这个原璀,实现了个面向桌面的客户端和面向移动终端的即时 消息客户端,并在开源服务器o p e n l m 的基础上对其中的一些组件作了必要 的修改来满足j c h a t 巾提出的改进点。 一 西南交通大学硕士研究生学位论文 第4 页 第2 章即时消息及j a b b e r 相关背景 2 1 即时消息服务 即时消息服务在i n t e r n e t 上已经非常流行。通过这些服务器提供的感知服 务,使得人们能够知道在他她的联系列表中好友的状态,知道他们是在线、 忙碌或离线。即时消息系统能够跨越整个因特网,因此全世界范围内的用户都 能够相互通信或者他们也能够在内部使用,例如在公司或实验室。即时消息系 统为用户提供其他用户的相关信息并且也提供大量的通信手段。 世界上有四个主要的即时消息服务,具有上亿的用户。这些即时消息服务 主要是为桌面电脑开发的,但是随着无线因特网访问变得很普通,为无线设备 丌发的客户端也f _ _ 现r 。 每个即时消息系统都包含下面列出的一部分或全部功能: 1 功能性 2 可用于无线设备 3 存在 2 1 1l c 0 世界t 最出名的即时消息服务也许是i c q i i 一是“ls e e ky o u ”的代名侧;, i c q 的第一个版本在1 9 9 6 年发布,不久就变得非常流行,在发布后的半年内 就有8 5 万用,1 注册。从那以后,用户数持续增加,到1 9 9 9 年注册用广t 就超过 了5t - 万。 最开始i c q 只能在汁算机问交换短的文本消息,现在服务器已经扩展的 功能包括例如文件传输,发送手机短消息,电话会议和多用户在线游戏。i c q 于】9 9 8 年被美国在线以四亿美元收购【“。 无线i c q i c q 的b e t a 版现在可以用在p o c k e t p c 和p a l m o s 上。在i c q 中,联系人 列表是存储在本地电脑或无线设备上。当你不只是在一台机器上使用i c q 时, 西南交通大学硕士研究生学位论文 第5 页 你的联系人列表必须加载到每台机器上。尽管这可能是令人烦恼的,但这种机 制允许一个用户在无线设备卜保持一个更小的联系人列表。 存在 在i c q 中,n j _ 用的存在值和耦应的图标如表2 1 所示。系统小允许用户 定义其它的存在,但是i c q 用户可以写一个状态消息来描述存在值,当选择 它时。这个消息不会自动分发给联系人,但请求的用户能够读这个消息。在 i c q 巾,一个存在值和一个图标是一对一的映射关系。 表2 一li c q 存在值 l r e e n c e 书转l 咎 naii i x t c n d c d 、a y j o c c u p i e d i 鹫mm e s s a g e s 1 ) n b “) t t n 难1 ) i s t u 小 p l “a c yn n v i s i b l c ) e 2 1 2a o l1 n s t a n tm e s s e n g e r a o li n s t a n tm e s s e n g e r t 3 是美国在线时代华纳的即时消息客户端。除了提 供即时消息服务,a i m ( a o lh l s t a mm e s s e n g e r ) 还提供的内容有股票信息和新 闻。i c q 和a o l 在全世界拥有1 亿3 千万的用户,a f c c ( a m e r i c a nf e d r a l c o m m u n i c a t i o n sc o m m i s s i o n ) 要求a o l 开放它的技术给其它公司n 无线a i m a o l 给p a l m o s 平l 】p o c k e t p c 设备提供可用的客户端。a i m 也提供了- 个 西南交通大学硕士研究生学位论文 第6 页 给移动电活用户的接 j 叫a i m w i r e l e s s ”,但是它只能在美嗣使 。用户可以 用a i m 发送短消息。当一个用户通过移动电话连接对,通过显示一个移动电 话的图标,在好友列表中的用户知道他在通过移动电话使用即时消息。 存在 a i m 有i 个存在值:a v a i l a b l e ,a w a y 和o f f i i n e 。当一一个用户是a w a y 状 态的时候,当他的好友给他发消息时,他可以自动回复文本消息。表2 - 2 列出 ra i m 的存在值。在这个表中我们注意到对a v a i l a b l e 和o f f i i n e 两种状态没 有图标可用。但是他们会显示在好友的一个分离的组来表示这两种状态。 表2 2 a i m 的存在值 、a i l a i ) 耙n a 。轴a v廖 f ,嘲t i n ,a 2 1 3m s nm e s s e n g e r m s n m e s s e n g e r l 6 1 是微软的即时消息客户端。根据m e d i am a t r i x 公司公 布的数据显示,这个著名的即时消息服务在2 0 0 1 的注册用户达到了2 9 5 0 万。 由于微软在软件行业的领导地位,m s nm e s s e n g e r 的流行也并不让人感到吃 惊。微软进一步把即时消息和h o t m a i l ,n e tp a s s p o r t 集成为个帐号,进一 步巩同其在即时消息市场的地位。 m s nm e s s e n g e r 也可以作为一个发布内容的通道。m s n 现在也支持e m a i l 消息,电话会议和文件传输。 无线m s nm e s s e n g e r m s nm e s s e n g e r 包含了p o c k e t p c 2 0 0 2 ,这是w i n d o w sc e 操作系统最近的 版本。对r 其它的版本微软现在还不支持。 存在 表2 - 3 列出了在m s nm e s s e n g e r 中可用的存在值,用户必须选择这些值 中的+ 个,用户不能自定义存在值。 西南交通大学硕士研究生学位论文 第7 页 表2 - 3m s nm e s s e n g e r 的存在值 p | c e n e 謦 i c i n l 弧h 、? l l 乜h b a c k 4 j ;菏l l b c p h o n e h i ll o u n c h s h re wa so f f l i n e 2 1 4y a h o o ! m e s s e n g e r y a h o o ! m e s s e n g e r p i 在1 9 9 9 年6 月发布,除了即时消息外,它也可以作 为一个发布内容的通道:时延2 0 分钟的来自欧洲和美国的股票信息可以免费 订阅,这和m s nm e s s e n g e r 有点相似。 y a h o o ! m e s s e n g e r 还有一个个人信息管理( p e r s o n a li n f o r m a t i o n m a n a g e m e n t ,p i m ) 系统。这些数据存储在服务器端,能够从w e b 浏览器或 y a h o o ! m e s s e n g e r 客户端获得这些数据。 无线y a h o o ! m e s s e n g e l y a h o o ! m e s s e n g e r 有为p o c k e t p c 和p a l m o s 提供的客户端。y a h o o ! m e s s e n g e r 还提供内容定制,但这必须通过桌面客户端来做。由于无线网络的 带宽较低使得这种模式不被移动客户端期望。因为用户的选择可能超过无线设 备的承载能力。随着g p r s 网络的付费,费用也成为了一个闯题。同 c q 样,好友列表也是本地存储的。 存在 表2 - 4 列出了y a h o o ! m e s s e n g e r 的存在值,和m s nm e s s e n g e r 相似,但 w 眦 m m o o 西南交通大学硕士研究生学位论文 第8 页 y a h o om e s s e n g e r 是也有一些其它的值。 ! 冗讦用尸日定义仔征值。当用尸选 择自定义存在值时,它自动地在好友列表巾显示。 袁2 - 4y a h o o ! m e s s e n g e r 的存在值 、a ji l b l e lm a v 剐 a 眺c l 她s v n o la t t i t 摊 n o l i ne h c o b c 它 1 1 囊e a i t o 融 t ) t l th ,1 u n c h j n 钳s m l o 2 2j a b b e r 技术概述 j a b b e r 是个开源的,基于x m l 的网络通信平台,它提供了基本的l 叫络 通信服务。j a b b e r 即时消息服务就是在这个平台上的一个应用,它提供了标准 的即时消息功能,例如消息,好友列表管理和分发存在信息。j a b b e r 将作为j c h a t 中服务器的核心部分。 选择j a b b e r 有以f 的理由: 所有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 搬务器 是分布在网络各处的。分布式服务器的概念在存储转发的电子邮件系统里是很 普通的。邮件在一个分稚式环境里运作,每台服务器控制自己的资源,但是如 西南交通大学硕士研究生学位论文 第9 页 累需要,它能与外在的系统进行通信。j a b b e r 服务器利用开放的x m i 协议来 进行s 2 s ( s e r v e r t os e r v e r ) 通信,就像在c 2 s ( c l i e n t t os e r v e r ) 一样。丰h 比 之下,大多数的1 m 系统使用了只是支持c 2 s 通信的协议,凶此j a b b e r 服务 器具有更大的灵活性。在j a b b e r 服务器互连的刚络巾,安全是很重要的,由j 二 这个原因,j a b b e r 包含r 个回复( d i a l b a c k ) 协议,通过它提供一种方 玄来 验证连接的双方是相瓦信任的,从而确保$ 2 s 通信的真实性。这个协议阻j r r 人为的中间攻击和丰机欺骗( 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 r n e t e n g i n e e r i n g t a s k f o r c e ) 的一个草案,定义i _ r 客户端和服务器端的交互要经由 x m l 流。普通消息类型,如改变存在状态,传递消息内容或查询更新应用则 用每个指定的命名空间来建立。开发者也可以根据需要建立用来表示其它结构 化的信息的命名空问。 存在( 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 2 1 j a b b e r 消息协议 j a b b e 消息协议是_ 丌放的,基于x m l 的协议,由j a b b e r 软件基础( j a b b e r s o f t w a r e f o u n d a t i o n ,j s f 8 1 ) 管理。开放协议就使得开发者可以开发出能够解 析这些x m l 消息的客户端应用程序。这和私有的即时消息服务是不同的,它 4 f 3 1 骑止未被授权的客户端应用程序被开发。 j a b b e r 协议已经通过j s f 提交到i e t f ( i n t e r n e t e n g i n e e r i n gt a s kf o r c e 、 西南交通大学硕士研究生学位论文 第1 0 页 作为一个r f c t 9 1 文档。端口5 2 2 2 已经在i a n a ( i n t e m e ta s s i g n e d n u m b e r s a u t h o r i t y ) 注册作为j a b b e r 的标准端| f 。 j a b b e r 体系的不同实体之间相互传输数据使用x m l 流。在两个实体的连 接期间,x m i 流将从个实体传送到另一个实体。 在实体间,有三个顶层的x m l 元素: , 并h , 侮一个都包含属性和子节点。下面将分别描述这些元素。 消息( m e s s a g e ) 元素 一个即时消息系统最基本的功能就是能够在两个用户之间实时交换消息, 元素就提供了这个功能。每条消息都有一个或多个属性和子元素。 属性“f r o m ”和“t o ”分别表示了消息发送着和接收者的地址。 也 可以包含一个“t y p e ”属性,这给接收者一个提示,这个消息是什么样的消息。 表2 - 5 给出,“t y p e ”属性的可能取值。 中也可以包含“i d ”属性, 用柬唯一的标识一个输出消息的响应。 表2 - 5j a b b e r 消息中“t y p e ”可取的值 值描述 n o r m a l这是消息类型的默认值,和e m a i l 消息相似。 c h a t一对一的在线聊天 g r o u p c h a t用来通知用户这个消息来自一个聊天室 e r r o r 错误消息,它在 的子元素 中描述。 存在( p r e s e n c e ) 兀索 元素用来传递一个用户的存在状态的感知信息。用户要么是 “可用的( a v a i l a b l e ) ”,要么是“不可用的( u n a v a i l a b l e ) ”。当用户连接到即时消 息服务器后,好友发给他的消息就立即被传递。如果用户没有连接到服务器, 好友发给他的消息将被服务器存储起来直到用户连接到服务器。用户通过即时 消息客户端自己控制可用性。i 羁是,如果用,t 断开了间服务器的连接,服务器 将发送给订l - 剧,这个用户的存在信息的用户通知他们用户已经不可用。 还包含了两个子元素: 和 。表2 6 列出了 百r 取的值。这个值也可以在客户端应用程序中用图形来表示。 包含了一个刺 的文本描述。 西南交通大学硕士研究生学位论文第1 1 页 表2 - 6 可能的 值 值描述 n o r m a l 表示用户可川,如果没有 ,这是默认值。 c h a t 和“n o r m a l ”相似,但此外还晴示用户可以聊天。 d n dd n d 代表“d on o td i s t u r b ”,表示用户是可用的,但不想被打扰。 a w a y用户临时从客户端离开。 x a 用户要离开客户端的时间比较长。 i q ( i n f o o u e r y ) 元素 1 q 元素是j a b b e r 消息狮议的第三个顶层元素。i q 代表i i n f o q u e r y ”,用 束发送和获取实体之间的信息。1 q 消息是通过“请求响应机制在实体问进 行变换的,这和h t t p 中的“g e t ”和“p o s t ”方法是相似的。 表2 - 7 描述ri q 元素的四种状态。 表2 7i q 的状态 状态描述 g e t请求信息 s e t 设置信息 v e s u l t 如果“g e t ”或“s e t ”成功,显示结果 e r p o r 如果“g e t ”或“s e t ”不成功,指出错误 。硷: j a b b e r 消息协议里有许多的命名空间,但最常用的命名空间是 “j a b b e r :i q :r e g i s t e r ”,“j a b b e r :i q :a u t h ”,“j a b b e r :i q :r o s t e r ”。 2 2 2 资源和优先权 在j a b b e r 中,每个在线的用户都在他的帐号后附加了一个资源,并且 每个资源关联了一个优先权。资源作为一个字符串添加到j i d ( j a b b e ri d e n t i f i e r ) 中,例如l z _ s w j t u j a b b e r , o r g m o b i l e 或l z _ s w j t u 刨a b b e r o q 嘶c h a t ,资源被服务器 用来区分你的连接。优先权是用正整数来表示的,服务器用来决定一条消息应 该发往哪个客户端。取值越大,优先权就越高。如果一个资源的优先权是t 5 ”, 另一个是1 ,那么消息将发往优先权是5 的瓷源。 西南交通大学硕士研究生学位论文 第1 2 页 2 2 3j a b b e r d 服务器 i a b b e r d 是最早使用j a b b e r 协议来实现即时消息和x m l 路由的即时消息 服务器。i a b b e r d 是源代码开放的即时消息服务器,可以免费使用。该i :程 _ f ; j e r m i e m i l l e r 在1 9 9 8 年启动,当前的版本是l42 。 分布式的体系结构 它的体系结构和e - m a i l 系统相似,每个用户连接到本地服务器。用户帐 号和用户数据,例如好友列表和个人信息都存储在本地服务器。每台服务器都 唯一的标识一个用户,和服务器地址通过加一个“ ”分开。这和e m a i l 地址 的格式是类似的,通过这种机制,全球唯一标识符就被创建。例如,我在 j a b b e r o r g 的帐号是l z _ s w j t u j a b b e r o r g ,“l zs w j t u ”就足本地唯一的名字, “j a b b e r o r g ”就是服务器地址。这些标识符叫做“j a b b e ri d s ”或“j i d s ”。 j a b b e r d 服务器运行的个实例就是j a b b e r o r g ,任何人都h j 以在上【i i 申请 帐号。任何人如可以配置他们自己的j a b b e r 服务器,然后通过一个叫攸e t h e r x ” 的组件在凶特网上与其它的j a b b e r 服务器交换信息。这个组件与本地的i a b b e r 服务器和远程的e t h e r x 组件通信。当一个用户发送一条消息给一个与自己不 在同一台服务器的用户时,这个消息的传送如图2 1 所示。通过这种,j - 式,分 布式的服务器网络就能够被建立。 鬻h e 絮组h 剖e 组t h 伽e r x a i n t e m e t 卜1 鬻。i 务器a 吲件 鼢。 剑钼件rp4 羞= 引 。一7 t i _ _ | _ _ 一、一, j - l j a b b e r 客户端b 图2 - 1 分布式j a b b e r 网络 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 服务器和 西南交通大学硕士研究生学位论文 第1 3 页 其它非j a b b e r 的日u 时消息系统问起网关的作用。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 来做的。如m s n 的t r a n s p o r t 就是起在 m s n 和j a b b e r 协议问进行转换的作用【l o , l l l ,在这个领域还没有相应的标准。 因此,这就意味着旦私有的即时消息协议改变,相应的t r a n s p o r t 就必须更 新。 2 2 4d a b b e rl d e n t f ie r s 在j a b b e r 里,有诈多不同的实体需要相互通信。这些实体可以是个消 息系统的客户端,聊天室或一个j a b b e r 用户。j a b b e r 标识符( j a b b e ri d e n t i f i e r s ) 就是用来在内部和外部表达自己的身份或路由信息的。 用户帐号:用户帐号和认证由用户所连接的服务器处理。一般1 龉来,每个 用户的信息都以皿。格式存储在池目录中。这些信息可以存储在数据库中。 其余存储在服务器中的信息包括用户的联系人名单。j a b b e r 体系的用户是用 j a b b e r1 d 来识别的,j a b b e ri d 的格式与e m a i l 的格式相似,例如 l z s w j t u i a b b e ro r g 。这就是存j a b b e r 系统中使用的用户地址。这些i d 在服务 器1 n j b 部组件巾使用,用来确定。包的发送和接收地址。 j a b b e ri d 和其它即时消息系统的合成:当一个x m l 包要发送给其它目h 时消息系统时,t r a n s p o r t 要添加到服务器的域部分的前面。例如一个m s n 用 户使, i 在s w j t u 服务器上的m s nt r a n s p o r t 发送消息,那么消息将会发送到 1 2 3 m s n s w j t u 。这样s w j t u 上的外部组件就会把x m l 包发送到m s n t r a n s p o r t 。 如果接收到来自外部即时消息系统的消息,那么就会生成个合适的1 mi d 用 来发送昶接收来自外部即时消息系统的消息。 j a b b e rj d 中的资源:j a b b e r 体系允许一个用户同时多次登录服务器。为 厂识别多个相同用户的连接,“资源”的概念被使用。资源被附, d i l 至j a b b e r l d 来构成完整的i d 。对于每个用户来说,它的每个资源必须是唯一的。例如, 两个不同的用户可以都有“h o m e ”来源,但是同一个用户不能同时用“h o m e ” 资源在线。这时i d 的构成如f : z h a n g s a n j a b b e r o r g d o r m ,z h a n g s a n j a b b e r , o r g l a b 在有些情况里,消息会直接发送到特定的资源上。但是通常来说发送给 z h a n g s a n j a b b e r o r g 的消息会按照一定的规则来转发。用户会为自己的每个资 西南交通大学硕士研究生学位论文第1 4 页 磊磊压亘五聂磊_ 面栗二泵甬i 习历蠢舀i z h a n g s a n 例a b b e r o r g ,如果没有特别指源殴置优先级。如果一条消息被发送到例 ,如果没有行别于日 定资源的牙,那么这个消息会发往具有最高优先级的实体上。 2 2 5o p e n i m 服务器 o p e n i m 是用j a v a 语言实现的一个j a b b e r 服务器。当前的版本是1 2 。 0 p e n i m 使用a p a c h 的j a k a r t aa v a l o n ,它是使用j a v a 语言实现的一个服务器 开发的框架。这个框架提供,如连接处理,线程池和 i j i | 志处理等工具。 o p e h i m 功能不如j a b b e r d 服务器强,例如t r a n s p o r t s 在o p e n l m 中就没有 实现。但是处理j a b b e r 核心的协议元素: , , 已纤 实现了。由丁它是用j a v a 语言编写的,虽然它的功能没有j a b b e r d 强大,但是 也已经实现了j a b b e r 的许多功能,我们设计的服务器就是基于o p e n l m 的。 2 2 6j a b b e r 客户端 j a b b e r 客户端应j _ _ j 程序必须按照j a b b e r 消息协议来写,但不定实现这个 协议中的每一个特点。 j a b b e r 对于客户端的限制非常有限。唯一的两个限制就是客户端必须通过 t c p 套接字和服务器通信,客户端必须支持解析和翻译结构良好的j a b b e r 消 息协议。由j 二对于客户端没有严格的限制,程序员町以开发非常个性化的客, 端。同服务器开源不同,客户端应用不是开源的,但许多j a b b e r 客户端能够 被免费下载使用。 2 3 无线设备 移动网络提供商提供了无线网络访问服务,使得因特网服务如e m a i l 和 w e b 浏览也可以在无线设备中使用。短消息服务功能同即时消息服务中的消 息交换是相似的。短消息是极其流行的,尽管这种服务没有提供感知信息。 对r 一个通过局域网连接的桌面客户端来说,它有很强的处理能力和网络 容量也是足够的。但是对于通过无线网络使用移动电话连接的用户来说,有更 少的资源可用,包括有限的带宽。 西南交通大学硕士研究生学位论文 第15 页 2 3 1 在j c h a t 中的无线j a v a 当开发的软件要用于不同的平台时,对不同的平台使用同一种编程语言有 很明显的优点。作为跨平台的编程语言,j a v a 是一个很好的选择,但是由于不 同的无线设备的性能不同,应该考虑使用不同的j a v a 运行时环境。在开发的 移动客户端中,使用的开发工具是】2 m e 。 j 2 m e j a v a2m i c r oe d i t i o n ( j 2 m e ) 是s u n 公司j a v a 家旅的一个版本。j 2 m e 通过 对配置的抽象来处理大量千差万别的移动设备硬件功能。j 2 m e 的配置定义, 特定设备可用的虚拟机和a p i ,

温馨提示

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

评论

0/150

提交评论