摘 要: 信息家電的智能化促進了家庭設備的網絡連接和網絡控制的需求。通過Web Service將信息家電控制功能描述并發布,為遠程用戶提供設備服務控制。基于對當前家庭網絡設備控制界面現狀的分析,提出一種基于Web Service的自動界面生成技術。該方法可使遠程用戶的Android智能設備根據信息家電的WSDL信息描述自動生成控制界面并動態更新界面。為驗證這種方法,設計一個信息家電控制模型。結果表明,該方法能夠自動構建信息家電控制界面。
關鍵詞: Web Service;WSDL;信息家電;界面自動構建;Android
信息家電是指帶有嵌入式處理器的家用信息設備,它的基本特征是與網絡相連而有一些具體功能。信息家電利用先進的計算機、網絡通信、人工智能等技術,將與家庭生活相關的各種家電子系統有機地結合在一起,通過綜合家庭范圍內的本地管理與控制以及來自家庭之外的遠程管理與控制,使家庭生活更有效、更便捷。
Web Service是面向服務的體系架構,可以為服務請求者提供特定服務,其使用開放協議進行通信,建立在相關網絡協議和開發的XML標準之上,具有獨立的語言且可進行自我描述,可以實現不同平臺的應用服務的互操作,且這種交互完全與平臺和語言無關,使用一個WSDL文檔和網絡協議(通常是HTTP)來定義接口、描述服務[1]。Web Service的這些特點使其與其他的私有協議相較在家電控制領域具有利于應用開發、克服通信協議異構問題、與Web天然交互性好等優勢,因此采取Web服務來控制家電。WSDL是一個基于XML格式的文檔,用來描述服務端口訪問方式和使用協議的細節,通常采用抽象語言描述服務支持的操作和信息。基于Web Service實現家電設備功能描述和交互控制是當前家庭網絡設備控制領域的研究熱點[2]。人們可以采用手機或PDA開啟空調到合適溫度、查看家中生病的老人或無人看護的小孩的情況、在回家途中查看冰箱物品存儲情況等。在這一類應用中,如果針對每一款設備都做一個界面,比較繁瑣,因此需要動態生成工具,為用戶提供動態的、便于操作的家電控制界面。目前的研究多關注在協議層的融合,較少研究操作界面的生成和定制,而且在研究協議層融合的同時,相對應的操作界面的生成實現較少。
本文對當前的信息家電控制界面自動生成技術進行研究,提出一種面向Android遠程終端的信息家電控制界面自動生成技術的方法。該方法提出了基于Web Service對信息家電的設備服務描述(其中包含了控制界面的關鍵信息),并根據生成的服務描述文件(WSDL文檔)生成Android系統中可使用的界面設置文件(XML文件),遠程終端調用根據服務描述信息生成的XML文件,在Android設備中為用戶提供控制界面的呈現。
1 信息家電控制界面自動生成技術
1.1 現有技術研究現狀
家庭設備控制界面技術的研究,從最初的用戶界面管理系統到后來的基于模型的用戶界面技術,隨著家庭網絡技術的發展也不斷進步。
國內外許多學者對遠程控制界面進行了研究。KIM H S[3]等通過對家庭網關技術的研究,設計實現了在家庭網關上配置HTTP Server,用戶通過瀏覽器查看設備狀態、完成設備控制操作,但該方法得到的控制界面都是靜態頁面,不是自動生成。CHO S Y等[4]通過對家庭網絡中的Web Server技術的研究,提出了通過Web Server向遠程用戶提供控制界面的方法,但在研究中并沒有具體實現方法。國內學者田紅成等[5]對基于IPv6的信息家電控制界面的研究中,提出一種基于UPnP的家庭網關設計模板文件,根據該模板文件自動生成設備控制界面。但該技術中對按鍵的設計及關聯沒有明確的說明。韓穎錚等[6]提出基于家庭網絡協議的控制界面生成技術,在設備描述中增加“界面生成關鍵信息”,家庭網關根據這些信息有效地自動生成控制界面。該方法雖然實現了設備界面的自動生成,但是還是基于Web頁面的方式呈現,安全性和多樣性上存在不足。
1.2 現有技術存在的問題
通過上述對現有研究技術的分析可知,當前能夠實現信息家電界面自動生成的研究較少。信息家電設備控制界面生成技術主要有以下兩種基本情況。
(1)信息家電設備根據預先設定的固定界面,下載到用戶客戶端或者家庭內部網關上安裝,以此形成的控制界面完成信息家電設備的控制。這種方式形成的操作界面可選擇性多,但是設備更新或升級需要重新下載并安裝新的界面,且多種設備控制界面獨立存在,難以整合,給用戶帶來諸多不便。
(2)利用信息家電在家庭網絡協議中發布的信息實現界面的自動生成。這種條件下,由于提供的信息量比較少,使得生成的界面過于簡單,不便于操作;另外,在這種條件下生成的界面一般都是依托于網頁提供給用戶,雖然有些研究已經實現了一些動態效果,但是對于用戶來說還是較為單一且有些呆板。
2 面向界面自動生成的家電控制模型及仿真
針對前面界面生成技術中提到的問題,借鑒當前多種家庭網絡中家電設備界面生成的框架,本文系統地完成了一個面向界面自動生成的信息家電控制模型,并設計完成了適用于Android系統的界面生成器。
2.1 家電設備控制模型
本研究設計的信息家電控制模型的結構如圖1所示。接入家庭網絡的信息家電設備采用互聯網技術,使得信息家電可以處于家庭內部網絡或者遠程網絡中。信息家電設備中的安全模塊可以保證家電接入家庭網絡的安全性,在設備控制模塊中有設備服務的參數設置、控制按鍵設置等有關設備控制操作相關的功能。通過Web Service對家庭網絡中的信息家電設備進行抽象與發布,由此形成的WSDL文檔中關于信息家電詳細的設備服務描述,包含設備描述、服務狀態描述及呈現、服務關聯、控制按鍵等設備操作描述。通過Internet將生成的WSDL文檔的URL傳輸給安裝有本文設計實現的界面生成器的Android系統設備,界面生成器會自動完成對WSDL描述文件的解析,轉換成為Android系統可用的XML布局文件,并添加設備控制功能的相關代碼實現家電控制界面的自動構建。
2.2 面向Android系統的界面生成器
目前,Android應用程序基本采用XML文件的形式通過對按鈕、文本、列表等控件的設置來完成界面的布局。如在相對布局方式中有一個名字為btn_1的Button控件,并且Button上顯示的文字是“OpenLayout!”,描述文件如下:
<LinearLayout
<Button
android:id="@+id/ btn_1"
android:text="OpenLayout!"
/>
</LinearLayout>
本文提出的界面生成器可以完成將設備服務描述文件轉換成Android系統界面布局所需要的XML文件,以此來完成設備控制界面的自動生成。在界面生成器中完成了WSDL文檔解析轉換成為XML文件,實現界面布局與界面生成技術相結合,并結合Android編碼實現更加復雜的設備控制操作,自動完成信息家電設備的控制界面在Android系統中的呈現,實現信息家電設備界面的自動構建。
根據對設備服務描述文件的分析,將信息家電設備的服務描述分成3部分來完成WSDL文檔向XML文件的轉換,即設備描述模塊、服務描述模塊和操作描述模塊,設計完成的界面生成器的結構如圖2所示。
設備描述模塊用來存儲家庭網絡中信息家電設備的描述信息,其中包含信息家電的網絡地址ADR、信息家電設備名稱DeviceName、信息家電在網絡中的端口號DevicePort等。服務描述模塊主要用來保存服務的描述信息,主要的設備服務描述信息包括設備服務的種類Device_Service_Type以及設備服務數目Device_Service_Num等。操作描述模塊是整個界面生成器中的主要模塊,用來存儲設備操作的描述信息,包含了設備控制操作的名稱(如輸入、輸出等)、設備操作相對應的輸入或輸出參數的設置等。
WSDL文檔通過界面生成器轉換成XML布局文件的過程如下:
(1)從頭開始對WSDL文檔進行順序掃描,按照設備描述模塊、服務描述模塊和操作模塊將WSDL文檔分割成分別屬于上述模塊的子段,然后根據模塊內的描述信息將分割的模塊子段抽象成為一般形式,并且根據子段間的相互依賴性將相關聯的子段組合起來,按照對應子段在WSDL文檔中的位置,將其寫入到XML文件中。
(2)如果掃描到沒有相互依賴的子段,則直接進行抽象;如果掃描到的子段具有相互依賴性,則根據模塊的依賴性(例如是否綁定、是否是復雜類型描述等)分別處理:
①如果掃描到的模塊依賴于設備描述模塊,則使用設備描述模塊中的元素值進行對應的抽象替換,形成相應的子段。
②如果掃描到依賴于服務描述模塊的子段,則先進行設備描述模塊的抽象,再取服務描述模塊中的元素進行替換,并將替換后的字符串進行組合,形成相應的子段。
③如果掃描到依賴于操作描述模塊的子段,則先進行服務描述模塊的抽象替換,然后再取操作描述模塊中的元素進行相應的替換,生成類型一致的字符串,并組合起來形成對應的子段。
在界面生成器中包含的部分映射關系如下:“<wsdl:service name”映射到XML布局文件的整體布局的惟一標識“android:id”和Java代碼中的接口名稱,“<wsdl:port-Type name”可對應于Java代碼中可被調用的函數庫,在portType元素中包含的operation元素,映射到XML布局文件中的控件屬性(如默認文本顯示)和Java代碼中的控件包含的方法實現(如輸入輸出以及其他操作),其中“<wsdl:operation name”可映射到XML布局文件中控件的惟一標識“android:id”并對應于Java代碼中的實現方法。
(3)最終將得到的各個子段按照其在WSDL文檔中的相對位置組合,這樣便生成了信息家電設備控制界面的XML布局文件。
在WSDL文檔的抽象解析過程中,將布爾型采用普通的Button控件來表示,將枚舉類型(enumeration)根據其基數情況采用列表或者RadioButton控件表示,將字符串類型有輸入要求的采用EditText控件表示,對于無參數輸入的采用TextView控件表示,符合Android系統對界面布局文件的要求且增加了自動生成界面與用戶的交互性。
用戶通過遠程終端(Android設備)上的界面生成器訪問家庭網絡中提供的設備描述文件的URL,就能夠獲取服務控制界面,實現對設備的操作和控制。
3 家電控制模型仿真及結果
信息家電設備接入到家庭網絡中可采用有線和無線兩種方式。有線網絡比較穩定、安全性比較高;無線網絡簡單方便,并且可以滿足設備的移動性。在本文的仿真中,設備的接入采用有線方式接入局域網,而用戶的控制設備則采用無線方式。
編程仿真實現虛擬冰箱和虛擬空調程序,以此分別完成對冰箱和空調的模擬。將兩臺虛擬設備和一臺安裝有界面生成器的Android設備連接在同一個家庭局域網內,開啟兩臺設備的網絡服務。根據家電控制模型,信息家電通過Web Service完成家電服務的描述以及發布,生成WSDL文檔,將WSDL文檔作為界面生成器的輸入參數,解析轉換成XML布局文件,形成Android系統的控件,區分出服務區域,得到風格統一的家電控制界面,如圖3所示。用戶可以通過生成的家電控制界面對家電進行操作控制。用戶通過網絡發送家電設備控制請求,從而完成對設備的遠程控制。
點擊圖3中的空調選項,針對空調的控制界面會自動彈出,如圖4所示。在該頁面中,空調當前狀態以及空調的控制按鍵自動呈現。用戶可在此控制界面上進行空調的開關、溫度的升降、模式選擇等操作,操作完成后在設備控制界面和虛擬空調的控制界面上都可以看到操作效果。
本文提出了面向界面自動生成的信息家電控制模型,在界面生成器中完成了設備服務描述信息的提取及可視化,為信息家電控制界面的呈現提供了信息,針對當前的Android系統設備,利用這些信息,可以完成便捷的、個性的、人性化的信息家電設備控制界面的自動構建。后續工作將研究信息家電控制界面的優化問題,例如對于某個控件的自動選擇方法,使用文本輸入還是單選菜單更合理、更人性化,需要設計一定的優化算法來實現。
參考文獻
[1] 王曉東,姜浩.Web Service同傳統分布式技術的比較分析[J].計算機技術與發展,2008,18(3):125-127.
[2] SONG K,LEE K H.An automated generation of xforms in terfaces for Web Services[C].Proceedings of the International Conference on Web Services,2007:856-863.
[3] KIM H S,HAN S S,LEE C G.The jini-based broadband power line communication(BPLC) home control system[C]. ISITC:Information Technology Convergence,2007:86-90.
[4] CHO S Y,SEO D Y,KIM T Y.Gateway framework for home appliances’s interoperability based on heterogeneous middleware in residential network[C].2002 Digest of Technical papers,International Conference,2002:98-99.
[5] 田紅成,陳萍,張蓓,等.IPv6信息家電控制界面的自動生成技術[J].計算機工程,2007,33(3):262-264.
[6] 韓穎錚,陸以勤.家庭網絡控制界面自動生成技術及仿真[C].長沙:CERNET第十七屆學術年會,2010:383-387.