摘要:對信息發布系統現狀進行研究,結合嵌入式互聯網技術,提出一種嵌入式網絡信息發布系統的解決方案,并介紹了信息發布管理平臺和嵌入式終端的軟件設計。信息發布管理平臺基于Web開發,通過管理平臺可以對每個終端進行實時監控。數據存儲服務器是相對獨立的,主要用于存儲發布的數據信息,并最終根據終端的要求將信息推送到終端上。執行終端采用嵌入式芯片,為了節約硬件系統資源的開銷,在嵌入式芯片上移植μC/OS-Ⅱ操作系統,并且定制HTTP超文本傳輸協議。
關鍵詞:信息發布;嵌入式;互聯網技術;Web
0 引言
??? 隨著信息時代、數字時代的到來,尤其是互聯網技術的飛速發展,網絡設備與系統體現出高效、靈活、可移植性強的特點。嵌入式技術也有著飛速的發展,從硬件方面來看,嵌入式微處理器的性能提升到了一個新的高度。從軟件方面來看,它已經擁有了高效的操作系統,方便開發人員進行軟件個性化設計。嵌入式系統在的實踐過程中,具有體積小,攜帶方便,便于安裝調試和價格低廉等優點,從而使嵌入式系統滿足了多數的消費電子、通信、工業控制等領域的要求。
??? 為了實現面向公眾的信息傳遞,人們采用了告機、單宣傳畫、工控廣機廣告機等方式。但這些信息發布方式,存在著信息量局限,成本高,更換內容困難等缺點。基于對市場的理解,并結合先進的嵌入式互聯網視頻技術,本文介紹了一種嵌入式網絡信息發布系統,闡述了服務器、數據庫和嵌入式終端解決方案,以及服務器與數據庫的交互、服務器與終端的通信協議等關鍵單元技術,并詳細介紹終端的軟件設計思想。
1 系統組成
??? 該系統分為網絡信息發布管理平臺和遠程嵌入式終端兩部分。系統的軟硬件部署,主要分為三個部分:嵌入式終端,發布系統服務器和內容服務器。其中,在實際應用中,發布系統服務器和內容服務器可以合并為同一臺服務器,如圖1所示。
1.1 硬件方面
1.1.1 管理平臺硬件環境
??? 一臺Windows操作系統的計算機,配置Java開發運行環境,并且裝有Apache Tomcat 6.0服務器和MySQL5.1數據庫等軟件。
1.1.2 嵌入式硬件環境
??? 嵌入式芯片需滿足多媒體開發和網絡開發的基本要求。
??? (1)支持視頻格式、音頻格式、圖片格式的編碼和解碼;
??? (2)支持視頻圖像和音頻輸出接口;
??? (3)支持USB接口;
??? (4)支持HTTP協議;
??? (5)支持10 M/100 M網卡。
1.2 軟件方面
??? 在這種系統軟件設計中,信息發布管理平臺基于Web開發,采用了目前常用的Java+Struts+Hibernate方法。struts框架定義了管理平臺系統的結構(表示層)和頁面之間流轉的規則(業務層)。Hibernate將數據庫連接抽象化,使得開發過程中對數據庫的使用更加簡潔方便,同時,Hibernate降低了更換不同類型數據庫所用的開發時間。基于Java語言編寫服務端代碼,開發效率高,面向對象的設計方法提高了代碼的可維護性。該模塊還使用了較多的JS代碼和基于Ajax的技術來提高客戶端頁面刷新和頁面功能;數據庫服務器的設計使用瑞典MySQL AB公司開發的小型關系型數據庫管理系統MySQL5.1,它為Java語言提供了豐富的API,方便Java應用程序對其訪問。
??? 嵌入式終端操作系統采用μC/OS-Ⅱ操作系統。μC/OS-Ⅱ是一個源碼開放的搶占式實時操作系統。它的內核短小精悍、可裁減、執行時間確定。系統大部分代碼采用C語言編寫,與硬件有關的部分都集中在固定的文件中,移植相當方便,可應用于目前大多數型號的CPU。但是,沒有集成網絡協議,所以,開發人員使用該操作系統進行網絡程序開發時,需要自行定制網絡協議
2 信息發布系統的單元交互
??? 嵌入式網絡信息發布系統單元之間的通信可以分為兩層:服務器與數據庫交互、服務器與遠程終端通信。
2.1 服務器與數據庫交互層
??? 該系統的服務器具有遠程監控服務功能,包括Web服務器、文件服務器、本地控制服務器。其中,Web服務器提供信息網絡發布系統的用戶交互界面和業務邏輯處理模塊的運行環境;文件服務器主要提供系統管理的視頻、圖像等多媒體信息的存取服務;本地控制服務器主要管理轄區內所有顯示終端的通信分發。
??? 在服務器上編寫了具有人機交互功能的JSP靜態管理平臺界面,用戶可以通過該界面方便地進行圖形化操作,并將終端反饋的信息顯示在該界面,方便用戶獲取終端的運行情況,還為用戶提供有用戶權限管理、內容管理、播放控制等模塊的監控頁面。用戶只需登錄該管理平臺界面,即可通過網絡對遠程終端進行監控。
??? 服務器對數據庫的訪問采用JDBC兩層模型方法。JDBC是一種用于執行SQL語句的Java API,利用這種方法可以方便地與數據庫建立連接,發送操作數據庫的語句,并處理結果。兩層模型可使得Java Applet或應用程序將直接與數據庫進行交互。
??? 服務器與數據庫服務器的數據交互主要用于存取終端基本狀態信息。例如:網絡連接是否正常,連接在同一個服務器的各個終端ID號,終端硬盤的空間大小,硬盤中的內容等。指令的生成依賴于該模塊在數據庫中所查詢到的終端狀態標志位。當服務器對某終端進行相應的控制操作時,首先從數據庫中讀取出該終端當前的狀態標志位,根據這些標志位進行邏輯判斷,生成本次控制操作所需要發送的XML文本指令。
2.2 服務器與遠程終端通信層
??? 服務器與遠程終端的通信采用HTTP超文本傳輸協議,終端定時(初定8 s)發送請求到服務器。服務器接受到請求后,將相應的XML文本語言形式的控制操作指令發送到連接的網絡端口,遠程終端讀取端口的數據進行解析,完成本次控制操作。如果一定時間內(初定1 min)沒有收到終端的消息,可斷定出現網絡異常(終端離線)。
??? 終端系統正常啟動之后,系統將自動分配一段內存空間,一部分用來存儲請求信息和控制指令,一部分作為消息隊列。然后,終端的狀態信息作為請求信息循環向指定IP地址(服務器)的端口(初定80端口)發送。終端請求成功后,服務器讀取端口接收的請求信息,將請求信息解析后作為終端的當前狀態信息,更新數據庫中的狀態標志位。同時,服務器也可以通過HTTP傳輸協議發送XML語言結構的文本指令給終端,終端接收到指令后進行解析,并對終端進行相應的控制操作。
3 信息發布系統的關鍵技術
??? 嵌入式硬件的系統頻率、存儲空間、緩存大小、編碼和解碼等性能已經達到了較高的技術水平。那么,對于嵌入式芯片在不同領域中的應用更依靠于操作系統和靈活的軟件設計思想來實現。
??? 在該系統的設計中,服務器的設計需要考慮服務器與數據庫和終端的交互協議,當通過服務器控制多臺終端的時候,對于指令分發、數據包傳輸、以及數據庫的更新都存在著時序和邏輯問題。為了節省系統內存的開銷,也要保證系統的實時性和可靠性,所以終端的操作系統選擇μC/OS-Ⅱ。該操作系統沒有集成網絡協議,所以結合其性能條件定制適合它的網絡傳輸協議。
3.1 終端網絡程序的設計
??? 遠程終端的執行效果只有到現場才可以觀察,那么,保證終端接收指令和對指令響應的可靠性是十分必要的。HTTP協議是一種文本協議,文本協議通常是用ASCII符集編碼,具有理解簡單,擴展擴充方便,容錯性較強,可靠性高等優點。開發人員可以方便地進行協議的定制,節省了軟件調試時間,大大縮短了開發周期。因此,在該系統的操作系統中定制了HTTP超文本傳輸協議。
??? μC/OS-Ⅱ操作系統中創建一個系統網絡的入口函數,在此函數中創建一個網絡后臺任務,該任務的主要功能是請求網絡連接,并接收來自服務器的指令。當終端系統初始化后,進入網絡后臺任務,循環向服務器發送HTTP請求,請求成功后,終端反饋信息到服務器。
??? 系統軟件使用C語言編程,將HTTP協議封裝在結構體中,用結構體屬性字段來表示。
??? 網絡端口的所有數據項,包括HTTP協議頭、控制指令、lP地址、端口號、端口信號量鎖等。HTTP協議的結構體如下:
????
??? 其中:http_Request[REQUEST_SIZE為HTTP協議頭字符串;http_Response為服務器發給終端的控制指令;httpWait為信號量。用信號量來實現網絡端口的互斥訪問。
??? 在系統中,網絡管理平臺控制多個嵌入式終端時,通過網絡端口與每個終端進行網絡連接通信。網絡端口是獨占性的端口,所以,選擇信號量機制對網絡端口的訪問進行互斥鎖處理。
?
??? HTTPTcpConnection_t為網絡端口連接信息,它也是一個結構體,屬性字段包括服務器的IP地址、網絡端口號、以及終端請求信息等。代碼如下:
????
???
3.2 多任務間通信
??? μC/OS-Ⅱ是多任務機制操作系統,最多可支持64個任務,任務優先級從0~63,對這樣的多任務操作系統來說,任務間的通信是必不可少的。μC/OS-Ⅱ中提供了4種通信對象,分別是信號量、郵箱、消息隊列和事件。所有這些同步對象都有創建、等待、發送、查詢的接口用于實現任務間的通信。
消息機制是創建一個消息隊列,一個任務將消息發送到該消息隊列中,另一個任務在隊列的另一端接收此消息。消息隊列是在消息的傳輸過程中保存消息的容器,它的主要目的是為消息的傳遞提供路徑;如果發送消息時接收者沒有響應,消息隊列會保留消息,直到可以成功地傳遞給接收者。
??? 消息機制具有靈活性、可擴展性和異步性等優點。因此,該系統采用消息隊列的方式實現UI/User層程序和應用程序之間的通信,如圖2所示。
?
??? 消息的結構體如下:
???
??? 在消息結構體中:
??? app_id:接受此消息的應用程序或樁函數。
??? msg_type:消息類型。系統中的消息設計有兩種類型。一是命令消息,應用程序接收到來自UI/User程序的命令消息后,對其進行解析,然后,逐個執行消息中的命令集合,并反饋執行結果;二是通知消息,用來通知UI/User命令在應用程序中得到響應。
??? msg_id:消息的ID號。
??? msg_value:消息的參數,存放指針的地址。
??? 下面以命令消息處理過程為例,介紹消息的發送、接收和消息相應操作過程,如圖3所示。其中,應用程序管理器是一個消息處理中心,它為UI/User層提供了一些API函數,用來為應用程序接受輸入命令和分發命令。同時,它還接收來自應用程序的命令執行結果和通知消息,并把這些消息發送給相應的消息處理函數。
4 結語
??? 現場調試中發現,工控機信息發布系統的故障率為5%,而本文設計的嵌入式信息發布系統的故障率為8%。從價格上進行比較,工控機信息發布系統價格是嵌入式信息發布系統價格的10倍左右。顯然,該系統具有更好的性價比,且使用簡單,操作方便。隨著嵌入式系統軟件的PC化,它將成為一種理想的信息發布系統,有著十分誘人的應用前景。
評論
查看更多