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