專利名稱:控制網(wǎng)絡(luò)環(huán)境內(nèi)部的自主媒體設(shè)備和管理設(shè)備之間的數(shù)據(jù)的流和格式的媒體管理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及管理網(wǎng)絡(luò)環(huán)境內(nèi)部的應(yīng)用和設(shè)備的領(lǐng)域。更具體來(lái)說(shuō),本發(fā)明涉及管理網(wǎng)絡(luò)環(huán)境內(nèi)部設(shè)備的操作和設(shè)備之間的通信的領(lǐng)域。
IEEE 1934-1995標(biāo)準(zhǔn)“高性能串行總線1934-1995標(biāo)準(zhǔn)”,是實(shí)現(xiàn)支持異步和等時(shí)格式數(shù)據(jù)傳送的廉價(jià)高速串行總線體系結(jié)構(gòu)的國(guó)際標(biāo)準(zhǔn)。等時(shí)數(shù)據(jù)傳送是使得重要實(shí)例之間的時(shí)間間隔在發(fā)送和接收應(yīng)用程序處有相同的持續(xù)時(shí)間的實(shí)時(shí)傳送。等時(shí)數(shù)據(jù)傳送的理想應(yīng)用的一個(gè)例子是從錄像機(jī)向電視機(jī)的數(shù)據(jù)傳送。錄像機(jī)記錄圖像和聲音并將數(shù)據(jù)保存在離散的字節(jié)片或數(shù)據(jù)包中。錄像機(jī)然后將每個(gè)代表在一個(gè)有限時(shí)段記錄的圖像和聲音的數(shù)據(jù)包,在該時(shí)段期間傳送,供電視機(jī)進(jìn)行顯示。IEEE 1934-1995標(biāo)準(zhǔn)的串行總線體系結(jié)構(gòu)提供多個(gè)用于應(yīng)用程序之間的等時(shí)數(shù)據(jù)傳送的通道。一個(gè)6位的通道號(hào)與數(shù)據(jù)一起被廣播,以保證由適當(dāng)?shù)膽?yīng)用程序接收。這允許多個(gè)應(yīng)用程序在總線結(jié)構(gòu)上同時(shí)地發(fā)送等時(shí)數(shù)據(jù)。異步傳送是傳統(tǒng)的數(shù)據(jù)傳送操作,異步傳送盡可能快地進(jìn)行,從一個(gè)源向一個(gè)目的地傳送一定數(shù)量的數(shù)據(jù)。
IEEE 1934-1995標(biāo)準(zhǔn)為互連數(shù)字設(shè)備提供了高速的串行總線,由此提供一個(gè)通用的I/O連接。IEEE 1934-1995標(biāo)準(zhǔn)為應(yīng)用程序定義了一種數(shù)字接口,應(yīng)用程序由此無(wú)需先將數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換成模擬數(shù)據(jù)后再在總線上發(fā)送。相應(yīng)地,接收的應(yīng)用程序?qū)目偩€接收數(shù)字?jǐn)?shù)據(jù)而不是模擬數(shù)據(jù),因此無(wú)需將模擬數(shù)據(jù)轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)。IEEE1934-1995標(biāo)準(zhǔn)所要求的電纜與其它用來(lái)連接這種設(shè)備較粗的電纜相比很細(xì)。在總線使用中時(shí)可以添加或者從IEEE 1394-1995總線去除設(shè)備。如果添加或去除了一個(gè)設(shè)備,總線于是將自動(dòng)地重新配置自己,從而在現(xiàn)有節(jié)點(diǎn)之間發(fā)送數(shù)據(jù)。節(jié)點(diǎn)被視為是總線結(jié)構(gòu)上具有獨(dú)有地址的邏輯實(shí)體。每個(gè)節(jié)點(diǎn)提供一個(gè)標(biāo)識(shí)ROM、一個(gè)標(biāo)準(zhǔn)化的控制寄存器集合和其自己的地址空間。
媒體設(shè)備配備有網(wǎng)絡(luò)接口,使它們能變成諸如IEEE 1934-1995串行總線網(wǎng)絡(luò)的網(wǎng)絡(luò)的一部分。在包含這種自主媒體設(shè)備的家庭音像網(wǎng)絡(luò)中,有可能將一個(gè)或多個(gè)這種設(shè)備在網(wǎng)絡(luò)中與個(gè)人電腦、機(jī)頂盒或其它包含微處理器的設(shè)備連接在一起。目前缺少可用的接口和控制應(yīng)用程序來(lái)有效地管理這種網(wǎng)絡(luò)配置內(nèi)的自主設(shè)備的交互作用和操作。所需要的是允許網(wǎng)絡(luò)配置內(nèi)的控制設(shè)備有效地控制該網(wǎng)絡(luò)內(nèi)設(shè)備之間的通信和設(shè)備的操作的接口。另外還需要允許網(wǎng)絡(luò)配置內(nèi)的控制設(shè)備使網(wǎng)絡(luò)內(nèi)用于完成任務(wù)和操作的可用設(shè)備的數(shù)量最大化的接口。
一種媒體管理器為網(wǎng)絡(luò)內(nèi)連接在一起的設(shè)備上的客戶應(yīng)用程序提供數(shù)據(jù)流管理和其它服務(wù)。這些設(shè)備最好在IEEE 1934-1995串行總線網(wǎng)絡(luò)內(nèi)連接在一起。為每個(gè)可用設(shè)備生成一個(gè)設(shè)備控制模塊,抽象出該設(shè)備的全部功能和要求,包括該設(shè)備的合適的控制協(xié)議、物理連接和連接能力。該媒體管理器也管理網(wǎng)絡(luò)上設(shè)備之間數(shù)據(jù)傳送的流和格式。用戶通過(guò)一個(gè)接口訪問(wèn)媒體管理器并輸入要用在網(wǎng)絡(luò)上連接在一起的設(shè)備完成的功能。如果該合適的設(shè)備是可用的,媒體管理器控制并管理所請(qǐng)求任務(wù)的完成。如果該合適的設(shè)備是不可用的,但是所要求的子設(shè)備在多個(gè)設(shè)備中是可用的,媒體管理器就由多個(gè)設(shè)備中的子設(shè)備構(gòu)成一個(gè)虛擬設(shè)備,以便完成所請(qǐng)求任務(wù)。向該合適的設(shè)備和子設(shè)備分配給一個(gè)任務(wù)后,媒體管理器判定是否需要將要發(fā)送的數(shù)據(jù)從一種格式轉(zhuǎn)換成另一種格式。需要的話,媒體管理器也將控制數(shù)據(jù)傳送操作期間的格式轉(zhuǎn)換。媒體管理器也為客戶應(yīng)用程序提供網(wǎng)絡(luò)枚舉和注冊(cè)表(registry)搜索功能,以尋找可用的服務(wù)、物理設(shè)備和虛擬設(shè)備。
圖1表示一個(gè)IEEE 1934-1995串行總線網(wǎng)絡(luò),包括攝像機(jī)、盒式磁帶錄像機(jī)、計(jì)算機(jī)、電視機(jī)和機(jī)頂盒;圖2表示在每個(gè)實(shí)現(xiàn)本發(fā)明的媒體管理器的設(shè)備中存在的硬件系統(tǒng)的框圖;圖3表示本發(fā)明的媒體管理器平臺(tái)的體系結(jié)構(gòu)的框圖;圖4表示本發(fā)明的媒體管理器平臺(tái)的體系結(jié)構(gòu)的詳細(xì)框圖;圖5表示用本發(fā)明的媒體管理器進(jìn)行的設(shè)置中和在兩個(gè)設(shè)備間進(jìn)行數(shù)據(jù)傳送時(shí)所涉及的步驟的流程圖6表示在啟動(dòng)期間客戶應(yīng)用程序遵循的流程圖。
本發(fā)明的媒體管理器為網(wǎng)絡(luò)內(nèi)的物理設(shè)備提供數(shù)據(jù)流管理和其它服務(wù)。物理設(shè)備是由銷售商以單獨(dú)部件的形式出售的產(chǎn)品。物理設(shè)備的例子包括電視、盒式磁帶錄像機(jī)、個(gè)人電腦、攝像機(jī)、CD-ROM播放機(jī)等等。其它許多例子也是人們熟知的,能從商業(yè)渠道獲得的。每個(gè)物理設(shè)備包括一些子設(shè)備。例如,市場(chǎng)銷售的典型的攝像機(jī)包括多個(gè)實(shí)現(xiàn)不同功能的子設(shè)備,諸如照相機(jī)和視頻播放機(jī)。
這些物理設(shè)備最好在IEEE 1394-1995串行總線網(wǎng)絡(luò)內(nèi)連接在一起。為每個(gè)可用的設(shè)備和子設(shè)備生成一個(gè)設(shè)備控制模塊(DCM)。每個(gè)DCM提供對(duì)每個(gè)設(shè)備的全部功能和要求的抽象,包括設(shè)備的合適的控制協(xié)議、物理連接和連接能力。媒體管理器也管理網(wǎng)絡(luò)上物理設(shè)備之間數(shù)據(jù)傳送操作的流和格式,包括在數(shù)據(jù)傳送操作期間將數(shù)據(jù)轉(zhuǎn)換成不同的格式。
用戶通過(guò)一個(gè)接口訪問(wèn)媒體管理器并輸入要用網(wǎng)絡(luò)上的物理設(shè)備完成的功能。如果合適的設(shè)備是可用的,沒(méi)有被另外使用,媒體管理器就控制并管理所請(qǐng)求任務(wù)的完成。如果合適的設(shè)備是不可用的,媒體管理器就由設(shè)備內(nèi)可用的子設(shè)備或部件創(chuàng)建一個(gè)虛擬設(shè)備,以完成所請(qǐng)求任務(wù)。向該合適的物理設(shè)備和/或子設(shè)備分配給一個(gè)任務(wù)后,媒體管理器判定是否需要將要發(fā)送的數(shù)據(jù)從源設(shè)備的格式轉(zhuǎn)換成接收設(shè)備的格式。如果需要轉(zhuǎn)換,媒體管理器也將在控制數(shù)據(jù)傳送操作的同時(shí)控制該操作。
圖1表示的示例性系統(tǒng)包括由IEEE 1934-1995電纜15、16和18連接在一起的包括攝像機(jī)10、盒式磁帶錄像機(jī)12、計(jì)算機(jī)14、機(jī)頂盒13和電視機(jī)11。IEEE 1934-1995電纜16連接攝像機(jī)10與盒式磁帶錄像機(jī)12,使攝像機(jī)10能向盒式磁帶錄像機(jī)12發(fā)送供記錄的數(shù)據(jù)。IEEE 1934-1995電纜18連接盒式磁帶錄像機(jī)12與計(jì)算機(jī)14,使盒式磁帶錄像機(jī)12能向計(jì)算機(jī)14發(fā)送供播放的數(shù)據(jù)。IEEE1934-1995電纜15連接機(jī)頂盒13與計(jì)算機(jī)14。機(jī)頂盒13也由電纜17連接到電視11。
圖1所示的這個(gè)配置只是示例性的。顯然,音像網(wǎng)絡(luò)可以包括許多不同的物理部件的組合。這種IEEE 1934-1995網(wǎng)絡(luò)內(nèi)的物理設(shè)備是自主設(shè)備,就是說(shuō),在如圖1中所示的,計(jì)算機(jī)是其中的一個(gè)設(shè)備的IEEE 1934-1995網(wǎng)絡(luò)中,計(jì)算機(jī)與其它設(shè)備之間沒(méi)有真正的“主-從”關(guān)系。在許多IEEE 1934-1995網(wǎng)絡(luò)配置中,甚至可能不出現(xiàn)計(jì)算機(jī)。即使在這種配置中,網(wǎng)絡(luò)內(nèi)的設(shè)備也完全能夠平等地彼此交互作用。
圖2表示在實(shí)現(xiàn)本發(fā)明的媒體管理器的管理設(shè)備中存在的硬件系統(tǒng)的框圖。在圖2中所示的硬件系統(tǒng)中,印刷電路板20與用戶接口30相連。印刷電路板20包括一個(gè)中央處理單元(CPU)22,它與系統(tǒng)存儲(chǔ)器24相連并通過(guò)系統(tǒng)總線28與I/O總線接口26相連。術(shù)語(yǔ)“CPU”的使用并非意味著這種系統(tǒng)必定是個(gè)通用計(jì)算電路。相反,這個(gè)電路可以用通用控制器或?qū)S秒娐穪?lái)實(shí)現(xiàn)。用戶接口30也連接到系統(tǒng)總線28。用戶接口30是特定于子系統(tǒng)的,但最好至少包括紅外遙控器和顯示器?;蛘?,用戶接口30也包括用于與該子系統(tǒng)的用戶通信的其它I/O設(shè)備。
本發(fā)明最佳實(shí)施例中,將媒體管理器包括在諸如電視或帶顯示器的計(jì)算機(jī)的設(shè)備中,以方便與用戶順利地交互。不過(guò)顯然,本發(fā)明的媒體管理器也能在包含提供與用戶的接口所必需的部件的任何其它功能設(shè)備上實(shí)現(xiàn)。為了實(shí)現(xiàn)本發(fā)明的媒體管理器,它在其中實(shí)現(xiàn)的每個(gè)部件將包括一個(gè)諸如圖2所示系統(tǒng)的硬件系統(tǒng)。這種設(shè)備內(nèi)的CPU 22被用來(lái)執(zhí)行應(yīng)用程序指令。本發(fā)明的媒體管理器于是被用來(lái)管理網(wǎng)絡(luò)內(nèi)的通信和操作。用戶通過(guò)在控制設(shè)備處提供的接口訪問(wèn)媒體管理器。通過(guò)這個(gè)接口,用戶能監(jiān)測(cè)網(wǎng)絡(luò)和網(wǎng)絡(luò)內(nèi)設(shè)備的操作和狀態(tài)。用戶也能通過(guò)這個(gè)接口控制設(shè)備和請(qǐng)求要完成的任務(wù)。這些任務(wù)的一個(gè)例子包括在VCR 12上播放錄制的磁帶和在電視11上顯示VCR 12的輸出。本發(fā)明的媒體管理器也管理數(shù)據(jù)傳送操作和在各個(gè)設(shè)備請(qǐng)求的任務(wù)。
圖3表示本發(fā)明的媒體管理器平臺(tái)的體系結(jié)構(gòu)的框圖。該體系結(jié)構(gòu)被劃分成所謂的上半部分32和下半部分34。下半部分34最好包括支持目前最通用的商業(yè)操作系統(tǒng)的IEEE 1394-1995總線接口和功能。上半部分32包括匯集基礎(chǔ)的IEEE 1394-1995總線支持軟件,并增加向客戶應(yīng)用程序、因而向用戶提供的許多特征功能和增強(qiáng)功能的部件。上半部分32包括方框46,它為更高級(jí)的IEEE 1394-1995總線支持軟件提供特定的設(shè)計(jì)和實(shí)現(xiàn);方框48,它包括并提供與各種客戶應(yīng)用程序的接口。下半部分34包括方框40、42和44,它們分別為最通用的各操作系統(tǒng)-包括Windows 95、Machintosh和AperiosTM-提供支持軟件。也為諸如OS9的任何通用操作系統(tǒng)提供支持軟件。下半部分34也包括方框38,它提供IEEE 1394-1995支持軟件的公用層;方框36,它提供與連接到控制設(shè)備的其它設(shè)備的實(shí)際的物理IEEE 1394-1995總線接口。
該媒體管理器平臺(tái)提供一個(gè)開(kāi)發(fā)的和靈活的體系結(jié)構(gòu),以便有效地在網(wǎng)絡(luò)配置中集成個(gè)人電腦和其它自主設(shè)備,并有效地管理這些設(shè)備之間的必要的數(shù)據(jù)傳送操作。該體系結(jié)構(gòu)的下半部分34已經(jīng)被設(shè)計(jì)得在最低各層支持基礎(chǔ)技術(shù),這使較高的層能支持更通用的模塊和功能描述。
圖4表示本發(fā)明的媒體管理器平臺(tái)的體系結(jié)構(gòu)的更詳細(xì)的框圖。多媒體或用戶級(jí)應(yīng)用程序48位于該體系結(jié)構(gòu)的頂部,并利用媒體管理器所提供的服務(wù)。多媒體應(yīng)用程序48是本發(fā)明的媒體管理器的一個(gè)應(yīng)用程序或其它客戶程序。媒體管理器內(nèi)的結(jié)構(gòu)部件管理協(xié)議的細(xì)節(jié)并向應(yīng)用程序48輸出一個(gè)更簡(jiǎn)單的程序設(shè)計(jì)接口。諸如定時(shí)、緩沖器管理、總線管理和通信協(xié)議等問(wèn)題被隱藏在這些簡(jiǎn)單功能接口的背后。應(yīng)用程序48也能訪問(wèn)該體系結(jié)構(gòu)的較低各層,并且當(dāng)然能夠與硬件適配層(HAL)和主機(jī)操作系統(tǒng)58直接通信。主機(jī)操作系統(tǒng)與網(wǎng)絡(luò)內(nèi)的其它設(shè)備-諸如照相機(jī)10、VCR 12和機(jī)頂盒13-相連。為說(shuō)明起見(jiàn),在這個(gè)配置中將媒體管理器在圖1的計(jì)算機(jī)系統(tǒng)14上實(shí)現(xiàn)。
在媒體管理器環(huán)境中,應(yīng)用接口對(duì)象50作為客戶應(yīng)用程序48的代理。提供一個(gè)應(yīng)用程序設(shè)計(jì)接口,使客戶應(yīng)用程序48能利用媒體管理器的具體服務(wù)。通過(guò)提供應(yīng)用程序48對(duì)本地信使(localmessenger)52的訪問(wèn)的應(yīng)用接口對(duì)象50,也提供對(duì)由某些程序設(shè)計(jì)接口提供的對(duì)更詳細(xì)的或特定的函數(shù)的訪問(wèn)。
本地信使52是在媒體管理器中集成的消息接發(fā)系統(tǒng)的一個(gè)部件。這個(gè)消息接發(fā)系統(tǒng)最好是AV信使(AV Messenger)系統(tǒng)。本地信使52是在給定節(jié)點(diǎn)上所有對(duì)象存在于單獨(dú)的執(zhí)行空間中時(shí)這些對(duì)象之間的通信的中樞。本質(zhì)上來(lái)說(shuō),本地信使52是由主機(jī)操作系統(tǒng)提供的應(yīng)用程序間通信模型。本地信使52是軟件模塊之間傳送的所有消息都要經(jīng)過(guò)的瓶頸。為了取得過(guò)程命令能力(scriptability),本地信使52在所有消息經(jīng)過(guò)時(shí)記錄它們,保存一個(gè)內(nèi)部數(shù)據(jù)庫(kù),內(nèi)容為所有的消息及它們的相關(guān)數(shù)據(jù),包括目的地的地址、參數(shù)、響應(yīng)的地址和(可選的)用于基于時(shí)間的腳本(scripting)的時(shí)間戳。
服務(wù)注冊(cè)表59包含一個(gè)對(duì)媒體管理器71內(nèi)的所有可尋址實(shí)體的引用。這個(gè)注冊(cè)表包含對(duì)應(yīng)每個(gè)設(shè)備控制模塊(DCM)56、DCM管理器54、數(shù)據(jù)流管理器64、事務(wù)管理器66、數(shù)據(jù)格式管理器68、總線管理器70和圖形管理器72的一個(gè)引用。服務(wù)注冊(cè)表59也含有任意數(shù)量的服務(wù)模塊,這將在下文作說(shuō)明。服務(wù)注冊(cè)表59也含有一個(gè)服務(wù)注冊(cè)表數(shù)據(jù)庫(kù),包含其節(jié)點(diǎn)的所有本地對(duì)象的引用,在特定時(shí)候也包含遠(yuǎn)程對(duì)象的引用。數(shù)據(jù)庫(kù)中的每個(gè)條目指向一個(gè)可尋址模塊并包括附屬的屬性-有些屬性是所有條目共有的,其它的是某類模塊專有的。共有屬性包括諸如模塊名和本地ID之類的事項(xiàng)。模塊專有屬性因模塊的類型而異。條目一旦存在于服務(wù)注冊(cè)表中,就能向該條目添加任意數(shù)量的屬性。當(dāng)客戶應(yīng)用程序檢索數(shù)據(jù)庫(kù)時(shí),應(yīng)用程序指定一個(gè)要匹配的屬性集合,服務(wù)注冊(cè)表59搜索數(shù)據(jù)庫(kù),尋找并返回與指定的條件吻合的所有條目。如果在搜索過(guò)程中找到多個(gè)候選項(xiàng),服務(wù)注冊(cè)表59將向客戶應(yīng)用程序48提供一個(gè)列表引用(list reference)??蛻魬?yīng)用程序然后就能檢查列表中的每個(gè)候選項(xiàng),確定感興趣的項(xiàng)目。
客戶應(yīng)用程序48可能有多個(gè)未完成(outstanding)檢索列表,每個(gè)代表一個(gè)不同的檢索條件的結(jié)果。當(dāng)客戶應(yīng)用程序48-因發(fā)生某個(gè)事件,諸如總線復(fù)位,此時(shí)可能有不同的設(shè)備可用-需要更新某個(gè)檢索列表時(shí),應(yīng)用程序48就在進(jìn)行檢索調(diào)用時(shí)將該列表索引傳送回服務(wù)注冊(cè)表59。這就使服務(wù)注冊(cè)表59能更新現(xiàn)有的列表對(duì)象,而不是清除掉它后再分配一個(gè)新的。
服務(wù)模塊60是能被調(diào)用去執(zhí)行某服務(wù)集合的模塊。服務(wù)模塊60為客戶應(yīng)用程序進(jìn)行各種服務(wù),包括諸如數(shù)據(jù)格式、傳輸和控制協(xié)議轉(zhuǎn)換等服務(wù)。
DCM管理器54負(fù)責(zé)處理其本地節(jié)點(diǎn)上的各DCM 56或者負(fù)責(zé)控制設(shè)備的網(wǎng)絡(luò)內(nèi)的設(shè)備。這些責(zé)任包括發(fā)現(xiàn)、實(shí)例化和清除某給定系統(tǒng)可用的所有可能的DCM候選的任務(wù)。此外,DCM管理器54還與遠(yuǎn)程節(jié)點(diǎn)上的其它DCM管理器(如果有的話)通信,以仲裁網(wǎng)絡(luò)范圍內(nèi)的設(shè)備和子設(shè)備的資源分配和管理。
DCM管理器54與基礎(chǔ)操作系統(tǒng)服務(wù)協(xié)作,以得到可用設(shè)備節(jié)點(diǎn)句柄(handle)的原始列表。DCM管理器54也提供一個(gè)應(yīng)用程序設(shè)計(jì)接口,讓客戶應(yīng)用程序48能發(fā)現(xiàn)網(wǎng)絡(luò)上設(shè)備內(nèi)的哪些(由各DCM 56代表的)子設(shè)備或其它服務(wù)是可用的。DCM 56代表一個(gè)可供DCM管理器54分配的設(shè)備或子設(shè)備。DCM 56可代表一個(gè)物理設(shè)備或者一個(gè)由不同物理設(shè)備的子部件(subpart)構(gòu)成的虛擬設(shè)備。其它可用的服務(wù)由各虛擬DCM 56代表,這將在下文作說(shuō)明??捎玫腄CM將是動(dòng)態(tài)的,視IEEE 1394-1995串行總線上可用的物理設(shè)備而定。
對(duì)于每個(gè)節(jié)點(diǎn)來(lái)說(shuō),DCM管理器54作出足夠的工作來(lái)確定它應(yīng)當(dāng)創(chuàng)建一個(gè)DCM 56。這是為將在本發(fā)明的媒體管理器的保護(hù)下被管理的所有的媒體相關(guān)設(shè)備作出的。對(duì)于每個(gè)媒體相關(guān)實(shí)體,DCM管理器54生成一個(gè)類屬的(generic)DCM 56。每個(gè)DCM 56于是有責(zé)任使自己更加特定于設(shè)備,如下文將要說(shuō)明的那樣。
也可以將制造商提供的特定于設(shè)備的DCM,添加到各DCM 56中。特定于設(shè)備的DCM可以有各種來(lái)源,包括設(shè)備內(nèi)的內(nèi)置只讀存儲(chǔ)器(ROM)或者其它存儲(chǔ)機(jī)構(gòu),諸如磁盤或磁帶的磁頭。特定于設(shè)備的DCM也可以從因特網(wǎng)網(wǎng)站或者通過(guò)直接的調(diào)制解調(diào)器連接下載-如果媒體管理器可利用這些功能,或者由軟盤或其它存儲(chǔ)介質(zhì)提供。美國(guó)專利申請(qǐng)“一種在設(shè)備內(nèi)添加自描述信息的方法和裝置”(申請(qǐng)?zhí)朹,申請(qǐng)日_)中詳細(xì)討論了這些備選方案,特此引用。
DCM管理器54負(fù)責(zé)在合適的時(shí)間添加或去除各DCM 56,并通知客戶程序已經(jīng)添加或去除了各DCM 56。DCM管理器54也負(fù)責(zé)在多個(gè)DCM 56之間協(xié)調(diào)復(fù)雜的服務(wù)。這些復(fù)雜的服務(wù),諸如復(fù)雜操作的命令排隊(duì),要求DCM管理器54與多個(gè)DCM 56協(xié)調(diào),以執(zhí)行這些操作。
各DCM 56通過(guò)輸出一個(gè)用于歸客戶應(yīng)用程序48負(fù)責(zé)的設(shè)備控制的標(biāo)準(zhǔn)化接口,提供一個(gè)設(shè)備模擬和控制協(xié)議抽象服務(wù)。由各DCM 56為設(shè)備控制提供的程序設(shè)計(jì)接口被劃分成公用的A/V控制和特定于設(shè)備的A/V控制。公用的A/V控制的命令對(duì)幾乎所有具有音像功能的設(shè)備是通用的。這里包括諸如播放、停止、快進(jìn)、倒退命令等基本傳送控制功能。特定于設(shè)備的A/V控制命令包括對(duì)給定類型的A/V設(shè)備通用的特征功能-諸如對(duì)于具有錄制功能的設(shè)備來(lái)說(shuō)的錄制命令,和特定于一定型號(hào)或某組設(shè)備的特征功能。特定于設(shè)備的功能的信息,既可以利用前文提及的自描述數(shù)據(jù)結(jié)構(gòu)在內(nèi)置于設(shè)備本身的特定于設(shè)備的DCM中設(shè)置,也可以以軟件升級(jí)的形式從因特網(wǎng)下載。
本發(fā)明的媒體管理器采用協(xié)議抽象(protocol abstraction),這意味著在各模塊與應(yīng)用程序之間的程序設(shè)計(jì)接口是相同的,不管設(shè)備的種類和所使用的控制協(xié)議如何。相應(yīng)地,應(yīng)用程序?qū)⒂门c它用來(lái)使視頻系統(tǒng)控制體系結(jié)構(gòu)的(VISCA-Video System ControlArchitecture)VCR進(jìn)行錄制的相同的源代碼和消息使IEEE 1394-1995 VCR進(jìn)行錄制。這對(duì)公用的A/V控制命令和特定于類型的控制命令來(lái)說(shuō)是正確的;真正特定于特定設(shè)備的特征功能將具有獨(dú)特的程序設(shè)計(jì)接口。
DCM 56是通過(guò)其將自描述數(shù)據(jù)從設(shè)備下載并表示給用戶的機(jī)構(gòu)。這要求DCM 56通過(guò)下載和匯集模塊并通過(guò)一個(gè)主應(yīng)用程序管理該信息向用戶的表示,分析該自描述信息。這使用戶能通過(guò)媒體管理器接口配置和控制網(wǎng)絡(luò)上設(shè)備的眾所周知的和特定于設(shè)備的功能。美國(guó)臨時(shí)專利申請(qǐng)“描述基于AV/C的設(shè)備的人類接口特征和功能的方法”(申請(qǐng)?zhí)?0/054,199,申請(qǐng)日1997年7月30日)中,描述了用戶接口數(shù)據(jù)的最佳表示和對(duì)設(shè)備的常規(guī)功能的利用,特此引用。
DCM管理器54和各DCM 56共同進(jìn)行對(duì)要執(zhí)行的AV命令的命令排隊(duì),使DCM 56能處理所有的設(shè)備特質(zhì),諸如為補(bǔ)償設(shè)備的機(jī)械延遲而進(jìn)行預(yù)轉(zhuǎn)動(dòng)的需要。DCM管理器54和各DCM 56與媒體管理器的其它部分協(xié)作,也能夠規(guī)定在特定時(shí)候和因某些條件而采取的設(shè)備控制動(dòng)作。
各DCM 56構(gòu)成了本發(fā)明的媒體管理器的總體體系結(jié)構(gòu)的大部分。DCN 56提供對(duì)構(gòu)成音像設(shè)備的所有各種技術(shù)項(xiàng)的抽象,諸如控制協(xié)議、物理連接和連接功能。DCM 56也能被創(chuàng)建得不是代表物理設(shè)備,而是代表包含一系列執(zhí)行特定AV操作的功能或服務(wù)的虛擬設(shè)備。
物理設(shè)備和子設(shè)備是可以單獨(dú)地使用的硬件。本發(fā)明的媒體管理器用可以使用的子設(shè)備支持虛擬設(shè)備向設(shè)備網(wǎng)絡(luò)增加增強(qiáng)的功能。虛擬設(shè)備是由各種可用的部件組合的邏輯實(shí)體。虛擬設(shè)備最好在因要完成一個(gè)被請(qǐng)求的任務(wù)而需要時(shí)自動(dòng)創(chuàng)建。另一方面,虛擬設(shè)備也因從DCM管理器請(qǐng)求服務(wù)而動(dòng)態(tài)地創(chuàng)建。
AV動(dòng)作是一個(gè)預(yù)先定義的動(dòng)作或活動(dòng),諸如“看電視”或“錄制電影”,或者是任何由用戶定義的涉及通過(guò)用各DCM 56操縱設(shè)備的動(dòng)作的集合??梢詫?dòng)作記錄下來(lái)供用戶以后再使用。AV動(dòng)作應(yīng)用程序接口是一種模擬方式,模擬用AV網(wǎng)絡(luò)中的設(shè)備執(zhí)行的普通動(dòng)作,諸如觀看錄象表演、觀看廣播表演、復(fù)制磁帶和聽(tīng)激光唱片。例如,如果VCR位于用戶家中樓上的臥室,當(dāng)前正在通過(guò)調(diào)諧器接收廣播并將其顯示在臥室中的電視上,則VCR內(nèi)部的走帶機(jī)構(gòu)不在使用。如果用戶然后希望想在樓下的電視上觀看錄象,本發(fā)明的媒體管理器將允許用戶把錄像帶放入臥室中的VCR的走帶機(jī)構(gòu)中,在樓下的電視上觀看該錄像帶中的錄象。代表該錄象的數(shù)據(jù)從樓上的VCR被通過(guò)IEEE 1394-1995網(wǎng)絡(luò)傳輸?shù)綐窍碌碾娨?。這個(gè)數(shù)據(jù)傳送操作由控制設(shè)備中的媒體管理器控制。類似的功能和虛擬設(shè)備是用調(diào)諧器、多路輸出選擇器、放大器、處理器以及其它部件和子設(shè)備實(shí)現(xiàn)的。于是,用戶用媒體管理器來(lái)控制設(shè)備的操作,能最大限度地利用網(wǎng)絡(luò)內(nèi)設(shè)備的功能和能力。
DCM管理器54不僅跟蹤記錄正在使用什么設(shè)備和子設(shè)備,也跟蹤記錄由當(dāng)前可用的部件和子部件能創(chuàng)建出什么虛擬設(shè)備。DCM管理器54為它所有的本地管理的設(shè)備和為它在其上執(zhí)行的主平臺(tái)上可用的軟件服務(wù)做這件事。DCM管理器54也為客戶應(yīng)用程序48提供程序設(shè)計(jì)接口,以查問(wèn)能在網(wǎng)絡(luò)上可用資源的基礎(chǔ)上創(chuàng)建的虛擬設(shè)備,以及當(dāng)前能執(zhí)行什么AV動(dòng)作。DCM管理器54也保證虛擬設(shè)備在合適的時(shí)候被添加到服務(wù)注冊(cè)表59。
為各DCM 56配備的應(yīng)用程序設(shè)計(jì)接口,被設(shè)計(jì)得使客戶應(yīng)用程序48能發(fā)現(xiàn)網(wǎng)絡(luò)中的設(shè)備內(nèi)有哪些特征功能和能力可用并因此按需與這些設(shè)備協(xié)作。這個(gè)程序設(shè)計(jì)接口包括設(shè)備控制、設(shè)備管理、連接管理和自描述設(shè)備實(shí)現(xiàn)的管理。每個(gè)DCM 56有責(zé)任通過(guò)確定它管理的設(shè)備的類型而從一般的DCM轉(zhuǎn)換成特定于設(shè)備或協(xié)議的DCM。這要求DCM檢查設(shè)備中可能出現(xiàn)的自描述設(shè)備數(shù)據(jù),分析能得到的任何其它信息。各DCM 56也有責(zé)任向其它設(shè)備和部件開(kāi)放被管理設(shè)備的自描述設(shè)備信息數(shù)據(jù),包括設(shè)備圖象(image)、產(chǎn)品名稱串和功能描述符。DCM 56進(jìn)一步負(fù)責(zé)為包括諸如命令排隊(duì)等復(fù)雜服務(wù)的設(shè)備控制提供一致的接口。執(zhí)行這些命令要求與用于設(shè)備控制協(xié)議應(yīng)用的主機(jī)操作系統(tǒng)協(xié)調(diào),包括通過(guò)協(xié)議驅(qū)動(dòng)器和操作系統(tǒng)提供的其它支持機(jī)構(gòu)封裝、發(fā)送、處理特定于協(xié)議的命令和應(yīng)答。
每個(gè)DCM 56也監(jiān)測(cè)它控制的設(shè)備并向必要的部件和應(yīng)用程序提供擴(kuò)展的通知支持(extended notification support)。設(shè)備所生成的所有正常事件,經(jīng)過(guò)DCM 56去往合適的設(shè)備,去往事件管理器62和去往所有有興趣的客戶應(yīng)用程序48。除了支持AV/C設(shè)備通知事件外,許多情形可能在AV/C協(xié)議中、在給定設(shè)備或其它控制協(xié)議中都得不到明確的支持。根據(jù)設(shè)備的能力及其控制和通信協(xié)議,有可能為這類不觸發(fā)實(shí)際事件消息的事件提供擴(kuò)展的支持。DCM 56觀察設(shè)備的這種活動(dòng),向事件管理器62投寄事件。
每個(gè)DCM 56也負(fù)責(zé)根據(jù)正在利用在它們控制下的設(shè)備的數(shù)據(jù)的外部實(shí)體和控制它們的實(shí)體管理自己。這包括支持資源共享和資源排隊(duì)。資源排隊(duì)允許某實(shí)體預(yù)定一個(gè)忙的DCM,在該DCM 56可用時(shí)供其使用。一旦該DCM 56可用,它將通知該實(shí)體。各DCM 56也最好在環(huán)境變化過(guò)程中繼續(xù)存在,使DCM和客戶程序支持在線和下線兩種狀態(tài)。這使各DCM 56能在設(shè)備恢復(fù)在線后立即重新建立設(shè)備的服務(wù)。
DCM 56最好在環(huán)境改變起見(jiàn)保持一個(gè)表現(xiàn))presence(以允許DCM和客戶支持在線和離線狀態(tài)兩者。這允許DCM56在返回在線時(shí)快速重建設(shè)備的服務(wù)。
在本發(fā)明的媒體管理器內(nèi),各DCM 56負(fù)責(zé)控制可用的設(shè)備和子設(shè)備。各DCM 56開(kāi)放通用的和特定于設(shè)備的設(shè)備能力。在本發(fā)明的另一種形式的實(shí)施例中,每個(gè)作為自描述數(shù)據(jù)一部分的設(shè)備有一個(gè)內(nèi)置的DCM,保證不管該設(shè)備置于何處,軟件都是可用的。在另一個(gè)補(bǔ)充實(shí)施例中,特定設(shè)備的DCM從設(shè)備制造商或因特網(wǎng)上第三方獲得,或者在諸如軟盤的媒體設(shè)備上提供。在以上每個(gè)實(shí)施例中,DCM 56一旦被下載,就能被存儲(chǔ)在各種位置。最好將DCM 56存儲(chǔ)在它控制的設(shè)備上。不過(guò),DCM 56也能被存儲(chǔ)在任何合適的位置。在本發(fā)明的一個(gè)補(bǔ)充實(shí)施例中,用主平臺(tái)支持的公用的字節(jié)或腳本代碼格式,諸如Java或Java腳本語(yǔ)言,編寫DCM 56。DCM 56然后被上載到主設(shè)備并在那里執(zhí)行。
事件管理器62將網(wǎng)絡(luò)內(nèi)所有事件通知廣播到所有感興趣的設(shè)備。事件管理器62作為其節(jié)點(diǎn)內(nèi)所有模塊的中心位置,登記在該節(jié)點(diǎn)中發(fā)生事件時(shí)接受通知。事件管理器62保存一個(gè)事件通知列表數(shù)據(jù)結(jié)構(gòu),列表的內(nèi)容是所定義的事件類型和所有已經(jīng)登記接受每個(gè)類型的事件的通知的設(shè)備的目的地標(biāo)識(shí)符。每個(gè)設(shè)備就其所感興趣的每個(gè)事件類型向事件管理器62登記,提供它們的客戶標(biāo)識(shí)符和一個(gè)要在廣播事件消息時(shí)傳送回它們的令牌值(token value)。事件是某種動(dòng)作的實(shí)際發(fā)生,來(lái)自設(shè)備的消息被發(fā)往多個(gè)目的地。
事件管理器62一般不生成事件,但是用媒體管理器接收并廣播由其它部件投寄的事件。在向遠(yuǎn)程節(jié)點(diǎn)中的客戶應(yīng)用程序48廣播事件時(shí),事件管理器62利用廣播管理器74。事件管理器62向各DCM 56通知正在通過(guò)控制軟件級(jí)的接口發(fā)生的什么用戶輸入,以便各DCM 56能適當(dāng)?shù)靥幚硭鼈兊奈锢碓O(shè)備。從遠(yuǎn)程位置控制其設(shè)備的DCM 56將需要接收指示什么用戶正在操作的消息并需要向其設(shè)備發(fā)送適當(dāng)?shù)南ⅰJ录芾砥?2借助消息接發(fā)系統(tǒng)和適當(dāng)定義的事件消息支持各遠(yuǎn)程DCM 56的執(zhí)行。適當(dāng)定義的事件消息包括設(shè)備管理消息(諸如在有設(shè)備添加到網(wǎng)絡(luò)時(shí)生成的新設(shè)備消息)和用戶交互消息。用戶交互消息支持如下述美國(guó)臨時(shí)專利申請(qǐng)中所描述的最佳圖形用戶接口。該專利申請(qǐng)名稱為“描述基于AV/C的設(shè)備的人類接口特征和功能的方法”(申請(qǐng)?zhí)?0/054,199,申請(qǐng)日1997年7月30日),特此引用。除了適當(dāng)定義的消息,任何兩個(gè)DCM或軟件模塊也能定義常規(guī)或?qū)S孟ⅰ?br>
圖形管理器72管理遠(yuǎn)程設(shè)備控件(contro1s)向控制應(yīng)用程序的嵌入并支持由各DCM 56對(duì)自描述信息數(shù)據(jù)的遠(yuǎn)程表示。圖形管理器72提供一個(gè)使各DCM 56能對(duì)屏幕空間判優(yōu)并在共享的圖形環(huán)境中工作的程序設(shè)計(jì)接口。這使得能通過(guò)控制軟件的接口向用戶表示并由用戶利用設(shè)備的特定功能。
數(shù)據(jù)格式管理器68管理在設(shè)備之間流動(dòng)的數(shù)據(jù)的格式。這包括能插入駐留的媒體管理器中,進(jìn)行作為緩沖器管理和數(shù)據(jù)格式過(guò)程的一部分的數(shù)據(jù)格式轉(zhuǎn)換。多數(shù)數(shù)據(jù)格式轉(zhuǎn)換是基于對(duì)數(shù)據(jù)的源和目的地的了解,透明地為客戶應(yīng)用程序進(jìn)行的。其它數(shù)據(jù)換要求客戶應(yīng)用程序48建立一個(gè)格式轉(zhuǎn)換過(guò)程。格式轉(zhuǎn)換最好是在數(shù)據(jù)正在傳送的同時(shí)直接進(jìn)行。另一方面,數(shù)據(jù)格式轉(zhuǎn)換也可以以數(shù)據(jù)傳送的預(yù)處理任務(wù)或后處理任務(wù)的形式進(jìn)行。給定平臺(tái)上可用的數(shù)據(jù)格式轉(zhuǎn)換服務(wù)被存儲(chǔ)在服務(wù)注冊(cè)表59中。除了用注冊(cè)表來(lái)尋找服務(wù),數(shù)據(jù)格式管理器68還負(fù)責(zé)實(shí)例化服務(wù)模塊并將它們登記在服務(wù)注冊(cè)表59中。
數(shù)據(jù)流管理器64與總線管理器70協(xié)作,提供輔助從源向目的地傳送數(shù)據(jù)的服務(wù),源與目的地之間可能包含許多節(jié)點(diǎn)。如果源和目的地設(shè)備使用不同的數(shù)據(jù)類型,或者隔著障礙,則數(shù)據(jù)流管理器64也將與數(shù)據(jù)格式管理器68和服務(wù)注冊(cè)表59協(xié)作,處理自動(dòng)的或所請(qǐng)求的數(shù)據(jù)轉(zhuǎn)換服務(wù)。在等時(shí)數(shù)據(jù)的傳送期間,數(shù)據(jù)流管理器64提供緩沖器分配和管理服務(wù)。緩沖器管理包括提供一致的通知機(jī)構(gòu)以通知客戶應(yīng)用程序何時(shí)數(shù)據(jù)可用于處理。在等時(shí)數(shù)據(jù)流入客戶應(yīng)用程序48的同時(shí),各種存儲(chǔ)緩沖器中都充滿數(shù)據(jù)。數(shù)據(jù)流管理器64通知客戶應(yīng)用程序每個(gè)緩沖器何時(shí)充滿,以便它能處理從該緩沖器獲取數(shù)據(jù)的過(guò)程。此外,因?yàn)橛袑?duì)捕獲的數(shù)據(jù)優(yōu)化的適當(dāng)服務(wù)模塊分區(qū)存儲(chǔ)器,為客戶應(yīng)用程序簡(jiǎn)化了緩沖器管理。這包括將所分配的存儲(chǔ)器為一個(gè)視頻數(shù)據(jù)流分割成掃描行或幀大小的段或者為原始音頻或MIDI數(shù)據(jù)分割成最佳的段大小。
圖5表示用本發(fā)明的媒體管理器設(shè)置兩個(gè)設(shè)備之間的數(shù)據(jù)傳送所涉及的步驟的流程圖。該方法始于方框100。當(dāng)客戶應(yīng)用程序48在兩個(gè)設(shè)備之間為數(shù)據(jù)傳送而建立連接時(shí),該應(yīng)用程序調(diào)用代表這兩個(gè)設(shè)備的兩個(gè)DCM 56的其中之一的EstablishExternalConnection()過(guò)程并將另一個(gè)DCM 56的moduleID值(模塊標(biāo)識(shí)符值)作為參數(shù)傳送。(方框102)被調(diào)用的DCM 56然后調(diào)用數(shù)據(jù)流管理器64去幫助進(jìn)行連接,并將源和目的地ModuleID作為參數(shù)傳送。(方框104)數(shù)據(jù)流管理器64然后分析源和目的地標(biāo)識(shí)符,確定它們處于不同的節(jié)點(diǎn)。(方框106)數(shù)據(jù)流管理器64然后從源節(jié)點(diǎn)的總線管理器7獲得網(wǎng)絡(luò)的拓?fù)鋱D。(方框108)數(shù)據(jù)流管理器64然后分析該拓?fù)鋱D,尋找目的地節(jié)點(diǎn),判斷它是否在拓?fù)鋱D上。(方框110)如果目的地節(jié)點(diǎn)在拓?fù)鋱D上,數(shù)據(jù)流管理器64就跳轉(zhuǎn)到方框118,去為數(shù)據(jù)傳送確定最佳路由。如果目的地節(jié)點(diǎn)不在拓?fù)鋱D上,數(shù)據(jù)流管理器64就從服務(wù)注冊(cè)表59獲得目的地DCM,以便確定該節(jié)點(diǎn)的傳輸協(xié)議。(方框112)數(shù)據(jù)流管理器64然后尋找合適的傳輸協(xié)議服務(wù)模塊并建立合適的轉(zhuǎn)換過(guò)程。(方框114)然后判斷是否需要橋接多個(gè)傳送。(方框116)如果需要橋接多個(gè)傳送,數(shù)據(jù)流管理器64就跳轉(zhuǎn)回方框114,獲得另一個(gè)傳送轉(zhuǎn)換模塊。否則,數(shù)據(jù)流管理器64就分析連接路徑,以確定數(shù)據(jù)流的最佳路線。(方框118)數(shù)據(jù)流管理器64然后分析源和目的地節(jié)點(diǎn)的輸入數(shù)據(jù)格式,以判定是否需要轉(zhuǎn)換。(方框120)如果需要轉(zhuǎn)換,數(shù)據(jù)流管理器64就根據(jù)輸入和輸出格式從服務(wù)注冊(cè)表59獲得合適的格式轉(zhuǎn)換程序并建立轉(zhuǎn)換過(guò)程。否則,數(shù)據(jù)流路由完成,這兩個(gè)設(shè)備之間的數(shù)據(jù)傳送可以開(kāi)始。(方框124)總線管理器70抽象基礎(chǔ)設(shè)備互連機(jī)構(gòu),提供一個(gè)描述總線體系結(jié)構(gòu)的功能的公用的程序設(shè)計(jì)接口集。在本發(fā)明最佳實(shí)施例中,設(shè)備由IEEE 1394-1995串行總線連接。對(duì)于IEEE 1394-1995串行總線網(wǎng)絡(luò)來(lái)說(shuō),總線管理器70駐留在由主機(jī)操作系統(tǒng)58提供的IEEE1394-1995 HAL層的頂上??偩€管理器70能幫助綜合直到本發(fā)明的媒體管理器的總線管理活動(dòng)??偩€管理器70以通過(guò)事件管理器62發(fā)出總線復(fù)位通知并提供關(guān)于環(huán)境如何改變的完整信息的方式,在發(fā)生總線復(fù)位活動(dòng)時(shí)通知客戶應(yīng)用程序48。接收該信息的客戶應(yīng)用程序被提供以關(guān)于可能已突然消失的設(shè)備和在總線復(fù)位后突然已變得可用的設(shè)備的信息。
總線管理器70也向客戶應(yīng)用程序48提供拓?fù)鋱D、速度圖和其它環(huán)境描述。拓?fù)鋱D中的信息被用來(lái)建立一個(gè)幫助用戶明白設(shè)備的連接和如何使用某些特征功能的用戶接口。該信息也被用來(lái)提供如上針對(duì)數(shù)據(jù)流管理器64所述的自動(dòng)數(shù)據(jù)路由選擇。速度圖被用來(lái)分析當(dāng)前的連接圖,為用戶通過(guò)重新安排設(shè)備的連接方式而提高網(wǎng)絡(luò)上設(shè)備的性能提供有益的提示??偩€管理器70也提供為兩個(gè)節(jié)點(diǎn)或節(jié)點(diǎn)內(nèi)的軟件模塊提供原子級(jí)(atomic-level)的數(shù)據(jù)通信服務(wù),以便以最佳格式或協(xié)議彼此發(fā)送字節(jié)。這個(gè)協(xié)議是在這些原子通信功能的頂部建立的。
在總線的總線復(fù)位或變化通知之后,總線管理器70向所有剛出現(xiàn)的設(shè)備分配新的ID值并確定哪些設(shè)備已經(jīng)消失??偩€管理器70然后調(diào)用DCM管理器54去為剛出現(xiàn)的設(shè)備創(chuàng)建新的DCM 56,并將,總線變化通知郵寄到事件管理器62,它將通知所有注冊(cè)客戶關(guān)于總線復(fù)位的消息。這個(gè)通知提供足夠的信息供客戶應(yīng)用程序48確定總線上哪些設(shè)備已經(jīng)改變。
傳送適配模塊78負(fù)責(zé)組裝消息數(shù)據(jù),然后將其傳遞給HAL供實(shí)際傳送到目的地設(shè)備。HAL位于本發(fā)明的媒體管理器的最低層。該層提供一個(gè)公用的程序設(shè)計(jì)接口,向上連接諸如各DCM 56的客戶(clients)和任何其它需要與其通信的實(shí)體。傳送適配模塊78使用如上所述的總線管理器70的原子消息接發(fā)功能。
如上所述,各DCM 56通過(guò)輸出用于歸客戶應(yīng)用程序48負(fù)責(zé)的設(shè)備控制的標(biāo)準(zhǔn)化接口,提供一個(gè)協(xié)議抽象服務(wù)。由各DCM 56為設(shè)備控制提供的程序設(shè)計(jì)接口被劃分成公用的音像控制級(jí)和特定于設(shè)備的音像控制級(jí)。公用的音像控制級(jí)為包括基本傳送控制功能的公用命令,諸如播放、停止、快進(jìn)、倒退命令,提供一個(gè)接口。特定于設(shè)備的控制級(jí)提供一個(gè)接口用于包括對(duì)給定類型的設(shè)備通用的特征功能-諸如對(duì)于具有錄制功能的設(shè)備來(lái)說(shuō)的錄制命令,和特定于一定型號(hào)或某組設(shè)備的特征功能。各DCM 56所提供的協(xié)議抽象服務(wù)保證各模塊與應(yīng)用程序48之間的程序設(shè)計(jì)接口總是相同的,不管使用的什么種類的設(shè)備和控制協(xié)議。這個(gè)特點(diǎn)使得應(yīng)用程序和用戶能有很大的靈活性。各DCM 56也提供一個(gè)用戶輸入事件抽象模型,使得客戶應(yīng)用程序能在用戶與圖形用戶接口元件交互時(shí)顯示圖形用戶接口元件并向DCM 56發(fā)送標(biāo)準(zhǔn)用戶事件消息,正如上文提及的美國(guó)臨時(shí)專利申請(qǐng)(申請(qǐng)?zhí)?0/054,199)中所描述的那樣。
本發(fā)明的數(shù)據(jù)流管理器提供數(shù)據(jù)流管理和其它服務(wù)。媒體管理器作為主機(jī)操作系統(tǒng)48的擴(kuò)展,向媒體管理器平臺(tái)的其它部件以及向客戶應(yīng)用程序48提供各種服務(wù)。媒體管理器管理并組織各DCM 56。媒體管理器發(fā)現(xiàn)并初始化適合于現(xiàn)存應(yīng)用程序的DCM 56,同時(shí)去除不需要的DCM 56。在系統(tǒng)每次啟動(dòng)時(shí),或者當(dāng)例如因IEEE 1394-1995復(fù)位,系統(tǒng)可能變化的任何時(shí)候時(shí),媒體管理器遵循特定的順序。媒體管理器也提供一個(gè)圍繞主機(jī)操作系統(tǒng)上使用的特定動(dòng)態(tài)鏈接庫(kù)解決方案的包裝(wrapper)。這使得能在給定的操作系統(tǒng)58上用最佳動(dòng)態(tài)鏈接庫(kù)來(lái)實(shí)現(xiàn)模塊,與此同時(shí)對(duì)外部應(yīng)用程序仍然保持一個(gè)一致的接口。
媒體管理器也負(fù)責(zé)管理網(wǎng)絡(luò)上設(shè)備之間數(shù)據(jù)傳送操作的流和格式。在管理數(shù)據(jù)流時(shí),媒體管理器將以獨(dú)立于正在使用的操作系統(tǒng)的方式分配和管理適當(dāng)?shù)木彌_器。
媒體管理器也提供IEEE 1394-1995總線環(huán)境的高級(jí)協(xié)議管理。為了全面支持動(dòng)態(tài)的設(shè)備動(dòng)作,正如至用戶級(jí)的熱閉塞(hot pluggingup),應(yīng)用程序和設(shè)備需要知道對(duì)IEEE 1394-1995總線環(huán)境的改變。媒體管理器負(fù)責(zé)通過(guò)總線管理器70和事件管理器62,以發(fā)出總線復(fù)位通知和提供關(guān)于環(huán)境已經(jīng)如何變化的完整信息的方式,通知應(yīng)用程序和設(shè)備在IEEE 1394-1995總線上已經(jīng)發(fā)生了總線復(fù)位活動(dòng)。媒體管理器也通過(guò)總線管理器70向應(yīng)用程序和設(shè)備提供拓?fù)鋱D和其它環(huán)境描述。拓?fù)鋱D描述IEEE 1394-1995網(wǎng)絡(luò)內(nèi)設(shè)備之間的連接。從拓?fù)鋱D導(dǎo)出的信息被用來(lái)建立一個(gè)幫助用戶了解設(shè)備之間如何連接和如何使用某些特征功能的人界面。
應(yīng)用程序服務(wù)模塊60提供一個(gè)在主機(jī)操作系統(tǒng)58和應(yīng)用程序48之間的服務(wù)層,以便為應(yīng)用程序提供獨(dú)立于正被使用的操作系統(tǒng)的基本功能。該功能包括提供存儲(chǔ)器分配和比大多數(shù)操作系統(tǒng)中可用的基本功能更堅(jiān)固的處理例程,和提供設(shè)備配置和控制模塊-這些模塊是自包容的獨(dú)立模塊,被調(diào)用時(shí)提供所有的用戶接口和交互管理。
傳送適配模塊78提供一個(gè)連接設(shè)備控制模塊50和連接應(yīng)用程序48的公用程序設(shè)計(jì)接口,注意通過(guò)主機(jī)操作系統(tǒng)58提升協(xié)議功能。系統(tǒng)級(jí)接口塊50的內(nèi)部設(shè)計(jì)和實(shí)現(xiàn),利用所使用的特定主機(jī)操作系統(tǒng)的體系結(jié)構(gòu),以便實(shí)現(xiàn)應(yīng)用程序48可用的IEEE 1394-1995功能。
本發(fā)明的媒體管理器平臺(tái)包括各DCM 56、應(yīng)用程序服務(wù)模塊60和用于傳送適配模塊78所提供IEEE 1394-1995總線協(xié)議的系統(tǒng)級(jí)接口。在普通操作過(guò)程中,應(yīng)用程序48將與所有這些部件通信。在與DCM 56通信時(shí),程序48將使用單一的程序設(shè)計(jì)接口。在與應(yīng)用程序服務(wù)模塊60通信時(shí),程序48也將使用單一的程序設(shè)計(jì)接口。
圖3和4中表示的如上所述的客戶應(yīng)用程序48是一個(gè)就本發(fā)明的媒體管理器平臺(tái)的體系結(jié)構(gòu)而言存在于所有其它部件之上的實(shí)體。為了完成要求其完成的大部分任務(wù),應(yīng)用程序48將通過(guò)本地信使與各DCM 56和現(xiàn)有的各應(yīng)用程序服務(wù)模塊60通信。必要的時(shí)候,應(yīng)用程序48通過(guò)主機(jī)操作系統(tǒng)58使用該體系結(jié)構(gòu)的較低的各層。
當(dāng)客戶應(yīng)用程序48啟動(dòng)時(shí),客戶應(yīng)用程序48必須初始化并向媒體管理器登記??蛻魬?yīng)用程序48初始化媒體管理器是為了確信媒體管理器處于啟動(dòng)和運(yùn)行狀態(tài),準(zhǔn)備好服務(wù)應(yīng)用程序48??蛻魬?yīng)用程序48向媒體管理器登記是為了向媒體管理器提供為與應(yīng)用程序48交互而必需的所有信息,并向消息接發(fā)系統(tǒng)登記。應(yīng)用程序48在啟動(dòng)時(shí),一般要確信主機(jī)操作系統(tǒng)已經(jīng)被初始化,有最低限度的服務(wù)可用,有可用于運(yùn)行的必要的內(nèi)存空間。這些步驟是在應(yīng)用程序48初始化媒體管理器后由媒體管理器為應(yīng)用程序執(zhí)行的。
客戶應(yīng)用程序啟動(dòng)時(shí),遵循圖6的流程圖中所示的步驟。應(yīng)用程序48在步驟140啟動(dòng)。啟動(dòng)后,應(yīng)用程序48初始化媒體管理器。在本發(fā)明最佳實(shí)施例中,應(yīng)用程序通過(guò)下列調(diào)用初始化媒體管理器err=SMM_Initialize媒體管理器在初始化時(shí),將分配必要的內(nèi)存和系統(tǒng)服務(wù)來(lái)支持應(yīng)用程序48。
媒體管理器的初始化完成之后,應(yīng)用程序于是在步驟144向媒體管理器登記。這個(gè)登記步驟使應(yīng)用程序48能向媒體管理器提供媒體管理器為適當(dāng)?shù)刂С謶?yīng)用程序48而需要的特定信息。例如,應(yīng)用程序48必須提供一個(gè)回調(diào)例程的地址,該例程用于通知有關(guān)環(huán)境的重要事件,包括IEEE 1394-1995總線復(fù)位、異步事務(wù)處理完成和存儲(chǔ)緩沖器充滿一定數(shù)量等時(shí)數(shù)據(jù)時(shí)的觸發(fā)器。登記步驟由下列指令完成SonyErrorResultTypeSMM_RegisterClient(SMMClientIdentifierType*theClientID,SMMBusEventNotificationUPPclientBusEventNotificatinCallback,void*clientBusEventCallbackData);參數(shù)theClientID是媒體管理器為應(yīng)用程序創(chuàng)建的獨(dú)有標(biāo)識(shí)符。將來(lái)在與媒體管理器通信時(shí),例如當(dāng)要關(guān)閉并向媒體管理器注銷(unregistering)時(shí),要求應(yīng)用程序48將該標(biāo)識(shí)符傳遞回來(lái)。參數(shù)clientBusEventNotificatinCallback是個(gè)對(duì)應(yīng)用程序?qū)⒁獔?zhí)行的回調(diào)函數(shù)的適當(dāng)格式化的引用。如果應(yīng)用程序48不需要了解網(wǎng)絡(luò)環(huán)境可能發(fā)生的動(dòng)態(tài)變化,則不要求應(yīng)用程序48執(zhí)行這種回調(diào)函數(shù)。如果應(yīng)用程序48不執(zhí)行這個(gè)回調(diào)函數(shù),應(yīng)用程序?qū)樵搮?shù)傳遞一個(gè)NIL值。
參數(shù)clientBusEventCallbackData可以是應(yīng)用程序?qū)⒁诨卣{(diào)例程中要求使用的任何值。該值一般是個(gè)指向一個(gè)存儲(chǔ)塊的指針,當(dāng)媒體管理器調(diào)用回調(diào)例程時(shí),它將把該值傳遞回客戶應(yīng)用程序48,使應(yīng)用程序48能訪問(wèn)全局存儲(chǔ)器(global storage)或其它適當(dāng)?shù)臄?shù)據(jù)。
為了完成向媒體管理器登記的步驟,應(yīng)用程序48也必須用下列接口執(zhí)行通知回調(diào)函數(shù)pascal void(*SMMBusEventNotificationProcPtr)(void*clientData,SMMBusEventTypebusEventIndicator,SMMBusEventRecPtr busEventInfo);參數(shù)clientData是傳入到登記功能的clientBusEventCallbackData參數(shù)。參數(shù)busEventIndicator是枚舉數(shù)據(jù)類型的,它指出應(yīng)用程序被通知的是什么種類的事件。規(guī)定的事件包括執(zhí)行復(fù)位、何時(shí)有設(shè)備插入網(wǎng)絡(luò)或從網(wǎng)絡(luò)拔出、異步事務(wù)處理的完成以及指定緩沖器在等時(shí)數(shù)據(jù)傳送期間何時(shí)充滿。參數(shù)busEventInfo提供含有特定事件的相關(guān)信息的數(shù)據(jù)結(jié)構(gòu)。
在完成向媒體管理器登記的步驟之后,應(yīng)用程序48將在步驟146獲得可用的各DCM56。通過(guò)獲得可用的各DCM56,應(yīng)用程序48將知道在網(wǎng)絡(luò)內(nèi)連接的其它類型的設(shè)備。該步驟由一系列子步驟組成。用一個(gè)循環(huán)的回調(diào)模型作為向應(yīng)用程序48傳送數(shù)據(jù)的數(shù)據(jù)傳送方法。應(yīng)用程序48然后進(jìn)入一個(gè)循環(huán),重復(fù)的從媒體管理器請(qǐng)求關(guān)于下一個(gè)模塊的信息,直到?jīng)]有剩下的DCM。媒體管理器一個(gè)有必要信息的數(shù)據(jù)結(jié)構(gòu),通過(guò)回調(diào)函數(shù)將其傳送給應(yīng)用程序48。接收到關(guān)于每個(gè)特定DCM56的信息后,應(yīng)用程序48就復(fù)制其需要的信息。這個(gè)過(guò)程一直重復(fù)到所有可用的DCM56都已經(jīng)被應(yīng)用程序48接收為止。在本發(fā)明另一種形式的實(shí)施例中,客戶應(yīng)用程序查詢注冊(cè)表,請(qǐng)求處理每一個(gè)可用的DCM56。
應(yīng)用程序48為獲得可用的DCM56所必須執(zhí)行的最佳回調(diào)函數(shù)定義如下void DeviceInfoCallbzckRoutine(void*userData,SMMDeviceIndexType deviceIndex,SonyAvDeviceRecPtr deviceInfo)該回調(diào)函數(shù)的參數(shù)userData是媒體管理器與應(yīng)用程序48之間數(shù)據(jù)傳送的工具。應(yīng)用程序48將定義其自己的數(shù)據(jù)結(jié)構(gòu),為這些結(jié)構(gòu)的其中之一分配內(nèi)存并將該結(jié)構(gòu)的地址傳遞給媒體管理器。該地址然后被傳遞回這個(gè)回調(diào)函數(shù)中,使應(yīng)用程序48能為了向其中復(fù)制信息而使用該數(shù)據(jù)結(jié)構(gòu)。
該回調(diào)函數(shù)的參數(shù)deviceIndex是應(yīng)用程序48為獲得關(guān)于可用的DCM 56的信息而進(jìn)入的循環(huán)的下標(biāo)值。在回調(diào)函數(shù)中,該參數(shù)被傳遞回應(yīng)用程序48,以便應(yīng)用程序48將該參數(shù)與傳遞到回調(diào)函數(shù)中的其它信息一起保存起來(lái)。應(yīng)用程序48在查詢特定DCM 56而對(duì)媒體管理器進(jìn)行的其它調(diào)用中,該下標(biāo)值是有用的。此外,在有設(shè)備被從網(wǎng)絡(luò)拔出或拆接后向應(yīng)用程序48通知有設(shè)備消失時(shí),將使用該下標(biāo)值。應(yīng)用程序48將在其專用數(shù)據(jù)結(jié)構(gòu)中的專用域中為每個(gè)DCM 56存儲(chǔ)這個(gè)下標(biāo)值。
該回調(diào)函數(shù)的參數(shù)deviceInfo是一個(gè)指向標(biāo)簽為SonyAVDeviceRec的數(shù)據(jù)結(jié)構(gòu)的指針,媒體管理器在其中為應(yīng)用程序48的檢索存儲(chǔ)著各DCM 56。該數(shù)據(jù)結(jié)構(gòu)的格式,應(yīng)用程序48和媒體管理器都知道。一旦有DCM 56被存儲(chǔ)到這個(gè)數(shù)據(jù)結(jié)構(gòu)內(nèi),應(yīng)用程序48將從該數(shù)據(jù)結(jié)構(gòu)中把適當(dāng)?shù)男畔?fù)制到其自己的專用數(shù)據(jù)結(jié)構(gòu)中。數(shù)據(jù)結(jié)構(gòu)SonyAVDeviceRec在以下的表一中定義表一typedef struct SonyAVDeviceRecunsigned long deviceID; //SMMDeviceIDType?unsigned longbusGeneration;SONY_DeviceModuleRefType controlModuleReference;unsigned long reservedl;unsigned long reserved2;} SonyAVDeviceRec,* SonyAVDeviceRecPtr,** SonyAVDeviceRecHdl;參數(shù)deviceID是一個(gè)DCM 56的標(biāo)識(shí)符,相應(yīng)地是一個(gè)設(shè)備的標(biāo)識(shí)符。每當(dāng)應(yīng)用程序48要與一個(gè)DCM 56通信時(shí),或者當(dāng)應(yīng)用程序48向媒體管理器對(duì)特定設(shè)備請(qǐng)求服務(wù)時(shí),應(yīng)用程序48使用這個(gè)標(biāo)識(shí)符。
參數(shù)busGeneration是一個(gè)在每個(gè)總線復(fù)位動(dòng)作之后改變的值。在每個(gè)總線復(fù)位之后,當(dāng)設(shè)備被添加或去除時(shí),關(guān)于該總線和相連接的設(shè)備的某些信息將改變。IEEE 1394-1995總線每次復(fù)位時(shí),參數(shù)busGeneration的值都被更新。
參數(shù)contr0lModuleReference是一個(gè)對(duì)與指定設(shè)備相關(guān)聯(lián)的DCM 56的引用。當(dāng)應(yīng)用程序要求媒體管理器代表其與該模塊交易時(shí),該引用被使用。
應(yīng)用程序48然后將用下列函數(shù)調(diào)用請(qǐng)求媒體管理器生成一個(gè)可用DCM 56的列表和該列表內(nèi)模塊的數(shù)目SonyErrorResultType SMM_FindDeviceControlModules(SMMDeviceListRefType*theDeviceList,unsigned long deviceAttributes, short*numAVDevice)參數(shù)theDeviceList包括可用DCM 56的列表被存儲(chǔ)的位置的地址,是由媒體管理器生成并返回的。應(yīng)用程序?qū)⒙暶饕粋€(gè)這個(gè)類型的局部變量并將這個(gè)變量的地址傳遞給這個(gè)函數(shù)。
參數(shù)deviceAttributes包括應(yīng)當(dāng)被返回的、應(yīng)用程序48用來(lái)規(guī)定各DCM 56的類型的一組按位的標(biāo)志。例如,應(yīng)用程序48可能只希望連接與網(wǎng)絡(luò)連接的活動(dòng)的設(shè)備。當(dāng)規(guī)定了某些標(biāo)志值時(shí),媒體管理器將篩選該列表,只留下滿足條件的設(shè)備,然后將列表返回給應(yīng)用程序48。應(yīng)用程序48可規(guī)定該列表包含的是所有可標(biāo)識(shí)的設(shè)備;只有處于啟動(dòng)和運(yùn)行狀態(tài)的設(shè)備;只有被插入,但是電源開(kāi)關(guān)被關(guān)閉的設(shè)備;或只有空閑的(Snoozing)設(shè)備。
參數(shù)numAVDevice包括在向應(yīng)用程序48返回的列表中的DCM 56的數(shù)目。應(yīng)用程序48用這個(gè)數(shù)目作為獲得DCM 56的循環(huán)的上界。
應(yīng)用程序48準(zhǔn)備回調(diào)函數(shù)地址,然后進(jìn)入循環(huán),重復(fù)地調(diào)用媒體管理器,直到獲得了關(guān)于列表內(nèi)所有DCM 56的信息為止。在每經(jīng)歷一次循環(huán),應(yīng)用程序48就對(duì)下列函數(shù)作一次調(diào)用pascal SonyErrorResultType SMM_GetDeviceControlModuleInfo(SMMDeviceListRefTypetheDeviceList, SMMDeviceIndexType whichDevice, unsigned long reserved,SMMDeviceControlModuleIteratroUPP theDeviceListCallbackFunction,void*userData)參數(shù)theDeviceList是從函數(shù)調(diào)用FindAllDeviceModules()返回的列表引用。參數(shù)whichDevice指明應(yīng)用程序48正在請(qǐng)求的是關(guān)于哪些DCM 56的信息。參數(shù)theDeviceListCallbackFunction包括所準(zhǔn)備的回調(diào)函數(shù)地址。參數(shù)userData是一個(gè)對(duì)一個(gè)應(yīng)用程序定義的數(shù)據(jù)結(jié)構(gòu)的引用。這個(gè)引用在回調(diào)例程中被傳遞回應(yīng)用程序48,應(yīng)用程序48然后將把任何需要的信息從媒體管理器傳送到該數(shù)據(jù)結(jié)構(gòu)。
為獲得可用的DCM 56而進(jìn)行的步驟的最佳完整序列,在下面的表二列出表二SMMDeviceListRefType theDeviceList=NULL;if(nil!=theDeviceList)err=SMM_FindAllDeviceControlModules(&theDeviceList,kActiveDevices+kInactiveDevices,&gNumAVDevices);if(noErr==err){gAVDeviceList=NewHandle(O);//為媒體管理器準(zhǔn)備回調(diào)函數(shù)theDeviceInfoCallback=NewSMMDeviceControlModuleIteratorProc(DeviceInfoCalibackRoutine);if((njl!=theDeviceInfoCallback)&&(nil!=gAVDeviceList)){for(loop=O;loop<gNumAVDevices;loop++){err=SMM_GetDeviceControlModuleInfo(theDeviceList,loop,O,theDeviceInfoCallback.gAVDeviceList);}DisposeROlltineDescriptor(theDeviceInfoCallback);}elseerr=-1}void DeviceInfoCallbackRoutine(void*userData,SMMDeviceIndexTypedeviceindex,SonyAVDeviceRECPtrdeviceInfo){//將我關(guān)心的任何信息從deviceInfo數(shù)據(jù)結(jié)構(gòu)拷貝//至由userData引用的我的私有數(shù)據(jù)中(myPrivateRecordPtr)userData->deviceID=deviceinfo->deviceID;}應(yīng)用程序48獲得可用的各DCM 56后,應(yīng)用程序48然后將在步驟68獲得特定于設(shè)備的信息。由媒體管理器返回的DCM信息是系統(tǒng)級(jí)的信息,包括每個(gè)設(shè)備的獨(dú)有標(biāo)識(shí)符和特定于協(xié)議的信息-諸如IEEE 1394-1995設(shè)備的總線生成。為了獲得特定于設(shè)備的信息-諸如設(shè)備的狀態(tài)、描述性名字串和圖象,應(yīng)用程序48必須通過(guò)合適的DCM 56與該設(shè)備通信。通過(guò)完成圖6中所示的上述步驟,應(yīng)用程序48就將完成了其啟動(dòng)例程,處于做好運(yùn)行準(zhǔn)備的狀態(tài)。
應(yīng)用程序48在運(yùn)行期間,將處理包括接收控制輸入的用戶和系統(tǒng)級(jí)的事件和消息,以及來(lái)自其它過(guò)程、主機(jī)操作系統(tǒng)和媒體管理器的消息。
以上就特定的詳細(xì)實(shí)施例說(shuō)明了本發(fā)明,以便于理解本發(fā)明的構(gòu)成和操作的原理。本文中這種對(duì)特定實(shí)施例及其細(xì)節(jié)的引述不是要限制后附的權(quán)利要求書的范圍。對(duì)本領(lǐng)域的熟練人員來(lái)說(shuō),顯然可以對(duì)為說(shuō)明而選擇的實(shí)施例作出改動(dòng),而不偏離本發(fā)明的精神和范圍。特別地,對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō)顯而易見(jiàn)的是,盡管本發(fā)明最佳實(shí)施例用來(lái)管理在IEEE 1394-1995串行總線體系結(jié)構(gòu)中連接在一起的設(shè)備,本發(fā)明也可以實(shí)現(xiàn)用來(lái)管理其它總線結(jié)構(gòu)內(nèi)的設(shè)備。
權(quán)利要求
1.一種管理設(shè)備網(wǎng)絡(luò)的操作和設(shè)備網(wǎng)絡(luò)之間的通信以完成一個(gè)任務(wù)的方法,包含的步驟為a.確定為完成該任務(wù)所需的合適的設(shè)備和子設(shè)備,其中,如果沒(méi)有合適的設(shè)備可用來(lái)完成該任務(wù),由可用的子設(shè)備構(gòu)成虛擬設(shè)備;知b.指令該合適的設(shè)備和子設(shè)備完成該任務(wù)。
2.如權(quán)利要求1中所要求的方法,進(jìn)一步包含為網(wǎng)絡(luò)中每個(gè)設(shè)備保持一個(gè)控制模塊的步驟,其中,該控制模塊包括該設(shè)備和該設(shè)備內(nèi)任何子設(shè)備的功能,并且該控制模塊負(fù)責(zé)該設(shè)備的控制。
3.如權(quán)利要求2中所要求的方法,進(jìn)一步包含控制該合適的設(shè)備和子設(shè)備之間的數(shù)據(jù)流的步驟。
4.如權(quán)利要求3中所要求的方法,進(jìn)一步包含的步驟為a.獲得該網(wǎng)絡(luò)內(nèi)各設(shè)備的一個(gè)拓?fù)鋱D;和b.通過(guò)分析該拓?fù)鋱D為該數(shù)據(jù)流確定一個(gè)最佳路線。
5.如權(quán)利要求4中所要求的方法,進(jìn)一步包含必要時(shí)將在該合適的設(shè)備和子設(shè)備之間流動(dòng)的數(shù)據(jù)轉(zhuǎn)換成適當(dāng)格式的步驟。
6.如權(quán)利要求5中所要求的方法,進(jìn)一步包含提供一個(gè)與要通過(guò)其完成該任務(wù)的用戶相連的接口的步驟。
7.如權(quán)利要求6中所要求的方法,其中,該控制模塊向一個(gè)應(yīng)用程序提供接口數(shù)據(jù)并響應(yīng)來(lái)自該應(yīng)用程序的用戶事件。
8.如權(quán)利要求7中所要求的方法,其中,該網(wǎng)絡(luò)是IEEE 1394串行總線網(wǎng)絡(luò)。
9.如權(quán)利要求7中所要求的方法,其中,該控制模塊駐留在一個(gè)遠(yuǎn)程設(shè)備中,被下載到一個(gè)主設(shè)備供執(zhí)行。
10.如權(quán)利要求7中所要求的方法,其中,該控制模塊駐留在一個(gè)本地設(shè)備中,被從該本地設(shè)備內(nèi)的一個(gè)本機(jī)環(huán)境執(zhí)行。
11.如權(quán)利要求7中所要求的方法,其中,該控制模塊駐留在一個(gè)本地設(shè)備中,被上載到一個(gè)主設(shè)備供執(zhí)行。
12.一種用于控制設(shè)備網(wǎng)絡(luò)的操作和設(shè)備網(wǎng)絡(luò)之間的通信的裝置,包含a.一個(gè)用于與該網(wǎng)絡(luò)內(nèi)的設(shè)備通信的接口電路;和b.一個(gè)與該接口電路相連的控制電路,用于確定完成該任務(wù)所需的合適的設(shè)備和子設(shè)備和指令該合適的設(shè)備和子設(shè)備完成該任務(wù),其中,如果沒(méi)有合適的設(shè)備可用來(lái)完成該任務(wù),由可用的子設(shè)備構(gòu)成子設(shè)備。
13.如權(quán)利要求12中所要求的裝置,進(jìn)一步包含多個(gè)各代表該網(wǎng)絡(luò)中一個(gè)設(shè)備的控制模塊,其中,每個(gè)控制模塊包括一個(gè)對(duì)應(yīng)設(shè)備和該對(duì)應(yīng)設(shè)備內(nèi)任何子設(shè)備的功能,并且該控制模塊負(fù)責(zé)該設(shè)備的控制。
14.如權(quán)利要求13中所要求的裝置,進(jìn)一步包含一個(gè)連接到該控制電路以及該接口電路的總線管理器電路,用于獲得該網(wǎng)絡(luò)內(nèi)設(shè)備的一個(gè)拓?fù)鋱D和通過(guò)分析該拓?fù)鋱D為該數(shù)據(jù)流確定一個(gè)最佳路線。
15.如權(quán)利要求14中所要求的裝置,其中,該控制電路也在有必要進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí)將在該合適的設(shè)備和子設(shè)備之間流動(dòng)的數(shù)據(jù)轉(zhuǎn)換成適當(dāng)?shù)母袷健?br>
16.如權(quán)利要求15中所要求的裝置,其中,該網(wǎng)絡(luò)是IEEE 1394串行總線網(wǎng)絡(luò)。
17.一種管理設(shè)備網(wǎng)絡(luò)的操作和設(shè)備網(wǎng)絡(luò)之間的通信的方法,包含的步驟為a.為網(wǎng)絡(luò)中每個(gè)設(shè)備保持一個(gè)控制模塊,其中,該控制模塊包括該設(shè)備和該設(shè)備內(nèi)任何子設(shè)備的能力,并且該控制模塊負(fù)責(zé)該設(shè)備的控制;b.提供一個(gè)接口,用戶通過(guò)它請(qǐng)求一個(gè)要完成的任務(wù);c.通過(guò)搜索控制模塊來(lái)確定完成該任務(wù)所需的合適的設(shè)備和子設(shè)備;和d.通過(guò)指令合適的控制模塊向該合適的設(shè)備和子設(shè)備提供指令而完成該任務(wù)。
18.如權(quán)利要求17中所要求的方法,進(jìn)一步包含的步驟為a.確定該合適的設(shè)備和子設(shè)備當(dāng)前是否可用于完成該任務(wù);和b.如果該合適的設(shè)備和子設(shè)備當(dāng)前是不可用的,則由網(wǎng)絡(luò)內(nèi)設(shè)備的可用的子設(shè)備構(gòu)成虛擬設(shè)備完成該任務(wù)。
19.如權(quán)利要求18中所要求的方法,進(jìn)一步包含控制該合適的設(shè)備和子設(shè)備之間的數(shù)據(jù)流的步驟。
20.如權(quán)利要求19中所要求的方法,進(jìn)一步包含的步驟為a.獲得該網(wǎng)絡(luò)內(nèi)各設(shè)備的一個(gè)拓?fù)鋱D;和b.通過(guò)分析該拓?fù)鋱D為該數(shù)據(jù)流確定一個(gè)最佳路線。
21.如權(quán)利要求20中所要求的方法,進(jìn)一步包含的步驟為a.確定是否有必要轉(zhuǎn)換在該合適的設(shè)備和子設(shè)備之間流動(dòng)的數(shù)據(jù);和b.如果數(shù)據(jù)轉(zhuǎn)換有必要,則將在該合適的設(shè)備和子設(shè)備之間流動(dòng)的數(shù)據(jù)轉(zhuǎn)換成適當(dāng)?shù)母袷健?br>
22.如權(quán)利要求21中所要求的方法,其中,該網(wǎng)絡(luò)是IEEE 1394串行總線網(wǎng)絡(luò)。
23.一種管理設(shè)備網(wǎng)絡(luò)的操作和設(shè)備網(wǎng)絡(luò)之間的通信的裝置,包含a.多個(gè)各代表該網(wǎng)絡(luò)中一個(gè)設(shè)備的控制模塊,其中,每個(gè)控制模塊包括一個(gè)對(duì)應(yīng)設(shè)備和該對(duì)應(yīng)設(shè)備內(nèi)任何子設(shè)備的功能,并且該控制模塊負(fù)責(zé)該設(shè)備的控制。b.一個(gè)用于與用戶通信的接口,其中,要完成的任務(wù)是由用戶通過(guò)該接口請(qǐng)求的;c.一個(gè)與該多個(gè)控制模塊、與該網(wǎng)絡(luò)和與顯示器相連的控制電路,用于通過(guò)搜索控制模塊來(lái)確定完成該任務(wù)所需的合適的設(shè)備和子設(shè)備,并通過(guò)指令合適的控制模塊向該合適的設(shè)備和子設(shè)備提供指令而完成該任務(wù)。
24.如權(quán)利要求23中所要求的裝置,其中,該控制電路也確定該合適的設(shè)備和子設(shè)備當(dāng)前是否可用于完成該任務(wù),如果該合適的設(shè)備當(dāng)前是不可用的,則由網(wǎng)絡(luò)內(nèi)設(shè)備的可用的子設(shè)備構(gòu)成虛擬設(shè)備完成該任務(wù)。
25.如權(quán)利要求24中所要求的裝置,其中,該控制電路進(jìn)一步控制該網(wǎng)絡(luò)內(nèi)設(shè)備之間的數(shù)據(jù)流。
26.如權(quán)利要求25中所要求的裝置,進(jìn)一步包含一個(gè)與該控制電路相連的總線管理器電路,用于獲得該網(wǎng)絡(luò)內(nèi)各設(shè)備的一個(gè)拓?fù)鋱D和通過(guò)分析該拓?fù)鋱D為該數(shù)據(jù)流確定一個(gè)最佳路線。
27.如權(quán)利要求26中所要求的裝置,其中,該控制電路也在有必要進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí)將在該合適的設(shè)備和子設(shè)備之間流動(dòng)的數(shù)據(jù)轉(zhuǎn)換成適當(dāng)?shù)母袷健?br>
28.如權(quán)利要求27中所要求的裝置,其中,該控制電路執(zhí)行使用戶能利用該網(wǎng)絡(luò)中設(shè)備的基本功能的預(yù)定動(dòng)作。
29.如權(quán)利要求28中所要求的裝置,其中,該控制電路也監(jiān)測(cè)和記錄用戶行動(dòng)并創(chuàng)建常規(guī)的、用戶定義的動(dòng)作。
30.如權(quán)利要求27中所要求的方法,其中,該網(wǎng)絡(luò)是IEEE 1394串行總線網(wǎng)絡(luò)。
全文摘要
一種媒體管理器為網(wǎng)絡(luò)內(nèi)連接在一起的設(shè)備上的客戶應(yīng)用程序提供數(shù)據(jù)流管理和其它服務(wù)。這些設(shè)備最好在IEEE 1934—1995串行總線網(wǎng)絡(luò)內(nèi)連接在一起。為每個(gè)可用設(shè)備生成一個(gè)設(shè)備控制模塊,抽象出該設(shè)備的全部功能和要求,包括該設(shè)備的合適的控制協(xié)議、物理連接和連接功能。該媒體管理器也管理網(wǎng)絡(luò)上設(shè)備之間數(shù)據(jù)傳送的流和格式。用戶通過(guò)一個(gè)接口訪問(wèn)媒體管理器并輸入要用在網(wǎng)絡(luò)上連接在一起的設(shè)備完成的功能。如果該合適的設(shè)備是可用的,媒體管理器控制并管理所請(qǐng)求任務(wù)的完成。如果該合適的設(shè)備是不可用的,但是所要求的子設(shè)備在多個(gè)設(shè)備中是可用的,媒體管理器就由多個(gè)設(shè)備中的子設(shè)備構(gòu)成一個(gè)虛擬設(shè)備,以便完成所請(qǐng)求任務(wù)。向該合適的設(shè)備和子設(shè)備分配給一個(gè)任務(wù)后,媒體管理器判定是否需要將要發(fā)送的數(shù)據(jù)從一種格式轉(zhuǎn)換成另一種格式。需要的話,媒體管理器也將在數(shù)據(jù)傳送操作期間控制格式轉(zhuǎn)換。媒體管理器也為客戶應(yīng)用程序提供網(wǎng)絡(luò)枚舉和注冊(cè)表搜索功能,以尋找可用的服務(wù)、物理設(shè)備和虛擬設(shè)備。
文檔編號(hào)H04L29/08GK1299546SQ99805779
公開(kāi)日2001年6月13日 申請(qǐng)日期1999年4月29日 優(yōu)先權(quán)日1998年5月8日
發(fā)明者H·A·魯?shù)绿乜? B·費(fèi)爾曼, S·D·斯姆耶爾斯 申請(qǐng)人:索尼電子有限公司