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