(计算机应用技术专业论文)基于qtopia平台的jabber即时通讯客户端的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于qtopia平台的jabber即时通讯客户端的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于qtopia平台的jabber即时通讯客户端的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于qtopia平台的jabber即时通讯客户端的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于qtopia平台的jabber即时通讯客户端的设计与实现.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

(计算机应用技术专业论文)基于qtopia平台的jabber即时通讯客户端的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 即时通讯( i i l s t a n tm e s s 哂n g ,简称i m ) 通常是指应用在计算机网络平台上的, 利用点对点的协议,能够实现即时的文本、图片、音频和视频交流的一种通信方 式。随着互联网的迅猛发展,网络应用的多样化,即时通讯逐渐成为互联网应用 的热点。 手机的不断普及及其功能的日益强大,已经为即时通讯从传统的p c 机到手机 的移植做好了充分的准备。手机即时通讯,除了具备传统即时通讯的优势,还有 其特有的便携性和普及性,这些可以为用户提供更方便快捷的服务。用户可以随 时随地利用手机即时通讯和任何人进行任何方式的沟通。 j a b b e r 是指用于在i n t e n l c t 上的任意两点之间进行实时通信的,传递x m l 元 素的一套开放协议,以及能利用这些协议建立的技术。j a b b e f 协议是以l 为基 础,具有开放的协议及内核代码。由于这些特点,不仅使两个使用相同的即时通 讯系统的用户可以互相通信,还使不同的即时通讯系统的用户之间互通消息成为 了可能。j a b b e r 采用分布式网络体系结构和模块化的、可扩展的系统架构,使得它 的开发变得简单,而且易于功能的扩展。 q t o p i a 智能手机平台由于其友好的用户界面,简明直接的开发环境,并可自 由修改源代码等特点,使得它拥有众多的开发者。 本文对j a b b e r 即时通讯系统框架、j a b b e r 协议、服务器架构及关键技术作了详 细的分析,并在此基础之上设计了一个基于q t o p i a 智能手机平台的即时通讯客户 端。该客户端结合了j a b b e r 协议和q t o p i a 平台的特性:第一,具有手机即时通讯 客户端的特征;第二,能实现多种不同的即时通讯系统的互通。 关键词:即时通讯,j a b b e r ,q t o p i a ,x m l a b s t r a ( 了r a bs t r a c t i n s t a n tm e s s a 百n g ( i m ) i sak i n do fc o 删m 埘c a t i o nb a s e do nc 伽叩u t e rn e 撕o r k , w h i c hc a nc 锄yo u tr e a l t i m et e x t ,i m a g e ,a u d i oa 1 1 dv i d e ob y1 l s i n gp o i n tt 0p o i n t p r o t o c 0 1 w i mm er a p i dd e v e l o p m e n to fi n t 伽:1 e ta 1 1 dm ed i v c 狷i 6 c a t i o no fn e 觚o r k 印p l i c a t i o n s ,h l s t a l l tm e s s a 百n gi sb e c o m i n gm eh o t s p o to fh l t e m e t 印p l i c a t i o n s 砧o n gw i t ht h ep o p u l 撕t yo fm o b i l ep h o n ea n dt h em i g h t i n e s so fi t s 劬“o n ,m e m a r k e th a sa l r e a d yp r 印砌f o rm e 仃趾s p l a n to fi m 舶mp ct 0h a i l d h e l dd e v i c e e x c e p tf o rm e 衄a d i t i o n a la d v a n t a g c s ,i mf a c i l i t y o nm o b i l ep h o n ei so fs p e c i a l p o r t a b i l i t ya i l dp o p u l a d 坝b yw m c hi tc a np r o v i d eu s e r sw i t hs e r v i c em o r ec o n v e m e n t l y a 1 1 df i a s t e lt h eu s e r sc a ne x c h a n g ew i m 锄y b o d yw h e r e v e ra i l dw k m e v e ri na n yw a y j a b b e ri sa l l 叩e 1 1p r o t o c 0 1f o rm er e a l - t i m ee x c h a i l g eb 曲 ,e e l la n y 铆op o i n t so n m ei i l t e m e ta i l dt h et e c h n 0 1 0 9 yb u i l to nm e s ep r o t o c o l s t h ej a b b e rp r o t o c o l i sb a s e do n x m la 1 1 do p 砌n gt 1 1 ep r o t o c o la n ds o u r c ec o d e s oi tp r o v i d e sn o to n l yt h ee x c h a z l g e b e t w e e n 押os 锄ei ms y s t e n l s ,b u ta l s om ep r o b a b i l i t yo fe x c h a i l 西n gb e m e 肌m e d i 您玎e n ti ms y s t e m s t h e 矗a 1 1 1 e w o r k 卸c h i t e c t u r eo f j a b b e ri sd i s t r i b u t e d ,m o d u l a ra i l d e x p a l l s i v e ,w l l i c hm a l ( e si ts i m p l et od e v e l 叩a i l de a s yt oi i i l p l e i i l e n t q t o p i ap h o n ep l a t f o n np r o v i d e sm e l l s e rw i m 缸e 1 1 d l yu s e ri n t e r f a c e t h ep l a t f o n i l i sas i m p l ed e v e l o p i l l ge n v i r o i m l e i l t a n dm ed e v e l o p e rc a ng e tm eo p e i ls o m e s o m a n yd e v e l o p e r sw o f ko ni t i nt h i sm e s i s ,t h e 鼬n e w o r ko fj a b b e ri ms y s t e m ,j a b b e rp r o t o c o l s ,m ef h m e w o r k a n dk e yt e c h n o l o g yo f j a b b e rs e r v e ra r e 柚a l y z e dd e t a i l e d l ya n daj a b b e rc l i e n tb a s e d o nq t o p i ap l a t f o 锄h a sb e e nd e s i 盟e d ,、) l 缸c hc o m b i n e sm ec h 踟l c t e ro fj a b b e rp r o t o c o l a 1 1 dq t o p i ap l a t f o n l l i t sc h a r a c t e r sa r ea sf 0 1 l o w s :f i r s t l y ,i ti sa i li mc l i e n to nm o b i l e p h o n e ;s e c o n d l y ,i ti m p l e m e l l t st l l ee x c h a i l g eb e 觚e e nv 撕e 哆d i 毹础l ti ms y s t e i t l s k e y w o r d s :i n s t a n tm e s s a 舀n g ,j a b b q t o p i a ,x m l i i 主要术语表 主要术语表 缩写一 墓奎主奎 _ _ - _ _ _ _ - _ _ _ _ 一。一 i m i n s t a n tm e s s a 西n g即时通讯 a o la m 甜c a i lo n l i n e 美国在线 a i m a o lh l s t a i l tm e s s a 百n g美国在线的即时通讯软件 x m p p e x t e l l s i b l em e s s a 西n ga 1 1 d 可扩展消息处理现场协议 河p 口j 形成猾思处埋巩功附以 p r e s 锄c ep r o t o c o l j dj a b b 既i d 础j f i c a t i o n j a b b e r 实体标识 j s m j a b b e rs e s s i o nm a n a g e r j a b b e r 会话管理器 x d bx 妯ld a t a b a s e ) ( m l 基数据 g u ig r a p l l i c a l lu s e ri n t e r f a c e 图形用户界面 le x t e i l s i b l em a r k u pl a n g u a g e 可扩展标记语言 s a x s i m p l e a p if o r ) ( m l l 简单应用编程接口 d o md o c u m e n to b e c tm o d e l 文档对象模型 v i 图索弓 图索引 图2 1 j a b b e r 用户之间的通信6 图2 2j a b b e r 的c 1 i e i l t s e n ,e r 架构7 图2 3h l t e m e t 上两台服务器组成一个j a b b e r 系统8 图2 4j a b b e r 服务器通过n 彻s p o r t 与a o la i m 通信9 图3 1 高阶系统架构演示图18 图3 2 基本消息流程1 9 图3 3 认证的活动流程2 l 图3 4 会话管理器的活动流程2 3 图3 5 线程池模型2 4 图3 6 消息传递逻辑2 5 图3 7j a b b e r 传输器工作的高级概览图2 6 图3 8 服务器同滚过程2 8 图3 9 登录验证流程2 9 图3 ,1 0 用户注册流程3 0 图3 1 l 好友花名册处理流程一3i 图3 1 2 好友上线通知流程3 1 图3 1 3 添加好友流程3 2 图3 1 4 删除好友流程3 3 图3 15 给好友发送消息流程图3 4 图3 1 6 退出服务流程图3 5 图4 1 客户端的主要功能3 7 图4 2 客户端分层架构图3 9 图4 3j a b b e r 协议功能模块分层4 0 图4 4 客户端总体功能规划图4 3 图4 5 客户端消息处理流程4 4 图4 6 客户端各项服务请求流程4 4 图4 7 客户端各项服务响应流程4 5 图4 8 客户端总体通讯流程一5 2 图4 9 客户端系统功能库分层设计5 3 图4 1 0 会话池设计5 3 图4 1 1x m l 解析系统示意图5 5 图4 。1 2x m l 解析器设计5 5 图4 13 包处理模块流程图5 6 图4 1 4 事件处理模块流程图5 7 图4 1 5 插件解决方案示意图5 8 图4 1 6q t o p i a 软件体系结构6 l 图4 1 7q t o p i ap h o n ee d i t i o n 部件关系图6 2 图4 一1 8q t o p i a 文件系统目录结构6 6 图4 1 9 应用程序信息管理的流程6 7 图4 2 0 客户端主界面7 0 图4 2 1 客户端改变状态信息7 0 v i i 图索弓 图4 2 2 客户端好友对话界面。7 1 v i i i 表索弓 表索引 表2 1 元素1 2 表2 2 元素13 表2 3 元素15 表2 _ 4j a b b e r 常用的标准名字空间一1 5 表4 1 应用程序接口4 l i x 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名:盔盘丝日期:秒多年f 月z 钿 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:盔童2 毽 导师签名: 日期:多们吕年占月2 6 日 第一章绪论 1 1 引言 第一章绪论弟一早珀1 = 匕 即时通讯( i i l s t a n tm e s s a 百n g ,简称i m ) 通常是指应用在计算机网络平台上的, 利用点对点协议,能够实现即时的文本、图片、音频和视频交流的一种通信方式【l j 。 互联网的发展推动了即时通讯的发展。即时通讯是一种新兴的互联网交流方 式,它之所以深受青睐,完全得益于它在沟通中为用户带来的极大便利。与传统 的电话、e m a i l 等通信方式相比,即时通讯具备快捷、廉价、隐秘性高的特点, 在网络中可以跨年龄、身份、行业、地域的限制,实现人与人、人与信息之间的 零距离交流。 目前i m 已经成为继e m a i l 、w 曲之后的第三大互联网应用【2 1 。 1 2 即时通讯简史 即时通讯已经有超过2 0 年的历史,它的出现和互联网有着密不可分的关系。 从技术上来说,它完全基于t c p i p 网络协议族来实现。 1 9 9 6 年4 个以色列青年成立的m i r a b i l s 公司推出了他们的第一款网络即时消 息传呼软件i c q ,英文意思是”is e e ky o u ”。这是第一次在即时消息领域有了 重大突破。不久后a o l ( a m 甜c a no n l i n e ) 将i c q 收购,推出了自己的即时通讯软 件a i m ( a o li n s t a n tm e s s a 西n g ) 。随后几年,即时通讯技术越来越受到各大软件厂 商的关注,m i c r o s o f i 公司和y a h o o ! 也相继进入这个领域,并推出了各自的产品。 在中国市场上,则以在1 9 9 9 年2 月推出q qb e t a 版本的腾讯q q 为主导,目前在 即时通讯市场其份额高达7 7 9 【3 】【4 】。 1 3 即时通讯现状 根据艾瑞咨询最新推出的“网民连续用户行为研究系统”的最新数据显示【5 】, 2 0 0 7 年前三个季度中国即时通讯软件整体覆盖的网民数量呈现稳步上升趋势,截 至该年第三季度的9 月,即时通讯软件的覆盖人数达到了1 2 亿人,即时通讯软件 电子科技大学硕十学位论文 总体启动次数达到了1 0 4 亿次,同2 0 0 7 年初相比,增长超过4 0 。这表明即时通 讯正处于一个高速的发展期。 即时通讯提供了一个便捷的网络终端服务,从诞生初期的两人对话、纯文本 对话,到现在多人网络对话、多种信息格式对话,即时通讯传递的不再只是文字 信息、普通文件,而是更多地包含了语音与视频交流、大文件的高速传递。这种 多功能的通讯工具由其交流即时的特性所引导,在通讯的时效性上击败了电子邮 件,在交流的内容多样性上战胜了移动电话,从而在互联网平台上和移动通信平 台上都处于领先的位置。 手机的不断普及以及其功能的日益强大,已经为即时通讯从传统的p c 机到手 机的移植做好了充分的准备。手机即时通讯,除了具备传统即时通讯的优势,还 因其特有的便携和普及的特性,可以为用户提供更方便快捷的服务。 进入2 0 0 6 年,即时通讯软件在跨网络、跨平台的信息沟通能力不断得到加强, 尤其是通过短信渠道与手机的信息互换、互联网即时通讯软件间的语音沟通、互 联网上即时通讯软件与移动电话和固定电话间的互通等。即时通讯市场上出现了 新的面孔,如:中国卫通和广州易联联合推出的群英会、中国移动的飞信和中国 联通的超信。 由此可见,即时通讯与手机的结合,使得手机即时通讯客户端软件进入了一 个快速发展的阶段。 1 4 即时通讯发展趋势 1 4 1 即时通讯与电子邮件的融合 短信、电子邮件、即时聊天、语音邮件等,都是重要的信息传输媒体,如果 把电子邮件和即时通讯的标准进行整合, 带来更大的方便和更弹性的应用空间【1 1 。 把上述的这些应用协调起来,将为用户 目前已有公司在进行这方面的工作,如: 网络电话的应用程序,可将语音信息转换为数字文件,该数字文件可被转换发到 电子邮件的收件箱内,被转换成音频的电子邮件也可以通过电话收听。目前,不 少i m 软件都与电子邮件捆绑,如:m s n 和g t a l k ,它们的出现代表着i m 与电子 邮件日益融合的趋势。 2 第一章绪论 1 4 2 多媒体化与多功能化 i m 实现的不再只是简单的文本交互信息,还包含了众多的多媒体信息。随着 i m 技术的进步,以及互联网带宽的不断拓展,音频、视频功能已逐步成为m 软 件中的一部分,音频、视频的融合将会成为未来m 软件发展的主流。 目前i m 具有丰富多彩的功能,它几乎捆绑了互联网上各种流行的应用,既可 以是一款媒体播放器,也可以是浏览器、搜索引擎或者是网络硬盘,也可以是r s s 信息聚合器。 1 4 3 跨平台 跨平台也是i m 软件发展演变的趋势,这不仅表现在i m 软件可以在不同类型 的操作系统平台上运行并互通,其网络承载平台还可以从互联网逐步向电信网, 甚至广电网拓展,并且它们之间还能实现互通,如目前出现的移动i m 。这种跨平 台通讯的特性有助于i m 成为未来通信的核心,并能整合其它各种通信方式,为用 户提供真正的综合通信解决方案。 随着即时通讯的发展,即时通讯已经跨越原来狭义上的“网络 概念,正向 更为广义的方向迈进。未来的即时通讯软件可以让用户随时随地和任何人进行任 何方式的沟通,不仅在电脑上,还可以在手机、固定电话等任何终端上。 1 5 本文的工作 本文的主要工作目标是对j a b b e r 即时通讯系统框架、j a b b e r 协议、服务器架 构及关键技术进行详细的分析,并参考现有即时通讯客户端的设计,研究并设计 一个基于q t 叩i a 智能手机平台的即时通讯客户端。 1 6 论文组织 本论文其余部分组织如下: 第二章为j a b b e r 概述,主要介绍了j a b b e r 系统的基本架构,包括客户服务器 模型、分布式网络结构及模块化服务器端等;还介绍了j a b b e r 的三个核心协议: 、 、 ; 第三章对j a b b e r 服务器架构进行了分析,内容包括高阶服务器系统架构、基 电子科技大学硕士学位论文 本消息流程、认证流程、会话管理、线程池模型、传送逻辑、与外部系统的通讯 以及服务器的即时通讯流程等。 第四章为本文的核心部分,即j a b b e r 客户端的设计与实现,包括客户端设计 的需求分析、总体框架、功能模块、客户端即时通讯流程、基本模块设计、q t o p i a 开发平台介绍等。 第五章是总结与展望,对全文进行总结,并结合本文的研究提出了自己的一 些需要改进的地方。 4 第二章j a b b e r 概述 第二章j a b b e r 概述 j a b b e r 是广泛应用在i n t e m e t 上的任意两点之间进行实时通信,且能传递x 】l 元素的一套开放协议,它也是能利用这些协议建立通讯的技术。j a b b e r 技术以基于 x m l 的即时通讯和到场平台而闻名,它的核心协议可扩展消息处理现场协议 ( e x t e l l s i b l em e s s a 百n ga n dp r e s e l l c ep r o t o c o l ,简称x m p p ) 提供了建立各种不同 即时通讯系统x m l 流的基础。 j a b b e r 即时通讯系统和传统m 服务相比,它有以下几个主要特点 6 】: ( 1 ) x m l 为基础; ( 2 ) 分布式网络; ( 3 ) 开放的协议和内核代码; ( 4 ) 模块化的、可扩展的系统架构。 j a b b e r 技术发展至今已经相当成熟了,很多工程师仍在从事j a b b e r 技术的开 发。到目前为止已经有数以万计的j a b b e r 服务器在i n t e m e t 上运行,并且有数百万 的人用j a b b e r 来搭建即时通讯系统。 2 1j a b b e r 系统例子 j a b b e ri m 系统的架构虽然与经受时间考验的e r i l a i l 架构极其相似【7 1 ,但它们之 间还是有一些不同的地方。如果认为j a b b e r 就是“即时的e m a i l ”,那就完全错了。 为了理解j a b b e r 的工作流程,现举例说明j u l i e t 和r o m e o 是如何实现通话的。 j u l i e t 并不是能通过点对点直接把消息发送给r o m e o ,起码在j a b b e r 本身不是 这样的。j u l i e t 的账号在某一台j a b b e r 服务器上,它的j a b b e r 标志( 即”j i d ”,详细 说明见2 2 4 节) 看起来跟锄i a l 地址是一样的。现在假设她用”j u l i e t ”在名为 ”c a p u l e t c o m t 的服务器上注册了账号,那么她的j i d 就是j u l i e t c a p u l e t c o m 。同 样r o m e o 也在另一个服务器上得到了如下一个j i d :r o m e o m o n t a q u e n e t 。 一旦j u l i e t 登录到c a p u l e t c o m 服务器,她就可以发送消息给好友了。现在假 设j u l i e t 在一台计算机上打开了客户端,将会出现以下过程: ( 1 ) j u l i e t 发送消息给r o m e o m o n t a u q u e n e t ; ( 2 ) c a p u l e t c o m 的j a b b e r 服务器处理该消息; 5 电子科技大学硕士学位论文 ( 3 ) 如果两服务器还没有连接,c a p u l e t c o m 开启一个到m o n t a q u e n e t 的服务 之间的连接; ( 4 ) 如果m o n t a q u e n e t 允许c a p u l e t c o m 的连接,c 印u l e t c o m 消息就转发到 m o n t a q u e n e t 上面; ( 5 ) m o n t a q u e n e t 的服务器,看到这个消息是发送在它上面的叫r o m e o 的用 户。如果r o m e o 在线,这个消息就转发到r o m e o 的客户端上;如果不在线消 息将保存在服务器上; ( 6 ) 这个消息在r o m e o 的客户端上显示出来。 i n t e m e t 上有很多服务器,服务器与服务器之间存在连接问题;另外,客户端 可以运行在不同的操作系统上,存在差异性。这些问题均由j a b b e r 来处理,也就 是说任意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 所示: c 印u l e t c o mm o n t a q u e n e t j u l i e n e t 图2 1 j a b b e r 用户之间的通信 该例子说明了用户利用j a b b e r 协议进行通信的大致流程,下节将介绍j a b b e r 系统的基本架构。 2 2j a b b e r 系统基本架构 2 2 1j a b b e r 架构基础 从上面的例子中也可以看出:j a b b e r 在设计上很大程度上沿袭了i m e m e t 上最 成功的消息系统【7 】【8 】【9 】:即e i i l a i l 。这样j a b b e r 就可以在一个使用共同协议的服务器 组成的分布式网络上提供通信,连接这个网络的客户端,可以像接收消息一样发 6 第二章j a b b e r 概述 送消息给同一个服务器或其它m t 锄e t 上的服务器上的用户。不过锄a i 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 通过两个附加功能来实现i m 的特性,这使得 j a b b e r 与其它m 与众不同:首先它是一个允许通信系统间协同作业的开放协议; 其次由于它是建立在) 嘶l 上,使得它不仅使两个人之间的通信,甚至是应用软件 之间的通信成为可能。 2 2 2 客户端服务端( c l i e n t s e r v e r ) j a b b e r 使用的是客户端一服务端的系统架构,而不是其它一些即时通讯系统所 使用的客户端一客户端的系统架构。这就意味着,所有从一个客户端发给另一个 客户端的j a b b e r 消息和数据都必须通过服务端,任何一个客户端都可以通过商议 与另一个客户端自由地建立直接连接,但这些连接只用于特殊服务的应用。鼓励 某些实例建立这些连接,比如文件传输,但这些实例的连接必须首先通过客户端 一服务端的形式进行协商才能建立。 j a b b e r 的c l i e n t s e e r 架构如图2 2 所示: 图2 2j a b b e r 的c l i e n t s e r v 钉架构 j a b b e r 客户端通过5 2 2 2 端口上的t c ps o c k e t 连接到j a b b e r 服务器,服务器之 间通过5 2 6 9 端口相互连接。在客户与服务器的会话期间,应保持这种连接的畅通。 这就意味着客户无需像e m a i l 客户所做的那样,必须进行轮询来获取消息。与此相 7 电子科技大学硕士学位论文 反,只要你是在线的,别人发送给你的所有消息都会立即推到你的客户。服务器 追踪你是否在线,并在你离线时存储所有发送给你的任何消息,以在你再次上线 时递送给你。 2 2 3 分布式网络( d i s t r i b u t e dn e t 、) r o r k ) j a b b e r 的网络体系是模仿e m a i 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 服 务器,并拥有其自身的用户列表。通过1 1 1 t 锄e t ,任一个j a b b e r 服务器都可以和其 它服务器进行通话。由于每一个用户都与一个特殊服务器( 提供注册服务的服务 提供商或行政管理企业) 相对应,这使得j a b b e r 地址看起来和e i n a i l 地址的形式一 样,如:x i a o h y j a b b o r g 。 因此通过j a b b e r 所建立的是灵活、可控制的服务器网络,它可以扩展到很大 规模的,远远高于如a o l 、m i c r o s o r 和y a h o o ! 这样的传统i m 供应商所运行的整 体和集中式服务。 如图2 3 所示,为i n t e m e t 上两台服务器组成一个j a b b e r 系统: 2 2 4 地址格式 图2 3i n t 锄e t 上两台服务器组成一个j a b b e r 系统 在j a b b e r 网络中,有许多不同的实体需要进行相互的通信。这些实体可以表 现为服务器、网关、群组聊天室或单一的j a b b e r 用户等。每个实体都有相应的j a b b e r i d e l l t i f i e r ( j i d ) ,即实体地址。j i d 是唯一确定进行即时通讯和在线状态信息通信的 第二章j a b b e r 概述 独立对象,可用来兼容其它的即时通讯系统( 如m s n 等) 。所有这些实体都统一 遵循r f c 2 3 9 6 【h ,一个有效的j i d 包括如下元素: ( 1 ) 域名( d o m a i ni d e n t i f i e r ) :j a b b e r 服务器的域名: ( 2 ) 节点( n o d ei d e n t 墒e r ) :表示用户名或服务等; ( 3 ) 资源( r e s o u r c ei d e n t i f i e r ) :用来识别属于用户的位置或设备等,一个用 户可以同时以多种资源与同一个j a b b e r 服务器连接。 j m 的语法为: n o d e 】d o m a j n r e s o u r c e 】,比如:x i a o h y j a b b o 吲c o n t a c t 。 2 2 5 模块化服务器端( m o d u l a rs e r v e r s ) j a b b e r 服务器有如下三个主要的作用: ( 1 ) 监听客户端连接,并直接与客户端应用程序通信; ( 2 ) 与其他j a b b e r 服务器的通信; ( 3 ) 协调各种关联的服务器组件。 图2 4j a b b e r 服务器通过仃a n s p o n 与a o l 触m 通信 j a b b e r 服务器是由模块化的,由不同的代码包所构成的。这些代码包分别处理 类似用户认证、数据存储( 离线消息、花名册、用户信息等) 等等。此外,服务 器可以通过外部组件来进行扩展:如完整的安全策略,允许服务器组件的连接或 客户端选择,通向其它即时通讯系统的网关等。 一个模块化的例子就是通过把j a b b e rx m l 翻译成其它协议的”t r a j l s p o r t ”( 传 输器) ,来实现j a b b e r 消息系统与非j a b b e r 消息系统之间进行消息和在线信息的交 流。这些传输器虽不是服务器的内核,但它们可以很容易地被添加到内核的程序 中,为终端用户提供更强大的服务功能。 9 电子科技大学硕士学位论文 图2 4 描述了j a b b e r 系统通过仃a 1 1 s p o r t 实现与其它即时通讯系统兼容的流程。 2 2 6 简单的客户端( s i m p l ec h e n t s ) j a b b e r 系统的一个设计标准是必须支持简单的客户端( 如同和t e l n e t 连接一样 简单的客户端) 。事实上,j a b b e r 系统架构对客户端几乎没有什么限制。j a b b e r 客 户端必须支持的功能有: ( 1 ) 能通过t c p 套接字与j a b b e r 服务器进行通信; ( 2 ) 能将组织好了的l 信息包进行解析; ( 3 ) 能理解消息的数据类型。 由于j a b b e r 将功能的复杂性从客户端转移到服务器中,这使得客户端的设计 变得非常容易,更新系统也同样变得很容易。j a b b e r 客户端与服务端通过l 在 t c p 套接字的5 2 2 2 端口上进行通信,而不需要客户端之间直接进行通信。在实际 应用中,许多低阶的客户端功能( 如解析x m l 信息包,理解基本的j a b b e rx m l 语言如 , , 等) 都已经包含在j a b b e r 客户端类库中。 2 3j 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 不仅可以用在人与人之间的交流,还可以实现软件与软件或软件与人之间的 交流,j a b b e r 的这种功能大大扩展了即时通讯的应用范围。 在j a b b e r 协议中,所有的j a b b e r 交换都发生在一个l 流的上下文中,在 j a b b e r 的x m l 流协议中,包括了以下三个最基本的处于顶层的元素【1 2 】: ( 1 ) ; ( 2 ) ; ( 3 ) ( i n f 0 q u e r y ) 。 这三个元素通过属性( a 缸b u t e ) 和名字空间( n 锄e s p a c e ) 使这些元素包含了 更多更复杂的数据和各种文件,这些元素、属性和名字空间一起组合成了j a b b e r 协议。所有 , 以及 元素都被放在这些j a b b e r 会话的x m l 流的上下文中。 1 0 第二章j a b b e r 概述 2 3 1x m l 流 x m l 流和x m l 节点这两个重要的概念使得在线用户之间的快速、异步的信 息交换成为现实。它们分别定义如下: x m l 流:一个l 流是网络当中两个实体之间进行信息交换的容器。一个 x 】l 流的以 为标签开始( 带有合适的属性和一些名字空间的声明) 并且 以一个明确的 标签结束。在x m l 生命期间,j a b b e r 客户端通过发送一个 未绑定的元素与服务器协商来初始化他们之间的对话,然后通过标签 , , 为根标签进行会话。从初始化实体发送出去的流可以看成一个初 始化实体和接收实体之间的第一次“会话 ,初始化流建立了一条从初始化实体到 接收实体之间的通道。为了进行信息交换接收实体必须返回一个响应流。 x m l 节点:l 节点是一个离散的结构信息语法单元。它包含在l 流中 并从一个实体发往另一个实体。这些x m l 节点存在于流节点 下一级。 x m l 节点起始处放置于x m l 流的第一层,它的深度为l ( 如: ) ,在 节点结束的地方也会有一个相应的节点结束标志( 如: ) 。一个l 节点也可以包含子元素( 伴随着一定的属性、元素和l 数据) 来表达一些必要 的信息。在j a b b e r 协议中定义了三个节点,即 、 和 。 这三个节点分别对应三个缺省的名字空间。这里要注意的一点就是:在进行传输 层安全认证协商、简单授权和安全层协商或者服务器回拨过程中发送的) ( m l 元素 不能看成是x m l 节点。 一次完整的j a b b e r 协议会话包含了两个相互平行的x m l 数据流,一个是从客 户端到服务器端,另一个是从服务器端到客户端【1 3 1 。在客户端与j a b b e r 服务器之 间连接的生命期间,两个完全的l 文档在一个时间传输一个片段。在连接到 j a b b e r 服务器时,客户端初始化一个c l i e n t t o s e e r 的) ( i 订l 流,而服务器则初始 化一个s e r v 昏t o c l i e n t 的x m l 流以响应客户端。以下是一个例子,显示了最初连 接时客户端开始发送) ( 1 l 流到服务器并且服务器发送x m l 流响应客户端,送到 服务器的消息带有s e n d 前缀,客户端接收的消息带了r e c v 前缀【1 2 】: s e n d : r e c v : 屯子科技大学硕士学位论文 2 3 2 元素 元素是j a b b e r 开放x m l 协议中三个顶级元素之一,该元素与其内 的属性构成了用户之间的聊天信息的包容体,也就是说用户之间的聊天信息内容 必然是由 元素包容在里面的,以下举例说明: w e l c o m e 饥o d y t ,m e s s a g e h i ,h i ! h e l l o ! n o tf o m l d 壅兰:! 三婴塑! 垒g 呈金丞耋 元素或属性说明 m e s s a g e t o 丘d m t y p e b o d y e n o r 表示里面包容的是聊天消息 消息的目的用户的j i d 号,也可以是聊天室的j i d 号 消息发送者的j i d 号 表示聊天的类型: 【d e 矗l u l t 】:表示是一条普通消息 c h a t :表示是一对一的聊天 g r o u p c h a t :表示是聊天室群聊 e 仃o r :表示出现了错误,具体错误信息在 属性中 具体的聊天信息内容 具体的错误信息 元素具体说明如表2 1 所示。 1 2 第二章j a b b e r 概述 2 3 3 元素 元素提供关于一个ja _ b b e f 实体的可用性信息。任何一个通过j i d 确认的实体可以与另一个实体进行在线状态信息的通信,这种通信大多以订阅在 线状态信息的方式进行。 p r e s e l l c e 协议主要有两项重要的任务:第一,更新用户的当前状态;第二,管 理订阅用户当前状态的行为。所有实体表现出的在线状态不是“可用”就是“不 可用”。“可用”状态表示发送者可以立即收到消息;“不可用 状态表示发送者不 能在当前时间收到任何数据。默认情况下,所有 元素除非包含 t y p e - u i l a v a i l a b l e ”属性外,都表示“可用 。“可用的更多特殊形势通过 和 外出吃饭 a w a y 吲s h o w 外出吃饭 元素具体说明如表2 2 所示: 耋呈:兰三鬯! 塑! 型三垂耋 元素或属性 说明 避墨塑堡室重里亘鱼窒塑星旦生垄垡堡,垦 消息的目的用户的j i d 号。如果没有该属性,则表示发送 幻 的这个在线消息是一个广播 舶m消息发送者的j i d 号 电子科技大学硕士学位论文 堡耋兰:兰三望堡! 曼翌! 型三匹鲞 元素或属性说明 用户的在线状态: a w a y :表示用户外出 s h o w c h a t :表示用户处于聊天在线状态 d n d :表示用户不希望被打扰 x a :表示用户一段时间没有在计算机前了 其内包含了更多的关于用户的状态信息内容,内容可由用 s a m s 户自己定义,如。外出吃饭

温馨提示

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

评论

0/150

提交评论