專利名稱:一種基于即時(shí)通信技術(shù)的文件發(fā)布方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多業(yè)務(wù)融合的網(wǎng)絡(luò)服務(wù)系統(tǒng),特別涉及到一種基于即時(shí)通信技術(shù) 的文件發(fā)布方法。
背景技術(shù):
IM (Instant Messaging,即時(shí)通信)是一種實(shí)時(shí)的互聯(lián)網(wǎng)交流方式,是繼電 子郵件和萬維網(wǎng)之后的第三大互聯(lián)網(wǎng)應(yīng)用。IM主要用于私人之間的日常交流和 保持聯(lián)系,除此之外,它還被廣泛地應(yīng)用于辦公領(lǐng)域,如討論問題、協(xié)商工作進(jìn) 程等。IM的實(shí)時(shí)性,使它能夠有效地用于服務(wù)器之間傳遞數(shù)據(jù),進(jìn)行遠(yuǎn)程服務(wù) 調(diào)用。很多公司都開始將IM作為一條主線,圍繞其展開多項(xiàng)特色服務(wù),有效融 合其各項(xiàng)業(yè)務(wù)。如基于IM技術(shù)的文件傳輸、語音視頻服務(wù)、新聞?dòng)嗛喎?wù)、網(wǎng) 絡(luò)游戲服務(wù)等。XMPP (Extensible Messaging and Presence Protocol,可擴(kuò)展消息處理及在線 協(xié)議)是一套先進(jìn)的即時(shí)通信協(xié)議。它采用XML (Extensible Makeup Language, 可擴(kuò)展標(biāo)記語言)語言定義協(xié)議中的命令和數(shù)據(jù),利用XML通用性強(qiáng)、易擴(kuò)展, 以及機(jī)器可讀的優(yōu)點(diǎn),方便了協(xié)議在功能上的擴(kuò)展及其在應(yīng)用上的互通。XMPP 核心協(xié)議由RFC (Request for Comments) 3920和RFC 3921組成,包含了-一系 列擴(kuò)展協(xié)議(XEPs, XMPP Extension Protocols )。擴(kuò)展協(xié)議XEP-0060定義了一 種發(fā)布訂閱機(jī)制,而XEP-0137在此基礎(chǔ)上提供了一種發(fā)布流式(stream)信息 的辦法。其典型步驟為1、信息消費(fèi)者到發(fā)布服務(wù)器上訂閱某種類型的信息;2、 信息發(fā)布者往發(fā)布服務(wù)器上發(fā)布某個(gè)類型的信息;3、發(fā)布服務(wù)器通知所有訂閱 了該類型信息的消費(fèi)者;4、信息消費(fèi)者到信息發(fā)布者處獲取實(shí)際的信息。上述 機(jī)制存在諸多不足之處,如只有信息發(fā)布者在線時(shí),消費(fèi)者才能獲取它發(fā)布的信 息;所有信息消費(fèi)者都需要到發(fā)布者處獲取信息,增加了發(fā)布者的網(wǎng)絡(luò)流量;當(dāng) 信息發(fā)布者網(wǎng)速較慢或發(fā)布信息很大時(shí),消費(fèi)者的服務(wù)質(zhì)量難以保證
發(fā)明內(nèi)容
本發(fā)明的目的在于克服XMPP擴(kuò)展協(xié)議的缺陷,提高基于即時(shí)通信技術(shù)文 件發(fā)布的服務(wù)質(zhì)量,從而提供一種基于即時(shí)通信技術(shù)的文件發(fā)布方法。為達(dá)到上述發(fā)明目的,本發(fā)明提供的基于即時(shí)通信技術(shù)的文件發(fā)布方法,包 括初始化過程和文件發(fā)布機(jī)制。所述服務(wù)器初始化過程包括以下步驟11) 由XMPP網(wǎng)絡(luò)中的IM服務(wù)器定義合法文件服務(wù)器的IP (Internet Protocol,因特網(wǎng)協(xié)議)地址和JID (Jabber Identifier, Jabber標(biāo)識(shí)符)標(biāo)識(shí),并 建立一個(gè)在線文件服務(wù)器列表;其中,IM服務(wù)器實(shí)現(xiàn)了 XMPP擴(kuò)展協(xié)議 XEP-0060中所述發(fā)布訂閱功能;12) 文件服務(wù)器根據(jù)XMPP協(xié)議將服務(wù)支持信息發(fā)送到IM服務(wù)器;13) IM服務(wù)器根據(jù)消息發(fā)布者的IP地址和JID標(biāo)識(shí),判斷該實(shí)體是否為合 法的文件服務(wù)器,如合法,向所述文件服務(wù)器反饋成功信息,并將該文件服務(wù)器 加入到在線文件服務(wù)器列表中;否則,向所述文件服務(wù)器反饋失敗消息。所述文件發(fā)布機(jī)制包括如下步驟-21) 文件發(fā)布者通過客戶端向發(fā)布服務(wù)器發(fā)送發(fā)布消息;所述發(fā)布消息含有 發(fā)布文件的屬性信息;所述發(fā)布文件的屬性信息包括該文件的唯一標(biāo)識(shí)、描述與 類型;22) 發(fā)布服務(wù)器根據(jù)發(fā)布文件的唯一標(biāo)識(shí)判斷該文件是否已經(jīng)存在于發(fā)布服 務(wù)器的發(fā)布文件列表中,如果已經(jīng)存在,根據(jù)所述發(fā)布消息更改發(fā)布服務(wù)器中該 發(fā)布文件的屬性信息,向文件發(fā)布者返回成功消息,發(fā)布過程完成;否則,繼續(xù) 執(zhí)行步驟23);23) 發(fā)布服務(wù)器根據(jù)消息發(fā)布者的IP地址和JID標(biāo)識(shí),判斷該發(fā)布者是否 為合法文件服務(wù)器之一,如果是,繼續(xù)執(zhí)行步驟27);否則繼續(xù)執(zhí)行步驟24);24) 發(fā)布服務(wù)器從在線文件服務(wù)器列表中選擇一個(gè)在線文件服務(wù)器,將該在 線文件服務(wù)器的JID標(biāo)識(shí)返回給文件發(fā)布者;25) 文件發(fā)布者將發(fā)布文件以及該文件的屬性信息傳送給步驟23)中選擇 的文件服務(wù)器;26) 所述文件服務(wù)器向發(fā)布服務(wù)器發(fā)送發(fā)布消息,所述發(fā)布消息含有步驟 24)中接收到的發(fā)布文件的屬性信息;所述發(fā)布文件的屬性信息包括該文件的唯 一標(biāo)識(shí)、描述與類型;27) 發(fā)布服務(wù)器在發(fā)布文件列表中添加一條新記錄,所述新記錄中包含所述 發(fā)布文件的屬性信息。所述步驟11)中,所述IM服務(wù)器定義合法的文件服務(wù)器是將具有一系列IP 地址或一系列JID標(biāo)識(shí)的服務(wù)器作為的合法的文件服務(wù)器。IM服務(wù)器用這種辦 法來防止任意客戶端偽裝成文件服務(wù)器來盜取用戶信息。所述發(fā)布文件的屬性信息還包括文件名稱、文件大小,文件格式,文件創(chuàng)建 時(shí)間,文件版權(quán)信息等。所述發(fā)布文件的唯一標(biāo)識(shí)由兩部分組成,第一部分是文件內(nèi)容摘要,第二部 分為文件發(fā)布者的JID標(biāo)識(shí);所述內(nèi)容摘要根據(jù)文件的內(nèi)容通過哈希算法(如 MD5、 SHA1等)生成。內(nèi)容摘要只與文件的內(nèi)容本身相關(guān),而與文件的其它屬 性如描述、類型等無關(guān)。系統(tǒng)中,具有同樣內(nèi)容摘要的文件可以看作是同一個(gè)文 件。所述步驟24)中,從在線文件服務(wù)器列表中選擇一個(gè)在線文件服務(wù)器時(shí)采 用隨機(jī)選擇算法,Round-Robin算法或其它能夠在多個(gè)文件服務(wù)器之間實(shí)現(xiàn)負(fù) 載均衡的選擇算法。本發(fā)明提供的文件發(fā)布方法,作為XMPP擴(kuò)展協(xié)議所述信息發(fā)布訂閱方法 的一個(gè)補(bǔ)充。使用此方法發(fā)布文件后,發(fā)布者不必保持在線,其他用戶可以從文 件服務(wù)器下載到該發(fā)布文件;發(fā)布者發(fā)布文件后,無論該文件被下載多少次,對(duì) 發(fā)布者都只產(chǎn)生一次流量,減少了發(fā)布者的網(wǎng)絡(luò)流量;文件服務(wù)器網(wǎng)速和帶寬更 有保證,提高了用戶下載文件時(shí)的服務(wù)質(zhì)量。
圖1是本發(fā)明的文件發(fā)布的總體框架圖2是本發(fā)明服務(wù)器初始化的流程圖;圖3是本發(fā)明文件發(fā)布的流程圖;圖4是本發(fā)明文件發(fā)布的時(shí)序圖;圖5是本發(fā)明所涉及的三類實(shí)體的示意圖。
具體實(shí)施方式
本發(fā)明提供的文件發(fā)布解決方案,涉及到三類實(shí)體IM服務(wù)器、文件服務(wù) 器和客戶端(如圖5所示)。其中,IM服務(wù)器是實(shí)現(xiàn)了 XMPP基本協(xié)議和相關(guān)擴(kuò)展協(xié)議的即時(shí)通信服務(wù) 器,它包含負(fù)責(zé)管理信息發(fā)布訂閱的模塊,本發(fā)明中稱為發(fā)布服務(wù)器。發(fā)布服務(wù) 器擁有獨(dú)立的JID,能夠與其它客戶端通信。IM服務(wù)器主要負(fù)責(zé)用戶管理、消 息路由、訂閱關(guān)系管理等基礎(chǔ)功能??蛻舳酥笇?shí)現(xiàn)了 XMPP協(xié)議即時(shí)通信客戶端,它通常是硬件設(shè)備上的軟件 實(shí)體。文件服務(wù)器負(fù)責(zé)存儲(chǔ)用戶發(fā)布的文件,作為一個(gè)特殊的客戶端來實(shí)現(xiàn),擁有 獨(dú)立的JID,能夠通過IM服務(wù)器與其它客戶端通信??蛻舳丝梢酝ㄟ^各種無線或有線方式連接到IM服務(wù)器,包括xDSL (使用 電話線方式進(jìn)行數(shù)據(jù)通信的傳輸機(jī)制)、WLAN (802.11a、 802.11b、 802.11g等)、 WWAN(802.16)以及各種以太網(wǎng)接入方式(10Mbps、 100Mbps、 1000Mbps以及 10Gbps)。IM服務(wù)器和文件服務(wù)器則通過以太網(wǎng)局域網(wǎng)直接連接。 下面結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明提供的基于即時(shí)通信技術(shù)文件發(fā)布方 法作進(jìn)一步闡述。本發(fā)明提供的基于即時(shí)通信技術(shù)文件發(fā)布方法包括初始化過程和文件發(fā)布 機(jī)制。實(shí)施例1如圖1所示,本發(fā)明提供的基于即時(shí)通信技術(shù)的文件發(fā)布包括 步驟100:初始化過程。 步驟200:文件發(fā)布方法。本實(shí)施案例中,步驟100的初始化過程如圖2所示,包括如下子步驟 步驟110:通過配置文件或者數(shù)據(jù)庫(kù),定義合法文件服務(wù)器的IP地址和JID標(biāo)識(shí),并初始化一個(gè)空的在線文件服務(wù)器列表;步驟111:文件服務(wù)器將其所提供的功能和實(shí)現(xiàn)的服務(wù)細(xì)節(jié)發(fā)送給IM服務(wù) 器。本實(shí)施案例中通過xmlns=http:〃jabber.org/protocol/disco#infopub來表明該實(shí) 體實(shí)現(xiàn)了本發(fā)明中所述的擴(kuò)展協(xié)議;步驟112: IM服務(wù)器根據(jù)消息發(fā)送者的IP地址和JID標(biāo)識(shí),判斷該實(shí)體是 否合法的文件服務(wù)器。IP地址和JID標(biāo)識(shí)都可以直接從會(huì)話屬性中直接獲取,不 需要消息中額外附帶;步驟113:如果該實(shí)體是合法的文件服務(wù)器,IM服務(wù)器將它加入在線文件服 務(wù)器列表中;否則,IM服務(wù)器反饋錯(cuò)誤信息。如圖3和圖4所示,步驟200的文件發(fā)布方法包括如下子步驟 步驟210:提供界面,供用戶輸入待共享文件的類型和描述等屬性; 步驟211:客戶端向發(fā)布服務(wù)器發(fā)送發(fā)布命令,命令中包含了該發(fā)布文件的 唯一標(biāo)識(shí)、類型和描述等屬性。本實(shí)施案例中,文件的唯一標(biāo)識(shí)由兩部分組成, 第一部分為文件內(nèi)容的SHA1摘要,第二部分為文件發(fā)布者的JID。步驟212:發(fā)布服務(wù)器收到消息后,通過文件的唯一標(biāo)識(shí)檢査該文件是否己 經(jīng)存在于發(fā)布文件列表中,如果已經(jīng)存在,根據(jù)所述發(fā)布消息更改發(fā)布服務(wù)器中 該發(fā)布文件的屬性信息(發(fā)布文件的屬性信息還可以包括文件名稱、文件大小, 文件格式,文件創(chuàng)建時(shí)間,文件版權(quán)信息等),向文件發(fā)布者返回成功消息;否 則,繼續(xù)執(zhí)行步驟213。步驟213:發(fā)布服務(wù)器根據(jù)文件發(fā)布者的IP地址和JID標(biāo)識(shí)判斷該發(fā)布者是 否為合法的文件服務(wù)器之一,如果是,繼續(xù)執(zhí)行步驟217;否則,繼續(xù)執(zhí)行步驟214;步驟214:發(fā)布服務(wù)器從在線文件服務(wù)器列表中選擇一個(gè)在線文件服務(wù)器,將該在線文件服務(wù)器的JID標(biāo)識(shí)返回給文件發(fā)布者。從在線文件服務(wù)器列表中選 擇一個(gè)在線文件服務(wù)器時(shí)采用隨機(jī)選擇算法,Round-Robin算法或其它能夠在
多個(gè)文件服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的選擇算法。步驟215:文件發(fā)布者將發(fā)布文件以及該發(fā)布文件的屬性信息傳送給步驟 214)中選擇的文件服務(wù)器,并指定該發(fā)布文件的創(chuàng)建者為該文件發(fā)布者的JID;步驟216:所述文件服務(wù)器向發(fā)布服務(wù)器發(fā)送發(fā)布消息,所述發(fā)布消息含有 步驟215)中接收到的發(fā)布文件的屬性信息;所述發(fā)布文件的屬性信息包括該文 件的唯一標(biāo)識(shí)、描述與類型。步驟217:發(fā)布服務(wù)器在發(fā)布文件列表中添加一條新記錄,所述新記錄中包 含所述發(fā)布文件的屬性信息。
權(quán)利要求
1. 一種基于即時(shí)通信技術(shù)的文件發(fā)布方法,包括初始化過程和文件發(fā)布機(jī)制,其特征在于,所述服務(wù)器初始化過程包括以下步驟11)由XMPP網(wǎng)絡(luò)中的IM服務(wù)器定義合法文件服務(wù)器的IP地址和JID標(biāo)識(shí),并建立一個(gè)在線文件服務(wù)器列表;其中,IM服務(wù)器是實(shí)現(xiàn)了XMPP擴(kuò)展協(xié)議XEP-0060中發(fā)布訂閱功能的IM服務(wù)器;12)文件服務(wù)器根據(jù)XMPP協(xié)議將服務(wù)支持信息發(fā)送到IM服務(wù)器;13)IM服務(wù)器根據(jù)文件服務(wù)器的IP地址和JID標(biāo)識(shí),判斷該文件服務(wù)器是否為合法的文件服務(wù)器,如合法,向所述文件服務(wù)器反饋成功信息,并將該文件服務(wù)器加入到在線文件服務(wù)器列表中;否則,向所述文件服務(wù)器反饋失敗消息。所述文件發(fā)布機(jī)制包括如下步驟21)文件發(fā)布者通過客戶端向發(fā)布服務(wù)器發(fā)送發(fā)布消息;所述發(fā)布消息含有發(fā)布文件的屬性信息;所述發(fā)布文件的屬性信息包括該文件的唯一標(biāo)識(shí)、描述與類型;22)發(fā)布服務(wù)器根據(jù)發(fā)布文件的唯一標(biāo)識(shí)判斷該文件是否已經(jīng)存在于發(fā)布服務(wù)器的發(fā)布文件列表中,如果已經(jīng)存在,根據(jù)所述發(fā)布消息更改發(fā)布服務(wù)器中該發(fā)布文件的屬性信息,向文件發(fā)布者返回成功消息,發(fā)布過程完成;否則,繼續(xù)執(zhí)行步驟23);23)發(fā)布服務(wù)器根據(jù)文件發(fā)布者的IP地址和JID標(biāo)識(shí)判斷該發(fā)布者是否為合法文件服務(wù)器之一,如果是,繼續(xù)執(zhí)行步驟27);否則,繼續(xù)執(zhí)行步驟24);24)發(fā)布服務(wù)器從在線文件服務(wù)器列表中選擇一個(gè)在線文件服務(wù)器,將該在線文件服務(wù)器的JID標(biāo)識(shí)返回給信息發(fā)布者;25)文件發(fā)布者將發(fā)布文件以及該文件的屬性信息傳送給步驟24)中選擇的文件服務(wù)器;26)所述文件服務(wù)器向發(fā)布服務(wù)器發(fā)送發(fā)布消息,所述發(fā)布消息含有步驟25)中接收到的發(fā)布文件的屬性信息;所述發(fā)布文件的屬性信息包括該文件的唯一標(biāo)識(shí)、描述與類型;27)發(fā)布服務(wù)器在發(fā)布文件列表中添加一條新記錄,所述新記錄中包含所述發(fā)布文件的屬性信息。
2、 按權(quán)利要求1所述的基于即時(shí)通信技術(shù)的文件發(fā)布方法,其特征在于, 所述發(fā)布文件的屬性信息還包括文件名稱、文件大小,文件格式,文件創(chuàng)建時(shí)間, 文件版權(quán)信息。
3、 按權(quán)利要求1所述的基于即時(shí)通信技術(shù)的文件發(fā)布方法,其特征在于, 所述發(fā)布文件的唯一標(biāo)識(shí)由兩部分組成,第一部分是文件內(nèi)容摘要,第二部分為 信息發(fā)布者的JID標(biāo)識(shí);所述內(nèi)容摘要根據(jù)文件的內(nèi)容通過哈希算法生成。
4、 按權(quán)利要求1所述的基于即時(shí)通信技術(shù)的文件發(fā)布方法,其特征在于, 所述步驟24)中,從在線文件服務(wù)器列表中選擇一個(gè)在線文件服務(wù)器時(shí)采用隨 機(jī)選擇算法,Round-Robin算法或其它能夠在多個(gè)文件服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡 的選擇算法。
全文摘要
本發(fā)明涉及一種基于即時(shí)通信技術(shù)的文件發(fā)布方法,包括初始化過程和文件發(fā)布機(jī)制,其初始化過程是由XMPP網(wǎng)絡(luò)中的IM服務(wù)器定義合法文件服務(wù)器的IP地址和JID標(biāo)識(shí),并建立一個(gè)在線文件服務(wù)器列表的過程;文件發(fā)布機(jī)制包括文件發(fā)布者通過客戶端向發(fā)布服務(wù)器發(fā)送發(fā)布消息;發(fā)布服務(wù)器從在線文件服務(wù)器列表中選擇一個(gè)在線文件服務(wù)器,將該在線文件服務(wù)器的JID標(biāo)識(shí)返回給信息發(fā)布者;文件發(fā)布者將發(fā)布文件以及該文件的屬性信息傳送給所述文件服務(wù)器;所述文件服務(wù)器向發(fā)布服務(wù)器發(fā)送發(fā)布消息;發(fā)布服務(wù)器在發(fā)布文件列表中添加一條新記錄。本發(fā)明優(yōu)點(diǎn)在于發(fā)布者不必保持在線;減少發(fā)布者的網(wǎng)絡(luò)流量;提高了用戶下載文件時(shí)的服務(wù)質(zhì)量。
文檔編號(hào)H04L29/06GK101212474SQ20061017164
公開日2008年7月2日 申請(qǐng)日期2006年12月31日 優(yōu)先權(quán)日2006年12月31日
發(fā)明者呂紅亮, 曄 李, 湯迪斌, 王勁林, 湘 錢 申請(qǐng)人:中國(guó)科學(xué)院聲學(xué)研究所