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