首頁>>>技術(shù)>>>即時通信

 

Jabber對即時訊息的統(tǒng)一構(gòu)想

2002/06/03

  即時訊息面臨的主要問題是幾種主流協(xié)議不統(tǒng)一,AOL、Yahoo和MSN在自己的網(wǎng)絡(luò)上使用各自的協(xié)議。為了解決這個問題,Jabber Software Foundation提出自己的協(xié)議和實現(xiàn)這個協(xié)議的架構(gòu)(architecture),所以當(dāng)提到Jabber的時候,通常是指兩件事情,一是Jabber協(xié)議,二是Jabber系統(tǒng)。

  Jabber協(xié)議是一系列源代碼開放的、以XML為基礎(chǔ)的協(xié)議。Jabber Software Foundation在幾個月以前將Jabber 1.2提交IETF(The Internet Engineering Task Force), 目的是想促使它成為通用的標(biāo)準(zhǔn)。需要說明的是,由于Jabber開放源代碼,目前Jabber協(xié)議有不止一種實現(xiàn)方式,而且協(xié)議本身也還在繼續(xù)發(fā)展。

  Jabber的主要構(gòu)想有兩方面,一是讓Jabber訊息在不同網(wǎng)絡(luò)里傳輸(比如,Jabber訊息可以穿過防火墻,而且Jabber系統(tǒng)可以和其它即時訊息網(wǎng)絡(luò)連接在一起),二是Jabber協(xié)議提供一個橋梁,讓使用不同即時訊息協(xié)議的用戶可以自由地交流。

  Jabber的架構(gòu)及特點

  現(xiàn)在,先來分析一下Jabber的架構(gòu)。Jabber系統(tǒng)包括用戶端和服務(wù)器端,在Jabber里,用戶端叫做節(jié)點,服務(wù)器端分三部分:主機(host),即我們常說的服務(wù)器,服務(wù)端(service)和網(wǎng)關(guān)(gateway)。我們將在后面介紹每部分的具體功能。

  Jabber的用戶端軟件一般來說非常簡單,只要它能和服務(wù)器建立TCP通道,而且能夠理解Jabber訊息即可。由于Jabber開放源代碼,任何人都可以改寫用戶端軟件使之包含很多功能。Jabber的設(shè)計哲學(xué)是用戶端簡單,服務(wù)器端復(fù)雜,這樣做的好處是,如果Jabber根據(jù)需要發(fā)展更多功能的話,所有工作都在服務(wù)器端進行,用戶不必去下載新的Jabber軟件。

  Jabber服務(wù)器端的架構(gòu)具有以下幾個主要特點:

  1.所有Jabber訊息都是以XML為基礎(chǔ)的。

  2.Jabber系統(tǒng)是一個分散系統(tǒng)(distributed system),即Jabber的服務(wù)器是分布在網(wǎng)絡(luò)各處的。

  3.Jabber協(xié)議是公開的,程序則開放源代碼。

  4.Jabber系統(tǒng)是模塊化的,而且Jabber的設(shè)計特別強調(diào)如何實現(xiàn)可伸縮性、安全性和可擴展性,這樣,更多的功能就可以在Jabber平臺上開發(fā)出來。

  即時訊息系統(tǒng)的模式與架構(gòu)

  即時訊息系統(tǒng)有兩種模式,一個是用戶/服務(wù)器模式,即發(fā)信端用戶和收信端用戶必須通過服務(wù)器來交流。另一個是用戶/用戶模式,即服務(wù)器給每對用戶建立一個TCP通道,他們的交流在這個TCP之上進行而無需通過服務(wù)器。Jabber使用的是用戶/服務(wù)器的模式,所有Jabber訊息必須通過服務(wù)器(即host)才能從一個用戶端傳到另一個用戶端。需要說明的是,任何Jabber用戶可以向服務(wù)器申請和另一個用戶建立直接聯(lián)系通道,但這個通道只能用來進行特定的文件傳輸。

  在網(wǎng)絡(luò)架構(gòu)設(shè)計方面,Jabber在很大程度上參照了電子郵件系統(tǒng),因此每個用戶的Jabber地址就像他的電子郵件地址一樣。同時,在Jabber系統(tǒng)里,每個服務(wù)器負(fù)責(zé)接收傳給本地用戶的所有訊息,服務(wù)器之間則實時交換需要發(fā)送的訊息。每個Jabber服務(wù)器都是獨立操作的,因此根據(jù)所在網(wǎng)絡(luò)對即時訊息速度的要求,Jabber系統(tǒng)可以增加或減少服務(wù)器的數(shù)目。

  Jabber的主機由若干個組件構(gòu)成,它們分別實現(xiàn)Jabber系統(tǒng)所要求的一些基本功能。這些基本功能包括:Session管理、用戶和服務(wù)器之間的通訊、服務(wù)器之間的通訊、DNS轉(zhuǎn)換、存儲用戶的個人信息和朋友名單、保留用戶在下線時收到的訊息、用戶注冊、用戶的身份和權(quán)限認(rèn)證、根據(jù)用戶的要求過濾訊息和系統(tǒng)記錄等。此外,即時訊息系統(tǒng)要實現(xiàn)接近實時的訊息傳輸,必須隨時知道訊息的主機是否在線(presence)。在服務(wù)器和服務(wù)器之間的通訊功能里,主機的一個模塊專門負(fù)責(zé)和其他服務(wù)器實時交換用戶是否在線的信息。

  由于Jabber服務(wù)器的模塊化,它們的功能可以根據(jù)需要擴展,這些功能在Jabber服務(wù)端(service)實現(xiàn)。擴展的簡單功能包括多用戶會議(multi-user conferencing,即即時訊息里的多對多通訊),和其他安全檢測軟件的整合,以及和數(shù)據(jù)庫的連接等等。出于安全因素的考慮,Jabber服務(wù)端必須是主機所信賴的(trusted)。這個要求可以通過公鑰管理體系來實現(xiàn)。除了這個要求之外,Jabber對于它們之間如何交流沒有其他任何限制,Jabber的系統(tǒng)管理員可以根據(jù)需要,通過各種方式把它們連接在一起。

  此外,Jabber突出的特點是可以和其他即時訊息系統(tǒng)交換訊息和用戶在線狀況。由于協(xié)議不同,Jabber和其他系統(tǒng)交換訊息必須通過協(xié)議的轉(zhuǎn)換來實現(xiàn),目前幾種主流即時訊息協(xié)議都沒有公開,所以Jabber服務(wù)器本身并沒有實現(xiàn)和其他協(xié)議的轉(zhuǎn)換,但它的架構(gòu)允許轉(zhuǎn)換的實現(xiàn)。實現(xiàn)這個特殊功能的服務(wù)端在Jabber架構(gòu)里叫做gateway。目前,有人為Jabber實現(xiàn)了和AIM、ICQ、IRC、MSN Messager、RSS(Rich Site Summary)0.9和Yahoo Messager的協(xié)議轉(zhuǎn)換。由于gateway的存在,Jabber架構(gòu)事實上兼容所有其他即時訊息網(wǎng)絡(luò),這無疑大大提高了Jabber的靈活性和可擴展性。

  Jabber協(xié)議分析

  前面提到,Jabber協(xié)議是以XML為基礎(chǔ)的,所以是Jabber訊息不僅可以是簡單的文本(text),而且可以攜帶復(fù)雜的數(shù)據(jù)和各種格式的文件,這也就是說Jabber不僅可以用在人與人之間的交流,而且可以實現(xiàn)軟件與軟件或軟件與人之間的交流。Jabber的這種功能大大擴展了即時訊息的應(yīng)用范圍。

賽迪網(wǎng) 中國信息化


相關(guān)鏈接:
調(diào)查稱企業(yè)越來越青睞即時通訊軟件 2002-06-03
即時通信服務(wù) Trillian增長迅速 2002-05-30
騰訊QQ押注視頻阻擊掠食者 2002-05-29
雅虎堵塞即時消息漏洞 2002-05-29
雅虎即時通訊存在缺陷 黑客可能刪除文件 2002-05-29

分類信息:     技術(shù)_即時通信_新聞   技術(shù)_即時通信_文摘