2.1 即時通訊系統
即時通訊(Instant Message, IM)系統可說是現今最熱門的網路商品之一,不管 是否同意,即時通訊確實已走入你我的生活中,亦有凌駕 e-mail 之趨勢成為最受大家 歡迎的訊息傳遞軟體。即時通訊系統已經不僅僅是大家聊天的工具,更漸漸地成為公 司行號中的員工與客戶互通訊息的主要媒介之一。目前市面上一般的即時通訊系統,
大都具有下列特色:
即時性:不同於以往的方向,即時通訊系統提供了第一時間內的溝通,省去了一 來一往耗費大半天的時間。
便利性:聯絡人資訊一目瞭然地顯示出來,想與哪個聯絡人交談一點即可,省去 了電話通知的費用,更節省了時間。
娛樂性:除了一般的通訊功能外,即時通訊系統所附加的娛樂功能也越來越多,
如表情符號、傳遞動畫、視訊等。
毫無疑問地,即時通訊於公於私皆已經成為我們生活的一部份,然而市面上的即 時通訊系統十分地多,也皆有各自的支持者,因此如何讓使用不同即時通訊系統的使 用者彼此通訊,逐漸成為大家關注的焦點。
2.2 Yahoo! Messenger 和 MSN Messenger 的整合
2006 年第二季,Yahoo 和 Microsoft 宣布旗下的即時通訊軟體可以互通,亦即 表示使用 MSN Messenger 的人可以加入 Yahoo! Messenger 的使用者作為聯絡 人,並且可以相互傳送訊息。就目前看來,即時通訊的整合是個趨勢,但又困難重重,
Yahoo! Messenger 和 MSN Messenger 皆有不少的市占率,這兩家公司的合作,
對市場的影響不可謂不大。
毫無疑問地,這的確帶給我們許多方便,MSN Messenger 的使用者,不必為了 跟使用 Yahoo! Messenger 的朋友聊天、談事情而特別安裝 Yahoo! Messenger,
Yahoo! Messenger 的使用者也是相同的道理。能夠使用平常習慣的即時通訊軟體、
習慣的介面,取代了重新安裝即時通訊軟體、取代了重新適應介面,無疑的這是每位 使用者所希望的看到的,的確帶給了每位使用者全新的感受。
然而在實際使用後,我們可以發覺即使這兩大即時通訊系統互通了,卻仍然有他 的限制在。有許許多多的加值服務,像是多方會談、自定表情符號、語音通話等,幾 乎都不能使用。簡單來說,MSN Messenger 與 Yahoo! Messenger 的互通,目前 只支援到簡單的文字訊息的交換。
2.3 Libpurple (libgaim)
Libpurple 舊稱為 libgaim,是一套支援多種即時通訊 protocol 的函式庫。利用 libpurple 開發出來的應用程式可以同時跟多種即時通訊的聯絡人傳送訊息,但必須注 意的,即使是同一個聯絡人,但分別使用了 2 種不同的即時通訊系統,在 libpurple 開發出來的程式中,會被視為 2 個不同的聯絡人。
圖 1 Libpurple
如圖 1 所示,使用 libpurple 所開發出來的應用程式,可以說是同時包含 MSN、
Yahoo!等不同的即時通訊軟體,將這些通訊軟體整合在一隻程式中,省去使用者必須 安裝多個程式的麻煩及困擾。但如同前面所說的,若要同時跟 2 個朋友交談,而又分 別使用不同的通訊軟體,那麼就必須把同樣的話重覆打兩次。針對使用不同即時通訊 協定的聯絡人,彼此間並無法直接相互傳送訊息。
2.4 XMPP and SIMPLE
為了解決不同即時通訊系統間的互通性,在 IETF 中有兩個標準的通訊協定被提出 來,分別為 Extensible Messaging and Presence Protocol (XMPP)[11]和 SIP for Instant Messaging and Presence Leveraging Extensions (SIMPE)[10]。
XMPP 和 SIMPLE 被 視 為 現 今 即 時 訊 息 (Instant Messaging) 與 現 狀 資 訊 (Presence)技術的兩大陣營。有別於以往訊息系統(如 Email),採用先儲存再轉送的機 制(store and forward),透過即時訊息及現狀資訊,我們可以容易的知道誰在線上並 可以與之交談,若不在線上或者在忙碌狀態,就可能要改用別的溝通方式或者稍後再 與之聯絡。
現今市面上的即時通訊服務有很多種,主要功能並無太大的差異,但在通訊上,
皆採用獨立私屬的通訊協定,不同的 IM Network 間無法相互溝通。因此,若有一個 標準的通訊協定,讓場商在開發應用程式時,有參考依循的標準,在不同 IM network 間相互溝通,會變得簡單許多。
Session Initiation protocol (SIP)是一種傳遞信號(signal)的通訊協定,主要用 在建立語音通話,通訊雙方的管理、協商,但 SIP 的文件中,並沒有指明 SIP 只能用 於語音通話中,因此擴充 SIP 則是很自然的想法。SIMPLE 則將 SIP 導入即時通訊的 領域。
XMPP 是一個基於 XML 的協定,制定標準的標籤(tag),如 from、to、message 等,讓即時通訊系統的開發商遵循,同是支援 XMPP 這個通訊協定的即時通訊系統 間,便可彼此通話,傳送訊息。
XMPP 為 Jabber 的核心技術。Jabber 既是一種基於伺服器(Server),也是一種 分散式的 IM Network,基於伺服器這點,是因為用戶端之間彼此不直接相連。而分 散式是指 Jabber Network 並沒有一個中央官方的伺服器,實際上,每個人都可以在 自己的網域架上一台 Jabber Server,並提供服務。
圖 2 Jabber 架構圖
圖 2 為 Jabber 服務的架構圖。在 Jabber 中,每個使用者以一個 JID 來做識別,
JID 看起來就像是一般的 email,如 [email protected],前半部是用戶名,後半部 是 Jabber 伺服器的網域名,中間以@隔開。
圖 2 中,Juliet 和 Romeo 分別由 Capulet.com 和 Montague.net 這兩家廠商 提供服務。當 Juliet 和 Romeo 相互傳訊息時,不必擁有對方伺服器的帳號,也不必 成為對方業者的會員。Juliet 想要傳送訊息給 Romeo 時,Juliet 所發送的訊息,會先 傳 送 到 自 家 的 系 統 提 供 商 Capulet.com , 再 由 Capulet.com 將 訊 息 轉 發 給 Montague.net,由於是使用標準的通訊協定,兩方的伺服器都能解讀封包,以進行 溝通,最後 Montague.net 再把訊息傳遞給 Romeo,完成了整個訊息傳送的過程,
Romeo 收到 Juliet 所傳送的訊息。
2.5 CMS
本實室學長所完成的系統,Contact Management System (CMS)主要的目的 是將通訊錄(Windows Address Book, wab.exe)中的聯絡人資訊,與伺服器上的聯 絡人資訊相互同步。無論是在 Windows Address Book 上操作聯絡人的增減,還是
Capulet.com
Juliet Montague.net Romeo
在 CMS 所提供的 Web 介面操作,皆可透過 CMS 系統讓兩邊的聯絡人同步,達到一 致。
此外,我們透過另一隻小程式,取得聯絡人的 MSN Messenger 和 Skype 的線 上狀態並傳至伺服器,往後可以透過瀏覽器一目瞭然地掌握聯絡人的動態。圖 3 為 CMS 的架構圖。
圖 3 CMS Architecture