劉新星,曹祁生,張 健,祝振東,陳輝輝
(1.武漢郵電科學研究院 湖北 武漢 430074;2.武漢烽火通信科技股份有限責任公司 湖北 武漢 430074)
智能家居系統(tǒng)中網關與服務器連接方案設計
劉新星1,曹祁生2,張 健2,祝振東2,陳輝輝1
(1.武漢郵電科學研究院 湖北 武漢 430074;2.武漢烽火通信科技股份有限責任公司 湖北 武漢 430074)
在新型智能家居系統(tǒng)中,家庭網關將取代PC機作為家庭控制中心。傳統(tǒng)客戶端/服務器模式不能保持家庭網關與遠程服務器實時連接?;诎偃f級的家庭網關與服務器保持長連接的目的。采用主從服務器框架進行負載均衡,心跳機制保障網關與服務器實時連接的方案。通過電腦模擬網關和主從服務器進行驗證。得出了用主從服務器框架,用心跳保持長連接的方案可適用于家庭網關與遠程服務器連接的結論。
智能家居;遠程控制;家庭網關;主從服務器;長連接
隨著科技的發(fā)展,智能家居系統(tǒng)漸漸進入人們的生活。智能家居是利用計算機、網絡通訊、無線通信等技術將與家居生活有關的各個子系統(tǒng)如安防、燈光控制、窗簾控制、家電控制等有機地結合在一起,通過網絡化綜合智能控制和管理,實現(xiàn)方便快捷的全新家居生活體驗。本文提出了基于家庭網關與遠程服務器實時連接的智能家居系統(tǒng),其將家庭網關與遠程服務器相連,使家庭設備能夠真正與互聯(lián)網相連達到萬物互聯(lián)的目的。最后再通過手機等上網設備與遠程服務器相連,實現(xiàn)智能家居系統(tǒng)遠程控制的目的。
基于傳統(tǒng)C/S架構的智能家居系統(tǒng)需要保持一臺PC機運行中間件才能達到隨時控制的目的,這與智能家居綠色節(jié)能的理念相違背。在光纖到戶的推動下,PON上行家庭網關在全國得到普及,并且有低功耗保持長時間工作的特點,適合用于智能家居系統(tǒng)中。本方案設計一種新型智能家居系統(tǒng),由家庭網關替代PC成為家庭網絡控制中心。圍繞家庭網關與遠程服務器互聯(lián)問題展開,探討一種適合家庭網關與遠程服務器的連接方案。
基于家庭網關的智能家居系統(tǒng)整體框架如圖1所示。智能家居系統(tǒng)由傳感器網絡,家庭控制中心,遠程服務器,手機終端組成[1]。其中傳感器網絡通過ZigBee、Wi-Fi等無線通信技術組建[2]。傳統(tǒng)的智能家居系統(tǒng)中控制中心采用家用PC和協(xié)調器等設備,新型的智能家居系統(tǒng)如圖1所示,采用家庭網關充當家庭控制中心的角色。
2.1 遠程服務器方案設計
傳統(tǒng)的服務器方案往往使用單一服務器模式,傳統(tǒng)業(yè)務不需要客戶端與服務器保持長連接,客戶端獲取數據時發(fā)送一個連接即可。并且客戶端運行在PC機上,客戶端對服務器發(fā)起連接后,服務器可暫存客戶端的IP地址和端口,當服務器需要給客戶端發(fā)送數據時直接用客戶端的IP地址和端口號即可。所以用單一服務器即能滿足傳統(tǒng)業(yè)務的需求。當業(yè)務量大的時候,傳統(tǒng)服務器采用服務器集群技術來保證服務器不因業(yè)務量過大而癱瘓。隨著智能家居網關用戶逐步上升,用戶將達到百萬級。每個網關都要與服務器保持長連接,同時服務器還要與手機端通信[3]。為了保證服務器的負載會達到百萬級時,其仍能正常其正常工作,本方案采用主從服務器框架來實現(xiàn)負載均衡。主服務器負責網關與服務器首次建立連接,然后根據地理位置等因素為網關分配一個從服務器并告知其IP等信息,網關再根據從服務器信息對從服務器發(fā)起連接,建立連接后網關與從服務器保持長連接并斷開與主服務器的連接。主服務器對手機終端也是如此,只負責首次建立連接,判斷該手機號控制的網關分配到哪個從服務器,然后讓其對從服務器進行連接。
圖1 新型智能家居系統(tǒng)整體方案Fig.1 The new smart home systems solutions
本方案設計的服務器框架如圖2所示,由主服務器和從服務器組成,網關第一次連接或者與服務器連接中斷后重連都是對主服務器發(fā)起,主服務器收到網關發(fā)起的連接信息后進行認證,查看是否在服務網關列表,認證成功后分配從服務器IP和服務號給網關。從服務器用于保持與網關的長連接,一方面可以對網關發(fā)送控制命令,一方面可接收網關上報的監(jiān)控信息。備用主服務器用于主服務器故障時切換使用。
圖2 服務器框架圖Fig.2 Server framework
2.2 家庭網關與遠程服務器連接方案的設計
家庭網關所屬的網絡環(huán)境為電信運營商的子網環(huán)境,IP動態(tài)更改,并且經過了多層NAT轉換,服務器無法對網關發(fā)起主動連接[4]。而用戶需要隨時對家庭設備進行控制,服務器必須隨時能夠對網關發(fā)起連接。為了實現(xiàn)家庭網關與遠程服務器互相通信。本方案采用socket長連接模式實現(xiàn),服務器配置固定IP,網關上電后發(fā)起對服務器的socket連接,連接成功后保持連接不中斷,服務器可通過此socket連接收發(fā)網關的信息[5]。
2.2.1 網關與服務器長連接及意外中斷恢復的設計實現(xiàn)
用戶需要隨時遠程監(jiān)控家庭信息,例如回家路上打開空調,離開的路上關掉電源等,網關也需要隨時向用戶反饋家庭異常,例如煙霧報警信息,所以家庭網關必須與服務器隨時保持連接。本方案采用心跳包監(jiān)控網關與服務器之間的長連接,當網關與服務器連接成功后,服務器每隔一段時間(暫時設置為15 s)向網關發(fā)送心跳包,網關接收到心跳包后需立即回應心跳包給服務器。若超過5次無回應,則判定為連接中斷。服務器會將次網關在線標志位置為0,同樣家庭網關上線后會有監(jiān)控心跳線程,若連續(xù)75 s內無心跳信息,則會判定已與服務器斷開連接,網關會自動重啟連接服務器線程。
圖3 服務器與網關連接流程圖Fig.3 The flowchart of server and gateway connection
2.2.2 家庭網關控制權安全性的設計
家庭網關的控制權必須是保證是家庭成員,不能讓陌生人取得控制權,否則會帶來不可估量的后果。家庭網關存儲有一個可控手機號列表,必須通過本地web連接后才能更改,不能遠程更改(防止黑客等利用漏洞遠程添加控制權)。網關連接服務器后會上報可控手機號列表,只有在列表中的號碼才能遠程登錄服務器,并且手機遠程登錄服務器還要短信驗證碼配合,防止他人偽裝登錄。手機登錄服務器后,發(fā)送控制家庭網關的命令時會在消息頭部增加手機號信息,網關收到信息后會核對該手機號是否在本地可控手機號列表中(防止服務器的手機號列表與網關本地手機號列表不一致)。
2.3 家庭網關連接控制模塊工作流程
家庭網關的軟件流程如圖4所示,上電后初始化,然后向主服務器發(fā)送連接信息,若無法連接主服務器則向備用主服務器發(fā)送連接信息[6]。連接上主服務器后會上報自身的一些信息,包括可控手機號列表,主服務器會根據地理位置等信息返回一個最近的從服務器序號和IP地址等信息,然后網關連接從服務器。若連接從服務器連接不上,則會反饋給主服務器,主服務器會返回另一個從服務器的序號和IP地址信息用于連接。連接好從服務器后,家庭網關即可實現(xiàn)遠程監(jiān)控,但必須與從服務器保持心跳連接,才能保證其是可控狀態(tài)。
2.4 模擬測試的測試步驟和結果
本模擬測試方案中,為使數據庫訪問效率滿足性能要求,且PC遠程控制可直接用瀏覽器實現(xiàn),主服務器采用PHP 的YII框架搭建的web服務器,手機等終端和家庭網關連接主服務器則需要建立一個socket連接并把數據封裝為https協(xié)議。主服務器負責存儲網關信息,可控手機號列表等信息,并負責分發(fā)從服務器序號和IP給網關,查找與手機號配對的網關所在的從服務器序號和IP并發(fā)送給認證后的手機。
圖4 網關軟件流程圖Fig.4 The flowchart of gateway software
從服務器則采用PHP的Workerman框架來搭建,此框架是一個基于PHP的socket服務框架。網關與從服務器連接后保持心跳,手機獲取從服務器序號和IP后連接從服務器,根據網關服務號綁定與網關在同一個服務號里,在一個服務號里可包含多個手機,但只能一個網關,手機和網關之間可以互相通信。
服務器端打開workerman的進程,開啟服務,如圖5所示。
網關遠程登錄到服務器,id為67,服務號為1,與服務器保持心跳連接,如圖6所示。
瀏覽器遠程登錄,服務器認證后分配其id為68,匹配到網關所在服務號為1,向網關(id為67)發(fā)出指令“l(fā)ight1 turn on”,服務器將指令轉發(fā)給網關。
圖5 服務器端開啟socket服務Fig.5 Turn on the socket service
圖6 家庭網關遠程登錄并保持心跳連接Fig.6 The home gateway remote login and keep a heartbeat connection
圖7 服務器端接收控制指令并轉發(fā)Fig.7 The server receives the control command and forwarded
模擬實現(xiàn)結果表明,通過心跳保持家庭網關與遠程服務器長連接,分配服務號保證手機與家庭網關相關聯(lián)的方案可行。用家庭網關代替?zhèn)鹘y(tǒng)PC作為智能家居系統(tǒng)中家庭的控制中心,能充分利用現(xiàn)有家庭網關資源。
[1]韓江洪.智能家居系統(tǒng)與技術[M].合肥:合肥工業(yè)大學出版社,2005.
[2]閻洪林.住宅智能裝飾[M].北京:中國林業(yè)出版社,2006.
[3]馬福萍,張江鑫.GPON系統(tǒng)中ONT管理控制模塊的設計[J].光通信研究,2008(5):25-27.
[4]ForouzanB.TCP/IP協(xié)議簇[M].福羅贊.謝希仁,譯.北京:清華大學出版社,2006.
[5]周明天,汪文勇.TCP/IP網絡原理與技術[M].北京:清華大學出版社,1997.
[6]邱鐵.AMR嵌入式系統(tǒng)結構與編程[M].北京:清華大學出版社,2009.
The design of gateway connects to the server in smart home system
LIU Xin-xing1,CAO Qi-sheng2,ZHANG Jian2,ZHU Zhen-dong2,CHEN Hui-hui1
(1.Wuhan Research Institute of Posts and Telecommunications,Wuhan 430074,China;2.FiberHome Telecommunication Technologies Co.,Ltd.,Wuhan 430074,China)
The new smart home system uses the home gateway as the family's controlling center instead of a PC,the traditional C/S model can not keep the home gateway in real-time connection with a remote server,a new type of design of connecting the gateway to the server is needed.By using the master-slave server framework to balance the load,the heartbeat mechanism to keep the gateway in real-time connection with the server and by using three computers to simulate the authentication of the gateway and the master-slave server,it comes to the conclusion that the design is suit for the connection of home gateway and the remote server.
smart home system;remote control;home gateway;master and slave servers;long connection
TN914
A
1674-6236(2016)04-0114-03
2015-04-02 稿件編號:201504018
劉新星(1990—),男,湖南郴州人,碩士研究生。研究方向:物聯(lián)網。