蔣 維,鄭小立,張 亮,蔣學(xué)平
(1.寧夏超高壓電力工程有限公司,寧夏回族自治區(qū) 銀川 750011;2.國網(wǎng)寧夏電力有限公司超高壓公司,寧夏回族自治區(qū) 銀川 750011;3.合肥偌天電氣科技發(fā)展有限公司,安徽 合肥 231131)
智能客戶端是一種利用本地設(shè)備與資源進(jìn)行部署,同時支持運用Web Services等多種技術(shù)進(jìn)行數(shù)據(jù)庫訪問、實現(xiàn)網(wǎng)絡(luò)資源利用,可根據(jù)網(wǎng)絡(luò)連接條件執(zhí)行數(shù)據(jù)實時上傳與脫機(jī)操作,并提供智能安裝、定時更新等功能。將其應(yīng)用于系統(tǒng)開發(fā)設(shè)計環(huán)節(jié),基于NET平臺完成系統(tǒng)開發(fā)部署,能夠為項目信息的在線存儲、離線緩存等功能實現(xiàn)提供現(xiàn)實借鑒意義。
智能客戶端主要分為移動、Windows、Office三種類型,利用客戶端進(jìn)行數(shù)據(jù)緩存可實現(xiàn)離線功能、優(yōu)化用戶體驗、節(jié)約系統(tǒng)運行成本。該客戶端提供瞬態(tài)、只讀引用兩種數(shù)據(jù)類型,采用短期、長期兩種數(shù)據(jù)緩存方式,并基于.NET平臺提供RDA、SSA兩種數(shù)據(jù)同步方式,可消除服務(wù)器或客戶端數(shù)據(jù)更改產(chǎn)生的數(shù)據(jù)不一致性問題,選用Web Service進(jìn)行分布式程序創(chuàng)建,并配合Visual Studio 2008及其他輔助工具完成應(yīng)用開發(fā)。
根據(jù)基建項目由立項到交付全過程涉及的各類信息,運用統(tǒng)一管理系統(tǒng)進(jìn)行基建工程各參建單位業(yè)務(wù)數(shù)據(jù)、分部分項工程信息以及進(jìn)度、質(zhì)量、投資等多個方面的工程信息進(jìn)行整理與匯總,實現(xiàn)對基建工程項目信息的統(tǒng)籌管理。
(1)系統(tǒng)網(wǎng)絡(luò)架構(gòu)。在基建工程項目信息管理系統(tǒng)結(jié)構(gòu)設(shè)計上,將系統(tǒng)大體劃分為瀏覽器、Web服務(wù)器與DB服務(wù)器三個層級,如圖1所示。其中瀏覽器層主要用于實現(xiàn)智能客戶端的核心功能,接收智能客戶端發(fā)出的服務(wù)請求信息,經(jīng)用戶接口進(jìn)行信息顯示;Web服務(wù)器層用于對客戶端發(fā)出的服務(wù)請求信息進(jìn)行處理,并將數(shù)據(jù)處理結(jié)果返回至客戶機(jī)端;DB服務(wù)器負(fù)責(zé)對基建工程項目中涉及的大量數(shù)據(jù)信息進(jìn)行存儲、分析、處理及加工,并響應(yīng)Web服務(wù)器請求進(jìn)行數(shù)據(jù)庫管理,并返回數(shù)據(jù)處理結(jié)果。

圖1 系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖
(2)系統(tǒng)功能模塊設(shè)計。根據(jù)基建工程項目的信息管理需求,圍繞質(zhì)量、進(jìn)度、資金、安全四個方面進(jìn)行系統(tǒng)功能模塊設(shè)計:①質(zhì)量管理模塊,包含文件、原材料質(zhì)量、半成品質(zhì)量、成品質(zhì)量、用戶反饋質(zhì)量意見、關(guān)鍵零件質(zhì)量以及質(zhì)量缺陷問題等信息內(nèi)容,需結(jié)合基建工程需求完成質(zhì)量管理相關(guān)文件的分類、輸入、查詢及修改等功能設(shè)計;②進(jìn)度管理模塊,圍繞招投標(biāo)、供應(yīng)商與施工管理三個層面進(jìn)行管理設(shè)計,其中招投標(biāo)進(jìn)度管理子模塊需提供專家信息快速檢索與查詢功能,供應(yīng)商管理模塊設(shè)有供應(yīng)商檔案與中標(biāo)供應(yīng)商查詢等基本功能,施工管理模塊包含施工計劃、施工現(xiàn)場與竣工維護(hù)等管理內(nèi)容;③資金管理模塊,由財務(wù)管理、設(shè)備管理兩個方面組成,其中財務(wù)管理包含項目財務(wù)預(yù)決算、合同付款、變更及結(jié)算等信息內(nèi)容,設(shè)備管理包含設(shè)備合同、綜合信息及使用過程管理等,此處需引入KKS編碼技術(shù)進(jìn)行設(shè)備全過程監(jiān)管;④安全管理模塊,包含合同管理、安監(jiān)管理兩部分,其中合同管理需提供合同添加、變更、信息瀏覽等功能,安監(jiān)管理涉及施工過程與竣工運營兩個階段的安全管理要求。
(3)數(shù)據(jù)庫訪問設(shè)計。引入Oracle技術(shù)進(jìn)行數(shù)據(jù)庫訪問邏輯設(shè)計,根據(jù)基建工程項目信息分類及對應(yīng)的數(shù)據(jù)表內(nèi)容、類型與長度,需面向系統(tǒng)基本功能進(jìn)行數(shù)據(jù)表邏輯結(jié)構(gòu)設(shè)計。以基建工程項目的預(yù)算經(jīng)費信息為例,其數(shù)據(jù)表中應(yīng)包含不同預(yù)算經(jīng)費的序號、呈批單位、起止日期、預(yù)算類型、預(yù)算編碼等具體內(nèi)容,并分別完成各數(shù)據(jù)項對應(yīng)數(shù)據(jù)類型的編制與存儲,如表1所示。

表1 預(yù)算經(jīng)費數(shù)據(jù)表
以數(shù)據(jù)庫表查詢功能的實現(xiàn)為例,主要根據(jù)序號ID進(jìn)行代碼設(shè)計:

為實現(xiàn)系統(tǒng)智能感知功能,可采用“V”進(jìn)行視圖命名的統(tǒng)一,將專家ID、專家身份識別等數(shù)據(jù)格式統(tǒng)一為“V.ExpertID”“V.ExpertStatusID”等,并在Where、orderby語句后進(jìn)行篩選與排序條件的設(shè)計,便于系統(tǒng)錄入信息。
利用智能客戶端實現(xiàn)系統(tǒng)脫機(jī)狀態(tài)下的存儲功能,需引入一種存儲方案滿足系統(tǒng)日常操作狀態(tài)與脫機(jī)工作狀態(tài)下的數(shù)據(jù)存儲、緩存處理要求,并確保在恢復(fù)聯(lián)機(jī)狀態(tài)時實現(xiàn)客戶端與網(wǎng)絡(luò)信息的自動同步。在客戶端存儲方案構(gòu)思環(huán)節(jié),如何判斷網(wǎng)絡(luò)處于脫機(jī)/聯(lián)機(jī)狀態(tài),客戶在離線/在線狀態(tài)間轉(zhuǎn)換后如何在第一時間將服務(wù)器數(shù)據(jù)上傳并同步至客戶端,在系統(tǒng)處于脫機(jī)狀態(tài)下怎樣緩存數(shù)據(jù)等,均成為智能客戶端應(yīng)用系統(tǒng)設(shè)計時亟需解決的問題。基于上述需求與問題,擬圍繞以下三個層面進(jìn)行存儲方案設(shè)計:
(1)數(shù)據(jù)讀取流程設(shè)計,在智能客戶端應(yīng)用軟件運行過程中,先與Web服務(wù)器端建立通信連接,獲取服務(wù)器端數(shù)據(jù)進(jìn)行本地數(shù)據(jù)更新;當(dāng)發(fā)現(xiàn)存在網(wǎng)絡(luò)連接故障時,運行客戶端軟件讀取本地數(shù)據(jù),進(jìn)入離線緩存操作模式,并將離線操作過程與結(jié)果數(shù)據(jù)以“.XML”形式存儲在本地;待網(wǎng)絡(luò)恢復(fù)連接后,使客戶端與服務(wù)器自動同步數(shù)據(jù)。在數(shù)據(jù)讀取流程代碼設(shè)計上,定義公有的Load()方法,根據(jù)條件判斷語句進(jìn)行智能客戶端上一次執(zhí)行操作時的網(wǎng)絡(luò)狀態(tài)判斷,當(dāng)HasBasicInfo()方法為真時,調(diào)用ReadData()讀取客戶端本地.XML文件離線緩存數(shù)據(jù)與ChangeOnlineStatus(),并將客戶端界面切換至離線狀態(tài);當(dāng)判斷方法為假時,調(diào)用DisplayLoginForm()進(jìn)入用戶登錄界面,并調(diào)用ReadData()恢復(fù)網(wǎng)絡(luò)連接,讀取服務(wù)器端數(shù)據(jù)后存儲在本地數(shù)據(jù)集中,代碼設(shè)計為:

(2)數(shù)據(jù)寫入流程設(shè)計,在智能客戶端系統(tǒng)軟件程序運行結(jié)束后,需將客戶端修改的數(shù)據(jù)進(jìn)行存儲,在離線狀態(tài)下將數(shù)據(jù)修改過程與改后數(shù)據(jù)以“.xml”格式存儲在本地客戶端,在網(wǎng)絡(luò)連接狀態(tài)下將數(shù)據(jù)上傳至服務(wù)器端進(jìn)行存儲。在數(shù)據(jù)寫入流程建構(gòu)上,表現(xiàn)為:開始→判斷是否在線→(否)保存數(shù)據(jù)至本地;(是)保存數(shù)據(jù)至服務(wù)器→結(jié)束。在數(shù)據(jù)寫入流程代碼設(shè)計上,主要需定義save()方法,根據(jù)條件判斷語句對m_IsOnline進(jìn)行真假判斷,當(dāng)判斷結(jié)果為真時調(diào)用update()方法將數(shù)據(jù)存儲至服務(wù)器端,當(dāng)判斷結(jié)果為假時調(diào)用saveData方法將數(shù)據(jù)存儲至本地客戶端,其代碼設(shè)計如下:

(3)程序總體流程設(shè)計,當(dāng)智能客戶端在網(wǎng)絡(luò)連接狀態(tài)切換時,主要通過讀取本地數(shù)據(jù)進(jìn)行比較,當(dāng)發(fā)現(xiàn)數(shù)據(jù)發(fā)生改變時,將修改后的數(shù)據(jù)存儲在本地數(shù)據(jù)集內(nèi),待回復(fù)網(wǎng)絡(luò)連接后再將修改后的數(shù)據(jù)上傳至服務(wù)器端進(jìn)行存儲;當(dāng)發(fā)現(xiàn)數(shù)據(jù)未發(fā)生改變時,將本地存儲數(shù)據(jù)刪除,利用由服務(wù)器端獲取的新數(shù)據(jù)進(jìn)行覆蓋,并實現(xiàn)后續(xù)數(shù)據(jù)、業(yè)務(wù)及存儲等操作功能。
(1)權(quán)限控制功能。基于權(quán)限控制原則進(jìn)行用戶登錄權(quán)限設(shè)置,由用戶根據(jù)專用登錄名、密碼進(jìn)入系統(tǒng),系統(tǒng)根據(jù)用戶信息完成權(quán)限配置,并進(jìn)入不同操作界面中,實現(xiàn)對不同用戶的權(quán)限控制。在管理員功能實現(xiàn)上,需分別對系統(tǒng)質(zhì)量、進(jìn)度、資金、安全管理模塊進(jìn)行用戶權(quán)限與操作的設(shè)置,支持對用戶權(quán)限進(jìn)行修改、新增或刪除,并且具有查詢系統(tǒng)日志等權(quán)限。
(2)信息搜索功能。基于SQL語言進(jìn)行數(shù)據(jù)庫設(shè)計,以基建工程項目招標(biāo)專家信息搜索功能實現(xiàn)為例,需運用SQL語言構(gòu)建一種隨機(jī)函數(shù),根據(jù)數(shù)據(jù)庫中編號的線性遞增特征,選用“DBMS_RANDOM.RANDOM*n+記錄編號”的形式生成SQL語句,用于保證在任意一次調(diào)用記錄編號時不出現(xiàn)相同的初始值。針對上述功能實現(xiàn)情況進(jìn)行測試,將常量n取值為2 000個,每一次記錄編號的序號取值在1~10范圍內(nèi),觀察10次記錄序號與偽隨機(jī)函數(shù)集合的測試結(jié)果可以發(fā)現(xiàn),測試數(shù)據(jù)與記錄編號呈同步遞增趨勢,但任意兩記錄編號的測試數(shù)值結(jié)果均具有隨機(jī)性,且小數(shù)點5位以后的數(shù)值具有無序性特征,在字符反轉(zhuǎn)后仍保持無序、隨機(jī)變化特點。整合上述測試結(jié)果,完成隨機(jī)抽取算法組合函數(shù)的建構(gòu),待SQL語句執(zhí)行結(jié)束后,將生成m個隨機(jī)序列,執(zhí)行orderby語句后進(jìn)行不同隨機(jī)數(shù)值的重新排序,并運行rownum語句提取其中前n個記錄,借此有效提升信息搜索效率,保證高效完成專家信息的搜索。
(1)在系統(tǒng)功能測試環(huán)節(jié),分別完成鏈接測試、表單操作、平臺兼容性及數(shù)據(jù)庫測試。以數(shù)據(jù)庫測試為例,模擬用戶提交錯誤表單信息的情況,判斷是否存在數(shù)據(jù)一致性錯誤;或模擬程序設(shè)計環(huán)節(jié)出現(xiàn)問題的情況,判斷是否存在輸出錯誤等。經(jīng)上述不同功能測試后,測試結(jié)果表明該系統(tǒng)基本達(dá)成功能設(shè)計目標(biāo),符合系統(tǒng)預(yù)期設(shè)計要求。
(2)在系統(tǒng)性能測試環(huán)節(jié),首先模擬用戶在電話撥號/寬帶上網(wǎng)模式下登錄系統(tǒng),判斷頁面訪問速度是否符合連接速度測試要求;其次選擇單臺服務(wù)器進(jìn)行集合點設(shè)計,分別模擬4/8/16個用戶并發(fā)2次迭代場景,觀察響應(yīng)時間的變化規(guī)律。測試結(jié)果表明,系統(tǒng)操作界面友好、運行狀況穩(wěn)定,支持10個及以上用戶同時訪問系統(tǒng)、執(zhí)行數(shù)據(jù)處理任務(wù),且響應(yīng)時間、運行效率與自動恢復(fù)功能等均符合預(yù)期開發(fā)需求。
(3)在系統(tǒng)安全測試環(huán)節(jié),基于身份認(rèn)證方式進(jìn)行用戶登錄與訪問權(quán)限設(shè)計,當(dāng)用戶在系統(tǒng)界面輸入登錄名、密碼后,系統(tǒng)將自動判斷是否匹配,確認(rèn)輸入信息符合要求后,運行數(shù)據(jù)庫表中的user_power代碼進(jìn)行登錄身份判斷與權(quán)限設(shè)置,使用戶成功登錄系統(tǒng),反之輸入密碼錯誤次數(shù)達(dá)到3次以上后將鎖定用戶名,禁止用戶登錄。在系統(tǒng)數(shù)據(jù)安全測試上,該系統(tǒng)運用RAIDS磁盤陣列進(jìn)行數(shù)據(jù)庫數(shù)據(jù)的存儲,并提供數(shù)據(jù)庫備份操作,有效防范因系統(tǒng)崩潰或突然斷電等情況產(chǎn)生數(shù)據(jù)信息丟失問題。
通過研究基建工程項目信息管理系統(tǒng)設(shè)計方案,引入智能客戶端彌補(bǔ)B/S架構(gòu)下應(yīng)用程序部署與管理上存在的不足,并提出一種數(shù)據(jù)存儲方案,最終有效為系統(tǒng)功能、性能與安全性提供保障,并支持?jǐn)?shù)據(jù)在線上傳與離線存儲需求。未來還可引入Workflow進(jìn)行多業(yè)務(wù)場景下系統(tǒng)的自動化設(shè)計,在現(xiàn)有系統(tǒng)功能模塊的基礎(chǔ)上新增無人值守、數(shù)據(jù)瀏覽等功能選擇,為系統(tǒng)應(yīng)用范圍擴(kuò)大提供良好示范經(jīng)驗。