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

 

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

2002/06/03

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Jabber協(xié)議分析

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

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


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

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