專利名稱:網(wǎng)絡(luò)中的裝置對(duì)裝置命令與控制方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)系統(tǒng)領(lǐng)域,更具體地說,涉及連接有多個(gè)裝置的家庭網(wǎng)絡(luò)(home network)。
背景技術(shù):
一般來說,網(wǎng)絡(luò)包括通信鏈路以及具有與該通信鏈路連接的通信能力(capability)的各種裝置。這些裝置包括計(jì)算機(jī)、外圍設(shè)備、路由器、存儲(chǔ)器以及帶有處理器和通信接口的家用產(chǎn)品。網(wǎng)絡(luò)的一個(gè)實(shí)例就是用于家庭的家庭網(wǎng)絡(luò),在這種網(wǎng)絡(luò)中互連各種裝置。普通的家庭可能擁有包含計(jì)算機(jī)以及一般家里都找得到的家庭裝置在內(nèi)的幾種家庭裝置。因而,術(shù)語“裝置”一般包括邏輯裝置或其他具有交換數(shù)據(jù)功能和能力的器具,它不僅能包括全部家庭裝置還包括通用的計(jì)算機(jī)。家庭裝置包括如下電子裝置安全系統(tǒng)、影院系統(tǒng)、TVS、VCR、立體聲音響系統(tǒng),以及也被稱為數(shù)字衛(wèi)星服務(wù)(DSS)的直接廣播衛(wèi)星服務(wù)(DBSS)系統(tǒng)、自動(dòng)噴水系統(tǒng)、照明系統(tǒng)、微波用具、洗碗機(jī)、烤箱/爐、洗衣機(jī)/干衣機(jī)以及汽車中的處理系統(tǒng)。
一般來說,家庭裝置用于實(shí)現(xiàn)改善主人的生活方式以及提高其生活標(biāo)準(zhǔn)的任務(wù)。例如,洗碗機(jī)實(shí)現(xiàn)洗臟碗的任務(wù),從而將主人從必須用手洗碗中解脫出來。VCR可以記錄電視機(jī)目,以使得主人能夠在以后的某個(gè)時(shí)間觀看特別的電視機(jī)目。安全系統(tǒng)保護(hù)主人的財(cái)產(chǎn),并能降低主人對(duì)非法闖入的恐懼。
象家庭影院這樣的家庭裝置一般使用單一公用控制器,即遙控器進(jìn)行控制。這種單一公用控制器允許主人采用單一接口控制和命令幾種不同的家庭裝置。因此,很多制造商已經(jīng)開發(fā)出用于從單一接口控制和命令他們的裝置的控制器。與使用遙控器命令和控制家庭裝置有關(guān)的一個(gè)缺點(diǎn)是提供用于控制和命令每一種家庭裝置的靜態(tài)和命令邏輯。因此,特殊的遙控器只能控制和命令包括有必要的控制和命令邏輯的那些家庭裝置。
在傳統(tǒng)網(wǎng)絡(luò)系統(tǒng)中,用戶使用遙控器或裝置控制面板提供命令。一旦用戶停止操作,則在該網(wǎng)絡(luò)中不存在任何為自動(dòng)操作提供命令的控制器單元或裝置。例如,家庭可能擁有調(diào)諧器裝置和不帶調(diào)諧器的VCR。在用對(duì)VCR編程進(jìn)行延時(shí)記錄之后,需要一種讓VCR在以后自動(dòng)通過網(wǎng)絡(luò)定位調(diào)諧器并控制該調(diào)諧器為該VCR提供用于記錄的視頻信息的機(jī)制。因而在用戶先控制和命令第一組裝置后,傳統(tǒng)系統(tǒng)不提供必要時(shí)第一組裝置自動(dòng)與該網(wǎng)絡(luò)中的第二組裝置通信,以便在不需要第二組裝置的直接用戶控制和命令的情況下完成任務(wù)的機(jī)制。
因此需要一種方法和系統(tǒng),其在家庭網(wǎng)絡(luò)中提供裝置的動(dòng)態(tài)及中央控制和命令。也需要這樣的方法和系統(tǒng),提供用戶先控制第一組裝置以便相互通信,以及必要時(shí)第一組裝置與該網(wǎng)絡(luò)中的第二組裝置自動(dòng)通信,以便在不需要第二組裝置的直接用戶控制和命令的情況下完成任務(wù)的能力。還需要這樣的方法和系統(tǒng),提供各種網(wǎng)絡(luò)裝置自動(dòng)命令和控制其它各種網(wǎng)絡(luò)裝置的能力。
發(fā)明概述本發(fā)明滿足以上這些需要。在一個(gè)實(shí)施例中,本發(fā)明提供通過以下方式經(jīng)由網(wǎng)絡(luò)在多個(gè)裝置中進(jìn)行命令和控制的方法和系統(tǒng)將第一裝置連接到該網(wǎng)絡(luò);將第二裝置連接到該網(wǎng)絡(luò),其中第二裝置存儲(chǔ)結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由其它網(wǎng)絡(luò)裝置命令和控制該第二裝置;通過網(wǎng)絡(luò)將應(yīng)用程序接口描述數(shù)據(jù)提供給第一裝置;以及利用應(yīng)用程序接口描述數(shù)據(jù),將來自第一裝置的控制和命令通過網(wǎng)絡(luò)發(fā)送到第二裝置,以控制第二裝置的操作。
至少一部分應(yīng)用程序接口描述數(shù)據(jù)可以傳輸?shù)降谝谎b置使用,或第一裝置可以經(jīng)由網(wǎng)絡(luò)查詢其它裝置中的應(yīng)用程序接口描述數(shù)據(jù)。此外,應(yīng)用程序接口描述數(shù)據(jù)可以存儲(chǔ)在第一裝置存取的數(shù)據(jù)庫(kù)中。該應(yīng)用程序接口描述數(shù)據(jù)可以包括第一家庭裝置控制第二家庭裝置的操作的遠(yuǎn)程程序調(diào)用信息。此外,該應(yīng)用程序接口描述數(shù)據(jù)包括識(shí)別第二裝置的能力的能力數(shù)據(jù)。用于應(yīng)用程序接口描述數(shù)據(jù)的結(jié)構(gòu)化格式可以包括XML格式。
最好,在網(wǎng)上連接多個(gè)裝置,并且每個(gè)裝置包含結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由一個(gè)或多個(gè)連接到網(wǎng)絡(luò)上的其它裝置命令和控制該裝置。此時(shí),兩個(gè)或兩個(gè)以上裝置的應(yīng)用程序接口描述數(shù)據(jù)可以經(jīng)由該網(wǎng)絡(luò)提供到第一裝置,因此,第一裝置可以利用相應(yīng)于兩個(gè)或兩個(gè)以上裝置的每一個(gè)的應(yīng)用程序接口描述數(shù)據(jù),將來自第一裝置的控制和命令數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到第二裝置,以控制它們的操作。
另一方面,本發(fā)明提供通過以下方式經(jīng)由家庭網(wǎng)絡(luò)進(jìn)行服務(wù)的方法和系統(tǒng)將客戶機(jī)裝置連接到家庭網(wǎng)絡(luò),其中該客戶機(jī)裝置能夠顯示用戶接口數(shù)據(jù);將第一家庭裝置連接到網(wǎng)絡(luò),其中第一家庭裝置包含有選定格式的用戶接口數(shù)據(jù),用于定義至少第一家庭裝置的用戶命令和控制的用戶接口;將第二家庭裝置連接到網(wǎng)絡(luò),其中第二家庭裝置包含有結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于第二家庭裝置的裝置命令和控制;在客戶機(jī)裝置上接收第一家庭裝置的用戶接口數(shù)據(jù);在客戶機(jī)裝置上顯示由第一家庭裝置的用戶接口數(shù)據(jù)定義的用戶接口;響應(yīng)于與顯示在客戶機(jī)裝置上的用戶接口的用戶交互,接受用戶的輸入;以及基于該用戶輸入將來自該客戶機(jī)裝置的控制和命令數(shù)據(jù)發(fā)送到第一家庭裝置,使得第一和第二家庭裝置利用應(yīng)用程序接口描述數(shù)據(jù)相互通信,以進(jìn)行服務(wù)。
因而,用戶可以從在客戶機(jī)裝置上顯示的用戶接口中選擇第一和第二家庭裝置。此外,第一家庭裝置可以通過利用基于經(jīng)由客戶機(jī)裝置用戶輸入到第一家庭裝置的應(yīng)用程序接口描述數(shù)據(jù),向第二家庭裝置發(fā)送控制和命令信息,來控制第二家庭裝置。該應(yīng)用程序接口描述數(shù)據(jù)可以包括關(guān)于第二家庭裝置的能力數(shù)據(jù),并且該第一家庭裝置可以在第二家庭裝置的應(yīng)用程序接口描述數(shù)據(jù)內(nèi)查詢?cè)撃芰?shù)據(jù),以及更新第一家庭裝置中的用戶接口數(shù)據(jù),以允許用戶經(jīng)由顯示在客戶機(jī)裝置上的第一家庭裝置的用戶接口來命令和控制第二家庭裝置。
兩個(gè)或兩個(gè)以上家庭裝置可以連接到網(wǎng)上,每個(gè)家庭裝置都存儲(chǔ)結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由連接到網(wǎng)絡(luò)的其它家庭裝置命令和控制該家庭裝置。該兩個(gè)或兩個(gè)以上家庭裝置的每個(gè)中的應(yīng)用程序接口描述數(shù)據(jù)可以包括各家庭裝置的能力數(shù)據(jù)。在這種情況下,第一家庭裝置可以在該兩個(gè)或兩個(gè)以上家庭裝置的應(yīng)用程序接口數(shù)據(jù)內(nèi)查詢?cè)撃芰?shù)據(jù),以及更新第一家庭裝置中的用戶接口數(shù)據(jù)、以允許用戶經(jīng)由顯示在客戶機(jī)裝置上的第一家庭裝置的用戶接口來命令和控制該兩個(gè)或兩個(gè)以上家庭裝置。
附圖簡(jiǎn)述根據(jù)下列的描述、所附權(quán)利要求和附圖,本發(fā)明的這些以及其它特性、特征和優(yōu)點(diǎn)將更加容易被理解,其中
圖1是根據(jù)本發(fā)明的一個(gè)方面的網(wǎng)絡(luò)的實(shí)施例的方框圖圖2是示例性裝置控制和通信情況(scenario)中的圖1的方框圖;圖3是根據(jù)本發(fā)明的、包括多個(gè)客戶機(jī)和服務(wù)器的一個(gè)示例性家庭網(wǎng)絡(luò)系統(tǒng)的方框圖;圖4是圖3的一個(gè)客戶機(jī)和一個(gè)服務(wù)器的示例性實(shí)施例的方框圖;圖5是客戶機(jī)裝置的示例性實(shí)施例;圖6是服務(wù)器(serverdevice)的示例性實(shí)施例;圖7是兩個(gè)能夠相互通信并且控制的聯(lián)網(wǎng)服務(wù)器的方框圖;圖8是在一個(gè)網(wǎng)絡(luò)中包括一個(gè)信源(source)服務(wù)器、一個(gè)信宿(sink)服務(wù)器以及客戶機(jī)裝置在內(nèi)的示例性音頻/視頻(A/V)模型的示例性結(jié)構(gòu)方框圖;圖9是另外一個(gè)示例性音頻/視頻(A/V)模型;圖10是一個(gè)網(wǎng)絡(luò)裝置的示例性能力數(shù)據(jù)表;圖11是一個(gè)網(wǎng)絡(luò)裝置的示例性屬性數(shù)據(jù)表;圖12是用于在聯(lián)網(wǎng)裝置之間產(chǎn)生命令消息的構(gòu)件塊的示例性配置;圖13是用于產(chǎn)生命令消息的圖12的構(gòu)件塊的另一個(gè)示例性配置;圖14是聯(lián)網(wǎng)的客戶機(jī)裝置和服務(wù)器之間的交互的三個(gè)實(shí)例;圖15是關(guān)于聯(lián)網(wǎng)的裝置接口的API擴(kuò)展的定義的示例性方框圖;圖16是關(guān)于接入另一個(gè)服務(wù)器的接口描述文檔的一個(gè)服務(wù)器應(yīng)用程序的示例性結(jié)構(gòu);圖17是控制服務(wù)器和受控服務(wù)器之間的另一個(gè)示例性裝置間(inter-device)控制體系機(jī)構(gòu);圖18是在聯(lián)網(wǎng)的裝置之間的API級(jí)的通信棧中提供Web(網(wǎng)絡(luò))標(biāo)準(zhǔn)公共中間件層的XML協(xié)議的實(shí)施例;圖19是服務(wù)器對(duì)服務(wù)器命令和控制體系結(jié)構(gòu)的另一個(gè)實(shí)施例;圖20是裝置接口庫(kù)和用于家庭網(wǎng)絡(luò)的家用電器定義數(shù)據(jù)庫(kù)之間的關(guān)系;圖21是裝置接口定義的實(shí)施例的分層形式;圖22是圖21的裝置接口定義中的層的示例;圖23是發(fā)送器和接收器之間的命令傳輸和解釋過程;以及圖24是根據(jù)本發(fā)明的一個(gè)方面、提供翻譯服務(wù)的信息包類型和格式的部分清單的示例性表。
發(fā)明的詳細(xì)描述一方面,本發(fā)明在諸如家庭網(wǎng)絡(luò)的網(wǎng)絡(luò)中提供裝置間通信。由于家庭裝置越來越智能化并且可以共享信息,所以裝置間通信允許用戶互連網(wǎng)絡(luò)中的裝置,以利用共享那些裝置的能力的信息。因而,裝置間通信在給予用戶全面便捷地使用聯(lián)網(wǎng)的裝置方面起了主要作用。
參看圖1,在本發(fā)明的實(shí)施例中,網(wǎng)絡(luò)10包括至少一個(gè)客戶機(jī)裝置12和經(jīng)由通信鏈路16互連的至少一個(gè)服務(wù)器14。該通信鏈路16可以包括提供用于在各種被連接的家庭裝置之間發(fā)送和接收數(shù)據(jù)的物理層(介質(zhì))的1394串行總線。該1394串行總線既支持時(shí)分多路復(fù)用音頻/視頻(A/V)流,也支持標(biāo)準(zhǔn)的IP(互聯(lián)網(wǎng)協(xié)議)通信。在某些實(shí)施例中,家庭網(wǎng)絡(luò)將IP網(wǎng)絡(luò)層作為家庭網(wǎng)絡(luò)的通信層使用。但可使用其它通信協(xié)議為家庭網(wǎng)絡(luò)提供通信。
每個(gè)客戶機(jī)裝置12可以與網(wǎng)絡(luò)10中的一個(gè)或多個(gè)服務(wù)器14通信。此外,每個(gè)服務(wù)器14也可以與網(wǎng)絡(luò)10中的一個(gè)或多個(gè)其它的服務(wù)器14以及一個(gè)或多個(gè)客戶機(jī)裝置12通信。每個(gè)客戶機(jī)裝置12可以包括含有象用于接收用戶輸入的鼠標(biāo)和鍵盤的輸入裝置的通信接口、以及用于為用戶提供控制用戶接口以便于用戶與聯(lián)網(wǎng)的裝置進(jìn)行交互的顯示器。該用戶接口可以包括一個(gè)圖形用戶界面(GUI)顯示器18,用于給用戶提供信息。參考圖2,正如這里限定的那樣,每個(gè)服務(wù)器14除提供控制用戶接口外,還為用戶提供一種服務(wù),而每個(gè)客戶機(jī)裝置12為用戶提供與網(wǎng)絡(luò)10交互的控制用戶接口。因而,只有客戶機(jī)裝置12直接與用戶交互,服務(wù)器14僅僅與客戶機(jī)裝置12和其它服務(wù)器14交互。示例性服務(wù)可以包括MPEG的發(fā)布(sourcing)/匯集(sinking)以及顯示服務(wù)。
圖3是包括多個(gè)客戶機(jī)裝置12和多個(gè)服務(wù)器14的一個(gè)示例性家庭網(wǎng)絡(luò)的框圖。每個(gè)服務(wù)器14可以包括作為網(wǎng)絡(luò)資源的硬件,用于給用戶提供服務(wù)。此外,每個(gè)服務(wù)器14可以存儲(chǔ)用于控制該服務(wù)器硬件的服務(wù)器或服務(wù)控制程序20,并且可以包括圖形控制對(duì)象(GCO)用戶接口描述22,作為用戶與服務(wù)器控制程序20交互的接口,如圖4所示。
為了控制的客戶機(jī)裝置12和被控制的服務(wù)器14之間的控制,客戶機(jī)裝置12,例如,通過在網(wǎng)絡(luò)上從服務(wù)器14傳輸GCO22到客戶機(jī)裝置12來接入服務(wù)器14的GCO22。然后客戶機(jī)裝置12使用被傳輸?shù)腉CO22為用戶創(chuàng)建控制用戶接口GUI18,以便于在該網(wǎng)絡(luò)上從客戶機(jī)裝置12與服務(wù)器14的服務(wù)器控制程序20通信。用戶從客戶機(jī)裝置12給至少服務(wù)器14的服務(wù)器控制程序20提供命令和控制。
在服務(wù)器自身中存儲(chǔ)的每個(gè)服務(wù)器14的GCO22可以降低帶有幾個(gè)服務(wù)器14的網(wǎng)絡(luò)中客戶機(jī)裝置12的處理和存儲(chǔ)要求。此外,在服務(wù)器14中的存儲(chǔ)GCO22可以允許每個(gè)服務(wù)器14提供自己的GUI外觀和感覺給用戶,而且也允許在不修改客戶機(jī)裝置12的前提下,修改或更新GCO22。
參考圖4,為了在客戶機(jī)裝置12和服務(wù)器14之間提供命令和控制,在一個(gè)實(shí)施例中包括一個(gè)呈現(xiàn)器(renderer)24,用于利用存儲(chǔ)在客戶機(jī)裝置12中、或在該網(wǎng)絡(luò)上被從所需的服務(wù)器14中傳輸?shù)娇蛻魴C(jī)裝置12的GCO22,顯示GUI18。例如,在初始裝置選擇階段,客戶機(jī)裝置12可以在該網(wǎng)絡(luò)上取回至少一個(gè)服務(wù)器14的GCO22,然后呈現(xiàn)器24利用該GCO22顯示GUI18,以控制服務(wù)器14。該GUI18最好針對(duì)服務(wù)器14進(jìn)行定制,并且最好能夠包括用于控制服務(wù)器14的內(nèi)置命令集。
此外,各服務(wù)器14的GCO22可以包括如下共同點(diǎn)(1)用于顯示GUI18的客戶機(jī)裝置呈現(xiàn)器24的共用GCO模型,(2)用于將GCO22從服務(wù)器14傳輸?shù)娇蛻魴C(jī)裝置12的公共通信協(xié)議,以及(3)用于從客戶機(jī)裝置12到服務(wù)器14的服務(wù)器控制程序20的GUI交互的公共通信協(xié)議,其中客戶機(jī)裝置12不需要被控制的特別服務(wù)器14的內(nèi)置知識(shí)(built-in knowledge)。
再參考圖4,服務(wù)器14可以包括一個(gè)后多個(gè)服務(wù)器控制程序20,以便控制用于提供服務(wù)的服務(wù)器硬件。來自服務(wù)器14的GCO22的GUI接口18為服務(wù)器控制程序20提供接口。該服務(wù)器14還可以包括在提供的請(qǐng)求服務(wù)時(shí)指示該服務(wù)器14和服務(wù)器硬件的控制狀態(tài)的控制狀態(tài)數(shù)據(jù)26。
例如,控制狀態(tài)數(shù)據(jù)26可以包括服務(wù)器14的GUI18中的控制信息狀態(tài),如VCR服務(wù)器中記錄動(dòng)作的定時(shí)器設(shè)置。為了服務(wù)器14的用戶控制,控制狀態(tài)數(shù)據(jù)26存儲(chǔ)在被控制的服務(wù)器14中,并在控制客戶機(jī)裝置12上通過服務(wù)器14的GUI18顯示給用戶。用于顯示服務(wù)器14的GUI18的控制客戶機(jī)裝置12不保持被控制的服務(wù)器14的控制狀態(tài)數(shù)據(jù)26的知識(shí)。
每個(gè)服務(wù)器14可以由一個(gè)或多個(gè)客戶機(jī)裝置12進(jìn)行控制。因而,存儲(chǔ)在服務(wù)器14中的控制狀態(tài)數(shù)據(jù)26包括在每個(gè)控制客戶機(jī)裝置12中服務(wù)器14的GUI18中的信息的狀態(tài)。例如,當(dāng)用戶采用第一客戶機(jī)裝置12控制服務(wù)器14時(shí),該用戶控制結(jié)束后,在第一客戶機(jī)裝置12上服務(wù)器14的GUI18中的信息也被服務(wù)器14保存在該服務(wù)器14的控制狀態(tài)數(shù)據(jù)26中。
另外,當(dāng)用戶在第一客戶機(jī)裝置12上與服務(wù)器14的GUI18進(jìn)行交互的同時(shí),將服務(wù)器14的控制狀態(tài)數(shù)據(jù)26用在客戶機(jī)裝置12上服務(wù)器14的GUI18中的信息進(jìn)行更新,并且在用戶控制結(jié)束后,控制狀態(tài)數(shù)據(jù)26保留在服務(wù)器14中。當(dāng)用戶采用第二客戶機(jī)裝置12控制服務(wù)器14時(shí),經(jīng)由在第二客戶機(jī)裝置12上服務(wù)器14的GUI18,使控制狀態(tài)數(shù)據(jù)26成為用戶進(jìn)一步的控制之用。用戶也可以在以后使用第一客戶機(jī)裝置12控制服務(wù)器14,因此經(jīng)由在第一客戶機(jī)裝置12上服務(wù)器14的GUI18,也能使控制狀態(tài)數(shù)據(jù)26成為用戶進(jìn)一步的控制之用。如下所述那樣,服務(wù)器14還可以包括時(shí)鐘28,或維持當(dāng)前時(shí)間,以便根據(jù)時(shí)間或用戶的時(shí)鐘輸入允許時(shí)間延遲動(dòng)作。
客戶機(jī)裝置12和服務(wù)器14可以物理地作為象DTV那樣的一個(gè)單元捆綁(bundle)在一起。此時(shí),服務(wù)器14包括用于控制服務(wù)器硬件的控制程序20,并且客戶機(jī)裝置12提供控制用戶接口給服務(wù)器控制程序20,用于至少該服務(wù)器硬件的控制和命令。圖5是客戶機(jī)裝置12的一個(gè)實(shí)例,它可包括(1)用于顯示GUI的PDA(RemoteC),(2)用于顯示GUI并包含包括音頻和/或視頻節(jié)目條紋(streak)目標(biāo)服務(wù)器的信宿服務(wù)器的DTV(STB),以及(3)用于顯示GUI并包括用于提供多種服務(wù)的至少一個(gè)服務(wù)器的PC。DTV或PC客戶機(jī)裝置中的硬件和可執(zhí)行部分還可以由其它客戶機(jī)裝置控制。圖6是示例性的服務(wù)器14,它包括(1)作為信源服務(wù)器的DVDP智能卡,(2)作為信宿服務(wù)器的音頻放大器,(3)作為信源或信宿服務(wù)器的DVCR,以及(4)用于管理遠(yuǎn)端服務(wù)器的管理服務(wù)器。該管理服務(wù)器可以包括在例如DBS-STB、有線TV-STB或ATSC-STB。這樣的裝置包括適合于該STB的內(nèi)部運(yùn)行的本地控制或管理的管理服務(wù)器。此外,通過外部網(wǎng)絡(luò)接入的外部服務(wù)器可以由本地客戶機(jī)裝置用于服務(wù),諸如視頻點(diǎn)播、增強(qiáng)電視(Enhanced-TV)、互聯(lián)網(wǎng)商務(wù)之類。
參考圖7,兩個(gè)服務(wù)器14之間的通信和控制由在其間傳輸命令和控制數(shù)據(jù)的服務(wù)器14的控制程序20實(shí)現(xiàn)。服務(wù)器14可以控制一個(gè)或多個(gè)在該網(wǎng)絡(luò)上的其它服務(wù)器14。并且服務(wù)器14也可以由一個(gè)或多個(gè)服務(wù)器14,以及一個(gè)或多個(gè)客戶機(jī)裝置12控制。此外,用戶可以利用客戶機(jī)裝置12控制和命令第一組服務(wù)器14,而該第一組服務(wù)器14在需要為用戶執(zhí)行服務(wù)時(shí),可以自動(dòng)命令和控制第二組服務(wù)器14,而不用用戶的干預(yù)。
例如,對(duì)于自動(dòng)時(shí)間延遲操作,用戶能夠“登錄”到客戶機(jī)裝置12,以便控制第一組服務(wù)器14并指定想要的服務(wù)。然后用戶從客戶機(jī)裝置12中“退出”。第一組服務(wù)器14在它們自身之間執(zhí)行通信和控制,并在以后,該第一組中的一個(gè)或多個(gè)服務(wù)器14在需要集中提供所需服務(wù)時(shí),自動(dòng)地控制第二組服務(wù)器14而不用用戶的干預(yù)。
圖7是兩個(gè)能夠相互通信并相互控制的服務(wù)器14的示例性實(shí)施例。每個(gè)服務(wù)器14都包括上述的控制程序20、時(shí)鐘28和控制狀態(tài)數(shù)據(jù)26。每個(gè)服務(wù)器14還可以包括由客戶機(jī)裝置12直接控制的服務(wù)器14的GCO22。但GCO22不需要包括在不直接由客戶機(jī)裝置12控制的服務(wù)器14中,并且只與其它服務(wù)器14通信。每個(gè)服務(wù)器14還包括一種命令語言(CL)接口30以及一個(gè)命令庫(kù)。該命令庫(kù)包括服務(wù)器14用來發(fā)送和接收用于提供其服務(wù)的信息的命令。但對(duì)于圖4所示以及以上所述的用戶控制,命令語言不是必要的。
圖8是在網(wǎng)絡(luò)上包括信源服務(wù)器14、信宿服務(wù)器14和客戶機(jī)裝置12的示例性音頻/視頻(A/V)模型。信源服務(wù)器14包括用于控制該信源服務(wù)器14的數(shù)據(jù)流信源硬件32的服務(wù)器控制程序20。該信宿服務(wù)器14包括用于控制信宿服務(wù)器14的數(shù)據(jù)流信宿硬件34的服務(wù)器控制程序20。在一個(gè)示例性操作中,用戶利用客戶機(jī)裝置12控制信源服務(wù)器14來啟動(dòng)數(shù)據(jù)流信源硬件32,并控制信宿服務(wù)器14來啟動(dòng)數(shù)據(jù)流信宿硬件34。在從數(shù)據(jù)流信源硬件32到數(shù)據(jù)流信宿硬件34的數(shù)據(jù)傳輸起動(dòng)時(shí),用戶可以釋放客戶機(jī)裝置12。另外,用戶可以安排在以后的時(shí)間起動(dòng)數(shù)據(jù)傳輸,并釋放客戶機(jī)裝置12。此后,信源服務(wù)器14的數(shù)據(jù)流信源硬件32和信宿服務(wù)器14的數(shù)據(jù)流信宿硬件34在由用戶安排的時(shí)間自動(dòng)起動(dòng)該數(shù)據(jù)傳輸。
例如,數(shù)據(jù)流信源硬件32可以包括諸如直接廣播衛(wèi)星(Direct BroadcastSatellite,DBS)這樣的調(diào)諧接入裝置(Tuner-Access Device)。DBS是替代有線電視的多通道,并且直接地從衛(wèi)星提供類似有線電視的節(jié)目到小(直徑在18英寸至3英尺)衛(wèi)星拋物面天線上。借助于DBS,幾路標(biāo)準(zhǔn)的模擬電視信號(hào)被數(shù)字地壓縮到單一衛(wèi)星轉(zhuǎn)發(fā)器上,以允許多達(dá)200或更多路可由指向空中的固定位置的拋物面天線的通道被接收到。數(shù)據(jù)流信宿硬件34可以包括數(shù)字磁帶錄像機(jī)(DVCR),該數(shù)字磁帶錄像機(jī)含有能夠在播放時(shí)解壓縮數(shù)字視頻信號(hào)的數(shù)字VCR。用戶提供包括用于DVCR的“延時(shí)記錄”事件數(shù)據(jù)和用于調(diào)諧接入裝置的“延時(shí)選擇節(jié)目”事件數(shù)據(jù)。在該延時(shí)之后,調(diào)諧接入裝置選擇想要的節(jié)目,以及源節(jié)目數(shù)據(jù)給接收和記錄該節(jié)目數(shù)據(jù)的DVCR,而不用來自用戶的進(jìn)一步控制動(dòng)作。
圖9是在網(wǎng)絡(luò)10上包括至少一個(gè)信源服務(wù)器14 SERVER 1、一個(gè)信宿服務(wù)器14 SERVER 2和客戶機(jī)裝置12的示例性音頻/視頻(A/V)模型。該客戶機(jī)裝置12包括一個(gè)帶有用戶接口的會(huì)話管理器(session manager)36,用于顯示選擇信息,以便用戶選擇和控制服務(wù)器14 SERVER 1、SERVER 2以及其它諸如SERVER 3和SERVER 4(未顯示在圖中)這樣的服務(wù)器14。該選擇信息可以包括在會(huì)話管理器36中被標(biāo)示作Serv 1、Serv 2、Serv 3和Serv 4的圖標(biāo)符號(hào),以便于用戶分別選擇服務(wù)器14 SERVER 1、SERVER 2、SERVER3和SERVER 4。信源服務(wù)器14 SERVER 1可以包括DVCR,而信宿服務(wù)器14 SERVER 2可以包括1/2 DTV。
在一個(gè)示例性操作中,客戶機(jī)裝置12在選擇服務(wù)器14 SERVER 1和SERVER 2后傳輸每個(gè)服務(wù)器14的GCO 22給客戶機(jī)裝置,并且顯示服務(wù)器14 SERVER 1和SERVER 2中的每個(gè)的相應(yīng)GUI 18。用戶可以與每個(gè)服務(wù)器14的GUI 18交互,以便提供命令和控制給相應(yīng)的服務(wù)器14進(jìn)行服務(wù)。每個(gè)服務(wù)器14可以單獨(dú)或和其它服務(wù)器14組合起來提供服務(wù)。此外,當(dāng)相應(yīng)的服務(wù)器14需要執(zhí)行服務(wù)時(shí),會(huì)話管理器36在客戶機(jī)裝置12中服務(wù)器14的多個(gè)GUI18之間傳輸控制狀態(tài)數(shù)據(jù)26。根據(jù)用戶命令和控制信息,兩個(gè)或多個(gè)服務(wù)器14可以在它們自身之間傳遞命令和控制,以便提供用戶請(qǐng)求的服務(wù)。
會(huì)話管理器36包括一個(gè)軟件代理,它的功能是接入和顯示由網(wǎng)絡(luò)10的各服務(wù)器14提供可用的家庭網(wǎng)絡(luò)服務(wù)。軟件代理還可以匹配該網(wǎng)絡(luò)10中的各服務(wù)器14的能力,并只為具有兼容能力的那些服務(wù)器14顯示選擇信息。此外,會(huì)話管理器36還可以將在一個(gè)服務(wù)器14的GUI18中產(chǎn)生的選擇與另一個(gè)服務(wù)器14的GUI18中產(chǎn)生的選擇匹配,以幫助用戶提供有意義的命令和控制信息給該服務(wù)器14。
在一個(gè)示例性操作中,會(huì)話管理器36執(zhí)行用于搜索該網(wǎng)絡(luò)并發(fā)現(xiàn)連接到該網(wǎng)絡(luò)的服務(wù)器14的軟件代理。該軟件代理也存取存儲(chǔ)在每個(gè)服務(wù)器14中的能力數(shù)據(jù)以判定該服務(wù)器14的能力,并將關(guān)于那些能力的信息提供給用戶。然后會(huì)話管理器36顯示關(guān)于服務(wù)器SERVER 1、SERVER 2、SERVER3和SERVER 4的圖標(biāo)Serv 1、Serv 2、Serv 3和Serv 4,如圖9所示。
會(huì)話管理器36首先啟動(dòng)全部選擇圖標(biāo)Serv 1、Serv 2、Serv 3和Serv 4,以允許用戶從全部四個(gè)選擇圖標(biāo)中選擇。在用戶通過在Serv 1選擇圖標(biāo)上點(diǎn)擊來選中服務(wù)器SERVER 1之后,會(huì)話管理器36判定服務(wù)器SERVER 3和SERVER 4與服務(wù)器SERVER 1在能力上不兼容。因而,會(huì)話管理器36分別禁止關(guān)于服務(wù)器SERVER 3和SERVER 4的選擇圖標(biāo)Serv 3和Serv 4。然后用戶在圖標(biāo)Serv 2上點(diǎn)擊來命令和控制服務(wù)器SERVER 2。
當(dāng)用戶與選中的服務(wù)器14的GUI 18交互時(shí),由用戶輸入到每個(gè)GUI 18的控制和命令信息提供影響由用戶進(jìn)行的進(jìn)一步的服務(wù)器選擇的額外能力信息。例如,如果VCR服務(wù)器14被選中,則會(huì)話管理器36在啟動(dòng)和禁止其它服務(wù)器14的選擇圖標(biāo)的進(jìn)一步動(dòng)作受用戶播放或記錄的決定的影響。
在該網(wǎng)絡(luò)中的每個(gè)服務(wù)器14具有一種或多種如以上通過示例、參考圖9所示的服務(wù)器所討論的服務(wù)能力。每種服務(wù)能力包括信息的發(fā)布/匯集。例如,電視具有接收視頻和音頻流的匯集能力。VCR裝置可以發(fā)布(發(fā)送)和匯集(接收)視頻和音頻信號(hào),而PC能夠發(fā)送和接收視頻、音頻和數(shù)據(jù)。每種發(fā)布能力具有一種配套以及兼容的匯集能力。同樣地,每一種匯集能力也具有配套以及兼容的發(fā)布能力。例如,一種裝置的視頻輸出能力由另一裝置的視頻輸入能力配套。
因?yàn)槊總€(gè)裝置14可以是該網(wǎng)絡(luò)上的幾種不同服務(wù)的信源或信宿,因此,每個(gè)裝置14存儲(chǔ)一個(gè)如圖10中示范的能力數(shù)據(jù)表(能力表1)。表1的第一列識(shí)別裝置14的服務(wù)能力,第二列識(shí)別該裝置14是否是第一列中相應(yīng)的服務(wù)的信源和信宿。利用該能力數(shù)據(jù)表1,可以在維持與舊裝置兼容的同時(shí)實(shí)施新的服務(wù)。例如,如果開發(fā)了一種與舊服務(wù)兼容的新服務(wù),則新舊兩種服務(wù)都可以進(jìn)入關(guān)于實(shí)施該新服務(wù)的裝置的能力數(shù)據(jù)表1,從而實(shí)施的裝置仍然保留與使用該舊服務(wù)的較舊的裝置的兼容性。
在一種實(shí)施中,裝置管理器(Device Manager)對(duì)裝置信源和信宿服務(wù)進(jìn)行匹配或比較。例如,該裝置管理器可以實(shí)施為軟件代理,以比較各裝置14的能力或性能并用匹配的能力定位裝置14。例如,在該裝置為從第一裝置14通過該網(wǎng)絡(luò)到第二裝置14的一個(gè)介質(zhì)流的情況下,該裝置管理器比較該第一和第二裝置14的能力,以便協(xié)助用戶明智地選擇兼容于第一裝置14的能力的第二裝置14。以下是關(guān)于服務(wù)器14實(shí)施例的服務(wù)能力的示例性清單Stream_format_video_dvStream_format_video_mpeg2tptStream_format_video_dsstptStream_format_video_mpeg2pesStream_format_video_mpeg210801-tpt每個(gè)裝置14還可以存儲(chǔ)一個(gè)包含該裝置的相關(guān)屬性的屬性數(shù)據(jù)表(屬性表2),該表被示范在圖11中。名稱和值判定了表2中的每一屬性。雖在表2中顯示了字符長(zhǎng)度,但這不是必要的。該屬性數(shù)據(jù)可用于該網(wǎng)絡(luò)10上的其它裝置14,以便于協(xié)作和存儲(chǔ)裝置信息。例如象以下描述的裝置頁(yè)面(Device Page)使用該屬性表2存儲(chǔ)該裝置名稱。其它字段在必要時(shí)可以加進(jìn)該屬性數(shù)據(jù)表2。
在以上描述的用戶-客戶機(jī)(user-to-client)裝置控制模式中,屬性數(shù)據(jù)可以顯示與該客戶機(jī)裝置12中的服務(wù)器14的GUI頁(yè)面上。另外,第二級(jí)裝置信息主頁(yè)面可以用來顯示所述屬性數(shù)據(jù)。此外,表示成文本形式或可擴(kuò)展標(biāo)記語言(XML)文檔形式的屬性數(shù)據(jù)可以由軟件代理存取。對(duì)于裝置-裝置(device-to-device)控制模式,用于該被控制的裝置的屬性數(shù)據(jù)存儲(chǔ)在該裝置接口應(yīng)用程序接口(device interface application interface)中。
在屬性表2中的裝置位置屬性字段用于存儲(chǔ)每個(gè)裝置14的位置或組。該裝置類型屬性字段指定裝置的類型,例如對(duì)具體的裝置指定其類型VCR、DVD、DTV、便攜式攝像機(jī)、PC、安全系統(tǒng)等。該裝置類型屬性字段在裝置本身不提供圖標(biāo)時(shí),用于選擇一個(gè)缺省裝置圖標(biāo)代表該裝置頁(yè)面中的裝置。該屬性表2可以包括用于缺省信源和缺省信宿屬性字段的多個(gè)項(xiàng)目。對(duì)于由裝置14管理的每一數(shù)據(jù)類型,每個(gè)這樣的項(xiàng)代表一個(gè)不同的缺省信源或信宿裝置14。
該能力和屬性數(shù)據(jù)最好采用分層語言(hierarchical language)封裝為結(jié)構(gòu)化數(shù)據(jù)。這提供了檢索用于諸如在GCO傳輸和服務(wù)器-服務(wù)器(server device-to-server device)控制中其它目的的能力和屬性數(shù)據(jù)的一種通用方法。例如,該屬性數(shù)據(jù)可以包括下列結(jié)構(gòu)化數(shù)據(jù)格式<pre listing-type="program-listing"><![CDATA[<DEVICEATTRIBUTES><ATTRIBUTE name=DeviceManufacturer value=“SamsungInc.”> ?。糀TTRIBUTE name=Manufacturer URL value=www.samsung.com> ?。糀TTRIBUTE name=ManufacturerIcon value=“l(fā)ogo.gif”> ?。糀TTRIBUTE name=DeviceName value=“Samsung DSS”> <ATTRIBUTE name=DeviceModel value=“SCH190O”> ?。糀TTRIBUTE name=DeviceTyPe value=DDS> ?。糀TTRIBUTE name=DeviceLocation value=“Livingroom”> <ATTRIBUTE name=Deviceicon value=“device.gif”> ?。糀TTRIBUTE name=DeviceAddress value=105.144.30.17> ?。?DEVICEATTRIBUTES>]]></pre>例如,能力數(shù)據(jù)可以包括下列結(jié)構(gòu)化格式<pre listing-type="program-listing"><![CDATA[ ?。糄EVICECAPABILITIES> ?。糃APABILITY type=MPEG2 value=Source> ?。糃APABILITY type=MPEG2 value=Sink> ?。糃APABILITY type=MpEG3 value=Source> ?。糃APABILITY type=MPEG3 value=Sink> ?。?DEVICECAPABILITIES>]]></pre>應(yīng)用程序接口語言用于使不同服務(wù)器14能夠執(zhí)行包括服務(wù)器-服務(wù)器控制的裝置-裝置控制。該應(yīng)用程序接口語言包括命令語言,并且可以采用XML描述,細(xì)節(jié)如下。一個(gè)服務(wù)器14的控制程序20遠(yuǎn)程地控制在該網(wǎng)絡(luò)上的另一服務(wù)器14的控制程序20,而不使用GUI18或不必用戶介入。裝置-裝置控制的一個(gè)示例是自動(dòng)操作。用戶首先為想要的服務(wù)通過客戶機(jī)裝置12提供控制,然后兩個(gè)或兩個(gè)以上的服務(wù)器14自動(dòng)相互通信和控制以便提供該服務(wù),而不用用戶進(jìn)一步的交互。
參考圖12和13,標(biāo)準(zhǔn)的應(yīng)用程序接口語言最好用于允許在各服務(wù)器14中的各控制程序20之間的協(xié)作。在一個(gè)實(shí)施例中,該標(biāo)準(zhǔn)應(yīng)用程序接口語言包括下列構(gòu)造部件(building block)(1)諸如服務(wù)函數(shù)數(shù)據(jù)庫(kù)中的服務(wù)的功能說明40,(2)在其中包括消息單元的塊42,(3)行業(yè)標(biāo)準(zhǔn)格式44,(4)消息壓縮46,(5)輸出結(jié)構(gòu)化的消息數(shù)據(jù)的消息串結(jié)構(gòu)48。
圖12是執(zhí)行產(chǎn)生命令消息的函數(shù)的構(gòu)造部件的示例性結(jié)構(gòu)。每一消息項(xiàng)目由服務(wù)的函數(shù)規(guī)格說明組成,并通過選擇關(guān)于該消息項(xiàng)的行業(yè)標(biāo)準(zhǔn)化壓縮的格式(Hex)標(biāo)簽來標(biāo)準(zhǔn)化。這樣的消息項(xiàng)組匯集在一起產(chǎn)生完整的命令串。諸如CAL和AV/C的現(xiàn)有命令語言按圖12所示那樣操作。但這樣的命令語言機(jī)構(gòu)規(guī)定了物理接口上的物理裝置上的二進(jìn)制或十六進(jìn)制代碼消息和系統(tǒng)操作,并且是基于硬件規(guī)格的。因此,這樣的命令語言對(duì)于基于網(wǎng)絡(luò)層的控制機(jī)構(gòu)來說不是很必要,即在該機(jī)構(gòu)中控制系統(tǒng)規(guī)格說明包括應(yīng)用程序級(jí)的軟件級(jí)的命名、尋址、裝置能力發(fā)現(xiàn)、通信語言和命令消息,其中在控制器14的一個(gè)軟件應(yīng)用程序20定位和控制在網(wǎng)絡(luò)10上被控制的裝置14中的另一個(gè)軟件應(yīng)用程序20。所述控制結(jié)構(gòu)更適合于諸如包括家用電器(例如DVCR)的數(shù)字裝置以及多功能、多用途的裝置(例如計(jì)算機(jī))。
圖13是圖2中執(zhí)行產(chǎn)生命令消息的構(gòu)造部件的優(yōu)選示例性結(jié)構(gòu)。在圖13中,行業(yè)標(biāo)準(zhǔn)格式44和消息壓縮46的位置與在圖12中的位置不同。為了產(chǎn)生完整的消息,從功能說明服務(wù)40選擇許多文本的標(biāo)準(zhǔn)形式。以后,該消息可以由協(xié)議棧的一個(gè)較低層進(jìn)行壓縮。圖13表示執(zhí)行家用電器(CE)的服務(wù)或裝置命令和控制的方法。消息合成可以通過XML標(biāo)準(zhǔn)語法定義,而壓縮可以通過諸如HTTP那樣的另一個(gè)協(xié)議層執(zhí)行。命令接口語言被用于應(yīng)用軟件20的接口級(jí),而不是更低級(jí)的硬件級(jí)。因而,該網(wǎng)絡(luò)協(xié)議棧以表示成所述語言的命令管理,控制器14和被控制的裝置14的每一個(gè)都能可以被看作用于在它們之間發(fā)送消息的、該網(wǎng)絡(luò)的集成部分。
參考圖14,它顯示了客戶機(jī)裝置12和服務(wù)器14之間交互的三個(gè)不同的實(shí)例。在第一個(gè)實(shí)例”A”中,自然人與遠(yuǎn)端服務(wù)應(yīng)用程序”S”通信。該用戶采用客戶機(jī)裝置12中的瀏覽器作為用戶接口,其中瀏覽器控制服務(wù)應(yīng)用程序”S”中的服務(wù)程序20并接收超文本鏈接標(biāo)記語言(HTML)或XML格式的響應(yīng)。還包括帶有瀏覽器的副服務(wù)器,以便接受基于XML的異步命令消息發(fā)布(posting)。例如,對(duì)于DVCR,該副服務(wù)器14可以接受諸如”VCRFAlLED:TAPE BROKE.”這樣的命令消息。包括瀏覽器的軟件代理可以被用來在瀏覽器的GUI中為用戶顯示命令消息,以便以后用于用戶和DVCR的控制。基于XML的客戶機(jī)裝置12最好包括HTTP 1.1服務(wù)器能力,以便響應(yīng)在其它地方啟動(dòng)的關(guān)于服務(wù)器到服務(wù)器的命令和控制的命令。
在第二實(shí)例“B”中,該用戶由軟件客戶機(jī)控制程序50取代。該軟件客戶機(jī)控制程序50產(chǎn)生基于XML的命令發(fā)布給服務(wù)應(yīng)用程序”S”,并接收后面的XML命令發(fā)布。在第三實(shí)例“C”中,該軟件客戶機(jī)控制程序50由服務(wù)器控制程序20這樣的應(yīng)用程序取代,其中命令和響應(yīng)在兩個(gè)服務(wù)應(yīng)用程序20之間交換。在那種情況下,實(shí)例“B”是實(shí)例“C”在無服務(wù)時(shí)的特例。
基于XML的應(yīng)用程序接口語言用于第一服務(wù)器14和第二服務(wù)器14(裝置-裝置或服務(wù)-服務(wù))之間的控制,用于啟動(dòng)的萬維網(wǎng)(Web)和啟動(dòng)的互聯(lián)網(wǎng)。該應(yīng)用程序接口語言基于Web標(biāo)準(zhǔn),是中間設(shè)備層。在一個(gè)實(shí)施例中,裝置-裝置控制包括從網(wǎng)絡(luò)10的另一個(gè)服務(wù)器14遠(yuǎn)程地控制位于一個(gè)服務(wù)器14中的控制程序20或應(yīng)用程序。因而,面向這樣的應(yīng)用程序20的接口(APl)利用API擴(kuò)展在網(wǎng)絡(luò)上進(jìn)行應(yīng)用。該API擴(kuò)展最好利用諸如基于XML接口這樣的標(biāo)準(zhǔn)格式提供全面協(xié)作。
現(xiàn)在參考圖15,它顯示了關(guān)于在網(wǎng)絡(luò)10上通信的被標(biāo)示為服務(wù)A的第一應(yīng)用程序A以及被標(biāo)示為服務(wù)B的第二應(yīng)用程序B的API擴(kuò)展的框圖定義。例如,服務(wù)A可以是用于該網(wǎng)絡(luò)上的第一服務(wù)器A的控制程序,而服務(wù)B可以是用于該網(wǎng)絡(luò)上的第二服務(wù)器B的控制程序。服務(wù)器B發(fā)送命令到服務(wù)器A。對(duì)于本示例,第一和第二服務(wù)器A和B可以包括CE裝置。
參考服務(wù)A的API擴(kuò)展,第一個(gè)最上面的塊52中提供CE對(duì)象的綜合定義或數(shù)據(jù)庫(kù),以及用英文描述CE裝置。該綜合定義或數(shù)據(jù)庫(kù)也可以以能夠表示對(duì)象及其特有的方法的C、XML或其他格式出現(xiàn)。采用XML的該綜合定義或數(shù)據(jù)庫(kù)被稱為XCE定義。對(duì)所有裝置14,第二塊54提供用于表示以XML格式出現(xiàn)的API的格式,被標(biāo)示為接口數(shù)據(jù)類型定義INTERFACE.DTD。
標(biāo)示為工具A的軟件代理利用關(guān)于服務(wù)A的XCE定義的一個(gè)子集,并使用關(guān)于服務(wù)A的接口數(shù)據(jù)類型1NTERFACE.DTD來創(chuàng)建一個(gè)XML格式文檔NTERFACE-A.XML。該文檔INTERFACE-A.XML根據(jù)關(guān)于服務(wù)A的接口數(shù)據(jù)類型1NTERFACE.DTD,描述了該服務(wù)A所支持的對(duì)象和方法。其它的數(shù)據(jù)類型定義也可以用于創(chuàng)建INTERFACE-A.XML文檔。
軟件工具A也創(chuàng)建一個(gè)查找表56,以便將來自該網(wǎng)絡(luò)接口上的服務(wù)B中的消息轉(zhuǎn)換成關(guān)于服務(wù)A的APl定義,它以例如C編程并且匯編成可執(zhí)行的二進(jìn)制。該查找表56最好在匯編時(shí)創(chuàng)建,因此來自服務(wù)B的輸入XML格式方法消息(命令)在運(yùn)行時(shí)間期間被轉(zhuǎn)換成由關(guān)于服務(wù)A的、被匯編的應(yīng)用程序的C代碼創(chuàng)建的API格式。該查找表56提供將來自服務(wù)B的XML對(duì)象方法調(diào)用,運(yùn)行翻譯成服務(wù)A的裝置的本機(jī)語言調(diào)用。該查找表56采用裝置控制程序20匯編,用于在服務(wù)A的服務(wù)器A上進(jìn)行本地執(zhí)行。
如果服務(wù)A在接收的消息中遇到錯(cuò)誤,則INTERFACE-A.XML可以由服務(wù)A用來進(jìn)行有效性檢查。INTERFACE-A.XML也可以由諸如服務(wù)B這樣的外部應(yīng)用程序用來在與服務(wù)A通信之前判定服務(wù)A的消息格式。此外,如果從服務(wù)B到服務(wù)A的消息引起錯(cuò)誤,則服務(wù)B可以存取INTERFACE-A.XML文檔來診斷該錯(cuò)誤。
參考關(guān)于服務(wù)B的API擴(kuò)展,第一塊58提供諸如關(guān)于上述服務(wù)A的XCE定義的CE對(duì)象的綜合定義或和數(shù)據(jù)庫(kù)。下一塊60用于向諸如關(guān)于服務(wù)A的API這樣的遠(yuǎn)端服務(wù)或裝置提供進(jìn)行XML格式方法(命令)調(diào)用的語言定義。該語言定義是描述與該網(wǎng)絡(luò)上的對(duì)象交互的文檔型定義方法請(qǐng)求CALL.DTD。
標(biāo)示為工具B的軟件代理至少利用關(guān)于服務(wù)B的XCE定義中的對(duì)象和方法的一個(gè)子集以及CALL.DTD,產(chǎn)生用于將來自關(guān)于服務(wù)B匯編的C程序代碼的命令轉(zhuǎn)換為XML格式方法請(qǐng)求的查找表62。因而,該查找表62例如提供在被服務(wù)B(例如“PLAY”)調(diào)用的方法與XML文檔或帶該方法調(diào)用通過網(wǎng)絡(luò)接口到達(dá)服務(wù)A的消息之間的轉(zhuǎn)換。軟件工具B使用的XCE定義的子集依賴于該網(wǎng)絡(luò)的使用范圍和性質(zhì)。例如,該子集可以選擇成全部或限制使用一個(gè)家庭網(wǎng)絡(luò)上的所有可用服務(wù)。
因此,該API擴(kuò)展使用XML為該網(wǎng)絡(luò)上的各裝置之間提供通信。在以上的示例中,服務(wù)B的程序代碼20產(chǎn)生對(duì)API的方法調(diào)用,并且該API調(diào)用被轉(zhuǎn)換成符合關(guān)于互連裝置通信的Web/互聯(lián)網(wǎng)標(biāo)準(zhǔn)的XML的XML格式。該XML方法調(diào)用(消息)被發(fā)送到該網(wǎng)絡(luò)上的服務(wù)A,而服務(wù)A重新將來自網(wǎng)絡(luò)接口的XML方法調(diào)用轉(zhuǎn)換成關(guān)于服務(wù)A的程序代碼API定義。這種轉(zhuǎn)換和重新轉(zhuǎn)換為網(wǎng)絡(luò)中的不同裝置提供與總是在不同裝置之間要求其它二進(jìn)制兼容的程序代碼API的Web/互聯(lián)網(wǎng)兼容。下面顯示了利用圖15中的框圖的XML接口塊的示例。
Interface.dtd寫成xml語言、用于描述對(duì)象接口的規(guī)則
<pre listing-type="program-listing"><![CDATA[ ?。迹LEMENT paramater#PCDATA> ?。迹TTLIST paramater TypeCDATA #REQUIRED ?。尽 。?!ELEMENT method (#PCDATA,(parameter)+)> <!ELEMENT method (#PCDATA,(method)+)> interface.h]]></pre>寫成c語言形式的示例性對(duì)象接口/* 對(duì)象*/<pre listing-type="program-listing"><![CDATA[typedef struct Stream{int id;};]]></pre>/*方法*/void streamPlay(intid,int speed);void stresmStop(intid);interface.ml使用interface.dtd的規(guī)則的寫成xml語言的同一對(duì)象<pre listing-type="program-listing"><![CDATA[ ?。紀(jì)bject>Stream <method>Play <parameter type=“int”>id</parameter> <parameter type=“int”>speed</parameter> </method> <method>Stop <parameter type=“int”>id</parameter> </method> <o(jì)bject>call.dtd]]></pre>寫成xml的、用于c函數(shù)調(diào)用的規(guī)則<pre listing-type="program-listing"><![CDATA[ ?。?!ELEMENT parameter#PCDATA> ?。?!ATTLIST parameter value CDATA #REQUIRED ?。尽 。?!ELEMENT method#PCDATA,(parameter)+)> <!ELEMENT object (#PCDATA)> ?。?ELEMEWT call (object,method)> controller.c]]></pre>寫成c語言的示例性控制器命令.
.
.
streamPlay(OxOlae,500);.
.
.
call.xml使用call.dtd的寫成xml語言的同一命令<pre listing-type="program-listing"><![CDATA[<!--播放流的示例--> ?。糲all> <o(jì)bject>Stream</object> ?。糾ethod>Play</method> parameter value=“500”>speed</parameter> </call>]]></pre>
此外,以上提供了用于創(chuàng)建可用服務(wù)的描述文檔的接口定義INTERFACE.DTD和CALL.DTD的示例,即如上所述的INTERFACE.XML。CALL.DTD定義包括產(chǎn)生諸如XML遠(yuǎn)程程序調(diào)用(RPC)或XMLRPC消息之類的方法調(diào)用和函數(shù)調(diào)用的規(guī)則集。CALL.DTD定義描述了控制器服務(wù)14的輸出接口。例如,在家庭網(wǎng)絡(luò)中,INTERFACE.XML代表在該家庭網(wǎng)絡(luò)上可用的服務(wù)。該可用的服務(wù)是CE空間中整個(gè)服務(wù)的一個(gè)子集。
在一次觸發(fā)記錄(One-Touch-Record,OTR)情況下,用戶處于諸如衛(wèi)星STB這樣的調(diào)諧接入裝置的控制下。用戶利用諸如表示節(jié)目清單的圖形用戶界面的電子節(jié)目指南(EPG)來控制調(diào)諧。OTR記錄給用戶提供包括從EPG選擇以后的節(jié)目用于記錄的服務(wù),而不需要用戶接入VCR圖形用戶界面來為VCR安排一個(gè)延遲記錄時(shí)間。OTR自動(dòng)控制VCR。以下是OTR.XML中的動(dòng)作的示例性控制清單(1)StreamOpen=播放從衛(wèi)星STB輸出到該網(wǎng)絡(luò)的被選中的節(jié)目流;對(duì)于OTR,該控制是對(duì)STB裝置的本地控制;(2)StorageOpen=開啟一個(gè)存儲(chǔ)服務(wù);以及(3)StorageRecord=通過該網(wǎng)絡(luò)發(fā)送一個(gè)記錄命令給VCR。
call.dtd用于以xml語言描述c語言函數(shù)的規(guī)則<pre listing-type="program-listing"><![CDATA[<!ELEMENT parameter#PCDATA> ?。迹TTLIST parameter valueCDATA#REQUIRED > ?。迹LEMENT method (#PCDATA,(parameter)+)> ?。迹LEMENT object (#PCDATA)> ?。?!ELEMENT call (object,method)> interface.dtd]]></pre>用于以xml語言描述對(duì)象接口的示例<pre listing-type="program-listing"><![CDATA[ ?。?!ELEMENT parameter#PCDATA><!ATTLIST parameter valueCDATA #REQUIRED > ?。?!ELEMENT method (#PCDATA,(parameter)+)> <!ELEMENT object (#PCDATA,method+)>interface.xml]]></pre>該文檔描述提供的各CE服務(wù)一整個(gè)CE空間的一個(gè)子集<pre listing-type="program-listing"><![CDATA[ <?xml version= “1.0”?> ?。?!DOCTYPE interface SYSTEM“interface.dtd”> ?。紀(jì)bject>Stream <method>Open <parameter type=“int”>id</parameter> <parameter type=“int”>channel</parameter> </method> <method>Close ?。紁arameter type= “int”>id</parameter> </method> </object> ?。紀(jì)bject>Control <method>Set <parameter type=“int”>id</paxametex> <parameter type=“int”>level</parameter> </method> ?。?object> ?。紀(jì)bject>Storage <method>Open ?。紁arameter type=“int”>id</parameter><parameter type=“int”>cannel</parameter> </method> <method>Record <parameter type=“int”>id</parameter> </method> <method>Play <parameter type=“int”>id</parameter> <parameter type=“int”>speed</parameter> </method> <method>Stop <parameter type=“int”>id</parameter> </method> <method>Close <parameter type=“int”>id</parameter> </method> ?。?object> ?。紀(jì)bject>Display <method>Open <parameter type=“int”>id</parameter> <parameter type=“int”>channel</parameter> </method> <method>Render <parameter type=“int”>id</parameter> </method> <method>Blank ?。紁arameter type=“int”>id</parameter> </method> <method>Control <parameter type=“int”>id</parameter> ?。紁arameter type=“int”>cid</parameter><parameter type=“int”>level</parameter> </method> <method>Close <parameter type=“int”>id</parameter> </method> ?。?object>]]></pre>otr.xml一次觸發(fā)記錄的xml語言表示c語言表示streamOpen(100,2);/*播放一個(gè)流(由衛(wèi)星饋送推送)*/StorageOpen(24,2);/*開啟一個(gè)存儲(chǔ)服務(wù)*/StorageRecord(24);/*記錄該流*/<pre listing-type="program-listing"><![CDATA[ <?xml version=“1.0”?> ?。?!CODTYPE interface SYSTEM“call.dtd”> ?。糲all> <o(jì)bj ect>Stream</object> <method>Open</method> <parameter value=100”>id</parameter> <parameter value=“2”>channel</parameter> </call> ?。糲all> <o(jì)bject>Storage</object> <method>Open</method> <parameter value=“100”>id</parameter> <parameter value=“2”>channel</parameter> </call> ?。糲all> <o(jì)bj ect>Storage</object> <method>Record</method><parametervalue=“100”>id</parameter> ?。?call>]]></pre>象結(jié)合圖15的上述討論那樣,第一裝置B可以接入第二裝置A的INTERFACE.XML文檔,以便檢查第二裝置A的裝置能力和API接口細(xì)節(jié),并且判定第二裝置A所支持的函數(shù)和命令細(xì)節(jié)。特別地,該第一裝置B可以判定重疊,因而可用的由第一裝置B和第二裝置A支持的方法。圖16是一個(gè)示例,其中包括應(yīng)用程序B的第一服務(wù)器B存取包括應(yīng)用程序A的第二服務(wù)器A的INTERFACE-A.XML文檔。該第一服務(wù)器B包括INTERFACE-B.XML文檔,用于與第二服務(wù)器A中的INTERFACE-A.XML文檔比較。
在一個(gè)情況中,第一服務(wù)器B想要控制該網(wǎng)絡(luò)中的第二服務(wù)器A。該第二服務(wù)器A的INTERFACE-A.XML文檔從第二服務(wù)器A傳輸?shù)降谝环?wù)器B,并被應(yīng)用程序B用于查詢?cè)摰诙?wù)器A的能力和API接口方法。這允許第一服務(wù)器B利用XML遠(yuǎn)程程序調(diào)用XMLRPC來控制第二服務(wù)器A。在另一情況中,第一服務(wù)器B在嘗試與第二服務(wù)器A進(jìn)行至少一次通信,但不能建立通信后,執(zhí)行以上步驟。在又一情況中,第一服務(wù)器B還遠(yuǎn)程地查詢第二服務(wù)器A中的INTERFACE-A.XML文檔,而不用將該INTERFACE-A.XML文檔傳輸?shù)降谝环?wù)器B。
在檢查了INTERFACE-A.XML文檔的內(nèi)容之后,第一服務(wù)器B可以以上述的XML格式創(chuàng)建用于發(fā)送到第二服務(wù)器A的命令。一般地講,該第一服務(wù)器B可以解釋INTERFACE-A.XML文檔的內(nèi)容的至少一部分,它與由上述第一和第二服務(wù)器B和A使用的XCE定義的一個(gè)子集重疊。如果第一服務(wù)器B不能解釋INTERFACE-A.XML文檔的內(nèi)容的某部分,那么第一服務(wù)器B可以通過下述的翻譯忽略該部分,或者獲取應(yīng)用程序來幫助它解釋該部分。
參考圖17,它顯示了控制服務(wù)器14和被控制的服務(wù)器14之間的另一個(gè)示例性裝置-裝置或互連裝置控制。該控制服務(wù)器14包括一個(gè)控制器應(yīng)用程序E,而該被控制的服務(wù)器14包括一個(gè)可執(zhí)行應(yīng)用程序C。該被控制的服務(wù)器14還包括INTERFACE-A.XML、該應(yīng)用程序C的應(yīng)用程序接口描述A。應(yīng)用程序E存取該被控制的服務(wù)器14中的應(yīng)用程序接口描述A,以便查詢?cè)摫豢刂频姆?wù)器14的能力和API接口方法。然后應(yīng)用程序E利用XML遠(yuǎn)程程序調(diào)用來命令和控制應(yīng)用程序C,以控制該被控制的服務(wù)器14的硬件或服務(wù)D。日程安排(scheduler)裝置可以是由諸如VCR中的時(shí)延記錄(Time-Delay-Record)控制器的日歷(time of day)驅(qū)動(dòng)的控制服務(wù)器14的一種情況。
在第一示例中,應(yīng)用程序E利用在網(wǎng)上的遠(yuǎn)程查詢來存取應(yīng)用程序接口描述A。在第二示例中,應(yīng)用程序E通過將應(yīng)用程序接口描述A的一個(gè)副本從被控制的服務(wù)器14傳輸?shù)娇刂品?wù)器14來存取應(yīng)用程序接口描述A。然后應(yīng)用程序E本地地查詢?cè)摻涌诿枋鯝。在第三示例中,應(yīng)用程序接口描述A被傳輸?shù)綖榻涌诿枋鎏峁?kù)空間的庫(kù)裝置64,然后應(yīng)用程序E遠(yuǎn)程地查詢?cè)谠搸?kù)中的接口描述A。該庫(kù)裝置64存儲(chǔ)可用于直接控制動(dòng)作和響應(yīng)的有關(guān)應(yīng)用程序的地址(URI)。
參考圖18,XML協(xié)議在該網(wǎng)絡(luò)中的各裝置14的應(yīng)用程序20之間的API級(jí)中的通信棧66里,提供Web標(biāo)準(zhǔn)的通用中間件層。在每個(gè)裝置14中,位于該通信棧的頂上的應(yīng)用程序發(fā)送和接收該網(wǎng)上的通信消息,并且與該裝置棧中,本地地控制該裝置的裝置硬件或服務(wù)軟件的軟件層通信。
標(biāo)示為XML層輸出68的第一XML層API用于發(fā)送消息,而標(biāo)示為XML層輸入70的第二XML層API用于接收消息。方法調(diào)用的XCE定義和XML定義,即,上述的文檔型定義CALL.DTD被用于創(chuàng)建XML層輸出68。此外關(guān)于方法調(diào)用的XCE定義和XML定義,即,上述的文檔型定義INTERFACE.DTD被用于創(chuàng)建XML層輸入70。例如,控制器應(yīng)用程序利用XML層輸出68,而被控制的應(yīng)用程序利用XML層輸入70。
參考圖19,它顯示了服務(wù)器-服務(wù)器命令和控制體系結(jié)構(gòu)的另一個(gè)實(shí)施例?;赬ML的控制體系結(jié)構(gòu)用于關(guān)于Web和互聯(lián)網(wǎng)啟動(dòng)的裝置或服務(wù)的裝置-裝置(服務(wù)對(duì)服務(wù))控制。第一裝置A可以利用XML命令消息,遠(yuǎn)程地控制該網(wǎng)上的第二裝置B中的應(yīng)用程序20。與每個(gè)裝置的接口包括與該裝置中的應(yīng)用程序的接口,該接口以XML格式描述。所述接口可以擴(kuò)展,并且可在中間件層上使用,以由該網(wǎng)上的其它裝置進(jìn)行檢索和翻譯,如下所述。
服務(wù)器A和B中的每個(gè)都包括用于控制該網(wǎng)上的其它服務(wù)器,以及由該網(wǎng)上的其它服務(wù)器控制的硬件和軟件。在圖19種,家庭網(wǎng)絡(luò)裝置A是一個(gè)控制器或模塊,而家庭網(wǎng)絡(luò)裝置B是一個(gè)被控制的裝置或模塊。裝置A和B中的每個(gè)都包括組成接口文檔INTERFACE.XML和文檔型定義INTERFACE.DTD的本地裝置XML接口72 。該INTERFACE.XML文檔包括被相應(yīng)的裝置14支持的對(duì)象描述、方法和參數(shù)。該INTERFACE.DTD文檔可以專用于該裝置的XML接口的有效性檢查。
裝置A和B中的每個(gè)都還包括組成用于分析和確認(rèn)諸如XML接口和XMLPRC命令那樣的XML消息的程序代碼的XML句型分析程序74。該XML句型分析程序74類似于在以上根據(jù)圖18描述的所述XML層輸入70。此外裝置A和B中的每個(gè)都還包括一個(gè)XMLPRC編碼器和解碼器(編解碼器)76,用于編碼XMLPRC消息中的出網(wǎng)調(diào)用(outgoing call)的方法名稱和參數(shù),并在它被分析之后解碼引入的XMLPRC消息,以便檢索其中的方法名稱和參數(shù)。XMLPRC編解碼器76獨(dú)立于裝置XML接口72和裝置-裝置控制體系結(jié)構(gòu),因此,允許使用不同的XMLPRC格式,而不用對(duì)該裝置-裝置控制體系結(jié)構(gòu)的任何方面作改動(dòng)。
包括程序代碼的接口獲取器被裝置A和B中的每個(gè)用來直接從另一個(gè)裝置或從家庭網(wǎng)絡(luò)接口庫(kù)80獲取另一裝置的裝置接口。當(dāng)裝置14時(shí)控制器時(shí),在控制器14中的控制器應(yīng)用程序代碼82通過監(jiān)督控制器14中諸如XML句型分析程序74、接口獲取器78和XMLPRC編解碼器76這樣的軟件和硬件,實(shí)現(xiàn)對(duì)網(wǎng)上其它裝置14的命令和控制。當(dāng)裝置是被控制的裝置時(shí),位于該被控制的裝置14中的被控制的應(yīng)用程序代碼84監(jiān)督裝置14中的軟件和硬件,以便于由其它裝置14控制該裝置14。裝置A和B的每一個(gè)中的家庭網(wǎng)絡(luò)裝置Web服務(wù)器86管理該網(wǎng)絡(luò)上的裝置之間的通信。關(guān)于裝置A和B的每一個(gè)中的本機(jī)查找表88的XML由被控制的應(yīng)用程序84用來將XMLPRC消息中的信息(例如方法名稱、參數(shù)名稱和類型)轉(zhuǎn)換成裝置的本機(jī)接口(例如本機(jī)方法名稱、參數(shù)名稱和類型)。當(dāng)在XML消息和裝置的本機(jī)接口中的方法和參數(shù)名稱一致時(shí),不使用所述表88。
裝置A和B的每一個(gè)都還包括一個(gè)或多個(gè)處理器90,其中每個(gè)處理器90包括從被控制的應(yīng)用程序84指向一個(gè)具體裝置函數(shù)的本機(jī)實(shí)現(xiàn)的指針。在大多數(shù)裝置中,裝置函數(shù)的本機(jī)實(shí)施包括運(yùn)行時(shí)的二進(jìn)制代碼。該二進(jìn)制代碼在匯編時(shí)由例如包括C語言和Java等高級(jí)語言產(chǎn)生。因而,家用電器制造商可以為新的功能增加更多的處理器90,而不會(huì)影響現(xiàn)有處理程序和函數(shù)的實(shí)施。裝置A和B的每一個(gè)中的硬件服務(wù)92包括裝置函數(shù)的本機(jī)實(shí)施。裝置A和B的每一個(gè)都還包括含有裝置函數(shù)的本機(jī)實(shí)施的API的本機(jī)接口94。
此外,諸如家庭網(wǎng)絡(luò)對(duì)象請(qǐng)求中間代理(broker)(HNORB)79和接口庫(kù)(IL)80這樣的網(wǎng)絡(luò)對(duì)象請(qǐng)求中間代理為家庭網(wǎng)絡(luò)10提供中間件層98。如圖19所示,該中間件層98可以定位于第三裝置96或獨(dú)立的控制集線器中。該HNORB 79包括由一裝置14用來發(fā)現(xiàn)連接到網(wǎng)絡(luò)10上的其它裝置14存在的軟件代理。該HNORB軟件代理將裝置名稱組織成命名分層樹形結(jié)構(gòu),將裝置接口組織成所述可檢索接口庫(kù),并將裝置接口提供給請(qǐng)求接口信息的裝置。
包括HNORB 79和IL 80的中間件層可以直接連接到互聯(lián)網(wǎng),使得被連接的家庭裝置可以從本地家庭網(wǎng)絡(luò)10的外部進(jìn)行接入。在一個(gè)本地家庭網(wǎng)絡(luò)中的中間件層98可以連接到互聯(lián)網(wǎng)上的其它本地家庭網(wǎng)絡(luò)中的中間件層98,以提供包含兩個(gè)家庭網(wǎng)絡(luò)10的集成網(wǎng)絡(luò)。在那種情況下,擁有適當(dāng)流密碼的被授權(quán)用戶可以從該用戶的輔助家庭網(wǎng)絡(luò)中的電視接入該用戶的基本家庭網(wǎng)絡(luò)中的DVD的換片器(changer),以便播放視頻并在該電視上觀看它。
為了使用接口庫(kù)80,在本地家庭網(wǎng)絡(luò)上應(yīng)該運(yùn)行至少一個(gè)HNORB&IL。也可使用多個(gè)HNORB&IL。例如,一個(gè)電纜調(diào)制解調(diào)器、幾個(gè)DTV以及一個(gè)中央家庭集線器都可以具有自己的HNORB&IL軟件代理。為了定位HNORB&IL,裝置14在該本地家庭網(wǎng)絡(luò)發(fā)送一個(gè)廣播消息。響應(yīng)該裝置14的第一個(gè)HNORB&IL由該裝置14利用。在HNORB&IL定位后,該裝置14和HNORB&IL馬上可以為登錄、接口請(qǐng)求和提取、以及裝置查找服務(wù)建立點(diǎn)對(duì)點(diǎn)傳輸控制協(xié)議(TCP)或用戶數(shù)據(jù)報(bào)協(xié)議(UDP)連接。如果UDP協(xié)議不能使用,則TCP協(xié)議可以用于諸如IEEE 1394這樣的高帶寬連接?;贖TTP的XMLPRC也可以用于與HNORB&IL通信的裝置。例如,裝置14可以遠(yuǎn)程地調(diào)用HNORB“登錄”方法,以將該裝置接口作為一個(gè)或多個(gè)參數(shù)傳遞,或者,XMLPRC調(diào)用可以從該IL檢索部分或全部裝置接口作為XMLPRC響應(yīng)或返回值。
如前所述,一個(gè)以上的HNORB&IL可以在本地家庭網(wǎng)絡(luò)10中同時(shí)運(yùn)行,其中每個(gè)HNORB&IL識(shí)別可用裝置的一個(gè)子集,并且一個(gè)HNORB&IL可以與其它的HNORB&IL通信,以定位它不能找到的裝置14。在一個(gè)本地家庭網(wǎng)絡(luò)10上的多個(gè)HNORB&IL可以利用諸如TCP或UDP這樣的廣播消息自動(dòng)地相互定位。在這種情況下,多個(gè)HNORB構(gòu)造一個(gè)分布式對(duì)象請(qǐng)求中間代理,而多個(gè)接口庫(kù)80構(gòu)造分布式接口庫(kù)。為了提供故障容錯(cuò),如果一個(gè)HNORB&IL發(fā)生意外終止時(shí),應(yīng)該通知用該HNORB&IL登錄的全部裝置,并且所述裝置可以自動(dòng)地用其它可用的HNORB&IL登錄。
每個(gè)裝置接口具有相關(guān)聯(lián)的一致的、唯一的邏輯名稱。甚至在所述裝置的位置或?qū)嶋H網(wǎng)絡(luò)地址發(fā)生變化之后,其它裝置可以使用所述一致的、唯一的邏輯名稱來識(shí)別和接入一個(gè)裝置。該邏輯名稱和實(shí)際裝置地址的映射由用于命名HNORB中的裝置的軟件代理管理。最好,利用標(biāo)準(zhǔn)命名方法。最好使用分層命名結(jié)構(gòu)將裝置名稱組織成分層樹。該分層結(jié)構(gòu)可以使用“/”表達(dá),它類似于文件系統(tǒng)中的同一符號(hào)。該結(jié)構(gòu)可以利用不同方法產(chǎn)生,例如由象家/MPEG2/TV這樣的不同服務(wù)類型產(chǎn)生;或由不同的位置產(chǎn)生,例如家/起居室/VCR。為了性能和效率的目的,幾個(gè)命名樹可以共存。
在圖19中的控制服務(wù)器A和控制服務(wù)器B之間的示范型命令和控制中,中間件層98位于第三裝置96中,或者可以位于獨(dú)立的中央集線器中。變灰的框顯示用于描述在圖19中的特定命令和控制處理的裝置元件。在一個(gè)示例性操作情況中,當(dāng)裝置A和裝置B在網(wǎng)絡(luò)上成為可用和可接入之后,每個(gè)裝置將它自己及其XML接口登錄和提交給中央HNORB和IL中間件層98。如果中央HNORB和IL中間件層98不可用,則每個(gè)裝置在本地家庭網(wǎng)絡(luò)上廣播一條消息通告自己。
裝置A的控制器應(yīng)用程序82嘗試查詢被控制的裝置B的裝置接口的全部或部分。如果接口庫(kù)80不可用,則首先通過發(fā)送一個(gè)請(qǐng)求給網(wǎng)上的裝置B,然后從裝置B接收裝置B的XML接口,控制器A可以直接從控制器B請(qǐng)求和提取被控制的裝置B的裝置接口。但如果接口庫(kù)80可用,則控制器A可以從接口庫(kù)80請(qǐng)求被控制的裝置B的裝置接口的全部或部分。HNORB的軟件代理從接口庫(kù)80結(jié)構(gòu)獲得裝置B的XML裝置接口,并將其發(fā)送回控制器A。
一旦控制器A接收到裝置B的XML裝置接口,裝置A的控制器應(yīng)用程序就使用裝置A的XML句型分析程序74來分析和解釋裝置B的裝置接口。然后裝置A的XMLPRC編解碼器76使用該句型分析程序的結(jié)果產(chǎn)生所需的XMLPRC命令消息。該XMLPRC命令消息被發(fā)送到該網(wǎng)上的被控制裝置B。在接收到所述XMLPRC命令消息之后,裝置B的被控制的應(yīng)用程序84就使用裝置B的XML句型分析程序74來分析和解釋接收到的XMLPRC命令消息。然后裝置B的XMLPRC編解碼器76解碼該句型分析程序的結(jié)果,以獲得該命令消息中的方法調(diào)用信息,該信息包括執(zhí)行被請(qǐng)求的服務(wù)的裝置B函數(shù)的方法名稱和參數(shù)。
然后,裝置B的被控制的應(yīng)用程序84使用裝置B中針對(duì)本機(jī)查找表88和處理器90的XML,通過裝置B的本機(jī)接口,存取和開始裝置B的本機(jī)函數(shù)實(shí)施。如果函數(shù)產(chǎn)生任何響應(yīng)或返回值,則所述任何響應(yīng)或返回值被編碼成XML或XMLPRC消息,并且被發(fā)送到控制器A。此外,中間件層HNORB和IL可以給控制器A提供被控制的裝置的一個(gè)基準(zhǔn),因此,該裝置A可以產(chǎn)生對(duì)裝置B本機(jī)函數(shù)的遠(yuǎn)程調(diào)用,作為本地裝置A本機(jī)函數(shù)的調(diào)用。
最好采用標(biāo)準(zhǔn)的XMLPRC格式,以便所有的裝置都可以解釋,和解碼該網(wǎng)絡(luò)上的RPC調(diào)用。因?yàn)楸豢刂频难b置14的裝置接口可以由控制器14查詢和檢查,所以為了提高效率的目的,最好采用含有足夠多裝置接口信息的簡(jiǎn)化的XMLPRC格式。以下示例顯示了關(guān)于一次觸發(fā)記錄(OTR)和延遲記錄(TDR)操作的XMLPRC調(diào)用的兩種可能格式。示例ⅠXML RPC調(diào)用,包括詳細(xì)標(biāo)記和接口信息示例性格式1.OTR調(diào)用的示例<pre listing-type="program-listing"><![CDATA[ ?。??xml version =“1.0”?> ?。糲all> <o(jì)bject>DVCR1.record</object> <method>timeDelayedRecod</method> <parameters> <parameter> <name>channel</name> <value><int>4</int></value> ?。?parameter> ?。紁arameter> <name>recordTime</name> ?。紇alue><time>2:10:30</time></value> ?。?parameter> </parameters></call>]]></pre>2.TDR調(diào)用的示例<pre listing-type="program-listing"><![CDATA[ ?。紉ml version=“1.0”?> <call> <o(jì)bject>DVCR 1.record</object> <method>oneTouchRecord</method> <parameter> <parameter> <name>channel</name> ?。紇alue><channelName>NBC</channelName></value> </parameter> <parameter> ?。糿ame>startTime</name> ?。紇alue><datetime.iso8601>19990401T19:05:35</ datetime.iso8601></value> </parameter> <parameter> ?。糿ame>recordTime</name> <value><time>2:00:00</time></value> </parameter> </parameter> </call>]]></pre>示例ⅡXML RPC調(diào)用,帶有精簡(jiǎn)標(biāo)記和接口信息的示例性格式1.OTR調(diào)用的示例<pre listing-type="program-listing"><![CDATA[ <?xml version =“1.0”?> ?。糲all> <o(jì)bject>DVCR1 .record</object> <method>timeDelayedRecod</method> <parameter value =“4”>channel</parameter> <parameter value=“2:10:30”>recordTime</parameter></call>]]></pre>2.TDR調(diào)用的示例<pre listing-type="program-listing"><![CDATA[ ?。紉ml version=“1.0”?> <call> <o(jì)bject>DVCR1 .record</object> ?。糾ethod>oneTouchRecord</method> <parameter value=“NBC”>channel</parameter> <parameter value=“19990401T19:05:35”>startTime</parameter> <parameter value=“2:00:00”>recordTime</parameter> </call>]]></pre>參考圖20,家庭裝置14的裝置接口基于采用標(biāo)準(zhǔn)化詞匯的行業(yè)標(biāo)準(zhǔn)的結(jié)構(gòu)化數(shù)據(jù)庫(kù)100。關(guān)于新接口和詞匯的接口數(shù)據(jù)可以增加到數(shù)據(jù)庫(kù)100種。使用英文描述全部CE裝置的CE對(duì)象、方法和參數(shù)的綜合定義或數(shù)據(jù)庫(kù)被稱為CE數(shù)據(jù)庫(kù)102。該綜合定義或數(shù)據(jù)庫(kù)可以寫成C語言、XML語言或其它能夠表示對(duì)象及其相應(yīng)的方法和參數(shù)的格式。采用標(biāo)準(zhǔn)的XML詞匯的該綜合定義或數(shù)據(jù)庫(kù)稱為XCE定義或數(shù)據(jù)庫(kù)104。
控制器和被控制的應(yīng)用程序82和84使用基于XML的XCE數(shù)據(jù)庫(kù)104的標(biāo)準(zhǔn)接口子集編程。每個(gè)裝置接口和寫成XML語言的所述應(yīng)用程序82和84一起存儲(chǔ)。雖然XCE數(shù)據(jù)庫(kù)104不必寫成XML語言,但在匯編時(shí)產(chǎn)生的所述子集在本發(fā)明的一個(gè)實(shí)施例中是XML語言的,正如以上根據(jù)圖15所描述的那樣。
在圖20中,對(duì)于嵌入式器具14,標(biāo)示為“制造商”信息的信息在制造時(shí)內(nèi)置于該器具14中,而在該網(wǎng)絡(luò)中被標(biāo)示作“家庭網(wǎng)絡(luò)”的信息是該器具的操作運(yùn)行時(shí)間的狀況的部分。標(biāo)示為1…N的N個(gè)裝置14的裝置XML接口72是標(biāo)準(zhǔn)化的XCE數(shù)據(jù)庫(kù)104中的數(shù)據(jù)的分支。家庭網(wǎng)絡(luò)接口庫(kù)(HNIL)106提供連接到該家庭網(wǎng)絡(luò)的可用裝置的裝置接口集合。該家庭網(wǎng)絡(luò)接口庫(kù)106是整個(gè)XCE數(shù)據(jù)庫(kù)104的一個(gè)子集。
在圖16中,將裝置接口從裝置A傳輸?shù)窖b置B,以便于裝置B中的應(yīng)用程序B檢查該裝置A的接口的內(nèi)容。正如上述詳述的那樣,裝置接口包括由裝置支持的對(duì)象、方法和參數(shù)的描述,例如稱為裝置A的INTERFACE-A.XML。裝置XML接口72是寫成XML格式的裝置接口。XCE數(shù)據(jù)庫(kù)104的內(nèi)容是提供裝置接口面向服務(wù)的結(jié)構(gòu)。
參考圖20,XCE數(shù)據(jù)庫(kù)104還包括關(guān)于CE裝置的一個(gè)標(biāo)準(zhǔn)化的XCE接口文檔類型定義(DTD),它提供一個(gè)標(biāo)準(zhǔn)化的規(guī)則集,以便使用XML表示CE裝置14。該DTD或其子集可以用于有效性檢查。被標(biāo)示為制造商工具108的軟件代理過濾和利用關(guān)于特定CE裝置的該標(biāo)準(zhǔn)化XCE定義104的子集,并且使用該標(biāo)準(zhǔn)化的XCE接口DTD來產(chǎn)生該CE裝置的XML裝置接口72,例如INTERFACE.XML和INTERFACE.DTD。根據(jù)該標(biāo)準(zhǔn)化的XCE接口DTD,文檔INTERFACE.XML包括由特定裝置支持的對(duì)象、方法和參數(shù)的描述。文檔INTERFACE.DTD是該標(biāo)準(zhǔn)化的XCE接口DTD的子集,可以用于關(guān)于該裝置的XML接口的有效性檢查。其它文檔類型定義也可以用來創(chuàng)建INTERFACE.XML文檔。
包括所述XML接口文檔和所述DTD文檔的CE裝置的XML接口72存儲(chǔ)在諸如家庭網(wǎng)絡(luò)接口庫(kù)106那樣的通用可存取庫(kù)中。軟件代理收集網(wǎng)上的全部可接入裝置14的裝置接口72,并將它們與該裝置名稱/地址信息一起放到可搜索的結(jié)構(gòu)化接口庫(kù)106中。該接口庫(kù)106是XCE數(shù)據(jù)庫(kù)104的子集,產(chǎn)生接口庫(kù)106的處理相似于重建部分或全部XCE數(shù)據(jù)庫(kù)104的處理。該接口庫(kù)106可以作為家庭網(wǎng)絡(luò)上的全部裝置14的裝置接口72的集合,或根據(jù)存儲(chǔ)器空間的利用率作為高速緩沖存儲(chǔ)器,其中只有最近使用過的裝置接口72存儲(chǔ)在這里。在裝置14根據(jù)諸如DVD播放機(jī)換盤這樣的事件更新器裝置接口72的情況下,該裝置接口72的部分基于事件服務(wù)更新。
參考圖21,最好每個(gè)裝置14的裝置接口定義72均具有分層形式。這是因?yàn)閷?duì)于家庭裝置14來說,裝置接口定義72可能過于冗長(zhǎng)。一般來說,一次存取一個(gè)或幾個(gè)象用于延遲記錄的單一函數(shù)這樣的函數(shù),因此,只有該裝置接口72的一小部分被使用。僅呈現(xiàn)(render)裝置接口72的一部分而不呈現(xiàn)整個(gè)裝置接口72是更有效。通過使用分層的裝置XML接口,控制器14可以通過在來自被控制的裝置14或HNORB和IL中間件層98的、關(guān)于XML裝置接口的請(qǐng)求中指定所需的函數(shù)類或多個(gè)函數(shù)組,來請(qǐng)求被控制的裝置14的部分裝置接口72。在后一種情況下,HNORB和IL中間件層98送回該裝置接口72的所需部分。
參考圖21,該分層裝置接口結(jié)構(gòu)可以包括四層(1)用于每個(gè)家庭網(wǎng)絡(luò)的XML接口的第一層112,它列出當(dāng)前可用的裝置,(2)用于每個(gè)裝置的XML接口的第二層114,它列出函數(shù)類,(3)用于裝置的每個(gè)函數(shù)類的特定的XML接口的第三層116,以及(4)用于一個(gè)函數(shù)類中的每一個(gè)函數(shù)的具體XML接口的第四層118。在家庭網(wǎng)絡(luò)里邊,只利用了三個(gè)較低級(jí)的層114、116和118,第一層112在該家庭網(wǎng)絡(luò)之外利用。
圖22是所述的層112、114、116、118以及相應(yīng)的接口示例。每一層中的接口均經(jīng)過象XLink或XPointer這樣的、提供雙向鏈接的鏈路鏈接到上層或下層(如果可用的話)。Xlink包括含有以下兩部分的超級(jí)鏈接功能的程序包(1)允許同樣地認(rèn)出XML文檔中的鏈路的Xlink部件,以及(2)允許鏈路尋址到XML文檔的精確子部分的XPointer部件。因而,Xlink控制如何將鏈路插入XML文檔,這里的鏈路可以指向諸如GIF文檔這樣的數(shù)據(jù)。此外,XPointer控制在鏈接到一個(gè)XML文檔時(shí)可以從任何地方(例如從HTML文件)繼續(xù)一個(gè)URL的碎片(fragment)識(shí)別符。
根據(jù)本發(fā)明,在一個(gè)服務(wù)器14控制另一個(gè)服務(wù)器14的典型命令和控制模型中,第一裝置14嘗試在第二接口層114中查詢第二裝置14的裝置接口。在選擇函數(shù)類(FC)之后,第一裝置14查詢諸如記錄類這樣的第二裝置14中的特殊函數(shù)類的接口層116。此外,該第一裝置14可以查詢諸如OTR或TDR這樣的特殊函數(shù)類的接口層118,以便對(duì)所述函數(shù)進(jìn)行調(diào)用。分層或樹結(jié)構(gòu)使得查找接口函數(shù)變得更有效和節(jié)約網(wǎng)絡(luò)帶寬。示例性接口文件結(jié)構(gòu)和層可以是第一層112-HN1.xml第二層114-VCR1.xml第三層11 6-VCR1_RecordCategory.xml第四層118-VCR1_RecordCategory_OTR.xml類似地,家庭網(wǎng)絡(luò)接口庫(kù)106最好是分層的,并且以各種各樣的方式結(jié)構(gòu)化,例如按裝置的不同服務(wù)類型方式或按諸如房間這樣的不同位置方式。所述分層結(jié)構(gòu)是本地家庭網(wǎng)絡(luò)10與其它家庭網(wǎng)絡(luò)或互聯(lián)網(wǎng)的接口。
以下顯示的是可以以XML語法實(shí)現(xiàn)的示例性分層裝置接口定義72。
<pre listing-type="program-listing"><![CDATA[consumer(document_file,doc) +----document_file<server_home.dtd,server_auto.dtd>+----doc(services_home, server_auto, server_samsung_web_site,avc_comands, cal_commands,,) +----services_home(xml_utility,client,server_av,lighting, comms,hvac,utility,security,appliances,convenience,,) +----xml_utility(download_DTD_file,,) +----client(acknowledge, attention, error, post_message, sound,stop_schedule, stop_all,,) +----sound(alarm, ring, buzz,,) +----server_av(controls_gen,source,sink) +----controls_gen(ping,process_infor,setup,,) +----process_info(s/wid,h/wid) +----h/wid(ser_no,manuf,model,class,,) +----s/wid(ser_no,exe_name,version,,) +----setup(clock,,) +----clock(hours,minutes,seconds) +----source(service_id, media, rate, protocol, stream_format, controls_av,,) +----sink(service_id,media,rate,protocol,stream_format,controls_av,,) +----service_id(url,,) +----media(tpt_stream,ram,disk,tape,,) +----disk(name,number,,) +----rate<value> +----protocol(61883/1394,UDP/IP/Ethernet,,) +----61883/1394(isoch_ch_no) +----stream_format(video,audio,,) +----video(dv,mpeg2tpt,dsstpt,mpeg2pes, mpeg10801-tpt,) +----audio(mpeg3,ac-3,midi,,) +----controls_av(flow_control,tune,timer_record,ui_control,,) +----timer_record(me,flow_control) +----flow_control(play,stop,goto,record,,) +----play(time_params)+----record(time_params) +----time_params(now,start,duration,end,,) +----tune(send_epg,channel,,) +----channel(number,id,time_params,,) +----ui_control(dispiay,acoustic) +----display(brightness,contrast,color/tint,horiz_size, vert_size,,) +----acoustic(volumn,base,treble,balance,fade,) +----lighting(sensors,lights,send_epg) +----sensors(living_room,sky,,) +----lights(rooms_up,rooms_down,yard,,) +----rooms_up(bedl,bed2,bed3,bed4,,) +----bedl(lamp,dimmer,,) +----dimmer<value> +----rooms_down(family,kitchen,living,dining,soho,garage,,) +----yard(front,back) +----comms(homehub,intercoin,telco,) +----homehub(send_device_list,send_configuration,send_snmp_mib,,) +----intercom() +----telco() +----hvac(controls_gen,controls_havc,,) +----controls_hvac(a/c,heat,temp,humidity,) +----temp(low,high,hysteresis,,) +----utility(meters,energy_mgmt,,) +----meters(water,gas,electric,,) +----water<value>,gas<value>,electric<value> +----security(sensors,send_epg,alarm,,) +----sensors(peripheral,motion,,) +----peripheral(rooms_up,rooms_down,,) +----motion(room_down,yard,,) +----appliances(microwave,range,oven,fridge,freezer,coffee,toaster,washer,dryer,water_heater,,) +----microwave(send_epg,controls,,) +----fridge(temp,,) +----water_heater(temp) +----convenience(window,curtain_open,door/gate,pool/spa,bath, fountain,lift,jacuzzi,,) +----curtain_open<value> +----server_auto(message,server_anto_ford_explorer_98,,) +----server_auto_ford_explorer_98(mileage,maintenance,,) +----mileage<data> +----maintenance<data> +----server_samsung_web_site(message,service,help,,,) +----avc_commands<,,,command_string,,,> +----service_id url,,) +cal_commands<,,,command_string,,,> +----service_id url,,)]]></pre>所述的分層裝置接口定義72可以包括下列字段‘document file’名稱,它提供該文檔類型定義(DTD)文件的名稱,該文件可以由XML句型分析程序74用于確認(rèn)XCE數(shù)據(jù)庫(kù)104、或者XCE數(shù)據(jù)庫(kù)104的XML版的部分的合法性和正確性。針對(duì)XCE結(jié)構(gòu)的不同部分可以存在幾種DTD文件,其中所述多個(gè)DTD不同于關(guān)于針對(duì)通信的RPC.CALL和INTERFACE.DTD文檔類型定義。
‘doc’名稱,提供覆蓋能力、屬性、通信和控制接口的區(qū)域的頂級(jí)名稱。
‘Server home’,提供關(guān)于家庭自動(dòng)化、家用電器、公用設(shè)施等的區(qū)域。
‘Server auto’,用于車庫(kù)的汽車,顯示可用于一種或多種汽車類型的消息接口。例如,server_anto_ford_explorer_98是關(guān)于一種特定汽車的接口。這允許接入該汽車的里程和維護(hù)接口,并且還可以用來例如由汽車制造商或車庫(kù)遠(yuǎn)程接入,用于檢修和遠(yuǎn)程診斷。
‘server_samsung_web_site’,提供與家庭之外的制造商Web站點(diǎn)的通信。包括消息、服務(wù)、幫助等接口。
‘AVC commands’和‘CAL commands’,例如提供能夠解釋AV/C和CAL語言的傳統(tǒng)(legacy)裝置。該結(jié)構(gòu)的這一部分識(shí)別所述語言中的命令,這里的命令以XML語言標(biāo)注和攜帶。因而,該內(nèi)容不是XCE(Web)對(duì)象,并且協(xié)議轉(zhuǎn)換應(yīng)用程序可以被用于與原始CAL或AV/C的應(yīng)用軟件的接口。
在以上描述種,‘Server home’提供包括A/V家用電器的主結(jié)構(gòu)。詳細(xì)展開了該結(jié)構(gòu)的關(guān)于視頻服務(wù)接收信宿(sink)和流目的地(例如DVCR)控制接口的具體示例的分支。典型的家庭網(wǎng)絡(luò)中的控制接口可以包括‘ xml utility’提供支持諸如下載一個(gè)被更新的DTD文件、接口文件、程序文件等那樣的實(shí)用網(wǎng)絡(luò)功能的細(xì)節(jié)。
‘client’描述包括Web瀏覽器的客戶機(jī)裝置12的接口部分。例如,‘a(chǎn)cknowledgment’指示被發(fā)出的消息和或命令的確認(rèn)的控制器驗(yàn)收。
‘server av’為所有可利用的音頻和視頻服務(wù)提供控制和負(fù)載接口,包括STB、DVCR、DTV、DVD、AUDIO等。
‘lighting’提供與家庭自動(dòng)化照明控制器的接口,包括傳感器、燈等。
‘comms’提供與通信裝置的接口,一般是為了裝置設(shè)置或參數(shù)的實(shí)用目的或遠(yuǎn)程管理,或者為了恢復(fù)配置。
‘hvac’為HVAC系統(tǒng)提供遠(yuǎn)程控制接口,可以用來從例如家庭之外的公共公司控制所述系統(tǒng),以便在每天的最大負(fù)載時(shí)期內(nèi)關(guān)閉家庭HVAC系統(tǒng)。此外,所述接口可以用來通過一種器具從家庭中控制HVAC系統(tǒng),以使得基于裝置的控制器提供比自動(dòng)調(diào)溫器控制更精確的控制機(jī)構(gòu)。
‘utility’,例如提供用于讀取家庭供給表(utility meter)的接口。
‘security’提供用于安全傳感器和警報(bào)設(shè)置的接口。因而,使用該接口,運(yùn)行在家庭網(wǎng)絡(luò)裝置上的應(yīng)用程序可以接入位于家庭周圍的傳感器和檢測(cè)裝置,用于監(jiān)視和控制那些裝置。
‘a(chǎn)ppliances’提供用于廚房、公用或普通家庭用具的接口,例如包括提供遠(yuǎn)程控制或監(jiān)視溫度設(shè)置或其他來自控制器的控制和參數(shù)。在一種情況中,微波用具可以掃描食物包裝袋上的條形碼信息,并且接入制造商的數(shù)據(jù)庫(kù)來獲得適合已知類型的微波系統(tǒng)烹飪?cè)撌澄锏臅r(shí)間。使用裝置對(duì)裝置的命令和控制的用具的這種集成,提供很多用來提供諸如當(dāng)在廚房或客廳接電話時(shí),自動(dòng)暫停洗碗機(jī)和讓電視靜音這樣的服務(wù)的控制情況。
‘convenience’提供與用于提供方便服務(wù)的裝置的接口,例如與窗簾、窗戶、百葉窗、渦流控制器的接口。
在以上的描述中,‘server av’是關(guān)于提供A/V流服務(wù)的A/V用具的控制接口結(jié)構(gòu)的部分,并且被分成‘conrtols-gen’、‘source’以及‘sink’能力。
‘conrtols-gen’提供用于裝置制造商屬性和進(jìn)行諸如查驗(yàn)(ping)測(cè)試裝置的存在的普通實(shí)用程序的接口。此外,還可以包括造在其中的諸如軟件和硬件標(biāo)識(shí)和版本信息這樣的屬性。提供這種接口的裝置返回提供所述軟件的名稱或標(biāo)識(shí)的數(shù)據(jù),而不會(huì)影響任何控制作用。還可以包括設(shè)置日歷鐘的時(shí)間的接口。
‘sink’提供用于介質(zhì)流服務(wù)裝置的接口。該結(jié)構(gòu)根據(jù)所提供的服務(wù)(即視頻流記錄和播放)而不是根據(jù)諸如VCR這樣的特定裝置名稱進(jìn)行組織。例如,對(duì)于帶有視頻節(jié)目格式的網(wǎng)絡(luò)來說,調(diào)諧器和DVD播放器都是視頻節(jié)目流源,并且可以對(duì)諸如開始和結(jié)束進(jìn)行控制。特定裝置的控制中的差異由該定義結(jié)構(gòu)的較低層尋址。
‘source’提供類似于‘sink’接口的接口。
參考以上的描述,‘service_id’或‘a(chǎn)pplication_interface_id’包括一個(gè)或多個(gè)裝置14的名稱、地址或Web地址或URL位置。因?yàn)閄CE數(shù)據(jù)庫(kù)104包括全體約定接口,所以一般來說,動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)軟件代理給每一個(gè)裝置分配一個(gè)地址和一個(gè)缺省名稱,并且將該地址和名稱增加到該服務(wù)或裝置的接口。然后,軟件代理110從本地地連接到該家庭網(wǎng)絡(luò)的全部裝置收集包括子集和或‘裝置的部分XCE’定義的裝置接口72,以產(chǎn)生‘網(wǎng)絡(luò)的部分XCE’。附加的有關(guān)外部接口可以增加到關(guān)于外部控制的結(jié)構(gòu)中。例如,按照連接到該網(wǎng)絡(luò)的裝置的裝置接口,‘service_id’可以是接收到的結(jié)構(gòu)或包括軟件代理中的項(xiàng)目的網(wǎng)絡(luò)接口庫(kù)106中的名稱/地址。這以后用戶可以在該數(shù)據(jù)庫(kù)中查找服務(wù),并且可以使用所述名稱/地址存取其接口包括該庫(kù)的特定數(shù)據(jù)分支的應(yīng)用程序。因而,該網(wǎng)絡(luò)可以包括多個(gè)由所述名稱/地址信息區(qū)分的相同服務(wù)。
‘media’提供關(guān)于介質(zhì)類型的接口,這些介質(zhì)例如包括來自調(diào)諧器的傳輸流、來自PC DRAM的RAM、用于CD和DVD的盤以及磁帶??梢悦妥R(shí)別這些介質(zhì),并且控制器可以查找XCE數(shù)據(jù)庫(kù)來識(shí)別當(dāng)前設(shè)置在網(wǎng)絡(luò)中的介質(zhì)。當(dāng)在網(wǎng)上提供諸如DVD之類的新介質(zhì)時(shí),裝置72中識(shí)別在盤上的節(jié)目材料的那部分因此變化。因而,不必傳輸整個(gè)裝置接口72給XCE數(shù)據(jù)庫(kù),而僅僅傳輸有關(guān)的部分即可。在接收引起注意的信號(hào)時(shí),庫(kù)軟件代理110可以獲取新的更新,并且將其放在接口庫(kù)106的適當(dāng)位置。磁盤介質(zhì)的增加類似于增加服務(wù)給網(wǎng)絡(luò),或者連接其它用具到網(wǎng)絡(luò)。
‘rate’提供用于裝置接口的數(shù)據(jù)流速率值,例如6M位/每秒或19.2位/每秒。
‘protocol’識(shí)別用于所述數(shù)據(jù)流的協(xié)議。如果提供一種以上的協(xié)議,例如61883/1394或UDP/IP,則選擇所要求的協(xié)議。
‘stream format’提供關(guān)于數(shù)字流音頻和視頻片斷的打包格式和/或壓縮標(biāo)準(zhǔn)。如果提供一種以上的格式,則經(jīng)由接口消息選擇所要求的格式。控制器應(yīng)用程序82可以檢查可用的格式,以判定是否存在兼容的。
‘controls av’為A/V介質(zhì)用具提供主控接口。
‘Flow control’提供諸如PLAY、STOP、GOTO、RECORD等之類的數(shù)據(jù)流控制作為用于特定裝置的方法。這些方法除了例如PC軟件之外,對(duì)嵌入式用具不發(fā)生變化。該控制可以包括用于延遲操作的時(shí)間參數(shù)。
‘Tuning’提供用于調(diào)諧控制的接口。控制器14可以發(fā)送請(qǐng)求給被控制的裝置14的接口,而被控制的裝置14送回如上所述的電子節(jié)目指南(EPG)數(shù)據(jù)結(jié)構(gòu)。
‘UI control’提供與被控制的應(yīng)用程序84的接口,以控制關(guān)于顯示的調(diào)整,例如亮度和對(duì)比度,以及關(guān)于音頻的調(diào)整,例如音量和低音。
‘Timer record’提供用于控制器應(yīng)用程序82的設(shè)置數(shù)據(jù)的接口,以實(shí)施延時(shí)記錄。可以利用直接頻道調(diào)諧信息和流控制(time_aparams)信息。
以上的描述可以均等地用于客戶機(jī)裝置12??梢岳藐P(guān)于CE空間的一種替換語法XCE定義或數(shù)據(jù)庫(kù)。該替換語法XCE數(shù)據(jù)庫(kù)包括,例如,含有家庭自動(dòng)化、用具和汽車在內(nèi)的全部服務(wù)描述。在服務(wù)對(duì)象提供用于控制的撓性(flexibility)和參數(shù)的情況下,利用控制方法按要求控制該對(duì)象。以下顯示以AV/C和CAL命令語言寫成的示例性命令,包括二進(jìn)制和十六進(jìn)制數(shù)據(jù)串。
<pre listing-type="program-listing"><![CDATA[consumer(document_file,doc) +----document file<server home.dtd,server_auto.dtd>+----doc(avc_comands, cal_commands, services_home, server_auto,server_samsung_web_site,server_anto_ford_explorer_98,,) +----avc_commands<…command_string…> +----cal_commands<…command_string…> +----services_home(client,av,lighting,comms,hvac,utility, security,appliance,convenience,,) +----xml_utility(download_DTD_file,,) +----client(acknowledge, attention, error, post_message, sound,stop_schedule,stop_all,,) +----sound(alarm,ring,buzz,,) +----server_av(source,sink) +----source(service_id, media, rate, protocol, stream_format, controls_gen,controls_av,,) +----sink +----service_id(url,,) +----media(tpt_stream,ram,disk,tape,,) +----disk(name,number,,) +----rate<value> +----protocol(61883/1394,UDP/IP/Ethernet,,) +----61883/1394(isoch_ch_no) +----stream_format(video,audio,,) +----video(dv,mpeg2tpt,dsstpt,mpeg2pes,mpeg1080i-tpt,) +----audio(mpeg3,ac-3,midi,,) +----controls_gen(ping,process_info,setup,,) +----controls_av(fiow_control,tune,timer_record,ui_control,,) +----process_info(s/w_id,h/w_id) +----h/w_id (ser_no,manuf,model,class,,) +----s/w_id(ser_no,exe_name,version,,) +----setup(clock,,) +----clock(hours,minutes,seconds) +----time_record(tune,flow_control)+----flow_control(play,stop,goto,record,,) +----play(time_params) +----record(time_params) +----tune(send_epg,channel,,) +----channel(number,id,time_params,,) +----time_params(now,start,duration,end,,) +----ui_control(dispiay,acoustic) +----display(brightness,contrast,color/tint,horiz_size, vert_size,,) +----acoustic(volumn,base,treble,balance,fade,) +----lighting(screen,light,send_epg) +----sensors(living_room,sky,,) +----lights(rooms_up,rooms_down,yard,,) +----rooms_up(bedl,bed2,bed3,bed4,,) +----rooms_down(family,kitchen,living,dining,soho, garage,,) +----yard(front,back) +----bedl(lamp,dimmer,,) +----dimmer<value> +----comms(netmam,intercom,telco,) +----netman(send_device_list, send_configuration, send_snmp_mib,,) +----intercom() +----telco() +----hvac(controls_gen,controls_havc,,) +----controls_hvac(a/c,heat,temp,humidity,) +----temp(low,high,hysteresis,,) +----utility(meters,energy_mgmt,,) +----meters(water,gas,electric,,) +----water<value>,gas<value>,electric<value> +----security(sensors,send_epg,alarm,,)+----sensors(peripheral,motion,,) +----peripheral(rooms_up,rooms_down,,) +----motion(room_down,yard,,) +----appliances(microwave,range,oven,fridge,freezer, coffee,toaster,washer,dryer,water_heater,,) +----microwave(send_epg,controls,,) +----fridge(temp,,) +----water_heater(temp) +----convenience(window,curtain_open,door/gate,pool/spa, bath,fountain,lift,,) +----curtain_open<value> +----server_auto(message,mileage,maintenance,,) +----mileage<data> +----maintenance<data>]]></pre>另一方面,本發(fā)明使用對(duì)關(guān)于網(wǎng)絡(luò)中的裝置-裝置命令和控制的現(xiàn)有的命令語言實(shí)施。裝置包括內(nèi)部對(duì)象和在運(yùn)行時(shí)間根據(jù)現(xiàn)有的傳送機(jī)構(gòu)創(chuàng)建二進(jìn)制串的API。在這種情況下,為了提供從該網(wǎng)中的一個(gè)裝置14對(duì)網(wǎng)中的其它裝置14的XML遠(yuǎn)程程序調(diào)用(XML RPC),要用對(duì)XML服務(wù)API的調(diào)用替代現(xiàn)有的應(yīng)用程序接口實(shí)施。因而,原來的實(shí)施等效于XML服務(wù)API的包裝(wrapper)。圖18還顯示了使用諸如虛線框中的CAL或AV/C之類的其它命令語言創(chuàng)建的應(yīng)用程序,它們的接口實(shí)現(xiàn)用XCE/XML服務(wù)API中的包裝替代。以下顯示了用于將CAL命令語言變成XML RPC格式的示例。現(xiàn)有實(shí)施void DeviceCALCommand(int command){··/*創(chuàng)建CAL格式化的字節(jié)串來表示這個(gè)對(duì)象/方法,并輸出給線路*/
CreatCALFormattedByteString(command);/*對(duì)每種協(xié)議都不同*/SendCALByteString();/*對(duì)每種協(xié)議都不同*/}包裝的XML服務(wù)API調(diào)用void DeviceCALCommand(int command){/*用對(duì)XML服務(wù)API的調(diào)用替代CAL實(shí)施*/CreateXMLMessage(command);/*總是相同*/sendXMLMessage();/*總是相同*/}參考圖23,另一方面,本發(fā)明提供用在網(wǎng)絡(luò)的不同裝置之間的裝置間通信的標(biāo)準(zhǔn)命令協(xié)議和控制語言翻譯。對(duì)于共享信息的不同裝置,該信息必須采用請(qǐng)求的裝置可以解釋的格式。為了讓裝置120控制另一裝置22,這兩個(gè)裝置都必須使用通用語言來解釋相互之間的命令。本發(fā)明提供用于數(shù)據(jù)和命令協(xié)議的通用識(shí)別格式。
在一個(gè)實(shí)施例中,提供數(shù)據(jù)和命令協(xié)議的通用表達(dá)或打包方法,接收裝置122由此可以判定被傳輸?shù)臄?shù)據(jù)本機(jī)格式。如果接收裝置122能夠解釋本機(jī)格式,則可以直接接收該數(shù)據(jù)。否則,接收裝置122可以請(qǐng)求翻譯裝置124或應(yīng)用程序?qū)⒃摂?shù)據(jù)翻譯成請(qǐng)求裝置122可以解釋的所需格式。翻譯裝置124或應(yīng)用程序判定該原始數(shù)據(jù)的本機(jī)格式,將該數(shù)據(jù)翻譯成所述的所需格式,并且將被翻譯的數(shù)據(jù)發(fā)送到請(qǐng)求裝置122。
因而,即使該數(shù)據(jù)本來是由發(fā)送裝置120以請(qǐng)求裝置的本機(jī)語言格式提供,請(qǐng)求裝置122也處理那個(gè)數(shù)據(jù)。請(qǐng)求裝置122還以請(qǐng)求裝置的本機(jī)格式發(fā)回一個(gè)響應(yīng)給發(fā)送裝置120,或者通過用于翻譯成發(fā)送裝置120的本機(jī)格式的翻譯裝置124或應(yīng)用程序、由代理發(fā)送一個(gè)響應(yīng)。該翻譯方法可以用于包括命令協(xié)議、數(shù)據(jù)文件和音頻/視頻流的信息。
對(duì)于不使用上述通用格式的裝置,本發(fā)明提供將包括命令協(xié)議在內(nèi)的數(shù)據(jù)翻譯到這樣的不一致的裝置,以及從這樣的不一致的裝置將包括命令協(xié)議在內(nèi)的數(shù)據(jù)翻譯出來的服務(wù)。例如,當(dāng)一個(gè)不一致的裝置120發(fā)送數(shù)據(jù)到一致的裝置122時(shí),一致的裝置122可以根據(jù)該數(shù)據(jù)的本機(jī)格式的判定來翻譯該數(shù)據(jù)。例如,一致的裝置122可以為該數(shù)據(jù)內(nèi)的特定位模式而檢查該數(shù)據(jù)。當(dāng)一致的裝置發(fā)送數(shù)據(jù)到已知的不一致的裝置時(shí),該一致的裝置可以在傳輸之前、根據(jù)該不一致的裝置的本機(jī)格式的判定翻譯該數(shù)據(jù)。
一個(gè)示例性實(shí)現(xiàn)可以用于支持IP和HTTP協(xié)議的家庭網(wǎng)絡(luò)。該家庭網(wǎng)絡(luò)可以連接到互聯(lián)網(wǎng),來為所需功能獲得各種應(yīng)用程序和服務(wù)。因而,可以使得通用格式法與互聯(lián)網(wǎng)協(xié)議和在互聯(lián)網(wǎng)和家庭網(wǎng)絡(luò)上操作的程序兼容。
提供通用數(shù)據(jù)格式一個(gè)示例是利用XML為在家庭能夠網(wǎng)上傳輸?shù)臄?shù)據(jù)創(chuàng)建一個(gè)包。該數(shù)據(jù)可以包括命令協(xié)議、流式音頻或視頻、圖形或應(yīng)用程序。該數(shù)據(jù)用識(shí)別該包的數(shù)據(jù)和內(nèi)容的本機(jī)格式的、寫成XML語言的一個(gè)標(biāo)準(zhǔn)首標(biāo)“包裝”。該首標(biāo)允許唯一標(biāo)識(shí)該XML代碼的數(shù)據(jù)部分的數(shù)據(jù)類型,因此,如果需要的話,可以翻譯該數(shù)據(jù),并且在接收后提供給適當(dāng)?shù)膽?yīng)用程序。
在Web標(biāo)準(zhǔn)下,該標(biāo)識(shí)處理由瀏覽器使用識(shí)別文件傳輸?shù)念愋秃蛢?nèi)容的文件名擴(kuò)展來執(zhí)行。然后該瀏覽器運(yùn)行適當(dāng)?shù)牟寮绦騺硖幚碓撐募?。在家庭網(wǎng)絡(luò)中,XML用于識(shí)別數(shù)據(jù)傳輸,它用上述的通用標(biāo)識(shí)方法提供基于IP的所有家庭網(wǎng)絡(luò)傳輸。
另外,可以在家庭網(wǎng)絡(luò)協(xié)議棧中提供軟件層,以便唯一地識(shí)別該家庭網(wǎng)絡(luò)上的所有數(shù)據(jù)傳輸?shù)膬?nèi)容。該軟件層可以替代XML使用。本發(fā)明的通用格式和標(biāo)識(shí)原理均等地運(yùn)用于作為標(biāo)識(shí)方法的使用XML的實(shí)施例或者所述軟件層。
在圖23中,在接收到數(shù)據(jù)包傳輸后,接收裝置122檢查該數(shù)據(jù)包的XML識(shí)別首標(biāo)以判定其中的數(shù)據(jù)格式。如果數(shù)據(jù)格式為可由裝置122辨認(rèn),則放棄XML識(shí)別首標(biāo)信息,而讓該裝置直接處理該數(shù)據(jù)。否則,裝置122將接收到的XML包轉(zhuǎn)換成XML翻譯請(qǐng)求包,并發(fā)送該請(qǐng)求包和數(shù)據(jù)給翻譯服務(wù)器124。
翻譯服務(wù)器124翻譯該數(shù)據(jù),并將翻譯過的數(shù)據(jù)轉(zhuǎn)換成XML翻譯響應(yīng)包。然后翻譯服務(wù)器124將該響應(yīng)包轉(zhuǎn)送回請(qǐng)求裝置122。在翻譯出錯(cuò)的情況下,翻譯服務(wù)器124可以將翻譯響應(yīng)出錯(cuò)情況提供給請(qǐng)求裝置122。在接收到被翻譯過的數(shù)據(jù)后,請(qǐng)求裝置122處理在該響應(yīng)包中被翻譯的數(shù)據(jù)。
XML數(shù)據(jù)包或分組的示例可以是<IDENTITYtype=format=AV/c>…包數(shù)據(jù)…<\IDENTITY>
翻譯請(qǐng)求包或分組的示例可以是<pre listing-type="program-listing"><![CDATA[ ?。糡RANSLATION REQUEST type=Command format=CAL> ?。糏DENTITY type=Command format=AV/C>...packet data... ?。糪IDENTITY> <\TRANSLATION REQUEST>]]></pre>翻譯請(qǐng)求包或分組的示例可以是<pre listing-type="program-listing"><![CDATA[ ?。糡RANSLATION RESPONSES type=Command format=CAL>... packet data... <\TRANSLATION RESPONSES>]]></pre>翻譯響應(yīng)出錯(cuò)情況包或分組的示例可以是<pre listing-type="program-listing"><![CDATA[ ?。糡RANSLATION RESPONSES type=Command format=CAL>... packet data... ?。糆RROR condition=Unrecognized command>Translation could not be performed<\ERROR> <\TRANSLATION RESPONSES>]]></pre>此外,圖24中的表3包括包或分組類型和格式的部分清單。
為了提供翻譯服務(wù),以類似于DHCP服務(wù)器的方式,在網(wǎng)絡(luò)配置期間,在該網(wǎng)上識(shí)別翻譯服務(wù)器124。在配置了網(wǎng)絡(luò)之后的一段連續(xù)時(shí)間中,翻譯服務(wù)器124向該網(wǎng)絡(luò)中的所有裝置廣播其IP地址。當(dāng)在網(wǎng)絡(luò)啟動(dòng)期間,在網(wǎng)絡(luò)上廣播時(shí),與該翻譯服務(wù)兼容的所有裝置120、122存儲(chǔ)翻譯服務(wù)器124的IP地址。
另外,請(qǐng)求裝置122可以在家庭網(wǎng)絡(luò)上廣播翻譯請(qǐng)求。在網(wǎng)中接收到該翻譯請(qǐng)求的所有翻譯服務(wù)器124通過發(fā)送一個(gè)翻譯響應(yīng)給請(qǐng)求裝置122,來響應(yīng)該翻譯請(qǐng)求。然后請(qǐng)求裝置122在響應(yīng)的翻譯服務(wù)器中間選擇一個(gè)翻譯服務(wù)器124。在一個(gè)示例中,請(qǐng)求裝置122選擇響應(yīng)該翻譯請(qǐng)求的第一翻譯服務(wù)器124。在另一示例中,翻譯服務(wù)器124可以在它們之間和/或與請(qǐng)求裝置122達(dá)成協(xié)議,用于選擇滿足該翻譯請(qǐng)求的翻譯服務(wù)器124。
在本發(fā)明的一個(gè)實(shí)施例中,利用多個(gè)翻譯服務(wù)器124來完成全部翻譯請(qǐng)求。例如,單一翻譯服務(wù)器124可能沒有能力翻譯所有請(qǐng)求。在這種情況下,需要識(shí)別每個(gè)翻譯服務(wù)器124的地址以及每個(gè)翻譯服務(wù)器124可以提供的翻譯服務(wù)類型。每個(gè)裝置120、122可以存儲(chǔ)所有翻譯服務(wù)器的IP地址的清單以及每個(gè)翻譯服務(wù)器124提供的翻譯服務(wù)的類型的相應(yīng)清單,和任意相關(guān)的翻譯應(yīng)用程序。
出于效率的考慮,如果發(fā)送裝置120希望發(fā)送數(shù)據(jù)到已經(jīng)知道使用了不同于該發(fā)送裝置120的格式的本機(jī)格式的接收裝置122,則發(fā)送裝置120可以通過翻譯服務(wù)器124,由代理發(fā)送該數(shù)據(jù)到接收裝置122。發(fā)送裝置120傳送一個(gè)類似于翻譯請(qǐng)求命令的命令到翻譯服務(wù)器124,并包括接收裝置122的地址作為翻譯過的數(shù)據(jù)的目的地。
在接收裝置122需要翻譯數(shù)據(jù)流的情況下,發(fā)送裝置120可以直接發(fā)送該數(shù)據(jù)流到翻譯服務(wù)器124,而翻譯服務(wù)器124接下來傳送翻譯過的數(shù)據(jù)到如上所述的接收裝置122。另外,發(fā)送裝置120可以發(fā)送該數(shù)據(jù)流到接收裝置122,然后接收裝置122發(fā)送該數(shù)據(jù)流到翻譯服務(wù)器124,以便翻譯和返回被翻譯過的數(shù)據(jù)到接收裝置122。
在這里的描述中,控制機(jī)制是基于超文本傳輸協(xié)議(HTPP 1.1)的,該協(xié)議提供用于分布式協(xié)作超介質(zhì)信息系統(tǒng)的應(yīng)用程序級(jí)協(xié)議。在對(duì)于多任務(wù)的廣泛應(yīng)用中,HTTP充當(dāng)普遍使用的、無國(guó)界的(stateless)、面性對(duì)象的協(xié)議。HTTP的一個(gè)特點(diǎn)是數(shù)據(jù)表示法的鍵入(typing)和協(xié)商,它允許在獨(dú)立于被傳輸?shù)臄?shù)據(jù)的情況下建立系統(tǒng)。由家庭網(wǎng)絡(luò)上的裝置和應(yīng)用程序使用的網(wǎng)絡(luò)協(xié)議最好是IP(互聯(lián)網(wǎng)協(xié)議)。但也可以使用其它協(xié)議。
雖然借助于其優(yōu)選實(shí)施例將本發(fā)明進(jìn)行了相當(dāng)詳細(xì)的描述,但還可能有其它的實(shí)施例。因此,附加的權(quán)利要求不應(yīng)該被限制在含在這里的優(yōu)選實(shí)施例的描述中。
權(quán)利要求
1.一種用于經(jīng)由網(wǎng)絡(luò)在多個(gè)裝置中進(jìn)行命令和控制的方法,該方法包括下列步驟(a)將第一裝置連接到該網(wǎng)絡(luò);(b)將第二裝置連接到該網(wǎng)絡(luò),該第二裝置存儲(chǔ)結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由連接到網(wǎng)絡(luò)的至少一個(gè)其它網(wǎng)絡(luò)裝置命令和控制該第二裝置;(c)通過網(wǎng)絡(luò)將所述應(yīng)用程序接口描述數(shù)據(jù)提供給第一裝置;以及(d)利用所述應(yīng)用程序接口描述數(shù)據(jù),將來自第一裝置的控制和命令數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到第二裝置,以控制第二裝置的操作。
2.如權(quán)利要求1所述的方法,其中步驟(c)還包括經(jīng)由該網(wǎng)絡(luò)定位所述應(yīng)用程序接口描述數(shù)據(jù),并經(jīng)由該網(wǎng)絡(luò)將所述應(yīng)用程序接口描述數(shù)據(jù)提供給第一裝置。
3.如權(quán)利要求1所述的方法,其中,(ⅰ)步驟(b)包括將兩個(gè)或多個(gè)裝置連接到該網(wǎng)絡(luò),每個(gè)裝置存儲(chǔ)結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由連接到網(wǎng)絡(luò)上的一個(gè)或多個(gè)其它裝置命令和控制該裝置;(ⅱ)步驟(c)包括經(jīng)由該網(wǎng)絡(luò)將多個(gè)所述裝置的應(yīng)用程序接口描述數(shù)據(jù)提供給該第一裝置(ⅲ)步驟(d)包括利用相應(yīng)于所述多個(gè)裝置中的每一個(gè)的應(yīng)用程序接口描述數(shù)據(jù),將來自第一裝置的控制和命令數(shù)據(jù),通過網(wǎng)絡(luò)發(fā)送到所述多個(gè)裝置,以控制所述多個(gè)裝置的操作。
4.如權(quán)利要求3所述的方法,其中步驟(ⅱ)還包括經(jīng)由該網(wǎng)絡(luò)定位所述應(yīng)用程序接口描述數(shù)據(jù),并經(jīng)由該網(wǎng)絡(luò)將所述應(yīng)用程序接口描述數(shù)據(jù)提供給第一裝置。
5.如權(quán)利要求3所述的方法,其中步驟(ⅱ)還包括將多個(gè)所述裝置的應(yīng)用程序接口描述數(shù)據(jù)提供給至少第一裝置,并且步驟(ⅲ)包括利用相應(yīng)于所述多個(gè)裝置中的每一個(gè)的應(yīng)用程序接口描述數(shù)據(jù),將來自至少第一裝置的控制和命令數(shù)據(jù),通過網(wǎng)絡(luò)發(fā)送到連接到該網(wǎng)絡(luò)的所述多個(gè)裝置,以控制所述多個(gè)裝置的操作。
6.如權(quán)利要求1所述的方法,其中步驟(c)包括經(jīng)由該網(wǎng)絡(luò)傳輸至少一部分所述應(yīng)用程序接口描述數(shù)據(jù)到該第一家庭裝置。
7.如權(quán)利要求1所述的方法,其中步驟(c)包括第一裝置經(jīng)由該網(wǎng)絡(luò)查詢第二裝置中的應(yīng)用程序接口描述數(shù)據(jù)。
8.如權(quán)利要求1所述的方法,其中步驟(c)包括第一裝置從連接到該網(wǎng)絡(luò)的數(shù)據(jù)庫(kù)裝置中查詢應(yīng)用程序接口描述數(shù)據(jù)。
9.如權(quán)利要求1所述的方法,其中該應(yīng)用程序接口描述數(shù)據(jù)包括關(guān)于控制第二家庭裝置的操作的第一家庭裝置的遠(yuǎn)程程序調(diào)用信息。
10.如權(quán)利要求1所述的方法,其中應(yīng)用程序接口描述數(shù)據(jù)包括用于識(shí)別該第二裝置的能力的能力數(shù)據(jù)。
11.如權(quán)利要求1所述的方法,其中所述裝置能夠顯示用戶接口。
12.如權(quán)利要求1所述的方法,其中所述結(jié)構(gòu)化格式包括XML格式。
13.一種用于命令和控制裝置的網(wǎng)絡(luò)系統(tǒng),包括(a)物理層,其中物理層提供能夠由相互通信的裝置使用的通信介質(zhì);(b)至少一個(gè)被控制的裝置,包含結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由至少一個(gè)其它裝置命令和控制被控制的裝置;(c)至少一個(gè)控制器,包括控制應(yīng)用程序部件,用于獲得所述應(yīng)用程序接口描述數(shù)據(jù),并利用所述應(yīng)用程序接口描述數(shù)據(jù)將控制和命令數(shù)據(jù)發(fā)送到被控制的裝置,以控制被控制的裝置的操作。
14.如權(quán)利要求13所述的網(wǎng)絡(luò)系統(tǒng),還包括多個(gè)被控制的裝置,每個(gè)被控制的裝置都存儲(chǔ)結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由至少所述控制器命令和控制每個(gè)被控制的裝置,其中所述應(yīng)用程序控制部件有選擇地獲得一個(gè)或多個(gè)所述被控制的裝置的應(yīng)用程序接口描述數(shù)據(jù),用于利用所述應(yīng)用程序接口描述數(shù)據(jù),將控制和命令數(shù)據(jù)發(fā)送到一個(gè)或多個(gè)所述被控制的裝置,以控制所述一個(gè)或多個(gè)被控制的裝置的操作;
15.如權(quán)利要求13所述的網(wǎng)絡(luò)系統(tǒng),其中所述應(yīng)用程序控制部件通過傳輸至少一部分所述應(yīng)用程序接口描述數(shù)據(jù)到控制器,來獲得所述應(yīng)用程序接口描述數(shù)據(jù),用于產(chǎn)生和發(fā)送所述控制和命令數(shù)據(jù)給被控制的裝置。
16.如權(quán)利要求13所述的網(wǎng)絡(luò)系統(tǒng),其中所述應(yīng)用程序控制部件通過在被控制的裝置中查詢所述應(yīng)用程序接口描述數(shù)據(jù),來獲得所述應(yīng)用程序接口描述數(shù)據(jù)。
17.如權(quán)利要求13所述的網(wǎng)絡(luò)系統(tǒng),其中所述應(yīng)用程序控制部件從數(shù)據(jù)庫(kù)裝置查詢所述應(yīng)用程序接口描述數(shù)據(jù),來獲得所述應(yīng)用程序接口描述數(shù)據(jù)。
18.如權(quán)利要求13所述的網(wǎng)絡(luò)系統(tǒng),其中所述應(yīng)用程序接口描述數(shù)據(jù)包括關(guān)于控制被控制的裝置的操作的控制器的遠(yuǎn)程程序調(diào)用信息。
19.如權(quán)利要求13所述的網(wǎng)絡(luò)系統(tǒng),其中應(yīng)用程序接口描述數(shù)據(jù)包括用于識(shí)別該被控制的裝置的能力的能力數(shù)據(jù)。
20.如權(quán)利要求13所述的網(wǎng)絡(luò)系統(tǒng),其中所述控制器和被控制的裝置不能顯示用戶接口。
21.如權(quán)利要求13所述的網(wǎng)絡(luò)系統(tǒng),其中所述結(jié)構(gòu)化格式包括XML格式。
22.如權(quán)利要求13所述的網(wǎng)絡(luò)系統(tǒng),還包括多個(gè)控制器,每個(gè)控制器都包括應(yīng)用程序控制部件,用于獲得一個(gè)或多個(gè)控制器的應(yīng)用程序接口描述數(shù)據(jù),用于利用所述應(yīng)用程序接口描述數(shù)據(jù),將控制和命令信息發(fā)送到所述一個(gè)或多個(gè)被控制的裝置,以控制所述一個(gè)或多個(gè)被控制的裝置的操作。
23.一種用于經(jīng)由家庭網(wǎng)絡(luò)進(jìn)行服務(wù)的方法,該方法包括步驟(a)將客戶機(jī)裝置連接到家庭網(wǎng)絡(luò),其中該客戶機(jī)裝置能夠顯示用戶接口數(shù)據(jù);(b)將第一家庭裝置連接到家庭網(wǎng)絡(luò),該第一家庭裝置以選擇的格式存儲(chǔ)用戶接口數(shù)據(jù),用于定義由用戶經(jīng)由該網(wǎng)絡(luò)對(duì)至少第一家庭裝置的用戶命令和控制的用戶接口;(c)將第二家庭裝置連接到家庭網(wǎng)絡(luò),該第二家庭裝置存儲(chǔ)結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由連接到該網(wǎng)絡(luò)的一個(gè)或一個(gè)以上家庭裝置對(duì)第二家庭裝置的裝置命令和控制;(d)在該客戶機(jī)裝置中經(jīng)由該家庭網(wǎng)絡(luò)接收第一家庭裝置的用戶接口數(shù)據(jù);(e)在客戶機(jī)裝置上顯示由第一家庭裝置的用戶接口數(shù)據(jù)定義的用戶接口;(f)響應(yīng)于與顯示在客戶機(jī)裝置上用戶接口的用戶交互,從用戶處接受用戶輸入;以及(g)基于該用戶輸入,從該客戶機(jī)裝置將控制和命令數(shù)據(jù)發(fā)送到第一家庭裝置,使得該第一和第二家庭裝置利用所述應(yīng)用程序接口描述數(shù)據(jù)相互通信,以進(jìn)行服務(wù)。
24.如權(quán)利要求23所述的方法,其中步驟(f)還包括從被顯示在客戶機(jī)裝置上的用戶接口接受用來選擇第二家庭裝置的用戶輸入。
25.如權(quán)利要求24所述的方法,還包括步驟第一家庭裝置基于經(jīng)由該客戶機(jī)裝置輸入到該第一家庭裝置的用戶輸入,利用所述應(yīng)用程序接口描述數(shù)據(jù),通過發(fā)送控制和命令信息到第二家庭裝置,來控制該第二家庭裝置。
26.如權(quán)利要求25所述的方法,還包括步驟經(jīng)由該網(wǎng)絡(luò),將該應(yīng)用程序接口描述數(shù)據(jù)提供到第一家庭裝置。
27.如權(quán)利要求23所述的方法,其中所述應(yīng)用程序接口描述數(shù)據(jù)包含關(guān)于第二家庭裝置的能力數(shù)據(jù),并且還包括步驟(ⅰ)在第二家庭裝置的應(yīng)用程序接口描述數(shù)據(jù)中查詢?cè)撃芰?shù)據(jù),以及(ⅱ)利用該能力數(shù)據(jù)更新第一家庭裝置中的所述用戶接口數(shù)據(jù),以允許用戶經(jīng)由顯示在該客戶機(jī)裝置上的第一家庭裝置的用戶接口來命令和控制第二家庭裝置。
28.如權(quán)利要求23所述的方法,還包括連接兩個(gè)或多個(gè)家庭裝置到該網(wǎng)絡(luò),每個(gè)家庭裝置存儲(chǔ)結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由連接在網(wǎng)上的一個(gè)或多個(gè)其它家庭裝置命令和控制該家庭裝置。
29.如權(quán)利要求28所述的方法,其中所述兩個(gè)或多個(gè)家庭裝置的每個(gè)中的應(yīng)用程序接口描述數(shù)據(jù)包含關(guān)于各家庭裝置的能力數(shù)據(jù),并且還包括步驟(ⅰ)在所述兩個(gè)或多個(gè)家庭裝置的應(yīng)用程序接口描述數(shù)據(jù)中查詢?cè)撃芰?shù)據(jù),以及(ⅱ)利用所述能力數(shù)據(jù)更新第一家庭裝置中的所述用戶接口數(shù)據(jù),以允許用戶經(jīng)由顯示在該客戶機(jī)裝置上的第一家庭裝置的用戶接口來命令和控制所述兩個(gè)或多個(gè)家庭裝置。
30.如權(quán)利要求28所述的方法,還包括步驟經(jīng)由該網(wǎng)絡(luò)提供多個(gè)所述兩個(gè)或多個(gè)家庭裝置的應(yīng)用程序接口描述到第一家庭裝置。
31.如權(quán)利要求30所述的方法,還包括步驟經(jīng)由該網(wǎng)絡(luò),利用相應(yīng)于所述多個(gè)家庭裝置中的每一個(gè)的所述應(yīng)用程序接口描述數(shù)據(jù),從第一家庭裝置發(fā)送控制和命令數(shù)據(jù)到所述多個(gè)家庭裝置,以控制所述多個(gè)家庭裝置的操作。
32.如權(quán)利要求30所述的方法,還包括步驟在該網(wǎng)絡(luò)上定位所述應(yīng)用程序接口描述,并經(jīng)由該網(wǎng)絡(luò)將所述應(yīng)用程序接口描述提供到第一家庭裝置。
33.如權(quán)利要求30所述的方法,還包括步驟提供所述多個(gè)家庭裝置中的一個(gè)家庭裝置的應(yīng)用程序接口數(shù)據(jù)到所述多個(gè)家庭裝置中的另一個(gè)家庭裝置。
34.如權(quán)利要求33所述的方法,還包括經(jīng)由該網(wǎng)絡(luò),利用相應(yīng)于所述另一家庭裝置的所述應(yīng)用程序接口描述,從所述一個(gè)家庭裝置發(fā)送控制和命令數(shù)據(jù)到所述另一家庭裝置,以控制所述另一家庭裝置的操作。
35.如權(quán)利要求23所述的方法,其中應(yīng)用程序接口描述包括用于第一家庭裝置的遠(yuǎn)程程序調(diào)用信息,以控制所述第二家庭裝置的操作。
36.如權(quán)利要求35所述的方法,其中應(yīng)用程序接口描述包括用于識(shí)別第二家庭裝置的能力的能力數(shù)據(jù)。
37.如權(quán)利要求23所述的方法,其中被選擇的格式包括HTML格式。
38.如權(quán)利要求23所述的方法,其中該結(jié)構(gòu)化格式包括XML格式。
39.一種用于命令和控制裝置的網(wǎng)絡(luò)系統(tǒng),包括(a)物理層,其中物理層提供能夠由相互通信的裝置使用的通信介質(zhì);(b)第一家庭裝置,以結(jié)構(gòu)化格式存儲(chǔ)用戶接口數(shù)據(jù),用于定義對(duì)至少第一裝置的用戶命令和控制的用戶接口;(c)第二家庭裝置,以結(jié)構(gòu)化格式存儲(chǔ)應(yīng)用程序接口描述數(shù)據(jù),用于由一個(gè)或多個(gè)裝置對(duì)第二服務(wù)器的裝置命令和控制;(d)客戶機(jī)裝置,能夠顯示用戶接口數(shù)據(jù),該客戶機(jī)裝置包括用戶接口控制器,用于在該客戶機(jī)裝置上顯示該第一服務(wù)器的所述用戶接口,以接受用戶輸入,以及基于該用戶輸入發(fā)送控制和命令數(shù)據(jù)到第一服務(wù)器,使得第一和第二家庭裝置采用所述應(yīng)用程序接口描述數(shù)據(jù)來相互通信,以進(jìn)行由用戶請(qǐng)求的服務(wù)。
40.如權(quán)利要求39所述的網(wǎng)絡(luò)系統(tǒng),其中所述用戶接口控制器接受用于從被顯示在該客戶機(jī)裝置上的用戶接口選擇第二服務(wù)器的用戶輸入。
41.如權(quán)利要求40所述的網(wǎng)絡(luò)系統(tǒng),其中第一服務(wù)器包括應(yīng)用程序控制部件,用于基于經(jīng)由該客戶機(jī)網(wǎng)絡(luò)輸入到第一服務(wù)器的用戶輸入,利用所述應(yīng)用程序接口描述數(shù)據(jù),通過發(fā)送控制和命令信息到第二服務(wù)器來控制該第二服務(wù)器。
42.如權(quán)利要求41所述的網(wǎng)絡(luò)系統(tǒng),其中所述應(yīng)用程序控制部件從該第一服務(wù)器獲得該應(yīng)用程序接口描述數(shù)據(jù)。
43.如權(quán)利要求40所述的網(wǎng)絡(luò)系統(tǒng),其中所述應(yīng)用程序控制部件從一個(gè)數(shù)據(jù)庫(kù)獲得該應(yīng)用程序接口描述數(shù)據(jù)。
44.如權(quán)利要求39所述的網(wǎng)絡(luò)系統(tǒng),其中所述應(yīng)用程序接口描述數(shù)據(jù)包含關(guān)于第二服務(wù)器的能力數(shù)據(jù),并且應(yīng)用程序控制部件從該應(yīng)用程序接口描述數(shù)據(jù)中獲得該能力數(shù)據(jù),和利用該能力數(shù)據(jù)更新第一家庭裝置中的所述用戶接口數(shù)據(jù),以允許用戶經(jīng)由顯示在該客戶機(jī)裝置上的第一服務(wù)器的用戶接口命令和控制第二服務(wù)器。
45.如權(quán)利要求39所述的網(wǎng)絡(luò)系統(tǒng),還包括兩個(gè)或多個(gè)服務(wù)器,其每個(gè)都以所述結(jié)構(gòu)化格式存儲(chǔ)應(yīng)用程序接口描述數(shù)據(jù),用于由一個(gè)或多個(gè)裝置命令和控制所述兩個(gè)或多個(gè)服務(wù)器。
46.如權(quán)利要求45所述的網(wǎng)絡(luò)系統(tǒng),其中所述兩個(gè)或多個(gè)服務(wù)器的每個(gè)中的應(yīng)用程序接口數(shù)據(jù)包含關(guān)于各服務(wù)裝置的能力數(shù)據(jù),并且應(yīng)用程序控制部件從所述兩個(gè)或多個(gè)服務(wù)器的應(yīng)用程序接口描述數(shù)據(jù)中獲得該能力數(shù)據(jù),和利用所述能力數(shù)據(jù)更新第一服務(wù)器中的所述用戶接口,以允許用戶經(jīng)由顯示在該客戶機(jī)裝置上的第一服務(wù)器的用戶接口來命令和控制所述兩個(gè)或多個(gè)服務(wù)器。
47.如權(quán)利要求45所述的網(wǎng)絡(luò)系統(tǒng),其中應(yīng)用程序控制部件利用相應(yīng)于所述兩個(gè)或多個(gè)服務(wù)器中的每一個(gè)的所述應(yīng)用程序接口描述數(shù)據(jù),來發(fā)送控制和命令數(shù)據(jù)到所述兩個(gè)或多個(gè)服務(wù)器,以控制所述兩個(gè)或多個(gè)服務(wù)器的操作。
48.如權(quán)利要求39所述的網(wǎng)絡(luò)系統(tǒng),其中所述應(yīng)用程序接口描述數(shù)據(jù)包括用于第一家庭裝置的遠(yuǎn)程程序調(diào)用信息,以控制所述第二服務(wù)器的操作。
49.如權(quán)利要求39所述的網(wǎng)絡(luò)系統(tǒng),其中被選擇的格式包括HTML格式。
50.如權(quán)利要求39所述的網(wǎng)絡(luò)系統(tǒng),其中該結(jié)構(gòu)化格式包括XML格式。
全文摘要
通過以下方式經(jīng)由網(wǎng)絡(luò)在多個(gè)裝置中進(jìn)行命令和控制的方法和系統(tǒng):將第一裝置連接到該網(wǎng)絡(luò);將第二裝置連接到該網(wǎng)絡(luò),其中第二裝置存儲(chǔ)結(jié)構(gòu)化格式的應(yīng)用程序接口描述數(shù)據(jù),用于由其它網(wǎng)絡(luò)裝置命令和控制該第二裝置;通過網(wǎng)絡(luò)將應(yīng)用程序接口描述數(shù)據(jù)提供給第一裝置;以及利用應(yīng)用程序接口描述數(shù)據(jù)將來自第一裝置的控制和命令經(jīng)網(wǎng)絡(luò)發(fā)送到第二裝置,以控制第二裝置的操作。
文檔編號(hào)G06F13/00GK1311935SQ99808357
公開日2001年9月5日 申請(qǐng)日期1999年5月7日 優(yōu)先權(quán)日1998年5月7日
發(fā)明者理查德·漢普爾曼, 王冬巖 申請(qǐng)人:三星電子株式會(huì)社