基于Jabber的即时通信系统的实现

上传人:jiups****uk12 文档编号:40335990 上传时间:2018-05-25 格式:PDF 页数:9 大小:77.15KB
返回 下载 相关 举报
基于Jabber的即时通信系统的实现_第1页
第1页 / 共9页
基于Jabber的即时通信系统的实现_第2页
第2页 / 共9页
基于Jabber的即时通信系统的实现_第3页
第3页 / 共9页
基于Jabber的即时通信系统的实现_第4页
第4页 / 共9页
基于Jabber的即时通信系统的实现_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于Jabber的即时通信系统的实现》由会员分享,可在线阅读,更多相关《基于Jabber的即时通信系统的实现(9页珍藏版)》请在金锄头文库上搜索。

1、基于 J a b b e r的即时通信系统的实现 上海电信技术研究院宽带互联网 杨晓玲 摘要本文主要介绍了基于 J a b b e r服务器实现即时通信系统的原理架构及相关的流程并提出了中国电信互联星空的客户端与即时通信软件的结合的思路 关键字J a b b e r 即时通信星空极速客户端 即时通信I n s t a n t M e s s a g e 是随着互联网的出现而兴起的新型通信手段近年来即时通信业务发展十分迅速比较熟悉的有腾讯 O I C Q 微软 M S N 网易泡泡U C朗玛等不同的即时通信软件使国内 I M 市场竞争变得异常激烈据初步统计2 0 0 3 年中国即时通信软件的最高

2、在线人数已经突破了5 5 0 万人, 随着网络用户数量的攀升 以及I M 软件的不断普及即时通信在线人数将保持快速增长预计到 2 0 0 6 年将突破 1 2 0 0 万人同时在线 今日的即时通信软件功能和应用日趋完善 它从一个简单的发送在线消息和网络聊天工具发展成了一个具有多种功能的通信工具 并可能成为继电话 电子邮件之后的第三种现代通信方式主流的即时通信软件除了典型的文本消息功能外还辅以文件共享视音频通信和电子白板等功能在个人应用和企业应用中发挥着日益重要的作用 1 . 即时通信的架构 I M 系统一般采用 C / S 三层架构由客户端应用服务器和数据库服务器三部分组成 客户端通常用于实现

3、用户界面它提供了一个可视化接口用来显示信息和收集数据它只与应用服务器打交道 应用服务器用于实现应用逻辑 是连接客户端与数据库服务器的桥梁 它响应用户发来的请求执行某种业务任务并与数据库服务器打交道 数据库服务器用于实现数据的定义维护访问更新以及管理并响应应用服务器 客户端客户端应用服务器数据库服务器图 1 . I M 系统 C / S 三层架构 ( 1 ) 客户端与服务器通信结构 在客户端与服务器之间的通信采用 T C P / I P 协议和三层的客户服务器结构如图 2 所示采用这种结构主要是由于客户端和服务器之间通信数据的重要性和基于系统的 可维护性的考虑 客户端 应用程序应用服务器 程序T

4、CPTCPI PI P网络接口层网络接口层数 据 库 服 务 器图 2 . 客户端与服务器通信 ( 2 ) 客户端之间通信结构 客户之间通信有自身的特点即时性要求高传输时延小基于这个要求在传输层采用了 U D P 协议以降低时延提高传输效率达到良好的即时性要求 客户端应用客户端应用U D PU D PI PI P网络接口层网络接口层图 3 . 客户端之间的通信 2 . J a b b e r简介 2 . 1 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 拥有

5、开放的 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 系统包括客户端和服务器端在 J a b b e r 里客户端叫做节点服务器端分三部分: 主机( 即通常所说的服务器) 服务端和网关 主机网关服务节点节点服务节点客户主机外部网络图 4 . J a b b e r 网络架构 J a b b e r使用的是客户端服务端的系统架构而不是其它一些即时消息系统使用的客户端客

6、户端的系统架构所有从一个客户端发给另一个客户端的 J a b b e r 消息和数据都必须通过服务端任何一个客户端都可以通过商议与另一个客户端自由地建立一个直接地连接但这些连接只用于特殊服务地应用有一些场合可以建立这种连接比如文件传输但这些实例必须先通过一个客户端服务端形式进行协商才能建立 2 . 2 X M L协议 X M L是 J a b b e r系统架构的核心部分它最重要的作用是系统的底层可扩展性并能表述几乎任何一种结构化数据X M L 协议包括三个顶级 X M L 元素 ( i n f o / q u e r y ) 这三个元素通过属性A t t r i b u t e 和名字空间N

7、 a m e s p a c e 包含了更多更复杂的数据和各种文件这些元素属性和名字空间一起组合成了 J a b b e r 协议 J a b b e r严格遵守 X M L的同时不需要知道任何关于信息转发中介的信息对于信息转发中介没有任何固有的规定也不需要任何关于信息转发中介的系统架构的知识 3 . 基于 J a b b e r的即时通信系统的实现与应用 3 . 1 J a b b e r即时通信系统的实现 ( 1 ) 服务器端 J a b b e r 服务器端的架构具有以下几个主要特点: ? 所有信息都是以 X M L 为基础的 ? J a b b e r 系统是一个分散系统( d i s

8、 t r i b u t e d s y s t e 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 的设计特别强调如何实现可伸缩性安全性和可扩展性这样可以扩展更多的功能 J a b b e r服务器端软件可设计为由若干个组件构成它们分别实现系统所要求的一些基本功能这些基本功能包括: 会话管理用户和服务器之间的通讯服务器之间的通讯存储用户的个人信息和朋友名单保留用户在下线时收到的信息用户注册用户的身份和权限认证根据用户的要求过滤信息和系统记录等此外即时通讯系统要实现

9、接近实时的信息传输 必须随时知道信息的主机是否在线( p r e s e n c e ) 在服务器和服务器之间的通讯功能里主机的一个模块专门负责和其他服务器实时交换用户是否在线的信息 由于 J a b b e r规范的模块化设计系统的功能可以根据需要扩展这些功能在 J a b b e r服务端实现扩展的简单功能可以包括多用户会议( m u l t i - u s e r c o n f e r e n c i n g 即即时通讯里的多对多通讯) 和其他安全检测软件的整合以及和数据库的连接等等出于安全因素的考虑服务器端必须是主机所信赖的这个要求可以通过公钥管理体系来实现除了这个要求之外J a b

10、 b e r对于它们之间如何交流没有其他任何限制系统管理员可以根据需要通过各种方式把它们连结在一起 ( 2 ) 客户端 基于 J a b b e r 规范的用户端软件可以设计得非常简单 只要它能和服务器建立 T C P 通道而且能够通讯协议即可 一个 J a b b e r 客户端必须支持的功能有 1. 通过 T C P 套接字与 J a b b e r 服务器进行通信 2. 解析组织好的 X M L 信息包 3. 理解消息数据类型 J a b b e r 将复杂性从客户端转移到服务器端 这使得客户端编写变得非常容易, 更新系统功能也同样变得容易 J a b b e r 客户端与服务端通过 X

11、 M L 在 T C P 套接字的 5 2 2 2 以上端口进行通信而不需要客户端之间直接进行通信在实际应用中许多低阶的客户端功能如解析X M L 理解基本的 j a b b e r X M L语言类似 已经包含在J a b b e r 客户端类库中这样可以让客户端的开发人员更多的注重用户界面的开发 ( 3 ) 基本消息流程 一个 J a b b e r 会话由两个平行的 X M L 流组成一个从客户端到服务器端另一个从服务端到客户端 当一个 J a b b e r 客户端连接上一个 J a b b e r 服务器时 这个客户端将发起一个客户端服务器的 X M L 流同时作为响应服务器也将发起

12、一个服务器客户端的 X M L 流 下面给出了 J a b b e r 基本消息流程图 j abber dSessi on exi st ?Sessi on m anagerHost f ond i n ci nf i g?DNS r esol ut i onSer ver t o ser ver com ponentAut her i t i cat e/ r egi st erYNYNCl i ent connect s t o host : 5222Aut her i t i cat e f l owM essage send t o dest i nat i on j abber se

13、r ver or t o t r anspor t 图5 . J a b b e r 基本消息流程 3 . 2 基于 J a b b e r的统一即时通信系统的构建 目前除了腾讯 Q Q 微软 M S N 雅虎通等即时通信产品外各大基础运营商也推出了各自的即时通信工具所有的这些 I M 软件最大的一个问题就是缺乏互联互通的能力不同协议间用户的信息和在线状况交换必须通过协议的转换来实现 但目前的问题是 几种主流即时通讯软件的通讯协议都没有公开所以服务器本身无法实现和其他协议的转换 J a b b e r系列协议主要着眼于互操作性它的构想主要有两方面: 一是让 J a b b e r即时消息在不同

14、的网络间传输 例如穿越防火墙; 二是 J a b b e r 架构允许转换的实现 能兼容各种即时通讯系统和各种即时通讯系统互联可以构建出一个统一的即时通信系统图 6从而实现与主流通讯软件实现有效互通数据共享 基于 X M L格式的可扩展消息和在线信息协议E x t e n s i b l e M e s s a g i n g a n d P r e s e n c e p r o t o c o l X M P P 协议) 是 J a b b e r 系统进行通信的协议基础X M L 被用于 J a b b e r 系统的设计和通信过程中以提供一种通用的统一的描述任何结构化的数据的方式系统中

15、的组件都基于 X M P P 协议 以便于能够和别的组件通信 InternetICQ/MSN transportICQ serverI C Q / M S N t r a n s p o r tJabber serverMSN server J a b b e r s e r v erMSN clinetICQ ()()图 6 . 支持多协议统一即时通信系统 图 6 给出了支持多协议的即时通信系统图 下面主要介绍一下 J a b b e r 系统与其他非 J a b b e r即时通信系统直接的互联 T r a n s p o r t 组件是构成统一即时通信系统结构的重要组件之一T r a

16、n s p o r t 是在服务器上运行的程序 用来和其他非 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 的格式的包 T r a n s p o r t 并不直接和客户端打交道当一个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 服务器把这条消息传到外部路由组件 外部路由组件把消息传递给匹配的 T r a n s p o r t 组件 如果 T r a n s p o r t 是本地的运行在同一台

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号