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