呂勝國(guó) 徐 敏
(山東省菏澤市水文局 菏澤 274000 山東省濟(jì)寧市水文局 濟(jì)寧 272000)
近年來(lái),隨著自動(dòng)雨量計(jì)的大量增加,以及上級(jí)實(shí)時(shí)整編的要求,降雨資料整編工作水平不斷提高的同時(shí),其復(fù)雜性也隨之加大,不僅需要配置更多的整編人員,而且數(shù)據(jù)有時(shí)分布在不同的機(jī)器上,處理的準(zhǔn)確性、時(shí)效性、安全性等方面都存在許多問(wèn)題?;?NET降雨資料整編與應(yīng)用服務(wù)系統(tǒng)能夠有效地協(xié)調(diào)各中心、各科室之間關(guān)系,加速省市水文單位資料的流轉(zhuǎn),實(shí)現(xiàn)系統(tǒng)內(nèi)部人與人、人與部門(mén)、部門(mén)與部門(mén)之間降雨資料的收集、審核、整編和信息共享。本文針對(duì)降雨資料整編的特點(diǎn),并結(jié)合實(shí)際需求,自主開(kāi)發(fā)了降雨資料在線整編應(yīng)用軟件,不僅有助于提高降雨資料整編的工作效率,節(jié)約成本,而且有助于整編資料應(yīng)用、后期維護(hù),以及功能擴(kuò)展。
針對(duì)降雨資料收集和整編應(yīng)用實(shí)際,該系統(tǒng)主要開(kāi)發(fā)了系統(tǒng)管理、降雨站網(wǎng)信息管理、降雨資料入庫(kù)與審核、降雨資料整編、資料應(yīng)用五大功能模塊。系統(tǒng)管理模塊主要實(shí)現(xiàn)用戶對(duì)系統(tǒng)權(quán)限、角色操作日志管理,確保資料操作有跡可循;站網(wǎng)管理模塊主要實(shí)現(xiàn)站網(wǎng)基本信息、儀器設(shè)備信息、委托觀測(cè)員等的調(diào)整、審批、存檔、查詢、增減等管理;資料輸入管理模塊主要實(shí)現(xiàn)人工資料、數(shù)據(jù)文件、數(shù)據(jù)庫(kù)數(shù)據(jù)實(shí)時(shí)入庫(kù)、入庫(kù)資料審核等;資料整編模塊主要完成降雨資料整編,并輸出表一、表二、摘錄表、逐日表、極值表、對(duì)照表等成果表;資料應(yīng)用模塊主要實(shí)現(xiàn)不同站點(diǎn)、時(shí)段的各種要素查詢、頻率分析等。系統(tǒng)功能框圖見(jiàn)圖1。
系統(tǒng)的開(kāi)發(fā)平臺(tái)設(shè)置:(1)服務(wù)器端操作系統(tǒng):Windows 2008 Server,數(shù)據(jù)庫(kù)系統(tǒng):SQL Server 2008R2。(2)客戶端操作系統(tǒng):Microsoft Windows 2000/XP。(3)編程工具與技術(shù):Microsoft Visual Studio 2010,Microsoft.NET Framework4.0,ASP.NET,ADO.NET。
系統(tǒng)采用B/S瀏覽器架構(gòu),使用母板結(jié)構(gòu)搭建功能頁(yè)面。為了數(shù)據(jù)安全,減輕CPU壓力,提升訪問(wèn)速度,數(shù)據(jù)庫(kù)服務(wù)器和網(wǎng)頁(yè)服務(wù)器應(yīng)該放在不同的機(jī)器上,其中數(shù)據(jù)服務(wù)器設(shè)于局系統(tǒng)內(nèi)網(wǎng),WEB服務(wù)器設(shè)于外網(wǎng),網(wǎng)絡(luò)采用Internet VPN方式。
圖1 系統(tǒng)功能框圖
該系統(tǒng)采用了SQL Server 2008 R2數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行管理維護(hù),在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),基于《水文數(shù)據(jù)庫(kù)編碼標(biāo)準(zhǔn)》,結(jié)合實(shí)際及應(yīng)用環(huán)境,嚴(yán)格按照需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)的實(shí)施和數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù)的設(shè)計(jì)方法步驟,建立數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。在線整編系統(tǒng)數(shù)據(jù)復(fù)雜,既有用戶、角色、站網(wǎng)信息、委托管理員信息數(shù)據(jù),也有雨量采集信息、分區(qū)信息、資料整編信息等,在一個(gè)頁(yè)面進(jìn)行多張關(guān)系表數(shù)據(jù)聯(lián)合查詢,采用SQL語(yǔ)句查詢功能及視圖方式整合數(shù)據(jù),簡(jiǎn)化了程序代碼的復(fù)雜性。
為了保證數(shù)據(jù)的安全性,系統(tǒng)權(quán)限分為管理員級(jí)別、操作員級(jí)別、用戶級(jí)別3類。管理員可以修改系統(tǒng)基本信息,查看全部的數(shù)據(jù)信息并進(jìn)行更改;操作員只能查看授權(quán)范圍內(nèi)的信息并進(jìn)行修改、整編;用戶級(jí)別只能操作,無(wú)修改權(quán)。在系統(tǒng)權(quán)限定義時(shí),系統(tǒng)采用基于角色訪問(wèn)控制模式(RBCM.Role-based Control Mode)對(duì)用戶角色進(jìn)行授權(quán)。該模型包括用戶、角色和訪問(wèn)權(quán)限3個(gè)實(shí)體,其基本思想是:在軟件系統(tǒng)中定義各種角色,每個(gè)用戶可屬于一個(gè)或多個(gè)角色,在母版代碼中設(shè)定不同角色分配訪問(wèn)系統(tǒng)資源的權(quán)限,若用戶要訪問(wèn)某一類資源,就給該用戶授權(quán)具有可訪問(wèn)此資源的相應(yīng)角色,用戶與資源之間不建立直接關(guān)系,而是通過(guò)角色建立間接的聯(lián)系。
為了數(shù)據(jù)安全,在每一功能項(xiàng)增加了用戶操作訪問(wèn)痕跡管理記錄,每一用戶的登記時(shí)間、操作內(nèi)容、操作時(shí)間、訪問(wèn)內(nèi)容均記入數(shù)據(jù)庫(kù)。
代碼如下:
雨量站網(wǎng)管理是信息量大而繁雜的一項(xiàng)工作,如從雨量站設(shè)立、儀器配置、委托員聘用等開(kāi)始,直至站網(wǎng)調(diào)整、撤并結(jié)束。在整個(gè)過(guò)程中要涉及到站網(wǎng)基本信息、儀器配置信息、委托觀測(cè)人員信息、測(cè)站變動(dòng)等相關(guān)內(nèi)容,圖片采用二進(jìn)制數(shù)據(jù)類型,直接存入數(shù)據(jù)庫(kù),系統(tǒng)提供了站網(wǎng)信息添加、修改和刪除、分類查詢統(tǒng)計(jì)功能,可實(shí)時(shí)了解測(cè)站信息,自動(dòng)生成站網(wǎng)分類統(tǒng)計(jì)報(bào)表,利用數(shù)據(jù)庫(kù)GridView控件,方便各項(xiàng)功能的快速實(shí)現(xiàn)。
針對(duì)雨量站的類型及實(shí)際運(yùn)行情況,系統(tǒng)開(kāi)發(fā)了人工資料、數(shù)據(jù)文件、數(shù)據(jù)庫(kù)數(shù)據(jù)實(shí)時(shí)入庫(kù)三種入庫(kù)功能;資料審核包括資料的合理性分析、鄰站對(duì)比、過(guò)程線繪制分析、人工儀器對(duì)比分析等功能,不合理的數(shù)據(jù)通過(guò)修改、刪除等功能解決,因儀器故障漏測(cè)的可通過(guò)鄰站插補(bǔ)分裂等功能解決。人工儀器對(duì)比分析功能,每日可查詢實(shí)時(shí)雨量數(shù)據(jù)庫(kù),統(tǒng)計(jì)日降雨量,生成各站降雨對(duì)照料表,提示雨量站管理人員自動(dòng)儀器降水量,便于人工分析對(duì)比,及時(shí)發(fā)現(xiàn)儀器故障。降雨過(guò)程線功能分析利用位圖Bitmap定義畫(huà)布,采用Graphics 類實(shí)現(xiàn)過(guò)程線繪制功能,可實(shí)現(xiàn)選定測(cè)站的過(guò)程線對(duì)比分析,可存儲(chǔ)打印過(guò)程線。
資料整編功能是該系統(tǒng)的核心功能,根據(jù)降水量整編規(guī)范,開(kāi)發(fā)了表一、表二、摘錄表、逐日表、極值表、對(duì)照表整編模塊,及時(shí)整編入庫(kù),同時(shí)可輸出Excel格式降雨資料整編成果表,根據(jù)當(dāng)前實(shí)時(shí)整編要求,可分階段及時(shí)整編,通過(guò)及時(shí)整編可及時(shí)發(fā)現(xiàn)降雨觀測(cè)中的錯(cuò)誤。在分階段整編時(shí),給出提示重新整編更新覆蓋功能。
表一、表二整編模塊,先利用SQL select語(yǔ)句中SUM()函數(shù)功能,滑動(dòng)統(tǒng)計(jì)表一中不同時(shí)間段降雨量,再利用MAX()函數(shù)求出相應(yīng)時(shí)間段最大降雨量,摘錄表、逐日表整編模塊利用SUM()函數(shù)功能統(tǒng)計(jì)求出給定時(shí)段降雨量。
此資料應(yīng)用模塊利用select查詢語(yǔ),主要實(shí)現(xiàn)不同站點(diǎn)、時(shí)段的各種要素(降水量、降水日數(shù)、最大24h降水量)分析對(duì)比查詢(求和、對(duì)比、統(tǒng)計(jì)等),并對(duì)查詢出的數(shù)據(jù)進(jìn)行P-Ⅲ曲線頻率分析等。
該系統(tǒng)采用Microsoft.NETFramework4.0構(gòu)建編程環(huán)境,Microsoft Visual Studio 2010為編程語(yǔ)言,通過(guò)ADO.NET訪問(wèn)SQL Server 2008R2數(shù)據(jù)庫(kù),開(kāi)發(fā)了基于.NET的降雨資料整編與應(yīng)用服務(wù)系統(tǒng),并通過(guò)采用RBAC模型有效實(shí)現(xiàn)了Web系統(tǒng)中的權(quán)限控制。目前該系統(tǒng)在菏澤市水文局進(jìn)行了試用,系統(tǒng)運(yùn)行穩(wěn)定,基本滿足了降雨資料整編與應(yīng)用服務(wù)需求,提高了降雨資料整編及站網(wǎng)管理的水平,實(shí)現(xiàn)了數(shù)據(jù)共享,節(jié)約了人力、物力,降低了站網(wǎng)管理成本■