Jabber


Jabber (简体)

Free Web Hosting with Website Builder
Jabber Logo

Jabber是一個開放的、基於XML的通訊協定。它的用途在即時通訊及Presence資訊方面。

目錄

歷史

Jeremie Miller于1998年開始了這個項目。第一個公開版本于2000年5月發行。這個項目的主要產品是jabberd,Jabber的伺服器端軟體。它既可以創建私人的Jabber網路,也可以加入全球的公共Jabber網路。Jabber的關鍵特色是,分散式的即時通訊系統,以及使用XML串流。

Jabber協定目前由Jabber軟體基金會管理,而Jabber協定的主要基礎已經在RFC3920當中以XMPP之名被網際網路工程工作小組(IETF)接受為網際網路標準。Jabber和以SIP協定為基礎的SIMPLE常被視為為即時通訊及Presence告知領域的競爭對手,然而XMPP的設計更傾向提供一個一般用途的、應用程式之間的中介軟體設施。

2005年Google發布了Google Talk,這是一個IP電話及即時通訊的服務,即時通訊功能採用了開放的Jabber/XMPP。預計這將對Jabber社區起很大的推動作用。初期此服務不支援伺服器到伺服器的通訊功能,所以未能完全發揮Jabber的分散式特色;雖然任何Jabber客戶端都能連接到Google Talk,但是用戶若欲登入Google Talk,必須擁有Google Talk帳號(即Gmail帳號),而用戶也無法與公共Jabber網路的用戶對談。自2006年1月17日起,伺服器到伺服器的通訊啟用了,Google Talk用戶可與其他Jabber公共網路的用戶對談。

優點

開放— Jabber協定是自由、開放、公開的,並且易於瞭解。而且在客戶端伺服器、元件、源碼庫等方面,都已經各自有多種實作。

標準— 網際網路工程工作小組(IETF)已經將Jabber的核心XML串流協定以XMPP之名,正式列為認可的即時通訊及Presence技術。而XMPP的技術規格已被出版為RFC 3920RFC 3921

證實可用— 第一個Jabber技術是Jeremie Miller在1998年開發的,現在已經相當穩定;數以百計的開發者為Jabber技術而努力。今日的網際網路上有數以萬計的Jabber伺服器運作著,並有數以百萬計的人們使用Jabber即時傳訊軟體。

分散式— Jabber網路的架構和電子郵件十分相像;因此任何人都可以運行自己的Jabber伺服器,使個人及組織能夠掌控他們的即時傳訊體驗。

安全— 任何Jabber伺服器可以獨立於公眾Jabber網路(例如在企業內部網路中),而使用SASL及TLS等技術的可靠安全性,已內建於核心XMPP技術規格中。

可擴展— XML命名空間的威力可使任何人在核心協定的基礎上建造客製化的功能;為了維持通透性,常見的擴充套件由Jabber軟體基金會管理。

彈性佳— Jabber除了可用在即時通訊的應用程式,還能用在網路管理、內容供稿、協同工具、檔案共享、遊戲、遠端系統監控等。

多樣性— 用Jabber協定來建造及布署即時應用程式及服務的公司及開放源碼計劃分佈在各種領域;用Jabber技術開發軟體,資源及支援的來源是多樣的,使得使你不會陷於被「綁架」的困境。

運作方式

Jabber網路是基於伺服器的(即客戶端之間彼此不直接交談),但是也是分散式的。不像AOL即時通或MSN Messenger等服務,Jabber沒有中央官方伺服器。Jabber.org的公眾伺服器上有大量的用戶,所以有些人誤解了,以為它是官方伺服器,不過事實上任何人都可以在自己的網域上運行Jabber伺服器。

Jabber識別符(JID)是用戶登入時所使用的帳號,看起來通常像一個電子郵件地址,如someone@example.com;前半部分為用戶名,後半部分為Jabber伺服器域名,兩個欄位以@符號區隔。

假設朱麗葉(juliet@capulet.com)想和羅密歐(romeo@montague.net)通話,他們兩人的帳號分別在 Capulet.com 及 Montague.net 的伺服器上。當朱麗葉輸入訊息並按下傳送鈕之後,一連串的事件就發生了:

  1. 朱麗葉的Jabber客戶端將她的訊息傳送到Capulet.com Jabber伺服器。
  2. Capulet.com Jabber伺服器開啟與Montague.net Jabber伺服器的連接。
  3. Montague.net Jabber伺服器將訊息寄送給羅密歐。如果他目前不在線上,那麼儲存訊息以待稍後寄送。


Juliet
\leftrightarrow
Capulet.com
\leftrightarrow
Montague.net
\leftrightarrow
Romeo

羅密歐與朱麗葉兩人的Jabber服務是由兩家不同的業者所提供的,而他們彼此傳訊時,不須擁有對方伺服器的帳號,也不須成為對方業者的會員。

連接其他協定

Jabber系統有一個獨特的閘道器(也稱作傳送器)功能,該功能允許用戶可以使用其他協議,如AOLICQMSNYahoo簡訊或者電子郵件。和TrillianGaim等其他多協議客戶端不同的是,Jabber在伺服器級別提供這個功能,任何Jabber用戶都可以註冊一個這樣的閘道器來登錄其他網路。也就是說任何支持Jabber協議的客戶端都可以訪問一個存在的閘道器,來與其他網路上的用戶聯繫。

Jabber客戶端軟體列表

僅支持Jabber協議的客戶端軟體

開放源碼

免費軟體

商業軟體

支持Jabber的多協議客戶端軟體

開放源碼

免費軟體

商業軟體

Jabber伺服器端軟體

使用Jabber協議的客戶端與伺服器端對話的例子

客戶端(kuusipuu)連接到一個Jabber伺服器(amessage.de:5222/TCP),發送一條消息(主題和內容均為「test 1449」)到另一個客戶端(tero),然後登出。

kuusipuu:

<?xml version="1.0"?>
<stream:stream xmlns:stream="http://etherx.jabber.org/streams"
xmlns="jabber:client" to="amessage.de">

amessage.de:

<stream:stream xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
from='amessage.de' id='1461777714'>

kuusipuu:

<iq type="set" id="auth_2" to="amessage.de" >
  <query xmlns="jabber:iq:auth">
    <username>kuusipuu</username>
    <password>mypassword</password>
    <resource>Work</resource>
   </query>
</iq>

amessage.de:

<iq from="amessage.de" id='auth_2' type='result'/>

kuusipuu:

<message to="tero@example.com" >
  <subject>test 1449</subject>
  <body>test 1449</body>
</message>
<presence type="unavailable" >
  <status>Logged out</status>
</presence>
</stream:stream>

amessage.de:

</stream:stream>

參見

外部連結







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History