Jabber 技 术 概 况
Jabber即时通信系统服务整体框架的概述
1、Jabber技术概述
本文档包括以下内容:
? Introduction 简介
? Foundations 基本知识
? High-Level Server Architecture高阶服务体系
? Basic Message Flow基本信息流程
? Authentication 鉴定
? Jabber Session Manager Jabber会话管理
? Threading 线程
? Deliver Logic发送逻辑
? Transport 传送器
? Subscriptions 订阅
? Jabber IDs
? Server Dialback 服务
? Conclusion 结束语
? Copyright Information 版权信息
1.1. Introduction 简介
第一个Jabber技术的应用是由开源社区发起并一直领导的即时消息的实时系统。Jabber即时消息(IM)系统和现有IM服务相比较由以下几个关键特点:
? XML为基础
? 分布式网络
? 开放的协议和内核代码
? 模块化的、可扩展的系统架构
本文档提供一个关于Jabber系统架构的高阶概述,主要集中介绍Jabber开源服务器的设计,目前的版本是1.4(译注:目前最新版本是2.0)。关于Jabber的XML协议的相关内容,请参见Jabber Protocol Overview参考文档(http://docs.jabber.org/general/html/protocol.html)。
(注:本文档综合了以下文件内容:Jeremie Miller 1999 年11 月19 日 的《Jabber系统架构概况》,Peter Millard 在 2000 年 4 月 25 日 关于此文档的上一个版本,Peter Saint-Andre 2000 年11 月6 日 的《Jabber白皮书》
1.2. Foundations 基础知识
Jabber在设计上很大程度上沿袭了Internet上最成功的消息系统:即email。这样Jabber就可以在一个使用共同协议的服务器组成的分布式网络上提供通信,连接这个网络的客户端,可以象接收消息一样发送消息给同一个服务器或其他Internet上的服务器上的用户。不过,尽管email是一个存储-转发系统,但Jabber转发消息却是实时的,因为Jabber服务器(连同其他所有Jabber服务器在内)知道一个用户什么时候在线。这个能力被成为在线,也是即时消息的核心所在。Jabber通过两个附加功能提供这些IM标准特性,这也使得Jabber与众不同。首先是一个允许消息系统间协同作业的开放协议。其次是建立在XML上的强大根本,它使得非但是两个人之间的通信,甚至是应用软件之间的通信成为了可能。
上述每一个功能都将在下文进行进一步的阐述,并进一步扩展本文档的内容。
1.2.1. Client/Server 客户端/服务端
Jabber使用的是客户端-服务端的系统架构,而不是其它一些即时消息系统使用的客户端-客户端的系统架构。所有从一个客户端发给另一个客户端的Jabber消息和数据都必须通过服务端。任何一个客户端都可以通过商议与另一个客户端自由地建立一个直接地连接,但这些连接只用于特殊服务地应用。有一些实例被鼓励建立这种连接,比如文件传输,但这些实例必须先通过一个客户端-服务端形势进行协商,才能建立。
1.2.2. Distributed Network 分布式网络
Jabber地网络体系是模仿e-mail系统地。每一个用户都有自己的本地服务器,并从该服务器上接收信息,消息和在线信息在这些服务器之间传输。可以添加任意数目的Jabber