XMPP

資工二甲 495511167 黃柏翔 kcut
資工二甲 495511090 張哲人 xlawsv13
資工二甲 495511521 黃元宏 hyh123yh
資工二甲 495511387 陳建智 ie955138

 

什麼是XMPP

XMPP是一種以XML為基礎的開放式即時通訊協定,是經由網際網路工程工作小組(IETF)通過的網際網路標準。XMPP的技術來自於Jabber,其實它是Jabber的核心協定。XMPP因為被Google Talk應用而被廣大網民所接觸。

 

為何要使用XMPP

為了要使不同Messenger達到互通性(interoperability)
目前所能解決方案有下列方向:

1. 開發具多重通訊協定(multiple protocol)的用戶端軟體
2. 開發信息閘道器(Messaging Gateway)
3. 訂定通訊協定標準

XMPP就是一種通訊協定標準

 

XMPP介紹

XMPP的術語全名為the Extensible Messaging and Presence Protocol,XMPP是一 種以XML為基礎的開放式即時通訊協定,它繼承了XML的環境,因此能夠表示任何結構化之訊息,但XMPP不需要支援[XML]的所有功能。XMPP的核心部分就是一個在網絡上分片斷發送XML的協議 。 這個協議是XMPP的即時通訊指令的傳遞基礎,也是一個非常重要可以被進一步利用的網絡基礎協議。XMPP是經由網際網路工程工作小組(IETF)通過的網際網路標準。XMPP的技術來自於Jabber,也就是說XMPP是Jabber的核心協定。 不同於大多數的即時通訊協議, XMPP協議是基於開放的標準。

 

XMPP相關歷史

1998年:   Jeremie Miller開始了Jabber這個項目
2000年:   IETF發表了IMPP組織的工作結果
2000年5月:第一個公開版本(jabberd server 1.0)發行
2004年:   JESG批准XMPP協議的核心和XMPP協議即時通訊規格的建議標準,從而接受XMPP協議1.0成為一個符合RFC 2779的 IETF即時通訊和Presence的技術
2005年8月:Google Talk推出。

 

XMPP之架構

XMPP中定義了三個角色, 客戶端,伺服器,網路。通信的傳輸能夠在這三者的任意兩個之間雙向發生。 伺服器同時承擔了客戶端訊息記錄,連接管理和訊息的路由功能。網路承擔著與不同結構的即時通信系統互相聯通。

Jabber網路拓璞架構與電子郵件系統類似,每一個client都需要有一個本地server用來接收發送訊息。在此 client-server模式中,所有的訊息以及資料都必須透過server才能到達其他client端。儘管client端之前可以直接建立某些傳輸通道,但是,這些連接的通訊協定最初也是透過Jabber server完成的。因此,在網路中,可以同時存在於許多個Jabber server,並且各個server獨立工作,各自擁有自己的client。任意兩個server只要能夠互相連絡到,即能互相溝通,並傳遞訊息。

 

XMPP優勢

分散式
XMPP的網路的架構類似電子郵件 任何人都可以運行自己的XMPP server,
不存在一個中央的Master server

開放標準
Jabber協定是自由 ` 公開的,並且易於瞭解。IETF 已經把XMPP正式列為認可的即時通訊技術。 XMPP的技術規格也已被定義在RFC 3920RFC 3921等RFC文件中

安全性
XMPP的伺服器可以獨立於公眾Jabber網路,而SASLTLS等有關於網路安全協議的技術,也已內建於核心XMPP技術規格中。

靈活性
XMPP除了可用在即時通訊的應用程式,還能用在網路管理、內容供稿、協同工具、檔案共享、遊戲、遠端系統監控等其他應用, 並沒有限制在IM上的使用

擴展性
XML的Namespace特性, 可使的我們在XMPP核心協定的基礎上建造個人化的功能

 

XMPP缺點

可伸縮性
XMPP的可伸縮度不好,當進行多人會客室聊天或者提供發布/訂閱服務時,XMPP會帶來很多網絡開銷,這樣會大大降低整個系統的通信效率。

沒有二進制數據
XMPP協議的數據通常是被編碼成一個長XML文件,限制了它直接傳輸原始二進制數據的能力,所以文件傳輸時一般使用其它協議,像是HTTP,如果實在無法避免用XMMP協議傳輸文件,一般使用base64編碼。

 

XMPP的發展

朝向成為一個通用的傳輸協定

目前市面上存在著各種不同的IM(即時通訊)軟體,各個軟體供應者都各自使用各自的傳輸協定,而各個通訊協定都各有其優缺點,然而,不得不面對的是”通用化”的問題,當愈來愈多的供應者出現,隨之而來的是愈來愈多的傳輸協定,這會導致使用者被切割成數個不同的群組,一則這會導致使用者的不方便性,二則也會提昇供應者在開發上的成本,故而,目前阻礙IM發展的最大阻礙即是標準和協定的不統一,使得不同系統之間無法聯繫。

 

XMPP相關應用

  • 利用XMPP作為通用傳輸機制
  • 企業即時通訊服務
  • 美軍的FBS(Future Combat Systems)系統中提供服務
  • 支援Jabber的IP電話和手持設備
  • 將來可更加用於即時的XML資料傳輸,而不僅僅作為一個即時通訊的平臺。