国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

農(nóng)產(chǎn)品質(zhì)量安全追溯智能終端系統(tǒng)構(gòu)建與應(yīng)用

2014-12-23 11:30:08成維莉王清輝
關(guān)鍵詞:服務(wù)端譯碼條碼

毛 林, 程 濤, 成維莉, 劉 凱, 王清輝

(1.江蘇省泰州市農(nóng)業(yè)物聯(lián)網(wǎng)工程技術(shù)中心,江蘇 泰州225300;2.江蘇農(nóng)牧科技職業(yè)學(xué)院,江蘇 泰州225300)

食品安全問題是全社會(huì)關(guān)注的焦點(diǎn),農(nóng)產(chǎn)品質(zhì)量安全為食品安全的基礎(chǔ),可追溯制度建立是農(nóng)產(chǎn)品質(zhì)量安全管理的最有力手段??勺匪菹到y(tǒng)強(qiáng)調(diào)農(nóng)產(chǎn)品生產(chǎn)、儲(chǔ)運(yùn)和銷售整個(gè)過程的質(zhì)量溯源與全程監(jiān)管,建立和實(shí)行農(nóng)產(chǎn)品追溯制度,及時(shí)發(fā)現(xiàn)并召回危害健康的農(nóng)產(chǎn)品,實(shí)施整改、懲罰措施,強(qiáng)化產(chǎn)業(yè)鏈上各企業(yè)責(zé)任,保障食品安全性[1]。在國外,歐盟、美國等相繼頒布食品安全相關(guān)法案并建立主要應(yīng)用于畜牧產(chǎn)品的可追溯系統(tǒng),強(qiáng)制實(shí)施畜禽、肉制品追溯制度[1-2]。國內(nèi),自頒布《食品安全法》、《農(nóng)產(chǎn)品質(zhì)量安全法》等食品安全法律法規(guī)以來,強(qiáng)化了食品安全監(jiān)管力度,確保了安全監(jiān)管整體效能[3]。中國標(biāo)準(zhǔn)化研究院中國物品編碼中心多年致力于“中國條碼推進(jìn)工程”在食品溯源中的應(yīng)用[4]。國內(nèi)開展可追溯系統(tǒng)研究至今,各省市相繼開發(fā)了本區(qū)域應(yīng)用的農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)[5-11],對(duì)農(nóng)產(chǎn)品信息獲知、農(nóng)產(chǎn)品產(chǎn)地源頭的定位更加快速和便利,同時(shí)可準(zhǔn)確追溯到危害發(fā)生的根源[1]。其中,國內(nèi)最具影響的可追溯系統(tǒng)包括北京市農(nóng)業(yè)局的食用農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)、農(nóng)業(yè)部的肉牛生產(chǎn)全程質(zhì)量安全可追溯體系等[4],主要實(shí)現(xiàn)了以網(wǎng)站、短信、電話、觸摸屏方式進(jìn)行的查詢追溯,但針對(duì)智能手機(jī)的查詢追溯系統(tǒng)的研究甚少[12]。然而消費(fèi)者購買農(nóng)產(chǎn)品時(shí),希望能以最快捷方式通過隨身智能手機(jī)掃描一下產(chǎn)品條碼,在第一時(shí)間查詢獲知農(nóng)產(chǎn)品信息,完成快速追溯,及時(shí)避免危害事件發(fā)生。因此,農(nóng)產(chǎn)品質(zhì)量追溯智能終端系統(tǒng)的構(gòu)建和應(yīng)用具有重要的研究意義。本研究結(jié)合農(nóng)產(chǎn)品質(zhì)量安全追溯管理體系研究與試點(diǎn)項(xiàng)目——農(nóng)產(chǎn)品質(zhì)量安全追溯平臺(tái)JS_APQT,對(duì)智能終端追溯業(yè)務(wù)流程與系統(tǒng)架構(gòu)進(jìn)行設(shè)計(jì),重點(diǎn)研究手機(jī)端QR 二維碼識(shí)讀、譯碼、通信端口與服務(wù)端數(shù)據(jù)交換接口關(guān)鍵技術(shù)的實(shí)現(xiàn)方法,提出基于Android 手機(jī)的農(nóng)產(chǎn)品質(zhì)量追溯智能終端解決方案。

1 JS_APQT 業(yè)務(wù)流程與編碼方法

JS_APQT 平臺(tái)包括:公共服務(wù)平臺(tái)、數(shù)據(jù)管理中心、系統(tǒng)管理中心、政府監(jiān)管中心、農(nóng)產(chǎn)品基地追溯系統(tǒng)、質(zhì)量安全檢測(cè)系統(tǒng)(第三方系統(tǒng))及農(nóng)藥殘留檢測(cè)設(shè)備集成模塊、智能終端數(shù)據(jù)交換接口與基礎(chǔ)設(shè)施(硬件、軟件支撐)業(yè)務(wù)模塊,如圖1 所示。JS_APQT核心業(yè)務(wù)流程為生產(chǎn)經(jīng)營主體備案、生產(chǎn)檔案填寫、產(chǎn)地準(zhǔn)出檢測(cè)、追溯標(biāo)識(shí)打印與張貼、生產(chǎn)檔案完善、動(dòng)態(tài)監(jiān)管。JS_APQT 通過業(yè)務(wù)流程,完成生產(chǎn)記錄存儲(chǔ),實(shí)現(xiàn)產(chǎn)品流向追蹤及儲(chǔ)運(yùn)信息查詢,實(shí)施對(duì)農(nóng)產(chǎn)品生產(chǎn)、加工、流通、銷售全過程質(zhì)量安全的全程可追溯監(jiān)管(圖2)。在任何時(shí)刻、任何地點(diǎn),任何用戶可通過網(wǎng)絡(luò)登錄平臺(tái)查詢產(chǎn)品信息,進(jìn)行農(nóng)產(chǎn)品質(zhì)量溯源,行使消費(fèi)者知情權(quán);監(jiān)管機(jī)構(gòu)能準(zhǔn)確掌握實(shí)時(shí)的農(nóng)產(chǎn)品質(zhì)量安全狀況,獲取相關(guān)信息,對(duì)問題產(chǎn)品可及時(shí)召回、采取處罰措施[2]。

圖1 JS_APQT 平臺(tái)業(yè)務(wù)模塊Fig.1 JS_APQT platform business modules

農(nóng)產(chǎn)品追溯碼是農(nóng)產(chǎn)品終端銷售時(shí)承載追溯信息、直接面對(duì)展現(xiàn)給消費(fèi)者的統(tǒng)一代碼[13]。JS_APQT 平臺(tái)中,農(nóng)產(chǎn)品追溯碼按類別分成種植業(yè)追溯碼、養(yǎng)殖業(yè)追溯碼兩大類。以種植業(yè)為例,農(nóng)產(chǎn)品追溯碼由產(chǎn)地碼、產(chǎn)品信息碼兩部分構(gòu)成,共29 位數(shù)字(圖3)。產(chǎn)地編碼為農(nóng)產(chǎn)品生產(chǎn)基地歸屬地的身份編碼,由行政區(qū)劃+鄉(xiāng)鎮(zhèn)(街道)+村(社區(qū))+產(chǎn)地分類+產(chǎn)地代碼構(gòu)成。根據(jù)農(nóng)業(yè)部NY/T 1430-2007《農(nóng)產(chǎn)品產(chǎn)地編碼規(guī)則》標(biāo)準(zhǔn)[14],行政區(qū)劃為6位數(shù)字,鄉(xiāng)鎮(zhèn)(街道)為3 位,村(社區(qū))為3 位,產(chǎn)地分類為5 位,產(chǎn)地代碼為3 位,共計(jì)20 位;產(chǎn)品信息碼為9 位,由產(chǎn)品生產(chǎn)檔案號(hào)+采收批次號(hào)組成。生產(chǎn)檔案號(hào)包括產(chǎn)品備案號(hào)3 位,年份2 位與生產(chǎn)批次1 位,共6 位,采收批次號(hào)可按3 位的順序號(hào)或時(shí)間間隔數(shù)來表示,其中,產(chǎn)品備案號(hào)第1 位代表大類標(biāo)識(shí),0 ~2 為種植業(yè)農(nóng)產(chǎn)品。

農(nóng)產(chǎn)品標(biāo)識(shí)碼是農(nóng)產(chǎn)品質(zhì)量追溯成功的關(guān)鍵,分一維碼和二維碼。JS_APQT 平臺(tái)采用QR 條碼數(shù)字編碼規(guī)則,QR 條碼承載信息量大、存儲(chǔ)空間小、容錯(cuò)強(qiáng)、可靠性高、高速全方位識(shí)讀,支持多種符號(hào)、漢字的編碼,即使局部受損仍可識(shí)讀完整信息,最適合農(nóng)產(chǎn)品追溯系統(tǒng)[15]。

圖2 JS_APQT 平臺(tái)追溯業(yè)務(wù)流程Fig.2 Tracing business processes of JS_APQT platform

圖3 農(nóng)產(chǎn)品追溯碼結(jié)構(gòu)Fig.3 Tracing code structure of agricultural product

2 系統(tǒng)總體架構(gòu)設(shè)計(jì)

Android 嵌入式系統(tǒng)為智能終端主流操作系統(tǒng)之一,是一個(gè)基于Linux 的半開放原始碼作業(yè)系統(tǒng),主要用于智能手機(jī),因其開放性、便于開發(fā)的優(yōu)勢(shì)廣受歡迎,Android 手機(jī)是目前主流的、應(yīng)用最廣的智能手機(jī)之一。本研究構(gòu)建基于Android 手機(jī)追溯的智能終端系統(tǒng)。

2.1 系統(tǒng)業(yè)務(wù)流程

手機(jī)客戶端的數(shù)據(jù)來源由服務(wù)器接口提供,客戶端發(fā)送農(nóng)產(chǎn)品追溯碼,查詢產(chǎn)品信息、追溯的訪問請(qǐng)求經(jīng)運(yùn)營商網(wǎng)絡(luò)提交至服務(wù)器端,業(yè)務(wù)流程見圖4。本系統(tǒng)中,農(nóng)產(chǎn)品二維碼是關(guān)聯(lián)到服務(wù)端后臺(tái)數(shù)據(jù)庫的。當(dāng)手機(jī)手動(dòng)輸入追溯碼或掃描產(chǎn)品二維碼經(jīng)譯碼獲得追溯碼時(shí),首先在Android 智能端通信接口測(cè)試系統(tǒng)服務(wù)端相連接,若連接成功,訪問系統(tǒng)服務(wù)端,將追溯碼發(fā)送到系統(tǒng)服務(wù)端,并通過數(shù)據(jù)交換接口接受追溯碼,通過相關(guān)業(yè)務(wù)邏輯到數(shù)據(jù)庫中查詢相關(guān)的農(nóng)產(chǎn)品控制信息,再將這些信息轉(zhuǎn)換成一種特定數(shù)據(jù)交換格式的數(shù)據(jù)發(fā)回到手機(jī)端。手機(jī)端驗(yàn)證來自系統(tǒng)服務(wù)端的連接,若連接成功,將接受數(shù)據(jù)解析成手機(jī)支持的數(shù)據(jù)格式,通過操作系統(tǒng)適配器將信息顯示到手機(jī)頁面上[16]。

2.2 系統(tǒng)架構(gòu)

系統(tǒng)架構(gòu)是基于C/S 的三層結(jié)構(gòu),即Android 手機(jī)客戶層、服務(wù)層以及通信鏈路層(無線網(wǎng)絡(luò))(圖5)。手機(jī)端內(nèi)置的Android 系統(tǒng)、移動(dòng)網(wǎng)絡(luò)、工具軟件是手機(jī)應(yīng)用的支撐平臺(tái),手機(jī)系統(tǒng)因受到硬件資源的限制[17],僅適合滿足輕量級(jí)的應(yīng)用需求,在Android 手機(jī)端直接進(jìn)行條碼識(shí)讀、譯碼,占用資源小、計(jì)算要求低,可完全滿足手機(jī)性能要求,無需通過訪問遠(yuǎn)程服務(wù)器。服務(wù)層(JS_APQT 平臺(tái))有強(qiáng)大的數(shù)據(jù)處理、復(fù)雜運(yùn)算、存儲(chǔ)能力等硬件資源條件,承擔(dān)海量的農(nóng)產(chǎn)品控制信息存儲(chǔ)和復(fù)雜的數(shù)據(jù)訪問業(yè)務(wù)處理,在服務(wù)端部署數(shù)據(jù)交換接口,滿足手機(jī)應(yīng)用需求。

圖4 系統(tǒng)業(yè)務(wù)流程Fig.4 System work flow

圖5 系統(tǒng)架構(gòu)Fig.5 System architecture

2.3 系統(tǒng)功能設(shè)計(jì)

系統(tǒng)由手機(jī)客戶端子系統(tǒng)與服務(wù)端子系統(tǒng)兩大部分構(gòu)成,客戶端子系統(tǒng)包括QR 條碼識(shí)讀功能組件、譯碼功能組件、通信接口組件。QR條碼識(shí)讀組件對(duì)條碼標(biāo)簽進(jìn)行拍碼、生成二維碼圖像文件、存儲(chǔ)二維碼圖像文件。譯碼功能組件讀取符號(hào)圖像文件,轉(zhuǎn)換為數(shù)字模塊矩陣,識(shí)讀格式信息并檢測(cè)糾錯(cuò),恢復(fù)數(shù)據(jù)追溯碼。通信接口組件測(cè)試手機(jī)網(wǎng)絡(luò)連接,以主動(dòng)模式向遠(yuǎn)程服務(wù)器發(fā)送請(qǐng)求,接收服務(wù)器返回的數(shù)據(jù)。服務(wù)端子系統(tǒng)包括數(shù)據(jù)交換接口功能組件、業(yè)務(wù)邏輯組件、數(shù)據(jù)訪問組件。數(shù)據(jù)交換接口接收客戶端請(qǐng)求,調(diào)用業(yè)務(wù)邏輯組件、數(shù)據(jù)訪問組件,查詢數(shù)據(jù)庫,返回給客戶端。本研究中,智能終端追溯的關(guān)鍵是條碼識(shí)讀、譯碼、追溯查詢通信、數(shù)據(jù)交換的實(shí)現(xiàn)。

3 系統(tǒng)實(shí)現(xiàn)

3.1 Android 環(huán)境配置

Android 手機(jī)端功能軟件是基于Eclipse 工具、Android 包ADT 與第三方開源庫設(shè)計(jì)實(shí)現(xiàn)的。本研究選擇Eclipse3.6+Android2.3.1+ADT18.0.0+Zxing,在Eclipse 中導(dǎo)入Android2.3.1、ADT18.0.0、Zxing,部署Android 開發(fā)環(huán)境。Eclipse 為面向Android 的集成開發(fā)環(huán)境,ADT 為Android 底層支持工具包,提供UI、接口、網(wǎng)絡(luò)通信、數(shù)據(jù)庫、公共工具類服務(wù)。Zxing(Horse Crossing)為Google 的一個(gè)開源項(xiàng)目半成品框架,支持對(duì)QR、Data Matrix、UPC 各種條碼的圖像捕捉、編碼和譯碼[18],便于在此框架進(jìn)行二次開發(fā)。

3.2 客戶端實(shí)現(xiàn)

客戶端子系統(tǒng)運(yùn)用Android 事件處理機(jī)制進(jìn)行條碼識(shí)讀、譯碼、數(shù)據(jù)通信的業(yè)務(wù)處理,它包括基于監(jiān)聽的事件處理和消息處理等方式。事件監(jiān)聽處理模型通過事件處理器類實(shí)現(xiàn),包含4 個(gè)對(duì)象:事件源、事件、事件監(jiān)聽器、事件處理器。監(jiān)聽處理機(jī)制是:手機(jī)界面組件作為事件源,手機(jī)用戶觸發(fā)組件時(shí)產(chǎn)生事件對(duì)象,事件對(duì)象作為參數(shù)傳遞到事件源的事件監(jiān)聽器,事件監(jiān)聽器調(diào)用事件處理器[19],完成一次業(yè)務(wù)處理。為高效地進(jìn)行手機(jī)端條碼識(shí)讀、譯碼與追溯查詢通信業(yè)務(wù)處理,事件處理器類Activity類中通過onCreate 方法向手機(jī)用戶呈現(xiàn)初始操作界面,界面組件(按鈕、菜單項(xiàng)等)作為事件源綁定到事件監(jiān)聽器OnClickListener,OnClickListener 監(jiān)聽到用戶操作事件,調(diào)用事件處理器onClick 處理事件,實(shí)現(xiàn)相關(guān)業(yè)務(wù)操作??煞祷爻尸F(xiàn)結(jié)果界面給用戶。不同的Activity 可以完成不同類型的交互,在Activity 定義Intent 對(duì)象為用戶呈現(xiàn)下一步應(yīng)用狀態(tài)。Intent 承擔(dān)傳遞要啟動(dòng)下一個(gè)Activity 的“信使”,Intent 可避免組件耦合、提高系統(tǒng)響應(yīng)速度[19]。條碼識(shí)讀、譯碼、數(shù)據(jù)通信的具體實(shí)現(xiàn)過程分述如下。

3.2.1 條碼識(shí)讀 在Eclipse 工作區(qū)中的qr.google.zxing 包下創(chuàng)建CaptureActivity 監(jiān)聽器類,在此類創(chuàng)建事件監(jiān)聽器對(duì)象和事件處理器方法。條碼識(shí)讀步驟是:(1)點(diǎn)擊手機(jī)界面上的二維碼掃描按鈕,打開手機(jī)攝像頭;(2)對(duì)準(zhǔn)產(chǎn)品條碼標(biāo)簽拍照。實(shí)現(xiàn)過程如下:

1)在CaptureActivity 中創(chuàng)建并實(shí)現(xiàn)onCreate(Bundle savedInstanceState)方法,onCreate 方法中使用CameraManager.init(getApplication())來初始化手機(jī)攝像頭,onCreate 調(diào)用setContentView()、find-ViewById()方法控制界面布局、加入按鈕等組件。當(dāng)啟動(dòng)CaptureActivity 后,onCreate 被回調(diào),呈現(xiàn)手機(jī)操作界面。

2)定義事件監(jiān)聽器OnClickListener,為二維碼掃描按鈕綁定OnClickListener 對(duì)象,監(jiān)聽用戶動(dòng)作,在方法中創(chuàng)建Intent 對(duì)象,Intent 對(duì)象啟動(dòng)譯碼監(jiān)聽器類QRcoderesult 的意圖,以qrcode 鍵值保存,創(chuàng)建startActivity(intent)方法傳遞給QRcoderesult 啟動(dòng)執(zhí)行譯碼業(yè)務(wù)。用戶按下二維碼掃描按鈕后,觸發(fā)on-Click 事件,手機(jī)屏幕上呈現(xiàn)攝像鏡頭,鏡頭對(duì)準(zhǔn)條碼進(jìn)行拍照,識(shí)讀條碼圖像后,呈現(xiàn)條碼圖像,并將啟動(dòng)信息提交到譯碼監(jiān)聽器類,通知做好譯碼準(zhǔn)備,提高了系統(tǒng)響應(yīng)速度。

3.2.2 條碼譯碼 譯碼是編碼的逆過程,是將手機(jī)端攝取的條碼圖像解析成追溯碼,它是實(shí)現(xiàn)提交查詢追溯的前提。本系統(tǒng)采用QR 條碼的數(shù)字譯碼方法獲得追溯碼。譯碼步驟[15]是:(1)定位、獲取符號(hào)圖像,轉(zhuǎn)換模塊為0、1 矩陣;(2)識(shí)讀格式信息,去除掩模圖形,糾錯(cuò)格式信息模塊,識(shí)別糾錯(cuò)等級(jí)與掩模圖形參考;(3)識(shí)讀符號(hào)版本;(4)用掩模圖形或編碼區(qū)位圖消除掩模;(5)按照模塊排列規(guī)則,識(shí)讀符號(hào)字符,恢復(fù)信息的數(shù)據(jù)與糾錯(cuò)碼字;(6)用糾錯(cuò)碼字檢測(cè)錯(cuò)誤糾錯(cuò);(7)數(shù)據(jù)碼字按模式和字符計(jì)數(shù)指示符分為多個(gè)模式段;(8)按照采用模式譯碼獲得以數(shù)據(jù)字符表示的追溯碼。

譯碼前首先要啟動(dòng)一個(gè)譯碼的監(jiān)聽器類,獲取啟動(dòng)譯碼的意圖,依據(jù)意圖調(diào)用android 譯碼業(yè)務(wù)類android.os.Bundle.getString 執(zhí)行并完成譯碼,android.os.Bundle 負(fù)責(zé)譯碼。實(shí)現(xiàn)過程是:(1)創(chuàng)建譯碼監(jiān)聽器類QRcoderesult,在Qrcoderesult 中定義實(shí)現(xiàn)onCreate(Bundle savedInstanceState)方法,監(jiān)聽啟動(dòng)意圖。(2)Qrcoderesult 啟動(dòng)意圖后,讀取Intent 中啟動(dòng)譯碼意圖的信息,存入Bundle,以便使用譯碼工具android.os.Bundle;(3)調(diào)用執(zhí)行android.os.Bundle 的getString 業(yè)務(wù)方法,返回產(chǎn)品條碼對(duì)應(yīng)的追溯碼。

3.2.3 手機(jī)端通信 手機(jī)端通信端口負(fù)責(zé)與遠(yuǎn)程服務(wù)器交互,包括測(cè)試手機(jī)網(wǎng)絡(luò)連接、向服務(wù)端發(fā)送請(qǐng)求、接收返回結(jié)果。在Qrcoderesult 的onCreate 中創(chuàng)建getInfoByQrcode()方法,實(shí)現(xiàn)手機(jī)端通信端口,過程是:(1)調(diào)用android.net.ConnectivityManager 測(cè)試手機(jī)連接網(wǎng)絡(luò),支持WiFi 等網(wǎng)絡(luò);(2)設(shè)置訪問服務(wù)端網(wǎng)絡(luò)資源地址URL,http://IP 地址/mob/prod_castBack.action,檢查URL 是否有效;(3)通過URL 的openConnection()方法測(cè)試HttpURLConnection,HttpURLConnection 獲取連接到服務(wù)端的響應(yīng)碼;(4)響應(yīng)碼有效時(shí),追溯碼參數(shù)鍵/值對(duì)轉(zhuǎn)換成網(wǎng)絡(luò)傳輸格式HTTP.UTF_8 后,追加到URL,用HttpPost 裝載服務(wù)端URL,由HttpClient 提交到服務(wù)器;(5)HttpResponse 獲取返回的查詢追溯信息;(6)EntityUtils 經(jīng)數(shù)據(jù)轉(zhuǎn)換后,按照生產(chǎn)環(huán)節(jié)、農(nóng)產(chǎn)品認(rèn)證、監(jiān)測(cè)信息、田間作業(yè)進(jìn)行分類,輸出到手機(jī)。主要代碼如下:

private void getInfoByQrcode(){

WebData wd = new WebData();

ConnectionDetector cd = new ConnectionDetector(this);

returnJsonStr = wd.getJsonData(Sysconfig.URL_GET_RETROSPECT_INFO,

Sysconfig.KEY_GET_RETROSPECT_INFO,qr-Code);

HttpClient httpclient = new DefaultHttpClient();

HttpPost post = new HttpPost(url);

ArrayList<NameValuePair>params = new Array-List<NameValuePair>();

params.add(new BasicNameValuePair(key,value));

post.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));

HttpResponse response = httpclient.execute(post);

String inf = EntityUtils.toString(response.getEntity());

}

3.3 服務(wù)器數(shù)據(jù)交換

數(shù)據(jù)交換接口是服務(wù)端與手機(jī)端應(yīng)用進(jìn)行交互的關(guān)鍵組件。采用基于“消息或請(qǐng)求服務(wù)發(fā)現(xiàn)”的數(shù)據(jù)交換處理機(jī)制,以減輕、消除系統(tǒng)瓶頸,保證通信穩(wěn)定性與可靠性[20]。Web Service 將服務(wù)端應(yīng)用程序?qū)ν獍l(fā)布為開放式服務(wù)(接口),通過此服務(wù)在網(wǎng)絡(luò)上共享開放出來的功能。通過XML、SOAP、WSDL、UDDL 等Web 服務(wù)語言來發(fā)現(xiàn)、描述和訪問Web Service 服務(wù)接口。Web Service 開發(fā)服務(wù)端交換接口的過程是:

1)首先在JS_APQT 工程包下創(chuàng)建Aprod-CheckService 類,在類中定義、編寫getNodeBase-ByTracId(String aprodTracId)方法,該方法作用是查詢農(nóng)產(chǎn)品生產(chǎn)基地信息、認(rèn)證信息、檢測(cè)信息、田間農(nóng)事信息。

2)在WEB-INF 目錄下創(chuàng)建deploy.wsdd 文件,使用wsdd 方法定制發(fā)布Web Service,配置如下:service 代表WebService 服務(wù),AprodCheck 為Web-Service 名稱;provider 指明WebService 類型是RPC,parameter 的className 參數(shù)值為WebService 的路徑,allowedMethods 指明為外部接口,被客戶端調(diào)用。

<deployment xmlns =" http://xml.apache.org/axis/wsdd/" xmlns:java=" http://xml.apache.org/axis/wsdd/providers/java">

<service name="AprodCheck" provider="java:RPC">

<parameter name=" className" value=" com.apqt.pbts.webservice.AprodCheckService"/>

<parameter name =" allowedMethods" value ="* "/>

</service>

</deployment>

3)使用第三方開源包axis 的AdminClient 工具類發(fā)布WebService。運(yùn)行cmd,選擇目錄C:tomcat6.0webappsAxisWebServiceWEB-INF>,運(yùn)行命令:java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd 后,出現(xiàn)Processing file deploy.wsdd <Admin>Done processing</Admin>,生成server-config.wsdd。

4)在IE 地址欄輸入http://localhost:8080/AxisWebService/servlet/AxisServlet,顯示wsdl 文檔,發(fā)布成功。

數(shù)據(jù)交換接口的getNodeBaseByTracId 方法接受手機(jī)端遠(yuǎn)程消息請(qǐng)求、做出響應(yīng),依據(jù)追溯碼內(nèi)容調(diào)用業(yè)務(wù)邏輯層Biz 和數(shù)據(jù)層DAO,查詢數(shù)據(jù)庫服務(wù)器中相應(yīng)農(nóng)產(chǎn)品信息,將信息轉(zhuǎn)換成JSON 格式[21]的數(shù)據(jù),發(fā)送到用戶手機(jī)端。JSON(JavaScript Object Notation),是一種輕量級(jí)的數(shù)據(jù)交換格式,能高效地實(shí)現(xiàn)數(shù)據(jù)交互。用jQuery 來解析JSON 數(shù)據(jù),屏蔽DOM 解析XML 文件復(fù)雜性,縮短追溯數(shù)據(jù)傳輸時(shí)間,優(yōu)化數(shù)據(jù)傳輸效率。

4 應(yīng)用案例

本例中,選擇JS_APQT 平臺(tái)上實(shí)際注冊(cè)種植業(yè)用戶的產(chǎn)品QR 條碼(圖6),通過手機(jī)進(jìn)行測(cè)試,查詢追溯農(nóng)產(chǎn)品控制信息。過程是:(1)在客戶端界面選擇二維碼掃描;(2)手機(jī)攝像鏡頭對(duì)準(zhǔn)并掃描二維碼;(3)手機(jī)端譯碼模塊解析QR 條碼,獲得追溯碼為32092410621082000001101131001;(4)向系統(tǒng)服務(wù)端發(fā)送經(jīng)格式轉(zhuǎn)換后的追溯碼;(5)系統(tǒng)服務(wù)器交換接口讀取追溯碼,通過業(yè)務(wù)邏輯查詢數(shù)據(jù)庫,獲得農(nóng)產(chǎn)品質(zhì)量控制信息,經(jīng)過處理,返回手機(jī)端。(6)手機(jī)得到數(shù)據(jù)后進(jìn)行解析轉(zhuǎn)換,顯示在手機(jī)端界面上。通過追溯獲得的質(zhì)量控制信息包括:生產(chǎn)信息、監(jiān)測(cè)信息、認(rèn)證信息、作業(yè)信息。能夠達(dá)到主體、產(chǎn)品、過程三個(gè)級(jí)別的追溯精度[22]。

圖6 農(nóng)產(chǎn)品QR 條碼標(biāo)簽Fig.6 Agricultural product QR code tag

5 討論

本研究以農(nóng)產(chǎn)品質(zhì)量安全追溯智能終端為對(duì)象,結(jié)合農(nóng)產(chǎn)品質(zhì)量追溯平臺(tái)JS_APQT 架構(gòu)和編碼方式,采用Eclipse、Android、Web Service 等技術(shù),提出了面向Android 手機(jī)的農(nóng)產(chǎn)品質(zhì)量追溯智能終端解決方案。與現(xiàn)有系統(tǒng)的短信、電話、觸摸屏方式相比,本方案以智能終端這種快捷、新穎查詢追溯形式建立了多層次、多角色的質(zhì)量安全控制追溯體系,查詢精準(zhǔn)度高達(dá)100%。通過本方案可獲得農(nóng)產(chǎn)品成長(zhǎng)檔案、驗(yàn)明農(nóng)產(chǎn)品真實(shí)身份,以滿足人們“明白消費(fèi)、放心消費(fèi)”的基本需求,提升農(nóng)產(chǎn)品質(zhì)量跟蹤溯源的效能,為政府動(dòng)態(tài)監(jiān)管、企業(yè)構(gòu)筑質(zhì)量控制信息平臺(tái)提供更高效、優(yōu)質(zhì)的服務(wù),達(dá)到質(zhì)量可查詢、產(chǎn)品可溯源、事故可預(yù)警的目的。目前,條碼標(biāo)簽成本低廉、印制方便,被廣為接受,但容易被非法復(fù)制、偽造,F(xiàn)RID 射頻卡雖不易仿造,但FRID 卡識(shí)讀器因成本昂貴而很難被普通消費(fèi)者所接受,這會(huì)增加企業(yè)成本、經(jīng)營風(fēng)險(xiǎn),因此追溯防偽驗(yàn)證是下一步研究并解決的問題。

[1] 余 華,吳振華.農(nóng)產(chǎn)品追溯碼的編碼研究[J].中國農(nóng)業(yè)科學(xué),2011,44(23):4801-4806.

[2] 涂傳清,王愛虎.我國農(nóng)產(chǎn)品質(zhì)量安全追溯體系建設(shè)中存在的問題與對(duì)策[J].農(nóng)機(jī)化研究,2011(3):16-20.

[3] 韓 楊,李成貴.中國食品安全的過去、現(xiàn)在與未來[J].經(jīng)濟(jì)研究參考,2011(45):2-12.

[4] 金海水,劉俊華.農(nóng)產(chǎn)品質(zhì)量快速溯源系統(tǒng)的現(xiàn)狀、問題及對(duì)策[J].商業(yè)時(shí)代,2009(25):66-67.

[5] 昝林森,鄭同超,申光磊,等.牛肉安全生產(chǎn)加工全過程質(zhì)量跟蹤與追溯系統(tǒng)研發(fā)[J].中國農(nóng)業(yè)科學(xué),2006,39 (10):2083-2088.

[6] 朱海鵬.糧食龍頭企業(yè)質(zhì)量安全可追溯系統(tǒng)研究與實(shí)現(xiàn)[D].北京:中國農(nóng)業(yè)科學(xué)院,2007.

[7] 楊信廷,錢建平,孫傳恒,等.蔬菜安全生產(chǎn)管理及質(zhì)量追溯系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)業(yè)工程學(xué)報(bào),2008,24(3):162-166.

[8] 劉雪梅,章海亮,劉燕德.農(nóng)產(chǎn)品質(zhì)量安全可追溯系統(tǒng)建設(shè)探析[J].湖北農(nóng)業(yè)科學(xué),2009,48(8):2001-2003.

[9] 姜利紅,潘迎捷,謝 晶.基于HACCP 的豬肉安全生產(chǎn)可追溯系統(tǒng)溯源信息的確定[J].中國食品學(xué)報(bào),2009,9(2):87-91.

[10] 張 可,柴 毅,翁道磊,等.豬肉生產(chǎn)加工信息追溯系統(tǒng)的分析和設(shè)計(jì)[J].農(nóng)業(yè)工程學(xué)報(bào),2010,26(4):332-339.

[11] 馬漢武,王善霞.基于食品供應(yīng)鏈的肉類食品可追溯性技術(shù)的研究[J].食品工業(yè)科技,2006,27(4):24-26.

[12] 趙 麗,邢 斌,李文勇,等.基于手機(jī)二維碼識(shí)別的農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2012,43(2):124-128.

[13] NY/T 1431-2007 農(nóng)產(chǎn)品追溯編碼導(dǎo)則[S].[14] NY/T 1430-2007 農(nóng)產(chǎn)品產(chǎn)地編碼規(guī)則[S].

[15] 王永紅.基于農(nóng)產(chǎn)品質(zhì)量安全追溯的QR Code 編碼應(yīng)用與實(shí)現(xiàn)[J].湖北農(nóng)業(yè)科學(xué),2012(23):309-313.

[16] 尚明華,秦磊磊,王風(fēng)云,等.基于Android 智能手機(jī)的小麥生產(chǎn)風(fēng)險(xiǎn)信息采集系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報(bào),2011(5):178-182.

[17] 朱信忠,許周旺,徐慧英.移動(dòng)消息中間件MobileMOM 的研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究,2006(3):242-244.

[18] ZXING DISCUSSION GROUP.Zxing ("Zebra Crossing")[EB/OL].(2012-11-23)[2013-05-24].http://code.google.com/p/zxing.

[19] 王向輝,張國印,沈 潔.Android 應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2010:120-209.

[20] 楊西貝.Java 消息服務(wù)機(jī)制的研究與應(yīng)用[D].南京:南京理工大學(xué),2012.

[21] 屈 展,李 嬋.JSON 在Ajax 數(shù)據(jù)交換中的應(yīng)用研究[J].西安石油大學(xué)學(xué)報(bào):自然科學(xué)版,2011,26(1):96-98.

[22] 陳 松,陳 瓊,陳永峰,等.廈門市農(nóng)產(chǎn)品質(zhì)量安全追溯模式研究[J].現(xiàn)代農(nóng)業(yè)科技,2013(2):282-287.

猜你喜歡
服務(wù)端譯碼條碼
中國條碼技術(shù)與應(yīng)用協(xié)會(huì)
條碼微站
基于校正搜索寬度的極化碼譯碼算法研究
云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
新時(shí)期《移動(dòng)Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
在Windows Server 2008上創(chuàng)建應(yīng)用
從霍爾的編碼譯碼理論看彈幕的譯碼
新聞傳播(2016年3期)2016-07-12 12:55:27
LDPC 碼改進(jìn)高速譯碼算法
基于固定條碼與電子標(biāo)簽比對(duì)設(shè)備的設(shè)計(jì)
基于概率裁剪的球形譯碼算法
襄垣县| 商南县| 杨浦区| 仁化县| 蒙阴县| 普宁市| 天长市| 阜康市| 扶绥县| 当涂县| 昭觉县| 南丰县| 荥经县| 沙雅县| 扎鲁特旗| 甘洛县| 蒲城县| 深州市| 松江区| 崇义县| 中山市| 正安县| 富源县| 普宁市| 萍乡市| 荆州市| 丰县| 互助| 富源县| 博兴县| 方山县| 江孜县| 鹤壁市| 昌黎县| 九江市| 重庆市| 黑龙江省| 合江县| 凤翔县| 翁源县| 鸡西市|