嵌入式環境下Web Service技術的實現
摘要:為了解決嵌入式系統與其他異構系統之間互聯和集成的難題,提出了Web Seivice技術在低端嵌入式設備上的實現方法。以ARM Cort ex-M3微處理器為核心,基于小型實時操作系統和嵌入式TCP/IP協議棧,詳細闡述了Web Service的實現過程,包括HTTP接收.XML與SOAP協議的解析,以及同具體服務實現的綁定,并針對嵌入式環境下資源受限的特點。給出了相應的優化方法。使用專用測試軟件進行的壓力測試表明,該實現運行穩定,具有良好的可行性。
關鍵詞:Web Service;XML;SOAP;嵌入式系統
0 引言
近年來隨著網絡化概念的不斷推廣,嵌入式系統也擺脫了以往“信息孤島”的封閉局面,相互之間逐漸形成了分布式的協作關系。然而嵌入式系統在網絡的應用層上常常采用自定義的傳輸協議,加之各系統之間巨大的平臺差異性,給系統間的互訪以及企業級信息的集成帶來了困難。Web Service技術具有良好的跨平臺和松耦合特性,能夠實現不同平臺的分布式系統之間的無縫集成,降低了企業進行設備升級和服務重組時的投入。本文以32位微處理器ARM Cortex-M3為核心,借助于嵌入式TCP/IP協議棧和實時操作系統,在嵌入式環境下實現了Web Ser vice技術。
1 Web Service與SOAP協議
Web Service是網絡化應用的一種,可以將其看成一種函數調用,只不過這個函數的實體存在于某個服務器上,而對函數的調用在客戶端進行,客戶端只要接入裝有服務的機器所在的網絡即可調用函數。為了實現這種遠程調用,需要對傳輸的數據格式采取一些約定措施.簡單對象訪問協議(Simple Object Access Protocol,SOAP)很好地應對了這種需求。SOAP協議以XML形式提供了一個簡單、輕量的機制,用于在分布環境中交換結構化信息。SOAP本身并沒有定義任何應用程序語義,如編程模型或特定語義的實現;實際上它通過提供一個模塊化的封包模型和在模塊中進行數據編碼的方法,定義了一個簡單的表示應用程序語義的機制。
SOAP消息是由Envelope,Header和Body三部分組成的XML文檔,其中Envelope是SOAP消息的根元素,必須在SOAP消息中出現;可選的Hea der元素包含有關SOAP消息的應用程序專用信息;必需的Body元素包含打算傳送到消息最終端點的實際SOAP消息。最后,為了進行基于SOAP的遠程調用,需要一種低級傳輸協議。SOAP規范允許使用HTTP,SMTP甚至原始的TCP/IP套接字,其中HTTP協議最為常用。
2 Web Service在嵌入式環境下的實現
2.1 底層軟硬件結構
本文中所使用的硬件基于ST公司推出的ARMCortex-M3 32位微處理器STM32F107VC。Cortex-M3是針對價格敏感但又有高系統效能需求的嵌入式應用而設計的ARM內核,作為ARM7的后繼者,大刀闊斧地改革了設計架構,顯著簡化了編程和調試的復雜度,處理能力也更加強大。ST M32F107VC工作頻率最高為72 MHz,帶有256 KB的片上FLASH和64 KB的SRAM,以及以太網MAC控制器,因此外接一片PHY芯片RTL8201,完成與以太網的物理通信。
為了達到實時任務管理,本文選用嵌入式實時操作系統FreeRTOS和輕量級TCP/IP協議棧1wIP組成底層軟件開發平臺。FreeRTOS作為一個免費開源的小型實時內核,主要用于建立和管理各個模塊的任務;1wIP則為數據的TCP/IP封裝提供了一個良好的軟件基礎。
2.2 SOAP消息的處理
目前已經有許多成熟的SOAP工具,例如針對C++的gSOAP、針對Java的kSOAP等,但是這些實現方案均是為PC機或者帶有高級操作系統的嵌入式系統設計的,對資源的消耗較多。對于低端的嵌入式環境,需要更輕量型的處理方法。
由前文可知,SOAP可以簡單的理解為HTTP+XML+遠程調用規則,因此SOAP消息的處理也分為3步:HTTP協議的實現、XML解析、具體服務實現。其總體結構如圖1所示。
c++相關文章:c++教程
評論