隨著物聯(lián)網(wǎng)技術(shù)與移動(dòng)互聯(lián)網(wǎng)的發(fā)展,基于Web的應(yīng)用正逐漸成為個(gè)人業(yè)務(wù)的主流選擇。隨著嵌入式芯片的處理能力不斷提升,移動(dòng)嵌入式Web服務(wù)器占據(jù)了一定的市場(chǎng),在中小型系統(tǒng)方面,傳統(tǒng)的基于PC端的Web服務(wù)器在成本及網(wǎng)絡(luò)架構(gòu)上遜于嵌人式Web服務(wù)器,利用嵌入式設(shè)備的硬件資源,在嵌入式設(shè)備上建立HTTP服務(wù)器及Web頁面,遠(yuǎn)程用戶通過瀏覽器實(shí)現(xiàn)對(duì)嵌入式設(shè)備的遠(yuǎn)程查看、管理和控制。
目前移動(dòng)嵌入式Web服務(wù)器應(yīng)用廣泛,特別是家庭網(wǎng)絡(luò)、環(huán)境監(jiān)測(cè)、物聯(lián)網(wǎng)農(nóng)業(yè),甚至是電力行業(yè),例如Web服務(wù)器在光伏發(fā)電監(jiān)控系統(tǒng)中的應(yīng)用¨1,基于嵌入式處理器的Web服務(wù)器在網(wǎng)絡(luò)監(jiān)控系統(tǒng)中的應(yīng)用舊1。除此之外,移動(dòng)嵌入式Web服務(wù)器特別適合以個(gè)人輕量級(jí)業(yè)務(wù)為主的應(yīng)用場(chǎng)景,大型業(yè)務(wù)系統(tǒng)可以考慮使用分布式的移動(dòng)嵌入式Web服務(wù)器系統(tǒng)。
用戶訪問Web服務(wù)器,一般都會(huì)直接輸入服務(wù)器域名進(jìn)行站點(diǎn)訪問,而根據(jù)移動(dòng)嵌入式Web服務(wù)器應(yīng)用場(chǎng)景的特點(diǎn),接人Internet的IP地址大多不是固定的,而是采用撥號(hào)方式連接上網(wǎng),特別是以3G通信方式接人Internet網(wǎng)絡(luò),均采用撥號(hào)方式接入公網(wǎng),而每次撥號(hào),電信運(yùn)營商分配的IP地址都有變化,因此公網(wǎng)中原來的IP地址與域名對(duì)應(yīng)的關(guān)系應(yīng)及時(shí)更新,否則用戶無法通過域名訪問Web服務(wù)器,將新的IP地址與域名進(jìn)行更新則是由DDNS模塊來完成。DDNS模塊將更新請(qǐng)求發(fā)送至DDNS服務(wù)器,DDNS服務(wù)器將最新的IP地址與域名映射關(guān)系發(fā)送給DNS更新,如此新的IP地址與域名對(duì)應(yīng)關(guān)系便在公網(wǎng)登記,以便公網(wǎng)用戶時(shí)刻都能通過域名訪問Web服務(wù)器。
目前,移動(dòng)嵌入式Web服務(wù)器方面的研究更偏向于Web實(shí)現(xiàn)及服務(wù)器數(shù)據(jù)處理,文獻(xiàn)[3]就是對(duì)Web實(shí)現(xiàn)所做的研究,而對(duì)Web服務(wù)器接入網(wǎng)絡(luò)方面所做研究甚少。本文研究DDNS在移動(dòng)嵌入式Web服務(wù)器中的應(yīng)用,解決遠(yuǎn)程用戶訪問動(dòng)態(tài)IP移動(dòng)嵌入式Web服務(wù)器的問題。
1、移動(dòng)嵌入式Web服務(wù)器優(yōu)勢(shì)
1.1移動(dòng)嵌入式Web服務(wù)器優(yōu)勢(shì)
移動(dòng)嵌入式Web服務(wù)器相比于PC端服務(wù)器,充分利用嵌入式設(shè)備的硬件條件,建立Web服務(wù)器,節(jié)省了硬件成本,不必再為建立Web服務(wù)器準(zhǔn)備硬件資源。優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),傳統(tǒng)的嵌入式設(shè)備只是作為數(shù)據(jù)匯聚和轉(zhuǎn)發(fā)的功能,起著網(wǎng)關(guān)作用,上層建立了專門的服務(wù)器系統(tǒng),嵌入式設(shè)備需將數(shù)據(jù)上傳至服務(wù)器供服務(wù)器管理,而訪問者不直接訪問嵌入式設(shè)備,而是直接訪問服務(wù)器獲取數(shù)據(jù)信息。現(xiàn)采用移動(dòng)嵌人式Web服務(wù)器,訪問者直接高效可靠地通過嵌人式設(shè)備上的Web服務(wù)器實(shí)現(xiàn)遠(yuǎn)程網(wǎng)管信息的傳送、控制、展示和管理。在很大程度上簡(jiǎn)化了網(wǎng)絡(luò)結(jié)構(gòu)”。
移動(dòng)嵌入式Web服務(wù)的便捷性更高,應(yīng)用更加廣泛,嵌入式網(wǎng)絡(luò)結(jié)構(gòu)靈活,靜態(tài)移動(dòng)嵌入式Web服務(wù)器在一定程度上限制了嵌入式網(wǎng)絡(luò)的組建與擴(kuò)展。
當(dāng)嵌入式網(wǎng)絡(luò)結(jié)構(gòu)改變時(shí),服務(wù)器節(jié)點(diǎn)有可能變動(dòng),此時(shí)不需要知道服務(wù)器IP地址,只需要采用DDNS服務(wù)器將域名與新IP更新。又比如搭建個(gè)人智能家居系統(tǒng),一般而言,運(yùn)營商分配個(gè)人的是動(dòng)態(tài)IP地址,用戶在遠(yuǎn)程無法通過域名訪問建立智能家居Web服務(wù)器,而需要采用DDNS服務(wù)器來完成定期的動(dòng)態(tài)域名與IP更新。
1.2 DDNS技術(shù)在移動(dòng)嵌入式Web服務(wù)器的優(yōu)勢(shì)
移動(dòng)嵌入式Web服務(wù)器、DDNS服務(wù)器、DNS服務(wù)器及用戶端具體網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
用戶端通過域名訪問移動(dòng)嵌人式Web服務(wù)器,域名通過DNS服務(wù)器解析得到IP地址,實(shí)際上用戶是根據(jù)IP地址實(shí)現(xiàn)對(duì)Web服務(wù)器的訪問,通信流程如圖1實(shí)線所示。當(dāng)域名與IP地址對(duì)應(yīng)關(guān)系保持不變時(shí),公網(wǎng)的DNS服務(wù)器一直保存著這對(duì)映射關(guān)系,用戶可以輕松實(shí)現(xiàn)通過域名訪問移動(dòng)嵌入式Web服務(wù)器,但若IP地址有變化時(shí),而DNS服務(wù)器不對(duì)最新IP與域名映射關(guān)系進(jìn)行更新,用戶便無法通過域名訪問服務(wù)器,解決這一關(guān)鍵問題就是DDNS,通信流程參考圖1虛線所示。
利用DDNS技術(shù)來保證域名與IP地址映射關(guān)系正確比使用靜態(tài)IP地址服務(wù)器具有明顯的優(yōu)勢(shì)。IP地址有限,而且電信運(yùn)營商分配靜態(tài)IP地址的數(shù)目特別少,大多是分配的動(dòng)態(tài)IP地址,設(shè)備的每一次撥號(hào)都可能分配到一個(gè)不同的IP地址,因此采用DDNS技術(shù)很好地解決了IP地址數(shù)目有限的問題。
從成本方面來說,分配靜態(tài)IP地址比撥號(hào)動(dòng)態(tài)分配IP地址價(jià)格要昂貴得多,擁有靜態(tài)IP地址不適合輕量級(jí)業(yè)務(wù)的嵌人式應(yīng)用場(chǎng)合。
目前,DDNS技術(shù)越來越成熟,國內(nèi)外的DDNS服務(wù)供應(yīng)商也層出不窮,比如國外的DynDNS.org和國內(nèi)的花生殼等,都能很好地滿足中小企業(yè)在DDNS上的需求。
2、移動(dòng)嵌入式Web服務(wù)器接入方案設(shè)計(jì)
2.1 擴(kuò)展DDNS的嵌入式服務(wù)器架構(gòu)
對(duì)于移動(dòng)嵌入式Web服務(wù)器而言,與不具有Web服務(wù)器嵌入式模塊最大的區(qū)別就是包含HTTP服務(wù)器,HTTP服務(wù)器作為嵌入式設(shè)備的擴(kuò)展模塊,可根據(jù)需求來定制,這也是嵌入式系統(tǒng)的優(yōu)點(diǎn)之一,方便模塊定制和裁剪。HTTP服務(wù)器模塊主要負(fù)責(zé)自身任務(wù)管理,同時(shí)提供HTTP對(duì)Web頁面請(qǐng)求做出響應(yīng),并且接受遠(yuǎn)程訪問者的數(shù)據(jù)請(qǐng)求,這主要是完成HTTP協(xié)議的解析,即將遠(yuǎn)程訪問者的HTTP報(bào)文解析并做出相應(yīng)的回復(fù)。
如圖2所示,嵌入式設(shè)備軟件根據(jù)功能需求各有區(qū)別,尤其是擴(kuò)展模塊,都是量體裁衣,圖2描述了保護(hù)DDNS功能的移動(dòng)嵌入式Web服務(wù)器共有的模塊,主要有Web頁面、HTTP服務(wù)器、網(wǎng)絡(luò)通信模塊、數(shù)據(jù)存儲(chǔ)區(qū),網(wǎng)絡(luò)通信模塊既包括有線通信也包括3G或者WiFi等無線通信,本文擴(kuò)展了DDNS模塊,其他通用模塊未在圖2中列出。
Web界面將請(qǐng)求發(fā)至HTTP服務(wù)器,HTTP服務(wù)器Hand request接收到請(qǐng)求,一方面將數(shù)據(jù)存儲(chǔ),另一方面將消息發(fā)送至主控軟件采取相應(yīng)動(dòng)作完成功能。將請(qǐng)求數(shù)據(jù)存儲(chǔ)的目的是為了保證各進(jìn)程模塊共享數(shù)據(jù)內(nèi)存,采用開鎖、存取、關(guān)鎖的機(jī)制,保證數(shù)據(jù)能在不同進(jìn)程之間共享。比如界面有一條配置溫度傳感器告警閾值的請(qǐng)求,HTTP服務(wù)器將閾值存人數(shù)據(jù)存儲(chǔ)區(qū),同時(shí)又發(fā)消息至主控軟件中的控制溫度傳感器進(jìn)程,提示有閾值更新,告訴該進(jìn)程讀取最新閾值判斷是否超過閾值,有溫度告警。HTTP服務(wù)器與主控軟件及數(shù)據(jù)存儲(chǔ)區(qū)均是雙向通信。HTTP服務(wù)器與網(wǎng)絡(luò)通信模塊之間的雙向通信是遠(yuǎn)程客戶通過網(wǎng)絡(luò)通信模塊訪問Web頁面,并產(chǎn)生Web請(qǐng)求,同時(shí)HTTP服務(wù)器將響應(yīng)通過Web頁面反饋給客戶。DDNS守護(hù)進(jìn)程根據(jù)IP地址的變動(dòng)發(fā)送DNS更新消息至通信模塊到DNS服務(wù)器,更新現(xiàn)在的IP,服務(wù)商將新IP地址及域名更新后,回復(fù)給DDNS。DDNS采用客戶端/服務(wù)器模式,在此,DDNS客戶端即嵌入式設(shè)備,最主要的作用即向DDNS服務(wù)器發(fā)送更新域名和IP地址對(duì)應(yīng)關(guān)系的DDNS更新請(qǐng)求,當(dāng)服務(wù)器的IP地址發(fā)生變化時(shí),它們將作為DDNS客戶端,需要?jiǎng)討B(tài)更新域名和IP地址對(duì)應(yīng)關(guān)系的設(shè)備。DDNS服務(wù)器負(fù)責(zé)通知DNS服務(wù)器動(dòng)態(tài)更新域名和IP地址之間的對(duì)應(yīng)關(guān)系。接收到DDNS客戶端的更新請(qǐng)求后,DDNS服務(wù)器通知DNS服務(wù)器重新建立域名和IP地址之間的對(duì)應(yīng)關(guān)系。從而保證即使DDNS客戶端的IP地址改變,Internet用戶仍然可以通過同樣的域名訪問DDNS客戶端。
通過DDNS技術(shù),嵌入式設(shè)備將撥號(hào)上網(wǎng)獲得的IP與自己的域名綁定,從而保證遠(yuǎn)端用戶能夠通過域名訪問移動(dòng)嵌入式Web服務(wù)器。
2.2 DDNS工作流程
DDNS的主要職責(zé)是將網(wǎng)絡(luò)撥號(hào)電信運(yùn)營商分配的新IP地址與域名發(fā)送給遠(yuǎn)端DDNS服務(wù)器,DDNS服務(wù)器將IP與域名對(duì)應(yīng)關(guān)系更新后傳送給DNS服務(wù)器,這樣域名與新IP地址映射關(guān)系就在公網(wǎng)中進(jìn)行了登記,遠(yuǎn)程用戶就可以根據(jù)域名訪問擁有新IP地址的移動(dòng)嵌入式Web服務(wù)器。DDNS工作流程如圖3所示。
當(dāng)移動(dòng)嵌入式Web服務(wù)器上電后,系統(tǒng)先進(jìn)行硬件初始化及主控軟件初始化,然后開啟DDNS模塊的守護(hù)進(jìn)程,在守護(hù)進(jìn)程中開啟一條線程監(jiān)控網(wǎng)絡(luò)撥號(hào)狀態(tài),如果有網(wǎng)絡(luò)撥號(hào)動(dòng)作發(fā)生,則取得最新口地址與原IP地址進(jìn)行判斷;若發(fā)現(xiàn)電信運(yùn)營商分配的IP地址有改變,則將DDNS緩沖區(qū)初始化,并在time_to_quit時(shí)間內(nèi)與第一個(gè)DDNS服務(wù)器發(fā)起連接請(qǐng)求,time_to_quit為移動(dòng)嵌入式Web服務(wù)器與DDNS服務(wù)器連接成功的最大時(shí)間,否則連接超時(shí);連接成功后調(diào)用更新程序,根據(jù)供應(yīng)商提供的報(bào)文格式填充報(bào)文并用socket發(fā)送出去;等待服務(wù)器回應(yīng),DDNS服務(wù)器若將新的IP地址與域名更新成功,返回request successful。若返回失敗,則依次選擇第2個(gè)DDNS服務(wù)器發(fā)起連接請(qǐng)求直至新的IP地址與域名在公網(wǎng)登記成功。
2.3報(bào)文結(jié)構(gòu)分析
2.3.1發(fā)送報(bào)文填充
發(fā)送報(bào)文的填充格式與DDNS服務(wù)供應(yīng)商有直接關(guān)系,每個(gè)DDNS服務(wù)供應(yīng)商都有不同的DDNS請(qǐng)求報(bào)文格式,但就Linux平臺(tái)來說,大體格式基本一致,都需要填充服務(wù)器域名地址、主機(jī)設(shè)備用戶名及密碼、用戶代碼等信息。
本文主要使用3個(gè)DDNS供應(yīng)商,分別是DynDNS.org、3322服務(wù)器和oray服務(wù)器。
DynDNS.org的報(bào)文格式為:
GET /nic/update? system=statDNS&hostname = XXX.dynDNS.orgdmaylP=1.1.1.1&wildeard=ON HTTP/1.0
Authorization:Basic usemme&password
User-Agent:bcm-daemon-0.1[Linux]
Host:members.dynDNS.org
members.3322.org的報(bào)文格式為:
GET/dynDNS/update?system=dynDNS&hostname=XXX.3322.org&mylP=1.1.1.1&wildeard=OFF&mx=mail.icg.com&backmx=NO&off]ine=NO HTTP/1.1 \r
Host:members.3322.org
Authorization:Basic username&password
User-Agent:icg gw DDNS client 1.0
花生殼oray服務(wù)器供應(yīng)商DDNS.oray.COB供應(yīng)商報(bào)文格式為:
GET/ph/update? Hostname=yourhostname&myIP=1.1.1.1 HTTP/1.0
Host:DDNS.oray.com
Authorization:Basic base -64- authorization
User-Agent:Oray
發(fā)送消息之間,嚴(yán)格按照?qǐng)?bào)文格式組建報(bào)文,否則報(bào)文在DDNS服務(wù)器端將不被識(shí)別。
2.3.2返回代碼解析
DDNS更新請(qǐng)求發(fā)送至DDNS服務(wù)器后,等待從DDNS服務(wù)器響應(yīng)的返回值及返回代碼,根據(jù)返回值與返回代碼,判斷新IP地址與域名更新情況。
代碼返回值為-1,且會(huì)返回strange server response,are you connecting to the right server表示服務(wù)器域名不正確。返回401表示認(rèn)證失敗,花生殼DDNS服務(wù)供應(yīng)商返回401表示未付費(fèi)用戶訪問了付費(fèi)DDNS服務(wù)器供應(yīng)商。返回值為200表示發(fā)送至服務(wù)器成功,且服務(wù)器返回相應(yīng)代碼,具體代碼列表如表1所示。
3、功能驗(yàn)證
打開嵌入式網(wǎng)關(guān),連接好設(shè)備,在串口設(shè)備里可以看到DDNS模塊所發(fā)報(bào)文信息,嵌入式網(wǎng)關(guān)設(shè)備串口為COM9,打開串口設(shè)備,可以查看到DDNS發(fā)送報(bào)文。如圖4所示。
報(bào)文結(jié)構(gòu)如圖4所示,返回成功后,收到request successful,表示花生殼域名服務(wù)器已經(jīng)將目前的IP地址更新,域名ht825.oicp.net對(duì)應(yīng)的IP地址是124.42.77.160,這樣直接訪問域名ht825.oicp.net就可以直接訪問124.42.77.160了。如果由于網(wǎng)絡(luò)重新?lián)芴?hào),運(yùn)營商分配的IP地址不是固定的,分配的IP地址有了變化,此時(shí)DDNS模塊便會(huì)將新的IP地址填進(jìn)報(bào)文并發(fā)送至花生殼服務(wù)器,服務(wù)器更新域名與IP地址映射,保證外網(wǎng)用戶可以根據(jù)域名訪問服務(wù)器。
驗(yàn)證返回200,同時(shí)返回request success。能根據(jù)域名ht825.oicp.net解析到IP地址,但免費(fèi)的花生殼服務(wù)器出現(xiàn)了偶爾不穩(wěn)定的情況。
驗(yàn)證方法可以通過ping域名的方式驗(yàn)證,也可以通過HTTP的方式驗(yàn)證,如圖5所示。
在瀏覽器中輸入:http://ht825:raisecomht825@ddns.oray.com/ph/update?hostname=ht825.oicp.net&myip=,即輸入用戶名和密碼、域名服務(wù)器、域名,就可以更新網(wǎng)絡(luò)上的域名及IP最新的映射關(guān)系,上文訪問域名ht825.oicp.net返回的是本主機(jī)入公網(wǎng)的IP地址。
本文的研究重點(diǎn)并不是建立Web服務(wù)器,而是在討論DDNS的應(yīng)用,做了一個(gè)簡(jiǎn)單網(wǎng)頁,作為Web服務(wù)器來驗(yàn)證DDNS功能,在遠(yuǎn)程任意一臺(tái)可以連入Internet的計(jì)算機(jī)訪問ht825.oicp.net便可以訪問所建的Web瀏覽器。如圖6所示。
遠(yuǎn)程用戶在瀏覽器輸入Web服務(wù)器域名后,就可以訪問移動(dòng)嵌入式Web服務(wù)器,該服務(wù)器的主頁顯示是一個(gè)登錄頁面,輸入用戶名和密碼登錄即可。本文所建Web網(wǎng)站僅為遠(yuǎn)程訪問嵌入式Web實(shí)驗(yàn)測(cè)試,并沒有太多的功能,在實(shí)際的應(yīng)用中,應(yīng)根據(jù)嵌人式模塊的功能需求來建立嵌入式web頁面,比如智能家居嵌入式Web頁面、環(huán)境監(jiān)測(cè)嵌入式Web頁面等。
4、小結(jié)
本文將DDNS技術(shù)運(yùn)用于移動(dòng)嵌入式Web服務(wù)器,解決了遠(yuǎn)程用戶訪問動(dòng)態(tài)IP移動(dòng)嵌入式Web服務(wù)器的問題,將DDNS模塊作為獨(dú)立模塊可加載到任何需要使用Web服務(wù)器的嵌入式設(shè)備上,具有一定的通用性。物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,傳感器節(jié)點(diǎn)的增多,移動(dòng)嵌入式Web服務(wù)器將有更多的用武之地,DDNS技術(shù)將在移動(dòng)嵌入式Web服務(wù)器的搭建中起到重要作用。
下一步研究應(yīng)重點(diǎn)考慮建立通用的DDNS模塊,可以獨(dú)立配置加載,這樣只需要在嵌入式系統(tǒng)整個(gè)軟件編譯的時(shí)候,將DDNS模塊加載進(jìn)去即可,增加了DDNS模塊的配置性及適用性;同時(shí)應(yīng)當(dāng)增加更多的DDNS服務(wù)器供應(yīng)商,增強(qiáng)DDNS模塊解析功能,保證DDNS模塊解析的速度。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于DDNS的移動(dòng)嵌入式Web服務(wù)器的接入方案
本文網(wǎng)址:http://www.ezxoed.cn/html/support/11121512890.html