專利名稱:解析用以流化數(shù)據(jù)的分布式拓?fù)浣Y(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及流化數(shù)據(jù),尤其涉及解析一種用以流化數(shù)據(jù)的分布式拓?fù)浣Y(jié)構(gòu)。
背景技術(shù):
流化數(shù)據(jù)為用戶提供增加的功能,使得用戶可能快速地接收數(shù)據(jù)。沒有流化的情況下,如果需要從一個源設(shè)備接收全部數(shù)據(jù)量,在由客戶設(shè)備輸出它之前,則用戶可能在客戶設(shè)備處呈現(xiàn)數(shù)據(jù)時經(jīng)歷延遲。通過流化數(shù)據(jù),用戶所遭遇的延遲可能被減少??墒褂脭?shù)據(jù)流來提供數(shù)據(jù)的“實時”呈現(xiàn)。
要流化數(shù)據(jù),通常使用數(shù)據(jù)信息包,以流化或連續(xù)的方式從一個源設(shè)備傳輸數(shù)據(jù),用于在數(shù)據(jù)到達(dá)時呈現(xiàn)于客戶設(shè)備,而與直到包括數(shù)據(jù)的整個文件可用于客戶設(shè)備時才呈現(xiàn)數(shù)據(jù)相反。流化可用于各種類型的數(shù)據(jù),諸如視頻數(shù)據(jù)、音頻數(shù)據(jù)、媒體數(shù)據(jù)等等。視頻數(shù)據(jù)流提供一個被傳輸?shù)摹盎顒訄D象”的序列,并在圖象到達(dá)時被顯示。同樣,音頻數(shù)據(jù)流提供在音頻數(shù)據(jù)到達(dá)時播放的聲音數(shù)據(jù)。媒體數(shù)據(jù)流既包括音頻又包括視頻數(shù)據(jù)。
以前,涉及數(shù)據(jù)流的使用的外圍設(shè)備的使用是以本地方式完成的。例如,外圍設(shè)備,諸如源外圍設(shè)備(諸如攝像機、話筒和讀卡機)和呈現(xiàn)設(shè)備(諸如顯示監(jiān)視器和揚聲器),是以物理方式附連于單個計算設(shè)備,因此由源外圍設(shè)備流化的數(shù)據(jù)可由呈現(xiàn)設(shè)備呈現(xiàn)。呈現(xiàn)數(shù)據(jù)可包括將數(shù)據(jù)轉(zhuǎn)換成適合于由呈現(xiàn)設(shè)備以可感知的方式輸出的形式,所述方式諸如在顯示設(shè)備上顯示,由音頻揚聲器播放等等。
如果希望數(shù)據(jù)流的遠(yuǎn)程訪問,則遠(yuǎn)程訪問受到提供數(shù)據(jù)的本地方式的限制。例如,要提供對由源外圍設(shè)備流化的數(shù)據(jù)的遠(yuǎn)程訪問,則在將數(shù)據(jù)流至客戶設(shè)備之前,輸出、壓縮、解壓縮、呈現(xiàn)、捕捉和再壓縮數(shù)據(jù)。然而,當(dāng)在將數(shù)據(jù)流至客戶設(shè)備之前捕捉和再壓縮數(shù)據(jù)時,作為由源外圍設(shè)備輸出的部分?jǐn)?shù)據(jù)可能丟失。因此,降低了流至客戶設(shè)備的數(shù)據(jù)的品質(zhì)。這在用戶觀看和/或收聽數(shù)據(jù)時減少了用戶的體驗,諸如通過經(jīng)歷在視頻數(shù)據(jù)的顯示過程中不連貫的動作和音頻數(shù)據(jù)的不完全的播放所體驗到的。另外,由源設(shè)備捕捉和再壓縮數(shù)據(jù)是資源密集的,因此將此類功能限制于具有足夠處理器和數(shù)據(jù)存儲器資源的設(shè)備。而且,捕捉和再壓縮呈現(xiàn)的數(shù)據(jù)可能減緩將數(shù)據(jù)流至客戶設(shè)備,因此,限制數(shù)據(jù)的“實時”性。此外,如果多于一個目的地要求數(shù)據(jù)流,則進(jìn)一步增加用于支持多個流的資源量。
因此,存在不斷改進(jìn)數(shù)據(jù)的流化的需求。
發(fā)明內(nèi)容
描述一種分布式媒體會話,當(dāng)執(zhí)行該分布式媒體會話時,它解析分布式拓?fù)浣Y(jié)構(gòu),該分布式拓?fù)浣Y(jié)構(gòu)引用用于將數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)流至客戶設(shè)備的軟件組件。可將分布式拓?fù)浣Y(jié)構(gòu)認(rèn)為是軟件組件的構(gòu)架或設(shè)計圖,將用該軟件組件來將數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)流至客戶設(shè)備。因而,當(dāng)執(zhí)行分布式拓?fù)浣Y(jié)構(gòu)的軟件組件時,數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)被流至客戶設(shè)備??赏ㄟ^分布式媒體會話的執(zhí)行,基于分布式拓?fù)浣Y(jié)構(gòu)建立這些軟件組件的分布式軟件基礎(chǔ)結(jié)構(gòu)。分布式軟件基礎(chǔ)結(jié)構(gòu)的軟件組件的執(zhí)行允許數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)被流至客戶設(shè)備。
當(dāng)執(zhí)行分布式媒體會話時,它可提供用于解析分布式拓?fù)浣Y(jié)構(gòu)的聯(lián)合(即集中式)機制。例如,當(dāng)執(zhí)行分布式媒體會話時,它在解析分布式拓?fù)浣Y(jié)構(gòu)時可考慮源和客戶設(shè)備兩者的能力。另外,當(dāng)執(zhí)行分布式媒體會話時,它提供用于解析分布式拓?fù)浣Y(jié)構(gòu)的聯(lián)合機制,使得可由客戶設(shè)備、源設(shè)備和/或第三方設(shè)備來執(zhí)行分布式媒體會話。分布式媒體會話的執(zhí)行也可提供用于控制的聯(lián)合機制。例如,在源和客戶設(shè)備兩者上的軟件組件可由代表這樣的聯(lián)合機制的單個實體來控制。
圖1例示了提供流化數(shù)據(jù)的系統(tǒng)的示例性實現(xiàn),所述系統(tǒng)包括一父分布式媒體會話(DMS)用于將數(shù)據(jù)從源設(shè)備流至客戶設(shè)備。
圖2例示了一示例性實現(xiàn),在其中計算環(huán)境使用圖1的父DMS流化數(shù)據(jù)。
圖3例示了具有子DMS的圖1的父DMS的父-子關(guān)系的示例性實現(xiàn)。
圖4例示了一示例性系統(tǒng),它描述通過使用圖3的子DMS提供使用聯(lián)合方法的遠(yuǎn)程訪問功能的父DMS。
圖5例示了一示例性過程,在其中圖1的父DMS建立一分布式軟件基礎(chǔ)結(jié)構(gòu),用于將數(shù)據(jù)從源設(shè)備流至客戶設(shè)備。
圖6例示了使用圖5的過程解析遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)的示例性實現(xiàn)。
圖7例示了進(jìn)一步從圖6的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)解析的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)的示例性實現(xiàn)。
圖8例示了完全從圖7的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)完全解析的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)的示例性實現(xiàn)。
圖9例示了在圖8中所示的示例性實現(xiàn)的控制的層次。
圖10例示了通過圖5的過程解析的示例性解析的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)。
圖11例示了在圖10中所示的示例性實現(xiàn)中的控制的層次。
圖12例示了在圖1的客戶設(shè)備上執(zhí)行的代理的示例性實現(xiàn)。
圖13例示正在圖1的源設(shè)備上執(zhí)行的代理的示例性實現(xiàn)。
圖14例示了配置為源代理的圖12的代理的示例性實現(xiàn)。
圖15例示了配置為匯點代理的圖13的代理的示例性實現(xiàn)。
圖16例示了包括圖14的源代理的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)的示例性實現(xiàn)。
圖17例示了描述如在圖16中所示的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)中的控制的層次的示例性實現(xiàn)。
圖18例示了包括圖15的匯點代理的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)的示例性實現(xiàn)。
圖19例示了描述如在圖18中所示遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)的控制的層次的示例性實現(xiàn)。
圖20例示了一示例性實現(xiàn),在其中所示的系統(tǒng)包括以通信方式通過圖1的網(wǎng)絡(luò)耦合到源和客戶設(shè)備的第三方設(shè)備。
圖21例示了在圖20中所示的系統(tǒng)中實現(xiàn)的第三方分布式拓?fù)浣Y(jié)構(gòu)的示例性實現(xiàn)。
圖22例示了在圖21所描述的實現(xiàn)中控制的層次的示例性實現(xiàn)。
圖23例示了將數(shù)據(jù)流至圖1的客戶設(shè)備的多個源設(shè)備的示例性實現(xiàn)。
圖24例示用于圖23的系統(tǒng)解析的分布式拓?fù)浣Y(jié)構(gòu)的示例性實現(xiàn)。
圖25例示了一系統(tǒng)的示例性實現(xiàn),在該系統(tǒng)中分布式媒體會話的執(zhí)行使用圖5的過程,基于源和客戶設(shè)備與流化的數(shù)據(jù)交互的能力,以最優(yōu)化的方式解析分布式拓?fù)浣Y(jié)構(gòu)。
圖26是描述一示例性過程的流程圖,在其中建立軟件組件的分布式軟件基礎(chǔ)結(jié)構(gòu)并且將數(shù)據(jù)從源設(shè)備流至客戶設(shè)備用于由客戶設(shè)備呈現(xiàn)。
圖27例示了示例性操作環(huán)境。
遍及本揭示和附圖使用相同的數(shù)字來引用同樣的組件和部件。
具體實施例方式
概述描述了分布式媒體會話(distributed media session)(DMS),當(dāng)它被執(zhí)行時,它解析分布式拓?fù)浣Y(jié)構(gòu),該分布式拓?fù)浣Y(jié)構(gòu)引用用于將數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)流至客戶設(shè)備的軟件組件??烧J(rèn)為分布式拓?fù)浣Y(jié)構(gòu)是軟件的構(gòu)架或設(shè)計圖,用該軟件組件來將數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)流至客戶設(shè)備。當(dāng)被執(zhí)行時,DMS可通過發(fā)現(xiàn)源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力并且通過發(fā)現(xiàn)客戶設(shè)備呈現(xiàn)來自源設(shè)備的數(shù)據(jù)流的能力,來解析該分布式拓?fù)浣Y(jié)構(gòu)。根據(jù)這兩個發(fā)現(xiàn),DMS建立分布式拓?fù)浣Y(jié)構(gòu),該分布式拓?fù)浣Y(jié)構(gòu)引用適合于將數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)流至客戶設(shè)備的軟件組件。然后可由DMS使用分布式拓?fù)浣Y(jié)構(gòu)來建立分布式軟件基礎(chǔ)結(jié)構(gòu),當(dāng)執(zhí)行分布式軟件基礎(chǔ)結(jié)構(gòu)時,它允許將數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)流至客戶設(shè)備。
當(dāng)執(zhí)行DMS時,它可提供聯(lián)合的,即集中式的機制用于解析分布式拓?fù)浣Y(jié)構(gòu)。例如,當(dāng)執(zhí)行DMS時,它可在解析分布式拓?fù)浣Y(jié)構(gòu)時考慮源和客戶設(shè)備兩者的能力。另外,DMS提供聯(lián)合機制用于解析分布式拓?fù)浣Y(jié)構(gòu),使得DMS可由客戶設(shè)備、源設(shè)備和/或第三方設(shè)備來執(zhí)行。DMS還可提供聯(lián)合機制用于控制,使得在源和客戶設(shè)備兩者上的軟件組件可由單個實體來控制,諸如由與DMS交互的應(yīng)用程序和/或DMS本身來控制。
分布式媒體會話(DMS)圖1例示流化數(shù)據(jù)的系統(tǒng)100的示例性實現(xiàn)。系統(tǒng)100包括源設(shè)備102和客戶設(shè)備104,它們通過網(wǎng)絡(luò)106以通信方式相耦合。網(wǎng)絡(luò)106可包括局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和因特網(wǎng)之一。
源設(shè)備102提供要呈現(xiàn)的數(shù)據(jù)流。源設(shè)備102可包括輸出數(shù)據(jù)的源外圍設(shè)備108。源外圍設(shè)備108可配置為攝像機108a、話筒108b、讀卡機等等。源設(shè)備102也可包括計算設(shè)備110,它以通信方式通過機內(nèi)連接連至源外圍設(shè)備108,諸如通過使用通用串行總線(USB)端口、IEEE 1394端口、并行端口等等。計算設(shè)備110包括用于執(zhí)行一個或多個軟件組件的處理器112和用于存儲軟件組件與數(shù)據(jù)的存儲器114。源設(shè)備102還可包括呈現(xiàn)設(shè)備116,用于為與呈現(xiàn)設(shè)備116交互的用戶提供數(shù)據(jù)的實際輸出。呈現(xiàn)設(shè)備116可用各種各樣的方式配置,諸如顯示設(shè)備116a、揚聲器116b等等。呈現(xiàn)設(shè)備116還以通信方式使用本地連接連至計算設(shè)備110。
盡管在圖1中所示的源設(shè)備102配置為包括以通信方式耦合至計算設(shè)備110的源外圍設(shè)備108,但可用各種各樣的方式配置源設(shè)備102。例如,源設(shè)備102可配置為網(wǎng)絡(luò)現(xiàn)成的(network-ready)設(shè)備,它不包括用以連接至網(wǎng)絡(luò)106的獨立的計算設(shè)備110,諸如通過自身包括處理器、存儲器和網(wǎng)絡(luò)硬件組件來配置。在另一個例子中,源設(shè)備102可配置為媒體服務(wù)器,它經(jīng)由通過由源設(shè)備102執(zhí)行軟件提供的流化協(xié)議來提供流。
客戶設(shè)備104還可包括具有處理器120和存儲器122的計算設(shè)備118??蛻粼O(shè)備104包括呈現(xiàn)設(shè)備124,它以通信方式通過本地連接連至計算設(shè)備118,用以提供數(shù)據(jù)的實際輸出。與源設(shè)備102相似,盡管客戶設(shè)備104被示為包括獨立的計算設(shè)備118和獨立的呈現(xiàn)設(shè)備124,但可用各種各樣方式配置客戶設(shè)備104。例如,客戶設(shè)備104可配置為網(wǎng)絡(luò)現(xiàn)成的呈現(xiàn)設(shè)備,它不包括計算設(shè)備118的全部資源。例如,客戶設(shè)備104可配置為低資源設(shè)備,它具有有限的處理和存儲能力,諸如有限量的RAM、無盤驅(qū)動器和有限的處理能力。
包括父分布式媒體會話126(父DMS)以允許系統(tǒng)100將數(shù)據(jù)從源設(shè)備102通過網(wǎng)絡(luò)106流至客戶設(shè)備104。父DMS 126是可由源設(shè)備102、客戶設(shè)備104和/或在圖20中所見到的第三方設(shè)備來執(zhí)行的軟件組件。通過父DMS 126的執(zhí)行,可建立分布式軟件基礎(chǔ)結(jié)構(gòu)以通過網(wǎng)絡(luò)106流化數(shù)據(jù)。當(dāng)執(zhí)行父DMS 126時,它可發(fā)現(xiàn)源和客戶設(shè)備102、104兩者的能力。根據(jù)這些所發(fā)現(xiàn)的能力,父DMS 126可解決軟件組件跨越客戶設(shè)備104和源設(shè)備102兩者的分布。在下面標(biāo)題為“解析分布式拓?fù)浣Y(jié)構(gòu)”的章節(jié)中將對軟件組件的分布進(jìn)一步討論。為有助于下面討論,將進(jìn)一步對父DMS 126或其它軟件組件的執(zhí)行以完成一個動作的情況進(jìn)行參考,好象父DMS 126或其它軟件組件完成這個動作一樣。
圖2例示使用分布式媒體會話126來流化數(shù)據(jù)的計算環(huán)境200??砂ǜ窪MS 126作為在圖1中所示的源設(shè)備102或客戶設(shè)備104上的執(zhí)行的操作系統(tǒng)202的一部分,同樣可作為在圖20中所見到的第三方設(shè)備2002的操作系統(tǒng)的一部分。操作系統(tǒng)202提供軟件和硬件諸如源外圍設(shè)備204(1)-204(N)和呈現(xiàn)設(shè)備206(1)-206(M)的組織和控制。
父DMS 126可在包括用于數(shù)據(jù)流的輸入和/或輸出的本地軟件組件210的本地軟件基礎(chǔ)結(jié)構(gòu)的頂上建立。本地軟件組件210可包括設(shè)備驅(qū)動程序212、用于數(shù)據(jù)流的輸出的播放器214諸如媒體播放器和其它216軟件組件。父DMS216可管理這些本地軟件組件210,并通過在圖1中所示的網(wǎng)絡(luò)106,既流示數(shù)據(jù)至這些本地軟件組件210,又從它們流回數(shù)據(jù)。因而,父DMS 126可在不取代它們的情況下補充本地軟件組件210。
可包括媒體引擎218以在應(yīng)用程序208與父DMS 126之間提供接口。使用媒體引擎218來將父DMS 126的能力提供給應(yīng)用程序208。換言之,媒體引擎218定義應(yīng)用編程接口(API),因此應(yīng)用程序208可與父DMS 126交互,并且反之亦然。另外,父DMS 126可使用媒體引擎218來提供用于與本地軟件組件210交互的接口。也可使用媒體引擎218來控制各軟件組件之間的數(shù)據(jù)流。例如,媒體引擎218可在本地軟件組件210之間路由數(shù)據(jù)流,啟動本地軟件組件210的執(zhí)行等等。
遠(yuǎn)程訪問和聯(lián)合在分布式軟件基礎(chǔ)結(jié)構(gòu)的建立與控制中可遭遇另外的復(fù)雜化,與本地軟件組件210的建立與控制相反,因為在分布式軟件基礎(chǔ)結(jié)構(gòu)中在兩個或多個設(shè)備上執(zhí)行軟件組件。另外,可在分布式軟件基礎(chǔ)結(jié)構(gòu)中使用多種多樣的軟件組件來流化數(shù)據(jù),這使分布式軟件基礎(chǔ)結(jié)構(gòu)的建立與控制更復(fù)雜化。例如,各種各樣的軟件組件可包括本地軟件組件210、媒體引擎218、發(fā)送器、接收器等等,將在下面標(biāo)題為“解析分布式拓?fù)浣Y(jié)構(gòu)”的章節(jié)中更詳細(xì)地描述它們的使用。
父DMS 126提供聯(lián)合的,即集中式的方法用于建立適合于在兩個或多個設(shè)備之間流化數(shù)據(jù)的分布式軟件基礎(chǔ)結(jié)構(gòu)。此方法將計劃的過程集中起來并且還將軟件組件的控制集中起來。父DMS 126可在建立分布式軟件基礎(chǔ)結(jié)構(gòu)時考慮源和客戶設(shè)備101、104兩者的能力。這允許由父DMS 126一致地建立和控制源和客戶設(shè)備102、104兩者的軟件組件。通過使用聯(lián)合的方法,父DMS 126可提供被優(yōu)化于源和客戶設(shè)備的分布式軟件基礎(chǔ)結(jié)構(gòu),如將在下面相對于圖25進(jìn)一步討論的。
雖然可采用聯(lián)合的方法建立分布式拓?fù)浣Y(jié)構(gòu),但可在跨越多個設(shè)備的分布式拓?fù)浣Y(jié)構(gòu)的獨立部分中提供建立與控制的元件。例如,可將建立與控制委托給具有用于軟件組件的類似主機的設(shè)備,這些軟件組件用來將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104。這個模型是由父DMS 126通過父-子關(guān)系的使用來支持的。不是試圖直接控制分布式軟件基礎(chǔ)結(jié)構(gòu)的所有軟件組件,而是父DMS 126可建立,例如例示出它將控制委托給的子DMS 302,如在圖3中所示。作為結(jié)果的結(jié)構(gòu)可以是簡單的單一的父-子關(guān)系,如在父DMS 126與子DMS 302之間所示的,或者是更復(fù)雜的類似樹的結(jié)構(gòu),它包括若干父-子關(guān)系,如在圖3中所示。
圖4例示將父DMS 126描述為使用聯(lián)合方法提供遠(yuǎn)程訪問功能的示例性實現(xiàn)。父DMS 126用作父以作為子DMS 302的主導(dǎo)并控制子DMS 302。父DMS 126可通過以它為主導(dǎo)的軟件組件通過媒體引擎218提供控制至應(yīng)用程序208。這樣,父DMS 126為應(yīng)用程序208提供對數(shù)據(jù)流的遠(yuǎn)程訪問功能。例如,父DMS 126作為子DMS 302的主導(dǎo),后者包括跨越設(shè)備邊界404的媒體引擎402,即在不同設(shè)備上執(zhí)行。通過子DMS 302,父DMS 126可跨越設(shè)備邊界404控制媒體引擎402。因而,子DMS 302為應(yīng)用程序208通過父DMS 126,甚至在媒體引擎402遠(yuǎn)程于應(yīng)用程序208的情況下,提供媒體引擎402的功能。
父DMS 126還可直接主導(dǎo)媒體引擎406。父DMS 126具有主導(dǎo)若干類型的軟件組件的能力,包括媒體引擎406、子DMS 302和在圖2中所示的、用于與通用即插即用的設(shè)備、傳統(tǒng)設(shè)備等等交互的本地軟件組件210。通過主導(dǎo)多個軟件組件,父DMS 126可整合在軟件組件上的控制。因此,多個軟件組件可由應(yīng)用程序208通過與父DMS 126的交互來控制。
可用各種各樣方式配置子DMS 302以提供不同的功能。例如,可創(chuàng)建子DMS302來解決一種情況,即父DMS 126沒有直接訪問口而一個子DMS 302有訪問口的軟件組件,例如媒體引擎402。因此,由父DMS 126主導(dǎo)子DMS 302,以提供對軟件組件如媒體引擎402的訪問。另外,可創(chuàng)建子DMS 302以在一組指定的軟件組件上施加控制。例如,可為每種類型被流化的數(shù)據(jù)如視頻數(shù)據(jù)和音頻數(shù)據(jù),提供單獨的子DMS。
最后,父DMS可提供分布式軟件基礎(chǔ)結(jié)構(gòu)的至少一部分的整合的控制,如在圖4中所示。例如,父DMS 126可分別控制位于每個源和客戶設(shè)備102、104上的至少一個軟件組件。產(chǎn)生子DMS 302的判斷是解析分布式拓?fù)浣Y(jié)構(gòu)的結(jié)果,這在后續(xù)章節(jié)中討論。
解析分布式拓?fù)浣Y(jié)構(gòu)圖5例示一示例性過程500,在其中父DMS 126建立用于將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104的分布式軟件基礎(chǔ)結(jié)構(gòu)。在塊502,所示的是請求步驟,應(yīng)用程序208將請求504發(fā)送給父DMS 126以流化數(shù)據(jù)。該請求引用在圖1中所示的源和客戶設(shè)備102、104。
父DMS 126使用請求504解析分布式拓?fù)浣Y(jié)構(gòu),該分布式拓?fù)浣Y(jié)構(gòu)引用適合于將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104的軟件組件。要解析分布式拓?fù)浣Y(jié)構(gòu),父DMS 126首先發(fā)現(xiàn)源設(shè)備102與客戶設(shè)備104分別與流化的數(shù)據(jù)交互的能力。例如,DMS 126可發(fā)現(xiàn)客戶設(shè)備104呈現(xiàn)數(shù)據(jù)的能力和源設(shè)備102流化要呈現(xiàn)的數(shù)據(jù)的能力。
可用各種各樣的方式發(fā)現(xiàn)能力。在塊506的例示的實現(xiàn)中,所示的是發(fā)現(xiàn)能力的步驟,父DMS 126可檢查源設(shè)備102找出源軟件組件508,它涉及也就是具有來自源設(shè)備102的數(shù)據(jù)的流化,作為特征或結(jié)論。同樣,父DMS 126可檢查客戶設(shè)備104來找出涉及呈現(xiàn)流至客戶設(shè)備104的數(shù)據(jù)的客戶軟件組件510。檢查源和客戶設(shè)備102、104可包括找出由源和客戶設(shè)備102、104向父DMS 126暴露例如使之可見的軟件組件。
在另一個實現(xiàn)中,父DMS 126可通過查詢查找表發(fā)現(xiàn)源和客戶設(shè)備102、104的能力。查找表可返回規(guī)定源和/或客戶設(shè)備102、104的能力的結(jié)果。查找表可作為父DMS 126的一部分駐留和/或駐留在圖1中所示網(wǎng)絡(luò)106上的其它地方,諸如駐留在源設(shè)備102、客戶設(shè)備104和/或可通過網(wǎng)絡(luò)106訪問的附加設(shè)備(未示出)上。
在塊512,所示的是解析分布式拓?fù)浣Y(jié)構(gòu)的步驟,父DMS 126從所發(fā)現(xiàn)的在塊506所找出的源和客戶設(shè)備120、104兩者的能力導(dǎo)出分布式拓?fù)浣Y(jié)構(gòu)514。分布式拓?fù)浣Y(jié)構(gòu)514是一個引用軟件組件的設(shè)計圖,如藍(lán)圖,當(dāng)執(zhí)行這些軟件組件時,將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104。例如,由父DMS 126在軟件組件102中發(fā)現(xiàn)的源軟件組件508可能是用于在圖1中所示的源外圍設(shè)備108的驅(qū)動程序。另外,在客戶設(shè)備104中發(fā)現(xiàn)的客戶軟件組件510可能是媒體播放器,通過用于在圖1中所示的客戶設(shè)備104的呈現(xiàn)設(shè)備124的設(shè)備驅(qū)動程序提供數(shù)據(jù)?;谶@些發(fā)現(xiàn),父DMS 126可得到附加的軟件組件516,在結(jié)合源軟件組件508與客戶軟件組件510執(zhí)行軟件組件516時,將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104?;谒l(fā)現(xiàn)的源和客戶軟件組件508、510的能力,父DMS126得到分布式拓?fù)浣Y(jié)構(gòu)514,因此它包括附加軟件組件516。在所例示的例子中,分布式拓?fù)浣Y(jié)構(gòu)514引用源與客戶軟件組件508、510連同附加的軟件組件516。此時,分布式拓?fù)浣Y(jié)構(gòu)514提供用于將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104的設(shè)計圖,但不提供實際的分布式軟件基礎(chǔ)結(jié)構(gòu)來這么做。
在塊518,所示的是建立分布式軟件基礎(chǔ)結(jié)構(gòu)的步驟,父DMS 126基于分布式拓?fù)浣Y(jié)構(gòu)514提供附加的軟件組件516來建立分布式軟件基礎(chǔ)結(jié)構(gòu)520。分布式軟件基礎(chǔ)結(jié)構(gòu)520包括附加的軟件組件516和源與客戶軟件組件508、510。執(zhí)行分布式軟件基礎(chǔ)結(jié)構(gòu)520的源、客戶和附加的軟件組件508、510、516,以將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104??捎酶鞣N各樣的方式提供附加的軟件組件516。例如,可由父DMS 126存儲和取回附加的軟件組件516,諸如從本地存儲器、位于圖1的網(wǎng)絡(luò)106上的存儲器等等。
在圖5所示的例子中,父DMS 126從包括對源和客戶設(shè)備102、104的引用的請求504開始。父DMS 126然后從請求504解析塊512的分布式拓?fù)浣Y(jié)構(gòu)514,接著可使用它建立塊518的分布式軟件基礎(chǔ)結(jié)構(gòu)520??稍跓o需用戶介入的情況下自動地由父DMS 126完成在塊502、506、512、518描述的步驟。父DMS 126可解析各種各樣的分布式拓?fù)浣Y(jié)構(gòu),諸如遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)、遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)和第三方分布式拓?fù)浣Y(jié)構(gòu),在后續(xù)章節(jié)中將進(jìn)一步討論它們每一個。
遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)圖6、7和8例示遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)的解析的示例性實現(xiàn)。遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)指一種分布式拓?fù)浣Y(jié)構(gòu),其中流化數(shù)據(jù)的源設(shè)備102是遠(yuǎn)程的,從主導(dǎo)父DMS 126的客戶設(shè)備104來看,即跨越設(shè)備邊界404。由客戶設(shè)備104來執(zhí)行父DMS 126以解析分布式拓?fù)浣Y(jié)構(gòu)。應(yīng)用程序208也在客戶設(shè)備104上執(zhí)行。在圖7中所示的應(yīng)用,其中源設(shè)備102包括攝像機108a和攝像機軟件組件602,并且客戶設(shè)備104包括呈現(xiàn)設(shè)備124和顯示軟件組件604。
圖6例示在圖5的過程500的塊512解析分布式拓?fù)浣Y(jié)構(gòu)的示例性實現(xiàn)。父DMS 126首先創(chuàng)建包括攝像機軟件組件602和顯示軟件組件604的分布式拓?fù)浣Y(jié)構(gòu)606。攝像機軟件組件602引用圖7的攝像機108a的能力,諸如包括在攝像機108a上的、流化數(shù)據(jù)的本地軟件組件,和攝像機108a的網(wǎng)絡(luò)地址。同樣,可使用顯示軟件組件604來引用能力,諸如包括在圖7的呈現(xiàn)設(shè)備124上的是哪一個本地軟件組件來呈現(xiàn)數(shù)據(jù)以及呈現(xiàn)設(shè)備124的網(wǎng)絡(luò)地址。
在圖6中所示的分布式拓?fù)浣Y(jié)構(gòu)606是部分的,因為沒有引用將用于提供流化的數(shù)據(jù)的所有軟件組件。如前所述,分布式拓?fù)浣Y(jié)構(gòu)606是用于分布式軟件基礎(chǔ)結(jié)構(gòu)的設(shè)計圖,并且因此不包括將實現(xiàn)的實際軟件組件。例如,分布式拓?fù)浣Y(jié)構(gòu)606引用將由父DMS 126使用以提供用于將數(shù)據(jù)從攝像機108a流至圖7的呈現(xiàn)設(shè)備124的分布式軟件基礎(chǔ)結(jié)構(gòu)的軟件組件。可由父DMS 126使用這些引用來提供在分布式拓?fù)浣Y(jié)構(gòu)606中所引用的軟件組件,以建立如相對于圖5所述的分布式軟件基礎(chǔ)結(jié)構(gòu)。
在圖7所示的例子中,攝像機108a和呈現(xiàn)設(shè)備124不是在本地相互連接的,而是通過在圖1所示的網(wǎng)絡(luò)連接的。如在標(biāo)題為“遠(yuǎn)程訪問和聯(lián)合”的章節(jié)和圖3中所討論的,聯(lián)合可涉及通過將控制委托給將控制將被用于在分布式軟件基礎(chǔ)結(jié)構(gòu)中流化數(shù)據(jù)的本地軟件組件的子DMS 302,來分段分布式拓?fù)浣Y(jié)構(gòu)606。例如,如在圖7中所示,分布式拓?fù)浣Y(jié)構(gòu)606被分段成包括正在遠(yuǎn)程源即源設(shè)備102上創(chuàng)建的子DMS 702,由設(shè)備邊界404將該源與客戶設(shè)備104分開。
子DMS 702包括分布式拓?fù)浣Y(jié)構(gòu)606的一部分704,它也將經(jīng)歷解析的步驟。例如,對部分704的解析可包括增加對發(fā)送器706的引用,發(fā)送器706是由父DMS 126通過子DMS 702控制的軟件組件。同樣,對分布式拓?fù)浣Y(jié)構(gòu)606的解析也可包括增加對接收器708的引用,這是一個直接由父DMS 126控制的軟件組件。發(fā)送器706跨越設(shè)備邊界404流化數(shù)據(jù)。接收器708接收跨越設(shè)備邊界404流化的數(shù)據(jù)。在發(fā)送器和接收器706、708之間可用各種各樣的方式流化數(shù)據(jù)。例如,可由發(fā)送器706將數(shù)據(jù)“推”到接收器708,諸如通過將數(shù)據(jù)流至網(wǎng)絡(luò)地址。也可由接收器708從發(fā)送器706“拉”數(shù)據(jù),諸如通過從一網(wǎng)絡(luò)地址取回數(shù)據(jù)流。
圖8例示在完全被解析時的圖6-7的分布式拓?fù)浣Y(jié)構(gòu)606。在此例中,在分布式拓?fù)浣Y(jié)構(gòu)606的部分704中引用媒體引擎802來控制將數(shù)據(jù)從攝像機軟件組件602流至發(fā)送器706。在分布式拓?fù)浣Y(jié)構(gòu)606中包括另一個媒體引擎804來控制將數(shù)據(jù)從接收器708流至顯示軟件組件604。在圖8中所示的箭頭描述數(shù)據(jù)的流化。
圖9例示圖8所示的分布式拓?fù)浣Y(jié)構(gòu)606中的軟件組件的控制的層次900。解析如在圖8中所示的分布式拓?fù)浣Y(jié)構(gòu)606,使得父DMS 126在分布式拓?fù)浣Y(jié)構(gòu)的所有軟件組件上具有控制。因此,父DMS 126將在根據(jù)分布式拓?fù)浣Y(jié)構(gòu)606建立的分布式軟件基礎(chǔ)結(jié)構(gòu)上具有控制。例如,父DMS 126通過子DMS 702在攝像機軟件組件602、媒體引擎802和發(fā)送器706上具有控制。在此例中,子DMS 702駐留在如圖7所示的源設(shè)備102上。父DMS 126還在如圖7所示的接收器708、媒體引擎804和顯示軟件組件604上具有控制。因而,父DMS 126將在可由分布式拓?fù)浣Y(jié)構(gòu)606建立的分布式軟件基礎(chǔ)結(jié)構(gòu)上具有控制,并且可將此控制通過媒體引擎218提供給與父DMS 126交互的應(yīng)用程序208。
遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)圖10例示解析的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)1000的示例性實現(xiàn)。遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)1000指一種分布式拓?fù)浣Y(jié)構(gòu),從執(zhí)行父DMS 126的源設(shè)備102來看,其中客戶設(shè)備104是遠(yuǎn)程的,即跨越設(shè)備邊界404。由源設(shè)備102執(zhí)行父DMS 126來解析分布式拓?fù)浣Y(jié)構(gòu)。用于遠(yuǎn)程匯點情況的分布式拓?fù)浣Y(jié)構(gòu)實際上是如相對于圖6-9所述的遠(yuǎn)程源情況的鏡像圖。
解析分布式拓?fù)浣Y(jié)構(gòu)1002,它引用攝像機軟件組件602和攝像機108a的顯示軟件組件604和呈現(xiàn)設(shè)備124,如在圖6-9所示的先前的實現(xiàn)中。與以前一樣,父DMS 126通過在客戶設(shè)備104創(chuàng)建子DMS 1004來分段分布式拓?fù)浣Y(jié)構(gòu)1002,客戶設(shè)備104跨越設(shè)備邊界404與主導(dǎo)父DMS 126的源設(shè)備102分開。子DMS 1004包括分布式拓?fù)浣Y(jié)構(gòu)1002的一部分1006。分布式拓?fù)浣Y(jié)構(gòu)1002引用發(fā)送器1008和媒體引擎1010用于包含在源設(shè)備102上,并且引用接收器1012和媒體引擎1014用于包含在客戶設(shè)備104上。
圖11例示在圖10中所示的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)中引用的軟件組件的控制的層次1100。父DMS在可由圖10的分布式拓?fù)浣Y(jié)構(gòu)1002形成的分布式軟件基礎(chǔ)結(jié)構(gòu)上具有控制。例如,父DMS 126在攝像機軟件組件602、媒體引擎1010和發(fā)送器1008上具有直接控制。父DMS 126還在包括由如在圖10中所示的客戶設(shè)備104上的子DMS 1004包括的接收器1012、媒體引擎1014和顯示軟件組件604上具有控制。因而,父DMS在可由分布式拓?fù)浣Y(jié)構(gòu)1002建立的分布式軟件基礎(chǔ)結(jié)構(gòu)上具有控制。應(yīng)用程序208,通過媒體引擎218與父DMS 126交互,然后還可控制由圖10的分布式拓?fù)浣Y(jié)構(gòu)1002形成的分布式軟件基礎(chǔ)結(jié)構(gòu)。
在遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)和遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)兩者的前面的實現(xiàn)中,父DMS 126在根據(jù)分布式拓?fù)浣Y(jié)構(gòu)建立的全部分布式軟件基礎(chǔ)結(jié)構(gòu)上提供控制。然而,可能在有些實例中,不在全部分布式軟件基礎(chǔ)結(jié)構(gòu)上提供控制,如在下列章節(jié)中將討論的。
供在分布式拓?fù)浣Y(jié)構(gòu)中使用的源和匯點代理軟件組件圖12例示代理1202的示例性實現(xiàn)1200。代理1202是一軟件組件,父DMS126(未示出)通過該軟件組件可為應(yīng)用程序208提供與具有位于不同設(shè)備上的軟件組件1204的交互,例如,從應(yīng)用程序208跨越設(shè)備邊界404。使用代理1202向應(yīng)用程序208提供流化的數(shù)據(jù),好象通過使用本地軟件組件210在本地提供數(shù)據(jù)一樣。因而,應(yīng)用程序208可從攝像機108a接收流化的數(shù)據(jù),好象在客戶設(shè)備104上執(zhí)行攝像機108a和其相應(yīng)的軟件組件1204一樣。
圖13例示代理1202的另外的示例性實現(xiàn)1300。還可使用代理1202接收和流化數(shù)據(jù)跨越設(shè)備邊界404至軟件組件1302。例如,代理1202可將數(shù)據(jù)流至軟件組件1302用于在呈現(xiàn)設(shè)備124上顯示,好象軟件組件1302是正在源設(shè)備102上執(zhí)行的本地軟件組件210。
在父DMS 126(未示出)沒有在分布式軟件基礎(chǔ)結(jié)構(gòu)的全部軟件組件上提供控制的實例中,可使用代理1202。因此,通過使用代理1202,在由父DMS 126解析分布式拓?fù)浣Y(jié)構(gòu)時使用聯(lián)合模型,但在與圖6-11有關(guān)的情況下不使用聯(lián)合模型。
圖14例示源代理1402的示例性實現(xiàn)1400。源代理1402包括父DMS 126和接收器1404。使用父DMS 126用于控制駐留在圖12中所示的源設(shè)備102上的遠(yuǎn)程軟件組件。接收器1404接收由發(fā)送器(未示出)流至接收器1206的數(shù)據(jù),如前所述。
圖15例示匯點代理1502的示例性實現(xiàn)1500。匯點代理1502包括父DMS126,使用它用于控制駐留在如在圖13中所示的客戶設(shè)備104上的軟件組件1302。發(fā)送器1504流化數(shù)據(jù)至接收器(未示出),如前所述。不使用父DMS 126來控制正用作數(shù)據(jù)源的軟件組件的情況下,可使用匯點代理1502從軟件組件流化數(shù)據(jù)。
圖16例示包括源代理1602的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)1600的示例性實現(xiàn)。在客戶設(shè)備104上執(zhí)行應(yīng)用程序208和媒體引擎218,如在圖6-9所示的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)中所述。然而,在此實例中,從應(yīng)用程序208接收流化數(shù)據(jù)的請求的父DMS 126,將不被用于控制涉及要被流化的數(shù)據(jù)的源設(shè)備102的每個軟件組件。換言之,父DMS 126將不在根據(jù)分布式拓?fù)浣Y(jié)構(gòu)建立的全部分布式軟件基礎(chǔ)結(jié)構(gòu)上施加控制。因此,當(dāng)解析分布式拓?fù)浣Y(jié)構(gòu)時,父DMS 126引用源代理1602,以使數(shù)據(jù)流至不受父DMS 126控制的軟件組件。
父DMS 126在軟件組件上提供控制,這些軟件組件駐留在源設(shè)備102上,將數(shù)據(jù)從源設(shè)備102流至主導(dǎo)父DMS 126的客戶設(shè)備104。例如,父DMS 126可通過使用媒體引擎1608來控制源軟件組件1604和發(fā)送器1606。發(fā)送器1606將數(shù)據(jù)流至接收器1610,如前所述。然而,父DMS 126在數(shù)據(jù)的目的地上沒有控制,在此實例中將數(shù)據(jù)的目的地稱為匯點1612。匯點1612是一軟件組件,被例示為表示不受父DMS 126控制的數(shù)據(jù)的目的地。因此,父DMS 126僅僅將數(shù)據(jù)流至匯點1612,在不控制它。應(yīng)用程序208可與源代理1602交互,好象它是本地軟件組件1614,即使父DMS 126控制遠(yuǎn)程于應(yīng)用程序208的軟件組件,如位于源設(shè)備102上的軟件組件。
圖17例示在圖16所示的遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)1600中控制的層次1700。在遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)1600中,父DMS 126在媒體引擎1608、源軟件組件1604、發(fā)送器1606和接收器1610上提供控制,如前所述。因為父DMS 126不在匯點1612上施加控制,父DMS 126將匯點1612識別為一個出口,在這個出口數(shù)據(jù)要被流化,但不受控制。
圖18例示包括匯點代理1802的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)1800的示例性實現(xiàn)。遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)1800與遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu)1600相似。在此實現(xiàn)中,在源設(shè)備102上執(zhí)行應(yīng)用程序208和媒體引擎218,如相對于在圖10-11所示的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)所述。
從應(yīng)用程序208接收流化數(shù)據(jù)的請求的父DMS 126,在分布式軟件基礎(chǔ)結(jié)構(gòu)中將不使用它用于控制涉及數(shù)據(jù)的流化的客戶設(shè)備104的所有軟件組件。因此,在響應(yīng)該請求時,父DMS 126將引用匯點代理1802,因此可使用一軟件組件接收要被流化的數(shù)據(jù),父DMS 126在該軟件組件上沒有控制。
父DMS 126對駐留在客戶設(shè)備104上的軟件組件上提供控制,這些軟件組件從源設(shè)備102接收流化的數(shù)據(jù)。例如,父DMS 126可通過使用媒體引擎1808來控制接收器1804和客戶軟件組件1806。使用發(fā)送器1810來流化數(shù)據(jù)至接收器1804,如前所述。然而,父DMS 126在流化數(shù)據(jù)的全部軟件組件上沒有控制,在此實例中被稱為原點(origin)1812。因此,父DMS 126在不控制它的情況下僅僅從原點1812接收數(shù)據(jù)。應(yīng)用程序208可將匯點代理1802識別為本地軟件組件1814。
圖19例示在圖18所示的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu)1800中控制的層次1900。父DMS 126在媒體引擎1808、客戶軟件組件1806、接收器1804和發(fā)送器1810上提供控制。因為父DMS 126不在原點1812上施加控制,父DMS 126將原點1812識別為接收數(shù)據(jù)的入口,但父DMS 126在其上沒有控制。
第三方分布式拓?fù)浣Y(jié)構(gòu)圖20例示一示例性實現(xiàn),其中所示的系統(tǒng)2000包括以通信方式通過網(wǎng)絡(luò)106耦合至源和客戶設(shè)備102、104的第三方設(shè)備2002。在前面的實現(xiàn)中,在所述的分布式拓?fù)浣Y(jié)構(gòu)中或者由源設(shè)備102或者由客戶設(shè)備104提供解析與控制。也可使用第三方設(shè)備2002通過使用由父DMS 126提供的聯(lián)合方法執(zhí)行父DMS 126。因此,可使用第三方設(shè)備2002解析分布式拓?fù)浣Y(jié)構(gòu)以將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104。
圖21例示第三方分布式拓?fù)浣Y(jié)構(gòu)2100的示例性實現(xiàn)。第三方設(shè)備2002執(zhí)行父DMS 126,它通過媒體引擎218從應(yīng)用程序208接收將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104的請求。父DMS 126創(chuàng)建第一子DMS 2102來解析包括源設(shè)備102的分布式拓?fù)浣Y(jié)構(gòu)的一部分。第一子DMS 2102還在包括在源設(shè)備102上的軟件組件上提供控制。父DMS 126還創(chuàng)建第二子DMS 2104來解析客戶設(shè)備104的分布式拓?fù)浣Y(jié)構(gòu)的一部分。第二子DMS 2104在包括在客戶設(shè)備104上的軟件組件上提供控制。
第一子DMS 2102引用由媒體引擎2110控制的源軟件組件2106和發(fā)送器2108。第二子DMS 2104引用由媒體引擎2116控制的接收器2112和客戶軟件組件2114。圖22例示在圖21所示的第三方分布式拓?fù)浣Y(jié)構(gòu)2100中控制的層次2200。層次2200表明父DMS 126在第一子DMS 2102與第二子DMS 2104上提供控制。第一子DMS 2102在源軟件組件2106、發(fā)送器2108和媒體引擎2100上提供控制。第二子DMS 2104在接收器2112、客戶軟件組件2114和媒體引擎2116上提供控制。
可用各種各樣的方式配置第三方控制分布式拓?fù)浣Y(jié)構(gòu)2100。在圖21所示的例子中,父DMS 126在位于源和客戶設(shè)備102、104上的軟件組件上提供控制。圖20的第三方設(shè)備2002也可執(zhí)行父DMS 126來解析或者由源設(shè)備102或者由客戶設(shè)備104提供控制的分布式拓?fù)浣Y(jié)構(gòu)。而且,應(yīng)該注意,在圖21所例示的實現(xiàn)中,在不通過第三方設(shè)備2002流化的情況下,將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104。這樣,第三方設(shè)備2002可解析在實際上自己沒有流化數(shù)據(jù)的情況下流化數(shù)據(jù)的分布式拓?fù)浣Y(jié)構(gòu)。在另外的實現(xiàn)中,通過第三方設(shè)備2002將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104。
具有多個流的分布式拓?fù)浣Y(jié)構(gòu)盡管相對于單個數(shù)據(jù)流描述前面的實現(xiàn)有助于討論,但父DMS 126可流化多個數(shù)據(jù)流。例如,可使用多個源設(shè)備,其中每個源設(shè)備將數(shù)據(jù)流至單個客戶設(shè)備。另外,單個源設(shè)備可將數(shù)據(jù)的多個流流至一個或多個客戶設(shè)備。同樣,多個客戶設(shè)備可從一源設(shè)備接收單個數(shù)據(jù)流。雖然將要討論流化數(shù)據(jù)的多個流的使用的單個例子,但先前討論的每個分布式拓?fù)浣Y(jié)構(gòu)和分布式軟件基礎(chǔ)結(jié)構(gòu)可支持多個數(shù)據(jù)流。
圖23例示系統(tǒng)2300的示例性實現(xiàn),在系統(tǒng)2300中多個源設(shè)備將數(shù)據(jù)流至客戶設(shè)備104。系統(tǒng)2300可包括第一源設(shè)備2302,它配置為網(wǎng)絡(luò)現(xiàn)成的攝像機,例如,它包含使它能夠以通信的方式耦合到網(wǎng)絡(luò)106的功能。系統(tǒng)2300還包括配置為網(wǎng)絡(luò)現(xiàn)成的音頻輸入設(shè)備的第二源設(shè)備2304,諸如網(wǎng)絡(luò)現(xiàn)成的話筒。第一源設(shè)備2302流化視頻數(shù)據(jù)和第二源設(shè)備2304流化音頻數(shù)據(jù),由客戶設(shè)備104使用??捎酶鞣N各樣的方式來配置第一和第二源設(shè)備2302、2304,諸如通用即插即用(UPnP)設(shè)備。
圖24例示用于在圖23的系統(tǒng)2300中使用的分布式拓?fù)浣Y(jié)構(gòu)的示例性實現(xiàn)??蛻粼O(shè)備104包括應(yīng)用程序208,它請求從第一和第二源設(shè)備2302、2304流化數(shù)據(jù)用于在客戶設(shè)備104呈現(xiàn)。父DMS 126通過媒體引擎218接收請求并且解析分布式拓?fù)浣Y(jié)構(gòu)用于流化音頻和視頻數(shù)據(jù)。
父DMS 126創(chuàng)建第一子DMS 2402來解析第一源設(shè)備2302的分布式拓?fù)浣Y(jié)構(gòu)的一部分。第一子DMS 2402還提供包括在第一源設(shè)備2302上的軟件組件的控制。另外,父DMS 126創(chuàng)建第二子DMS 2404來解析第二源設(shè)備2302的分布式拓?fù)浣Y(jié)構(gòu)的一部分。第二子DMS 2404還提供包括在第二源設(shè)備2302上的軟件組件的控制。
第一子DMS 2402引用由媒體引擎2410控制的攝像機軟件組件2406和發(fā)送器2408。第二子DMS 2404引用由媒體引擎2416控制的音頻軟件組件2412和發(fā)送器2414。父DMS 126可控制第一和第二子DMS 2402、2404來協(xié)調(diào)音頻和視頻數(shù)據(jù)的流至客戶設(shè)備104。
以優(yōu)化的方式解析分布式拓?fù)浣Y(jié)構(gòu)圖25例示系統(tǒng)2500的示例性實現(xiàn),在系統(tǒng)2500中,父DMS 126以優(yōu)化的方式基于源和客戶設(shè)備102、104與流化的數(shù)據(jù)交互的能力來解析分布式拓?fù)浣Y(jié)構(gòu)。要在本地呈現(xiàn)數(shù)據(jù),源設(shè)備102可從所包括的源外圍設(shè)備108產(chǎn)生原始數(shù)據(jù)流2502,即還沒有經(jīng)過處理或受過分析的數(shù)據(jù)。壓縮原始數(shù)據(jù)2502以形成壓縮的數(shù)據(jù)2504,因此可按有效方式來傳輸和存儲數(shù)據(jù)。要與壓縮的數(shù)據(jù)交互,源設(shè)備102解壓縮壓縮的數(shù)據(jù)2504以獲得解壓縮的數(shù)據(jù)2506。然后解壓縮的數(shù)據(jù)2506經(jīng)歷呈現(xiàn)步驟以形成呈現(xiàn)數(shù)據(jù)2508,即適合于以實際形式輸出用于與用戶交互的數(shù)據(jù)(諸如被顯示的、由音頻設(shè)備播放的等等)。
父DMS 126通過發(fā)現(xiàn)源設(shè)備102和客戶設(shè)備104之間的能力,可以提供最佳的分布式軟件拓?fù)浣Y(jié)構(gòu)。例如,如圖25所示,父DMS 126可以解析這樣一種分布式拓?fù)浣Y(jié)構(gòu),在這種分布式拓?fù)浣Y(jié)構(gòu)中,從源數(shù)據(jù)2502獲得的壓縮數(shù)據(jù)2504流入客戶設(shè)備104。隨后,客戶設(shè)備104會對壓縮數(shù)據(jù)2504進(jìn)行解壓縮,以形成解壓縮的數(shù)據(jù)2510。解壓縮數(shù)據(jù)2510接著形成呈現(xiàn)數(shù)據(jù)2512,由呈現(xiàn)設(shè)備124使用。
可使用分布式拓?fù)浣Y(jié)構(gòu)的優(yōu)化來提供分布用于流化數(shù)據(jù)資源的分布式軟件基礎(chǔ)結(jié)構(gòu)。例如,不為源設(shè)備102提供足以解壓縮和呈現(xiàn)的硬件和軟件資源,而可由客戶設(shè)備104來提供此功能性。另外,壓縮的數(shù)據(jù)2504可用加密的方式來壓縮。通過提供壓縮的數(shù)據(jù)2504的加密,數(shù)據(jù)保持被編碼,因此可安全地在網(wǎng)絡(luò)106上流化數(shù)據(jù)。
示例性過程圖26是描述示例性過程2600的流程圖,在該過程中建立將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104的軟件組件的分布式軟件基礎(chǔ)結(jié)構(gòu)。在塊2602,由應(yīng)用程序208發(fā)送請求。該請求可包括將流化的數(shù)據(jù)從源設(shè)備102傳送至客戶設(shè)備104的指令??烧J(rèn)為該請求是部分拓?fù)浣Y(jié)構(gòu),在其中它不包括用于建立分布式軟件基礎(chǔ)結(jié)構(gòu)以流化數(shù)據(jù)的軟件組件的說明。
在塊2604,父DMS 126接收包括源設(shè)備102和客戶設(shè)備104的部分拓?fù)浣Y(jié)構(gòu)的請求。在塊2606,父DMS 126解析分布式拓?fù)浣Y(jié)構(gòu)。分布式拓?fù)浣Y(jié)構(gòu)是一設(shè)計圖,它引用適合于將數(shù)據(jù)從源設(shè)備102通過網(wǎng)絡(luò)流至客戶設(shè)備104的軟件組件。
在塊2608,父DMS 126首先開始通過發(fā)現(xiàn)源和客戶設(shè)備102、104與流化的數(shù)據(jù)交互的能力來解析分布式拓?fù)浣Y(jié)構(gòu)。能力可包括用于流化要被呈現(xiàn)的數(shù)據(jù)的軟件組件和分別由源與客戶設(shè)備102、104呈現(xiàn)數(shù)據(jù)流的軟件組件??捎酶鞣N各樣方式發(fā)現(xiàn)這些能力。例如,父DMS 126可檢查源與客戶設(shè)備102、104來確定包括哪個軟件組件涉及流化數(shù)據(jù)。父DMS 126也可查詢包括源與客戶設(shè)備102、104的能力的說明的查找表。
在塊2610,父DMS 126得到分布式拓?fù)浣Y(jié)構(gòu),該分布式拓?fù)浣Y(jié)構(gòu)引用適合于滿足請求的多個軟件組件。分布式拓?fù)浣Y(jié)構(gòu)可引用已經(jīng)包括在源與客戶設(shè)備102、104上的軟件組件,以及引用要被包括以將數(shù)據(jù)從源設(shè)備102流至客戶設(shè)備104的附加的軟件組件。
在塊2612,父DMS 126根據(jù)分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),它包括由分布式拓?fù)浣Y(jié)構(gòu)引用的軟件組件。例如,父DMS 126可基于解析的分布式拓?fù)浣Y(jié)構(gòu)提供附加的軟件組件來建立分布式軟件基礎(chǔ)結(jié)構(gòu)。因而,父DMS 126使用分布式拓?fù)浣Y(jié)構(gòu)作為設(shè)計圖來提供由分布式拓?fù)浣Y(jié)構(gòu)引用的軟件組件。在塊2614,源設(shè)備102通過網(wǎng)絡(luò)使用分布式軟件基礎(chǔ)結(jié)構(gòu)流化數(shù)據(jù)至客戶設(shè)備104。在塊2616,客戶設(shè)備104呈現(xiàn)數(shù)據(jù)。
示例性操作環(huán)境在此所述的各種組件和功能性可由許多獨立的計算機實現(xiàn)。圖27所示的計算機環(huán)境2700的典型例子的組件包括由參考數(shù)字2702所指示的計算機。在各種實現(xiàn)中,源設(shè)備102、客戶設(shè)備104和/或第三方設(shè)備2002可配置為計算機2702。圖27所示的組件只是例子,而不是想要建議有關(guān)本發(fā)明的功能性的范圍的任何限制;本發(fā)明不必依賴于圖27所示的部件。
通常,可以使用各種不同的通用或?qū)S糜嬎阆到y(tǒng)配置。眾所周知的可適用于本發(fā)明使用的計算系統(tǒng)、環(huán)境和/或配置的例子,包括但不限于個人計算機、服務(wù)器計算機、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程的消費電子產(chǎn)品、網(wǎng)絡(luò)PC、網(wǎng)絡(luò)現(xiàn)成的設(shè)備、小型計算機、大型計算機、包括任何上述系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。
計算機的功能性在許多情況下是由諸如軟件組件之類由計算機執(zhí)行的計算機可執(zhí)行指令來體現(xiàn)的。通常,軟件組件包括完成特定的任務(wù)或?qū)崿F(xiàn)特定抽象的數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備完成任務(wù)。在分布式計算環(huán)境中,軟件組件可位于本地或遠(yuǎn)程兩者的計算機存儲介質(zhì)中。
在不同時間將指令和/或軟件組件存儲在或者是計算機的一部分或者是可以由計算機讀取的各種計算機可讀介質(zhì)。例如,程序一般分布在軟盤、CD-ROM、DVD或某種形式的通信介質(zhì)諸如調(diào)制的信號上。從那里,將它們安裝或加載到計算機的輔助存儲器中。在執(zhí)行時,至少部分地將它們加載到計算機的主電子存儲器中。
為了說明,程序和其它可執(zhí)行程序組件諸如操作系統(tǒng)在此被例示為分立的塊,盡管可認(rèn)識到,這樣的程序和組件在不同時間駐留在計算機的不同存儲組件中,并且由計算機的數(shù)據(jù)處理器執(zhí)行。
參考圖27,計算機2702的組件可包括,但不限于處理單元2704、系統(tǒng)存儲器2706和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合到處理單元2704的系統(tǒng)總線2708。系統(tǒng)總線2708可以是任何若干類型的總線結(jié)構(gòu),包括存儲器總線或存儲控制器、外圍總線和使用任何各種各樣總線結(jié)構(gòu)的局部總線。作為例子但非限制性地,這樣的結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線,微通道結(jié)構(gòu)(MCA)總線,增強型ISA(EISA)總線,視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局部總線和也被稱為夾層(Mezzanine)總線的外設(shè)部件互連(PCI)總線。
計算機2702一般包括各種各樣的計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是任何可由計算機2702訪問的可用的介質(zhì),并包括易失性和非易失性介質(zhì)、可移動和不可移動的介質(zhì)。作為例子而非限制性地,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)?!坝嬎銠C存儲介質(zhì)”包括易失性和非易失性、可移動和不可移動的介質(zhì),這是以任何用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)之類的信息的方法或技術(shù)實現(xiàn)的。計算機存儲介質(zhì)包括但不限于RAM、ROM、EEPROM、閃存或其它存儲技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它光盤存儲器、磁帶盒、磁帶、磁盤存儲器或其它磁存儲設(shè)備或任何可以存儲要求的信息并且可由計算機2702訪問的其它介質(zhì)。通信介質(zhì)一般體現(xiàn)在調(diào)制的數(shù)據(jù)信號諸如載波或其它傳輸機制中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。術(shù)語“調(diào)制的數(shù)據(jù)信號”指具有以將信息編碼到信號中的方式設(shè)置或改變的一個或多個其特性的信號。作為例子而非限制性地,通信介質(zhì)包括有線介質(zhì),諸如有線的網(wǎng)絡(luò)或直接線連接,并包括無線介質(zhì),諸如聲音、RF、紅外線、和其它無線介質(zhì)。任何上述的組合也應(yīng)該包括在計算機可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲器2706包括易失性和/或非易失性存儲器諸如只讀存儲器(ROM)2710和隨機存取存儲器(RAM)2712形式的計算機存儲介質(zhì)。一般存儲在ROM 2710中的有基本輸入/輸出系統(tǒng)2714(BIOS),包含如在啟動過程中幫助在計算機2702內(nèi)的元件之間傳送信息的基本例程。RAM 2712一般包含可由處理單元2704立即訪問的和/或正在運行的數(shù)據(jù)和/或軟件組件。作為例子但非限制性地,圖27例示操作系統(tǒng)2716、應(yīng)用程序2718、軟件組件2720和程序數(shù)據(jù)2722。
計算機2702還可包括其它可移動/不可移動的、易失性/非易失性計算機存儲介質(zhì)。僅作為例子,圖27例示讀寫不可移動的非易失性磁介質(zhì)的硬盤驅(qū)動器2724、讀寫可移動的非易失性磁盤2728的磁盤驅(qū)動器2726,和讀寫可移動的非易失性光盤2732諸如CD-ROM或其它光介質(zhì)的光盤驅(qū)動器2730??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動/不可移動的、易失性/非易失性計算機存儲介質(zhì)包括但不限于磁帶盒、閃存卡、數(shù)字通用盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器2724一般通過不可移動的存儲器接口諸如數(shù)據(jù)介質(zhì)接口2734連接至系統(tǒng)總線2708,并且磁盤驅(qū)動器2726與光盤驅(qū)動器2730一般通過可移動的存儲接口連接至系統(tǒng)總線2708。
上面討論并且在圖27中例示的驅(qū)動器及其相關(guān)聯(lián)的計算機存儲介質(zhì)為計算機2702提供計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、軟件組件和其它數(shù)據(jù)。在圖27中,例如,硬盤2724被例示為存儲操作系統(tǒng)2716’、應(yīng)用程序2718’、軟件組件2720’和程序數(shù)據(jù)2722’。注意,這些組件可以與操作系統(tǒng)2716、應(yīng)用程序2718、軟件組件2720和程序數(shù)據(jù)2722相同,或者與它們不同。這里為操作系統(tǒng)2716’、應(yīng)用程序2718’、軟件組件2720’和程序數(shù)據(jù)2722’給出不同的數(shù)字是為了說明,至少它們是不同的拷貝。用戶可通過輸入設(shè)備諸如鍵盤2736和通常被稱為鼠標(biāo)、軌跡球或觸摸板的定點設(shè)備(未示出)將命令和信息輸入計算機2702。其它輸入設(shè)備可包括源外圍設(shè)備(諸如提供流化的數(shù)據(jù)的話筒2738或攝像機2740)、游戲桿、游戲墊、衛(wèi)星天線、掃描儀等等。這些或其它輸入設(shè)備常常通過耦合至系統(tǒng)總線的輸入/輸出(I/O)接口2742連接至處理單元2702,但可通過其它接口和總線結(jié)構(gòu)諸如并行端口、游戲端口或通用串行總線(USB)來連接。也可通過接口諸如視頻適配器2746將監(jiān)視器2744或其它類型的顯示設(shè)備連接至系統(tǒng)總線2708。除監(jiān)視器2744之外,計算機也可包括其它外圍呈現(xiàn)設(shè)備(例如揚聲器)和一個或多個打印機2748,它們可通過I/O接口2742來連接。
計算機可在使用邏輯連接至一個或多個遠(yuǎn)程計算機諸如遠(yuǎn)程設(shè)備2750的網(wǎng)絡(luò)化環(huán)境中運行。遠(yuǎn)程設(shè)備2750可以是個人計算機、網(wǎng)絡(luò)現(xiàn)成的設(shè)備、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它通用網(wǎng)絡(luò)節(jié)點,并且一般包括相對于計算機2702描述的上述許多或所有元件。圖27所示邏輯連接包括局域網(wǎng)(LAN)2752和廣域網(wǎng)(WAN)2754。盡管圖27所示的WAN 2754是因特網(wǎng),但WAN2754也可包括其它網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)級計算機網(wǎng)絡(luò)、內(nèi)部互聯(lián)網(wǎng)等等中是很普通的。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機2702通過網(wǎng)絡(luò)接口和適配器2756連接至LAN 2752。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時,計算機2702一般包括調(diào)制解調(diào)器2758或其它裝置,用于在因特網(wǎng)2754上建立通信。調(diào)制解調(diào)器2758,可以是內(nèi)置的或外置的,可通過I/O接口2742或其它適當(dāng)?shù)臋C制連接至系統(tǒng)總線2708。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機2702所描述的程序模塊或其部分可存儲在遠(yuǎn)程設(shè)備2750中。作為例子而非限制,圖27例示遠(yuǎn)程軟件組件2760為駐留在遠(yuǎn)程設(shè)備2750。將意識到,所示的網(wǎng)絡(luò)連接是示例性的,并且可使用計算機之間建立通信鏈接的其它裝置。
結(jié)論盡管已經(jīng)以專用于結(jié)構(gòu)的特征和/或方法行為的語言描述了本發(fā)明,但要理解,在所附權(quán)利要求書中定義的本發(fā)明不必限制于所述的特定特征或行為。相反,特定的特征和行為是作為實現(xiàn)所主張的本發(fā)明的示例性形式而被揭示的。
權(quán)利要求
1.一種方法,其特征在于,包括請求要從源設(shè)備通過網(wǎng)絡(luò)流至客戶設(shè)備的數(shù)據(jù);以及根據(jù)所述請求解析一分布式拓?fù)浣Y(jié)構(gòu),其中所述分布式拓?fù)浣Y(jié)構(gòu)引用多個軟件組件,當(dāng)執(zhí)行所述軟件組件時滿足所述請求;以及所述多個軟件組件中的至少一個可在下列每個設(shè)備上執(zhí)行所述源設(shè)備;以及所述客戶設(shè)備。
2.如權(quán)利要求1所述的方法,其特征在于,所述解析的步驟還包括發(fā)現(xiàn)所述客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;發(fā)現(xiàn)所述源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力;以及從兩者所述的能力得到所述分布式拓?fù)浣Y(jié)構(gòu)。
3.如權(quán)利要求1所述的方法,其特征在于,所述分布式拓?fù)浣Y(jié)構(gòu)是從由下列分布式拓?fù)浣Y(jié)構(gòu)組成的組中選擇的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu);遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu);以及第三方分布式拓?fù)浣Y(jié)構(gòu)。
4.如權(quán)利要求1所述的方法,其特征在于,還包括根據(jù)所述分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),其中所述分布式軟件基礎(chǔ)結(jié)構(gòu)包括所述多個軟件組件。
5.如權(quán)利要求1所述的方法,其特征在于,還包括根據(jù)優(yōu)化的分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),使得所述分布式軟件基礎(chǔ)結(jié)構(gòu)配置為,在數(shù)據(jù)被流化之前不用所述源設(shè)備呈現(xiàn)所述數(shù)據(jù)的情況下,將數(shù)據(jù)從所述源設(shè)備流至所述客戶設(shè)備。
6.如權(quán)利要求1所述的方法,其特征在于所述請求還請求將數(shù)據(jù)從一附加的源設(shè)備流至所述客戶設(shè)備;以及所述解析的步驟解析所述分布式拓?fù)浣Y(jié)構(gòu),使得所述多個軟件組件在被執(zhí)行時,滿足分別將數(shù)據(jù)從所述源設(shè)備與所述附加的源設(shè)備流至所述客戶設(shè)備的請求。
7.如權(quán)利要求1所述的方法,其特征在于所述請求還請求將數(shù)據(jù)從所述源設(shè)備流至一附加的客戶設(shè)備;以及所述解析的步驟解析所述分布式拓?fù)浣Y(jié)構(gòu),使得所述多個軟件組件在被執(zhí)行時,滿足將數(shù)據(jù)從所述源設(shè)備流至所述客戶設(shè)備與所述附加的客戶設(shè)備的每一個的請求。
8.如權(quán)利要求1所述的方法,其特征在于,所述分布式軟件基礎(chǔ)結(jié)構(gòu)包括一分布式媒體會話,所述分布式媒體會話提供用于控制的聯(lián)合機制,由此所述至少一個可在所述源設(shè)備上執(zhí)行的軟件組件可由所述分布式媒體會話控制;以及所述至少一個可在所述客戶設(shè)備上執(zhí)行的軟件組件可由所述分布式媒體會話控制。
9.如權(quán)利要求1所述的方法,其特征在于,所述解析的步驟是在沒有用戶介入的情況下在從由下列設(shè)備組成的組中選擇的一設(shè)備上執(zhí)行的所述源設(shè)備;所述客戶設(shè)備;以及第三方設(shè)備。
10.包括計算機可執(zhí)行指令的一個或多個計算機可讀介質(zhì),當(dāng)所述指令被執(zhí)行時,完成如權(quán)利要求1所述的方法。
11.一種方法,其特征在于,包括接收將數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)流至客戶設(shè)備的請求;以及解析分布式拓?fù)浣Y(jié)構(gòu),所述分布式拓?fù)浣Y(jié)構(gòu)引用滿足所述請求的軟件組件,其中所述分布式拓?fù)浣Y(jié)構(gòu)是根據(jù)下列能力解析的所述客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;以及所述源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力;以及根據(jù)所述分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),所述分布式軟件基礎(chǔ)結(jié)構(gòu)包括所述被引用的軟件組件,其中所述軟件組件中的至少一個可在下列設(shè)備的每一個上執(zhí)行所述源設(shè)備;以及所述客戶設(shè)備。
12.如權(quán)利要求11所述的方法,其特征在于,所述分布式拓?fù)浣Y(jié)構(gòu)是從由下列分布式拓?fù)浣Y(jié)構(gòu)組成的組中選擇的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu);遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu);以及第三方分布式拓?fù)浣Y(jié)構(gòu)。
13.如權(quán)利要求11所述的方法,其特征在于,所述解析的步驟還包括發(fā)現(xiàn)所述客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;發(fā)現(xiàn)所述源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力;以及從所述兩者的能力得到所述分布式拓?fù)浣Y(jié)構(gòu),其中所述分布式拓?fù)浣Y(jié)構(gòu)引用所述軟件組件。
14.如權(quán)利要求11所述的方法,其特征在于,所述建立的步驟還包括,根據(jù)優(yōu)化的分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),使得所述分布式軟件基礎(chǔ)結(jié)構(gòu)配置為,在數(shù)據(jù)被流化之前不用所述源設(shè)備呈現(xiàn)所述數(shù)據(jù)的情況下,將數(shù)據(jù)從所述源設(shè)備流至所述客戶設(shè)備。
15.如權(quán)利要求11所述的方法,其特征在于,所述分布式拓?fù)浣Y(jié)構(gòu)引用分布式媒體會話,所述分布式媒體會話為聯(lián)合機制提供控制,使得所述至少一個可在所述源設(shè)備上執(zhí)行的軟件組件可由所述分布式媒體會話控制;以及所述至少一個可在所述客戶設(shè)備上執(zhí)行的軟件組件可由所述分布式媒體會話控制。
16.如權(quán)利要求11所述的方法,其特征在于,所述接收和解析的步驟在沒有用戶介入的情況下在從由下列設(shè)備組成的組中選擇的一設(shè)備上執(zhí)行所述源設(shè)備;所述客戶設(shè)備;以及第三方設(shè)備。
17.包括計算機可執(zhí)行指令的一個或多個計算機可讀介質(zhì),所述指令在被執(zhí)行時,執(zhí)行如在權(quán)利要求11所述的方法。
18.一種方法,其特征在于,包括發(fā)現(xiàn)客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;發(fā)現(xiàn)源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力;以及從兩者所述的能力得到分布式拓?fù)浣Y(jié)構(gòu),其中所述分布式拓?fù)浣Y(jié)構(gòu)引用多個軟件組件來滿足所述請求;以及由所述分布式拓?fù)浣Y(jié)構(gòu)引用的軟件組件中的至少一個可在下列設(shè)備的每一個上執(zhí)行所述源設(shè)備;以及所述客戶設(shè)備。
19.如權(quán)利要求18所述的方法,其特征在于,所述分布式拓?fù)浣Y(jié)構(gòu)是從由下列分布式拓?fù)浣Y(jié)構(gòu)組成的組中選擇的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu);遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu);以及第三方分布式拓?fù)浣Y(jié)構(gòu)。
20.如權(quán)利要求18所述的方法,其特征在于,還包括根據(jù)所述分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),所述分布式軟件基礎(chǔ)結(jié)構(gòu)包括所述的軟件組件。
21.如權(quán)利要求18所述的方法,其特征在于所述發(fā)現(xiàn)所述客戶設(shè)備的能力的步驟還包括,檢查所述客戶設(shè)備以找到呈現(xiàn)數(shù)據(jù)流的軟件組件;以及所述發(fā)現(xiàn)源設(shè)備的能力的步驟還包括檢查所述源設(shè)備以找到流化數(shù)據(jù)的軟件組件。
22.如權(quán)利要求18所述的方法,其特征在于,所述分別發(fā)現(xiàn)客戶和源設(shè)備的能力的步驟還包括查詢一查找表,所述查找表包括所述客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;以及所述源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力。
23.如權(quán)利要求18所述的方法,其特征在于,所述分布式拓?fù)浣Y(jié)構(gòu)引用分布式媒體會話,所述分布式媒體會話提供聯(lián)合機制用于控制,使得所述至少一個可在所述源設(shè)備上執(zhí)行的軟件組件可由所述分布式媒體會話控制;以及所述至少一個可在所述客戶設(shè)備上執(zhí)行的軟件組件可由所述分布式媒體會話控制。
24.如權(quán)利要求18所述的方法,其特征在于,所述接收和解析的步驟在沒有用戶介入的情況下在從由下列設(shè)備組成的組中選擇的一設(shè)備上執(zhí)行所述源設(shè)備;所述客戶設(shè)備;以及第三方設(shè)備。
25.包括計算機可執(zhí)行指令的一個或多個計算機可讀介質(zhì),所述指令在被執(zhí)行時,完成如權(quán)利要求18所述的方法。
26.一種方法,其特征在于,包括接收將數(shù)據(jù)從源設(shè)備流至客戶設(shè)備的請求;發(fā)現(xiàn)所述客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;發(fā)現(xiàn)所述源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力;從兩者所述的能力得到分布式拓?fù)浣Y(jié)構(gòu)以滿足所述請求,其中所述分布式拓?fù)浣Y(jié)構(gòu)引用多個軟件組件;根據(jù)所述分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),其中所述分布式軟件基礎(chǔ)結(jié)構(gòu)包括由所述分布式拓?fù)浣Y(jié)構(gòu)引用的所述軟件組件;通過網(wǎng)絡(luò)將數(shù)據(jù)從所述源設(shè)備流至所述客戶設(shè)備;由所述客戶設(shè)備呈現(xiàn)數(shù)據(jù)。
27.一個分布式媒體會話,其特征在于,包括具有指令的軟件組件,所述指令在被執(zhí)行時,指示下列行為解析分布式拓?fù)浣Y(jié)構(gòu),所述分布式拓?fù)浣Y(jié)構(gòu)引用多個軟件組件,所述軟件組件在被執(zhí)行時,滿足將數(shù)據(jù)從源設(shè)備流至客戶設(shè)備的請求;以及根據(jù)所述分布式拓?fù)浣Y(jié)構(gòu),建立分布式軟件基礎(chǔ)結(jié)構(gòu),所述分布式軟件基礎(chǔ)結(jié)構(gòu)包括所述軟件組件,其中所述軟件組件中的至少一個可在下列設(shè)備的每一個上執(zhí)行所述源設(shè)備;以及所述客戶設(shè)備。
28.如權(quán)利要求27所述的分布式媒體會話,其特征在于,所述解析的步驟還包括發(fā)現(xiàn)所述客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;發(fā)現(xiàn)所述源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力;以及從兩者所述的能力得到所述分布式拓?fù)浣Y(jié)構(gòu)。
29.如權(quán)利要求27所述的分布式媒體會話,其特征在于,所述分布式拓?fù)浣Y(jié)構(gòu)是從由下列分布式拓?fù)浣Y(jié)構(gòu)組成的組中選擇的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu);遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu);以及第三方分布式拓?fù)浣Y(jié)構(gòu)。
30.如權(quán)利要求27所述的分布式媒體會話,其特征在于,所述建立的步驟還包括提供至少一個由所述分布式拓?fù)浣Y(jié)構(gòu)引用的附加的軟件組件。
31.如權(quán)利要求27所述的分布式媒體會話,其特征在于,所述解析的步驟還包括優(yōu)化所述分布式拓?fù)浣Y(jié)構(gòu),使得根據(jù)所述分布式拓?fù)浣Y(jié)構(gòu)建立的分布式軟件基礎(chǔ)結(jié)構(gòu)配置為,在數(shù)據(jù)被流化之前所述源設(shè)備沒有呈現(xiàn)數(shù)據(jù)的情況下,將數(shù)據(jù)從所述源設(shè)備流至所述客戶設(shè)備。
32.包括計算機可執(zhí)行指令的計算機可讀介質(zhì),所述指令在被執(zhí)行時,指示計算設(shè)備完成下列行為在沒有用戶介入的情況下,解析分布式拓?fù)浣Y(jié)構(gòu),所述分布式拓?fù)浣Y(jié)構(gòu)引用多個軟件組件,所述軟件組件在被執(zhí)行時,通過網(wǎng)絡(luò)將數(shù)據(jù)從源設(shè)備流至客戶設(shè)備,其中所述多個軟件組件中的至少一個可在下列設(shè)備的每一個上執(zhí)行所述源設(shè)備;以及所述客戶設(shè)備。
33.如權(quán)利要求32所述的計算機可讀介質(zhì),其特征在于,所述解析的步驟還包括發(fā)現(xiàn)所述客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;發(fā)現(xiàn)所述源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力;以及從所述兩者的能力得到所述分布式拓?fù)浣Y(jié)構(gòu)。
34.如權(quán)利要求32所述的計算機可讀介質(zhì),其特征在于,所述分布式拓?fù)浣Y(jié)構(gòu)是從由下列分布式拓?fù)浣Y(jié)構(gòu)組成的組中選擇的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu);遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu);以及第三方分布式拓?fù)浣Y(jié)構(gòu)。
35.如權(quán)利要求32所述的計算機可讀介質(zhì),其特征在于,還包括根據(jù)所述分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu)。
36.如權(quán)利要求32所述的計算機可讀介質(zhì),其特征在于,還包括根據(jù)優(yōu)化的分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),使得所述分布式軟件基礎(chǔ)結(jié)構(gòu)配置為在數(shù)據(jù)被流化之前,在所述源設(shè)備沒有呈現(xiàn)數(shù)據(jù)的情況下,將數(shù)據(jù)從所述源設(shè)備流至所述客戶設(shè)備。
37.包括計算機可執(zhí)行指令的計算機可讀介質(zhì),所述指令在被執(zhí)行時,指示計算設(shè)備以完成下列行為發(fā)現(xiàn)客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;發(fā)現(xiàn)源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力;以及在沒有用戶介入的情況下,從兩者所述的能力得到分布式拓?fù)浣Y(jié)構(gòu),其中所述分布式拓?fù)浣Y(jié)構(gòu)引用多個軟件組件,所述軟件組件在被執(zhí)行時,將數(shù)據(jù)從所述源設(shè)備流至所述客戶設(shè)備;以及由所述分布式拓?fù)浣Y(jié)構(gòu)引用的多個軟件組件中的至少一個可在下列設(shè)備的每一個上執(zhí)行所述源設(shè)備;以及所述客戶設(shè)備。
38.如權(quán)利要求37所述的計算機可讀介質(zhì),其特征在于,還包括根據(jù)所述分布式拓?fù)浣Y(jié)構(gòu)建立包括所述多個軟件組件的分布式軟件基礎(chǔ)結(jié)構(gòu)。
39.一個系統(tǒng),其特征在于,包括用于流化要被呈現(xiàn)的數(shù)據(jù)的源設(shè)備;用于呈現(xiàn)數(shù)據(jù)流的客戶設(shè)備;分布式媒體會話,在被執(zhí)行時,使下列動作被完成解析分布式拓?fù)浣Y(jié)構(gòu),所述分布式拓?fù)浣Y(jié)構(gòu)引用多個軟件組件,所述多個軟件組件在被執(zhí)行時,將數(shù)據(jù)通過網(wǎng)絡(luò)從所述源設(shè)備流至所述客戶設(shè)備;以及根據(jù)所述分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),所述分布式軟件基礎(chǔ)結(jié)構(gòu)包括所述軟件組件,其中所述軟件組件中的至少一個可在下列設(shè)備上的每一個上執(zhí)行所述源設(shè)備;以及所述客戶設(shè)備。
40.如權(quán)利要求39所述的系統(tǒng),其特征在于,所述源設(shè)備是從由下列設(shè)備組成的組中選擇的在本地連接至源外圍設(shè)備的計算設(shè)備;以及用于流化要被呈現(xiàn)的數(shù)據(jù)的網(wǎng)絡(luò)現(xiàn)成的設(shè)備。
41.如權(quán)利要求39所述的系統(tǒng),其特征在于,所述客戶設(shè)備是從由下列設(shè)備組成的組中選擇的在本地連接至呈現(xiàn)設(shè)備的計算設(shè)備;以及適合于呈現(xiàn)數(shù)據(jù)的網(wǎng)絡(luò)現(xiàn)成的設(shè)備。
42.如權(quán)利要求39所述的系統(tǒng),其特征在于,所述解析的步驟還包括發(fā)現(xiàn)客戶設(shè)備呈現(xiàn)數(shù)據(jù)流的能力;發(fā)現(xiàn)源設(shè)備流化要被呈現(xiàn)的數(shù)據(jù)的能力;以及從兩者所述的能力得到分布式拓?fù)浣Y(jié)構(gòu)。
43.如權(quán)利要求39所述的系統(tǒng),其特征在于,所述分布式拓?fù)浣Y(jié)構(gòu)是從由下列分布式拓?fù)浣Y(jié)構(gòu)組成的組中選擇的遠(yuǎn)程匯點分布式拓?fù)浣Y(jié)構(gòu);遠(yuǎn)程源分布式拓?fù)浣Y(jié)構(gòu);以及第三方分布式拓?fù)浣Y(jié)構(gòu)。
44.如權(quán)利要求39所述的系統(tǒng),其特征在于,所述建立的步驟還包括提供至少一個由所述分布式拓?fù)浣Y(jié)構(gòu)引用的軟件組件。
45.如權(quán)利要求39所述的系統(tǒng),其特征在于,所述建立的步驟還包括根據(jù)優(yōu)化的分布式拓?fù)浣Y(jié)構(gòu)建立分布式軟件基礎(chǔ)結(jié)構(gòu),使得所述分布式軟件基礎(chǔ)結(jié)構(gòu)配置為,在數(shù)據(jù)被流化之前,在所述源設(shè)備沒有呈現(xiàn)數(shù)據(jù)的情況下,將數(shù)據(jù)從所述源設(shè)備流至所述客戶設(shè)備。
46.如權(quán)利要求39所述的系統(tǒng),其特征在于,所述分布式媒體會話的執(zhí)行是由下列設(shè)備之一完成的所述源設(shè)備;所述客戶設(shè)備;以及第三方設(shè)備。
47.一個系統(tǒng),其特征在于,包括包括軟件組件的源設(shè)備,所述軟件組件在由所述源設(shè)備執(zhí)行時,流化要被呈現(xiàn)的數(shù)據(jù);包括軟件組件的客戶設(shè)備,所述軟件組件在由所述客戶設(shè)備執(zhí)行時,呈現(xiàn)數(shù)據(jù)流;以及分布式媒體會話,在或者由所述源設(shè)備或者由所述客戶設(shè)備執(zhí)行時,提供聯(lián)合機制用于控制下列組件所述軟件組件,當(dāng)由所述源設(shè)備執(zhí)行時,流化要被呈現(xiàn)的數(shù)據(jù);以及所述軟件組件,在由所述客戶設(shè)備執(zhí)行時,呈現(xiàn)數(shù)據(jù)流。
48.如權(quán)利要求47所述的系統(tǒng),其特征在于,所述源設(shè)備是從由下列設(shè)備組成的組中選擇的在本地連接至源外圍設(shè)備的計算設(shè)備;以及用于流化要被呈現(xiàn)的數(shù)據(jù)的網(wǎng)絡(luò)現(xiàn)成的設(shè)備。
49.如權(quán)利要求47所述的系統(tǒng),其特征在于,所述客戶設(shè)備是從由下列設(shè)備組成的組中選擇的在本地連接至呈現(xiàn)設(shè)備的計算設(shè)備;以及適合于呈現(xiàn)數(shù)據(jù)的網(wǎng)絡(luò)現(xiàn)成的設(shè)備。
50.一個系統(tǒng),其特征在于,包括網(wǎng)絡(luò);源設(shè)備,配置為壓縮數(shù)據(jù);以及在沒有呈現(xiàn)所述壓縮的數(shù)據(jù)的情況下,流化所述壓縮的數(shù)據(jù);以及客戶設(shè)備,以通信方式通過網(wǎng)絡(luò)連接至所述源設(shè)備,其中所述客戶設(shè)備配置為通過所述網(wǎng)絡(luò)從所述源設(shè)備接收流化的數(shù)據(jù);解壓縮所述接收的數(shù)據(jù);以及呈現(xiàn)所述解壓縮的數(shù)據(jù)。
51.如權(quán)利要求50所述的系統(tǒng),其特征在于,所述源設(shè)備是從由下列設(shè)備組成的組中選擇的在本地連接至源外圍設(shè)備的計算設(shè)備;以及用于流化要被呈現(xiàn)的數(shù)據(jù)的網(wǎng)絡(luò)現(xiàn)成的設(shè)備。
52.如權(quán)利要求50所述的系統(tǒng),其特征在于,所述客戶設(shè)備是從由下列設(shè)備組成的組中選擇的在本地連接至呈現(xiàn)設(shè)備的計算設(shè)備;以及適合于呈現(xiàn)數(shù)據(jù)的網(wǎng)絡(luò)現(xiàn)成的設(shè)備。
全文摘要
描述了分布式媒體會話,當(dāng)它被執(zhí)行時,根據(jù)將數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)流至客戶設(shè)備的請求,解析分布式拓?fù)浣Y(jié)構(gòu)。分布式拓?fù)浣Y(jié)構(gòu)引用多個軟件組件,當(dāng)它們被執(zhí)行時,滿足請求。多個軟件組件中的至少一個可在源設(shè)備和客戶設(shè)備的每一個上執(zhí)行。
文檔編號G06F13/38GK1669015SQ03801870
公開日2005年9月14日 申請日期2003年8月20日 優(yōu)先權(quán)日2003年7月11日
發(fā)明者K·A·德比克, T·A·湯頓, T·D·百特博雷, N·Y·阿博杜, A·A·格里高羅維奇, D·A·沙瑟, R·Y·阿亞拉, E·P·奧力維拉 申請人:微軟公司