姚強等



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