李惠蓉
(鹽城市產(chǎn)品質(zhì)量監(jiān)督檢驗所,江蘇 鹽城 224056)
本文的研究背景基于一個以新理念建設(shè)的實驗室。實驗室為建有智能化檢測系統(tǒng),擁有多種先進的檢測檢驗設(shè)備。其中包含多個模塊,模塊之間互相獨立,通過開放的接口又可有機結(jié)合相互聯(lián)系。在擁有了如此多智能化設(shè)備后,實驗室管理人員也面臨一個問題:雖然大多數(shù)智能設(shè)備都提供了相應(yīng)的控制軟件與APP,然而傳統(tǒng)的控制方法具有很大的局限性,針對每一個設(shè)備,都需要與之對應(yīng)的APP,隨著智能設(shè)備數(shù)量的增多,用戶體驗將會變得非常糟糕,急需解決“人等機器”的難題。同時,無法統(tǒng)籌實驗設(shè)備信息和耗材消耗情況,也會使得工作人員在實際操作中遇到缺少補充情況。如果能通過智能終端反饋監(jiān)測信息,實現(xiàn)對實驗室中設(shè)備使用情況和各種耗材的實時監(jiān)控,將會很大程度減少工作人員的無意義的重復(fù)性工作。

圖1 云平臺整體架構(gòu)
為實現(xiàn)檢測設(shè)備的實時在線監(jiān)控功能,前期設(shè)計出一個功能較為齊全的智能實驗設(shè)備物聯(lián)應(yīng)用服務(wù)平臺。面向物聯(lián)應(yīng)用需求,實驗室面向檢測設(shè)備開發(fā)了適配器和云平臺服務(wù)。它可將原來的檢測設(shè)備通過適配接入云端服務(wù)平臺,從而可構(gòu)建管理者和設(shè)備基于Internet的信息交互通道。云平臺整體架構(gòu)如圖1所示,該服務(wù)平臺基于SOA架構(gòu)(面向服務(wù)的體系結(jié)構(gòu)),為開發(fā)者提供了用戶自定義服務(wù)開發(fā)及管理(UDS, User Defined Service)、公共服務(wù)組件(用戶鑒權(quán)、負(fù)載均衡)、智能設(shè)備接入、移動客戶端接入等基礎(chǔ)通用組件。通過云平臺,開發(fā)者可以只負(fù)責(zé)自定義服務(wù)而無需花費精力在云端服務(wù)的具體部署的工作上。
課題提出了一種可應(yīng)用于智能設(shè)備控制系統(tǒng)的普適性的應(yīng)用邏輯,以此來解決現(xiàn)有的智能設(shè)備控制方式復(fù)雜、用戶個性化需求不能滿足的問題,使得使用者可隨時隨地使用和控制智能設(shè)備。本論文擬基于檢測設(shè)備的物聯(lián)應(yīng)用云服務(wù)平臺,增加一個WSGI Web服務(wù)器,來建立一個面向Web應(yīng)用的管理接口,以將云平臺提供的基礎(chǔ)服務(wù)以Web服務(wù)形式暴露給第三方用戶,并基于此WSGI Web服務(wù)器,設(shè)計一個APP以在智能手表等可穿戴設(shè)備上來實現(xiàn)虛擬控制面板功能。
此種結(jié)構(gòu)在自己構(gòu)建的云服務(wù)平臺上設(shè)置一個WSGI Web服務(wù)器,目的是為第三方服務(wù)請求提供規(guī)范接口。WSGI Web服務(wù)器可將第三方服務(wù)請求映射為不同云服務(wù)平臺上的操作,可實現(xiàn)不同服務(wù)平臺、不同種類設(shè)備的一致性操作規(guī)范。WSGI web服務(wù)器為基于智能手表的虛擬控制面板APP提供一個統(tǒng)一的接口,服務(wù)器端響應(yīng)客戶端虛擬面板的請求并將之映射成為對底層基礎(chǔ)云平臺的操作?;谝陨系男枨笈c思路,本系統(tǒng)的整體邏輯設(shè)計框架如圖2所示。

圖2 系統(tǒng)的整體邏輯
在檢測平臺的構(gòu)建中,我們使用python語言的flask框架來進行開發(fā)。WSGI為Web應(yīng)用框架與服務(wù)器提供了一個規(guī)范化的接口,使得開發(fā)者可以自由搭配Web框架與WSGI Web服務(wù)器。擬面板APP客戶端搭載于智能手表上,通過操作APP虛擬按鍵來響應(yīng)整個系統(tǒng)。按鍵所賦予的請求將會從應(yīng)用接口無線發(fā)送至WSGI Web服務(wù)器,WSGI Web服務(wù)器再將該請求傳送至相應(yīng)的長連接服務(wù)器,最終由長連接服務(wù)器依APP請求,基于TCP/IP協(xié)議對智能電子設(shè)備群進行控制以及信息回饋。
Web服務(wù)器工作時由四個步驟構(gòu)成:
建立連接:客戶端和服務(wù)器通過TCP/IP握手協(xié)議建立穩(wěn)定TCP連接。
請求過程(HTTP Request):客戶端向服務(wù)器發(fā)送HTTP請求數(shù)據(jù)包,例如請求服務(wù)器的數(shù)據(jù)。
響應(yīng)過程(HTTP Response):服務(wù)器向客戶端發(fā)送HTTP響應(yīng)數(shù)據(jù)包。之后由客戶端解釋渲染內(nèi)容。
關(guān)閉連接:客戶端與服務(wù)器斷開TCP連接
Android Wear是谷歌開發(fā)的Android系統(tǒng)的一個面向可穿戴設(shè)備的特殊版本。目前市場上的Wear OS設(shè)備將谷歌智能助理和通知服務(wù)集成在了移動可穿戴設(shè)備中。通過Wi-Fi、藍(lán)牙與蜂窩網(wǎng)絡(luò),Android Wear設(shè)備可以實現(xiàn)與智能手機的通信。
Android Wear應(yīng)用程序的開發(fā)也基于集成開發(fā)環(huán)境Android Studio,可以方便快捷的創(chuàng)建開發(fā)并打包發(fā)布Android Wear應(yīng)用。在本課題的技術(shù)框架中,Android Wear應(yīng)用程序采用了開源框架OKHTTP用于處理HTTP請求。OKHTTP支持谷歌的TCP傳輸層協(xié)議SPDY,可以最小化網(wǎng)絡(luò)延遲,提升傳輸傳輸效率,優(yōu)化用戶體驗。另外OKHTTP框架還可以自動化選擇最優(yōu)的Socket路線并維護,大大降低了請求延遲與握手次數(shù)。開發(fā)者可以方便地實現(xiàn)POST、GET等請求方法與請求回調(diào)用于直接返回對象以及session的保存。
本文設(shè)計的虛擬面板實現(xiàn)了多種品牌智能終端的整合。目前,各種品牌智能終端均有其相應(yīng)的APP或操控平臺與之配合使用,在操作上十分繁雜。本操控面板通過我們自行構(gòu)建的一個可以綜合不同云服務(wù)于一體的服務(wù)管控端,可對用戶已經(jīng)在此平臺上綁定的不同品牌的智能終端進行操控,真正做到跨平臺的連接,使用上更加便捷。Android的應(yīng)用構(gòu)成和工作流程圖如圖3所示。

圖3 工作流程圖
在安裝完必要的開發(fā)工具組件后,就可以在Android Studio進行虛擬面板客戶端app的設(shè)計了。Android Studio的工程創(chuàng)建分兩個層級:第一個層級通過菜單File→New→New Project創(chuàng)建,這里的新項目是指新的工作空間,對應(yīng)Eclipse的workspace;第二個層級通過菜單File→New→New Module創(chuàng)建,這里的新模塊是指一個單獨的APP工程,對應(yīng)Eclipse的project。
用于智能設(shè)備檢測控制的虛擬控制面板應(yīng)用系統(tǒng)的管控信息和狀態(tài)信息的流動過程如圖4所示。其中物聯(lián)云端平臺是虛擬面板設(shè)計中最核心的部分,該平臺負(fù)責(zé)接收虛擬面板服務(wù)管控端發(fā)來的控制指令,并解析該指令,控制具體的物聯(lián)網(wǎng)設(shè)備。當(dāng)智能設(shè)備的運行狀態(tài)發(fā)生改變時,通過物聯(lián)云端平臺將更新后的信息發(fā)送給用戶。

圖4 基于設(shè)備檢測的虛擬面板工作機理圖
Android Wear的界面布局是在xml文件內(nèi)完成設(shè)計的,布局采用線性布局Relative layout,由于界面布局主要通過添加布局元件實現(xiàn),因此描述時不賦予代碼。虛擬面板界面主要分為主控界面和三個分支界面。
設(shè)備檢測主控界面即是APP的“主頁”,對應(yīng)于主控界面中的三個按鍵,分別設(shè)計了“智能空調(diào)”、“智能電閘”、“智能開關(guān)”所對應(yīng)的三個分支界面,點擊對應(yīng)的按鍵APP就會響應(yīng)進入響應(yīng)的界面。
以“智能電閘”界面為例,在“智能電閘”界面內(nèi),設(shè)置了電閘的電量、功率、電壓、電流等數(shù)據(jù)的顯示元件,并增加了控制電閘開關(guān)的開關(guān)元件“switch”,如圖5所示。

圖5 “智能電閘”界面
在虛擬用戶界面控制模塊中,將檢測設(shè)備分為三類,通過向該按鍵添加的設(shè)備信息中的設(shè)備類型項,來確定該按鍵對應(yīng)的智能設(shè)備屬于哪一項。
第一類是檢測簡單的智能設(shè)備,例如智能插座和智能開關(guān)。如果虛擬控制面板上的按鍵和這類設(shè)備綁定,則該按鍵的業(yè)務(wù)邏輯將會非常的簡單,用戶點擊該按鈕,則會直接向后臺的邏輯處理模塊發(fā)送一條觸發(fā)該按鍵的指令,邏輯處理模塊在收到該指令后,該指令的報頭部分,包含一個設(shè)備ID號,從而得知與該按鍵綁定的智能設(shè)備的設(shè)備ID,從而知道觸發(fā)該按鍵,要向哪一個具體設(shè)備發(fā)送指令,收到指令的邏輯處理模塊,根據(jù)設(shè)備ID號知道該設(shè)備的類型,從而會進行相應(yīng)的數(shù)據(jù)處理和命令發(fā)送。
第二類是功能稍微復(fù)雜的設(shè)備,例如對智能空調(diào)的檢測。當(dāng)通過輸入的設(shè)備類型,判斷與該按鍵綁定的設(shè)備為第二項,那么在點擊該按鍵的時候,會彈出一個菜單欄,在該菜單欄下會有一系列指令。點擊其中一個指令,則與該按鍵綁定的設(shè)備就會執(zhí)行相應(yīng)的操作,同樣,我們也是通過設(shè)備ID號找到對應(yīng)的設(shè)備,用戶點擊菜單欄中的指令,指令先發(fā)送給邏輯處理模塊,邏輯處理模塊再收到該指令后,對該指令進行處理,將其轉(zhuǎn)化為具體的操作命令,發(fā)送給對應(yīng)的設(shè)備。
第三類是操作功能復(fù)雜的智能設(shè)備,例如智能顯示設(shè)備。對于這類復(fù)雜的設(shè)備,會開發(fā)全新的虛擬控制面板來負(fù)責(zé)該類設(shè)備的操作。當(dāng)按鍵與設(shè)備綁定之后,點擊該按鍵,虛擬控制面板會跳轉(zhuǎn)到操作該設(shè)備的虛擬控制面板,由該界面發(fā)出指令,經(jīng)邏輯處理模塊后,將具體命令發(fā)送給設(shè)備并加以執(zhí)行,檢測設(shè)備控制示意圖如圖6所示。

圖6 檢測設(shè)備控制示意圖
為實現(xiàn)實驗室設(shè)備管理規(guī)范化,論文提出了虛擬控制面板的設(shè)計理念,基于面向智能終端的物聯(lián)網(wǎng)云服務(wù)平臺,將Android Wear智能手表應(yīng)用終端、WSGI Web服務(wù)器、實驗室的檢測設(shè)備有機結(jié)合互聯(lián)。為檢測設(shè)備提供了遠(yuǎn)程實時操控服務(wù)。開發(fā)的基于云平臺的檢測設(shè)備虛擬控制面板應(yīng)用系統(tǒng),可為各種終端提供統(tǒng)一操作模式,解放了工作人員的日常工作,優(yōu)化了實驗設(shè)備的利用效率,讓實驗室變得更加開放、智能。