專利名稱:一種基于b/s模式的多媒體遠(yuǎn)程無縫遷移方法
一種基于B/S模式的多媒體遠(yuǎn)程無縫遷移方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)應(yīng)用與移動互聯(lián)網(wǎng)結(jié)合的技術(shù)領(lǐng)域。背景技術(shù):
移動計(jì)算是一種以普適計(jì)算為背景,有線和無線互聯(lián)網(wǎng)為依托,移動通信設(shè)備為 載體的計(jì)算形式,是一種分布式計(jì)算。它允許設(shè)備在運(yùn)行移動計(jì)算應(yīng)用的同時(shí)其位置不斷 改變,且不影響應(yīng)用程序的使用。近些年來,隨著移動通信技術(shù)的不斷發(fā)展,我國移動通信 水平已進(jìn)入3G時(shí)代,基于移動互聯(lián)網(wǎng)的應(yīng)用層出不窮,一部分移動應(yīng)用使用客戶端/服務(wù) 器模式(C/S模式),比較典型的應(yīng)用是移動QQ、飛信和Twitter客戶端等。由此可以看出 移動計(jì)算在通信、金融、娛樂等領(lǐng)域有著廣泛的應(yīng)用,諸如即時(shí)通信、實(shí)時(shí)信息和移動音視 頻播放等應(yīng)用也在逐步普及,由此來看,移動計(jì)算應(yīng)用的普及明顯提高了人們的生活質(zhì)量。2005年,Jesse James Garrett講解了 Ajax技術(shù)的原理和可行性論證。Ajax技 術(shù)的最大特點(diǎn)是能夠提高網(wǎng)絡(luò)寬帶的利用率,使Web服務(wù)器能夠在單位時(shí)間內(nèi)更加有效的 提供服務(wù)。Ajax與移動計(jì)算技術(shù)的結(jié)合可以改善無線網(wǎng)帶寬不足的情況,從而提升用戶的 上網(wǎng)體驗(yàn)。近些年來,移動計(jì)算的發(fā)展主要體現(xiàn)在無線互聯(lián)網(wǎng)傳輸速率的提升和移動設(shè)備 性能的進(jìn)步。在傳輸方面,一方面隨著802. Iln草案的通過,使得無線局域網(wǎng)技術(shù)的傳輸 能夠達(dá)到更遠(yuǎn)的范圍、更好的抗干擾性和更高的傳輸寬帶(300MBps);另一方面,隨著3G 的開通,使得移動設(shè)備能夠?qū)崿F(xiàn)遠(yuǎn)程連接和隨時(shí)隨地?zé)o線上網(wǎng),這樣無線網(wǎng)的鏈接范圍就 從局域網(wǎng)開始推廣到廣域網(wǎng)了。在移動設(shè)備方面,尤其是移動操作系統(tǒng)方面,以Apple和 Google為代表的開發(fā)商推出了 iPhone和Android系統(tǒng),再加上原來的Windows Mobile、 SymbianS6. 0和Linux,移動操作系統(tǒng)呈現(xiàn)出多樣化的趨勢。尤其是Android系統(tǒng),不僅是 開源系統(tǒng),Google為其制作的SDK大大方便了開發(fā)者。移動計(jì)算中的無縫遷移技術(shù)是20世紀(jì)90年代迅速發(fā)展起來的一種基于互聯(lián)網(wǎng)的 新型信息交互技術(shù),其包括任務(wù)遷移、音頻遷移和視頻遷移。其目的是將任務(wù)或音視頻在 其執(zhí)行過程中由一個(gè)平臺轉(zhuǎn)移到另一個(gè)平臺上繼續(xù)完成。例如一個(gè)性能較低平臺上的任 務(wù),在初步處理的情況下,將其轉(zhuǎn)移到高性能平臺上,進(jìn)行后繼處理或?qū)⒁粋€(gè)在手機(jī)上播放 的視頻遷移到大屏幕顯示器上繼續(xù)播放。其遷移時(shí)不會關(guān)閉任務(wù)和音視頻或者不讓使用者 明顯感覺到任務(wù)或音視頻被關(guān)閉或中斷。在無縫遷移技術(shù)中,把使用者按自己的預(yù)期將所安排的任務(wù),所播放的音頻視頻 遷移到所需平臺上的技術(shù),而工作平臺主動的為這些任務(wù)和音視頻提供支持的技術(shù)稱為主 動伺服技術(shù)。主動伺服技術(shù)的難點(diǎn)在于對局域網(wǎng)內(nèi)資源的主動識別,是無縫遷移技術(shù)的基 礎(chǔ)。其出現(xiàn)使得無縫遷移技術(shù)的服務(wù)效率得到了極大地提升。對于任務(wù)遷移,其應(yīng)用主要集中在能夠?qū)⑽赐瓿傻墓ぷ骰蛘吖ぷ髌脚_上無法完成 的工作,平滑的遷移到能夠繼續(xù)工作的平臺上。在技術(shù)方面,主要采用Agent技術(shù)。其實(shí)現(xiàn) 能夠極大的幫助使用者自由平穩(wěn)的在所期望的平臺上進(jìn)行任務(wù)的轉(zhuǎn)移,使得使用者的工作
3能夠隨時(shí)隨地的進(jìn)行,從而提升使用者的工作效率。在音視頻遷移方面,局域網(wǎng)中,大都使用FTP或其他基于TCP/IP的協(xié)議進(jìn)行傳輸, 使用SMIL作為媒體文件的描述方式,采用客戶端/服務(wù)器(C/S)方式。主要應(yīng)用在教育、 會議和家庭娛樂等領(lǐng)域,能夠使影音資料按需要從移動終端遷移到服務(wù)器端,或者按服務(wù) 端得意圖從服務(wù)端遷移到移動終端。但當(dāng)前的遷移技術(shù)只能應(yīng)用在局域網(wǎng)中,隨著3G技術(shù)的普及,怎樣有效地利用無 縫遷移技技術(shù)以及將其推廣為遠(yuǎn)程應(yīng)用始,實(shí)現(xiàn)廣域網(wǎng)內(nèi)和廣域網(wǎng)及局域網(wǎng)間遷移始終是 人們研究的熱點(diǎn)。無縫遷移問題是移動計(jì)算、普適計(jì)算中一個(gè)非常熱門但又難以解決的課題,目前 的課題集中研究隨著用戶的移動,用戶的任務(wù)如何可以在多個(gè)具有不同性能的計(jì)算設(shè)備 (如PC/Latptop、PDA、Mobile phone等)上或提供不同類型服務(wù)的軟件環(huán)境(Windows、 WinCE、LinUX等)中自由遷移,但不影響或者很少影響用戶的使用和操作。如圖1所示,當(dāng)用 戶從一個(gè)物理環(huán)境移動到另一個(gè)物理環(huán)境時(shí),他所執(zhí)行的任務(wù)能夠在如PC/Latptop、PDA、 Mobile phone等不同的計(jì)算設(shè)備上保持其延續(xù)性,或者是為了更好地執(zhí)行任務(wù)、完成某項(xiàng) 功能,把任務(wù)、要實(shí)現(xiàn)的功能從資源有限、功能不適的設(shè)備(如PDA)上移動到資源豐富、功 能適合的設(shè)備(如Laptop、電視)上。提出這樣的要求是很自然的事情,因?yàn)槲覀兩詈凸?作時(shí)就需要到處移動,從家到辦公室,到外地出差或開會等等。隨著計(jì)算、通信以及數(shù)字媒 體技術(shù)的不斷發(fā)展,尤其是移動/無線通信環(huán)境的普及,我們無論在哪里都希望能繼續(xù)自 己的工作或得到所需要的服務(wù)。而目前桌面計(jì)算模式難以實(shí)現(xiàn)這種無縫性移動。因?yàn)樗娜藱C(jī)交互基于抽象的底 層,特定的應(yīng)用程序只是運(yùn)行在特定的設(shè)備上。例如,如果一個(gè)移動用戶想使用一個(gè)新環(huán)境 中的資源,他不得不手工配置如何用本地的資源來執(zhí)行計(jì)算任務(wù),或者把它的計(jì)算情境信 息從另一個(gè)環(huán)境中轉(zhuǎn)移過來。在一個(gè)具備便攜計(jì)算設(shè)備的場景下用戶需要做以下的事情記住計(jì)算任務(wù)情境 (通常是腦記);在新環(huán)境中找到可以使用的資源;檢查新環(huán)境中安裝的軟件服務(wù)或者應(yīng) 用,并確定哪些可以用來完成計(jì)算任務(wù);對選擇的服務(wù)或者應(yīng)用重建以前的情境信息,通常 包括設(shè)置應(yīng)用程序的選項(xiàng)、移動或者轉(zhuǎn)換必要的文件、初始化軟件服務(wù)和協(xié)調(diào)多個(gè)計(jì)算設(shè)備等等。針對便攜計(jì)算設(shè)備,用手工方式來實(shí)現(xiàn)無縫遷移服務(wù)不但是費(fèi)事和麻煩的,而且 由于以下缺點(diǎn)使得要在普適計(jì)算模式下采用手工方式是不可接受的手工操作在服務(wù)和計(jì) 算設(shè)備增加時(shí)沒有多分辨性。當(dāng)具有更多的可用服務(wù)和計(jì)算資源時(shí)需要的知識和時(shí)間將會 迅速地增加。通常要由一個(gè)用戶掌握所有這些知識是很困難的;對用戶的移動性也沒有伸 縮性。手工操作的方法很費(fèi)時(shí)間。如果一個(gè)用戶只是在計(jì)算環(huán)境中待15分鐘,當(dāng)然就不希 望化10分鐘來重建計(jì)算情境;對計(jì)算資源的改變沒有自適應(yīng)性,不能根據(jù)情境的變化提供 主動式的伺候服務(wù)。同時(shí),隨著計(jì)算模式從“桌面計(jì)算”向“普適計(jì)算”的轉(zhuǎn)變,出現(xiàn)的以下趨勢也促使 了對無縫遷移的極大需求1)越來越多的用戶可用多個(gè)具有不同目的的計(jì)算和通信設(shè)備。 例如,在辦公室和家中使用PC機(jī),在移動時(shí)使用個(gè)人計(jì)算輔助(PDA),在通信時(shí)使用蜂窩電 話等。如果用戶能夠在不同的設(shè)備上執(zhí)行相同的服務(wù),而不局限于某種服務(wù)只能在某個(gè)設(shè)備上使用,則能更好地滿足用戶的需求。2)用戶需要隨時(shí)移動。用戶在不同的環(huán)境中移動 是不可避免的,這種移動性不僅體現(xiàn)在用戶穿梭于住處和辦公室之間,還涉及到用戶在出 差時(shí)或者在旅途中如何連續(xù)的完成它們的工作。
發(fā)明內(nèi)容本發(fā)明目的是解決如何實(shí)現(xiàn)廣域網(wǎng)內(nèi)和廣域網(wǎng)及局域網(wǎng)間無縫遷移的問題,促進(jìn) 普適計(jì)算技術(shù)的發(fā)展及應(yīng)用,提供一種基于B/S模式的多媒體遠(yuǎn)程無縫遷移方法。根據(jù)所遷移內(nèi)容的完整與否,任務(wù)的遷移粒度可分為強(qiáng)遷移(全部遷移)和弱遷 移(部分遷移)兩種類型,遷移方式可以有隨機(jī)命令和旅行計(jì)劃兩種。強(qiáng)遷移要求在異構(gòu) 平臺之間傳輸與任務(wù)有關(guān)的所有內(nèi)容(屬性信息、代碼、數(shù)據(jù)、執(zhí)行狀態(tài)等),到達(dá)目標(biāo)站 點(diǎn)后,能夠從移動前的掛起斷點(diǎn)處恢復(fù)后繼續(xù)往下執(zhí)行,但由于在異構(gòu)平臺下收集和恢復(fù) 執(zhí)行狀態(tài)數(shù)據(jù)困難較大,需要有執(zhí)行狀態(tài)的中間表示格式,同時(shí)會消耗較大的網(wǎng)絡(luò)帶寬,因 此,這種遷移的實(shí)現(xiàn)大大增加了系統(tǒng)的負(fù)擔(dān)和復(fù)雜性。弱遷移只遷移部分執(zhí)行屬性信息、代 碼、狀態(tài)或數(shù)據(jù),其速度較強(qiáng)遷移快,但不能保存MA的完整運(yùn)行狀態(tài)。目前的JVM不支持這個(gè)功能,所以現(xiàn)在大部分基于Java的移動Agent系統(tǒng)都只實(shí) 現(xiàn)了弱遷移。在弱遷移下,有些系統(tǒng)采用命令方式,如Aglet,Mole等,盡管存在功能較強(qiáng)、 表達(dá)靈活的優(yōu)點(diǎn),但是若不對Agent本身及Agent的移動環(huán)境有深入的了解,Agent的設(shè)計(jì)、 實(shí)現(xiàn)都有相當(dāng)?shù)碾y度,尤其是在移動互聯(lián)網(wǎng)環(huán)境中,更困難;而且不能復(fù)用已有的Agent功 能體。由上可知,如果要實(shí)現(xiàn)基于B/S的任務(wù)無縫遷移,需要將盡量少的數(shù)據(jù)集進(jìn)行遷 移,為了將移動數(shù)據(jù)集(MDS)進(jìn)行實(shí)時(shí)地推送,本系統(tǒng)采用的技術(shù)是服務(wù)器推送技術(shù),即 Grizzly Comet 技術(shù)?;诖耍景l(fā)明提供的基于B/S模式的多媒體遠(yuǎn)程無縫遷移方法主要包括如下關(guān) 鍵步驟第1、發(fā)送端掛起斷點(diǎn)信息、記錄斷點(diǎn)信息并創(chuàng)建基于B/S模式的超鏈接第1. 1、發(fā)送端斷點(diǎn)掛起,記錄斷點(diǎn)信息,并獲取要上傳的多媒體文件或移動數(shù)據(jù) 集 MDS ;第1. 2、發(fā)送端基于目標(biāo)Web頁的地址,用Ajax請求,移動MDS ;第1. 3、發(fā)送端的Comet獲取MDS,并推送MDS ;第1. 4、發(fā)送端相應(yīng)Web頁或Browser中的JS獲取MDS,解析MDS,創(chuàng)造超鏈接;第2、利用本方法中設(shè)計(jì)的FTP上傳(Upload)和下載(Download)功能進(jìn)行移動任 務(wù)的無縫遷移,信息傳輸過程中,通過TRUE-0R-FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制第2. 1、發(fā)送端利用本方法中設(shè)計(jì)的FTP功能上傳MDS以及相關(guān)的斷點(diǎn)信息,并通 過TRUE-0R-FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制;第2. 2、接收端利用本方法中設(shè)計(jì)的FTP功能下載MDS以及相關(guān)的斷點(diǎn)信息,并通 過TRUE-0R-FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制;第2. 3、接收端基于下載Web頁的地址,用Ajax請求,移動MDS ;第2. 4、Comet 獲取 MDS,推送 MDS ;第2. 5、接收端彈出下載窗口,完成多媒體文件或移動數(shù)據(jù)集MDS的無縫遷移;
5
第2. 6、接收端啟動多媒體播放窗口,從斷點(diǎn)處恢復(fù)播放。本發(fā)明方法中設(shè)計(jì)的FTP上傳和下載功能,是通過mput () /put ()和mget () / get()分別實(shí)現(xiàn)的。其中,mputO/putO可實(shí)現(xiàn)單個(gè)文件或多個(gè)文件的同時(shí)上傳;mgetO/ get()可實(shí)現(xiàn)單個(gè)文件或多個(gè)文件的同時(shí)下載。在實(shí)現(xiàn)上傳的過程,該mputO/putO 調(diào)用本方法設(shè)計(jì)的 GetHostHander ()、GetHostIP ()、GetDestHander ()、GetDestIP ()、 GetSharedDirectory ()、GetRandomFile ()、Upload ()等函數(shù)共同實(shí)現(xiàn)。在實(shí)現(xiàn)下 載的過程,該 mgetO/get ()調(diào)用本方法設(shè)計(jì)的 GetHostHander ()、GetHostIP ()、 GetSharedDirectory ()、GetSharedFile()、Download ()等函數(shù)共同實(shí)現(xiàn)。為了實(shí)現(xiàn)有效地信息傳輸,本發(fā)明的方法中利用開關(guān)變量實(shí)現(xiàn)了重傳機(jī)制,即通 過TRUE-0R-FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制。如果機(jī)制返回的是TRUE,則停止發(fā)出遷移信 息;如果機(jī)制返回的是FALSE,則繼續(xù)發(fā)出遷移信息。MDS和TRUE-0R-FALSE流程圖如圖1 所示,其中窄箭頭代表MDS的正向流向即所遷移的方向,寬箭頭代表MDS的負(fù)向流向即MDS 的信息應(yīng)答者TRUE orFALSE的返回。當(dāng)采用本發(fā)明方法遷移一個(gè)媒體任務(wù)時(shí),根據(jù)不同的Player,本系統(tǒng)采用了如下 基本操作步驟1)針對Flash播放器一、用 ActionScript(AS)獲取 MDS,使用 JavaScript (JS)與 AS 進(jìn)行交互獲取 MDS ;二、用 Ajax 請求,移動 MDS ;三、Comet獲取 MDS,并推送 MDS ;四、客戶Browser中的JS獲取MDS,解析MDS、與AS交互轉(zhuǎn)移MDS,控制播放器播放。2)針對 Media Player、Real Player 播放器一、用 JS 獲取 MDS;二、Ajax 請求,移動 MDS ;三、Comet獲取 MDS,推送 MDS ;四、客戶端相應(yīng)Web頁中的JS獲取MDS,解析MDS,控制播放器播放。本發(fā)明的優(yōu)點(diǎn)和積極效果本發(fā)明提供的一種基于B/S模式的多媒體遠(yuǎn)程無縫遷移方法可支持B/S方式的多 種移動服務(wù),例如,1)多媒體任務(wù)無縫移動。用戶的多媒體任務(wù)可以透明地隨時(shí)隨地在不同設(shè) 備間進(jìn)行無縫遷移,典型的應(yīng)用包括移動學(xué)習(xí)(E-learning)、移動工作(E-working)、 移動商務(wù)(E-bussiness)、移動政務(wù)(E_0ffice)、股票交易(E-Exchanging)、智能指揮 (E-commanding)等。2)交互式流媒體訪問。用戶在任何需要的時(shí)候可以以各種可用設(shè)備選擇訪問網(wǎng)上 的流媒體數(shù)據(jù)并與之交互,典型的應(yīng)用包括視頻點(diǎn)播、網(wǎng)絡(luò)游戲、視覺安全監(jiān)控。這是用戶 與系統(tǒng)之間的交互式應(yīng)用;等等。
圖 1 是 MDS 和 TRUE0RFALSE 流程圖。
圖 2 是 MDS 和 TRUE0RFALSE 流程圖。圖3是Flash音頻遷移圖。圖4是Flash視頻遷移圖。圖5是MediaPlayer音頻遷移圖。圖6是MediaPlayer視頻遷移圖。圖7是RealPlayer視頻遷移圖。
具體實(shí)施方式一、本發(fā)明針對Flash播放器的遷移,其流程如圖1所示。1)、服務(wù)端用ActionScript(AS)獲取Flash播放器中斷點(diǎn)處包含音頻或視頻的 MDS,使用JavaScript (JS)與AS進(jìn)行交互獲取包含音頻或視頻的MDS ;2)、用Ajax請求,移動相應(yīng)的MDS ;3)、Comet獲取MDS,并推送相應(yīng)的MDS ;4)、客戶Browser中的JS獲取相應(yīng)的MDS,解析相應(yīng)的MDS、與AS交互轉(zhuǎn)移相應(yīng)的 MDS,控制Flash播放器從斷點(diǎn)處續(xù)播。二、針對Media Player或RealPlayer播放器的遷移,其流程如圖2所示。1)、服務(wù)端用JS獲取Media Player或RealPlayer播放器中斷點(diǎn)處包含音頻或視 頻的MDS ;2)、Ajax請求,移動相應(yīng)的MDS ;3)、Comet 獲取 MDS,推送相應(yīng)的 MDS ;4)、客戶端相應(yīng)Web頁中的JS獲取相應(yīng)的MDS,解析相應(yīng)的MDS,控制Media Player或RealPlayer播放器從斷點(diǎn)處續(xù)播。從圖2可以看出,我們提出的機(jī)制具有以下這些特點(diǎn)(1)基于Web瀏覽器。本系統(tǒng)要求瀏覽器支持HTML語言、JS腳本、相應(yīng)的播放器 插件。計(jì)算設(shè)備的異構(gòu)性不僅僅體現(xiàn)在開發(fā)語言以及平臺的不同。由于移動設(shè)備的大量使 用,需要發(fā)生交互的設(shè)備可能會具有完全不同的通訊方式。這樣便要求客戶端瀏覽器具有 上述功能。(2)服務(wù)端構(gòu)造了一個(gè)Comet應(yīng)用。這樣便要求服務(wù)器具備支持Comet應(yīng)用的服 務(wù)器。在應(yīng)用過程中,使用GlassFish 3. OPreclude服務(wù)器。在Comet中系統(tǒng)有這樣幾個(gè) 定義JKometContext 應(yīng)用程序開辟的一個(gè)共享空間,當(dāng)環(huán)境變化時(shí),可以得到更新;2) CometEvent 包含著Comet Context的這么一個(gè)對象;3) CometHandler 接口,對于實(shí)現(xiàn)改 變這個(gè)共享空間。故Comet端,即服務(wù)器端一般要完成的操作步驟如下1)創(chuàng)建或注冊一 個(gè) Comet Content ;2)添力口 CometHandler ;3)每個(gè) Clients 端都需要通過 CometHandler 禾口 CometContext建立一個(gè)單獨(dú)的長連接,這個(gè)連接只是一種保持連接,消耗資源極少,其中,Comet應(yīng)用便可以看作Supervisor。Supervisor是集中式的C/S、B/S運(yùn)行 環(huán)境中全局唯一的系統(tǒng)服務(wù)進(jìn)程,每個(gè)計(jì)算設(shè)備都需要通過CometHandler和Supervisor 建立連接,從而組成一個(gè)全局的運(yùn)行環(huán)境。Supervisor可以駐留在任何一臺計(jì)算機(jī)上, 它利用自己維護(hù)的運(yùn)行狀態(tài)、相互關(guān)聯(lián)信息以及全局的接口描述以及知識表示來為客 戶(Browser)提供注冊,消息轉(zhuǎn)發(fā),資源管理和運(yùn)行時(shí)的環(huán)境管理等基礎(chǔ)服務(wù)。在這里
7消息轉(zhuǎn)發(fā)和資源管理服務(wù)分別由Supervisor的子實(shí)體對象——消息轉(zhuǎn)發(fā)模塊(Message Dispatcher)以及資源管理模塊(Resource Manager)提供。顯然,這樣有效地突出了 B/S 架構(gòu)。當(dāng)一個(gè)計(jì)算設(shè)備由于種種原因(如手持設(shè)備因?yàn)槿说囊苿?失去網(wǎng)絡(luò)連接后又重新 獲得時(shí),需要恢復(fù)的連接僅僅是單一的本地和Supervisor之間的連接,又由于Comet支持 HTTP長連接,故提高了時(shí)效性,與Supervisor斷掉甚至不可能。當(dāng)然,可以把整個(gè)Comet看作一個(gè)Container,把Context看作一個(gè)Supervisor, 此時(shí)Container是一種增強(qiáng)性實(shí)體。本方法在應(yīng)用過程中,涉及前端Browser系統(tǒng)和后臺Server系統(tǒng)。其中前端網(wǎng) 頁根據(jù)不同的播放器又分為Flash Player網(wǎng)頁、Media Player網(wǎng)頁、RealPlayer網(wǎng)頁。 Server端主要負(fù)責(zé)服務(wù)的映射與媒體進(jìn)行續(xù)播所必需的數(shù)據(jù)資源MDS的推送。Browser端 主要負(fù)責(zé)任務(wù)的掛起、數(shù)據(jù)資源MDS的遷移、服務(wù)的感應(yīng)、媒體任務(wù)的續(xù)播。顯然,該系統(tǒng)工 作在B/S模式下。在應(yīng)用測試過程中,我們利用Ajax技術(shù)進(jìn)行MDS的遷移,實(shí)現(xiàn)了 Grizzly Comet 這一應(yīng)用,進(jìn)而對數(shù)據(jù)資源MDS進(jìn)行了實(shí)時(shí)推送,使用了插件播放器進(jìn)行有效地播放,利用 了 JS技術(shù)加以控制。這里我們簡要說明一下開發(fā)一個(gè)Comet應(yīng)用的步驟1)創(chuàng)建或者注冊一個(gè)新的CometContext。通過使用一個(gè)Context path進(jìn)行創(chuàng)建 一個(gè)上下文;2)有關(guān)CometHandler函數(shù)接口的定義和實(shí)現(xiàn)。其中涉及 attach (HttpServletResponse attachment)、onlnitialize(CometEvent event)> onTerminate(CometEvent event)、onInterrupt(CometEvent event)、onEvent(CometEvent event)函數(shù);3)實(shí)例化Comet handler并把它添加到上下文中;4)一旦這CometHandler被加 入到Context中,Client端便可以推送數(shù)據(jù)了。前端Browser Agent (BA)與后臺Server Agent系統(tǒng)(SA)之間我們采用了如下這 種通訊模式中心轉(zhuǎn)發(fā)式的面向消息的通訊模式和點(diǎn)到點(diǎn)的雙工通訊模式。本系統(tǒng)實(shí)現(xiàn)了 Grizzly Comet應(yīng)用,也就是說實(shí)現(xiàn)了 HTTP長連接和數(shù)據(jù)實(shí)時(shí)推送等功能。一改中心轉(zhuǎn)發(fā) 式面向消息的通訊模式通常對長連接不支持的特點(diǎn)。有效提高了數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。下面是設(shè)計(jì)的部分無縫遷移服務(wù)應(yīng)用服務(wù)器端和客戶端的函數(shù)首先說一下服務(wù)器端中的doPost函數(shù)和onEvent函數(shù),再說一下客戶端中的和推 送函數(shù)同名的函數(shù),該函數(shù)和服務(wù)器端的函數(shù)(同名的)進(jìn)行了無縫的耦合,實(shí)現(xiàn)了服務(wù)端 向客戶端無縫地推送??蛻舳薸frame的使用和ajax的使用。DdoPost函數(shù)。服務(wù)器守護(hù)進(jìn)程監(jiān)控客戶端的請求。該函數(shù)用于獲取MDS,并解 析該MDS。在客戶第一次訪問時(shí),便在該函數(shù)中進(jìn)行了創(chuàng)建Comet引擎、Comet上下文。2) onEvent函數(shù)。當(dāng)doPost函數(shù)解析完MDS后便喚醒onEvent函數(shù)。本系統(tǒng)利用 該函數(shù)進(jìn)行推送數(shù)據(jù)集MDS。這里需要注意一點(diǎn)便是定義了推送函數(shù)。也就是說該推送函 數(shù)是通往客戶端的接口,是實(shí)現(xiàn)服務(wù)端與客戶端的紐帶。而doPost函數(shù)則是客戶端與服務(wù) 端的紐帶。這樣一進(jìn)一出便構(gòu)成了 一個(gè)循環(huán),一個(gè)過程,一個(gè)整體。3)Update函數(shù)。該函數(shù)定義在客戶端的JS中,用于耦合和服務(wù)端同名的Update
8函數(shù)。當(dāng)服務(wù)端接受到新的MDS時(shí),便通過該函數(shù)向客戶端進(jìn)行推送MDS??蛻舳私邮艿皆?MDS便進(jìn)行解析,將解析后的數(shù)據(jù)賦予相應(yīng)的變量,利用自定義的JS函數(shù)進(jìn)行調(diào)控。4)iframe標(biāo)簽。利用該標(biāo)簽配合Update函數(shù),便實(shí)現(xiàn)了推送功能,否則,無法實(shí) 現(xiàn)推送相應(yīng)的 MDS。形如<iframe name =,,hidden,,src =,,CometServlet,,frameborder =”1” height =” O” width =,'100%"></iframe>5)ajax函數(shù)。利用Ajax技術(shù)進(jìn)行移動MDS,這樣有效地提高效率,充分利用帶 寬。在使用下面的代碼時(shí),務(wù)必將prototype-1. 6. 0. 2. js進(jìn)行導(dǎo)入。相應(yīng)的代碼形如var myajax = newAjax. Request (url, {method ,post,,parameters :par})。在系統(tǒng)實(shí)現(xiàn)時(shí)的軟硬件環(huán)境如下。計(jì)算機(jī)配置PC等應(yīng)用終端,其要求瀏覽器支持Flash插件、HTML語言、JS語 、
曰、ο操作系統(tǒng)WindowsXP, Linux, Unix 等。編程語言及版本HTML,JS,JSP 和 JAVA ;數(shù)據(jù)庫 SQL Server, ACCESS 等;Web 服務(wù) 器為 GlassFish Preclude。實(shí)施例我們發(fā)明的一種基于B/S模式的多媒體遠(yuǎn)程無縫遷移方法以B/S方式運(yùn)行。本發(fā) 明正在與中國移動、中國聯(lián)通等單位進(jìn)行推廣應(yīng)用?;诒景l(fā)明的權(quán)利要求,我們給出了實(shí)施案例。換言之,下面的實(shí)施案例中,包含 了本發(fā)明權(quán)利要求所涉及的內(nèi)容。圖3 7分別給出了 PC上運(yùn)行的基于B/S模式的多媒體遠(yuǎn)程無縫遷移方法的遷 移效果圖。PC上的任務(wù)包括基于Flash播放器的音視頻無縫遷移、基于MediaPlayer播放 器的音視頻無縫遷移、基于RealPlayer播放器的音視頻無縫遷移。其中不同的播放器充當(dāng) 了不同任務(wù)類型的角色。用戶可以定制自己的任務(wù),有選擇地進(jìn)行選擇媒體進(jìn)行無縫遷移。 在遷移過程中,發(fā)送端掛起斷點(diǎn)信息、記錄斷點(diǎn)信息并創(chuàng)建基于B/S模式的超鏈接;利用設(shè) 計(jì)的FTP上傳和下載功能進(jìn)行移動任務(wù)的無縫遷移,信息傳輸過程中,通過TRUE-0R-FALSE 返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制。媒體任務(wù)遷移到打開的相應(yīng)站點(diǎn)主頁。由于資源MDS需要在服務(wù)器上進(jìn)行推送, 而客戶端提供了有效處理這些資源和控制播放器插件的功能,即任務(wù)的掛起、數(shù)據(jù)資源MDS 的遷移、服務(wù)的感應(yīng)、媒體任務(wù)的續(xù)播,進(jìn)而實(shí)現(xiàn)了媒體任務(wù)的遷移和任務(wù)的恢復(fù)功能,因 此,利用這種功能,在目標(biāo)站點(diǎn)上可以續(xù)播相應(yīng)的媒體任務(wù)。也就是說,實(shí)現(xiàn)了 “掛起_恢 復(fù)”這樣一個(gè)過程。整個(gè)過程可以在PC間、PC與支持相應(yīng)功能的移動設(shè)備之間、移動設(shè)備 之間任意地進(jìn)行。利用上述方法,可實(shí)現(xiàn)任務(wù)在位于House、Office、Coffee house、Park、Stadium Airport等不同場景下的處于固定狀態(tài)的PC、可攜帶任意移動的PDA、筆記本電腦laptop等 設(shè)備群之間無縫主動地遷移。相應(yīng)的遷移效果如圖3 7。其中,圖3顯示了 Flash音頻遷移效果圖,圖4顯示 了 Flash視頻遷移效果圖,圖5顯示了 Media Player音頻遷移效果圖,圖6顯示了 Media Player視頻遷移效果圖,圖7顯示了 RealPlayer視頻遷移效果圖。下面以圖6為示例,說明一下本發(fā)明權(quán)利要求中的各項(xiàng)動作步驟。圖3 7中的其它各種圖形情況與圖6的各項(xiàng)動作步驟類似。第1、圖6的左圖中,發(fā)送端正在用Media Player播放帶有音視頻的一首歌曲KTV, 在某一個(gè)時(shí)間點(diǎn),由于用戶即聽該首歌曲的人要移動位置,于是他掛起即暫停中斷該首歌 曲的音視頻播放,這時(shí)發(fā)送端記錄該首歌曲的音視頻播放的斷點(diǎn)處信息。根據(jù)用戶即聽該 首歌曲的人移動到新位置的IP信息,發(fā)送端創(chuàng)建基于B/S模式的超鏈接。該過程的分步動 作如下第1. 1、發(fā)送端從斷點(diǎn)處掛起該首歌曲的音視頻播放,記錄該首歌曲的音視頻播放 在斷點(diǎn)處的信息,并獲取要上傳的該首歌曲的音視頻斷點(diǎn)處的MDS;第1. 2、發(fā)送端基于目標(biāo)Web頁的地址,用Ajax請求,移動上述MDS ;第1. 3、發(fā)送端的Comet獲取MDS,并推送上述MDS ;第1. 4、發(fā)送端相應(yīng)Web頁或Browser中的JS獲取MDS,解析MDS,創(chuàng)造超鏈接;第2、發(fā)送端利用FTP上傳和下載功能進(jìn)行該首歌曲的音視頻斷點(diǎn)處的MDS的無縫 遷移,信息傳輸過程中,通過TRUE-0R-FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制。圖6的右圖是從該 首歌曲的音視頻斷點(diǎn)處的MDS恢復(fù)續(xù)播的畫面。該過程的分步動作如下第2. 1、發(fā)送端利用FTP功能上傳該首歌曲的音視頻斷點(diǎn)處的MDS,并通過 TRUE-0R-FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制;第2. 2、接收端利用FTP功能下載該首歌曲的音視頻斷點(diǎn)處的MDS,并通過 TRUE-0R-FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制;第2. 3、接收端基于下載Web頁的地址,用Ajax請求,移動該首歌曲的音視頻斷點(diǎn) 處的MDS ;第2. 4、Comet獲取MDS,推送該首歌曲的音視頻斷點(diǎn)處的MDS ;第2. 5、接收端彈出下載窗口,完成該首歌曲的音視頻斷點(diǎn)處的MDS的無縫遷移;第2. 6、接收端啟動Media Player播放窗口,從該首歌曲的音視頻斷點(diǎn)處的恢復(fù) 播放。圖6的右圖就是從該首歌曲的音視頻斷點(diǎn)處的MDS恢復(fù)續(xù)播的畫面。
權(quán)利要求
一種基于B/S模式的多媒體遠(yuǎn)程無縫遷移方法,其特征在于該方法主要包括如下關(guān)鍵步驟第1、發(fā)送端掛起斷點(diǎn)信息、記錄斷點(diǎn)信息并創(chuàng)建基于B/S模式的超鏈接第1.1、發(fā)送端斷點(diǎn)掛起,記錄斷點(diǎn)信息,并獲取要上傳的多媒體文件或移動數(shù)據(jù)集MDS;第1.2、發(fā)送端基于目標(biāo)Web頁的地址,用Ajax請求,移動相應(yīng)的MDS;第1.3、發(fā)送端的Comet獲取MDS,并推送相應(yīng)的MDS;第1.4、發(fā)送端相應(yīng)Web頁或Browser中的JS獲取相應(yīng)的MDS,解析相應(yīng)的MDS,創(chuàng)造超鏈接;第2、利用FTP上傳和下載功能進(jìn)行移動任務(wù)即相應(yīng)的MDS的無縫遷移,信息傳輸過程中,通過TRUE OR FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制第2.1、發(fā)送端利用FTP功能上傳MDS即相關(guān)的斷點(diǎn)信息,并通過TRUE OR FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制;第2.2、接收端利用FTP功能下載MDS即相關(guān)的斷點(diǎn)信息,并通過TRUE OR FALSE返回機(jī)制實(shí)現(xiàn)了重傳機(jī)制;第2.3、接收端基于下載Web頁的地址,用Ajax請求,移動相應(yīng)的MDS;第2.4、Comet獲取MDS,推送相應(yīng)的MDS;第2.5、接收端彈出下載窗口,完成多媒體文件或移動數(shù)據(jù)集MDS的無縫遷移;第2.6、接收端啟動多媒體播放窗口,從斷點(diǎn)處恢復(fù)播放。
全文摘要
一種基于B/S模式的多媒體遠(yuǎn)程無縫遷移方法。該方法包括發(fā)送端掛起斷點(diǎn)信息、記錄斷點(diǎn)信息并創(chuàng)建基于B/S模式的超鏈接,然后利用本方法中設(shè)計(jì)的FTP上傳和下載功能進(jìn)行移動任務(wù)的無縫遷移,接收端彈出下載窗口,完成多媒體文件或移動數(shù)據(jù)集MDS的無縫遷移,接收端啟動多媒體播放窗口,從斷點(diǎn)處恢復(fù)播放。該方法可以隨時(shí)隨地在不同設(shè)備間進(jìn)行無縫遷移,包括移動學(xué)習(xí)、移動工作、移動商務(wù)、移動政務(wù)、股票交易、智能指揮等。還可以進(jìn)行交互式流媒體訪問,典型的應(yīng)用包括視頻點(diǎn)播、網(wǎng)絡(luò)游戲、視覺安全監(jiān)控等等。
文檔編號H04L29/08GK101895586SQ20101025579
公開日2010年11月24日 申請日期2010年8月18日 優(yōu)先權(quán)日2010年8月18日
發(fā)明者張德干, 王懷彬, 趙德新 申請人:天津理工大學(xué)