張正柱,劉林真
(1.福建工程學(xué)院軟件學(xué)院,福州 350003;2.福州大學(xué)陽(yáng)光學(xué)院,福州 350015)
基于物聯(lián)網(wǎng)的煙花溯源系統(tǒng)從易燃易爆物體監(jiān)管信息化的視角出發(fā),將物聯(lián)網(wǎng)技術(shù)應(yīng)用到煙花爆竹流通過(guò)程的監(jiān)管中,以實(shí)現(xiàn)及時(shí)全面的數(shù)據(jù)采集、遠(yuǎn)程數(shù)據(jù)通信、海量歷史數(shù)據(jù)的存儲(chǔ)以及產(chǎn)品流通數(shù)據(jù)分析的功能,幫助規(guī)范煙花爆竹安全監(jiān)管工作。加強(qiáng)安全監(jiān)管部門(mén)對(duì)煙花爆竹行業(yè)的安全監(jiān)管程度,有助于各級(jí)安全監(jiān)管部門(mén)更全面地掌握轄區(qū)內(nèi)煙花爆竹產(chǎn)品生產(chǎn)及其流通變化情況,實(shí)現(xiàn)消費(fèi)者煙花爆竹產(chǎn)品的可溯源性[1],從而確保市場(chǎng)銷售的煙花“來(lái)源清楚、去向明白和消費(fèi)者放心”。
煙花溯源系統(tǒng)由生產(chǎn)信息管理子系統(tǒng)、流通領(lǐng)域業(yè)務(wù)子系統(tǒng)、數(shù)據(jù)查詢子系統(tǒng)組成。中心建立大型數(shù)據(jù)庫(kù),每個(gè)子系統(tǒng)與中心網(wǎng)絡(luò)連接并實(shí)現(xiàn)數(shù)據(jù)共享。煙花爆竹產(chǎn)品在生產(chǎn)、流通和查詢環(huán)節(jié)均使用唯一的RFID標(biāo)簽作為信息載體,在管理終端記錄產(chǎn)品的基本信息及流通各環(huán)節(jié)的基本信息,消費(fèi)者可以在追溯查詢網(wǎng)站或手機(jī)查詢客戶端上進(jìn)行產(chǎn)品信息查詢。
目前,不同平臺(tái)的終端均需對(duì)煙花產(chǎn)品的流通信息進(jìn)行查詢。本文利用Web服務(wù)技術(shù)創(chuàng)建了煙花溯源查詢系統(tǒng),在多種不同的查詢終端提供統(tǒng)一的數(shù)據(jù)查詢接口,并給出了數(shù)據(jù)查詢系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn)方法。
在創(chuàng)建功能豐富的項(xiàng)目時(shí),可能遇到的挑戰(zhàn)之一是應(yīng)用程序集成問(wèn)題,經(jīng)常需要把許多應(yīng)用程序組合為單一、易用的解決方案。然而,要組合的應(yīng)用程序可能運(yùn)行在多種平臺(tái)上,而每個(gè)平臺(tái)運(yùn)行不同的操作系統(tǒng),這些應(yīng)用程序可能是用幾種不同的編程語(yǔ)言創(chuàng)建的。
為了把Internet上的應(yīng)用程序連接在一起,Web Service提供了一個(gè)簡(jiǎn)單、靈活、基于標(biāo)準(zhǔn)的模型,它允許利用現(xiàn)有的Internet基礎(chǔ)結(jié)構(gòu)來(lái)鏈接應(yīng)用程序,而不考慮它們的實(shí)現(xiàn)平臺(tái)、編程語(yǔ)言和對(duì)象模塊。Web Service是一種能被描述并通過(guò)網(wǎng)絡(luò)發(fā)布、發(fā)現(xiàn)和調(diào)用的自包含、自描述、松散耦合的軟構(gòu)件,可實(shí)現(xiàn)平臺(tái)的獨(dú)立性和語(yǔ)言的獨(dú)立性[2]。
通俗地講,Web Service是一種網(wǎng)絡(luò)服務(wù),它的本質(zhì)是通過(guò)網(wǎng)絡(luò)調(diào)用其他網(wǎng)站的資源。如果一個(gè)軟件的主要部分采用了Web Service,即它把存儲(chǔ)或計(jì)算環(huán)節(jié)“外包”給其他網(wǎng)站,那么這個(gè)軟件就屬于Web Service架構(gòu)。
Web Service的體系結(jié)構(gòu)是面向服務(wù)的體系結(jié)構(gòu)[3],如圖1 所示。
從圖1可以看出:Web Service體系結(jié)構(gòu)中共有3種角色:服務(wù)提供者、服務(wù)代理和服務(wù)請(qǐng)求者[4]。服務(wù)提供者通過(guò)服務(wù)代理發(fā)布自己的服務(wù)并提供服務(wù)描述,對(duì)使用自身服務(wù)的請(qǐng)求進(jìn)行響應(yīng);服務(wù)代理注冊(cè)已發(fā)布的服務(wù),并對(duì)其進(jìn)行分類以方便服務(wù)請(qǐng)求者查找使用;服務(wù)請(qǐng)求者通過(guò)服務(wù)代理查找所需服務(wù)并將其綁定至服務(wù)提供者提供的地址。所有服務(wù)的發(fā)布和調(diào)用都遵循一定的技術(shù)規(guī)范和標(biāo)準(zhǔn)。
圖1 Web Service體系結(jié)構(gòu)
Web Service能實(shí)現(xiàn)無(wú)數(shù)Web和Windows應(yīng)用程序與在其他平臺(tái)上運(yùn)行的應(yīng)用程序之間共享程序邏輯和功能,可以把Web Service看作一個(gè)能通過(guò)Web公開(kāi)自身方法的組件[5]。
Web Service具有以下方面的優(yōu)勢(shì)[6]:
1)數(shù)據(jù)交換
Web Service使用標(biāo)準(zhǔn)SOAP協(xié)議,使得數(shù)據(jù)交換更加方便,實(shí)現(xiàn)跨防火墻的通信。Web Service基于XML、XSD等標(biāo)準(zhǔn),以一種最簡(jiǎn)單的方式實(shí)現(xiàn)異構(gòu)系統(tǒng)之間的互通信和數(shù)據(jù)交換,實(shí)現(xiàn)了跨平臺(tái)互操作。
2)數(shù)據(jù)封裝
Web Service使用XML對(duì)數(shù)據(jù)進(jìn)行封裝。對(duì)于使用者而言,能且僅能看到該對(duì)象提供的功能列表。
3)應(yīng)用程序集成
企業(yè)中經(jīng)常要把用不同語(yǔ)言寫(xiě)成、在不同平臺(tái)上運(yùn)行的各種程序集成起來(lái),而這種集成將耗費(fèi)很大的人力、物力。Web Service把應(yīng)用程序的邏輯和數(shù)據(jù)通過(guò)Web“暴露”出來(lái),其他使用不同語(yǔ)言、不同平臺(tái)的客戶均可重用這些應(yīng)用程序。企業(yè)也可把關(guān)鍵的商務(wù)應(yīng)用“暴露”給指定的供應(yīng)商和客戶。
4)成本控制
Web Service的技術(shù)實(shí)現(xiàn)難度小,在實(shí)際項(xiàng)目開(kāi)發(fā)中的成本是最低的,無(wú)論軟件開(kāi)發(fā)人員的培訓(xùn)或者Web service產(chǎn)品的購(gòu)買都是低廉的。
煙花溯源查詢系統(tǒng)可以使用網(wǎng)頁(yè)、手機(jī)移動(dòng)終端等多種查詢方式,方便用戶進(jìn)行煙花產(chǎn)品流通信息查詢。系統(tǒng)通過(guò)數(shù)據(jù)查詢WEB服務(wù)提供針對(duì)不同平臺(tái)的統(tǒng)一數(shù)據(jù)查詢接口,以實(shí)現(xiàn)資源的跨平臺(tái)訪問(wèn)。系統(tǒng)總體結(jié)構(gòu)如圖2所示。
圖2 煙花溯源查詢系統(tǒng)總體結(jié)構(gòu)
2.2.1 Web Service 創(chuàng)建
煙花溯源查詢系統(tǒng)創(chuàng)建的Web Service基于.NET平臺(tái),使用C#語(yǔ)言編寫(xiě),后臺(tái)數(shù)據(jù)庫(kù)采用SQL Server 2008。在.NET中編寫(xiě)Web服務(wù)時(shí),為給外部應(yīng)用程序提供互聯(lián)網(wǎng)調(diào)用函數(shù),需要在聲明函數(shù)時(shí)添加Web Method特性,讓系統(tǒng)知道這個(gè)函數(shù)可以被其他的程序通過(guò)SOAP調(diào)用。所創(chuàng)建的查詢Web服務(wù)主要使用3個(gè)查詢方法提供煙花信息、商家信息以及煙花流通信息,查詢服務(wù)類定義如下:
2.2.2 Web Service 發(fā)布
為了發(fā)布Web服務(wù)以便其他用戶能使用它,在一個(gè)可查找的公共UDDI目錄上登記服務(wù)。UDDI是一種開(kāi)放的、與供應(yīng)商無(wú)關(guān)的標(biāo)準(zhǔn),可以通過(guò)其找到現(xiàn)有的Web服務(wù)或發(fā)布Web服務(wù)[7]。UDDI是一個(gè)分布式的互聯(lián)網(wǎng)服務(wù)注冊(cè)機(jī)制,為了讓使用者方便地查找,服務(wù)提供者可以將Web Service注冊(cè)到UDDI商用注冊(cè)網(wǎng)站。實(shí)際上,Web服務(wù)并沒(méi)有拷貝到UDDI的服務(wù)器上,UDDI的作用是列出現(xiàn)有的服務(wù),指引人們找到服務(wù)所在的服務(wù)器。從這個(gè)意義上說(shuō),它是一種真正的信息索引目錄而不是存儲(chǔ)具體信息的倉(cāng)庫(kù)。
當(dāng)然,Web Service并非必須在UDDI中注冊(cè)后才能使用。因?yàn)樵赪eb Service的WSDL文件中已經(jīng)定義了Web Service的URI地址,使用者可以直接使用Web Service的URI進(jìn)行服務(wù)調(diào)用。當(dāng)服務(wù)提供者不想提供Web Service給外部用戶使用時(shí),可以不進(jìn)行服務(wù)注冊(cè)。本系統(tǒng)所創(chuàng)建的Web Service目前暫未向其他應(yīng)用公開(kāi),因此只將其發(fā)布在本地IIS服務(wù)器上以供本系統(tǒng)的網(wǎng)站查詢終端及手機(jī)客戶端調(diào)用。
2.2.3 Web Service 調(diào)用——客戶端實(shí)現(xiàn)
1)ASP.NET網(wǎng)頁(yè)查詢終端
基于 ASP.NET的 Web頁(yè)面調(diào)用 Web Service,需要在ASP.NET網(wǎng)站中添加對(duì) Web Service的Web引用,.NET會(huì)下載服務(wù)說(shuō)明到本地計(jì)算機(jī)并為Web Service生成代理類。Web Service代理類包含調(diào)用每一個(gè)WebMethod的指令,通過(guò)使用代理類的對(duì)象可通過(guò)SOAP協(xié)議與Web Service進(jìn)行通信。
2)Android客戶端
在Android SDK中并沒(méi)有集成提供調(diào)用Web Service的庫(kù),因此需要使用第三方的SDK來(lái)調(diào)用Web Service。Google為 Android平臺(tái)開(kāi)發(fā) Web Service客戶端提供了Ksoap2,可以下載相應(yīng)的jar包后復(fù)制到Eclipse工程的lib目錄中,同時(shí)在E-clipse工程中引用這個(gè) jar包。具體調(diào)用 Web Service步驟如下:
①創(chuàng)建Soap Object對(duì)象。創(chuàng)建該對(duì)象時(shí)需要傳入所調(diào)用Web Service的命名空間、Web Service的方法名,如果需要使用其addProperty方法,則要設(shè)置調(diào)用方法的參數(shù)值;
②創(chuàng)建Soap Serialization Envolope對(duì)象。該對(duì)象描述SOAP請(qǐng)求信息,設(shè)置body Out屬性;
③創(chuàng)建Http Transport SE對(duì)象,該對(duì)象用于調(diào)用Web Service操作,通過(guò)其call方法調(diào)用Web Service方法;
④使用Soap Object對(duì)象的getResponse方法獲得Web Service方法的返回結(jié)果。
基于Web Service的煙花溯源查詢系統(tǒng)能很好地解決跨平臺(tái)之間的數(shù)據(jù)訪問(wèn)共享問(wèn)題,為后續(xù)業(yè)務(wù)功能變更提供了較大的靈活性。Web Service技術(shù)的出現(xiàn)為數(shù)據(jù)組件共享提供了一種新的思路。隨著Web Service技術(shù)的不斷成熟與普及,Web Service在跨平臺(tái)應(yīng)用中將有著廣闊的前景。
[1]劉曉青.基于物聯(lián)網(wǎng)的煙花爆竹流通安全監(jiān)管系統(tǒng)的設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2012,29:6921-6923.
[2]俞文躍,張長(zhǎng)勝.基于Web Service三層體系結(jié)構(gòu)的庫(kù)存管理系統(tǒng)的開(kāi)發(fā)[J].福建電腦,2008(12):108-109.
[3]劉劍濤.基于Web Service的數(shù)字圖書(shū)館跨平臺(tái)檢索研究[J].圖書(shū)館學(xué)研究,2008(6):33-35.
[4]安蓓.基于Web Services的跨平臺(tái)檢索系統(tǒng)的研究與開(kāi)發(fā)[D].太原:太原理工大學(xué),2007.
[5]楊志和,李業(yè)榮.基于Web Services的企業(yè)電子商務(wù)應(yīng)用集成技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)[J].廣西科學(xué)院學(xué)報(bào),2006(3):161-163.
[6]李波.基于面向服務(wù)架構(gòu)的企業(yè)電子商務(wù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2007.
[7]李勁.動(dòng)態(tài)電子商務(wù)的Web服務(wù)[M].北京:清華大學(xué)出版社,2002.
[8]何尚憲.食品(酒類)安全溯源系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2012.
[9]Liddell S,Bailey D.Market opportunities and threats to the U.S.pork industry posed by traceability systems[J].International Food and Agribusiness Management Review,2001(4):287-302.
[10]Rosenvold K,Andersen H J.Factors of significance for pork quality-areview[J].Meat Sci,2003,64:219-237.
[11]蔣武洲.RFID應(yīng)用系統(tǒng)通過(guò)Web服務(wù)傳輸數(shù)據(jù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,13:3126-3129.
[12]曹靜琪.基于物聯(lián)網(wǎng)的農(nóng)產(chǎn)品質(zhì)量溯源系統(tǒng)解決方案[D].大連:東北財(cái)經(jīng)大學(xué),2011.
[13]屈崇博,蔡國(guó)永.基于SOA的Web Service組合研究及應(yīng)用[J].微型機(jī)與應(yīng)用,2013(10):7-10.
[14]余楷鑫,姚曉虹.Android客戶端訪問(wèn)Web Service的實(shí)現(xiàn)[J].電子世界,2013(3):152-154.
[15]黃錦川,金煒東.基于Android平臺(tái)Web服務(wù)的應(yīng)用研究[J].鐵路計(jì)算機(jī)應(yīng)用,2010(11):24-27.
重慶理工大學(xué)學(xué)報(bào)(自然科學(xué))2015年2期