jabberd2-系统架构_第1页
jabberd2-系统架构_第2页
jabberd2-系统架构_第3页
jabberd2-系统架构_第4页
jabberd2-系统架构_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

jabberd2 系统架构2009年05月08日 星期五 下午 5:31jabberd 2 结构(草案) 原文来自/2/docs/section13.html1. jabber网络结构: jabber的网络中包含了3类关系: jabber客户端-jabber服务器 jabber服务器-jabber服务器 jabber服务器-外部IM网关 PC 2 SVR 2 PC 3 .-. .-. .-. | | | | | | | ,-. | | ,-. | | ,-. | | , . | | , . | | , . | |( Jabber 客户端 -+-+- Jabber 服务器 -+-+- Jabber 客户端 )| | . , | | . , | | . , | | - | | -+- | | - | - -+- - | PC 1 | .-. .-+-. | | | | | SVR 1 | ,-. | | ,-+-. | | , . | | , . | |( Jabber 客户端 -+-+- Jabber 服务器 )| | . , | | . , | | - | | -+- | - | | | | ,-+-. | | , 外部 . | |( IM )| | . 网关 , | | -+- | -+- | | .-+-. .-. | | | | | | ,-+-. | | ,-. | | , 外部 . | | , 外部 . | |( IM -+-+- IM )| | . 服务器 , | | . 客户端 , | | - | | - | - - SVR 3 PC 4 图例 +-+ | | | +-+ TCP/IP 连接 | | | | ,-. | | , . | | ( ) 软件包或者模块 | | . , | | - | | | | .-. | | | | | | | | 计算机: | | | | PC 或者物理服务器 | | | | | | - | | | +-+ 1.1 jabber客户端-jabber服务器 如果两个jabber客户端(如PC1,PC2)的帐户在同一服务器上,他们就可以通过一个服务器进行交流。这种情况被称为一个闭合(close)的系统或者私有(private)系统1.2 jabber服务器-jabber服务器 对于两个帐户在不同服务器的客户端(PC1-PC2,PC2-PC3),该模式提供了一种桥方法,服务器与服务器之间建立一个桥来实现连接1.3 jabber服务器和外部网关的连接 一个外部网关就像一个适配器,将不同格式的数据相互转换2. jabberd的组件结构: jabberd 2 的组件都是依靠TCP/IP协议通讯的: * 路由(Router) * 服务器-服务器(s2s) * 分解器(Resolver) * 会话管理(SM) * 客户端-服务器(C2S) jabberd 2 还使用了一些第3方组件 * 应用数据存储(Application Data Store) * 验证数据存储(Authentication DAta Store) * 外部IM网关 jabberd 2组件示意图 PC 1 SVR 2 SVR 3 .-. .-. .-. | | | | | | | ,-. | | ,-. | | ,-. | | , . | | , . | | , 外部 . | |( Jabber 客户端 )| |( Jabber 服务器 )| |( IM )| | . , | | . , | | . 系统 , | | -+- | | -+- | | -+- | -+- -+- -+- | | | | | |.-+-+-+-.| | | | | ,-. ,-+-. ,-+-. | | , 验证 . , 客户端 - . , 服务器 - . | | ( 数据软 +-+ 服务器 ) +-+ 服务器 ) | | . 件包 , . (C2S) , | . (S2S) , | | - -+- | - | | | | | | | | | | | | | | ,-+-. | ,-. | | , +-+ , . | | ( 路由器 +-+ 分解器 ) | | . +-+ . , | | -+- | - | | | | | | | | | | | | | | | | | | ,-. ,-+-. | ,-+-. | , 应用 . , 会话 . | , 外部 . | ( 数据软 +-+ 管理 ) +-+ IM ) | . 件包 , . (SM) , . 网关 , | - - - |- SVR 1注意: 外部IM网关是一个可选的组件,它并不在jabberd 2的软件包里面。 它依靠第三方的软件2.1 路由器(Router) 路由器是jabberd的核心组件,它从其他组件接受信息,并把各个组件间传递xml数据包2.2 S2S S2S控制和其他服务器的通信,并实现服务器回呼和远程jabber服务器的验证2.3 分解器(Resolver) 分解器是为支持S2S工作的.他为S2S回呼中验证部分提供分解主机名服务2.4 SM SM(会话管理)实现了即时消息的大部分 * 消息传送 * 状态管理(Presence) * 帐户管理(Rosters) * 订阅(Subscriptions) SM连接“应用数据软件包(Application Data Package(db)”保存状态数据。另外,SM组件控制jabber扩展的发现和私有列表(jabber extensions of disco(discovery)and privacy lists*).2.5 C2S C2S组件控制与客户端的通信 * 和jabbar客户端连接 * 传递包给SM * 验证客户端 * 注册用户 * 同SM引发活动 C2S组件连接验证数据包(Authentication Data Package(authreg)以便实现用户注册和验证3. jabberd 2 模块分解4. jabberd 2 数据控制 jabberd 使用数据控制(data handing)的概念以便适应各类数据处理包。数据控制(data handling)的核心是收集器(Collection)对象概念。每个收集器(Collection)都有类型(Type)和拥有者(Owner)两个属性.类型(Type)指明什么类型的数据正在被处理,如,队列(queue),vcard,名册条目(roster-item). 拥有者(Owner)表明谁拥有这个收集器(collection).对于和用户相关的数据,拥有者(Owner)是jabber ID(JID). 每个收集器(collection)管理了一个至多个数据对象(collection data)。每个数据对象(collection data)是包含了关键字(key),值(value)和类型(type).关键字(key)是一个字符串,表明被处理数据的种类。值(value)是被处理的数据值。类型(type)是数据的存储格式,如,boolean,integer,string,等。如下表 +-+ | Collection | +-+-+ | Collection | | +-+-+ | | Collection | | | Key for Object Diagram +-+ | | +-+ | Type | |-+ | | | Owner | | | +-+ | | |-+ | | | | | | | +-+ Object | +-+ | | | | | | | | | | | +-+ | | | | | | | | 1-多关系 | (1个收集器管理多个数据) | | | +-+ | | | Collection Data | | | +-+ +-+ | Key | | Value | | Type | | | +-+ 5. jabberd 2 数据结构(针对MySQL) 在MySQL中jabberd 数据控制(Data handlling)变得更加具体和清晰.在关系数据库中,每个收集器(collection)就是一个表,每个数据对象(collection data)的关键字(key)就是一个域(field),而每一行包含一个收集器拥有者(collection owner)(JID)和一个或多个数据域(field). 1. 表清单(MySQL) active 保存每个帐户最近活动时间 authreg 包含了验证信息,包括: 用户名(username),真实名(realm)和密码(password) disco-items 保存即时状态的信息(persistent discovery information),以便在离线状态下存取 logout 保存JID和时间戳,表明最近登出的时间 motd-message 保存XML格式的当天的消息(Message Of The Day) motd-times 保存与收到的MOTD相关联的JID和时间戳 privacy-default 保存当前使用列表的名称,以便在用户登录时激活 privacy-items 保存用户的私有列表(黑名单/白名单) private 以XML格式存储一些用户相关的信息,如用户偏好,书签等 queue 以XML格式保存排过队的信息 roster-groups 保存那些仅仅和某个组关联的名册条目 roster-items 保存所有的名册,包括验证的信息 vacation-settings Handles vacation settings, including start, end and message vcard 保存vcard信息 2. 表描述: MySQL 表描述+-+| | +-+ +-+ +-+ | | active | | authreg | | disco-items | | +-+ +-+ +-+ | | | | | | | | +-+ +-+ +-+ | | collection-owner: TEXT | | username: TINYTEXT | | collection-owner: TEXT | | | object-sequence: BIGINT(20) | | realm: TINYTEXT | | object-sequence: BIGINT(20) | | | time: INTEGER(11) | | password: TINYTEXT | | jid: TEXT | | | | | token: VARCHAR(10) | | name: TEXT | | +-+ | sequence: INTEGER(11) | | node: TEXT | | | | | hash: VARCHAR(40) | | | | +-+ | | +-+ | +-+ | | | | | +-+ | +-+ | | | +-+ +-+ +-+ | | logout | | motd-message | | motd-times | | +-+ +-+ +-+ | | | | | | | | +-+ +-+ +-+ | | collection-owner: TEXT | | collection-owner: TEXT | | collection-owner: TEXT | | | object-sequence: BIGINT(20) | | object-sequence: BIGINT(20) | | object-sequence: BIGINT(20) | | | time: INTEGER(11) | | xml: TEXT | | time: INTEGER(11) | | | | | | | | | +-+ +-+ +-+ | | | | | | | | +-+ +-+ +-+ | | | +-+ +-+ +-+ | | privacy-default | | privacy-items | | private | | +-+ +-+ +-+ | | | | | | | | +-+ +-+ +-+ | | collection-owner: TEXT | | collection-owner: TEXT | | collection-owner: TEXT | | | object-sequence: BIGINT(20) | | object-sequence: BIGINT(20) | | object-sequence: BIGINT(20) | | | default: TEXT | | list: TEXT | | ns: TEXT | | | | | type: TEXT | | xml: TEXT | | +-+ | value: TEXT | | | | | | | deny: TINYTEXT(4) | +-+ | +-+ | order: INTEGER(11) | | | | | block: INTEGER(11) | +-+ | | | | +-+ | | | | +-+ | | | +-+ +-+ +-+ | | queue | | roster-groups | | roster-items | | +-+ +-+ +-+ | | | | | | | | +-+

温馨提示

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

评论

0/150

提交评论