摘要:DLNA并不是創(chuàng)造技術(shù),而是形成一種解決的方案,一種大家可以遵守的規(guī)范。它采用了許多現(xiàn)存的、標(biāo)準(zhǔn)的協(xié)議以獲得最廣泛的設(shè)備支持;它是現(xiàn)代數(shù)字家庭技術(shù)中得到支持最多、最有發(fā)展前途的一種,是當(dāng)今各國(guó)研究的熱點(diǎn)。
關(guān)鍵字:智能 家庭網(wǎng)絡(luò) DLNA
中圖分類號(hào):TP35 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2011)10(b)-0000-00
隨著信息技術(shù)的飛速發(fā)展,尤其是互聯(lián)網(wǎng)和傳感網(wǎng)(物聯(lián)網(wǎng))技術(shù)的迅速發(fā)展,3C(計(jì)算機(jī)、通信、家電)合一的加快,數(shù)字化時(shí)代己經(jīng)來(lái)臨。形式多樣的數(shù)字化產(chǎn)品如網(wǎng)絡(luò)電視、網(wǎng)絡(luò)收音機(jī)、數(shù)字視頻廣播傳輸與接收系統(tǒng)、網(wǎng)絡(luò)冰箱、網(wǎng)絡(luò)DVD、掌上電腦及智能移動(dòng)電話等正把人們生活的各個(gè)角落融入到網(wǎng)絡(luò)中。
在你離開(kāi)家時(shí),家庭的各種防盜和安全監(jiān)測(cè)系統(tǒng)立刻起作用,一旦有緊急情況將自動(dòng)呼叫主人或向物業(yè)管理中心報(bào)警;你在離開(kāi)辦公室前通過(guò)電話或計(jì)算機(jī)啟動(dòng)家中的空調(diào)和熱水器;你可以通過(guò)網(wǎng)頁(yè)訪問(wèn)家里的冰箱,發(fā)現(xiàn)食物沒(méi)有了,立刻從網(wǎng)上訂購(gòu),回到家先按照預(yù)先制定的食譜對(duì)微波爐發(fā)出指令,煮上晚餐;你也可以不通過(guò)連接,直接在PC或數(shù)字電視機(jī)上查看數(shù)碼相機(jī)里的照片…這些看似科幻的生活場(chǎng)景隨著智能家庭網(wǎng)絡(luò)的出現(xiàn)已經(jīng)或正在變成現(xiàn)實(shí)。
1 家庭網(wǎng)絡(luò)概述
家庭網(wǎng)絡(luò),又稱為數(shù)字家庭、電子家庭、網(wǎng)絡(luò)家居或者是家庭自動(dòng)化,是指在集成協(xié)同環(huán)境中把各種計(jì)算機(jī)、數(shù)字電子設(shè)備、照明能源控制設(shè)備和安全報(bào)警控制設(shè)備等相連接,形成一個(gè)多層次統(tǒng)一的網(wǎng)絡(luò),實(shí)現(xiàn)家庭資源的共享和管理,以提高人們的生活質(zhì)量,使家庭能夠變得更舒適、安全和有效。數(shù)字家庭網(wǎng)絡(luò)是集計(jì)算機(jī)、通信和消費(fèi)電子技術(shù)于一體的3C系統(tǒng),是后PC時(shí)代IT業(yè)的又一大熱點(diǎn)。
實(shí)現(xiàn)家庭網(wǎng)絡(luò)的關(guān)鍵是家庭網(wǎng)絡(luò)中間件技術(shù)和家庭網(wǎng)關(guān)的設(shè)計(jì)。家庭網(wǎng)絡(luò)中的數(shù)字設(shè)備種類繁多,組網(wǎng)方式也多,并且在家庭網(wǎng)絡(luò)中,不能與企業(yè)網(wǎng)絡(luò)一樣要求所有人都必須學(xué)會(huì)使用網(wǎng)絡(luò),因此家庭網(wǎng)絡(luò)中間件技術(shù)必須能夠?qū)崿F(xiàn)各種家庭網(wǎng)絡(luò)信息設(shè)備輕松的接入網(wǎng)絡(luò),屏蔽硬件設(shè)備、操作系統(tǒng)平臺(tái)與通信技術(shù)的不同,且操作簡(jiǎn)單智能。在各種家庭網(wǎng)絡(luò)中間件技術(shù)當(dāng)中,DLNA技術(shù)是現(xiàn)代數(shù)字家庭技術(shù)中得到支持最多、最有發(fā)展前途的一種,是當(dāng)今各國(guó)研究的熱點(diǎn)。它主要用于實(shí)現(xiàn)設(shè)備的智能互聯(lián)互通。使用DLNA協(xié)議不需要設(shè)備驅(qū)動(dòng)程序,因此使用DLNA建立的網(wǎng)絡(luò)是與介質(zhì)無(wú)關(guān)的,它可以運(yùn)行在幾乎所有的操作系統(tǒng)平臺(tái)之上,可以使用C,C++,JAVA等開(kāi)發(fā)語(yǔ)言,使得在家庭和其它公共場(chǎng)所方便地構(gòu)建設(shè)備相互聯(lián)通的網(wǎng)絡(luò)環(huán)境。家庭網(wǎng)關(guān)是家庭網(wǎng)絡(luò)與外部網(wǎng)絡(luò)發(fā)生聯(lián)系的橋梁,也是各種數(shù)據(jù)進(jìn)出家庭網(wǎng)絡(luò)的接口。外網(wǎng)用戶對(duì)家庭網(wǎng)絡(luò)中的家電設(shè)備進(jìn)行遠(yuǎn)程監(jiān)控時(shí),必須通過(guò)家庭網(wǎng)關(guān)實(shí)現(xiàn),這既降低了網(wǎng)絡(luò)成本,也節(jié)省了網(wǎng)絡(luò)通信時(shí)間和開(kāi)銷。
總之,智能家庭網(wǎng)絡(luò)的出現(xiàn)極大的方便了人們管理和操作自己的數(shù)字家電設(shè)備,改善和提高了人們的生活質(zhì)量。
國(guó)內(nèi)外智能家庭網(wǎng)絡(luò)的發(fā)展情況
國(guó)際上對(duì)智能家庭網(wǎng)絡(luò)的研究始于20世紀(jì)70年代,主要集中在發(fā)達(dá)國(guó)家,如美國(guó)、日本以及歐洲的德國(guó)、法國(guó)等;他們已經(jīng)相繼推出了一些具體產(chǎn)品。我國(guó)對(duì)智能家庭網(wǎng)絡(luò)的研究盡管起步晚,但發(fā)展迅速。但是這些研究都是在各國(guó)獨(dú)立進(jìn)行的,并且具有不同的目標(biāo)和市場(chǎng)戰(zhàn)略機(jī)制,沒(méi)有形成統(tǒng)一的標(biāo)準(zhǔn),其中比較重要的有下述幾個(gè)系統(tǒng):
為了解決家庭網(wǎng)絡(luò)標(biāo)準(zhǔn)不統(tǒng)一的問(wèn)題,索尼、英特爾、微軟等發(fā)起成立DLNA標(biāo)準(zhǔn)。它旨在解決個(gè)人PC,消費(fèi)電器,移動(dòng)設(shè)備在內(nèi)的無(wú)線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)的互聯(lián)互通,使得數(shù)字媒體和內(nèi)容服務(wù)的無(wú)限制的共享和增長(zhǎng)成為可能。
DLNA協(xié)議在智能家庭網(wǎng)絡(luò)中的實(shí)現(xiàn)
DLNA并不是創(chuàng)造技術(shù),而是形成一種解決的方案,一種大家可以遵守的規(guī)范。它采用了許多現(xiàn)存的、標(biāo)準(zhǔn)的協(xié)議以獲得最廣泛的設(shè)備支持。采用IP協(xié)議來(lái)保證DLNA獨(dú)立于網(wǎng)絡(luò)傳輸?shù)奈锢斫橘|(zhì),SOAP協(xié)議來(lái)保證DLNA設(shè)備具有互操作能力,XML來(lái)對(duì)設(shè)備和服務(wù)進(jìn)行統(tǒng)一的描述,HTTP協(xié)議來(lái)進(jìn)行DLNA設(shè)備的信息交互。采用現(xiàn)存的、廣泛應(yīng)用的協(xié)議能減少開(kāi)發(fā)DLNA設(shè)備的工作量,使DLNA設(shè)備更好地融入現(xiàn)有網(wǎng)絡(luò)。DLNA協(xié)議棧如表2所示。
最下兩層是IP和TCP,UDP層,這兩層主要負(fù)責(zé)設(shè)備的IP地址。第三層是HTTP,HTTPU,HTTPMU,屬于傳送協(xié)議層。傳送的是內(nèi)容都經(jīng)過(guò)“封
裝”后,存放在特定的XML文件中。對(duì)應(yīng)的SSDP,GENA,SOAP指的是保存在XML文件中的數(shù)據(jù)格式。第四層是DLNA設(shè)備體系定義,僅僅是一個(gè)抽象的、公用的設(shè)備模型。任何DLNA設(shè)備都必須使用這一層。第五層是DLNA論壇的各個(gè)專業(yè)委員會(huì)的設(shè)備定義層,在這個(gè)論壇中,不同電器設(shè)備由不同的專業(yè)委員會(huì)定義,例如:電視委員會(huì)只負(fù)責(zé)定義網(wǎng)絡(luò)電視設(shè)備部分,空調(diào)器委員會(huì)只負(fù)責(zé)定義網(wǎng)絡(luò)空調(diào)設(shè)備部分,依此類推。所有的不同類型的設(shè)備都被定義成一個(gè)專門的架構(gòu)或者模板,供建立設(shè)備的時(shí)候使用。進(jìn)入這一層,設(shè)備已經(jīng)被指定了明確用途?,F(xiàn)在DLNA己經(jīng)可以支持大部分的設(shè)備,包括電腦、電腦外設(shè),移動(dòng)設(shè)備和家用消費(fèi)類電子設(shè)備等等。隨著這個(gè)體系的普及,將可能有更多的廠家承認(rèn)這一標(biāo)準(zhǔn),最終,可能演化為公認(rèn)的行業(yè)標(biāo)準(zhǔn)。最上層,也就是應(yīng)用層,由DLNA設(shè)備制造廠商定義的部分。這一層的信息是由設(shè)備制造廠商來(lái)“填充”的,這部分一般有設(shè)備廠商提供的、對(duì)設(shè)備控制和操作的底層代碼,以及名稱序列號(hào)、廠商信息等。
DLNA協(xié)議的最終目的是建立一個(gè)可用的設(shè)備模型,處于DLNA協(xié)議棧的第四層的體系結(jié)構(gòu)定義,是一個(gè)抽象的、公用的設(shè)備模型,任何DLNA設(shè)備都必須使用這一層。它定義了控制點(diǎn)和設(shè)備之間的通信協(xié)議,并把控制點(diǎn)和設(shè)備之間的通信過(guò)程分為六個(gè)方面的內(nèi)容:設(shè)備尋址、設(shè)備發(fā)現(xiàn)、設(shè)備描述、設(shè)備控制、設(shè)備事件和設(shè)備展示,這六個(gè)部分的層次關(guān)系如表3所示。
設(shè)備加入網(wǎng)絡(luò)后通過(guò)設(shè)備尋址就可自動(dòng)獲得IP地址,通過(guò)設(shè)備發(fā)現(xiàn),控制點(diǎn)就可知道網(wǎng)絡(luò)上存在哪些設(shè)備,通過(guò)設(shè)備描述控制點(diǎn)就可知道設(shè)備詳細(xì)信息以及設(shè)備提供哪些服務(wù),通過(guò)設(shè)備控制控制點(diǎn)就可以使用設(shè)備的服務(wù),通過(guò)設(shè)備事件就可以將設(shè)備狀態(tài)變換及時(shí)告訴給感興趣的控制點(diǎn),通過(guò)設(shè)備展示控制點(diǎn)可以用瀏覽器察看設(shè)備狀態(tài)和控制設(shè)備。通過(guò)這六個(gè)方面,DLNA設(shè)備可以做到在“零配置”的前提下提供聯(lián)網(wǎng)設(shè)備之間的自動(dòng)發(fā)現(xiàn)、自動(dòng)聲明、“直接”信息交換和互操作等功能,真正實(shí)現(xiàn)設(shè)備的即插即用。
(1)設(shè)備尋址:DLNA網(wǎng)絡(luò)的基礎(chǔ)就是TCP/IP協(xié)議族,DLNA設(shè)備能在TCP/IP協(xié)議下工作的關(guān)鍵就是正確的設(shè)備尋址。每一個(gè)DLNA設(shè)備都必須是動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)的客戶,當(dāng)設(shè)備一連上網(wǎng)絡(luò)就發(fā)送一個(gè)DHCPDSICOVER消息,如果網(wǎng)絡(luò)上存在DHCP服務(wù)器,則設(shè)備將在指定的時(shí)間內(nèi)收到DHCPOFFERS響應(yīng)消息,那么設(shè)備就使用分配給它的地址;如果網(wǎng)絡(luò)上不存在DHCP服務(wù)器,那么設(shè)備收不到響應(yīng)消息,這時(shí)設(shè)備必須使用Auto一IP完成IP地址的設(shè)置。在選中一個(gè)地址之后,設(shè)備必須測(cè)試此地址是否在使用。如果此地址被占用,則重復(fù)查找過(guò)程直到找到一個(gè)未被占用的地址。如果IP地址發(fā)生變換,設(shè)備必須取消先前所有的廣告消息并重新發(fā)送新的廣告消息。
(2)設(shè)備發(fā)現(xiàn):設(shè)備連接到網(wǎng)上并正確分配了地址,然后進(jìn)行的是設(shè)備發(fā)現(xiàn)。設(shè)備發(fā)現(xiàn)是DLNA網(wǎng)絡(luò)實(shí)現(xiàn)的第一步。通過(guò)設(shè)備發(fā)現(xiàn),設(shè)備可以向網(wǎng)絡(luò)上的控制點(diǎn)公布它提供的服務(wù),控制點(diǎn)可以尋找網(wǎng)絡(luò)上感興趣的設(shè)備,在這兩種情況下,基本的交換信息就是發(fā)現(xiàn)消息。發(fā)現(xiàn)消息包括設(shè)備的一些特定信息或者某項(xiàng)服務(wù)的信息,如設(shè)備類型、設(shè)備標(biāo)識(shí)和指向XML設(shè)備描述文檔的指針等。
在一個(gè)新設(shè)備加入網(wǎng)絡(luò)時(shí),如果它存在多個(gè)嵌入設(shè)備,那么它將組播傳送一系列發(fā)現(xiàn)消息來(lái)公布它的設(shè)備和服務(wù)。任何感興趣的控制點(diǎn)可以在此標(biāo)準(zhǔn)的組播地址上監(jiān)聽(tīng)新服務(wù)可用通知消息。同樣,在一個(gè)控制點(diǎn)加入網(wǎng)絡(luò)時(shí),它組播傳送發(fā)現(xiàn)消息尋找感興趣的設(shè)備或服務(wù)。所有的設(shè)備必須在標(biāo)準(zhǔn)組播傳送地址上監(jiān)聽(tīng)這些消息,如果存在匹配的設(shè)備或服務(wù),自動(dòng)響應(yīng)發(fā)現(xiàn)消息。在設(shè)備從網(wǎng)絡(luò)中除去時(shí),它也應(yīng)該發(fā)出一系列聲明,表示此設(shè)備包含的設(shè)備和服務(wù)己經(jīng)失效。
設(shè)備發(fā)現(xiàn)是由簡(jiǎn)單服務(wù)發(fā)現(xiàn)協(xié)議SSDP來(lái)定義的。SSDP是建立在HTTPU和HTTPMU基礎(chǔ)上,用于控制設(shè)備發(fā)送聲明和離開(kāi)消息、控制點(diǎn)發(fā)送的查詢消息、以及備響應(yīng)查詢消息等操作。
(3)設(shè)備描述:在控制點(diǎn)發(fā)現(xiàn)了一個(gè)設(shè)備之后,控制點(diǎn)仍然對(duì)設(shè)備知之甚少,控制點(diǎn)可能僅僅知道設(shè)備或服務(wù)的類型,設(shè)備的UUID和設(shè)備的URL地址。為了讓控制點(diǎn)更多的了解設(shè)備和它的功能或者與設(shè)備交互,控制點(diǎn)必須從發(fā)現(xiàn)消息中得到設(shè)備描述的URL,通過(guò)URL得到設(shè)備描述。
一個(gè)設(shè)備的描述分成兩個(gè)部分:設(shè)備描述和服務(wù)描述。設(shè)備描述和服務(wù)描述
都是由設(shè)備制造商提供的,采用XML表述,并且遵循DLNA設(shè)備模板或DLNA服務(wù)模板,此模板是由DLNA工作委員會(huì)生成的??刂泣c(diǎn)檢索設(shè)備描述過(guò)程比較簡(jiǎn)單,控制點(diǎn)向發(fā)現(xiàn)消息中的URL發(fā)送一個(gè)HTTPGET請(qǐng)求,設(shè)備收到該請(qǐng)求后將設(shè)備描述信息返回給控制點(diǎn)。只要設(shè)備可用,任何控制點(diǎn)都可以檢索其設(shè)備描述。如果設(shè)備需要改變它的設(shè)備描述,必須首先取消掉先前的公告信息,然后再重新公告。因此在一個(gè)設(shè)備再次加入網(wǎng)絡(luò)時(shí),控制點(diǎn)不能認(rèn)為該設(shè)備的設(shè)備描述信息和服務(wù)描述信息沒(méi)有改變。
一個(gè)物理設(shè)備可以包含多個(gè)邏輯設(shè)備,多個(gè)邏輯設(shè)備既可以是一個(gè)嵌入多個(gè)設(shè)備的根設(shè)備方式實(shí)現(xiàn),也可以是多個(gè)根設(shè)備的方式實(shí)現(xiàn)。在前種情況,該物理設(shè)備只有一個(gè)根設(shè)備描述,但該根設(shè)備描述包含所有的嵌入設(shè)備描述;在后種情況,該物理設(shè)備有多個(gè)根設(shè)備描述,每個(gè)根設(shè)備對(duì)應(yīng)一個(gè)根設(shè)備描述。設(shè)備描述主要包含設(shè)備名稱、類型、序列號(hào)、制造商名稱、制造商網(wǎng)站的UR工等,也包括所有嵌入設(shè)備描述和URL地址集,還包括該設(shè)備展示的URL、設(shè)備控制的URL和設(shè)備事件的URL。
(4)設(shè)備控制:設(shè)備控制是DLNA網(wǎng)絡(luò)的第三步。在接收設(shè)備和服務(wù)描述之后,控制點(diǎn)可以向這些服務(wù)發(fā)出動(dòng)作,同時(shí)控制點(diǎn)也可以查詢服務(wù)的狀態(tài)變量值。發(fā)出動(dòng)作實(shí)質(zhì)上是一種遠(yuǎn)程過(guò)程調(diào)用,控制點(diǎn)將動(dòng)作送到設(shè)備服務(wù),在動(dòng)作完成之后,服務(wù)返回相應(yīng)的結(jié)果。為了控制一個(gè)設(shè)備,控制點(diǎn)必須向設(shè)備服務(wù)發(fā)出一個(gè)動(dòng)作消息。服務(wù)收到該消息后做出相應(yīng)的響應(yīng),然后把結(jié)果(或錯(cuò)誤)返回給控制點(diǎn)。動(dòng)作的結(jié)果可能改變描述服務(wù)運(yùn)行狀態(tài)的變量,這將引起上層的設(shè)備事件通知協(xié)議將狀態(tài)改變的事件通知給感興趣的控制點(diǎn)??刂泣c(diǎn)也可查詢服務(wù)的狀態(tài)變量值以獲得狀態(tài)變量的當(dāng)前值。
簡(jiǎn)單對(duì)象控制協(xié)議SOAP利用XML和HTTP來(lái)進(jìn)行遠(yuǎn)程過(guò)程調(diào)用,DLNA使用了SOAP來(lái)進(jìn)行設(shè)備控制,所有的控制消息、查詢消息、返回結(jié)果或錯(cuò)誤都是使用SOAP來(lái)進(jìn)行封裝的,使用HTTP來(lái)進(jìn)行傳輸?shù)摹?br/> (5)設(shè)備事件:設(shè)備事件是DLNA網(wǎng)絡(luò)的第四步。一個(gè)DLNA的服務(wù)描述包括服務(wù)響應(yīng)的動(dòng)作列表和運(yùn)行時(shí)模擬服務(wù)狀態(tài)的變量列表。當(dāng)這些變量改變時(shí),服務(wù)就會(huì)發(fā)布更新通知,則訂閱了該事件的控制點(diǎn)就會(huì)收到設(shè)備事件。發(fā)布者指的是事件源,這里典型的就是設(shè)備服務(wù);訂閱者指的是事件到達(dá)的目的地,這里典型的就是控制點(diǎn);訂閱指的就是事件到達(dá)目的地向事件源申請(qǐng)?jiān)撌录倪^(guò)程。
(6)設(shè)備展示:設(shè)備展示是DLNA設(shè)備的最后一步。如果設(shè)備有展示的URL,那么控制點(diǎn)就能通過(guò)URL得到頁(yè)面,在瀏覽器中裝載頁(yè)面,并使得用戶根據(jù)頁(yè)面提供的功能控制設(shè)備或者瀏覽設(shè)備狀態(tài)。它具體能完成到什么與設(shè)備和展示頁(yè)面的功能有關(guān)。
以上就是說(shuō)明如何在智能家庭網(wǎng)絡(luò)中實(shí)現(xiàn)DLNA協(xié)議,當(dāng)然本文只是大概的介紹DLNA協(xié)議棧的實(shí)現(xiàn),并沒(méi)有詳細(xì)加以討論。
總之,DLNA是智能家庭網(wǎng)絡(luò)中得到支持最多,應(yīng)用最廣泛的一種標(biāo)準(zhǔn),是世界各國(guó)研究的熱點(diǎn)。它的最終實(shí)現(xiàn),將使人們能夠在一個(gè)多層次統(tǒng)一的網(wǎng)絡(luò)上,實(shí)現(xiàn)家庭資源的共享和管理,這將會(huì)使我們的生活更加舒適、安全和有效。
參考文獻(xiàn)
[1] “DLNA/UPnP-ZigBee Gateway Specificati