孫建偉,鄒慧麗,2,于碧輝
1(中國科學院 沈陽計算技術研究所,沈陽 110168)
2(中國科學院大學,北京 100049)
物聯網(Internet of things)顧名思義就是把實物與互聯網連接在一起進行信息交換和通信,物聯網的應用目標就是把IT技術充分運用到各行各業中,實現任何時間、任何人、任何地點、任何事物充分互聯[1,2].
在農業生產,工業物聯網等方面傳統的原位采樣和測試方法會帶來數據滯后和誤差等后果[3].
對于燃氣公司將遠程采集的燃氣表數據和數據信息管理功能集成到燃氣公司原有的計費管理系統中,實現遠程抄表的智能性,將成為燃氣公司的重要發展方向.本文以燃氣公司遠程抄表的背景,設計了一種基于CoAP架構的智能燃氣表數據管理系統,并集成數據處理模塊,用戶通過使用瀏覽器實現對設備數據的遠程查看、存儲,同時對物聯網智能設備的運行狀況進行在線管理和智能控制.
本文首先介紹了CoAP協議和SOA框架,然后介紹了兩種現有的信息系統和采集設備的集成方案,然后提出了一種基于CoAP協議的嵌入式RESTful Web Service集成方案,最后并合了實驗室的智能燃氣表數據管理系統項目,驗證和對比了該方案的可行性和優越性.
HTTP 協議是一個典型的符合REST準則的協議.在資源受限的傳感器網絡中,HTTP過于復雜,開銷過大,因此也需要設計一種符合 REST 準則的協議,這就是 CoRE 工作組制訂的 CoAP 協議[4,5].CoAP[6]協議(Constrained Application Protocol)是資源受限的設備的互聯網應用層協議.
CoAP協議請求和響應的語法通過消息承載[7,8].同時CoAP協議提供觀察者機制,CoAP服務器負責資源的發布,CoAP客戶端對自身感興趣的資源發起訂閱,CoAP服務器通過響應返回資源的當前狀態.
SOA是一種松散耦合的軟件體系結構,在這種體系結構中,由各自獨立可重用的服務去構成系統功能.基于SOA架構的Web Service目前廣泛運用于企業信息系統的設計中[9,10].
目前,將SOA架構企業信息系統與底層傳感器網絡集成的方法主要有兩種.(1)通過網關代理介入信息系統;(2)在底層傳感器設備中嵌入Web Service系統.這兩種方案架構如圖1所示.

圖1 網關代理方案和嵌入式系統方案
網關代理方案,是指將無線傳感器網絡通過網關連接到已有信息系統中.網關將HTTP等協議和傳感器網絡協議做轉換.該方案上層信息系統不需要做修改,實施難度低,但是該方案協議的轉換增加了網關實現的復雜程度;由于存在協議轉化,也會對通信效率產生一定影響.
嵌入式系統方案,是指將底層傳感器設備的數據和服務依照Web Service標準加入到信息系統中,在嵌入式設備上實現完整的Web Service.該方案靈活性高.但是該方案對于傳感器設備要求較高,需要傳感器模塊具有較強的數據處理能力.
本文提出了一種基于CoAP協議的嵌入式REST Web Services方案用于集成傳感器設備和信息系統.該方案同時使用網關代理和嵌入式Web Service系統.傳感器設備提供面向通信網關的RESTful Web Service,使用CoAP協議作為通信網關和傳感器設備的傳輸協議.通信網關提供面向云服務器的RESTful Web Service,使用HTTP協議作為通信網關和云服務器的通信協議.通過網關代理實現CoAP命令和HTTP命令的轉換.
本方案中通信網關僅僅對HTTP命令和CoAP命令進行轉化,相比于網關代理的方案,本方案通信網關的實施難度較低,而且通信網關的效率也會有所提升;本方案利用通信網關來減輕嵌入式設備系統的壓力,從而減小了嵌入式設備系統對硬件的要求,從而降低了系統的成本;所以本方案在一定程度上回避了前兩種方案的缺點.
基于本文提出的方案,本文設計了一種基于CoAP的智能燃氣數據管理系統.本系統總體架構如圖2所示.本系統由傳感器網絡、通信網關、云服務器三個模塊組成.
在企業級信息系統常用的SOA架構有基于SOAP的Web Services技術和RESTful Web Services.基于 SOAP 的 Web Services 采用 SOAP /XML 來封裝消息.但由于資源約束類設備的處理能力有限,并不能高效處理SOAP /XML.RESTful Web Services的主要特點包括:
(1)將服務器端 的一切數據都抽象成資源,并使用URI 標識.
(2)采用 HTTP、CoAP 等標準協議進行傳輸.
(3)在數據的封裝格式上,RESTful Web Services包括 XML、JSON等多種格式.

圖2 系統總體架構
總的來說 RESTful Web Services 是比基于SOAP的Web Services 更輕量級、更有靈活.所以該方案中通信網關和傳感器網絡均使用RESTful Web Service.
3.1.1 通信網關提供的HTTP RESTful API設計
傳感器網絡對云端服務器透明,因為云端服務器的請求都由通信網關層處理.通信網關和云端服務器的部分HTTP RESTful API設計如表1所示.
3.1.2 傳感器網絡提供的CoAP RESTful API設計
通信網關作為一個CoAP客戶端與傳感器網絡通信.通信網關與傳感器網絡的部分CoAP RESTful API設計如表2所示.

表1 通信網關提供的部分HTTP API

表2 通信網關提供的部分CoAP API
當傳感器網絡中的RESTful Web Service啟動后,會在UDP的5683端口進行監聽CoAP的GET和DELETE請求,當傳感器網絡收到通信網關的請求后,首先會檢查URI是否符合RESTful路徑規則,如果符合則調用底層設備服務API獲取設備數據,然后將數據封裝成JSON格式加入到CoAP響應包中返回給調用者.通信網關拿到CoAP響應包之后,拿到JSON數據封裝成HTTP包響應給云服務器.CoAP協議具體使用C語言實現的LibCoAP.實現過程如圖3所示.

圖3 實現過程
本系統用戶可以通過瀏覽器對氣表數據進行實時監控.首先瀏覽器向云端服務器請求傳感器數據或者管理相應的監測參數.然后云端服務器接受瀏覽器請求后,調用通信網關提供的HTTP RESTful API,通信網關將HTTP RESTful API映射成CoAP API,然后請求傳感器網絡,傳感器網絡返回給通信網關CoAP包,傳感器網絡做CoAP包和HTTP包轉化后發送HTTP包給云服務器,最后云端服務器將JSON數據做UI渲染并返回給瀏覽器.體的瀏覽器訪問傳感器網絡的工作時序圖如圖4所示.

圖4 工作時序圖
本文實現了基于CoAP協議的嵌入式RESTful Web Service方案實現了智能燃氣數據管理系統.具體可應用在燃氣公司數據智能管理方面,實現燃氣數據實時自動采集、燃氣表的遠程管理等功能.基于以上背景,對該系統進行了開發和搭建,系統各部分部署如下:
傳感器網絡:以傳統的膜式燃氣表為基表,加裝STM8L052R8為處理器且內置光電直讀器和型號為BC95的NB模塊.
云端服務器:云端服務器用于開發智能燃氣數據管理系統的業務邏輯,使用阿里云進行部署在阿里云.
系統運行后可視化的顯示智能燃氣表的數據如圖5所示.通過抓包工具抓取傳感器網絡響應給通信網關的CoAP協議包如圖6所示.針對通信網關提供的HTTP RESTful API做測試如表3所示.

圖5 智能燃氣表的數據

圖6 CoAP數據包

表3 針對通信網關的性能測試
通過實驗測試并和前兩種方案比對得出,隨著單位時間內請求數量的增多,本方案通信網關的成功率會逐漸高于網關代理方案的成功率;相對于嵌入式系統方案,本方案對硬件部分要求較低,在實際應用中本方案更加經濟,更加適合于大規模的企業智能設備的數據管理.
本文分析了CoAP協議和SOA框架,分析了現有信息系統和采集設備集成的方案,然后提出了一種基于CoAP協議的嵌入式RESTful Web Service集成方案,最后實現了一種基于CoAP的智能燃氣數據管理系統,重點基于輕量性的CoAP協議和能簡化調用流程的RESTful框架設計了本系統的通信網關和傳感器網絡.最后在燃氣公司智能燃氣表數據管理的背景下,根據本文提出的混合型方案,搭建系統,實現智能燃氣數據的管理.實驗結果表明,該方案可行性,具有擴展性強,系統開銷小,運行效率高等特點.
盡管本文驗證了基于CoAP協議的嵌入式RESTful Web Service集成方案的可行性和優越性.但是考慮到本系統在市場中的實際使用,還需要進一步驗證通信網關的功率消耗方面的問題.