openfire(1)

来源:互联网 发布:java多线程与高并发 编辑:程序博客网 时间:2024/05/21 06:30

openfire是一种在线传输信息的工具,和qq的功能类似。

由于还在进步研究中这里只做简单介绍和初步理解:

1. Openfire最主要的功能是实现XMPP服务器,简单来说,openfire为我们提供一个固定的地址,我们只需要向openfire服务器发送标准的XMPP信息(即XML文件流)

(XMPP协议的传输是通过XML(可扩展标记语言)文件来传输的,并且不是类似于QQ的点对点通讯,而是客户端到服务器再到客户端的方式来实现)

2. Openfire是开源的实时协作服务器(RTC,它是基于公开协议XMPP(也成为Jabber)消息的。

3. Openfire的核心功能可以概括为:连接管理、消息解析、消息路由、消息发送。

4.Openfire客户端有spark, pidgin, Miranda IM, iChat等常用于spark客户端,(当年在日企工作时企业远洋电话交流开会时都会用spark).

 5.Openfire服务器端支持插件开发,如果开发者需要添加新的服务,可以开发出自己的插件后,安装至服务器,就可以提供服务.

openfire数据模型:

1.Openfire的数据库处理采用直接调用JDBC 的方式核心类为org.jivesoftware.database.DbConnectionManager。数据库的处理与业务处理耦合,没有划分出专门的业务逻辑层。

2.ConnectionProvider此类为数据库提供者接口,如需连接mysqlhsqldb等数据库,需首先实现些接口,通常直接调用XXManager中的实例方法,XXManager中又调用的是对应的接口XXProvider的方法,实际操作在该接口的实现类中实现。实现类是动态绑定的(默认的实现类通常命名规则为DefaultXXProvider),在运行时根据ofproperty表中对应配置项值选

3. org.jivesoftware.database.DbConnectionManager,连接管理类

4. org.jivesoftware.util.JiveGlobals,通常用于操作ofproperty表中记录

2.      Apache MINA框架

1)      XMPP协议是基于TCP/IP协议进行传输的,在openfire中,应用了apachemina框架作为NIO框架,简单的来说,openfire服务器用mina框架建立一个简单的服务器,可以接收和发送基本的IO流,然后在此基础上把接收到的IO流解析为XML文件,然后在根据XMPP协议对XML文件进行操作。MINA可以理解为数据传输的中间层。