Tigase概述

Tigase 概述

译:http://xmppwithtigase.org/tigaseoverview.html#reasons

1、为什么选择Tigase

全面tigase 完全实现了XMPP协议,除了全面实施的两个核心协议,它支持大多数的你可能永远都需要的扩展协议。

开源Tigase是开源的,如果你有有那能力,你可以定制自己的XMPPServer,虽然经过了很多次此时,但是仍然有可能有bug,你可以修补bug并提交代码到官方。

可靠Tigase在设计的时候已经充分的考虑到他的容错能力,它的代码可以自动处理错误保证你的应用尽可能的不down掉。它已经被部署在很多企业的生产环境!并且被测试通过

集群支持Tigase支持集群,通过集群多个节点在一块,支持百万级用户并发,Seesmic是最好的例子。

性能和效率:cpu 单用户连接,只需要10kb的内存就可以处理10000个数据包,安装Tigase的时候已经知道,Tigase支持单机50W并发,另外,Tigase还可以部署在只有10M内存的机器上。Tigase支持虚拟域,单服务器可以安装多个域

监控策略:Tigase提供很多开箱即用的自我监控功能。你可以通过XMPPJMXHttpSNMP查看服务运行时的错误。

可扩展:设计之初,Tigase就是可扩展的,支持自定义插件,开发者可以很轻松的扩展他的功能。插件开发,Tigase支持多种语言,Groovy(建议)Scala,Python,Ruby

轻便:使用Java编写的,它可以在LinuxWindows SolarisMac OSX上运行。大多数其他的开源XMPP服务器都使用低层次的语言或更Java更深奥的语言书写。

国际化:Tigase支持UTF-8,允许任何语言。

2RFC的实现

核心协议(RFC-3920:定义了XML流,和构建XMPP系统所需的所有流级别的功能,定义了XMPP的地址格式,基本XMPP架构,传输控制协议(TCP)的消息传输,安全传输层(TLS)的信息加密,简单的安全验证和安全层(SASL)的验证,如何编码,UTF-8StringGprep用来国际化地址和文本,名称空间,message,presenceIQ的结构,以及如何处理错误。

即时消息和呈现(RFC-3921:此协议定义了contact(rosters)如何工作。如何管理订阅,以及如何处理presence通知。

3Tigase实现的XMPP扩展协议

结构化数据表单(XEP-0004:类似HTML表单,数据表单允许实体通过其他(通常是人为控制的Client)实体收集数据。通常用在登陆和搜索上。

隐私列表( XEP -0016 ):允许实体启用或者禁用和其他实体的通信。简单的说,阻止两用户之间的通信。

服务发现(XEP-0030):允许实体查找出另一个实体支持的功能和特性,并发现和该实体相关联的Item

群聊消息(MUC,XEP-0045:类似互联网的中继聊天(IRC)协议,允许很多人在一个虚拟的房间内聊天。定义了如禁言,踢出房间,房间配置等功能。

私人XML存储(XEP-0049):该协议定义了私人数据如何在服务端存储。

工作流管理(XEP-0050:通常和(XEP-0004)一块使用,提供实体向另一个实体执行远程命令(commands)。

明信片(XEP-0054):允许两个实体间以vCard-XML格式共享数据。Vcard是一个标准化的格式来交换名片信息,如姓名,地址,电话号码等。

通知(pubsubXEP-0060:一个一到多的表单消息,允许单一用户传递给多个订阅者。通常用于数据聚合。

注册(XEP-0077:主要定义了方法,为客户端通过XMPP流创建通讯账户。只吃聊天室登机,账户密码的修改和账户的注销。

SASL认证(XEP-0078):定义了Jabber的身份验证协议,但是现在已经过时,被RFC3920替代了他的简单身份验证和安全身份验证。

聊天状态通知(XEP-0085:定义用户状态和聊天会话期间的通信。例如输入状态等

软件版本(XEP-0092:允许一个实体来查询另一个的实体所用软件的详细信息,可以查询名称,版本和操作系统等信息。

Jabber Component Protocol (XEP-0114)定义了服务器和外部组件如(MUC)或其他消息网络之间的通信.

服务管理者(XEP-0133):允许管理员管理用户,发送消息给所有用户,改变每天登陆的欢迎消息,管理管理员账户,和对服务的重新启动。

流压缩(XEP-0138:允许使用ZLIBXML流进行压缩,对无法使用TLS的平台非常有用。

及时消息查询(IQXEP-0148):一个扩展协议,用于用户发现比人的信息。没有实际用途。

更换图像-依赖VCardXEP-0153):用于用户更改图像和图像交换。

个人事件协议(PEP,XEP-0163):PEP是其他扩展向用户分享状态信息的基础。例如,用户的地理位置,表情,行为,心情等。虽然,通知(XEP-0060)可以实现以上功能,但是比较复杂。PEPXEP-0060的一个简单的子集。相比于继承Presence节点,最佳的实现是使用PEP和(或者)Jabber组件协议代替。

使用SASL匿名的最佳实践(XEP-0175):在用户登录的时候给用户一个临时的账户允许用户登入服务。

XMPP Ping(XEP-0199):测试两个XMPP客户端或者终端和终端之间的连接情况。例如(A--->A’Server--->B’Server--->B)。

延迟交付(XEP-0203:Tigase服务处理时间戳消息的能力。用于处理由于收件人脱机,导致的消息传递延迟。当接受者接收到消息的时候,可以看到消息的发送时间戳。

XMPP-BOSHXEP-0206:服务器可以通过同步的HTTPBOSH)双向流发送消息,如果一个XMPP客户端不能维持TCP的长连接,BOSH可以通过HTTP方式保持双向通信。

服务器回拨(XEP-0220:使用DNS来验证身份,服务器使用微弱的身份验证方法回拨,防止大多数情况下的地址诈骗。

组件连接(XEP-0225:本扩展允许XMPP服务器组件连接到TLS或者SASL服务器。同时允许多个主机绑定到一个连接!

花名册版本(XEP-0237):用户的花名册都存储在服务器上,在登录的时候下载花名册,消耗不必要的带宽,同时也减慢了登陆的速度。有了花名册版本,当花名册改变的时候一个花名册的版本号指派给客户端的花名册。在客户端保存一个花名册的缓存,在每次登陆的时候根据版本号拿本地缓存和服务器上的花名册比对,如果值不匹配,那么新的版本的花名册下载到客户端,如果相同,客户端就做简单的登陆,不需要下载花名册。

PubSub集合节点(XEP-0248:Tigase部分支持集合节点。一个采集几点充当其他节点的容器,它允许一个节点订阅整个集合,不允许只订阅其中的一节点。

传递订阅(XEP-0253:Tigase支持传递订阅。例如,如果节点A订阅了节点B,节点B订阅了节点C,那么如果客户端订阅节点A,那么将同时订阅节点B和节点C

3、远程管理

Tigase提供多种协议用于自动远程监控服务器。对于关键服务的部署方案,能够主动实时对服务的早期问题检测非常重要。远程监控服务消耗服务器很少的资源就可以保持不间断的监控。

       服务器监控工具包括以下两部分:

1、管理框架和API:提供一种方法供用户和监控系统的交互,提供两种模式:
       1.1
、自动:资源使用追踪,当突破预设水平的时候,自动通知管理员。

       1.2、互动:该框架可以报告资源的使用情况或者根据改变阀值,回应管理员的手工命令。

2、资源管理:每个小而简单的插件,监视制定的资源。目前Tigase有四个资源监视器:

       1CPU:通过追踪CPU使用的百分比,以及活动进程的百分比。当当前利用的资源值高于阀值是发出通知。

2、内存:监控JVN堆和内存池,如果突破一定水准则发出通知

3、硬盘:跟踪磁盘分区的使用,检查磁盘空间。Tigase使用磁盘驱动器进行监控

4、日志:查看日志,把警告和错误等实时广播给管理员,但是需要消耗大量资源。

Tigase服务器提供一下服务器统计信息:

1、          主动客户端-客户端,客户端到服务器和BOSH的数量

2、          服务器负载每一个组件在最后一秒,分钟和小时的状态信息,中继消息,客户端到客户端,客户端到服务器,Http请求(BOSH),和MUC(群聊),PubSub(订阅)的消息数。

3、          服务器启动的时间,以及堆和栈的使用情况。

4、          已注册的用户,和当前在线用户的数量
Tigase
远程管理协议:

1、          HTTP:由于缺乏安全机制,最好在安全网络上使用

2、          JMX/RMI:JAVA扩展用于监控和管理应用的设备和网络

3、          SNMP:一个IETF协议,用于管理网络设备,如交换机,路由器,服务器,打印机等。Tigase包含一个SNMP代理用于向安装有网路管理系统(NMS)软件报告服务器状态!

4、          Xmpp:可通过XMPPClient监控。


转载于:https://my.oschina.net/wjwei113/blog/364285

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值