一、是什麼?
Openfire 采用Java開發,開源的實時協作(RTC)伺服器基于XMPP(Jabber)協定。Openfire安裝和使用都非常簡單,并利用Web進行管理。單台伺服器可支援上萬并發使用者。由于是采用開放的XMPP協定,您可以使用各種支援XMPP協定的IM用戶端軟體登陸服務。如果你想輕易地建構高效率的即時通信伺服器,那就選擇它吧!
二、做什麼?
我們要了解Openfire,首先要了解XMPP協定,因為Openfire是用Java語言編寫的,基于XMPP協定、開源的實時協作的伺服器。Openfire具有跨平台的能力,Openfire與用戶端采用的是C/S架構,一個伺服器要負責為連接配接在其上的用戶端提供服務。Openfire用戶端有spark,pidgin, Miranda IM,iChat等,使用者如果自己開發用戶端,可以采用遵循GPL的開源Client端API--Smack。Openfire伺服器端支援插件開發,如果開發者需要添加新的服務,可以開發出自己的插件後,安裝至伺服器,就可以提供服務,如查找聯系人服務就是以插件的形式提供的。
三、XMPP協定簡介
XMPP協定
XMPP(ExtensibleMessageing and Presence Protocol:可擴充消息與存在協定)是目前主流的四種IM(IM:instantmessaging,即時消息)協定之一,其他三種分别為:即時資訊和空間協定(IMPP)、空間和即時資訊協定(PRIM)、針對即時通訊和空間平衡擴充的程序開始協定SIP(SIMPLE)。在這四種協定中,XMPP是最靈活的。XMPP是一種基于XML的協定,它繼承了在XML環境中靈活的發展性。是以,基于XMPP的應用具有超強的可擴充性。經過擴充以後的XMPP可以通過發送擴充的資訊來處理使用者的需求,以及在XMPP的頂端建立如内容釋出系統和基于位址的服務等應用程式。而且,XMPP包含了針對伺服器端的軟體協定,使之能與另一個進行通話,這使得開發者更容易建立客戶應用程式或給一個配好系統添加功能。
XMPP網絡
XMPP中定義了三個角色,用戶端,伺服器,網關。通信能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了用戶端資訊記錄,連接配接管理和資訊的路由功能。網關承擔着與異構即時通信系統的互聯互通,異構系統可以包括SMS(短信),MSN,ICQ,Gtalk等。基本的網絡形式是單用戶端通過TCP/IP連接配接到單伺服器,然後在通道上傳輸XML。
下面是Openfire, Smack及Client與其它XMPP Server之間通信的結構圖。

從圖上可以了解到,client 端和server端都可以通過插件的方式來進行擴充,smack是二者傳遞資料的媒介。
四、總結
綜上所述你大概明白openfire的功能和用途,一句話概括它就是用于建立即時通信伺服器的工具。那麼接下來會更詳細的來介紹。