一、物聯(lián)網(wǎng)與物聯(lián)設備
本人對物聯(lián)網(wǎng)的理解是物聯(lián)設備組成的網(wǎng)絡,因此物聯(lián)網(wǎng)需要兩個要素,一是設備能夠互聯(lián),另一個是能夠組網(wǎng)。物聯(lián)網(wǎng)往往又跟智能硬件概念相結合,當今物聯(lián)網(wǎng)產(chǎn)品形態(tài)往往又帶有無線連接的特點(有線最主要的弊端就是布線麻煩)。因此能夠支持互聯(lián)、組網(wǎng)、無線三個特點的物聯(lián)設備技術就是常見的藍牙和wifi了。藍牙是近距離通信,穿墻能力差;而wifi距離遠,可穿墻,但是功耗比較高。ZigBee其實通信距離比藍牙遠,功耗也比wifi低,看起來是比較理想的物聯(lián)技術,但是ZigBee的組網(wǎng)能力比較差,帶寬低,傳輸慢。ZigBee更多用在工業(yè)控制領域。
手機是現(xiàn)代社會每個人不可或缺的產(chǎn)品,藍牙和wifi是手機的必備模塊,所以手機是最大的物聯(lián)智能設備。另外,由于人是物聯(lián)網(wǎng)的直接使用者,因此幾乎所有的物聯(lián)解決方案都是圍繞手機用戶展開。
二、物聯(lián)場景演進
1.手機直接控制物聯(lián)設備架構
下圖是wifi物聯(lián)架構示意圖:
手機連接并控制物聯(lián)設備是物聯(lián)技術的基礎,第一種方式是手機和硬件控制設備都以client的方式連接路由器,這樣手機和硬件控制設備都能獲得一個動態(tài)的IP,這樣手機可以通過socket通信方式來控制硬件控制設備。第二種方式是硬件控制設備帶有wifi AP熱點功能,手機以wifi client連接上AP,AP的IP是固定的,因此手機也能夠對硬件控制設備進行控制。
這種物聯(lián)方式一般只是演示的模型,實際應用很少。因為它的缺點顯而易見,我們都知道socket通信需要知道通信對方的IP,因此手機上的APP控制硬件設備時需要填入設備的IP。第一種方式的IP是動態(tài)的,需要通過路由器的web控制頁面(一般電腦連接后瀏覽器輸入192.168.1.1)獲得,這在商用應用中不可能存在。第二種方式也需要手機APP輸入固定的IP,控制不同的設備就得輸入不同的IP,用戶體驗不好。而且這種物聯(lián)跟遙控沒有本質的區(qū)別,不利于獲取用戶的信息。而獲取用戶的信息并提供優(yōu)質服務才是物聯(lián)網(wǎng)的核心要素。
2. 基于獨立后臺服務的物聯(lián)架構
下圖是wifi物聯(lián)架構示意圖:
這種物聯(lián)架構中的獨立服務器是以域名的方式存在,這樣可以直接解決動態(tài)IP不固定的問題。另外,這種物聯(lián)架構中手機和硬件控制都需要以用戶名注冊和登陸的方式來訪問獨立服務器,并由服務器通過心跳技術來確認手機和硬件控制設備的在線狀態(tài)。手機和硬件控制在服務器看來都是普通的物聯(lián)設備,它們在服務器看來都具有唯一的用戶ID,物聯(lián)設備登陸服務器時服務器會獲取到用戶ID所在設備的IP地址。而手機APP控制硬件設備是以用戶ID為依據(jù)進行控制,其先將用戶ID送往服務器即可獲取到對應的IP地址。后續(xù)控制可以通過服務器,也可以繞過服務器直接進行。
類似web互聯(lián)架構在互聯(lián)網(wǎng)應用廣泛存在,如QQ。每臺手機都以QQ賬號和密碼進行登錄,登錄后,QQ后臺服務器會獲知每個用戶所在手機的IP地址。兩個QQ用戶通信時會先通過賬號來獲取對方的IP,并進行下一步通信。這些訪問細節(jié)都已經(jīng)封裝在QQ客戶端程序中,QQ使用者并不需要理會。用戶間的通信可能會經(jīng)過QQ服務器,也可能繞過服務器進行。如文字信息一般會送往QQ服務器進行信息過濾再送到對方,而QQ視頻應該是雙方直接通過IP進行通信。
這種架構在物聯(lián)領域曾經(jīng)是主流的架構,但是其固有的缺點也約束了它的發(fā)展壯大。這種架構中,獨立服務器一般是由硬件控制設備的銷售廠商開發(fā)維護的,另外其還需要向購買硬件設備的用戶提供手機APP,以讓用戶能夠進行遠端的硬件控制。如小孩監(jiān)護攝像頭,廠商需要開發(fā)手機監(jiān)護APP給用戶安裝使用。可以想到,用戶每購買一種物聯(lián)設備,都需要安裝一個不同的APP。這直接影響了用戶體驗。用戶一般是不情愿安裝很多的手機APP的,不僅安全無法保障,手機布滿控制APP時,要找到哪款設備對應的APP還要花時間。另外,獨立服務器的廠商受限于自己的技術儲備和運維能力,難以兼容支持第三方廠商的物聯(lián)設備。
3. 基于統(tǒng)一后臺服務的物聯(lián)架構
由第2點,我們自然可以想到,如果有一家實力超雄的廠商能夠提供統(tǒng)一的后臺服務,并被廣大手機用戶使用者認可愿意使用,而物聯(lián)設備廠商按照統(tǒng)一后臺服務擬定的協(xié)議進行設備生產(chǎn)并接入到統(tǒng)一的后臺服務,那大一統(tǒng)的物聯(lián)網(wǎng)大平臺將成為可能。
微信公眾號和微信硬件平臺得益于騰訊QQ的超大用戶量,很自然就承載了這種平臺的實現(xiàn)。完全可以預見,微信將是未來物聯(lián)網(wǎng)的重要支撐平臺之一,而小米在手機、智能家居和相關行業(yè)的布局也是物聯(lián)網(wǎng)重要支撐平臺的競爭者。微信擬定統(tǒng)一開發(fā)的協(xié)議,讓社會上不同的第三方硬件設備公司接入并獲得唯一的用戶ID,而小米不僅是統(tǒng)一后臺的開發(fā)維護者,也是小米不同硬件設備的生產(chǎn)者,兩者走的路并不一致。但兩者的共同點是后臺服務是統(tǒng)一的,兩者的隸屬公司都是超大體量型企業(yè)。
在移動互聯(lián)網(wǎng)領域,用戶基礎是非常核心的要素,涉及平臺相關的服務,沒有超大型體量的企業(yè)很難快速構建,頂多只能在垂直領域有所作為。事實上,在微信智能硬件平臺出現(xiàn)之前,也有一些企業(yè)構建了統(tǒng)一的后臺服務,讓第三方設備廠商接入。但受限于用戶的支持,這些平臺都未能為人熟知(也許是我涉獵這方面知識較少,之前有了解過一個平臺,后來忘記了)。
這種架構的示意圖如下,以微信和藍牙設備控制為例:
微信公眾平臺的最核心作用就是給各種不同的外設提供接入并分配唯一的設備ID。微信智能硬件平臺的設備ID分配策略包括外設廠商編碼和設備編碼兩個部分。設備編碼在統(tǒng)一廠商里面是唯一的。
手機需要關注外設廠商運維的微信公眾號,才能通過該公眾號的頁面發(fā)出設備控制指令消息。控制消息會通過微信公眾號服務器發(fā)往外設廠商獨立運維的后臺服務器,并由后臺服務器作出處理后向外設發(fā)出控制消息,該消息會通過微信公眾號服務器到手機的微信客戶端,而微信控制端調用藍牙JSAPI來控制藍牙外設。手機微信要控制外設需要先開啟藍牙并連接上藍牙外設。連接協(xié)議由微信硬件平臺制定,稱為airsys協(xié)議。
微信公眾平臺是開放平臺,支持第三方服務接入,同時提供微信支付、客戶接口、用戶管理等九大接口供第三方服務調用。微信公眾號支持開發(fā)者模式,開啟后即可以接入第三方的服務。所謂微信開發(fā)即是在調用微信提供的接口的基礎上完成業(yè)務邏輯開發(fā),支持的語言是php,asp等等。如何構建第三方服務器和如何進行微信接口開發(fā)另文再述。藍牙和wifi由于功耗的差異,其互聯(lián)微信的架構也有差異,在日后的技術實現(xiàn)分享中會詳細進行比較。
三、native APP &light APP
在第2種架構,手機要控制外設需要安裝外設廠商開發(fā)的APP,是原生APP(native APP);而在第3種架構,手機控制外設只需要關注外設廠商運維的微信公眾號,微信是手機的原生APP,而每個外設廠商通過微信公眾號提供的服務稱為輕應用(light APP)。微信是智能手機的首選APP,用戶量超大,因此基于微信統(tǒng)一后臺服務的物聯(lián)平臺是未來物聯(lián)網(wǎng)的重要支撐。