Jabber對即時訊息的統(tǒng)一構想
2002/06/03
即時訊息面臨的主要問題是幾種主流協(xié)議不統(tǒng)一,AOL、Yahoo和MSN在自己的網絡上使用各自的協(xié)議。為了解決這個問題,Jabber Software Foundation提出自己的協(xié)議和實現(xiàn)這個協(xié)議的架構(architecture),所以當提到Jabber的時候,通常是指兩件事情,一是Jabber協(xié)議,二是Jabber系統(tǒng)。
Jabber協(xié)議是一系列源代碼開放的、以XML為基礎的協(xié)議。Jabber Software Foundation在幾個月以前將Jabber 1.2提交IETF(The Internet Engineering Task Force), 目的是想促使它成為通用的標準。需要說明的是,由于Jabber開放源代碼,目前Jabber協(xié)議有不止一種實現(xiàn)方式,而且協(xié)議本身也還在繼續(xù)發(fā)展。
Jabber的主要構想有兩方面,一是讓Jabber訊息在不同網絡里傳輸(比如,Jabber訊息可以穿過防火墻,而且Jabber系統(tǒng)可以和其它即時訊息網絡連接在一起),二是Jabber協(xié)議提供一個橋梁,讓使用不同即時訊息協(xié)議的用戶可以自由地交流。
Jabber的架構及特點
現(xiàn)在,先來分析一下Jabber的架構。Jabber系統(tǒng)包括用戶端和服務器端,在Jabber里,用戶端叫做節(jié)點,服務器端分三部分:主機(host),即我們常說的服務器,服務端(service)和網關(gateway)。我們將在后面介紹每部分的具體功能。
Jabber的用戶端軟件一般來說非常簡單,只要它能和服務器建立TCP通道,而且能夠理解Jabber訊息即可。由于Jabber開放源代碼,任何人都可以改寫用戶端軟件使之包含很多功能。Jabber的設計哲學是用戶端簡單,服務器端復雜,這樣做的好處是,如果Jabber根據需要發(fā)展更多功能的話,所有工作都在服務器端進行,用戶不必去下載新的Jabber軟件。
Jabber服務器端的架構具有以下幾個主要特點:
1.所有Jabber訊息都是以XML為基礎的。
2.Jabber系統(tǒng)是一個分散系統(tǒng)(distributed system),即Jabber的服務器是分布在網絡各處的。
3.Jabber協(xié)議是公開的,程序則開放源代碼。
4.Jabber系統(tǒng)是模塊化的,而且Jabber的設計特別強調如何實現(xiàn)可伸縮性、安全性和可擴展性,這樣,更多的功能就可以在Jabber平臺上開發(fā)出來。
即時訊息系統(tǒng)的模式與架構
即時訊息系統(tǒng)有兩種模式,一個是用戶/服務器模式,即發(fā)信端用戶和收信端用戶必須通過服務器來交流。另一個是用戶/用戶模式,即服務器給每對用戶建立一個TCP通道,他們的交流在這個TCP之上進行而無需通過服務器。Jabber使用的是用戶/服務器的模式,所有Jabber訊息必須通過服務器(即host)才能從一個用戶端傳到另一個用戶端。需要說明的是,任何Jabber用戶可以向服務器申請和另一個用戶建立直接聯(lián)系通道,但這個通道只能用來進行特定的文件傳輸。
在網絡架構設計方面,Jabber在很大程度上參照了電子郵件系統(tǒng),因此每個用戶的Jabber地址就像他的電子郵件地址一樣。同時,在Jabber系統(tǒng)里,每個服務器負責接收傳給本地用戶的所有訊息,服務器之間則實時交換需要發(fā)送的訊息。每個Jabber服務器都是獨立操作的,因此根據所在網絡對即時訊息速度的要求,Jabber系統(tǒng)可以增加或減少服務器的數(shù)目。
Jabber的主機由若干個組件構成,它們分別實現(xiàn)Jabber系統(tǒng)所要求的一些基本功能。這些基本功能包括:Session管理、用戶和服務器之間的通訊、服務器之間的通訊、DNS轉換、存儲用戶的個人信息和朋友名單、保留用戶在下線時收到的訊息、用戶注冊、用戶的身份和權限認證、根據用戶的要求過濾訊息和系統(tǒng)記錄等。此外,即時訊息系統(tǒng)要實現(xiàn)接近實時的訊息傳輸,必須隨時知道訊息的主機是否在線(presence)。在服務器和服務器之間的通訊功能里,主機的一個模塊專門負責和其他服務器實時交換用戶是否在線的信息。
由于Jabber服務器的模塊化,它們的功能可以根據需要擴展,這些功能在Jabber服務端(service)實現(xiàn)。擴展的簡單功能包括多用戶會議(multi-user conferencing,即即時訊息里的多對多通訊),和其他安全檢測軟件的整合,以及和數(shù)據庫的連接等等。出于安全因素的考慮,Jabber服務端必須是主機所信賴的(trusted)。這個要求可以通過公鑰管理體系來實現(xiàn)。除了這個要求之外,Jabber對于它們之間如何交流沒有其他任何限制,Jabber的系統(tǒng)管理員可以根據需要,通過各種方式把它們連接在一起。
此外,Jabber突出的特點是可以和其他即時訊息系統(tǒng)交換訊息和用戶在線狀況。由于協(xié)議不同,Jabber和其他系統(tǒng)交換訊息必須通過協(xié)議的轉換來實現(xiàn),目前幾種主流即時訊息協(xié)議都沒有公開,所以Jabber服務器本身并沒有實現(xiàn)和其他協(xié)議的轉換,但它的架構允許轉換的實現(xiàn)。實現(xiàn)這個特殊功能的服務端在Jabber架構里叫做gateway。目前,有人為Jabber實現(xiàn)了和AIM、ICQ、IRC、MSN Messager、RSS(Rich Site Summary)0.9和Yahoo Messager的協(xié)議轉換。由于gateway的存在,Jabber架構事實上兼容所有其他即時訊息網絡,這無疑大大提高了Jabber的靈活性和可擴展性。
Jabber協(xié)議分析
前面提到,Jabber協(xié)議是以XML為基礎的,所以是Jabber訊息不僅可以是簡單的文本(text),而且可以攜帶復雜的數(shù)據和各種格式的文件,這也就是說Jabber不僅可以用在人與人之間的交流,而且可以實現(xiàn)軟件與軟件或軟件與人之間的交流。Jabber的這種功能大大擴展了即時訊息的應用范圍。
調查稱企業(yè)越來越青睞即時通訊軟件 2002-06-03 |
即時通信服務 Trillian增長迅速 2002-05-30 |
騰訊QQ押注視頻阻擊掠食者 2002-05-29 |
雅虎堵塞即時消息漏洞 2002-05-29 |
雅虎即時通訊存在缺陷 黑客可能刪除文件 2002-05-29 |