汪海濤 李 強 姜 瑛 陳 星
(昆明理工大學 昆明 650000)
?
一種遠程訪問UPnP網絡方法的研究與實現*
汪海濤李強姜瑛陳星
(昆明理工大學昆明650000)
摘要為解決數字家庭中設備間媒體共享的問題,研究UPnP協議和UPnP AV架構,設計實現基于Web服務的弱平臺限制的媒體共享系統。針對智能手機、平板電腦的便攜特性來單獨實現控制點功能,支持“推播”模式,支持電腦、智能手機等具備瀏覽器功能的各類不同平臺的終端電子設備作為控制點進行控制操作。Web系統的服務器功能模塊采用eclipse開發,UI部分采用Dreamweaver實現。測試結果表明,該系統不但能在不同終端上實現控制作用,同時還結合了對UPnP網絡的遠程控制技術,實現了遠程多端控制。
關鍵詞UPnP; 智能終端; 服務器; 遠程控制
Class NumberTP311.5
1引言
本文探討了如何通過將UPnP技術同WEB技術相結合,實現家庭多媒體資源共享系統與其他設備之間的互聯,從而實現遠程控制系統及實現控制系統的多終端性。
數字家庭按照IDC的定義是指家庭內部的媒體終端可以隨時隨地地實現媒體資源的控制和共享[1]。但是媒體文件在這些終端上是相互獨立的,不同終端之間很難共享或者根本無法共享,對此已有不少的文獻做出過各種各樣研究。文獻[1]介紹了一種嵌入式Linux平臺上基于UPnP AV架構的中間件技術,此種技術僅僅在嵌入式平臺上實現了對系統的控制;文獻[2]給出了在安卓系統上開發出一套中間控制系統進行控制,此種方式做到了將控制點移植到智能終端上,但此智能終端僅僅限于安卓系統的終端,并且無法進行遠程的控制;文獻[3]給出了通過XMPP協議將處于不同地點的多媒體資源整合起來,并實現遠程控制的具體方案。而本論文則結合上述各文獻提出的各種思路與方案,提出了無平臺限制,并且可實現遠程控制的多媒體控制系統。
2相關技術
2.1UPnP
UPnP技術是由微軟公司提出的一種致力于解決數字家庭設備間互聯互通的對等網絡體系架構[2]。該架構以互聯網的方式工作,充分利用了包括IP、TCP、UDP、HTTP和XML在內的互聯網組件,以通用協議代替設備驅動程序,支持在一個可伸縮的網絡環境中實現設備間的互操作。UPnP的工作流程包括:尋址,設備利用DHCP服務或者基于Auto‐IP協議獲取IP地址;發現,設備通過SS-DP(imple service discovery protocol)協議發現家庭網絡上的其它設備[3];描述,控制點通過URL獲取設備及該設備包含服務的詳細描述;控制,遵循SOAP(simple object access protocol)協議標準,按照描述信息的規定發送動作請求消息[4],完成控制;事件,服務狀態發生變化時通知訂閱事件的設備;展示設備所提供的服務和服務狀態,提供可編程的控制接口。
2.2UPnP AV體系結構
UPnP AV框架定義了三種獨立的UPnP組件:CPcontrol point)、MS(media server)、MR(media render)[5],如圖1所示。三種組件可在一個UPnP設備內進行任意組合。其框架圖如圖1所示。

圖1 UPnP AV體系結構圖
MS,可共享設備的存儲能力,用于發布設備上的媒體資源,如NAS(network attached storage)。MS提供內容目錄服務、連接管理服務和AV傳送服務(可選)[6]。MR,可共享設備的媒體解碼能力,用于播放網絡上MS共享的媒體資源,如機頂盒。MR支持播放控制服務、內容目錄服務和AV傳送服務(可選)。CP,協同控制MS和MR工作,如微型計算機。其主要操作包括:探測AV設備;定位內容;獲取MR所支持的協議與格式;比較匹配協議與格式;配置MS/MR;選擇內容;開始內容傳輸;調整演播屬性;選擇下一個內容;清除MS/MR。該架構已經被廣泛接受,成為家庭網絡設備互聯互通的公認標準。該架構中MS和MR之間不進行直接交互,UPnP設備間的所有協調均通過CP配置,但媒體流通過帶外通信協議傳輸而不經過CP,CP不在的情況下,傳送服務可繼續完成。
2.3Web服務器技術
Web是一種典型的分布營運結構,結用中的每一次信息交換都要涉及客戶端和服務端。因此,Web開發技術大體上也可以被分為客戶端技術和服務端技術兩大類。
Web客戶端的主要任務是展現信息內容。Web客戶端設計技術主要包括:HTML語言、Java Applets、腳本程序、CSS、HTML、插件技術以及VRML技術。
與Web客戶端技術從靜態向動態的演進過程類似,Web服務端的開發技術也是由靜態向動態逐漸發展、完善起來的。Web服務器技術主要包括服務器、CGI、PHP、ASP、ASP.NET、Servlet和JSP技術。
由于UPnP技術具有網絡無關性這一特質,所以本次設計可采用上述Web客戶端服務器技術中的任何一種,考慮到服務器的可移植性,本文中將采用J2ee技術實現后臺服務,同時結合XML及AJAX等網絡常用技術實現來整個服務器部分系統的設計。
2.4XMPP
XMPP(Extensible Messaging and Presence Protocol)是由Jabber軟件基金會開發,最早在Jabber上實現。Jabber項目是Jeremie Miller在1998年開發的一個免費、開源的項目,用于提供給MSN、Yahoo等的IM服務[7]。
XMPP是一種基于可擴展標記語言(XML)的開放式協議,是一種即時通信協議,采用XML流進行傳輸[8]。XMPP采用的是客戶端、服務器的架構,能夠通過網關在服務器及客戶端或不同客戶端之間進行交互式的信息傳遞。
3系統設計與實現
在UPnP家庭網絡中,設備在局域網內發送SSDP-NOTIFY消息來多播自身及自身所能提供的服務,而控制點所處的位置可以分為以下兩種情況。
1) 控制點在局域網內部的情況。此時可以直接發送M—SEARCH消息來請求服務和感興趣的設備,設備接收到消息后會首先查找自身所能提供的服務,如果能提供服務就回復HTTP2000K;如果沒有能提供所需服務的設備,則不進行任何操作3。
2) 控制點不在局域網內部。此時則需要通過Internet來訪問局域網內部網絡的成員,這就需要知道網關的WAN側地址,即網關加入網絡時動態獲取的IP地址,進行網絡地址轉換,穿過防火墻,最后對局域網內部設備之間進行操作。
本文基于對現有遠程訪問UPnP網絡方法的研究,提出的是一種將位于局域網的網關同接入Internet的服務器相結合的遠程控制方法,為此采用了第二種方式。為了實現多終端獲取信息的統一性,在局域網網關部分加入了UPnP設備收集模塊,將收集的UPnP設備信息通過局域網關傳至遠程服務器,遠程服務器再將這些消息進行處理,并讓終端可通過IP或綁定域名訪問,而終端返回的信息則先通過公網服務器,再轉發至局域網網關,由局域網網關回復給對應的受控設備。局域網的網關自動代理了終端控制點和網內設備間的動作請求信息,而服務器實現了終端與UPnP網絡的遠程交互。該方法的交互模型如圖2所示。

圖2 系統交互
3.1服務站點設計
服務器站點采用網絡服務器技術搭建。服務器端系統采用Java程序實現,通過在Windows7系統上利用Eclipse軟件開發環境進行開發。而客戶端訪問界面則由Dreamweaver結合火狐瀏覽器來開發設計。站點完成的是身份的驗證,交互數據信息的處理與轉發工作。
當用戶想要進行遠程控制時,首先需要登錄服務器網站,此時顯示提示用戶輸入登入密碼的頁面,只有在正確輸入密碼后才能進行后續操作,否則提示用戶密碼輸入錯誤。若用戶輸入密碼正確,則觸發服務器開啟接收局域網網關消息的功能,對家庭局域網關發送來的消息進行實時監聽,一旦收到消息,便將接收到的消息處理。
由于要實現遠程控制,因此用戶在終端登進網站后,還應能夠同網站進行交互,而此交互過程正是用戶通過公網服務器實現對遠程控制點的控制過程。整個過程有刷新服務列表,查看媒體目錄,查看服務,下載服務,開啟服務。
由于在家庭網絡中,如果控制點在家庭網絡內部,則在加入家庭網絡時都會向家庭網關設備申請IP,家庭網關會對用戶的身份進行鑒定,從而保證局域網內部設備的信息共享的可靠性。
3.2UPnP設備收集模塊
UPnP設備收集包括一個支持UPnP協議棧的控制點。在網關啟動過程中,該控制點向239.255.255.250:1900地址廣播搜索設備請求,等待符合條件的設備返回單播響應消息。UPnP設備上線時,組播一個設備在線宣告,控制點通過偵聽相同的消息接口239.255.255.250:1900發現UPnP設備服務在線宣告。控制點偵聽到UPnP設備返回的單播響應消息或主動發布的在線宣告消息后,向消息中的Location域的URL地址發起獲取設備信息與服務描述的HTTP請求,得到設備響應的詳細描述文檔后,將相應的信息數據打包發送給UPnP/XMPP轉換模塊。
雖然濕地類型多種多樣,大都適合旅游開發利用,但并不是所有的濕地都可以納入旅游資源的范圍。濕地旅游資源是指具有一定可進入性和觀賞性,具有現存或潛在的客源市場,并能為旅游業所利用的濕地。濕地利用是嚴格的保護性利用,即進行濕地生態恢復和濕地生態建設,目前安徽沿淮地區已經開發利用的濕地旅游資源主要有濕地保護區、濕地公園、水利風景區三大類。
3.3UPnP/XMPP轉換模塊
一方面,UPnP/XMPP轉換模塊將本地UPnP信息壓縮封裝在XMPP消息的〈message〉元素內,通過網關轉發至服務器,再由服務器進行解析處理后供終端進行請求訪問和請求控制;另一方面,網關A中的UPnP/XMPP轉換模塊接收服務器轉發而來的XMPP消息,將〈message〉元素內容還原為UPnP信息,分發給其他功能模塊。XMPP消息封裝與還原的UPnP信息主要包括以下三類。
3.3.1設備信息
在收到設備收集模塊傳遞來本地UPnP設備描述信息后,UPnP/XMPP轉換模塊取出其中的設備描述結點和服務描述結點組裝成新的設備信息結點,轉發至服務器。服務器則保存該信息數據,并根據該信息自動創建對應的預處理頁面,供終端瀏覽。
3.3.2控制請求
終端登錄服務器后,通過瀏覽該站點訪問相應設備的服務,一旦發起UPnP服務控制請求后,轉換模塊將該請求消息與所操作設備的UDN組成HTTP請求備的服務,轉換模塊將該請求消息與所操作設備的具體信息組成HTTP請求結點封裝在XMPP消息并轉發至遠程網關。遠程網關分離出HTTP請求結點和設備信息后將該請求消息轉發給相關遠程設備,并等待設備響應。
3.3.3控制響應
遠程網關等待到對應設備的控制響應消息后,將該消息與其中的設備信息組成HTTP響應結點并以XMPP消息格式返回給服務器,再由服務器處理,進而通過終端進行狀態查詢。
3.4交互模型
步驟1登錄。終端服務器通過輸入用戶名密碼登錄服務器,網關A則在網關啟動時刻自動登錄服務器。
步驟2設備收集。設備在局域網內發布在線宣告,網關A偵聽到宣告消息后,向設備發起獲取設備信息與服務描述請求。設備將信息返回給網關A后,網關A將設備的信息壓縮封裝成XMPP消息格式的XML數據流后,轉發至服務器。
步驟3數據處理。服務器收到數據后,將對數據進行解析處理,并在終端訪問網站時,進行相應的展示。
步驟4控制設備。終端可查看網站展示的設備描述信息,并通過選擇控制設備來向服務器發送UPnP控制消息,服務器收到控制消息后,會將此消息封裝成XML流后經服務器和網關A轉發給局域網A中的設備;設備接收到控制消息后,經同樣的過程返回控制狀態給服務器并動態刷新網站顯示。
步驟5設備離線。當局域網A中的設備離線時,該設備發布的離線宣告由網關A封裝后轉發至服務器并刷新展示。
4實驗與分析
本文使用CyberLink開源庫實現UPnP協議棧,使用Gloox開源庫實現XMPP協議。XMPP服務器使用的是OpenFire,網關的開發平臺基于Windows操作系統和Eclipse集成開發環境。本文在Android、IOS手機及Windows電腦平臺上做了測試。整個實驗環境由網關,服務器、UPnP設備及終端組成。服務器是位于公網,可在整個Internet中進行服務訪問,網關A、UPnP設備收集模塊、UPnP/XMPP轉換模塊等位于局域網A。網關A和各種終端設備能夠通過網絡連接到服務器。

圖3 交互時序圖
經過局域網A與服務器端網關的交互,局域網A內的UPnP控制點A能夠自動發現本地UPnP設備A,而終端則能夠在登錄服務器后瀏覽網關A中的UPnP設備在線狀態與控制服務,并可選擇相應的選項對網關A中的在線在UPnP設備進行操作控制。由此,本論文成功實現了通過遠程終端實現對局域網內UPnP的控制。通過在服務器中增加權限認證,有效保證了網絡設備的安全性。系統采用瀏覽器富客戶端的方式對服務進行瀏覽與控制,不同以往采用嵌入式Linux系統或安卓客戶端等只能在單客戶端上開發應用實現控制,成功實現了在智能機、微型計算機等等具有瀏覽器功能的客戶端進行控制,降低了設計成本,提高了系統利用效率。
5結語
在研究UPnP協議、UPnP AV架構及Web服務器技術的基礎上,設計并實現了可在數字家庭中實現媒體共享的技術方案。該方案主要結合了UPnP網絡遠程控制技術與Web服務技術弱平臺的優點,使對UPnP網絡的遠程控制具有了多終端操作特性,同時也使數字家庭多媒體的共享更具有靈活性和實用性。
參 考 文 獻
[1] 王巖.基于嵌入式Linux的UPnP設備控制技術的研究[D].青島:中國海洋大學,2008.
WANG Yan. UPnP device control technology based on Embedded Linux[D]. Qingdao: Ocean University of China,2008.
[2] 孫新童,孫鵬,郭志川,等.基于Android的媒體共享系統設計與實現[J].計算機工程與設計,2014,35(10):3656-3660.
SUN Xintong, SUN Peng, GUO Zhichuan, et al. Media sharing system design and implementation based on the Android[J]. Computer Engineering & Design,2014,35(10):3656-3660.
[3] 楊威,朱珍民.陳媛非,等.遠程訪問UPnP網絡的方法與實現[J].計算機工程與設計,2012,33(5):1691-1699.
YANG Wei, ZHU Zhenmin, CHEN Yuanfei, et al. Remote access method and implement of the UPnP network[J]. Computer Engineering & Design,2012,33(5):1691-1699.
[4] 王剛,程龍剛,林浩民.基于Upnp的遠程協作系統的研究與實現[J].武漢理工大學學報,2011,33(6):152-156.
WANG Gang, CHENG Longgang, LIN Haomin. Remote collaboration system research and implementation based on the Upnp[J]. Journal of Wuhan University of Technology,2011,33(6):152-156.
[5] 李方興.基于UPnP協議的多媒體設備互聯技術研究與實現[D].武漢:華中科技大學,2013.
LI Fangxing. Multimedia equipment interconnect technology research and implementation based on the UPnP[D]. Wuhan: Huazhong University of Science and Technology,2013.
[6] 鄭宣明,吳國平,楊浩,等.基于UPnP網絡服務器的流媒體傳輸[J].電視技術,2013,37(11):111-114.
ZHENG Xuanming, WU Guoping, YANG Hao, et al. Streaming media transmission based on the UPnP network server[J]. Video Engineering,2013,5(11):111-114.
[7] 解雪妮,戴航,羅怡,等.面向XMPP的端到端安全通信研究[J].計算機技術與發展,2015,25(5):116-119.
XIE Xueni, DAI Hang, LUO Yi, et al. XMPP-oriented end-to-end secure communications research[J]. Computer Technology and Development,2015,25(5):116-119.
[8] 趙凡,郭巖,張靖庚.一種基于XMPP協議的在線綜合服務系統的研究與實現[J].甘肅科技,2015,30(10):11-14.
ZHAO Fan, GUO Yan, ZHANG Jingkang. A comprehensive online service system research and implementation based on the XMPP[J]. Gansu Science and Technology,2015,30(10):11-14.
Research and Implementation of Remote Access UPnP Network Method
WANG HaitaoLI QiangJIANG YingCHEN Xing
(Kunming University of Science and Technology, Kunming650000)
AbstractIn order to solve the problem of media sharing among devices in the digital home, the UPnP protocol and AV UPnP architecture are studied, and a media sharing system based on Web service is designed and implemented. A separate control point function is implemented for smart phones and tablet PCs with their portability characteristics. The push mode is supported. F or computers, smart phones and other terminal electronic devices of different platforms with browser capabilities, the control operation is supported as the control points. Eclipse has been used to developed the server module of the WEB system, and the part of UI is realized by Dreamweaver. The test results show that, the system can not only realize the control function in different terminals, but also realize the remote control technology by combining the remote control technology of UPnP network.
Key WordsUPnP, intelligent terminal, server, remote control
* 收稿日期:2015年11月4日,修回日期:2015年12月19日
基金項目:國家自然科學基金項目(編號:61462049)資助。
作者簡介:汪海濤,女,碩士,副教授,碩士生導師,研究方向:軟件工程。李強,男,碩士研究生,研究方向:軟件工程。姜瑛,女,博士,教授,研究方向:軟件工程。陳星,男,碩士,講師,研究方向:軟件工程。
中圖分類號TP311.5
DOI:10.3969/j.issn.1672-9722.2016.05.027