陳爭(zhēng)光+王德福
摘要:農(nóng)場(chǎng)科技通平臺(tái)是農(nóng)場(chǎng)信息化建設(shè)的重要組成部分。系統(tǒng)基于ASP.NET技術(shù)開發(fā),以SQL Server 2005作為數(shù)據(jù)庫(kù),主要實(shí)現(xiàn)了科技信息、地塊數(shù)據(jù)、視頻培訓(xùn)等功能模塊,并將這些模塊和短信收發(fā)功能進(jìn)行集成。在軟件結(jié)構(gòu)方面采用三層架構(gòu)開發(fā),提高了系統(tǒng)的開發(fā)效率和后期的可維護(hù)性。在安全性方面對(duì)系統(tǒng)用戶進(jìn)行分角色管理,提高了系統(tǒng)的安全性。
關(guān)鍵詞:信息系統(tǒng);農(nóng)場(chǎng);ASP.NET;三層架構(gòu);短信收發(fā);系統(tǒng)安全
中圖分類號(hào):TP391;S126 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):0439-8114(2014)03-0686-04
近年來,通過實(shí)施“金農(nóng)工程”、“三網(wǎng)合一”等重大工程,中國(guó)農(nóng)業(yè)、農(nóng)村信息化水平明顯提高,越來越多的農(nóng)民過上了“數(shù)字生活”[1],隨著信息技術(shù)在農(nóng)村的迅猛發(fā)展和農(nóng)村網(wǎng)絡(luò)基礎(chǔ)設(shè)施建設(shè)的不斷推進(jìn),99%的鄉(xiāng)鎮(zhèn)能上互聯(lián)網(wǎng),基本實(shí)現(xiàn)了鄉(xiāng)鄉(xiāng)有網(wǎng)絡(luò)[2]。計(jì)算機(jī)網(wǎng)絡(luò)在農(nóng)業(yè)生產(chǎn)的各個(gè)環(huán)節(jié)起著越來越重要的作用,農(nóng)民也越來越多地依賴于計(jì)算機(jī)網(wǎng)絡(luò)獲取農(nóng)業(yè)生產(chǎn)信息。
應(yīng)黑龍江農(nóng)墾總局某農(nóng)場(chǎng)的要求,開發(fā)基于Web的農(nóng)場(chǎng)科技通平臺(tái),將計(jì)算機(jī)網(wǎng)絡(luò)和手機(jī)網(wǎng)絡(luò)進(jìn)行資源整合,實(shí)現(xiàn)農(nóng)業(yè)生產(chǎn)信息(市場(chǎng)信息、農(nóng)時(shí)信息、天氣信息、病蟲害信息等)的快速傳遞,為農(nóng)業(yè)高產(chǎn)穩(wěn)產(chǎn)提供信息支持。系統(tǒng)采用B/S的體系結(jié)構(gòu),以ASP.NET技術(shù)為主,結(jié)合AJAX技術(shù),采用SQL Server 2005存儲(chǔ)和管理數(shù)據(jù),并利用其數(shù)據(jù)挖掘功能,開發(fā)一個(gè)農(nóng)業(yè)信息管理系統(tǒng)以便準(zhǔn)確快速地集中、分析、管理相關(guān)信息,幫助農(nóng)業(yè)生產(chǎn)者和管理者更好地管理農(nóng)業(yè)生產(chǎn)信息,為農(nóng)業(yè)生產(chǎn)提供信息和技術(shù)支持。
1 系統(tǒng)功能
開發(fā)一個(gè)基于Web和GSM短信服務(wù)的農(nóng)村科技服務(wù)信息系統(tǒng),用于指導(dǎo)農(nóng)場(chǎng)農(nóng)業(yè)生產(chǎn)。該信息系統(tǒng)要求具有以下8個(gè)方面的功能。
1)建立農(nóng)業(yè)數(shù)據(jù)庫(kù)框架。農(nóng)業(yè)數(shù)據(jù)庫(kù)內(nèi)容包括:農(nóng)場(chǎng)主要農(nóng)業(yè)生產(chǎn)技術(shù)、農(nóng)場(chǎng)主要農(nóng)業(yè)政策法規(guī)、農(nóng)場(chǎng)農(nóng)業(yè)質(zhì)量標(biāo)準(zhǔn)、常規(guī)生產(chǎn)資料信息、農(nóng)場(chǎng)農(nóng)業(yè)科技人才信息庫(kù)、農(nóng)場(chǎng)農(nóng)業(yè)科技項(xiàng)目、農(nóng)場(chǎng)畜牧養(yǎng)殖技術(shù)規(guī)程等。
2)農(nóng)業(yè)專家智能咨詢系統(tǒng)。針對(duì)農(nóng)場(chǎng)三大農(nóng)作物(水稻、玉米、大豆)實(shí)現(xiàn)專家級(jí)咨詢,用戶可以通過多種方式搜索病蟲害信息,系統(tǒng)給出較為準(zhǔn)確的病蟲害防治措施和建議。
3)科技信息系統(tǒng)。發(fā)布最新的農(nóng)時(shí)、農(nóng)情、農(nóng)業(yè)生產(chǎn)信息、農(nóng)業(yè)科技信息、農(nóng)作物病蟲害信息、天氣信息、市場(chǎng)行情信息等。
4)網(wǎng)上視頻培訓(xùn)系統(tǒng)。將農(nóng)事生產(chǎn)視頻錄像存放在服務(wù)器上,供科技人員或農(nóng)戶下載觀看、學(xué)習(xí),提高農(nóng)民的生產(chǎn)技術(shù)水平。
5)地塊數(shù)據(jù)查詢。農(nóng)業(yè)部已經(jīng)在全國(guó)范圍內(nèi)進(jìn)行了為期3年的測(cè)土配方施肥項(xiàng)目,增產(chǎn)效果非常明顯。2010年農(nóng)業(yè)部準(zhǔn)備在全國(guó)范圍內(nèi)繼續(xù)進(jìn)行測(cè)土配方施肥項(xiàng)目[3]。為配合農(nóng)業(yè)部此項(xiàng)工作的開展以及農(nóng)民的實(shí)際需求,系統(tǒng)中存儲(chǔ)了多年的測(cè)土配方施肥信息,系統(tǒng)可以根據(jù)農(nóng)民的需求,及時(shí)高效地查詢耕地測(cè)土信息,方便農(nóng)戶及時(shí)調(diào)整配方施肥方案。
6)短信收發(fā)功能。系統(tǒng)能實(shí)現(xiàn)短信收發(fā)功能,并且將此項(xiàng)功能與其他功能,如科技信息系統(tǒng)等進(jìn)行整合,實(shí)現(xiàn)這些信息的短信方式傳遞。
7)系統(tǒng)安全要求。系統(tǒng)對(duì)于大部分的信息搜索和瀏覽沒有權(quán)限控制,但是對(duì)于數(shù)據(jù)表的插入、修改和刪除等操作需要相應(yīng)的權(quán)限。系統(tǒng)用戶管理是系統(tǒng)安全運(yùn)行的一個(gè)重要方面。
8)系統(tǒng)管理功能。對(duì)系統(tǒng)用戶進(jìn)行權(quán)限分配以及各個(gè)功能模塊數(shù)據(jù)的插入、修改和刪除等。
以上8個(gè)方面的功能中,部分功能需求實(shí)際上屬于內(nèi)容管理[4,5]的范疇,該系統(tǒng)采用面向?qū)ο蟮脑O(shè)計(jì)方法,在實(shí)現(xiàn)過程中采用三層架構(gòu)[6-8]。系統(tǒng)著眼于實(shí)現(xiàn)農(nóng)場(chǎng)信息化的長(zhǎng)遠(yuǎn)目標(biāo),依據(jù)目前農(nóng)場(chǎng)信息化的要求作出規(guī)劃和部署。系統(tǒng)整體結(jié)構(gòu)如圖1。下面重點(diǎn)介紹短信收發(fā)和系統(tǒng)安全等方面的設(shè)計(jì)。
2 短信收發(fā)設(shè)計(jì)
短信收發(fā)功能主要實(shí)現(xiàn)手機(jī)用戶和網(wǎng)站系統(tǒng)之間的互動(dòng)。最常見的基于Web的短信收發(fā)系統(tǒng)結(jié)構(gòu)[9]如圖2所示。用戶既可使用計(jì)算機(jī)終端通過Internet或Intranet將信息通過SMS System發(fā)送給手機(jī)用戶,手機(jī)用戶也可以通過SMS System查詢Web站點(diǎn)內(nèi)容,進(jìn)而與計(jì)算機(jī)終端用戶之間交互。
計(jì)算機(jī)終端用戶將需要發(fā)送的信息通過網(wǎng)絡(luò)發(fā)送至Web服務(wù)器,Web服務(wù)器將短消息通過SMS System發(fā)送出去。不同的Web短信系統(tǒng),依據(jù)其SMS System的實(shí)現(xiàn)方式有所差別,常見的有兩種方式。
第一種方式是由專門的服務(wù)提供商提供SMS System程序接口或Web Service,用戶在繳納一定的費(fèi)用之后即可使用該SMS System,比如超博科技提供的二次開發(fā)接口;北京東時(shí)方科技有限公司提供Http和Web Service兩種接口[10,11]為用戶提供短信服務(wù)。
第二種方式是用戶自己架設(shè)SMS System,這時(shí)用戶需要購(gòu)買GSM Modem及開發(fā)專門的基于AT指令集的短信息收發(fā)軟件。
兩種方式各有利弊,第一種方式應(yīng)用簡(jiǎn)單,需要后期使用過程中的持續(xù)投入,由于SMS System不是自己的,因此使用起來靈活性稍差些。第二種方式前期投入較大,軟件開發(fā)工作量稍大些,但是系統(tǒng)后期的可擴(kuò)展性較靈活。用戶可以根據(jù)自身?xiàng)l件選擇其中一種方式。
農(nóng)場(chǎng)科技通系統(tǒng)采用的是第二種方式,為了簡(jiǎn)化短信收發(fā)模塊的開發(fā),系統(tǒng)采用基于數(shù)據(jù)庫(kù)的短信網(wǎng)關(guān)[12, 13]接口實(shí)現(xiàn)短信的收發(fā)。使用該接口時(shí),開發(fā)者只需要向數(shù)據(jù)庫(kù)中插入記錄即可。因此,會(huì)寫SQL語(yǔ)句就可以快速實(shí)現(xiàn)基于Web的SMS系統(tǒng),而且數(shù)據(jù)庫(kù)接口的最大好處是,系統(tǒng)對(duì)于程序員選擇什么樣的開發(fā)工具和語(yǔ)言沒有任何關(guān)系?;跀?shù)據(jù)庫(kù)接口的短信系統(tǒng)中有一個(gè)重要的數(shù)據(jù)表——待發(fā)短信表(表1)。
當(dāng)需要發(fā)送信息時(shí),只需要執(zhí)行SQL語(yǔ)句向OutBox表插入一條記錄即可。比如向手機(jī)號(hào)碼13999999999發(fā)送一條消息“Hello!”,執(zhí)行以下的SQL語(yǔ)句即可。
數(shù)據(jù)庫(kù)二次開發(fā)接口同時(shí)提供一個(gè)服務(wù)程序,該服務(wù)程序?qū)崟r(shí)監(jiān)視接口數(shù)據(jù)庫(kù),如果有新記錄插入OutBox表,服務(wù)程序立即通過GSM Modem將短信發(fā)出,并將該記錄轉(zhuǎn)入已發(fā)送短信表中存儲(chǔ)。
此外,基于數(shù)據(jù)接口的短信服務(wù)程序?qū)⑹盏降亩绦糯嫒朊麨镮nBox的表中,開發(fā)者可以編寫程序定期掃描該表的記錄,并根據(jù)記錄內(nèi)容做出不同的處理,從而實(shí)現(xiàn)手機(jī)用戶和系統(tǒng)之間的交互。
3 系統(tǒng)安全設(shè)計(jì)
每一個(gè)完善的網(wǎng)站管理系統(tǒng)都應(yīng)該包括用戶管理、角色管理、用戶注冊(cè)、密碼修改、用戶登錄、身份驗(yàn)證等安全功能。從ASP.NET 2.0開始,微軟為軟件開發(fā)者提供了成套的成員資格管理功能,并將其封裝成控件,給軟件開發(fā)人員帶來了諸多便利,減少了開發(fā)工作量,提高了開發(fā)效率。在自己的系統(tǒng)中使用.NET提供的成員資格管理功能需要做三個(gè)方面的工作。
1)生成存儲(chǔ)成員資格的數(shù)據(jù)庫(kù)。運(yùn)行Microsoft.NET 2.0提供的工具aspnet_regsql.exe即可生成存儲(chǔ)系統(tǒng)用戶和角色等信息的全部12個(gè)數(shù)據(jù)表,這12個(gè)表既可以直接生成在自己的數(shù)據(jù)庫(kù)中,也可以生成在默認(rèn)的獨(dú)立的數(shù)據(jù)庫(kù)中。
2)配置站點(diǎn)的web.config文件。主要配置內(nèi)容有成員資格數(shù)據(jù)庫(kù)連接串、成員資格提供程序、角色提供程序等。
3)添加初始用戶。通過開發(fā)工具Visual Studio.NET提供的“ASP.NET配置”功能可以很方便在成員資格數(shù)據(jù)庫(kù)中創(chuàng)建新用戶、新角色等?!癆SP.NET配置”功能只能在站點(diǎn)開發(fā)階段使用,如果在站點(diǎn)發(fā)布之后需要此項(xiàng)功能,則需要軟件開發(fā)人員實(shí)現(xiàn)獨(dú)立的用戶管理模塊。
.NET的成員資格提供程序提供基于角色的用戶權(quán)限管理[14,15],所謂角色,就是系統(tǒng)不同權(quán)限的集合?;诮巧挠脩艄芾硎紫葘⒉煌僮鳈?quán)限賦予角色,然后將用戶添加到某一角色,用戶就擁有該角色定義的權(quán)限。角色和用戶之間是多對(duì)多的關(guān)系,即一個(gè)用戶可以屬于多個(gè)角色,一個(gè)角色包含有多個(gè)用戶。用戶、角色及其關(guān)系在數(shù)據(jù)庫(kù)中對(duì)應(yīng)3個(gè)表,它們之間的關(guān)系如圖3所示,其中表aspnet_Users存儲(chǔ)用戶信息,表aspnet_Roles存儲(chǔ)角色信息,表aspnet_UsersInRoles存儲(chǔ)用戶和角色的關(guān)系,aspnet_UsersInRoles實(shí)際上是將用戶和角色之間多對(duì)多關(guān)系分解為兩個(gè)一對(duì)多關(guān)系:aspnet_Users和aspnet_UsersInRoles之間的一對(duì)多關(guān)系和aspnet_Roles和aspnet_UsersInRoles之間的一對(duì)多關(guān)系。
依據(jù)農(nóng)場(chǎng)用戶的需求,系統(tǒng)定義的角色有4個(gè),如表2所示。系統(tǒng)新注冊(cè)用戶默認(rèn)具有Users角色,系統(tǒng)管理員可以修改用戶的權(quán)限,即將某個(gè)用戶添加到某個(gè)角色或?qū)⒛硞€(gè)用戶移出某個(gè)角色,從而完成用戶權(quán)限的分配。系統(tǒng)實(shí)現(xiàn)了完善的用戶管理功能,方便管理員對(duì)系統(tǒng)用戶的管理。
4 系統(tǒng)特點(diǎn)
1)采用三層架構(gòu)。三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。分層次的目的是為了符合“高內(nèi)聚,低耦合”的思想。表現(xiàn)層(UI)用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。業(yè)務(wù)邏輯層(BLL)與系統(tǒng)所應(yīng)對(duì)的領(lǐng)域(Domain)邏輯有關(guān)。數(shù)據(jù)訪問層(DAL)的功能主要是負(fù)責(zé)數(shù)據(jù)訪問,其作用是屏蔽底層的數(shù)據(jù)庫(kù)差異,為其上層的數(shù)據(jù)庫(kù)操作提供統(tǒng)一的接口。三層架構(gòu)的最大優(yōu)點(diǎn)是降低了層與層之間的編譯依賴,有利于軟件的復(fù)用和各功能模塊的并行開發(fā)、有利于軟件的維護(hù),提高開發(fā)效率[8]。
2)采用Linq技術(shù)。在數(shù)據(jù)訪問層采用微軟的Linq技術(shù),簡(jiǎn)化了對(duì)數(shù)據(jù)庫(kù)的操作,同時(shí)Linq技術(shù)也強(qiáng)迫開發(fā)者采用分層的軟件開發(fā)技術(shù)。
3)提供了大量的客戶端驗(yàn)證。對(duì)于用戶的錯(cuò)誤輸出能做出很快的反應(yīng),程序的容錯(cuò)性能非常高。
4)AJAX技術(shù)的使用。提高了程序的用戶體驗(yàn)。
5)使用SQL Server的全文檢索功能。可以在諸如text、varchar等類型的字段中進(jìn)行檢索,使用戶檢索過程更加方便、簡(jiǎn)潔,搜索結(jié)果更加準(zhǔn)確。
5 結(jié)語(yǔ)
系統(tǒng)使用微軟.Net Framework 3.5技術(shù),將Web技術(shù)和數(shù)據(jù)庫(kù)技術(shù)應(yīng)用于農(nóng)場(chǎng)生產(chǎn)相關(guān)信息的組織和管理,并和基于Web的短信技術(shù)進(jìn)行集成,提高了信息的傳輸速度和效率,有效地為農(nóng)場(chǎng)生產(chǎn)服務(wù),這也是農(nóng)墾信息化的體現(xiàn)。系統(tǒng)在實(shí)際應(yīng)用中取得了良好的效果。
參考文獻(xiàn):
[1] 李道亮.中國(guó)農(nóng)村信息化發(fā)展報(bào)告(2008)[J].中國(guó)信息界,2009(增刊):72-84.
[2] 農(nóng)業(yè)部.中國(guó)99%的鄉(xiāng)鎮(zhèn)能上網(wǎng) 每戶有一部手機(jī)[EB/OL]. http://media.people.com.cn/GB/40606/13597263.html,2010-12-28.
[3] 農(nóng)業(yè)部辦公廳. 農(nóng)業(yè)部印發(fā)2010年測(cè)土配方施肥普及行動(dòng)工作方案[EB/OL]. http://www.gov.cn/gzdt/2010-02/20/content_ 1537199.htm,2010-02-20.
[4] 夏純中. 輕量級(jí)企業(yè)內(nèi)容管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2007,28(17):4233-4236.
[5] 滿 坤,齊開悅,陳劍波.Web 2.0內(nèi)容管理系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(1):207-209.
[6] 周雙娥,李其鋒.基于ASP.NET技術(shù)的管理信息系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2007,35(3):193-196.
[7] 陳友良,盛可軍,王陽(yáng)陽(yáng).基于ASP.NET三層結(jié)構(gòu)軟件的研究與開發(fā)[J].現(xiàn)代電子技術(shù),2010,33(6):58-60.
[8] 陳爭(zhēng)光,徐海燕.基于.NET的三層結(jié)構(gòu)在大豆專家系統(tǒng)中的應(yīng)用[J].黑龍江農(nóng)業(yè)科學(xué),2009(4):135-137.
[9] 劉 欣,劉 兵.基于短信收發(fā)的信息管理系統(tǒng)開發(fā)方法研究[J].艦船電子工程,2009,29(6):109-112.
[10] 楊傳舜,李明祿.安全的基于Web服務(wù)的短信服務(wù)平臺(tái)的構(gòu)建[J].計(jì)算機(jī)工程,2004,30(增刊):636-639.
[11] 東時(shí)方.短信接口[EB/OL]. http://www.xhsms.com/jiekou.aspx,2013-06-28.
[12] 謝長(zhǎng)生,蘭 嵐.短信網(wǎng)關(guān)通信模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(6):865-868.
[13] 馬 慧,陳陽(yáng)平,謝 強(qiáng).基于GSM Modem 終端的短信系統(tǒng)研究與實(shí)現(xiàn)[J].中國(guó)制造業(yè)信息化,2008,37(11):10-15.
[14] 徐 啟,劉清欣,張相州.基于角色的用戶權(quán)限管理方法的設(shè)計(jì)與實(shí)現(xiàn)[J].華北水利水電學(xué)院學(xué)報(bào),2005,26(4):28-30.
[15] 覃章榮,王 強(qiáng),歐鑌進(jìn),等.基于角色的權(quán)限管理方法的改進(jìn)與應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(6):1282-1284.
數(shù)據(jù)庫(kù)二次開發(fā)接口同時(shí)提供一個(gè)服務(wù)程序,該服務(wù)程序?qū)崟r(shí)監(jiān)視接口數(shù)據(jù)庫(kù),如果有新記錄插入OutBox表,服務(wù)程序立即通過GSM Modem將短信發(fā)出,并將該記錄轉(zhuǎn)入已發(fā)送短信表中存儲(chǔ)。
此外,基于數(shù)據(jù)接口的短信服務(wù)程序?qū)⑹盏降亩绦糯嫒朊麨镮nBox的表中,開發(fā)者可以編寫程序定期掃描該表的記錄,并根據(jù)記錄內(nèi)容做出不同的處理,從而實(shí)現(xiàn)手機(jī)用戶和系統(tǒng)之間的交互。
3 系統(tǒng)安全設(shè)計(jì)
每一個(gè)完善的網(wǎng)站管理系統(tǒng)都應(yīng)該包括用戶管理、角色管理、用戶注冊(cè)、密碼修改、用戶登錄、身份驗(yàn)證等安全功能。從ASP.NET 2.0開始,微軟為軟件開發(fā)者提供了成套的成員資格管理功能,并將其封裝成控件,給軟件開發(fā)人員帶來了諸多便利,減少了開發(fā)工作量,提高了開發(fā)效率。在自己的系統(tǒng)中使用.NET提供的成員資格管理功能需要做三個(gè)方面的工作。
1)生成存儲(chǔ)成員資格的數(shù)據(jù)庫(kù)。運(yùn)行Microsoft.NET 2.0提供的工具aspnet_regsql.exe即可生成存儲(chǔ)系統(tǒng)用戶和角色等信息的全部12個(gè)數(shù)據(jù)表,這12個(gè)表既可以直接生成在自己的數(shù)據(jù)庫(kù)中,也可以生成在默認(rèn)的獨(dú)立的數(shù)據(jù)庫(kù)中。
2)配置站點(diǎn)的web.config文件。主要配置內(nèi)容有成員資格數(shù)據(jù)庫(kù)連接串、成員資格提供程序、角色提供程序等。
3)添加初始用戶。通過開發(fā)工具Visual Studio.NET提供的“ASP.NET配置”功能可以很方便在成員資格數(shù)據(jù)庫(kù)中創(chuàng)建新用戶、新角色等。“ASP.NET配置”功能只能在站點(diǎn)開發(fā)階段使用,如果在站點(diǎn)發(fā)布之后需要此項(xiàng)功能,則需要軟件開發(fā)人員實(shí)現(xiàn)獨(dú)立的用戶管理模塊。
.NET的成員資格提供程序提供基于角色的用戶權(quán)限管理[14,15],所謂角色,就是系統(tǒng)不同權(quán)限的集合?;诮巧挠脩艄芾硎紫葘⒉煌僮鳈?quán)限賦予角色,然后將用戶添加到某一角色,用戶就擁有該角色定義的權(quán)限。角色和用戶之間是多對(duì)多的關(guān)系,即一個(gè)用戶可以屬于多個(gè)角色,一個(gè)角色包含有多個(gè)用戶。用戶、角色及其關(guān)系在數(shù)據(jù)庫(kù)中對(duì)應(yīng)3個(gè)表,它們之間的關(guān)系如圖3所示,其中表aspnet_Users存儲(chǔ)用戶信息,表aspnet_Roles存儲(chǔ)角色信息,表aspnet_UsersInRoles存儲(chǔ)用戶和角色的關(guān)系,aspnet_UsersInRoles實(shí)際上是將用戶和角色之間多對(duì)多關(guān)系分解為兩個(gè)一對(duì)多關(guān)系:aspnet_Users和aspnet_UsersInRoles之間的一對(duì)多關(guān)系和aspnet_Roles和aspnet_UsersInRoles之間的一對(duì)多關(guān)系。
依據(jù)農(nóng)場(chǎng)用戶的需求,系統(tǒng)定義的角色有4個(gè),如表2所示。系統(tǒng)新注冊(cè)用戶默認(rèn)具有Users角色,系統(tǒng)管理員可以修改用戶的權(quán)限,即將某個(gè)用戶添加到某個(gè)角色或?qū)⒛硞€(gè)用戶移出某個(gè)角色,從而完成用戶權(quán)限的分配。系統(tǒng)實(shí)現(xiàn)了完善的用戶管理功能,方便管理員對(duì)系統(tǒng)用戶的管理。
4 系統(tǒng)特點(diǎn)
1)采用三層架構(gòu)。三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。分層次的目的是為了符合“高內(nèi)聚,低耦合”的思想。表現(xiàn)層(UI)用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。業(yè)務(wù)邏輯層(BLL)與系統(tǒng)所應(yīng)對(duì)的領(lǐng)域(Domain)邏輯有關(guān)。數(shù)據(jù)訪問層(DAL)的功能主要是負(fù)責(zé)數(shù)據(jù)訪問,其作用是屏蔽底層的數(shù)據(jù)庫(kù)差異,為其上層的數(shù)據(jù)庫(kù)操作提供統(tǒng)一的接口。三層架構(gòu)的最大優(yōu)點(diǎn)是降低了層與層之間的編譯依賴,有利于軟件的復(fù)用和各功能模塊的并行開發(fā)、有利于軟件的維護(hù),提高開發(fā)效率[8]。
2)采用Linq技術(shù)。在數(shù)據(jù)訪問層采用微軟的Linq技術(shù),簡(jiǎn)化了對(duì)數(shù)據(jù)庫(kù)的操作,同時(shí)Linq技術(shù)也強(qiáng)迫開發(fā)者采用分層的軟件開發(fā)技術(shù)。
3)提供了大量的客戶端驗(yàn)證。對(duì)于用戶的錯(cuò)誤輸出能做出很快的反應(yīng),程序的容錯(cuò)性能非常高。
4)AJAX技術(shù)的使用。提高了程序的用戶體驗(yàn)。
5)使用SQL Server的全文檢索功能。可以在諸如text、varchar等類型的字段中進(jìn)行檢索,使用戶檢索過程更加方便、簡(jiǎn)潔,搜索結(jié)果更加準(zhǔn)確。
5 結(jié)語(yǔ)
系統(tǒng)使用微軟.Net Framework 3.5技術(shù),將Web技術(shù)和數(shù)據(jù)庫(kù)技術(shù)應(yīng)用于農(nóng)場(chǎng)生產(chǎn)相關(guān)信息的組織和管理,并和基于Web的短信技術(shù)進(jìn)行集成,提高了信息的傳輸速度和效率,有效地為農(nóng)場(chǎng)生產(chǎn)服務(wù),這也是農(nóng)墾信息化的體現(xiàn)。系統(tǒng)在實(shí)際應(yīng)用中取得了良好的效果。
參考文獻(xiàn):
[1] 李道亮.中國(guó)農(nóng)村信息化發(fā)展報(bào)告(2008)[J].中國(guó)信息界,2009(增刊):72-84.
[2] 農(nóng)業(yè)部.中國(guó)99%的鄉(xiāng)鎮(zhèn)能上網(wǎng) 每戶有一部手機(jī)[EB/OL]. http://media.people.com.cn/GB/40606/13597263.html,2010-12-28.
[3] 農(nóng)業(yè)部辦公廳. 農(nóng)業(yè)部印發(fā)2010年測(cè)土配方施肥普及行動(dòng)工作方案[EB/OL]. http://www.gov.cn/gzdt/2010-02/20/content_ 1537199.htm,2010-02-20.
[4] 夏純中. 輕量級(jí)企業(yè)內(nèi)容管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2007,28(17):4233-4236.
[5] 滿 坤,齊開悅,陳劍波.Web 2.0內(nèi)容管理系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(1):207-209.
[6] 周雙娥,李其鋒.基于ASP.NET技術(shù)的管理信息系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2007,35(3):193-196.
[7] 陳友良,盛可軍,王陽(yáng)陽(yáng).基于ASP.NET三層結(jié)構(gòu)軟件的研究與開發(fā)[J].現(xiàn)代電子技術(shù),2010,33(6):58-60.
[8] 陳爭(zhēng)光,徐海燕.基于.NET的三層結(jié)構(gòu)在大豆專家系統(tǒng)中的應(yīng)用[J].黑龍江農(nóng)業(yè)科學(xué),2009(4):135-137.
[9] 劉 欣,劉 兵.基于短信收發(fā)的信息管理系統(tǒng)開發(fā)方法研究[J].艦船電子工程,2009,29(6):109-112.
[10] 楊傳舜,李明祿.安全的基于Web服務(wù)的短信服務(wù)平臺(tái)的構(gòu)建[J].計(jì)算機(jī)工程,2004,30(增刊):636-639.
[11] 東時(shí)方.短信接口[EB/OL]. http://www.xhsms.com/jiekou.aspx,2013-06-28.
[12] 謝長(zhǎng)生,蘭 嵐.短信網(wǎng)關(guān)通信模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(6):865-868.
[13] 馬 慧,陳陽(yáng)平,謝 強(qiáng).基于GSM Modem 終端的短信系統(tǒng)研究與實(shí)現(xiàn)[J].中國(guó)制造業(yè)信息化,2008,37(11):10-15.
[14] 徐 啟,劉清欣,張相州.基于角色的用戶權(quán)限管理方法的設(shè)計(jì)與實(shí)現(xiàn)[J].華北水利水電學(xué)院學(xué)報(bào),2005,26(4):28-30.
[15] 覃章榮,王 強(qiáng),歐鑌進(jìn),等.基于角色的權(quán)限管理方法的改進(jìn)與應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(6):1282-1284.
數(shù)據(jù)庫(kù)二次開發(fā)接口同時(shí)提供一個(gè)服務(wù)程序,該服務(wù)程序?qū)崟r(shí)監(jiān)視接口數(shù)據(jù)庫(kù),如果有新記錄插入OutBox表,服務(wù)程序立即通過GSM Modem將短信發(fā)出,并將該記錄轉(zhuǎn)入已發(fā)送短信表中存儲(chǔ)。
此外,基于數(shù)據(jù)接口的短信服務(wù)程序?qū)⑹盏降亩绦糯嫒朊麨镮nBox的表中,開發(fā)者可以編寫程序定期掃描該表的記錄,并根據(jù)記錄內(nèi)容做出不同的處理,從而實(shí)現(xiàn)手機(jī)用戶和系統(tǒng)之間的交互。
3 系統(tǒng)安全設(shè)計(jì)
每一個(gè)完善的網(wǎng)站管理系統(tǒng)都應(yīng)該包括用戶管理、角色管理、用戶注冊(cè)、密碼修改、用戶登錄、身份驗(yàn)證等安全功能。從ASP.NET 2.0開始,微軟為軟件開發(fā)者提供了成套的成員資格管理功能,并將其封裝成控件,給軟件開發(fā)人員帶來了諸多便利,減少了開發(fā)工作量,提高了開發(fā)效率。在自己的系統(tǒng)中使用.NET提供的成員資格管理功能需要做三個(gè)方面的工作。
1)生成存儲(chǔ)成員資格的數(shù)據(jù)庫(kù)。運(yùn)行Microsoft.NET 2.0提供的工具aspnet_regsql.exe即可生成存儲(chǔ)系統(tǒng)用戶和角色等信息的全部12個(gè)數(shù)據(jù)表,這12個(gè)表既可以直接生成在自己的數(shù)據(jù)庫(kù)中,也可以生成在默認(rèn)的獨(dú)立的數(shù)據(jù)庫(kù)中。
2)配置站點(diǎn)的web.config文件。主要配置內(nèi)容有成員資格數(shù)據(jù)庫(kù)連接串、成員資格提供程序、角色提供程序等。
3)添加初始用戶。通過開發(fā)工具Visual Studio.NET提供的“ASP.NET配置”功能可以很方便在成員資格數(shù)據(jù)庫(kù)中創(chuàng)建新用戶、新角色等?!癆SP.NET配置”功能只能在站點(diǎn)開發(fā)階段使用,如果在站點(diǎn)發(fā)布之后需要此項(xiàng)功能,則需要軟件開發(fā)人員實(shí)現(xiàn)獨(dú)立的用戶管理模塊。
.NET的成員資格提供程序提供基于角色的用戶權(quán)限管理[14,15],所謂角色,就是系統(tǒng)不同權(quán)限的集合?;诮巧挠脩艄芾硎紫葘⒉煌僮鳈?quán)限賦予角色,然后將用戶添加到某一角色,用戶就擁有該角色定義的權(quán)限。角色和用戶之間是多對(duì)多的關(guān)系,即一個(gè)用戶可以屬于多個(gè)角色,一個(gè)角色包含有多個(gè)用戶。用戶、角色及其關(guān)系在數(shù)據(jù)庫(kù)中對(duì)應(yīng)3個(gè)表,它們之間的關(guān)系如圖3所示,其中表aspnet_Users存儲(chǔ)用戶信息,表aspnet_Roles存儲(chǔ)角色信息,表aspnet_UsersInRoles存儲(chǔ)用戶和角色的關(guān)系,aspnet_UsersInRoles實(shí)際上是將用戶和角色之間多對(duì)多關(guān)系分解為兩個(gè)一對(duì)多關(guān)系:aspnet_Users和aspnet_UsersInRoles之間的一對(duì)多關(guān)系和aspnet_Roles和aspnet_UsersInRoles之間的一對(duì)多關(guān)系。
依據(jù)農(nóng)場(chǎng)用戶的需求,系統(tǒng)定義的角色有4個(gè),如表2所示。系統(tǒng)新注冊(cè)用戶默認(rèn)具有Users角色,系統(tǒng)管理員可以修改用戶的權(quán)限,即將某個(gè)用戶添加到某個(gè)角色或?qū)⒛硞€(gè)用戶移出某個(gè)角色,從而完成用戶權(quán)限的分配。系統(tǒng)實(shí)現(xiàn)了完善的用戶管理功能,方便管理員對(duì)系統(tǒng)用戶的管理。
4 系統(tǒng)特點(diǎn)
1)采用三層架構(gòu)。三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。分層次的目的是為了符合“高內(nèi)聚,低耦合”的思想。表現(xiàn)層(UI)用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。業(yè)務(wù)邏輯層(BLL)與系統(tǒng)所應(yīng)對(duì)的領(lǐng)域(Domain)邏輯有關(guān)。數(shù)據(jù)訪問層(DAL)的功能主要是負(fù)責(zé)數(shù)據(jù)訪問,其作用是屏蔽底層的數(shù)據(jù)庫(kù)差異,為其上層的數(shù)據(jù)庫(kù)操作提供統(tǒng)一的接口。三層架構(gòu)的最大優(yōu)點(diǎn)是降低了層與層之間的編譯依賴,有利于軟件的復(fù)用和各功能模塊的并行開發(fā)、有利于軟件的維護(hù),提高開發(fā)效率[8]。
2)采用Linq技術(shù)。在數(shù)據(jù)訪問層采用微軟的Linq技術(shù),簡(jiǎn)化了對(duì)數(shù)據(jù)庫(kù)的操作,同時(shí)Linq技術(shù)也強(qiáng)迫開發(fā)者采用分層的軟件開發(fā)技術(shù)。
3)提供了大量的客戶端驗(yàn)證。對(duì)于用戶的錯(cuò)誤輸出能做出很快的反應(yīng),程序的容錯(cuò)性能非常高。
4)AJAX技術(shù)的使用。提高了程序的用戶體驗(yàn)。
5)使用SQL Server的全文檢索功能??梢栽谥T如text、varchar等類型的字段中進(jìn)行檢索,使用戶檢索過程更加方便、簡(jiǎn)潔,搜索結(jié)果更加準(zhǔn)確。
5 結(jié)語(yǔ)
系統(tǒng)使用微軟.Net Framework 3.5技術(shù),將Web技術(shù)和數(shù)據(jù)庫(kù)技術(shù)應(yīng)用于農(nóng)場(chǎng)生產(chǎn)相關(guān)信息的組織和管理,并和基于Web的短信技術(shù)進(jìn)行集成,提高了信息的傳輸速度和效率,有效地為農(nóng)場(chǎng)生產(chǎn)服務(wù),這也是農(nóng)墾信息化的體現(xiàn)。系統(tǒng)在實(shí)際應(yīng)用中取得了良好的效果。
參考文獻(xiàn):
[1] 李道亮.中國(guó)農(nóng)村信息化發(fā)展報(bào)告(2008)[J].中國(guó)信息界,2009(增刊):72-84.
[2] 農(nóng)業(yè)部.中國(guó)99%的鄉(xiāng)鎮(zhèn)能上網(wǎng) 每戶有一部手機(jī)[EB/OL]. http://media.people.com.cn/GB/40606/13597263.html,2010-12-28.
[3] 農(nóng)業(yè)部辦公廳. 農(nóng)業(yè)部印發(fā)2010年測(cè)土配方施肥普及行動(dòng)工作方案[EB/OL]. http://www.gov.cn/gzdt/2010-02/20/content_ 1537199.htm,2010-02-20.
[4] 夏純中. 輕量級(jí)企業(yè)內(nèi)容管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2007,28(17):4233-4236.
[5] 滿 坤,齊開悅,陳劍波.Web 2.0內(nèi)容管理系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(1):207-209.
[6] 周雙娥,李其鋒.基于ASP.NET技術(shù)的管理信息系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2007,35(3):193-196.
[7] 陳友良,盛可軍,王陽(yáng)陽(yáng).基于ASP.NET三層結(jié)構(gòu)軟件的研究與開發(fā)[J].現(xiàn)代電子技術(shù),2010,33(6):58-60.
[8] 陳爭(zhēng)光,徐海燕.基于.NET的三層結(jié)構(gòu)在大豆專家系統(tǒng)中的應(yīng)用[J].黑龍江農(nóng)業(yè)科學(xué),2009(4):135-137.
[9] 劉 欣,劉 兵.基于短信收發(fā)的信息管理系統(tǒng)開發(fā)方法研究[J].艦船電子工程,2009,29(6):109-112.
[10] 楊傳舜,李明祿.安全的基于Web服務(wù)的短信服務(wù)平臺(tái)的構(gòu)建[J].計(jì)算機(jī)工程,2004,30(增刊):636-639.
[11] 東時(shí)方.短信接口[EB/OL]. http://www.xhsms.com/jiekou.aspx,2013-06-28.
[12] 謝長(zhǎng)生,蘭 嵐.短信網(wǎng)關(guān)通信模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(6):865-868.
[13] 馬 慧,陳陽(yáng)平,謝 強(qiáng).基于GSM Modem 終端的短信系統(tǒng)研究與實(shí)現(xiàn)[J].中國(guó)制造業(yè)信息化,2008,37(11):10-15.
[14] 徐 啟,劉清欣,張相州.基于角色的用戶權(quán)限管理方法的設(shè)計(jì)與實(shí)現(xiàn)[J].華北水利水電學(xué)院學(xué)報(bào),2005,26(4):28-30.
[15] 覃章榮,王 強(qiáng),歐鑌進(jìn),等.基于角色的權(quán)限管理方法的改進(jìn)與應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(6):1282-1284.