佟海亮 楊征 王鑫
摘 要 研究提出了基于三層架構(gòu)和SOA體系的種植管理系統(tǒng)服務(wù)平臺(tái)架構(gòu),采用螺旋模型的方法來進(jìn)行系統(tǒng)開發(fā),用于整合各種農(nóng)業(yè)信息資源,進(jìn)行海量農(nóng)業(yè)信息存儲(chǔ)、高性能運(yùn)算、軟件和數(shù)據(jù)共享服務(wù)。結(jié)合大數(shù)據(jù)思維對設(shè)計(jì)架構(gòu)、開發(fā)模式、項(xiàng)目管理、測試方法等進(jìn)行了分析、設(shè)計(jì)了,給出了原型系統(tǒng)的部署方案,通過試驗(yàn),證明了該體系架構(gòu)的可行性。
關(guān)鍵詞 三層架構(gòu);SOA體系;農(nóng)業(yè)種植管理系統(tǒng);農(nóng)業(yè)信息;服務(wù)平臺(tái)
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)志碼:B 文章編號(hào):1673-890X(2015)03--04
1 設(shè)計(jì)架構(gòu)
農(nóng)業(yè)種植基地日常作業(yè)的管理系統(tǒng)平臺(tái)基于三層架構(gòu)和SOA體系開發(fā)(圖1)。SOA是一個(gè)面向服務(wù)體系結(jié)構(gòu)的組件模型,SOA將應(yīng)用不同程序的功能單元之間定義良好的接口和契約聯(lián)系起來。其中,接口的定義方式采用了中立的方式進(jìn)行,并且接口在實(shí)際服務(wù)的硬件平臺(tái)、操作系統(tǒng)及編程語言中是獨(dú)立的,這樣在進(jìn)行各種各樣的系統(tǒng)中的服務(wù)交互時(shí)可以實(shí)現(xiàn)使用一種統(tǒng)一或通用的方式,提高交互服務(wù)運(yùn)行質(zhì)量[1]。
圖1 SOA架構(gòu)模塊結(jié)構(gòu)圖
通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(Presentation Layer)、業(yè)務(wù)邏輯層(Business Logic Layer)、數(shù)據(jù)訪問層(Data Access Layer)。區(qū)分層次的目的即為了“高內(nèi)聚低耦合”的思想。分層式結(jié)構(gòu)在一般的軟件體系架構(gòu)設(shè)計(jì)過程中是采用較多、較常見的一種,分層式結(jié)構(gòu)從下到上一般可分為三層,即數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、表示層(圖2和圖3)。
圖2 三層架構(gòu)層次結(jié)構(gòu)圖
圖3 三層架構(gòu)工程結(jié)構(gòu)圖
2 開發(fā)模式
螺旋模型(Spiral Model)是應(yīng)用一種周期性的方法來進(jìn)行系統(tǒng)開發(fā),采用這種方法會(huì)開發(fā)出較多的中間版本。螺旋模型是以進(jìn)化的開發(fā)方式為中心的一種快速原型法,這一模型需求定義、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評審4個(gè)階段,且在每一個(gè)周期都由這4個(gè)階段進(jìn)行迭代。在軟件開發(fā)過程中,每迭代一次,軟件開發(fā)即可更近一個(gè)層次。螺旋模型軟件開發(fā)主要過程見圖4。
圖4 螺旋模型開發(fā)過程部分流程圖
該模型的主要方法是在“瀑布模型”的每一個(gè)開發(fā)階段之前將一個(gè)非常嚴(yán)格的風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)控制引入其中。螺旋模型把軟件開發(fā)過程分解成若干個(gè)子項(xiàng)目,一個(gè)或多個(gè)主要風(fēng)險(xiǎn)都會(huì)在每個(gè)小的子項(xiàng)目進(jìn)行標(biāo)識(shí),直至全部的主要風(fēng)險(xiǎn)因素都被確定。
螺旋模型重點(diǎn)強(qiáng)調(diào)風(fēng)險(xiǎn)分析,每個(gè)演化層出現(xiàn)的風(fēng)險(xiǎn),軟件開發(fā)人員和用戶就會(huì)對其有所了解,從而做出應(yīng)有的判斷和處理[2]。正因如此,這種模式非常適用于具有高風(fēng)險(xiǎn)的、復(fù)雜的、龐大的軟件系統(tǒng)。軟件系統(tǒng)開發(fā)過程中存在著各種風(fēng)險(xiǎn),可在不同程度上影響甚至使開發(fā)過程收到破壞,致使軟件產(chǎn)品的質(zhì)量收到影響。在造成危害之前,及時(shí)對風(fēng)險(xiǎn)進(jìn)行判別、分析,并采取有效對策將風(fēng)險(xiǎn)降到最低進(jìn)而消除風(fēng)險(xiǎn)隱患就成為軟件開發(fā)過程中最為重要的工作之一。
圖5中的4個(gè)象限代表了螺旋模型的活動(dòng)方式,即進(jìn)行若干次迭代。
圖5 4個(gè)象限代表了螺旋模型的活動(dòng)方式
4種象限分為制定計(jì)劃:明確軟件開發(fā)目標(biāo)任務(wù),確定設(shè)計(jì)方案,查找并確定項(xiàng)目開發(fā)的限制因素。風(fēng)險(xiǎn)分析:對確定的方案進(jìn)行論證和評估,提出對風(fēng)險(xiǎn)識(shí)別和消除的方法。實(shí)施工程:進(jìn)行軟件開發(fā)、驗(yàn)證。客戶評估:開發(fā)工作的優(yōu)劣進(jìn)行評價(jià),并提出修改意見,制定下一步工作計(jì)劃。
螺旋模型由風(fēng)險(xiǎn)驅(qū)動(dòng),主要強(qiáng)調(diào)的是可選方案以及約束條件,從而支持軟件的重用,這樣有助于將軟件質(zhì)量作為重要目標(biāo)納入系統(tǒng)開發(fā)中。
3 開發(fā)管理
3.1 項(xiàng)目管理
項(xiàng)目管理嚴(yán)格按照國際標(biāo)準(zhǔn),整個(gè)過程項(xiàng)目的啟動(dòng)、確定項(xiàng)目章程、生成范圍說明和WBS、資源計(jì)劃與估算、制定項(xiàng)目計(jì)劃體系、生成項(xiàng)目計(jì)劃、項(xiàng)目團(tuán)隊(duì)建設(shè)、項(xiàng)目的實(shí)施、項(xiàng)目的變更控制和項(xiàng)目的收尾等[3]。
3.2 文檔管理
按照軟件開發(fā)的規(guī)范完成一個(gè)軟件設(shè)計(jì)開發(fā)過程。文檔的分類見表1。文檔與進(jìn)度見表2。開發(fā)文檔見圖6。
表1 項(xiàng)目管理文檔授權(quán)目錄
類型 讀者 時(shí)間
設(shè)計(jì)開發(fā)類 可行性研究報(bào)告 管理/研發(fā)人員 可行性研究與計(jì)劃階段
項(xiàng)目開發(fā)計(jì)劃 管理/研發(fā)人員 可行性研究、需求分析階段
需求規(guī)格說明書 研發(fā)人員 需求分析階段
功能規(guī)格說明書 研發(fā)人員 需求分析階段
概要設(shè)計(jì)說明書 研發(fā)/維護(hù)人員 設(shè)計(jì)階段
詳細(xì)設(shè)計(jì)說明書 研發(fā)/維護(hù)人員 設(shè)計(jì)階段
數(shù)據(jù)庫設(shè)計(jì)說明書 研發(fā)/維護(hù)人員 設(shè)計(jì)階段
模塊開發(fā)卷宗 管理/研發(fā)/維護(hù)人員 實(shí)現(xiàn)、測試階段
測試計(jì)劃 研發(fā)人員 需求分析、設(shè)計(jì)階段
測試分析報(bào)告 研發(fā)/維護(hù)人員 測試階段
管理類 開發(fā)進(jìn)度月報(bào) 管理人員 貫穿整個(gè)開發(fā)過程
項(xiàng)目開發(fā)總結(jié) 管理人員 測試階段
職責(zé)定義 管理人員 可行性研究與計(jì)劃階段
進(jìn)度變更記錄 管理人員 隨時(shí)
產(chǎn)品類 用戶指南 用戶 需求分析、設(shè)計(jì)、實(shí)現(xiàn)階段
操作手冊 用戶 設(shè)計(jì)、實(shí)現(xiàn)階段
信息廣告 用戶 測試階段
表2 項(xiàng)目管理文檔與進(jìn)度表
圖6 開發(fā)文檔
3.3 測試
測試方案采用專業(yè)軟件測試工具,Selenium是一套完整的測試系統(tǒng),是為正在蓬勃發(fā)展的Web應(yīng)用開發(fā)的。Selenium主要功能包括:測試與瀏覽器的兼容性——測試你的應(yīng)用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。它的測試系統(tǒng)功能——?jiǎng)?chuàng)建衰退測試檢驗(yàn)軟件功能和用戶需求,支持自動(dòng)錄制動(dòng)作和自動(dòng)生成。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript編寫,所以可運(yùn)行于任何支持JavaScript的瀏覽器上,包括IE、Mozilla Firefox、Chrome、Safari等。Selenium測試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。
測試方法:白盒測試、黑盒測試、單元測試、集成測試。
4 大數(shù)據(jù)思維
大數(shù)據(jù)實(shí)際上是營銷的科學(xué)導(dǎo)向的自然演化。大數(shù)據(jù)思維有3個(gè)緯度:定量思維、相關(guān)思維、實(shí)驗(yàn)思維[4]。第一,定量思維,即提供更多描述性的信息,其原則是一切皆可測?;胤N植,從種子育苗、種植、成長、開花、掛果和采摘等客觀標(biāo)準(zhǔn)可以形成大數(shù)據(jù),各節(jié)段都可以測得,大數(shù)據(jù)包含了與種植行為有關(guān)的方方面面;第二,相關(guān)思維,一切皆可聯(lián),種植節(jié)段不同數(shù)據(jù)都有內(nèi)在聯(lián)系。以據(jù)農(nóng)業(yè)科學(xué),以及自然成熟規(guī)律,這可以用來預(yù)測未來情況;第三,實(shí)驗(yàn)思維,一切皆可試,大數(shù)據(jù)所帶來的信息可以幫助科學(xué)的發(fā)展。大數(shù)據(jù)運(yùn)用的3個(gè)遞進(jìn)層次:首先是描述,然后是預(yù)測,最后產(chǎn)生攻略。
參考文獻(xiàn)
[1]莫麗麗.基于云存儲(chǔ)的農(nóng)業(yè)虛擬服務(wù)平臺(tái)架構(gòu)[J].計(jì)算機(jī)時(shí)代,2013(8):5-8
[2]吳華瑞,孫想,趙春江.農(nóng)業(yè)數(shù)據(jù)網(wǎng)格化體系研究[J].農(nóng)業(yè)工程學(xué)報(bào),2006,22(11):137-139
[3]張鳳霞,吳華瑞,楊寶祝.基于構(gòu)件網(wǎng)格的農(nóng)業(yè)專家系統(tǒng)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(3):924-927
[4]梅立軍,付小龍,劉啟新,等.基于SOA 的數(shù)據(jù)交換平臺(tái)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(19):3601-3627
[5]李曉東,楊揚(yáng),郭文彩.基于企業(yè)服務(wù)總線的數(shù)據(jù)共享與交換平臺(tái)[J].計(jì)算機(jī)工程,2006,32(21):217-223
(責(zé)任編輯:劉昀)