XMPP
出自 MBA智库百科(https://wiki.mbalib.com/)
XMPP(Extensible Messaging and Presence Protocol,可擴展通訊和表示協議)
目錄 |
XMPP是一種基於標準通用標記語言的子集XML的協議,它繼承了在XML環境中靈活的發展性。因此,基於XMPP的應用具有超強的可擴展性。經過擴展以後的XMPP可以通過發送擴展的信息來處理用戶的需求,以及在XMPP的頂端建立如內容發佈系統和基於地址的服務等應用程式。而且,XMPP包含了針對伺服器端的軟體協議,使之能與另一個進行通話,這使得開發者更容易建立客戶應用程式或給一個配好系統添加功能。
XMPP中定義了三個角色,客戶端,伺服器,網關。通信能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端信息記錄,連接管理和信息的路由功能。網關承擔著與異構即時通信系統的互聯互通,異構系統可以包括SMS(簡訊),MSN,ICQ等。基本的網路形式是單客戶端通過TCP/IP連接到單伺服器,然後在之上傳輸XML。
(一)優點
XMPP協議是自由、開放、公開的,並且易於瞭解。而且在客戶端、伺服器、組件、源碼庫等方面,都已經各自有多種實現。
互聯網工程工作小組(IETF)已經將Jabber的核心XML流協議以XMPP之名,正式列為認可的實時通信及Presence技術。而XMPP的技術規格已被定義在RFC 3920及RFC 3921。任何IM供應商在遵循XMPP協議下,都可與Google Talk實現連接。
第一個Jabber(現在XMPP)技術是Jeremie Miller在1998年開發的,現在已經相當穩定;數以百計的開發者為XMPP技術而努力。今日的互聯網上有數以萬計的XMPP伺服器運作著,並有數以百萬計的人們使用XMPP實時傳訊軟體。
XMPP網路的架構和電子郵件十分相像;XMPP核心協議通信方式是先創建一個stream,XMPP以TCP傳遞XML數據流,沒有中央主伺服器。任何人都可以運行自己的XMPP伺服器,使個人及組織能夠掌控他們的實時傳訊體驗。
任何XMPP協議的伺服器可以獨立於公眾XMPP網路(例如在企業內部網路中),而使用SASL及TL等技術的可靠安全性,已內置於核心XMPP技術規格中。
XML命名空間的威力可使任何人在核心協議的基礎上建造定製化的功能;為了維持通透性,常見的擴展有XMPP標準基金會。
XMPP除了可用在實時通信的應用程式,還能用在網路管理、內容供稿、協同工具、文件共用、游戲、遠程系統監控等。
用XMPP協議來建造及部署實時應用程式及服務的公司及開放源代碼計劃分佈在各種領域;用XMPP技術開發軟體,資源及支持的來源是多樣的,使得使你不會陷於被“綁架”的困境。
(二)缺點
隨著通常超過70%的XMPP協議的伺服器的數據流量的存在和近60%的被重覆轉發,XMPP協議目前擁有一個大型架空中存在的數據提供給多個收件人。新的議定書正在研究,以減輕這一問題。
XMPP協議的方式被編碼為一個單一的長的XML文件,因此無法提供修改二進位數據。因此, 文件傳輸協議一樣使用外部的HTTP。如果不可避免,XMPP協議還提供了帶編碼的文件傳輸的所有數據使用的Base64。至於其他二進位數據加密會話(encrypted conversations)或圖形圖標(graphic icons)以嵌入式使用相同的方法。