'Web service在物聯網IoT中的應用'

"

物聯網中應用最廣泛的就是request/response通信模式(MQTT採用pub/sub模式)。通信雙方一request一response,實際上就是client、server的模式。物聯網中host端去request end-device的tempreture,end-device受到request後,responce相應的tempreture。實際上,end-device在此交互中充當著server的角色,為host端提供溫度值。

end-device是server?我們想象中的server都是高性能的,每秒鐘響應巨量的request,而資源受限的end-device怎麼可以是server?但它確實提供了響應request tempreture的服務。

"

物聯網中應用最廣泛的就是request/response通信模式(MQTT採用pub/sub模式)。通信雙方一request一response,實際上就是client、server的模式。物聯網中host端去request end-device的tempreture,end-device受到request後,responce相應的tempreture。實際上,end-device在此交互中充當著server的角色,為host端提供溫度值。

end-device是server?我們想象中的server都是高性能的,每秒鐘響應巨量的request,而資源受限的end-device怎麼可以是server?但它確實提供了響應request tempreture的服務。

Web service在物聯網IoT中的應用

隨著移動互聯網的發展,client端不僅僅侷限於PC,更多地,手機,pad等移動終端設備也應實現對服務器端end-device的訪問。因此,end-device需要為不同的開發平臺(Java、.net)和操作系統(Linux、Windows)提供服務。那麼,有沒有什麼技術可以實現這種跨越平臺,語言,從而達到與end-device(服務器)通信的目的?現在傳統意義的服務器端是如何實現這一功能的呢,Web service!

一、什麼是Web Service?

形象一點理解的話,Web Service就是一組位於遠程服務器上的函數庫(或者是存在於網絡上的應用程序組件),通過這些函數庫(組件),客戶端可以通過web訪問這些服務器端的service。調用Web service的這一端叫做客戶端,而提供Web service的一端叫做服務端。

套用網上一個經典例子:騰訊QQ客戶端的天氣服務,顯然不是騰訊公司發射衛星,自己去維護公司的內部天氣服務器,而是去request氣象局的服務器(氣象局將天氣信息通過Web service方式進行公開),再將服務器response回的天氣狀況進行QQ顯示。

Web service的平臺技術

從深層次講,Web Service是一套標準、規範,這套規範了:

如何將server端的信息公佈出去,讓客戶端得到足夠信息來調用Web service;

因為需要跨平臺,跨操作系統,所以需要提供一種標準的類型對信息進行封裝。

規範一種方法,對Web service進行遠程訪問;

WSDL+XML+HTTP就構成了Web service的三大技術。

WSDL(Web Services Description Language):是一種基於xml的語言,是機器可讀的。客戶端在訪問服務器提供的服務的時候,首先要知道,服務器提供的resources的url地址在哪,有哪些服務方法可以調用。WSDL文件就是服務器告訴客戶端們我提供了哪些服務方法,他們的調用的url在哪。WSDL保存在Web服務器端,通過固定的url就可以訪問到它。

XML格式:採用XML格式進行消息描述,其優點在於平臺無關,它解決了數據的表示問題。

HTTP協議:Web Service通過HTTP協議發送請求和接收響應。request和response的內容均採用XML格式進行封裝,並且在HTTP協議中加上一些首部字段如Content-type用於描述HTTP報文的內容格式。

二、Webservice 在IoT中的問題

上文提過,物聯網中的end-device在交互中充當著server的角色。那麼,上述的WSDL+XML+HTTP能否直接套用到end-device中呢?主要有下面幾點問題:

XML文件難以解析,end-device在對文件進行解析時,會消耗過多的CPU和內存資源,XML文件相對來時比較大,在傳輸過程中會消耗較多的網絡資源。

HTTP封包也比較大,消耗過多網絡資源、內存資源。

HTTP的傳輸層使用的是TCP協議,在握手揮手過程中,過多的冗餘數據Segment。

所以,WSDL+XML+HTTP+TCP是PC級別的,要部署在ROM RAM小到只有幾十KB的end-device端中不是很實際,而且還要加上TCP/IP,鏈路層,外設代碼,更顯得不堪重負。

因此Web service要應用在物聯網中,部署在end-device上必須要需求新的替代品。這就引出了我們的主角——CoAP協議。

三、IoT中的Web Service

上文提到PC級別的Web Service採用XML+HTTP+TCP的模式,IoT中end-device也採用類似架構的模式,只不過更精簡,更易解析,更省資源:JSON+CoAP+UDP。

"

相關推薦

推薦中...