專利名稱:用于控制分布式多方會議的方法
技術(shù)領(lǐng)域:
本文獻大體上涉及一種計算機可執(zhí)行的會議系統(tǒng),更具體的是,涉及一種分布式多方會議系統(tǒng)。
背景技術(shù):
今天,人們通常使用因特網(wǎng)上的信使服務(wù)進行相互通信。例如,人們能夠生成他們所希望通信的朋友列表。出現(xiàn)在列表中的每一個朋友都有一個唯一的用戶標(biāo)識符。當(dāng)朋友在線時,就會以該朋友的用戶標(biāo)識符這樣的方式出現(xiàn),從而使人們得知該朋友并能夠進行通信。于是,人們就可以和這個朋友開始“聊天”對話并且交換消息,該消息通常稱作瞬時消息(IM)。追加的朋友可以被加入到“聊天”對話中,從而產(chǎn)生一個具有多人相互通信的多方“聊天”對話。
盡管具有多方“聊天”對話是便利的,但是用戶對能夠見到其他人并且體驗更“現(xiàn)實生活”的類似經(jīng)歷更感興趣,而不僅僅是鍵入信息。遺憾的是,提供多方視頻會議系統(tǒng)面臨著許多難題。一個難題是所設(shè)計的系統(tǒng)要能夠解決視頻會議應(yīng)用中的高帶寬需求以及因特網(wǎng)用戶的多相性。另一個難題是管理多方之間的通信。
許多多方視頻會議系統(tǒng)只能夠在局域網(wǎng)(LAN)中運行。下列是兩個在LAN上運行的多方視頻會議系統(tǒng)1)由K.Watanabe等人于1990年9月在洛杉磯(LosAngeles),CA的計算機支持協(xié)作工作會議(Conference on Computer-SupportedCooperative Work)會刊上發(fā)表的,題目為“分布式多方桌上電腦會議系統(tǒng)MERMAID”(Distributed Multiparty Desktop Conferencing SystemMERMAIN)的文章中描述的MERMAID;以及2)由Mike Macedonia和Don Bruzman于1994年4月在IEEE計算機(IEEE Computer)上發(fā)表的,題目為“MBONE多點傳輸主架結(jié)構(gòu)”(MBONE,the Multicast Backbone)的文章中描述的系統(tǒng)。由于這些系統(tǒng)在LAN上運行,該系統(tǒng)可以在硬件內(nèi)采用多點傳輸?shù)奶卣鱽頊p少在LAN上傳輸?shù)臄?shù)據(jù)量,因此帶寬問題不是一個難題。遺憾的是,能夠IP多點傳輸?shù)穆酚善鞑荒芷毡榈剡\用在因特網(wǎng)上。
即使硬件多點傳輸特征不能普遍地運用在因特網(wǎng)上,但是多方視頻會議系統(tǒng)曾經(jīng)多次嘗試過在廣域網(wǎng)(WAN)上執(zhí)行。該系統(tǒng)是一種基于服務(wù)器的通信工具,通常指的是由在Santa Monica,CA的iVisit LLC制造的IVISIT。IVISIT需要用戶隨時能夠訪問的中央服務(wù)器。該中央服務(wù)器執(zhí)行會員注冊和認(rèn)證。當(dāng)設(shè)置用戶和他們的朋友列表上識別的其他用戶進行音頻/視頻對話時,用戶對中央服務(wù)器有影響。當(dāng)IVISIT允許用戶在同一時間進行多個連接并且看到多個視頻時,該系統(tǒng)不是理想的。在某個模塊中,用戶必須手動地進行每一個所希望地連接。在另外的模塊中,多方可以在單一的聊天室中相互發(fā)送瞬時信息,但是當(dāng)需要視頻時,視頻通信是基于獨立的一對一連接。因此,IVISIT沒有提供一般公用所需的多方視頻會議系統(tǒng)的類型。
另一個系統(tǒng)提供全球事務(wù)的在線會議服務(wù),通常指的是由San Jose,CA的WebEx通信公司制造的WEBEX。該服務(wù)包括應(yīng)用程序共享,白板,和視頻會議。WEBEX包括用于在終端用戶之間發(fā)送通信的多個全球交換中心。盡管當(dāng)存在大量的同步視頻會議時,這種策略是有效的,但是WebEx對于小規(guī)模的個人通信而言成本太高。
如上所述,盡管對于大規(guī)模的企業(yè)而言具有處理通信的服務(wù)器是有效的,但是對于小規(guī)模的個人通信操作而言,基于服務(wù)器的系統(tǒng)具有很多缺點。一個缺點是購買和維護服務(wù)器的費用。另一個缺點是通過使用中央服務(wù)器產(chǎn)生的難關(guān)。因此,直到現(xiàn)在,對于適合于一般公共使用的多方視頻會議系統(tǒng)仍然沒有一個滿意的解決辦法。
發(fā)明內(nèi)容
這里描述的技術(shù)和方法教導(dǎo)了在支持一個完整網(wǎng)格結(jié)構(gòu)的分布式多方會議中控制會議成員之間的通信路徑。為了解決并行問題并且確保服務(wù)器的質(zhì)量,多個檢驗點被檢驗。首先,執(zhí)行一檢驗以確定兩個系統(tǒng)之間是否存在任何未決的通信路徑。第二,執(zhí)行一檢驗以確定是否存在一個系統(tǒng)處于離開多方會議的處理。第三,執(zhí)行一檢驗以確定會議中是否已經(jīng)存在最大數(shù)量的會議成員。一旦任何一個檢驗失敗,兩個系統(tǒng)之間的通信路徑就會失敗。一旦成功,新的系統(tǒng)就會啟動會議中其他每一個成員的加入處理,從而維持完整的網(wǎng)格結(jié)構(gòu)。
附圖簡述參考下圖來描述非限制并且非具體的實施例,其中全部視圖中相同的參考數(shù)字指的是相同的部分,除非其他具體的說明。
圖1說明了用于執(zhí)行這里所描述的技術(shù)和方法的計算設(shè)備。
圖2說明了圖2所示的一個或多個計算機設(shè)備可以配置的網(wǎng)絡(luò)。
圖3是一個說明了圖1所示的用于執(zhí)行這里所描述的技術(shù)和方法的計算設(shè)備中組件的功能塊圖。
圖4是一個說明了用于建立和維護圖2所示網(wǎng)絡(luò)的會議控制協(xié)議的表格。
圖5是一個說明了當(dāng)將一個新的用戶加入到圖2所示的網(wǎng)絡(luò)中時會議控制協(xié)議的操作順序流程圖。
圖6是一個說明了當(dāng)一個成員離開圖2所示的網(wǎng)絡(luò)時會議控制協(xié)議的操作順序流程圖。
具體實施例方式
簡要地,當(dāng)前方法提供了一種用于建立和維護分布式多方視頻會議系統(tǒng)的會議控制協(xié)議。該協(xié)議采用多個檢驗點來解決并行問題并且確保服務(wù)器的質(zhì)量。如下面詳細(xì)描述的,當(dāng)前會議控制協(xié)議在不同類型的因特網(wǎng)連接上有效地操作,例如撥號,寬帶,電纜等等。這些和其他的優(yōu)點在隨后的詳細(xì)描述之后將變得很清楚。
圖1說明了用于執(zhí)行當(dāng)前分布式視頻會議方法的一個示范性系統(tǒng)。該系統(tǒng)包括計算設(shè)備,例如計算設(shè)備100。在一個相當(dāng)基本的配置中,計算設(shè)備100一般包括至少一個處理單元102和系統(tǒng)存儲器104。依賴于計算設(shè)備的準(zhǔn)確配置和類型,系統(tǒng)存儲器104可以是易失性的(例如RAM),非易失性的(例如ROM,閃存等等)或這兩種的組合。系統(tǒng)存儲器104一般包括操作系統(tǒng)105,一個或多個程序模塊106,也可以包括程序數(shù)據(jù)107。程序模塊106包括用于執(zhí)行當(dāng)前分布式多方會議方法的模塊130。這種基本的配置通過圖1虛線108中的組件來說明。
計算設(shè)備100可以具有附加的特征和功能。例如,計算設(shè)備100也可以包括如附加的數(shù)據(jù)存儲設(shè)備(移動的和/或不可移動的)這樣的設(shè)備,例如,磁盤,光盤,或磁帶。這種附加的存儲器通過圖1中的可移動存儲器109和不可移動存儲器110來說明。計算機存儲介質(zhì)可以包括以任何方式或技術(shù)執(zhí)行信息存儲的易失性和非易失性的,可移動和不可移動的介質(zhì),例如計算機可讀指令,數(shù)據(jù)指令,程序模塊,或其他數(shù)據(jù)。系統(tǒng)存儲器104,可移動存儲器109和不可移動存儲110器都是計算機存儲介質(zhì)的例子。因此,計算機存儲介質(zhì)包括RAM,ROM,EEPROM,閃存或其他存儲技術(shù),CD-ROM,數(shù)字化視頻光盤(DVD)或其他光存貯器,盒式磁帶,磁帶,磁盤存儲器或其他磁存儲設(shè)備,或能夠用于存儲所需要的信息并且能夠由計算設(shè)備100來存取的其他任何介質(zhì),并且不限于此。任何這樣的計算機存儲介質(zhì)可以是計算設(shè)備100的一部分。計算設(shè)備100還可以具有如鍵盤,鼠標(biāo),筆,聲音輸入設(shè)備,觸摸輸入設(shè)備等等這樣的輸入設(shè)備112。還可以包括如顯示器,揚聲器,打印機等等這樣的輸出設(shè)備114。這些設(shè)備是本領(lǐng)域熟知的,在這里就不詳細(xì)描述了。
計算設(shè)備100也可以包含允許設(shè)備和其他計算設(shè)備118通信的通信連接116,例如通過網(wǎng)絡(luò)。通信連接116是通信介質(zhì)的一個例子。通信介質(zhì)一般是通過計算機可讀指令,數(shù)據(jù)指令,程序模塊,或其他調(diào)制數(shù)據(jù)信號中的數(shù)據(jù)來體現(xiàn),例如載波或其他傳輸方法,并且包括任何信息傳輸介質(zhì)。術(shù)語“調(diào)制數(shù)據(jù)信號”意味著該信號按照信號中編碼信息的方式設(shè)置或改變自身的一個或多個特性。舉個例子,并且不限于此,通信介質(zhì)包括如有線網(wǎng)絡(luò)或直接有線連接這樣的有線介質(zhì),以及如有關(guān)聲音的,RF,紅外線以及其他無線介質(zhì)這樣的無線介質(zhì)。這里所使用的術(shù)語計算機可讀介質(zhì)包括存儲器介質(zhì)和通信介質(zhì)。
這里上下文中的各種模塊和技術(shù)可以被描述為由一個或多個計算機或其他設(shè)備執(zhí)行的計算機可執(zhí)行指令,例如程序模塊。通常,程序模塊包括用于執(zhí)行特殊任務(wù)或?qū)崿F(xiàn)特殊抽象數(shù)據(jù)類型的例行程序,程序,目標(biāo),組件,數(shù)據(jù)結(jié)構(gòu)等等。這些程序模塊等可以作為自然碼被執(zhí)行或下載并執(zhí)行,例如在虛擬的機器中或其他適合的編輯執(zhí)行環(huán)境中。通常,程序模塊的功能性可以按照各個實施例的需要進行組合或分配。
實際應(yīng)用的這些模塊和技術(shù)可以存儲在某些形式的計算機可讀介質(zhì)上或通過某些形式的計算機可讀介質(zhì)被傳輸。計算機可讀介質(zhì)可以是計算機能夠訪問的任何有效介質(zhì)。舉個例子,并且不限于此,計算機可讀介質(zhì)可以包括“計算機存儲介質(zhì)”和“通信介質(zhì)”。
圖2說明了圖1描述的一個或多個計算機設(shè)備可以配置的網(wǎng)絡(luò)。網(wǎng)絡(luò)200是一個使用完整網(wǎng)格會議結(jié)構(gòu)的分布式結(jié)構(gòu)。描述了完整網(wǎng)格會議結(jié)構(gòu)的附加信息可以從J.Lennox和H.Schulzrinne于2003年在關(guān)于支持?jǐn)?shù)字音頻和視頻的網(wǎng)絡(luò)和操作系統(tǒng)的第13屆國際專題學(xué)術(shù)討論會(Proc of 13thInternationalWorkshop on Network and Operating Systems Support for Digital Audio and Video)的第72頁至第81頁發(fā)表的,題目為“用于可靠的分布式會議的協(xié)議”(Aprotocolfor reliable decentralized conferencing)的文章中獲得,通過參考,該信息的所有目的在這里清楚的具體表現(xiàn)出來。要注意的一點是,上述文章陳述了文中所描述的完整網(wǎng)格會議結(jié)構(gòu)不適合于限制帶寬的終端用戶,例如無線設(shè)備和具有56kbps調(diào)制解調(diào)器的用戶。相反,當(dāng)前會議控制協(xié)議克服了這個局限性。另外,當(dāng)前會議控制協(xié)議提供了一種在連接處理期間減少網(wǎng)絡(luò)費用的有效協(xié)議,提供了一種更快的連接處理,并且減少了在連接處理期間由瞬時網(wǎng)絡(luò)錯誤引起失敗的可能性。
通常,在完整網(wǎng)格會議結(jié)構(gòu)中,每個會議成員(例如,會議成員202-210)具有和其他會議成員(兩個會議成員之間用箭頭表示)直接通信的信道。每一個會議成員202-210都是一個計算設(shè)備,例如圖1所示的計算設(shè)備100。該會議成員202-210采用這里描述的會議控制協(xié)議用于建立和維護完整的網(wǎng)格會議結(jié)構(gòu)。如下面詳細(xì)的描述,當(dāng)前會議控制協(xié)議提供了一種適合于小規(guī)模系統(tǒng)的簡單的會議控制協(xié)議。和先前的多方視頻會議系統(tǒng)不同,本結(jié)構(gòu)無需中央服務(wù)器。因此,上述中央服務(wù)器的缺點不適用于本結(jié)構(gòu)。
在完整網(wǎng)格會議結(jié)構(gòu)200中,每個會議成員202-210都具有同等的標(biāo)準(zhǔn)。因此,任何會議成員與其他的會議成員比較,都不具有特殊的功能性或特權(quán)。另外,每一個會議成員都具有在任何時候邀請新用戶參加會議的同等能力。類似地,每一個會議成員都可以在任何時候離開會議。盡管每一個會議成員都可以邀請其他用戶并且在任何時候離開,但是完整的會議結(jié)構(gòu)200的穩(wěn)定性是保持的,下面將詳細(xì)描述。
圖3是一個說明了圖1所示的用于執(zhí)行這里所描述的技術(shù)和方法的計算設(shè)備100中的模塊130實施例的功能塊圖。本領(lǐng)域的技術(shù)人員能夠理解,在某些實際應(yīng)用中,不脫離下述權(quán)利要求的范圍內(nèi),一個模塊的全部功能性或部分功能性可以和其他模塊結(jié)合。多方視頻會議系統(tǒng)包括用戶接口302,介質(zhì)流引擎310,傳輸模塊312,會議控制模塊304,消息傳送服務(wù)器接口308,以及傳輸控制協(xié)議(TCP)/用戶數(shù)據(jù)報協(xié)議(UDP)接口306。
用戶接口302和介質(zhì)流引擎310以及會議控制模塊304通信。介質(zhì)流引擎310和傳輸模塊312通信,傳輸模塊312和TCP/UDP接口306通信。會議控制模塊304通過消息傳送服務(wù)器接口308和消息傳送服務(wù)器(未示出)通信。另外,會議控制模塊304通過TCP/UDP接口306和其他計算設(shè)備通信。當(dāng)消息傳送服務(wù)器接口308采用一個開放式程序接口時,會議控制模塊304可以和消息傳送服務(wù)器通信,該消息傳送服務(wù)器使用本領(lǐng)域技術(shù)人員熟知的標(biāo)準(zhǔn)程序技術(shù)。
用戶接口302,介質(zhì)流引擎310,以及傳輸模塊312的操作能夠以各種方式出現(xiàn)而不改變本會議控制協(xié)議的操作方式。因此,下面描述了這些其他模塊的一個說明性的操作并且接著詳細(xì)地描述會議控制模塊304。對于前者,用戶接口302解決了用戶需求,例如在會議期間打開和關(guān)閉音頻/視頻,加入會議,以及離開會議。該介質(zhì)流引擎310捕獲音頻/視頻并且播放音頻/視頻。由介質(zhì)流引擎310捕獲的音頻/視頻通過傳輸模塊312經(jīng)由TCP/UDP接口傳送到其他會議成員。當(dāng)新的用戶加入并且當(dāng)前成員離開該網(wǎng)格會議結(jié)構(gòu)時,會議控制模塊304解決會議成員之間的通信。盡管當(dāng)前的說明描述了關(guān)于多方視頻會議系統(tǒng)的網(wǎng)格會議結(jié)構(gòu)和會議控制協(xié)議,但是下述方法也可以在其他環(huán)境中執(zhí)行,例如組文本消息傳送等等。
圖4是一個說明了用于執(zhí)行當(dāng)前會議控制協(xié)議的消息類型的表格400,該會議控制協(xié)議負(fù)責(zé)建立和維護圖2所示的網(wǎng)格會議網(wǎng)格。如上所述,在網(wǎng)格會議網(wǎng)絡(luò)中的每個會議成員都具有一個和網(wǎng)絡(luò)中其他每個會議成員通信的信道。表格400有兩欄;第一欄402表示會議控制協(xié)議采用的消息類型。第二欄404描述了和每種消息類型關(guān)聯(lián)的動作。如說明的,當(dāng)前會議控制協(xié)議是相當(dāng)簡明的并且使用了四種消息類型JOIN消息410,ACCEPT消息412,REJECT消息414,以及LEAVE消息416。由于當(dāng)前會議控制協(xié)議執(zhí)行一個簡明的協(xié)議,因此減少了設(shè)置連接處理期間的網(wǎng)絡(luò)費用,加入成員的處理變得很快,并且減少了在加入處理期間由瞬時網(wǎng)絡(luò)錯誤引起失敗的可能性。
JOIN消息410從第一計算設(shè)備發(fā)送到其他計算設(shè)備以表示第一計算設(shè)備希望建立或加入多方會議。響應(yīng)JOIN消息410從其他計算設(shè)備發(fā)送ACCEPT消息412并且該ACCEPT消息412表示其他計算設(shè)備接受JOIN消息410。響應(yīng)JOIN消息410從其他計算設(shè)備發(fā)送REJECT消息414并且REJECT消息414表示其他計算設(shè)備不接受JOIN消息410。如下面描述的,結(jié)合圖5,在許多情況中JOIN消息不被接受。從多方會議中的當(dāng)前第一計算設(shè)備發(fā)送LEAVE消息416到多方會議中的其他計算設(shè)備以表示第一計算設(shè)備離開多方會議。
當(dāng)前會議控制協(xié)議為多方視頻會議系統(tǒng)提供了穩(wěn)定的服務(wù)質(zhì)量(QOS)。在加入和離開處理期間通過利用必要條件(例如,檢驗點)來獲得這種服務(wù)質(zhì)量。通常,檢驗點確保在某種意義上解決并行問題從而不損害網(wǎng)格會議結(jié)構(gòu)。當(dāng)會議處于由其他現(xiàn)有的成員引起的不穩(wěn)定狀態(tài)中時,并行動作是由一個現(xiàn)有成員執(zhí)行的動作。因此,并行不必意味著完全一致。
圖5是一個說明了在將一個新的用戶加入到圖2所示的網(wǎng)格會議的網(wǎng)絡(luò)中的加入處理500期間會議控制協(xié)議的操作順序流程圖。為了保持整個網(wǎng)格結(jié)構(gòu)的完整,每個連接都必須執(zhí)行加入處理500。被邀請的新用戶負(fù)責(zé)建立所需的每個通信電路。例如,如果當(dāng)前存在三個成員,則新用戶將執(zhí)行三次加入處理500,對現(xiàn)有三個成員的每一個都執(zhí)行一次。虛線501以上的動作表示需要生成TCP連接的處理。虛線501以下的動作表示需要生成通信對話的處理。然后使用通信對話來發(fā)送會議控制消息,例如預(yù)約請求一個現(xiàn)有會議成員的音頻/視頻流。
加入處理500包括四個檢驗點502,504,506和508。如下面描述的,如果任何一個檢驗點失敗,那么加入處理500將終止并且新用戶將不能夠加入會議。圖標(biāo)左邊的線表示多方視頻會議中的一個現(xiàn)有成員(例如,成員M)。圖標(biāo)右邊的線表示希望成為多方視頻會議成員的一個新用戶(例如,新用戶N)。某些時候,在新用戶N發(fā)送CONNECTION REQUEST消息之前,新用戶N注意到多方視頻會議。新用戶N可以通過從現(xiàn)有成員M經(jīng)由因特網(wǎng)消息傳送服務(wù)器發(fā)送的因特網(wǎng)瞬時消息(IM)來注意多方視頻會議。因特網(wǎng)消息傳送服務(wù)器可以是許多熟知的消息傳送服務(wù)器中的一種。這些消息傳送服務(wù)器在本領(lǐng)域中是熟知的,在這里就不詳細(xì)說明了,除了必須描述和當(dāng)前會議控制協(xié)議相互作用的程度。因特網(wǎng)消息包括IP地址,整個加入處理500中新用戶N使用的IP地址。另外,瞬時消息可以包括唯一的會議ID。一旦新用戶N注意到多方會議并且被邀請加入會議,就啟動會議控制協(xié)議。在上述實施例中,新用戶N可以通過點擊瞬時消息中提供的鏈接開始加入會議。
在檢驗點502上,新用戶N確定圖3所示的多方視頻會議模塊是否先前已經(jīng)下載到和新用戶N關(guān)聯(lián)的計算設(shè)備上的情況。如果多方視頻會議模塊先前沒有下載,則這時下載多方視頻會議模塊從而繼續(xù)處理。一旦多方視頻會議模塊被載入并且有效地運行,新用戶就依據(jù)從不同頻道信號傳輸方法接收地IP地址將CONNECTION REQUEST消息發(fā)送到現(xiàn)有成員M,例如邀請新用戶N加入會議的瞬時消息。CONNECTION REQUEST消息在現(xiàn)有成員M和新用戶N之間構(gòu)造TCP連接信道。處理繼續(xù)到檢驗點504。
在檢驗點504,現(xiàn)有成員M執(zhí)行一個并行檢驗,避免在相同的兩個計算設(shè)備之間構(gòu)造兩個信道。盡管兩個信道并不損害完整的網(wǎng)格結(jié)構(gòu),但是每個信道都使用資源,由于不允許其他計算設(shè)備使用這兩個信道,因此這兩個信道最終浪費了資源。因此,具有兩個信道是不希望的。
為了避免雙信道,當(dāng)前會議控制協(xié)議在每一個計算設(shè)備上執(zhí)行連同成員列表(例如,成員列表512和522)一起的未決列表(例如,未決列表510和520),。盡管未決列表510和520以及成員列表512和522作為單獨的列表來說明,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,計算設(shè)備可以具有一個列表,該列表包括未決列表和成員列表的必要消息。當(dāng)CONNECTION REQUEST消息發(fā)送時,未決列表510和520在發(fā)送CONNECTION REQUEST的計算機設(shè)備上更新。
因此,參考圖5,當(dāng)新用戶N發(fā)送CONNECTION REQUEST時,更新未決列表520。如所示,現(xiàn)有成員M在和新用戶N關(guān)聯(lián)的未決列表520中列出了。當(dāng)計算設(shè)備下載多方視頻會議模塊來反映作為成員的計算設(shè)備時,更新成員列表522。因此,頂部成員列表522反映作為成員的新用戶N。應(yīng)當(dāng)注意到,現(xiàn)有成員M還具有一個未決列表510。未決列表510列出了現(xiàn)有成員M將CONNECTION REQUEST發(fā)送到的計算設(shè)備。在圖5說明的實施例流程中,現(xiàn)有成員M沒有發(fā)送CONNECTION REQUEST到新用戶N,于是新用戶N不存在于未決列表510中。將CONNECTION REQUEST發(fā)送到的計算設(shè)備的唯一標(biāo)示符加入到未決列表520來識別成員。
因此,在檢驗點504上,當(dāng)現(xiàn)有成員M接收來自新用戶N的CONNECTIONREQUEST時,現(xiàn)有用戶M檢驗自身的未決列表(例如,未決列表510)。如果新用戶N不存在于未決列表510中,則現(xiàn)有成員M發(fā)送CONNECTIONACKNOWLEDGE(ACK)消息到該新用戶N。然而,如果新用戶N已經(jīng)存在于未決列表,則現(xiàn)有成員M比較未決列表中新用戶N的標(biāo)示符和從CONNECTION REQUEST消息接收的新用戶N的標(biāo)示符?;谶@種比較,現(xiàn)有成員M將CONNECTION REJECT消息或CONNECTION ACK消息發(fā)送到新用戶N。在實際應(yīng)用中,該比較包括用于新用戶N的點IP地址的比較。在這個應(yīng)用中,當(dāng)計算設(shè)備的點IP地址大于存儲在未決列表中的本地ID時,發(fā)送CONNECTION ACK。因此,通過執(zhí)行檢驗點504,避免建立成員M和新用戶N之間的冗余路徑。
如果新用戶N接收到CONNECTION ACK消息,則現(xiàn)在建立TCP連接信號。接著新用戶N將JOIN消息發(fā)送到現(xiàn)有成員M?,F(xiàn)有成員M執(zhí)行其他的認(rèn)證(見檢驗點506)。在檢驗點506上,檢驗存在標(biāo)記以確定現(xiàn)有成員M是否真的處于離開會議處理。下面結(jié)合附圖6來描述,當(dāng)現(xiàn)有成員M嘗試離開時,現(xiàn)有成員M設(shè)置一個存在標(biāo)記來表示這種請求。因此,在檢驗點506上,現(xiàn)有成員M檢驗自身的存在標(biāo)記以確定是否拒絕從新用戶N接收的JOIN消息。如果存在標(biāo)記表示處于離開會議處理,則現(xiàn)有成員M將拒絕JOIN消息。否則,現(xiàn)有成員M將進行檢驗點508。
在檢驗點508上,現(xiàn)有成員M檢驗自身的成員列表512和未決列表510來確定會議是否能夠增加其他成員。選擇能夠在多方視頻會議系統(tǒng)中相互交流的成員的數(shù)量,為用戶提供最大數(shù)量的連通性,而在因特網(wǎng)當(dāng)前帶寬條件下不使服務(wù)質(zhì)量降級。在一個實施例中,會議限制的成員默認(rèn)為五個。在另一個實施例中,通過會議啟動者(例如,向會議發(fā)送第一CONNECTION REQUEST消息的用戶),會議成員的最大數(shù)量是可配置的。如果會議成員已經(jīng)達(dá)到預(yù)定數(shù)量,則JOIN消息失敗并且新用戶N不能進入所包含的網(wǎng)格結(jié)構(gòu)。然而,如果檢驗點508通過,則現(xiàn)有成員M將一個ACCEPT消息發(fā)送到新用戶N。該ACCEPT消息識別當(dāng)前在多方會議中現(xiàn)有成員M可視的所有會議成員(例如,成員A,B,M,和N)。應(yīng)當(dāng)注意到這點,現(xiàn)有成員M看到作為成員的新用戶N并且包括在成員列表512中的新用戶N。這一切一旦完成,現(xiàn)有成員M和新用戶N之間的通信對話是有效的,直到他們中的一個離開。
當(dāng)新用戶N接收到ACCEPT消息時,新用戶N將現(xiàn)有成員M從未決列表520移入成員列表522。接著新用戶N負(fù)責(zé)執(zhí)行ACCEPT消息中識別的每個成員(例如,成員A和B)的加入處理500。直到新用戶N將CONNECTIONREQUEST發(fā)送給成員A和B,才將成員A和B加入未決列表522。
圖6是一個說明在用于從圖2所示的網(wǎng)格會議網(wǎng)絡(luò)中除去一個成員的離開處理600期間會議控制協(xié)議的操作順序流程圖。對于離開處理600,離開的成員(例如,成員A)將一個LEAVE消息發(fā)送到會議中的其他每一個現(xiàn)有成員(例如,成員B)。因此,離開處理600對每一個現(xiàn)有成員執(zhí)行一次。發(fā)出至少一個LEAVE消息后,優(yōu)選地,在發(fā)出第一個離開消息后,離開的成員A更新自身的存在標(biāo)記以表示處于離開會議的處理中。如上所述,在檢驗點506期間加入處理500采用這種存在標(biāo)記來確保離開的成員不被“強行”重新加入。
結(jié)合附圖6所示的離開處理600,通過一些實施例情況的描述,可以更好的理解在附圖5所示的加入處理500期間每個檢驗點502-506的重要性。
關(guān)于檢驗點502,檢驗點502確保在任何一個計算設(shè)備中僅有一種情況的分布式多方程序模塊被下載。檢驗點502自動地解決用戶決定重新加入前曾短暫地離開會議的情況。在這種情況中,JOIN消息可能會超過LEAVE消息。如果沒有檢驗點502,出現(xiàn)這種情況時,在LEAVE到達(dá)時其他成員會忽略首先到達(dá)的JOIN消息并且關(guān)閉連接。這是相當(dāng)不理想的情況。然而,通過執(zhí)行檢驗點502,接收來自自身成員列表一個成員的JOIN消息的現(xiàn)有成員將關(guān)閉先前的連接并且接收當(dāng)前請求。
關(guān)于檢驗點504,檢驗點504確保在兩個成員之間只存在一個信道。當(dāng)兩個現(xiàn)有會議成員(例如,會議成員A和B)的每一個都分別邀請一個不同的新用戶(例如,新用戶C和D)時,在相同的計算設(shè)備之間可能建立兩個信道。當(dāng)執(zhí)行網(wǎng)格會議網(wǎng)絡(luò),會議成員A邀請新用戶C加入會議時,會議成員A將通知新用戶C,成員A和成員B是當(dāng)前存在的成員。同樣的,當(dāng)會議成員B邀請新用戶D加入會議時,會議成員B將通知新用戶D,成員A和成員B是成員。最后,當(dāng)成員C和成員B開始加入處理時,成員B將通知成員C,A、B和D是成員。同樣的,最后,當(dāng)成員D和成員A開始加入處理時,成員A將通知成員D,A、B和C是成員。因此,成員C和D將啟動加入處理,在相互之間建立通信對話。檢驗點504確保只建立一個通信對話。
關(guān)于檢驗點506,為了保持完整網(wǎng)格會議結(jié)構(gòu),檢驗點506確保不強制將離開的成員重新加入會議。例如,假定在多方會議中存在三個成員(成員A,B,和C)。成員A請求離開多方會議并且將LEAVE消息發(fā)送到成員B和C。當(dāng)成員A處于離開處理時,成員B邀請成員D加入多方會議。在這種情況中,在成功離開多方會議之前,A接收成員D的CONNECTION REQUEST。沒有檢驗點506時,響應(yīng)D的CONNECTION REQUEST,成員A將重新加入到會議中。然而,在檢驗點506上,當(dāng)離開時采用存在標(biāo)記,A確定處于離開處理并且發(fā)送REJECT消息到新用戶N。
關(guān)于檢驗點508,檢驗點508確保維持任何多方會議的服務(wù)質(zhì)量。通過預(yù)定的數(shù)量來限定用戶數(shù)量,會議控制協(xié)議不允許會議變得太大并且危害服務(wù)質(zhì)量。早期的成員優(yōu)先于后加入的成員。
重點要注意的是,在某些情況中,新用戶N已經(jīng)作為一個新成員被接受并且已經(jīng)出現(xiàn)在某些計算設(shè)備上的成員列表中。如果新用戶N接收來自不同現(xiàn)有成員的CONNECTION REJECT消息時,則加入處理500失敗并且新用戶N不能加入到會議。因此,新用戶N必須將LEAVE消息發(fā)送到已經(jīng)建立連接的所有會議成員。
雖然任何會議控制協(xié)議的認(rèn)證是很困難的,由于協(xié)議行為主要依賴于事件發(fā)生的順序,并且事實上可能出現(xiàn)的順序?qū)h大小和動作數(shù)量是有害的,因此當(dāng)前多方會議控制協(xié)議的認(rèn)證更困難。理解到這點,在所有可能發(fā)生的情況中,通過確認(rèn)協(xié)議的操作來執(zhí)行當(dāng)前多方會議協(xié)議的確認(rèn)。如上所述,必須一直保持網(wǎng)格會議結(jié)構(gòu)的穩(wěn)定性,即使成員同時加入和離開。并發(fā)的加入和離開可以同時出現(xiàn)于兩個不同成員中或出現(xiàn)在同一成員中。
因此,確定并確認(rèn)四種類型的事件。下表所示的四種事件包括上面說明的JOIN(J),LEAVE(L),BRIEF JOIN(BJ)和BRIEF LEAVE(BL)。JOIN和LEAVE在上面已經(jīng)解釋。BRIEF JOIN指的是成員加入隨后立即離開的情況。BRIEF LEAVE指的是成員離開隨后立即重新加入的情況。基于這四種事件,本會議控制協(xié)議被檢驗。檢驗的結(jié)果在表1中示出。
表1.
如表1所示,十五種情況被檢驗。每一行表示一種檢驗情況。起始狀態(tài)確定會議的現(xiàn)有成員。動作列確定同時發(fā)生的動作JOIN(J),LEAVE(L),BRIEFJOIN(BJ)和BRIEF LEAVE(BL)。例如,在檢驗1中,E和F都發(fā)送JOIN消息。最終狀態(tài)欄確定產(chǎn)生的最終狀態(tài)。一般的,只有一個可接受的最終狀態(tài)。然而,在檢驗1中,由于本會議協(xié)議限制的成員數(shù)量為五個,因此兩個加入者中只有一個允許加入,或兩者都不允許加入。由于表1中的內(nèi)容是自解釋的,因此表1的進一步解析沒有描述。重點要注意的是,十五個檢驗的每一個通過的當(dāng)前會議協(xié)議以及使用單一起作用的信道和其它每一個成員通信的每一個穩(wěn)定的會議成員。
當(dāng)前多方視頻會議系統(tǒng)還提供安全保護。在一個實施例中,安全保護包括為每一個會議分配一個唯一的128位會議ID。128位會議ID與全球唯一標(biāo)識符(GUID)相似。會議ID是由會議啟動者生成的,會議啟動者邀請一個新用戶參加該會議。對于相同會議的每一個邀請都具有包括在瞬時消息中的相同會議ID。接著會議ID和JOIN消息一起發(fā)送從而確定該會議并且確保邀請的新用戶已經(jīng)加入確定的會議。
因此,如描述的,用于多方視頻會議系統(tǒng)的當(dāng)前會議控制協(xié)議使用完整網(wǎng)格會議結(jié)構(gòu)配置的網(wǎng)絡(luò)計算機來操作。因此,避免了使用一個或多個中央服務(wù)器的費用和缺點。本會議控制協(xié)議為多方視頻會議提供了可靠,靈活的選擇,而且價格低廉。
通過這樣的描述,提及的“某一實施例”,“一個實施例”,或“一個例舉的實施例”意謂著特定描述的特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因此,這些習(xí)語的使用不僅僅應(yīng)用于一個實施例。此外,所描述的特征、結(jié)構(gòu)或特性可以按照任何適當(dāng)?shù)姆绞桨ㄔ谝粋€或多個實施例中。
然而,相關(guān)領(lǐng)域的技術(shù)人員可以認(rèn)識到,無需一個或多個具體的細(xì)節(jié)或使用其他方法,資源,材料等等也可以實施本發(fā)明。在另外的實施例中,為了消除發(fā)明不清楚的方面,因此沒有詳細(xì)的示出或描述熟知的結(jié)構(gòu),資源,或操作。
盡管已經(jīng)說明并描述了例舉的實施例以及應(yīng)用,但是應(yīng)當(dāng)理解本發(fā)明并不限制于上述明確的配置和資源。不脫離本發(fā)明權(quán)利要求的范圍內(nèi),對這里公開的本發(fā)明的方法和系統(tǒng)的配置,操作,以及細(xì)節(jié)作出的各種修改,改變,以及變化對本領(lǐng)域的技術(shù)人員來說是顯而易見的。
權(quán)利要求
1.一種用于控制分布式多方會議中會議成員之間通信路徑的方法,所述分布式多方會議支持完整網(wǎng)格結(jié)構(gòu),該方法包括在第一系統(tǒng)中接收連接請求消息,該連接請求消息由第二系統(tǒng)發(fā)送;如果在第一和第二系統(tǒng)之間不存在未決的通信路徑,則發(fā)送連接應(yīng)答到第二系統(tǒng);接收來自第二系統(tǒng)的加入消息;以及如果第一系統(tǒng)不處于離開多方會議的處理,則將加入接受消息發(fā)送到第二系統(tǒng)。
2.如權(quán)利要求1的方法,其中加入接受消息包括一成員列表,該成員列表標(biāo)識出多方會議的當(dāng)前會議成員。
3.如權(quán)利要求2的方法,其中成員列表包括作為一個會議成員的第二系統(tǒng)。
4.如權(quán)利要求1的方法,其中第一系統(tǒng)通過檢驗第一系統(tǒng)上的未決列表來確定在第一和第二系統(tǒng)之間是否存在未決通信路徑,該未決列表存儲每一個系統(tǒng)的標(biāo)識符,第一系統(tǒng)已將先前的連接請求消息發(fā)送到所述每個系統(tǒng)。
5.如權(quán)利要求1的方法,其中第一系統(tǒng)通過檢驗第一系統(tǒng)上的存在標(biāo)記來確定該系統(tǒng)是否處于離開處理,當(dāng)離開消息從第一系統(tǒng)發(fā)送時更新存在標(biāo)記。
6.如權(quán)利要求1的方法,其中發(fā)送連接接受消息進一步基于確定會議不存在最大數(shù)量的會議成員。
7.如權(quán)利要求6的方法,其中會議成員的最大數(shù)量是由會議啟動者配置的。
8.如權(quán)利要求6的方法,其中最大數(shù)量是基于當(dāng)前因特網(wǎng)的帶寬條件。
9.如權(quán)利要求6的方法,其中會議不存在最大數(shù)量的會議成員的確定包括將成員列表和未決列表中列出的成員數(shù)量與會議成員的最大數(shù)量進行比較。
10.如權(quán)利要求6的方法,其中最大數(shù)量是一個默認(rèn)值。
11.如權(quán)利要求1的方法,進一步包括將因特網(wǎng)瞬時消息發(fā)送到第二系統(tǒng)以邀請第二系統(tǒng)成為會議成員并且通過發(fā)送連接請求消息啟動加入處理。
12.如權(quán)利要求11的方法,其中因特網(wǎng)瞬時消息包括一個會議標(biāo)識符。
13.如權(quán)利要求12的方法,其中連接請求消息和加入消息包括會議標(biāo)識符。
14.一種用于執(zhí)行權(quán)利要求1所述處理的具有計算機可執(zhí)行指令的計算機可讀介質(zhì)。
15.一種用于控制分布式多方會議中會議成員之間通信路徑的方法,所述分布式多方會議支持完整網(wǎng)格結(jié)構(gòu),該方法包括將來自第一系統(tǒng)的連接請求消息發(fā)送到第二系統(tǒng),第二系統(tǒng)是多方會議的一個現(xiàn)有成員;響應(yīng)從第二系統(tǒng)接收的連接應(yīng)答,用與第二系統(tǒng)相關(guān)的標(biāo)識符來更新第一系統(tǒng)上的未決列表,使用未決列表來避免在第一和第二系統(tǒng)之間建立雙重信道;將來自第一系統(tǒng)的加入消息發(fā)送到第二系統(tǒng);接收來自第二系統(tǒng)的加入接受消息,表示在第一和第二系統(tǒng)之間建立通信路徑;以及更新第一系統(tǒng)上的未決列表以反映與第二系統(tǒng)的通信路徑不再處于未決狀態(tài)。
16.如權(quán)利要求15的方法,其中加入接受消息包括成員列表,該成員列表標(biāo)識出多方會議中的當(dāng)前會議成員。
17.如權(quán)利要求16的方法,其中第一系統(tǒng)通過向每個會議成員發(fā)送單獨的連接請求消息來啟動成員列表內(nèi)所標(biāo)識的每個會議成員的加入處理,從而維持分布式多方會議的完整網(wǎng)格結(jié)構(gòu)。
18.如權(quán)利要求15的方法,進一步包括接收來自第二系統(tǒng)的因特網(wǎng)瞬時消息來邀請第一系統(tǒng)成為會議成員并且通過發(fā)送連接請求消息啟動加入處理。
19.如權(quán)利要求18的方法,其中因特網(wǎng)瞬時消息包括一個會議標(biāo)識符。
20.如權(quán)利要求19的方法,其中連接請求消息和加入消息包括會議標(biāo)識符。
21.一種用于執(zhí)行權(quán)利要求15所述處理的具有計算機可執(zhí)行指令的計算機可讀介質(zhì)。
22.一種系統(tǒng),包括處理器;以及存儲器,用于載入一個或多個程序模塊,程序模塊使用網(wǎng)格結(jié)構(gòu)負(fù)責(zé)控制分布式多方會議,該程序模塊包括支持會議控制協(xié)議的會議控制模塊,具有連接請求消息,用于尋找加入多方會議的許可;連接應(yīng)答消息,用于批準(zhǔn)連接請求消息;加入消息,用于啟動兩個系統(tǒng)之間的通信路徑;以及加入接受消息,用于終止兩個系統(tǒng)之間的通信路徑。
23.如權(quán)利要求22的系統(tǒng),其中會議控制模塊進一步支持維護一未決列表,當(dāng)通過將現(xiàn)有系統(tǒng)的標(biāo)識符加入到未決列表中,就能在將連接請求消息發(fā)送到現(xiàn)有系統(tǒng)時,更新未決列表。
24.如權(quán)利要求23的系統(tǒng),其中對未決列表的更新是基于連接應(yīng)答消息和連接拒絕消息出現(xiàn)。
25.如權(quán)利要求22的系統(tǒng),其中會議控制模塊進一步支持維護一成員列表,該成員列表列出多方會議中的每一個會議成員,一旦接收到終止通信路徑的離開消息或加入接受消息則更新成員列表。
26.如權(quán)利要求22的系統(tǒng),其中會議控制模塊進一步支持維護一存在標(biāo)記,該存在標(biāo)記表示系統(tǒng)是否處于離開多方會議的處理,結(jié)合離開消息更新存在標(biāo)記。
27.如權(quán)利要求22的系統(tǒng),其中程序模塊進一步包括用戶接口,該用戶接口配置用來解決用戶加入或離開多方會議的請求。
28.如權(quán)利要求22的系統(tǒng),其中程序模塊進一步包括消息傳送服務(wù)器接口,該接口允許會議控制模塊和消息傳送服務(wù)器通信。
29.如權(quán)利要求28的系統(tǒng),其中用戶接口配置用于接收來自消息傳送服務(wù)器的瞬時消息,該瞬時消息使系統(tǒng)啟動會議控制協(xié)議。
全文摘要
這里描述的技術(shù)和方法教導(dǎo)了在支持一個完整網(wǎng)格結(jié)構(gòu)的分布多方會議中控制會議成員之間的通信路徑。為了解決并行問題并且確保服務(wù)器的質(zhì)量,多個檢驗點被檢驗。首先,執(zhí)行一檢驗以確定兩個系統(tǒng)之間是否存在任何未決的通信路徑。第二,執(zhí)行一檢驗以確定是否存在一個系統(tǒng)處于離開多方會議的處理。第三,執(zhí)行一檢驗以確定會議中是否已經(jīng)存在最大數(shù)量的會議成員。一旦任何一個檢驗失敗,兩個系統(tǒng)之間的通信路徑就會失敗。一旦成功,新的系統(tǒng)就會啟動會議中其他每一個成員的加入處理,從而維持完整的網(wǎng)格結(jié)構(gòu)。
文檔編號H04L12/18GK1694410SQ20051007886
公開日2005年11月9日 申請日期2005年4月30日 優(yōu)先權(quán)日2004年4月30日
發(fā)明者羅翀, 蔣力, 李世鵬 申請人:微軟公司