林志鵬 (福建林業(yè)職業(yè)技術(shù)學(xué)院教務(wù)處,福建 南平353000)
物聯(lián)網(wǎng)被稱為繼計(jì)算機(jī)、互聯(lián)網(wǎng)之后,世界信息產(chǎn)業(yè)的第3次浪潮[1]。物聯(lián)網(wǎng)食品追溯系統(tǒng)是指在一定區(qū)域內(nèi),運(yùn)用物聯(lián)網(wǎng)為代表的信息技術(shù)手段,將動(dòng)植物食品養(yǎng)殖、運(yùn)輸、屠宰或加工及流通的信息相關(guān)聯(lián),形成完整的信息追溯鏈。通過(guò)建立動(dòng)植物養(yǎng)殖、道路運(yùn)輸、食品加工、食品零售、市場(chǎng)監(jiān)管、追溯查詢等子系統(tǒng),并建立市級(jí)食品質(zhì)量安全信息追溯數(shù)據(jù)中心,實(shí)現(xiàn)從動(dòng)植物養(yǎng)殖、食品加工到零售終端相關(guān)信息的正向跟蹤;食品零售到動(dòng)物養(yǎng)殖防疫等相關(guān)信息的逆向溯源;食品流通的監(jiān)管與綜合分析。其架構(gòu)示意如圖1所示。
在項(xiàng)目開(kāi)發(fā)的過(guò)程中,把整個(gè)項(xiàng)目分為3層架構(gòu):表示層 (UI)、業(yè)務(wù)邏輯層 (BLL)和數(shù)據(jù)訪問(wèn)層 (DAL)。
1)表示層UI 為用戶提供交互操作界面,這一點(diǎn)不論是對(duì)于Web還是WinForm都是如此,就是用戶界面操作或網(wǎng)站展示給用戶看的頁(yè)面。
2)業(yè)務(wù)邏輯層BLL 是Web Service服務(wù)層,負(fù)責(zé)關(guān)鍵業(yè)務(wù)處理和數(shù)據(jù)傳遞。復(fù)雜邏輯判斷和涉及到數(shù)據(jù)庫(kù)的數(shù)據(jù)驗(yàn)證都需要在此做出處理。根據(jù)傳入的值返回用戶想得到的值,或者處理相關(guān)的邏輯業(yè)務(wù)。
3)數(shù)據(jù)訪問(wèn)層 負(fù)責(zé)數(shù)據(jù)庫(kù)數(shù)據(jù)的訪問(wèn)。主要為業(yè)務(wù)邏輯層提供數(shù)據(jù)支持,根據(jù)傳入的值來(lái)操作數(shù)據(jù)庫(kù),實(shí)現(xiàn)增、刪、改或其他數(shù)據(jù)訪問(wèn)操作。
該平臺(tái)架構(gòu)圖如圖2所示,體現(xiàn)如下特點(diǎn):跨平臺(tái)可互操作性;數(shù)據(jù)可傳遞性;分布式應(yīng)用程序開(kāi)發(fā);數(shù)據(jù)重用性。而實(shí)現(xiàn)以上技術(shù)特點(diǎn),業(yè)務(wù)邏輯層搭建是關(guān)鍵,也就是采用Web Service服務(wù)層的來(lái)源。下面對(duì)Web Service技術(shù)進(jìn)行分析。
圖2 物聯(lián)網(wǎng)食品溯源系統(tǒng)的平臺(tái)總體架構(gòu)圖
Web Service也叫XML Web Service[7],Web Service是一種可以接收從Internet或者Intranet上其他系統(tǒng)中傳遞過(guò)來(lái)的請(qǐng)求,是輕量級(jí)的獨(dú)立通訊技術(shù)[2]。它是通過(guò)SOAP在Web上提供的軟件服務(wù),使用WSDL文件進(jìn)行說(shuō)明,并通過(guò)UDDI進(jìn)行注冊(cè)[3]。
Web Service主要目標(biāo)是跨平臺(tái)的可互操作性,使用它有諸多優(yōu)點(diǎn):
1)跨防火墻的通信 如果應(yīng)用程序有成千上萬(wàn)各地用戶,那么客戶端和服務(wù)器之間通信將是一個(gè)棘手的問(wèn)題[4]。如果中間層組件換成Web Service,就可從用戶界面直接調(diào)用中間層組件,從而省掉建立ASP等頁(yè)面。要調(diào)用Web Service,可直接使用Microsoft SOAP Toolkit或.net的SOAP客戶端,也可使用自主開(kāi)發(fā)的SOAP客戶端,然后把它和應(yīng)用程序連接起來(lái)。同時(shí),應(yīng)用程序也不再需要每次調(diào)用中間層組件時(shí),都跳轉(zhuǎn)到相應(yīng)的 “結(jié)果頁(yè)”。
2)應(yīng)用程序集成 企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)者都清楚,經(jīng)常要把用不同語(yǔ)言、在不同平臺(tái)上的各種系統(tǒng)集成起來(lái),而這種集成將花費(fèi)大量開(kāi)發(fā)力量。應(yīng)用程序常需要從單一主機(jī)上的程序中獲取數(shù)據(jù);或者把數(shù)據(jù)發(fā)送到主機(jī)或其他應(yīng)用程序中去。即使在同一平臺(tái),不同廠商生產(chǎn)的各種軟件也常需要集成起來(lái)。通過(guò)Web Service,應(yīng)用程序可以用標(biāo)準(zhǔn)方法把功能和數(shù)據(jù)供其他平臺(tái)使用。
3)B2B的集成 Web Service是B2B集成成功的關(guān)鍵。通過(guò)它把關(guān)鍵商務(wù)應(yīng)用給指定供應(yīng)商和客戶,它運(yùn)行在Internet上,只是B2B集成的一個(gè)關(guān)鍵部分,還需許多其他部分才能實(shí)現(xiàn)集成。最大好處在于把商務(wù)邏輯形成Web Service,讓任何的合作伙伴調(diào)用這些商務(wù)邏輯[4],而不管系統(tǒng)在何種平臺(tái)上運(yùn)行,使用何種開(kāi)發(fā)語(yǔ)言,這大為降低B2B集成時(shí)間和成本。
4)軟件和數(shù)據(jù)重用 使用Web Service,不必先從第三方購(gòu)買(mǎi)、安裝軟件組件,再?gòu)膽?yīng)用程序中調(diào)用這些組件;只需直接調(diào)用遠(yuǎn)端的Web Service。另一軟件重用情況是,把好幾個(gè)應(yīng)用程序的功能集成起來(lái),通過(guò)Web Service,把所有這些功能都集成到門(mén)戶站點(diǎn)中,為用戶提供一個(gè)統(tǒng)一的、友好的界面??稍趹?yīng)用程序中使用第三方Web Service提供的功能,或把自身應(yīng)用程序功能通過(guò)Web Service提供給他人。2種情況下,都可重用代碼和數(shù)據(jù)。
步1 根據(jù)圖2中右邊物聯(lián)網(wǎng)食品溯源系統(tǒng)業(yè)務(wù)流程架構(gòu)圖原型,先構(gòu)造相應(yīng)數(shù)據(jù)中心的數(shù)據(jù)庫(kù),可用SQLServer2000/2005作為數(shù)據(jù)庫(kù)服務(wù)器。
步2 打開(kāi)Visual Studio2008,點(diǎn)擊菜單欄 “文件”→ “新建”→ “項(xiàng)目”,在彈出 “新建項(xiàng)目”窗體中選擇 “Visual C#”下的 “ASP.NET Web服務(wù)應(yīng)用程序”子節(jié)點(diǎn),將名稱改為 “NLEDU_FoodTrace”,點(diǎn)擊確定,創(chuàng)建Web Service項(xiàng)目[6]。利用圖1的服務(wù)器,用IIS創(chuàng)建 Web Service服務(wù)層發(fā)布出去。
步3 由以下主要幾個(gè)客戶端應(yīng)用程序開(kāi)發(fā)環(huán)節(jié)組成食品溯源系統(tǒng):
①農(nóng)業(yè)生產(chǎn)。即Android手機(jī)客戶端應(yīng)用程序開(kāi)發(fā)。通過(guò)Android手機(jī)或平板設(shè)備上的無(wú)線傳感器,實(shí)現(xiàn)智能農(nóng)業(yè)生產(chǎn)目的。畜主通過(guò)Android平板觀察無(wú)線傳感器采集各種數(shù)據(jù),可進(jìn)行遠(yuǎn)程生產(chǎn)管理。例如,通過(guò)溫濕度無(wú)線傳感器節(jié)點(diǎn)采集到溫濕度值,判斷是否需要給動(dòng)植物食品養(yǎng)殖場(chǎng)進(jìn)行降溫除濕;通過(guò)火焰無(wú)線傳感器節(jié)點(diǎn)采集到火情信息,判斷是否有火情發(fā)生等。并通過(guò)wifi實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)到Web Service服務(wù)器上,再存儲(chǔ)到數(shù)據(jù)服務(wù)中心。
②養(yǎng)殖防疫。即WindowsCE客戶端應(yīng)用程序開(kāi)發(fā)。實(shí)現(xiàn)畜牧獸醫(yī)在給轄區(qū)內(nèi)動(dòng)植物養(yǎng)殖戶進(jìn)行動(dòng)植物防疫和檢疫時(shí),采用手持式追溯終端PDA來(lái)采集動(dòng)物防疫信息,通過(guò)手持式終端PDA錄入防疫信息及掃描二維碼標(biāo)識(shí),將防疫信息通過(guò)設(shè)備上的wifi模塊,連接局域網(wǎng)發(fā)送到Web Service服務(wù)器,并上傳到數(shù)據(jù)中心服務(wù)器數(shù)據(jù)庫(kù)中,作為食品追溯源頭信息。
③宰前檢疫。即PC客戶端應(yīng)用程序開(kāi)發(fā)。實(shí)現(xiàn)食品加工之前必須進(jìn)行檢疫,在電腦上登記食品來(lái)源信息,包括產(chǎn)地、養(yǎng)殖戶和食品耳標(biāo)等,利用軌道和吊鉤上的RFID識(shí)讀裝置和標(biāo)簽通過(guò)無(wú)線網(wǎng)絡(luò)采集相關(guān)信息到電腦上,監(jiān)控?cái)z像機(jī)將自動(dòng)拍下現(xiàn)場(chǎng)圖像作為證明。為此開(kāi)發(fā)一個(gè)物聯(lián)網(wǎng)C/S應(yīng)用程序系統(tǒng),客戶端程序通過(guò)Web Service處理感知層獲取到的RFID及二維碼數(shù)據(jù),實(shí)現(xiàn)對(duì)物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)采集、處理。
圖3 物聯(lián)網(wǎng)食品溯源系統(tǒng)Web Service客戶端應(yīng)用程序
④食品檢疫。PC客戶端應(yīng)用程序開(kāi)發(fā)。實(shí)現(xiàn)在食品加工后出廠時(shí),對(duì)食品包裝進(jìn)行稱重,并生成食品質(zhì)量安全信息追溯碼并打印,在食品包裝上賦碼,這樣就在食品耳標(biāo)和食品質(zhì)量安全信息追溯碼之間建立對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)養(yǎng)殖防疫環(huán)節(jié)與食品流通市場(chǎng)信息的對(duì)接,保證實(shí)現(xiàn)食品全過(guò)程質(zhì)量安全信息的可追溯,并將相關(guān)信息通過(guò)調(diào)用遠(yuǎn)程Web Service服務(wù),上傳到中心服務(wù)器的數(shù)據(jù)庫(kù)中,監(jiān)控?cái)z像機(jī)將自動(dòng)拍下現(xiàn)場(chǎng)圖像作為證明。用VS2008開(kāi)發(fā)的物聯(lián)網(wǎng)食品溯源系統(tǒng)Web Service客戶端應(yīng)用程序主界面如圖3所示。
⑤食品交易。即Linux嵌入式系統(tǒng)客戶端應(yīng)用程序開(kāi)發(fā)。實(shí)現(xiàn)食品零售經(jīng)營(yíng)戶憑標(biāo)識(shí)其身份的IC卡進(jìn)貨,食品包裝必須賦上食品質(zhì)量安全信息追溯碼,食品零售經(jīng)營(yíng)戶零售食品時(shí),利用智能溯源電子臺(tái)秤上配置的手持式條碼掃描槍?zhuān)瑥?fù)制食品質(zhì)量安全信息追溯碼粘貼到食品包裝上。在銷(xiāo)售時(shí)利用IC卡啟動(dòng)智能溯源電子臺(tái)秤,智能溯源電子臺(tái)秤自動(dòng)將相關(guān)數(shù)據(jù)信息通過(guò)調(diào)用遠(yuǎn)程Web Service服務(wù),上傳到中心服務(wù)器的數(shù)據(jù)庫(kù)中。
⑥追溯查詢。即B/S結(jié)構(gòu)的Web Service客戶查詢網(wǎng)站開(kāi)發(fā)。實(shí)現(xiàn)消費(fèi)者購(gòu)買(mǎi)食品后,在市場(chǎng)上安裝的查詢終端上掃描食品質(zhì)量安全信息追溯碼,即可查詢出所購(gòu)食品的來(lái)源信息,也可以通過(guò)網(wǎng)頁(yè)、手機(jī)等方式進(jìn)行查詢。為此綜合運(yùn)用軟件工程思想、面向?qū)ο蠓治龊腿龑蛹軜?gòu)的設(shè)計(jì)方法,完成一個(gè)B/S架構(gòu)的Web Service應(yīng)用程序,應(yīng)用Web Service和ASP.NET技術(shù)實(shí)現(xiàn)。通過(guò)食品質(zhì)量安全信息追溯碼進(jìn)行查詢,追溯食品的養(yǎng)殖、加工、銷(xiāo)售等綜合信息,網(wǎng)站效果如圖4所示。
在物聯(lián)網(wǎng)食品溯源系統(tǒng)架構(gòu)中,Web Service是其核心技術(shù)。XML、SOAP、WSDL和UDDI技術(shù)是Web服務(wù)的基石,它們?yōu)閃eb服務(wù)提供了一個(gè)開(kāi)放的、支持 “即插即用”的、不依賴于任何語(yǔ)言和平臺(tái)的應(yīng)用,從而促進(jìn)了物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的發(fā)展和廣泛應(yīng)用。Web Service技術(shù)平臺(tái)可高效地整合企業(yè)應(yīng)用服務(wù)的價(jià)值鏈,從而賦予企業(yè)更多的靈活性、生產(chǎn)力和創(chuàng)造力。企業(yè)只有建立Web Service服務(wù)平臺(tái)系統(tǒng)才能順應(yīng)市場(chǎng)的瞬息萬(wàn)變,把握市場(chǎng)機(jī)遇,從而為各種服務(wù)集成帶來(lái)巨大商機(jī)。
圖4 食品溯源系統(tǒng)的Web查詢網(wǎng)站
[1]章瑾,孫玉昕 .基于物聯(lián)網(wǎng)的倉(cāng)儲(chǔ)管理系統(tǒng)設(shè)計(jì) [J].武漢船舶職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012(5):61-63.
[2]王曉靜,張晉 .物聯(lián)網(wǎng)研究綜述 [J].遼寧大學(xué)學(xué)報(bào) (自然科學(xué)版),2010(1):37-39.
[3]沈蘇彬 .物聯(lián)網(wǎng)技術(shù)架構(gòu) [J].中興通訊技術(shù),2011(2):9-10.
[4]郭莉,嚴(yán)波 .物聯(lián)網(wǎng)安全系統(tǒng)架構(gòu)研究 [J].信息安全與通信保密,2010(12):73-75.
[5]秦惠林,朱杰 .便攜式終端在智能倉(cāng)庫(kù)管理系統(tǒng)中的應(yīng)用 [J].中國(guó)流通經(jīng)濟(jì),2006(7):38-40.
[6]張志強(qiáng),張景,張志剛 .基于Web Services的應(yīng)用系統(tǒng)開(kāi)發(fā)初探 [J].計(jì)算機(jī)應(yīng)用,2003(5):134-136.
[7]楊艷,唐勝群,張文濤.XML Web服務(wù)技術(shù)探討 [J].計(jì)算機(jī)應(yīng)用研究,2002(10):96-98.
長(zhǎng)江大學(xué)學(xué)報(bào)(自科版)2013年22期