王秀萍
摘要:農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)是江蘇省農(nóng)產(chǎn)品質(zhì)量安全追溯管理平臺(tái)的一個(gè)子系統(tǒng),該項(xiàng)目的主要建設(shè)目標(biāo)是采用現(xiàn)代化手段,構(gòu)建數(shù)字化的農(nóng)產(chǎn)品質(zhì)量安全管理體系,做到農(nóng)產(chǎn)品質(zhì)量信息可查詢、可追溯、可監(jiān)督,從而從根本上保證食品安全。該文就如何基于MVC模式構(gòu)建農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)進(jìn)行了闡述。
關(guān)鍵詞:MVC模式;農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng);可追溯;信息系統(tǒng)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)21-5102-02
Construction of APQIS Based on MVC
WANG Xiu-Ping
(Jiangsu Animal Husbandry & Veterinary College, Taizhou 225300,China)
Abstract: APQIS is a subsystem of Jiangsu province agricultural product quality safety traceability management platform, the projects main target is construction of digital agricultural product quality safety management system, to produce quality information which can be que ried, traceability, supervision, thus fundamentally to ensure food safety. This paper discusses how to construct APQIS based on MVC.
Key words: MVC model; APQIS; traceability; information system
隨著生活水平的提高,人們對(duì)農(nóng)產(chǎn)品質(zhì)量要求越來越高。近年來發(fā)生的一些食品質(zhì)量安全事故,使人們對(duì)這一問題更加關(guān)注。因此,采用現(xiàn)代化手段,構(gòu)建數(shù)字化的農(nóng)產(chǎn)品質(zhì)量安全管理體系,做到農(nóng)產(chǎn)品質(zhì)量信息可查詢、可追溯、可監(jiān)督,讓消費(fèi)者吃的放心,從根本上保證消費(fèi)者的食品安全,已成為當(dāng)前必須解決問題之一。
2011年,江蘇省農(nóng)委啟動(dòng)了“江蘇省農(nóng)產(chǎn)品質(zhì)量安全追溯體系研究與試點(diǎn)”工作,江蘇畜牧獸醫(yī)職業(yè)技術(shù)學(xué)院承擔(dān)“農(nóng)產(chǎn)品質(zhì)量安全追溯管理平臺(tái)”的開發(fā)任務(wù)。經(jīng)過項(xiàng)目組全體成員一年多的努力,已完成項(xiàng)目任務(wù)并通過驗(yàn)收和成果鑒定。該文就其中的農(nóng)產(chǎn)品質(zhì)量檢測(cè)子系統(tǒng)的建設(shè)過程談?wù)劷?jīng)驗(yàn)和體會(huì)。
1系統(tǒng)簡(jiǎn)述
農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)是江蘇省農(nóng)產(chǎn)品質(zhì)量安全追溯管理平臺(tái)中的一個(gè)子系統(tǒng)。該系統(tǒng)的建設(shè)目標(biāo)是建立農(nóng)產(chǎn)品生產(chǎn)、加工、流通全過程的安全監(jiān)督檢測(cè),實(shí)現(xiàn)農(nóng)產(chǎn)品“從基地到餐桌”的全程控制和質(zhì)量溯源。其工作流程是從農(nóng)產(chǎn)品的生產(chǎn)開始,由企業(yè)申請(qǐng)?zhí)峤晦r(nóng)產(chǎn)品的基本信息,獲得由政府授權(quán)的二維碼,并對(duì)該產(chǎn)品在每個(gè)流通環(huán)節(jié)中的流轉(zhuǎn)信息、質(zhì)量檢測(cè)信息進(jìn)行記錄,直到擺上貨架,消費(fèi)者可以在采購或消費(fèi)前通過電腦或手機(jī)等移動(dòng)終端對(duì)條碼標(biāo)簽查詢,從而獲得該產(chǎn)品的生產(chǎn)加工的相關(guān)資料,在發(fā)生質(zhì)量問題時(shí),消費(fèi)者可據(jù)此進(jìn)行投訴。同時(shí),該系統(tǒng)還讓管理者能夠及時(shí)準(zhǔn)確地掌握農(nóng)產(chǎn)品質(zhì)量安全狀況,讓生產(chǎn)者方便入市銷售產(chǎn)品,實(shí)現(xiàn)優(yōu)質(zhì)優(yōu)價(jià)以及增加收入。
2 MVC模式
2.1 MVC原理
傳統(tǒng)的二層Web應(yīng)用中,代碼、SQL語句與HTML是混合的,雖然開發(fā)速度比較快,但耦合性太高,很難滿足用戶的變化性需求。MVC模式是一個(gè)用于將用戶界面邏輯與業(yè)務(wù)邏輯分離開來的設(shè)計(jì)模式,它將應(yīng)用程序分成三個(gè)核心部件:模型(Model)、視圖(View)和控制器Controller),強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開,相對(duì)獨(dú)立,各個(gè)部件只處理自己的任務(wù),結(jié)構(gòu)清晰,耦合性低,有利于Web開發(fā)中的職能分工、各司其職。
2.2 MVC框架的優(yōu)點(diǎn)
2.2.1代碼重用
從模型返回的數(shù)據(jù)是中立的,沒有進(jìn)行格式化,因而同樣的部件能被不同界面使用。例如,用戶的訪問應(yīng)用程序的方式可能不同(如電腦、平板、手機(jī)或其他設(shè)備),對(duì)應(yīng)的視圖可能是WEB視圖或WAP視圖,也有可能要用Macromedia Flash來表示。但這些不同的視圖能夠共享一個(gè)模型,無論用戶想要HTML界面、Flash界面或是WAP界面,都能通過同一個(gè)模型來提供數(shù)據(jù),從而可以最大化的重用代碼.
2.2.2低耦合性
模型、視圖、控制器三個(gè)部件是相互對(duì)立的,改變其中一個(gè)不會(huì)影響其它兩個(gè)。因此,可以改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則,而不影響控制器和視圖。例如,項(xiàng)目需要把數(shù)據(jù)庫從MS SQL Server移植到Oracle,此時(shí)只需要改變模型即可,而不用對(duì)修改控制器和視圖,對(duì)于視圖而言,只要模型正確,不管數(shù)據(jù)來自哪里,視圖都能正確的顯示。同樣,如果項(xiàng)目需要從普通的Web界面遷移到Wap界面,因?yàn)橐晥D層和業(yè)務(wù)層分離,也只增加相應(yīng)的Wap視圖即可,而不用重新編譯模型和控制器代碼。
2.2.3有利于軟件工程化管理
MVC設(shè)計(jì)模式,有利于項(xiàng)目組成員明確分工,各司其職,有利于工程化、工具化管理程序代碼。模型、視圖、控制器三個(gè)部件相互分離的特性,使程序員可以集中精力于業(yè)務(wù)邏輯,界面設(shè)計(jì)員可以集中精力于UI界面,降低了開發(fā)和維護(hù)用戶接口的難度,大大縮減了軟件的開發(fā)時(shí)間,不僅易于快速部署,而且擴(kuò)展性強(qiáng),后期維護(hù)和修改更加方便。
3系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
3.1系統(tǒng)的開發(fā)環(huán)境
農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)采用MVC框架開發(fā),B/S模式工作,其開發(fā)工具為ASP.NET C#,系統(tǒng)的運(yùn)行平臺(tái)是Windows 2003 Server,Web服務(wù)器IIS ,后臺(tái)數(shù)據(jù)庫采用SQL Server 2005。
3.2功能模塊
用戶通過公共的登錄模塊輸入正確的用戶名、密碼及驗(yàn)證碼后,就可以進(jìn)入質(zhì)量安全檢測(cè)系統(tǒng)。系統(tǒng)主要包括基礎(chǔ)管理、檢測(cè)管理、標(biāo)識(shí)管理和個(gè)人中心四個(gè)模塊,其中檢測(cè)管理是重點(diǎn)。如圖1所示。
圖1
1)基礎(chǔ)管理可以對(duì)機(jī)構(gòu)信息、檢測(cè)項(xiàng)目、員工信息等基礎(chǔ)數(shù)據(jù)進(jìn)行查詢、增加、修改等操作。機(jī)構(gòu)信息,包含機(jī)構(gòu)簡(jiǎn)述、聯(lián)系人、地址、聯(lián)系電話、傳真等數(shù)據(jù)項(xiàng)。檢測(cè)項(xiàng)目,包含檢測(cè)性質(zhì)、項(xiàng)目類型、項(xiàng)目名稱及一些具體檢測(cè)指標(biāo)。
2)檢測(cè)管理這是本系統(tǒng)的主要功能。主要包括以下內(nèi)容:
①實(shí)時(shí)檢測(cè)統(tǒng)計(jì)能夠以圖形的方式實(shí)時(shí)顯示各地區(qū)的檢測(cè)合格率,并顯示最新的10條檢測(cè)結(jié)果信息。
②不合格品檢測(cè)統(tǒng)計(jì)顯示選定時(shí)間段內(nèi)的產(chǎn)品不合格率。若所選擇時(shí)間段內(nèi)沒有不合格產(chǎn)品檢測(cè)記錄,則會(huì)彈出消息框“當(dāng)前時(shí)間沒有檢測(cè)數(shù)據(jù)”。
③檢測(cè)錄入由檢測(cè)人員根據(jù)具體檢測(cè)情況作出判斷并輸入的農(nóng)產(chǎn)品檢測(cè)結(jié)果。錄入內(nèi)容包括送檢單位類型(基地、市場(chǎng))、送檢單位、農(nóng)產(chǎn)品名稱及其生產(chǎn)批次、采收批次、進(jìn)場(chǎng)批次、生產(chǎn)者、檢測(cè)項(xiàng)目(如農(nóng)藥殘留)、檢測(cè)值、檢測(cè)結(jié)論等。
④信息綜合查詢及管理選擇查詢條件或輸入查詢關(guān)鍵詞后,可以查詢?cè)敿?xì)數(shù)據(jù)記錄,點(diǎn)擊可以查看或刪除搜索結(jié)果。
3)標(biāo)識(shí)管理對(duì)相關(guān)產(chǎn)品的條碼進(jìn)行管理,包括查詢、打印、刪除等操作。
4)個(gè)人中心
①信息發(fā)布可以發(fā)布新聞中心、通知公告、技術(shù)服務(wù)、法律法規(guī)、供求信息、質(zhì)檢公示、查處案件、機(jī)構(gòu)信息等8個(gè)欄目的信息,發(fā)布的信息將顯示在公共服務(wù)平臺(tái)首頁上的相應(yīng)欄目。
②個(gè)人消息可以閱讀、刪除當(dāng)前登錄用戶的個(gè)人消息,也能夠向其他用戶發(fā)送消息。
3.3系統(tǒng)的實(shí)現(xiàn)過程
根據(jù)MVC設(shè)計(jì)模式,按照層次結(jié)構(gòu),把系統(tǒng)分為5層,從下到上分別是實(shí)體層、數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、控制層和WEB層。其中實(shí)體層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層對(duì)應(yīng)MVC模式的模型部分、控制層對(duì)應(yīng)控制器部分,WEB層頁面對(duì)應(yīng)視圖部分。
1)構(gòu)建業(yè)務(wù)對(duì)象BO根據(jù)農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì),以及具體的業(yè)務(wù)需求,構(gòu)建OrganizationInformation類、StaffInfor mation類、TestItems類、Identification類、PublishInformation類、PersonMessage類等業(yè)務(wù)對(duì)象。這些業(yè)務(wù)對(duì)象均設(shè)置了相關(guān)字段的get、set屬性,方便讀取存儲(chǔ)數(shù)據(jù)。
2)構(gòu)建基于Linq的數(shù)據(jù)訪問層DAL通過VS的Linq to SQL框架,創(chuàng)建數(shù)據(jù)庫對(duì)象、關(guān)系之間的映射,不需要書寫訪問數(shù)據(jù)庫的代碼,就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的各種查詢、添加、刪除、修改等操作,并將得到的相關(guān)業(yè)務(wù)對(duì)象返回到業(yè)務(wù)邏輯層中。
3)構(gòu)建業(yè)務(wù)邏輯層BLL,定義OrganizationInformationManager類、StaffInformationManager類、TestItemsManager類、Identification Manager類、PublishInformationManager類、PersonMessageManager類等業(yè)務(wù)邏輯對(duì)象。在控制器中使用這些邏輯類查詢、添加、修改、刪除相關(guān)的業(yè)務(wù)對(duì)象。如果不需要實(shí)現(xiàn)特別的業(yè)務(wù)邏輯,業(yè)務(wù)層的代碼只要簡(jiǎn)單調(diào)用數(shù)據(jù)訪問層的相關(guān)方法即可。
4)控制層將用戶請(qǐng)求的URL路由,分發(fā)到控制器的相關(guān)動(dòng)作方法,選擇適當(dāng)?shù)臉I(yè)務(wù)模型,獲得數(shù)據(jù),并返回用戶視圖。
5)Web層,主要是以HTML呈現(xiàn)的用戶界面。
4結(jié)束語
該文實(shí)現(xiàn)了基于MVC模式構(gòu)建的農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng),詳細(xì)介紹了農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)的分析、設(shè)計(jì)和實(shí)現(xiàn)過程。作為一種高效的開發(fā)框架,MVC模式具有低耦合性、高重用性、有利于軟件工程化管理等特點(diǎn),有著廣闊的應(yīng)用前景。在我們的農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)中應(yīng)用MVC模式,取得了非常明顯的效果,提高了工作效率,縮短了軟件的開發(fā)周期,并且開發(fā)出的系統(tǒng)結(jié)構(gòu)清晰,為后期維護(hù)打下了基礎(chǔ)。
參考文獻(xiàn):
[1]龔赤兵.MVC架構(gòu)與實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2009.
[2]房大偉,呂雙,劉云峰.ASP.NET編程寶典(C#)[M].北京:人民郵電出版社,2011.
[3]張升平.基于MVC模式的研究生管理系統(tǒng)[J].重慶工商大學(xué)學(xué)報(bào):自然科學(xué)版,2006(23).