摘 要:本文結(jié)合我國(guó)各大水庫(kù)群的基本情況,對(duì)當(dāng)前水庫(kù)群管理手段進(jìn)行研究,深入分析了水庫(kù)群信息管理系統(tǒng)的功能需求,最后從數(shù)據(jù)庫(kù)設(shè)計(jì)、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、軟件架構(gòu)以及系統(tǒng)開(kāi)發(fā)平臺(tái)及語(yǔ)言等方面進(jìn)行系統(tǒng)具體實(shí)現(xiàn)?;贑/S軟件設(shè)計(jì)模式開(kāi)發(fā)了一套水庫(kù)群信息管理系統(tǒng),本系統(tǒng)的研發(fā)不僅可以提高我國(guó)對(duì)水庫(kù)群的管理效率與防洪預(yù)測(cè)能力,同時(shí)還有利于提高水庫(kù)群的生產(chǎn)效益。
關(guān)鍵詞:水庫(kù)群;信息管理系統(tǒng);數(shù)據(jù)庫(kù);網(wǎng)絡(luò)拓?fù)鋱D
中圖分類號(hào):TP311.52
基于C/S模式的水庫(kù)群信息管理系統(tǒng)是一個(gè)綜合性較強(qiáng)的管理系統(tǒng),該系統(tǒng)具有跨區(qū)域、跨流域等特點(diǎn)?;趯?duì)水庫(kù)群需求的分析,考慮到系統(tǒng)的軟件及硬件環(huán)境也較為復(fù)雜、用戶界面需要統(tǒng)一以及分布式等特點(diǎn),所以對(duì)其采用C/S模式進(jìn)行開(kāi)發(fā)是最佳選擇。
C/S開(kāi)發(fā)模式是一種分布式開(kāi)發(fā)模式,具有很好的通用性。從數(shù)據(jù)庫(kù)的角度來(lái)說(shuō),C/S開(kāi)發(fā)模式主要存在兩個(gè)部分。第一,客戶端(Client)主要負(fù)責(zé)數(shù)據(jù)顯示,包括數(shù)據(jù)的錄入、計(jì)算、打印等;第二,服務(wù)器端(Server)主要負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行操作與管理,包括數(shù)據(jù)的CRUD操作、管理、安全等。
1 系統(tǒng)功能分析
該系統(tǒng)主要有信息錄入、洪水監(jiān)測(cè)、調(diào)度處理、綜合分析、閘門(mén)控制、查詢顯示以及打印信息等子功能模塊構(gòu)成。其中,信息錄入模塊主要負(fù)責(zé)對(duì)原始數(shù)據(jù)進(jìn)行錄入,也可以從Excel文件導(dǎo)入;洪水監(jiān)測(cè)子模塊可以對(duì)上游以及下游水進(jìn)行洪水監(jiān)測(cè);調(diào)度處理主要負(fù)責(zé)對(duì)洪水預(yù)防與泄洪進(jìn)行綜合處理;綜合分析主要是從整體的角度對(duì)系統(tǒng)進(jìn)行控制與整合;閘門(mén)控制模塊主要負(fù)責(zé)對(duì)閘門(mén)進(jìn)行開(kāi)閉處理;查詢顯示子模塊主要負(fù)責(zé)對(duì)防洪、泄洪過(guò)程進(jìn)行實(shí)時(shí)監(jiān)控與處理;打印模塊主要負(fù)責(zé)對(duì)相關(guān)的表格及數(shù)據(jù)進(jìn)行打印與分析,具體結(jié)構(gòu)如圖1所示
2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
2.1 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)
國(guó)家水利局對(duì)水庫(kù)群信息管理系統(tǒng)有嚴(yán)格的要求,必須將系統(tǒng)的工作站、多媒體服務(wù)器、數(shù)據(jù)庫(kù)以及多媒體工作站安裝在高性能的交換機(jī)上。國(guó)家水利總局的管理基站將10000M的堆棧集線器組件局域網(wǎng)絡(luò),使用多條10000M寬帶線路連接到10000M的交換機(jī)上,配套使用2臺(tái)高性能服務(wù)器,其中一臺(tái)運(yùn)行SQLServer2005作為數(shù)據(jù)庫(kù)管理系統(tǒng),為了擴(kuò)展該服務(wù)器存儲(chǔ)數(shù)據(jù)的能力,還為該服務(wù)器外接了一臺(tái)獨(dú)立機(jī)器。剩下的一臺(tái)作為網(wǎng)絡(luò)服務(wù)器,該機(jī)器的目的主要是管理網(wǎng)絡(luò)通信以及系統(tǒng)共享數(shù)據(jù)和資源。
2.2 軟件配置
(1)網(wǎng)絡(luò)操作系統(tǒng)
水庫(kù)群信息管理系統(tǒng)的網(wǎng)絡(luò)操作系統(tǒng)使用的是Windows NT Server,該系統(tǒng)的優(yōu)點(diǎn)是運(yùn)行速度較快,并且系統(tǒng)較穩(wěn)定。后臺(tái)使用微軟開(kāi)發(fā)的SQLServer 2005作為數(shù)據(jù)庫(kù)管理系統(tǒng),該數(shù)據(jù)庫(kù)首先是免費(fèi)的,其次是功能強(qiáng)大。
Windows NT Server系統(tǒng)是一個(gè)專業(yè)的網(wǎng)絡(luò)操作系統(tǒng),該系統(tǒng)具有很多的用途。除此之外,該系統(tǒng)運(yùn)行速度快,具有很高的性能,同時(shí)也具有很強(qiáng)的安全性,可以保證水庫(kù)群信息管理系統(tǒng)的數(shù)據(jù)安全。使用該系統(tǒng)作為網(wǎng)絡(luò)操作系統(tǒng)最大的好處在于該系統(tǒng)支持多種網(wǎng)絡(luò)傳輸協(xié)議,這樣就可以提高系統(tǒng)的跨平臺(tái)性,使得子工作站的連接非常方便,并且有利于系統(tǒng)后期的擴(kuò)展與升級(jí)。
SQLServer 2005是目前常用的幾個(gè)主流數(shù)據(jù)庫(kù)廠商。由于該系統(tǒng)的網(wǎng)絡(luò)操作系統(tǒng)選用的是Windows NT Server,所以結(jié)合SQLServer 2005作為數(shù)據(jù)庫(kù)管理系統(tǒng),可以提高運(yùn)行效率,可以充分發(fā)揮二者之間的優(yōu)勢(shì)。SQLServer 2005與Windows NT Server結(jié)合之所以能夠發(fā)揮出巨大的優(yōu)勢(shì),主要原因有:
1)Windows NT Server與SQLServer 2005都是微軟公司的產(chǎn)品,具有很好的相互兼容性。
2)SQLServer 2005可以充分發(fā)揮硬件優(yōu)勢(shì),能夠支持硬件擴(kuò)展。
3)Windows NT Server與SQLServer 2005之間可以形成高性能的數(shù)據(jù)管理環(huán)節(jié),同時(shí)增強(qiáng)了數(shù)據(jù)的安全性與可維護(hù)性。
Windows NT Server網(wǎng)絡(luò)操作系統(tǒng)是美國(guó)國(guó)防部認(rèn)可的安全網(wǎng)絡(luò)操作系統(tǒng),完全符合美國(guó)國(guó)防部的C2安全標(biāo)準(zhǔn)。除此之外,由于SQLServer 2005與Windows NT Server的緊密聯(lián)系,可以實(shí)現(xiàn)多層次的數(shù)據(jù)加密處理,可以保證系統(tǒng)的安全性。由于SQLServer 2005本身具有數(shù)據(jù)備份與恢復(fù)的能力,所以使得水庫(kù)群信息管理系統(tǒng)具有良好的數(shù)據(jù)備份能力,可以防止意外帶來(lái)的系統(tǒng)數(shù)據(jù)損失。
(2)客戶端操作系統(tǒng)
水庫(kù)群信息管理系統(tǒng)客戶端的操作系統(tǒng)采用Windows XP,系統(tǒng)利用C++和Visual C++ 6.0進(jìn)行開(kāi)發(fā)。C++可以利用可視化控件進(jìn)行界面開(kāi)發(fā),同時(shí)可以利用ODBC進(jìn)行數(shù)據(jù)庫(kù)連接,C++通過(guò)ODBC可以連接SQLServer,SyBase,Oracle,DB2等數(shù)據(jù)庫(kù),為了滿足系統(tǒng)的性能要求,還提供了專用的數(shù)據(jù)庫(kù)接口,比如DB-Library可以直接與SQLServer 2005進(jìn)行連接。同時(shí)嵌入了SQL語(yǔ)句、存儲(chǔ)過(guò)程、光標(biāo)操作以及事務(wù)控制等。
C++還提供了Script語(yǔ)言,它是一種基于對(duì)象的高級(jí)程序設(shè)計(jì)語(yǔ)言,其設(shè)計(jì)模式與C語(yǔ)言相似,函數(shù)庫(kù)中內(nèi)置了上百種函數(shù),具有超強(qiáng)的業(yè)務(wù)處理、邏輯處理、數(shù)據(jù)處理等能力。同時(shí),C++語(yǔ)言具有豐富的空間以及相應(yīng)的事件觸發(fā)機(jī)制,提高了系統(tǒng)開(kāi)發(fā)效率,可以讓程序員集中精力進(jìn)行組件以及系統(tǒng)結(jié)構(gòu)開(kāi)發(fā)、數(shù)據(jù)庫(kù)設(shè)計(jì)等,這極大程度的降低了程序的開(kāi)發(fā)周期。
3 數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
水庫(kù)群信息管理系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖2所示。其基本的數(shù)據(jù)庫(kù)內(nèi)容包括以下五個(gè)方面。
第一類:固定數(shù)據(jù)庫(kù),即特征庫(kù)。該庫(kù)中的數(shù)據(jù)一般都相對(duì)固定,不需要擴(kuò)展或者延伸。其主要包括水庫(kù)、河段、下游、泄洪閘門(mén)以及流域等特征信息表、書(shū)庫(kù)特征參數(shù)表以及水庫(kù)常規(guī)調(diào)度表。
第二類:實(shí)時(shí)數(shù)據(jù)庫(kù),即動(dòng)態(tài)更新庫(kù)。該庫(kù)中數(shù)據(jù)是及時(shí)更新與變化的,一般都是通過(guò)自動(dòng)化系統(tǒng)導(dǎo)入的數(shù)據(jù)。主要包括氣象表、水位資料表、區(qū)間雨情氣象表、實(shí)測(cè)量表以及閘門(mén)狀態(tài)和大壩基礎(chǔ)數(shù)據(jù)等。
第三類:預(yù)報(bào)計(jì)劃數(shù)據(jù)庫(kù),即系統(tǒng)預(yù)測(cè)分析庫(kù)。該庫(kù)中的數(shù)據(jù)一般都是通過(guò)系統(tǒng)處理之后得出的結(jié)果數(shù)據(jù)。主要包括計(jì)劃、預(yù)測(cè)以及水庫(kù)優(yōu)化調(diào)度表等數(shù)據(jù)。該數(shù)據(jù)是整個(gè)水庫(kù)群信息管理系統(tǒng)的核心數(shù)據(jù)庫(kù)。
第四類:程序接口數(shù)據(jù)庫(kù),即為程序業(yè)務(wù)邏輯服務(wù)的庫(kù)。該庫(kù)主要根據(jù)系統(tǒng)的業(yè)務(wù)邏輯提供相應(yīng)的原始數(shù)據(jù)。該數(shù)據(jù)庫(kù)中還包含了打印輸出相關(guān)的數(shù)據(jù)。
第五類:名錄數(shù)據(jù)庫(kù),即系統(tǒng)特點(diǎn)名稱數(shù)據(jù)庫(kù)。該數(shù)據(jù)庫(kù)中保存了各個(gè)監(jiān)測(cè)點(diǎn)的監(jiān)測(cè)數(shù)據(jù)以及數(shù)據(jù)庫(kù)的名稱。
4 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
在水庫(kù)群信息管理系統(tǒng)中,服務(wù)器端安裝SQLServer 2005主要可以對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行定義與存儲(chǔ),然后可以實(shí)現(xiàn)系統(tǒng)的安全加密、數(shù)據(jù)備份與數(shù)據(jù)恢復(fù)等功能。在客戶端開(kāi)發(fā)的系統(tǒng)主要用于系統(tǒng)與用戶進(jìn)行交互,同時(shí)顯示數(shù)據(jù)庫(kù)的數(shù)據(jù)并可以接受用戶的輸入。除此之外,客戶端還可以進(jìn)行業(yè)務(wù)處理,比如數(shù)據(jù)的CRUD操作、報(bào)表制作、數(shù)據(jù)錄入、數(shù)據(jù)分析等功能。
5 數(shù)據(jù)分布更新的實(shí)現(xiàn)方式
水庫(kù)群信息管理系統(tǒng)是一個(gè)跨流域、跨地域的大型分布式管理系統(tǒng),所以要求多個(gè)不同的客戶端同時(shí)操作一個(gè)服務(wù)器端的數(shù)據(jù)庫(kù),多個(gè)客戶端可以通過(guò)網(wǎng)絡(luò)協(xié)議進(jìn)行數(shù)據(jù)庫(kù)共享操作。
具體來(lái)說(shuō),要進(jìn)行數(shù)據(jù)庫(kù)的遠(yuǎn)程通信與訪問(wèn)可以使用WNTS提供的遠(yuǎn)程訪問(wèn)服務(wù)(簡(jiǎn)稱“RAS”)進(jìn)行實(shí)現(xiàn)。客戶端與服務(wù)器的端SQLServer 2005進(jìn)行遠(yuǎn)程通信主要有以下幾種方式:
1)通過(guò)操作C++內(nèi)置的函數(shù),在數(shù)據(jù)窗口中對(duì)SQLServer 2005中的數(shù)據(jù)庫(kù)表進(jìn)行操作與提取。
2)通過(guò)使用服務(wù)器端SQLServer 2005創(chuàng)建的存儲(chǔ)過(guò)程可以進(jìn)行數(shù)據(jù)操作。
3)利用C++提供的腳本語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)表的操作與訪問(wèn)。該方式首先用對(duì)象和數(shù)據(jù)庫(kù)建立連接,然后通過(guò)對(duì)象的方法對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。事務(wù)對(duì)象主要有兩個(gè)功能:一是可以提供建立數(shù)據(jù)庫(kù)連接需要的參數(shù)信息,并且返回每條SQL語(yǔ)句執(zhí)行的結(jié)果。二是C++語(yǔ)言提供了缺省事務(wù)對(duì)象,它可以代表SQL語(yǔ)句的通信區(qū)域,該區(qū)域有15個(gè)屬性,有10個(gè)是屬性是為了發(fā)生數(shù)據(jù)到數(shù)據(jù)庫(kù),剩下的5個(gè)是從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)。
4)在C++語(yǔ)言中,它可以通過(guò)使用C、Visual Basic等程序語(yǔ)言調(diào)用API函數(shù)獲取SQLServer 2005中的數(shù)據(jù)。
6 結(jié)論
為了可以充分利用信息技術(shù)的成果,對(duì)水庫(kù)群進(jìn)行信息化管理,從而提高管理的效率和科學(xué)性,做到計(jì)算機(jī)資源共享、信息共享、數(shù)據(jù)共享,從而為水庫(kù)管理工作人員提供決策支持與建議,研發(fā)一套水庫(kù)群信息管理系統(tǒng)是非常有必要的。本文研究的系統(tǒng)不僅可以提高我國(guó)水庫(kù)群的生產(chǎn)經(jīng)營(yíng)效益和管理水平,還可以加強(qiáng)對(duì)防洪工作的預(yù)測(cè)能力。
參考文獻(xiàn):
[1]王萬(wàn)森.人工智能原理及其應(yīng)用[M].北京:電子工業(yè)出版社,2000.
[2]林繞瑞.專家系統(tǒng)原理與實(shí)踐[M].北京:清華大學(xué)出版社,2011.
[3]Joseph Giarratano.Gary Riley.專家原理系統(tǒng)與編程[M].北京:機(jī)械工業(yè)出版社,2010.
[4]夏紅霞.面向?qū)ο蠹夹g(shù)的決策支持系統(tǒng)結(jié)構(gòu)建立方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2012.
[5]管春.面向?qū)ο蟮臎Q策支持系統(tǒng)結(jié)構(gòu)建立方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2011.
[6]B Smyth,M.K.Keane.Experiments on Adaptation-guided Retrieval in CaseBased Design[J].Proceeding of ICCCBR-95,2012
作者簡(jiǎn)介:殷蓬(1981.2-),男,山東人,信息管理,助理工程師,本科,研究方向:水利信息化。
作者單位:安徽省佛子嶺水庫(kù)管理處,安徽六安 237272