• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      搭建Web服務的嵌入式Web Server*

      2014-08-27 08:34:22
      關鍵詞:腳本嵌入式客戶端

      安 峰

      (蘇州工業(yè)園區(qū)服務外包職業(yè)學院信息技術系,蘇州215123)

      引 言

      傳統(tǒng)的嵌入式Web Server搭建方案中,不論是直接基于開源網(wǎng)絡協(xié)議棧(uip等),還是基于Linux平臺下的輕量級服務器(Httpd等),Web Server均是運行在嵌入式設備當中,這也是其名稱為“嵌入式Web Server”的原因,如圖1所示。但隨著Web技術的不斷發(fā)展,Server的體積越來越大,嵌入式Web Server已不再滿足于簡單的網(wǎng)頁發(fā)送、CGI等技術,而是要求具有表單更新、實時流傳輸、大數(shù)據(jù)量交換和存儲以及復雜的后臺邏輯管理等功能。但與之相對的是嵌入式設備的硬件處理能力區(qū)別較大,很多設備無法負擔龐大的Web Server的運行壓力?;诖耍覀兲岢隽艘环N新的Server搭建方式,即將Server搬運到運算處理能力更強大的PC上,通過成熟的PHP+HTML+JavaScript等技術來實現(xiàn)功能強大、界面精美的Web Server。Server提供一種稱為“Web服務”的接口,與客戶端(嵌入式設備)互通信息。對于用戶而言,直接通過瀏覽器訪問或控制嵌入式設備,絲毫感覺不到Web服務器的位置變化,因此仍然可以被稱作“嵌入式Web Server”。這種策略類似于常見的網(wǎng)站設計中的前后臺架構,達到在最少的資源上最大化運行效率的成效。

      圖1 傳統(tǒng)的嵌入式Web Server

      基于這一思路,可以不用再擔心硬件限制,在實際應用中選擇主流的Apache+PHP+HTML 方案來搭建服務器。這種嵌入式Web Server的示意圖如圖2所示。

      圖2 基于Web服務的嵌入式Web Server

      當系統(tǒng)中的節(jié)點設備數(shù)量眾多,或者是設備的開發(fā)平臺、系統(tǒng)不同(各種手機、設備等)的時候,這種Web Server更能體現(xiàn)優(yōu)越之處。通過Web服務接口來與眾多的設備通信,而設備通過Web請求,將自身采集到的數(shù)據(jù)發(fā)送到服務器,服務器在收集到數(shù)據(jù)后會進行邏輯分析,按照PHP腳本所指定的功能將這些數(shù)據(jù)進行存儲或者丟棄,并給設備特定的反饋信息。同時,該服務器提供了一個完善的Web頁面,用戶可以通過瀏覽器來訪問到相應的數(shù)據(jù),或者對設備進行一定的控制。

      搭建這種類型的服務器需要做兩方面的工作,一是搭建傳統(tǒng)意義上的Web服務器并實現(xiàn)服務接口;二是在嵌入式設備當中編寫Web請求程序,不斷地更新自身狀態(tài)或者發(fā)送信息到網(wǎng)站服務器當中。下文將對這些內(nèi)容進行詳細介紹。

      1 Web服務器搭建

      受限于嵌入式設備的處理能力,之前只能借助于Boa、Httpd等輕量級的Web服務器,現(xiàn)在可以采用更合適的Web服務器。Apache是一款開放源碼的HTTP服務器,可以在大多數(shù)計算機操作系統(tǒng)中運行,由于其跨平臺和安全性而被廣泛使用,是最流行的Web服務器端軟件之一。它快速可靠并且可通過簡單的API擴展、PHP/Python等腳本被內(nèi)嵌到服務器中。在本項目當中,為了對服務器進行高效的開發(fā),采用了目前比較流行的集成安裝包WAMP(或LAMP),其內(nèi)含Apache、PHP 和Mysql等功能。

      在Linux平臺(ubuntu12.04)下搭建服務器及開發(fā)環(huán)境的簡單步驟如下:

      LAMP 的安裝:sudo apt-get install apache2 mysqlserver mysql-client php5php5-gd php5-mysql。

      phpmyadmin安裝:sudo apt-get install phpmyadmin。

      Apache配置:啟用mod_rewrite模塊:sudo a2enmod rewrite;重啟Apache服務器:sudo/etc/init.d/apache2restart。

      在Windows平臺下只需下載WAMP集成安裝包,即可進行相應安裝。

      2 Web服務

      Web服務(Web Service)是一項新技術,它能使得運行在不同機器上的不同應用無需借助附加的、專門的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。Web服務通過標準的數(shù)據(jù)接口與客戶端進行通信,在本項目當中,采用了Json這種輕量級數(shù)據(jù)格式??蛻舳税l(fā)送與接收到的數(shù)據(jù)均是封裝成Json格式的數(shù)據(jù)包,這保證了系統(tǒng)的擴展性與可維護性。

      通過編寫PHP腳本程序來實現(xiàn)Web服務的諸多服務接口,以本項目為例,實現(xiàn)了多達21個服務接口,客戶端通過訪問這些接口,即可實現(xiàn)與服務器的通信。以其中一個為例,該服務接口接收客戶端的信息,返回相應的反饋信息。接口規(guī)定如表1所列。

      表1 Web服務接口規(guī)范

      從表1可以看出,服務器提供了一個getRFID的服務接口,該接口接收三個參數(shù),同時對這些參數(shù)進行分析判斷。客戶端通過訪問http://localhost/lvsemoban/interface/getRFID.php來發(fā)送相應的信息,通信格式采用Json封裝。

      服務器為了實現(xiàn)這一接口功能,需要編寫PHP腳本,本項目當中對應的PHP腳本內(nèi)容如下:

      服務器通過$_REQUEST 來獲取客戶端所發(fā)送的信息參數(shù),進行一系列的分析、判斷和處理之后,以Json格式返回給客戶端相應的信息。在本項目當中,客戶端把采集到的學生RFID 卡、教室名和上課時間發(fā)送至服務器,服務器會判斷這些信息的正確性,同時將處理后的信息存儲到數(shù)據(jù)庫當中。其中,json_encode函數(shù)將返回數(shù)據(jù)封裝成Json格式后再進行返回。

      而對于用戶而言,則無需接觸到這些復雜的后臺邏輯,只需在瀏覽器當中輸入相應網(wǎng)址,即可獲取到相應信息。借助HTML+Javascript,服務器提供了一個良好的網(wǎng)站界面。同時,服務器后臺通過Web服務接口與嵌入式設備的互通信息,并實時顯示在前臺頁面中。本項目所提供的Web頁面之一如圖3所示。

      圖3 提供給用戶的Web界面

      3 嵌入式設備程序

      我們采用了Linux+QT 的軟件開發(fā)平臺來進行嵌入式設備的軟件開發(fā)。當系統(tǒng)采集到信息之后,會定時(間隔3s)訪問Web服務接口,QT 提供了一種http Request方案。在嵌入式設備的開發(fā)當中,主要包括數(shù)據(jù)的封裝與發(fā)送。

      3.1 數(shù)據(jù)封裝

      在QT 平臺上,借用了開源Json代碼來進行數(shù)據(jù)的封裝與解包。它提供了encode和decode兩個函數(shù),只需調(diào)用這兩個接口即可對數(shù)據(jù)進行操作。解包出來的數(shù)據(jù)以map容器形式出現(xiàn),代碼當中將容器中的數(shù)據(jù)提取出來即可進行處理。

      3.2 數(shù)據(jù)發(fā)送與接收

      在本項目當中,嵌入式設備采集到相關信息后會發(fā)送到服務器,并且接收服務器的處理結果進行相應的顯示。通過QT的信號—槽機制來整合對數(shù)據(jù)的發(fā)送與接收過程,在系統(tǒng)啟動之初將QtNetwork的接收信號與我們的處理函數(shù)相連接,這樣,在接收到服務器的返回數(shù)據(jù)之后,系統(tǒng)即可進行相應的處理與顯示,系統(tǒng)流程圖如圖4所示。

      結 語

      本文討論的基于Web服務的嵌入式Web Server的實現(xiàn)方法及應用的主要技術,使得開發(fā)者可以根據(jù)目標硬件平臺的實際資源進行選擇,不用再因為硬件資源的限制而降低Web Server的性能。同時,PHP腳本的引入,使得Web Server的功能與靈活性大大增強。更具實用意義的是,不僅嵌入式設備,其他智能手機等設備也完全可以與Web Server進行通信,實現(xiàn)了多平臺的整合。目前該方案已在多款開源平臺上被實際應用,在工程實踐中證明了其可行性。

      圖4 客戶端數(shù)據(jù)發(fā)送與處理流程

      [1]http://www.apache.org/.

      [2]http://www.mythtv.org/.

      [3]瑪麗尼,李軍.PHP、MySQL 和Apache編程導學[M].北京:機械工業(yè)出版社,2008.

      [4]韋東山.嵌入式Linux應用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.

      [5]文全剛.嵌入式Linux操作系統(tǒng)原理與應用.北京:北京航空航天大學出版社,2002:155-169.

      [6]亞荷毛爾.構建嵌入式Linux系統(tǒng)[M].秦云川,譯.2版.北京:中國電力出版社,2011.

      猜你喜歡
      腳本嵌入式客戶端
      酒駕
      安奇奇與小cool 龍(第二回)
      數(shù)據(jù)庫系統(tǒng)shell腳本應用
      電子測試(2018年14期)2018-09-26 06:04:24
      縣級臺在突發(fā)事件報道中如何應用手機客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設計與實現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      搭建基于Qt的嵌入式開發(fā)平臺
      快樂假期
      中學生(2017年19期)2017-09-03 10:39:07
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
      Altera加入嵌入式視覺聯(lián)盟
      仙居县| 新沂市| 莒南县| 营山县| 威信县| 景谷| 科技| 昆明市| 雷波县| 孝昌县| 米泉市| 保德县| 安达市| 北海市| 新巴尔虎左旗| 隆林| 台州市| 昭觉县| 会昌县| 江达县| 象山县| 伊金霍洛旗| 明水县| 石柱| 临颍县| 那曲县| 汽车| 紫阳县| 上思县| 云霄县| 博客| 开鲁县| 密山市| 滨州市| 中西区| 抚顺市| 舒城县| 新安县| 金湖县| 任丘市| 潍坊市|