新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)系統(tǒng)中Web Service的調(diào)用方法研究

單片機(jī)系統(tǒng)中Web Service的調(diào)用方法研究

作者: 時(shí)間:2009-02-25 來源:網(wǎng)絡(luò) 收藏

1 前言

本文引用地址:http://m.butianyuan.cn/article/173893.htm

作為一種有著強(qiáng)大功能的可互操作性和擴(kuò)展性的新技術(shù),被越來越多用于異構(gòu)數(shù)據(jù)的集成,自然想到將其應(yīng)用于工業(yè)的異構(gòu)數(shù)據(jù)的集成.本文介紹了一種在 實(shí)現(xiàn)主動(dòng)提交數(shù)據(jù)的方法,方便了的集成.在傳統(tǒng)的系統(tǒng)中,可以利用系統(tǒng)用串口方式采集儀表數(shù)據(jù),通過串行總線將數(shù)據(jù)提交給上位計(jì)算機(jī),通過預(yù)先設(shè)計(jì)的通信協(xié)議與上位采集服務(wù)器通信,集成采集的數(shù)據(jù).當(dāng)需要增加下位機(jī)采集模塊時(shí)需要擴(kuò)展對(duì)應(yīng)的上位機(jī)采集口,采集系統(tǒng)的升級(jí)和維護(hù)都非常麻煩.在系統(tǒng)中通過采集服務(wù)器端的 和上位機(jī)交互數(shù)據(jù),可以簡(jiǎn)化下位機(jī)和上位機(jī)的通信,把主要工作放在下位單片機(jī)系統(tǒng)如何和儀表通信采集數(shù)據(jù)上, 基于該方法可以方便的構(gòu)建基于工業(yè)以太網(wǎng)的分布式數(shù)據(jù)采集方案.該方案還可以方便的集成已經(jīng)存在的數(shù)據(jù)采集系統(tǒng),方便單片機(jī)系統(tǒng)的升級(jí),比如可以把利用單片機(jī)實(shí)現(xiàn)的采集系統(tǒng)很容易的改為PLC采集系統(tǒng)或直接PC采集數(shù)據(jù)模式,而只需升級(jí)后的系統(tǒng)同樣的Web Service交互數(shù)據(jù)即可.由于Web Service調(diào)用使用HTTP協(xié)議交互數(shù)據(jù),該方案還可以方便的擴(kuò)展為支持Internet的遠(yuǎn)程數(shù)據(jù)采集.

2 單片機(jī)系統(tǒng)中調(diào)用Web Service的實(shí)現(xiàn)

2.1 Web Service技術(shù)[7,9,10]

Web Service是能夠通過Web協(xié)議來訪問的可編程應(yīng)用程序組件, 使原來孤立的站點(diǎn)之間的信息能夠相互通信、共享.Web Service所使用的是Internet上統(tǒng)一、開放的標(biāo)準(zhǔn),如HTTP、XML、SOAP、WSDL、UDDI等,所以Web Service可以在任何支持這些標(biāo)準(zhǔn)的環(huán)境(Windows、Linux等)中使用.Web Service本質(zhì)其實(shí)不是一種新技術(shù),前面提到其使用了Internet標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)便是Web Service的核心技術(shù).

(1) HTTP是一種基于TCP實(shí)現(xiàn)的應(yīng)用層協(xié)議,它是可靠的交換數(shù)據(jù)的重要基礎(chǔ).HTTP為Web Service請(qǐng)求與響應(yīng)提供了傳輸層,HTTP使得任何設(shè)備和平臺(tái)都可以訪問Web Service.

(2) XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語言),是一套規(guī)范,允許編程人員自行定義如HTML般的標(biāo)注,以方便數(shù)據(jù)存取和處理、交換、轉(zhuǎn)換等,主要特點(diǎn)是使用有意義的標(biāo)記,這個(gè)特性使計(jì)算機(jī)可以理解數(shù)據(jù)含義.XML可以在任何系統(tǒng)、應(yīng)用程序、任何平臺(tái)上運(yùn)行,數(shù)據(jù)傳輸以Internet為基礎(chǔ),傳輸費(fèi)用便宜.

(3) SOAP協(xié)議(Simple Object Access Protocol,簡(jiǎn)單對(duì)象訪問協(xié)議),是一個(gè)用于分散和分布式環(huán)境下網(wǎng)絡(luò)信息交換的基于XML的通信協(xié)議.它的設(shè)計(jì)目標(biāo)就是簡(jiǎn)單性和擴(kuò)展性,這有助于大量異構(gòu)程序和平臺(tái)之間的互操作性,從而使存在的應(yīng)用程序能夠被廣泛的用戶訪問.由于數(shù)據(jù)采用文本格式,調(diào)試方便,容易穿越防火墻.

(4) WSDL(描述語言),是基于XML的用來描述功能的一種語法.

(5) UDDI(Universal Description, Discovery, and Integration, 統(tǒng)一描述、發(fā)現(xiàn)和集成),基于XML創(chuàng)建的一個(gè)平臺(tái)獨(dú)立, 開放的框架,通過Internet來描述服務(wù),發(fā)現(xiàn)服務(wù),并且整合服務(wù).

2.2 Web Service 調(diào)用本質(zhì)

現(xiàn)在很多語言工具都支持開發(fā),如VS.Net、J2EE、JBuilder等,而且很多語言工具是跨平臺(tái)(Windows、Linux等)的.這些開發(fā)工具都有專門的開發(fā)包或者類庫,可以方便的實(shí)現(xiàn)Web Service的定義和調(diào)用,本文主要研究單片機(jī)系統(tǒng)中實(shí)現(xiàn)Web Service的調(diào)用方法.

調(diào)用Web Service本質(zhì)上就是程序客戶端和Web Service服務(wù)器端的信息交互,且有專門的信息格式.在ASP.net中提供了三種交互端口(協(xié)議):SOAP、HTTP-GET和HTTP-POST[7].在這三種協(xié)議中,SOAP是XML Web Service最常用到的.與HTTP相比,SOAP顯的更為復(fù)雜,但卻擁有更強(qiáng)的接受能力.SOAP是一種以XML為基礎(chǔ)的協(xié)議,它提供一種將數(shù)據(jù)打包和編碼的方法,以用于網(wǎng)絡(luò)的數(shù)據(jù)傳輸.任意一個(gè)用戶都可以使用SOAP協(xié)議與任何一個(gè)Web Service進(jìn)行通信,甚至于說這個(gè)XML Web Service不是建立在ASP.NET 平臺(tái)上的,比如說Java的,都可以利用SOAP來進(jìn)行數(shù)據(jù)傳輸.因此SOAP是語言獨(dú)立的. HTTP將SOAP 消息封裝,然后以它的形式進(jìn)行網(wǎng)絡(luò)傳輸. HTTP-GET和HTTP-POST這兩種方法傳送參數(shù)和數(shù)據(jù)的能力比較簡(jiǎn)單,非常適合不能使用SOAP的客戶來調(diào)用Web Service的情況. HTTP-GET和HTTP-POST方式與SOAP相比有如下特性:

優(yōu)點(diǎn):(1)HTTP方式不需要復(fù)雜的XML消息處理,適合不支持XML的平臺(tái)使用;(2)HTTP方式在交互時(shí)候不需要添加額外的標(biāo)簽,減少了交互的數(shù)據(jù)量和開銷,有利于提高整體性能.

缺點(diǎn):(1)不能調(diào)用具有復(fù)雜數(shù)據(jù)類型參數(shù)的Web Service;(2)如果調(diào)用返回復(fù)雜數(shù)據(jù)類型時(shí)處理不方便;(3)不能把類和結(jié)構(gòu)序列化為XML消息;(4)不能使用引用方式傳遞參數(shù).

結(jié)合單片機(jī)系統(tǒng)調(diào)用Web Service的實(shí)際需要以及考慮到單片機(jī)的處理能力低,不支持XML,不適合復(fù)雜的數(shù)據(jù)處理,開發(fā)效率低等問題,認(rèn)為使用HTTP方式比較合適,本文中將以HTTP-POST為例介紹其調(diào)用Web Service的實(shí)現(xiàn)方法.

2.3 實(shí)現(xiàn)單片機(jī)系統(tǒng)中調(diào)用Web Service的核心技術(shù)

(1)基于實(shí)現(xiàn)HTTP

在嵌入式系統(tǒng)(WinCE、Linux等)中,可以基于其自帶的TCP/IP協(xié)議棧實(shí)現(xiàn)HTTP或者直接使用嵌入式Web服務(wù)器[1~5]來使用HTTP協(xié)議,在計(jì)算機(jī)系統(tǒng)中則可以在高級(jí)語言中直接調(diào)用Web客戶端使用HTTP協(xié)議或者利用SOCKET網(wǎng)絡(luò)編程實(shí)現(xiàn)基于HTTP的數(shù)據(jù)交互,實(shí)現(xiàn)都比較簡(jiǎn)單,但在單片機(jī)系統(tǒng)中,其自身并沒有TCP/IP協(xié)議棧,因此基于在單片機(jī)系統(tǒng)中實(shí)現(xiàn)HTTP.

要實(shí)現(xiàn)HTTP協(xié)議 ,必須以TCP/IP協(xié)議棧為基礎(chǔ),利用即可方便的實(shí)現(xiàn)TCP/IP協(xié)議棧的功能.如圖1所示,下位機(jī)和儀表設(shè)備通過485總線連接,下位機(jī)利用單片機(jī)開發(fā),采用主從方式和設(shè)備儀表通信采集數(shù)據(jù).采集到的數(shù)據(jù)再通過總線發(fā)送給嵌入式網(wǎng)絡(luò)模塊,模塊收到串行數(shù)據(jù),利用內(nèi)嵌的TCP/IP協(xié)議棧實(shí)現(xiàn)串行數(shù)據(jù)到以太網(wǎng)數(shù)據(jù)的轉(zhuǎn)換,嵌入式網(wǎng)絡(luò)模塊通過網(wǎng)線連接至工業(yè)以太網(wǎng).該方法中,下位機(jī)是實(shí)現(xiàn)HTTP應(yīng)用層協(xié)議的關(guān)鍵,只要下位機(jī)發(fā)出的數(shù)據(jù)包符合HTTP協(xié)議,經(jīng)嵌入式網(wǎng)絡(luò)模塊轉(zhuǎn)化,變成可由Web服務(wù)器處理的合法HTTP-POST請(qǐng)求包,則可利用Web Service實(shí)現(xiàn)數(shù)據(jù)的處理和保存,也就實(shí)現(xiàn)了單片機(jī)系統(tǒng)調(diào)用Web Service.


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉