姚強等
摘 要 我國柑橘種植面積和總產(chǎn)量位居全球第一,但因生產(chǎn)管理技術(shù)相對落后、新技術(shù)和成果推廣率低等導(dǎo)致平均667 m2產(chǎn)量低于世界平均水平。為了更好地給果農(nóng)和植保工作者提供技術(shù)信息服務(wù),幫助果農(nóng)增產(chǎn)增收,研究開發(fā)了基于.NET的B/S架構(gòu)的柑橘栽培管理信息平臺。該應(yīng)用軟件在設(shè)計時,分析信息平臺功能,設(shè)計分層架構(gòu)模型,降低耦合度;運用Web Service技術(shù),提高可擴展性,提供系統(tǒng)間通信接口;應(yīng)用軟件設(shè)計模式,提高可復(fù)用性和可移植性。驗證結(jié)果表明,信息平臺達(dá)到了設(shè)計目標(biāo),使用方便,易于維護,能夠為柑橘栽培管理提供大量、有效的技術(shù)信息。
關(guān)鍵詞 .NET;Web Service;設(shè)計模式;分層架構(gòu);柑橘;栽培管理信息
中圖分類號:TP311.52 文獻標(biāo)志碼:A 文章編號:1673-890X(2015)16-036-05
知網(wǎng)出版網(wǎng)址:http://www.cnki.net/kcms/detail/50.1186.S.20150710.1125.014.html 網(wǎng)絡(luò)出版時間:2015/7/10 11:25:00
近年來,我國柑橘生產(chǎn)持續(xù)發(fā)展,種植面積不斷擴大、產(chǎn)量連年增長。自2007年起,無論栽培面積,還是總產(chǎn)量,我國都超過巴西,成為柑橘第一生產(chǎn)大國。然而,我國柑橘平均667 m2產(chǎn)量較低,產(chǎn)量最高的2012年也只有915.7 kg,而同期世界平均水平931.57 kg,巴西1591.85 kg,美國2167.12 kg[1]。經(jīng)調(diào)查分析發(fā)現(xiàn),我國柑橘單產(chǎn)低的主要原因在于生產(chǎn)管理技術(shù)相對落后、新技術(shù)和成果推廣應(yīng)用率低。為了更好地給果農(nóng)和植保工作者提供技術(shù)信息服務(wù),幫助果農(nóng)增產(chǎn)增收,本研究設(shè)計并實現(xiàn)了一套柑橘栽培管理信息服務(wù)平臺,利用計算機網(wǎng)絡(luò)技術(shù)和計算機軟件技術(shù),拓展柑橘生產(chǎn)管理技術(shù)和科研成果推廣途徑,通過收集和發(fā)布柑橘栽培管理技術(shù)和最新研究成果,促進新技術(shù)、新成果應(yīng)用率提高。
1 功能分析
信息平臺的主要功能是柑橘栽培管理信息的采集和展示。信息展示部分為果農(nóng)和技術(shù)員提供服務(wù),有2種展示模式,一種是電子公告式,分專欄發(fā)布柑橘栽培管理信息;一種是智能在線咨詢方式,通過詳細(xì)分類和模糊查詢技術(shù),模擬實現(xiàn)機器人在線應(yīng)答。信息采集由信息采集員和平臺管理員完成,采集員收集、整理、錄入、編輯和發(fā)布信息,平臺管理員負(fù)責(zé)欄目管理、分類管理、無效信息清理等工作。平臺具體要實現(xiàn)的功能模塊如圖1所示。
用戶管理模塊實現(xiàn)信息平臺中用戶的添加、編輯、查看和刪除。權(quán)限分為:系統(tǒng)管理、信息錄入、信息編輯、信息發(fā)布。權(quán)限管理模塊實現(xiàn)權(quán)限的維護、分配和收回。根據(jù)使用信息平臺的情況,用戶可使用系統(tǒng)管理員、采集員和發(fā)布員3種角色中的1種。信息管理包括錄入收集的信息到平臺中、修改或刪除錯誤信息、發(fā)布信息。日志管理記錄用戶登錄的時間、IP地址、運行中的異常等信息,提供日志查看和清除功能。欄目管理設(shè)定信息平臺中的欄目,在添加或發(fā)布技術(shù)信息時必須選擇一個或多個欄目,以決定在網(wǎng)頁中那個板塊展示。附件管理主要對信息中包含的圖片、Excel表格、Word文檔、PPT演示文稿、壓縮包等附件進行統(tǒng)一管理。在添加信息時通過上傳功能將附件傳送到服務(wù)器,根據(jù)上傳時的年份和月份統(tǒng)一組織管理。視頻管理主要實現(xiàn)視頻信息的添加、編輯、在線播放、刪除等功能。分類字典管理使用字典的方式統(tǒng)一管理和維護各種分類,包括:品種類型、生育期、成熟期、樹齡、樹型、樹勢、修剪時期等。通過對信息進行詳細(xì)的分類,在線應(yīng)答模塊模擬實現(xiàn)機器人在線交互功能。用戶輸入關(guān)鍵詞,在線應(yīng)答模塊使用模糊查詢功能找出可能匹配的信息供用戶選擇。在線應(yīng)答功能的工作流程如圖2所示。
2 架構(gòu)設(shè)計
軟件分層已經(jīng)成為一種普遍應(yīng)用的軟件架構(gòu)設(shè)計方法,其本質(zhì)是采取分治的策略,將系統(tǒng)關(guān)注點分離到相互獨立的層中,各層之間通過協(xié)作完成整體功能[2]。對系統(tǒng)分層可降低模塊間耦合度,增加代碼可復(fù)用性,提高系統(tǒng)可擴展性和可移植性,有利于標(biāo)準(zhǔn)化,使系統(tǒng)更易維護。
MVC模型是一種典型的分層架構(gòu)設(shè)計模型,將系統(tǒng)分成3層:與用戶交互的V(視圖) 層、數(shù)據(jù)處理的M(模型)層和控制業(yè)務(wù)執(zhí)行的C(控制)層。在實際開發(fā)中,會根據(jù)需要參照MVC模型做擴展和細(xì)化,增加一些層次。
信息平臺在設(shè)計時也采用了分層的架構(gòu)設(shè)計思想。其系統(tǒng)架構(gòu)共分為5層:表示層、業(yè)務(wù)邏輯層、Web服務(wù)層、數(shù)據(jù)訪問層和數(shù)據(jù)管理層,如圖3所示。
數(shù)據(jù)管理層由SQL Server、Oracle、MySQL等數(shù)據(jù)庫管理系統(tǒng)組成,負(fù)責(zé)對數(shù)據(jù)進行存儲和管理。
數(shù)據(jù)訪問層提供:連接數(shù)據(jù)庫、添加數(shù)據(jù)、檢查數(shù)據(jù)是否存在、取數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)和關(guān)閉連接功能。
Web服務(wù)層調(diào)用數(shù)據(jù)訪問層的接口,應(yīng)用Web Service技術(shù)為上層服務(wù)。Web Service是一種平臺獨立的、分布式的、松耦合的、自包含的、可重用的、基于可編程的軟件組件,它封裝各個獨立功能,通過采用WSDL、UDDI和SOAP等基于XML的標(biāo)準(zhǔn)和協(xié)議,解決異構(gòu)分布式計算以及代碼與數(shù)據(jù)重用等問題,具有高度互操作性、跨平臺性和松耦合的特點[3]。信息平臺的Web服務(wù)層只提供對數(shù)據(jù)的增、刪、改、查等基本數(shù)據(jù)操作服務(wù)。不同系統(tǒng)間可以共享數(shù)據(jù),而業(yè)務(wù)邏輯和與用戶交互的表示層會根據(jù)其主要目標(biāo)有很大區(qū)別,因此將Web服務(wù)層放在第三層,這樣可以重用數(shù)據(jù)訪問層組件,共享數(shù)據(jù)。
圖3中虛線部分是2個外部系統(tǒng),一個是基于物聯(lián)網(wǎng)的柑橘生長環(huán)境監(jiān)測系統(tǒng),另一個是基于3G的專家在線支持系統(tǒng)。這2個系統(tǒng)通過調(diào)用Web服務(wù)層的服務(wù)接口,可與數(shù)據(jù)管理層交互,從而共享數(shù)據(jù)。
由于Web Service采用基于XML的標(biāo)準(zhǔn)和協(xié)議,當(dāng)需要開發(fā)新的應(yīng)用系統(tǒng)時,可使用習(xí)慣的或當(dāng)前流行的語言進行開發(fā),而不必考慮現(xiàn)有系統(tǒng)基于的語言,只要符合Web Service的標(biāo)準(zhǔn),不論使用Java、C#還是其它語言,都可以調(diào)用Web服務(wù)層的服務(wù)。
3 設(shè)計模式應(yīng)用
設(shè)計模式用在軟件系統(tǒng)設(shè)計中來解決一些重復(fù)發(fā)生的問題,由此增強軟件的可復(fù)用性、可維護性、可理解性、可演化性和健壯性[4]。在基于.NET的柑橘栽培管理信息平臺中,設(shè)計模式主要應(yīng)用于數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層設(shè)計。
3.1 表示層設(shè)計模式應(yīng)用
表示層是最接近用戶的一層,是系統(tǒng)與用戶交互的門戶。信息平臺向用戶展示的信息包括:柑橘育苗、嫁接、培土、施肥、修剪、病蟲害防治等多方面。這些信息所包含的具體內(nèi)容各不相同,但從軟件設(shè)計者的角度,這些信息在展示時,有相似的結(jié)構(gòu)。為使表示層有統(tǒng)一的展示風(fēng)格,使用模板模式設(shè)計和實現(xiàn)。圖4給出了模板模式應(yīng)用類圖。
圖4中BasePage類是所有Web頁面的基類,它繼承了.NET Framework中的System.Web.UI. Page類,包含著ASP.NET Web頁面基礎(chǔ)的屬性、事件及操作。其GetSysConfig方法從XML配置文件中讀取信息平臺的配置信息,并填充在SysConfig屬性中供所有子類使用。所有Web頁面的整體框架由Templates類的InitFrame方法生成。Templates類依據(jù)模板類型讀取相應(yīng)html模板。所有Web頁面共有的頭部、導(dǎo)航菜單和底部的版權(quán)等信息由Templates類統(tǒng)一填充和生成。首頁里的欄目、圖片輪播、走馬燈等由Index類創(chuàng)建。欄目內(nèi)信息的列表展示和分頁功能由List類實現(xiàn)。信息內(nèi)容展示頁面的標(biāo)題、作者、來源、發(fā)布時間、點擊率、內(nèi)容等信息,由Article類填充。
3.2 業(yè)務(wù)邏輯層設(shè)計模式應(yīng)用
在首頁中,生成欄目只需直接調(diào)用Web服務(wù)層從數(shù)據(jù)庫中取欄目信息,不必做特殊業(yè)務(wù)處理;而生成圖片輪播、走馬燈等效果時,為使圖片和文章或視頻關(guān)聯(lián)起來,除從數(shù)據(jù)庫取信息內(nèi)容外,還要取圖片附件信息;若是視頻,因為視頻在一臺單獨的服務(wù)器上供政府農(nóng)業(yè)部門門戶網(wǎng)站、農(nóng)業(yè)專題網(wǎng)站、科研項目應(yīng)用平臺共享使用,還要根據(jù)視頻存放路徑和視頻名稱生成URL,這時就要執(zhí)行一些特殊的業(yè)務(wù)規(guī)則。類似需要執(zhí)行特殊業(yè)務(wù)規(guī)則的情況,在List生成信息列表和分頁處理時,在Article插入附件圖片到信息內(nèi)容時,在頁面加載視頻時都會存在。如果不加以區(qū)分,將所有的業(yè)務(wù)放在一起,會使業(yè)務(wù)層非常復(fù)雜,業(yè)務(wù)流程混亂,不利于維護。為此,在業(yè)務(wù)邏輯層使用外觀模式設(shè)計和實現(xiàn)。
如圖5所示,業(yè)務(wù)執(zhí)行由BL_ Facade類進行分流。直接讀寫數(shù)據(jù)庫的業(yè)務(wù)由BL_Facade調(diào)用WebService完成,執(zhí)行特殊邏輯處理的業(yè)務(wù)由BL_Facade調(diào)用相應(yīng)業(yè)務(wù)規(guī)則類,再由業(yè)務(wù)規(guī)則類調(diào)用WebService訪問數(shù)據(jù)庫。這樣,可有效控制業(yè)務(wù)執(zhí)行,使應(yīng)用結(jié)構(gòu)清晰、流程規(guī)范、易于維護。
3.3 數(shù)據(jù)訪問層設(shè)計模式應(yīng)用
關(guān)系型數(shù)據(jù)庫管理系統(tǒng)被普遍應(yīng)用于管理信息系統(tǒng)中集中管理數(shù)據(jù)。目前關(guān)系型數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品主要有:Oracle、MSSQLServer、Sybase、DB2、MySQL等,這些產(chǎn)品由不同的廠商提供,雖然各廠商都聲稱支持標(biāo)準(zhǔn)的SQL語言,但提供的API卻各不相同。柑橘栽培管理信息平臺使用的是SQL Server 2012,但考慮到日后系統(tǒng)移植和升級,同時也支持對Oracle、MySQL、DB2等其它數(shù)據(jù)庫的訪問。提供多種數(shù)據(jù)庫訪問的功能,是通過在數(shù)據(jù)訪問層應(yīng)用抽象工廠模式實現(xiàn)的。抽象工廠模式的意圖是:提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定其具體的類[5]。圖6給出了抽象工廠模式在數(shù)據(jù)訪問層的應(yīng)用類圖。
4 驗證結(jié)果分析
目前,“基于.NET的柑橘栽培管理信息平臺”已經(jīng)通過試運行,進入正式運行使用階段。在試運行過程中,對平臺應(yīng)實現(xiàn)的功能、可擴展性、可移植性、可復(fù)用性進行了驗證分析。
4.1 平臺功能驗證分析
信息平臺應(yīng)用基于.NET的Web技術(shù)開發(fā)實現(xiàn),部署運行于Web服務(wù)器上。采集員可隨時隨地通過互聯(lián)網(wǎng)進行信息采集、錄入和編輯。發(fā)布員對信息審查后將狀態(tài)改為發(fā)布即完成信息發(fā)布。果農(nóng)可通過品種優(yōu)選、果園建設(shè)、柑橘育苗、培土施肥、嫁接、修剪、病蟲害防治、?;ū9①A藏加工、采后管理、科研成果、科技視頻等欄目快速找到所需信息。
驗證結(jié)果表明,該平臺實現(xiàn)了所需功能,能夠及時發(fā)布柑橘栽培管理相關(guān)技術(shù)信息,并以統(tǒng)一的界面風(fēng)格展示給用戶,操作簡單,易于使用,拓展了技術(shù)和科研成果推廣途徑,提高了新技術(shù)、新成果應(yīng)用率,能夠幫助柑橘果農(nóng)增產(chǎn)增收。
4.2 可擴展性和可復(fù)用性驗證分析
為了幫助果農(nóng)和植保工作者實時獲取栽培地風(fēng)速、風(fēng)向、雨量、土壤溫度、土壤pH值、土壤水分等柑橘生長環(huán)境數(shù)據(jù)信息,以便及時做好保花、保果、施肥、灌溉等工作,在試運行階段,為平臺添加了與柑橘生長環(huán)境物聯(lián)網(wǎng)監(jiān)測系統(tǒng)進行數(shù)據(jù)交互的組件和觀測點實時生長環(huán)境信息欄目,同時對平臺可擴展性和可復(fù)用性做了驗證。由于DBAccess類中的方法大多都直接以SQL語句字符串為參數(shù),只添加一個用于指定柑橘生長環(huán)境物聯(lián)網(wǎng)監(jiān)測系統(tǒng)數(shù)據(jù)庫的配置文件,就復(fù)用了數(shù)據(jù)訪問層代碼,實現(xiàn)了從監(jiān)測系統(tǒng)數(shù)據(jù)庫讀取數(shù)據(jù)。添加的觀測點實時生長環(huán)境信息欄目,以列表形式展示觀測點數(shù)據(jù)信息。因為要根據(jù)設(shè)定的數(shù)據(jù)采集周期進行實時更新,為避免頁面不停刷新,開發(fā)時增加了EnvInfoList類,該類繼承List類并使用了JQuery,使該欄目與其他欄目保持統(tǒng)一風(fēng)格。
驗證結(jié)果表明,平臺具有良好的可擴展性,實現(xiàn)了代碼級復(fù)用,達(dá)到了設(shè)計目標(biāo)。
4.3 可移植性驗證分析
試運行期間,對平臺可移植性進行了驗證。依次在服務(wù)器上安裝了Oracle express 11g、MySQL Community Server 5.6、DB2 Express-C三種數(shù)據(jù)庫,將數(shù)據(jù)分別導(dǎo)入三種數(shù)據(jù)庫中,修改配置文件后測試運行。結(jié)果表明,平臺具有很好的可移植性,除了能夠在SQLServer數(shù)據(jù)庫上正常運行,還可以在上述數(shù)據(jù)庫上正常運行。
5 結(jié)束語
本文論述了基于.Net的柑橘栽培管理信息平臺的設(shè)計開發(fā),應(yīng)用分層思想設(shè)計軟件架構(gòu),為了便于與其他柑橘軟件系統(tǒng)集成和復(fù)用數(shù)據(jù)訪問組件,引入Web服務(wù)層,使用WebService技術(shù)提供外部接口。另外,通過應(yīng)用軟件設(shè)計模式中的模板模式、外觀模式和抽象工廠模式,結(jié)合分層的軟件架構(gòu)提高平臺可擴展性、可維護性、可復(fù)用性和可移植性。經(jīng)過組織用戶試用、添加“觀測點實時生長環(huán)境信息”欄目、開發(fā)物聯(lián)網(wǎng)監(jiān)測系統(tǒng)數(shù)據(jù)交互組件和跨數(shù)據(jù)庫移植等驗證,結(jié)果表明開發(fā)的信息平臺達(dá)到了設(shè)計目標(biāo)。希望通過本文的論述為農(nóng)業(yè)信息化軟件和其他類似平臺的設(shè)計開發(fā)提供借鑒。
參考文獻:
[1] 沈兆敏.2012年我國柑橘生產(chǎn)現(xiàn)狀淺析及持續(xù)發(fā)展對策[J].果農(nóng)之友,2013,(10):38-41.
[2] 陳瑩瑩.基于.NET平臺的分層架構(gòu)與設(shè)計模式應(yīng)用研究[D].成都:電子科技大學(xué)計算機科學(xué)與工程學(xué)院,2011.
[3] 胡揚波.基于多目標(biāo)優(yōu)化的Web服務(wù)組合研究[D].長沙:中南大學(xué)信息科學(xué)與工程學(xué)院,2009.
[4] Rasool G,Mader P. Flexible Design Pattern Detection Based on Feature Types[C]//26th IEEE/ACM International Conference on Automated Software Engineering (ASE).2011:243-252.
[5] Bishop J. Design Pattern[M]. Sebastopol:OReilly Media, Inc.,2007.
(責(zé)任編輯:丁志祥)