关闭

Jabber对即时通讯的统一趋势

1362人阅读 评论(1) 收藏 举报

即时通讯面临的主要问题是几种主流协议不统一,AOL、Yahoo和MSN在自己的网络上使用各自的协议。为了解决这个问题,Jabber Software Foundation提出自己的协议和实现这个协议的架构(architecture),所以当提到Jabber的时候,通常是指两件事情,一是Jabber协议,二是Jabber系统。

   Jabber协议是一系列源代码开放的、以XML为基础的协议。Jabber Software Foundation在几个月以前将Jabber 1.2提交IETF(The Internet Engineering Task Force), 目的是想促使它成为通用的标准。需要说明的是,由于Jabber开放源代码,目前Jabber协议有不止一种实现方式,而且协议本身也还在继续发展。

  Jabber的主要构想有两方面,一是让Jabber讯息在不同网络里传输(比如,Jabber讯息可以穿过防火墙,而且Jabber系统可以和其它即时通讯网络连接在一起),二是Jabber协议提供一个桥梁,让使用不同即时通讯协议的用户可以自由地交流。

Jabber的架构及特点

   现在,先来分析一下Jabber的架构。Jabber系统包括用户端和服务器端,在Jabber里,用户端叫做节点,服务器端分三部分:主机(host),即我们常说的服务器,服务端(service)和网关(gateway)。我们将在后面介绍每部分的具体功能。

   Jabber的用户端软件一般来说非常简单,只要它能和服务器建立TCP通道,而且能够理解Jabber讯息即可。由于Jabber开放源代码,任何人都可以改写用户端软件使之包含很多功能。Jabber的设计哲学是用户端简单,服务器端复杂,这样做的好处是,如果Jabber根据需要发展更多功能的话,所有工作都在服务器端进行,用户不必去下载新的Jabber软件。

   Jabber服务器端的架构具有以下几个主要特点:
   1.所有Jabber讯息都是以XML为基础的。
   2.Jabber系统是一个分散系统(distributed system),即Jabber的服务器是分布在网络各处的。
   3.Jabber协议是公开的,程序则开放源代码。
   4.Jabber系统是模块化的,而且Jabber的设计特别强调如何实现可伸缩性、安全性和可扩展性,这样,更多的功能就可以在Jabber平台上开发出来。

即时通讯系统的模式与架构

   即时通讯系统有两种模式,一个是用户/服务器模式,即发信端用户和收信端用户必须通过服务器来交流。另一个是用户/用户模式,即服务器给每对用户建立一个TCP通道,他们的交流在这个TCP之上进行而无需通过服务器。Jabber使用的是用户/服务器的模式,所有Jabber讯息必须通过服务器(即host)才能从一个用户端传到另一个用户端。需要说明的是,任何Jabber用户可以向服务器申请和另一个用户建立直接联系通道,但这个通道只能用来进行特定的文件传输。

   在网络架构设计方面,Jabber在很大程度上参照了电子邮件系统,因此每个用户的Jabber地址就像他的电子邮件地址一样。同时,在Jabber系统里,每个服务器负责接收传给本地用户的所有讯息,服务器之间则实时交换需要发送的讯息。每个Jabber服务器都是独立操作的,因此根据所在网络对即时通讯速度的要求,Jabber系统可以增加或减少服务器的数目。

   Jabber的主机由若干个组件构成,它们分别实现Jabber系统所要求的一些基本功能。这些基本功能包括:Session管理、用户和服务器之间的通讯、服务器之间的通讯、DNS转换、存储用户的个人信息和朋友名单、保留用户在下线时收到的讯息、用户注册、用户的身份和权限认证、根据用户的要求过滤讯息和系统记录等。此外,即时通讯系统要实现接近实时的讯息传输,必须随时知道讯息的主机是否在线(presence)。在服务器和服务器之间的通讯功能里,主机的一个模块专门负责和其他服务器实时交换用户是否在线的信息。

   由于Jabber服务器的模块化,它们的功能可以根据需要扩展,这些功能在Jabber服务端(service)实现。扩展的简单功能包括多用户会议(multi-user conferencing,即即时通讯里的多对多通讯),和其他安全检测软件的整合,以及和数据库的连接等等。出于安全因素的考虑,Jabber服务端必须是主机所信赖的(trusted)。这个要求可以通过公钥管理体系来实现。除了这个要求之外,Jabber对于它们之间如何交流没有其他任何限制,Jabber的系统管理员可以根据需要,通过各种方式把它们连接在一起。

   此外,Jabber突出的特点是可以和其他即时通讯系统交换讯息和用户在线状况。由于协议不同,Jabber和其他系统交换讯息必须通过协议的转换来实现,目前几种主流即时通讯协议都没有公开,所以Jabber服务器本身并没有实现和其他协议的转换,但它的架构允许转换的实现。实现这个特殊功能的服务端在Jabber架构里叫做gateway。目前,有人为Jabber实现了和AIM、ICQ、IRC、MSN Messager、RSS(Rich Site Summary)0.9和Yahoo Messager的协议转换。由于gateway的存在,Jabber架构事实上兼容所有其他即时通讯网络,这无疑大大提高了Jabber的灵活性和可扩展性。

   Jabber协议分析

   前面提到,Jabber协议是以XML为基础的,所以是Jabber讯息不仅可以是简单的文本(text),而且可以携带复杂的数据和各种格式的文件,这也就是说Jabber不仅可以用在人与人之间的交流,而且可以实现软件与软件或软件与人之间的交流。Jabber的这种功能大大扩展了即时通讯的应用范围。

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:175262次
    • 积分:2731
    • 等级:
    • 排名:第13137名
    • 原创:71篇
    • 转载:60篇
    • 译文:1篇
    • 评论:78条
    最新评论
    freeMarker学习归纳
    java学习得好地方
    linux
    music I love