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