□董曉繪 □張俊英 □張 榮 □吳靜萍
(1河南省鄭州水文水資源勘測(cè)局 2河南省漯河水文水資源勘測(cè)局3河南省水利勘測(cè)有限公司 4河南省水利第二工程局)
河南省雨水情信息顯示系統(tǒng)是一套軟件管理與硬件應(yīng)用為一體的管理系統(tǒng)。其軟件系統(tǒng)通過(guò)動(dòng)態(tài)讀取省信息交換系統(tǒng)的數(shù)據(jù)庫(kù)數(shù)據(jù)后,自動(dòng)保存到軟件系統(tǒng)自帶的SQLSERVER數(shù)據(jù)庫(kù),同時(shí)以特定的格式通過(guò)串口發(fā)送至雨水情顯示屏。顯示屏采用工業(yè)級(jí)的LED集成模塊并按照一定的排列方式組合而成。單個(gè)的LED采用Atmel89C51單片機(jī)為核心,外駁接三色二極管為不同雨情的顯示方式,是集信息接收、發(fā)送、存儲(chǔ)、數(shù)據(jù)運(yùn)算、通訊于一體的顯示設(shè)備,通過(guò)多個(gè)LED的組合能夠動(dòng)態(tài)地顯示出不同區(qū)域的雨水情信息。該管理軟件能夠非常方便地查詢當(dāng)前與以往的雨水情信息,并集動(dòng)態(tài)調(diào)用交換系統(tǒng)數(shù)據(jù)庫(kù)自動(dòng)生成數(shù)據(jù)與手工錄入于一體,能夠快捷地生成旬報(bào)、月報(bào)而極大地提高了防汛發(fā)報(bào)的及時(shí)性與準(zhǔn)確性。軟件同時(shí)以三種不同的顯示方式服務(wù)于不同用戶,其中錄入查詢版可以滿足技術(shù)人員對(duì)數(shù)據(jù)的錄入、修改、發(fā)送與查詢,該顯示功能強(qiáng)大但需要專業(yè)人員使用;查詢版則是針對(duì)領(lǐng)導(dǎo)查詢?cè)O(shè)計(jì)的,其界面簡(jiǎn)潔美觀,操作方便。
雨水情顯示系統(tǒng)采用的是C/S模式的工作方式,即在同一局域網(wǎng)內(nèi)進(jìn)行信息共享,在后臺(tái)建立一個(gè)公共的數(shù)據(jù)服務(wù)器,系統(tǒng)通過(guò)動(dòng)態(tài)讀取省水情交換系統(tǒng)的數(shù)據(jù)庫(kù)后,自動(dòng)保存到軟件系統(tǒng)自帶的SQLSERVER數(shù)據(jù)庫(kù),同時(shí)將信息通過(guò)串口發(fā)送至雨水情顯示屏。雨水情顯示屏以許昌實(shí)際地圖為背景生動(dòng)形象地對(duì)雨水情信息進(jìn)行發(fā)布,其中雨情以紅、綠、黃二極管分別表示晴、雨、多云3種狀態(tài);水情則以不同顏色的LED燈色表示漲、平、落。軟件以C/S架構(gòu)的形式存在并以三種不同的顯示界面服務(wù)于不同用戶,實(shí)時(shí)雨水情信息的錄入通過(guò)錄入查詢版本;信息的發(fā)布與顯示則通過(guò)只讀查詢版本;僅在電腦上進(jìn)行復(fù)雜查詢的通過(guò)專業(yè)查詢版,如此即以多元化的操作方式滿足不同的需求對(duì)象。
由于該軟件系統(tǒng)采用的是C/S模式進(jìn)行開(kāi)發(fā),而開(kāi)發(fā)C/S架構(gòu)的語(yǔ)言則首推PowerBuilder,并非只有PowerBuilder才能開(kāi)發(fā)C/S架構(gòu)的程序,但PowerBuilder卻是以C/S為主而誕生的一種語(yǔ)言,下面將詳細(xì)介紹一下PowerBuilder的性能。
PowerBuilder是美國(guó)Sybase公司研制的一種新型、快速開(kāi)發(fā)工具,是客戶機(jī)/服務(wù)器結(jié)構(gòu)下,基于Windows2000、WindowsXP和WindowsNT的一個(gè)集成化開(kāi)發(fā)工具。它包含一個(gè)直觀的圖形界面和可擴(kuò)展的面向?qū)ο蟮木幊陶Z(yǔ)言PowerScript,提供與當(dāng)前流行的大型數(shù)據(jù)庫(kù)的接口,并通過(guò)ODBC與單機(jī)數(shù)據(jù)庫(kù)相連。其主要特點(diǎn)如下:一是可視化、多特性的開(kāi)發(fā)工具。全面支持Windows或WindowsNT所提供的控制、事件和函數(shù)。PowerScript語(yǔ)言提供了幾百個(gè)內(nèi)部函數(shù),并且具有一個(gè)面向?qū)ο蟮木幾g器和調(diào)試器,可以隨時(shí)編譯新增加的代碼,帶有完整的在線幫助和編程實(shí)例。二是功能強(qiáng)大的面向?qū)ο蠹夹g(shù)。支持通過(guò)對(duì)類的定義來(lái)建立可視或不可視對(duì)象模型,同時(shí)支持所有面向?qū)ο缶幊碳夹g(shù),如繼承、數(shù)據(jù)封裝和函數(shù)多態(tài)性等。這些特性確保了應(yīng)用程序的可靠性,提高了軟件的可維護(hù)性。三是支持高效的復(fù)雜應(yīng)用程序。對(duì)基于Windows環(huán)境的應(yīng)用程序提供了完備的支持,這些環(huán)境包括Windows、WindowsNT和WinOS/2。開(kāi)發(fā)人員可以使用PowerBuilder內(nèi)置的WatcomC/C++來(lái)定義、編譯和調(diào)試一個(gè)類。四是企業(yè)數(shù)據(jù)庫(kù)的連接能力。PowerBuilder的主要特色是DataWindow(數(shù)據(jù)窗口),通過(guò)DataWindow可以方便地對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種操作,也可以處理各種報(bào)表,而無(wú)需編寫SQL 語(yǔ)句,可以直接與 Sybase、SQLServer、Informix、Oracle 等大型數(shù)據(jù)庫(kù)連接。五是強(qiáng)大的查詢、報(bào)表和圖形功能。PowerBuilder提供的可視化查詢生成器和多個(gè)表的快速選擇器可以建立查詢對(duì)象,并把查詢結(jié)果作為各種報(bào)表的數(shù)據(jù)來(lái)源。PowerBuilder主要適用于管理信息系統(tǒng)的開(kāi)發(fā),特別是客戶機(jī)/服務(wù)器結(jié)構(gòu)。
當(dāng)多個(gè)用戶同時(shí)保存雨水情數(shù)據(jù)或同時(shí)修改一相同雨水情數(shù)據(jù)時(shí)就會(huì)產(chǎn)生意想不到的問(wèn)題,這就是并發(fā)所引起的問(wèn)題。若不正確地處理好這個(gè)問(wèn)題那么就會(huì)引起數(shù)據(jù)死鎖、數(shù)據(jù)丟失、數(shù)據(jù)錯(cuò)亂等一系列問(wèn)題從而影響雨水情信息的正常發(fā)布。因此我們很有必要了解并發(fā)產(chǎn)生的原理以及如何妥善解決由并發(fā)所產(chǎn)生的各種問(wèn)題。
并發(fā)控制指的是當(dāng)多個(gè)用戶同時(shí)更新行時(shí),用于保護(hù)數(shù)據(jù)庫(kù)完整性的各種技術(shù)。并發(fā)機(jī)制不正確可能導(dǎo)致臟讀、幻讀和不可重復(fù)讀等問(wèn)題。究其本質(zhì)原因則是數(shù)據(jù)不一致所致:一個(gè)進(jìn)程讀入內(nèi)存中的數(shù)據(jù)和數(shù)據(jù)庫(kù)中的“同一批”數(shù)據(jù)在某一時(shí)刻已經(jīng)不一樣了(可能數(shù)據(jù)庫(kù)中的數(shù)據(jù)被另外一個(gè)進(jìn)程修改了),但程序并不知道,于是造成了各種錯(cuò)誤。尤其是當(dāng)業(yè)務(wù)邏輯比較復(fù)雜時(shí),要在正確性和并發(fā)性之間權(quán)衡一下,這兩方面有時(shí)是矛盾的,沒(méi)法得到完美的解決。比如,有的處理可能會(huì)使某種操作不正確,但它影響很小,不會(huì)帶來(lái)?yè)p失,但能提高系統(tǒng)的并發(fā)性,這樣的正確性可以犧牲。通過(guò)對(duì)并發(fā)問(wèn)題的細(xì)致研究規(guī)避了并發(fā)問(wèn)題對(duì)雨水情顯示系統(tǒng)的影響,通過(guò)對(duì)并發(fā)控制有效的管理與控制使雨水情顯示系統(tǒng)滿足了多用戶多批次的錄入與修改,從而很好地滿足了信息發(fā)布的及時(shí)性與準(zhǔn)確性。
由于雨水情信息顯示系統(tǒng)不但本身使用的SQLSERVER數(shù)據(jù)庫(kù),同時(shí)由于要不斷地讀取省水文局構(gòu)建的交換數(shù)據(jù)庫(kù)(采用的是SQLSERVER2008)中的數(shù)據(jù),因此該系統(tǒng)采用了多數(shù)據(jù)庫(kù)連接的方式運(yùn)行。由于SQLCA是PowerBuilder默認(rèn)的事務(wù)對(duì)象不需要新建而只對(duì)連接交換數(shù)據(jù)庫(kù)的事務(wù)新建,其事務(wù)為:Transactionsmg_sybase。它們的連接代碼如下:雨水情系統(tǒng)本身的連接代碼:


該雨水情信息顯示系統(tǒng)應(yīng)用于許昌市水利局防辦,其同類產(chǎn)品也在白沙水庫(kù)管理局安裝使用,使用效果良好。長(zhǎng)達(dá)1.70m×2.40m的雨水情顯示板直觀方便地展現(xiàn)出了平時(shí)只能在在電腦中才能顯示的雨水情信息,同時(shí)多用戶多界面的雨水情查詢統(tǒng)計(jì)也滿足了不同用戶的不同需求。該系統(tǒng)的開(kāi)發(fā)應(yīng)用在汛期防汛期間發(fā)揮了積極的作用,受到了用戶的廣泛好評(píng)。